▷ 硬件协议篇-一文搞懂“RS485”

⌹ 365bet现场滚球 ⏱️ 2026-06-23 06:12:14 👤 admin 👁️‍🗨️ 5442 ❤️ 979
硬件协议篇-一文搞懂“RS485”

【特征阻抗】

对于均匀传输线(如双绞线),当信号在上面传输时,任何一处的瞬态阻抗都是相同的,也就是我们所说的阻抗连续,在瞬态阻抗不变时,我们称其为特性阻抗,其中双绞线特征阻抗120Ω。

【接收器输入阻抗】

RS-485接收器的输入阻抗是指接收器在差分输入端(A线和B线)呈现的等效电阻值。它衡量了接收器从总线上汲取电流的能力 ——阻抗越高,接收器从总线获取的电流越小,对总线信号的衰减影响也越小,在长距离通信时,能有效地保持信号的差分电压,使输出信号不失真。

RS-485标准规定,接收器的最小输入阻抗为12KΩ。标准允许总线上最多连接32个“单位负载”的设备,每个单位负载即对应12KΩ的输入阻抗。

若设备输入阻抗更高(如48KΩ、96KΩ),则单个设备的负载仅为“1/4个单位负载”或“1/8个单位负载”,总线上可连接的设备数量可相应增加(如128个、256个)。

【共模电压范围】

RS-485常用于长距离通信,不同节点之间可能存在地电位差。标准规定了驱动器与远端接收器之间±7V的最大接地电势差,当驱动器输出为5V,地电位差为-7V 时,相对于接收器接地的最大正接收器输入电压为+12V,从而确定了共模电压范围为- 7V~+12V。

RS485驱动能力

RS-485的驱动能力在芯片手册中,常以节点数来表示每个RS-485接口芯片的驱动能力,它决定了能驱动多少个标准RS-485负载。

RS-485规定一个收发器必须能够驱动高达32个单位负载的总共模负载,同时能够给RD = 60Ω差分电阻提供VOD=1.5V的差分输出电压。另外,该标准还要求在VCM =–7 V 到+12 V共模电压范围保持这种驱动能力,以便允许驱动器和接收器接地之间的接地电位差。

按照规范,每个标准RS-485接口的输入阻抗至少为12KΩ,从而定义了32个标准驱动节点数。然而,为满足更多节点的通信需求,某些芯片的设计采用了降低输入阻抗的方法,如1/2负载(≥24KΩ)、1/4负载(≥48KΩ)和1/8负载(≥96KΩ),这样相应的节点数便可增加至64、128和256。

在这里可以提出3个疑问?

(1)为什么定义单位负载概念?

(2)为什么输入阻抗是12KΩ,且最大节点数是32个?

(3)RS-485收发器可以驱动多大的总线电流?

【为什么定义单位负载概念】

TIA/EIA-485A标准规定“单位负载”的核心目的是规范多节点总线上接收器输入阻抗一致。例如某设计采用多家厂商芯片且接收器输入阻抗各不相同,当多个接收器的输入阻抗并联时,可能出现部分节点正常,部分节点丢包的问题。

【为什么输入阻抗是12KΩ,且最大节点数是32个?】

RS-485的“输入阻抗12KΩ”和“最大节点数32个”并非直接绑定的关系,而是不同阶段标准设计的结果:

RS-485的输入阻抗并非固定为12KΩ,而是随技术发展从“高负载”向“低负载”演进的结果:原始标准(1983年):1个单位负载(1UL)定义为“差分电压±2V时,输入电流±1mA”,根据欧姆定律R=U/I,等效阻抗为2V/1mA=2KΩ(即1UL=2KΩ)。此时单个接收器的输入等效阻抗为2KΩ,是早期工艺下的典型值。

现代扩展需求:工业场景需要更多节点(如超过32个),而节点数量受总负载限制(总负载不能低于驱动器的驱动能力,如54Ω)。若降低单个节点的“负载占比”(即降低单位负载),可支持更多节点。例如:若定义1/6UL为一个节点(即单个节点的负载是原始1UL的1/6),则在±2V电压下的输入电流为1mA×1/6≈0.167mA,等效阻抗为2V/0.167mA≈12KΩ。因此,12KΩ是“1/6UL”节点的典型阻抗,其核心目的是通过降低单个节点对总线的负载消耗,扩展总线上可连接的节点数量。

“最大节点数32个”的来源:原始标准的总负载限制“32个节点”是RS-485原始标准(针对1UL=2KΩ节点)规定的上限,32个1UL节点(每个2KΩ)并联后的总阻抗为2KΩ/32=62.5Ω,这一总负载接近驱动器的设计极限(标准中驱动器需支持54Ω负载下输出≥±1.5V)。若节点数超过32个,总阻抗会低于62.5Ω(如64个节点总阻抗31.25Ω),驱动器无法输出足够电压,导致信号失真。

因此,32个节点是原始标准中“1UL=2KΩ”节点的最大上限,其核心是确保总负载在驱动器的驱动能力范围内。12KΩ阻抗与32个节点的关联,本质是“单位负载”定义的延伸:原始标准:1UL=2KΩ→32个节点总负载62.5Ω(符合驱动器能力)。现代扩展:12KΩ对应1/6UL→总负载与原始标准相同(62.5Ω)时,可支持的节点数为32÷(1/6)=192 个(即32×6=192)。

因此,“32个节点”是原始1UL节点的上限,而12KΩ节点的上限是192个。

【RS-485收发器可以驱动多大的总线电流?】

我们看到,除驱动通过端接电阻器的差分电流以外,驱动器还必须驱动通过许多接收器输入阻抗的电流,以及通过位于总线上的故障保护网络的电流。这些阻抗在差分信号线路和接地之间形成电流通路,同时影响了A和B信号线的电流,且影响程度相同。因此,可以将它们表示为共模阻抗RCM。

RS-485规定一个收发器必须能够驱动高达32个单位负载的总共模负载,同时能够给RD = 60Ω差分电阻提供VOD=1.5V的差分输出电压。另外,该标准还要求在VCM =–7 V 到+12 V共模电压范围保持这种驱动能力,以便允许驱动器和接收器接地之间的接地电位差。

60Ω差分电阻代表两个120Ω端接电阻器并联的电阻值,而32个单位负载得到的总共模负载电阻为RCM = 12 kΩ/32=375Ω。典型等效电路如下:

假设非反相驱动器输出A具有更高的正总线电压,则其电流计算方法为:

而反相输出B的电流计算方法如下:

由于数据传输期间A和B输出不断改变极性,因此最好是使用一些通用术语来表示输出电流方程式。所以,更多正输出(或者高输出)必须拉出电流:

假设为VOS=2.5V、VOD=1.5V、RD=60Ω和RCM=375Ω。计算得出IOH≈53mA,实际上,市场上销售的大多数RS-485收发器,都具有60mA及以上的最小注入和拉出能力。

RS485链路拓扑

RS-485通信对单片机/DSP/处理器接口而言,是应用UART接口与RS-485收发器完成的,完全遵循UART的通信协议。

【单从机通信】

当Host发送数据时,数据沿着红色的线经由双绞线,传输至Slave的差分接收电路,当Slave应答时,数据沿着蓝色的方向传输至Host的接收电路,但是传输介质是一对双绞线(即差分传输),所以一方在传输数据的时候,另一方是无法传输信号的。

【多从机通信】

RS-485接口通过总线结构,最多可连接256个收发器,展示出强大的多站能力,在实际应用中可满足远距离通信需求,多从机通信常采用菊花链拓扑结构,它是RS-485总线布线的标准及规范,是TIA等组织推荐使用的RS-485总线拓扑结构。如下图所示:

其布线方式就是主控设备与多个从控设备形成手拉手连接方式,即:假如整个RS-485总线上有A、B、C、D、E多个设备,则布线为:将A的485+接到B的485+接口上,再从B的485+上面再引出一条线接到C的485+上面,以此类推,一直接到E的485+接口上面,485-接线方式和485+一样。特别注意的是,不留分支才是手拉手的方式。

这种布线方式,具有信号反射小,通讯成功率高,不需要采用额外设备等优点。

RS485常用接口芯片

RS-485接口芯片种类繁多,常见的有MAX系列、SN系列、SP系列、BL(上海贝岭)系列等,下面我们主要介绍一下MAX3485E。

【特性】

MAX3485E是一个3.3V供电的半双工、低功耗RS-485收发器,包括一个驱动器和一个接收器,两者都可独立启用和禁用。当两者均被禁用时,驱动器和接收器都会输出高阻抗状态。MAX3485E具有1/8负载,允许256个MAX3485E收发器连接至同一通信总线。可实现最高12Mbps的无差错数据传输。MAX3485E的工作电压范围为3.0至3.6V,并具备故障安全和过温保护、电流限制保护、过电压保护和其他功能。

(1)3.3V供电,半双工

(2)1/8单位负载允许总线上有最多256个设备

(3)驱动器输出短路保护功能

(4)过温保护功能

(5)低功耗关机功能

(6)接收机开路保护功能

(7)抗噪能力强

(8)在电气噪声环境中,传输速率高达12Mbps

【引脚说明】

【驱动器电气特性】

(1)无负载时,DI引脚(UART_TX)为高电平空闲状态,差分输出电压为高电平

(2)差分阻抗RL=54Ω时,最小输出电压1.5V;差分阻抗RL=100Ω时,最小输出电压2V

(3)∆VOD和∆VOC是输入信号的DI状态改变所引起的VOD和VOC振幅的变化

【接收器电气特性】

【供电电流】

(1)当处于接收状态时,供电电流典型值520μA

(2)当处于发送状态时,供电电流典型值540μA

【功能列表】

【典型应用电路】

在恶劣环境下,RS-485通信端口通常需要防静电、防雷击和防浪涌等保护,甚至需要防止380V电压以避免智能电表和工业控制主机损坏。下图展示了三种常见的RS-485总线端口保护方案。第一种方案是将TVS设备连接到与AB端口并联的保护接地装置、与AB端口并联的TVS器件、与AB端口串联的热敏电阻以及气体放电管均连接至保护接地装置,形成三级保护方案。第二种方案是三级保护方案,包括与AB并联接地的TVS、串联的热敏电阻和压敏电阻与AB并联。第三个包括连接到电源和地的下拉电阻,分别用于AB、AB和连接到A或B端口的热敏电阻之间的TVS。

RS485常用电路设计

常见RS-485电路设计如下图所示:从收发器的控制角度来看:控制芯片侧,/RE和DE使用相反逻辑使能控制,且RS-485为半双工通信,所以可以用一个RS485_R/W脚来控制收发使能,当RS485_R/W=0时,接收电路使能/RE=0,发送电路不使能DE=0,主机进行数据接收;当RS485_R/W=1时,接收电路不使能/RE=1,发送电路使能DE=1,主机进行数据发送。

【端接设计】

首先为什么要端接?这是由于RS-485采用双绞线传输,标准规定的双绞线的差分特征阻抗在100Ω至150Ω之间。选择120Ω作为标称特征阻抗。

如下图所示,假定信号自左边站点发出,如果没有端接,信号在线路上传输其阻抗是连续的,但是到达右侧的时候,等效阻抗则变成了接收电路的输入阻抗,比如是12KΩ,阻抗不连续了,阻抗突变!信号的一部分能量就会按照原路径返回,如返回回去的信号由于容抗及感抗,就会产生相差。反射回去的信号与原信号叠加在一起。这样就会造成通信发生错误,严重的时候,通信就无法正确进行。所以端接的作用是为了匹配网络的通信阻抗,减少由于不匹配而引起的反射、吸收噪声,提高RS-485通信的可靠性。如下给出两种端接方式:

在噪声比较严重的场合,建议使用右边的端接方案,利用两个60Ω电阻以及220pF电容形成低通滤波器,将增加线路的抗噪声能力。在实际工程布线的时候,如果遇到噪声比较严重的时候,可以利用示波器查看总线信号质量,再将端接方式做一些小的调整。

【上下拉电阻设计】

根据RS-485标准,当485总线差分电压大于+200mV时,485收发器输出高电平;当485总线差分电压小于-200mV时,485收发器输出低电平;当485总线上的电压在-200mV~+200mV时,485收发器可能输出高电平也可能输出低电平,但一般总处于一种电平状态,若485收发器输出一个低电平,这对于UART通信来说是一个起始位,此时通信会不正常。

由于目前485芯片为了提高总线上的节点数,输入阻抗设计的比较高,例如输入阻抗为1/4单位阻抗或者1/8单位阻抗(单位阻抗为12KΩ,1/4单位阻抗为48KΩ),在管脚悬空时容易受到电磁干扰。因此为了防止485总线出现上述情况,通常在485总线上增加上下拉电阻,即通常A接上拉电阻,B总线下拉电阻,确保总线空闲时差分电压稳定在逻辑“1”。

【上下拉电阻取值】

那么如何选取上下拉电阻值呢?在此只分析有终端电阻的情况,RS-485可连接节点是固定的,有32、64、128和256等,以最大32个节点为例,输入阻抗为12KΩ。

取值推导需要用到的参数如下:

(1)接收器灵敏度为差分电压200mV

(2)最小共模负载375Ω(32个节点输入阻抗并联)

(3)最小差模负载54Ω

(4)差模负载不低于54Ω时,驱动端至少能提供驱动差分电压1.5V

上限计算:

以两节点情况为例,如上图所示,公式推导:

换算后得出:

其中VCC是上拉电压,取值+3.3V;R=RU=RD为上下拉电阻;RIN为收发器内阻,取值为12KΩ;RT为终端电阻120Ω;VA、VB为总线电压。得出R≤462Ω。

同理可推出n个节点的情况:

RS-485最大可连接32个节点,因此可得出R≤13.8kΩ。

下限计算:

先看一下没有上下拉电阻时的差模负载和共模负载:

2个节点情况下差模负载和共模负载:

32个节点情况下差模负载和共模负载:

有上下拉电阻时个2个节点情况下差模负载:得出R≥283Ω

有上下拉电阻时32个节点情况下差模负载:得出R≥964Ω

在考虑差模负载的同时,共模负载也要满足RCOM≥375Ω。以下是各个数量节点时,上下拉电阻必须满足的最小阻值。

【防护设计】

增加RS-485总线对地TVS,当在A对大地、B对大地之间增加TVS管,耦合到RS-485总线上的电快速脉冲群骚扰电压幅值较高时,干扰电压会被TVS钳位,达到保护RS-485收发器的目的。TVS一般选用专用器件,如JEB712M。

【RS-485总线串联磁珠或电阻】

由于磁珠在高频时相当于电阻,会将高频能量转化为热能消耗掉。因此RS-485总线上串联磁珠,在电快速脉冲群信号耦合到RS-485总线上时,电快速脉冲群骚扰的能量会被磁珠消耗掉,提高RS-485总线的抗干扰能力。

一般会在RS-485总线上串联10Ω/33Ω电阻,一方面可实现阻抗匹配,抑制信号反射,改善差分波形,提升总线稳定性;另一方面串联电阻与总线电容形成低通滤波器,可以抑制高频能量。

RS485自动收发电路设计

485芯片采用MAX485芯片,电路使用NPN三极管切换收发。控制原理是:MCU的UART的TX和RX引脚需要连上拉电阻(TX和RX在没有通信时均是高电平),防止刚上电TX和RX引脚电平不稳定引起收到扰乱数据。A上拉电阻B下拉电阻,终端并联120Ω电阻,D10、D11、D12为三个防雷防浪涌的TVS管。

接收:默认没有数据时,UART_TX为高电平,三极管导通,MAX485芯片RE低电平使能,RO接收数据,此时从485AB口收到什么数据就会通过RO通道传到MCU,完成数据接收过程。

发送:当发送数据时,UART_TX会有一个下拉的电平,表示开始发送数据,此时三极管截止,DE为高电平发送使能。当发送数据‘0’时,由于DI口连接GND,此时数据‘0’就会传输到AB口,A-B<0,传输‘0’,完成了低电平的传输。当发送‘1’时,此时三极管导通,按理说RO使能,此时由于还处在发送数据中,这种状态下MAX485处于高阻态,此时的状态通过A上拉B下拉电阻决定,此时A-B>0传输‘1’,完成高电平的传输。

此时有人肯定也会有疑惑,发送数据‘1’,三极管导通RE低电平有效应该是接收使能,为什么芯片会是高阻状态?

因为UART发送收据会有一定的格式,数据均以“位”为最小单位进行传输。在收发数据之前,UART之间要约定好数据的传输速率(即每位所占据的时间,其倒数为波特率)、数据的传输格式(有多少数据位、是否有校验位、奇校验还是偶校验、是否有停止位)。平时数据线处于“空闲状态”(1状态)。当发送数据时,TX由‘1’变为‘0’维持1位的时间,这样收方检测开始位后,再等待1.5位时间就开始一位一位的进行数据传输。意思是说,已经确定好发送状态,电路发送‘1’此时RE有效,接收有效但又由于它处于发送阶段,此时芯片会处于高阻状态。

受三极管切换速度、收发器内部接口阻抗等影响,分立元件搭建的自动收发切换电路会降低系统稳定运行的最大波特率。

RS485常见故障分析返回搜狐,查看更多

◈ 相关文章

苏瑾名字寓意,苏瑾名字的含义,苏瑾名字的意思解释
⌹ 365bet现场滚球

▷ 苏瑾名字寓意,苏瑾名字的含义,苏瑾名字的意思解释

⏱️ 02-16 👁️‍🗨️ 3216
40码鞋子对应的厘米长度,轻松换算不再迷茫
⌹ 365bet现场滚球

▷ 40码鞋子对应的厘米长度,轻松换算不再迷茫

⏱️ 10-20 👁️‍🗨️ 9437