本書以ZigBee無線傳感網(wǎng)絡(luò)技術(shù)為主要對象,以基于CC2530芯片(TI公司)為核心的硬件平臺,在介紹了常用傳感器編程的基礎(chǔ)上,深入剖析了TI的Z-Stack協(xié)議棧架構(gòu)和編程接口,并詳細講述了如何在此基礎(chǔ)上開發(fā)自己的ZigBee項目。
本書可作為工程技術(shù)人員進行單片機、無線傳感器網(wǎng)絡(luò)應(yīng)用、ZigBee技術(shù)等項目開發(fā)的學(xué)習(xí)、參考用書,也可作為高等院校高年級本科生或研究生計算機、電子、自動化、無線通信等課程的教材。
用ZigBee技術(shù)來實現(xiàn)無線傳感器網(wǎng)絡(luò),主要需要考慮通信節(jié)點的硬件設(shè)計,包括傳感數(shù)據(jù)的獲得及發(fā)送,以及實現(xiàn)相應(yīng)數(shù)據(jù)處理功能所必需的應(yīng)用軟件開發(fā)。TI(德州儀器公司)的CC2530芯片實現(xiàn)ZigBee技術(shù)的優(yōu)秀解決方案,完全符合ZigBee技術(shù)對節(jié)點體積小、能耗低的要求,另外,TI還提供了Z-Stack協(xié)議棧,盡可能地減輕了開發(fā)者的開發(fā)通信程序的工作量,使開發(fā)者能專注于實現(xiàn)業(yè)務(wù)邏輯。
前言 無線傳感器網(wǎng)絡(luò)綜合了傳感器、嵌入式計算、現(xiàn)代網(wǎng)絡(luò)及無線通信和分布式信息處理等技術(shù),能夠通過各類集成化的微型傳感器協(xié)同完成對各種環(huán)境或監(jiān)測對象的信息的實時監(jiān)測、感知和采集,這些信息通過無線方式被發(fā)送,并以自組多跳的網(wǎng)絡(luò)方式傳送到用戶終端,從而實現(xiàn)物理世界、計算世界以及人類社會這三元世界的連通。傳統(tǒng)的無線網(wǎng)絡(luò)關(guān)心的是如何在保證通信質(zhì)量的情況下實現(xiàn)最大的數(shù)據(jù)吞吐率,而無線傳感器網(wǎng)絡(luò)主要用于實現(xiàn)不同環(huán)境下各種緩慢變化參數(shù)的檢測,通信速率并不是其主要考慮的因素,它最關(guān)心的問題是在體積小、布局方便以及能量有限的情況下盡可能地延續(xù)目前網(wǎng)絡(luò)的生命周期! igBee技術(shù)是一種近距離、低復(fù)雜度、低功耗、低速率、低成本的雙向無線通信技術(shù)。主要用于距離短、功耗低且傳輸速率不高的各種電子設(shè)備之間進行數(shù)據(jù)傳輸以及典型的有周期性數(shù)據(jù)、間歇性數(shù)據(jù)和低反應(yīng)時間數(shù)據(jù)傳輸?shù)膽?yīng)用。因此非常適用于家電和小型電子設(shè)備的無線控制指令傳輸。其典型的傳輸數(shù)據(jù)類型有周期性數(shù)據(jù)(如傳感器)、間歇性數(shù)據(jù)(如照明控制)和重復(fù)低反應(yīng)時間數(shù)據(jù)(如鼠標(biāo))。由于其節(jié)點體積小,且能自動組網(wǎng),所以布局十分方便;又因其強調(diào)由大量的節(jié)點進行群體協(xié)作,網(wǎng)絡(luò)具有很強的自愈能力,任何一個節(jié)點的失效都不會對整體任務(wù)的完成造成致命性影響,所以特別適合用來組建無線傳感器網(wǎng)絡(luò)! ∮肸igBee技術(shù)來實現(xiàn)無線傳感器網(wǎng)絡(luò),主要需要考慮通信節(jié)點的硬件設(shè)計,包括傳感數(shù)據(jù)的獲得及發(fā)送,以及實現(xiàn)相應(yīng)數(shù)據(jù)處理功能所必需的應(yīng)用軟件開發(fā)。TI(得州儀器公司)的CC2530芯片實現(xiàn)ZigBee技術(shù)的優(yōu)秀解決方案,完全符合ZigBee技術(shù)對節(jié)點體積小、能耗低的要求,另外,TI還提供了Z-Stack協(xié)議棧,盡可能地減輕了開發(fā)者的開發(fā)通信程序的工作量,使開發(fā)者能專注于實現(xiàn)業(yè)務(wù)邏輯! 【帉懕緯闹饕康氖菑膶嵱(xùn)的角度使用CC2530芯片和Z-Stack協(xié)議棧來實現(xiàn)無線傳感器網(wǎng)絡(luò),為讀者解析用ZigBee技術(shù)開發(fā)無線傳感器網(wǎng)絡(luò)的各個要點,由淺入深地講述如何開發(fā)具體的無線傳感器網(wǎng)絡(luò)系統(tǒng)! * 內(nèi)容概述 本書分為6個部分: 第1部分包括第1~3章,概述了無線傳感器網(wǎng)絡(luò)的基本理論。第1章概述了無線傳感器網(wǎng)絡(luò)的主要概念;第2章主要介紹了IEEE 802.15.4無線傳感器網(wǎng)絡(luò)通信標(biāo)準;第3章主要介紹了ZigBee協(xié)議規(guī)范基礎(chǔ)理論知識,使讀者對無線傳感器網(wǎng)絡(luò)有整體上的認識。 第2部分包括第4章,講述了開發(fā)具體項目所依賴的軟硬件平臺。 第3部分包括第5章,基于核心芯片CC2530內(nèi)部硬件模塊設(shè)計了若干個實驗,使讀者熟悉核心芯片CC2530的主要功能! 〉4部分包括第6章和第7章,介紹如何使用CC2530控制各種常見的傳感器。第6章講述常用傳感器數(shù)字溫濕度傳感器DHT11、光強度傳感器模塊等常見的傳感器操作方法;第7章介紹使用CC2530實現(xiàn)紅外信號的收發(fā)操作! 〉5部分包括第8章,深入介紹Z-Stack協(xié)議棧,使讀者初步掌握Z-Stack的工作機制,講述了使用Z-Stack的一些基本概念,講述了Z-Stack輪轉(zhuǎn)查詢式操作系統(tǒng)的工作原理,以及Z-Stack串口機制和綁定機制。 第6部分包括第9~11章,介紹了TI-Stack協(xié)議棧開發(fā)的三個項目,第9章為智能家居系統(tǒng);第10章為智能溫室系統(tǒng);第11章為學(xué)生考勤管理系統(tǒng)。
編 者 2018年1月
目錄
第1章 無線傳感器網(wǎng)絡(luò) 1
1.1 無線傳感器網(wǎng)絡(luò)概述 1
1.2 無線傳感器網(wǎng)絡(luò)的發(fā)展歷程 2
1.3 無線傳感器網(wǎng)絡(luò)的研究現(xiàn)狀和前景 3
1.4 無線傳感器網(wǎng)絡(luò)的特點 3
1.5 無線傳感器網(wǎng)絡(luò)體系結(jié)構(gòu) 5
1.6 無線傳感器網(wǎng)絡(luò)的關(guān)鍵技術(shù) 8
1.7 無線傳感器網(wǎng)絡(luò)的應(yīng)用與發(fā)展 9
1.8 典型短距離無線通信網(wǎng)絡(luò)技術(shù) 10
1.9 無線傳感器網(wǎng)絡(luò)的主要研究領(lǐng)域 13
第2章 IEEE 802.15.4無線傳感器網(wǎng)絡(luò)通信標(biāo)準 15
2.1
IEEE 802.15.4標(biāo)準概述 15
2.2 網(wǎng)絡(luò)組成和拓撲結(jié)構(gòu) 18
2.3 協(xié)議棧架構(gòu) 20
2.4 物理層規(guī)范 21
2.5
MAC層規(guī)范 23
2.6
MAC/PHY信息交互流程 29
2.7 基于IEEE
802.15.4標(biāo)準的無線傳感器網(wǎng)絡(luò) 29
第3章 ZigBee無線傳感器網(wǎng)絡(luò)通信標(biāo)準 32
3.1
ZigBee標(biāo)準概述 32
3.2
ZigBee技術(shù)特點 33
3.3
ZigBee協(xié)議框架 35
3.4
ZigBee網(wǎng)絡(luò)層規(guī)范 35
3.5
ZigBee應(yīng)用層規(guī)范 38
3.6
ZigBee安全服務(wù)規(guī)范 40
第4章 ZigBee開發(fā)平臺 41
4.1
ZigBee硬件開發(fā)平臺 42
4.1.1
CC2530射頻模塊 42
4.1.2
調(diào)試器接口 44
4.1.3
ZigBee學(xué)習(xí)板 44
4.2
ZigBee軟件開發(fā)平臺 47
4.2.1
IAR簡介 47
4.2.2
IAR基本操作 48
第5章 CC2530基礎(chǔ)實驗 54
5.1
CC2530無線片上系統(tǒng)概述 54
5.1.1
CC2530芯片主要特性 55
5.1.2
CC2530的應(yīng)用領(lǐng)域 55
5.1.3
CC2530概述 56
5.1.4
CC2530芯片引腳的功能 58
5.1.5
CC2530增強型8051內(nèi)核簡介 59
5.2 通用I/O端口 60
5.2.1
通用I/O端口簡介 60
5.2.2
通用I/O端口相關(guān)寄存器 60
5.2.3
實驗1:點亮LED 61
5.2.4
實驗2:按鍵控制LED交替閃爍 63
5.3 外部中斷 64
5.3.1
中斷概述 64
5.3.2
中斷屏蔽 65
5.3.3
中斷處理 68
5.3.4
實驗:按鍵中斷控制LED 71
5.4 定時器 73
5.4.1
片內(nèi)外設(shè)I/O 73
5.4.2
定時器簡介 74
5.4.3
定時器1寄存器 75
5.4.4
定時器1操作 76
5.4.5
16位計數(shù)器 77
5.4.6
實驗1:定時器1控制LED閃爍 78
5.4.7
定時器3概述 79
5.4.8
實驗2:定時器1和定時器3同時控制LED1和LED2以不同頻率閃爍 80
5.5
1602型LCD 82
5.5.1
1602型LCD簡介 82
5.5.2
1602型LCD引腳功能 82
5.5.3
1602型LCD的特性 83
5.5.4
1602型LCD字符集 83
5.5.5
1602型LCD基本操作程序 83
5.5.6
1602型LCD指令集 84
5.5.7
1602型LCD 4線連接方式 85
5.5.8
實驗:LCD顯示實驗 85
5.6
USART 90
5.6.1
串行通信接口 90
5.6.2
串行通信接口寄存器 91
5.6.3
設(shè)置串行通信接口寄存器波特率 93
5.6.4
實驗1:UART發(fā)送 93
5.6.5
UART接收 95
5.6.6
實驗2:UART發(fā)送與接收 96
5.7
ADC 99
5.7.1
ADC簡介 99
5.7.2
ADC輸入 99
5.7.3
ADC寄存器 100
5.7.4
ADC轉(zhuǎn)換結(jié)果 102
5.7.5
單個ADC轉(zhuǎn)換 102
5.7.6
片內(nèi)溫度傳感器實驗 102
5.8 睡眠定時器 104
5.8.1
睡眠定時器簡介 104
5.8.2
睡眠定時器寄存器 105
5.8.3
實驗:睡眠定時器喚醒實驗 105
5.9 時鐘和電源管理 110
5.9.1
CC2530電源管理簡介 110
5.9.2
CC2530電源管理控制 111
5.9.3
CC2530振蕩器和時鐘 111
5.9.4
實驗:中斷喚醒系統(tǒng)實驗 111
5.10
看門狗 114
5.10.1
看門狗模式 115
5.10.2
定時器模式 115
5.10.3
看門狗定時器寄存器 116
5.10.4
實驗:看門狗實驗 116
5.11
DMA 118
5.11.1
DMA操作 119
5.11.2
DMA配置參數(shù) 119
5.11.3
DMA配置安裝 122
5.11.4
實驗:DMA傳輸 123
第6章 常用傳感器 127
6.1 數(shù)字溫濕度傳感器DHT11 127
6.1.1
DHT11簡介 127
6.1.2
DHT11典型應(yīng)用電路 127
6.1.3
DHT11串行接口 128
6.1.4
DHT11串行接口通信過程 128
6.1.5
實驗:DHT11實驗 129
6.2 紅外人體感應(yīng)模塊實驗 133
6.2.1
紅外人體感應(yīng)模塊功能特點 133
6.2.2
紅外人體感應(yīng)模塊實物 133
6.2.3
實驗:紅外人體感應(yīng)模塊實驗 134
6.3 結(jié)露傳感器實驗 134
6.3.1
HDS05結(jié)露傳感器特性曲線 135
6.3.2
HDS05結(jié)露傳感器電路設(shè)計 135
6.3.3
HDS05結(jié)露傳感器實物 135
6.3.4
實驗:結(jié)露傳感器實驗 136
6.4 煙霧傳感器模塊 138
6.4.1
煙霧傳感器模塊的功能特點 138
6.4.2
煙霧傳感器模塊實物 138
6.4.3
實驗:煙霧傳感器模塊實驗 139
6.5 光強度傳感器模塊 139
6.5.1
GY-30 數(shù)字光模塊介紹 139
6.5.2
數(shù)字光模塊實物 140
6.5.3
I2C總線介紹 140
6.5.4
實驗:光強度傳感器模塊實驗 141
第7章 CC2530實現(xiàn)紅外通信 148
7.1 紅外通信簡介 148
7.1.1
紅外線通信的特點 148
7.1.2
紅外線發(fā)射和接收 148
7.1.3
紅外線遙控發(fā)射和接收電路 149
7.1.4
紅外發(fā)射電路 150
7.1.5
NEC協(xié)議 150
7.2 實驗1:中斷方式發(fā)射紅外信號 150
7.3 實驗2:PWM方式輸出紅外信號 157
7.4 實驗3:紅外接收實驗 161
第8章 Z-Stack協(xié)議棧 165
8.1
Z-Stack協(xié)議;A(chǔ) 165
8.1.1
Z-Stack協(xié)議棧簡介 165
8.1.2
Z-Stack協(xié)議棧基本概念 165
8.1.3
Z-Stack的下載與安裝 168
8.2
Sample Application工程 169
8.2.1
Sample Application工程簡介 169
8.2.2
Sample Application工程概況 170
8.2.3
Sample Application工程初始化與事件的處理 170
8.2.4
Sample Application工程事件的處理函數(shù) 172
8.2.5
Sample Application工程流程 173
8.3
OSAL循環(huán) 178
8.3.1
Z-Stack的任務(wù)調(diào)度 178
8.3.2
Z-Stack主函數(shù) 179
8.3.3
Z-Stack任務(wù)的初始化 180
8.3.4
Z-Stack的系統(tǒng)主循環(huán) 181
8.4 數(shù)據(jù)的發(fā)送和接收 184
8.4.1
網(wǎng)絡(luò)參數(shù)的設(shè)置 184
8.4.2
數(shù)據(jù)的發(fā)送 186
8.4.3
數(shù)據(jù)的接收 189
8.5 修改LED驅(qū)動 191
8.6 修改按鍵驅(qū)動 195
8.6.1
Z-Stack的按鍵機制概述 195
8.6.2
Z-Stack按鍵的宏定義 195
8.6.3
Z-Stack按鍵初始化代碼分析 196
8.6.4
Z-Stack按鍵的配置 199
8.6.5
Z-Stack輪詢方式按鍵處理 201
8.6.6
Z-Stack中斷方式按鍵處理 206
8.7
Z-Stack 2007串口機制 213
8.7.1
串口配置 213
8.7.2
串口初始化 215
8.7.3
串口接收數(shù)據(jù) 220
8.7.4
Z-Stack串口發(fā)送數(shù)據(jù) 225
8.8
Z-Stack啟動分析 227
8.8.1
啟動配置 227
8.8.2
Z-Stack啟動相關(guān)概念 228
8.8.3
SampleApp工程協(xié)調(diào)器啟動過程分析 232
8.9
ZigBee綁定機制 236
8.10
SimpleApp工程 237
8.10.1
SimpleApp的打開 237
8.10.2
SimpleApp啟動分析 238
8.11
燈開關(guān)實驗 240
8.11.1
SimpleController.c 240
8.11.2
SimpleSwitch.c 244
8.11.3
燈開關(guān)實驗其他函數(shù)分析 248
8.12
傳感器采集實驗 249
8.12.1
采集節(jié)點SimpleCollector.c 249
8.12.2
傳感器節(jié)點SimpleSensor.c 251
第9章 智能家居系統(tǒng) 254
9.1 智能家居系統(tǒng)設(shè)計 254
9.1.1
智能家居系統(tǒng)的需求分析 254
9.1.2
智能家居系統(tǒng)分析 255
9.1.3
智能家居系統(tǒng)軟件設(shè)計 255
9.2 智能家居系統(tǒng)開發(fā)環(huán)境的搭建 256
9.2.1
Mini6410 ARM11開發(fā)板 256
9.2.2
建立Android應(yīng)用開發(fā)環(huán)境 256
9.2.3
在Andorid程序中訪問串口 260
9.2.4
Android上的Servlet服務(wù)器i-jetty 261
9.3 智能家居系統(tǒng)下位機程序設(shè)計 262
9.3.1
下位機程序設(shè)計思路 262
9.3.2
一鍵報警功能下位機實現(xiàn) 262
9.3.3
水浸報警功能下位機實現(xiàn) 263
9.3.4
中斷方式報警的紅外入侵傳感器的實現(xiàn) 264
9.4 智能家居系統(tǒng)設(shè)置模塊的實現(xiàn) 265
9.4.1
SQLite簡介 265
9.4.2
Android系統(tǒng)中SQLite?數(shù)據(jù)庫的操作 266
9.4.3
智能家居系統(tǒng)設(shè)置模塊的實現(xiàn) 267
9.5 智能家居系統(tǒng)監(jiān)聽服務(wù)的實現(xiàn) 270
9.5.1
Android Service 270
9.5.2
Android多線程 271
9.5.3
短信的發(fā)送與接收 273
9.5.4
智能家居系統(tǒng)監(jiān)聽服務(wù)的實現(xiàn) 274
9.6
Web方式訪問智能家居系統(tǒng) 279
9.6.1
ContentProvider簡介 280
9.6.2
ContentProvider操作 280
9.6.3
創(chuàng)建ContentProvider 282
9.6.4
Web方式訪問智能家居系統(tǒng) 283
第10章 智能溫室系統(tǒng) 290
10.1
智能溫室系統(tǒng)設(shè)計 290
10.1.1
智能溫室定義 290
10.1.2
智能溫室系統(tǒng)的需求分析 290
10.1.3
智能溫室系統(tǒng)分析 291
10.2
智能溫室系統(tǒng)控制功能的實現(xiàn) 291
10.2.1
繼電器 291
10.2.2
控制板中控制電路的實現(xiàn) 292
10.2.3
智能溫室系統(tǒng)控制功能的實現(xiàn) 293
10.3
智能溫室系統(tǒng)休眠功能的實現(xiàn) 294
10.4 協(xié)調(diào)器直接訪問Web服務(wù)器 295
10.4.1 設(shè)置wificp210x模塊 295
10.4.2 使用wificp210x模塊訪問Web服務(wù)器 296
10.4.3 編程實現(xiàn)ZigBee協(xié)調(diào)器數(shù)據(jù)上傳至Web服務(wù)器 297
第11章 學(xué)生考勤管理系統(tǒng) 299
11.1
學(xué)生考勤管理系統(tǒng)設(shè)計 299
11.1.1
校園一卡通學(xué)生考勤管理系統(tǒng)的組成 299
11.1.2
校園一卡通學(xué)生考勤管理系統(tǒng)的可行性分析 300
11.1.3
校園一卡通學(xué)生考勤管理系統(tǒng)的需求分析 300
11.2
學(xué)生考勤管理系統(tǒng)的時鐘功能的實現(xiàn) 300
11.2.1
DS1302實時時鐘電路 300
11.2.2
DS1302實時時鐘模塊 300
11.2.3
DS1302實時時鐘模塊的操作說明 301
11.2.4
DS1302時鐘模塊例程 303
11.2.5
Z-Stack中使用DS1302時鐘模塊實現(xiàn)顯示時間的功能 306
11.3
學(xué)生考勤管理系統(tǒng)讀卡功能的實現(xiàn) 307
11.3.1
RFID介紹 307
11.3.2
M104BPC讀寫模塊 309
11.3.3
例程 313
11.3.4
Z-Stack實現(xiàn)讀卡功能 319
參考文獻 322