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