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不接。
DB9
输出旗子暗记
RS-422全双工接线
RS-485半双工接线
1
T/R+
发(A+)
RS-485(A+)
2
T/R-
发(B-)
RS-485(B-)
3
RXD+
收(A+)
空
4
RXD-
收(B-)
空
5
GND
地线
地线
③ 拓扑构造
RS485有两线制和四线制两种接线,四线制只能实现点对点的通信办法,现很少采取,多采取的是两线制接线办法,这种接线办法为总线拓扑构造,在同一总线上最多可以挂接32个节点。
RS-485总线同I2C,也是主从模式,支持点对点单从机模式,也支持多从机模式,不支持多主机模式。
RS-485收发器
RS-485是差分传输,如果用单片机掌握RS-485接口的设备,须要用到收发器,这一点和CAN总线是类似的,如下是一个MCU掌握一个RS-485的图示。
收发器内部是一个吸收器(上半部分)加一个发送器(下半部分),下面大略说说收发器的事理,便于理解MCU是如何和485设备通信的。
RS-485收发器内部构造
个中:
A和B为总线;R为吸收器输入;RE为吸收器使能旗子暗记;DE为发送器使能旗子暗记;D为发送器输出;对付使能旗子暗记,字母上面加一横的为低电平有效(如上图RE),不加的为高电平有效(如DE)。
对付发送器,有如下的真值表:
当驱动器使能引脚DE为逻辑高时,差分输出A和B遵照数据输入D处的逻辑状态。D处的逻辑高导致A转为高,B转为低。在这种情形下,定义为VOD=VA-VB的差分输出电压为正。当D为低时,输出状态反转,B变高,A变低,VOD为负。当DE低时,两个输出都变成高阻抗。在这种情形下,与D处的逻辑状态是不干系的。发送器真值表
对付吸收器,有如下的真值表:
当吸收器使能引脚RE逻辑低时,吸收器被激活。当定义为VID=VA–VB的差分输入电压为正且高于正输入阈值VIT+时,吸收机输出R变高。当VID为负且低于负输入阈值VIT-,吸收机输出R变低。如果VID在VIT+和VIT-之间,则输出不愿定。当RE为逻辑高或悬空时,吸收机输出为高阻抗,VID的大小和极性无关。吸收器真值表
RS-485数据链路
上面讲到的RS-485收发器的事情事理,下面大略描述RS-485的数据链路。
主机发送给从机或者从机发送给主机,都会占用到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-232和RS-485转换模块
RS-485和CAN的差异
虽说RS-485没有标准的数据协议格式,但和CAN总线在很多地方是有相似的,比如A&B和CANH&CANL都是差分旗子暗记,通信都须要收发器,都须要120欧姆的匹配电阻等等。
总线特性
CAN总线
RS-485总线
硬件本钱
稍高
低廉
总线利用率
优先级自动仲裁,利用率高
采取轮询,利用率低
数据传输率
高
低
缺点检测机制
掌握器带校验机制,担保底层数据传输精确
只有物理层规范,无数据链路层规定
单节点故障影响
总线无影响
总线瘫痪
开拓本钱
软件开拓灵巧,韶光本钱低
开拓难度较大
系统本钱
较低
高
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上加下拉,接反数据通信也可能出错。某些收发器内部集成高下拉电阻,则外部不须要再添加。







