本文基于泰凌微TLSR8258 M1S1 demo。
1.DLE:LE Data Packet Length Extension
中文全称:低功耗蓝牙数据包长度扩展。
这是一个在2014年12月2日正式发布的bluetooth for BLE添加的新特性,以支持在LL Data PDU更长的数据,最大支持了251 Octets。
在bluetooth 4.2之前的版本,在LL Data PDU,如果只算payload,那么payload长度最大仅支持27 Octets;如果MIC计算在内,那么则支持31 Octets。
2.MTU:MAXIMUM TRANSMISSION UNIT
MTU在L2CAP LE-U链路中最小值为23 Octets。这时候的MTU也是ATT_MTU。
设备支持的ATT MTU不是协商的值,是设备本身在L2CAP层能够接收的最传输单元固有特性,也就是一个ATT包的最大长度。但是双方通信时所支持的ATT MTU通过ATT_EXCHANGE_MTU_REQ 和 ATT_EXCHANGE_MTU_RSP PDU控制指令,来交换告知对方设备各自所能支持的ATT MTU,然后在后面的通信中,使用交换值中的最小值ATT MTU作为数据包的上限,默认是23 Octets,最大支持517 Octets。
综上,设备支持的ATT MTU不是协商的值,但是实际的ATT MTU可以认为是一个协商的值,因为上限取决于交换双方最小的ATT MTU。
2.1.如何设置MTU?
在TLSR8258工程的demo中找到app_buffer.h