基于ZigBee技術的無線點餐系統設計
3 網絡節點軟件的設計
3.1 網絡節點程序
ZigBee網絡支持三種網絡結構,即星狀、樹狀和網狀。節點設計基于通用性及便于開發的考慮,移植了TI公司的Z-Stack協議棧,其主要特點就是兼容性,支持IEEE 802.15.4標準的CC2430片上系統解決方案。ZigBee網絡中有三種設備,分別是協調器、路由器及終端設備。協調器負責啟動一個網絡,在一個ZigBee網絡中有且只有一個協調器設備。本系統選用了一個協調器和多個終端設備,對協議棧進行了相應的修改和增減以適應硬件電路的實際需求,組成簡單的星形網絡。
Z-Stack是基于操作系統的思想來構建的,采用事件輪循機制,整個協議棧用C語言編寫。當各層初始化之后,系統進入低功耗模式,當事件發生時,喚醒系統,開始進入中斷處理事件,結束后繼續進入低功耗模式。如果同時有幾個事件發生,判斷優先級,逐次處理事件。這種軟件構架可以極大地降級系統的功耗。整個Z-Stack的主要工作流程,大致分為系統啟動、驅動初始化、OSAL初始化與啟動和進入任務輪循幾個階段。
系統流程如圖4所示。
當硬件初始化完成后,打開中斷,執行osal_star_system()函數開始運行OSAL系統。該任務調度函數按照優先級檢測各個任務是否就緒。如果存在就緒的任務則調用tasksArr()中相對應的任務處理函數去處理該事件,直到執行完所有就緒的任務。如果任務列表中沒有就緒的任務,則可以使處理器進入睡眠狀態實現低功耗。OSAL任務調度流程如圖5所示。
ZigBee網絡的形成是通過ZDApp_Init這個任務實現的。zDApp_Init任務中調用了函數ZDAPP_Net-workInit,如果是協調器就建立網絡,確定PANID與頻道選擇,打開全局中斷之后進入監聽狀態,監測網絡中有無ZigBee信號,如果有節點申請加入網絡,協調器給節點分配網絡地址。對于終端設備,完成初始化之后,發送申請加入網絡信號,等待協調器響應。成功加入網絡后,進入休眠狀態等待喚醒。網絡啟動程序流程如圖6所示。
評論