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:
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: