基于ZigBee無線傳感器網絡的智能倉儲節點設計
主要任務有八個,其中macEventloop負責MAC層事件處理;nwk event loop負責網絡層路由處理;Hal ProcessEvent完成硬件管理的任務;MT ProcessEvent模塊主要用于網絡調試工具;應用支持子層處理函數APS event loop一般用戶不要修改;ZDApp event loop為應用層處理函數,可根據需要修改;SennorApp ProcessEvent和SerialApp ProcessEvent為用戶應用層處理函數,前者主要用于終端和路由設備的溫度、濕度等數據采集及發送模塊,后者主要用于協調器與主機間串口通信模塊。
3.1 協調器節點軟件設計
網絡協調器需要在應用層添加SerialApp ProcessEven處理函數,協調器工作的主程序如圖2所示,協調器上電后,由啟動代碼來初始化硬件系統和軟件架構需要的各個模塊,然后協調器會在默認的信道上建立一個網絡,并指定網絡標號PANID,協調器建網成功后進入監控模式,當有路由或者終端節點申請加入時,對其分配16位短地址;當有數據請求時協調器會接收數據并將數據發送給PC機。本文引用地址:http://www.104case.com/article/155067.htm
本文中協調器采用的ZStack 2.4.0版本協議,協調器組網要進行如下步驟:1)首先從NV中讀出設備的邏輯類型并將設備邏輯類型改寫為ZG_DEVICETYPE_COORDINATOR,設置設備的啟動方式為ZCD_STARTOPT_AUTO_START;2)設備、任務初始化后,進入事件處理函數處理ZB_ENT RY_EVENT事件,執行zb_StartRequest(),該函數的功能是啟動ZigBee協議棧,建立網絡;3)設備啟動完成后進去回調函數zb_StartConfir m,如果設備成功啟動,修改設備狀態為APP START,如果設備啟動失敗,設置定時器,重新執行zb_StartRequest()。在與PC機通信時為了數據能夠及時收發,降低能耗,需要在程序中增加采用中斷方式的UARTO處理函數,再通過串口寫函數HaUARTWrite()在上位機上顯示接收到的信息。
3.2 終端節點軟件設計
終端節點需要在應用層添加SennorApp ProcessEvent處理函數,使節點具有數據采集和無線數據傳輸的功能,傳感器節點工作流程如圖3所示。終端節點需上電后立即搜尋并請求加入網絡,直接在ZB_ENTRY_EVENT事件的處理中執行zb_StartRequest(),新插入的節點必須通過已存在網絡中的全功能設備(包括路由器和協調器)才能成功進入網絡,在通信范圍內的全功能設備會響應請求加入網絡的數據包,然后為該節點分配一個唯一的網絡地址。然后進入“睡眠-喚醒采集數據-睡眠”低功耗工作模式,其中通過編寫void myApp_Measure()函數來采集并發送數據。
4 節點的能耗分析
能耗是無線傳感器網絡的重要指標,決定網絡的使用壽命。為了降低整個網絡的綜合能耗,本設計中終端設備節點采用“睡眠-喚醒采集數據-睡眠”低功耗工作模式。
下面對網絡節點的電池壽命進行了評估。測試中節點使用兩節1.5V的南孚電池供電。如果使節點每15min進行一次數據采集的話,那么一次工作循環的能耗應為節點采集一次數據發送的能量(35.58mAh)加上睡眠時的能耗(360 μAh),試驗中3V電池電壓下工作,電量大約是2200mAh,經實際測試節點上CC2530模塊最低電壓供電量為2.0V,傳感器模塊中濕度傳感器的最低工作電壓為2.4V,因此節點的最低供電電壓應為2.4V。根據文獻中介紹的能耗估算方法可知:電池能提供約為440mAh的電量使得節點有效工作,經計算得一個傳感器節點可以有效工作44519次,工作時間約為1.27年。
5 結論
基于CC2530的ZigBee技術的智能倉儲系統可以對目標區域內溫度、濕度等環境參數進行無線遠程采集與管理,開發成本低,能量消耗低,并且安裝維護比較簡單,只需一次安裝就可以長期使用,具備了傳統倉儲管理無法比擬的優勢,較好地解決了傳統倉儲管理中設備復雜、效率低下等問題。
評論