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