做兼职哪个网站好,网站备案幕布拍照,基于 wordpress 创业,礼品兑换网站怎么做本文基于泰凌微TLSR8258 M1S1 demo。
1.DLE#xff1a;LE Data Packet Length Extension
中文全称#xff1a;低功耗蓝牙数据包长度扩展。
这是一个在2014年12月2日正式发布的bluetooth for BLE添加的新特性#xff0c;以支持在LL Data PDU更长的数据#xff0c;最大支持…本文基于泰凌微TLSR8258 M1S1 demo。
1.DLELE 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.MTUMAXIMUM 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 2.1.1.设置本机作为Master的ATT MTU
#define ATT_MTU_MASTER_RX_MAX_SIZE 23
2.1.1.设置从机作为Master的ATT MTU
#define ATT_MTU_SLAVE_RX_MAX_SIZE 23 3.PDUProtocol data unit
中文全称协议数据单元。
虽然这样的翻译和理解没有问题在很多的文档中也是这样简单描述的但实际上这并不是准确的描述。更准确的英文全称Data PDU length。如果你试着翻译成中文那更难以理解了。通常你在文档中看到的PDU更多时候指的就是LL Data PDU length。当然还有各种PDU但一般情况很少开发者会涉及到。
LL Data PDU length决定了一个空中数据包的最大长度通常支持0~251 Octets。如果把MIC计算在内则支持255 Octets。
设备自身的接收和发送LL Data PDU length并不要求完全一致。比如设备作为Slave接收LL Data PDU length可以是27 Octets而发送的LL Data PDU length可以是251 Octets。
MasterCentral和SlavePeriphral通过LL_FEATURE_REQ PDU和LL_FEATURE_REQ PDU交换LL Data PDU lengthLL Data PDU length也是设备自身固有的支持特性最终以双方较小的值作为生效的LL Data PDU length。 3.1.如何设置PDU
在TLSR8258工程的demo中找到app_buffer.h 3.1.1.设置本机接收的LL Data PDU length
这里主从一体共存在Telink的SDK中他们接收的PDU长度只能为一样的长度这并不是Bluetooth SIG的规范所以不同的芯片平台是可能不同的取决于厂商的具体实现。
#define ACL_CONN_MAX_RX_OCTETS 251
3.1.2设置本机作为Master的发送LL Data PDU length
#define ACL_MASTER_MAX_TX_OCTETS 27
3.1.3.设置本机作为Slave的发送LL Data PDU length
#define ACL_SLAVE_MAX_TX_OCTETS 251