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