玩转单片机与嵌入式
认证:VIP会员
作者动态 更多
嵌入式操作系统三问:what?when?how?
3星期前
做降本或国产替代时,替换原来的晶振,都需要测试哪些内容?
3星期前
深入浅出,明明白白的搞清楚RS-485总线!
3星期前
我现在用keil的图形化界面编程了,你还在手动修改宏定义吗?
05-10 00:23
我们经常见到的电路板的“黑疙瘩”是啥?知不知道它是怎么做出来的?
05-10 00:13

深入浅出,明明白白的搞清楚RS-485总线!

大家好,很高兴和各位一起分享我的文章,喜欢和支持我的工程师,一定记得给我点赞、收藏、分享。

加微信[xyzn3333]与作者沟通交流,免费获取更多单片机与嵌入式的海量电子资料。

有大量可用的串行接口,UART?232?422?485?CAN?很难理解它们的区别以及何时使用它们。对于工业领域的应用,并非所有的串行接口都是一样的。RS-485 串行接口符合高速和工业稳健性的要求,已成为旋转编码器和其他运动控制设备广泛实施的接口。

一:什么是RS-485?

RS-485 是一种工业规范,定义了电气设备点对点通信的电气接口和物理层。RS-485 标准允许在电噪声环境中实现较长的布线距离,并且可以支持同一总线上的多个设备。

二:什么时间?为什么?在哪里用RS-485?

RS-485 早在 1998 年创建该标准时就已用于广泛的计算机自动化系统。由于该标准允许多点(同一总线上的多个设备)和较长的电缆长度,因此很容易了解它在工业和自动化领域的频繁使用。

在许多设备分布在巨大空间中的剧院应用中也可以看到RS-485的身影。此外,RS-485 标准提供的抗噪能力使接口非常通用。工程师不仅将它用于长距离布线,而且还将其应用到汽车行业等应用中,在这些应用中,不确定最终应用中可能会遇到什么样的噪音。

RS-485 能够在高速、长电缆长度、电噪声环境以及同一总线上的多个设备上使用,使其成为大多数需要串行接口的应用的智能实现。

三:RS-485 标准

RS-485,也称为 TIA-485 或 EIA-485,是为通信协议定义驱动器和接收器电气特性的标准。开放系统互连 (OSI) 模型试图描述通信系统的各个层,从最终应用到电气层,最后到物理层,如下图1。

图1  通信的OSI模型

四:OSI 模型的物理层

01、拓扑结构

OSI 模型的物理层负责在设备和物理传输介质之间传输原始数据。它处理电信号到数字数据的转换,同时定义电压、时序、数据速率等。RS-485 使用的两条信号线,“A”和“B”,必须平衡和差分。平衡信号是在双绞线电缆中共享一对的两条线,每条线上的阻抗相同。除了线路的匹配阻抗外,接收器和发射器还必须有匹配的阻抗。

图 2 显示了一个典型的多点 RS-485 网络,其中每个设备都有一个差分 RS-485 收发器,设备之间的链路由双绞线电缆和终端电阻组成。

图2:RS-485总线的拓扑图

请注意,针对RS-485总线,有多种拓扑可用于布置设备,因为并非所有网络都是平等的,并且端接要求以及设备排列会有所不同。例如,在下面的图 2 中,端接仅用于电缆的开头和结尾。

02、差分信号

平衡布线可在使用差分信号时降低噪声。这些信号“A”和“B”被称为差分信号;其中一个信号与原始信号匹配,而另一个完全反转,这就是为什么它有时被称为互补信号的原因。

在单端接口中,接收器将信号接地,并根据预定的电压电平解析信号状态(这些被称为逻辑电平,因为它们确定信号是逻辑高还是逻辑低)。

然而,在电压趋于下降和压摆率下降的较长电缆距离上,经常会发生信号错误。

在差分应用中,主机生成原始单端信号,然后发送到差分发送器。该发送器创建差分对,通过电缆发送出去。生成两个信号后,接收器不再将电压电平参考到地,而是将信号相互参考。这意味着接收器不是寻找特定的电压电平,而是始终查看两个信号之间的差异。

然后,差分接收器将这对信号重构回一个单端信号,主机设备可以使用主机所需的适当逻辑电平来解释该信号,图 3。这种类型的接口还允许不同电压电平的设备运行通过差分收发器之间的通信将它们连接在一起。所有这些共同作用以克服单端应用在长电缆距离上可能发生的信号衰减。

03、差分信号应对干扰

信号衰减并不是长电缆距离出现的唯一问题。电缆在系统内的时间越长,电气噪声和干扰进入电缆并最终进入电气系统的可能性就越大。当噪声耦合到电缆上时,它显示为不同幅度的电压,但使用平衡双绞线电缆的好处是噪声在每条线路上均等地耦合到电缆。例如,正的 1 伏尖峰将导致 A 上的 +1 V 和 B 上的 +1 V。

由于差分接收器将信号相互减去以获得重建信号,它会忽略两条线上同样显示的噪声, 图 4。差分接收器忽略两条信号线上相同电压的能力称为共模抑制。

04、宽电压范围

RS-485 的其他主要物理层优势之一是信号电压规范。RS-485 不需要使用特定的总线电压,而是指定所需的最小差分电压,即信号 A 和 B 电压之间的差值。

总线要求接收器的最小差分电压为±200 mV,通常所有 RS-485 设备都将具有相同的输入电压范围,尽管以不同的电压进行传输。这意味着任何 RS-485 设备都能够接收 -7 至 12 V 的电压范围,因此工程师可以设计具有该范围内任何传输电压的主机系统。这允许设计人员使用他们现有的电路板电压创建 RS-485 系统。

四:OSI模型的数据链路层

RS-485 是一种双工通信系统,其中同一总线上的多个设备可以双向通信。RS-485 最常用作半双工,如上图所示,只有一条通信线路(“A”和“B”成对)。在半双工中,设备轮流使用同一条线路,在该线路中主机将断言对总线的控制并发送命令,所有其他设备都在监听。接收者将监听其地址,然后该设备将断言控制并做出响应。

相反,在全双工系统中,例如串行外设接口 (SPI) 或通用异步收发器 (UART),主机和从设备可以使用专用输入和输出线同时通信。

在数据层,RS-485 通常使用 UART 进行串行通信,主机 UART 以全双工方式驱动和接收串行通信。它连接到构成物理层的 RS-485 差分收发器,并将信号转换为半双工差分格式,以便在 RS-485 总线上使用。然后主机将通过 UART 与 RS-485 通信,并告诉收发器何时在发送和接收之间切换。从设备也将以同样的方式使用它们的 UART。

UART 具有专用的发送和接收线路,使其能够以全双工、半双工甚至单工方式运行,这意味着数据只能通过一条线路输出或输入。由于 RS-485 通常是半双工的,因此连接到它的 UART 也将以半双工方式运行。

UART 接口是异步的,这意味着通信不包括时钟。主机和从设备必须使用它们自己的内部时钟,并且两个设备都必须知道数据将以何种时钟速率传输。

这与串行外设接口 (SPI) 等同步系统不同,其中一条信号线包含一个时钟,总线上的监听设备可以在该时钟上捕获数据。

此外,UART 通常具有大多数设备将使用的正常格式,但可以配置许多选项来更改规范。UART 的空闲状态是高电压,因此要开始传输,UART 使用一个称为起始位的低脉冲,然后是 8 位数据,并以高停止位完成,图 8。

主处理器将使用 IO 引脚将 RS-485 收发器置于发送模式,并将一个字节从 UART TX 线发送到 RS-485 收发器的数据(D 或 DI)线。收发器会将单端 UART 比特流转换为 A 和 B 线上的差分比特流,图 3。数据离开收发器后,主机立即将收发器模式切换为接收。

从机系统是相同的,这意味着从机 RS-485 收发器接收传入的比特流,将其转换为单端信号,并通过从机的 UART RX 线将其发送到主机设备。当从设备准备好响应时,它会像主机最初那样发送,而主机现在接收,如下图9。

五:OSI 模型的网络层

网络层处理发生在 RS-485 总线上的设备之间的实际通信。由于 RS-485 主要是一种电气规范,因此对话可以到此结束,但由于它支持多点,因此需要在 OSI 模型中解决它。

对网络层的寻址没有固定的规范,但 RS-485 总线必须由主机正确管理以避免总线冲突。当多个设备尝试同时通信时会发生总线冲突,这对网络非常有害。

当发生冲突时,发射器在两端发生冲突并有效地产生短路。这会导致每个设备消耗大量电流,从而使收发器进入热关断状态。为避免冲突,主机控制总线并调用各个设备。这通常是通过拥有一个只有特定设备才能识别的命令集或通过为每个设备提供特定地址来实现的。

由于总线在所有设备之间共享,因此每个设备都会看到主设备发送的命令/地址,但只有在该单个设备被断言时才会响应。

六:OSI 模型的应用层

OSI 模型不是一组规则,而更多是帮助工程师表征系统的模型。RS-485 很好地包含在 OSI 模型的前三层中,总线的实际实现在应用层中进行了表征。这一层涵盖了设备使用的地址或命令集以及数据的解释。它还包括设计人员期望获得多少数据,以及对总线本身的控制。

例如,CUI Devices RS-485 编码器的应用程序将是从设备请求绝对位置的主机。当主机发送编码器的位置命令(地址)时,编码器以两个完整字节响应。然后主机解密这些字节以了解绝对位置是什么,同时确定发送命令的频率以及它想要将它们发送到哪些设备。简单来说,应用层就是RS-485总线的实现。

由于 RS-485 标准仅定义了具有寻址要求的物理和数据链路层,因此应用层可以采用各种专有或开放的通信协议。工程师可以采用现有的协议,例如 Modbus,或者他们可以为他们的应用定义自己的协议。例如,CUI Devices 的编码器使用非常简化的寻址结构来断言设备,从而实现快速周转和最短处理时间。每个编码器的地址只有一个字节的高六位,低两位是命令。这允许编码器在来自主机的单个字节后开始响应,确保快速周转时间,这在运动控制应用中至关重要。

七:结论

RS-485 支持高速、长电缆距离、电气噪声容限和同一总线上的多个设备,由于其在广泛应用中的多功能性,已成为旋转编码器中流行的串行接口。 

希望使用带有 RS-485 接口的编码器的设计人员可以受益于对上述详细信息的理解,包括其各个层、实现以及整个系统通信中的最佳实践。 

关注本公众号,在后台回复【485】,可以免费获取本文相关的资料。

声明:本内容为作者独立观点,不代表电子星球立场。未经允许不得转载。授权事宜与稿件投诉,请联系:editor@netbroad.com
觉得内容不错的朋友,别忘了一键三连哦!
赞 3
收藏 5
关注 36
成为作者 赚取收益
全部留言
0/200
成为第一个和作者交流的人吧