一種基于物聯(lián)網(wǎng)的遠(yuǎn)程監(jiān)控系統(tǒng)設(shè)計(jì)
掃描二維碼
隨時(shí)隨地手機(jī)看文章
摘要:為了實(shí)現(xiàn)工廠、交通等遠(yuǎn)程監(jiān)控管理,系統(tǒng)設(shè)計(jì)采用DM900芯片和CC24300為主實(shí)現(xiàn)通信,核心部分主要包括ARM中央控制平臺(tái)及嵌入式Linux操作系統(tǒng)移植,創(chuàng)新之處在于融入了物聯(lián)網(wǎng)技術(shù)并巧妙地移植移植U-Boot和嵌入式Linux操作系統(tǒng)的編譯內(nèi)核配置。按照系統(tǒng)的整個(gè)工作軟件流程圖進(jìn)行了試驗(yàn)和聯(lián)調(diào),符合原設(shè)計(jì)目標(biāo),系統(tǒng)具有擴(kuò)展性,通用性和能與其他監(jiān)控設(shè)備無(wú)縫連接等性能,以滿足不同工作環(huán)境的需要,可為其他基于物聯(lián)網(wǎng)的遠(yuǎn)程監(jiān)控系統(tǒng)所借鑒和參考。
關(guān)鍵詞:ARM;物聯(lián)網(wǎng);嵌入式Linux操作系統(tǒng);遠(yuǎn)程監(jiān)控
遠(yuǎn)程監(jiān)控系統(tǒng)現(xiàn)已成為現(xiàn)代化生產(chǎn)、生活中不可缺少的重要組成部分。目前,監(jiān)控系列產(chǎn)品種類繁多,大部分廣泛應(yīng)用于交通、醫(yī)院、銀行、家居、學(xué)校等安防領(lǐng)域。伴隨著對(duì)物聯(lián)網(wǎng)(Internet of Things)應(yīng)用研究的不斷深入,使得遠(yuǎn)程監(jiān)控系統(tǒng)的應(yīng)用領(lǐng)域更為廣泛。本
文創(chuàng)新點(diǎn)在于是基于物聯(lián)網(wǎng)、以ARM內(nèi)核芯片的嵌入式系統(tǒng)為核心技術(shù)的遠(yuǎn)程監(jiān)控系統(tǒng)設(shè)計(jì),其中巧妙地移植移植U-Boot和嵌入式Linux操作系統(tǒng)的編譯內(nèi)核配置。雖然主要是關(guān)于某市幾個(gè)重要路口的交通遠(yuǎn)程監(jiān)控管理系統(tǒng)的核心設(shè)計(jì)內(nèi)容,但亦可為其他基于物聯(lián)網(wǎng)的遠(yuǎn)程監(jiān)控系統(tǒng)所借鑒。
1 系統(tǒng)體系結(jié)構(gòu)及功能
本設(shè)計(jì)系統(tǒng)主要由控制模塊、ARM中央控制平臺(tái)、ZigBee無(wú)線傳輸、以太網(wǎng)通信和多個(gè)擴(kuò)展接口等部分組成,實(shí)際中可根據(jù)需求和使用環(huán)境靈活地選用適合的接口進(jìn)行操作,其體系結(jié)構(gòu)如圖1所示。
該系統(tǒng)主要是利用RS 232接口實(shí)現(xiàn)ARM嵌入式系統(tǒng)與Zigbee無(wú)線系統(tǒng)的連接進(jìn)而實(shí)現(xiàn)網(wǎng)關(guān)設(shè)備的功能。通過(guò)ARM中央控制平臺(tái)和Zigbee芯片的RS 232線路驅(qū)動(dòng)器/接收器MAX3221芯片來(lái)實(shí)現(xiàn)串行數(shù)據(jù)的通信。由于采用了常見(jiàn)的串口作為通信媒介,簡(jiǎn)化了硬件設(shè)計(jì)。作為接收命令端的Zigbee芯片由于采用的是8051為內(nèi)核的CPU,時(shí)刻處于等待命令狀態(tài)。ARM中央控制平臺(tái)植入了Linux操作系統(tǒng),當(dāng)運(yùn)行了串口實(shí)現(xiàn)程序后,就可向Zigbee芯片發(fā)出采集信息的命令。因此系統(tǒng)主要的軟件實(shí)現(xiàn)就是Linux系統(tǒng)下的串口實(shí)現(xiàn)程序的設(shè)計(jì)。
其中檢測(cè)控制模塊可以是溫度控制模塊、壓力了控制模塊、流量控制模塊等等實(shí)際監(jiān)控需檢測(cè)的參量模塊。各檢測(cè)控制模塊通過(guò)ZigBee模塊與ARM中央控制平臺(tái)實(shí)現(xiàn)無(wú)線連接,組成了一個(gè)星型無(wú)線智能控制網(wǎng)絡(luò)。同時(shí)ARM中央控制平臺(tái)通過(guò)以太網(wǎng)實(shí)現(xiàn)與外部遠(yuǎn)程連接。從而實(shí)現(xiàn)遠(yuǎn)程監(jiān)控。
1.1 ARM中央控制平臺(tái)
在本設(shè)計(jì)中,ARM中央控制平臺(tái)是系統(tǒng)的核心,主要負(fù)責(zé)數(shù)據(jù)采集判斷處理。為了提高系統(tǒng)工作效率,設(shè)計(jì)中采用了ATMEL公司生產(chǎn)的ARM9芯片AT91RM9200。由于AT91RM9200處理器具有豐富的系統(tǒng)與應(yīng)用外設(shè)及標(biāo)準(zhǔn)的接口,因此根據(jù)應(yīng)用的需要很容易就可實(shí)現(xiàn)功能模塊的擴(kuò)展。該芯片融合了ARM920T ARM Thumb處理器特性:工作于180 MHz時(shí)性能高達(dá)200 MIPS,存儲(chǔ)器管理單元,16 KB的數(shù)據(jù)緩存,16 KB的指令緩存,寫緩沖器,含有調(diào)試信道的內(nèi)部仿真器,中等規(guī)模的嵌入式宏單元結(jié)構(gòu)(僅針對(duì)256 BGA封裝);低功耗:VDDCORE電流為30.4 mA,待機(jī)模式電流為3.1 mA;附加的嵌入式存儲(chǔ)器:SRAM為16 KB;ROM為128 KB;外部總線接口(EBI):支持SDRAM,靜態(tài)存儲(chǔ)器,Burst FLASH,無(wú)縫連接的CompactFlash Smart Media及NAND FLASH;提高性能而使用的系統(tǒng)外設(shè):2個(gè)有雙PLL的片上振蕩器,低速的時(shí)鐘操作模式與軟件功耗優(yōu)化能力,4個(gè)可編程的外部時(shí)鐘信號(hào),調(diào)試單元、兩線UART并支持調(diào)試信道,有8個(gè)優(yōu)先級(jí)的高級(jí)中斷控制器,獨(dú)立的可屏蔽中斷源,偽中斷保護(hù),7個(gè)外部中斷源及1個(gè)快速中斷源,有122個(gè)可編程I/O口線的4個(gè)32位PIO控制器,各線均有輸入變化中斷及開(kāi)漏能,20通道的外設(shè)數(shù)據(jù)控制器(DMA);10/100 Base-T型以太網(wǎng)卡接口:獨(dú)立的媒體接口(MII)或簡(jiǎn)化的獨(dú)立媒體接口(RMII),對(duì)于接收與發(fā)送有集成的28 B FIFO及專用的DMA通道;USB 2.0全速(12 Mb/s)主機(jī)雙端口:雙片上收發(fā)器(208引腳PQFP封裝中僅為一個(gè)):集成的FIFO及專用的DMA通道;USB 2.0全速(12 Mb/s)器件端口:片上收發(fā)器,2 KB可配置的集成FIFO;多媒體卡接口(MCI):自動(dòng)協(xié)議控制及快速自動(dòng)數(shù)據(jù)傳輸,與MMC及SD存儲(chǔ)器卡兼容,支持2個(gè)SD存儲(chǔ)器;主機(jī)/從機(jī)串行外設(shè)接口(SPI):8~16位可編程數(shù)據(jù)長(zhǎng)度,可連接4個(gè)外設(shè);兩線接口(TWI):主機(jī)模式支持,所有兩線Atmel EEPRoM支持;所有數(shù)字引腳的IEEE 1149.1JTAG邊界掃描。
正是由于AT91RM9200芯片具有以上特性,所以它完全滿足了本設(shè)計(jì)系統(tǒng)必須具備的3個(gè)條件:高速處理能力、高速數(shù)據(jù)通道、網(wǎng)絡(luò)接口。
1.2 ZigBee芯片
本設(shè)計(jì)中ZigBee芯片選用Chipcon公司的無(wú)線收發(fā)芯片CC2430。CC2430是一個(gè)真正片上系統(tǒng)芯片,內(nèi)部集成一個(gè)高性能2.4 GHz直接序列擴(kuò)頻(DSSS)射頻收發(fā)器核心和一個(gè)工業(yè)級(jí)加強(qiáng)型8051內(nèi)核,無(wú)需再選另外的處理器,使設(shè)計(jì)簡(jiǎn)化。
1.3 以太網(wǎng)控制器
本設(shè)計(jì)中以太網(wǎng)控制器采用是DAVICOM公司的DM9000,這是具有10/100 M自適應(yīng)以太網(wǎng)芯片。其特點(diǎn)是:支持8位、16位、32位數(shù)據(jù)總線寬度;寄存器操作簡(jiǎn)單有效,有成熟的Linux驅(qū)動(dòng)程序支持;3.3 V接口電平;成本相當(dāng)?shù)土?;還可以使用MII接口和PHY芯片連接。DM9000還提供了介質(zhì)無(wú)關(guān)的接口,以連接所有提供支持介質(zhì)無(wú)關(guān)接口功能的家用電話線網(wǎng)絡(luò)設(shè)10 Mb/s下3類、4類、5類非屏蔽雙絞線和100Mb/s下5類非屏蔽雙絞線。這是完全符合IEEE 802.3u規(guī)格。它的自動(dòng)協(xié)調(diào)功能將自動(dòng)完成配置以最大限度地適合其線路帶寬,還支持IEEE 802.3x全雙工流量控制。
2 軟件設(shè)計(jì)
2.1 移植U-Boot
通用Bootloader(UniversaI Boot Loader,U-Boot)遵循GPL條款的開(kāi)放源代碼項(xiàng)目。U-Boot支持大多CPU。U-Boot可以燒寫EXT2,JFFS2文件系統(tǒng)映象,支持串口下載、網(wǎng)絡(luò)下載,并提供了大量的命令。系統(tǒng)引導(dǎo)支持NFS掛載、RAMDISK(壓縮或非壓縮)形式的根文件系統(tǒng);支持NFS掛載,從FLASH中引導(dǎo)壓縮或非壓縮系統(tǒng)內(nèi)核。
2.1.1 U-Boot的下載
可以從http://sourceforge.net/projects/U-Boot獲得U-Boot的最新版本,如果使用過(guò)程中碰到問(wèn)題或是發(fā)現(xiàn)Bug,可以通過(guò)郵件列表網(wǎng)站http://lists.sourcef orge.net/lists/listinfo/U-Bootusers/獲得幫助。選擇1.1.2,文件名稱u-boot-1.1.2.tar.bz2。
2.1.2 修改U-Boot配置文件
進(jìn)入存放u-boot-1.1.2.tar.bz的目錄,運(yùn)行tar-jxvfu-boot-1.1.2.tar.bz進(jìn)行解壓,進(jìn)入解壓后生成的文件夾u-boot-1.1. 2,它是按Atmel推薦的標(biāo)準(zhǔn)系統(tǒng)的配置SDRAM:32Mbytes NCS1;FLASH:8 MB NCS0來(lái)配置的,若系統(tǒng)的配置和推薦的不同,則需要修改。需要修改文件主要是下面幾個(gè):./board/at91rm9200dk/config.mk,include/configs/+ at91rm9200dk.h,./board/at91rm9200dk /flash.c,flash.h在修改好U-Boot配置后,編譯運(yùn)行即可。
2.2 嵌入式Linux操作系統(tǒng)移植
AT91R1M9200芯片支持多種嵌入式操作系統(tǒng),但考慮到AT91RM9200支持從內(nèi)部的BOOTROM啟動(dòng)或從外部的DATAFLASH、二線EEPROM或8位并行存儲(chǔ)器引導(dǎo)啟動(dòng),因此,本設(shè)計(jì)中,主要將Linux在AT91RM9200上進(jìn)行移植。
2.2.1 嵌入式Linux操作系統(tǒng)
嵌入式Linux操作系統(tǒng)由一個(gè)Kernel(內(nèi)核)及一些根據(jù)需要進(jìn)行定制的系統(tǒng)模塊組成。其Kernel很小,一般只有幾百KB左右,即使加上其他必要的模塊和應(yīng)用程序,所需的存儲(chǔ)空間也很小。它具有多任務(wù)、多進(jìn)程的系統(tǒng)特征,有些還有具有實(shí)時(shí)性。一個(gè)小型的嵌入式Linux系統(tǒng)只需要引導(dǎo)程序、Linux微內(nèi)核(由內(nèi)存管理、進(jìn)程管理和事務(wù)處理構(gòu)成)、初始化進(jìn)程3個(gè)基本元素組成。當(dāng)然,實(shí)際應(yīng)用中還需要讓它有更多的功能且繼續(xù)保持小型化,如加上文件系統(tǒng)(可以在ROM,RAM,F(xiàn)LASH或Disk Onchip中)、TCP/IP網(wǎng)絡(luò)支持、存儲(chǔ)更多數(shù)據(jù)用的磁盤、提供設(shè)計(jì)精簡(jiǎn)的應(yīng)用程序等。
2.2.2 內(nèi)核下載及編譯工具獲取
2.2.3 編譯內(nèi)核的配置
編譯內(nèi)核最好使用root權(quán)限,參考linux-2.6.20/Documentation下相關(guān)說(shuō)明即可。
由于2.6.15-at91.patch.gz是標(biāo)準(zhǔn)的文本文件,所以這里直接用cat,這個(gè)命令后會(huì)出現(xiàn)一些patch文件信息,若出錯(cuò),則需要考慮patch版本是否匹配和linux源碼是否完整。然后修改Makefile將以下2行:
于是會(huì)出現(xiàn)一些配置信息,由于是AT91RM9200系統(tǒng),所以用make at91rm9200dk-defconfig,用makehelp可以查看其他的make選項(xiàng)。
make menuconfig
在選擇System type->Atmel AT91 System-On-Chip后,檢查配置是否成功。
如果確認(rèn)上述配置成功,就可在menuconfig里面修改CONFIG_CMDLINE中的啟動(dòng)參數(shù),把RAM盤大小從缺省值3 145 728 B(3 MB)修改成4 194 304 B(4 MB),注意這些參數(shù)是在啟動(dòng)加載時(shí)用的,尤其是整合成的內(nèi)核時(shí)啟動(dòng)要用到,不可以隨便修改,本統(tǒng)最后的參數(shù)為:
經(jīng)過(guò)編譯,可在linux-2.6.20/arch/arm/boot下面獲得zlmage。
2.3 BusyBox的交叉編譯
BusyBox最初是由Bruce Perens在1996年為Debian GNU/Linux安裝盤編寫的。其目標(biāo)是在一張軟盤上創(chuàng)建一個(gè)可引導(dǎo)的GNU/Linux系統(tǒng),這可以用作安裝盤和急救盤,是很多標(biāo)準(zhǔn)Linux?工具的一個(gè)單個(gè)可執(zhí)行實(shí)現(xiàn)。BusyBox包含了一些簡(jiǎn)單的工具,例如cat和echo等。由于很多標(biāo)準(zhǔn)Linux工具都可以共享很多共同的元素,當(dāng)這些工具被合并到一個(gè)可執(zhí)行程序中時(shí),它們就可以共享這些相同的元素,這樣可以產(chǎn)生更小的可執(zhí)行程序,這就為可引導(dǎo)的磁盤和使用Linux的嵌入式設(shè)備提供了更多功能。
2.3.1 下載BusyBox
BusyBox是按照GNU General Public License(GPL)許可證發(fā)行的。目前可使用的、穩(wěn)定的版本BusyBox-1.3.0.bz2可以從網(wǎng)站http://www.husybox.net/下載。
2.3.2 配置編譯BusyBox
如果這里不選擇成靜態(tài)的二進(jìn)制文件,那么在以后面做ramdisk時(shí)就需要把a(bǔ)rm-linux下的一些動(dòng)態(tài)庫(kù)復(fù)制到ramdisk的/lib里面去;不選擇Don’t use/usr,make install時(shí)busybox就不會(huì)安裝到本目錄的_install下,會(huì)覆蓋原來(lái)的usr/bin中內(nèi)容。由于Linux是開(kāi)放源代碼(Open Source)的,不存在黑箱技術(shù),遍布全球的眾多Linux愛(ài)好者又是Linux開(kāi)發(fā)者的強(qiáng)大技術(shù)支持,所以其他需要程序的讀者按照自己的需要選擇下載后編譯整合Linux內(nèi)核和initrd成bootplmage,再下載bootpImage啟動(dòng)Linux就可以了。
2.4 串口設(shè)計(jì)
因?yàn)閆igbee CC2430為本設(shè)計(jì)的下位機(jī),因此軟件設(shè)計(jì)主要集中在對(duì)ARM中央控制平臺(tái)的實(shí)現(xiàn)和Linux操作系統(tǒng)串口程序的實(shí)現(xiàn)上。因?yàn)槟壳癓inux2.6x系列內(nèi)核對(duì)串口有很好的支持性,所以在Linux對(duì)串口驅(qū)動(dòng)上的實(shí)現(xiàn)就很簡(jiǎn)單,也可極大的簡(jiǎn)化后期的維護(hù),有利于推廣。Li nux串口實(shí)現(xiàn)程序主要是對(duì)串口包括波特率和停止位設(shè)置。串口的設(shè)置主要是設(shè)置struct termios結(jié)構(gòu)體的各成員值。在Linux下串口文件位于/dev下,一般在內(nèi)核中串口1為/dev/ttySO,串口二為/dev/ttyS1,打開(kāi)串口是通過(guò)標(biāo)準(zhǔn)的文件打開(kāi)函數(shù)來(lái)實(shí)現(xiàn)的。當(dāng)設(shè)置好后即可發(fā)送初始化的命令和等待接收命令。串口流程如圖2所示。
在應(yīng)用層面的設(shè)計(jì)中還包括WEB的設(shè)計(jì)實(shí)現(xiàn),遠(yuǎn)程監(jiān)控系統(tǒng)的實(shí)現(xiàn),這里就不一一贅述。
3 結(jié)語(yǔ)
本文論述的遠(yuǎn)程監(jiān)控系統(tǒng)設(shè)計(jì)與以往的監(jiān)控系統(tǒng)不同,不僅采用了高性能的處理器芯片大大提高了系統(tǒng)的性能、還融入了物聯(lián)網(wǎng)技術(shù)。使這種遠(yuǎn)程監(jiān)控能夠領(lǐng)域更加廣泛。并且在設(shè)計(jì)上充分考慮到了系統(tǒng)的可擴(kuò)展性和兼容性問(wèn)題,實(shí)現(xiàn)了本系統(tǒng)與其他系統(tǒng)的無(wú)縫連接,以滿足不同工作環(huán)境的需要。