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