新聞中心

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

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

作者: 時(shí)間:2009-05-11 來(lái)源:網(wǎng)絡(luò) 收藏
0 引 言
隨著電子技術(shù)、計(jì)算機(jī)技術(shù)和通信技術(shù)的迅猛發(fā)展,已經(jīng)廣泛應(yīng)用于工業(yè)、軍事、通信、信息家電等領(lǐng)域,但是面對(duì)新技術(shù)的不斷涌現(xiàn)和對(duì)功能、性能以及規(guī)模要求的不斷提高,開發(fā)者必須能夠針對(duì)客戶的需求及時(shí)對(duì)進(jìn)行升級(jí)或維護(hù),以延長(zhǎng)系統(tǒng)使用周期,改善系統(tǒng)性能,增強(qiáng)系統(tǒng)適應(yīng)性。
傳統(tǒng)的系統(tǒng)升級(jí)方式通常由維護(hù)人員到達(dá)設(shè)備現(xiàn)場(chǎng),開箱重寫或者更換FLASH存儲(chǔ)部件,當(dāng)設(shè)備數(shù)目龐大并且分布范圍廣泛時(shí),這種升級(jí)維護(hù)方式的工作量將非常大,而且耗費(fèi)的時(shí)間長(zhǎng)、成本高。近年來(lái)通過(guò)以太網(wǎng)和在FLASH上建立TFFS文件系統(tǒng)的方法,能很好地解決批量升級(jí)的問(wèn)題。但對(duì)于野外偏遠(yuǎn)地區(qū)或海上等有線網(wǎng)絡(luò)無(wú)法到達(dá)的地方,此方法也難以實(shí)現(xiàn)。
在此提出系統(tǒng)方案,利用網(wǎng)絡(luò)無(wú)需現(xiàn)場(chǎng)布線和“實(shí)時(shí)在線”、“按量計(jì)費(fèi)”、“快捷登錄”、“高速傳輸”的特點(diǎn),只要終端在移動(dòng)公網(wǎng)覆蓋的范圍內(nèi),均可實(shí)現(xiàn)升級(jí)數(shù)據(jù)的傳輸;為了克服無(wú)線網(wǎng)絡(luò)相對(duì)有線網(wǎng)絡(luò)因地形或環(huán)境等因素造成誤碼或掉線的不足,采用應(yīng)答機(jī)制與斷點(diǎn)續(xù)傳技術(shù),確保數(shù)據(jù)傳輸?shù)臏?zhǔn)確性和可靠性;通過(guò)對(duì)嵌入式芯片內(nèi)部FLASH存儲(chǔ)器的存儲(chǔ)空間進(jìn)行劃分和升級(jí)文件傳輸?shù)臄?shù)據(jù)格式進(jìn)行定義,再利用IAP技術(shù)實(shí)現(xiàn)系統(tǒng),較好地解決了數(shù)量龐大并且分布范圍較廣的設(shè)備或維護(hù)的問(wèn)題。

1 系統(tǒng)結(jié)構(gòu)
系統(tǒng)結(jié)構(gòu)如圖1所示,由服務(wù)器和遠(yuǎn)程終端組成,其中遠(yuǎn)程終端包括ARM內(nèi)核的嵌入式控制芯片(以下簡(jiǎn)稱ARM芯片)和 Modem模塊,兩者之間通過(guò)RS 232總線連接;服務(wù)器與遠(yuǎn)程終端通過(guò)GPRS進(jìn)行通信。用戶需要升級(jí)遠(yuǎn)程終端時(shí),首先將服務(wù)器端的升級(jí)標(biāo)志位置1,通過(guò)GPRS將升級(jí)標(biāo)志位傳給遠(yuǎn)程終端,遠(yuǎn)程終端上電后將自動(dòng)檢測(cè)升級(jí)標(biāo)志位,若標(biāo)志位為1表示需要升級(jí),否則不升級(jí)。然后,服務(wù)器將升級(jí)文件通過(guò)GPRS透明的下載到遠(yuǎn)程終端,實(shí)現(xiàn)數(shù)據(jù)的傳輸及更新,從而達(dá)到遠(yuǎn)程終端的嵌入式系統(tǒng)的在線升級(jí)的目的。

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

2 遠(yuǎn)程終端軟件升級(jí)的關(guān)鍵技術(shù)
2.1 FLASH存儲(chǔ)器編程

遠(yuǎn)程終端的升級(jí)主要是對(duì)ARM芯片內(nèi)部FLASH存儲(chǔ)器的數(shù)據(jù)進(jìn)行擦除及下載,目前很多ARM芯片支持多種方式對(duì)FLASH進(jìn)行編程,ARM芯片內(nèi)部FLAsH存儲(chǔ)器的編程有JTAG,ISP和IAP三種方式:JTAG編程主要用于產(chǎn)品開發(fā)期的調(diào)試;ISP需要提供一定的硬件資源和中止應(yīng)用軟件的運(yùn)行,適用于便攜式設(shè)備的升級(jí);IAP與ISP非常相似.主要區(qū)別是IAP允許在應(yīng)用程序正常運(yùn)行的情況下,對(duì)FLASH存儲(chǔ)器中另外一段程序進(jìn)行讀/寫操作,甚至可以控制對(duì)某段、某頁(yè)的讀/寫操作,為數(shù)據(jù)存儲(chǔ)和固件的自動(dòng)升級(jí)帶來(lái)了極大的靈活性。該方案通過(guò)GPRS網(wǎng)絡(luò)傳輸升級(jí)文件的程序代碼,利用ARM內(nèi)部的FLASH存儲(chǔ)器及其IAP編程,實(shí)現(xiàn)終端的嵌入式系統(tǒng)軟件的遠(yuǎn)程無(wú)線在線升級(jí)。有關(guān)IAP的命令碼、狀態(tài)碼和命令詳解以及IAP功能的詳細(xì)應(yīng)用見參考文獻(xiàn)。
2.2 遠(yuǎn)程終端的程序設(shè)計(jì)
為了在線升級(jí),將ARM芯片內(nèi)部FLASH存儲(chǔ)器按圖2所示劃分為啟動(dòng)區(qū)、用戶代碼跳轉(zhuǎn)區(qū)、用戶代碼1區(qū)和用戶代碼2區(qū)。其中啟動(dòng)區(qū)用于存放系統(tǒng)初始化和啟動(dòng)代碼,用戶代碼跳轉(zhuǎn)區(qū)用于存放跳轉(zhuǎn)到相應(yīng)用戶代碼區(qū)的指令.用戶代碼1區(qū)和用戶代碼2區(qū)用于交替存放當(dāng)前終端正在執(zhí)行的用戶代碼和升級(jí)的用戶代碼。若當(dāng)前終端執(zhí)行的用戶程序存放在1區(qū),則將接收到的升級(jí)程序存放到2區(qū);待升級(jí)程序接收結(jié)束后,更改用戶代碼跳轉(zhuǎn)區(qū)的指令,使其指向升級(jí)程序,即用戶代碼2區(qū);此后用戶代碼2區(qū)的程序成為當(dāng)前終端指向的用戶程序,而用戶代碼1區(qū)則用于下次升級(jí)代碼的存放區(qū)。
遠(yuǎn)程終端上電后首先進(jìn)入啟動(dòng)區(qū)進(jìn)行系統(tǒng)的初始化;接著終端從片外的E2PROM中讀取升級(jí)配置,包括升級(jí)標(biāo)志位、已接收到的最后一個(gè)數(shù)據(jù)包的ID等。若終端處于升級(jí)狀態(tài),則如圖3所示,向服務(wù)器發(fā)所要升級(jí)數(shù)據(jù)的指令,而且指令中將包含終端上次已接收到的最后一個(gè)數(shù)據(jù)包的ID,這樣可以避免已接收的數(shù)據(jù)包的重復(fù)發(fā)送,并實(shí)現(xiàn)續(xù)傳的功能。終端從GPRS網(wǎng)絡(luò)接收數(shù)據(jù)包后對(duì)數(shù)據(jù)包進(jìn)行解析和校驗(yàn)判斷,并與服務(wù)器形成一問(wèn)一答的應(yīng)答機(jī)制。FLASH中進(jìn)行數(shù)據(jù)編程的最小單位是頁(yè)(512個(gè)字節(jié)),當(dāng)接收到的升級(jí)數(shù)據(jù)達(dá)到1頁(yè)后.通過(guò)IAP進(jìn)行編程。如果當(dāng)前運(yùn)行的用戶程序代碼在1區(qū),則把升級(jí)數(shù)據(jù)保存到2區(qū),否則保存到1區(qū)。編程成功后,將最后一條數(shù)據(jù)包的ID保存到E2PROM中。所有升級(jí)數(shù)據(jù)發(fā)送結(jié)束并編程成功后,通過(guò)IAP修改用戶代碼跳轉(zhuǎn)區(qū)的指令,使遠(yuǎn)程終端運(yùn)行新的升級(jí)代碼。

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

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



上一頁(yè) 1 2 下一頁(yè)

評(píng)論


相關(guān)推薦

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

關(guān)閉