logo资料库

BLE4.0低功耗蓝牙协议总结.pdf

第1页 / 共272页
第2页 / 共272页
第3页 / 共272页
第4页 / 共272页
第5页 / 共272页
第6页 / 共272页
第7页 / 共272页
第8页 / 共272页
资料共272页,剩余部分请下载后查看
BLE4.0 低功耗蓝牙协议总结 编写:刘权 作者保留本文的所有版权 (本文得以面世感谢长沙景嘉微电子股份有限公司)
版权所有 目 录 版本控制 ........................................................................................................................................... i 第一章 协议组成图......................................................................................................................... 1 1.1、协议由 HOST 层和 CONTROLLER 层组成 ....................................................................... 1 1.1.1、CONTROLLER 组成 ................................................................................................ 1 1.1.2、HOST 组成 ............................................................................................................. 2 第二章 控制器 ................................................................................................................................ 2 2.1、PHY 物理层 ...................................................................................................................... 2 2.1.1、频段....................................................................................................................... 2 2.1.2、调制....................................................................................................................... 2 2.1.3、射频信道 ............................................................................................................... 3 2.1.4、发射功率 ............................................................................................................... 3 2.2、链路层描述 ...................................................................................................................... 4 2.2.1、链路层的状态机 ................................................................................................... 4 2.2.2、状态描述 ............................................................................................................... 5 2.2.3、bit 数据流格式 ..................................................................................................... 7 2.2.4、Preamble 前导码 .................................................................................................. 8 2.2.4、Access Address 接入地址 ..................................................................................... 9 2.2.6、Cyclic Redundancy Check (CRC) 循环冗余码校验............................................. 11 2.2.7、DATA WHITENING 数据白化 ............................................................................... 11 2.3、链路层报文结构 ............................................................................................................ 13 2.3.1、PDU 的报头和长度 ............................................................................................. 14 2.3.2、广播通道的 PDU 格式 ........................................................................................ 15 2.3.3、数据通道的 PDU 格式 ........................................................................................ 18 2.4、链路层设备滤波 ............................................................................................................ 20 2.5、NRF51822 的 Radio ........................................................................................................ 21 2.5.1、EasyDMA ............................................................................................................. 21 2.5.2、包结构 ................................................................................................................. 22 2.5.3、设备地址--白名单 .............................................................................................. 26 2.5.4、Radio 的状态机和时间参数............................................................................... 27 2.5.5、Radio 的基本配置 .............................................................................................. 32 2.6、信道................................................................................................................................ 32 2.6.1、调频..................................................................................................................... 34 2.6.2、自适应调频 ......................................................................................................... 35 2.7、非连接状态 .................................................................................................................... 40 2.7.1、就绪态 ................................................................................................................. 40 2.7.2、广播态 ................................................................................................................. 40 2.7.2.1、广播通道选择 .......................................................................................... 40 2.7.2.2、广播间隔 .................................................................................................. 41 2.7.2.3、非定向可连接广播事件(ADV_IND) ........................................................ 42 2.7.2.4、定向可连接广播事件(ADV_DIRECT_IND) ............................................... 44 2.7.2.5、非定向不可连接事件(ADV_NONCONN_IND) ......................................... 45 2.7.2.6、可发现不可连事件(ADV_DISCOVER_IND/ADV_SCAN_IND) ................... 46 i
版权所有 2.7.3、扫描态 ................................................................................................................. 46 2.7.4、发起态 ................................................................................................................. 47 2.7.5、软件设计广播状态流程图 ................................................................................. 47 2.8、连接状态 ........................................................................................................................ 48 2.8.1、连接事件 ............................................................................................................. 49 2.8.2、监管超时 ............................................................................................................. 50 2.8.3、连接事件传输窗口 ............................................................................................. 50 2.8.4、连接状态--主机 .................................................................................................. 54 2.8.5、连接状态--从机 .................................................................................................. 55 2.8.6、连接事件关闭 ..................................................................................................... 57 2.8.7、窗口扩展 ............................................................................................................. 58 2.8.8、软件设计连接态流程图 ..................................................................................... 60 2.9、空中接口包 .................................................................................................................... 62 2.9.1、广播通道 PDU..................................................................................................... 62 2.9.1.1、广播数据的结构 ...................................................................................... 62 2.9.1.1.1、广播类型定义 AD Type ................................................................ 63 2.9.1.1.2、广播数据定义 AD Data................................................................. 64 2.9.1.2、Advertising PDUs ...................................................................................... 70 2.9.1.2.1、ADV_IND、ADV_NONCONN_IND、ADV_SCAN_IND.................... 70 2.9.1.2.2、ADV_DIRECT_IND .......................................................................... 71 2.9.1.3、Scanning PDUs .......................................................................................... 71 2.9.1.3.1、SCAN_REQ ..................................................................................... 71 2.9.1.3.2、SCAN_RSP ...................................................................................... 72 2.9.1.4、Initialing PDUS .......................................................................................... 73 2.9.1.4.1、CONNECT_REQ .............................................................................. 73 2.9.2、数据通道 PDU..................................................................................................... 73 2.9.2.1、LL Data PDU .............................................................................................. 74 2.9.2.2、LL Control PDU ......................................................................................... 75 2.9.2.2.1、LL_CONNECTION_UPDATE_REQ .................................................... 77 2.9.2.2.2、LL_CHANNEL_MAP_REQ ............................................................... 78 2.9.2.2.3、LL_TERMINATE_IND ...................................................................... 79 2.9.2.2.4、LL_ENC_REQ .................................................................................. 80 2.9.2.2.5、LL_ENC_RSP ................................................................................... 81 2.9.2.2.6、LL_START_ENC_REQ ...................................................................... 82 2.9.2.2.7、LL_START_ENC_RSP ....................................................................... 83 2.9.2.2.8、LL_UNKNOWN_RSP ....................................................................... 83 2.9.2.2.9、LL_FEATURE_REQ .......................................................................... 83 2.9.2.2.10、LL_FEATURE_RSP ......................................................................... 84 2.9.2.2.11、LL_PAUSE_ENC_REQ .................................................................... 85 2.9.2.2.12、LL_PAUSE_ENC_RSP .................................................................... 85 2.9.2.2.13、LL_VERSION_IND ......................................................................... 85 2.9.2.2.14、LL_REJECT_IND ............................................................................ 87 2.9.3、连接态的数据包确认和重发以及多数据发送标志 ......................................... 89 2.9.3.1、序列号(SN) ............................................................................................... 89 ii
版权所有 2.9.3.2、预期序列号(NESN) .................................................................................. 90 2.9.3.3、更多数据(MD) ......................................................................................... 90 2.9.3.4、SN、NESN 和 MD 应用的例子 ................................................................ 90 2.9.3.5、确认和重发的软件实现 .......................................................................... 94 2.10、直接测试单元(DTU) .................................................................................................... 96 2.10.1、UART 测试接口 ................................................................................................. 96 2.10.2、测试模式 RADIO 配置 ...................................................................................... 97 2.10.3、发射机测试 ....................................................................................................... 98 2.10.4、接收机测试 ....................................................................................................... 99 2.10.5、命令和事件 ..................................................................................................... 100 2.10.5.1、命令...................................................................................................... 100 2.10.5.2、事件...................................................................................................... 102 2.10.5.2.1、测试状态事件 ........................................................................... 103 2.10.5.2.2、测试报告报文事件 ................................................................... 103 2.10.6、DTU 软件设计 ................................................................................................. 104 2.10.7、NRF51822 的测试结果 ................................................................................... 106 2.10.8、测试结果对应的命令和事件 ......................................................................... 109 2.11、主机控制接口(HCI) .................................................................................................... 113 2.11.1、物理接口 ......................................................................................................... 113 2.11.1.1、UART ..................................................................................................... 114 2.11.2、逻辑接口—HCI 包格式 .................................................................................. 115 2.11.2.1、命令数据包 .......................................................................................... 115 2.11.2.2、事件数据包 .......................................................................................... 117 2.11.2.3、数据包 .................................................................................................. 119 2.11.3、命令和事件类型 ............................................................................................. 120 2.11.4、HCI 软件设计 .................................................................................................. 130 2.11.5、HCI 模拟数据传输 .......................................................................................... 131 第三章 主机 ................................................................................................................................ 135 3.1、逻辑链路控制和适配协议(L2CAP) ............................................................................. 138 3.1.1、L2CAP 信道 ....................................................................................................... 138 3.1.2、L2CAP 数据包格式 ........................................................................................... 139 3.1.3、低功耗信令信道包格式 ................................................................................... 140 3.1.3.1、命令拒绝 ................................................................................................ 141 3.1.3.2、连接参数更新请求和响应 .................................................................... 142 3.2、属性构成 ...................................................................................................................... 145 3.2.1、属性句柄(Attribute Handle) ............................................................................. 148 3.2.2、属性类型(Attribute Type) ................................................................................. 149 3.2.3、属性值(Attribute Value) .................................................................................... 151 3.2.4、属性许可(Attribute Permissions)...................................................................... 151 3.3、GATT 服务器构成 ........................................................................................................ 153 3.3.1、服务................................................................................................................... 154 3.3.1.1、服务声明 ................................................................................................ 155 3.3.1.1.1、服务声明格式 ............................................................................. 157 3.3.2、包含服务«Include» ........................................................................................... 158 iii
版权所有 3.3.3、属性类型分组 ................................................................................................... 159 3.3.4、特性«Characteristic» ........................................................................................ 160 3.3.4.1、特性声明 ................................................................................................ 161 3.3.4.1.1、属性值—特性性质(Characteristic Properties) ........................... 161 3.3.4.1.2、属性值—特性的属性句柄(Characteristic Value Attribute Handle) ....................................................................................................................... 162 3.3.4.1.3、属性值—特性的属性类型(Characteristic UUID) ....................... 162 3.3.4.2、特性值声明 ............................................................................................ 162 3.3.4.3、特性描述符声明 .................................................................................... 163 3.3.4.3.1、特性扩展性质描述符 ................................................................. 163 3.3.4.3.2、特性用户描述描述符 ................................................................. 164 3.3.4.3.3、客户端特性配置描述符 ............................................................. 164 3.3.4.3.4、服务器特性配置描述符 ............................................................. 165 3.3.4.3.5、特性表示格式描述符 ................................................................. 166 3.3.4.3.6、特性聚合格式描述符 ................................................................. 168 3.4、属性协议(ATT) ............................................................................................................. 169 3.4.1、通信协议方法 ................................................................................................... 169 3.4.2、属性协议包格式 ............................................................................................... 170 3.4.3、属性协议 PDUs ................................................................................................. 170 3.4.3.1、交换 MTU ............................................................................................... 171 3.4.3.2、找信息请求\应答(Find Information Request\Response) ...................... 172 3.4.3.3、按类型值查找请求\应答(Find By Type Value Request\Response) ....... 174 3.4.3.4、按类型读请求\应答(Read By Type Request\Response) ....................... 176 3.4.3.5、读请求\应答(Read Request\Response) ................................................. 179 3.4.3.6、大对象读请求\应答(Read Blob Request\Response) ............................. 181 3.4.3.7、多重读取请求\应答(Read Multiple Request\Response) ...................... 182 3.4.3.8、按组类型读取请求\应答(Read By Group Type Request\Response) .... 183 3.4.3.9、写请求\应答(Write Request\Response) ................................................ 186 3.4.3.10、写命令(Write Command) ..................................................................... 187 3.4.3.11、签名写命令(Signed Write Command) ................................................. 188 3.4.3.12、准备写请求\应答(Prepare Write Request\Response) 和执行写请求\应 答(ExecuteWrite Request\Response) .................................................................... 189 3.4.3.13、句柄通知(Handle Value Notification) .................................................. 193 3.4.3.14、句柄指示\确认(Handle Value Indication\Confirmation) ..................... 194 3.4.3.15、错误应答 .............................................................................................. 195 3.5、GATT 规程和 ATT 协议映射 ........................................................................................ 200 3.5.1、GATT 规程 ......................................................................................................... 200 3.5.1.1、发现服务和特性 .................................................................................... 200 3.5.2、ATT 协议与 GATT 映射表 ................................................................................. 201 3.6、安全管理( Security Manager (SM)) ............................................................................. 210 3.6.1、加密做了什么和加密需求 ............................................................................... 210 3.6.2、加密相关计算公式 ........................................................................................... 212 3.6.3、加密配对绑定过程 ........................................................................................... 214 3.6.3.1、配对特征交换得到临时密钥(TK)值 ..................................................... 216 iv
版权所有 3.6.3.1.1、Input 和 Output 能力 ................................................................. 218 3.6.3.1.2、Just Work:只工作 ........................................................................ 219 3.6.3.1.3、Passkey Entry:输入密码 .............................................................. 220 3.6.3.1.4、Out of Band:带外 ........................................................................ 220 3.6.3.2、身份确认以及短期秘钥(STK)生产 ........................................................ 221 3.6.3.2.1、身份确认值计算 ......................................................................... 221 3.6.3.2.2、短期秘钥(STK)值计算 ................................................................ 222 3.6.3.3、特定密钥计算 ........................................................................................ 223 3.6.3.3.1、长期密钥 LTK 计算 ..................................................................... 223 3.6.3.3.2、设备地址类型和身份解析密钥 IRK ........................................... 225 3.6.3.3.3、连接签名解析密钥 CSRK ............................................................ 227 3.6.3.3.4、签名计算 ..................................................................................... 227 3.6.4、加密标准 AES-CCM ........................................................................................... 228 3.6.5、完整加密过程图表 ........................................................................................... 231 3.6.6、安全管理传输协议 ........................................................................................... 234 3.6.6.1、安全管理命令包格式 ............................................................................ 234 3.6.6.2、配对请求 Pairing Request 和配对应答 Pairing Response .................... 234 3.6.6.3、配对确认值 Pairing Confirm .................................................................. 237 3.6.6.4、配对随机数 Pairing Random ................................................................. 238 3.6.6.5、配对失败 Pairing Failed ......................................................................... 239 3.6.6.6、加密信息 Encryption Information ......................................................... 240 3.6.6.7、主机鉴定 Master Identification ............................................................. 240 3.6.6.8、身份信息 Identity Information .............................................................. 241 3.6.6.9、身份地址信息 Identity Address Information ........................................ 242 3.6.6.10、签名信息 Signing Information ............................................................. 243 3.6.6.11、安全请求 Security Request .................................................................. 243 3.6.7、NRF51822 加密硬件模块 ................................................................................. 244 3.6.7.1、电子密码本 AES Electronic Codebook mode encryption ...................... 244 3.6.7.1.1、ECB 程序设计 ............................................................................. 244 3.6.7.2、AES CCM Mode Encryption (CCM) ......................................................... 246 3.6.7.2.1、AES-CCM 模块工作流程 ............................................................. 246 3.6.7.2.2、AES-CCM 模块加密过程 ............................................................. 246 3.6.7.2.3、AES-CCM 模块解密过程 ............................................................. 247 3.6.7.2.4、CCM 数据结构 ............................................................................ 248 2.6.7.2.5、AES-CCM 模块要求 RADIO 的配置 ............................................ 249 2.6.7.2.6、加密包在 RADIO 中传输模式 .................................................... 250 2.6.7.2.7、解密包在 RADIO 中接收模式 .................................................... 250 3.6.7.3、快速地址解析模块(Accelerated Address Resolver (AAR)) .................... 252 3.6.8、安全管理空中数据计算和分析 ....................................................................... 253 3.6.8.1 确认值计算 ............................................................................................... 254 3.6.8.2、第 1 次连接加密----配对绑定 STK 和 SK 计算 ..................................... 258 3.6.8.3、第 2 次连接加密----LTK 和 SK 计算 ....................................................... 261 v
版权所有 版本控制 版本 V1.0 V1.1 修改内容 初稿 添加广播数据结构 2.9.11 节 修改时间 2015/08/10 2017/09/08 修改人员 刘权 刘权 低功耗蓝牙写笔记的论坛: 【bbs.codertown.cn】 低功耗蓝牙协议研究 QQ 群:【177341833】 低功耗蓝牙协议研究 微信公众号: i
BLE4.0 低功耗蓝牙协议总结 第一章 协议组成图 图 1-1 协议组成图 1.1、协议由 HOST 层和 CONTROLLER 层组成 1.1.1、CONTROLLER 组成 PHY:基带物理层 LL:链路层 HCI:主机控制接口 1
分享到:
收藏