• 正文
  • 相关推荐
申请入驻 产业图谱

分析BLE配对第三阶段流程-从机发给主机Identity Address Information指令

23小时前
163
加入交流群
扫码加入
获取工程师必备礼包
参与热点资讯讨论

一、前言

本篇将结合蓝牙协议文件和抓包分析配对第三阶段第四条指令,从机发送给主机的Identity Address Information指令,该指令会携带设备地址类型和地址信息。

备注:有读者可能会疑惑,设备在广播的时候不是广播过地址信息了吗,为什么这里还需要单独传输一次,这是因为如果我们地址设置的是可解析私有地址,那么广播的地址信息会在一段时间之后进行变化,我们发送这条消息的目的是为了告知对方自己真实的地址,下次对方设备和我进行重连的时候,就能通过身份解析秘钥(IRK)解析出当前广播的地址是否是之前配对多的设备,如果是之前配对过的设备,则不用重新走配对流程,直接走重连流程就可以了。

二、阅读说明

1、泰凌微芯片学习者,前期使用过该芯片。

2、能够知道怎么进行创建工程,下载代码。

3、有一块开发板,板上的芯片可以是8251,8253或者8258。

三、正文

1、使用的SDK使用的sdk和demo为该篇文章描述的“手把手教你:BLE设备如何和手机进行加密配对绑定”;

2、配对第三阶段所处的位置

3、从机发给主机的Identity Address Information指令所处的位置

4、身份地址信息(Identity Address Information)格式

如上图所示,Identity Address Information格式由以下几个字段组成

    • 操作码(Code):0x09

地址类型(AddrType):1个字节,如果是公共地址则为0,如果是静态随机地址,则为1

设备地址(BD_ADDR):6个字节

5、身份地址信息(Identity Address Information)空中抓包数据

    • 操作码(Opcode):0x09

地址类型(Address Type):为0,代表公共地址

设备地址(BD_ADDR):a4:c1:38:52:2c:4c

由上述抓包数据来看,和4小节中描述的一样。

四、结尾

本篇结合蓝牙协议文件和抓包数据分析了配对第三阶段的从机发给主机的Identity Address Information指令,这是从机下发的最后一个指令了。其实还有一个Signing Information (Signature Key)指令,因为从机没有生成这个密钥,也不要这个密钥,所以就没有下发。

下一篇开始讲解主机发给从机的密钥指令。

我写了一个合集,不依赖 Nordic、泰凌、瑞萨等厂商商用 BLE 协议栈,从无线底层链路层入手,从零手写 BLE 广播扫描逻辑,拆解蓝牙广播包、信道切换、射频调度、广播数据解析完整流程,适合想吃透 BLE 底层、自主开发蓝牙工具、规避商用协议栈授权限制的嵌入式开发者。

相关推荐