內容簡介
本書從Zigbee基礎知識出發,詳細講解了基於CC2530晶片的Zigbee軟硬體開發技術。全書分為理論篇和實踐篇兩部分,理論篇分別介紹了Zigbee技術的基本概念、Zigbee技術的原理、Zigbee節點的硬體設計、CC2530基礎開發、CC2530無線射頻及IEEE802.15.4標準、Zstack協定棧分析、Zstack系統移植和套用開發,實踐篇以實現智慧型農業大棚的環境監測為基礎,結合理論篇進行實踐操作。
本書採用理論和實踐相結合的方法,對CC2530片上系統和Zstack協定棧進行了深入的講解、剖析和套用實現,使讀者能迅速理解並掌握Zigbee相關的開發知識,並全面提高動手能力。本書適用面廣,可作為本科物聯網工程、通信工程、電子信息工程、自動化、計算機科學與技術、計算機網路等專業的教材使用。
目錄
理 論 篇
第1章 Zigbee概述 2
1.1 Zigbee技術概述 2
1.1.1 Zigbee的由來和發展 3
1.1.2 無線感測器網路與Zigbee的關係 3
1.1.3 Zigbee技術的特點 4
1.1.4 Zigbee晶片 5
1.1.5 常見的Zigbee協定棧 7
1.2 Zigbee軟體開發平台 8
1.2.1 IAR軟體開發平台 8
1.2.2 Zigbee Sniffer 9
1.2.3 輔助軟體 10
1.3 Zigbee硬體開發平台 10
練習 11
第2章 Zigbee技術原理 12
2.1 概述 12
2.2 Zigbee網路結構 12
2.2.1 網路體系 13
2.2.2 拓撲結構 13
2.2.3 協定架構 14
2.3 IEEE802.15.4通信層 16
2.3.1 物理層 16
2.3.2 MAC層 20
2.3.3 MAC幀的結構 21
2.4 Zigbee網路層 25
2.4.1 功能概述 25
2.4.2 服務規範 25
2.4.3 幀結構 26
2.5 Zigbee套用層 28
2.5.1 幾個概念 28
2.5.2 套用支持子層 30
2.5.3 套用框架 30
2.5.4 設備對象 31
練習 36
第3章 Zigbee硬體設計 37
3.1 概述 37
3.2 設計規則及注意事項 38
3.2.1 原理圖設計 38
3.2.2 PCB設計 40
3.3 硬體總體設計 41
3.3.1 CC2530核心板設計 41
3.3.2 協調器節點設計 42
3.3.3 路由器節點設計 50
3.4 低功耗設計 51
練習 52
第4章 CC2530基礎開發 53
4.1 概述 54
4.2 CC2530的結構框架 55
4.2.1 CC2530 CPU 57
4.2.2 CC2530存儲器以及映射 57
4.3 CC2530編程基礎 61
4.3.1 暫存器和彙編指令 61
4.3.2 編程基礎 61
4.3.3 中斷的使用 66
4.4 I/O 71
4.4.1 通用I/O 71
4.4.2 通用I/O中斷 77
4.4.3 外設I/O 85
4.5 振盪器和時鐘 89
4.5.1 振盪器 89
4.5.2 系統時鐘及暫存器 89
4.6 電源管理和復位 91
4.6.1 供電模式 91
4.6.2 電源管理暫存器 92
4.6.3 復位 94
4.7 串口 94
4.7.1 串口模式 94
4.7.2 串口中斷 103
4.8 DMA 108
4.8.1 DMA概述 108
4.8.2 DMA操作與配置 109
4.8.3 DMA中斷 117
4.9 ADC 124
4.9.1 ADC特徵 124
4.9.2 ADC輸入 125
4.9.3 ADC轉換 127
4.10 定時器 131
4.10.1 定時器概述 131
4.10.2 定時器1 132
4.10.3 睡眠定時器和定時器2 138
4.10.4 定時器3和定時器4 144
練習 150
第5章 無線射頻與MAC層 151
5.1 概述 152
5.2 RF核心 152
5.2.1 中斷 153
5.2.2 中斷暫存器 155
5.3 FIFO訪問 158
5.3.1 RXFIFO 159
5.3.2 TXFIFO 160
5.4 傳送模式 161
5.4.1 TX控制 161
5.4.2 幀處理 161
5.5 接收模式 163
5.5.1 RX控制 163
5.5.2 幀處理 165
5.6 CSMA/CA選通處理器 165
5.7 IEEE802.15.4 170
5.7.1 IEEE802.15.4調製規範 170
5.7.2 IEEE802.15.4數據格式 171
5.7.3 IEE802.15.4射頻程式設計 171
5.7.4 傳送過程 177
5.7.5 接收過程 183
5.7.6 實驗結果及現象 187
練習 188
第6章 Zstack協定棧 189
6.1 概述 189
6.2 Zstack軟體架構 190
6.2.1 Zigbee協定棧的結構 190
6.2.2 Zstack協定棧 190
6.2.3 Zigbee協定棧與Zstack的對比 191
6.3 HAL層分析 192
6.3.1 Common資料夾 192
6.3.2 Include資料夾 197
6.3.3 Target資料夾 198
6.4 NWK層分析 201
6.4.1 節點地址類型的選擇 201
6.4.2 協定棧模板 202
6.4.3 網路參數配置 203
6.5 Tools配置和分析 207
6.6 Profile層分析 209
6.6.1 端點的管理 209
6.6.2 數據的傳送和接收 211
6.7 ZDO層分析 217
6.7.1 ZDO網路設備啟動 218
6.7.2 終端設備綁定、輔助綁定和解除綁定 219
6.8 API函式 223
6.8.1 信息管理API 224
6.8.2 任務同步API 225
6.8.3 定時器管理API 225
6.8.4 中斷管理API 227
6.8.5 任務管理API 227
6.8.6 記憶體管理API 228
6.8.7 電源管理API 229
6.8.8 非易失性存儲器的API 229
6.9 APP層分析 231
6.9.1 OSAL_SampleApp.c檔案 232
6.9.2 SampleApp.c檔案 234
6.9.3 SampleApp.h檔案 242
6.10 OSAL運行機制 242
6.10.1 概述 243
6.10.2 OSAL術語 243
6.10.3 Zstack數據傳輸 244
6.10.4 OSAL剖析 250
6.10.5 按鍵事件剖析 254
練習 266
第7章 Zstack系統移植 267
7.1 工程模板的創建 268
7.1.1 工程的建立 268
7.1.2 修改App目錄 270
7.1.3 編譯選項的選擇 272
7.2 任務的建立 275
7.2.1 函式的聲明 276
7.2.2 任務的添加 276
7.2.3 任務初始化及事件處理 279
7.3 移植 292
7.3.1 LED移植 292
7.3.2 按鍵移植 298
7.3.3 LCD移植 310
練習 318
第8章 Zstack套用開發 319
8.1 套用設計 319
8.1.1 設計概述 320
8.1.2 Zigbee程式開發 320
8.2 體系結構設計 320
8.2.1 套用環境分析 321
8.2.2 整體設計 321
8.2.3 套用協定制定 324
8.3 路由器程式編寫 324
8.3.1 回響按鍵命令 327
8.3.2 回響協調器命令 330
8.4 協調器程式編寫 332
8.4.1 直接接收數據 333
8.4.2 串口觸發 334
8.5 實驗現象 337
練習 338
實 踐 篇
實踐1 Zigbee概述 340
實踐1.G.1 340
實踐1.G.2 344
實踐1.G.3 349
實踐1.G.4 353
實踐2 Zigbee技術原理 356
實踐2.G.1 356
實踐2.G.2 361
實踐3 Zigbee硬體設計 367
實踐3.G.1 367
實踐3.G.2 371
實踐4 CC2530基礎開發 379
實踐4.G.1 379
實踐4.G.2 390
實踐5 無線射頻與MAC層 394
實踐5.G.1 394
實踐6 Zstack協定棧 404
實踐6.G.1 404
實踐6.G.2 409
實踐6.G.3 412
實踐7 Zstack系統移植 415
實踐7.G.1 415
實踐7.G.2 420
實踐8 Zstack套用開發 425
實踐8.G.1 425