zigbee - chirkal.com.t · 全系統的監測與控制上。 ......

11

Upload: others

Post on 12-Feb-2020

4 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: ZigBee - chirkal.com.t · 全系統的監測與控制上。 ... 分析步驟、TI依照ZigBee規範所實作出的Z-Stack的API函數介 紹、以及Z-Stack的應用實例解說。
Page 2: ZigBee - chirkal.com.t · 全系統的監測與控制上。 ... 分析步驟、TI依照ZigBee規範所實作出的Z-Stack的API函數介 紹、以及Z-Stack的應用實例解說。

ZigBee 劉建源 薛文彬 編著

感測與定位實戰

Page 3: ZigBee - chirkal.com.t · 全系統的監測與控制上。 ... 分析步驟、TI依照ZigBee規範所實作出的Z-Stack的API函數介 紹、以及Z-Stack的應用實例解說。

2

在數位生活的發展趨勢下,大量以無線網路連結的感測器應用已悄悄地整合到我們的日常生活中,這場寧靜的『無線感測網路』(Wireless Sensor Network,WSN)革命已由ZigBee網路揭開序幕。

ZigBee網路是以IEEE 802.15.4為基礎所制定而成的無線『個人區域網路』(Personal Area Network,PAN)標準。運用ZigBee標準可以建構出低成本和低功耗的無線感測網路,典型的ZigBee網路可在設定為低工作週期的模式下,運作長達數年之久。因為ZigBee網路具有可長期工作的特性,使得它極適合應用在智慧型居家環境、醫療照護機構、工業控制,以及保全系統的監測與控制上。

本書的主旨是希望藉由一套符合ZigBee標準的無線感測網路實驗系統來說明如何進行感測信號擷取和控制資料輸出的實驗,以及如何運用ZigBee節點電路板來進行人員或重要設備的定位追蹤(Location Positioning and Tracking) 的實驗。

本書內容包括:硬體電路板簡介、CC2430/CC2431微控制器介紹、整合開發環境(Integrated Development Environment,IDE)的軟體安裝步驟、韌體應用程式的編譯與執行步驟、實驗範例程式的解說、ZigBee無線封包的擷取與分析步驟、TI依照ZigBee規範所實作出的Z-Stack的API函數介紹、以及Z-Stack的應用實例解說。

嵌入式系統工程師或無線感測網路監控系統工程師可以參考本書所介紹的實驗範例程式來進一步開發出更切合實際應用的韌體程式。針對無所不在的(Ubiquitious)無線感測網路應用時代的來臨,期望本書能協助初學者、進階學習者和工程師們提升ZigBee網路系統規劃與整合能力,以及應用軟體設計之競爭力。

Page 4: ZigBee - chirkal.com.t · 全系統的監測與控制上。 ... 分析步驟、TI依照ZigBee規範所實作出的Z-Stack的API函數介 紹、以及Z-Stack的應用實例解說。

3

目錄

序 2

圖目錄 10

表目錄 12

第一章 硬體說明 15

1.1 協調器 16

1.2 定置節點 16

1.3 待定位節點 17

1.4 TI CC2430/31 模擬器 18

1.5 無線網路分析儀 19

1.6 感測信號採集板 19

第二章 ZigBee 晶片說明 23

2.1 CC2430簡介 24

2.2 CC2430的特性 24

2.3 CC2430的接腳功能說明 27

2.3.1 輸出入埠的特殊功能接腳對應表 30

2.3.2 I/O暫存器 32

2.4 類比數位轉換器 39

2.4.1 ADC的暫存器 40

2.5 USART 44

2.5.1 鮑率 (Baud rate) 44

2.5.2 USART的暫存器 45

2.6 計時器 52

2.6.1 Timer1 53

2.6.2 Timer3 59

2.6.3 Timer4 63

2.7 CC2431晶片 67

第三章 軟體安裝 69

第四章 範例應用程式燒錄程序 79

Page 5: ZigBee - chirkal.com.t · 全系統的監測與控制上。 ... 分析步驟、TI依照ZigBee規範所實作出的Z-Stack的API函數介 紹、以及Z-Stack的應用實例解說。

4

ZigBee 感測 與定位實戰ZigBee感測ZigBee感測ZigBee感測ZigBee ZigBeeZigBee與ZigBee與

定位實戰定位實戰定位實戰定位實戰

4

第五章 實驗範例說明 89

5.1 CC2430的LED亮滅控制實驗 90

5.2 感測信號採集板的LED亮滅控制實驗 93

5.3 CC2430串列埠通訊實驗 98

5.4 UART控制LED 104

5.5 點對點無線通訊實驗 109

5.6 LCD實驗1-顯示圖片及文字 114

5.7 LCD實驗2-按鍵控制點移動 125

5.8 LCD實驗3-按鍵選擇顯示圖片 130

5.9 LCD實驗4-按鍵控制圖片及移動 134

5.10 溫度感測器實驗 141

5.11 光線感測器實驗 147

5.12 紫外線感測器實驗 152

5.13 溼度感測器實驗 158

5.14 電壓感測器實驗 164

5.15 讀取節點短位址實驗 169

5.16 讀取節點長位址實驗 175

5.17 讀取節點溫度實驗 180

5.18 讀取節點光線實驗 185

5.19 無線感測網路系統 190

5.20 無線網路定位&感測系統 198

5.21 Timer 1 實驗 207

5.22 Timer 3 實驗 211

5.23 外部中斷實驗 215

5.24 電子時鐘實驗 218

5.25 晶片內建溫度感測器實驗 225

第六章 無線網路分析儀使用方法 231

Page 6: ZigBee - chirkal.com.t · 全系統的監測與控制上。 ... 分析步驟、TI依照ZigBee規範所實作出的Z-Stack的API函數介 紹、以及Z-Stack的應用實例解說。

5

目錄

第七章 ZStack-1.4.2-1.1.0 API 函數 237

7.1 硬體抽象層的應用程式介面函數 238

7.1.1 ADC 服務函數 239

7.1.2 KEY 服務函數 241

7.1.3 LED 服務函數 247

7.1.4 SLEEP 服務函數 251

7.1.5 TIMER 服務函數 252

7.1.6 UART 服務函數 260

7.2 OSAL API 函數 271

7.2.1 訊息管理函數 271

7.2.2 任務同步函數 275

7.2.3 計時器管理函數 276

7.2.4 中斷管理函數 279

7.2.5 任務管理函數 281

7.2.6 記憶體管理函數 284

7.2.7 電源管理函數 286

7.2.8 非揮發性記憶體函數 288

7.3 ZDO API 函數 293

7.3.1 ZDOInitDevice() 293

7.3.2 ZDP_NwkAddrReq() 294

7.3.3 ZDP_NWKAddrRsp() 296

7.3.4 ZDP_IEEEAddrReq() 298

7.3.5 ZDP_IEEEAddrRsp() 299

7.3.6 ZDP_NodeDescReq() 302

7.3.7 ZDP_NodeDescMsg() 302

7.3.8 ZDP_PowerDescReq() 304

7.3.9 ZDP_PowerDescMsg() 305

7.3.10 ZDP_SimpleDescReq() 306

7.3.11 ZDP_SimpleDescRsp() 307

Page 7: ZigBee - chirkal.com.t · 全系統的監測與控制上。 ... 分析步驟、TI依照ZigBee規範所實作出的Z-Stack的API函數介 紹、以及Z-Stack的應用實例解說。

6

ZigBee 感測 與定位實戰ZigBee感測ZigBee感測ZigBee感測ZigBee ZigBeeZigBee與ZigBee與

定位實戰定位實戰定位實戰定位實戰

6

7.3.12 ZDP_ComplexDescReq() 309

7.3.13 ZDP_MatchDescRsp() 309

7.3.14 ZDP_MatchDescRsp() 311

7.3.15 ZDP_UserDescSet() 313

7.3.16 ZDP_UserDescConf() 314

7.3.17 ZDP_UserDescReq() 315

7.3.18 ZDP_UserDescRsp() 316

7.3.19 ZDP_EndDeviceAnnce() 317

7.3.20 ZDP_ServerDiscReq() 318

7.3.21 ZDP_ServerDiscRsp() 319

7.4 ZDO Binding API 321

7.4.1 ZDP_EndDeviceBindReq() 321

7.4.2 ZDP_EndDeviceBindRsp() 323

7.4.3 ZDP_BindReq() 324

7.4.4 ZDP_BindRsp() 326

7.4.5 ZDP_UnbindReq() 327

7.4.6 ZDP_UnbindRsp() 328

7.5 ZDO Management API 330

7.5.1 ZDP_MgmtNwkDiscReq() 330

7.5.2 ZDP_MgmtNwkDiscRsp() 332

7.5.3 ZDP_MgmtLqiReq() 333

7.5.4 ZDP_MgmtLqiRsp() 334

7.5.5 ZDP_MgmtRtgReq() 336

7.5.6 ZDP_MgmtRtgRsp() 337

7.5.7 ZDP_MgmtBindReq() 339

7.5.8 ZDP_MgmtBindRsp() 340

7.5.9 ZDP_MgmtLeaveReq() 342

7.5.10 ZDP_MgmtLeaveRsp() 343

7.5.11 ZDP_MgmtDirectJoinReq() 344

Page 8: ZigBee - chirkal.com.t · 全系統的監測與控制上。 ... 分析步驟、TI依照ZigBee規範所實作出的Z-Stack的API函數介 紹、以及Z-Stack的應用實例解說。

7

目錄

7.5.14 ZDP_MgmtPermitJoinRsp() 348

7.6 應用架構層 350

7.6.1 應用端點的管理 350

7.6.2 簡單描述資料結構-SimpleDescriptionFormat_t 350

7.6.3 端點描述資料結構-endPointDesc_t 352

7.6.4 應用支援子層 362

7.6.5 連結記錄表的非揮發性儲存 374

7.6.6 群組記錄表管理 375

7.6.7 群組記錄表的非揮發性儲存 382

7.6.8 快速位址查詢 383

7.7 網路層(NWK) 386

7.7.1 NLME_NetworkDiscoveryRequest() 386

7.7.2 NLME_NwkDiscReq2() 387

7.7.3 NLME_NwkDiscTerm() 389

7.7.4 NLME_NetworkFormationRequest() 389

7.7.5 NLME_StartRouterRequest() 391

7.7.6 NLME_JoinRequest() 392

7.7.7 NLME_ReJoinRequest() 393

7.7.8 NLME_OrphanJoinRequest() 393

7.7.9 NLME_PermitJoiningRequest() 394

7.7.10 NLME_DirectJoinRequest() 395

7.7.11 NLME_LeaveReq() 396

7.7.12 NLME_RemoveChild() 397

7.7.13 NwkPollReq() 398

7.7.14 NLME_SetPollRate() 398

7.7.15 NLME_SetQueuedPollRate() 399

7.7.16 NLME_SetResponseRate() 400

7.5.12 ZDP_MgmtDirectJoinRsp() 345

7.5.13 ZDP_MgmtPermitJoinReq() 347

Page 9: ZigBee - chirkal.com.t · 全系統的監測與控制上。 ... 分析步驟、TI依照ZigBee規範所實作出的Z-Stack的API函數介 紹、以及Z-Stack的應用實例解說。

8

ZigBee 感測 與定位實戰ZigBee感測ZigBee感測ZigBee感測ZigBee ZigBeeZigBee與ZigBee與

定位實戰定位實戰定位實戰定位實戰

8

7.7.19 網路資訊庫的非揮發性儲存 407

第八章 Z-Stack協定層v1.4.2應用實例 409

8.1 OSAL任務 411

8.1.1 任務初始階段 411

8.1.2 作業系統組織 411

8.1.3 系統服務 412

8.1.4 應用程式設計方式 412

8.1.5 必須實作的函數 414

8.1.6 網路的形成 416

8.1.7 自動啟動 416

8.1.8 軟體啟動 417

8.1.9 恢復網路 417

8.1.10 加入網路通知 417

8.1.11 裝置的連結和尋找 418

8.1.12 連結請求(手動連結) 418

8.1.13 配對請求(自動尋找) 420

8.2. API函數 422

8.2.1 zb_SystemReset 422

8.2.2 zb_StartRequest 423

8.2.3 zb_PermitJoiningRequest 423

8.2.4 zb_BindDevice() 424

8.2.5 zb_AllowBind() 426

8.2.6 zb_SendDataRequest() 427

8.2.7 zb_ReadConfiguration() 429

8.2.8 zb_WriteConfiguration() 430

8.2.9 zb_GetDeviceInfo() 430

8.2.10 zb_FindDeviceRequest() 432

7.7.17 位址管理 400

7.7.18 網路變數及公用函數 401

Page 10: ZigBee - chirkal.com.t · 全系統的監測與控制上。 ... 分析步驟、TI依照ZigBee規範所實作出的Z-Stack的API函數介 紹、以及Z-Stack的應用實例解說。

9

目錄

8.2.13 zb_AllowBindConfirm() 434

8.2.14 zb_SendDataConfirm 435

8.2.15 zb_ReceiveDataIndication() 436

8.2.16 zb_FindDeviceConfirm() 436

8.2.17 zb_HandleKeys() 437

8.2.18 zb_HandleOsalEvent() 438

8.3. 裝置參數 439

8.3.1 網路特有參數 439

8.3.2 裝置特有參數 443

8.3.3 端到端確認參數 448

8.3.4 其他參數 449

附錄 英文縮寫術語 450

參考文獻 457

產品介紹 459

8.2.11 zb_StartConfirm() 433

8.2.12 zb_BindConfirm() 434

Page 11: ZigBee - chirkal.com.t · 全系統的監測與控制上。 ... 分析步驟、TI依照ZigBee規範所實作出的Z-Stack的API函數介 紹、以及Z-Stack的應用實例解說。

中華民國98年05月初版

ZigBee感測與定位實戰/劉建源,薛文彬編著.-- 初版. -- 臺南市 :

僑高科技, 民98.04面 :    公分

參考書目:面

ISBN 978-986-83582-2-5(平裝)

1. 通訊協定 2. 無線網路 3. 感測器

312.162           98005677

翻印必究

版權所有

ZugBee感測與定位實戰

作  者:劉建源、薛文彬出版所:僑高科技有限公司印刷廠:洋明包裝印刷股份有限公司總經銷:僑高科技有限公司地 址:台南市北區文成二街273號電 話:06-2520915傳 真:06-2522768Web:http://www.chirkal.com.twE-mail:[email protected]劃撥帳號:31157064戶 名:薛文彬定 價:每本新台幣550元整

國家圖書館出版品預行編目資料