《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 嵌入式技術(shù) > 設(shè)計應(yīng)用 > 工程機械車載監(jiān)測終端軟件遠(yuǎn)程升級的實現(xiàn)
工程機械車載監(jiān)測終端軟件遠(yuǎn)程升級的實現(xiàn)
2015年電子技術(shù)應(yīng)用第5期
林曉松1,2,陳惠濱1,林少芬2,江小霞2
1.集美大學(xué) 信息工程學(xué)院,福建 廈門361021; 2.集美大學(xué) 輪機工程學(xué)院,福建 廈門361021
摘要: 針對工程機械車載監(jiān)測終端軟件遠(yuǎn)程升級和維護不方便的問題,提出一種基于LabVIEW和CDMA網(wǎng)絡(luò)的無線遠(yuǎn)程升級方法。基于LabVIEW設(shè)計的應(yīng)用程序升級平臺可通過以太網(wǎng)將嵌入式單片機應(yīng)用程序按照制定的協(xié)議標(biāo)準(zhǔn)分包,并發(fā)送到遠(yuǎn)程車載監(jiān)測終端,終端通過CDMA無線網(wǎng)絡(luò)獲取并解析數(shù)據(jù)。在IAP軟件升級過程中,采用CRC16校驗方式降低通信過程的誤碼率,保證應(yīng)用程序遠(yuǎn)程升級的準(zhǔn)確性,提高了工程機械車載監(jiān)測終端的可維護性。
中圖分類號: TP393
文獻標(biāo)識碼: A
文章編號: 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 引言

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

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

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

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

jsj4-t1.gif

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

2 電源電路設(shè)計

    由于ATMEGA128單片機需要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起電源保護作用,防止外界電源反向時燒壞電路板;極性電容C101、C103、C203和無極性電容C102、C201、C202分別兩兩并聯(lián),對電源進行濾波,使輸出電壓更加穩(wěn)定。

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

3.1 升級平臺軟件設(shè)計

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

jsj4-t3.gif

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

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

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

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

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

jsj4-t4.gif

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

3.2.3 通信協(xié)議制定

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

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

jsj4-b1.gif

jsj4-b2.gif

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

jsj4-t5.gifjsj4-t5.gif

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

4 系統(tǒng)測試

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

jsj4-t6.gif

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

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

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

參考文獻

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

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

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

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

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

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

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

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

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

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

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