ble4.2一次最多能传输多少字节?

2021-10-20 11:48:43 浏览数 (1)

点击上方[物联网思考],点击关注,第一时间查看物联网精彩分享!

1、链路层数据包格式

可以看出PDU(协议数据单元)字段长度在2-257字节之间。

2、数据通道PDU

可以看出,数据通道PUD包含三部分,其中: Header:包头,2字节; Payload:数据,变长; MIC:数据一致性校验,4字节。

3、L2CAP层数据包格式

可以看出,L2CAP层数据包包含三个部分,其中: Length:长度,2字节; Channel ID:信道ID,2字节; Information payload:变长。

4、Attribute Protocol PDU格式

可以看出,Attribute Protocol PDU包含三个部分,如下: Opcode:操作码,1字节; Attribute Parameters:ATT参数,变长; Authentication Signature:身份验证签名,如果有,则是12字节。

5、ATT层完整数据包

所以ATT_MTU最大长度为257-2(Header)-4(MIC)-2(Length)-2(Channel ID)=247

6、ATT层操作符Handle Value Notification(0x1B)

结合5可以看出,当ATT层操作符为Handle Value Notification(0x1B)时,Attribute Value的最大长度为247-3=244,即每次可以传输的最大字节为244。

7、ATT层操作符Signed Write Command(0xD2)

结合5可以看出,当ATT层操作符为Signed Write Command(0xD2)时,Attribute Value的最大长度为247-12=235,即每次可以传输的最大字节为235。

8、总结

1、ATT_MTU最大长度为257-2(Header)-4(MIC)-2(Length)-2(Channel ID)=247; 2、ATT层不同的操作符,可以传输的用户字节不同。

——————END——————

0 人点赞