從零開始學習ZigBee之TI-Zstack初識及環境搭建(一)
EW8051 10.10.1 (10.10.1) for CC2530 and CC2531 Wireless MCU,可以從各自官網下載,博主下載最新的EW8051 10.20版本,破解檔案自行從網上查詢。下載完成後自行解壓安裝。
安裝完成後,首先開啟Z-Stack 3.0.1安裝目錄下的Getting Started Guide - CC2530.pdf檔案。讀下來發現作為新使用者的自己需要從安裝目錄下的Documents資料夾內獲取API介面、應用筆記、使用者嚮導檔案等,同時也可以從TI的官網找到相應的使用者嚮導檔案、應用筆記、評估開發板、資料手冊等。這裡我們從Documents資料夾內開始。詳細研讀Z-Stack 3.0 Developer's Guide.pdf檔案,這是我們能夠快速應用開發CC2530的基礎檔案。
一、什麼是ZigBee
ZigBee網路是一個使用電池供電裝置的多跳網路。 這意味著兩個需要通訊的裝置,在ZigBee網路中交換資料可能不得不依賴於其他中間裝置才能成功完成。因此由於網路的這種合作性質,需要對每個裝置配置特定適當的網路功能和將某些引數配置為特定值。 這套網路裝置執行的功能決定裝置在網路中的角色,稱為裝置型別。 集合需要配置為特定值的引數以及這些值稱為堆疊配置檔案。
二、ZigBee器件型別
ZigBee網路中有三種邏輯裝置型別:
(i)協調器
(ii)路由器
(iii)終端裝置
一個ZigBee網路由具有編隊能力的裝置(如協調器或路由器)、路由器
如圖:黑色的點代表協調器,紅色的點代表路由器,白色的點代表終端裝置。
(1)協調器
協調器是具有網路組織能力的裝置,但沒有加入網路功能。這意味著它只能建立自己的網路,而不能加入現有的網路。為了建立一個網路,協調器節點掃描現有網路的RF環境,選擇一個通道和一個網路識別符號(也稱為PAN ID),然後啟動網路。在Z3.0中,此裝置建立了一個集中式安全網路,並且被授權充當此網路的信任中心,這意味著此裝置負責管理網路的安全,並且它是唯一能夠分發金鑰並且允許裝置加入它建立的網路的裝置。
協調器節點
協調器的作用主要與啟動網路和管理金鑰有關,除此之外,它的行為類似於路由器裝置。需要注意的是由於裝置加入或離開網路有關的網路程式必須由協調器參加,因此不能缺少自己的網路。
(2)路由器
路由器執行以下功能:
(i)允許其他裝置加入網路;
(ii)多跳路由;
(iii)協助其子裝置的通訊。
在Z-Stack 3.0該裝置已被授予形成能力,使其能夠建立一個分散式安全網路。這種組建能力允許路由器裝置建立沒有安全管理器的網路。這意味著一旦建立了網絡,建立它的路由器在該網路中就沒有任何特殊的作用。一般來說,路由器預計始終處於活動狀態,因此必須由主電源供電。
(3)終端裝置
終端裝置對維護網路基礎設施沒有特別的責任,因此它可以按照選擇的方式進行休眠和喚醒,因此它可以是電池供電的節點。通常,終端裝置的記憶體要求(特別是RAM要求)較低。
筆記:
在Z-Stack中,裝置型別通常是在編譯時通過編譯選項(ZDO_COORDINATOR和RTR_NWK)。 所有示例應用程式都提供了單獨的專案檔案以構建每種裝置型別。
三、協議棧配置檔案
需要配置為特定值的堆疊引數集以及上述裝置型別值稱為堆疊配置檔案。構成堆疊配置檔案的引數由ZigBee聯盟定義。網路中的所有裝置必須符合相同的堆疊配置檔案(即所有裝置都必須具有堆疊配置檔案,且引數配置為相同的值)。
如果應用程式開發人員選擇更改這些引數中的任何一個的設定,他們依據ZigBee指定的堆疊配置檔案修改後,那些裝置將不再能夠與來自其他供應商的裝置進行互操作。因此,“封閉網路”的開發者可以選擇改變堆疊的設定變數。這些堆疊配置檔案稱為“網路特定的”堆疊配置檔案。
裝置符合的堆疊配置檔案識別符號存在於該裝置傳送的信標中。這個使裝置能夠在加入之前確定網路的堆疊配置檔案。“網路特定”堆疊配置檔案ID為0,而傳統ZigBee堆疊配置檔案的ID為1,以及ZigBee PRO堆疊配置檔案(用於Z3.0)ID為2。堆疊配置由nwk_globals.h檔案中的STACK_PROFILE_ID引數配置。Z-Stack3的堆疊配置檔案保留給Green Power裝置,並出現在相應的幀中。
四、地址引數
(一)地址型別
ZigBee裝置有兩種型別的地址, 一個64位IEEE地址(也稱為MAC地址或擴充套件地址)和一個16位網路地址(也稱為邏輯地址或短地址)。
64位地址是全球唯一的地址,並在裝置的整個生命週期內分配給裝置。 它通常由製造商或在安裝過程中進行設定。 這些地址由IEEE維護和分配。 有關如何獲取這些地址塊的更多資訊,請訪問http://standards.ieee.org/regauth/oui/index.shtml。 16位地址在加入網路時被分配給裝置,並在網路上使用。 它在該網路中唯一是唯一的。 它用於識別裝置並在網路內傳送資料。
(二)網路地址分配
ZigBee PRO使用隨機(隨機)定址方案來分配網路地址。 此定址方案隨機將短地址分配給新裝置,然後使用網路中的其餘裝置確保沒有重複的地址。 當一個裝置加入時,它從它的父節點接收其隨機生成的地址。 新的網路節點然後向網路的其餘部分生成“裝置宣告”(包含其新的短地址及其擴充套件地址)。 如果有其他裝置具有相同的短地址,則網路中的節點(路由器)將向整個網路傳送廣播“網路狀態 - 地址衝突”,並且具有衝突短地址的所有裝置將更改其短地址。 當衝突的裝置改變他們的地址時,他們發出他們自己的“裝置公告”來檢查他們的新地址以查詢網路中的衝突。
終端裝置不參與“地址衝突”。 他們的父節點為他們做這件事。 如果終端裝置發生“地址衝突”,其父裝置將向終端裝置傳送“重新加入響應”訊息以更改終端裝置的短地址,並且終端裝置發出“裝置宣告”以檢查其新地址是否存在網路衝突。
當收到“裝置宣告”時,關聯表和繫結表將被更新為新的短地址,路由表資訊不會更新(必須建立新的路由)。 如果父節點確定“裝置宣告”屬於其終端裝置的其中一個子節點,但不是直接來自終端裝置,則父節點會認為該子節點已移至另一個父節點。