基于Zigbee的嵌入式自動抄表系統的研究
(2)鍵盤驅動
鍵盤驅動程序initKey.。流程圖如圖6 所示。
圖 6 鍵盤模塊初始化流程圖
4.2 zigBee 協議棧的使用
要建立一個單獨的任務,必須先將 osalTaskAdd()函數所需要的參數條件定義好,這些 參數分別是初始化函數wxLesexamPle--Init,任務處理函數wXLesexamPle--event_foop 和任 務優先級。任務初始化函數的功能是將該任務需要完成的功能的功能部件初始化,在每一個 任務的初始化函數中,必須完成的功能是要得到設置任務的任務ID。任務處理函數是對任 務發生后的事件進行處理,一般包括網絡狀態的判斷(判斷設備的類型,是協調器還是路由 器或者是終端設備)和接收到信息后的處理。任務優先級[5]則是按照1 一256 排列,優先級 高的排在前面。
所以協議棧的使用流程是:
4.3zigBee 用戶應用程序
根據節點功能的不同,需要設計相應的用戶應用程序。如果程序是在協調器上運行,那 么LRW 隊 NCOORD 俐ATOR 預定義必須在頭文件中定義;如果程序是在路由節點上運行, 那么LRW 隊 NROUTER 預定義必須在頭文件中定義;如果這兩個預定義都沒有定義則程序 在RFD 節點上運行。下面本系統中使用的電表采集節點和協調器節點上的用戶應用程序的 架構。
(1)協調器節點
對協調器節點來說[6],程序是在它接收到遠程控制中心的指令后從組建網絡開始的,協 調器節點再向其通信范圍內的電表采集節點發送喚醒指令,同時等待新節點的入網請求。系 統啟動后,首先初始化所有的硬件和軟件,并設定網絡參數,然后初始化協議棧,網絡建立 成功后即進入中斷的循環檢測和處理過程。UARTI 是由遠程控制中心下達指令引起的中斷, 協調器節點通過uARTI 和GPRs 連接,遠程控制中心通過GPRS 下達的指令的到來就會引 起UARTI 終端事件的發生。協調器節點對接到的指令進行解析后執行相應的命令。定時器 中斷主要用來向遠程控制中心發送ZigBee 網絡采集到的電表數據,向電表采集節點發送采 集數據指令及更新路由表。
(2)電表采集節點
電表采集節點在程序啟動后[7],也是會首先初始化所有硬件和軟件,初始化協議棧,并 試圖加入網絡,如果加入網絡不成功,則進入休眠狀態,由一個定時器定時喚醒電表采集節 點重新加入網絡。如果加入網絡成功,則按照其收到的終端類型進行相應的處理。網絡中電 表采集節點通過發送KVP 幀與協調器進行數據交互,協調器主要發送采集電量指令和對時 指令到電表采集節點,電表采集節點再根據數據的屬性進行相應處理。程序流程圖如8 所示。
評論