<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 手機與無(wú)線(xiàn)通信 > 設計應用 > 基于GPRS的嵌入式系統軟件的遠程在線(xiàn)升級

基于GPRS的嵌入式系統軟件的遠程在線(xiàn)升級

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

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

本文引用地址:http://dyxdggzs.com/article/158058.htm

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

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

linux操作系統文章專(zhuān)題:linux操作系統詳解(linux不再難懂)

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



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

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>