This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[FAQ] LE数据长度扩展

一、概述

数据长度扩展(LE Data Length Extension)功能允许LE控制器在连接状态下发送最大251字节的PDU数据包。在连接期间,主从设备可以协商PDU大小。相比BLE4.0/4.1最大数据通道有效负载27字节,数据速率提高了大约2.5倍。

二、更新过程

BLE4.2/5.0 为了兼容BLE4.0/BLE4.1 所以默认的TX PDU设置为 27字节,同时使用32us作为最大传输时间。在RX PDU中,默认使能LE Data Packet功能,默认支持接收 251字节,以及RX PDU最大传传输时间为2120us。

可以通过以下方式更新数据长度:
1.初始化时设置为最大值,每次建立连接后Controller会使用设定PDU;
2. Controller 设置默认的PDU大小和传输时间(27byte/328us ),然后在建立连接时动态协商;

三、处于连接状态设置长度

可以使用以下代码在连接中动态更改数据包长度

四、建立连接后设置长度

为了兼容BLE4.0/4.1设备,默认传输的TX PDU设置为27字节/328us。然后Controller会在设备连接之初,共同协商一个的数值。禁止该功能可以将以下代码段放入应用工程的初始化中(例如simple_peripheral_init),建立连接后,控制器将与对等设备协商数据包大小。