新聞中心

EEPW首頁 > 手機(jī)與無線通信 > 設(shè)計(jì)應(yīng)用 > 基于GPRS的嵌入式系統(tǒng)軟件的遠(yuǎn)程在線升級(jí)

基于GPRS的嵌入式系統(tǒng)軟件的遠(yuǎn)程在線升級(jí)

作者: 時(shí)間:2009-05-11 來源:網(wǎng)絡(luò) 收藏

3 服務(wù)器端的設(shè)計(jì)
3.1 升級(jí)文件傳輸?shù)臄?shù)據(jù)格式
為了達(dá)到快速準(zhǔn)確升級(jí)的目的,首先對(duì)原始的升級(jí)代碼(Intel Hex文件)進(jìn)行打包,然后加人相應(yīng)的數(shù)據(jù)包ID號(hào)和校驗(yàn)碼,并定義數(shù)據(jù)包長(zhǎng)度≤256個(gè)字節(jié),以適應(yīng)G:PRS通信方式對(duì)數(shù)據(jù)包長(zhǎng)度的要求,避免出現(xiàn)頻繁掉線和發(fā)送不出去的問題。具體的數(shù)據(jù)包格式如下:數(shù)據(jù)包格式:PacklD+起始地址+長(zhǎng)度+數(shù)據(jù)+校驗(yàn)碼;PackID:一個(gè)完整的數(shù)據(jù)包為一個(gè)記錄,下一個(gè)數(shù)據(jù)包的記錄號(hào)自動(dòng)加1;起始地址:燒寫數(shù)據(jù)的FLASH首地址。即數(shù)據(jù)部分中包含的第一條數(shù)據(jù)的記錄地址+線性擴(kuò)展地址;長(zhǎng)度:該包數(shù)據(jù)部分的字節(jié)數(shù);數(shù)據(jù):同一個(gè)擴(kuò)展線性地址記錄內(nèi)且地址連續(xù)的數(shù)據(jù)記錄的數(shù)據(jù)域。當(dāng)讀到一個(gè)擴(kuò)展線性地址記錄號(hào)后,將此擴(kuò)展線性地址記錄號(hào)內(nèi)的數(shù)據(jù)區(qū)域打包成256個(gè)字節(jié)之內(nèi)的數(shù)據(jù)包,超過256個(gè)字節(jié)或讀到下一個(gè)擴(kuò)展線性記錄號(hào)時(shí)則另起一個(gè)新的數(shù)據(jù)包;校驗(yàn)碼:CRC循環(huán)冗余校驗(yàn)碼。
3.2 服務(wù)器端主要程序流程
服務(wù)器端主要程序流程圖如圖4和圖5所示。服務(wù)器先把升級(jí)文件的路徑配置完畢,并將要升級(jí)的目標(biāo)程序代碼按照第3.1節(jié)所示的數(shù)據(jù)包格式進(jìn)行打包。并對(duì)每個(gè)數(shù)據(jù)包進(jìn)行編號(hào)。

接著如圖4所示,服務(wù)器發(fā)送升級(jí)指令,并通過網(wǎng)絡(luò)透明傳輸?shù)?a class="contentlabel" href="http://m.butianyuan.cn/news/listbylabel/label/遠(yuǎn)程">遠(yuǎn)程終端。如果當(dāng)前運(yùn)行的用戶程序代碼在1區(qū),則將2區(qū)升級(jí)數(shù)據(jù)發(fā)送給終端,否則將2區(qū)升級(jí)數(shù)據(jù)發(fā)送給終端。由于地形和環(huán)境因素的影響,網(wǎng)絡(luò)在遠(yuǎn)程通信過程中可能出現(xiàn)阻塞或斷開的情況。
如果服務(wù)器在一定的時(shí)間內(nèi)沒有收到遠(yuǎn)程終端的應(yīng)答信號(hào),則重發(fā),如果三次重發(fā)失敗則保存成功接收到的數(shù)據(jù)塊ID號(hào)和數(shù)據(jù)校驗(yàn)碼,進(jìn)入斷點(diǎn)續(xù)傳。升級(jí)文件傳輸完畢則發(fā)送跳轉(zhuǎn)指令,使遠(yuǎn)程終端執(zhí)行新的程序代碼。
3.3 服務(wù)器端西己置表
服務(wù)器端升級(jí)配置表中重要字段的配置如下:
這些字段將服務(wù)器和遠(yuǎn)程終端緊密地聯(lián)系起來,使得編程思路更加清晰,Update ID標(biāo)志了用戶程序目前所在存儲(chǔ)區(qū);Update User Zone為升級(jí)做好文件配置準(zhǔn)備工作,LastOrder為斷點(diǎn)續(xù)傳做好準(zhǔn)備,保證整個(gè)程序的緊密性以及可靠性。

4 結(jié) 語
該方案采用應(yīng)答機(jī)制、斷點(diǎn)續(xù)傳、CRC校驗(yàn)等技術(shù),充分利用ARM芯片內(nèi)部FLASH存儲(chǔ)器資源,通過網(wǎng)絡(luò),實(shí)現(xiàn)對(duì)ARM終端的進(jìn)行遠(yuǎn)程,解決了大型分布式監(jiān)控遠(yuǎn)程終端和維護(hù)問題。該方案已經(jīng)成功地應(yīng)用在南京航道局的航標(biāo)自動(dòng)監(jiān)測(cè)系統(tǒng)中,該系統(tǒng)有600多盞安裝有終端的航標(biāo)燈,對(duì)該系統(tǒng)進(jìn)行僅耗時(shí)20 min,且一次性升級(jí)成功。實(shí)踐證明,該方案的實(shí)施可有效降低工程復(fù)雜度,縮短升級(jí)時(shí)間,節(jié)約升級(jí)、維護(hù)成本,同時(shí)具有升級(jí)成功率高和升級(jí)速度快的特點(diǎn)。

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

存儲(chǔ)器相關(guān)文章:存儲(chǔ)器原理



上一頁 1 2 下一頁

評(píng)論


相關(guān)推薦

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

關(guān)閉