原来RS-485这么简单?

原来rs-485这么简单?
▉ rs-485概述
rs-485和rs-232一样,都是串行通信标准,现在的标准名称是tia485/eia-485-a,但是人们会习惯称为rs-485标准,rs-485常用在工业、自动化、汽车和建筑物管理等领域。
rs-485总线弥补了rs-232通信距离短,速率低的缺点,rs-485的速率可高达10mbit/s,理论通讯距离可达1200米;rs-485和rs-232的单端传输不一样,是差分传输,使用一对双绞线,其中一根线定义为a,另一个定义为b。
▉ rs-485物理层
rs-485的物理层负责在设备和物理传输介质之间传输原始数据。它处理电信号到数字数据的转换,同时定义电压、时序、数据速率等。
① 差分信号
长距离布线会有信号衰减,而且引入噪声和干扰的可能性更大,在线缆a和b上的表现就是电压幅度的变化,但是,采用差分线的好处就是,差值相减就会忽略掉干扰依旧能输出正常的信号,把这种差分接收器忽略两条信号线上相同电压的能力称为共模抑制。
标准规定了,逻辑1:+2v to +6v;逻辑0:-6v to -2v。
rs-485不需要使用特定的总线电压,只看小差分电压,在较长的电缆长度上,接收器接收到的电压可能会降低到+/- 200 mv,这对于rs-485仍然是可以接受的,这也是rs-485的优点之一。
很多收发器的标准达到甚至超过tia/eia-485a规范,在实际使用中,以器件的spec参数为主,如下某收发器的负输入阈值小也是-200mv。
② 信号定义
现在很多的rs-485转换器都是兼容rs-422的,所以看到很多转换器上面的信号都是t/r+、t/r-,即对应rs-485的a+和b-。
对于db9针型的母头,rs-485有如下的接线定义示意,pin6~pin9为n/a不接。
③ 拓扑结构
rs485有两线制和四线制两种接线,四线制只能实现点对点的通信方式,现很少采用,多采用的是两线制接线方式,这种接线方式为总线拓扑结构,在同一总线上多可以挂接32个节点。
rs-485总线同i2c,也是主从模式,支持点对点单从机模式,也支持多从机模式,不支持多主机模式。
▉ rs-485收发器
rs-485是差分传输,如果用单片机控制rs-485接口的设备,需要用到收发器,这一点和can总线是类似的,如下是一个mcu控制一个rs-485的图示。
收发器内部是一个接收器(上半部分)加一个发送器(下半部分),下面简单说说收发器的原理,便于理解mcu是如何和485设备通信的。
其中:
a和b为总线;
r为接收器输入;
re为接收器使能信号;
de为发送器使能信号;
d为发送器输出;
对于使能信号,字母上面加一横的为低电平有效(如上图re),不加的为高电平有效(如de)。
对于发送器,有如下的真值表:
1、当驱动器使能引脚de为逻辑高时,差分输出a和b遵循数据输入d处的逻辑状态。d处的逻辑高导致a转为高,b转为低。在这种情况下,定义为vod=va-vb的差分输出电压为正。当d为低时,输出状态反转,b变高,a变低,vod为负。
2、当de低时,两个输出都变成高阻抗。在这种情况下,与d处的逻辑状态是不相关的。
对于接收器,有如下的真值表:
1、当接收器使能引脚re逻辑低时,接收器被激活。当定义为vid=va–vb的差分输入电压为正且高于正输入阈值vit+时,接收机输出r变高。当vid为负且低于负输入阈值vit-,接收机输出r变低。如果vid在vit+和vit-之间,则输出不确定。
2、当re为逻辑高或悬空时,接收机输出为高阻抗,vid的大小和极性无关。
▉ rs-485数据链路
上面讲到的rs-485收发器的工作原理,下面简单描述rs-485的数据链路,可以先看一下通俗易懂的uart协议帧格式
主机发送给从机或者从机发送给主机,都会占用到a和b线,所以rs-485多用在半双工模式。
主机的gpio会控制rs-485收发器的de管脚,设置发送模式,从uart txd线向rs-485收发器的数据(d或di)线发送一个字节,收发器将在a和b线上将单端uart位流转换为差分位流,数据离开收发器后,主机立即将收发器的模式切换为接收模式。
从机和主机是类似的,从机控制rs-485收发器的/re管脚,设置为接收模式,接收主机发送的比特流,将其转换为单端信号,通过从机的uart rxd线接收,当从机准备好响应时,它按主机原来的方式进行发送,而主机变为接收。
▉ rs-232和rs-485转换
rs-232和rs-485之间可以转换,一个方法是rs-232转换成ttl,再由ttl转换为rs-485,当然也有芯片支持将rs-232直接转换成rs-485,网上有很多模块。
▉ rs-485和can的区别
虽说rs-485没有标准的数据协议格式,但和can总线在很多地方是有相似的,比如a&b和canh&canl都是差分信号,通信都需要收发器,都需要120欧姆的匹配电阻等等。
▉ rs-485常用电路
网上找的一个常用的rs-485电路,其中需要注意两点:
1、使能信号re和de可采用一个gpio控制,节省资源,gpio25输出高电平,re=de=0v,进入接收模式;gpio25输出低电平,re=de=3.3v,进入发送模式。
2、有一些电路中会在a上加上拉,b上加下拉电阻,主要原因是:rs-485总线在idle状态,电平是不固定的,即电平在-200mv~+200mv之间,收发器可能输出高也可能输出低,uart在空闲时需要保持高电平的,如果此时收发器输出一个低电平,对uart来说是一个start bit,会导致通信异常,关于ru和rd的阻值在这里不作过多赘述,后面有机会会详细写一篇文章。
关于第二点,需要注意:
① a上加上拉,b上加下拉,接反数据通信也可能出错。
② 某些收发器内部集成上下拉电阻,则外部不需要再添加。

XH-808S色彩色差仪/分光测色仪介绍
餐饮压缩空气自吸式油水分离器有什么作用?
数控机床防护罩常用分类有哪些?
吸料机新手安装须知
T960 PCR仪的可靠性、耐久性和反应过程步骤
原来RS-485这么简单?
振动盘给料禁止及偏料缘故及解决方案
锻造材质工艺要求 2
继电保护测试仪差动试验单元界面设置说明
气相色谱法测定环己烷中甲酸(GC2010型气相色谱仪)
自动酶标洗板机堵孔的预防和处理
针织彩条布
天津安装一台150吨大地磅多少钱
ZBH-12GRLA
浅谈冲压式潜水搅拌机安装系统知识
气调包裝机应用中的技术性关键环节是什么?
美国仙童调压阀使用特点介绍
污水处理的重要性
四级承试资质设备的主要作用有哪些
务农吊装可以使用液压小吊机