以蓝牙4.0为例说明:
BLE包格式有:广播包、扫描包、初始化连接包、链路层控制包(LL层数据包)、逻辑链路控制和自适应协议数据包(即L2CAP数据包)等;
其中广播包又分为:定向广播包和非定向广播包;
逻辑链路控制和自适应协议数据包又分为:ATT指令包、信令指令包、SMP包;
1. 首先,所有的包都符合如下格式:
2. 广播包:
3. 非定向广播包:
4. 定向广播包:
5. 扫描包:
6. 初始化连接包:
7. 链路层数据包:
8. 链路层控制包:
9. L2CAP层数据包:
10. 信令指令包:
11. ATT指令包:
12. SMP指令包:
SMP指令与ATT指令类似,只是channel ID为0x0006,数据格式如下:
根据操作码不同,后面数据的格式不通同。
附:
L2CAP层的区分: