蓝牙核心规范(V5.2)7.1-深入详解之L2CAP(2)上

简介: 蓝牙核心规范(V5.2)7.1-深入详解之L2CAP(2)上

本小结主要阐述主机的A部分,逻辑链路控制和适配协议规范(L2CAP)。支持更高级别的协议多路复用、分组分割和重组,以及服务质量信息的传输。协议状态机描述了本规范的包格式和组成。

image.png

1. 状态机

1.1 状态机规则

image.png


根据需要,在状态事件表中使用以下抽象的内部事件:

image.png


每个L2CAP面向连接的通道都有一个活动的状态机。将为接收到的每个新L2CAP_ConnectReq创建一个状态机。状态机始终在关闭状态下启动。


1.1.1 CLOSED 状态

image.png


除了关闭状态之外,L2CAP_ConnectReq消息在任何其他状态中都没有被提到,因为它会触发新通道的建立,从而导致分支进入到状态机的新实例中。


1.1.2 WAIT_CONNECT_RSP 状态

image.png

这里不包括L2CAP_DisconnectReq消息,因为源和目标L2CAP_DisconnectReq还不可用,无法将其正确地与特定通道的状态机联系起来。


1.1.3 WAIT_CONNECT 状态

image.png

这里不包括L2CAP_DisconnectReq或L2CAP_ConfigReq消息,因为源和目标光盘还不可用,无法将其与特定通道的状态机正确联系起来。


1.1.4 CONFIG 状态

存在两个配置过程。配置过程是标准流程和锁定步骤过程。


在标准和锁定步骤配置过程中,两个L2CAP实体都会在配置过程中启动配置请求。这意味着每个设备为传出的配置请求采用一个发起者角色,为传入的配置请求采用一个接受者角色。在两个方向上的配置可以按顺序发生,但也可以并行发生。


在锁步配置过程中,L2CAP实体在向其本地控制器提交流规范之前都发送L2CAP_CONFIGURATION_REQ数据包并接收带有挂起结果代码的L2CAP_CONFIGURATION_RSP数据包。每个L2CAP实体发送最后一个L2CAP_CONFIGURATION_RSP数据包,指示来自其本地控制器的响应。


在配置状态下,可以区分以下子状态:

image.png



配置状态是通过来自关闭状态的WAIT_CONFIG子状态输入、WAIT_CONNECT状态或WAIT_CONNECT_RSP状态。如发起者和接受者路径都成功完成,则配置状态留为打开状态。


image.png

image.png

image.png

image.png



处于配置状态的接收数据PDU(L2CAP_Data)应该只有在过渡到重新配置过程(从OPEN状态)时才相关。只有在重传输模式和增强的重传输模式下才允许丢弃接收到的数据。允许丢弃s帧,但不建议使用。如果一个s帧被丢弃,监视器计时器将导致在超时后发送一个新的s帧。


指示配置响应中的失败并不一定意味着整个配置过程的失败;相反,基于在负响应中接收到的信息,可以触发修改后的配置请求。


1.2 定时器事件

1.2.1 RTX

响应超时(RTX)定时器用于在远程端点不响应信令请求时终止通道。


当发送到远程设备的信令请求时,将启动此计时器。


当收到响应时,将禁用此计时器。如果初始定时器过期,则可以发送重复的请求消息或者断开请求中识别的通道断开。如果发送了重复的请求消息,则RTX超时值应重置为至少是以前值的两倍的新值。在重新传输请求消息时,应假定与原始传输具有相同状态的上下文。如果接收到被标识为重复(重传)的请求消息,则应在接收到原始请求消息时应用的相同状态的上下文中进行处理。


1.2.2 ERTX

当不信任远程端点正在执行对请求信号的额外处理时,使用扩展响应超时执行(ERTX)计时器来代替RTX计时器 。当远程端点响应请求正在挂起时,将启动此计时器。当收到正式响应或物理链接丢失时,将禁用此计时器。如果初始计时器过期,则可能会发送重复的请求或断开通道。


当收到正式响应或物理链接丢失时,将禁用此计时器。如果初始计时器过期,则可能会发送重复的请求或断开通道。


这个计时器的值依赖于实现,但最小初始值为60秒,最大初始值为300秒。与RTX类似,对于每个收到等待响应的未决请求,必须至少有一个ERTX计时器。每个未完成的请求最多应该有一个(RTX或ERTX)关联。从此计时器的初始开始到信道终止的开始(如果没有接收到任何响应)之间的最大运行时间为300秒。终止通道时,不需要发送L2CAP_DisconnectReq并进入WAIT_DISCONNECT状态。通道应直接转换到关闭状态。

image.png

状态和转换


image.png

配置状态和转换


image.png

状态和转换-AMP启用的操作


目录
相关文章
蓝牙核心规范(V5.3)-深入详解之SCO和eSCO的异同
蓝牙核心规范(V5.3)-深入详解之SCO和eSCO的异同
2560 0
蓝牙核心规范(V5.3)-深入详解之SCO和eSCO的异同
|
网络协议 物联网 芯片
三张图带你入门蓝牙规范
蓝牙自从2001年发布以来,从经典蓝牙发展到了BLE蓝牙,又于2017年引入了蓝牙mesh技术,核心规范版本就于2019年年底升级到了最新的5.2版本,很多同学对蓝牙很有兴趣,但也被会被蓝牙技术里繁多的概念搞迷糊,希望通过这篇文章带大家对蓝牙技术规范有一个基本的了解。本文的面向读者是对网络技术有一定了解但对蓝牙技术不熟悉的同学。
三张图带你入门蓝牙规范
|
编解码 安全 Android开发
低功耗蓝牙LE Audio Profile 详细介绍
2019年底,蓝牙官方组织SIG发布了蓝牙5.2版本的核心协议,其中增加了一个重要的特性---LE Audio。蓝牙的应用协议都是从应用层到物理层完整包含的协议,LE Audio也不例外。但蓝牙5.2核心协议仅仅定义了蓝牙LE的链路层传输Audio的方式,上层协议以及完整的LE Audio规范迟迟未出,近日,蓝牙官方组织释放了LE Audio较为完整的规范文档。
低功耗蓝牙LE Audio Profile 详细介绍
|
编解码 物联网
【BLE】蓝牙5.2 新特性 - LE Audio
连接同步通道是基于蓝牙连接的,首先要先建立ble连接基于时间同步的音频传输机制,可以实现多个设备的数据同步一个master可以建立多个CIG每个CIG可以最多31个CIS每个CIS里面最多有31个subevent链路层有LL_CIS_REQ 和 LL_CIS_RSP来创建CIS无连接的单向的,无应答机制广播通道,对接收者的数量没有限制不仅可以广播数据包还可以广播控制包每个big里面最多可以包含31个bis。
2691 1
【BLE】蓝牙5.2 新特性 - LE Audio
|
物联网 API 数据库
一文带你认识蓝牙 GATT 协议
正所谓磨刀不误砍柴工,我们有必要先深入的学习一下 GATT 以及 GATT 相关的一些知识。 本文我们就来了解一下 蓝牙 GATT 到底是什么?同时了解下我们使用的 ESP32-C3 GATT示例的工程的代码结构。
7617 4
一文带你认识蓝牙 GATT 协议
|
编解码 算法 数据格式
【经典蓝牙】蓝牙 A2DP协议分析
A2DP(Advanced Audio Distribution Profile)是蓝牙高音质音频传输协议, 用于传输单声道, 双声道音乐(一般在 A2DP 中用于 stereo 双声道) , 典型应用为蓝牙耳机。         A2DP旨在通过蓝牙连接传输高质量的立体声音频流。它使用的基本压缩算法是SBC(Sub-Band Coding)来减小音频数据的大小,同时保持高音质,SBC压缩虽然效率较低,但是是必须支持的基本备用方案。A2DP还支持其他高级编解码器,例如AAC、aptX和LDAC,这些编解码器比SBC提供更好的音质,但这些编解码器的支持取决于设备本身的支持情况。
3356 0
【经典蓝牙】蓝牙 A2DP协议分析
|
算法 网络性能优化 数据安全/隐私保护
蓝牙核心规范(V5.2)7.1-深入详解之L2CAP(2)下
蓝牙核心规范(V5.2)7.1-深入详解之L2CAP(2)下
1162 0
蓝牙核心规范(V5.2)7.1-深入详解之L2CAP(2)下
|
编解码
【经典蓝牙】蓝牙AVRCP协议分析
蓝牙AVRCP协议是蓝牙设备之间音视频的控制协议。定义了音频/视频的控制、浏览、查询、通知等一系列的命令集。常用来蓝牙耳机对手机的音乐进行控制,以及获取手机的音乐信息等场景。AVRCP协议有两个角色,分别是controller(CT)和 target(TG)。CT: 发送控制命令到对端,控制对端媒体播放器的设备,例如蓝牙耳机,蓝牙遥控器等。TG:接收对端的控制命令,并执行操作,进行回复的设备,例如手机,电脑等。
4104 0
【经典蓝牙】蓝牙AVRCP协议分析
|
编解码 安全
Bluetooth Profile Specification之1.4 A2DP 之Audio Codec(音频编解码器)-供应商特定的 A2DP Codec
Bluetooth Profile Specification之1.4 A2DP 之Audio Codec(音频编解码器)-供应商特定的 A2DP Codec
530 1
Bluetooth Profile Specification之1.4 A2DP 之Audio Codec(音频编解码器)-供应商特定的 A2DP Codec
Bluetooth Profile Specification之3.0 RFCOMM服务
Bluetooth Profile Specification之3.0 RFCOMM服务
471 1
Bluetooth Profile Specification之3.0 RFCOMM服务