第1章 嵌入式物联网技术绪论 1
1.1 物联网的组成 1
1.2 无线传感器网络 2
1.2.1 无线传感器网络结构 2
1.2.2 无线传感器网络特点 3
1.3 嵌入式物联网控制技术 5
1.3.1 带有可移动节点的大规模WSNs组网技术 5
1.3.2 智能移动体设计 6
1.3.3 嵌入式终端设计 7
1.3.4 无线传感器节点设计 7
1.4 基于ARM Cortex-M3核心ZigBee技术的优势 8
1.5 思考与练习题 9
第2章 ARM Cortex-M3技术 10
2.1 概述 10
2.2 核心模块 12
2.2.1 内部架构 12
2.2.2 寄存器 14
2.3 指令系统 20
2.3.1 指令列表 20
2.3.2 操作数 23
2.3.3 使用PC或SP的限制 23
2.3.4 第二操作数的构成 23
2.3.5 移位操作 24
2.3.6 地址对齐 27
2.3.7 相对于程序计数器PC的表达式 27
2.3.8 条件执行 27
2.3.9 指令宽度选择 29
2.3.10 存储器访问指令 30
2.3.11 一般数据处理指令 38
2.3.12 乘法和除法指令 46
2.3.13 饱和指令 48
2.3.14 位域指令 49
2.3.15 跳转和控制指令 51
2.3.16 其他指令 56
2.4 软件编程接口 62
2.5 思考与练习题 63
第3章 STM32W108体系结构 64
3.1 STM32W108架构 64
3.1.1 片内结构 64
3.1.2 功能单元描述 64
3.2 封装与引脚说明 67
3.2.1 封装 67
3.2.2 引脚说明 67
3.3 思考与练习题 77
第4章 STM32W108功能模块设计 78
4.1 功能模块概述 78
4.2 电源模块 78
4.2.1 内部稳压电源 78
4.2.2 外部稳压电源 80
4.2.3 外部稳压电源电路设计 80
4.3 复位模块 81
4.3.1 复位原理 81
4.3.2 复位电路设计 84
4.4 时钟管理模块 84
4.4.1 时钟模块总体结构 84
4.4.2 时钟功能模块原理 84
4.5 系统定时器模块 87
4.5.1 看门狗定时器 87
4.5.2 睡眠定时器 88
4.6 电源管理模块 88
4.6.1 唤醒源 88
4.6.2 基本睡眠模式 89
4.6.3 深睡眠选项 90
4.7 思考与练习题 90
第5章 内部存储器与无线射频模块 91
5.1 STM32W108内部存储空间 91
5.2 Flash存储器 92
5.3 RAM数据存储器 92
5.4 STM32W108射频模块 93
5.4.1 接收模块 93
5.4.2 发送模块 94
5.4.3 集成MAC模块 94
5.4.4 随机数发生器 95
5.5 思考与练习题 95
第6章 STM32W108通用IO接口 96
6.1 通用IO功能描述 96
6.1.1 GPIO端口 96
6.1.2 配置 97
6.1.3 增强功能 98
6.1.4 复位 98
6.1.5 nBOOTMODE 99
6.1.6 GPIO模式 99
6.1.7 唤醒监控 100
6.2 通用IO配置寄存器 101
6.2.1 端口配置寄存器(低位)(GPIO_PxCFGL) 101
6.2.2 端口配置寄存器(高位)(GPIO_PxCFGH) 102
6.2.3 端口输入数据寄存器(GPIO_PxIN) 102
6.2.4 端口输出数据寄存器(GPIO_PxOUT) 103
6.2.5 端口输出清除寄存器(GPIO_PxCLR) 104
6.2.6 端口输出设置寄存器(GPIO_PxSET) 104
6.2.7 端口唤醒监控寄存器(GPIO_PxWAKE) 105
6.2.8 GPIO唤醒滤波寄存器(GPIO_WAKEFILT) 106
6.2.9 中断选择寄存器(GPIO_IRQxSEL) 106
6.2.10 GPIO中断配置寄存器(GPIO_INTCF(Gx) 107
6.2.11 GPIO中断标志寄存器(INT_GPIOFLAG) 107
6.2.12 GPIO调试配置寄存器(GPIO_DBGCFG) 108
6.2.1 3 GPIO调试状态寄存器(GPIO_DBGSTAT) 109
6.3 应用实例解析 109
6.3.1 开发环境与硬件说明 109
6.3.2 软件设计与规划 110
6.3.3 LED控制程序设计 110
6.3.4 测试程序编写 112
6.3.5 测试结果及分析 112
6.4 思考与练习题 113
第7章 STM32W108中断机制 114
7.1 中断控制 114
7.1.1 嵌套向量中断控制器(NVIC) 114
7.1.2 事件管理器 116
7.2 中断配置寄存器 119
7.2.1 顶级置位中断配置寄存器(INT_CFGSET) 119
7.2.2 顶级清除中断配置寄存器(INT_CFGCLR) 120
7.2.3 顶级置位中断挂起寄存器(INT_PENDSET) 120
7.2.4 顶级清除挂起中断标志寄存器(INT_PENDCLR) 121
7.2.5 顶级激活中断寄存器(INT_ACTIVE) 122
7.2.6 顶级丢失中断寄存器(INT_MISS) 123
7.2.7 辅助故障状态寄存器(SCS_AFSR) 124
7.3 应用实例解析 124
7.3.1 开发环境与硬件说明 125
7.3.2 软件设计与规划 125
7.3.3 中断处理程序设计 126
7.3.4 测试程序编写 126
7.3.5 测试结果及分析 128
7.4 思考与练习题 128
第8章 STM32W108串行通信 129
8.1 串行通信控制模块 129
8.1.1 功能描述 129
8.1.2 通信配置 129
8.2 UART 131
8.2.1 UART模块 131
8.2.2 UART寄存器 135
8.3 UART通信应用实例 138
8.3.1 开发环境与硬件平台 138
8.3.2 软件设计与规划 138
8.3.3 测试程序编写 138
8.3.4 测试结果及分析 140
8.4 SPI模块 142
8.4.1 SPI主模式 142
8.4.2 SPI从模式 144
8.4.3 SPI寄存器 147
8.5 思考与练习题 150
第9章 STM32W108 AD转换器 151
9.1 功能描述 152
9.1.1 配置 152
9.1.2 GPIO使用 152
9.1.3 参考电压 152
9.1.4 偏置/增益校正 152
9.1.5 DMA 153
9.1.6 ADC输入 153
9.1.7 模拟电压输入范围 154
9.1.8 采样时间 154
9.1.9 AD转换 155
9.1.10 校准 156
9.1.11 注意事项 156
9.1.12 中断 157
9.2 ADC寄存器 157
9.2.1 ADC配置寄存器(ADC_CFG) 157
9.2.2 ADC偏移寄存器(ADC_OFFSET) 158
9.2.3 ADC增益寄存器(ADC_GAIN) 159
9.2.4 ADC DMA配置寄存器(ADC_DMACFG) 159
9.2.5 ADC DMA状态寄存器(ADC_DMASTAT) 160
9.2.6 ADC DMA起始地址寄存器(ADC_DMABEG) 160
9.2.7 ADC DMA缓冲区大小寄存器(ADC_DMASIZE) 161
9.2.8 ADC DMA当前地址寄存器(ADC_DMACUR) 161
9.2.9 ADC DMA计数寄存器(ADC_DMACNT) 162
9.2.10 ADC中断标志寄存器(INT_ADCFLAG) 162
9.2.11 ADC中断配置寄存器(INT_ADCCFG) 163
9.3 应用实例解析 163
9.3.1 开发环境与硬件说明 163
9.3.2 软件设计与规划 163
9.3.3 传感器数据采集程序设计 164
9.3.4 测试程序编写 168
9.3.5 测试结果及分析 169
9.4 思考与练习题 170
第10章 802.15.4/ZigBee协议栈接口函数 171
10.1 802.15.4/ZigBee协议栈 171
10.2 STM32W108的802.15.4/ZigBee协议栈 171
10.3 协议栈接口 173
10.4 启动协议栈实例解析 192
10.4.1 开发工具及协议栈安装 192
10.4.2 工程创建 199
10.4.3 STM32W108协议栈实例解析 209
10.5 思考与练习题 244
第11章 STM32W108两节点间通信 245
11.1 实例开发环境说明 245
11.2 软件设计与规划 245
11.3 程序设计与实现 246
11.4 测试结果及分析 255
11.5 思考与练习题 256
第12章 多节点间通信 257
12.1 实例任务规划 257
12.2 实例开发环境 257
12.3 软件设计与规划 258
12.4 编程与实现 258
12.5 测试结果及分析 267
12.6 思考与练习题 269
第13章 多传感器环境参数监测实例 270
13.1 实例开发环境说明 270
13.2 硬件电路设计 270
13.3 软件设计与规划 274
13.4 传感器数据采集程序设计与实现 275
13.4.1 温度传感器 275
13.4.2 温湿度传感器 278
13.4.3 超声波传感器 281
13.4.4 烟雾传感器 283
13.4.5 声音传感器 283
13.4.6 光敏传感器 284
13.5 测试程序编写 284
13.6 实例结果及分析 299
13.7 实例注意事项及说明 300
13.8 思考与练习题 300
第14章 μCOS-II的移植及实时环境监测 301
14.1 开发环境说明 301
14.2 软件设计与规划 301
14.3 工程创建及文件添加 302
14.4 相关源文件更改 304
14.5 测试程序设计 308
14.6 实验结果及分析 312
14.7 思考与练习题 312
第15章 无线传感器网络节点定位技术 313
15.1 RSSI与通信距离 313
15.2 距离计算经验公式的确定 315
15.3 N次三边质心加权定位法介绍 316
15.4 算法设计 318
15.4.1 符号定义说明 318
15.4.2 数据包的接收保存及实时距离的计算 320
15.4.3 N次三边质心加权法 321
15.5 定位算法实现 322
15.5.1 软件设计流程 322
15.5.2 经验公式获取程序设计 324
15.5.3 N次三边质心加权定位程序设计 327
15.6 定位实验及结果分析 342
15.6.1 经验公式确定 342
15.6.2 N次三边质心加权定位实验 344
15.7 思考与练习题 347
第16章 节点自组织与移动智能体导航技术 348
16.1 开发环境与定位方法说明 348
16.2 系统设计 349
16.2.1 相关符号说明 349
16.2.2 总体设计 351
16.2.3 网络模型 351
16.2.4 无线自组网 353
16.2.5 移动节点定位 356
16.2.6 移动智能体导航分析 358
16.2.7 电子罗盘模块工作原理 361
16.2.8 移植智能体导航设计 362
16.3 程序设计与实现 364
16.3.1 大规模自组网程序 376
16.3.2 移动智能体导航程序 391
16.3.3 主函数程序设计 399
16.4 调试与结果分析 412
16.4.1 无线自组织网络 412
16.4.2 移动智能体导航 413
16.5 思考与练习题 415
参考文献 416