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