新聞中心

EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 基于GPRS的嵌入式系統(tǒng)遠(yuǎn)程監(jiān)控和升級(jí)

基于GPRS的嵌入式系統(tǒng)遠(yuǎn)程監(jiān)控和升級(jí)

作者: 時(shí)間:2010-07-07 來(lái)源:網(wǎng)絡(luò) 收藏

2.1 原理
 如表1所示,接收遠(yuǎn)程命令是對(duì)命令郵件的讀取。命令郵件由兩部分構(gòu)成:主題命令和郵件內(nèi)容。主題命令(即郵件的主題)為單個(gè)小寫(xiě)英文字母,不同的字母代表著將要完成的功能;郵件內(nèi)容則包括了系統(tǒng)的新參數(shù)、需反饋的數(shù)據(jù)文件名、新的DSP程序等具體數(shù)據(jù)信息。

本文引用地址:http://m.butianyuan.cn/article/151736.htm


 系統(tǒng)發(fā)送的郵件包括數(shù)據(jù)文件和報(bào)告文件,都以電子郵件附件的形式傳送。數(shù)據(jù)文件反映系統(tǒng)采集的物理數(shù)據(jù)或自身的狀態(tài)信息;報(bào)告文件則是對(duì)每次命令的回執(zhí),表明本次操作是否成功。
2.2 中郵件的讀取和發(fā)送
 系統(tǒng)遠(yuǎn)程監(jiān)控時(shí)檢查郵箱中郵件的流程如圖4所示。所發(fā)送郵件的主題subject即代表了系統(tǒng)需要完成的任務(wù),例如“修改系統(tǒng)參數(shù)”、“發(fā)送自檢報(bào)告”、“索取指定文件”和“更新DSP程序”的郵件主題分別是單個(gè)小寫(xiě)字母a、b、c、d,而其余類型主題的郵件都被系統(tǒng)識(shí)別為無(wú)效郵件而濾掉。因此,系統(tǒng)在讀取郵件時(shí),先選出符合系統(tǒng)要求的郵件加入命令列表,再根據(jù)其代表的命令實(shí)現(xiàn)相應(yīng)的功能。其中,最后一步刪除郵件是為下次讀郵件做準(zhǔn)備,保證了系統(tǒng)再次讀取的郵件都是最新的,避免了對(duì)已讀郵件的重復(fù)操作,提高了可靠性。

 系統(tǒng)以電子郵件附件的形式發(fā)送數(shù)據(jù)文件和報(bào)告文件。實(shí)驗(yàn)中發(fā)現(xiàn),當(dāng)發(fā)送的郵件小于2 KB時(shí)偶而會(huì)出現(xiàn)發(fā)送“偽成功”的情況,即程序顯示郵件發(fā)送成功,但郵箱中卻沒(méi)有收到郵件。所以,在發(fā)送小于2 KB的郵件時(shí),先用“空格”將其補(bǔ)足2 KB后再發(fā)送。實(shí)驗(yàn)證明,在進(jìn)行郵件大小補(bǔ)足后,沒(méi)有再出現(xiàn)過(guò)“偽成功”的現(xiàn)象。
3 系統(tǒng)的遠(yuǎn)程
 系統(tǒng)網(wǎng)絡(luò),完成對(duì)郵箱中DSP新程序代碼的讀取,然后利用串口通信和Bootloader技術(shù)實(shí)現(xiàn)DSP程序的遠(yuǎn)程。系統(tǒng)內(nèi)部的ARM和DSP采用串口通信,統(tǒng)一了兩端收發(fā)數(shù)據(jù)的格式并建立了可靠的數(shù)據(jù)傳輸機(jī)制,保證了通信的穩(wěn)定性。
3.1 遠(yuǎn)程系統(tǒng)DSP程序原理
 系統(tǒng)采用TI公司的TMS320VC5509芯片作為主控單元。TMS320VC5509片內(nèi)具有128 KB的高速靜態(tài)RAM,片內(nèi)ROM中固化了引導(dǎo)加載程序Bootloader(簡(jiǎn)稱“DSP5509”),其Bootloader設(shè)置為外部SPI串行啟動(dòng)模式,外部?jī)?chǔ)存媒介為 Flash。系統(tǒng)上電后,DSP5509在Bootloader引導(dǎo)下自動(dòng)加載儲(chǔ)存在片外Flash指定地址空間中的程序到片內(nèi)的高速RAM中運(yùn)行。
 遠(yuǎn)程升級(jí)系統(tǒng)中,DSP程序是DSP5509的Bootloader技術(shù)[7]。將新的DSP5509程序按照一定的格式編碼后發(fā)送到系統(tǒng)指定的郵箱中,系統(tǒng)利用模塊訪問(wèn)此郵箱并讀取出新程序,然后將新程序通過(guò)串口發(fā)送給DSP5509且保存到片外Flash的指定地址空間中。發(fā)送和保存結(jié)束后自動(dòng)復(fù)位并重啟DSP5509,在Bootloader的引導(dǎo)下DSP5509從外部Flash中加載并運(yùn)行新程序,從而完成DSP5509程序的更新升級(jí)。
3.2 系統(tǒng)遠(yuǎn)程升級(jí)時(shí)的流程
 在系統(tǒng)進(jìn)行遠(yuǎn)程升級(jí)時(shí),內(nèi)部的DSP和ARM之間存在著較大數(shù)據(jù)量的傳送,必須建立可靠的數(shù)據(jù)傳輸機(jī)制才能保證通信的穩(wěn)定性。因此,系統(tǒng)將待發(fā)送的數(shù)據(jù)進(jìn)行分割以分組形式傳輸,即將待發(fā)送的M字節(jié)數(shù)據(jù)分割成(x+1)組發(fā)送,前x組每次發(fā)送m=M/x個(gè)(M/x取整)字節(jié),最后一組發(fā)送剩下的s=(M-m×x)個(gè)字節(jié)(若M/x為整數(shù),則只需發(fā)送x組數(shù)據(jù))。同時(shí),DSP或ARM每次發(fā)送的數(shù)據(jù)格式均為3in1模式,即:(第1個(gè)字節(jié)表示本次發(fā)送數(shù)據(jù)的字節(jié)數(shù)+中間部分為m或者s字節(jié)的數(shù)據(jù)+最后1個(gè)字節(jié)為數(shù)據(jù)的CRC校驗(yàn)碼),如圖5所示。

遠(yuǎn)程升級(jí)DSP程序時(shí),DSP端程序流程如圖6所示。ARM將從郵箱中讀取新程序代碼傳送給DSP,數(shù)據(jù)的傳送采用基于CRC8校驗(yàn)的數(shù)據(jù)傳輸方式。其中,DSP先將ARM發(fā)送來(lái)的數(shù)據(jù)保存到Flash中(地址為70000h~7FFFFh的sector7中)。在確保DSP正確無(wú)誤地接收完所有從ARM發(fā)送來(lái)的程序代碼后,才將sector7中的數(shù)據(jù)轉(zhuǎn)存到地址為00000h~0FFFFh的sector0中。sector0是DSP指定外部?jī)?chǔ)存程序的地址空間,保證了遠(yuǎn)程升級(jí)的可靠性。如果傳輸過(guò)程中重傳次數(shù)超過(guò)上限N,則說(shuō)明此次傳輸可靠性降低,系統(tǒng)取消本次升級(jí),保證系統(tǒng)的安全與穩(wěn)定。

linux操作系統(tǒng)文章專題:linux操作系統(tǒng)詳解(linux不再難懂)


評(píng)論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉