1. 程式人生 > 實用技巧 >zigbee系統篇——ZStack檔案框架

zigbee系統篇——ZStack檔案框架

瞭解硬體和更多資料可點選:點選瞭解

新建一個物聯網行業交流學習QQ群,感興趣可加:928840648

=====CUT=====

本章目的:

1)瞭解Z-Stack3.0的檔案組織形式。

2)瞭解Z-Stack3.0的框架結構。

Z-Stack 3.0.1 SDK檔案組織形式

如果大家按照預設的位置安裝了Z-Stack3.0,那麼可以在C盤下找到相應的檔案目錄:

ZStack 3.0.1就是TI提供的ZigBee解決方案軟體支援包(SDK),SDK並不是全開源的,沒有開源的部分是以連結庫的形式提供,非常穩定,我們也基本不會修改到。注:我們開發一個專案的時候,可以複製安裝目錄下的SDK到其他目錄進行使用,進入Z-Stack 3.0.1目錄下:

Accessories目錄:

這個目錄用來存放“附件”,也就是一些輔助的工具,後面課程使用到會進行講解;進入該目錄:

Components目錄:

這個目錄用來存放協議棧的“元件”,基本上包含了協議棧的所有重要的組成部分。進入該目錄:

bsp(板級支援包):為上層的驅動程式提供訪問硬體裝置暫存器的函式包。

driverlib(驅動連結庫): 為上層提供驅動程式API。

hal(硬體設配層): 適配下層不同硬體的驅動程式,為上層提供統一API。

mac(資料鏈路層):實現IEEE802.15.4協議、射頻收發控制等。

mt(監視器):為監視協議棧各層的執行狀態提供支援。

osal(作業系統抽象層):

實現系統排程、記憶體管理,儲存管理等功能。

services(服務):提供一些公共的、常用的API,比如複製MAC地址等。

stack(ZigBee協議堆疊):實現ZigBee相關的功能和服務,這個目錄和ZigBee協議的內容密切相關,我們暫時不展開,到ZigBee3.0應用篇我們會進行詳細講解。下圖是ZigBee協議的結構圖,其實就是在這個目錄實現的:

usblib(USB連結庫):如果晶片支援USB(比如CC2538),就需要USB連結庫的支援了。

zmac(資料鏈路子層):mac層的支援子層,屬於mac層的一部分!

Documents目錄:

Documents目錄下提供的是針對Z-Stack開發的輔助文件,比如開發者指導和應用例程指導、也有API的介面說明文件、OTA指導,這部分內容對於開發者非常有參考價值。

Projects目錄:

tools目錄下存放的是應用例程會使用到的工具,比如OTA工具;我們重點關注zstack目錄,這裡面有ZigBee的應用例程,開啟該目錄:

HomeAutomation(簡稱ZHA):家居自動化,是ZigBee面向智慧家居自動化控制的應用,比如智慧插座、溫溼度感測器、燈等等。

LIbraries(動態連結庫):TI不開放的那部分原始碼會被編譯為連結庫的形式進行使用。

OTA(空中升級):針對ZigBee裝置空中升級的例子。

Tools(配置工具):這裡面存放的是相關工程的配置檔案,比如配置FLASH中多少空間用來存放程式等。

Utilities(公共目錄):存放共用使用的內容,比如BootLoader例程。

ZMain(main入口函式):這裡面存放和系統啟動相關的內容,包括main入口函式。

ZNP(ZigBee And Processor):Z-Stack支援CC253x/CC2538 + MCU的方案,比如CC2530+QCA4531(Wifi晶片),也就是ZNP方案!

Tools目錄:

存放的是配合Z-Stack使用的工具,配置檔案等,比如ZigBee網路資訊的配置,程式啟動位置地址配置等等。

檔案:

EULA是版權說明的文件,不展開。

Getting Started Guide也就是“入門指南”,用於一開始導讀用的。

Z-Stack 3.0 Release Note.txt是Z-Stack當前版本的說明資訊。

Z-Stack Core Release Note.txt我們知道Z-Stack是有核心的,這個文件用來說明當前所用核心的資訊。

Z-Stack 3.0 Software Development Kit Resource Guide.html提供通過網頁來檢視相關幫助文件的連結。

Z-Stack_3.0.1_Manifest.html,SDK的清單,比如軟體版本資訊等。

Z-Stack 3.0.1工程框架

...\Z-Stack 3.0.1\Projects\zstack\HomeAutomation,上節課我們講到,這個目錄下存放的是ZigBee面向家居自動化(智慧家居)的應用工程,我們開啟該目錄可以看到:

不同應用只是在應用層上不同,工程的框架結構是一模一樣的,我們這裡以:

SampleSwitch工程為例子進行講解,這是一個ZigBee插座的應用例程:

由於我們的板子是CC2530,所以開啟CC2530DB目錄:

注:Z-Stack 3.0.1針對CC2530的工程需要用到IAR EW8051 10.10.1以上的IAR版本開啟。這裡工作空間以及工程管理和我們基礎篇學習的多工程管理是一樣的,我們通過IAR 10.10.1開啟SampleSwitch.eww,工程開啟後:

紅色圈內的內容和ZigBee協議的實現密切相關,我們放在後面的篇章進行講解;其他有文字說明的工程組和上節課的內容一對照很容易發現其實是一致的,App是應用層的開發,可以理解為是基於ZigBee的應用裝置開發,大部分的開發工作是在APP應用程式上展開的,首先我們可以對工程進行一次完整的編譯過程:

編譯完成,無錯誤和警告:

ZigBee有3種裝置型別,分別是:協調器,路由器和終端裝置,協調器是網路的中心節點(起到建立網路的作用,同時承擔路由裝置資料中轉服務的角色),路由器是資料報文的中轉站,終端裝置一般是對耗電敏感的感測器裝置;我們可以在工程中對這三種裝置做切換:

由於我們這個篇章不會涉及ZigBee具體內容的講解,所以我們按照工程開啟後的預設即可,也就是協調器(Coordinator),下節課我們將進入具體的內容講解!

瞭解硬體和更多資料可點選:點選瞭解

新建一個物聯網行業交流學習QQ群,感興趣可加:928840648