無(wú)線傳感器網(wǎng)絡(luò)是由大量低廉的微型傳感器節(jié)點(diǎn)組成的無(wú)線網(wǎng)絡(luò),是目前國(guó)際上無(wú)線領(lǐng)域研究的熱點(diǎn)之一,應(yīng)用前景非常好;而TinyOS是美國(guó)的伯克利大學(xué)開發(fā)的,為嵌入式無(wú)線傳感器網(wǎng)絡(luò)而設(shè)計(jì)的源碼開放的操作系統(tǒng),它運(yùn)行在每個(gè)網(wǎng)絡(luò)節(jié)點(diǎn)上,是其他上層應(yīng)用和協(xié)議運(yùn)行的前提。本設(shè)計(jì)以nRF24E1無(wú)線通信模塊為核心,基于無(wú)線傳感器網(wǎng)絡(luò)操作系統(tǒng)TinyOS,使用模塊化設(shè)計(jì)思路,實(shí)現(xiàn)了一個(gè)無(wú)線傳感器網(wǎng)絡(luò)。
1、無(wú)線傳感器網(wǎng)絡(luò)設(shè)計(jì)
1.1 系統(tǒng)構(gòu)成概述
無(wú)線傳感器網(wǎng)絡(luò)由三類節(jié)點(diǎn)構(gòu)成:一般采集所需要的信息無(wú)線終端節(jié)點(diǎn);收集一般節(jié)點(diǎn)中的數(shù)據(jù)并進(jìn)行存儲(chǔ)、處理、上傳的無(wú)線路由器節(jié)點(diǎn);無(wú)線服務(wù)節(jié)點(diǎn)實(shí)現(xiàn)無(wú)線路由器節(jié)點(diǎn)處理中心并充當(dāng)網(wǎng)關(guān)與其他外部網(wǎng)絡(luò)的連接。三類節(jié)點(diǎn)的硬件構(gòu)成基本相同,每個(gè)傳感器節(jié)點(diǎn)具有數(shù)據(jù)采集、簡(jiǎn)單的數(shù)據(jù)處理、短距離無(wú)線通信和自組網(wǎng)能力。
1.2總體設(shè)計(jì)框圖
無(wú)線傳感器網(wǎng)絡(luò)中三種節(jié)點(diǎn)硬件平臺(tái)的構(gòu)建基本相同,其基本節(jié)點(diǎn)構(gòu)成框圖如圖1所示。無(wú)線終端節(jié)點(diǎn)可去除顯示模塊、串口通信模塊和聲光報(bào)警單元,以節(jié)約節(jié)點(diǎn)的電能。
主控制部分裝載傳感器網(wǎng)絡(luò)操作系統(tǒng),實(shí)現(xiàn)對(duì)各個(gè)模塊的驅(qū)動(dòng),并對(duì)各個(gè)模塊的數(shù)據(jù)進(jìn)行處理;電源模塊為系統(tǒng)供電;無(wú)線通信模塊實(shí)現(xiàn)數(shù)據(jù)的無(wú)線傳輸功能;串行通信模塊可用于與上位機(jī)進(jìn)行通信,也可用于進(jìn)行系統(tǒng)配置;傳感器模塊利用傳感器采集數(shù)據(jù),并進(jìn)行數(shù)模轉(zhuǎn)換后交由主控制器處理;數(shù)據(jù)存儲(chǔ)模塊用于臨時(shí)或永久存儲(chǔ)系統(tǒng)數(shù)據(jù)備查。
2、系統(tǒng)的硬件實(shí)現(xiàn)
對(duì)于無(wú)線傳感器網(wǎng)絡(luò)硬件平臺(tái)的搭建,國(guó)內(nèi)外很多學(xué)者提出,用MSP430或AT89C2051作為主控制器,結(jié)合無(wú)線收發(fā)模塊來實(shí)現(xiàn)。國(guó)內(nèi)中科院杭州計(jì)算機(jī)所研制的gainz節(jié)點(diǎn)采用ATmega128處理器,再結(jié)合射頻收發(fā)芯片來實(shí)現(xiàn),這樣做難以真正做到微型網(wǎng)絡(luò)節(jié)點(diǎn),且成本難以控制。美國(guó)的伯克利大學(xué)研制的產(chǎn)品Mica2Dot節(jié)點(diǎn)采用自己設(shè)計(jì)的ASIC來實(shí)現(xiàn),這需要足夠的技術(shù)力量和資金。本系統(tǒng)以nRF24E1無(wú)線通信模塊為核心。nRF24E1是一顆集成高速2.4 GHz無(wú)線收發(fā)內(nèi)核的增強(qiáng)型51單片機(jī),可實(shí)現(xiàn)51單片機(jī)的所有功能。這是一顆高性能單片機(jī)內(nèi)核的高速1 Mbps單片無(wú)線收發(fā)芯片,所有高頻元件(包括電感振蕩器等)已經(jīng)全部集成在芯片內(nèi)部,使得產(chǎn)品一致性良好、性能穩(wěn)定且不受外界影響;可跳頻,點(diǎn)對(duì)多點(diǎn)通信及無(wú)線檢錯(cuò),所有功能均在一個(gè)6 mm×6 mm的QFN36芯片上實(shí)現(xiàn)。由于nRF24E1系統(tǒng)自帶存儲(chǔ)空間有限,系統(tǒng)外加一個(gè)串行EEPROM 25xx320,用來存儲(chǔ)TinyOS操作系統(tǒng)。在具體實(shí)現(xiàn)時(shí),將TinyOS編譯生成的系統(tǒng)文件轉(zhuǎn)換為hex文件格式,然后再用eeprep.exe轉(zhuǎn)換工具轉(zhuǎn)換為24E1格式的hex文件,用通用編程器將生成的24E1格式的hex文件寫入25xx320。25xx320是32 Kb,SPI接口串行。EEPROM。nRF24E1上電時(shí)先將外掛的25xx320的程序全部下載讀入內(nèi)部的4 KB專用RAM區(qū),然后開始執(zhí)行程序。在批量生產(chǎn)時(shí)可以將程序掩模在nRF24E1中,將外掛的25xx320省掉,進(jìn)一步降低成本,縮小節(jié)點(diǎn)體積。nRF24E1與25xx320的接口電路如圖2所示。
nRF24E1的具體外圍電路設(shè)計(jì)和其天線的設(shè)計(jì)可查閱nRF24E1的芯片手冊(cè),并了解有關(guān)射頻電路設(shè)計(jì)和天線設(shè)計(jì)的相關(guān)知識(shí)。根據(jù)系統(tǒng)需要可以采用環(huán)形天線、單端天線或螺旋天線,良好匹配的元件和螺旋天線可使系統(tǒng)的平地可視通信距離高達(dá)800m,對(duì)于天線的設(shè)計(jì),采用Aligent公司的ADS(Advanced Design System)進(jìn)行天線匹配。圖2中“天線”為單端50 歐姆天線。其layout的Top視圖如圖3所示。
顯示單元在無(wú)線路由節(jié)點(diǎn)和無(wú)線服務(wù)結(jié)點(diǎn)上使用,采用字符型液晶顯示屏1602C,實(shí)時(shí)顯示測(cè)量到的數(shù)據(jù),并給出提示信息,使操作簡(jiǎn)單,人機(jī)交互界面友好。聲光報(bào)警單元采用555作振蕩源,用單片機(jī)觸發(fā)振蕩源驅(qū)動(dòng)電磁訊響器作為聲音指示器,發(fā)光二極管作為光指示裝置,從而組成聲光報(bào)警單元。遠(yuǎn)程通信單元采用低電壓高速傳輸?shù)模?a target="_blank">RS232收發(fā)器MAX3316(CAE),實(shí)現(xiàn)工業(yè)現(xiàn)場(chǎng)的實(shí)時(shí)監(jiān)控。電源單元系統(tǒng)采用CR2450,3 V扣式電池,其在》2.8 V的條件下能提供大約530 mAh的能量(2l℃)。
3、系統(tǒng)的軟件實(shí)現(xiàn)
3.1 TinyOS概述
TinyOS是一個(gè)基于事件的系統(tǒng),其設(shè)計(jì)的主要目標(biāo)是代碼量小、耗能少、并發(fā)性高,可適應(yīng)不同的應(yīng)用。它采用面向元件結(jié)構(gòu),確??焖夙憫?yīng)和執(zhí)行,同時(shí)減小了代碼量,以適應(yīng)無(wú)線傳感器網(wǎng)絡(luò)嚴(yán)格的存儲(chǔ)空間需要。其操作系統(tǒng)、庫(kù)和程序服務(wù)程序是用nesC寫的。nesC是一種開發(fā)組件式結(jié)構(gòu)程序、具有C語(yǔ)法風(fēng)格的語(yǔ)言,其組件層次結(jié)構(gòu)就如同一個(gè)網(wǎng)絡(luò)協(xié)議棧,底層的組件負(fù)責(zé)接收和發(fā)送原始的數(shù)據(jù)位,而高層的組件對(duì)這些數(shù)據(jù)進(jìn)行編碼、解碼,更高層的組件負(fù)責(zé)數(shù)據(jù)打包、路由和傳輸數(shù)據(jù)。
3.2 系統(tǒng)節(jié)點(diǎn)的軟件框圖
無(wú)線路由節(jié)點(diǎn)和無(wú)線終端節(jié)點(diǎn)比無(wú)線終端節(jié)點(diǎn)多一個(gè)數(shù)據(jù)匯集和上傳的功能,其軟件設(shè)計(jì)流程如圖4所示。
3.3 傳感器網(wǎng)絡(luò)節(jié)點(diǎn)的實(shí)現(xiàn)
在TinyOS操作系統(tǒng)中,傳感器網(wǎng)絡(luò)節(jié)點(diǎn)的實(shí)現(xiàn)由moudules和configurations兩部分構(gòu)成。其modules部分代碼如下:
在modules中提供StdControl接口,使用了Timer、ADC、StdControl、Leds接口。nesC程序中可以使用同一個(gè)接口的多個(gè)實(shí)例,ADCControl是StdControl的實(shí)例。
在configurations中不提供任何接口,使用Main、SenseM、LedsC、TimerC、Photo模塊,連接Main.StdControl接口到SenseM.StdControl和TimerC.StdControl,連接SenseM.ADC接口到Photo.ADC,連接SenseM.ADCControl到Photo.StdControl。參數(shù)化接口允許組件通過運(yùn)行時(shí)或編譯時(shí)參數(shù)值使用多個(gè)該接口的實(shí)例provides。interface Timer[uint8_tid],unique(“Timer”)產(chǎn)生一個(gè)唯一的數(shù)字與Timer串關(guān)聯(lián)。
3.4 網(wǎng)絡(luò)數(shù)據(jù)報(bào)的分析
在基于TinyOS的傳感器網(wǎng)絡(luò)的網(wǎng)絡(luò)數(shù)據(jù)報(bào)文消息頭中包含group ID,使得多個(gè)節(jié)點(diǎn)可以共享同一個(gè)radio channel。group ID是一個(gè)8位數(shù),其默認(rèn)值是0x7D,使用DEFAULT_LOCAL_GROUP改變默認(rèn)group ID,如EFAULT_LOCAL_GROUP=0x7E,此時(shí)就把group ID改為了0x7E。以下為傳感器網(wǎng)絡(luò)節(jié)點(diǎn)接收到的封裝包格式:
7E 41 0F FF FF 08 7D 5D 1D 44 44 11 44 11 44 44 OO 00 00 00 00 00 00 0000 00 00 00 00 00 00 00 00 00 00 OO 00 00 DO 5C 7E
封包用0x7E,接下來是0x41是指封包格式。0x41是P_PACKET_ACK,0x42是P_PACKET_NO_ACK。第3個(gè)字節(jié)是0x0F,是SeqNo.,是從0x0E開始,也就是13 DECIMAL,接下來的格式TinyOS文件有說明,最后兩個(gè)字節(jié)是0xSCD0,是CRC校驗(yàn)。送出Packet之后,它會(huì)回送兩個(gè)信息:一個(gè)是2字節(jié)的封包,就是只有包含原本的packet type和SeqNo;另一個(gè)是P_PACKET_NO_ACK的格式的封包,和上面的格式一樣,不過SeqNo那個(gè)位不具有SeqNo的功能。
4、節(jié)點(diǎn)性能
該無(wú)線傳感器網(wǎng)絡(luò)節(jié)點(diǎn)工作電壓為1.9~3.6 V,發(fā)射電流約為11~13 mA,接收電流約19 mA,待機(jī)電流約3μA;工作在2.4 GHz頻段,共有125個(gè)頻道可用,滿足多點(diǎn)及跳頻通信需要。數(shù)據(jù)傳輸速率可達(dá)1 Mbps;可進(jìn)行CRC校驗(yàn),外接9路10位ADC,采樣率達(dá)100 kbps,可配置的PWM,輸出UART、SPI等多種外設(shè)。平地?zé)o障礙物通信距離可達(dá)800 m,且節(jié)點(diǎn)性能穩(wěn)定,對(duì)環(huán)境依賴比較小。
5、結(jié) 語(yǔ)
本文介紹了基于nRF24E1的系統(tǒng)硬件平臺(tái)的構(gòu)建,以及傳感器網(wǎng)絡(luò)操作系統(tǒng)TinyOS的系統(tǒng)程序設(shè)計(jì)。該傳感器網(wǎng)絡(luò)能準(zhǔn)確采集環(huán)境數(shù)據(jù),實(shí)時(shí)組網(wǎng)上傳,且其網(wǎng)絡(luò)節(jié)點(diǎn)結(jié)構(gòu)簡(jiǎn)單,價(jià)格低廉,真正實(shí)現(xiàn)了微型無(wú)線傳感器網(wǎng)絡(luò)節(jié)點(diǎn)。
責(zé)任編輯:gt
-
傳感器
+關(guān)注
關(guān)注
2551文章
51134瀏覽量
753895 -
無(wú)線通信
+關(guān)注
關(guān)注
58文章
4572瀏覽量
143568 -
操作系統(tǒng)
+關(guān)注
關(guān)注
37文章
6834瀏覽量
123350
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論