ZigBee網路層(NWK)

Download Report

Transcript ZigBee網路層(NWK)

亞東技術學院與內湖高工策略聯盟合作計劃
數位家庭平台之通訊技術-Zigbee 無線網路技術入門與實務
主講人:
亞東技術學院 電機系 施勢帆 副教授
教育部顧問室『網路通訊人才培育先導型計畫』-數位家庭教學推動聯盟中心-種子教師
數位家庭平台之通訊技術-Zigbee 無線網路技術入門與實務
時程規劃:
1) 亞東技術學院 學校簡報
2) 亞東技術學院 電機系簡報
3) 冷凍科學生至亞東就讀心得分享
4) 數位家庭平台之通訊技術 (living3.0智慧化展示屋)
5) Zigbee 無線網路簡介
6) Zigbee 晶片組 -- CC2430/CC2431
7) Zigbee 系統開發及軟體平台
8) ZigBee 無線定位開發系統基礎實驗
9) ZigBee 無線定位開發系統Z-Stack實驗
10) 學生專題作品簡報
1)Zigbee 無線網路簡介
大綱








1.1 ZigBee無線網路簡介
1.2 ZigBee/IEEE 802.15.4 堆疊簡述
1.3 IEEE 802.15.4 無線個人區域網路(WPAN)架構
1.4 實體層(PHY)-IEEE 802.15.4
1.5 媒體存取控制層(MAC)-IEEE 802.15.4
1.6 ZigBee網路層(NWK)
1.7 ZigBee應用支援層(APS)
1.8 ZigBee協定堆疊
1.1、ZigBee無線網路簡介

在2002年成立的ZigBee聯盟(ZigBee Alliance),主要
的推廣廠商有Chipcon、Ember、飛思卡爾(Freescale)、
Honeywell、三菱(Mitsubish)、摩托羅拉(Motorola)、
恩智浦(NXP)以及三星(Samsung)。

如課本圖1.1 為ZigBee聯盟的標誌圖
ZigBee技術可應用領域
ZigBee/IEEE802.15.4規格架構示意圖

根據ZigBee之技術本質,ZigBee具有的特性:



省電
可靠度高
高度擴充性
1.2、ZigBee/IEEE 802.15.4
堆疊簡述

ZigBee/IEEE 802.15.4堆疊由一組子層構成

每層為其上層提供一組特定的服務:



一個資料實體提供資料傳輸服務
一個管理實體提供全部其他服務
每個服務實體透過一個服務存取點(以下簡稱SAP)為
其上層提供服務介面,並且每個SAP提供了一系列
的基本服務指令來完成相應的功能。
ZigBee/IEEE 802.15.4堆疊的結構

IEEE 802.15.4—2003標準定義了最下面的兩層:



實體層(簡稱PHY)
媒體存取控制層(簡稱MAC)。
ZigBee聯盟提供了網路層(簡稱NWK)和應用層(簡
稱APL)框架的設計,其中,應用層的框架包括了應
用支援子層(簡稱APS)、ZigBee裝置物件(簡稱ZDO)
和由製造商制定的應用物件。
1.3、IEEE 802.15.4 無線個人
區域網路(WPAN)架構

一般在IEEE 802.15.4網路拓樸上,功能方面又可區
分為兩種型態

全功能裝置(Full-Function Device;FFD)


FFD之節點具備控制器之功能提供資料交換
精簡型裝置(Reduced-Function Device;RFD)

RFD則是只能單純地傳送資料給予FFD或是從FFD接受簡
單資料。RFD多用在簡單的電燈開關或是感測節點的偵測
上。

IEEE 802.15.4網路拓樸上,可以包含三種角色:



個人區域網協調者(PAN協調者)
協調者(協調者)
裝置(Device)
星狀拓樸
對等式拓樸
IEEE 802.15.4網路拓樸圖
1.4、實體層(PHY)IEEE 802.15.4

ZigBee的通信頻率在實體層規範。

ZigBee根據不同的國家、地區,為其提供了不同的
工作頻率範圍,分別為2.4 GHz和868/915 MHz。

IEEE 802.15.4定義了兩個實體層標準,分別是2.4
GHz實體層和868/915 MHz實體層。

兩個實體層都基於直接序列展頻(DSSS,Direct
Sequence Spread Spectrum)技術。
ZigBee無線通道的組成表
通道編號
中心頻率,MHz
K-0
868.3
K-1,2,3,…,10
K-11,12,13,…,26
906+2(K-1)
2401+5(K-11)
通道間隔,
MHz
2
5
頻率上限,
MHz
頻率下限,
MHz
868.6
868.0
928.0
2 483.5
902.0
2400.0
通道和頻率分佈示意圖
IEEE 802.15.4實體層結構模型

在實體層中存在有資料服務存取點和實體層管理實體
服務的存取點。

透過這兩個服務存取點來提供如下服務:

實體層資料存取服務(PHY data service):


透過實體層資料服務存取點(PD-SAP,Server Access Point)
為實體層資料提供服務。
實體層管理服務(PHY management service):

透過實體層管理實體(PLME)服務的存取點(PLME-SAP)為
實體層管理提供服務。
實體層資料包格式
1.5、媒體存取控制層(MAC)
-IEEE 802.15.4

IEEE 802系列標準把資料連結層分成邏輯鏈路控制
(LLC,Logical Link Contro1)和媒體存取控制兩個子
層。
LLC子層在IEEE 802.6標準中定義,為802標準系列
所共用。
媒體存取控制子層協定則依賴於各自的實體層。

IEEE 802.15.4的媒體存取控制層能支援多種LLC標準



媒體存取控制子層處理所有實體層無線通道的接入,
其主要功能有:







網路協調者負責產生網路信標(Beacon)
利用信標訊框來作同步。
支援個人區域網路(PAN)鏈路的建立和斷開。
支援裝置加密功能。
採用具避免碰撞的載頻偵測(Carrier Sense Multiple
Access-Collision Avoidance, CSMA-CA)
處理和維護保證時槽(Guaranteed Time Slots, GTS)機制。
在兩個對等的媒體存取控制實體之間提供一個可靠的通
信鏈路。
1.5.1 媒體存取控制基本概念

802.15.4的媒體存取控制層,定義了兩種傳輸模式

信標模式(Beacon Mode)(如課本圖1.9所示)


信標模式,則是802.15.4比較特別的規格。
非信標模式(Non-Beacon Mode)(如課本圖1.10所示)

非信標模式簡單來說就是直接使用CSMA-CA的協定,避
免傳輸碰撞。
信標模式(Beacon Mode)資料傳送示意圖
非信標模式(Non-Beacon Mode)資料傳送示意圖



當網路是以信標模式在傳遞資料時,協調者就會定
時發送信標(Beacon)
同一個無線個人區域網路(Wireless PAN)中的所有的
裝置都必須以這個信標當作同步。
信標與信標之間,又分為16個時槽,在一般情形之
下,任何裝置還是得使用CSMA-CA協定,彼此競爭,
在任何時間內收送資料,並不受時間區間影響,就
如同非同步傳輸模式(如課本圖1.11所示)。
信標模式(Beacon Mode)示意圖

在802.15.4的特殊規格之下,事實上,又可細分為兩
種傳送情況


競爭存取時段(Contention Access Period)
非競爭時段(Contention Free Period)
競爭存取時段與非競爭時段的示意圖
1.5.2 媒體存取控制子層
服務規格



媒體存取控制子層在服務標示收斂子層(SSCS)和實
體層之間提供了一個介面。
媒體存取控制子層包括一個管理實體。
該實體透過一個服務介面可呼叫媒體存取控制層管
理功能,同時還負責維護媒體存取控制層固有的管
理物件的資訊庫。

在媒體存取控制層兩個不同服務的存取點提供兩種
不同的媒體存取控制子層服務。


媒體存取控制資料服務(MAC data service)
媒體存取控制管理服務(MAC management service)
IEEE 802.15.4 媒體存取控制層參考模型
媒體存取控制層資料包格式

IEEE 802.15.4的媒體存取控制子層定義了4種訊框類型





信標(Beacon)訊框
資料訊框
確認訊框
媒體存取控制命令訊框
其中,只有信標訊框和資料訊框包含了高層控制命令
或者資料,確認訊框和媒體存取控制命令訊框則用於
ZigBee裝置間媒體存取控制子層功能實體間控制資訊
的收發。
媒體存取控制資料訊框的封包格式
1.6、ZigBee網路層(NWK)

網路層包含的機制有:



加入與退出一個網路、將框架加入安全措施、將框架繞徑、
發現與維護繞徑。
應用支援層負責維護連接表(Binding Table),並在兩個已
連接(binding)的裝置間轉送訊息。
ZigBee裝置物件則是負責定義裝置在網路中扮演的角色,
初始化並針對連接(binding)需求做回應,將網路中的
裝置建立起安全性關係,找出網路中的裝置並決定它們
提供何種服務。

ZigBee協調者需做到PAN協調者的所有工作,且僅能
用全功能型裝置(FFD)來實作

ZigBee終端裝置可用FFD或RFD 來實作

ZigBee路由器就是一個IEEE 802.15.4-2003協調者,
需用FFD實作,負責繞送訊息與提供連結。
三種裝置的功能分類表
動作
ZigBee協調者
ZigBee路由器
ZigBee終端裝置
加入一個網路



脫離一個網路



允許裝置加入網路


允許裝置脫離網路


參與分散式邏輯網路位址指派


維護鄰居裝置紀錄表


起動一個新網路


ZigBee網路拓樸圖
1.6.1
規格




ZigBee網路層(NWK)
ZigBee網路層的主要功能就是提供一些必要的函式,
確保ZigBee的媒體存取控制層正常工作,並且為應
用層提供合適的服務介面。
為了向應用層提供介面,網路層提供了兩個必需的
動能服務實體。
ZigBee網路層服務分為兩大類:網路層資料傳送服
務與網路層管理服務,分別由兩個實體:網路層資
料實體(Layer Data Entity,NLDE)與網路管理層實
體(NWK Layer Management Entity,NLME)實現
而其服務存取點介面分別為NLDE-SAP 與NLMESAP。在網路層中也有一個用來儲存網路層屬性的
小型資料庫NWK IB(NIB)。
ZigBee網路層參考模型

網路層管理實體提供網路管理服務,允許應用與堆
疊相互作用。網路層管理實體提供如下服務:






配置一個新的裝置
初始化一個網路
連接、重置和斷開網路
發現路由
發現鄰居裝置
接收控制

網路層資料實體提供如下服務:
產生網路層協定資料單元(NPDU)
指定拓撲傳輸路由
確保通信的真實性和機密性

1.6.2 ZigBee網路層資料封包
(訊框)格式

ZigBee網路層訊框分為兩大類,一是網路層命令訊
框,另一個則是網路層資料訊框。

網路層資料訊框顧名思義,是用來傳送上層協定資
料用。而網路層命令訊框有四種


路由器請求(Route request)命令、路由器回覆(Route
reply)命令與路由器錯誤(Route error)命令,這三種
命令主要是給路由之用的。
離開命令是用來告訴子節點退出網路。
ZigBee網路層資料封包(訊框)格式圖

在ZigBee網路協定中,定義了兩種類型的網路層訊
框,其分別是資料訊框和網路層命令訊框,如課本
圖1.19所示。
1.7、ZigBee應用支援層(APS)

ZigBee應用層框架包括應用支援層(APS)、ZigBee裝
置物件(ZDO)和製造商所定義的應用物件。

應用支援層的功能包括維護連接表(Binding
Table),及在綁定的裝置之間傳送消息。所謂綁定
就是基於兩台裝置的服務和需求將它們匹配地連接
起來。

ZigBee裝置物件的功能包括:定義裝置在網路中的
角色(如ZigBee協調者和終端裝置)、發起和回應綁定
請求、在網路裝置之間建立安全機制。ZigBee物件
還負責發現網路中的裝置,並且決定向它們提供何
種應用服務。
1.7.1 ZigBee應用支援層(APS)
概念

應用支援層提供了這樣的介面:在網路層和應用層
之間,從ZigBee裝置物件到製造商的應用物件的通
用服務集。

該服務由兩個實體來實現:

應用支援資料實體(APSDE)


APSDE透過APSDE服務存取點(APSDE-SAP)
應用支援管理實體(APSME)

APSME透過APSME服務存取點(APSME-SAP)
1.7.2 ZigBee應用支援層(APS)
規範

這部分的作用是定義ZigBee應用支援子層的功能。
該功能建立在兩個基礎之上:


一是正確運行ZigBee網路層的驅動功能
二是製造商定義的應用物件所需要的功能。
ZigBee 應用支援子層的構成和介面
應用支援層中所包含的三種訊框類型
1.8、ZigBee協定堆疊
完整的ZigBee協定堆疊架構

ZigBee裝置物件可說是ZigBee網路裝置的主要管理
者,應用架構可以說是容納非ZigBee 網路裝置的集
合,在ZigBee網路世界中,我們可說是由ZigBee裝
置物件來管理應用架構中的應用物件。

其中,包含了兩種物件,一個是ZigBee裝置物件
(ZigBee Device Object,ZDO),另一個是應用物件
(Application Object);也有兩種模型(profiles),一
個是ZigBee裝置模型,另一個則是應用模型。
2)Zigbee 晶片組 -CC2430/CC2431
大綱






2.1 CC2430基本介紹
2.2 CC2430特性
2.3 接腳和I/O埠配置
2.4 CC2430 8051 CPU介紹
2.5 I/O埠
2.6 ZigBee無線網路網路之節點裝置模組
2.1、CC2430基本介紹

Chipcon公司(已於2006年被TI公司收購)所設計的
CC2430/CC2431產品系列,是世界上第一個真正單
晶片組的ZigBee 解決方案,亦為第一個真正具備
SoC ZigBee產品。

CC2430/2431具有晶片組可程式化的Flash記憶體以及
透過認證的ZigBeeTM 協議堆疊(Z堆疊),所有的
功能都整合在一個晶片組內。
2.2、CC2430特性

CC2430/CC2431晶片的主要特點如下:







高性能、低功耗的8051微控制器內核
相容2.4GHz IEEE 802.15.4的RF收發器
極高的接收靈敏度和抗干擾性能
32/64/128 KBFlash記憶體
8 KB RAM,4KB 具備在各種供電方式下的資料保持能力
強大的DMA功能
只需極少的外接元件

CC2430/CC2431晶片的主要特點如下:






只需一個石英震盪器,即可滿足網狀(Mesh)網路建置
的需要。
電流消耗小(當微控制器內核執行在32 MHz時,Rx為27
mA,Tx為25 mA)。
在電源下降模式下,電流消耗只有O.9µA。此模式可透
過外部中斷或者是RTC來喚醒。
在待機模式下,電流消耗小於0.6µA。此模式可透過外
部中斷來喚醒。
從低功率模式切換到主動模式具備非常快速時間,如此
在低工作週期系統下,可致能相當地的平均功率消耗。
硬體支援CSMA/CA功能。

CC2430/CC2431晶片的主要特點如下:









廣泛的電源電壓範圍(2.0~3.6 V)
支援數位化的接收信號強度指示器/鏈路品質指示(RSSI /
LQI)
電池監視器和溫度感測器
具有8通道輸入8~14-bit ADC
高級加密標準(AES)輔助運算器
2個支援多種串列通信協定的USART
看門狗計時器
1個IEEE 802.5.4媒體存取控制(MAc)計時器
1個通用的16-bit和2個8-bit計時器
2.3、接腳和I/O埠配置
CC2430上視圖

CC2430/CC2431具有CC2420 RF接收器以及增強性能
的8051 MCU及8KB RAM等,其增強的8051 MCU核
的性能是工業標準8051內核性能的8倍。

CC2430/CC2431晶片採用7 mm×7mm QLP封裝,共
有48個接腳(如課本圖2.2所示)。

全部接腳可分為



I/O埠接腳
電源線接腳
控制線接腳等三類。










CC2430/CC2431還具備直接記憶體定址(DMA)功能(能
夠被用於減輕8051微控制器內核對資料搬移提高了晶
片組整體的性能)
可程式化看門狗計時器
AES-128安全輔助運算器
多達8通道輸入的8-14 bits ADC
USART
睡眠模式定時
打開電源重置
掉電檢測電路(Brown Out Detection)
21個可程式化I/O接腳等
兩個可程式化的USART可用於主/從SPI或UART操作
2.3.1 I/O埠接腳功能

I/O埠有下面的關鍵特性:



可設定為通常的I/O埠,也可設定為週邊I/O埠使用。
在輸入時有提升和下拉能力。
全部21個數位I/O埠接腳都具有回應外部的中斷能力。

如果需要外部週邊,可對I/O埠接腳產生中斷,同時外部的
中斷事件也能被用來喚醒休眠模式。

1~6腳(P1_2~ P1_7):


8~9腳(P1_0~P1_1):


具有20 mA的驅動能力。
11~18腳(P0_0 ~P0_7):


具有4 mA輸出驅動能力。
具有4 mA輸出驅動能力。
43,44,45,46,48腳(P2_4,P2_3,P2_2,
P2_1,P2_0):

具有4 mA輸出驅動能力。
2.3.2 電源線接腳功能

7腳(DVDD):


20腳(AVDD_SOC):


為類比電路連接2.0~3.6 V的電壓。
23腳(AVDD_RREG):


為I/O提供2.0~3.6 V工作電壓。
為類比電路連接2.0~3.6 V的電壓。
24腳(RREG_OUT):

為25,27~31,35~40接腳埠提供1.8 V的穩定電壓。
2.3.3 控制線接腳功能

10腳(RESET_N):


19腳(XOSC_Q2):


32 MHz的石英振盪器接腳1,或外部時脈輸入接腳。
22腳(RBIAS1):


32 MHz的石英振盪器接腳2。
21腳(XOSC_Q1):


重置接腳,低電位有效。
為參考電流提供精確的偏置電阻。
26腳(RBIAS2):

提供精確電阻,43 kΩ,±1%。
2.4、CC2430 8051 的CPU介紹

CC2430/CC2431增強型8051內核使用標準8051指令
集,具有8倍的標準8051內核的性能。這是因為:


(1)每個時脈週期為一個機器週期,而標準8051中是12個
時脈週期為一個機器週期。
(2)刪除被浪費掉的匯流排狀態的方式。
2.4.1 增強8051簡介

CC2430的8051核心也包含了下列增強的架構:


第二組資料指標器
擴展的1 8個中斷源
2.4.2 重置

CC2430有3個重置源:




強迫RESET_N輸入接腳為低電位
打開電源重置
看門狗重置
重置後的初始狀況如下:




I/O接腳被配置成被提升狀態的輸入狀態
CPU的程式計數器被設定為0x0000,且程式從這裏開始
執行
所有外部週邊的暫存器被初始化成其重置值
看門狗計時器被除能
2.4.3 記憶體

在8051 CPU有4個不同的記憶體空間:

程式代碼(CODE):


資料(DATA):


8-bit可存取記憶體空間,可以直接或間接被單個的CPU指令
存取。該空間的低128位元組可以直接或間接存取,而高128
位元組只能夠間接存取。
外部資料(XDATA):


16-bit唯讀記憶體空間,用於程式記憶體。
l6-bit可存取記憶體空間,通常需要4~5個CPU指令週期來存
取。
特殊功能暫存器(SFR):

7-bit可存取暫存器記憶體空間,可以被單個的CPU指令存取。
2.4.3.l 記憶體映射

與標準8051記憶體映射不同之處有兩個方面:


為了使得DMA控制器存取全部實體記憶體空間,全部實
體記憶體都映射到XDATA記憶體儲存空間。
程式代碼記憶體空間可以選擇,因此全部實體記憶體可
以透過使用代碼記憶體空間的統一映射,映射到程式代
碼空間。
CC2430-F32外部資料記憶體(XDATA)空間
CC2430-F32 非統一映射程式代碼記憶體空間
CC2430-F32 統一映射程式代碼記憶體空間
CC2430-F64 外部資料(XDATA)記憶體空間
CC2430-F64 非統一映射記憶體空間
CC2430-F64 統一映射記憶體空間
CC2430-F128 外部資料(XDATA)記憶體空間
CC2430-F128 非統一映射編碼記憶體空間
CC2430-F128 統一編碼記憶體空間
2.4.3.2 CPU記憶體空間

外部資料記憶體空間


根據所選擇晶片組類型的Flash記憶體的不同,外部資料
(XDATA)記憶體的映射(分別如課本圖2.3、圖2.6和圖2.9
所示)。
程式代碼記憶體空間

對於物理記憶體空間,程式代碼(CODE)記憶體空間既可
以使用統一映射,又可以使用非統一映射(分別如課本圖
2.4、圖2.5、圖2.7、圖2.8、圖2.10和圖2.11所示)。

資料記憶體空間


資料(DATA)記憶體的8-bit位址,映射到8 KB SRAM的
高端256位元組。在這個範圍中,也可以對位址範圍為0
xFF00~0 xFFFF的程式代碼空間和外部資料空間進行存
取。
特殊功能暫存器空間

特殊功能暫存器(SFR)可以對具有128個入口點的硬體暫
存器進行存取,也可以對位址範圍為0xDF80~0xDFFF
的XDATA/DMA進行存取。
2.4.3.3 資料指標器

CC2430具有2個資料指標器(DPTR0和DPTR1),主要
用於程式代碼和外部資料的存取。例如:



MOVC A,@A+DPTR
MOV A,@DPTR
表 2.2 DPS (0x92) – 資料指標器選擇暫存器一覽表
兩個資料指標器(DPH0與DPH1)的
高低位元組一覽表
2.4.3.4 外部資料記憶體存取


CC2430提供一個附加的特殊功能暫存器(SFR),
MPAGE(0x93)
該暫存器在執行指令“MOVX A.,@Ri"與
"MOVX@R,A"時使用。MPAGE暫存器會給設定高
8-bit的位址,而暫存器Ri設定低8-bit的位址。
2.4.4 特殊功能暫存器




特殊功能暫存器(SFR)用於控制8051 CPU核心和外部
週邊。
一部分8051 CPU核心暫存器與標準8051特殊功能暫
存器的功能相同。
另一部分暫存器則不同於標準8051特殊暫存器。
透過設定可用來設定外部週邊單元介面,以及控制
RF收發器。
全部特殊功能暫存器(SFR)位址
2.4.5 CPU暫存器





R0-R7
程式狀態字元組,PSW
ACC累加器
B暫存器
堆疊指標SP
2.4.6 振盪器和時脈




C2430有一個內部系統時脈。該時脈的震盪源既可以
用16 MHz高頻RC振盪器,也可以採用32 MHz晶體
振盪器。
時脈的控制可以由設定特殊功能暫存器(SFR)的
CLKCON位元組來實現。系統時脈同時也可以提供
給80 5 1所有外部週邊來使用。
振盪器可以選擇高精準度的晶體振盪器,也可以選
擇低成本的RC振盪器。
須注意到,執行RF收發器時,必須使用高精準度的
石英振盪器。
2.5、I/O埠

CC2430/CC2431包括3個8位輸入輸出埠,分別是P0,
P1與P2。P0以及P1有8個接腳,及P2有5個接腳,共
有21個數位I/O接腳。

這些接腳都可以用作於透過的I/O埠,同時,透過獨
立程式設計還可以作為特殊功能的輸入輸出,透過
軟體設定還可以改變接腳的輸入輸出硬體狀態配置。

這21個I/O接腳具有以下功能:




(1)數位輸入輸出接腳
(2)通用I/O或外部週邊I/O
(3)具備提升與下拉能力的輸入接腳
(4)外部中斷能力
2.6、ZigBee無線感測網路之節點
裝置模組
CC2430應用電路
(數位I/O與ADC介面並無連接上,去耦合電容也未顯示)

表2.7 零件規格一覽表
ZigBee無線感測網路的裝置模組實體圖

3)Zigbee 系統開發及軟體平台
ZigBee定位

定位系統網路的組成包含:
1.
2.
3.
參考節點(Reference Node)。
盲節點(Blind Node)。
協調器(Coordinator)。
定位演算方法概述

定位演算是根據盲節點接收參考節點訊號的接收訊
號強度(Received Signal Strength Indicator, RSSI)來判
斷盲節點所在位置,基本上最靠近盲節點的參考節
點的RSSI值會最強,所以只要能夠穩定找到RSSI值
最強的訊號,即能判斷出盲節點所在區域。
華亨ZigBee定位系統介紹
節點板資源介紹
EB板圖示
CC2430/31除錯器
Z-Stack/SimpleStack協定分析
SOC腳位圖
天線結構
實驗資源介紹
*需另外搭配使用IAR軟體做開發

ZigBee協定軟體實驗
 SampleApp實驗:Zigbee網路設備的連線。
 Simple App1實驗:無線開關控制。
 Simple App2實驗:感測器傳送與資料收集
。
 Generic APP實驗:兩個終端設備與協調器通
訊。
 Serial APP實驗:兩台電腦用串列埠做
ZigBee傳輸。
ZigBee協定軟體實驗




Transmit App實驗:封包互傳實驗。
Home Automation實驗:同Simple App1,但使用Home
Automation規範。
ZigBee-2006定位實驗:利用參考節點(Reference Node)、
盲節點(Blind Node)、協調者(Coordinator)來構建ZigBee
定位網路。
註:實驗指導書,實驗內容
ZigBee相關開發軟體使用簡介






CC243x-Debugger的PC端驅動程式
CC2430EB上的CP2102(USB轉UART)
的PC端驅動程式
Z-Stack v1.4.2
SmartRF Flash Programmer
IAR MCS-51
General Packet Sniffer
CC243x-Debugger的PC端驅
動程式

CC243x-Debugger是專為支援TI CC2430/CC2431晶片
上系統晶片而推出的模擬器/除錯器。可與IAR
EW8051集成開發環境無縫連接,具有程式碼高速下
載、線上除錯、中斷點、單步、變數觀察、暫存器
觀察等功能,實現對CC2430/CC2431晶片上系統晶
片的即時線上模擬、除錯。

驅動程式位於“光碟:\Driver\chipcon”資料夾中

使用者可在設備管理器中查看到已安裝的設備
CC2430EB上的CP2102(USB轉
UART)的PC端驅動程式


考慮到使用者的電腦可能沒有串列埠,因此
CC2430EB使用了CP2102晶片進行USB轉串列埠功能
。要正常使用該功能,使用者PC端應當首先安裝
CP2102的驅動程式。請下以下步驟操作:
1. CP2102的驅動程式位於“光碟
:\Driver\cp210x_Drivers”資料夾中,執行該資料夾中
的“cp210x_Drivers.exe”檔進行安裝。

用USB電纜連接CC2430EB與使用者PC機,切換
CC2430EB上的“小紅帽”自鎖開關,確保由使用者
PC機的USB埠給CC2430EB供電。此時使用者PC端
將提示發現新硬體:

使用者可在設備管理器中查看到已安裝的設備
Z-Stack v1.4.2
德州儀器(TI)宣佈推出ZigBee堆疊Z-Stack,使用者可從TI網站免
費下載。Z-Stack擁有ZigBee測試室TUV Rheinland的ZigBee
Alliance標準設備測試認證,目前已獲得全球數千ZigBee開發商採
用。

Z-Stack符合ZigBee 2006規格且支援多種平台,包括符合IEEE
802.15.4/ZigBee標準的CC2430單晶片系統(SoC)方案、以CC2420
收發器、以及TI MSP430超低功率微控制器(MCU)為基礎的新平
台。

Z-Stack完全符合ZigBee 2006規格,並支援無線下載(over-the-airdownload)等新的擴充功能,使ZigBee網狀(mesh)網路能夠以無線
方式更新節點。Z-Stack同時支援具有位置感知(location awareness)
功能的CC2431,協助使用者根據目前節點位置來改變設定,建立
符合ZigBee的新應用。
http://www.eettaiwan.com/ART_8800462360_617723_NP_53b4e081.HT
M



執行“光碟:\ Z-Stack協定安裝”資料夾中的
“ZStack-CC2430-1.4.2-1.1.0.exe”檔進行安裝,安裝
過程非常簡單,此處不再贅述。只有一點需要使用
者注意,如果使用者電腦未安裝Microsoft® .NET
Framework 1.1 ”光碟:\ Z-Stack協定安裝\dotnetfx.exe”
,安裝檔將首先安裝它,然後使用者需要再次手動
進行Z-Stack v1.4.2的安裝。
注意:為了結合ZLocation的使用,請將“光碟
:\Texas Instruments”資料夾覆蓋已安裝的“Texas
Instruments”資料夾。
SmartRF Flash Programmer

SmartRF Flash Programmer工具軟體可被用來通過使
用的CC243x-Debugger來編譯TI公司的晶片上系統微
控制器的Flash記憶體。另外,SmartRF Flash
Programmer工具軟體也可被用來通過使用MSPFET430UIF和eZ430軟體編譯MSP430的Flash記憶體
。
SmartRF Flash Programmer
SmartRF Flash Programmer
SmartRF Flash Programmer
IAR MCS-51編輯環境
專案選擇
原始碼視窗
專案目錄
訊息視窗
程式碼下載  *.d51
程式碼下載/除錯
除錯環境
反組譯視窗
C語言除錯
General Packet Sniffer



監聽射頻硬體節點來顯示和儲存捕獲到的射頻
資料封包,可以支援多種射頻協定。
協定有Z-Stack、SimpleTI。
能過濾和解碼資料封包並將它們以一種合宜的
方式顯示出來,具有過濾選項並且以一個二進
位檔的格式儲存。
分析儀架構

資料封包可以被存儲在一個磁碟緩衝區。可以
被存儲的資料封包的總量取決於資料封包的大
小和硬碟的大小。當一個資料封包被顯示在
GUI上時,為了提高訪問速度,在操作期間這
些資料封包將被快取記憶體儲存在一個RAM緩
衝區。
ZigBee Package顯示
Select fields選項
4) ZigBee 無線定位
開發系統基礎實驗








實驗一 GPIO輸出實驗
實驗二 GPIO輸入實驗
實驗三 LCD驅動實驗
實驗四 GUI實驗
實驗五 溫度採集實驗
實驗六 P0輸入中斷
實驗七 P1輸入中斷
實驗八 P2輸入中斷







實驗九 系統時鐘源的選擇
實驗十 32KHz 振盪器
實驗十一 功耗管理
實驗十二 睡眠定時器
實驗十三 看門狗定時器的看門狗模式
實驗十四 看門狗定時器的定時器模式
實驗十五 ADC實驗
實驗一 GPIO輸出實驗



實驗內容:
將CC2430的P1.0配置為GPIO,方向為輸出,控制D2
的亮滅(低電壓點亮D2)。
在\CC2430EB開發板展示程式
\Library\HAL\include\hal.h文件中包含了和IO相關的
一些巨集,使用者使用這些巨集可以簡化對IO的設
置,提高程式碼的可讀性,本實驗中就使用了其中的
一些巨集。
132






實驗設備:
本實驗可在以下目標板上進行:
CC2430/CC2431EM
SoC-BB電池底板(裝配有CC2430/CC2431EM-S)
CC2430DB
CC2430EB(裝配有CC2430/CC2431EM)
133
實驗步驟:
 開啟專案:
1. 專案位於光碟:\ZB2430基礎實驗
\GPIO1\IAR_files\GPIO1.eww

134
2. 編譯下載
透過Prpject功能表中的Rebuild All編譯專案

編譯完成後,將CC243x-Debugger的10PIN接頭插入CC2430/2431的除錯
介面,然後將CC243x-Debugge用USB線與PC的USB埠連接,PC的USB
埠透過CC243x-Debugger給CC2430/CC2431EM供電,C2430/CC2431EM
給CC2430EB供電,此時CC2430/CC2431EM上的電源指示燈D1(紅色
)和CC2430EB上的電源指示燈D2(紅色),D3(紅色)將被點亮(如
下圖所示)。
135

透過點擊Project下拉功能表中的Debug項(或按Ctrl+D快捷
鍵)來下載應用專案,如下圖所示:
136

下載過程大約需要1秒。在下載過程結束後,IAR Embedded
WorkBench整合開發環境進入到除錯介面,透過點擊Debug
下拉功能表中的Stop Debugging項目(或按Ctrl+Shift+D快捷
鍵)來退出除錯介面,如下圖所示:
137


實驗結果:
按RST鍵或對目標板重新供電即可以看到D2被點亮,如
下圖所示:
138
實驗二 GPIO輸入實驗



實驗內容:
將CC2430的P0.1配置為GPIO,方向為輸入,內部上
拉,作為按鍵KEY的輸入埠。將CC2430的P1.0配置
為GPIO,方向為輸出,控制D2的亮滅(低電壓點亮
D2)。當按鍵KEY按下並釋放時,切換D2的亮滅狀態
。
在\CC2430EB開發板展示程式
\Library\HAL\include\hal.h文件中包含了和IO相關的
一些巨集,使用者使用這些巨集可以簡化對IO的設
置,提高程式碼的可讀性,本實驗中就使用了其中的
一些巨集。
139






實驗設備:
本實驗可在以下目標板上進行:
CC2430/CC2431EM
SoC-BB電池底板(裝配有CC2430/CC2431EM-S)
CC2430DB
CC2430EB(裝配有CC2430/CC2431EM)
140
實驗步驟:
1. 開啟專案:
專案位於”光碟:\ZB2430基礎實驗\GPIO2\IAR_files\
GPIO2.eww"(以下實驗步驟請參閱實驗ㄧ)
2.實驗結果:
按RST鍵或對目標板重新供電,按鍵KEY按下並釋放時,切
換D2的亮滅狀態。如下圖所示。

141
實驗三 LCD驅動實驗


實驗內容:
CC2430EB目標板上使用了SO12864FPD-13ASBE(3S)
點陣圖形液晶模組(ST7565P),為了方便使用者使用
,我們已經將SO12864FPD-13ASBE(3S)點陣圖形液
晶模組(ST7565P)的驅動程式寫好,驅動程式位於\
CC2430EB開發板展示程式\Library\EB\source\LCD.c
文件中,使用者可直接使用的相關函數已在
\CC2430EB開發板展示程式\Library\EB\include\LCD.h
中宣告,在使用者文件中包含該文件即可。
142

本實驗將調用SO12864FPD-13ASBE(3S)點陣圖形液晶模
組(ST7565P)驅動程式中的位元圖顯示函數來顯示一
幅位元圖。

LCD縱向顯示方式
143



實驗設備:
本實驗可在以下目標板上進行:
CC2430EB(裝配有CC2430/CC2431EM)
144



實驗步驟:
開啟專案:
專案位於”光碟:\ZB2430基礎實驗
\LCDDemo\IAR_files\LCDDemo.eww“(以下實驗步驟請
參閱 實驗ㄧ)
實驗結果:
按RST鍵或對目標板重新供電,在LCD上顯示下圖。
145
實驗四 GUI實驗



實驗內容:
在SO12864FPD-13ASBE(3S)點陣圖形液晶模組(
ST7565P)驅動程式的基礎上,我們為使用者提供了
一個簡易的GUI(圖形使用者介面),位於\CC2430EB
開發板展示程式\Library\EB\source\LCD.c文件中,使
用者可直接使用的GUI相關函數已在\CC2430EB開發
板展示程式\Library\EB\include\LCD.h中聲明,在使
用者文件中包含該文件即可。所有的GUI函數都是以
"GUI_"開頭的。
本實驗將向使用者展示簡易GUI的各相關函數的使用
。
146



實驗設備:
本實驗可在以下目標板上進行:
CC2430EB(裝配有CC2430/CC2431EM)
147





1.
2.
3.
4.
5.
6.
實驗步驟:
開啟專案:
專案位於”光碟:\ZB2430基礎實驗
\GUIDemo\IAR_files\GUIDemo.eww"(以下實驗步驟請參閱
實驗ㄧ)
實驗結果:
按RST鍵或對目標板重新供電,依序在LCD上繪出圖形
在指定坐標畫點
按指定坐標畫水平線
按指定坐標畫垂直線
按指定坐標畫矩形
按指定坐標畫填充矩形
在指定坐標顯示中文
148
實驗五 溫度採集實驗


實驗內容:
CC2430EB目標板上使用了溫度感測器DS18B20,為
了方便使用者使用,我們已經將DS18B20的驅動程式
寫好,驅動程式位於\CC2430EB開發板展示程式
\Library\EB\source\DS18B20.c文件中,使用者可直接
使用的相關函數已在CC2430EB開發板展示程式
\Library\EB\include\DS18B20.h中宣告,在使用者文件
中包含該文件即可。
149



實驗設備:
本實驗可在以下目標板上進行:
CC2430EB(裝配有CC2430/CC2431EM)
150





實驗步驟:
開啟專案:
專案位於”光碟: \ZB2430基礎實驗
\Sensor_DS18B20\IAR_files\Sensor_DS18B20.eww"(以
下實驗步驟請參閱實驗ㄧ)
實驗結果:
按RST鍵或對目標板重新供電,本實驗將使用DS18B20
進行溫度採集,並將採集到的溫度值顯示在LCD上。
151
實驗六 P0輸入中斷
 實驗內容:







CC2430具有18個中斷源,P0輸入中斷(POINT)是其中
的一個。該中斷的具體說明如下:
中斷編號:13
描述:P0輸入
中斷名稱:P0INT
中斷向量:6BH
中斷致能位:IEN1.P0IE
中斷標誌位:IRCON.P0IF
152



P0輸入中斷可由P0所有接腳(P0.0~P0.7)上的上升沿或下降沿
信號產生,可透過PICTL暫存器的P0ICON位來設置。
P0包含8個接腳,但不能為這8個接腳單獨致能/禁止中斷。這
8個接腳被分為2組,即低4位(P0.0~P0.3)為1組,高4位(P0.4
~P0.7)為1組。中斷的致能/禁止是以組為單位的,例如,若
想由P0.2接腳產生中斷,應該致能低4位組的中斷,若想由
P0.5接腳產生中斷,應該致能高4位組的中斷。PICTL的
P0IENL位用來設置低4位組的中斷致能/禁止;PICTL的
P0IENH位用來設置高4位組的中斷致能/禁止。
P0所有接腳的中斷狀態標誌可從P0IFG暫存器讀出。當產生
中斷時,相應位將置1,使用者可以以此判斷中斷是由P0的哪
個接腳上的信號產生。使用者可以軟體清零該暫存器的各位
。
153

為了致能CC2430的任何中斷,建議採取以下步驟:
1. 清除中斷標誌
2. 如果有的話,設置在外設特殊功能暫存器(SFR)中單獨
的中斷致能位。
3. 設置在IEN0,IEN1或IEN2暫存器中相應的、獨立的中
斷致能位為1。
4. 透過設置IEN0暫存器中的EA位為1來致能全局中斷。
5. 在相應的中斷向量地址開始中斷服務程式。
154







在\CC2430EB開發板展示程式\Library\HAL\include\hal.h
文件中包含了和中斷相關的一些巨集,使用者使用這些
巨集可以簡化對中斷致能,中斷標誌以及中斷優先級的
設置,提高程式碼的可讀性,本實驗中就使用了其中的
一些巨集。
實驗設備:
本實驗可在以下目標板上進行:
CC2430/CC2431EM
SoC-BB電池底板(裝配有CC2430/CC2431EM-S)
CC2430DB
CC2430EB(裝配有CC2430/CC2431EM)
155





實驗步驟:
開啟專案:
專案位於”光碟: \ZB2430基礎實驗\P0_INT\IAR_files\ P0_INT.eww"(以下
實驗步驟請參閱實驗ㄧ)
實驗結果:
按RST鍵或對目標板重新供電,本實驗由P0.1的下降沿(按下KEY鍵)產生
P0輸入中斷,在該中斷的中斷服務程式中等待使用者釋放KEY鍵,然後切
換P1.0的輸出狀態以切換D2的亮滅狀態。(如下圖所示)
156
實驗七 P1輸入中斷
 實驗內容:







CC2430具有18個中斷源,P1輸入中斷(P1INT)是其中
的一個。該中斷的具體說明如下:
中斷編號:15
描述:P1輸入
中斷名稱:P1INT
中斷向量:7BH
中斷致能位:IEN2.P1IE
中斷標誌位:IRCON2.P1IF
157



P1輸入中斷可由P1所有接腳(P1.0~P1.7)上的上升沿或下
降沿信號產生,可透過PICTL暫存器的P1ICON位來設置
。
P1包含8個接腳,這8個接腳可被單獨致能/禁止中斷。可
通過P1IEN暫存器來設置。
P1所有接腳的中斷狀態標誌可從P1IFG暫存器讀出。當
產生中斷時,相應位將置1,使用者可以以此判斷中斷
是由P1的哪個接腳上的信號產生。使用者可以軟體清零
該暫存器的各位。
158


本實驗展示由P1.6的下降沿(對於裝配有
CC2430/CC2431EM-S的SoC-BB電池底板是按下KEY鍵
,或對於裝配有CC2430/CC2431EM的CC2430EB是按下
KEY1鍵)
為了致能CC2430的任何中斷,建議採取以下步驟:
1. 清除中斷標誌
2. 如果有的話,設置在外設特殊功能暫存器(SFR)中單獨
的中斷致能位。
3. 設置在IEN0,IEN1或IEN2暫存器中相應的、獨立的中
斷致能位為1。
4. 通過設置IEN0暫存器中的EA位為1來致能全局中斷。
5. 在相應的中斷向量地址開始中斷服務程式。
159

在\CC2430EB開發板展示程式
\Library\HAL\include\hal.h文件中包含了和中斷相關
的一些巨集,使用者使用這些巨集可以簡化對中斷致
能,中斷標誌以及中斷優先級的設置,提高程式碼的
可讀性,本實驗中就使用了其中的一些巨集。
160




實驗設備:
本實驗可在以下目標板上進行:
SoC-BB(裝配有CC2430/CC2431EM-S):需要用杜邦線連
接SoC-BB電池底板上P5-1和P5-8,即將P1.6連接到KEY
鍵。
CC2430EB(裝配有CC2430/CC2431EM):需要用杜邦線
連接CC2430EB上的J3-9和J3-20,即將P1.6連接到KEY1
鍵。
161





實驗步驟:
開啟專案:
專案位於”光碟: \ZB2430基礎實驗\P1_INT\IAR_files\
P1_INT.eww“(以下實驗步驟請參閱實驗ㄧ)
實驗結果:
按RST鍵或對目標板重新供電,按下KEY1產生P1輸入中
斷,在該中斷的中斷服務程式中等待使用者釋放按鍵,
然後切換P1.0的輸出狀態以切換D2的亮滅狀態。
162
實驗八 P2輸入中斷








實驗內容:
CC2430具有18個中斷源,P2輸入中斷(P2INT)是其中
的一個。該中斷的具體說明如下:
中斷編號:6
描述:P2輸入
中斷名稱:P2INT
中斷向量:33H
中斷致能位:IEN2.P2IE
中斷標誌位:IRCON2.P2IF
163

P2輸入中斷可由P2接腳P2.0~P2.4上的上升沿或下降沿
信號產生,可通過PICTL暫存器的P2ICON位來設置。

P2包含5個接腳,這5個接腳不能被單獨致能/禁止中斷。
可通過P2IEN暫存器來設置它們同時被致能/禁止中斷。

P2所有接腳的中斷狀態標誌可從P2IFG暫存器讀出。當
產生中斷時,相應位將置1,使用者可以以此判斷中斷
是由P2的哪個接腳上的信號產生。使用者可以軟體清零
該暫存器的各位。
164


本實驗展示由P2.0的下降沿(按下KEY1鍵)產生P2輸入中
斷,在該中斷的中斷服務程式中等待使用者釋放按鍵,
然後切換P1.0的輸出狀態以切換D2的亮滅狀態。
為了致能CC2430的任何中斷,建議採取以下步驟:
1. 清除中斷標誌
2. 如果有的話,設置在外設特殊功能暫存器(SFR)中單獨
的中斷致能位。
3. 設置在IEN0,IEN1或IEN2暫存器中相應的、獨立的中
斷致能位為1。
4. 通過設置IEN0暫存器中的EA位為1來致能全局中斷。
5. 在相應的中斷向量地址開始中斷服務程式。
165




在\CC2430EB開發板展示程式\Library\HAL\include\hal.h文件中包含
了和中斷相關的一些巨集,使用者使用這些巨集可以簡化對中斷致
能,中斷標誌以及中斷優先級的設置,提高程式碼的可讀性,本實
驗中就使用了其中的一些巨集。
實驗設備:
本實驗可在以下目標板上進行:
CC2430EB(裝配有CC2430/CC2431EM):需要用杜邦線連接
CC2430EB上的J3-5和J3-20,即將P2.0連接到KEY1鍵。
166





實驗步驟:
開啟專案:
專案位於”光碟: \ZB2430基礎實驗\P2_INT\IAR_files\
P2_INT.eww“(以下實驗步驟請參閱實驗ㄧ)
實驗結果:
按RST鍵或對目標板重新供電,由P2.0的下降沿(按下
KEY1鍵)產生P2輸入中斷,在該中斷的中斷服務程式中
等待使用者釋放按鍵,然後切換P1.0的輸出狀態以切換
D2的亮滅狀態。
167
實驗九 系統時鐘源的選擇
 實驗內容


CC2430有1個內部的系統時鐘。時鐘源可以是1個
16MHz的RC振盪器,也可以是1個32MHz的晶體振盪
器。時鐘控制是透過使用CLKCON特殊功能暫存器
來執行的。系統時鐘也提供給所有的8051外設。
32MHz晶體振盪器的啟動時間對於某些應用而言太
長了,因此CC2430可以執行在16MHz RC振盪器直到
晶體振盪器穩定。16MHz RC振盪器的功耗要少於晶
體振盪器,但是由於它沒有晶體振盪器精確,因此它
不適用於射頻收發器。
168



CLKCON.OSC位元被用來選擇系統時鐘源。注意:要使
用射頻收發器,32MHz晶體振盪器必須被選擇並且穩定
。
注意:改變CLKCON.OSC位元並不即刻生效。這是因為
在實際改變時鐘源之前,被選擇的時鐘源要首先達到穩
定。還要注意:CLKCON.CLKSPD位元將反映系統時鐘
頻率,因此它是CLKCON.OSC位元的“鏡子”。
當SLEEP.XOSC_STB為1時,表示系統報告32MHz晶體
振盪器穩定。然而,這可能並不是實際情況,在選擇
32MHz時鐘作為系統時鐘源之前,應該等待一個額外的
64us的安全時間,可以通過增加一條空指令"NOP"來實
現。如果不等待,可能會造成系統崩潰。
169




未被選擇作為系統時鐘源的振盪器,透過設置
SLEEP.OSC_PD為1(預設狀態)將被設置為關電模式。
因此,當32MHz晶體振盪器被選擇作為系統時鐘源後,
16MHz RC振盪器可能被關閉,反之亦然。
當SLEEP.OSC_PD為0時,這2個振盪器都被上電並執行
。
當32MHz晶體振盪器被選擇作為系統時鐘源並且16MHz
RC振盪器也被上電時,根據供電電壓和執行溫度,
16MHZ RC振盪器將被不斷校準以確保時鐘穩定。當
16MHz RC振盪器被選擇作為系統時鐘源時,該校準不
被執行。
170


本實驗將向使用者展示選擇不同的振盪器作為系統時鐘
源。本文件中有一個D2閃爍的子程式,使用者可以觀察
在不同系統時鐘源下D2的閃爍情況。
在\CC2430EB開發板展示程式\Library\HAL\include\hal.h
文件中包含了和系統時鐘相關的一些巨集,使用者使用
這些巨集可以簡化對系統時鐘的控制,提高程式碼的可
讀性,本實驗中就使用了其中的一些巨集。
171






實驗設備:
本實驗可在以下目標板上進行:
CC2430/CC2431EM
SoC-BB電池底板(裝配有CC2430/CC2431EM-S)
CC2430DB
CC2430EB(裝配有CC2430/CC2431EM)
172





實驗步驟:
開啟專案:
專案位於”光碟: \ZB2430基礎實驗
\SystemClock_32MHzXOSC_16MHzRC\IAR_files\System
Clock_32MHzXOSC_16MHzRC.eww“(以下實驗步驟請
參閱實驗ㄧ)
實驗結果:
按RST鍵或對目標板重新供電,使用者可以觀察在不同
系統時鐘源下D2的閃爍情況。
173
實驗十 32KHz 振盪器






實驗內容:
功能描述:選擇不同的振盪器作為32KHz時鐘源。
CC2430包含了2個32KHz 振盪器,用來作為32KHz
時鐘的時鐘源,它們是:
32KHz 晶體振盪器
32KHz RC振盪器
32KHz 晶體振盪器被設計執行在32.768KHz,它為系
統精確定時提供了一個穩定的時鐘信號。
174


當被校準後,32KHz RC振盪器執行在32.753KHz。校準
只能發生在當32MHz 晶體振盪器被致能後,並且該校準
可以透過致能SLEEP.OSC32K_CALDIS位元被禁止。使
用32KHz RC振盪器比使用32KHz 晶體振盪器成本低、
功耗小。注意:這兩個振盪器不能同時執行。
預設情況下,在重置後,32KHz RC振盪器被致能並被選
擇作為32KHz 時鐘源。RC 振盪器功耗較低,但它沒有
32.768KHz 晶體振盪器精確。32KHz時鐘為睡眠定時器
和看門狗定時器提供時鐘,當計算睡眠定時器的定時時
間時,它可被用來作為定時器2(MAC 定時器)中的一個
閘門。
175


選擇哪一個振盪器作為32KHz 時鐘源是由
CLKCON.OSC32K暫存器位決定的。
CLKCON.OSC32K暫存器位只有在使用16MHz RC振盪
器作為系統時鐘源時才能被更改。當32MHz晶體振盪器
被選擇作為系統時鐘源並且穩定時,即
SLEEP.XOSC_STB為1,32KHz RC振盪器的校准將被連
續執行,32KHz 時鐘來自於32MHz 時鐘。該校準在除了
PM0外的其他電源模式下都不被執行。校準的結果是RC
時鐘執行在32.753KHz。
176


32KHz RC振盪器校準可能需要最多2ms來完成。當要進
入低功耗模式PM1或PM2時,在低功耗模式被進入前,
一段持續性的校準必須被執行。在某些應用中,這額外
的延遲可能是不被接受的,因此校準可透過設置
SLEEP.OSC32K_CALDIS為1被禁止。注意:當一個1被
寫入SLEEP.OSC32K_CALDIS時,任何持續性的校準將
被完成。
在\CC2430EB開發板展示程式\Library\HAL\include\hal.h
文件中包含了和32KHz時鐘相關的一些巨集,使用者使
用這些巨集可以簡化對32KHz時鐘的控制,提高程式碼
的可讀性,本實驗中就使用了其中的一些巨集。
177






實驗設備:
本實驗可在以下目標板上進行:
CC2430/CC2431EM
SoC-BB電池底板(裝配有CC2430/CC2431EM-S)
CC2430DB
CC2430EB(裝配有CC2430/CC2431EM)
178





實驗步驟:
開啟專案:
專案位於”光碟: \ZB2430基礎實驗\
Clock_32768Hz_32753HzRC\IAR_files\
Clock_32768Hz_32753HzRC.eww“(以下實驗步驟請參
閱實驗ㄧ)
實驗結果:
本實驗將向使用者展示選擇不同的振盪器作為32KHz時
鐘源。本實驗沒有可觀察的現象,主要是向使用者給出
一段展示程式碼。
179
實驗十一 功耗管理




實驗內容:
功能描述:選擇不同的功耗模式。
CC2430使用不同的執行模式或功耗模式以允許低功
耗執行。超低功耗是透過關閉模組電源以避免靜態功
耗以及透過使用時鐘門控和關閉振盪器來減少動態功
耗而獲得的。
CC2430有4個功耗模式,被稱為PM0、PM1、PM2和
PM3。PM0是全功能模式而PM3具有最低功耗。
180






PM0:全功能模式。連接到數位內核的電壓調整器打開。
16MHz RC振盪器或32MHz晶體振盪器執行或者它們同時執
行。32.753KHz RC振盪器或32.768KHz 晶體振盪器執行。
PM1:連接到數位部分的電壓調整器打開。16MHz RC振盪器
和32MHz 晶體振盪器都不執行。
32.753KHz RC振盪器或32.768KHz 晶體振盪器執行。在產生
重置、外部中斷或當睡眠定時器到期時系統將返回到PM0。
PM2:連接到數位內核的電壓調整器關閉。16MHz RC振盪器
和32MHz 晶體振盪器都不執行。
32.753KHz RC振盪器或32.768KHz 晶體振盪器執行。在產生
重置、外部中斷或當睡眠定時器到期時系統將返回到PM0。
PM3:連接到數位內核的電壓調整器關閉。沒有振盪器執行
。在產生重置或外部中斷時系統將返回到PM0。
181


PM0是全功能模式,在該模式下,CPU、晶片內外設和RF收
發器都處於活動狀態,數位電壓調整器打開。該模式也被稱
為活動模式。注意:當處PM0(SLEEP.MODE=0x00)模式時,
透過致能PCON.IDLE位,CPU核將停止執行,所有晶片內外
設功能正常並且CPU核將被任何一個致能的中斷喚醒。
PM1模式下,高頻振盪器去電(32MHz XOSC 和 16MHz
RCOSC)。電壓調整器和被致能的32KHz振盪器打開。當進入
PM1後,一個關電序列執行。當設備從PM1回到PM0模式時
,高頻振盪器被啟動。設備將執行在16MHz RC振盪器直到
32MHz 晶體振盪器透過軟體方法被選擇作為系統時鐘源。當
直到一個喚醒事件出現時的預期時間相對較短時(少於3ms)可
以使用PM1,因為PM1使用了一個快速的上電/去電序列。
182



PM2模式下,上電重置、外部中斷、32.768KHz振盪器和睡眠定時
器處於活動狀態。I/O接腳保持在進入PM2模式前的I/O模式和輸出
值設置。其他所有的內部電路去電,電壓調整器也被關閉。
當進入PM2後,一個去電序列執行。當使用睡眠定時器(也可結合
外部中斷)作為喚醒事件時,通常選擇進入PM2。與PM1相比,當
睡眠時間超過3ms時,通常應選擇PM2。與使用PM1相比,使用較
少的睡眠時間將不會減少系統功耗。
PM3模式下,由電壓調整器供電的所有內部電路關閉(基本上是所
有的數位模組,中斷檢測和上電重置除外)。重置(上電重置或外部
重置)和外部I/O埠中斷是該模式下僅有的功能。I/O接腳保持在進入
PM3模式前的I/O模式和輸出值設置。一個重置條件或一個致能的
外部I/O中斷事件將喚醒設備並將它帶入PM0(外部中斷將從進入
PM3的位置開始而重置將返回程式執行的開始)。在此模式下,
RAM和暫存器的內容被部分保存。PM3使用了與PM2相同的去電/
上電序列。當等待一個外部事件時,PM3可被用來實現極低功耗。
183


所需要的功耗模式可以透過SLEEP控制暫存器的MODE
位來選擇。在設置了MODE位後,設置特殊功能暫存器
PCON.IDLE位元,即可進入所選擇的睡眠模式。一個來
自埠接腳的致能中斷或睡眠定時器或上電重置將喚醒設
備並透過重置MODE位元將設備帶回PM0。
在\CC2430EB開發板展示程式\Library\HAL\include\hal.h
文件中包含了和功耗模式相關的一個巨集,使用者使用
這個巨集可以簡化對功耗模式的控制,提高程式碼的可
讀性,本實驗中就使用了這個巨集。
184






實驗設備:
本實驗可在以下目標板上進行:
CC2430EB(裝配有CC2430/CC2431EM)
實驗步驟:
開啟專案:
專案位於”光碟: \ZB2430基礎實驗
\PowerModes\IAR_files\PowerModes.eww“(以下實驗步
驟請參閱實驗ㄧ)
185

本實驗可以使用一個萬用電表進行測試,將CC2430EB
上的J3-33和J3-34(如下圖所示)之間的跳線帽拔掉,用萬
用表短路它們。按CC2430/CC2431EM上的KEY鍵來切
換不同的功耗模式,可觀察不同模式下萬用表上的讀數
。(LCD上同時顯示3種電源模式狀態)
186
實驗十二 睡眠定時器





實驗內容:
功能描述:在PM2下睡眠定時器4秒定時到期後喚醒設備
回到PM0活動狀態。
睡眠定時器被用來設置系統進入和退出低功耗睡眠模式之
間的時間。
當進入低功耗睡眠模式,睡眠定時器也可被用來在定時器
2(MAC 定時器)中維持定時。
睡眠定時器具有以下主要特性:
1. 執行在32KHz時鐘的24位元上計數定時器
2. 24位元比較
3. 執行在PM2模式下的低功耗模式
4. 中斷和DMA觸發
187





睡眠定時器是一個24位元定時器,它執行在32KHz時鐘
(RC或XOSC)。該定時器在系統重置後立即啟動並且連
續不間斷地執行。定時器的當前值可以從特殊功能暫存
器ST2:ST1:ST0中被讀出。
定時器比較出現在當定時器值等於24位比較值的時候。
比較值可透過寫暫存器ST2:ST1:ST0來設置。
當出現定時器比較時,中斷標誌STIF被置位。
睡眠定時器中斷的中斷致能位是IEN0.STIE,中斷標誌
位是IRCON.STIF。
睡眠定時器執行在除PM3模式外的所有功耗模式下。在
PM1和PM2,睡眠定時器比較事件被用來喚醒設備返回
到PM0的活動模式。
188







系統重置後,預設的比較值為0xFFFFFF。注意:在設置
了新的比較值之後,在進入PM2之前,應該等待ST0發
生改變。
睡眠定時器比較也可被用作一個DMA觸發。
注意:在PM2下,如果供電電壓下降到2V以下,定時器
間隔可能會受影響。
本實驗將向使用者展示在PM2下睡眠定時器4秒定時到期
後喚醒設備回到PM0活動狀態。
實驗設備:
本實驗可在以下目標板上進行:
CC2430EB(裝配有CC2430/CC2431EM)
189





實驗步驟:
開啟專案:
專案位於”光碟: \ZB2430基礎實驗
\SleepTimer\IAR_files\SleepTimer.eww“(以下實驗步驟
請參閱實驗ㄧ)
LCD上顯示PowerMode狀態
PM2下睡眠定時器4秒定時後喚醒設備回到PM0活動狀態
。
190
實驗十三 看門狗定時器的看門狗模式



實驗內容:
功能描述:
看門狗定時器工作在看門狗模式。程式一開始閃爍10
次D2,然後配置看門狗超時時間為0.25s並啟動看門
狗,然後進行循環喂狗。使用者可透過按下KEY鍵
來中斷喂狗,然後看門狗將重置系統。
191

在CPU可能會遭受到一個軟體擾亂的情況下,看門狗定時器
(WDT)可被用作一種恢複方法。當在一個選定的時間間隔內
軟體未能清除WDT時,WDT將重置系統。WDT可被用在會
受到電氣噪聲,電力故障,靜電放電等,或需要高可靠性的
應用中。如果應用中不需要看門狗,那麼看門狗定時器可被
配置為間隔定時器用以在選定的間隔時間產生中斷。看門狗
定時器具有以下特性:
1. 4個可選擇的定時間隔
2. 看門狗模式
3. 定時器模式
4. 在定時器模式下產生中斷請求
5. 不依賴系統時鐘
192


WDT可被配置作為看門狗定時器或一般定時器。
WDT模組的執行由WDCTL暫存器控制。
看門狗定時器由1個15位元計數器構成,時鐘源為
32.768KHz時鐘。注意:15位計數器的內容不是使用
者可訪問的。當進入PM2或PM3模式後,15位元計數
器的內容被重置為0x0000。
193




值得注意的問題
在PM2或PM3下,看門狗是被禁止的並處於重置狀態。在喚
醒後,看門狗將被致能並且按照它在進入PM2/3之前的模式
被配置,但是計數將從零開始。在PM1下,看門狗仍然執行
,但它不會重置晶片。這種情況將直到晶片被喚醒。注意:
如果晶片被喚醒的時刻恰好在看門狗超時(重置條件)時刻,
晶片將被立即重置。
如果在看門狗超時之前被喚醒,等看門狗超時晶片將被重置
除非在從PM1喚醒後立即軟體清除看門狗。
因為睡眠定時器和看門狗執行在同一個時鐘上,看門狗超時
間隔可以與睡眠定時器間隔對齊,因此軟體方法可被用來重
置看門狗。對於外部中斷喚醒,應該使用最大的看門狗超時
週期和睡眠定時器設置,以便在等待外部中斷事件的同時,
軟體方法可被用來週期性地清除看門狗。
194







在\CC2430EB開發板展示程式\Library\HAL\include\hal.h
文件中包含了和看門狗相關的一些巨集,使用者使用這
些巨集可以簡化對看門狗的操作,提高程式碼的可讀性
,本實驗中就使用了其中的一些巨集。
實驗設備:
本實驗可在以下目標板上進行:
CC2430/CC2431EM
SoC-BB電池底板(裝配有CC2430/CC2431EM-S)
CC2430DB
CC2430EB(裝配有CC2430/CC2431EM)
195





實驗步驟:
開啟專案:
專案位於”光碟: \ZB2430基礎實驗
\WatchdogTimer_TimerMode\IAR_files\WatchdogTimer_T
imerMode.eww"(以下實驗步驟請參閱實驗ㄧ)
實驗結果:
本實驗將向使用者展示看門狗定時器工作在看門狗模式
。程式一開始閃爍10次D2,然後配置看門狗超時時間為
0.25s並啟動看門狗,然後進行循環喂狗。使用者可透過
按下KEY鍵來中斷喂狗,然後看門狗將重置系統。
196
實驗十四 看門狗定時器的定時器模式








實驗內容:
同實驗十三。
實驗設備:
本實驗可在以下目標板上進行:
CC2430/CC2431EM
SoC-BB電池底板(裝配有CC2430/CC2431EM-S)
CC2430DB
CC2430EB(裝配有CC2430/CC2431EM)
197





實驗步驟:
開啟專案:
專案位於”光碟: \ZB2430基礎實驗
\WatchdogTimer_WatchdogMode\IAR_files\WatchdogTim
er_WatchdogMode.eww“(以下實驗步驟請參閱實驗ㄧ)
實驗結果:
本實驗將向使用者展示看門狗定時器工作在普通定時器
模式。定時間隔為0.25s,當達到定時時間時產生看門狗
中斷,在中斷服務程式中切換P1.0的輸出狀態以切換D2
的亮滅狀態。
198
實驗十五 ADC實驗



實驗內容:
CC2430內部包含一個ADC,它支持最高達12位元的模擬到數位的轉
換。該ADC包含一個模擬多路復用器支援最高達8路的獨立可配置通
道、參考電壓產生器,轉換結果通過DMA被寫入儲存器。支持多種
執行模式。
ADC的主要特性如下:
1. 可選擇的抽取率,這也將決定分辨率(7到12位元);
2. 8個獨立的輸入通道,單端或差分;
3. 參考電壓可選擇為內部、外部單端、外部差分或AVDD_SOC;
4. 可產生中斷請求;
5. 轉換結束時DMA觸發;
6. 溫度感測器輸入;
7. 電池測量。
199





ADC輸入
P0埠接腳上的信號可被用來作為ADC輸入。在以下的描述中
,我們將這些接腳記為AIN0-AIN7接腳。輸入接腳AIN0AIN7被連接到ADC。ADC可被設置為自動執行一個轉換序列
,當該序列被完成時可隨意地從任一通道執行一個附加的轉
換。
輸入可被配置為單端或差分輸入。當使用差分輸入時,差分
輸入由輸入組AIN0-1、AIN2-3、AIN3-4、AIN4-5和AIN6-7組
成。注意:負電壓不能被連接到這些接腳,大於VDD的電壓
也不能被連接到這些接腳。
除了輸入接腳AIN0-AIN7外,一個晶片上溫度感測器的輸出
可被選擇作為ADC的一個輸入用來進行溫度測量。還可以選
擇相當於AVDD_SOC/3的電壓作為ADC的一個輸入。該輸入
可被用來進行電池監測。
所有這些輸入接腳的配置可通過暫存器ADCCON2.SCH進行
配置。
200





ADC轉換結果
數位轉換結果由二進制補碼形式表示。對於單端輸入,結果
將總為正的。當輸入振幅等於VREF(選定的參考電壓)時轉換
結果將達到最大值。對於差分輸入,兩接腳之間的差值被轉
換,該值可以是負的。對於12位元分辨率,當類比輸入等於
VREF時數位轉換結果為2047;當類比輸入等於-VREF時數位
轉換結果為-2048。
當ADCCON1.EOC被設置為1時,數位轉換結果可從ADCH和
ADCL中得到。
當ADCCON2.SCH位被讀取時,讀取值將指示通道號,在
ADCH和ADCL中的轉換結果是該通道之前的那個通道的轉換
結果。
例如,當從ADCCON2.SCH中讀取的值為0x1,這意味著轉換
結果是來自於AIN0。
201





ADC參考電壓
類比/數位轉換的正參考電壓是可選擇的。內部產生的
1.25V電壓、AVDD_SOC接腳上的電壓、連接到AIN7接
腳上的外部電壓或連接到AIN6-7輸入的差分電壓都可以
作為正參考電壓。
為了進行校準,可以選擇參考電壓作為ADC的輸入進行
參考電壓的轉換。類似的,可以選擇GND作為ADC的輸
入。
ADC中斷
當一個附加轉換完成時ADC將產生一個中斷。當來自轉
換序列的一個轉換完成時將不會產生中斷。
202



ADC轉換時間
當在32MHz系統時鐘下,該時鐘被8分頻後產生一個
4MHz的時鐘供ADC執行。三角積分調變器和抽取濾波
器都是用4MHz時鐘進行計算。使用其他的頻率將會影
響結果和轉換時間。以下描述我們假設使用32MHz系統
時鐘。
執行一次轉換所需要的時間取決於所選擇的抽取率。例
如,當抽取率被設置為128時,抽取濾波器使用128個
4MHz時鐘週期來計算結果。當一個轉換開始後,輸入
多路復用器需要16個4MHz時鐘週期來穩定。16個4MHz
時鐘週期的穩定時間適用於所有抽取率。因此一般而言
,轉換時間由下式給定:Tconv = (抽取率 + 16) ×0.25us
。
203




在\CC2430EB開發板展示程式\Library\HAL\include\hal.h
文件中包含了和ADC相關的一些巨集,使用者使用這些
巨集可以簡化對ADC的操作,提高程式碼的可讀性,本
實驗中就使用了其中的一些巨集。
實驗設備:
本實驗可在以下目標板上進行:
CC2430EB(裝配有CC2430/CC2431EM)
204





實驗步驟:
開啟專案:
專案位於”光碟: \ZB2430基礎實驗\ADC\IAR_files\ADC.eww“(以下實驗步
驟請參閱實驗ㄧ)
實驗結果:
本實驗將使用CC2430內部的ADC,當調節CC2430EB開發板上的10K電壓
器R7時(如下圖所示),輸出電壓(連接到CC2430的AIN7)被取樣轉換然後在
LCD上顯示電壓值。
205

5)ZigBee 無線定位
開發系統Z-Stack實驗
osal

作業系統抽象層
組件資作業系統抽象層(OSAL)被用來使Z-Stack協
定堆疊的軟體元件與特殊的處理環境無關。它提供
以下的功能來獨立於具體的處理環境:






1. 任務的註冊,初始化,啟動
2. 任務間的訊息交換
3. 任務的同步
4. 中斷處理
5. 計時器
6. 記憶體分配料夾中包含以下資料夾
硬體抽象層(HAL)API

硬體抽象層(HAL)是提供硬體服務的層,它遮罩
了很多硬體相關細節,這樣使使用者可以更專注於
他們的應用(而不必詳細瞭解硬體底層細節)。
HAL的主要內容是驅動服務,用來控制LED、LCD
、ADC、KEY、計時器和UART。這些服務被抽象
為簡單的API函數,使用者可以使用這些API函數來
獲得服務而不必擔心在GPIO級建立這些服務。





“mac”資料夾包含802.15.4 MAC的API。
“zmac”資料夾包含Z-Stack協定堆疊的MAC移植層。
“mt”資料夾包含監控測試程式,利用這些程式可以進
行除錯跟蹤、AF層監控測試、MAC層監控測試、NWK
層監控測試、Simple API監控測試和ZDO監控測試等。
開發者無需修改該資料夾的內容。
“services”資料夾包含ZigBee和802.15.4設備位址工具函
數以及資料緩衝區服務。
“stack”資料夾包含Z-Stack協定堆疊v1.4.2,它是
ZigBee-2006相容協定堆疊。







1.SampleApp實驗
2.SimpleApp1實驗
3.SimpleApp2實驗
4.GenericApp實驗
5.SerialApp實驗
6.TransmitApp實驗
ZigBee-2006 網狀網路即時定位實驗
1.SampleApp實驗
實驗內容:
一個ZigBee網路中的某個設備發送“閃爍LED”命令給該網路
中群組1的所有成員。群組1的所有成員在收到該命令後,將
閃爍LED。使用者可以設置一個設備是否屬於群組1。
對於CC2430/CC2431EM-S:
SW6 發送閃爍命令
SW5 轉換該設備是否屬於群組1
對於CC2430EB:
SW4 發送閃爍命令
SW1 轉換該設備是否屬於群組1
實驗設備
實驗設備
數量
備
注
CC2430EB
1個
裝配有CC2430/CC2431EM,作為協
調器設備。
CC2430/CC2431EM-S
2個
作為路由器設備。
CC243x-Debugger
1個
下載和除錯程式。
General Packet Sniffer
1個
可選擇是否使用(非必要)。
裝有2顆3號電池的外接電池盒
2個
給CC2430/CC2431EM-S供電。
實驗步驟
開啟SampleApp專案
SampleApp專案位於“...\Projects\zstack\Samples\SampleApp\CC2430DB”資料
夾中,如下圖所示:
滑鼠左鍵雙擊“SampleApp.eww”檔案,SampleApp專案在 IAR Embedded
WorkBench 整合開發環境中被開啟,如下圖所示:
選擇相應的專案設定
Workspace下的下拉式清單中的選項是專案設定,如下圖所示:
上圖中顯示的專案設定選項的含義為:

CoordinatorDB
將CC2430DB設定為協調器設備
也適用於CC2430/CC2431EM-S

CoordinatorEB
將CC2430EB設定為協調器設備

RouterDB
將CC2430DB設定為路由器設備
也適用於CC2430/CC2431EM-S

RouterEB
將CC2430EB設定為路由器設備

EndDeviceDB
將CC2430DB設定為終端設備
也適用於CC2430/CC2431EM-S

EndDeviceEB
將CC2430EB設定為終端設備

DemoDB
將CC2430DB設定為Demo
也適用於CC2430/CC2431EM-S

DemoEB
將CC2430EB設定為Demo
編譯並下載應用專案
在選擇了相應的專案設定選項後,就可以編譯並下載應用專案到
CC2430/CC2431EM-S和CC2430EB。
在本實驗中,我們使用1個CC2430EB和2個CC2430/CC2431EM-S。CC2430EB作
為協調器設備,CC2430/CC2431EM-S作為路由器設備。
下面我們以CC2430EB為例,介紹編譯和下載過程。
注意:為了結合ZLocation的使用,請將“光碟:\Texas Instruments”資料夾覆蓋
已安裝的“Texas Instruments”資料夾。
專案目錄選擇CoordinatorEB專案設定,然後點擊Project選項中的Rebuild All項目
來編譯應用專案,如下圖所示:
編譯過程大約需要30~40秒。
編譯完成後,將CC243x-Debugger的
10Pin扁平線材除錯接頭插入CC2430EB
上的CC2430/CC2431EM的除錯介面P1,
然後將CC243x-Debugger用USB線材與
使用者PC的USB介面連接,使用者PC
的USB介面透過CC243x-Debugger給
CC2430/CC2431EM供電,
CC2430/CC2431EM給CC2430EB供電,
此時CC2430/CC2431EM上的電源指示
燈D1(紅色)和CC2430EB上的電源指
示燈D2(紅色),D3(紅色)將被點
亮(如下圖)。
點擊Project選項中的Debug項(或按Ctrl+D快捷鍵)來下載應用專案,
如下圖所示:
下載過程大約需要20~30秒。在下載過程結束後,IAR Embedded WorkBench整合
開發環境進入到除錯介面,透過點擊Debug選項中的Stop Debugging項目(或按
Ctrl+Shift+D快捷鍵)來退出除錯介面,如下圖所示:
斷開CC2430EB與CC243x-Debugger的連接。
用CC243x-Debugger連接CC2430/CC2431EM-S
與使用者PC(如下圖),再選擇RouterDB專案設
定(如右圖),重複以上步驟來下載相應的應用專
案到兩個CC2430/CC2431EM-S。
實驗操作
按順序執行以下操作:
1. 給協調器設備上電,它將進行通道掃描來啟動一個ZigBee網路,通道掃描過程
中D3閃爍,ZigBee網路成功啟動後,D3恆亮。本實驗中我們採用CC2430EB作
為協調器設備,CC2430EB裝配有128×64點矩陣圖形液晶顯示器,顯示器上的
相應顯示如下圖所示:
2. 分別給2個路由器設備上電(下圖左,P3的2-3腳短路開啟電源),它們將掃描並加
入由協調器設備啟動的那個網路,成功加入後,它們的D3將為恆亮,如下圖右
所示。
3. 接下來,可以選擇網路中的任一設備給群組1發送“閃爍LED”命令,對於
CC2430/CC2431EM-S而言,使用SW6 (如下圖左);對於CC2430EB,使用
SW4 (如下圖右)。
屬於群組1的設備在收到“閃爍LED”命令後,會使自己的D2閃爍幾次。
在本實驗中,協調器設備和路由器設備啟動後都預設加入群組1。對於
CC2430/CC2431EM-S而言,使用SW5(如下圖左,使用杜邦線短路P2.0 和GND)
來轉換該設備是否屬於群組1;對於CC2430EB而言,使用SW1(如下圖右)來轉
換該設備是否屬於群組1。
注意:發送“閃爍LED”命令的設備,無論它自己是否屬於群組1,它的D2不會閃爍。
DemoDB和DemoEB專案設定
在本實驗中,這兩個專案設定可將CC2430/CC2431EM-S和CC2430EB分別設定
為一個通用展示設備。用杜邦線連接CC2430/CC2431EM-S的P2-8和P2-13、
CC2430EB的J3-21和J3-23,在上電後將作為協調器設備,否則將作為路由器設
備。因此,如果選用這兩個專案設定,使用者可以靈活選擇設備類型,而不需
要多次下載不同的專案設定。
2.SimpleApp1實驗
為了簡化基於Z-Stack協定堆疊的開發,TI提出了Simple API的概念,
本實驗是Simple API的一個應用範例。有關Simple API的詳細內容請
參考我們提供的“Z-Stack協定堆疊開發指南”。
實驗內容
本實驗示範兩種設備類型—“照明開關”和“照明控制器”。
照明開關設備作為ZigBee網路中的終端設備,
照明控制器設備作為協調器或路由器設備。
為了在一個照明開關設備和一個照明控制器設備之間建立一個綁定,照明控
制器設備首先應被置於允許綁定模式。之後,照明開關設備發送一個綁定請求
(在超時週期內),這樣就建立了照明開關設備和照明控制器設備之間的綁定。
通過重複以上操作,一個照明開關設備可以綁定到多個照明控制器設備。為了給
一個照明開關設備重新分配綁定,可以使用帶有刪除參數的綁定請求。這將解除
該照明開關設備的所有綁定。
通過按下照明控制器設備的SW6,使該照明控制器設備進入允許綁定模式。
在照明開關設備上按下SW3來發送綁定請求。這將導致該照明開關設備綁定到處
於允許綁定模式下的那個照明控制器設備。這之後,該照明開關設備上的SW6可
以被按下來發送TOGGLE命令,這將使相應的照明控制器設備上的D2的亮滅狀
態被切換。在該照明開關設備上可以用SW4來解除該照明開關設備上的所有綁定。
注意:在本實驗中,初次給一個設備上電,它將進入“保持”
狀態,此時D3閃爍。對於照明控制器設備,處於這種狀態
後,按下SW6會使該設備作為協調器設備啟動,成功啟動一
個網路後,D3恆亮,而按下SW3會使該設備作為路由器設備
啟動,若該設備成功加入一個網路後,D3恆亮;對於照明開
關設備,處於這種狀態後,無論按下SW6還是SW3,該設備
都將作為終端設備,若該設備成功加入一個網路後,D3快速
閃爍,亮度較低。在指定設備類型後,以後不用再次指定。
實驗設備
實驗設備
數量
備
注
CC2430/CC2431EM-S
3個
分別作為照明控制器設備(協調器
設備),照明控制器設備(路由器
設備)和照明開關設備(終端設備
)。
CC243x-Debugger
1個
下載和除錯程式。
General Packet Sniffer
1個
可選擇是否使用(非必要)。
裝配有2顆3號電池的外接電池盒
3個
給CC2430/CC2431EM-S供電。
實驗步驟
開啟SimpleApp專案
SimpleApp專案位於“...\Projects\zstack\Samples\SimpleApp\CC2430DB”資料夾
中,用滑鼠左鍵雙擊“SimpleApp.eww”檔案,SimpleApp專案在IAR Embedded
WorkBench整合開發環境中被開啟。
選擇相應的專案設定
Workspace下的下拉式清單中的選
項是專案設定專案,如右圖所示:
上圖中顯示的專案設定選項的含義為:

SimpleControllerDB
將CC2430DB設定為照明控制器設備(協調器或路由器設備)
也適用於CC2430/CC2431EM-S

SimpleControllerEB
將CC2430EB設定為照明控制器設備(協調器或路由器設備)

SimpleSwitchDB
將CC2430DB設定為照明開關設備(終端設備)
也適用於CC2430/CC2431EM-S

SimpleSwitchEB
將CC2430EB設定為照明開關設備(終端設備)

SimpleCollectorDB
本實驗中用不到,在SimpleApp2實驗中使用。

SimpleCollectorEB
本實驗中用不到,在SimpleApp2實驗中使用。

SimpleSensorDB
本實驗中用不到,在SimpleApp2實驗中使用。

SimpleSensorEB
本實驗中用不到,在SimpleApp2實驗中使用。
編譯並下載應用專案
在選擇了相應的專案設定選項後,就可以編譯並下載應用專案到
CC2430/CC2431EM-S中。
在本實驗中,我們使用3個CC2430/CC2431EM-S,
它們分別作為照明控制器設備(協調器設備),
照明控制器設備(路由器設備)
和照明開關設備(終端設備)。
下面介紹編譯和下載過程。
選擇SimpleControllerDB專案設定(如下圖),透過點擊Project下拉功能表中的
Rebuild All項目來編譯應用專案,編譯過程大約需要30~40秒。編譯完成後,
用CC243x-Debugger連接CC2430/CC2431EM-S與使用者PC。
透過點擊Project下拉功能表中的Debug項(或按Ctrl+D快捷鍵)
來下載應用專案,下載過程大約需要20~30秒。在下載過程結束後,
IAR Embedded WorkBench整合開發環境進入到除錯介面,透過點擊
Debug下拉功能表中的Stop Debugging項(或按Ctrl+Shift+D快捷鍵)
來退出除錯介面。
斷開CC2430/CC2431EM與CC243x-Debugger的連接。
分別再選擇SimpleControllerDB和SimpleSwitchDB專案設定,
重複以上步驟來下載相應的應用專案到另外兩個CC2430/CC2431EM-S。
實驗操作
按順序執行以下操作:
1. 給一個照明控制器設備上電,它將進入“保持”狀態並伴隨著D3的閃爍,
按下SW6(如下圖)使該設備作為協調器設備啟動,它將進行通道掃描來
啟動一個ZigBee網路,通道掃描過程中D3閃爍,在該協調器成功啟動一
個ZigBee網路後,它的D3為恆亮。
2. 給另一個照明控制器設備上電,它將進入“保持”狀態,按下SW3
(即P0.0與GND短路,如下圖)使該設備作為路由器設備啟動,它將掃
描並加入由協調器設備啟動的那個網路,成功加入後,它的D3將被點亮。
3. 給照明開關設備上電,它將進入“保持”狀態並伴隨著D3的閃爍,按下SW6
或
SW3都將使該設備作為終端設備啟動,它將掃描並加入由協調器設備啟動的那
個網路,成功加入後,它的D3將快速閃爍,亮度較低。
4. 按下照明控制器設備(協調器設備)的SW6,使它進入允許綁定模式。然後
儘快(在允許綁定模式超時時間內,一般為5秒內)按下照明開關設備(終端
設備)的SW3來發送綁定請求。這將導致該照明開關設備綁定到處於允許綁定
模式下的那個照明控制器設備。當該照明開關設備成功建立綁定後,它的D2
將快速閃爍,亮度較低。
5. 反復按下照明開關設備(終端設備)的SW6,觀察照明控制器設備(協調器
設備)和照明控制器設備(路由器設備)上的D2,正常情況下,照明控制器
設備(協調器設備)上的D2的狀態會受照明開關設備的控制而被反復切換,
而照明控制器設備(路由器設備)的D2的狀態不改變,因為它還未與照明開
關設備(終端設備)建立綁定。
6. 按下照明控制器設備(路由器設備)的SW6,使它進入允許綁定模式。然後
儘快(在允許綁定模式超時時間內,一般為5秒內)按下照明開關設備(終端
設備)的SW3來發送綁定請求。這將導致該照明開關設備綁定到處於允許綁定
模式下的那個照明控制器設備。當該照明開關設備成功建立綁定後,它的D2
將快速閃爍,亮度較低。
7. 反復按下照明開關設備(終端設備)上的SW6,觀察照明控制器設備(協調
器設備)和照明控制器設備(路由器設備)上的D2,正常情況,它們的D2的狀
態會受照明開關設備的控制而被反復切換,因為它們都與照明控制器設備(終
端設備)建立了綁定。
8. 按下照明開關設備(終端設備)的SW4
(即P0.6與GND短路,如右圖)來解除該設備
上的所有綁定。然後再反復按下它的SW6,
觀察照明控制器設備(協調器設備)和照明
控制器設備(路由器設備)上的D2,正常情
況下,它們的D2的狀態不改變,因為照明開
關設備(終端設備)與它們都解除了綁定。
3.SimpleApp2實驗
為了簡化基於Z-Stack協定堆疊的開發,TI提出了Simple API的概念,
本實驗是Simple API的一個應用範例。有關Simple API的詳細內容請
參考我們提供的“Z-Stack協定堆疊開發指南”。
實驗內容
本實驗示範兩種設備類型—“感測器設備”和“採集設備”。
感測器設備作為ZigBee網路中的終端設備,
採集設備作為協調器或路由器設備。
感測器設備記錄溫度和電池能量讀數並將它們發送給採集設備。
採集設備在啟動或加入一個網路後,必須被置於允許綁定模式來回應從感測
器設備發來的綁定請求。在本實驗中,透過按下SW6來實現。這將致能設備進入
允許綁定模式並點亮D2。按下設備上的SW3,設備將退出允許綁定模式並熄滅
D2。
感測器設備在成功加入網路後,若採集設備處於允許綁定模式,感測器設備
將自動發現並綁定到採集設備,然後它將開始報告溫度和電池能量讀數給採集設
備。當感測器設備正在報告感測器讀數給採集設備時,它上面的D2被點亮。
在採集設備上,接收到的感測器讀數將被寫到串列埠。使用者可通過用USB
線材將採集設備連接到一台PC(USB轉串列埠)並使用Z-TOOL來觀察。
注意:在本實驗中,初次給一個設備上電,它將進入“保持”
狀態,此時D3閃爍。對於採集設備,處於這種狀態後,按
下SW6會使該設備作為協調器設備啟動,成功啟動一個網路
後,D3恆亮,而按下SW3會使該設備作為路由器設備啟
動,若該設備成功加入一個網路後,D3恆亮;對於感測器
設備,處於這種狀態後,無論按下SW6還是SW3,該設備都
將作為終端設備,若該設備成功加入一個網路後,D3快速
閃爍,亮度較低。在指定設備類型後,以後不用再次指定。
實驗設備
實驗設備
數量
備 注
CC2430EB
1個
作為感測器設備(終端設備)。
CC2430EB
1個
作為採集設備(協調器設備)。
CC243x-Debugger
1個
下載和除錯程式。
General Packet Sniffer
1個
可選擇是否使用(非必要) 。
實驗步驟
開啟SimpleApp專案
SimpleApp專案位於“...\Projects\zstack\Samples\SimpleApp\CC2430DB”資料夾
中,用滑鼠左鍵雙擊“SimpleApp.eww”檔案,SimpleApp專案在IAR Embedded
WorkBench整合開發環境中被開啟。
選擇相應的專案設定
Workspace下的下拉式清單中的選
項是專案設定專案,如右圖所示:
上圖中顯示的專案設定選項的含義為:
SimpleControllerDB
本實驗中用不到,在SimpleApp1實驗中使用。
SimpleControllerEB
本實驗中用不到,在SimpleApp1實驗中使用。
SimpleSwitchDB
本實驗中用不到,在SimpleApp1實驗中使用。
SimpleSwitchEB
本實驗中用不到,在SimpleApp1實驗中使用。
SimpleCollectorDB
將CC2430DB設定為採集設備(協調器或路由器設備)
也適用於CC2430/CC2431EM-S
SimpleCollectorEB
將CC2430EB設定為採集設備(協調器或路由器設備)
SimpleSensorDB
將CC2430DB設定為感測器設備(終端設備)
也適用於CC2430/CC2431EM-S
SimpleSensorEB
將CC2430EB設定為感測器設備(終端設備)








編譯並下載應用專案
在選擇了相應的專案設定選項後,就可以編譯並下載應用專案到
2個CC2430EB中。
在本實驗中,我們使用
1個CC2430EB作為感測器設備(終端設備)和
1個CC2430EB作為採集設備(協調器設備)。
下面介紹編譯和下載過程
選擇SimpleCollectorEB專案設定,透過點擊Project下拉功能表中的
Rebuild All項目來編譯應用專案,編譯過程大約需要30~40秒。編譯完成
後,將CC243x-Debugger的10Pin扁平線材除錯接頭插入CC2430EB上的
CC2430/CC2431EM的除錯介面P1(如下圖),然後將CC243x-Debugger用
USB線材與使用者PC的USB介面連接,使用者PC的USB介面透過CC243xDebugger給CC2430/CC2431EM供電,CC2430/CC2431EM給CC2430EB供
電,此時CC2430/CC2431EM上的電源指示燈D1(紅色)和CC2430EB上
的電源指示燈D2(紅色),D3(紅色)將被點亮。
透過點擊Project下拉功能表中的Debug項(或按Ctrl+D快捷鍵)來下載
應用專案,下載過程大約需要20~30秒。在下載過程結束後,IAR
Embedded WorkBench整合開發環境進入到除錯介面,透過點擊Debug
下拉功能表中的Stop Debugging項(或按Ctrl+Shift+D快捷鍵)來退出
除錯介面。
斷開CC2430EB與CC243x-Debugger的連接。
用CC243x-Debugger連接另一個CC2430EB與使用者PC,再選擇
SimpleSensorEB專案設定,重複以上步驟來下載應用專案到
CC2430EB。
實驗操作
按順序執行以下操作:
1. 將採集設備用USB線材連接到PC,切換其上的“小紅帽”自鎖開關,使其正
常
上電,按下SW6使該設備作為協調器設備啟動,在該協調器成功啟動一個
ZigBee網路後,它的D3被點亮。然後再次按下它的SW6,使其進入允許綁定模
式,此時它的D2被點亮。
2. 啟動PC上的Z-Tool軟體,該軟體位於“...\Texas Instruments\ZStack-1.4.21.1.0\Tools\Z-Tool”資料夾中(預設C槽),滑鼠左鍵雙擊“Z-Tool.exe”檔案啟動
該
軟體。Z-Tool將跳出設備已連接的訊息視窗,如下圖所示:
點擊確定按鈕,出現下面的介面
3. 給感測器設備上電,按下SW6使該設備作為終端設備啟動,它將掃描並加入
由協調器設備啟動的那個網路,成功加入後,它的D3將快速閃爍,亮度較
低。感測器設備在成功加入網路後,將自動發現並綁定到採集設備(如果採
集設備處於允許綁定模式)(此過程可能需要10~20秒來完成),然後它將
開始報告溫度和電池能量讀數給採集設備(此時感測器設備D2將快速閃爍,
亮度較低)。
4. 注意PC上Z-Tool介面中的Log視窗中的內容變化,如下圖所示:
4.GenericApp實驗
實驗內容
本實驗示範了綁定設備間以5秒為週期進行“Hello ZigBee”資料封包的互發,
如下圖所示:
實驗設備
實驗設備
數量
備 注
CC2430/CC2431EM-S
1個
作為協調器設備。
CC2430EB
2個
作為終端設備。
CC243x-Debugger
1個
下載和除錯程式。
General Packet Sniffer
1個
可選擇是否使用(非必要) 。
裝配有2顆3號電池的外接電池盒
1個
給CC2430/CC2431EM供電。
實驗步驟
開啟GenericApp專案
GenericApp專案位於
“...\Projects\zstack\Samples\GenericApp\CC2430DB”資料夾中,用滑
鼠左鍵雙擊“GenericApp.eww”檔案,GenericApp專案在IAR
Embedded WorkBench整合開發環境中被開啟。
選擇相應的專案設定
Workspace下的下拉式清單中的選項是專案設定專案,本實驗我們使
用其中的這兩個專案設定:
CoordinatorDB
將CC2430DB設定為協調器設備
也適用於CC2430/CC2431EM-S
EndDeviceEB
將CC2430EB設定為終端設備


編譯並下載應用專案
在選擇了相應的專案設定選項後,就可以編譯並下載應用專案到
CC2430/CC2431EM-S和CC2430EB。
在本實驗中,我們使用1個CC2430/CC2431EM-S作為協調器設備,
2個CC2430EB作為終端設備。
下面介紹編譯和下載過程。
選擇CoordinatorDB專案設定,透過點擊Project下拉功能表中的
Rebuild All項目來編譯應用專案,編譯過程大約需要30~40秒。
編譯完成後,用CC243x-Debugger連接CC2430/CC2431EM-S與使
用者PC。透過點擊Project下拉功能表中的Debug項(或按Ctrl+D
快捷鍵)來下載應用專案,下載過程大約需要20~30秒。在下載
過程結束後,IAR Embedded WorkBench整合開發環境進入到除錯
介面,透過點擊Debug下拉功能表中的Stop Debugging項(或按
Ctrl+Shift+D快捷鍵)來退出除錯介面。
斷開CC2430/CC2431EM-S與CC243x-Debugger的連接。
將CC243x-Debugger的10Pin扁平線材除錯接頭插入CC2430EB上的
CC2430/CC2431EM的除錯介面P1,然後將CC243x-Debugger用USB
線材與使用者PC的USB介面連接,使用者PC的USB介面透過
CC243x-Debugger給CC2430/CC2431EM供電,CC2430/CC2431EM
給CC2430EB供電,此時CC2430/CC2431EM上的電源指示燈D1
(紅色)和CC2430EB上的電源指示燈D2(紅色),D3(紅色)
將被點亮。
選擇EndDeviceEB專案設定,重複以上步驟來下載應用專案到兩個
CC2430EB。
實驗操作
按順序執行以下操作:
1. 給協調器設備上電,它將啟動一個ZigBee網路,之後它的D3將被點亮。
2. 給兩個終端設備上電,它們將掃描並加入由協調器設備啟動的那個網路,
成功加入後,它們的D3將被點亮。
3. 分別按下兩個終端設備上的SW2(如右圖)
(時間差控制在5S之內)進行終端設備綁
定。成功綁定後,兩個終端設備上的D2
將被點亮。
4. 在兩個終端設備建立綁定之後,它們以5秒為週期進行“Hello ZigBee”資
料
封包的互發,由於我們使用CC2430EB板作為終端設備,它上面配有
128×64點矩陣圖形液晶顯示器,互發資料封包的情況將在液晶螢幕上顯
示,如下圖所示:
5.SerialApp實驗
本實驗的應用專案可以作為使用者開發的範本,使用者只需要對本專案
進行複製和簡單的修改,就可以作為使用者應用的開發專案。
實驗內容
本實驗是一個取代兩個非ZigBee設備之間線材連接的基本應用。該應
用具有實際應用意義,例如RS232 to ZigBee轉換器,給具有RS232的設
備增加ZigBee通信的功能。
一台PC透過串列埠連接一個使用本應用範例的ZigBee設備來發送資料。另一台
PC透過串列埠連接另一個使用本應用範例的ZigBee設備來接收資料。串列資料
傳輸率被設計為雙向全雙工,無硬體流量控制。
實驗設備
實驗設備
數量
備
注
CC2430EB
2個
一個作為協調器設備,另一個作為終
端設備。
CC243x-Debugger
1個
下載和除錯程式。
General Packet Sniffer
1個
可選擇是否使用(非必要) 。
實驗步驟
開啟SerialApp專案
SerialApp專案位於“...\Projects\zstack\Utilities\SerialApp\CC2430DB”
資料夾中,用滑鼠左鍵雙擊“SerialApp.eww”檔案,SerialApp專案在
IAR Embedded WorkBench整合開發環境中被開啟。
選擇相應的專案設定
Workspace下的下拉式清單中的選項是專案設定專案,本實驗我們使
用其中的這兩個專案設定:

CoordinatorEB
將CC2430EB設定為協調器設備

EndDeviceEB
將CC2430EB設定為終端設備
編譯並下載應用專案到EB板
在選擇了相應的專案設定選項後,就可以編譯並下載應用專案到
CC2430EB板上。
在本實驗中,我們使用2個CC2430EB,一個作為協調器設備,另一
個作為終端設備。
下面介紹編譯和下載過程。
透過點擊Project下拉功能表中的Debug項目(或按Ctrl+D快捷)
來下載應用專案,下載過程大約需要20~30秒。在下載過程結束
後,IAR Embedded WorkBench整合開發環境進入到除錯介面,透
過點擊Debug下拉功能表中的Stop Debugging項目(或按
Ctrl+Shift+D快捷鍵)來退出除錯介面。
斷開CC2430EB與CC243x-Debugger的連接。
選擇EndDeviceEB專案設定,重複以上步驟來下載應用專案到另
一個CC2430EB。
實驗操作
1. 用兩條USB線材分別連接兩個CC2430EB到兩台使1.用者PC,切換“小紅
帽”自鎖開關確保使用者PC給CC2430EB正常供電。在兩台使用者PC上分別
執行“串列埠除錯助手 v2.2”軟體(或使用超級終端機),選擇相應的串列埠,
設定串列傳輸速率:38400,同位檢查:無,資料位元:8,停止位元:1,
流量控制:無。
2. 分別按下兩個CC2430EB上的SW2(時間
差控制在5s之內)進行綁定(如右圖)。成功
綁定後,終端設備上的D2將被點亮。
現在可以在兩台PC上使用“串列埠除錯助手 v2.2”軟體互相發送資料了,
如下圖所示:
6.TransmitApp實驗
實驗內容
使用本實驗應用專案的發送設備A盡可能快地發送一個資
料封包給另一個使用本實驗應用專案的接收設備B。發送
設備A在收到接收設備B對已收到資料的一個確認後將繼續
發送下一個資料封包給接收設備B,如此迴圈。
接收設備B將計算以下數值:
1. 最後一秒的位元組數量
2. 執行了多少秒
3. 每秒平均位元組數量
4. 接收到的資料封包的數量
本實驗被用來測試一個ZigBee網路中兩個設備
間的最大吞吐量。這兩個設備一個是協調器設
備,另一個設備是路由器設備。
本實驗使用的功能鍵如下:
SW1:開始發送/停止發送切換開關
SW2:啟動終端設備綁定
SW3:清零顯示值
SW4:啟動匹配描述符請求
注意:本實驗也可被用在一個終端設備和一個路由器設
備(或協調器設備)之間,但我們不建議這樣使用。如
果你確定要這樣使用,你必須在原始程式中致能延時特
性(TRANSMITAPP_DELAY_SEND)和
TRANSMITAPP_SEND_DELAY)。如果你不致能延
時,終端設備將不能接收資訊,因為它將停止查詢。此
外,延時必須大於RESPONSE_POLL_RATE(預設為
100ms)。
實驗設備
實驗設備
數量
備
注
CC2430EB
2個
一個作為協調器設備,另一個作為終端
設備。
CC243x-Debugger
1個
下載和除錯程式。
General Packet Sniffer
1個
可選擇是否使用(非必要) 。
實驗步驟
開啟TransmitApp專案
TransmitApp專案位於“...\Projects\zstack\Utilities\Transmit\CC2430DB”
資料夾中,用滑鼠左鍵雙擊“TransmitApp.eww”檔案,TransmitApp專案
在IAR Embedded WorkBench整合開發環境中被打開。
選擇相應的專案設定
Workspace下的下拉式清單中的選項是專案設定專案,本實驗我們使用
其中的這兩個專案設定:

CoordinatorEB
將CC2430EB設定為協調器設備

RouterEB
將CC2430EB設定為路由器設備
編譯並下載應用專案
在選擇了相應的專案設定選項後,就可以編譯並下載應用專案到
CC2430EB。
在本實驗中,我們使用2個CC2430EB,一個作為協調器設備,另一個
作為路由設備。
下面介紹編譯和下載過程。
選擇CoordinatorEB專案設定,透過點擊Project下拉功能表中的
Rebuild All項目來編譯應用專案,編譯過程大約需要30~40秒。
編譯完成後,將CC243x-Debugger的10Pin扁平線材除錯接頭插入
CC2430EB上的CC2430/CC2431EM的除錯介面P1,然後將CC243xDebugger用USB線材與使用者PC的USB介面連接,使用者PC的USB
介面通過CC243x-Debugger給CC2430/CC2431EM供電,
CC2430/CC2431EM給CC2430EB供電,此時CC2430/CC2431EM上
的電源指示燈D1(紅色)和CC2430EB上的電源指示燈D2(紅
色),D3(紅色)將被點亮。
透過點擊Project下拉功能表中的Debug項目(或按Ctrl+D快捷鍵)
來下載應用專案,下載過程大約需要20~30秒。在下載過程結束
後,IAR Embedded WorkBench整合開發環境進入到除錯介面,
透過點擊Debug下拉功能表中的Stop Debugging項目(或按
Ctrl+Shift+D快捷鍵)來退出除錯介面。
斷開CC2430EB與CC243x-Debugger的連接。
選擇RouterEB專案設定,重複以上步驟來下載應用專案到另一個
CC2430EB。
實驗操作
按順序執行以下操作:
1. 給協調器設備上電,它將啟動一個ZigBee網路,之後它的D3將被點亮。
給路由器設備上電,它將掃描並加入由協調器設備啟動的那個網路,成
功加入後,它的D3將被點亮。
2. 分別按下兩個EB板上的SW2
(時間差控制在5S之內)進行
綁定。成功綁定後,兩個
CC2430EB上的D2將被點亮。
3. 按下路由器設備的SW1,路由器設備開始發送資料包給協調器設
備。再次按下SW1將停止發送(SW1是開始發送/停止發送的切換
開關)。注意觀察協調器設備和路由器設備上的液晶顯示。
4. 按下協調器設備的SW1,協調器設備開始發送資料給路由器設
備。再次按下SW1將停止發送(SW1是開始發送/停止發送的切換
開關)。注意觀察協調器設備和路由器設備上的液晶顯示。
液晶顯示說明如下:
可以透過按下SW3歸零這些顯示數值。
7.ZigBee-2006 網狀網路即時定位實驗
過去傳統GPS定位服務,僅侷限於室外定位,一旦
進入室內即收不到GPS衛星訊號,因而造成安全管
理上的盲點。定位追蹤應用系統,運用ZigBee設備,
可提供動態人員、資產、或高單價物品位置追蹤功
能。在地圖上標示出人員或資產的位置,根據不同
條件提供即時搜尋追蹤功能,可達防竊、有效定位
搜尋;更可針對老人、小孩、寵物提供警示訊息與
緊急呼叫功能。因應未來家庭需求,輔助企業與消
費者輕鬆管理網路設備,減輕家庭負擔。
定位上的應用
可設定背景圖
CC2431定位演算

CC2431定位引擎內的定位演算法是基於接收信號強
度指示(RSSI)值的。RSSI值將會隨著距離的增大
而減弱。
CC2431定位演算


參考節點是一個位於已知位置的靜態節點。該
節點知道它自己的位置並且可以在被請求時告
訴其它的節點它在哪裡。參考節點並不需要執
行定位檢測的硬體,它根本不執行任何計算。
“盲節點”是一個用CC2431建立的節點。該節
點將從所有參考節點對請求的回應中搜集信號
,讀出相對RSSI值,並將其送入硬體引擎,然
後讀出計算得到的自身位置並且發送位置資訊
給一個控制應用。
實驗內容
採用8個參考節點作為固定節點,2個盲節點作為可移動
的節點。在使用者PC上執行Z-LocationPC定位軟體,透
過Location Dongle對參考節點的位置(X和Y)進行無線
設定,對盲節點的參數進行無線設定。然後使用者PC透
過Location Dongle來抓取2個盲節點的座標資料,並進行
即時位置顯示。
實驗設備
實驗設備
數量
備
注
CC2430EB
1個
作為Location Dongle
(協調器設備)。
CC2430/CC2431EM-S
(焊接有CC2430)
8個
作為參考節點(路由器設備)。
CC2430/CC2431EM-S
(焊接有CC2431)
2個
作為盲節點(路由器設備)。
CC243x-Debugger
1個
下載和除錯程式。
General Packet Sniffer
1個
可選擇是否使用(非必要) 。
裝配有2顆3號電池的外接電池
盒
10個
給CC2430/CC2431EM-S供電。
實驗步驟
開啟Location專案
Location專案位於“...\Projects\zstack\Samples\Location\CC2430DB”資料夾中,
用滑鼠左鍵雙擊“SampleApp.eww”檔案,Location專案在IAR Embedded
WorkBench整合開發環境中被開啟。
選擇相應的專案設定
Workspace下的下拉式清單中的選項是專案設定專案,本實驗我們使用其中
的這兩個專案設定:

CoordinatorEB
將CC2430EB設定為協調器設備

RouterDB
將CC2430DB設定為路由器設備
也適用於CC2430/CC2431EM-S
指定設備為Location Dongle、參考節點或盲節點
如下圖所示:
上圖中,在LocationProfile.h檔案內容的開始部分,使用者可以透過
包含不同的預定義來決定設備是作為Location Dongle、參考節點還
是盲節點:
• 包含#define LOCATION_DONGLE 設備將作為Location Dongle
• 包含#define LOCATION_REFNODE 設備將作為參考節點
• 包含#define LOCATION_BLINDNODE 設備將作為盲節點
編譯並下載應用專案
在選擇了相應的專案設定選項並包含了相應的設備類型
(Location Dongle、參考節點或盲節點)預定義後,就可以編譯
並下載應用專案到CC2430/CC2431EM-S和CC2430EB。
在本實驗中,我們使用1個CC2430EB作為Location Dongle
(協調器),8個CC2430/CC2431EM-S(焊接有CC2430)
作為參考節點(路由器),2個CC2430/CC2431EM-S
(焊接有CC2431)作為盲節點(路由器)。
下面介紹編譯和下載過程
選擇CoordinatorEB專案設定,在LocationProfile.h檔案內容的開始部
分只包含#define LOCATION_DONGLE預定義,如下圖所示,透過
點擊Project下拉功能表中的Rebuild All項目來編譯應用專案,編譯
過程大約需要30~40秒。編譯完成後,將CC243x-Debugger的10Pin
扁平線材除錯接頭插入CC2430EB上的CC2430/CC2431EM的除錯介
面P1,然後將CC243x-Debugger用USB線材與使用者PC的USB介面
連接,使用者PC的USB介面透過CC243x-Debugger給
CC2430/CC2431EM供電,CC2430/CC2431EM給CC2430EB供電,
此時CC2430/CC2431EM上的電源指示燈D1(紅色)和CC2430EB
上的電源指示燈D2(紅色),D3(紅色)將被點亮。
透過點擊Project下拉功能表中的Debug項目(或按Ctrl+D快捷鍵)
來下載應用專案,下載過程大約需要20~30秒。在下載過程結束
後,IAR Embedded WorkBench整合開發環境進入到除錯介面,透
過點擊Debug下拉功能表中的Stop Debugging項
(或按Ctrl+Shift+D快捷鍵)來退出除錯介面。
斷開CC2430EB與CC243x-Debugger的連接。
選擇RouterDB專案設定,在LocationProfile.h檔案內容
的開始部分只包含#define LOCATION_REFNODE預
定義,如下圖所示,用CC243x-Debugger連接
CC2430/CC2431EM-S(焊接有CC2430)與使用者
PC,然後編譯並下載應用專案。再對另外7個
CC2430/CC2431EM(焊接有CC2430)進行應用專案
的下載。
斷開CC2430/CC2431EM與CC243x-Debugger的連接。
選擇RouterDB專案設定,在LocationProfile.h檔案內容
的
開始部分只包含#define LOCATION_BLINDNODE預定
義,如下圖所示,用CC243x-Debugger連接
CC2430/CC2431EM-S(焊接有CC2431)與使用者PC,
然後編譯並下載應用專案。再對另外1個
CC2430/CC2431EM(焊接有CC2431)進行應用專案
的
下載。
實驗操作
將Location Dongle用USB線材直接連接到使用者PC的USB介面,切
換Location Dongle上的“小紅帽”自鎖開關,確保使用者PC的USB
介
面給Location Dongle正常供電。在使用者PC上執行Z-LocationPC定
位軟體。給所有的參考節點和盲節點上電。然後使用者PC透過
Location Dongle對參考節點的座標以及盲節點的參數進行設定。
然後將參考節點佈置在使用者指定的實際物理位置上。現在就可以
透過Location Dongle擷取盲節點的座標並在使用者PC上進行即時顯
示了。
END
Thanks You!
300
投影片引用

ZigBee Alliance PPT:



TI CC2430/31 datasheet


ZigBee Alliance
http://www.zigbee.org/en/index.asp
www.ti.com
華亨科技ZigBee產品使用手冊

www.hhnet.com.tw