基于MSP430F1611的無線傳感器網(wǎng)絡(luò)節(jié)點的設(shè)計
本文在簡要介紹無線傳感器網(wǎng)絡(luò)節(jié)點體系結(jié)構(gòu)的基礎(chǔ)上,從實際應(yīng)用考慮,設(shè)計了一種基于MSP430F1611的無線傳感器網(wǎng)絡(luò)節(jié)點,詳細介紹了節(jié)點的硬件設(shè)計方案。
1 無線傳感器網(wǎng)絡(luò)節(jié)點的體系結(jié)構(gòu)
無線傳感器網(wǎng)絡(luò)節(jié)點是網(wǎng)絡(luò)的基本單元,節(jié)點的穩(wěn)定運行是整個網(wǎng)絡(luò)可靠性的重要保障。在不同應(yīng)用中,傳感器網(wǎng)絡(luò)節(jié)點的組成不盡相同,但都由數(shù)據(jù)采集模塊(傳感器、A/D轉(zhuǎn)換器)、數(shù)據(jù)處理模塊(微處理器、存儲器)、數(shù)據(jù)傳輸模塊(無線收發(fā)器)和電源模塊(電池、DC/DC能量轉(zhuǎn)換器)四部分組成[2]。被監(jiān)測物理信號的形式?jīng)Q定傳感器的類型,處理器通常選用嵌入式CPU,數(shù)據(jù)傳輸模塊主要由低功耗短距離的射頻收發(fā)器組成。因為需要進行復(fù)雜的任務(wù)調(diào)度與管理,需要一個微型化的操作系統(tǒng),UCBerkely為此專門開發(fā)了TinyOS操作系統(tǒng)。傳感器網(wǎng)絡(luò)節(jié)點的組成如圖1所示。
2 無線傳感器網(wǎng)絡(luò)節(jié)點的硬件設(shè)計
為了實現(xiàn)對溫度、濕度、光等多種物理信息的精確采集,并將采集信息進行采樣、數(shù)模轉(zhuǎn)換,以及根據(jù)應(yīng)用需求進行相應(yīng)的處理,把處理后的信息通過多跳轉(zhuǎn)發(fā)傳送回PC機進行處理;同時為了滿足節(jié)點壽命和工作性能的要求,綜合考慮能耗、傳輸距離、數(shù)據(jù)速率、安全性和通用性等因素,本文所設(shè)計的無線傳感器網(wǎng)絡(luò)節(jié)點硬件平臺選用如下設(shè)計方案。
數(shù)據(jù)采集模塊選用了Sensirion公司的數(shù)字溫濕度傳感器SHT71以及光傳感器S1087和S1087-01;數(shù)據(jù)處理模塊選用了TI公司的16位超低功耗單片機MSP430F1611;無線通信模塊選用了RFM公司低功耗、短距離的433.92MHz單頻點RF收發(fā)芯片TR3000;電源模塊采用CR2032紐扣電池為整個節(jié)點供電。傳感器網(wǎng)絡(luò)節(jié)點硬件平臺如圖2所示。
2.1 數(shù)據(jù)采集模塊
節(jié)點的數(shù)據(jù)采集部分可以根據(jù)實際需要和被監(jiān)測信號的物理特征選擇合適的傳感器,如:溫度、濕度、光強、壓力、振動等,本節(jié)點的設(shè)計可以對外界溫度、濕度、可見光、紅外光信號進行精確采集。
2.1.1溫濕度數(shù)據(jù)的采集
本節(jié)點的設(shè)計采用了Sensirion公司的數(shù)字溫濕度傳感器SHT71[3]。它是一款將溫/濕度傳感器、信號放大調(diào)理器、A/D轉(zhuǎn)換器和總線接口全部集成于一個芯片上的單片全校準數(shù)字輸出傳感器,可以直接提供溫度在-40℃~120℃范圍內(nèi)且分辨率為14bit以及濕度在O~100%RH范圍內(nèi)且分辨率為12bit的數(shù)字輸出。
SHT71采用串行時鐘輸入線SCK與單片機保持通信同步,串行數(shù)據(jù)線DATA收發(fā)通信協(xié)議命令和數(shù)據(jù)。其控制流程如下:程序開始用一組"啟動傳輸"時序表示數(shù)據(jù)傳輸?shù)某跏蓟?當(dāng)SCK時鐘為高電平時,DATA翻轉(zhuǎn)為低電平,緊接著SCK變?yōu)榈碗娖?,隨后在SCK時鐘高電平時DATA翻轉(zhuǎn)為高電平);然后發(fā)送一組測量命令('00000011'表示溫度,'00000101'表示相對濕度)后釋放DATA線,等待SHT71下拉DATA值低電平,表示測量結(jié)束,同時輸出采集數(shù)據(jù)到MSP430F16ll,讀取測量數(shù)據(jù)后可以通過下式計算出相對濕度和溫度值。
溫度計算公式為:溫度=d1+d2XSOT
相對溫度值如下:
相對濕度計算公式為:Rlinear=c1+c2xSORH+c3xS0RH2
相對濕度值如下:
2.1.2 可見光與紅外光數(shù)據(jù)的采集
本節(jié)點的設(shè)計除了能夠?qū)ν饨绛h(huán)境中的溫濕度數(shù)據(jù)進行精確采集外,還可以通過光傳感器S1087和S1087-0l[4]來采集可見光數(shù)據(jù)和紅外光數(shù)據(jù)。該光傳感器是一種陶瓷包裝的光電測量計,它的測量輸出為標準電流信號,陶瓷封裝可用于光密封,因此背光和側(cè)光不能到達測量活動區(qū),從而可以得到可靠的可見光和紅外光范圍的光信號測量。
從傳感器輸出的是標準電流信號,由于A/D轉(zhuǎn)換基準為電壓,所以ADCl2轉(zhuǎn)換的是電壓。因此采集電路通過100kΩ負載電阻將傳感器輸出的電流信號轉(zhuǎn)換為電壓信號后送入MSP430F1611的片內(nèi)ADCl2模塊進行轉(zhuǎn)換,ADCl2轉(zhuǎn)換輸出的最大值為4095。
在進行光強值計算時,通過讀取處理器轉(zhuǎn)換存儲寄存器值可以得到轉(zhuǎn)換結(jié)果,由(1)式計算出電壓Vin,進而得到電流值。再根據(jù)S1087/S1087-01的輸出特性曲線得到光強值。圖3給出了實際光信號與傳感器輸出電流信號的關(guān)系曲線。
其中:VR+為參考電源正端,VR-為參考電源負端,Vin為ADCl2轉(zhuǎn)換得到的電壓值,NADC為處理器轉(zhuǎn)換存儲寄存器值。
模擬量采集部分具有一定的通用性,只要連接不同類型的傳感器就可以采集不同信號源的數(shù)據(jù)。
2.2 數(shù)據(jù)處理模塊
數(shù)據(jù)處理模塊是傳感器網(wǎng)絡(luò)節(jié)點的核心部分,一方面接收來自傳感器的測量數(shù)據(jù),按要求對數(shù)據(jù)進行處理和計算等,交給通信模塊發(fā)送;另一方面讀取通信模塊送入的數(shù)據(jù)信息,對硬件平臺其它模塊的操作進行控制。
本節(jié)點選用TI公司的16位超低功耗單片機MSP430F161l[5]。該單片機電源采用1.8V~3.6V的低電壓,RAM數(shù)據(jù)保持方式下耗電僅為0.1μA,可以在低電壓下以超低功耗狀態(tài)工作。其中48KB Flash存儲器可以支持在線編程和仿真,并具有較強的處理能力和豐富的片內(nèi)外設(shè),具體如下:
看門狗可以在程序失控時迅速復(fù)位;16位定時器(Timer_A和Timer_B)具有捕獲/比較功能;大量的捕獲/比較寄存器可以用于事件計數(shù)、時序發(fā)生等;多功能串口(USART)可以實現(xiàn)異步、同步和I2C串行通信,可以方便地實現(xiàn)多機通信的應(yīng)用;具有較多的I/O端口,最多達6x8條I/O口線,Pl、P2端口還可以接收外部上升沿或下降沿的中斷輸入;12位A/D轉(zhuǎn)換器有較高的轉(zhuǎn)換速率,最高可達200kbps,能夠滿足大多數(shù)數(shù)據(jù)采集的應(yīng)用。
單片機的接口電路非常簡單,通過片內(nèi)的A/D通道實現(xiàn)模擬量的采集。通過片內(nèi)的A/D轉(zhuǎn)換部分不僅可以降低系統(tǒng)設(shè)計的復(fù)雜性,而且還可以提高系統(tǒng)的可靠性,避免接口的復(fù)雜性,同時還可以減小PCB板的面積;設(shè)計中采用一般I/O口實現(xiàn)數(shù)字量的采集電路接口;其中串口通信通過單片機內(nèi)的UART。
實現(xiàn);在單片機的時鐘設(shè)計上,考慮到通信速率的要求,MSP430F1611單片機采用一個4MHz的時鐘信號,該系統(tǒng)的時鐘部分均采用晶體振蕩器實現(xiàn);考慮到電源的輸入紋波對單片機的影響,在電源的管腳增加一個O.1μF的電容來實現(xiàn)濾波,以減小輸入端受到的干擾。
在網(wǎng)絡(luò)中,節(jié)點需要處理的信息和數(shù)據(jù)大致可分為四類:管理控制信息、網(wǎng)內(nèi)組網(wǎng)交互信息、需轉(zhuǎn)發(fā)的數(shù)據(jù)和采集的數(shù)據(jù)。它們在節(jié)點中的處理流程如圖4所示。
2.3 無線通信模塊
基于無線傳感器網(wǎng)絡(luò)所要求的數(shù)據(jù)傳輸速率不高及傳輸距離相對節(jié)點能耗控制要求嚴格的特點,綜合研究比較了幾類無線收發(fā)芯片,選用RFM公司的TR3000[7]來完成通信模塊的設(shè)計。它是RFM公司推出的一款433.92MHz單頻點無線RF收發(fā)器,TR3000工作穩(wěn)定,尺寸小,功耗低,在采用ASK調(diào)制方式時最高通信速率可達115.2kbps。在通信速率較低的情況下,通信距離可達100米,是短距離無線數(shù)據(jù)傳輸?shù)睦硐脒x擇。
TR3000可以很容易地與MSP430超低功耗微處理器相連接并通過軟件對TR3000進行控制,使其處于不同的工作模式??刂乒苣_CNTRL0和CNTRL1的狀態(tài)與工作模式的對應(yīng)關(guān)系為:00一休眠模式;01一OOK發(fā)送模式;10-ASK發(fā)送模式;11一接收模式。TR3000電路原理圖如圖5所示。
2.4 串口通信模塊
該節(jié)點的串口通信模塊主要負責(zé)PC 機與傳感器網(wǎng)絡(luò)節(jié)點之間的通信。在網(wǎng)絡(luò)中只有網(wǎng)關(guān)節(jié)點(Sink節(jié)點)中含有串口通信模塊。Sink節(jié)點是網(wǎng)絡(luò)中所特有的,主要向下級節(jié)點發(fā)送查詢命令,同時散布在外界環(huán)境中的網(wǎng)絡(luò)節(jié)點將采集到的信息通過多跳轉(zhuǎn)發(fā)送回Sink節(jié)點并通過串口送至PC機進行處理。
MSP430F161l具有片內(nèi)UART,因此實現(xiàn)串口通信相當(dāng)容易。由于單片機與上位機進行通信的接口電平不同,因此需要進行接口電平轉(zhuǎn)換,串口通信電路的設(shè)計采用MAX3221實現(xiàn)單片機的TTL電平與PC機的RS232接口電平的轉(zhuǎn)換。
2.5 電源模塊
在節(jié)點的設(shè)計中采用CR2032紐扣電池為整個節(jié)點供電,CR2032在大于2.8V的條件下能提供大約200mAh的能量。
為了及時了解節(jié)點的能量存儲和消耗狀況,并根據(jù)節(jié)點能量狀態(tài)來調(diào)整節(jié)點的通信策略[6],本文將來自電源正極的電平值輸入到MSP430F1611的ADCl2模塊內(nèi),與參考電平進行比較,通過讀取處理器轉(zhuǎn)換存儲寄存器值可以得到轉(zhuǎn)換結(jié)果,同樣由公式(1)可以計算出電壓Vin,從而掌握電源電壓的變化情況。
3 節(jié)能策略的設(shè)計
在整個硬件平臺的設(shè)計中,節(jié)能一直是本文考慮的一個重要因素,它決定著傳感器網(wǎng)絡(luò)的壽命。節(jié)點節(jié)能的最主要方式是休眠機制。當(dāng)節(jié)點目前沒有傳感任務(wù)并且不需要為其他節(jié)點轉(zhuǎn)發(fā)數(shù)據(jù)時關(guān)閉節(jié)點的無線通信模塊、數(shù)據(jù)采集模塊等以節(jié)省能量。
這樣,一個傳感任務(wù)發(fā)生時,只有與之相鄰的區(qū)域內(nèi)的傳感器節(jié)點處于活動狀態(tài),才能形成一個活動區(qū)域?;顒訁^(qū)域隨著數(shù)據(jù)向Sink節(jié)點傳送而移動,這樣原先活動的節(jié)點在離開活動區(qū)域后可以轉(zhuǎn)入休眠模式從而節(jié)省能量。另外,由于處理器系統(tǒng)中有一種活動模式和五種低功耗模式,所以通過指令控制處理器時鐘的打開與關(guān)閉(即采用不同的工作模式),實現(xiàn)對總體功耗的控制來達到節(jié)能的目的。
在采用各種節(jié)能策略之后,整個硬件平臺的整體能耗如表1所示。
本文主要介紹了以MSP430F1611單片機為核心,實現(xiàn)對外界環(huán)境中溫度、濕度及光信號進行精確采集的無線傳感器網(wǎng)絡(luò)節(jié)點的硬件設(shè)計方案。在實際的組網(wǎng)測試中,筆者將其應(yīng)用于黃河地區(qū)生態(tài)環(huán)境監(jiān)測,構(gòu)建了15個節(jié)點和1個Sink節(jié)點的小型網(wǎng)絡(luò),一般情況下節(jié)點處于休眠狀態(tài),當(dāng)有中斷請求時激活節(jié)點工作,采用中斷方式接收和發(fā)送數(shù)據(jù),將采集到的數(shù)據(jù)傳輸給主機。實驗表明,采用這種方式建立的無線傳感器網(wǎng)絡(luò)具有穩(wěn)定可靠的性能,能以及低的電能消耗進行工作,使功耗達到最低,從而滿足設(shè)計要求。
評論