为什么CC2541蓝牙BLE通信速度实测最大只有500Byte/s?
主机与从机都是使用CC2541,主机的功能是将从机发来的数据通过串口(波特率为115200)发送到电脑,从机每隔40ms使用notify的方式向主机发送数据,一次发送一个包的数据,一个包是20字节,最大连接间隔和最小连接间隔都设定为6了,这样测试出来的速度约为500Byte/s。
为了提升速度,如果从机发送数据间隔变小或者一次发送二个包,那么串口的数据就会部分丢失。
请问有什么办法能让它的通信速度增加?
wanfu,
试一下这个:
http://processors.wiki.ti.com/index.php/OverlappedProcessing
学习了
这是你的串口透传机制的bug引起的,TI官方的吞吐量测试程序,速率可以达到5.9KB/s,是7ms连接间隔发送4包数据,每包20字节。我们这边用的这个程序进行的修改,用手机作为采集器调试完美通过,其中还包含从eprom读数据的时间。
很好阿
Yan,
目前我使用的协议是1.3.2,打算之后试下1.4.0
只要连接间隔发送1个包以上,数据就会丢失,我使用的协议栈是1.3.2,跟这个应该有些关系
我遇到的问题跟你一样,改成20ms,使用notification,主机的响应速率只有30HZ,无从解决啊...
原因找到了,是因为我在使能notify之前就发数据了,后来在notify使能之后再发数据,这样速度就非常快,将近4K/S
你好,我调试过程中遇到了同样的问题,你QQ多少,麻烦加一下我,我请教一下你。我的QQ:569083188
其实真正的原因不是使能notify,而是在连接参数更新成功之前就不停传输数据导致参数更新失败了,所以当我在参数更新成功之前不传输数据,参数更新成功后再传输,速度就能达到4K/s
请问2640有相关的OverlappedProcessing的文档吗?
1. 传输数据前一定要先更新参数
2. 有OverlappedProcessing,到LS给的那个 wiki主页找,翻到2640的部分