Z-Stack原理闡述 ZigBee聯盟定義的ZigBee協議棧結構包括物理 層、MAC層、網絡層和AF應用層,協議棧底層支持IEEE802.15.4協議, 操作系統抽象層OSAL提供了程序執行過程中任務的注冊、任務間信息傳遞、任務的同步、中斷處理、時間片管理、內存的管理和分配等功能。 ZigBee的組網類型主要分為三種:星型、樹型和網狀類型,在實際的組網過程中,根據具體的應 用場景設置不同的組網類型。星型網絡是最常見的一種無線網絡拓撲結構,在該拓撲結構中,只包含一個協調器節點,每個終端節點之間的數據通過協調器進行轉發,協調器節點在網絡中數據轉發非 常頻繁,由于節點都是采用電池供電,所以在星型 網絡中容易出現網絡分割現象。在樹型網絡拓撲結構中,除了協調器節點之外,還有若干路由器節點負責數據端到端轉發。網狀結構組成的網絡拓撲比較靈活,根據存儲的路由表進行數據傳輸。 Z-Stack協議棧是一個基于任務輪詢方式的操作系統,其任務調度和資源分配由操作系統抽象層OSAL管理著。可以理解為:Z-Stack協議棧 = OSAL操作系統 + CC2530硬件模塊 + AF無線網絡應用。總體來看,Z-Stack協議棧只做了兩件事情:首先進行系統的初始化,然后啟動OSAL操作系統。在任務輪詢過程中,系統將會不斷查詢每個任務是否有事件發生,如果有事件發生,就執行相應的事件處理函數,如果沒有事件發生,則查詢下一個任務。 深入理解OSAL的調度機制和工作機理,是靈活應用Z-Satck協議棧進行Zigbee無線應用開發的重要基礎。深入的理解OSAL操作系統的關鍵是要理解任務初始化函數osalInitTasks()、任務標識符taskID、任務事件數組taskEvents[]和任務事件處理函數指針數組tasksArr[]之間的對應關系以及它們在OSAL運行過程中的執行情況。 APP:應用層目錄,這是用戶創建各種不同工程的區域,在這個目錄中包含了應用層的內容和這個項目的主要內容,在協議棧里面一般是以操作系統的任務實現的。 用戶只需要額外添加上圖中的三個文件(主文件、頭文件、操作系統接口文件)就可以完成一個項目,然后編寫自己的額任務處理函數就可以了。 HAL:硬件層目錄,包含有與硬件相關的配置和驅動及操作函數。 Common目錄下的文件是公用文件,基本上與硬件無關,hal_assert.c文件是斷言文件,用于調試,hal_drivers.c是驅動文件,抽象出于硬件無關的驅動函數,包含有與硬件相關的配置和驅動及操作函數。Include目錄下主要包含各個硬件模塊的頭文件,Target目錄下的文件是跟硬件平臺相關的,可以看到有兩個平臺,其中我們正在用的是CC2530EB平臺。 MAC:MAC層目錄,包含了MAC層的參數配置文件及其MAC的LIB庫的函數接口文件。 MT:監控調試層,主要用于調試目的的,即實現通過串口調試各層,與各層進行直接交互。 NWK:網絡層目錄,涵網絡層配置參數文件及網絡層庫的函數接口文件,APS層庫的函數接口。 OSAL:協議棧的操作系統。 Profile:AF層目錄,包含AF層處理函數文件。 Security:安全層目錄,安全層處理函數接口文件,比如加密函數等。 Services:地址處理函數目錄,包括著地址模式的定義及地址處理函數。 Tools:工程配置目錄,包括空間劃分和Zstack相關的配置信息。 ZDO:ZDO目錄。 ZMac:MAC層目錄,包括MAC層參數配置及MAC層LIB庫函數回調處理函數。其中Zmac.c是ZStack MAC層接口文件,Zmac_cb.c是ZMAC需要調用的網絡層函數。 ZMain:主函數目錄,包括入口函數main()及硬件配置文件。Z-Stack有main()函數開始執行,main()中Zmain.c中該函數共做了兩件事:一是系統初始化,另外是開始執行輪訓查詢式操作系統,OnBoard.c中包含了對硬件開發平臺各類外設進行控制的接口函數。 Output:輸出文件目錄層,這個EW8051 IDE自主設計的。 |