一、前言
本篇讲解配对的第二阶段链接层时序,主从机各自发了什么指令。
二、阅读说明
1、泰凌微芯片学习者,前期使用过该芯片。
2、能够知道怎么进行创建工程,下载代码。
3、有一块开发板,板上的芯片可以是8251,8253或者8258。
三、正文
1、使用的SDK
使用的sdk和demo为该篇文章描述的“手把手教你:BLE设备如何和手机进行加密配对绑定”;
2、配对第二阶段所处的位置
如上图红色框出来的,这个是配对第二阶段,在第二阶段的时候我们使用的是Just Works方式,见上图红色圈出来的。
3、链接层时序所处的位置
如上图所示,链接层的时序位置处于配对第二阶段的最后面,在主从机计算完了STK的后面。
4、连接层时序过程
如上图所示,我们只需要看红色框出来的部分,LL A和LL B是主从机的底层Controller发出来的数据,其中Host A和LL A,还有Host B和LL B是主机或者从机内部交换的数据,也就是Host与Controller所交换的数据。
其中具体的过程:
主机发出:LL_ENC_REQ从机应答:LL_ENC_RSP
从机发出:LL_START_ENC_REQ
主机应答:LL_START_ENC_RSP
从机应答:LL_START_ENC_RSP
备注:Host A 和LL A代表的是主机,Host B和LL B代表的是从机。关于这些指令的作用,将在之前的文章中讲解。
5、空中抓包时序图
如上图所示,将抓包的数据和第4节的数据结合着来看,是完全符合蓝牙协议的。
五、结尾
本篇分析了配对流程中第二阶段中链接层时序过程,下一篇将讲解主机发出的加密请求LL_ENC_REQ指令。
我写了一个合集,不依赖 Nordic、泰凌、瑞萨等厂商商用 BLE 协议栈,从无线底层链路层入手,从零手写 BLE 广播扫描逻辑,拆解蓝牙广播包、信道切换、射频调度、广播数据解析完整流程,适合想吃透 BLE 底层、自主开发蓝牙工具、规避商用协议栈授权限制的嵌入式开发者。
114