基于ZigBee協(xié)議的無線傳感器網(wǎng)絡(luò)設(shè)計
掃描二維碼
隨時隨地手機(jī)看文章
1 引 言
傳感器作為人們感官的延伸,在現(xiàn)代社會中得到了越來越廣泛的應(yīng)用。隨著通信技術(shù)、嵌入式技術(shù)、傳感器技術(shù)的發(fā)展,
傳感器正逐漸向智能化、微型化、無線網(wǎng)絡(luò)化發(fā)展。本文以溫度傳感器為例, 使用模塊化設(shè)計思路,
實現(xiàn)了一個無線傳感器網(wǎng)絡(luò)[1]。這種傳感器網(wǎng)絡(luò)綜合了嵌入式技術(shù)、傳感器技術(shù)、短程無線通信技術(shù),
在實際中有著廣泛的應(yīng)用。無線傳感器網(wǎng)絡(luò)可以應(yīng)用于環(huán)境科學(xué), 為科學(xué)家獲得野外的隨機(jī)數(shù)據(jù)提供方便; 可以應(yīng)用于醫(yī)療健康,
在病人身上安裝一些特殊的傳感器, 醫(yī)生可以隨時監(jiān)測病人的身體情況; 在商業(yè)上, 無線傳感器網(wǎng)絡(luò)和中心主控計算機(jī)相結(jié)合,
能夠給人們提供更舒適、方便、人性化的家居環(huán)境。
普通節(jié)點和匯聚節(jié)點的CPU模塊都采用TI公司的MSP系列單片機(jī),MSP430系列單片機(jī)具有超低功耗性能,對于無線傳感器網(wǎng)絡(luò)來說,這一點是很重要的。另外它具有8通道12位高精度A/D采樣,可以滿足各種需要的數(shù)據(jù)采集與監(jiān)控的應(yīng)用,具有一定的通用性。此外射頻部分采用Chipcon公司的符合IEEE802.15.4/ZigBee[2]協(xié)議的CC2420為核心組成射頻模塊,ZigBee對無線傳感器網(wǎng)絡(luò)來說無疑是最合適的無線局域網(wǎng)通信協(xié)議。
2 無線傳感器網(wǎng)絡(luò)中普通節(jié)點和匯聚節(jié)點的硬件設(shè)計
2.1 WSN普通節(jié)點的硬件體系結(jié)構(gòu)
無線傳感器節(jié)點的普通節(jié)點負(fù)責(zé)將實時數(shù)據(jù)采集起來并將其發(fā)送到鄰居節(jié)點,其硬件結(jié)構(gòu)圖如圖1所示。
圖 1: WSN中普通Sensor Node結(jié)構(gòu)
2.2 WSN匯聚節(jié)點的硬件體系結(jié)構(gòu)
匯聚節(jié)點的作用是將傳感器節(jié)點發(fā)送的數(shù)據(jù)收集起來,并進(jìn)行一定的數(shù)據(jù)優(yōu)化處理將其需要的格式發(fā)送給最終監(jiān)控計算機(jī)。
圖 2: WSN中匯聚Sink Node結(jié)構(gòu)
各部分的具體組成
中央處理器CPU部分:
由于整個設(shè)計要以低功耗為原則,一次選取了業(yè)界公認(rèn)的超低功耗處理器MSP430[6]系列單片機(jī)。
TI 公司的MSP430
系列單片機(jī)是一種超低功耗的混合信號控制器,能夠在低電壓下以超低功耗狀態(tài)工作;其控制器具有強(qiáng)大的處理能力和豐富的片內(nèi)外設(shè);帶60k
Flash ROM存儲器的單片機(jī)可以存儲大量的節(jié)點數(shù)據(jù)采集信息還可以方便高效地進(jìn)行在線仿真和編程。MSP430
系列單片機(jī)最顯著的特點就是它的超低功耗,在1.8V~3.6V 電壓、1MHz 的時鐘條件下運行,耗電電流在0.1mA~400mA
之間,RAM
在節(jié)電模式耗電為0.1mA,等待模式下僅為0.7mA。能耗是無線傳感器網(wǎng)絡(luò)的瓶頸,節(jié)點必須依靠電池供電。所以采用MSP430F149
是最佳選擇。
無線通信模塊設(shè)計:
采用挪威半導(dǎo)體公司Chipcon 推出的CC2420 是全球首顆符合802.15.4/ZigBee 聯(lián)盟標(biāo)準(zhǔn)的2.4GHz
射頻芯片。CC2420基于Chipcon 公司的SmartRF03 技術(shù),采用0118μm 工藝。為了保持和ZigBee[4]
標(biāo)準(zhǔn)一致,CC2420
支持250kbps數(shù)據(jù)傳輸率。芯片具有50個寄存器:33個控制、狀態(tài)寄存器;15個命令選通寄存器;2個先入先出緩存控制寄存器。
本設(shè)計的一個主要創(chuàng)新之處在于選取了硬件上支持IEEE
802.15.4/ZigBee協(xié)議的物理層和數(shù)據(jù)鏈路層中的LLC子層,因此這時我們只需在協(xié)議層上實現(xiàn)上層的安全層,MAC層和用戶的應(yīng)用層協(xié)議。下面介紹ZigBee協(xié)議在新一代無線通信中的特點和對于無線傳感器網(wǎng)絡(luò)中應(yīng)用的優(yōu)勢。
低功耗:由于ZigBee 的傳輸速率低,發(fā)射功率僅為1mW,而且采用了休眠模式,功耗低,因此ZigBee設(shè)備非常省電。ZigBee
設(shè)備僅靠兩節(jié)5 號電池就可以維持長達(dá)6 個月到2 年左右的使用時間,這是其它無線設(shè)備望塵莫及的。
成本低: ZigBee 模塊的初始成本在6 美元左右,并且ZigBee 協(xié)議是免專利費的。低成本對于ZigBee
也是一個關(guān)鍵的因素。
時延短:通信時延和從休眠狀態(tài)激活的時延都非常短,典型的搜索設(shè)備時延為30ms ,休眠激活的時延是15ms
,活動設(shè)備信道接入的時延為15ms。因此ZigBee 技術(shù)適用于對時延要求苛刻的無線控制(如工業(yè)控制場合等) 應(yīng)用。
網(wǎng)絡(luò)容量大:一個星型結(jié)構(gòu)的ZigBee 網(wǎng)絡(luò)最多可以容納254 個從設(shè)備和一個主設(shè)備,而且網(wǎng)絡(luò)組成靈活。
可靠:采取了碰撞避免策略(CSMA-CA),同時為需要固定帶寬的通信業(yè)務(wù)預(yù)留了專用時隙,避開了發(fā)送數(shù)據(jù)的競爭和沖突。MAC
層采用了完全確認(rèn)的數(shù)據(jù)傳輸模式,每個發(fā)送的數(shù)據(jù)包都必須等待接收方的確認(rèn)信息。如果傳輸過程中出現(xiàn)問題可以進(jìn)行重發(fā)。
安全:ZigBee 提供了基于循環(huán)冗余校驗(CRC)的數(shù)據(jù)包完整性檢查功能,支持鑒權(quán)和認(rèn)證,采用了AES-128
的加密算法,各個應(yīng)用可以靈活確定其安全屬性。
CPU和RF接口設(shè)計如圖所示:
圖 3: MCU與RF之間的接口
單片處理器通過4線制SPI總線接口和射頻芯片CC2420通信,單片微處理器可以通過編程使CC2420工作在不同的狀態(tài),讀、寫緩存數(shù)據(jù),讀CC2420回饋的信息。
在與射頻芯片的接收、發(fā)送FIFO接口時用FIFO和FIFIOP引腳進(jìn)行狀態(tài)的控制和讀取信息;
射頻天線部分的原理圖如圖5所示,在2.4G
HZ的無線通信系統(tǒng)中設(shè)計采用的對信號屏蔽和保護(hù)效果很好的環(huán)形天線設(shè)計,采用帶屏蔽層的四層PCB設(shè)計,在實際中取得了很好的效果,天線部分的阻抗匹配電路原理圖如下面所示。
圖4:射頻天線部分的信號保護(hù)原理圖
USB-UART[5]轉(zhuǎn)換模塊:
USB
2.0標(biāo)準(zhǔn)已經(jīng)成為現(xiàn)在計算機(jī)和外圍設(shè)備的標(biāo)準(zhǔn)通信接口。這樣用戶可以很方便的攜帶移動設(shè)備,設(shè)備之間可以達(dá)到很快的數(shù)據(jù)傳輸速度并達(dá)到很好的抗干擾性,一邊是設(shè)備穩(wěn)定可靠的工作。
這個模塊選用FTDI-232BM總線芯片實現(xiàn)標(biāo)準(zhǔn)的串行RS232轉(zhuǎn)換USB的電路,下面簡述此款總線芯片的接口:只有三個接口,一個標(biāo)準(zhǔn)USB口,一個標(biāo)準(zhǔn)RS232串口,還有一個多功能口。如圖所示總線轉(zhuǎn)接芯片周圍電路原理圖。
圖5: USB轉(zhuǎn)232總線芯片原理圖
數(shù)據(jù)采集電路[4]:
節(jié)點的數(shù)據(jù)采集部分可根據(jù)實際需要選定合適的傳感器,如振動、聲響、溫度、光線等,因為整個模塊由電池供電,這就要求傳感器體積小、低功耗、外圍電路簡單,最好采用不需要信號調(diào)理電路的數(shù)字式傳感器。本設(shè)計采用AD公司的兩維數(shù)字加速度計ADXL202和Maxim公司的一線式數(shù)字溫度計DS18B20是很好的選擇。
3 底層軟件和協(xié)議棧層軟件設(shè)計
3.1 底層軟件設(shè)計
底層軟件[6]設(shè)計:
數(shù)據(jù)采集部分程序:
ADC12Init:初始化CPU的AD采集通道數(shù),采集時間,位數(shù),等基本信息,并開定時器中斷;
ADC12_ISR: 中斷子程序,定時器中斷到時后將AD緩存中的數(shù)字量存儲到堆棧數(shù)組中去,等待發(fā)送。
MCU操作CC2420中的寄存器的時序參見[4]。SPI操作設(shè)置CC2420程序設(shè)計分為基本的異步串行口發(fā)送接收程序,設(shè)置控制狀態(tài)寄存器的函數(shù);讀取、更新射頻芯片狀態(tài)寄存器。具體的API函數(shù)可以參考文中表一的設(shè)計。
表一 射頻控制API函數(shù)
3.2 通信協(xié)議程序設(shè)計
IEEE802.15.4/ZigBee傳輸?shù)膸袷郊捌渥饔?
在IEEE802. 15. 4標(biāo)準(zhǔn)中,定義了一套新的安全協(xié)議和數(shù)據(jù)傳輸協(xié)議,本方案中,采用的無線模塊根據(jù)IEEE802. 15.
4標(biāo)準(zhǔn),定義了一套幀格式來傳輸各種數(shù)據(jù)。如圖所示是本論文設(shè)計中的符合標(biāo)準(zhǔn)的在物理層和數(shù)據(jù)鏈路層中各種幀的一般格式。
命令幀主要功能是在全功能設(shè)備和對精簡功能設(shè)備在網(wǎng)絡(luò)中的行為和狀態(tài)進(jìn)行控制和監(jiān)視;數(shù)據(jù)型數(shù)據(jù)幀結(jié)構(gòu)的作用是把指定的數(shù)據(jù)傳送到網(wǎng)絡(luò)中指定節(jié)點上的外部設(shè)備中,具體的接收目標(biāo)也由這兩種幀結(jié)構(gòu)中的“目標(biāo)地址”給定。返回幀是返回型數(shù)據(jù)幀結(jié)構(gòu)的作用是無線模塊將發(fā)送數(shù)據(jù)接收情況反饋給自身的幀。
圖6: 符合IEEE 802.15.4/ZigBee通信協(xié)議幀
程序中定義發(fā)送數(shù)據(jù)結(jié)構(gòu)體和接收數(shù)據(jù)結(jié)構(gòu)體包括下列信息:發(fā)送幀序列號、發(fā)送設(shè)備源地址、PAN網(wǎng)絡(luò)的地址、幀長度、接收數(shù)據(jù)指針等信息。
本文的幀發(fā)送和接收程序設(shè)計符合ZigBee協(xié)議的要求,對數(shù)據(jù)的發(fā)送接收在軟件上實現(xiàn)了最可靠的形式。下圖所示為發(fā)送程序的流程圖。
接收程序流程圖
4 結(jié) 語
考慮到WSN的應(yīng)用低功耗性,本設(shè)計采用低功耗的MSP430系列單片機(jī),完成了基于ZigBee的無線傳感器網(wǎng)絡(luò)硬件電路設(shè)計,其中包括基于超低功耗MCU最小系統(tǒng)的核心控制模塊、無線射頻收發(fā)模塊、以及一種能夠通過USB-COM端口對傳感器節(jié)點進(jìn)行接口供電、編程和控制的功能模塊,進(jìn)一步簡化了外部接口。針對傳感器網(wǎng)絡(luò)這個特殊的背景選取了具有多種優(yōu)勢的ZigBee通信協(xié)議,并對ZigBee協(xié)議棧的技術(shù)細(xì)節(jié)進(jìn)行研究。設(shè)計了ZigBee無線通信協(xié)議棧的通信程序,能夠很好的符合無線傳感網(wǎng)絡(luò)的各種需求。通過軟件設(shè)計的無線通信協(xié)議。