ble 传输速率

举报
福州司马懿 发表于 2021/11/19 05:32:44 2021/11/19
【摘要】 整合自 http://www.deyisupport.com/question_answer/wireless_connectivity/bluetooth/f/103/t/59848.aspx 根据T...

整合自 http://www.deyisupport.com/question_answer/wireless_connectivity/bluetooth/f/103/t/59848.aspx

根据TI的文档说明,BLE的传输速率可以达到5.9Kb/s。

现在我使用SimpleBLECentral于SimpleBLEPerpheral通讯。

建立了一个具有GATT_PROP_NOTIFY|GATT_PROP_READ|GATT_PROP_WRITE属性的Char。

UPDATE_CONN_INTERVAL 都设置为 4*1.25/ms

SimpleBLEPerpheral -> SimpleBLECentral数据通过Notify的方式进行,每次20Byte。

连续发送,发现当发送速率小于1.5KB/s时,数据可以完全传输成功。但是当速率大于1.5KB/s时,数据丢失就相当的严重。

反过来传输:

SimpleBLECentral-> SimpleBLEPerpheral 数据通过GATT_WriteCharValue的方式进行,每次20Byte。

连续发送,发现当发送速率小于0.5KB/s时,数据可以完全传输成功。但是当速率大于0.5KB/s时,数据丢失就相当的严重。

疑问:

1、为何相互之间的传输速率不一样,一个快,一个慢?
答:这个是由于notification 和 write 的机制不一样。notification 是只管发送,不需要回应,write的话需要等slave回复才能继续往下走。write 也有write without response的方式,这个会快一点,还有blob write的方式(long write),这些都可以在代码里面找到。但write without response的方式能否保证数据传输的可靠性?

2、如何提升主从设备间的数据传输速率?
答:提升传输数据,如果你用的是1.4的协议栈,可以参考一下这个http://processors.wiki.ti.com/index.php/OverlappedProcessing
但OverlappedProcessing里面的方法已经试过了,并没有什么明显的改善。

文章来源: blog.csdn.net,作者:福州-司马懿,版权归原作者所有,如需转载,请联系作者。

原文链接:blog.csdn.net/chy555chy/article/details/52222982

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。