傳感網(wǎng)應(yīng)用開(kāi)發(fā)(高級(jí))課件41-42_第1頁(yè)
傳感網(wǎng)應(yīng)用開(kāi)發(fā)(高級(jí))課件41-42_第2頁(yè)
傳感網(wǎng)應(yīng)用開(kāi)發(fā)(高級(jí))課件41-42_第3頁(yè)
傳感網(wǎng)應(yīng)用開(kāi)發(fā)(高級(jí))課件41-42_第4頁(yè)
傳感網(wǎng)應(yīng)用開(kāi)發(fā)(高級(jí))課件41-42_第5頁(yè)
已閱讀5頁(yè),還剩38頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、“1+X”傳感網(wǎng)應(yīng)用開(kāi)發(fā) ZigBee協(xié)議基本概念+Z-Stack協(xié)議棧介紹與協(xié)議棧安裝“1+X”傳感網(wǎng)應(yīng)用開(kāi)發(fā) 01ZigBee協(xié)議基本概念02ZigBee協(xié)議棧03ZigBee協(xié)議棧安裝目錄CONTENTS01ZigBee協(xié)議基本概念02ZigBee協(xié)議棧03Zig1ZigBee協(xié)議基本概念1ZigBee協(xié)議基本概念ZigBee協(xié)議 ZigBee一詞來(lái)自人們對(duì)蜜蜂的移動(dòng)姿態(tài)的觀(guān)察。ZigBee是基于IEEE802.15.4標(biāo)準(zhǔn)的低功耗局域網(wǎng)協(xié)議。適合于無(wú)線(xiàn)傳感器信息傳輸,具有以下主要特點(diǎn):短距離低速率低能耗ZigBee協(xié)議 ZigBee一詞來(lái)自人們對(duì)蜜蜂的移動(dòng)姿態(tài)ZigBee設(shè)備 ZigB

2、ee網(wǎng)絡(luò)設(shè)備有三種邏輯類(lèi)型:協(xié)調(diào)器(Coordinator)路由器(Router)終端設(shè)備(End-device)ZigBee設(shè)備 ZigBee網(wǎng)絡(luò)設(shè)備有三種邏輯類(lèi)型:ZigBee頻譜分布ZigBee頻譜分布ZigBee信道ZigBee信道ZigBee PAN ID即ZigBee局域網(wǎng)ID,是節(jié)點(diǎn)用于判斷自身所屬網(wǎng)絡(luò)的標(biāo)識(shí)。Zigbee無(wú)線(xiàn)傳感網(wǎng)的協(xié)調(diào)器是通過(guò)選擇網(wǎng)絡(luò)工作信道及各域網(wǎng)識(shí)別標(biāo)志PANID(網(wǎng)絡(luò)號(hào))來(lái)啟動(dòng)一個(gè)無(wú)線(xiàn)傳感網(wǎng)的。 PANID是一個(gè)32位標(biāo)識(shí),范圍從0 x0000-0 xFFFF。通過(guò)mDefaultValueOfPanId_c來(lái)設(shè)置一個(gè)初始化的PANID。ZigBee P

3、AN ID即ZigBee局域網(wǎng)ID,是節(jié)點(diǎn)2ZigBee協(xié)議棧2ZigBee協(xié)議棧Zstack概述 每個(gè)服務(wù)實(shí)體通過(guò)一個(gè)服務(wù)接入點(diǎn)(SAP)為上層提供一個(gè)接口,每個(gè)SAP 支持多種服務(wù)原語(yǔ)來(lái)實(shí)現(xiàn)要求的功能。 ZigBee 協(xié)議棧結(jié)構(gòu)由一組被稱(chēng)作層的模塊組成。每一層為上面的層執(zhí)行一組特定的服務(wù):數(shù)據(jù)實(shí)體提供了數(shù)據(jù)傳輸服務(wù),管理實(shí)體提供了所有其它的服務(wù)。TI公司開(kāi)發(fā)的ZStack是ZigBee協(xié)議棧,并且經(jīng)過(guò)了ZigBee聯(lián)盟的認(rèn)可而為全球眾多開(kāi)發(fā)商所廣泛采用。Zstack概述 每個(gè)服務(wù)實(shí)體通過(guò)一個(gè)服務(wù)接入點(diǎn)(SAP)Zstack結(jié)構(gòu) 應(yīng)用層 網(wǎng)絡(luò)層 MAC層 物理層IEEE802.15.4Zig

4、Bee協(xié)議Zstack結(jié)構(gòu) 應(yīng)用層 Zstack結(jié)構(gòu)層次Zstack結(jié)構(gòu)層次Zstack層次功能APP:為應(yīng)用層目錄,用戶(hù)可以根據(jù)需求添加自己的任務(wù)。這個(gè)目錄中包含了應(yīng)用層和這個(gè)項(xiàng)目的主要內(nèi)容,在協(xié)議棧里面一般是以操作任務(wù)實(shí)現(xiàn)的。HAL:硬件驅(qū)動(dòng)層,包括硬件相關(guān)的配置、驅(qū)動(dòng)以及操作函數(shù)。MAC:MAC層目錄,包括著MAC層配置參數(shù)文件及MAC LIB庫(kù)的函數(shù)接口文件;MT:包括基于AF(應(yīng)用框架)層的調(diào)試函數(shù)文件,主要包括串口等通信函數(shù);OSAL:協(xié)議棧的操作系統(tǒng)。Profile:AF層目錄,包含AF層處理函數(shù)。Zstack層次功能APP:為應(yīng)用層目錄,用戶(hù)可以根據(jù)需求添Zstack層次功能S

5、ecurity&Services:安全服務(wù)層目錄,安全層和服務(wù)層處理函數(shù),比如加密。Tools:工程配置目錄,包括空間劃分及ZStack相關(guān)配置信息。ZDO:ZDO設(shè)備對(duì)象目錄。ZMac:MAC層目錄,包括MAC層參數(shù)及MAC層的LIB庫(kù)函數(shù)回調(diào)處理函數(shù)。Zmain:主函數(shù)目錄,包括入口函數(shù)及硬件配置文件。Output:輸出文件目錄,由IAR自動(dòng)生成。Zstack層次功能Security&Services:安全Zstack工作流程整個(gè)Z-Stack的主要工作流程,大致分為系統(tǒng)啟動(dòng),驅(qū)動(dòng)初始化,OSAL初始化和啟動(dòng),進(jìn)入任務(wù)輪循幾個(gè)階段。Zstack工作流程整個(gè)Z-Stack的主要工作流程,大致

6、分Zstack-OSAL任務(wù)調(diào)度函數(shù)按照優(yōu)先級(jí)檢測(cè)各個(gè)任務(wù)是否就緒。如果存在就緒的任務(wù)則調(diào)用tasksArr中相對(duì)應(yīng)的任務(wù)處理函數(shù)去處理該事件,直到執(zhí)行完所有就緒的任務(wù)。如果任務(wù)列表中沒(méi)有就緒的任務(wù),則可以使處理器進(jìn)入睡眠狀態(tài)實(shí)現(xiàn)低功耗。OSAL是協(xié)議棧的核心,Z-Stack的任何一個(gè)子系統(tǒng)都作為OSAL的一個(gè)任務(wù)。Zstack-OSAL任務(wù)調(diào)度函數(shù)按照優(yōu)先級(jí)檢測(cè)各個(gè)任務(wù)是否3ZigBee協(xié)議棧安裝3ZigBee協(xié)議棧安裝Zstack下載Zstack下載Zstack安裝Zstack安裝Zstack安裝Zstack安裝Zstack安裝協(xié)議棧各目錄文件說(shuō)明文檔工程文檔工具文件Zstack安裝協(xié)議棧

7、各目錄文件說(shuō)明文檔工程文檔工具文件Z-Stack OSAL運(yùn)行機(jī)制 任務(wù)與事件的添加 基于協(xié)議棧的串口通信Z-Stack OSAL運(yùn)行機(jī)制 任務(wù)與事件的添加 01重點(diǎn)與難點(diǎn)02原理介紹03目錄CONTENTS串口通信案例01重點(diǎn)與難點(diǎn)02原理介紹03目錄CONTENTS串口通信案重點(diǎn)與難點(diǎn) 重點(diǎn):1、OSAL的運(yùn)行機(jī)制; 2、任務(wù)、事件、事件處理函數(shù)的概念。難點(diǎn):1、事件響應(yīng)機(jī)制; 2、添加任務(wù)、事件的實(shí)現(xiàn)。重點(diǎn)與難點(diǎn) 重點(diǎn):1、OSAL的運(yùn)行機(jī)制;2.1 OSAL術(shù)語(yǔ)及概念Z-Stack采用基于一個(gè)輪轉(zhuǎn)查詢(xún)式操作系統(tǒng),該操作 系統(tǒng)命名為OSAL(Operating System Abstra

8、ction Layer),中文為“操作系統(tǒng)抽象層”。Z-Stack協(xié)議棧將底層、網(wǎng)絡(luò)層等復(fù)雜部分屏蔽掉,讓程序員通過(guò)API函數(shù)就可以輕松地開(kāi)發(fā)一套ZigBee系統(tǒng)。原理介紹2.1 OSAL術(shù)語(yǔ)及概念原理介紹任務(wù)(Task)任務(wù)又稱(chēng)線(xiàn)程,是一個(gè)簡(jiǎn)單的程序的執(zhí)行過(guò)程。在任務(wù)設(shè)計(jì)時(shí),需要將問(wèn)題盡可能地分為多個(gè)任務(wù),每個(gè)任務(wù)獨(dú)立完成某種功能,同時(shí)被賦予一定的優(yōu)先級(jí),擁有自己的CPU寄存器和堆棧空間資源。一般將任務(wù)設(shè)計(jì)為一個(gè)無(wú)限循環(huán)。事件(Events)ZigBee協(xié)議棧是由各個(gè)層組成的,每一層都要處理各種事件,所以就為每一層定義了一個(gè)事件處理函數(shù),可以把這個(gè)處理函數(shù)理解為任務(wù),任務(wù)從消息隊(duì)列中提取消息

9、,從消息中提取所發(fā)生的具體事件,調(diào)用相應(yīng)的具體事件處理函數(shù),比如按鍵處理函數(shù)等等。原理介紹任務(wù)(Task)原理介紹2.2 OSAL運(yùn)行機(jī)制OSAL就是以實(shí)現(xiàn)多任務(wù)為核心的系統(tǒng)資源分配機(jī)制,主要提供任務(wù)注冊(cè)、初始化和啟動(dòng),任務(wù)間的同步、互斥,中斷處理,存儲(chǔ)器分配與管理等功能。OSAL負(fù)責(zé)調(diào)度各個(gè)任務(wù)運(yùn)行,如果有事件發(fā)生時(shí),則會(huì)調(diào)用相應(yīng)的事件處理函數(shù)進(jìn)行處理。圖1 OSAL運(yùn)行機(jī)制原理介紹2.2 OSAL運(yùn)行機(jī)制圖1 OSAL運(yùn)行機(jī)制原理介紹事件和任務(wù)的事件處理函數(shù)是如何建立關(guān)系:首先,建立一個(gè)事件表,保存各個(gè)任務(wù)的對(duì)應(yīng)的事件;其次,建立一個(gè)函數(shù)表,保存各個(gè)任務(wù)事件處理函數(shù)的地址;最后,將這兩個(gè)表

10、建立某種對(duì)應(yīng)關(guān)系,當(dāng)某一事件發(fā)生時(shí),則查找函數(shù)表找到對(duì)應(yīng)的事件處理函數(shù)。原理介紹圖2 事件表和函數(shù)表的關(guān)系事件和任務(wù)的事件處理函數(shù)是如何建立關(guān)系:原理介紹圖2 事件通過(guò)不斷地查詢(xún)事件表(tasksEventsidx),判斷是否有事件發(fā)生,如果有則查找函數(shù)表(tasksArridx),調(diào)用本事件的處理函數(shù)。 事件表是用數(shù)組來(lái)表示,數(shù)組的每個(gè)元素對(duì)應(yīng)用一個(gè)任務(wù)的事件,一般用戶(hù)定義的事件最好是每一位二進(jìn)制數(shù)表示一個(gè)事件,那么一個(gè)任務(wù)最多可以有16個(gè)事件(因?yàn)閑vents 是uint16類(lèi)型)。例如:0 x01表示串口接收新數(shù)據(jù),0 x02表示讀取溫度數(shù)據(jù),0 x04表示讀取濕度數(shù)據(jù)等,但是不用0 x

11、03、0 xFE等數(shù)值表示事件。 函數(shù)表是用指針數(shù)組來(lái)表示,數(shù)組的每個(gè)元素是相應(yīng)任務(wù)的事件處理函數(shù)的首地址(函數(shù)指針)。OSAL是一種基于事件驅(qū)動(dòng)的任務(wù)輪詢(xún)式操作系統(tǒng),事件有效才調(diào)用相應(yīng)任務(wù)的事件處理函數(shù)。原理介紹通過(guò)不斷地查詢(xún)事件表(tasksEventsidx),2.3 關(guān)鍵函數(shù)在ZigBee協(xié)議棧中,tasksCnt、tasksEvents和tasksArr三個(gè)變量非常重要:tasksCnt:該變量保存了任務(wù)的總數(shù)量。tasksEvent:這是一個(gè)指針,指向了事件表的首地址。在OSAL_SampleApp.c 中聲明為:uint16 *tasksEvents;tasksArr:這是一個(gè)數(shù)

12、組,該數(shù)組的每個(gè)元素都是一個(gè)函數(shù)指針(函數(shù)的地址),指向了事件函數(shù)。原理介紹2.3 關(guān)鍵函數(shù)原理介紹2.4 添加任務(wù)與事件的方法在ZigBee協(xié)議棧應(yīng)用程序開(kāi)發(fā)時(shí),添加新的任務(wù)及其對(duì)應(yīng)的事件,方法如下: 在任務(wù)的函數(shù)表中添加新任務(wù)。 編寫(xiě)新任務(wù)的初始化函數(shù)。 定義新任務(wù)全局變量和事件。 編寫(xiě)新任務(wù)的事件處理函數(shù)。原理介紹2.4 添加任務(wù)與事件的方法原理介紹3.1 案例介紹在用戶(hù)應(yīng)用層任務(wù)處理函數(shù)SampleApp_ProcessEvent中實(shí)現(xiàn)每隔1秒向串口發(fā)送“Hello ZigBee!”;并增加一個(gè)應(yīng)用層新任務(wù),實(shí)現(xiàn)由PC端發(fā)送字符“1”和“0”控制ZigBee模塊的LED2燈的開(kāi)與關(guān)。實(shí)

13、訓(xùn)案例3.1 案例介紹實(shí)訓(xùn)案例1、 移除工程中的SampleAppHw.h和SampleAppHw.c文件。修改SampleApp.c文件對(duì)頭文件的引用(注意Workspace選擇CoordinatorEB)。實(shí)訓(xùn)案例1、 移除工程中的SampleAppHw.h和SampleA2、 打開(kāi)MT_UART.h,關(guān)閉串口流控,將波特率改為115200。實(shí)訓(xùn)案例2、 打開(kāi)MT_UART.h,關(guān)閉串口流控,將波特率改為113、 修改SampleApp.h,增加周期時(shí)長(zhǎng)和串口事件編號(hào)的宏定義。實(shí)訓(xùn)案例3、 修改SampleApp.h,增加周期時(shí)長(zhǎng)和串口事件編號(hào)4、 SampleApp.c中修改Sample

14、App_Init函數(shù),啟動(dòng)一個(gè)1秒定時(shí)器,向SampleApp_TaskID發(fā)送串口定時(shí)發(fā)送事件。實(shí)訓(xùn)案例4、 SampleApp.c中修改SampleApp_Ini實(shí)訓(xùn)案例5、修改SampleApp_ProcessEvent函數(shù)。增加新事件SAMPLEAPP_SEND_PERIODIC_UART_MSG_EVT的處理,先向串口輸出“Hello ZigBee”信息,再啟動(dòng)1秒定時(shí)器。實(shí)訓(xùn)案例5、修改SampleApp_ProcessEvent實(shí)訓(xùn)案例6、添加應(yīng)用層新任務(wù)。(1)創(chuàng)建UartApp.h頭文件,并在該文件中增加任務(wù)初始化函數(shù)和事件處理函數(shù)聲明。實(shí)訓(xùn)案例6、添加應(yīng)用層新任務(wù)。(1)創(chuàng)建UartApp.h頭實(shí)訓(xùn)案例(2)創(chuàng)建UartApp.c文件,并在該文件中增加新任務(wù)的初始化函數(shù)和事件處理函數(shù)(重要)。實(shí)訓(xùn)案例(2)創(chuàng)建UartApp.c文件,并在該文件中增加新實(shí)訓(xùn)案例(3)打開(kāi)OSAL_SampleApp.c文件,在任務(wù)數(shù)組const pTaskEventHandleFn tasksArr 中增加

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論