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