蓝牙BLE4.0的LL层数据和L2CAP层数据的区分与理解

一直搞不太清楚蓝牙BLE协议,不知道LL层和L2CAP层是如何划分的,后来博士给我讲了讲就理解了,写下来,做个记录:

1. 我们知道,除了蓝牙5.1新出的CTE,所有的BLE都是如下类型的包:

image

对于连接后的通讯包,PDU的最前面两个字节为header,header的最前两个bit为LLID,蓝牙BLE就是通过LLID来区分LL层数据和L2CAP层数据的。

2. LL层的包如下:

image

其中LLID这两个bit就是用于区分LL层数据和L2CAP层数据的。

当LLID为3时,该数据包为LL控制层数据,如下所示:

image

3. L2CAP层的包如下:

当LLID为2时,该数据包为L2CAP层数据包的起始包,起始包后续会有L2CAP层的长度和L2CAP层的channel ID,

当LLID为1时,该数据包为L2CAP层数据包的延续包,延续包后续没有L2CAP层的长度和L2CAP层的channel ID,但这种情况只有当

MTU的值大于data length时才会出现这样的包,但一般我们不这样用。

如下图为L2CAP层数据包格式:

image

4. L2CAP层的数据,根据channel ID不同,又分为三种不同的L2CAP指令,如下图所示:

image

上图可看出L2CAP包括三种指令:ATT指令,信令指令,SMP指令。

其中,

ATT指令用于传输应用通讯数据;

信令指令用于更新连接间隔的指令,和拒绝错误操作码时使用此信令指令;如下图:

image

SMP指令用于配对过程;

转载于:https://www.cnblogs.com/unrulife/p/10763843.html

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值