無線傳感器網(wǎng)絡(luò)是由大量微型傳感器節(jié)點(diǎn)通過無線自組織方式構(gòu)成的網(wǎng)絡(luò)。它集成了傳感器、微機(jī)電和無線通信三大技術(shù),能夠?qū)崟r(shí)地感知、采集和處理網(wǎng)絡(luò)覆蓋范圍內(nèi)的對(duì)象信息,并發(fā)送給觀察者;具有覆蓋區(qū)域廣、可遠(yuǎn)程監(jiān)控、監(jiān)測(cè)精度高、布網(wǎng)快速和成本低等優(yōu)點(diǎn),在軍事、環(huán)保、醫(yī)療保健、空間探索、工業(yè)監(jiān)控、精細(xì)農(nóng)業(yè)等領(lǐng)域均有非常良好的應(yīng)用前景。
1、無線傳感器網(wǎng)絡(luò)結(jié)構(gòu)
如圖1所示,無線傳感器網(wǎng)絡(luò)系統(tǒng)通常包括若干傳感器終端節(jié)點(diǎn)、一個(gè)Sink節(jié)點(diǎn)和一套后臺(tái)監(jiān)控軟件。其中,傳感器終端節(jié)點(diǎn)具有本地?cái)?shù)據(jù)采集傳輸和轉(zhuǎn)發(fā)鄰節(jié)點(diǎn)數(shù)據(jù)的雙重功能,可以在后臺(tái)管理軟件和Sink節(jié)點(diǎn)的控制下采集數(shù)據(jù),并將數(shù)據(jù)經(jīng)過多跳路由傳輸?shù)絊ink節(jié)點(diǎn);Sink匯聚節(jié)點(diǎn)是網(wǎng)絡(luò)的中心,具有協(xié)調(diào)器和網(wǎng)關(guān)的作用,負(fù)責(zé)網(wǎng)絡(luò)的配置、管理和數(shù)據(jù)的匯集,并負(fù)責(zé)與用戶PC機(jī)后臺(tái)管理軟件的通信。
2、系統(tǒng)硬件設(shè)計(jì)
無線傳感器網(wǎng)絡(luò)終端節(jié)點(diǎn)的硬件一般包括處理單元、無線傳輸單元、傳感采集單元和電源供應(yīng)單元。其中,處理單元負(fù)責(zé)控制傳感器節(jié)點(diǎn)的操作以及數(shù)據(jù)的存儲(chǔ)和處理;傳感采集單元負(fù)責(zé)監(jiān)測(cè)區(qū)域內(nèi)信息的采集;無線傳輸單元負(fù)責(zé)節(jié)點(diǎn)間的無線通信;電源供應(yīng)單元負(fù)責(zé)為節(jié)點(diǎn)供電。Sink節(jié)點(diǎn)功能更多,除包含上述功能單元以外,還包含與后臺(tái)監(jiān)控通信的接口單元。本文用串口作為Sink節(jié)點(diǎn)與后臺(tái)監(jiān)控軟件的通信接口。
本設(shè)計(jì)中處理單元采用了TI公司的16位低功耗單片機(jī)MSP430F1611,無線傳輸單元采用低功耗無線收發(fā)模塊CC1100,傳感采集單元采用溫濕度傳感器DHT90,電源模塊采用兩節(jié)普通7號(hào)電池。此外,考慮到很多數(shù)據(jù)具有時(shí)間相關(guān)性,本設(shè)計(jì)還加入了實(shí)時(shí)時(shí)鐘DS1337構(gòu)成的時(shí)間控制單元。節(jié)點(diǎn)組成如圖2所示,節(jié)點(diǎn)實(shí)物圖如圖3所示。
2.1 處理單元
MSP430F1611突出的特點(diǎn)是可以實(shí)現(xiàn)極低的功耗。它有5種可編程的工作模式,其中活動(dòng)模式下工作電流僅需280μA,LPM4模式下僅需0.1 μA。MSP30F1611內(nèi)部具有44 KB的Flash存儲(chǔ)器和10 KB的RAM,以及豐富的外設(shè)。本文中,MSP430F1611使用I2C接口連接RTC,SPI接口連接無線收發(fā)模塊,UART接口連接串口通信單元。
2.2 無線收發(fā)單元
無線收發(fā)單元選用Chipcon公司的CC1100射頻芯片。該芯片體積小,功耗低,數(shù)據(jù)速率支持1.2~500 kbps的可編程控制,可以工作在915 MHz、868 MHz、433MHz、315 MHz四個(gè)波段,在所有頻段提供-30~10 dBm輸出功率。本文中CC1100工作在433 MHz的頻率上,采用FSK調(diào)制方式,數(shù)據(jù)速率為100 kbps,信道間隔為200kHz。
CC1100與單片機(jī)采用SPI接口連接,原理圖如圖4所示。SPI總線接口技術(shù)是一種高速、高效率的串行接口技術(shù),主要用于擴(kuò)展外設(shè)和進(jìn)行數(shù)據(jù)交換。
下面是利用SPI與MSP430F1611通信的示例代碼。
(1) 往CC1100指定寄存器寫入一個(gè)數(shù)值
(2) 讀單個(gè)寄存器值
圖5和圖6為利用CC1100進(jìn)行數(shù)據(jù)收發(fā)的流程圖。
2.3 數(shù)據(jù)采集單元
節(jié)點(diǎn)的數(shù)據(jù)采集單元可以根據(jù)實(shí)際需要和被監(jiān)測(cè)物理信號(hào)特征選擇合適的傳感器,如光照、壓力、振動(dòng)、溫度、濕度、土壤鹽堿度等。
本文數(shù)據(jù)采集單元采用了Sensirion公司的數(shù)字式溫濕度傳感器DHT90。DHT90集成了溫度/濕度傳感器、信號(hào)放大調(diào)理器、A/D轉(zhuǎn)換器和總線接口,能夠進(jìn)行全校準(zhǔn)數(shù)字輸出,可以直接提供溫度在-40℃~120℃范圍內(nèi)、分辨率為14位、濕度在0~100%RH范圍內(nèi)且分辨率為12位的數(shù)字輸出。
2.4 時(shí)間控制單元
時(shí)間控制單元用于設(shè)置、記錄數(shù)據(jù)采集的時(shí)間,以便后臺(tái)用戶能夠依靠采集時(shí)間對(duì)數(shù)據(jù)進(jìn)行處理。本文選用Maxim公司的串行實(shí)時(shí)時(shí)鐘芯片DS1337作為時(shí)間控制單元。DS1337可以工作在1.8~5.5 V,并且具有很低的功耗,在休眠模式下僅需要15 μA。
2.5電源供應(yīng)單元
本文采用兩節(jié)7號(hào)堿性南孚電池為整個(gè)節(jié)點(diǎn)供電。為了能夠及時(shí)獲取節(jié)點(diǎn)電池的電量狀況,并根據(jù)電池的剩余電量狀況和放電特性來調(diào)整節(jié)點(diǎn)的通信狀態(tài),本文利用MSP430F1611芯片內(nèi)部集成的ADC12模塊測(cè)量電源正極電平值,并通過將所測(cè)電平值與參考電平進(jìn)行比較,得到轉(zhuǎn)換數(shù)據(jù)NADC,最后電源的電壓Vin可以由下式得出:
式中:VR+為參考電壓正極,VR-為參考電壓負(fù)極,Vin為ADC12轉(zhuǎn)換得到的電壓值,NADC為單片機(jī)轉(zhuǎn)換寄存器值。
2.6 串口通信單元
網(wǎng)絡(luò)中只有Sink節(jié)點(diǎn)才包含串口通信單元,終端節(jié)點(diǎn)無需串口通信單元。Sink節(jié)點(diǎn)的處理單元MSP430F1611通過串口通信單元與后臺(tái)監(jiān)控主機(jī)通信。Sink節(jié)點(diǎn)通過串口通信模塊可以將自身收集的全網(wǎng)信息數(shù)據(jù)傳送給后臺(tái)監(jiān)控主機(jī),研究人員根據(jù)監(jiān)控軟件對(duì)收集數(shù)據(jù)的智能處理結(jié)果向傳感器網(wǎng)絡(luò)發(fā)布數(shù)據(jù)和命令。
3、協(xié)議軟件設(shè)計(jì)
3.1 拓?fù)浣Y(jié)構(gòu)
制定網(wǎng)絡(luò)協(xié)議首先要確定的是網(wǎng)絡(luò)的拓?fù)浣Y(jié)構(gòu)。本文所設(shè)計(jì)的無線傳感器網(wǎng)絡(luò)協(xié)議采用簇-樹(cluster-tree)拓?fù)?。?樹拓?fù)涫怯删W(wǎng)絡(luò)協(xié)調(diào)器(coordinator)展開生成樹狀的拓?fù)浣Y(jié)構(gòu),適合于節(jié)點(diǎn)靜止或者移動(dòng)較少的場(chǎng)合;不需要存儲(chǔ)路由表,具有路由算法復(fù)雜度低、無初始延時(shí)等優(yōu)點(diǎn)。
3.2 通信協(xié)議棧
無線通信協(xié)議的設(shè)計(jì)目的是使具體的通信機(jī)制與上層的應(yīng)用分離,為傳感器節(jié)點(diǎn)提供網(wǎng)絡(luò)通信的功能。為了降低網(wǎng)絡(luò)設(shè)計(jì)的復(fù)雜性,采用分層設(shè)計(jì),參考OSI模型,將整個(gè)協(xié)議分為4層:物理層,提供簡(jiǎn)單但健壯的信號(hào)調(diào)制和無線收發(fā)技術(shù);MAC層,負(fù)責(zé)數(shù)據(jù)成幀、幀檢測(cè)、媒體訪問和差錯(cuò)控制;網(wǎng)絡(luò)層,主要負(fù)責(zé)路由生成和路由選擇;應(yīng)用層,包括一系列基于監(jiān)測(cè)任務(wù)的應(yīng)用層軟件。系統(tǒng)通信協(xié)議構(gòu)架如圖7所示。
整個(gè)系統(tǒng)協(xié)議設(shè)計(jì)包括Sink節(jié)點(diǎn)協(xié)議設(shè)計(jì)和終端節(jié)點(diǎn)協(xié)議設(shè)計(jì)。由于篇幅有限,本文僅介紹終端節(jié)點(diǎn)的軟件協(xié)議和系統(tǒng)主程序。
如圖8所示,終端節(jié)點(diǎn)在初始化成功后進(jìn)入信道掃描偵聽狀態(tài),當(dāng)偵聽到有鄰居節(jié)點(diǎn)活動(dòng)時(shí)便向鄰居節(jié)點(diǎn)請(qǐng)求時(shí)標(biāo)幀;節(jié)點(diǎn)依據(jù)接收到的時(shí)標(biāo)幀同步自己的時(shí)鐘,節(jié)點(diǎn)時(shí)鐘同步后進(jìn)入接入狀態(tài),接人成功后節(jié)點(diǎn)進(jìn)入業(yè)務(wù)狀態(tài)。處于業(yè)務(wù)狀態(tài)的節(jié)點(diǎn),執(zhí)行后臺(tái)和Sink節(jié)點(diǎn)發(fā)布的命令,進(jìn)行數(shù)據(jù)的傳感采集與傳輸,以及對(duì)鄰節(jié)點(diǎn)數(shù)據(jù)的中繼轉(zhuǎn)發(fā)。節(jié)點(diǎn)為了實(shí)現(xiàn)低功耗,必須在業(yè)務(wù)狀態(tài)與休眠狀態(tài)之間進(jìn)行輪換。
4、系統(tǒng)節(jié)能問題
在整個(gè)網(wǎng)絡(luò)系統(tǒng)的設(shè)計(jì)中,節(jié)約能量一直是考慮的重中之重。系統(tǒng)的節(jié)能,一靠硬件系統(tǒng)本身的低功耗,二靠軟件協(xié)議的低功耗。在硬件方面,本文節(jié)點(diǎn)選擇的都是低功耗的芯片,布板也充分考慮了低功耗要求;在軟件方面,除了采用休眠機(jī)制以外,還采用了基于電池能量模型的路由協(xié)議,使得節(jié)點(diǎn)能夠根據(jù)電池能量特性來工作,從而延長(zhǎng)了電池的使用壽命。
結(jié)語
本文主要介紹了一種基于MSP430F1611單片機(jī)和CC1100無線收發(fā)模塊,能夠?qū)崿F(xiàn)精確采集環(huán)境溫濕度信息的無線傳感器網(wǎng)絡(luò)硬件設(shè)計(jì)和軟件設(shè)計(jì)方案。在實(shí)際組網(wǎng)測(cè)試中,筆者構(gòu)建了19個(gè)終端節(jié)點(diǎn)和1個(gè)Sink節(jié)點(diǎn)的演示系統(tǒng),節(jié)點(diǎn)每休眠兩個(gè)小時(shí)醒來一次,節(jié)點(diǎn)醒來之后采集數(shù)據(jù)并發(fā)送給觀察者。實(shí)驗(yàn)表明,采用這種方式構(gòu)建的無線傳感器網(wǎng)絡(luò)系統(tǒng)數(shù)據(jù)采集及時(shí)準(zhǔn)確,而且能以極低的功耗進(jìn)行工作。