《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 嵌入式技術(shù) > 設(shè)計(jì)應(yīng)用 > 工程機(jī)械車載監(jiān)測終端軟件遠(yuǎn)程升級(jí)的實(shí)現(xiàn)
工程機(jī)械車載監(jiān)測終端軟件遠(yuǎn)程升級(jí)的實(shí)現(xiàn)
2015年電子技術(shù)應(yīng)用第5期
林曉松1,,2,陳惠濱1,林少芬2,江小霞2
1.集美大學(xué) 信息工程學(xué)院,福建 廈門361021; 2.集美大學(xué) 輪機(jī)工程學(xué)院,福建 廈門361021
摘要: 針對(duì)工程機(jī)械車載監(jiān)測終端軟件遠(yuǎn)程升級(jí)和維護(hù)不方便的問題,,提出一種基于LabVIEW和CDMA網(wǎng)絡(luò)的無線遠(yuǎn)程升級(jí)方法?;贚abVIEW設(shè)計(jì)的應(yīng)用程序升級(jí)平臺(tái)可通過以太網(wǎng)將嵌入式單片機(jī)應(yīng)用程序按照制定的協(xié)議標(biāo)準(zhǔn)分包,,并發(fā)送到遠(yuǎn)程車載監(jiān)測終端,終端通過CDMA無線網(wǎng)絡(luò)獲取并解析數(shù)據(jù),。在IAP軟件升級(jí)過程中,,采用CRC16校驗(yàn)方式降低通信過程的誤碼率,保證應(yīng)用程序遠(yuǎn)程升級(jí)的準(zhǔn)確性,,提高了工程機(jī)械車載監(jiān)測終端的可維護(hù)性,。
中圖分類號(hào): TP393
文獻(xiàn)標(biāo)識(shí)碼: A
文章編號(hào): 0258-7998(2015)05-0156-03
Implementation of remote upgrade of monitoring terminal software in construction vehicle
Lin Xiaosong1,2,,Chen Huibin1,,Lin Shaofen2,Jiang Xiaoxia2
1.Information Engineering Institute,,Jimei University,Xiamen 361021,,China,; 2.Marine Engineering Institute,Jimei University,,Xiamen 361021,,China
Abstract: Aiming at the problems of remote software upgrading and maintenance of monitoring terminal for construction vehicle,a method of wireless remote upgrade based on LabVIEW,,CDMA network and ATMEGA128 is put forward. The designed software of upgrade platform based on LabVIEW allows application program to be sent to the remote monitoring terminal of construction vehicle according to the designed protocol standards, and the terminals obtains and analyses the data via CDMA wireless network. During the update, the CRC16 is used to reduce the BER(Bit Error Rate) in communication, which guarantees the accuracy of remote software upgrade and improves the maintainability of monitoring terminal for construction vehicle.
Key words : remote upgrade,;IAP;CDMA,;communication protocol

   

0 引言

    長期以來,,工程機(jī)械安全作業(yè)形式嚴(yán)峻,開發(fā)面向工程機(jī)械的車載監(jiān)測終端可有效地監(jiān)測工程機(jī)械的施工狀態(tài),、預(yù)警故障等,,為故障診斷提供方便[1]。然而,,若車載監(jiān)測終端軟件出現(xiàn)故障或需要增加程序功能,,技術(shù)人員需要到現(xiàn)場下載程序,,這使車載監(jiān)測終端的升級(jí)和維護(hù)受到了距離和環(huán)境的限制[2,3],。因此,,需要建立一套行之有效的遠(yuǎn)程升級(jí)方案,提高車載監(jiān)測終端的可維護(hù)性[4],。

    本文以文獻(xiàn)[5]中的工程機(jī)械車載測試終端為軟件升級(jí)對(duì)象,,將STC89LE516RD主控制器換成具有IAP(In Application Programming)功能的ATMEGA128單片機(jī),提出一種基于LabVIEW,、CDMA網(wǎng)絡(luò)的工程機(jī)械車載監(jiān)測終端的遠(yuǎn)程升級(jí)方案,,實(shí)現(xiàn)穩(wěn)定可靠、掉電可恢復(fù)的軟件遠(yuǎn)程升級(jí)目的,。此方法還可用于其他具有IAP功能的監(jiān)測終端中[6-8],, 具有廣闊的應(yīng)用前景。

1 遠(yuǎn)程升級(jí)系統(tǒng)總體結(jié)構(gòu) 

    遠(yuǎn)程升級(jí)系統(tǒng)整體結(jié)構(gòu)如圖1所示,,由應(yīng)用程序升級(jí)平臺(tái),、以太網(wǎng)及CDMA運(yùn)營商無線通信網(wǎng)絡(luò)和工程機(jī)械車載監(jiān)測終端三部分組成。

jsj4-t1.gif

    應(yīng)用程序升級(jí)平臺(tái)由LabVIEW軟件設(shè)計(jì)而成,,主要實(shí)現(xiàn)讀取并解析ATMEGA128單片機(jī)的HEX,、BIN等格式的機(jī)器碼文件,通過網(wǎng)絡(luò)運(yùn)營商獲取Internet的IP地址,,由用戶選擇指定的客戶端IAP終端平臺(tái)進(jìn)行更新,,或客戶端平臺(tái)主動(dòng)請(qǐng)求更新,并根據(jù)制訂的通信協(xié)議應(yīng)用程序以網(wǎng)絡(luò)數(shù)據(jù)包的形式傳輸?shù)竭h(yuǎn)程工程機(jī)械車載監(jiān)測終端,。運(yùn)行于車載監(jiān)測終端的BootLoader程序通過CDMA無線網(wǎng)絡(luò)接收并解析應(yīng)用程序升級(jí)平臺(tái)發(fā)送的數(shù)據(jù),,經(jīng)CRC校驗(yàn)碼校驗(yàn)無誤后,完成對(duì)應(yīng)用程序Flash存儲(chǔ)區(qū)域更新寫入的操作,。最后由BootLoader程序跳轉(zhuǎn)到應(yīng)用程序Flash存儲(chǔ)區(qū)復(fù)位地址開始處運(yùn)行更新后的應(yīng)用程序,。

2 電源電路設(shè)計(jì)

    由于ATMEGA128單片機(jī)需要3.3 V電壓供電,而其他外圍芯片需要5 V電壓供電,,因此電源模塊需提供3.3 V和5 V電壓,。電源模塊的原理圖如圖2所示。

jsj4-t2.gif

    外部9 V直流變壓器接入J1,,通過5 V穩(wěn)壓芯片LM7805產(chǎn)生5 V電壓,,再經(jīng)過電壓轉(zhuǎn)換芯片AS1117(5 V~

3.3 V的轉(zhuǎn)換)的轉(zhuǎn)換,產(chǎn)生3.3 V的穩(wěn)壓電源,。圖中二極管VD1起電源保護(hù)作用,,防止外界電源反向時(shí)燒壞電路板;極性電容C101,、C103,、C203和無極性電容C102,、C201、C202分別兩兩并聯(lián),,對(duì)電源進(jìn)行濾波,,使輸出電壓更加穩(wěn)定。

3 系統(tǒng)軟件設(shè)計(jì)

3.1 升級(jí)平臺(tái)軟件設(shè)計(jì)

    圖3表示升級(jí)平臺(tái)程序流程,。升級(jí)平臺(tái)首先完成對(duì)ATMEGA128單片機(jī)的HEX,、BIN等格式的機(jī)器碼文件的讀取和解析;然后偵聽端口上是否有終端接入,,如果有,,則按照通信協(xié)議規(guī)定的客戶端一次性接收數(shù)據(jù)量大小,將文件分解成多個(gè)128 B小數(shù)據(jù)包,,直到數(shù)據(jù)索引結(jié)束,,最后一包的數(shù)據(jù)若不滿128 B,按照實(shí)際的數(shù)據(jù)量大小封裝,,每個(gè)小數(shù)據(jù)包尾部加入CRC16校驗(yàn)值,;最后,利用LabVIEW平臺(tái)提供的以太網(wǎng)傳輸層TCP協(xié)議,,將各個(gè)小數(shù)據(jù)包按照順序依次發(fā)送到遠(yuǎn)程的工程機(jī)械車載監(jiān)測終端,。

jsj4-t3.gif

3.2 車載監(jiān)測終端程序遠(yuǎn)程升級(jí)設(shè)計(jì)

3.2.1 程序遠(yuǎn)程升級(jí)原理

    ATmega128的Flash程序存儲(chǔ)器分為兩個(gè)區(qū):應(yīng)用代碼區(qū)和Boot加載區(qū)。應(yīng)用代碼區(qū)是Flash用來存儲(chǔ)應(yīng)用代碼的區(qū)域,。由于對(duì)Flash ROM寫操作SPM(Store Program Memory)指令在應(yīng)用區(qū)執(zhí)行時(shí)是無效的,,應(yīng)用區(qū)不能用來存儲(chǔ)Boot代碼。Boot加載區(qū)用來存儲(chǔ)Boot加載軟件, SPM指令只有在Boot加載區(qū)中執(zhí)行時(shí)才能夠完成對(duì)Flash ROM的寫操作,。ATmega128 中的Boot加載程序可以利用任何可用的數(shù)據(jù)接口和相關(guān)的協(xié)議來讀取代碼并且將其寫入(編程)Flash ROM,,或者從程序存儲(chǔ)器中讀取代碼[9]

3.2.2 車載監(jiān)測終端程序遠(yuǎn)程升級(jí)

    圖4表示車載監(jiān)測終端程序遠(yuǎn)程升級(jí)流程,,主要包括CDMA網(wǎng)絡(luò)的通信、協(xié)議解析和應(yīng)用程序更新3個(gè)功能,。

jsj4-t4.gif

    當(dāng)串口接收中斷發(fā)生時(shí),,ATmega128調(diào)用接收中斷子程序讀取新程序代碼,并計(jì)算CRC16值,,驗(yàn)證接收到的數(shù)據(jù)是否正確,。只有確保接收到的數(shù)據(jù)完全正確,ATmega128才調(diào)用IAP子程序,,將代碼寫入Flash程序存儲(chǔ)器,。其中IAP子程序詳見文獻(xiàn)[9]。為了提高數(shù)據(jù)通信可靠性,,數(shù)據(jù)傳輸過程中,,傳輸?shù)挠行?shù)據(jù)位數(shù)為128 B,,但I(xiàn)AP程序?qū)lash寫操作時(shí),一次只能寫一頁,,即256 B的數(shù)據(jù),,因此在校驗(yàn)正確的情況下,需要兩次傳輸過程才能完成一個(gè)完整頁的數(shù)據(jù)傳輸,,并執(zhí)行應(yīng)用程序區(qū)Flash頁寫入功能,。如果寫入出錯(cuò),且超過5次,,則向服務(wù)器返回出錯(cuò)命令,;反之則向服務(wù)器發(fā)送正確指令。為了解決程序下載時(shí)終端斷電造成的故障,,在應(yīng)用程序區(qū)段,,用第一條語句跳轉(zhuǎn)至Boot區(qū)段,讀取寫碼操作開始標(biāo)志位(此標(biāo)志位被寫入EEPROM 中),,若該標(biāo)志位被置位,,則跳轉(zhuǎn)至應(yīng)用程序區(qū)段繼續(xù)運(yùn)行程序,否則繼續(xù)守候在Boot區(qū)段直到升級(jí)完成[10],。

3.2.3 通信協(xié)議制定

    為保證升級(jí)平臺(tái)端進(jìn)行效率高,、可靠性強(qiáng)的數(shù)據(jù)通信,本文制定了雙方通信的協(xié)議及規(guī)則,。通信協(xié)議對(duì)數(shù)據(jù)格式,、同步方式、傳送速度,、傳送步驟,、檢錯(cuò)方式以及控制字符定義等問題做出統(tǒng)一規(guī)定,通信雙方必須共同遵守,。

    表1為升級(jí)平臺(tái)端命令格式,,表2為監(jiān)測終端命令格式。起始位和結(jié)束位用于標(biāo)示數(shù)據(jù)串的起止范圍,;數(shù)據(jù)長度為除了起始位和結(jié)束位外的數(shù)據(jù)總字節(jié),;校驗(yàn)位采用CRC16校驗(yàn)。

jsj4-b1.gif

jsj4-b2.gif

    根據(jù)升級(jí)平臺(tái)端和監(jiān)測終端的通信協(xié)議,,建立如圖5所示的通信握手過程,。

jsj4-t5.gifjsj4-t5.gif

    車載監(jiān)測終端監(jiān)測是否有特定的電話號(hào)碼撥入,如果匹配電話號(hào)碼成功,,則終端通過CDMA Modern撥號(hào)接入電信服務(wù)器獲取IP,,向升級(jí)平臺(tái)發(fā)送終端就緒命令;升級(jí)平臺(tái)獲得當(dāng)前終端的IP地址,,采用TCP協(xié)議向終端下載程序代碼,,終端發(fā)送確認(rèn)回執(zhí)后,,進(jìn)行下一輪的數(shù)據(jù)交互,直到數(shù)據(jù)傳輸結(jié)束,。兩者之間的通信采用阻塞式通信,,確保數(shù)據(jù)正確完整地下載到終端。中間引入超時(shí)機(jī)制,,防止通信過程的死鎖,。

4 系統(tǒng)測試

    在進(jìn)行升級(jí)平臺(tái)軟件調(diào)試時(shí),采用“網(wǎng)絡(luò)調(diào)試助手”作為監(jiān)測終端,,進(jìn)行數(shù)據(jù)交互測試,。以HEX格式文件為例,運(yùn)行升級(jí)平臺(tái)測試程序,,設(shè)置偵聽端口號(hào)為“6341”,,選擇com.hex文件;打開“網(wǎng)絡(luò)調(diào)試助手”,,選擇協(xié)議類型為“TCP客戶端”,,輸入升級(jí)平臺(tái)IP和偵聽端口號(hào),建立終端和升級(jí)平臺(tái)的網(wǎng)絡(luò)通信,。圖6表示LabVIEW分包發(fā)送數(shù)據(jù)的界面,。

jsj4-t6.gif

    當(dāng)終端接收到最后一包數(shù)據(jù)時(shí),若數(shù)據(jù)出錯(cuò),,則向升級(jí)平臺(tái)發(fā)送“通信出錯(cuò)”的代碼,,升級(jí)平臺(tái)重新發(fā)送該數(shù)據(jù)包;若數(shù)據(jù)正確,,則向升級(jí)平臺(tái)發(fā)送“通信正確”的代碼,,升級(jí)平臺(tái)斷開與終端的連接。

    在進(jìn)行車載監(jiān)測終端遠(yuǎn)程升級(jí)調(diào)試時(shí),,采用黑盒調(diào)試法,。首先,利用Jtag開發(fā)器將Bootloader調(diào)試程序下載到開發(fā)板(Bootloader主程序如下所示),;其次,,運(yùn)行“網(wǎng)絡(luò)調(diào)試助手”,設(shè)置相應(yīng)參數(shù)和終端建立以太網(wǎng)通信,,并依次向TCP網(wǎng)絡(luò)發(fā)送由升級(jí)平臺(tái)調(diào)試得到的正確數(shù)據(jù)包。當(dāng)最后一包數(shù)據(jù)傳輸完畢,,開發(fā)板進(jìn)入休眠狀態(tài),,使用AVR studio讀取開發(fā)板應(yīng)用程序區(qū)的Flash數(shù)據(jù),檢驗(yàn)是否寫入數(shù)據(jù),。通過原始數(shù)據(jù)包和Flash數(shù)據(jù)對(duì)比可看出,,數(shù)據(jù)完全相同,,終端已實(shí)現(xiàn)軟件遠(yuǎn)程升級(jí)。

Bootloader調(diào)試程序:

void main(void) 

{

    unsigned char seviseip[]=

{"61.152.124.198"};

    unsigned char  seviseport[]={"6341"};

    MCUCR|=0X02;//轉(zhuǎn)移中斷向量表至boot程序區(qū)

    SystemInit();//初始化

    OpenPort(3,1);//開串口

    SREG=0X80;//打開全局中斷

    ATTCP(seviseip,seviseport);//連入TCP網(wǎng)絡(luò)

    pagewrite();//執(zhí)行IAP功能的函數(shù)

}

5 結(jié)論

    本文將ATMEGA128 IAP技術(shù)應(yīng)用于工程機(jī)械車載監(jiān)測終端軟件遠(yuǎn)程升級(jí),,提高了車載監(jiān)測終端的可維護(hù)性,;采用LabVIEW Socket網(wǎng)絡(luò)套接字構(gòu)建了TCP服務(wù)器應(yīng)用程序,程序具有對(duì)HEX,、BIN等格式的機(jī)器碼文件的解析和分包功能,;規(guī)范了升級(jí)平臺(tái)和工程機(jī)械車載監(jiān)測終端之間阻塞式通信交互過程,采取了 IAP 軟件升級(jí)過程的可靠性和掉電保護(hù)措施,。

參考文獻(xiàn)

[1] 金敏,,羅恩澤,周翔.面向工程機(jī)械遠(yuǎn)程智能監(jiān)控的無線通信協(xié)議[J].中國機(jī)械工程,,2011,,22(19):2316-2324.

[2] 成強(qiáng),周月英,,周慶民,,等.程序可遠(yuǎn)程升級(jí)的數(shù)據(jù)采集終端的設(shè)計(jì)[J].河南大學(xué)學(xué)報(bào):自然科學(xué)版,2010,,40(4):353-356.

[3] 羅文,,王莉娜,肖鯤.基于GPRS的嵌入式系統(tǒng)遠(yuǎn)程監(jiān)控和升級(jí)[J].電子技術(shù)應(yīng)用,,2010,,36(5):159-162.

[4] 朱偉斌,張濤,,顧海濤,,等.基于CDMA網(wǎng)絡(luò)的嵌入式設(shè)備遠(yuǎn)程升級(jí)系統(tǒng)[J].電子技術(shù)應(yīng)用,2014,,40(2):135-138.

[5] 江小霞,,林建輝,周永征.工程機(jī)械車載測試系統(tǒng)的研發(fā)[J].電子測量與儀器學(xué)報(bào),,2009,,23(4):107-111.

[6] 李衛(wèi)紅,張凌云,,陳天喜,,等.基于IAP程序遠(yuǎn)程更新設(shè)計(jì)在車載乘客信息顯示器中的應(yīng)用[J].機(jī)車電傳動(dòng),2012,,5(2):79-81.

[7] 張雙鑼,,郎沁爭,肖鐵軍.供暖節(jié)能監(jiān)控系統(tǒng)的無線遠(yuǎn)傳協(xié)調(diào)器設(shè)計(jì)[J].計(jì)算機(jī)測量與控制,2012,,20(5):1251-1254.

[8] 諸德宏,,張介環(huán).具有遠(yuǎn)程升級(jí)功能的小區(qū)電能監(jiān)測系統(tǒng)[J].電子器件,2014,,37(4):733-736.

[9] 陳惠濱,,黃海.ATMega128 IAP技術(shù)在移動(dòng)數(shù)據(jù)采集器中的應(yīng)用[J].電子器件,2005,,28(1):101-104.

[10] 田日才,,王國鵬,梁學(xué)東.ATMEGA128單片機(jī)的軟件遠(yuǎn)程升級(jí)[J].電子技術(shù)應(yīng)用,,2003,,29(11):23-25.

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載,。