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