Bluetooth技术学习笔记 ——L2CAP之信令包格式

MTU:Maximum Transmission Unit,最大传输单元
MPS:Maximum PDU Size,最大PDU大小
RTX:Response Timeout eXpired
ERTX:Extended Response Timeout eXpired
PSM:Protocol/Service Multiplexer,协议/服务复用器
SDP:Service Discovery Protocol ,服务发现协议
C-frames:signaling commands,信令。
1. 信令包

所有的信令都在信令信道上传输, ACL-U逻辑链路的信道为0x0001,LE-U逻辑链路的信道为0x0005。一旦底层逻辑链路已建立,相关的信令信道便可正常传输信令。

(1)L2CAP PDU格式
在这里插入图片描述

  • 在0x0001信令信道上,一个C-frame可以传输一个或多个信令。
  • 在0x0005信令信道上,一个C-frame只可以传输一个信令。

(2)命令格式
在这里插入图片描述

  • code:表示信号命令类型,当收到的信令包中的code无法识别或不在允许的信道上时,发送Command Reject包。
    在这里插入图片描述在这里插入图片描述

  • Identifier :用于匹配请求和响应。
    ① 响应消息中携带的identifier与请求消息中携带的identifier相同。
    ② 在同一个信令信道中,连续的命令需要使用不同的identifier。
    ③ identifier可循环使用
    ④ 当RTX和ERTX定时器超时时,若需要重新发送请求,则使用与之前相同的identifier。
    ⑤ 当收到的响应携带了无效的identifier,丢弃该消息。

  • Length:数据的长度(data only)。

  • Data:数据,一个或多个字节。

(3)C-frame支持的最小载荷长度
在这里插入图片描述

2. Command Reject

(1)command reject packet:
在这里插入图片描述
(2)简要说明:

  • Reason
    在这里插入图片描述
  • 相关Reason携带的data
    在这里插入图片描述
3. Connection Request

Connection Request的作用:在两个设备端创建L2CAP信道。L2CAP信道创建于配置开始之前。

(1)Connection Request packet
在这里插入图片描述
(2)简要说明:

  • PSM:至少两个字节。PSM的结构取决于ISO 3309地址域扩展机制。PSM取值范围和使用如下:
    在这里插入图片描述
    ① PSM的值必须是奇数,即最低字节的最低位必须是1。
    ② 最高字节的最低位必须是0。
    ③ PSM值的取值范围分为两个部分,第一个部分由Bluetooth SIG分配,指示协议;第二个部分动态分配,与SDP联合使用。
    ④ PSM的值参考Assigned Numbers
  • Source CID :发送Connection Request 设备的信道端点。
     
4. Connection Response

Connection Response的作用:响应Connection Request 消息。

(1)Connection Response Packet:
在这里插入图片描述
(2)简要说明:

  • Destination CID:发送Connection Response 设备的信道端点。

  • Source CID:收到的Connection Request消息中携带的Source CID。

  • Result
    在这里插入图片描述
    ① 除0x0000外,其它情况都是Connection Request失败或挂起;
    ② 一旦成功接收Connection Request消息,可立刻建立逻辑信道。

  • Status:只有当Result = pending时,Connection Response携带该参数。
    在这里插入图片描述

5. Configuration Request

Configuration Request的作用:1)在两个L2CAP实体之间建立初始逻辑链路传输;2)协商何时适合建立初始逻辑链路传输Contract。

(1)Configuration Request Packet:
在这里插入图片描述

(2)简要说明:

  • Destination CID:表示接收Configuration Request消息设备的信道端点
  • Flags
    在这里插入图片描述
    ① 仅使用Continuation flag(C),告诉响应侧将会收到多个Configuration Request包。
    ② 当L2CAP实体都支持Extended Flow Specification时,C设置为0。
    ③ 若在一个Configuration Request 消息中需要携带的Configuration Options较多,使得消息长度大于接收端的MTUsig,Configuration Options可分为多个Configuration Request消息进行发送。每一个Configuration Request消息使用各自的identifier。
    ④ 若Configuration Request消息中携带的C为1,则相应的Configuration Respons消息中携带的C也应该设置为1。
    ⑤ 若Configuration Request消息中携带的C为0,而相应的Configuration Respons消息中携带的C设置为1,则表示responser存在其它配置选项发送给requester。
  • Configuration Options
     
6.Configuration Response

Configuration Response的作用:响应Configuration Request消息。

(1)Configuration Response Packet:
在这里插入图片描述
(2)简要说明:

  • Source CID:表示接收Configuration Response packet设备的信道端点。Configuration Response packet接收端将会校验:
    ① identifier是否与相应的request消息identifier相同;
    ② Source CID是否有效。

  • Result
    在这里插入图片描述

  • Configuration Options
     

7. Disconnection Request

Disconnection Request的作用:断开L2CAP信道。

一旦发起disconnection request,在相关L2CAP信道上传输的incoming data和outgoing data都被丢弃。

(1)Disconnection Request Packet:
在这里插入图片描述

(2)简要说明:

  • Destination CID:接收disconnection request消息设备的信道端点。
  • Source CID:发送disconnection request消息设备的信道端点。
  • 若接收端无法识别Destination CID,将发送Command Reject消息,携带原因值为“invalid CID” ;若接收端能识别Destination CID,但是Source CID与其不匹配,则丢弃该消息。
     
8. Disconnection Response

Disconnection response的作用:响应Disconnection request消息

(1)Disconnection response Packet:
在这里插入图片描述

(2)简要说明:

  • Destination CID:发送disconnection responses消息设备的信道端点。
  • Source CID:接收disconnection responses消息设备的信道端点。
     
9. Echo Request

Echo request的作用:1)请求远端L2CAP实体的响应;2)测试链路;3)利用可选的数据字段传递厂商信息。

Echo request Packet:
在这里插入图片描述

10. Echo Response

Echo response的作用:响应Echo request。

Echo response Packet:
在这里插入图片描述

11. Information Request

Information request的作用:请求远端L2CAP实体返回特定的应用信息。

Information requests Packet:
在这里插入图片描述

  • InfoType:表示所请求信息的类型。
    在这里插入图片描述
12. Information Response

information response的作用:响应Information request消息。

(1)Information Response Packet:
在这里插入图片描述

(2)简要说明:

  • InfoType:Information request消息中的InfoType。
  • Result:若成功,数据域携带request请求的消息;若失败,数据域不携带任何数据。
    在这里插入图片描述
  • Data
    在这里插入图片描述
    ① 扩展特性掩码:四个字节,表示远端L2CAP实体支持的扩展特性。
    在这里插入图片描述
    ② 固定信道:在收到远端L2CAP支持的固定信道信息前或收到来自固定信道的信息前,不能在相关的固定信道发送消息。
    在这里插入图片描述
13. Create Channel Request

Create Channel request的作用:在本地设备与远端设备的控制器上建立L2CAP信道。

(1)Create Channel request Packet:
在这里插入图片描述

(2)简要说明:

  • Controller ID:表示物理链路控制器ID。发起在控制器上建立L2CAP信道前,需要确保控制器的物理链路已经存在。
14. Create Channel Response

Create Channel Response的作用:响应Create Channel request消息。
Create Channel Response Packet:
在这里插入图片描述

  • Result
    在这里插入图片描述
15. MOVE CHANNEL REQUEST

Move Channel request的作用:将已存在的L2CAP信道从一个控制器的物理链路移动到另一个控制器的物理链路上。
Move Channel Request Packet:
在这里插入图片描述

16. MOVE CHANNEL RESPONSE
17. MOVE CHANNEL CONFIRMATION

Move Channel confirmation的作用:当收到Move Channel response,且结果码不等于pending时,发送该消息。

18. MOVE CHANNEL CONFIRMATION RESPONS
19. LE Credit Based Connection Request

LE Credit Based Connection Request 的作用:在两个设备之间创建和配置L2CAP信道。

(1)LE Credit Based Connection Request Packet

在这里插入图片描述
(2)简要说明

  • LE Protocol/Service Multiplexer:两个字节。LE_PSM取值分为两部分:第一部分为Bluetooth SIG分配,指示协议;第二部分动态分配,与GATT服务器定义的服务联合使用。
    在这里插入图片描述
  • MTU :表示该信道可以接收的最大SDU。L2CAP支持的MTU至少为23字节 。
  • MPS :表示该信道可以接收的最大载荷,最小为23字节,最大为65535。
  • Initial Credits:表示对端可最多以发送LE-frame的帧数,取值范围为0~65535。
20. LE Credit Based Connection Response

LE Credit Based Connection Response 的作用:响应LE Credit Based Connection Request 。

(1)LE Credit Based Connection Response Packet
在这里插入图片描述

  • result
    在这里插入图片描述
发布了103 篇原创文章 · 获赞 41 · 访问量 8万+

猜你喜欢

转载自blog.csdn.net/u012800825/article/details/88858313