無線傳感器網(wǎng)絡自組網(wǎng)協(xié)議的實現(xiàn)方法
2.1 總體方案
系統(tǒng)由基站節(jié)點和傳感器節(jié)點組成。節(jié)點硬件選擇了支持低功耗工作模式的MSP430F149單片機和nRF905射頻模塊,使用32 768 Hz的低頻晶振,采用2節(jié)5號電池供電。在設計節(jié)點的過程中,撥碼開關、蜂鳴器、LCD指示燈的設計極大方便了實驗的調(diào)試。
2.2 節(jié)點設計
圖2為傳感器節(jié)點的框圖,該節(jié)點使用電池供電,體積小巧,只有打火機般大小。
圖2 傳感器節(jié)點框圖
MSP430系列單片機是TI公司生產(chǎn)的一種混合信號控制器,其突出優(yōu)點是低電源電壓、超低功耗,可采用電池工作,有很長的使用時間[6]。
nRF905是挪威Nordic VLSI公司推出的單片射頻收發(fā)器,低電壓工作,功耗非常低,工作于433/868/915 MHz三個ISM(工業(yè)、科學和醫(yī)學)頻道,頻道之間的轉換時間小于650 μs[7]。ShockBurstTM工作模式,能自動處理字頭和CRC(循環(huán)冗余碼校驗)。通過SPI串口與微控制器通信,使用非常方便;內(nèi)建空閑模式與關機模式,易于實現(xiàn)節(jié)能。nRF905適用于無線數(shù)據(jù)通信、無線開鎖等諸多領域。
天線的設計是整個系統(tǒng)設計的一個非常重要的環(huán)節(jié)。系統(tǒng)功耗的高低以及網(wǎng)絡性能的好壞與天線的設計都有密切關系。天線部分的設計采用整體PCB環(huán)行差分天線。與傳統(tǒng)的鞭狀天線相比,不僅節(jié)省空間,降低生產(chǎn)成本,機構上也更穩(wěn)固可靠。
因為本文主要研究無線傳感器網(wǎng)絡的自組網(wǎng)和低功耗技術,所以只選擇了MSP430系列單片機的內(nèi)部集成熱敏二極管來測量節(jié)點的工作溫度,但預留了大量外接傳感器接口,外接傳感器的信號能以中斷方式喚醒節(jié)點。
2.3 系統(tǒng)功耗
傳感器節(jié)點采用電池供電,功耗的高低直接影響整個網(wǎng)絡的生命期。系統(tǒng)的功耗不僅與選擇的元器件有關,還與整個網(wǎng)絡的控制策略有關。采用不同的控制策略,系統(tǒng)的工作時間就會不同。若希望節(jié)點工作一年的時間(365×24=8 760小時),則理論上要求平均工作電流約為263 μA(2 300÷8 760)。發(fā)射數(shù)據(jù)到接收應答的工作時間約為50 ms,這樣可推算出每次工作前的平均休眠時間為2.3 s[8]。實際應用中,可以根據(jù)網(wǎng)絡的反應速度和信息的采樣率來選擇系統(tǒng)工作和休眠的時間。
3 軟件開發(fā)
低功耗系統(tǒng)的設計是一種綜合硬件和軟件為一體的技術,必須在使用低功耗芯片的同時,采用智能的控制策略。例如,讓系統(tǒng)在需要工作時全速運行;而當整個系統(tǒng)處理完事件就進入低功耗模式,等待外部事件的喚醒。
系統(tǒng)軟件包括基站節(jié)點軟件、傳感器節(jié)點軟件和上位機處理軟件。
3.1 基站節(jié)點軟件
基站節(jié)點的主程序比較簡單,初始化后就進入低功耗模式,等待外部事件喚醒。外部事件包括串口中斷事件、接收到數(shù)據(jù)事件和定時器的中斷事件。
圖3給出了基站節(jié)點的串口中斷流程。
圖3 基站節(jié)點串口中斷流程
為了防止串口通信過程中丟失數(shù)據(jù),軟件設計上加了握手協(xié)議。當基站節(jié)點每發(fā)送一個數(shù)據(jù)包給上位機時,上位機都會向基站節(jié)點發(fā)送應答信號,直到數(shù)據(jù)包發(fā)送給上位機。接收到數(shù)據(jù)包后,節(jié)點會從低功耗模式中喚醒,根據(jù)接收到的數(shù)據(jù)中標志位的不同字符分別進入不同的處理單元。
當多個傳感器節(jié)點同時與某個傳感器節(jié)點通信時,存在掙搶信道的現(xiàn)象。為了避免多個傳感器節(jié)點同時與某個傳感器節(jié)點通信造成數(shù)據(jù)丟失,軟件上采用一定的退避機制。一方面,利用射頻芯片nRF905的CD(載波偵聽)信號來產(chǎn)生隨機延時,以避免同時發(fā)送信號;另一方面,當一個傳感器節(jié)點與某個傳感器節(jié)點建立了通信通道時,其他發(fā)送數(shù)據(jù)的節(jié)點會增加發(fā)射數(shù)據(jù)的次數(shù)。
3.2 傳感器節(jié)點軟件
傳感器節(jié)點初始化后,首先發(fā)送請求基站節(jié)點分配級別的命令,同時打開一個定時喚醒的定時器;然后進入低功耗模式,等待外部事件的喚醒。若傳感器發(fā)送請求基站節(jié)點分配級別的次數(shù)達到設定上限,仍未確定節(jié)點在網(wǎng)絡中的級別,則該節(jié)點就會向周圍傳感器節(jié)點廣播信息。當廣播次數(shù)達到設定值時,傳感器節(jié)點就根據(jù)收到的信息確定自己的級別以及與該節(jié)點有直接聯(lián)系的節(jié)點的信息,并把這些信息發(fā)送給基站節(jié)點。傳感器節(jié)點的外部中斷事件包括接收到數(shù)據(jù)事件、定時器中斷事件、狀態(tài)突變事件。
當傳感器節(jié)點檢測到狀態(tài)突變后,會從低功耗狀態(tài)喚醒,并及時采集此時的環(huán)境參數(shù)(包括狀態(tài)量、溫度值及節(jié)點電壓值),將這些數(shù)據(jù)發(fā)送出去。該數(shù)據(jù)包通過單跳或多跳到達基站節(jié)點并在上位機軟件上顯示。
3.3 上位機處理軟件
為了監(jiān)測整個網(wǎng)絡情況,需要在主機上建立良好的人機交互界面。采用Visual Basic(VB)來設計人機界面。利用VB的MSComm控件實現(xiàn)上、下位機的串口通信,利用其他控件實現(xiàn)對無線傳感器網(wǎng)絡的分析、顯示和操作。
上位機主程序主要完成一些變量和控件初始化,然后等待串口數(shù)據(jù)。數(shù)據(jù)的接收和發(fā)送都是由中斷程序完成的,其流程如圖4所示。
電能表相關文章:電能表原理
評論