图书介绍

低功耗蓝牙智能硬件开发实战【2025|PDF|Epub|mobi|kindle电子书版本百度云盘下载】

低功耗蓝牙智能硬件开发实战
  • 谭康喜著 著
  • 出版社: 北京:人民邮电出版社
  • ISBN:9787115494443
  • 出版时间:2018
  • 标注页数:398页
  • 文件大小:105MB
  • 文件页数:422页
  • 主题词:蓝牙技术-通信设备-开发

PDF下载


点此进入-本书在线PDF格式电子书下载【推荐-云解压-方便快捷】直接下载PDF格式图书。移动端-PC端通用
种子下载[BT下载速度快]温馨提示:(请使用BT下载软件FDM进行下载)软件下载地址页直链下载[便捷但速度慢]  [在线试读本书]   [在线获取解压码]

下载说明

低功耗蓝牙智能硬件开发实战PDF格式电子书版下载

下载的文件为RAR压缩包。需要使用解压软件进行解压得到PDF格式图书。

建议使用BT下载工具Free Download Manager进行下载,简称FDM(免费,没有广告,支持多平台)。本站资源全部打包为BT种子。所以需要使用专业的BT下载软件进行下载。如BitComet qBittorrent uTorrent等BT下载工具。迅雷目前由于本站不是热门资源。不推荐使用!后期资源热门了。安装了迅雷也可以迅雷进行下载!

(文件页数 要大于 标注页数,上中下等多册电子书除外)

注意:本站所有压缩包均有解压码: 点击下载压缩包解压工具

图书目录

第1章 低功耗蓝牙简介1

1.1 概述1

1.2 蓝牙历史版本介绍1

1.2.1 蓝牙1.1标准和1.2标准1

1.2.2 蓝牙2.0标准2

1.2.3 蓝牙2.1+EDR标准2

1.2.4 蓝牙3.0+HS标准3

1.2.5 蓝牙4.0标准3

1.2.6 蓝牙4.1标准3

1.2.7 蓝牙4.2标准4

1.2.8 蓝牙5.0标准5

1.2.9 蓝牙2016年技术蓝图5

1.2.10 蓝牙版本演进编年史6

1.3 蓝牙4.0概述7

1.3.1 什么是蓝牙4.07

1.3.2 蓝牙4.0的架构7

1.3.3 蓝牙4.0协议增加的新特性7

1.4 蓝牙4.0核心架构分析8

1.4.1 低功耗蓝牙概述8

1.4.2 核心系统架构10

1.4.3 核心构架模块介绍13

1.5 基于Bluetooth 4.0的新应用14

1.6 BLE、ZigBee和WiFi的介绍和选择16

1.6.1 ZigBee技术介绍16

1.6.2 WiFi技术介绍17

1.6.3 BLE、ZigBee和WiFi的选择17

第2章 Android蓝牙系统框架和代码结构19

2.1 概述19

2.2 Application Framework20

2.3 Bluetooth Process21

2.4 Bluetooth JNI21

2.5 Bluetooth HAL21

2.6 Bluedroid Stack21

2.7 Bluedroid的代码结构分析22

2.7.1 MAIN22

2.7.2 BTA23

2.7.3 BTIF23

2.7.4 HCI27

2.7.5 STACK29

第3章 GKI模块简介31

3.1 概述31

3.2 GKI事件的原理31

3.3 GKI主要数据结构31

3.4 GKI管理的线程35

3.5 线程相关主要函数36

GKI_create_task()函数36

3.6 消息相关主要函数介绍39

3.6.1 GKI_wait()函数39

3.6.2 GKI_send_event()函数41

3.6.3 GKI_send_msg()函数42

3.6.4 GKI_read_mbox()函数43

3.6.5 pthread_cond_wait()函数43

3.7 动态内存池管理主要函数44

第4章 Bluedroid的消息传递机制45

4.1 概述45

4.2 消息传递相关结构体的定义46

4.3 消息的动态内存的获取46

4.4 消息的初始化及发送49

4.5 消息的读取和处理51

4.6 消息的完整数据结构剖析54

第5章 TASK简介57

5.1 概述57

5.1.1 TASK之间的消息传递57

5.1.2 事件的类型58

5.2 TASK处理消息的流程58

第6章 Bluedroid状态机简介66

6.1 Profile状态机介绍66

6.2 Profile状态机的结构设计67

6.3 状态机的注册69

6.4 状态机的驱动力来源70

6.5 Action函数列表71

6.6 状态机的状态集合72

6.7 Event处理函数介绍74

第7章 HCI接口层简介76

7.1 概述76

7.2 接口间的函数调用关系76

7.3 bt_hc_if接口的定义和获取77

7.3.1 bt_hc_if接口定义77

7.3.2 bt_hc_if接口的获取78

7.4 hc_callbacks函数集合的定义和注册78

7.4.1 hc_callbacks函数集合的定义78

7.4.2 hc_callbacks函数集合的注册79

7.5 bluetoothHCLiblnterface的init()函数介绍80

7.6 libbt-vendor接口的获取、初始化和使用81

7.6.1 libbt-vendor的接口函数集合81

7.6.2 libbt-vendor接口的获取和使用82

7.6.3 libbt-vendor的初始化83

7.7 命令和数据的发送与接收84

7.7.1 命令和数据的发送接口84

7.7.2 命令处理结果和数据的接收接口86

7.7.3 H4层接收解析函数的分析89

7.8 HCI裸数据的分析95

7.9 本章总结96

第8章 L2CAP简介98

8.1 概述98

8.2 L2CAP的组成部分和功能99

8.2.1 L2CAP的两个组成部分99

8.2.2 L2CAP的功能99

8.3 设备间的操作100

8.3.1 操作模式100

8.3.2 L2CAP连接类型100

8.4 L2CAP数据包100

8.4.1 L2CAP数据包格式101

8.4.2 信号包格式101

8.5 L2CAP的使用102

8.6 LE数据包格式分析102

8.7 L2CAP的CSM(Channel State Machine)介绍104

8.7.1 子状态机介绍105

8.7.2 OPEN子状态机处理函数107

8.8 Profile在L2CAP的注册和函数回调机制111

8.8.1 Profile的注册111

8.8.2 Profile的注册回调函数集合的回调机制114

8.9 L2CAP的数据的发送和接收过程115

8.9.1 数据的发送115

8.9.2 数据的接收116

第9章 Bluedroid的初始化流程122

9.1 概述122

9.2 协议栈的bluetoothlnterface接口的获取过程122

9.3 打开蓝牙的接口的调用123

9.4 第一阶段:前期准备阶段124

9.5 第二阶段:蓝牙Firmware的加载阶段127

9.5.1 Firmware加载的总体思想127

9.5.2 发起Firmware加载的入口128

9.5.3 Firmware加载的过程128

9.6 第三阶段:后期初始化阶段131

9.6.1 底层协议栈的初始化132

9.6.2 上层协议栈的初始化136

第10章 蓝牙设备的扫描流程145

10.1 概述145

10.2 JNI层扫描入口和协议栈回调机制145

10.2.1 扫描入口145

10.2.2 回调机制147

10.3 蓝牙扫描流程的启动过程147

10.4 蓝牙设备的Inquiry过程152

10.5 蓝牙设备的Discover过程156

10.6 本章总结158

第11章 SMP简介160

11.1 什么是SMP160

11.2 SM在Host侧的位置161

11.3 SMP的流程介绍161

11.3.1 SM第1阶段——配对特征的交换162

11.3.2 第2阶段——根据特征信息配对165

11.3.3 第3阶段——Key的分发过程173

11.4 SMP协议包分析173

11.5 问和答175

第12章 LE属性协议简介177

12.1 概述177

12.2 属性的构成177

12.3 属性值的介绍179

12.4 属性数据库的构建过程180

12.4.1 Gatt Profile分层设计180

12.4.2 Gatt Service的构建181

12.4.3 特性的构建182

12.5 获取属性数据库的过程183

12.5.1 GATT服务的获取和设置过程183

12.5.2 服务的查询过程188

12.5.3 包含服务、特性和特性描述的查询过程191

第13章 LE属性数据库扫描过程的代码分析195

13.1 Discover过程的发起195

13.2 主要服务的Discover过程197

13.3 Discover过程回调函数的注册过程210

13.4 包含服务的Discover过程211

13.5 特性的Discover过程216

13.6 特性描述的Discover过程218

13.7 Discover过程的结束224

13.8 服务的上报过程226

13.8.1 服务的查询和发起上报过程226

13.8.2 上报服务的回调函数的注册过程227

13.8.3 服务的上报过程230

13.8.4 服务上报过程的日志分析237

第14章 低功耗蓝牙HID设备的连接过程分析242

14.1 概述242

14.2 连接过程的发起242

14.3 Hid服务的特性、特性描述的读取和存储248

14.3.1 查询和存储过程248

14.3.2 查询结果列表和分析252

14.4 连接过程的完成和输入设备的创建254

14.4.1 连接过程的完成和创建输入设备254

14.4.2 Hid按键的上报257

第15章 Find Me功能的实现260

15.1 概述260

15.2 Find Me功能的技术原理260

15.3 Find Me功能的代码实现261

15.3.1 Find Me功能的触发函数261

15.3.2 BluetoothGatt接口的获取262

15.3.3 Hid设备列表的获取262

第16章 低功耗蓝牙电池服务和电量的读取264

16.1 概述264

16.2 电量读取和电量变化回调函数的注册264

16.3 电量读取的发起和电量变化特性配置描述的设置266

16.4 电池电量读取的btsnoop数据解析267

第17章 LE设备接近配对的实现269

17.1 概述269

17.2 RSSI与LQI、接收距离之间的关系270

17.3 接近配对的简化实现271

17.4 接近配对代码示例272

第18章 基于LE广播的无线电子设备的唤醒方法275

18.1 概述275

18.2 无线电子设备的唤醒的硬件原理276

18.3 无线电子设备的唤醒的软件实现276

18.3.1 无线电子设备关机后唤醒的软件逻辑实现276

18.3.2 无线电子设备通电后唤醒的软件逻辑实现278

18.4 传输唤醒白名单列表和启动唤醒功能的命令的定义278

18.5 唤醒广播包的数据格式279

18.6 唤醒广播包的处理逻辑281

18.6.1 主机的处理逻辑281

18.6.2 设备的广播逻辑282

18.7 唤醒广播包的数据分析283

第19章 基于LE广播的系统Recovery的操作实现284

19.1 概述284

19.2 小米电视和盒子的系统恢复模式的介绍284

19.3 基于接收广播按键信息的Recovery系统框架285

19.4 广播包按键信息的定义286

19.5 进入Recovery的方法286

19.6 按键广播包的接收、解析和上报的代码分析287

第20章 蓝牙HID设备OTA升级的设计和实现297

20.1 概述297

20.2 Hid设备OTA升级总体流程设计297

20.3 Hid设备OTA升级命令定义298

20.4 Hid设备OTA升级的总体程序设计305

20.4.1 总体设计305

20.4.2 Kernel层HidrawgetReport()的实现过程306

20.4.3 Kernel层HidrawsetReport()的实现过程307

20.4.4 JNI层Hidraw getReport函数的实现308

20.4.5 JNI层Hidraw setReport函数的实现310

20.5 Java层OTA升级程序示例312

20.6 Hidraw setReport、getReport命令的数据分析320

第21章 加速度传感器在低功耗蓝牙设备上的应用325

21.1 概述325

21.2 蓝牙输入相关子系统、G-Sensor子系统简介325

21.3 加速度传感器设备的创建过程326

21.3.1 Bluedroid发起的设备注册过程326

21.3.2 Kernel中Hid设备的创建过程327

21.4 加速度传感器的驱动注册过程330

21.5 Sensor数据从Bluedroid到传感器驱动的传输过程336

第22章 LE系统快速更新连接参数的设计和实现340

22.1 概述340

22.2 更新连接参数的常规方法、快速更新连接参数碰到的困难及解决思路343

22.2.1 更新连接参数的常规方法介绍343

22.2.2 快速更新连接参数碰到的困难及解决思路345

22.3 快速更新连接参数的实现及应用345

22.3.1 快速更新连接参数的实现方法345

22.3.2 快速更新连接参数在语音传输中的应用348

第23章 LE语音编解码和传输350

23.1 概述350

23.2 音频采集、处理和蓝牙传输的软硬件过程351

23.3 ADPCM介绍353

23.3.1 ADPCM的概念353

23.3.2 ADPCM编码框图354

23.4 遥控器语音传输的总体流程354

23.5 主机端的语音数据的接收处理流程356

23.5.1 传统语音数据的接收处理流程356

23.5.2 基于Hidraw接口的语音数据的接收处理流程356

23.6 基于ADPCM的一种语音压缩编码数据的传输格式定义357

23.6.1 语音压缩编码数据起始帧的定义357

23.6.2 语音压缩编码数据桢的第1部分定义358

23.6.3 语音压缩编码数据桢其他部分定义358

23.6.4 语音压缩编码数据结束帧的定义358

23.6.5 完整语音压缩编码数据桢的格式定义359

23.7 基于ADPCM的一种语音压缩编码数据的接收数据的格式解析359

23.7.1 语音压缩编码数据起始帧的接收数据格式解析359

23.7.2 语音压缩编码数据的数据帧的第1帧的第1部分的接收数据格式解析360

23.7.3 语音压缩编码数据的数据帧第2帧的第1部分的接收数据格式解析361

23.7.4 语音压缩编码数据结束帧的接收数据格式解析362

23.8 基于Hidraw的语音压缩编码数据的接收和处理的代码示例362

23.8.1 /dev/hidrawX设备的寻找过程362

23.8.2 ADPCM语音压缩编码数据的读取和解码的代码示例364

第24章 开发工具372

24.1 概述372

24.2 Ellisys蓝牙协议分析仪372

24.3 Ellisys HCI分析375

24.4 Ellisys频谱分析376

24.5 Ellisys时序和逻辑分析377

24.6 Ellisys空中抓包378

24.7 Ellisys组网分析380

24.8 Ellisys集成化音频分析380

24.9 其他381

第25章 蓝牙系统Bug分析383

25.1 概述383

25.2 内存操作越界引发蓝牙重启的一个Bug分析384

25.2.1 内存操作越界Bug描述384

25.2.2 内存操作越界引发蓝牙重启的Bug分析过程385

25.3 系统IO繁忙时写btsnoop日志效率低导致蓝牙通信卡顿的Bug分析389

25.3.1 写btsnoop日志效率低的Bug描述389

25.3.2 写btsnoop日志效率低的Bug分析389

25.3.3 Bug的解决方法390

25.4 蓝牙数据总线丢失数据导致蓝牙重启391

25.4.1 导致蓝牙重启的Bug描述391

25.4.2 导致蓝牙重启的日志分析391

25.4.3 解决问题的方法394

25.5 蓝牙核心协议规范关于断连接流程的设计缺陷395

25.5.1 断连接流程的设计缺陷引发的Bug描述395

25.5.2 问题背景介绍395

25.5.3 Bug分析过程396

25.5.4 解决问题的方法398

热门推荐