ARM和無線自組網(wǎng)在遠程抄表系統(tǒng)中的應用
嵌入式系統(tǒng)是"控制、監(jiān)視或者輔助裝置、機器和設備運行的裝置"(devicesusedtocontrol,monitor,orassisttheoperationofequipment,machineryorplants)。從中可以看出嵌入式系統(tǒng)是軟件和硬件的綜合體,還可以涵蓋機械等附屬裝置。目前國內(nèi)一個普遍被認同的定義是:以應用為中心、以計算機技術為基礎、軟件硬件可裁剪、適應應用系統(tǒng)對功能、可靠性、成本、體積、功耗嚴格要求的專用計算機系統(tǒng)。
l ARM體系和Ad Hoc網(wǎng)絡
ARM體系的處理器是目前嵌入式系統(tǒng)中使用最廣泛的處理器。其采用了RISC技術,具有體積小、低功耗、低成本、高性能的特點,并且其支持Thumb(16位)/ARM(32位)雙指令集,能很好的兼容8位/16位器件。ARM使用大量的寄存器,使得指令執(zhí)行速度更加快速,大多數(shù)數(shù)據(jù)操作都在寄存器中完成。它的尋址方式靈活簡單,并且指令長度固定,執(zhí)行效率更高,處理能力大大超過單片機。
ARM7是馮諾依慢結構,ARM9、ARM11是哈佛結構,所以性能要高一點。ARM9和ARM11大多帶內(nèi)存管理器,跑操作系統(tǒng)好一點,ARM7適合裸奔。不跑操作系統(tǒng),價格低一點的:ARM7、cortex-M3等等。性價比高,可跑也可不跑操作系統(tǒng)的:ARM9、cortex-Rx等等。性能高的,通常要跑操作系統(tǒng)的:ARM10、ARM11、Cortex-A8等等。
Adhoc網(wǎng)絡的前身是分組無線網(wǎng)(PacketRadioNetwork)。對分組無線網(wǎng)的研究源于軍事通信的需要,并已經(jīng)持續(xù)了近20年。早在1972年,美國DARPA(DefenseAdvancedResearchProjectAgency)就啟動了分組無線網(wǎng)(PRNET,PacketRadioNETwork)項目,研究分組無線網(wǎng)在戰(zhàn)場環(huán)境下數(shù)據(jù)通信中的應用。項目完成之后,DAPRA又在1993年啟動了高殘存性自適應網(wǎng)絡(SURAN,SURvivableAdaptiveNetwork)項目。研究如何將prnet的成果加以擴展,以支持更大規(guī)模的網(wǎng)絡,還要開發(fā)能夠適應戰(zhàn)場快速變化環(huán)境下的自適應網(wǎng)絡協(xié)議。1994年,DARPA又啟動了全球移動信息系統(tǒng)(GloMo,GlobleMobileInformationSystems)項目。在分組無線網(wǎng)已有成果的基礎上對能夠滿足軍事應用需要的、可快速展開、高抗毀性的移動信息系統(tǒng)進行全面深入的研究,并一直持續(xù)至今。1991年成立的IEEE802.11標準委員會采用了"Adhoc網(wǎng)絡"一詞來描述這種特殊的對等式無線移動網(wǎng)絡。
2 系統(tǒng)設計
2.1 系統(tǒng)的整體架構
此系統(tǒng)以嵌入式系統(tǒng)為核心,通過串行總線系統(tǒng)與Ad Hoc網(wǎng)絡中位于主站的節(jié)點相連接,以ARM處理器為核心對整個系統(tǒng)進行控制。如圖1所示,各個采集終端定時通過各自所對應的計量器具獲得所需數(shù)據(jù)。然后各個采集終端對獲得的數(shù)據(jù)進行一定的處理,再利用自身節(jié)點通過Ad Hoc網(wǎng)絡傳送給主站接收。必要的時候主站也可以通過Ad Hoc網(wǎng)絡對各個采集終端發(fā)出命令來主動得到計量數(shù)據(jù)和參數(shù)設置。在此系統(tǒng)中,并沒有采用傳統(tǒng)的有線的數(shù)據(jù)傳輸方式,而是采用Ad Hoc網(wǎng)絡進行數(shù)據(jù)傳輸,避免了在惡劣的工業(yè)現(xiàn)場環(huán)境下布線和線路一旦損壞所帶來的維護上的不便。并且使用了以ARM7體系結構的LPC2478作為主站處理器,使得整個系統(tǒng)移動性更加靈活,傳輸可靠性得到更好的保障,維護更加方便,成本也更低,操作起來也更加方便簡潔。
2.2 系統(tǒng)的硬件組成
該系統(tǒng)的硬件系統(tǒng)如圖2所示,主要包括ARMCPU控制模塊,電源管理模塊以及無線模塊。
這里所選用的處理器為NXP公司的ARM7系列芯片LPC2478,它的運行速率可高達72 MHz;具有98 KB的片內(nèi)SRAM;512 KB片上FLASH程序存儲器;具有4個帶小數(shù)波特率發(fā)生功能的UART;多達160個通用I/O管腳;4個通用定時器/計數(shù)器;LPC2478通過UART與無線模塊相連接來讀取和發(fā)送數(shù)據(jù)。此系統(tǒng)所采用的無線通信模塊為APPCON公司的APC900M.該模塊運行在60 MHz,可支持復雜運算編碼為高校循環(huán)交織糾錯編碼。它可與個采集終端的節(jié)點組成一個無線自組網(wǎng)來進行數(shù)據(jù)的通信。
2.3 系統(tǒng)的軟件設計
該系統(tǒng)的軟件結構如圖3所示,整個系統(tǒng)包括了用戶應用程序,API,μC/OS-Ⅱ操作系統(tǒng),文件系統(tǒng),硬件驅動程序等。其中以μC/OS-Ⅱ操作系統(tǒng)為核心,因為此系統(tǒng)對實時性要求較高,所以本文選用了實時性較好的μC/OS-Ⅱ操作系統(tǒng)來作為應用程序和底層硬件之間的橋梁。
2.3.1 μC/OS-Ⅱ在LPC2478上的移植
μC/OS-Ⅱ是一個免費的源代碼公開的實時嵌入式內(nèi)核,其提供了實時系統(tǒng)所需的基本功能。它包含全部功能的核心部分代碼只占8.3 KB,而且可剪裁。由于μC/OS-Ⅱ只包含了任務調(diào)度、任務管理、時間管理、內(nèi)存管理和任務問的通信與同步等基本功能,所以這里使用YAFFS文件系統(tǒng)來對文件檔案進行存儲和管理。由于μC/OS-Ⅱ具有良好的可移植性,移植時只需提供OS_CPU.H(C語言頭文件)、OS_CPU_C.C(C程序源文件)和OS_CPU_A.ASM(匯編程序源文件)這三個文件,來將此系統(tǒng)移植到LPC2478處理器上。
2.3.2 系統(tǒng)工作流程
該系統(tǒng)的一次抄表過程如圖4所示,首先,系統(tǒng)啟動,操作系統(tǒng)對各個接口進行一系列初始化過程,并查看系統(tǒng)是否正常,如不正常,返回錯誤信息。如系統(tǒng)正常,則可以根據(jù)需要來設置所需的抄表參數(shù),如時間,表號,數(shù)據(jù)類型等。關鍵程序如下:
接下來通過μC/OS-Ⅱ操作系統(tǒng)向UART寫數(shù)據(jù)并將數(shù)據(jù)送至無線傳輸模塊以向采集終端發(fā)出抄表命令。無線模塊接到命令后將抄表命令通過無限自組網(wǎng)發(fā)送出去并等待采集終端返回的數(shù)據(jù)。
接收到數(shù)據(jù)后再通過UART將數(shù)據(jù)傳回至處理器。處理器得到數(shù)據(jù)后進行解析,并驗證此數(shù)據(jù)是否有錯誤。它的關鍵程序如下:
此時如返回數(shù)據(jù)的格式有誤,則重新命令無線模塊向采集終端發(fā)送抄表命令,這一過程重復兩次,若依然有錯誤則返回錯誤信息。如沒有錯誤則將數(shù)據(jù)保存至文件系統(tǒng),等待上位機的查收。
3 結語
利用ARM處理器和無線自組網(wǎng)的組合來建立一個遠程抄表系統(tǒng),并完成了硬件和軟件的設計,與以往的抄表系統(tǒng)相比,此系統(tǒng)具有組網(wǎng)方便,性能穩(wěn)定,實時性好,可靠性高,覆蓋范圍廣,易于維護等優(yōu)點。可廣泛用于各種工業(yè)和生活等領域的水,電,氣,油等消耗量數(shù)據(jù)的監(jiān)測。具有廣泛的應用前景。
QICK