串口的波特率误差对数据发送影响

问题:


如果波特率误差为0.16%,连续发送多少个数据后,会出现错误数据

在网上看了下,都说在2.5%的误差范围下,可以保证可靠传输,可最近有个程序在误差0.16%的情况下,连续发送5000个数据左右后,出现一次发送错误


回答1:误差必须少于5%。当串口抖动的时候,CH芯片和某些低端的串口卡,兼容性稍差。可能和采样的算法有关系。

起始位+数据+停止位 ,共十位,至少4倍频才能正确采集,那么一个数据包至少采集40次,如果按照采集4次,有连续三个电平稳定确定为0或者1,频率误差就不能超过两个采集间隔。也就是大约正负5%。实际情况跟采样方式有关系,也可能会更加严格。

回答2:

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

其根据接收器件采样点的不同,最大可容,许4%~5%的波特率误差当然设计不好的UART很可能会差很多


回答3:

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

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

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


回答4:

异步串口有起始和停止位,再加校验位,8位字节最多可有12位。
通常在位中间采样,如此12位偏差50%就可能采样错误造成通信失败,对应通信双方波特率偏差约50%/12=4%,

而与通信双方波特率高低无关,且波特率和通信距离的乘积有上限。





猜你喜欢

转载自blog.csdn.net/wordwarwordwar/article/details/80160847