串口RS232和485通讯的波形分析

1、串行数据的格式异步

 

异步串行数据的通常格式是:起始位+数据位+中止位,其中起始位1 位,数据位能够是五、六、七、8位,中止位能够是一、1.五、2位。spa

起始位是一个值为0的位,因此对于正逻辑的TTL电平,起始位是一位时间的低电平;中止位是值为1的位,因此对于正逻辑的TTL电平,中止位是高电平。线路路空闲或者数据传输结束,对于正逻辑的TTL电平,线路老是1。对于负逻辑(如RS-232电平)则相反。blog

 

例如,对于16进制数据55aah,当采用8位数据位、1位中止位传输时,它在信号线上的波形如图1(TTL电平)和图2(RS-232电平)所示。 (先传第一个字节55,再传第二个字节aa,每一个字节都是从低位向高位逐位传输)。同步

   

图1 TTl串行数据帧格式it

图2 RS232电平串行数据帧格式方法

 

2、根据波形图计算波特率im

 

如图3是图1在示波器中的显示示意,其中灰色线是示波器的时间分度线,此时假设是200us/格。总结

 

             

图3 波特率计算示意图数据

能够看了,第一个字节的10位(1位起始位,8位数据位和1位中止位)共占约1.05ms,这样可计算出其波特率约为:10bit / 1.05ms X 1000 ≈ 9600 bit/smargin

若是上图中的时间轴是100us/格,一样能够计算出波特率应是19200bit/s。

当通信不正常,又能观察到波形时,就可根据上述方法,从波形图计算一下波特率是否正确。

RS-485是一种半双工的串行通信方式(RS-422为全双工),485电平芯片因此要正确接收和发送数据,必需保证控制信号和数据的同步,不然要么发送数据丢失,要么接收数据可能丢失。

图4 RS485正确的发送数据时序

在图4中,发送控制信号的宽度基本与数据信号的宽度一致,因此能保证发送数据的正确和发送后及时转为接收。图5 和图6 分别是控制信号过短和控制信号太长的状况。

图5 RS-485控制信号过短的时序

图6 RS-485控制信号过短的时序

 

在图5中,因为控制信号关闭过早,则第二个字节的后两位将发送错误;在图6中,因为控制信号关闭过迟,使485芯片在发送数据后,不能及时转到接收状态,此时总线如有数据过来,则本单元将不能正确接收。

总结:只要掌握上述波形分析方法,任何异步串行数据的接收和发送问题,基本均可以获得解决。

 

相关文章
相关标签/搜索