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