新聞中心

        EEPW首頁 > 手機與無線通信 > 設計應用 > ZigBee2006協議棧的 無線傳感執行網絡構建

        ZigBee2006協議棧的 無線傳感執行網絡構建

        作者: 時間:2009-08-17 來源:網絡 收藏

        OSAL層初始化時,通過osalAddTasks函數提供任務列表,向實時操作系統中添加用戶所需要的任務。在該函數中,TI公司已經添加了一些任務,如硬件應用層初始化及處理函數、層初始化及處理函數、應用層初始化及處理函數等。在該函數中添加自己的任務,添加任務函數如下: osalTaskAdd(CSCE_Init,CSCE_ProcessEvent,OSAL_TASK_PRIORI-TYLOW);
        osalTaskAdd函數在OSAL層中的OSAL_Task.C文件中定義,其作用是添加一個任務到任務列表。其中,第1個參數CSCE_Init為用戶任務的初始化函數的函數名,第2個參數CSCE_ProcessEvent為用戶任務的處理函數的函數名,第3個參數 OSAL_TASK_PRlORITY_LOW為用戶任務的優先級。
        任務初始化函數CSCE_Init和任務處理函數CSCE_ProcessEvent都需要遵循棧的格式。其中,CSCE_Init函數和CSCE_ProcessEvent函數需要在應用層頭文件SampleApp.h中進行聲明。
        CSCE_Init函數有一個參數task_id,該參數為任務ID,具體值由OSAL進行分配。CSCE_ProcessEvent函數有2個參數:第 1個參數與CSCE_Init函數相同,為任務ID;第2個參數events為需要處理的事件,它是一個16位的二進制數,每一位代表一個事件。
        利用OSAL層進行任務設計時,必須保留系統任務事件SYS_EVENT_MSG(0x8000),該事件為強制事件。進行任務處理時,首先要對系統任務事件是否發生進行判斷,任務處理流程如圖5所示。由于棧為全功能棧,不需要對IEEE 802.15.4和ZigBee規范進行全面的了解,只需要在應用層進行一些設計和改動,即可實現數據的發送、接收以及組建功能。在終端節點的 CSCE_ProcessEvent函數的上電初始化處理部分,加入物理地址和短地址提取函數,然后調用發送函數將物理地址向協調器發送。協議棧中的物理地址獲取函數為NLME_GetExtAddr(),其返回結果為一個指向節點的64位IEEE地址的指針。短地址的獲取函數為 NLME_GetShortAddr(),其返回結果為一個16位的無符號整型數據。
        數據發送函數在規范的原語中已經規定了其參數的順序及意義。具體到TI/Chipcon公司所提供的ZigBee2006協議棧中,該函數為AF_DataRequest,其具體形式如下:


        在協調器端和路由器(或終端節點)的CSCE_Pro-cessEvent函數中接收到數據部分(即CSCE_MessageMS-GCB函數)中對數據進行處理,將所接收到的數據(即物理地址和短地址)通過串口發送到計算機端,進行顯示。
        ZigBee2006協議棧中設計了串口接收處理函數:


        該函數在MT目錄的SPIMgr.C中。實驗中,在協調器端調用該函數,即可從PC機端接收數據并進行相應的處理。



        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 兴国县| 阿坝县| 东兰县| 吉木乃县| 桐乡市| 崇文区| 桦川县| 上蔡县| 乃东县| 马关县| 海原县| 习水县| 交口县| 武清区| 靖远县| 略阳县| 汨罗市| 高要市| 兴文县| 松江区| 康保县| 岐山县| 甘洛县| 甘南县| 石阡县| 兴和县| 板桥市| 政和县| 织金县| 贵南县| 合肥市| 思南县| 库车县| 丹东市| 卢氏县| 湖南省| 阳新县| 获嘉县| 新宁县| 漳平市| 盱眙县|