CC2640R2F:如何在Simple serial中将最大有效负载更改为30Bytes
芯片型号:CC2640R2F
模块型号:RF-BM-4044B2
问:乐虎游戏需要将蓝牙数据包的长度更改为30个字节,以满足新项目能够发送几乎所有长消息。目前,我可以使用TI提供的BTool接收完整的22字节消息,但是该消息是在两个帧中以1-2s的间隔接收的。如果我使用他们的名为CMCS的BLE工具,则该间隔似乎太长,并且超时。因此,请求是有可能将蓝牙数据包长度更改为30字节甚至更高?我实际上在使用Simple serial代码,在哪里更改应用代码?
答:您可以在《》中找到启用数据长度扩展的说明:
LE数据长度扩展(DLE)
数据长度扩展功能允许LE控制器在处于连接状态时,发送数据通道分组数据单元(PDU),有效载荷的应用程序数据高达251字节。此外,在连接期间,任何一方都可以在任何时候修改新的PDU大小。
以前,控制器的最大数据通道有效负载为27个字节。与蓝牙核心规范版本4.0和4.1设备相比(如果两个设备都支持扩展的数据包长度并且配置正确),此功能可将数据速率提高约250%。
CC2640R2默认情况下启用了“数据长度扩展”-允许对等设备利用此功能,而无需应用程序管理设置。
DLE更新过程和定义
本节从连接器的角度以及术语方面描述了控制器的操作。
建立连接后,控制器将以两种可能的方式之一运行:
如果在连接之前,将建议的PDU大小和时间设置为TX和RX的默认值(27B,328 us),则CC2640R2将不会启动数据长度交换(即
LL_LENGTH_REQ
不会发送)。如果对等设备发送
,则设备的控制器将自动发送
LL_LENGTH_REQ
LL_LENGTH_RSP
给对应默认大小的4.0设备。
注意
有关如何修改此行为的信息,请参见。
如果在连接之前,不是PDU大小或用于RX或TX的最大时间不是默认值,则设备的LE控制器将使用
LL_LENGTH_REQ
和LL_LENGTH_RSP
PDU来修改数据信道PDU的更大的有效负载大小。
数据长度更新可以由主机启动,也可以由控制器自主执行。主机或从机都可以启动该过程。
数据长度更新过程完成后,两个控制器都基于两个参数选择一个新的数据长度:PDU大小和时间。选择本地和远程控制器支持的最大大小;考虑了支持不同数据速率的时间。这些参数定义如下:
PDU大小
控制器支持的最大应用程序数据有效负载大小。此大小不包括数据包开销,例如访问地址或前同步码。
时间
设备以PHY速率发送或接收PDU所需的最大微秒数。此参数使用微秒(μs)为单位。
每个方向都有一个PDU大小和时间。换句话说,有一个接收PDU大小/时间和一个单独的发送PDU大小/时间。设备只能通过DLE更新过程通过调整对等方自己的PDU传输大小/时间来影响对等方的PDU接收时间/大小。
请注意,您必须在简单串行端和BTool端都发送命令。