原创 串口通讯误码分析及波特率自适应技术

2010-10-7 15:49 3725 12 12 分类: 通信

串口通讯误码分析及波特率自适应技术


为讨论方便,只论证1位起始位+8位数据+1位停止位的误码问题

现设:发送方每位传输时间为TCK

 接收方每位传输时间为RCK

 起始位L(低电平),停止位H(高电平)

 空闲状态为X(高电平),收据位DX(D0..D7)

 通讯数据流为XXXXXLDDDDDDDDHXXXXXLDDDDDDDDHXXXX...

 采样一般采用串口通讯公认的“中部三中取二”算法

当收发双方采用事先约定固定波特率串口通讯时,由于双方系统

时钟差异和线路传输时延,将会出现以下3种问题:

1. TCK=RCK时(可以稍有偏差)

 发送数据流为XXXXXLDDDDDDDDHXXXXXLDDDDDDDDHXXXX...

 接收数据流为XXXXXLDDDDDDDDHXXXXXLDDDDDDDDHXXXX...

 故在这种情况下不会出现误码现象。

 (别拍砖!这连腹中胎儿都“知道”,不敢“卖弄是非”)

2. TCK<RCK时(发快收慢)

 由于串口采用“中部三中取二”算法,故只讨论RCK<=1.5TCK。

 A)RCK=1.5TCK(“草图”)

 发送数据流为XXXXXLD0D1D2D3D4D5D6D7HX0X1X2X3X4X5X6...

 接收数据流为XXXXXLDDDDDDDDDDDDDDDD5DDD6DDDD7HXXXX...

 故接收到的数据为111D4..D0,既高3位恒为'1'的“怪事”

 B)RCK=1.25TCK(“草图”)

 发送数据流为XXXXXLD0D1D2D3D4D5D6D7HX0X1...

 接收数据流为XXXXXLDDDDDDDDDDDDDDD6D7HXX...

 故接收到的数据为1xD4..D0,既最高位恒为'1',

 次高位不定的“怪事”

 所以,可“总结”为最高位恒为'1',加快接收速率“才是真”

3. TCK>RCK时(发慢收快)

 这种现象总会出现“群魔乱舞”的乱码,只有“天知道”。

 解决的唯一方法是加快发送速率或降低接收速率。

所谓的“波特率自适应技术”,就是双方为防止以上问题的出现。

发送方特意在发送数据串前,先发送1个字节的“波特率校准码”

一般为大写字母U,即55H(数据流为方波信号)。


来源:

http://www.hbfydz.com/xxyd/212.html


PARTNER CONTENT

文章评论0条评论)

登录后参与讨论
我要评论
0
12
关闭 站长推荐上一条 /4 下一条