书籍详情
低功耗蓝牙5.0开发与应用:基于nRF52系列处理器(提高篇)
作者:万青 著
出版社:北京航空航天大学出版社
出版时间:2021-09-01
ISBN:9787512435995
定价:¥79.00
购买这本书可以去
内容简介
随着蓝牙学习的深入,开发者不得不面对诸如蓝牙安全配置、蓝牙实战应用、蓝牙主从设备互连、蓝牙组网等实际需求,本书正是在这个背景下诞生的。本书主要讲述了对蓝牙的参数与安全连接、蓝牙从机综合应用、主机搭建与发起连接、主机数据传输以及主从组网应用等内容,深入解决低功耗蓝牙开发人员的需求痛点,进一步提高低功耗蓝牙的开发能力。
作者简介
暂缺《低功耗蓝牙5.0开发与应用:基于nRF52系列处理器(提高篇)》作者简介
目录
第1篇蓝牙工程搭建篇
第1章蓝牙5.0基础知识以及学习规划2
1.1蓝牙5.0基础知识2
1.1.1蓝牙5.0简介2
1.1.2蓝牙BLE协议栈结构3
1.2蓝牙BLE如何实现连接与通信5
1.2.1从机广播5
1.2.2主机扫描6
1.2.3建立连接7
1.2.4发送与接收数据8
1.3学习规划9
1.3.1蓝牙BLE基础工程搭建10
1.3.2蓝牙服务的建立10
1.3.3蓝牙数据传输10
1.3.4蓝牙参数及安全设置11
1.3.5从机蓝牙综合应用11
1.3.6主机的搭建以及组网12
第2章蓝牙BLE样例的建立13
2.1蓝牙BLE样例工程结构13
2.2蓝牙主函数21
2.2.1外设初始化23
2.2.2协议栈层配置25
2.2.3应用层配置28
2.2.4电源管理30
2.3下载验证31
第3章蓝牙程序信息Log显示34
3.1Log打印串口输出配置34
3.2Log打印RTT的输出配置37
3.3Log日志参数__________41
3.3.1Log日志输出颜色41
3.3.2Log日志时间戳41
3.3.3Log日志打印类型43
3.3.4模块配置的日志使能44
第4章蓝牙协议栈下的软件定时器47
4.1软件定时器47
4.2蓝牙BLE下软件定时器配置48
4.2.1BLE定时器声明48
4.2.2定时器开始定时51
4.2.3定时器超时处理52
4.2.4主函数编写52
4.3应用与调试53
第5章蓝牙协议栈下按键的使用55
5.1按键下控制触发LED灯55
5.1.1协议栈下板级设备配置55
5.1.2下载与验证59
5.2按键下的长按和短按59
5.2.1长按与短按的配置59
5.2.2按键数量的增加64
5.2.3长按与短按的分离66
5.3本章小结68
第6章蓝牙协议初始化69
6.1nRF52832蓝牙协议栈初始化函数结构69
6.2协议栈回复使能应答70
6.2.1协议栈使能70
6.2.2议栈时钟设置71
6.3协议栈默认配置的设置__________74
6.3.1配置链接数目和角色74
6.3.2配置MTU协商值76
6.3.3设置定制的UUID数目77
6.3.4GATTS的属性表大小77
6.3.5使能服务变化特征值78
6.4使能协议栈80
6.5注册蓝牙处理事件80
6.6应用:协议栈采用内部RC运行83
第7章通用访问规范GAP84
7.1蓝牙GAP84
7.2GAP初始化安全模式配置85
7.3设备名称修改与外观设置87
7.3.1蓝牙设备名称设置87
7.3.2中文广播名称设置90
7.3.3蓝牙应用图标的设置93
7.4GAP初始化设置连接参数95
7.4.1GAP连接参数定义95
7.4.2连接参数配置96
7.5本章小结101
第8章蓝牙连接参数更新102
8.1蓝牙连接参数更新函数结构102
8.1.1连接更新的配置102
8.1.2连接参数更新描述103
8.1.3连接参数更新应答104
8.1.4主机协商结果处理104
8.2连接参数更新步骤105
8.3参数更新过程109
8.4本章总结112
第9章蓝牙广播初始化分析113
9.1nRF52832蓝牙BLE广播初始化113
9.1.1广播参数定义114
9.1.2广播模式配置117
9.1.3蓝牙广播的启动119
9.2不进入Idle无效模式124
9.3蓝牙BLE广播响应包125
第2篇蓝牙服务任务建立篇
第10章低功耗蓝牙BLE之LED灯任务的读/写130
10.1nRF52832蓝牙协议的分层130
10.1.1应用层131
10.1.2控制层132
10.1.3主协议栈层132
10.2通用访问规范(GAP)133
10.2.1角色133
10.2.2从机广播133
10.2.3主机扫描并发起连接134
10.3通用属性配置文件(GATT)134
10.3.1数据配置文件135
10.3.2服务135
10.3.3特性135
10.4定制私有文件服务137
10.4.1工程框架的搭建137
10.4.2私有主服务的建立137
10.4.3服务特性的设置139
10.4.4协议栈事件处理143
10.4.5应用层的实现144
10.5下载验证146
第11章蓝牙BLE的按键通知148
11.1原理分析148
11.2按键通知特性的建立148
11.2.1特性参数配置149
11.2.2GATT属性配置149
11.2.3特性添加150
11.3按键处理与通知数据上传152
11.3.1按键处理152
11.3.2通知数据上传函数153
11.4下载验证154
11.5连接后自动使能CCCD155
11.5.1连接时发起回调155
11.5.2更新从机属性信息156
第12章蓝牙BLE的电池服务159
12.1电池服务函数库159
12.1.1电池函数库文件的添加159
12.1.2电池服务建立160
12.1.3电池采样步骤164
12.2应用层的实现165
12.2.1电池服务的调用165
12.2.2电池参数值的采集166
12.2.3电池电量的更新168
12.2.4定时器设计171
12.2.5主函数编写172
12.3下载与测试173
第13章蓝牙心电服务的建立175
13.1工程项目的建立175
13.1.1主函数的建立176
13.1.2外设部分初始化__________176
13.1.3服务初始化177
13.2心率服务设计180
13.2.1心率服务包含的特性180
13.2.2身体测量位置特性的添加182
13.2.3心率服务特性的添加183
13.2.4心率数据接口格式185
13.2.5心率数据上传188
13.3设备信息服务设计191
13.4下载验证197
第14章蓝牙任务的UUID设置199
14.1UUID设置规则199
14.1.1蓝牙技术联盟UUID199
14.1.2供应商特定的UUID199
14.2程序中UUID的设置201
14.2.1蓝牙协议小组公共UUID设置201
14.2.2私有服务UUID设置202
14.2.3UUID类型切换205
14.3应用与调试206
第15章蓝牙派发回调机制208
15.1观察者模式分析208
15.1.1观察者observer模型208
15.1.2观察者observer运行机制211
15.1.3片上SoC事件派发214
15.2回调机制的验证215
15.3本章小结216
第3篇蓝牙数据传输与存储篇
第16章蓝牙BLE之蓝牙串口218
16.1蓝牙串口工程的建立218
16.1.1主函数的建立219
16.1.2外设部分初始化220
16.1.3服务初始化221
16.2蓝牙串口服务头文件的设计222
16.2.1串口服务函数声明222
16.2.2数据结构体设计222
16.3蓝牙串口服务的设计224
16.3.1开通应用主服务224
16.3.2蓝牙接收和发送特性的添加226
16.3.3应用层的实现228
16.4蓝牙串口数据通道的搭建228
16.4.1蓝牙事件派发函数228
16.4.2处理串口写事件229
16.4.3处理串口接收事件231
16.4.4数据包长度控制233
16.5下载验证236
第17章蓝牙BLE遥控器238
17.1遥控指令设置原理238
17.2遥控OLED显示239
17.2.1OLED显示原理239
17.2.2OLED驱动的编写241
17.2.3手机遥控OLED显示247
17.3应用与调试249
第18章蓝牙BLE温湿度检测250
18.1温湿度DHT11驱动250
18.2温湿度采集方法一253
18.2.1应用层初始化传感器253
18.2.2采集指令发送254
18.2.3下载与测试255
18.3温湿度采集方法二257
18.3.1初始化传感器257
18.3.2私有任务建立259
18.3.3采集温湿度数据上传261
18.3.4定时器的建立与启动262
18.3.5下载与调试263
18.4本章总结264
第19章蓝牙Flash存储之fstorage265
19.1蓝牙Flash存储265
19.2Fstorage存储编写API266
19.2.1Flash区域声明266
19.2.2写数据267
19.2.3读数据269
19.2.4整页擦除270
19.3程序存储操作的实现271
19.4应用与调试275
第20章蓝牙Flash存储之FDS276
20.1蓝牙Flash存储模块276
20.2FDS库函数API277
20.3FDS的读/写过程281
20.3.1FDS数据帧格式281
20.3.2FDS文件写入和查找方式282
20.3.3FDS数据更新284
20.3.4FDS数据擦除与垃圾回收284
20.4FDS方式编程方法285
20.4.1FDS配置参数285
20.4.2FDS配置流程287
20.5应用与调试293
第21章远程传输数据Flash存储294
21.1两种存储方式对比294
21.2蓝牙接收数据fstorage方式下存储295
21.2.1Fstorage模式初始化295
21.2.2Fstorage事件回调函数296
21.2.3数据接收回调处理297
21.2.4下载与测试298
21.3蓝牙接收数据FDS方式下存储301
21.3.1设置FDS数据格式301
21.3.2配置FDS的记录参数301
21.3.3初始化FDS文件系统302
21.3.4数据接收回调处理302
21.3.5下载与测试305
第22章nRF52xx蓝牙通信包307
22.1空中数据接口307
22.1.1空中数据包格式307
22.1.2广播频道PDU域格式309
22.1.3连接数据频道PDU域格式315
22.2广播包抓取分析316
22.2.1抓取的广播包特征317
22.2.2广播包分析318
22.3连接的数据包抓取321
22.3.1抓取数据包特征321
22.3.2数据包分析322
22.4本章小结323
第23章传输数据吞吐量324
23.1低功耗蓝牙的理论吞吐率324
23.1.1蓝牙4.0和蓝牙4.2的吞吐量325
23.1.2蓝牙5.0的吞吐量326
23.2传输速率的影响因素327
23.3nRF52xx蓝牙传输速率配置329
23.3.1吞吐量传输测试框架搭建329
23.3.2配置参数增大吞吐量335
23.4本章小结341
第24章蓝牙实现低功耗的方式342
24.1nRF52系列的两种功耗模式342
24.1.1系统开低功耗模式342
24.1.2系统关睡眠模式344
24.2nRF52降低功耗方法347
24.2.1硬件电路设计347
24.2.2降低功耗的改进方案349
第4篇综合篇
第25章青风nRF52开发板综合开机实验353
25.1开机测试目标353
25.2工程文件的搭建354
25.3软件编写357
25.3.1RTC定时时钟的编写357
25.3.2电池检测与显示362
25.3.3按键、电容触摸按键和W25Q16363
25.3.4MPU6050的移植366
25.4程序下载与测试367
参考文献374
第1章蓝牙5.0基础知识以及学习规划2
1.1蓝牙5.0基础知识2
1.1.1蓝牙5.0简介2
1.1.2蓝牙BLE协议栈结构3
1.2蓝牙BLE如何实现连接与通信5
1.2.1从机广播5
1.2.2主机扫描6
1.2.3建立连接7
1.2.4发送与接收数据8
1.3学习规划9
1.3.1蓝牙BLE基础工程搭建10
1.3.2蓝牙服务的建立10
1.3.3蓝牙数据传输10
1.3.4蓝牙参数及安全设置11
1.3.5从机蓝牙综合应用11
1.3.6主机的搭建以及组网12
第2章蓝牙BLE样例的建立13
2.1蓝牙BLE样例工程结构13
2.2蓝牙主函数21
2.2.1外设初始化23
2.2.2协议栈层配置25
2.2.3应用层配置28
2.2.4电源管理30
2.3下载验证31
第3章蓝牙程序信息Log显示34
3.1Log打印串口输出配置34
3.2Log打印RTT的输出配置37
3.3Log日志参数__________41
3.3.1Log日志输出颜色41
3.3.2Log日志时间戳41
3.3.3Log日志打印类型43
3.3.4模块配置的日志使能44
第4章蓝牙协议栈下的软件定时器47
4.1软件定时器47
4.2蓝牙BLE下软件定时器配置48
4.2.1BLE定时器声明48
4.2.2定时器开始定时51
4.2.3定时器超时处理52
4.2.4主函数编写52
4.3应用与调试53
第5章蓝牙协议栈下按键的使用55
5.1按键下控制触发LED灯55
5.1.1协议栈下板级设备配置55
5.1.2下载与验证59
5.2按键下的长按和短按59
5.2.1长按与短按的配置59
5.2.2按键数量的增加64
5.2.3长按与短按的分离66
5.3本章小结68
第6章蓝牙协议初始化69
6.1nRF52832蓝牙协议栈初始化函数结构69
6.2协议栈回复使能应答70
6.2.1协议栈使能70
6.2.2议栈时钟设置71
6.3协议栈默认配置的设置__________74
6.3.1配置链接数目和角色74
6.3.2配置MTU协商值76
6.3.3设置定制的UUID数目77
6.3.4GATTS的属性表大小77
6.3.5使能服务变化特征值78
6.4使能协议栈80
6.5注册蓝牙处理事件80
6.6应用:协议栈采用内部RC运行83
第7章通用访问规范GAP84
7.1蓝牙GAP84
7.2GAP初始化安全模式配置85
7.3设备名称修改与外观设置87
7.3.1蓝牙设备名称设置87
7.3.2中文广播名称设置90
7.3.3蓝牙应用图标的设置93
7.4GAP初始化设置连接参数95
7.4.1GAP连接参数定义95
7.4.2连接参数配置96
7.5本章小结101
第8章蓝牙连接参数更新102
8.1蓝牙连接参数更新函数结构102
8.1.1连接更新的配置102
8.1.2连接参数更新描述103
8.1.3连接参数更新应答104
8.1.4主机协商结果处理104
8.2连接参数更新步骤105
8.3参数更新过程109
8.4本章总结112
第9章蓝牙广播初始化分析113
9.1nRF52832蓝牙BLE广播初始化113
9.1.1广播参数定义114
9.1.2广播模式配置117
9.1.3蓝牙广播的启动119
9.2不进入Idle无效模式124
9.3蓝牙BLE广播响应包125
第2篇蓝牙服务任务建立篇
第10章低功耗蓝牙BLE之LED灯任务的读/写130
10.1nRF52832蓝牙协议的分层130
10.1.1应用层131
10.1.2控制层132
10.1.3主协议栈层132
10.2通用访问规范(GAP)133
10.2.1角色133
10.2.2从机广播133
10.2.3主机扫描并发起连接134
10.3通用属性配置文件(GATT)134
10.3.1数据配置文件135
10.3.2服务135
10.3.3特性135
10.4定制私有文件服务137
10.4.1工程框架的搭建137
10.4.2私有主服务的建立137
10.4.3服务特性的设置139
10.4.4协议栈事件处理143
10.4.5应用层的实现144
10.5下载验证146
第11章蓝牙BLE的按键通知148
11.1原理分析148
11.2按键通知特性的建立148
11.2.1特性参数配置149
11.2.2GATT属性配置149
11.2.3特性添加150
11.3按键处理与通知数据上传152
11.3.1按键处理152
11.3.2通知数据上传函数153
11.4下载验证154
11.5连接后自动使能CCCD155
11.5.1连接时发起回调155
11.5.2更新从机属性信息156
第12章蓝牙BLE的电池服务159
12.1电池服务函数库159
12.1.1电池函数库文件的添加159
12.1.2电池服务建立160
12.1.3电池采样步骤164
12.2应用层的实现165
12.2.1电池服务的调用165
12.2.2电池参数值的采集166
12.2.3电池电量的更新168
12.2.4定时器设计171
12.2.5主函数编写172
12.3下载与测试173
第13章蓝牙心电服务的建立175
13.1工程项目的建立175
13.1.1主函数的建立176
13.1.2外设部分初始化__________176
13.1.3服务初始化177
13.2心率服务设计180
13.2.1心率服务包含的特性180
13.2.2身体测量位置特性的添加182
13.2.3心率服务特性的添加183
13.2.4心率数据接口格式185
13.2.5心率数据上传188
13.3设备信息服务设计191
13.4下载验证197
第14章蓝牙任务的UUID设置199
14.1UUID设置规则199
14.1.1蓝牙技术联盟UUID199
14.1.2供应商特定的UUID199
14.2程序中UUID的设置201
14.2.1蓝牙协议小组公共UUID设置201
14.2.2私有服务UUID设置202
14.2.3UUID类型切换205
14.3应用与调试206
第15章蓝牙派发回调机制208
15.1观察者模式分析208
15.1.1观察者observer模型208
15.1.2观察者observer运行机制211
15.1.3片上SoC事件派发214
15.2回调机制的验证215
15.3本章小结216
第3篇蓝牙数据传输与存储篇
第16章蓝牙BLE之蓝牙串口218
16.1蓝牙串口工程的建立218
16.1.1主函数的建立219
16.1.2外设部分初始化220
16.1.3服务初始化221
16.2蓝牙串口服务头文件的设计222
16.2.1串口服务函数声明222
16.2.2数据结构体设计222
16.3蓝牙串口服务的设计224
16.3.1开通应用主服务224
16.3.2蓝牙接收和发送特性的添加226
16.3.3应用层的实现228
16.4蓝牙串口数据通道的搭建228
16.4.1蓝牙事件派发函数228
16.4.2处理串口写事件229
16.4.3处理串口接收事件231
16.4.4数据包长度控制233
16.5下载验证236
第17章蓝牙BLE遥控器238
17.1遥控指令设置原理238
17.2遥控OLED显示239
17.2.1OLED显示原理239
17.2.2OLED驱动的编写241
17.2.3手机遥控OLED显示247
17.3应用与调试249
第18章蓝牙BLE温湿度检测250
18.1温湿度DHT11驱动250
18.2温湿度采集方法一253
18.2.1应用层初始化传感器253
18.2.2采集指令发送254
18.2.3下载与测试255
18.3温湿度采集方法二257
18.3.1初始化传感器257
18.3.2私有任务建立259
18.3.3采集温湿度数据上传261
18.3.4定时器的建立与启动262
18.3.5下载与调试263
18.4本章总结264
第19章蓝牙Flash存储之fstorage265
19.1蓝牙Flash存储265
19.2Fstorage存储编写API266
19.2.1Flash区域声明266
19.2.2写数据267
19.2.3读数据269
19.2.4整页擦除270
19.3程序存储操作的实现271
19.4应用与调试275
第20章蓝牙Flash存储之FDS276
20.1蓝牙Flash存储模块276
20.2FDS库函数API277
20.3FDS的读/写过程281
20.3.1FDS数据帧格式281
20.3.2FDS文件写入和查找方式282
20.3.3FDS数据更新284
20.3.4FDS数据擦除与垃圾回收284
20.4FDS方式编程方法285
20.4.1FDS配置参数285
20.4.2FDS配置流程287
20.5应用与调试293
第21章远程传输数据Flash存储294
21.1两种存储方式对比294
21.2蓝牙接收数据fstorage方式下存储295
21.2.1Fstorage模式初始化295
21.2.2Fstorage事件回调函数296
21.2.3数据接收回调处理297
21.2.4下载与测试298
21.3蓝牙接收数据FDS方式下存储301
21.3.1设置FDS数据格式301
21.3.2配置FDS的记录参数301
21.3.3初始化FDS文件系统302
21.3.4数据接收回调处理302
21.3.5下载与测试305
第22章nRF52xx蓝牙通信包307
22.1空中数据接口307
22.1.1空中数据包格式307
22.1.2广播频道PDU域格式309
22.1.3连接数据频道PDU域格式315
22.2广播包抓取分析316
22.2.1抓取的广播包特征317
22.2.2广播包分析318
22.3连接的数据包抓取321
22.3.1抓取数据包特征321
22.3.2数据包分析322
22.4本章小结323
第23章传输数据吞吐量324
23.1低功耗蓝牙的理论吞吐率324
23.1.1蓝牙4.0和蓝牙4.2的吞吐量325
23.1.2蓝牙5.0的吞吐量326
23.2传输速率的影响因素327
23.3nRF52xx蓝牙传输速率配置329
23.3.1吞吐量传输测试框架搭建329
23.3.2配置参数增大吞吐量335
23.4本章小结341
第24章蓝牙实现低功耗的方式342
24.1nRF52系列的两种功耗模式342
24.1.1系统开低功耗模式342
24.1.2系统关睡眠模式344
24.2nRF52降低功耗方法347
24.2.1硬件电路设计347
24.2.2降低功耗的改进方案349
第4篇综合篇
第25章青风nRF52开发板综合开机实验353
25.1开机测试目标353
25.2工程文件的搭建354
25.3软件编写357
25.3.1RTC定时时钟的编写357
25.3.2电池检测与显示362
25.3.3按键、电容触摸按键和W25Q16363
25.3.4MPU6050的移植366
25.4程序下载与测试367
参考文献374
猜您喜欢