打印

串口的波特率误差对数据发送影响有多大??

[复制链接]
22030|13
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
tdh03z|  楼主 | 2008-6-9 11:16 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
沙发
xwj| | 2008-6-9 11:24 | 只看该作者

无影响,异步串口每个字节有起始位和停止位同步

其根据接收器件采样点的不同,最大可容许4%~5%的波特率误差

当然设计不好的UART很可能会差很多


呵呵,改个错别字:-)

使用特权

评论回复
板凳
huangqi412| | 2008-6-9 11:38 | 只看该作者

有起始位,误差不会累积起来.

使用特权

评论回复
地板
原野之狼| | 2008-6-9 13:15 | 只看该作者

赞成

使用特权

评论回复
5
tdh03z|  楼主 | 2008-6-9 19:41 | 只看该作者

谢谢你们的回复

可实际使用时发现确实会在连续发送几千个数据后发生一个或几个错误,以前一直没注意,改天试试以前用PIC写的程序看看。

哎,虽然可以利用效验或奇偶位来剔除错误数据,可总觉的不踏实哦。

或者是PC端监控出的问题,看来接收与发送都用单片机来完成才能确定。

使用特权

评论回复
6
huangqi412| | 2008-6-9 20:03 | 只看该作者

速度也有影响,如果是usb转com

使用特权

评论回复
7
5880527| | 2008-6-9 20:18 | 只看该作者

楼主的情况需要用一个通讯协议来保证

单片机的串口工作原理很有意思,几年前看过,好象是不停的多次采样,然后同步,能允许一定的误差。

使用特权

评论回复
8
lbn32| | 2015-12-2 09:10 | 只看该作者

那如果如此,115200允许最大误差是多少啊?

我115200,波特率设置为117000会有误码啊。

使用特权

评论回复
9
lbn321| | 2015-12-2 09:13 | 只看该作者
lbn32 发表于 2015-12-2 09:10
那如果如此,115200允许最大误差是多少啊?

我115200,波特率设置为117000会有误码啊。 ...

那如果如此,115200允许最大误差是多少啊?

我115200,波特率设置为117000会有误码啊。

使用特权

评论回复
10
datouyuan| | 2015-12-2 09:42 | 只看该作者
最大可容许4%~5%的波特率误差.

波特率在110592~119808之间是不会有问题的.

有误码不是由于波特率误差造成的,要查其它原因.

使用特权

评论回复
11
vrgood| | 2015-12-2 09:45 | 只看该作者
异步串口有起始和停止位,再加校验位,8位字节最多可有12位。
通常在位中间采样,如此12位偏差50%就可能采样错误造成通信失败,对应通信双方波特率偏差约50%/12=4%,
而与通信双方波特率高低无关,且波特率和通信距离的乘积有上限。

使用特权

评论回复
12
huangqi412| | 2015-12-2 15:52 | 只看该作者
lbn32 发表于 2015-12-2 09:10
那如果如此,115200允许最大误差是多少啊?

我115200,波特率设置为117000会有误码啊。 ...

这年头除了一些很低端的内部RC震荡,几乎不用考虑串口波特率这种事情了吧。。。  主流片内RC震荡别说串口,就是USB都基本能跑上几个小时不出错,比如最老的STM32F103C8T6,虽然这么做理论上是不可靠的.    真是低端片子不靠谱的内部RC震荡,能校准的先校准再说吧,普通温度校准了温飘大,那就没法子了。   总之,绝大多数情况下不用再纠结于串口波特率误差了。

使用特权

评论回复
13
duxinlng| | 2015-12-2 16:30 | 只看该作者
我在使用单片机和一个串口模块中遇到过这样的误差问题,第一个字节收发正常,后面的字节就是乱码,调整波特率后,收发正常,小小的误差,乱费了很多时间。

使用特权

评论回复
14
john-deng| | 2018-4-3 14:22 | 只看该作者
vrgood 发表于 2015-12-2 09:45
异步串口有起始和停止位,再加校验位,8位字节最多可有12位。
通常在位中间采样,如此12位偏差50%就可能采 ...

“波特率和通信距离的乘积有上限”这个可以帮忙解释一下吗?

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

20

主题

194

帖子

4

粉丝