解析 CC2541 的 BLE 数据包为什么是 20 字节

来源:互联网 发布:红蜘蛛 软件 编辑:程序博客网 时间:2024/06/08 11:49

大家都知道蓝牙 BLE 发送数据时都是 20 字节一个包,那么为什么是 20 字节呢?当然是——蓝牙协议规定的。。。

协议规定,payload 最大 27。在协议第六章中的 2.4,刨去 L2CAP 的头,4 个字节,剩下的就 23 个字节 MTU。就是你看到的。ATT 层会用掉上 1 个字节的 op code, 2 个字节的 attribute handle,就剩下 20了。这剩下的 20 字节就是我们常说的发送的 20 字节的数据。


上面是蓝牙协议 4.0 中的内容。所以这个 MTU 是不少于 23,也是可以修改的,但是前提是 client 支持修改 MTU,如果 client 只支持 Default Value,那就不能修改。如果一个设备既有 client 又有 server,那么 client Rx MTU 和 server Rx MTU 必须是一样的。

但是这个修改我不确定是不是 BLE 的特性,问了 TI 的人,给的回答是 BLE 允许修改 MTU 是蓝牙 4.1 的新特性,姑且相信他吧。


Ps.

最近在做 TI 的 CC2640 的东西,因为需要测速度,所以问 TI 的人,他们给了一个链接:http://processors.wiki.ti.com/index.php/CC2640_BLE_Throughput

这里面给出了修改 MTU 的方法,并说这是 BLE 协议的新特性。


0 0
原创粉丝点击