設(shè)計基于中國移動GPRS無線網(wǎng)絡(luò),以C8051F340單片機為核心,GSM/GPRS/EDGE無線模塊MC75作為通信模塊開發(fā)的網(wǎng)絡(luò)測試終端設(shè)備。當(dāng)該終端設(shè)備的固件需要升級時,在遠(yuǎn)程服務(wù)器端開啟FTP服務(wù)器并與終端建立連接,終端從該FTP服務(wù)器上下載已更新的二進(jìn)制升級文件并存儲在外部Flash中,在主程序進(jìn)行校驗后跳轉(zhuǎn)到升級程序段覆蓋掉片內(nèi)Flash中原有的固件程序,完成系統(tǒng)固件遠(yuǎn)程更新。
引言
嵌入式技術(shù)的迅速發(fā)展使得越來越多的嵌入式終端設(shè)備應(yīng)用在人們的日常生活中,其中不乏應(yīng)用在一些偏遠(yuǎn)地方,甚至工作在無人看管的場合下。人口比較稀少的地方,由于基站分布比較分散,加之人口比較稀疏,基站維護等操作常難以執(zhí)行,這就需要在某些地方放置網(wǎng)絡(luò)信號測試儀檢測該地區(qū)的通信信號質(zhì)量,并將該信息反饋到遠(yuǎn)程服務(wù)器。同時,由于硬件系統(tǒng)程序設(shè)計固有的局限性,固件程序的升級在所難免。針對實際情況,本文開發(fā)了網(wǎng)絡(luò)信號測試儀的單片機遠(yuǎn)程升級系統(tǒng)。
1 系統(tǒng)硬件設(shè)計
整個系統(tǒng)以Silicon Labs公司推出的混合信號片上系統(tǒng)型單片機C8051F340作為核心控制單元,采用GSM/GPRS/EDGE無線模塊MC75作為與遠(yuǎn)程服務(wù)器的通信模塊,采用上海麗浪電子有限公司推出的R36模塊作為GPS模塊,通過GPS衛(wèi)星接收RMC格式的導(dǎo)航電文供終端設(shè)備定位用。C8051F340單片機包含兩個TTL電平的串行接口,分別與GPRS模塊和GPS模塊進(jìn)行通信。GPRS模塊可接收遠(yuǎn)程控制臺發(fā)來的控制指令,并傳輸給單片機進(jìn)行處理。系統(tǒng)總體框圖如圖1所示。
1.1 C8051F340介紹
C8051F340具有片內(nèi)上電復(fù)位、VDD監(jiān)視器、電壓調(diào)整器、看門狗定時器和時鐘振蕩器等內(nèi)部資源,是真正能獨立工作的片上系統(tǒng)。Flash存儲器還具有在系統(tǒng)重新編程能力,可用于非易失性數(shù)據(jù)存儲,并允許遠(yuǎn)程更新8051固件程序。用戶軟件對所有外設(shè)具有完全的控制,可以關(guān)斷任何一個或所有外設(shè)以降低功耗。
C8051F340的主要特點:
◆高速、流水線結(jié)構(gòu)并與8051兼容的微控制器內(nèi)核 (可達(dá)48 MIPS);
◆全速、非侵入式的在系統(tǒng)調(diào)試接口(片內(nèi));
◆精確校準(zhǔn)的12 MHz內(nèi)部振蕩器和4倍時鐘乘法器;
◆64 KB的片內(nèi)Flash存儲器,4532字節(jié)的片內(nèi)RAM;
◆硬件實現(xiàn)的SMBUS接口,2個增強型UART(TTL電平)、1個增強型SPI串行接口;
◆4個通用的16位定時器;
◆5個捕獲/比較模塊和具有看門狗定時器功能的可編程計數(shù)器/定時器陣列(PCA)。
1.2 單片機與GPRS模塊通信電路設(shè)計
MC75模塊是Siemens公司推出的第三代GSM/GPRS/EDGE無線模塊。這種模塊能處理高數(shù)據(jù)密集型多媒體設(shè)施,可以應(yīng)用于全球的GSM網(wǎng)絡(luò)。其主要特點為:
◆支持850 MHz、900 MHz、1 800 MHz、1 900 MHz四種頻段;
◆E-GPRS下行速率可達(dá)460 kbps;
◆EDGE(E-GPRS)multi-slot ClasslO:
◆GPRS移動基站ClassB;
◆SMS及SMS蜂窩廣播;
◆AT指令GSM07.05及GSM07.07;
◆輸入電壓為3.2~4.5 V,建議使用3.8 V±O.2 V。
C8051F340與MC75模塊的通信電路如圖2所示。
1.3 單片機與串行FIash接口設(shè)計
C8051F340內(nèi)部有64 KB的Flash,而整個系統(tǒng)程序為40 KB左右,為了實現(xiàn)遠(yuǎn)程升級功能,需將更新的程序存儲在外部擴展Flash中。在此選用了Atmel公司的串行Flash,型號為AT45DBl61D。其電壓工作范圍為2.7~3.6 V,快速串行接口工作頻率最高可達(dá)到66 MHz,空間大小為17 301 504位,由4096頁組成(每頁包含512字節(jié)或者528字節(jié))。除了主存儲器外,它還包括2片512或528字節(jié)的靜態(tài)隨機存儲單元。在本系統(tǒng)設(shè)計中,AT45DB161D可存儲系統(tǒng)中所需的一些網(wǎng)絡(luò)信號參數(shù),以便經(jīng)過GPRS網(wǎng)絡(luò)傳遞給遠(yuǎn)程主機;另外,還可以存儲遠(yuǎn)程服務(wù)器發(fā)送的二進(jìn)制升級文件。其與C8051F340的接口電路如圖3所示。
2 系統(tǒng)軟件設(shè)計
該終端設(shè)備在工作期間,會收到遠(yuǎn)程服務(wù)器發(fā)送來的一系列控制命令,如測試周圍附近的網(wǎng)絡(luò)信號指令,給某個手機撥打電話并記錄通話狀態(tài)下的信號指令等。這些操作都是由單片機通過串口發(fā)送給GRPS模塊的AT指令實現(xiàn)的。例如SEND String(”AT-SMONC\r”),單片機將“AT-SMONC”這條命令通過串口發(fā)送給GPRS模塊,該模塊可自動測得主小區(qū)及相鄰小區(qū)的信號指令數(shù)據(jù),并通過串口發(fā)送給單片機以供其處理。同樣,單片機可接收到遠(yuǎn)程升級指令,從而啟動遠(yuǎn)程升級功能。
2.1 升級系統(tǒng)軟件設(shè)計
本系統(tǒng)軟件由兩部分組成:主程序和升級程序,分別對應(yīng)于Main工程和Update工程。Main工程負(fù)責(zé)與遠(yuǎn)端服務(wù)器進(jìn)行通信,接收服務(wù)器發(fā)送的指令并進(jìn)行相應(yīng)操作;而Update工程編譯、鏈接時,在其編譯器鏈接選項中設(shè)置CODE(OxE000,PR?MAIN?UPDATE(0xE000)),可將Upd-ate工程編譯、鏈接后生成的hex文件燒寫到單片機內(nèi)部Flash以0xE000作為起始地址處,同時默認(rèn)地將Main工程編譯、鏈接生成的二進(jìn)制文件燒寫到內(nèi)部Flash的起始地址處。單片機在執(zhí)行主程序過程中,檢測到升級標(biāo)志置1后,單片機跳轉(zhuǎn)到升級程序地址處執(zhí)行固件升級程序;升級完畢后,復(fù)位單片機,程序又從內(nèi)部Flash的零地址開始執(zhí)行更新的固件程序。圖4為主程序流程,圖5為相應(yīng)的固件升級程序流程。主程序在運行過程中受遠(yuǎn)程服務(wù)器的實時控制。當(dāng)固件程序需要更新時,在服務(wù)器端將準(zhǔn)備更新的固件編譯、鏈接后生成的hex或bin文件放入某一固定目錄內(nèi),啟用FTP服務(wù)器(如FtpMan),通過TCP/IP協(xié)議發(fā)送遠(yuǎn)程升級指令給測試終端;終端收到升級指令后啟動相應(yīng)的FTP接收功能,將遠(yuǎn)端文件分解成多個數(shù)據(jù)包并逐個存儲在外部Flash中;存儲完畢后,主程序會對該接收文件進(jìn)行CRC校驗,若校驗無誤,則通過函數(shù)指針跳轉(zhuǎn)到升級程序功能區(qū),啟動升級程序,將二進(jìn)制文件從外部Flash中轉(zhuǎn)移到內(nèi)部Flash對應(yīng)的地址空間中去。單片機復(fù)位重啟后,就可以從內(nèi)部Flash的起始地址處執(zhí)行更新完畢的程序。
2.2 函數(shù)指針應(yīng)用
當(dāng)主程序檢測到升級標(biāo)志后,主程序跳轉(zhuǎn)到升級程序地址處執(zhí)行升級固件程序,此處使用了函數(shù)指針的功能。
結(jié)語
本文設(shè)計了基于GPRS網(wǎng)絡(luò)傳輸?shù)慕K端固件升級系統(tǒng),給出了合理的芯片選型,以及獨立的固件升級程序。該升級系統(tǒng)已應(yīng)用到實際產(chǎn)品應(yīng)用中,并取得了很好的效果。
-
單片機
+關(guān)注
關(guān)注
6043文章
44621瀏覽量
638624 -
GPRS
+關(guān)注
關(guān)注
21文章
984瀏覽量
129659 -
通信模塊
+關(guān)注
關(guān)注
2文章
150瀏覽量
33150
發(fā)布評論請先 登錄
相關(guān)推薦
請問有沒有辦法對MSP430的固件升級?
【OTA升級】無需數(shù)據(jù)線,一條命令即可完成固件升級!
![【OTA<b class='flag-5'>升級</b>】無需數(shù)據(jù)線,一條命令即可完成<b class='flag-5'>固件</b><b class='flag-5'>升級</b>!](https://file.elecfans.com/web2/M00/10/E9/pYYBAGEfInyAb9dQAABH4pzjonI981.jpg)
脈沖全閉環(huán)EtherCAT運動控制器的固件升級
![脈沖全閉環(huán)EtherCAT運動控制器的<b class='flag-5'>固件</b><b class='flag-5'>升級</b>](https://file1.elecfans.com/web2/M00/0B/05/wKgZomcsK3yAZps9AAF_4u_AXfM832.png)
低功耗4G模組Air780E的固件的遠(yuǎn)程升級操作方法
![低功耗4G模組Air780E的<b class='flag-5'>固件</b>的遠(yuǎn)程<b class='flag-5'>升級</b>操作方法](https://file1.elecfans.com/web2/M00/09/4F/wKgZomcJroqABa9KAABKBejcD4A83.jpeg)
ip網(wǎng)絡(luò)音頻終端是什么
DM平臺管理設(shè)備如何進(jìn)行固件升級?
GPRS抄表技術(shù)是什么?
![<b class='flag-5'>GPRS</b>抄表技術(shù)是什么?](https://file1.elecfans.com/web2/M00/DA/3F/wKgaomYp-kyAcZBNAABwXvjFOHM172.png)
ESP-IDF中能否加密應(yīng)用固件?
求助,通過UART進(jìn)行基本設(shè)備固件升級的問題求解
STM32 IIC通信升級系統(tǒng)
如何對miniprog4進(jìn)行升級Firnware,需要下載固件嗎?
EtherCAT總線如何對從站固件進(jìn)行升級?
![EtherCAT總線如何對從站<b class='flag-5'>固件</b>進(jìn)行<b class='flag-5'>升級</b>?](https://file.elecfans.com/web2/M00/50/DA/pYYBAGLH6TyAB71EAAAPQ7KgtYA038.png)
評論