完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
一直搞不太清楚蓝牙BLE协议,不知道LL层和L2CAP层是如何划分的,后来博士给我讲了讲就理解了,写下来,做个记录: 1. 我们知道,除了蓝牙5.1新出的CTE,所有的BLE都是如下类型的包: 对于连接后的通讯包,PDU的最前面两个字节为header,header的最前两个bit为LLID,蓝牙BLE就是通过LLID来区分LL层数据和L2CAP层数据的。 2. LL层的包如下: 其中LLID这两个bit就是用于区分LL层数据和L2CAP层数据的。 当LLID为3时,该数据包为LL控制层数据,如下所示: 3. L2CAP层的包如下: 当LLID为2时,该数据包为L2CAP层数据包的起始包,起始包后续会有L2CAP层的长度和L2CAP层的channel ID, 当LLID为1时,该数据包为L2CAP层数据包的延续包,延续包后续没有L2CAP层的长度和L2CAP层的channel ID,但这种情况只有当 MTU的值大于data length时才会出现这样的包,但一般我们不这样用。 如下图为L2CAP层数据包格式: 4. L2CAP层的数据,根据channel ID不同,又分为三种不同的L2CAP指令,如下图所示: 上图可看出L2CAP包括三种指令:ATT指令,信令指令,SMP指令。 其中, ATT指令用于传输应用通讯数据; 信令指令用于更新连接间隔的指令,和拒绝错误操作码时使用此信令指令;如下图: SMP指令用于配对过程; |
|
|
|
只有小组成员才能发言,加入小组>>
物联网工程师必备:怎么选择不同的无线连接技术,本指南帮你忙!
3285 浏览 1 评论
【DFRobot TinkerNode NB-IoT 物联网开发板试用连载】WIFI功能测试
3938 浏览 0 评论
【DFRobot TinkerNode NB-IoT 物联网开发板试用连载】Arduino的替代SublimeText3+STino
3444 浏览 0 评论
使用端口扩展器轻松高效地向IIoT端点添加具有成本效益的子节点
4009 浏览 1 评论
20685 浏览 11 评论
模组有时候复位重启后输出日志为“REBOOT_CAUSE_SECURITY_PMU_POWER_ON_RESET”的原因?
806浏览 2评论
1028浏览 2评论
1030浏览 1评论
1150浏览 1评论
384浏览 1评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-25 00:26 , Processed in 1.145326 second(s), Total 79, Slave 62 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号