蓝牙5 BR/EDR LMP层分析
LMP
Link Manager protocol
1、LMP层整体架构
2、数据包格式
3、LMP支持的feature特性。
4、LMP常用控制命令
1、LMP层整体架构
蓝牙controller中整体架构如下所示,HCI层、LMP层、Baseband层以及LC等各部分。
对于LMP来说,简化版的结构如下所示,LM模块和LC模块交互完成host和controller之间的命令交互。
2、数据包格式
LMP数据包采用DM1包,并且长度固定不能够超过DM1数据包的长度。只有在HV1数据包的SCO链路中,并且数据长度小于9bytes时,采用DV数据包。
3、LMP支持的feature特性。
LMP特性总共有三个page页,分别是page0、page1和page2,多数设备只支持page0页特性。在page0页中,每个bit为代表一个特性,1表示支持此特性,0表示不支持此特性,其中,page0中总共有8bytes64个特性。
No. |
Supported feature |
Byte |
Bit |
|
|
0 |
3 slot packets |
0 |
0 |
|
|
8 |
Park state |
1 |
0 |
|
|
16 |
CVSD synchronous data |
2 |
0 |
|
|
24 |
Reserved |
3 |
|
|
|
26 |
Enhanced Data Rate ACL 3 Mb/s mode |
3 |
2 |
||
32 |
EV4 packets |
4 |
0 |
||
40 |
5-slot Enhanced Data Rate ACL packets |
5 |
0 |
||
48 |
Extended Inquiry Response |
6 |
0 |
||
56 |
Link Supervision Timeout Changed Event |
7 |
0 |
||
57 |
Inquiry TX Power Level |
7 |
1 |
|
Page1和page2页不在此详细描述,详见蓝牙核心协议文档。
4、LMP常用控制命令
LMP支持的控制命令可以分为如下6个类别,连接控制类、安全类、信息请求类、角色切换类、操作模式类(sniff模式等)、本地传输类(sco/esco)和测试类。
连接过程的LMP命令如下
请求支持命令。
请求操作模式命令
模式切换过程activity mode《==》sniff mode《==》sniff subrating mode。
详细命令不在此介绍,详见蓝牙core文档。