方志雄
(黃岡師范學(xué)院 物理與電子信息學(xué)院,湖北 黃岡 438000)
一種基于物聯(lián)網(wǎng)的遠(yuǎn)程監(jiān)控系統(tǒng)設(shè)計
方志雄
(黃岡師范學(xué)院 物理與電子信息學(xué)院,湖北 黃岡 438000)
為了實現(xiàn)工廠、交通等遠(yuǎ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)的整個工作軟件流程圖進(jìn)行了試驗和聯(lián)調(diào),符合原設(shè)計目標(biāo),系統(tǒng)具有擴展性,通用性和能與其他監(jiān)控設(shè)備無縫連接等性能,以滿足不同工作環(huán)境的需要,可為其他基于物聯(lián)網(wǎng)的遠(yuǎn)程監(jiān)控系統(tǒng)所借鑒和參考.
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)域.伴隨著對物聯(lián)網(wǎng)(internet of things)應(yīng)用研究的不斷深入,使得遠(yuǎn)程監(jiān)控系統(tǒng)的應(yīng)用領(lǐng)域更為廣泛.本文創(chuàng)新點在于是基于物聯(lián)網(wǎng)、以arm內(nèi)核芯片的嵌入式系統(tǒng)為核心技術(shù)的遠(yuǎn)程監(jiān)控系統(tǒng)設(shè)計,其中巧妙地移植移植u boot和嵌入式linux操作系統(tǒng)的編譯內(nèi)核配置.雖然主要是關(guān)于某市幾個重要路口的交通遠(yuǎn)程監(jiān)控管理系統(tǒng)的核心設(shè)計內(nèi)容,但亦可為其他基于物聯(lián)網(wǎng)的遠(yuǎn)程監(jiān)控系統(tǒng)所借鑒.
本設(shè)計系統(tǒng)主要由控制模塊、arm中央控制平臺、zigbee無線傳輸、以太網(wǎng)通信和多個擴展接口等部分組成,實際中可根據(jù)需求和使用環(huán)境靈活地選用適合的接口進(jìn)行操作,其體系結(jié)構(gòu)如圖1所示.

圖1 系統(tǒng)體系結(jié)構(gòu)
該系統(tǒng)主要是利用rs 232接口實現(xiàn)arm嵌入式系統(tǒng)與zigbee無線系統(tǒng)的連接進(jìn)而實現(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),當(dāng)運行了串口實現(xiàn)程序后,就可向zigbee芯片發(fā)出采集信息的命令.因此系統(tǒng)主要的軟件實現(xiàn)就是linux系統(tǒng)下的串口實現(xiàn)程序的設(shè)計.
圖1系統(tǒng)體系結(jié)構(gòu)其中檢測控制模塊可以是溫度控制模塊、壓力控制模塊、流量控制模塊等等實際監(jiān)控需檢測的參量模塊.各檢測控制模塊通過zigbee模塊與arm中央控制平臺實現(xiàn)無線連接,組成了一個星型無線智能控制網(wǎng)絡(luò).同時arm中央控制平臺通過以太網(wǎng)實現(xiàn)與外部遠(yuǎn)程連接.從而實現(xiàn)遠(yuǎn)程監(jiān)控.
1.1 arm中央控制平臺
在本設(shè)計中,arm中央控制平臺是系統(tǒng)的核心,主要負(fù)責(zé)數(shù)據(jù)采集判斷處理.為了提高系統(tǒng)工作效率,設(shè)計中采用了atmel公司生產(chǎn)的arm9芯片at91rm9200.由于at91rm9200處理器具有豐富的系統(tǒng)與應(yīng)用外設(shè)及標(biāo)準(zhǔn)的接口,因此根據(jù)應(yīng)用的需要很容易就可實現(xiàn)功能模塊的擴展.該芯片融合了arm920t arm thumb處理器特性:工作于180 mhz時性能高達(dá)200mips,存儲器管理單元,16 kb的數(shù)據(jù)緩存,16kb的指令緩存,寫緩沖器,含有調(diào)試信道的內(nèi)部仿真器,中等規(guī)模的嵌入式宏單元結(jié)構(gòu)(僅針對256bga封裝);低功耗:vddcore電流為30.4ma,待機模式電流為3.1 ma;附加的嵌入式存儲器:sram為16kb;rom為128kb;外部總線接口(ebi):支持sdram,靜態(tài)存儲器,burst flash,無縫連接的compactflash smartmedia及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/l00 base t型以太網(wǎng)卡接口:獨立的媒體接口(mii)或簡化的獨立媒體接口(rmii),對于接收與發(fā)送有集成的28 b fif0及專用的dma通道;usb 2.0全速(12 mb/s)主機雙端口:雙片上收發(fā)器(208引腳pqfp封裝中僅為一個):集成的fif0及專用的dma通道;usb 2.0全速(12 mb/s)器件端口:片上收發(fā)器,2 kb可配置的集成fif0;多媒體卡接口(mci):自動協(xié)議控制及快速自動數(shù)據(jù)傳輸,與mmc及sd存儲器卡兼容,支持2個sd存儲器;主機/從機串行外設(shè)接口(spi):8~16位可編程數(shù)據(jù)長度,可連接4個外設(shè);兩線接口(twi):主機模式支持,所有兩線atmel eeprom支持;所有數(shù)字引腳的ieee 1149.1 jtag邊界掃描.
正是由于at91rm9200芯片具有以上特性,所以它完全滿足了本設(shè)計系統(tǒng)必須具備的3個條件:高速處理能力、高速數(shù)據(jù)通道、網(wǎng)絡(luò)接口.
1.2 zigbee芯片
本設(shè)計中zigbee芯片選用chipcon公司的無線收發(fā)芯片cc2430.cc2430是一個真正片上系統(tǒng)芯片,內(nèi)部集成一個高性能2.4ghz直接序列擴頻(dsss)射頻收發(fā)器核心和一個工業(yè)級加強型8051內(nèi)核,無需再選另外的處理器,使設(shè)計簡化.
1.3 以太網(wǎng)控制器
本設(shè)計中以太網(wǎng)控制器采用是davicom公司的dm9000,這是具有10/100m自適應(yīng)以太網(wǎng)芯片.其特點是:支持8位、16位、32位數(shù)據(jù)總線寬度;寄存器操作簡單有效,有成熟的linux驅(qū)動程序支持;3.3v接口電平;成本相當(dāng)?shù)土贿€可以使用mii接口和phy芯片連接.dm9000還提供了介質(zhì)無關(guān)的接口,以連接所有提供支持介質(zhì)無關(guān)接口功能的家用電話線網(wǎng)絡(luò)設(shè)備或其他收發(fā)器;其物理協(xié)議層接口完全支持使用10mb/s下3類、4類、5類非屏蔽雙絞線和100mb/s下5類非屏蔽雙絞線.這是完全符合ieee802.3u規(guī)格.它的自動協(xié)調(diào)功能將自動完成配置以最大限度地適合其線路帶寬,還支持ieee802.3x全雙工流量控制.
2.1 移植u boot
通用bootloader(universal 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. sourceforge.net/lists/listinfo/u bootusers/獲得幫助.
2.1.2 修改 u boot配置文件
進(jìn)入存放u boot 1.1.2.tar.bz的目錄,運行tar jxvf u 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來配置的,若系統(tǒng)的配置和推薦的不同,則需要修改.需要修改文件主要是下面幾個:./board/ at91rm9200dk/config.mk,include/configs/+at91rm 9200dk.h,./board/at91rm9200dk/flash.c,flash.h在修改好u boot配置后,編譯運行即可.
2.2 嵌入式linux操作系統(tǒng)移植
at91rm9200芯片支持多種嵌入式操作系統(tǒng),但考慮到at91rm9200支持從內(nèi)部的bootrom啟動或從外部的dataflash、二線eeprom或8位并行存儲器引導(dǎo)啟動,因此,本設(shè)計中,主要將linux在at91rm9200上進(jìn)行移植.
2.2.1 嵌入式linux操作系統(tǒng)
嵌入式linux操作系統(tǒng)由一個kernel(內(nèi)核)及一些根據(jù)需要進(jìn)行定制的系統(tǒng)模塊組成.其kernel很小,一般只有幾百kb左右,即使加上其他必要的模塊和應(yīng)用程序,所需的存儲空間也很小.它具有多任務(wù)、多進(jìn)程的系統(tǒng)特征,有些還有具有實時性.一個小型的嵌入式linux系統(tǒng)只需要引導(dǎo)程序、linux微內(nèi)核 (由內(nèi)存管理、進(jìn)程管理和事務(wù)處理構(gòu)成)、初始化進(jìn)程3個基本元素組成.當(dāng)然,實際應(yīng)用中還需要讓它有更多的功能且繼續(xù)保持小型化,如加上文件系統(tǒng)(可以在rom,ram,flash或disk onchip中)、tcp/ip網(wǎng)絡(luò)支持、存儲更多數(shù)據(jù)用的磁盤、提供設(shè)計精簡的應(yīng)用程序等.
2.2.2 內(nèi)核下載及編譯工具獲取
在選擇system type>atmel at91 system on chip后,檢查配置是否成功.如果確認(rèn)上述配置成功,就可在menuconfig里面修改config_cmdline中的啟動參數(shù),把ram盤大小從缺省值3 145 728 b(3mb)修改成4 194 304 b(4 mb),注意這些參數(shù)是在啟動加載時用的,尤其是整合成的內(nèi)核時啟動要用到,不可以隨便修改,本統(tǒng)最后的參數(shù)為:
config_cmdline=“mem=64m console=ttys0,115200 initrd=0x20410000,4194304 root=/dev/ram0 rw”
其他的按照硬件做一些耗配覆選擇即可. make clean make zlmage make modules
經(jīng)過編譯,可在linux 2.6.20/arch/arm/boot下面獲得zlmage.
2.3 busybox的交叉編譯
busybox最初是由bruce perens在1996年為debian gnu/linux安裝盤編寫的.其目標(biāo)是在一張軟盤上創(chuàng)建一個可引導(dǎo)的gnu/linux系統(tǒng),這可以用作安裝盤和急救盤,是很多標(biāo)準(zhǔn)linux?工具的一個單個可執(zhí)行實現(xiàn).busybox包含了一些簡單的工具,例如cat和echo等.由于很多標(biāo)準(zhǔn)linux工具都可以共享很多共同的元素,當(dāng)這些工具被合并到一個可執(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.busybox.net/下載.
2.3.2 配置編譯busybox
#tar jxvfbusybox 1.3.0.tar.bz2
#cdbusybox 1.3.0
#make distclean
#make menuconfig
busybox setting的主要修改的選項為:
buildoptions
>buildbusyboxas a static binary(no shared lib)
installationoptuions >don′t use/usr
如果這里不選擇成靜態(tài)的二進(jìn)制文件,那么在以后面做ramdisk時就需要把arm 1inux下的一些動態(tài)庫復(fù)制到ramdisk的/lib里面去;不選擇don’t use/usr,make install時busybox就不會安裝到本目錄的_install下,會覆蓋原來的usr/bin中內(nèi)容.由于linux是開放源代碼(open source)的,不存在黑箱技術(shù),遍布全球的眾多l(xiāng)inux愛好者又是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)上.因為目前l(fā)inux 2.6x系列內(nèi)核對串口有很好的支持性,所以在linux對串口驅(qū)動上的實現(xiàn)就很簡單,也可極大的簡化后期的維護,有利于推廣.linux串口實現(xiàn)程序主要是對串口包括波特率和停止位設(shè)置.串口的設(shè)置主要是設(shè)置struct termios結(jié)構(gòu)體的各成員值.在linux下串口文件位于/dev下,一般在內(nèi)核中串口1為/dev/ttys0,串口二為/dev/ttys1,打開串口是通過標(biāo)準(zhǔn)的文件打開函數(shù)來實現(xiàn)的.當(dāng)設(shè)置好后即可發(fā)送初始化的命令和等待接收命令.串口流程如圖2所示.

圖2 串口流程圖
串口流程圖在應(yīng)用層面的設(shè)計中還包括web的設(shè)計實現(xiàn),遠(yuǎn)程監(jiān)控系統(tǒng)的實現(xiàn),這里就不一一贅述.
本文論述的遠(yuǎn)程監(jiān)控系統(tǒng)設(shè)計與以往的監(jiān)控系統(tǒng)不同,不僅采用了高性能的處理器芯片大大提高了系統(tǒng)的性能、還融入了物聯(lián)網(wǎng)技術(shù).使這種遠(yuǎn)程監(jiān)控能夠領(lǐng)域更加廣泛.并且在設(shè)計上充分考慮到了系統(tǒng)的可擴展性和兼容性問題,實現(xiàn)了本系統(tǒng)與其他系統(tǒng)的無縫連接,以滿足不同工作環(huán)境的需要.
〔1〕王建新.遠(yuǎn)程監(jiān)控技術(shù)的發(fā)展現(xiàn)狀和趨勢[J].國外電子測量技術(shù),2005(4):9-11.
〔2〕孫其博,劉杰.物聯(lián)網(wǎng)概念、架構(gòu)與關(guān)鍵技術(shù)研究綜述[J].北京郵電大學(xué)學(xué)報,2010(7):15-17.
〔3〕黃文龍,徐道連.基于zigbee和arm的嵌入式智能家庭安防系統(tǒng)設(shè)計[J].重慶工學(xué)院學(xué)報(自然科學(xué)版),2009(2):152-156.
〔4〕韋東山.嵌入式linux應(yīng)用開發(fā)完全手冊[M].北京:人民郵電出版社,2008.
〔5〕陳文星,張輝宜.嵌入式linux操作系統(tǒng)的特性[J].計算機技術(shù)與發(fā)展,2006(3):20-21.
〔6〕管耀武,楊宗德.arm嵌入式無線通信系統(tǒng)開發(fā)實例精講[M].北京:電子工業(yè)出版社,2006.
TP277
A
1673-260X(2013)11-0022-03
湖北省教育廳科研項目(B2013143)