您的位置 首页 传感器

RS232和485通讯的波形剖析

经常遇到初学者,对单片机串行通讯出了问题不知道如何办的情况。其实最有效的调试方法是用示波器观察收发数据的波形。通过观察波形可以确定

常常遇到初学者,对单片机串行通讯出了问题不知道怎么办的状况。其实最有用的调试办法是用示波器调查收发数据的波形。经过调查波形能够确认以下状况:
是否有数据接纳或发送;
数据是否正确;
波特率是否正确;

一、串行数据的格局
异步串行数据的一般格局是:开始位+数据位+中止位,其间开始位1 位,数据位能够是5、6、7、8位,中止位能够是1、1.5、2位。

开始位是一个值为0的位,所以关于正逻辑的TTL电平,开始位是一位时刻的低电平;中止位是值为1的位,所以关于正逻辑的TTL电平,中止位是高电平。线路路闲暇或许数据传输完毕,关于正逻辑的TTL电平,线路总是1。关于负逻辑(如RS-232电平)则相反。

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


图1 TTL电平的串行数据帧格局(55aah)


图2 RS-232电平的串行数据帧格局(55aah)

二、依据波形图核算波特率
如图3是图1在示波器中的显现暗示,其间灰色线是示波器的时刻分度线,此刻假设是200us/格。

图3 波特率核算暗示图

能够看了,第一个字节的10位(1位开始位,8位数据位和1位中止位)共占约1.05ms,这样可核算出其波特率约为:

10bit / 1.05ms X 1000 ≈ 9600 bit/s

假如上图中的时刻轴是100us/格,相同能够核算出波特率应是19200bit/s。

当通讯不正常,又能调查到波形时,就可依据上述办法,从波形图核算一下波特率是否正确。

三、依据波形图判别RS-485收发数据的正确与否
RS-485是一种半双工的串行通讯办法(RS-422为全双工),485电平芯片所以要正确接纳和发送数据,必需确保操控信号和数据的同步,不然要么发送数据丢掉,要么接纳数据或许丢掉。

RS-485发送数据时的正确时序如图4所示。


图4 RS-485的正确发送数据时序

在图4中,发送操控信号的宽度根本与数据信号的宽度共同,所以能确保发送数据的正确和发送后及时转为接纳。

图5 和图6 分别是操控信号太短和操控信号太长的状况。


图5 RS-485操控信号太短时的时序

图6 RS-485操控信号太短时的时序

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

总结:只需把握上述波形剖析办法,任何异步串行数据的接纳和发送问题,根本都能够得到解决。

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/yingyong/chuanganqi/234747.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部