你好团队!!
我有一个关于DA14681的蓝牙4.2的查询。
蓝牙4.2带宽测试:----------------------------------------*我们正在将更大的数据包(每包247字节)数据速率通过BLE发送到Android手机。我们现在正在获得5.3kbytes / sec,可以告诉我da14681支持的最大带宽是什么。我需要更多的输入来增加我的带宽。
嗨dheeraj,
我们目前正在调查这一点,没有估计Android手机,我可以提到到目前为止我们实现的最高速率约为80kb / s,但两个设备都是68x开发套件而不是手机,使用247的MTU运行并且数据长度扩展功能,连接间隔为30ms,连接事件长度为3.75ms,68倍以96MHz计时。在不同的设备和IOS的情况下,预期的吞吐量预计将远低于那么在实现高吞吐量的参数上的参数不可通过的连接,而且这仍然正在调查。
关于提高系统上的吞吐量,可以使用当前连接使用的PDU的长度,MTU大小和连接间隔进行实验的参数(较小的连接肯定会帮助数据吞吐量)。
谢谢mt_dialog.
嗨mt_dialog,
我们目前正在向Android手机发送音频流。UART设置为230kbps。(DA14681,CPU时钟为96MHz)。因此数据来自UART,然后通过BLE转发到Android。
到目前为止,我们可以到达的最佳表现是8k字节/秒。我们的申请仍然很低。我们使用以下功能将32kbytes的数据发送给Android:ble_error_t ble_gatts_send_event(uint16_t conn_idx,uint16_t handle,gatt_event_t类型,uint16_t长度,const void *值);
在循环中调用该函数(具有247个字节的一串函数),在几个呼叫之后BLE断开连接。
1.该函数是否可以发送32K字节的数据?2.函数异步?如果是这样,SDK会在准备就绪时提供回调或一些事件来建议发送下一堆数据吗?
问候!
嗨jairo.borba,
是的,这是一个适当的功能,以便通过通知或指示在BLE上发送数据,但是在循环中拥有这一点并继续发送通知并不是如此好主意。虽然我没有完全获得与异步的意思,但功能只会将通知放在低层缓冲区中,并在下一个连接事件时发送数据。是的BLE_GATTS_SEND_EVENT()返回通知已输入事件缓冲区时的事件,并且您应该在应用程序层中获取BLE_EVT_GATTS_EVENT_SENT消息。所以你应该始终获得完成消息,然后在缓冲区中放置其他数据,如果没有设备将存储不进入缓冲区的消息,最终,当分配的消息不适合您的分配内存时,您将用完堆和你的f / w将断言。
嗨dheeraj,
我们目前正在调查这一点,没有估计Android手机,我可以提到到目前为止我们实现的最高速率约为80kb / s,但两个设备都是68x开发套件而不是手机,使用247的MTU运行并且数据长度扩展功能,连接间隔为30ms,连接事件长度为3.75ms,68倍以96MHz计时。在不同的设备和IOS的情况下,预期的吞吐量预计将远低于那么在实现高吞吐量的参数上的参数不可通过的连接,而且这仍然正在调查。
关于提高系统上的吞吐量,可以使用当前连接使用的PDU的长度,MTU大小和连接间隔进行实验的参数(较小的连接肯定会帮助数据吞吐量)。
谢谢mt_dialog.
嗨mt_dialog,
我们目前正在向Android手机发送音频流。UART设置为230kbps。(DA14681,CPU时钟为96MHz)。
因此数据来自UART,然后通过BLE转发到Android。
到目前为止,我们可以到达的最佳表现是8k字节/秒。我们的申请仍然很低。
我们使用以下功能将32kbytes的数据发送给Android:
ble_error_t ble_gatts_send_event(uint16_t conn_idx,uint16_t handle,gatt_event_t类型,
uint16_t长度,const void *值);
在循环中调用该函数(具有247个字节的一串函数),在几个呼叫之后BLE断开连接。
1.该函数是否可以发送32K字节的数据?
2.函数异步?如果是这样,SDK会在准备就绪时提供回调或一些事件来建议发送下一堆数据吗?
问候!
嗨jairo.borba,
是的,这是一个适当的功能,以便通过通知或指示在BLE上发送数据,但是在循环中拥有这一点并继续发送通知并不是如此好主意。虽然我没有完全获得与异步的意思,但功能只会将通知放在低层缓冲区中,并在下一个连接事件时发送数据。是的BLE_GATTS_SEND_EVENT()返回通知已输入事件缓冲区时的事件,并且您应该在应用程序层中获取BLE_EVT_GATTS_EVENT_SENT消息。所以你应该始终获得完成消息,然后在缓冲区中放置其他数据,如果没有设备将存储不进入缓冲区的消息,最终,当分配的消息不适合您的分配内存时,您将用完堆和你的f / w将断言。
谢谢mt_dialog.