测量蓝牙串口模块允许的最高通信速率
warmonkey2015/03/01电子技术 IP:广东
今天调程序,需要用串口连续传输大量数据。设置波特率921600,模式8N1,数据发生部分丢失,遂查找原因。
一开始认为是单片机的程序bug,因为我是使用环形缓冲+DMA方式完成的串口通信。
后来发现不是这么回事:如果使用CH340这个USB转串口模块,就没有丢失数据的问题
PC端上位机是自己写的,开发环境Qt,串口接收缓冲已经设置为无穷大。
故推断数据丢失在蓝牙传输到PC的过程中。


随后我发现,只要在发送数据的过程中插入延时,就不会导致数据的丢失。试验过程如下:
image-0001.jpg image-0002.jpg
通过插入延时的方法,可以得知不丢失速率的最小延时数值。为了省时间我只测试了2600字符+10ms和15ms两种情况,没有做更多测试。
2600字符用921600波特率传输需要时间=22.6ms


加上延时15ms,可知平均波特率=553.2kbps
这就是蓝牙2.0无线串口模组BMX-03的最大传输速率
来自:电子信息 / 电子技术
6
已屏蔽 原因:{{ notice.reason }}已屏蔽
{{notice.noticeContent}}
~~空空如也
hwdz
9年11个月前 IP:天津
753394
大概因为蓝牙是以报文传送的吧
为了降低功耗,蓝牙应该采用和GSM或nRF24L01类似的突发方式发送数据,而它这样发送就只能以更高的速度将数据分段打包,然后突发发送,当连续发送的时候,数据量太大,可能缓冲区不够大,来不及把大量数据压制成报文来集中发送,所以就丢失数据了。
仅仅是经验推测,没有对照协议和相关资料。
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
thinker
9年11个月前 IP:广东
753569
也就是说最快67KB的传输速度?
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
hwdz
9年11个月前 IP:天津
753585
引用 thinker:
也就是说最快67KB的传输速度?
如果是大批量连续的传送,看上去是的。
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
thinker
9年11个月前 IP:广东
753646
引用 hwdz:
如果是大批量连续的传送,看上去是的。
串口这样的速度,电脑是呼啦啦的散热啊
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
sln.1550
9年11个月前 IP:安徽
753669
蓝牙的传输速率与无线信道的信噪比有关,在不考虑干扰的情况下,距离越远速率越低。通常无误码的情况下蓝牙2.0的传输速率可以达到1.8Mbit/S
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论

想参与大家的讨论?现在就 登录 或者 注册

所属专业
上级专业
同级专业
warmonkey
学者 机友
文章
363
回复
8004
学术分
12
2008/10/11注册,29分0秒前活动

Cubesat

主体类型:个人
所属领域:无
认证方式:手机号
IP归属地:未同步
插入公式
评论控制
加载中...
文号:{{pid}}
投诉或举报
加载中...
{{tip}}
请选择违规类型:
{{reason.type}}

空空如也

加载中...
详情
详情
推送到专栏从专栏移除
设为匿名取消匿名
查看作者
回复
只看作者
加入收藏取消收藏
收藏
取消收藏
折叠回复
置顶取消置顶
评学术分
鼓励
设为精选取消精选
管理提醒
编辑
通过审核
评论控制
退修或删除
历史版本
违规记录
投诉或举报
加入黑名单移除黑名单
查看IP
{{format('YYYY/MM/DD HH:mm:ss', toc)}}