新書推薦:
《
中国国际法年刊(2023)
》
售價:NT$
539.0
《
早点知道会幸福的那些事
》
售價:NT$
295.0
《
迈尔斯普通心理学
》
售價:NT$
760.0
《
古典的回響:溪客舊廬藏明清文人繪畫
》
售價:NT$
1990.0
《
掌故家的心事
》
售價:NT$
390.0
《
孤独传:一种现代情感的历史
》
售價:NT$
390.0
《
家、金钱和孩子
》
售價:NT$
295.0
《
量价关系——透视股票涨跌脉络
》
售價:NT$
340.0
|
內容簡介: |
本书主要介绍低功耗蓝牙5.x的开发技术,主要内容包括开发环境的搭建、小硬件系统、广播的实现、双向通信的实现、电池电量服务的添加、私有服务的添加、配对和绑定功能的实现、主机扫描、主机连接、主从一体的实现、多主多从的实现、高速率通信的实现、长距离通信的实现、扩展广播数据包的实现、基于QSPI驱动LCD、基于FreeRTOS的复杂应用、FDS的实现、OTA的实现、基于串口的DFU实现、PTR9818模块的开发等内容。通过本书的学习,读者不仅可以掌握低功耗蓝牙5.x的开发技术,也可以学习物联网的知识、培养物联网的思维,还可以提高自身的动手能力和创新能力。
|
關於作者: |
谭晖,男,博士,毕业于哈尔滨工业大学,现任深圳市蓝科迅通科技有限公司总经理。在哈尔滨工业大学多年从事专用通信科研工作,曾获国家科技进步奖,国家教委科技进步奖,省科技进步奖等,拥有国内外多项发明专利,长期从事中短距离无线技术,低功耗智能蓝牙,物联网及相关技术的研究及创新应用。
|
目錄:
|
目 录第1章 低功耗蓝牙5.x开发环境之搭建(1)1.1 基于Nordic nRF52840 DK开发环境之搭建(1)1.1.1 SES的搭建(1)1.1.2 Keil MDK的搭建(8)1.1.3 其他工具的安装(9)1.2 nRF52840 DK开发板上的烧写器介绍(13)1.2.1 简介(13)1.2.2 nRF52840 DK开发板简介(13)1.2.3 nRF52840 DK开发板的烧写方式(13)1.2.4 PTR9818介绍(15)1.2.5 PTR9818模块的固件烧写方式(16)1.2.6 APTR-xxxx-EVB低功耗蓝牙模块评估板(18)1.3 nRF5 SDK介绍和目录结构解读(19)1.4 SES集成开发环境的使用(23)1.5 如何将工程移植到不同的芯片(26)1.5.1 在SES中将nRF52832的工程移植到nRF52840(26)1.5.2 Softdevice协议栈介绍(31)1.5.3 Log打印功能(36)1.5.4 芯片选型表(38)第2章 实验1:低功耗蓝牙5.x SoC之nRF52840小硬件系统(41)2.1 实验目标(41)2.2 nRF52840小硬件系统电路(41)2.2.1 供电方式(42)2.2.2 内部电源稳压方式(43)2.2.3 时钟电路(45)2.2.4 匹配电路(46)2.2.5 去耦电容(46)2.2.6 USB电路(46)2.2.7 NFC电路(47)2.3 nRF52840硬件设计的注意事项(48)2.4 实验小结(50)第3章 实验2:低功耗蓝牙5.x广播的实现(51)3.1 实验目标(51)3.2 实验准备(51)3.3 背景知识(51)3.3.1 广播(51)3.3.2 广播数据包的格式(52)3.3.3 常见的广播内容(52)3.3.4 广播数据包的类型(53)3.4 实验步骤(54)3.4.1 低功耗蓝牙5.x广播的初始化(54)3.4.2 低功耗蓝牙5.x广播名称的修改(55)3.4.3 广播内容和广播参数的修改(56)3.4.4 代码实战(60)3.5 实验小结(65)第4章 实验3:低功耗蓝牙5.x双向通信的实现(67)4.1 实验目标(67)4.2 实验准备(67)4.3 背景知识(67)4.3.1 低功耗蓝牙5.x双向通信的基本概念(67)4.3.2 低功耗蓝牙5.x双向通信的连接建立过程(70)4.4 实验步骤(70)4.4.1 低功耗蓝牙5.x串口通信服务的实现(71)4.4.2 main函数的解析(75)4.4.3 协议栈初始化分析(75)4.5 低功耗蓝牙5.x的传输速率(77)4.5.1 传输速率的理论值(77)4.5.2 影响传输速率的主要因素(79)4.5.3 代码实例测试(79)4.5.4 实际测试(81)4.5.5 实验分析(85)4.6 开发调试工具(85)4.6.1 nrfjprog命令行工具(85)4.6.2 RTT打印Log(86)4.7 资料学习(87)4.8 实验小结(89)第5章 实验4:添加电池电量服务(91)5.1 实验目标(91)5.2 实验准备(91)5.3 背景知识(91)5.4 实验步骤(92)5.5 应用固件的烧写和调试(103)5.5.1 编译和烧写(103)5.5.2 查看电池电量服务数据(103)5.5.3 添加电池电量服务的注意事项(104)5.5.4 实验观察(104)5.6 实验小结(104)第6章 实验5:添加私有服务(105)6.1 实验目标(105)6.2 实验准备(105)6.3 背景知识(105)6.4 实验步骤(106)6.4.1 移植库文件(106)6.4.2 修改sdk_config.h中相应的宏(107)6.4.3 初始化LBS(107)6.4.4 修改LBS中LED的特性(111)6.4.5 修改按键的逻辑(113)6.5 应用的实验与测试(114)6.5.1 应用固件的烧写与测试(114)6.5.2 实验观察(115)6.6 实验小结(115)第7章 实验6:添加配对、绑定功能(117)7.1 实验目标(117)7.2 实验准备(117)7.3 背景知识(117)7.3.1 配对和绑定的定义(117)7.3.2 相关概念知识(118)7.3.3 绑定的流程(119)7.3.4 绑定的方式(等级)(120)7.3.5 例程讲解(120)7.3.6 与绑定功能相关的常用API函数(120)7.4 实验步骤(121)7.4.1 绑定模块移植(121)7.4.2 在例程ble_app_hrs中添加NUS(122)7.4.3 Passkey配对模式的实现(124)7.4.4 数字比较的实现(125)7.5 实验拓展(127)7.6 实验小结(128)第8章 实验7:低功耗蓝牙的主机扫描(129)8.1 实验目标(129)8.2 实验准备(129)8.3 背景知识(129)8.3.1 广播的概念(129)8.3.2 扫描的概念(130)8.3.3 主机扫描的原理(130)8.3.4 主动扫描和被动扫描(131)8.4 实验步骤(131)8.4.1 扫描例程讲解(131)8.4.2 扫描附近所有设备(132)8.4.3 筛选广播数据包中的数据(134)8.5 实验小结(135)第9章 实验8:低功耗蓝牙的主机连接(137)9.1 实验目标(137)9.2 实验准备(137)9.3 背景知识(137)9.3.1 连接的概念(137)9.3.2 连接的过程(138)9.3.3 连接的重要参数(138)9.3.4 连接参数的优化(139)9.3.5 iOS对连接参数的要求(139)9.4 实验步骤(139)9.5 实验小结(141)第10章 实验9:低功耗蓝牙主从一体的实现(143)10.1 实验目标(143)10.2 实验准备(143)10.3 背景知识(143)10.4 实验步骤(144)10.4.1 低功耗蓝牙主从一体功能的实现(144)10.4.2 低功耗蓝牙主从一体功能的演示(149)10.5 实验小结(151)第11章 实验10:低功耗蓝牙多主多从的实现(153)11.1 实验目标(153)11.2 实验准备(153)11.3 背景知识(153)11.4 实验步骤(154)11.4.1 低功耗蓝牙多主多从功能的实现(154)11.4.2 低功耗蓝牙多主多从功能的演示(157)11.5 实验小结(158)第12章 实验11:LE 2M PHY高速率通信的实现(159)12.1 实验目标(159)12.2 实验准备(159)12.3 背景知识(159)12.3.1 低功耗蓝牙LE 2M PHY高速率通信(159)12.3.2 低功耗蓝牙数据包的组成(160)12.3.3 低功耗蓝牙数据包的完整传输周期(161)12.3.4 低功耗蓝牙的数据吞吐率(162)12.3.5 低功耗蓝牙LE 2M PHY高速率通信的应用(163)12.4 实验步骤(163)12.4.1 SDK例程测试(163)12.4.2 LE 2M PHY高速率通信的实现(166)12.5 实验小结(167)第13章 实验12:低功耗蓝牙长距离通信的实现(169)13.1 实验目标(169)13.2 实验准备(169)13.3 背景知识(169)13.3.1 链路预算和无线电波传播损耗(170)13.3.2 长距离通信的编码(171)13.3.3 长距离通信的传输速率(172)13.3.4 长距离通信的应用创新(173)13.4 实验步骤(173)13.4.1 长距离通信的PHY配置和数据吞吐率测试(173)13.4.2 低功耗蓝牙5.x长距离通信的实现(176)13.4.3 长距离通信的测试(177)13.5 实验小结(177)第14章 实验13:低功耗蓝牙扩展广播数据包的实现(179)14.1 实验目标(179)14.2 实验准备(179)14.3 背景知识(179)14.3.1 低功耗蓝牙5.x扩展广播数据包的格式(180)14.3.2 低功耗蓝牙5.x扩展广播数据包的应用场景(182)14.4 实验步骤(182)14.5 实验小结(184)第15章 实验14:基于SPI驱动OLED(185)15.1 实验目标(185)15.2 实验准备(185)15.3 背景知识(185)15.3.1 SPI简介(185)15.3.2 SPI的工作方式(186)15.3.3 OLED简介(187)15.4 实验步骤(187)15.5 实验小结(193)第16章 实验15:基于QSPI驱动LCD(195)16.1 实验目标(195)16.2 实验准备(195)16.3 背景知识(195)16.3.1 QSPI简介(195)16.3.2 LCD模块简介(196)16.3.3 QSPI接口与LCD模块的连接(196)16.4 实验步骤(198)16.5 实验小结(206)第17章 实验16:基于FreeRTOS实现复杂应用(207)17.1 实验目标(207)17.2 实验准备(207)17.3 背景知识(207)17.3.1 FreeRTOS简介(207)17.3.2 在RTOS中自定义线程(208)17.3.3 RTOS的移植(209)17.4 实验步骤(209)17.5 实验小结(214)第18章 实验17:FDS的实现(215)18.1 实验目标(215)18.2 实验准备(215)18.3 背景知识(215)18.3.1 FDS简介(215)18.3.2 FDS的实现原理(216)18.3.3 FDS区域(216)18.3.4 FDS的操作类型(217)18.3.5 FDS的常用API函数简介(217)18.3.6 使用FDS的注意事项(219)18.4 实验步骤(219)18.4.1 FDS模块的移植(219)18.4.2 FDS存储功能的实现(220)18.5 实验小结(225)第19章 实验18:固件空中升级(OTA)的实现(227)19.1 实验目标(227)19.2 实验准备(227)19.3 背景知识(227)19.3.1 DFU简介(227)19.3.2 OTA简介(229)19.3.3 基于Nordic的SDK实现DFU的原理(229)19.4 实验步骤(230)19.5 实验关键代码与实验要点(233)19.5.1 ble_app_buttonless_dfu服务的关键代码(233
|
|