[導讀]本文介紹了一種無線傳感器網(wǎng)絡節(jié)點的軟件設計方案,該方案利用了基于ZigBee技術的射頻芯片CC2430。節(jié)點的軟件設計基于任務調(diào)度機制,用于監(jiān)測某一區(qū)域內(nèi)空氣溫濕度和土壤溫濕度等環(huán)境信息。實驗結果表明,節(jié)點工作狀態(tài)穩(wěn)定,故障率低。節(jié)點可以按照用戶設置,準確地對環(huán)境信息進行采集。整個系統(tǒng)具備數(shù)據(jù)可靠、功耗低、可遠程控制等顯著優(yōu)點,具有廣闊的應用前景。
引 言
環(huán)境監(jiān)測是無線傳感器網(wǎng)絡的重要應用領域。為搜集某一區(qū)域內(nèi)的環(huán)境數(shù)據(jù),傳感器節(jié)點需要在無人值守情況下長時間地工作在惡劣環(huán)境條件下。傳感器節(jié)點的軟件設計為節(jié)點正常工作提供了重要保證。
1 無線傳感器網(wǎng)絡系統(tǒng)結構
整個傳感器網(wǎng)絡是由若干個采集節(jié)點、1個匯聚節(jié)點、1個數(shù)據(jù)中轉(zhuǎn)器以及1個便于用戶查看和控制的上位機組成。系統(tǒng)結構如圖1所示。采集節(jié)點用于對環(huán)境數(shù)據(jù)的采集、數(shù)據(jù)的預處理,承當數(shù)據(jù)的路由;匯聚節(jié)點負責整個網(wǎng)絡的開啟和維護,向采集節(jié)點發(fā)送命令,搜集節(jié)點的數(shù)據(jù)以及和數(shù)據(jù)中轉(zhuǎn)器之間的串口通信;數(shù)據(jù)中轉(zhuǎn)器承擔數(shù)據(jù)的中轉(zhuǎn)及轉(zhuǎn)發(fā)上位機的命令;上位機是數(shù)據(jù)搜集的終端設備,并且可以根據(jù)用戶的需要對節(jié)點的采集時間間隔、休眠時間間隔、傳感器的開關進行相應設置。
2 節(jié)點的硬件電路
為方便數(shù)據(jù)的搜集,匯聚節(jié)點和采集節(jié)點硬件電路設計相同,只是軟件設計有所不同。任意節(jié)點都可作為匯聚節(jié)點,與數(shù)據(jù)中轉(zhuǎn)器通過串口進行通信,來搜集網(wǎng)絡中其他節(jié)點的數(shù)據(jù)。節(jié)點的硬件結構如圖2所示。
本設計選用的核心芯片是TI公司推出的ZigBee芯片CC2430。它以8051微處理器為內(nèi)核,自身攜帶的射頻收發(fā)器用來實現(xiàn)無線傳感器網(wǎng)絡節(jié)點的通信,提供了4路I/O口來控制傳感器的打開和關閉。傳感器將相應的環(huán)境數(shù)據(jù)變成電壓、電流等信號送給信號調(diào)理電路,經(jīng)相關調(diào)理后送到CC2430的ADC接口進行A/D采樣,最后CC2430將得到的A/D值存人1個外接的64 Kb的存儲器中。當節(jié)點作為網(wǎng)絡中的匯聚節(jié)點時,CC2430的2路I/O口被設置成UART0串口Tx和Rx,用于和數(shù)據(jù)中轉(zhuǎn)器進行串口通信。對于能源供應部分,為保證節(jié)點長期穩(wěn)定工作,選用2300 mA的鎳氫充電電池,2組鎳氫電池采用雙電源供電模式。軟件通過控制2組鎳氫電池的切換實現(xiàn)對節(jié)點的輪流供電,并在電池電壓不足時控制太陽能電池板對其進行充電。
3 節(jié)點軟件設計
3.1 Z-Stack協(xié)議棧簡介
本次的軟件設計基于TI公司Z-Stack 2006協(xié)議棧。Z-Stack 2006是TI公司專門為CC2430芯片設計的ZigBee協(xié)議棧。它由1個簡單的單線程的操作系統(tǒng)管理。該操作系統(tǒng)基于任務調(diào)度機制,任務通過API函數(shù)osalTaskAdd()按照優(yōu)先級添加到任務鏈表。任務的事件觸發(fā)實現(xiàn)任務調(diào)度。每個任務最多可定義16個事件,每個事件都對應1個唯一的事件號。NextActiveTask()是任務事件查詢函數(shù),返回任務的事件狀態(tài)ActiveTask,根據(jù)返回的事件值來調(diào)用相應的任務處理函數(shù)ActiveTask()進行處理。操作系統(tǒng)任務調(diào)度如圖3所示。
主函數(shù)在完成節(jié)點相關初始化之后會進入無限循環(huán)過程,該過程會一直檢測操作系統(tǒng)的任務鏈表中是否有事件要進行處理。
3.2 節(jié)點工作流程
為便于管理和調(diào)度,節(jié)點所要實現(xiàn)的功能都是將其定義為事件進行處理的。每個事件完成相應功能。將事件按一定關系串接,就能實現(xiàn)節(jié)點工作時要完成的系統(tǒng)功能。采集節(jié)點和匯聚節(jié)點的工作流程如圖4、圖5所示。
匯聚節(jié)點和采集節(jié)點在同一時刻醒來。當匯聚節(jié)點創(chuàng)建網(wǎng)絡成功,并且采集節(jié)點入網(wǎng)成功后,全網(wǎng)節(jié)點處于通信狀態(tài)。匯聚節(jié)點會通過串口向數(shù)據(jù)中轉(zhuǎn)器發(fā)送1個表示網(wǎng)絡準備就緒的消息,數(shù)據(jù)中轉(zhuǎn)器接收到該消息之后根據(jù)上位機的要求決定要不要上傳數(shù)據(jù),以及上傳哪些數(shù)據(jù)。匯聚節(jié)點接收到命令之后會觸發(fā)相應的事件進行處理,先命令采集節(jié)點將相應的數(shù)據(jù)上傳給它,再通過觸發(fā)串口事件將數(shù)據(jù)發(fā)送至數(shù)據(jù)中轉(zhuǎn)器。采集節(jié)點在入網(wǎng)成功以后也處于準備就緒的狀態(tài),等待接受匯聚節(jié)點的命令,做相應的事件觸發(fā)處理。
在每次通信結束之前,匯聚節(jié)點會向數(shù)據(jù)中轉(zhuǎn)器發(fā)送1個請求休眠的消息,數(shù)據(jù)中轉(zhuǎn)器接收到該消息之后會按照上位機的要求對全網(wǎng)節(jié)點的休眠過程進行設置。
3.3 串口通信協(xié)議
匯聚節(jié)點與數(shù)據(jù)中轉(zhuǎn)器之間的通信是通過串口進行的。串口通信協(xié)議保證數(shù)據(jù)的安全收發(fā),便于匯聚節(jié)點和數(shù)據(jù)中轉(zhuǎn)器對數(shù)據(jù)進行解析和存儲管理。數(shù)據(jù)中轉(zhuǎn)器和匯聚節(jié)點之間的串口通信數(shù)據(jù)幀格式如下所示:
其中,SOP為起始標志符,用1字節(jié)來表示數(shù)據(jù)包的起始,將這個字節(jié)定義為0x02;CMD表示命令ID,用1字節(jié)的數(shù)據(jù)來標識命令消息。LEN表示DATA的長度,用1字節(jié)來指示DATA位的數(shù)據(jù)的長度。DATA為具體要發(fā)送的數(shù)據(jù)。FCS是校驗位,這里使用XOR(異或校驗),校驗CMD、LEN、DATA中的所有數(shù)據(jù)。
當匯聚節(jié)點和數(shù)據(jù)中轉(zhuǎn)器通過串口接收到數(shù)據(jù)后,都是通過判別CMD對數(shù)據(jù)進行解析的。串口數(shù)據(jù)的CMD有如下幾種:
①0x03,數(shù)據(jù)中轉(zhuǎn)器發(fā)送上傳路由表命令。作為響應,匯聚節(jié)點通過串口上傳路由表數(shù)據(jù)的CMD標識為0x83。
②0x04,數(shù)據(jù)中轉(zhuǎn)器發(fā)送上傳鄰居表命令。作為響應,匯聚節(jié)點通過串口上傳鄰居表數(shù)據(jù)的CMD標識為0x84。
③0x05,數(shù)據(jù)中轉(zhuǎn)器發(fā)送上傳采集數(shù)據(jù)命令。作為響應,匯聚節(jié)點通過串口上傳采集數(shù)據(jù)時的CMD標識為0x85。
④0x89,匯聚節(jié)點發(fā)送至數(shù)據(jù)中轉(zhuǎn)器,表示網(wǎng)絡創(chuàng)建成功,等待命令消息。
⑤0xF9,匯聚節(jié)點發(fā)送至數(shù)據(jù)中轉(zhuǎn)器,表示數(shù)據(jù)全部上傳完畢,等待休眠。作為響應,數(shù)據(jù)中轉(zhuǎn)器通過串口向匯聚節(jié)點發(fā)送CMD為0x09的休眠設置命令。
LEN表示數(shù)據(jù)的長度,方便數(shù)據(jù)中轉(zhuǎn)器對接收到的數(shù)據(jù)進行空間分配和存儲。FCS是校驗位,用于表征數(shù)據(jù)的準確性。
當匯聚節(jié)點接收到串口數(shù)據(jù)時,匯聚節(jié)點會觸發(fā)自身應用層的串口事件,用于解析發(fā)送過來的命令消息,然后根據(jù)該命令來觸發(fā)相應的事件進行處理。
3.4 休眠設置
實驗證實,節(jié)點在休眠過程中處于斷網(wǎng)狀態(tài)。因此,為節(jié)省節(jié)點頻繁聯(lián)網(wǎng)帶來的功耗和保證全網(wǎng)節(jié)點工作狀態(tài)同步,在軟件上設計為節(jié)點在聯(lián)網(wǎng)成功后只執(zhí)行通信任務,而休眠過程中只執(zhí)行采集任務。當節(jié)點采集時刻到來,觸發(fā)采集事件,打開傳感器的開關對環(huán)境數(shù)據(jù)進行采集,并控制I/O口對傳感器采集得到的信號進行A/D采樣,最后將采樣值以SPI方式存入外部存儲器。在每次通信結束之前節(jié)點都會判斷是否有休眠設置命令,若接收到休眠設置命令,節(jié)點則會按照該設置進行休眠,直到下一次醒來;若沒接收到命令,節(jié)點則會按照上一次的休眠設置進行休眠。
數(shù)據(jù)中轉(zhuǎn)器通過串口向匯聚節(jié)點發(fā)送的休眠設置命令的數(shù)據(jù)幀格式如表1所列。
Sleeping_Time表示節(jié)點要休眠的時間;Collecting_Time表示節(jié)點在休眠過程中的采集時間間隔;Current_Time是當前的校準時間;Sensor_Flag表示傳感器開關的標志。休眠過程中到達采集時刻,進行環(huán)境數(shù)據(jù)的采集、采樣和存儲。向采集節(jié)點發(fā)送當前的校準時間,保證節(jié)點采集時刻精確和時間的同步。同時,傳感器的開關標志位可以控制打開或關閉哪幾路傳感器,采集用戶感興趣的環(huán)境數(shù)據(jù)。到達休眠時刻,節(jié)點醒來,連接網(wǎng)絡。
3.5 充 電
為保證鎳氫電池對節(jié)點長期供電,節(jié)點硬件電路設計了1個充電控制電路對其進行充電管理。CC2430專門提供1個I/O口對供電電壓進行A/D采樣。當供電的電源電壓不足時(即低于設定的值),在軟件上會通過切換先讓另一組電源對節(jié)點進行供電,再打開太陽能的充電電路對電源充電。節(jié)點在通信和采集數(shù)據(jù)時功耗很大,因此在每一次通信和采集數(shù)據(jù)完成之后都會檢測當前供電電壓值和當前的充電電壓值,根據(jù)2個電壓值決定要不要進行電源切換、是否對電源進行供電以及充電是否完成。
3.6 異常處理
網(wǎng)絡中節(jié)點在工作時可能出現(xiàn)一些異常,因此要對這些異常作糾錯處理,以保證節(jié)點的正常工作。
(1)新加入節(jié)點的異步
在全網(wǎng)節(jié)點處于休眠狀態(tài)時,若有新的節(jié)點加入網(wǎng)絡,為保證其網(wǎng)絡狀態(tài)和其他節(jié)點同步,新加入的節(jié)點在搜索不到網(wǎng)絡時會按照默認的休眠設置進行休眠。休眠醒來繼續(xù)搜索網(wǎng)絡。以此循環(huán)直到搜索到網(wǎng)絡。
(2)數(shù)據(jù)出錯
數(shù)據(jù)中轉(zhuǎn)器通過串口獲得的數(shù)據(jù)都要進行校驗處理,若校驗出錯,則拋棄該數(shù)據(jù)包,命令匯聚節(jié)點重發(fā)數(shù)據(jù)。
(3)無應答
匯聚節(jié)點對某一采集節(jié)點發(fā)送上傳數(shù)據(jù)的請求命令,若該節(jié)點在規(guī)定時間內(nèi)沒有作出響應,匯聚節(jié)點會默認該節(jié)點被拋棄,它將向下一個節(jié)點發(fā)送上傳數(shù)據(jù)的請求。
(4)無確認
匯聚節(jié)點收到采集節(jié)點的數(shù)據(jù)后都會向該節(jié)點發(fā)送一個確認的消息,表示數(shù)據(jù)已經(jīng)收到。而采集節(jié)點會根據(jù)有沒有接收到確認消息決定數(shù)據(jù)要不要重發(fā)。
結 語
無線傳感器網(wǎng)絡節(jié)點的軟件設計很大程度上決定了整個系統(tǒng)的穩(wěn)定性和長久性。任務調(diào)度機制和異常處理決定系統(tǒng)在工作時處于穩(wěn)定的狀態(tài),而節(jié)點的充電管理系統(tǒng)保證了節(jié)點長期工作的能源供應。系統(tǒng)可以按照用戶需要,在野外大量、準確地采集數(shù)據(jù)。本設計可用于在無人值守情況下長期監(jiān)測某一區(qū)域的環(huán)境信息,有著廣闊的應用前景。
本站聲明: 本文章由作者或相關機構授權發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內(nèi)容真實性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權益,請及時聯(lián)系本站刪除。
摘要:電力變壓器是電力系統(tǒng)中的重要電氣設備之一,是電網(wǎng)中電能交換、傳輸?shù)臉屑~,其安全運行直接影響著整個電網(wǎng)供電的高效性、可靠性與穩(wěn)定性。隨著物聯(lián)網(wǎng)技術的發(fā)展,其在電力行業(yè)的應用也越來越廣泛?,F(xiàn)以油浸式變壓器為例,就物聯(lián)網(wǎng)...
關鍵字:
環(huán)境監(jiān)測
狀態(tài)監(jiān)測
故障偵測
區(qū)塊鏈,顧名思義是一個又一個區(qū)塊所組成的鏈條,是分布式賬本技術的一種形式。2008年隨著比特幣這種加密數(shù)字貨幣的出現(xiàn),區(qū)塊鏈開始進入大眾視野,可以說區(qū)塊鏈是比特幣催化下的產(chǎn)物。
關鍵字:
區(qū)塊鏈
環(huán)境監(jiān)測
App
摘要:在工業(yè)領域供配電設計過程中,設計一次接線圖時,每臺配電柜安裝幾個供電回路、安裝哪些供電回路需要花費較多精力來確定。對此,編制一款軟件自動計算各回路斷路器寬度,模擬斷路器置入配電柜,最終算出總共需要的GGD配電柜數(shù)量...
關鍵字:
GGD配電柜
斷路器排列
軟件設計
摘要:根據(jù)四旋翼飛行器工作原理,以STM32控制器為基礎,對四旋翼飛行器飛行控制系統(tǒng)的軟硬件設計進行了分析,可有效調(diào)整四旋翼飛行器飛行姿態(tài)與飛行位置,實現(xiàn)了控制模塊與地面站的有效聯(lián)系。
關鍵字:
STM32
控制系統(tǒng)
軟件設計
摘要:針對目前水環(huán)境污染狀況的日益惡化的問題,采用無線傳感器網(wǎng)絡,通過節(jié)點傳感器采集水環(huán)境中離子濃度、鹽度、電導率、溫度等參數(shù)來實現(xiàn)實時監(jiān)測。傳感器網(wǎng)絡節(jié)點一跳或多跳方式自組織網(wǎng)絡,匯聚節(jié)點將傳感器網(wǎng)絡節(jié)點采集的數(shù)據(jù)通過...
關鍵字:
無線傳感器網(wǎng)絡
匯聚節(jié)點
水環(huán)境
實時監(jiān)測
摘要:無線傳感器網(wǎng)絡作為一種新興的信息獲取技術,是當前的研究熱點。由于無線傳感器網(wǎng)絡節(jié)點能量有限,因此對其路由協(xié)議的研究成為重中之重。對近年來無線傳感器網(wǎng)絡路由協(xié)議進行歸納和分析,并基于分層路由協(xié)議提出一種均衡能量消耗的...
關鍵字:
無線傳感器網(wǎng)絡
路由協(xié)議
改進算法
能量消耗
摘要:為了通過無線傳感器網(wǎng)絡對室內(nèi)人員無線定位來實現(xiàn)場館人員管理,在分析傳統(tǒng)的RSSI定位算法及其缺陷的基礎上,采用的改進算法增加了模型自適應階段,引入高斯濾波處理對RSSI值進行修正,利用加權極大似然估算法計算坐標位置...
關鍵字:
無線傳感器網(wǎng)絡
定位
RSSI
CC2530
摘 要:提出了一種適合于溫室生產(chǎn)管理的、基于物聯(lián)網(wǎng)的溫室環(huán)境監(jiān)測系統(tǒng)的設計方法。該系統(tǒng)利用ZigBee、RFID技 術,可實時收集溫室環(huán)境參數(shù),并借助于連接在網(wǎng)絡上的信息終端將獲取的溫室信息傳送給溫室管理者。而當溫室環(huán)境...
關鍵字:
物聯(lián)網(wǎng)
溫室
環(huán)境監(jiān)測
系統(tǒng)設計
摘 要:無線傳感器網(wǎng)絡中傳感節(jié)點能量消耗不均衡將導致整個網(wǎng)絡過早地失效。文章在LEACH層次路由算法的基礎 上,提出了自動退避的簇頭競爭選擇機制、設定閥值的數(shù)據(jù)融合和基于能量感知的多路徑策略,并在網(wǎng)絡均衡、能量消耗方面...
關鍵字:
無線傳感器網(wǎng)絡
能量消耗
LEACH
網(wǎng)絡均衡
摘要:利用RFID和無線傳感器網(wǎng)絡技術,構建了一種包括智能門禁管理、智能人員管理、智能巡檢、智能安防等全方位、多功能的智能安防系統(tǒng)。從系統(tǒng)功能和系統(tǒng)設計實現(xiàn)了基于RFID技術的智能門禁系統(tǒng)和基于傳感器網(wǎng)絡的信息采集系統(tǒng),...
關鍵字:
RFID
無線傳感器網(wǎng)絡
智能安防
門禁系統(tǒng)
摘要:運用物聯(lián)網(wǎng)技術、嵌入式技術和云服務器技術設計一套基于物聯(lián)網(wǎng)技術的設施農(nóng)業(yè)在線監(jiān)控系統(tǒng),該系統(tǒng)能實時監(jiān)測農(nóng)業(yè)環(huán)境參數(shù)信息和作物生長狀況,實現(xiàn)對分散在各地的溫室環(huán)境進行狀態(tài)監(jiān)測、設備遠程智能控制及實時的在線數(shù)據(jù)、圖像視...
關鍵字:
物聯(lián)網(wǎng)
設施農(nóng)業(yè)
無線傳感器網(wǎng)絡
監(jiān)控系統(tǒng)
摘要:無線傳感器網(wǎng)絡是當前信息領域中研究的熱點之一,適用于對環(huán)境中的參數(shù)進行采集、處理和發(fā)送。文章介紹了一種基于STM32F103RBT6的無線光照傳感器節(jié)點的設計與實現(xiàn)方法,該方法利用光照傳感器作為環(huán)境數(shù)據(jù)采集單元,并...
關鍵字:
無線傳感器網(wǎng)絡
光照傳感器
UZ2400D
可靠性
摘要:無線傳感器網(wǎng)絡在許多應用場合都需要采集比較敏感的數(shù)據(jù),因此安全問題至關重要。一旦傳感器節(jié)點被捕獲,且沒有采取相應的措施,該節(jié)點內(nèi)的所有信息將會泄露。利用被捕獲節(jié)點,攻擊者可在網(wǎng)絡內(nèi)發(fā)起內(nèi)部攻擊,導致網(wǎng)絡的安全,性能...
關鍵字:
無線傳感器網(wǎng)絡
被捕獲節(jié)點
入侵檢測
SWATT
摘 要 :工業(yè)生產(chǎn)中,經(jīng)常需要測量類似單容水箱的液位高度。文中設計了一款簡易液位測控系統(tǒng)。系統(tǒng)硬件設計包括單片機最小電路、數(shù)據(jù)采集模塊、光耦隔離與驅(qū)動模塊、按鍵與顯示模塊 ;軟件設計包括按鍵掃描設計、PID 控制設計和...
關鍵字:
液位
測控系統(tǒng)
PID
硬件設計
軟件設計
MSP430F5529