跳过主要内容

蓝牙传输的数据大小

DA14531

6个月前

发布的Jin-Hoon金180点 4回复
0的问题

你好,

我想通过蓝牙发送大量数据。

现在我一次只能发送20字节的数据。

1)所以我的问题是,我如何增加数据包的大小到251字节?

2)是否有使用Bluetooth 5.1而不是Bluetooth Low Energy传输更大尺寸数据包的示例代码?

谢谢你!

6个月前

PM_Dialog

嗨Jin-Hoon金,

为了发送超过20个,您应该使用ble_gap_mtu_size_set() API并设置适当的mtu_size。请注意,这个API函数应该在创建设备的属性数据库之前调用。这是因为设备配置将被修改,这将导致清除当前属性数据库(如果它存在)。同样,在ble_config.h头文件中定义数据长度:

#定义dg_configBLE_DATA_LENGTH_RX_MAX (251)

#定义dg_configBLE_DATA_LENGTH_TX_MAX (251)

请看一下DA1469x功耗教程查找关于MTU大小的更多信息。

谢谢,PM_Dialog

6个月前

Jin-Hoon金 180点

嗨,对话框的团队,

非常感谢您的回复。

抱歉打扰您,我们使用的是DA14531微处理器,不是DA1469x系列。请问DA14531的包尺寸如何增加?

此外,我想知道如果我必须发送大数组的数据(~数百千字节),然后我应该通过多个包发送比?

基本上,我正在尝试做一个数百kB的大规模数据传输。在应用程序中,设备将数据保存在本地内存中几分钟,然后连接到手机并大量传输数据。最好的方法是什么?我使用DA14531和DA14585。

谢谢你!

Jin-Hoon

6个月前

PM_Dialog

嗨Jin-Hoon金,

很抱歉让你混淆了,可能是我读错了输入的设备。不过DA14531也有类似的概念。

请检查以下示例:

http://lpccs-docs.dialog-semiconductor.com/SW_Example/SDK6/Dynamic_DLE_L2CAP_Packet_size_Optimization/index.html

你也可以使用are GIT repo来克隆我们的软件示例和软件交付:

https://github.com/dialog-semiconductor/BLE_SDK6_examples

这个示例演示了如何请求DLE(数据长度扩展)并利用较大的数据包来提高吞吐量。

设备在连接间隔期间发送的数据量取决于中央允许外设发送的数据包。使用标准MTU选择的每个数据包的有效负载为20字节。所以你发送的每个数据最多可以携带20个字节。如果你想发送超过20个字节,你就必须增加MTU的大小。具体来说,设备可以通过空中发送的字节数受MTU (Maximum Transfer Unit)的限制,缺省情况下,MTU被限制在23字节,包括ATT层开销,因此有效负载是20字节。通过增加MTU大小,您可以通过空中发送更多字节。因此,您可以尝试更改user_config.h头文件中的user_gapm_conf结构中的.max_mtu。

谢谢,PM_Dialog

6个月前

Jin-Hoon金 180点

嗨,对话框中,

谢谢您的回复!我会试试你推荐的。

最好的

Jin-Hoon