• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      利用RS422串口實(shí)現(xiàn)微控制器程序在線(xiàn)升級(jí)的方法

      2016-09-27 03:11:25西南技術(shù)物理研究所楊光海
      電子世界 2016年16期
      關(guān)鍵詞:下位微控制器機(jī)箱

      西南技術(shù)物理研究所 楊光海

      中國(guó)電子科技集團(tuán)公司第十研究所 彭文淵

      西南技術(shù)物理研究所 張 川 公丕華 王 ?!⌒臁〉ぁ恰?/p>

      利用RS422串口實(shí)現(xiàn)微控制器程序在線(xiàn)升級(jí)的方法

      西南技術(shù)物理研究所楊光海

      中國(guó)電子科技集團(tuán)公司第十研究所彭文淵

      西南技術(shù)物理研究所張川公丕華王海徐丹吳曄

      本文以工程應(yīng)用為出發(fā)點(diǎn),介紹了在微控制器軟件使用中,利用RS422異步串口實(shí)現(xiàn)微控制器程序在線(xiàn)升級(jí)的方法,從而實(shí)現(xiàn)了不打開(kāi)配有微控制器的設(shè)備不開(kāi)箱實(shí)現(xiàn)程序升級(jí),以供工程開(kāi)發(fā)者進(jìn)行選用。

      【摘要】RS422;微控制器;在線(xiàn)升級(jí)

      0 引言

      微控制器是將微型計(jì)算機(jī)的主要部分集成在一個(gè)芯片上的單芯片微型計(jì)算機(jī)。單片機(jī)為微控制器中的一種,相當(dāng)于一個(gè)微型的計(jì)算機(jī),具有體積小、質(zhì)量輕、性?xún)r(jià)比高等特點(diǎn)。如今,單片機(jī)的使用領(lǐng)域已十分廣泛,如智能儀表、實(shí)時(shí)工控、通訊設(shè)備、導(dǎo)航系統(tǒng)、家用電器等。在上述電子系統(tǒng)中,各部件間的計(jì)算機(jī)微控制芯片(單片機(jī))都需要進(jìn)行數(shù)據(jù)交換建立通訊聯(lián)系,使用串行通訊手段是其中一種重要、常用的通訊方式。串行通訊工作方式分為同步方式和異步方式兩種,在實(shí)際工作中,異步方式用得最多,包括三個(gè)常用的總線(xiàn)標(biāo)準(zhǔn):RS-232、RS-422、RS-485。單片機(jī)(Mircocontrollers)是一種集成電路芯片,是采用超大規(guī)模集成電路技術(shù)把具有數(shù)據(jù)處理能力的中央處理器CPU、隨機(jī)存儲(chǔ)器RAM、只讀存儲(chǔ)器ROM、多種I/O口和中斷系統(tǒng)、定時(shí)器/計(jì)數(shù)器等功能(某些還包括顯示驅(qū)動(dòng)電路、脈寬調(diào)制電路、模擬多路轉(zhuǎn)換器、A/D轉(zhuǎn)換器、SPI等電路)集成到一塊硅片上構(gòu)成一個(gè)小而完善的微型計(jì)算機(jī)。

      目前,單片機(jī)的程序存貯器一般都由可編程的FLASH存貯器組成,相對(duì)于原來(lái)的SRAM存儲(chǔ)器,具有不揮發(fā)性、高密度、低功耗、快速讀取、在線(xiàn)可重寫(xiě)等優(yōu)點(diǎn),可實(shí)現(xiàn)電子設(shè)備需求更改時(shí),不需更換設(shè)備上單片機(jī),只需重新改寫(xiě)單片機(jī)FLASH內(nèi)的軟件程序即可。隨著電子系統(tǒng)的發(fā)展,對(duì)其外形尺寸、重量的需求越來(lái)越高,電子系統(tǒng)機(jī)箱小型化、易維護(hù)性、可靠性等需求日益增長(zhǎng)。機(jī)箱越小,勢(shì)必造成機(jī)箱內(nèi)的電路板越來(lái)越小,這也造成機(jī)箱內(nèi)的電路板拆卸、維護(hù)、維修造成不便。而一般而言,電子系統(tǒng)的維護(hù)、維修需要對(duì)系統(tǒng)內(nèi)的單片機(jī)FLASH內(nèi)的軟件程序進(jìn)行改寫(xiě)升級(jí)即可,但電子系統(tǒng)的小型化,給單片機(jī)的軟件程序改寫(xiě)升級(jí)工作帶來(lái)不便。

      串行通信接口是微控制芯片單片機(jī)常用的通訊接口,本文以串行通信接口中最為常用的RS422接口,升級(jí)Silabs公司的C8051F120單片機(jī)為例,介紹利用RS422串口實(shí)現(xiàn)微控制器程序在線(xiàn)升級(jí)的方法。

      1 總體設(shè)計(jì)思路

      目前,多數(shù)單片機(jī)程序升級(jí)都是基于單片機(jī)的IAP(In-System programming)技術(shù),IAP技術(shù)是應(yīng)用在Flash程序存儲(chǔ)器的一種編程模式,它從結(jié)構(gòu)上將Flash存儲(chǔ)器映射為兩個(gè)存儲(chǔ)區(qū)域,通過(guò)運(yùn)行其中一個(gè)存儲(chǔ)區(qū)域上特定的IAP程序(在線(xiàn)升級(jí)基程序)接收PC上位機(jī)內(nèi)在線(xiàn)升級(jí)界面軟件的程序數(shù)據(jù),來(lái)對(duì)另一個(gè)存儲(chǔ)區(qū)域進(jìn)行編程操作,編程完成后跳轉(zhuǎn)到嵌入式設(shè)備內(nèi)單片機(jī)工作程序開(kāi)始運(yùn)行,利用RS422串口實(shí)現(xiàn)升級(jí)的示意圖如圖1所示。

      圖1 RS422串口升級(jí)微控制器程序的示意圖

      C8051F120采用高速、流水線(xiàn)結(jié)構(gòu)的CIP-51內(nèi)核,與MCS-51兼容,其內(nèi)部PLL可倍頻至100MHz,具有2個(gè)UART串口,128KB可在系統(tǒng)編程的Flash存儲(chǔ)器,8488字節(jié)的片上RAM,有JTAG接口可以直接下載程序可執(zhí)行代碼到Flash存儲(chǔ)器,完全具備單片機(jī)程序進(jìn)行RS422串口升級(jí)程序的條件。

      上位機(jī)與下位機(jī)之間應(yīng)先約定兩者之間的通訊協(xié)議,包括串行通訊的通訊格式檢測(cè)數(shù)據(jù)幀是否符合格式要求,以設(shè)置串行通訊時(shí)數(shù)據(jù)的數(shù)據(jù)位數(shù)、停止位數(shù)、奇偶校驗(yàn)、發(fā)送和接收的波特率,通訊的命令字、狀態(tài)字,以及每幀傳輸?shù)某绦驍?shù)據(jù)個(gè)數(shù)(一般一幀數(shù)據(jù)中包含1024個(gè)程序數(shù)據(jù)字節(jié))、錯(cuò)誤重發(fā)機(jī)制等。

      2 下位機(jī)軟硬件設(shè)計(jì)

      2.1下位機(jī)硬件設(shè)計(jì)

      在下位機(jī)機(jī)箱中的單片機(jī)C8051F120硬件設(shè)計(jì)如圖2所示,該單片機(jī)通過(guò)串口驅(qū)動(dòng)芯片MAX3491,配以相應(yīng)的匹配電阻,構(gòu)成串口驅(qū)動(dòng)電路,與上位機(jī)建立RS422串口通訊聯(lián)系。

      圖2 單片機(jī)RS422串口硬件設(shè)計(jì)示意圖

      圖3 下位機(jī)單片機(jī)升級(jí)軟件工作流程

      2.2下位機(jī)軟件設(shè)計(jì)

      該軟件設(shè)計(jì)僅為結(jié)合硬件電路系統(tǒng)及通訊協(xié)議給出的單片機(jī)C8051F120的部分程序,以設(shè)置RS422異步串行通訊時(shí)數(shù)據(jù)串的數(shù)據(jù)位數(shù)、停止位數(shù)、奇偶校驗(yàn)、發(fā)送和接收的波特率及中斷方式等。

      在單片機(jī)片內(nèi)的Flash存儲(chǔ)區(qū)域先劃定一定起始地址的IAP程序存儲(chǔ)區(qū)域和工作程序存放區(qū)域。IAP程序存儲(chǔ)區(qū)域用來(lái)存放下位機(jī)的IAP程序(在線(xiàn)升級(jí)基程序),以便IAP程序運(yùn)行后把上位機(jī)傳來(lái)的工作程序數(shù)據(jù)搬放到工作程序存放區(qū)域。

      下位機(jī)單片機(jī)軟件的工作過(guò)程為:

      單片機(jī)上電,先進(jìn)行單片機(jī)初始化工作,初始化完成后,向上位機(jī)發(fā)送程序裝載握手?jǐn)?shù)據(jù)幀。收到上位機(jī)發(fā)送的握手成功數(shù)據(jù)幀后,向上位機(jī)返回“發(fā)送下一幀程序數(shù)據(jù)幀”請(qǐng)求;收到上位機(jī)發(fā)送的程序數(shù)據(jù)幀后,擦除單片機(jī)FLASH上相應(yīng)區(qū)域的數(shù)據(jù)內(nèi)容,并將上位機(jī)傳來(lái)的程序數(shù)據(jù)寫(xiě)入剛擦除完畢的Flash區(qū)域,直到將最后一幀程序數(shù)據(jù)內(nèi)容寫(xiě)入單片機(jī)FLASH上相應(yīng)區(qū)域;讀取寫(xiě)入Flash區(qū)域的數(shù)據(jù),計(jì)算校驗(yàn)和并與上位機(jī)傳來(lái)的校驗(yàn)和比較,將比較結(jié)果返回給上位機(jī)。單片機(jī)上電后設(shè)計(jì)6秒內(nèi),上位機(jī)須返回握手?jǐn)?shù)據(jù),否則單片機(jī)進(jìn)入工作程序,不能再通過(guò)RS422串口進(jìn)行程序升級(jí)。單片機(jī)升級(jí)軟件工作流程如圖3所示。

      在本設(shè)計(jì)中,單片機(jī)C8051F120的串行波特率設(shè)置為115200,通訊格式為8位數(shù)據(jù)位,1位停止位,IAP程序(在線(xiàn)升級(jí)基程序)部分函數(shù)簡(jiǎn)化如下:

      void UART_Init( void )

      ……

      SCON0 = 0x50;

      SSTA0 = 0x05;

      ……

      void EraseFlash( unsigned int div )

      ……

      FLSCL | = 0x01;

      PSCTL | = 0x03;

      XBYTE[div * 0x400] = 0xFF;

      FLSCL & = ~0x01;

      PSCTL & = ~0x03;

      ……

      void Copy2Flash(unsigned int dst, unsigned char *src, unsigned int len)

      ……

      for(i=0;i< len;i++)

      Tmp = *(src+i);

      FLSCL | = 0x01;

      PSCTL | = 0x01;

      XBYTE[dst+i] = tmp;

      FLSCL & = ~0x01;

      PSCTL & = ~0x01;

      ……

      char ReadFlash(unsigned int n, unsigned int verify)

      ……

      for(i=0x400;i<n;i++)

      Check += (unsigned char)*(ptr+i);

      if(check == verify)

      return 1;

      else

      return 0;

      ……

      3 上位機(jī)軟硬件設(shè)計(jì)

      3.1上位機(jī)硬件設(shè)計(jì)

      上位機(jī)使用一臺(tái)帶有RS422串口功能的臺(tái)式PC機(jī)或其它兼容機(jī)均可,另需準(zhǔn)備一根PC機(jī)串口端口到下位機(jī)嵌入式設(shè)備單片機(jī)RS422數(shù)據(jù)接收端的線(xiàn)纜,PC機(jī)作為上位機(jī),通過(guò)串行通訊接口電纜與下位機(jī)電子機(jī)箱內(nèi)的單片機(jī)系統(tǒng)進(jìn)行數(shù)據(jù)交換。

      3.2上位機(jī)工作軟件設(shè)計(jì)

      上位機(jī)PC機(jī)軟件可采用VC++等高級(jí)語(yǔ)言將下位機(jī)單片機(jī)工作軟件程序可執(zhí)行代碼轉(zhuǎn)換為16進(jìn)制的Hex文件,根據(jù)上位機(jī)與下位機(jī)之間約定的通訊格式要求,將Hex文件依次分成若干個(gè)相同長(zhǎng)度(一般一幀數(shù)據(jù)中包含1024個(gè)程序數(shù)據(jù)字節(jié))的數(shù)據(jù)幀,并將上述數(shù)據(jù)幀通過(guò)串行通訊接口依次發(fā)送給下位機(jī)IAP程序(在線(xiàn)升級(jí)基程序)。其軟件界面如圖4示。

      圖4 上位機(jī)工作軟件界面

      上位機(jī)工作軟件工作流程為:點(diǎn)擊圖4上位機(jī)工作軟件中“轉(zhuǎn)化HEX”按鈕,將單片機(jī)工作軟件程序可執(zhí)行代碼轉(zhuǎn)換為16進(jìn)制的Hex文件;設(shè)置好上位機(jī)工作軟件界面上的“串口連接狀態(tài)選擇”;下位機(jī)電子箱內(nèi)單片機(jī)系統(tǒng)上電后,點(diǎn)擊“連接”按鈕,收到下位機(jī)發(fā)來(lái)的程序裝載握手?jǐn)?shù)據(jù)幀后,向下位機(jī)發(fā)送握手正確狀態(tài)數(shù)據(jù)幀;收到下位機(jī)發(fā)來(lái)的“發(fā)送下一幀程序數(shù)據(jù)幀請(qǐng)求”后,將單片機(jī)工作程序HEX文件及程序數(shù)據(jù)校驗(yàn)和按順序一幀一幀的發(fā)送給下位機(jī);收到下位機(jī)發(fā)送來(lái)的“發(fā)送程序數(shù)據(jù)錯(cuò)誤數(shù)據(jù)幀”后,重復(fù)發(fā)送上一幀單片機(jī)工作程序HEX文件數(shù)據(jù);將與下位機(jī)通訊的實(shí)時(shí)狀態(tài)顯示在“上位機(jī)軟件工作狀態(tài)”區(qū)域。

      上位機(jī)工作軟件部分簡(jiǎn)化程序如下:

      Void CFlashDonloadDlg:OnButtonStart()

      ……

      m_nTotalCont = file.GetLength();

      m_nDataLeft= m_nTotalCont;

      m_nVerify= 0;

      if( (m_nTotalCont%1024) == 0 )

      m_nToalFrame = m_nTotalCont/1024;

      else

      m_nToalFrame = m_nTotalCont/1024+1;

      ……

      for( int i=0x400;i< m_nTotalCont;i++ )

      m_nVerify + = (unsigned char)addArray[i];

      m_nVerify &= 0x0000FFFF;

      m_strEdit += “等待下位機(jī)握手信號(hào)… ”;

      ……

      4 結(jié)束語(yǔ)

      通過(guò)RS422串口實(shí)現(xiàn)對(duì)電子機(jī)箱等設(shè)備內(nèi)的微控制器進(jìn)行程序在線(xiàn)升級(jí),實(shí)現(xiàn)不打開(kāi)設(shè)備升級(jí)程序的方法,以解決現(xiàn)有電子系統(tǒng)機(jī)箱內(nèi)單片機(jī)軟件程序需開(kāi)箱改寫(xiě)升級(jí)的不足之處,提供一種直觀簡(jiǎn)單,設(shè)計(jì)流程短,可靠性高,不需打開(kāi)電子系統(tǒng)機(jī)箱,通過(guò)RS422串行異步通訊升級(jí)電子系統(tǒng)機(jī)箱內(nèi)微控制器軟件程序的方法,以提高工作效率。

      [1]楊光海,彭曉樂(lè)等.遠(yuǎn)程升級(jí)控制系統(tǒng)嵌入式設(shè)備程序的設(shè)計(jì)方法[J].工業(yè)控制計(jì)算機(jī),2016,6:18-19.

      [2]張麥龍,朱國(guó)強(qiáng).DSP平臺(tái)使用串口升級(jí)軟件的實(shí)現(xiàn)[J].信息與電腦(理論版),2012,08:166-167.

      [3]吳小艨,李正宇,周進(jìn)松.通過(guò)RS232串口實(shí)現(xiàn)DSP并行FLASH程序升級(jí)[J].通信技術(shù),2012,01:148-150.

      [4]汪晶晶,蘇建徽,孫佩石.基于串口通信的DSP應(yīng)用程序在線(xiàn)升級(jí)方法[J].微型機(jī)與應(yīng)用,2013,14:19-21,28.

      楊光海(1978—),大學(xué)本科,工程師,研究方向:嵌入式控制。

      猜你喜歡
      下位微控制器機(jī)箱
      發(fā)射機(jī)房監(jiān)控系統(tǒng)之下位機(jī)
      物聯(lián)網(wǎng)技術(shù)在微控制器實(shí)驗(yàn)教學(xué)中的應(yīng)用
      電子制作(2017年14期)2017-12-18 07:07:58
      景洪電廠監(jiān)控系統(tǒng)下位機(jī)數(shù)據(jù)傳輸網(wǎng)絡(luò)改造
      圍觀黨“下位”,吐槽帝“登基”
      CAN總線(xiàn)并發(fā)通信時(shí)下位機(jī)應(yīng)用軟件設(shè)計(jì)
      依舊出色 航嘉MVP機(jī)箱圖解
      電腦迷(2015年2期)2015-04-29 00:44:03
      Atmel針對(duì)新一代物聯(lián)網(wǎng)應(yīng)用發(fā)布全新32位微控制器
      最新STM32設(shè)計(jì)工具增加對(duì)混合信號(hào)微控制器的支持
      意法半導(dǎo)體(ST)推出世界首款基于ARM Cortex-M7的STM32 F7系列微控制器
      NI發(fā)布兩款NI CompactRIO擴(kuò)展機(jī)箱
      江城| 武安市| 丰顺县| 斗六市| 陈巴尔虎旗| 中方县| 宣威市| 平山县| 中江县| 许昌市| 皮山县| 新泰市| 梧州市| 蒙自县| 二手房| 荆门市| 大埔区| 铁岭市| 乌鲁木齐县| 巴林右旗| 桃江县| 政和县| 栖霞市| 临湘市| 青川县| 奉化市| 当涂县| 鄢陵县| 临邑县| 阿坝县| 建德市| 凤翔县| 阳高县| 龙陵县| 胶南市| 五河县| 北川| 吉林省| 铁力市| 桃源县| 定日县|