掃描二維碼
隨時隨地手機看文章
摘要: 提出一種基于射頻芯片CC2531的無線傳感器網(wǎng)絡(luò)節(jié)點的軟件設(shè)計方案,基于任務(wù)調(diào)度機制,采用功能模塊化設(shè)計。簡要介紹了無線傳感器網(wǎng)絡(luò)的系統(tǒng)結(jié)構(gòu)和節(jié)點的硬件電路,重點對系統(tǒng)軟件主流程以及數(shù)據(jù)采集、數(shù)據(jù)處理、數(shù)據(jù)傳輸和能源管理4個功能模塊的軟件設(shè)計作了詳細(xì)介紹。
關(guān)鍵詞: 無線傳感器網(wǎng)絡(luò);ZigBee;CC2531;軟件設(shè)計
Software Design of Wireless Sensor Network Node Based on CC2531
Yang Zhaozhong,Tong Ling,Tian Yu
(School of Automation, University of Electrontc Science and Technology of China, Chengdu 611731, China)
Abstract: This paper gives a software design of wireless sensor network node based on RF chip CC2531. The design uses task scheduling mechanism and functional modular design method. Wireless sensor network system architecture and node hardware circuit are introduced. The main flow and the software design of the four function modules, i.e., data collection, data processing, data transmission and energy management, are described.
Key words: wireless sensor network;ZigBee;CC2531;software design
引言
v無線傳感器網(wǎng)絡(luò)(Wireless Sensor Network, WSN)是由一組傳感器網(wǎng)絡(luò)節(jié)點組成。它們通過多跳自組織的方式構(gòu)成無線通信網(wǎng)絡(luò)系統(tǒng),傳感器節(jié)點實時采集分布區(qū)域內(nèi)監(jiān)測對象的各種信息,以無線通信方式發(fā)送至上位機。節(jié)點硬件提供了實現(xiàn)相關(guān)功能的平臺,而真正實現(xiàn)這些功能的應(yīng)用需要借助軟件來完成。因此,軟件設(shè)計對整個節(jié)點的功能控制和資源的分配利用有較大的影響。
1 無線傳感器網(wǎng)絡(luò)系統(tǒng)結(jié)構(gòu)
整個傳感器網(wǎng)絡(luò)是由若干個采集節(jié)點、1個匯聚節(jié)點、1個數(shù)據(jù)中轉(zhuǎn)器以及1個便于用戶查看和控制的上位機組成。系統(tǒng)的結(jié)構(gòu)[12]如圖1所示。采集節(jié)點用于對環(huán)境數(shù)據(jù)的采集和數(shù)據(jù)的預(yù)處理,擔(dān)當(dāng)數(shù)據(jù)的路由;匯聚節(jié)點負(fù)責(zé)整個網(wǎng)絡(luò)的開啟和維護,向采集節(jié)點發(fā)送命令,搜集節(jié)點的數(shù)據(jù),以及完成與數(shù)據(jù)中轉(zhuǎn)器之間的串口通信;數(shù)據(jù)中轉(zhuǎn)器承擔(dān)數(shù)據(jù)的中轉(zhuǎn),負(fù)責(zé)轉(zhuǎn)發(fā)上位機的命令;上位機是數(shù)據(jù)搜集的終端設(shè)備,并且可以根據(jù)用戶的需要對節(jié)點的采集時間間隔、休眠時間間隔、傳感器的開關(guān)進行相應(yīng)設(shè)置。
圖1 無線傳感器網(wǎng)絡(luò)系統(tǒng)結(jié)構(gòu)
2 節(jié)點硬件設(shè)計
為方便數(shù)據(jù)的搜集,匯聚節(jié)點和采集節(jié)點硬件電路設(shè)計相同,只是軟件設(shè)計有所不同。任意節(jié)點都可作為匯聚節(jié)點與數(shù)據(jù)中轉(zhuǎn)器通過串口進行通信,來搜集網(wǎng)絡(luò)中其他節(jié)點的數(shù)據(jù)。節(jié)點的硬件結(jié)構(gòu)如圖2所示。
圖2 節(jié)點硬件結(jié)構(gòu)圖
核心芯片選用TI公司推出的ZigBee芯片CC2531[3]。它以8051微處理器為內(nèi)核,自身攜帶的射頻收發(fā)器用來實現(xiàn)無線傳感器網(wǎng)絡(luò)節(jié)點的通信。選用5路I/O口來控制傳感器的打開和關(guān)閉。傳感器組將相應(yīng)的環(huán)境數(shù)據(jù)變成電壓、電流等信號送給信號調(diào)理電路,經(jīng)相關(guān)調(diào)理后送到CC2531的A/D轉(zhuǎn)換器接口進行A/D采樣,最后將得到的采樣數(shù)據(jù)存入一個外接的256 Kb的存儲器中。當(dāng)節(jié)點作為網(wǎng)絡(luò)中的匯聚節(jié)點時,CC2531的兩路I/O口被設(shè)置成UART0串口Tx和Rx,用于與數(shù)據(jù)中轉(zhuǎn)器進行串口通信。為保證節(jié)點長期穩(wěn)定地工作,選用3 Ah 的鉛酸充電電池,兩組鉛酸電池采用雙電源供電模式。軟件通過控制兩組鉛酸電池的切換實現(xiàn)對節(jié)點的輪流供電,并在電池電壓不足時控制太陽能電池板對其進行充電,保持“一充一供”的狀態(tài)。
3 節(jié)點軟件設(shè)計
3.1 ZigBee技術(shù)簡介
ZigBee[4]技術(shù)是一種近距離、低復(fù)雜度、低功耗、低傳輸速率、低成本的雙向無線通信技術(shù),主要適合于自動控制和遠(yuǎn)程控制等領(lǐng)域,可以嵌入到各種設(shè)備中,相對于其他的無線通信標(biāo)準(zhǔn)更簡單緊湊。此外,ZigBee具有省電、可靠、延時短、網(wǎng)絡(luò)容量大、安全等優(yōu)點。
3.2 節(jié)點軟件主流程
本軟件設(shè)計基于TI公司的ZStack 2007協(xié)議棧。ZStack 2007是TI公司專門為CC2531芯片設(shè)計的ZigBee協(xié)議棧。它是由一個簡單的單線程操作系統(tǒng)管理,該系統(tǒng)基于任務(wù)調(diào)度的機制。各個任務(wù)的事件處理函數(shù)按照任務(wù)的優(yōu)先級被放入函數(shù)指針數(shù)組tasksArr[idx]中,事件以16位的變量形式存放在數(shù)組tasksEvents[idx]中,因此每個任務(wù)最多可定義16個事件。
圖3 操作系統(tǒng)運行流程
操作系統(tǒng)運行流程如圖3所示。主函數(shù)在完成節(jié)點相關(guān)的初始化之后會進入操作系統(tǒng),操作系統(tǒng)是一個無限循環(huán),一直在檢測各個任務(wù)中的事件tasksEvents[idx],當(dāng)它不為零時就會調(diào)用相應(yīng)的事件處理函數(shù)tasksArr[idx]。處理完一個事件會將代表此事件的位清零,同時返回未處理的事件,直到這個任務(wù)中所有的事件處理完畢(即所有的事件位都被清零),操作系統(tǒng)就會跳向下一個任務(wù)進行事件處理。
3.3 節(jié)點軟件模塊化設(shè)計
節(jié)點軟件采用的是功能模塊化設(shè)計,不同功能用不用模塊表示,不同模塊間用接口連接,通過接口來調(diào)用其他模塊的功能。如圖4所示,傳感器節(jié)點主要由數(shù)據(jù)采集模塊﹑數(shù)據(jù)處理模塊﹑數(shù)據(jù)傳輸模塊和電源管理模塊組成。
圖4 節(jié)點模塊框圖
3.3.1 數(shù)據(jù)采集模塊
數(shù)據(jù)采集模塊主要實現(xiàn)對監(jiān)測區(qū)域內(nèi)各種信息的采集和數(shù)據(jù)的轉(zhuǎn)換。
實驗證明,節(jié)點在進行數(shù)據(jù)和命令收發(fā)的通信過程中功耗很大。為了降低功耗,在軟件設(shè)計上節(jié)點在聯(lián)網(wǎng)狀態(tài)下只執(zhí)行通信任務(wù),在休眠過程中只執(zhí)行采集任務(wù)。數(shù)據(jù)采集模塊工作流程如圖5所示。節(jié)點接收到休眠設(shè)置命令,對命令進行解析并從命令中提取傳感器標(biāo)志位,在整個網(wǎng)絡(luò)進入休眠后,根據(jù)傳感器標(biāo)志位來打開需要的傳感器。被打開的傳感器對監(jiān)測區(qū)域內(nèi)的各種信息進行采集,然后將采集到的數(shù)據(jù)送到信號調(diào)理電路轉(zhuǎn)換成電壓﹑電流等信號。經(jīng)過調(diào)理后的信號直接傳入CC2531已配置好的A/D轉(zhuǎn)換器接口進行A/D采樣。A/D轉(zhuǎn)換器可通過軟件編程改變采樣精度,其精度為7~12位。
圖5 數(shù)據(jù)采集模塊工作流程
3.3.2 數(shù)據(jù)處理模塊
數(shù)據(jù)處理模塊是無線傳感器節(jié)點的核心,負(fù)責(zé)控制整個傳感器節(jié)點的操作,存儲和處理本身采集的數(shù)據(jù)以及其他節(jié)點發(fā)來的數(shù)據(jù)。為便于管理和調(diào)度,節(jié)點所要進行的操作都是被定義為事件進行處理的,每個事件完成相應(yīng)操作。將事件按一定關(guān)系串接就能實現(xiàn)節(jié)點工作時要完成的系統(tǒng)功能。
圖6 數(shù)據(jù)處理模塊工作流程
數(shù)據(jù)處理模塊工作流程如圖6所示。數(shù)據(jù)處理模塊對接收到的命令進行解析后,會對所有要執(zhí)行的操作進行判斷。對于本節(jié)點要完成的操作,就會觸發(fā)相應(yīng)的事件,實現(xiàn)相應(yīng)的功能;對于其他未完成的操作命令,會通過數(shù)據(jù)傳輸模塊轉(zhuǎn)發(fā)給其他節(jié)點。在處理完本條命令之后,會繼續(xù)等待或接收下一條命令。
3.3.3 數(shù)據(jù)傳輸模塊
數(shù)據(jù)傳輸模塊負(fù)責(zé)與其他傳感器節(jié)點進行無線通信,傳輸控制消息和收發(fā)采集數(shù)據(jù),通過軟件來控制無線通信模塊的工作模式。若為數(shù)據(jù)發(fā)送模式,先按照通信協(xié)議中規(guī)定的數(shù)據(jù)格式對數(shù)據(jù)進行打包,然后再將數(shù)據(jù)包發(fā)送出去;若為數(shù)據(jù)接收模式,則按照數(shù)據(jù)格式對接收到的數(shù)據(jù)包進行解析,再進行下一步處理。數(shù)據(jù)傳輸模塊工作流程如圖7所示。
圖7 數(shù)據(jù)傳輸模塊工作流程
3.3.4 電源管理模塊
電源管理模塊主要功能是為傳感器節(jié)點提供運行所需的能量,并進行電量檢測。無線傳感器網(wǎng)絡(luò)需要在無人值守情況下長時間地工作在惡劣環(huán)境條件下,因此更換電池是一件很麻煩的事情。為保證鉛酸電池能夠為節(jié)點長期供電,節(jié)點硬件電路設(shè)計了一個充電控制電路對其進行充電管理。
CC2531專門提供一個I/O口對供電電壓進行A/D采樣,當(dāng)供電的電源電壓不足(即低于設(shè)定的某一個值)時,通過軟件控制進行切換,先讓另一組電源對節(jié)點進行供電,再打開太陽能充電電路對本組電源充電。節(jié)點在通信和采集數(shù)據(jù)時功耗很大,因此在每一次的通信和采集數(shù)據(jù)完成之后都會檢測當(dāng)前供電電壓值和當(dāng)前的充電電壓值,根據(jù)兩個電壓值決定是否進行電源切換、對電源進行充電,以及充電是否完成。
結(jié)語
基于CC2531的無線傳感器網(wǎng)絡(luò)系統(tǒng)的軟件設(shè)計比較復(fù)雜,本文僅就傳感器節(jié)點的各功能模塊的軟件設(shè)計作了介紹。實驗結(jié)果表明:節(jié)點工作狀態(tài)穩(wěn)定,故障率低,可以按照用戶設(shè)置準(zhǔn)確地對環(huán)境信息進行采集。整個系統(tǒng)具備數(shù)據(jù)可靠、功耗低、可遠(yuǎn)程控制等顯著優(yōu)點,具有良好的應(yīng)用前景。
摘要:根據(jù)四旋翼飛行器工作原理,以STM32控制器為基礎(chǔ),對四旋翼飛行器飛行控制系統(tǒng)的軟硬件設(shè)計進行了分析,可有效調(diào)整四旋翼飛行器飛行姿態(tài)與飛行位置,實現(xiàn)了控制模塊與地面站的有效聯(lián)系。
關(guān)鍵字: STM32 控制系統(tǒng) 軟件設(shè)計摘要:針對目前水環(huán)境污染狀況的日益惡化的問題,采用無線傳感器網(wǎng)絡(luò),通過節(jié)點傳感器采集水環(huán)境中離子濃度、鹽度、電導(dǎo)率、溫度等參數(shù)來實現(xiàn)實時監(jiān)測。傳感器網(wǎng)絡(luò)節(jié)點一跳或多跳方式自組織網(wǎng)絡(luò),匯聚節(jié)點將傳感器網(wǎng)絡(luò)節(jié)點采集的數(shù)據(jù)通過...
關(guān)鍵字: 無線傳感器網(wǎng)絡(luò) 匯聚節(jié)點 水環(huán)境 實時監(jiān)測摘要:無線傳感器網(wǎng)絡(luò)作為一種新興的信息獲取技術(shù),是當(dāng)前的研究熱點。由于無線傳感器網(wǎng)絡(luò)節(jié)點能量有限,因此對其路由協(xié)議的研究成為重中之重。對近年來無線傳感器網(wǎng)絡(luò)路由協(xié)議進行歸納和分析,并基于分層路由協(xié)議提出一種均衡能量消耗的...
關(guān)鍵字: 無線傳感器網(wǎng)絡(luò) 路由協(xié)議 改進算法 能量消耗摘 要:隨著耕地與水資源的日益減少和人們對高質(zhì)量水產(chǎn)品需求量的不斷增大,越來越多的人們開始嘗試推廣工廠化 的高密度水產(chǎn)養(yǎng)殖方式。而目前尚欠缺一種適應(yīng)于工廠化高密度水產(chǎn)養(yǎng)殖模式的高效、安全且經(jīng)濟適用的養(yǎng)殖場水體環(huán)境在 線監(jiān)...
關(guān)鍵字: 無線傳感器網(wǎng)絡(luò) 工廠化水產(chǎn)養(yǎng)殖 水環(huán)境 實時監(jiān)測摘要:為了通過無線傳感器網(wǎng)絡(luò)對室內(nèi)人員無線定位來實現(xiàn)場館人員管理,在分析傳統(tǒng)的RSSI定位算法及其缺陷的基礎(chǔ)上,采用的改進算法增加了模型自適應(yīng)階段,引入高斯濾波處理對RSSI值進行修正,利用加權(quán)極大似然估算法計算坐標(biāo)位置...
關(guān)鍵字: 無線傳感器網(wǎng)絡(luò) 定位 RSSI CC2530摘 要 :無線可穿戴網(wǎng)絡(luò)作為醫(yī)療物聯(lián)網(wǎng)系統(tǒng)的一個分支,由感知層、網(wǎng)絡(luò)傳輸層、應(yīng)用層組成。感知層中可穿戴傳感器接收與傳輸來自人體的不同生理參數(shù)信號,其中包括睡眠狀況、血壓、心率、體溫等。通過基于ZigBee 無線網(wǎng)絡(luò)將信息...
關(guān)鍵字: 可穿戴設(shè)備 醫(yī)療物聯(lián)網(wǎng) Zigbee 無線傳感器網(wǎng)絡(luò) 智慧監(jiān)所 RFID摘要:傳感器節(jié)點大多部署在非受控區(qū)域,無線信道的廣播特性和自組織的組網(wǎng)特性都使得傳感器網(wǎng)絡(luò)容易受到攻擊; 同時傳感器網(wǎng)絡(luò)作為一種耗盡型網(wǎng)絡(luò),能源非常有限,系統(tǒng)功能極易受到拒絕服務(wù)攻擊。文章結(jié)合作者的研究,介紹了兩種 無線...
關(guān)鍵字: 無線傳感器網(wǎng)絡(luò) 傳感器節(jié)點 防御選擇性轉(zhuǎn)發(fā) 鄰居協(xié)同測定摘 要:無線傳感器網(wǎng)絡(luò)中傳感節(jié)點能量消耗不均衡將導(dǎo)致整個網(wǎng)絡(luò)過早地失效。文章在LEACH層次路由算法的基礎(chǔ) 上,提出了自動退避的簇頭競爭選擇機制、設(shè)定閥值的數(shù)據(jù)融合和基于能量感知的多路徑策略,并在網(wǎng)絡(luò)均衡、能量消耗方面...
關(guān)鍵字: 無線傳感器網(wǎng)絡(luò) 能量消耗 LEACH 網(wǎng)絡(luò)均衡摘要:利用RFID和無線傳感器網(wǎng)絡(luò)技術(shù),構(gòu)建了一種包括智能門禁管理、智能人員管理、智能巡檢、智能安防等全方位、多功能的智能安防系統(tǒng)。從系統(tǒng)功能和系統(tǒng)設(shè)計實現(xiàn)了基于RFID技術(shù)的智能門禁系統(tǒng)和基于傳感器網(wǎng)絡(luò)的信息采集系統(tǒng),...
關(guān)鍵字: RFID 無線傳感器網(wǎng)絡(luò) 智能安防 門禁系統(tǒng)