CC2531的無線傳感器網絡節(jié)點軟件設計
3 節(jié)點軟件設計
3.1 ZigBee技術簡介
ZigBee技術是一種近距離、低復雜度、低功耗、低傳輸速率、低成本的雙向無線通信技術,主要適合于自動控制和遠程控制等領域,可以嵌入到各種設備中,相對于其他的無線通信標準更簡單緊湊。此外,ZigBee具有省電、可靠、延時短、網絡容量大、安全等優(yōu)點。
3.2 節(jié)點軟件主流程
本軟件設計基于TI公司的Z-Stack 2007協(xié)議棧。Z-Stack 2007是TI公司專門為CC2531芯片設計的ZigBee協(xié)議棧。它是由一個簡單的單線程操作系統(tǒng)管理,該系統(tǒng)基于任務調度的機制。各個任務的事件處理函數(shù)按照任務的優(yōu)先級被放入函數(shù)指針數(shù)組tasksArr[idx]中,事件以16位的變量形式存放在數(shù)組tasksEvents[idx]中,因此每個任務最多可定義16個事件。
操作系統(tǒng)運行流程如圖3所示。主函數(shù)在完成節(jié)點相關的初始化之后會進入操作系統(tǒng),操作系統(tǒng)是一個無限循環(huán),一直在檢測各個任務中的事件 tasksEvents[idx],當它不為零時就會調用相應的事件處理函數(shù)tasksArr[idx]。處理完一個事件會將代表此事件的位清零,同時返回未處理的事件,直到這個任務中所有的事件處理完畢(即所有的事件位都被清零),操作系統(tǒng)就會跳向下一個任務進行事件處理。
3.3 節(jié)點軟件模塊化設計
節(jié)點軟件采用的是功能模塊化設計,不同功能用不用模塊表示,不同模塊間用接口連接,通過接口來調用其他模塊的功能。如圖4所示,傳感器節(jié)點主要由數(shù)據(jù)采集模塊、數(shù)據(jù)處理模塊、數(shù)據(jù)傳輸模塊和電源管理模塊組成。
3.3.1 數(shù)據(jù)采集模塊
數(shù)據(jù)采集模塊主要實現(xiàn)對監(jiān)測區(qū)域內各種信息的采集和數(shù)據(jù)的轉換。
實驗證明,節(jié)點在進行數(shù)據(jù)和命令收發(fā)的通信過程中功耗很大。為了降低功耗,在軟件設計上節(jié)點在聯(lián)網狀態(tài)下只執(zhí)行通信任務,在休眠過程中只執(zhí)行采集任務。數(shù)據(jù)采集模塊工作流程如圖5所示。節(jié)點接收到休眠設置命令,對命令進行解析并從命令中提取傳感器標志位,在整個網絡進入休眠后,根據(jù)傳感器標志位來打開需要的傳感器。被打開的傳感器對監(jiān)測區(qū)域內的各種信息進行采集,然后將采集到的數(shù)據(jù)送到信號調理電路轉換成電壓、電流等信號。經過調理后的信號直接傳人 CC2531已配置好的A/D轉換器接口進行A/D采樣。A/D轉換器可通過軟件編程改變采樣精度,其精度為7~12位。
3.3.2 數(shù)據(jù)處理模塊
數(shù)據(jù)處理模塊是無線傳感器節(jié)點的核心,負責控制整個傳感器節(jié)點的操作,存儲和處理本身采集的數(shù)據(jù)以及其他節(jié)點發(fā)來的數(shù)據(jù)。為便于管理和調度,節(jié)點所要進行的操作都是被定義為事件進行處理的,每個事件完成相應操作。將事件按一定關系串接就能實現(xiàn)節(jié)點工作時要完成的系統(tǒng)功能。
評論