芯片型号: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端都发送命令。