內容簡介
本書以ZigBee無線感測網路技術為主要對象,以基於CC2430/31晶片(TI/Chipcon公司)的HFZcc2430/31ZDK開發套件為硬體平台,深入剖析了TI的ZStack協定棧架構和編程接口,並詳細講述了如何在此基礎上開發自己的ZigBee項目。本書分為5個篇章:理論篇、準備篇、入門篇、進階篇和提高篇。理論篇簡要介紹了無線感測器網路和ZigBee協定規範的基礎知識,為讀者進行ZigBee項目開發提供理論指導,以便開發時參考;準備篇講述了ZigBee硬體開發平台、軟體開發環境的組成和安裝,以及通過17個CC2430/31片內外設的操作例程來闡述CC2430/31片上系統的開發和使用;入門篇以一個通俗易懂的例子講述了輪轉查詢式作業系統的基本原理,並介紹了這種作業系統在TIZStack中的套用以及TIZStack的用戶編程接口;進階篇通過幾個例子演示如何建立簡單的ZigBee無線感測網路系統,並詳細闡述了ZigBee協定規範的幾個重要概念在TIZStack的代碼實現;提高篇通過智慧型家居系統、無線數據透明傳輸系統、工業無線感測網路系統、無線定位系統等典型的ZigBee技術解決方案,詳細介紹了如何開發實際的ZigBee項目。
本書可作為工程技術人員進行單片機、無線感測器網路套用、ZigBee技術等項目開發的學習、參考用書,也可作為高等院校高年級本科生或研究生計算機、電子、自動化、無線通信等課程的教材。
前言
無線感測器網路是集感測器、無線通信和網路三大技術於一體的信息獲取與處理技術。傳統的無線網路關心的是如何在保證通信質量的情況下實現最大的數據吞吐率,而無線感測器網路主要用於實現不同環境下各種緩慢變化參數的檢測,通信速率並不是其主要考慮的因素,它最關心的問題是在體積小、布局方便以及能量有限的情況下儘可能地延續其生命周期。
ZigBee是一種網路容量大、節點體積小、架構簡單、低速率、低功耗的無線通信技術。由於其節點體積小,且能自動組網,所以布局十分方便;又因其強調由大量的節點進行群體協作,網路具有很強的自愈能力,任何一個節點的失效都不會對整體任務的完成造成致命性影響,所以特別適合用來組建無線感測器網路。
用ZigBee技術來實現無線感測器網路,主要需要考慮通信節點的硬體設計,以及實現相應功能所必需的軟體開發。TI(德州儀器公司)的CC2430/31晶片具備了實現ZigBee技術的各種底層硬體需求,是真正的一體化解決方案,完全符合ZigBee技術對節點“體積小”的要求,另外,TI還提供了ZStack協定棧,儘可能地減輕了軟體開發的工作量。
編寫本書的主要目的是利用CC2430/31SoC,基於ZStack協定棧,為讀者解析用ZigBee技術開發無線感測器網路的各個要點,由淺入深地講述如何開發具體的無線感測器網路系統。
本書分為五篇:理論篇、準備篇、入門篇、進階篇和提高篇。
理論篇(第1、2章):第1章概述了無線感測器網路,第2章則主要介紹了ZigBee協定規範基礎理論知識,使讀者對這兩個概念有整體上的認識。
準備篇(第3、4章):本篇的主要目的是為基於ZigBee技術開發無線感測器網路產品做一些準備工作。第3章講述了開發具體項目所基於的軟硬體平台;第4章則基於核心晶片CC2430/31設計了幾個實驗,使讀者先能熟悉核心晶片內部的各個具體硬體模組。
入門篇(第5、6章):在準備篇把開發具體產品所需要的基礎講解清楚以後,從本篇開始深入介紹TIZStack協定棧,使讀者掌握ZigBee協定是如何用軟體代碼實現的。第5章用一個通俗易懂的例子講述了輪轉查詢式作業系統的工作原理,隨後介紹了這種作業系統在TIZStack中的套用;第6章講述了使用ZStack所必須了解的一些基本概念。
進階篇(第7、8章):本篇通過ZStack中自帶的兩個例子給讀者演示如何建立簡單的ZigBee無線感測網路系統,並詳細闡述了ZigBee協定規範的幾個重要概念在ZStack中的代碼實現。
提高篇(第9~12章):本篇是在進階篇的基礎上的進一步提高,分別以智慧型家居系統(第9章)、無線數據透明傳輸系統(第10章)、工業無線感測網路系統(第11章)和無線定位系統(第12章)這四個典型的ZigBee技術解決方案,詳細介紹了如何開發實際的ZigBee項目。
由上可以看出,本書層次鮮明、思路清晰、結構緊湊,並且有基礎知識全面、重點突出、解決方案實用、可操作性強、開發過程詳細等特點,能幫助讀者快速開發出自己的ZigBee產品。
參加本書編寫的主要人員有高守瑋、吳燦陽、楊超、趙洪鋼和陳慶陽等。由高守瑋和吳燦陽負責全書的規劃、內容安排、定稿與修改。
由於作者水平有限,書中若有錯誤和不妥之處,敬請讀者批評指正。
高守瑋於上海
吳燦陽於西安
2008年10月
目錄
理論篇
第1章無線感測器網路概述
1.1無線感測器網路的發展歷程3
1.2無線感測器網路的研究現狀和前景5
1.2.1無線感測器網路的研究現狀5
1.2.2無線感測器網路的研究前景7
1.3無線感測器網路的特點8
1.4無線感測器網路體系結構10
1.4.1感測器節點體系結構11
1.4.2無線感測器網路協定11
1.4.3無線感測器網路拓撲結構13
1.5無線感測器網路的關鍵技術14
1.6無線感測器網路的套用17
1.7典型短距離無線通信網路技術19
1.7.1幾種近距離無線通信技術20
1.7.2短距離無線通信協定的比較22
第2章IEEE802.15.4/ZigBee無線感測器網路通信標準
2.1IEEE802.15.4標準27
2.1.1IEEE802.15.4主要特點28
2.1.2物理層(PHY)規範30
2.1.3媒體介質訪問層(MAC)規範34
2.1.4分層協定標準的關鍵術語介紹41
2.2ZigBee技術概述42
2.2.1網路層(NWK)規範43
2.2.2套用層(APL)規範45
2.2.3ZigBee協定棧各層幀結構之間的關係48
2.2.4ZigBee網路配置48
2.2.5ZigBee協定術語50
2.2.6數據傳輸機制52
準備篇
第3章ZigBee開發平台
3.1ZigBee硬體平台介紹58
3.1.1ZigBee無線感測器網路技術開發套件58
3.1.2HFZSmartRF04EB母板61
3.1.3HFZCC2430/31EM模組70
3.1.4HFZSoC_BB(電池板)73
3.2ZigBee開發軟體介紹75
3.2.1IAREW8051集成開發環境及其使用說明75
3.2.2ZigBee2006協定棧96
3.2.3SmartRFFlashProgrammer軟體100
3.2.4ZigBee協定分析儀軟體PacketSniffer101
3.2.5ZigBee無線定位系統圖形監視軟體102
第4章CC2430基礎實驗
4.1CC2430晶片概述109
4.1.1主要特性110
4.1.2CC2430/31晶片引腳的功能111
4.1.3增強型8051核心113
4.2通用數字I/O接口129
4.2.1實驗目的129
4.2.2實驗原理及代碼129
4.2.3實驗演示133
4.3點陣式LCD驅動134
4.3.1實驗目的134
4.3.2實驗原理及代碼134
4.3.3實驗演示136
4.4時鐘模式136
4.4.1實驗目的136
4.4.2實驗原理及代碼137
4.4.3實驗演示141
4.5外部中斷實驗141
4.5.1實驗目的141
4.5.2實驗原理及代碼141
4.5.3實驗演示145
4.6定時器中斷145
4.6.1實驗目的145
4.6.2實驗原理及代碼145
4.6.3實驗演示152
4.7秒表153
4.7.1實驗目的153
4.7.2實驗原理及代碼153
4.7.3實驗演示156
4.8ADC單次採樣實驗156
4.8.1實驗目的156
4.8.2實驗原理及代碼157
4.8.3實驗演示163
4.9TempSensor實驗163
4.9.1實驗目的163
4.9.2實驗原理及代碼163
4.9.3實驗演示165
4.10Joystick實驗165
4.10.1實驗目的165
4.10.2實驗原理及代碼166
4.10.3實驗演示170
4.11UART實驗170
4.11.1實驗目的170
4.11.2實驗原理及代碼170
4.11.3實驗演示176
4.12DMA傳輸177
4.12.1實驗目的177
4.12.2實驗原理及代碼177
4.12.3實驗演示181
4.13ADC連續採樣實驗181
4.13.1實驗目的181
4.13.2實驗原理及代碼181
4.13.3實驗演示182
4.14Flash讀寫操作183
4.14.1實驗目的183
4.14.2實驗原理及代碼183
4.14.3實驗演示186
4.15隨機序列發生器186
4.15.1實驗目的186
4.15.2實驗原理及代碼186
4.15.3實驗演示189
4.16AES128安全協處理器190
4.16.1實驗目的190
4.16.2實驗原理及代碼190
4.16.3實驗演示200
4.17射頻通信實驗200
4.17.1實驗目的200
4.17.2實驗原理及代碼201
4.17.3實驗演示210
4.18功耗模式211
4.18.1實驗目的211
4.18.2實驗原理211
4.18.3實驗演示217
入門篇
第5章TIZStack軟體架構
5.1最簡單的作業系統221
5.2輪轉查詢式作業系統的套用222
5.3ZStack軟體架構225
5.3.1系統初始化225
5.3.2作業系統的執行225
5.3.3在項目中組織ZStack檔案229
第6章TIZStack開發基礎
6.1基本概念233
6.2套用層235
6.3網路層237
6.3.1定址237
6.3.2路由239
6.4安全241
6.5其他(非易失性存儲器)242
進階篇
第7章ZigBee基礎實驗(SimpleApp)
7.1與ZStack相關的IAR工程選項設定247
7.2工程程式架構249
7.2.1任務初始化函式249
7.2.2任務事件處理函式252
7.3溫度感測器實驗259
7.3.1功能描述259
7.3.2實驗原理及代碼260
7.3.3實驗演示270
7.3.4ZTool工具使用271
7.3.5PacketSniffer工具使用275
7.4燈開關實驗282
7.4.1功能描述282
7.4.2實驗原理及代碼282
7.4.3實驗演示288
7.4.4SmartRFFlashProgrammer工具使用288
第8章ZigBee基礎實驗(HomeAutomation)
8.1綁定290
8.1.1綁定表格290
8.1.2綁定建立292
8.1.3綁定解除297
8.2命令298
8.3簇300
8.4Profile300
8.4.1ZCL300
8.4.2Profile302
8.5HomeAutomation實驗303
8.5.1HomeAutomationProfile簡介303
8.5.2實驗原理及代碼308
8.5.3實驗演示317
提高篇
第9章智慧型家居演示系統
9.1系統介紹323
9.2系統實現324
9.2.1系統總體設計324
9.2.2創建工程327
9.2.3任務與事件332
9.2.4設備信息配置334
9.2.5建網與入網336
9.2.6數據通信339
9.2.7人機互動341
9.2.8生成HEX檔案349
9.3系統演示350
第10章無線數據透明傳輸系統
10.1系統介紹354
10.2系統實現355
10.2.1系統總體設計355
10.2.2創建工程356
10.2.3任務與事件357
10.2.4信道和PANID358
10.2.5設備信息配置359
10.2.6建網與入網361
10.2.7串口設定361
10.2.8數據通信363
10.2.9地址模式364
10.3系統演示368
第11章工業氣體檢測系統
11.1系統介紹370
11.2系統實現371
11.2.1系統總體設計371
11.2.2創建路由器工程373
11.2.3任務與事件378
11.2.4設備信息配置381
11.2.5建網與入網384
11.2.6獲取設備信息386
11.2.7數據通信387
11.2.8NV存儲388
11.3系統演示389
第12章ZigBee無線定位系統
12.1系統介紹391
12.1.1無線感測器網路的定位機制391
12.1.2ZigBee無線定位系統393
12.2系統實現395
12.2.1系統總體設計395
12.2.2ZigBee網關401
12.2.3參考節點405
12.2.4盲節點408
12.3系統演示413
12.3.1對節點編程413
12.3.2組建ZigBee網路417
12.3.3用ZLocationEngine軟體實時監控ZigBee無線定位系統418
附錄
附錄AZigBee協定棧中常用的API423
附錄B網路層信息庫屬性426
附錄C光碟目錄427
參考文獻431
本書編委會