了解更多常见问题教程

4个员额/0个新员额
最后一篇文章
风成风
离线
最后一次见到:2年6个月前
加入:2014-04-08 09:32
BLE5速度转换

对话小组你好!

我们目前正试图通过BLE4.2和BLE5功能获得最高的传输速率。

为此,我们使用2个DA14585,一个是从,另一个是中央。
一旦central连接到从属设备,它将启用其中一个特性的通知。
按下从属设备上的按钮会触发突发通知。

为了启用BLE4.2和BLE5功能,我们在代码中使用以下选项:
-连接间隔设置为8毫秒
-最小值/最大值设置为0
-通过调用gattc_set_MTU(0,255),将MTU设置为255;在连接的从属侧
-定义的自动数据长度新连接时协商
-要传输的特征是251字节长

有了这些选项,我们的带宽达到了260 kbps,这是相当不错的,但没有BLE5中预期的那么多。

如果我们将连接间隔设置为100毫秒,我们可以检查每个连接间隔通过一个长数据包发送251个值(见附图)。
因此,启用了数据长度扩展。

然而,我们想知道为什么DA14585按连接间隔发送的数据包不超过1个。将ce_len_min/ce_len_max设置为0,我们认为中心将在第一个数据包之后允许更多数据包。
我们还尝试将ce_len_min/ce_len_max设置为100 ms,但结果相同。

作为第二个增强,我们想知道DA14585是否支持PHY LE 2M(核心v5§3.2.2)?我们怎样才能做到这一点?

谢谢你的帮助。

设备:
MT_对话框
离线
最后一次见到:1天16分钟前
工作人员
加入:2015-06-08 11:34
嗨,埃拉内肯,

嗨,埃拉内肯,

关于PHY LE 2M,不,585的堆栈不支持该功能。关于DLE的问题以及为什么设备不在相同的连接间隔内启动新事务,据我从power profiler所知,外围设备有更多的数据要发送。我假设设备有更多的数据要发送,因为我可以看到外围设备打开了它的Rx以便监听中央设备(它从来没有出现以便设备发送其余的数据),但我不能告诉到底发生了什么,如果设备确实有更多的数据要发送,除非我有一个嗅探日志。请尝试将最大值放入ce_len_max(0xFFFF)中,并检查这是否允许您在一个连接事件中发送更多数据包?此外,如果你有一个嗅探器捕获它也将有助于检查这一点,因为我不能告诉多少从功耗。根据经验,是的,如果设备缓冲了足够多的allready数据,它将在一个连接间隔内发送更多大于标准大小的数据包。

谢谢你的对话

风成风
离线
最后一次见到:2年6个月前
加入:2014-04-08 09:32
你好,MT_对话。

你好,MT_对话。

这里附上了一个嗅探器捕获的DA14585上我们的中央和从机之间的交换。
在连接的交换中,启用了数据长度扩展,但是我们的嗅探器无法理解,显示的数据包长度是错误的。

我们尝试在一个连接间隔内发送3个以上的通知,但从机按连接间隔仅发送一个帧。
连接间隔为30毫秒
CE_min为30 ms
CE_最大值为200毫秒。

任何暗示都感谢!

顺致敬意,

附件:
MT_对话框
离线
最后一次见到:1天16分钟前
工作人员
加入:2015-06-08 11:34
嗨,埃拉内肯,

嗨,埃拉内肯,

我也无法从嗅探器日志中看出什么,我所能看到的是,外围设备在事务中不会第二次出现,而这不是外围设备的功耗所表明的情况,我的意思是,嗅探器日志表明,在发送数据包后,外围设备不会再进行第二次侦听,而power profiler捕获表明,在外围设备侦听时,中央设备不会进行响应。我想出现错误的嗅探器日志的原因是因为它不支持DLE。我可以在一个连接间隔内复制1个或最多2个大数据包的问题的唯一方法是通过限制用户配置下的ce_len_min和ce_len_max,例如,如果我将其设置为0,则在连接间隔内我只能看到1个数据包2,那么,您确定在建立连接期间设置了此选项吗?您可以使用ble_minevtime_get()函数检查这一点。

谢谢你的对话