ARM和GPRS相配合的軟件無線升級系統(tǒng)
1 軟件無線升級系統(tǒng)方案
基于無線通信的遠程監(jiān)控系統(tǒng)(如遠程電網質量監(jiān)控系統(tǒng)、水情測報系統(tǒng)和城市路燈監(jiān)控系統(tǒng)等)應用越來越廣泛,而在實際使用過程中,由于需求的變化,經常要對其終端設備軟件進行修改或升級。一般情況下,無線監(jiān)控系統(tǒng)與終端距離較遠,終端分散且工作環(huán)境較差。如果維護人員到現場進行軟件升級,不但維護費用很高,而且還可能使終端設備長時間不能正常工作。
為解決這一難題,本文提出一種利用ST公司的STR710FZ2T6作為終端微控制器,融合IAP(In Application Programming,在應用編程)技術和GPRS無線網絡通信技術的軟件升級系統(tǒng)方案。軟件無線升級系統(tǒng)整體框圖如圖1所示。
圖1 軟件無線升級系統(tǒng)整體框圖
2 系統(tǒng)硬件和軟件設計
2.1 硬件設計
本文選用的是ST公司的一款工業(yè)級微控制器STR710FZ2T6。它是基于ARM7TDMI的32位RISC CPU,擁有豐富的外設和增強的I/O功能,并提供高達33 MHz的直接存取速度以及50 MHz零等待狀態(tài)的序列閃存;具有(256 KB+16 KB) Flash 和64 KB SRAM,內部Flash可重復擦寫10萬次,數據保持20年,支持自編程;外部存儲器接口(EMI)可支持4個SRAM、Flash、ROM等存儲類型;芯片有多種boot方式。另外,STR710FZ2T6能夠通過運行在Flash中的程序來對自身的Flash進行更新。這個功能使其能夠通過CAN、UART、USB、無線通信等接口將程序下載到自身的Flash中。
系統(tǒng)結構如圖2所示。根據微控制器STR710FZ2T6的特點以及無線監(jiān)控終端的功能要求,硬件設計包括由電源電路、復位電路、JTAG接口電路、晶振電路組成的芯片工作最小系統(tǒng),以及在最小系統(tǒng)上擴展的串行接口模塊、外存儲器模塊、數據顯示模塊、數據采集模塊和SIM300 GSM/GPRS通信模塊。其中,擴展的外存儲器包括SST公司的具有16位數據寬度的Flash存儲器SST39VF1601和ISSI公司的SRAM存儲器IS61LV25616AL。
圖2 軟件無線升級系統(tǒng)結構框圖
2.2 終端軟件設計
系統(tǒng)終端軟件的設計包括終端引導程序設計和終端應用程序的設計。引導程序和應用程序在STR710FZ2T6中所存放的位置不同。將啟動模式配置為從片內Flash引導之后,系統(tǒng)終端微控制器將復位,啟動之后先執(zhí)行引導程序。引導程序在執(zhí)行過程中決定是否啟動IAP升級程序;應用程序實現終端的各種功能,如命令和數據的接收、發(fā)送,以及新版本應用程序升級包的下載。
2.2.1 終端引導程序設計
系統(tǒng)設計時,終端引導程序通過JTAG接口燒寫到STR710FZ2T6的Flash扇區(qū)起始位置(0x40000000)處。整個引導程序占用Flash的前兩個扇區(qū),通過啟動模式的選擇,將這塊Flash映射到0x00000000,保證系統(tǒng)上電后自動運行引導程序。終端重新啟動時,STR710FZ2T6從0x40000000地址開始讀取指令并執(zhí)行。
經過實驗證明:將IAP升級程序存放在用戶引導部分是非常合理的,能夠避免由于應用程序升級失敗而造成的系統(tǒng)崩潰。由于終端引導程序在產品出廠前固化,若Flash編程失敗,微控制器將重新啟動,IAP程序利用存儲器SST39VF1601中保存的最新版本的應用程序,重新對Flash進行編程。由于引導程序有多次編程Flash扇區(qū)的能力,系統(tǒng)應用程序代碼的完整性以及應用程序升級的可靠性才得以保證。引導程序流程如圖3所示。
圖3 終端引導程序流程 存儲器相關文章:存儲器原理
終端引導程序的主要函數說明:
?、?main()主函數。用于初始化UART接口,PLL設定等,根據升級標志和新版本號判斷是否繼續(xù)執(zhí)行IAP。若升級標志置位,且新版本號大于當前的版本號,則啟動IAP升級程序,否則運行終端應用程序。
評論