前言
RS-485和CAN都是串行通信协议。它们允许在单个系统中布置多点设备,显着缩短电缆长度,差分设计适合强干扰环境,均采用120 电阻端接,并具有内部过压电路以进行故障保护。 RS-485和CAN有太多的共同点,但毫无疑问它们是不同的。
RS-485更多地应用于工业领域,而CAN则广泛为汽车行业设计。但现在,不仅CAN广泛应用于汽车行业,航空航天等其他行业也开始转向CAN。
但要了解这些协议的独特之处,我们必须知道它们实际上是什么。
首先,我们简单介绍一下RS-485。
RS-485:自20 世纪80 年代中期以来一直存在的串行通信协议。它最初是为工业市场的应用而定义的,或者更好地说,它是为工业应用而开发的。
RS-485是由电信工业协会和电子工业联盟联合发布的,因此也称为TIA/EIA-485。但业界更接受的名称是RS-485,它用于:
运动控制设备
旋转编码器接口
计算机自动化系统(键盘、鼠标、打印机等)
工业控制系统
剧院应用
可编程逻辑控制器
虽然RS-485 用于各种应用,但越来越多的行业似乎开始将CAN 应用于其工业机械。
为什么“切换”到CAN总线?
RS-485未能成为一种通信协议。它只是一个电气接口。它确实提供多点通信功能,但仅适用于至少具有UART 的设备。 01
一主多从系统
从技术上讲,它是一个半双工系统,一次只有一个设备可以传输,其他设备必须监听。因此,它只能为多个节点串行交换数据提供基本的物理链路。即:一主多奴。
与CAN 不同,CAN 总线的每个节点都可以充当主节点,并且确切地知道如何以及何时发送信号。
RS-485 遵循典型的主从拓扑。当通信处于活动状态时,所有从站/节点都会接收主站单元发送的数据。如果“从设备”必须回复“主设备”消息,则它必须切换到“主设备”,以便可以发送其消息。
此连接的一个特殊功能是连接到线路的所有设备都会接收传递的所有内容。当设备必须传输时,它通过RTS 信号(请求传输)激活其传输线。传输数据的元件也接收传输的数据。
当多个设备在RS-485总线上同时发送消息时,会造成过载或可能的信号冲突,从而使整个消息失效或导致数据错误。 02
容错机制
这并不是RS-485 的唯一缺点。在定义方面,未明确表述如下:
寻址节点的过程
如何避免数据冲突
框架
沟通程序
错误检测等,
了解CAN 总线更好的3 个理由
CAN 总线的显着优势在于它高度灵活并提供许多独特的功能,从而导致其他行业的采用显着增加。
CAN总线是一种两线、多点串行通信标准协议。就像RS-485 一样,CAN 上的信号以差分电压CAN-H 和CAN-L 的形式流动。
差分信号的传输与RS-485类似,但实际情况却有很大不同。
CAN总线的优点主要体现在以下三个方面:
01
消息传输
CAN 指定总线上的完整数据包,而不仅仅是物理层。 CAN 硬件自动处理数据包开始/结束检测、冲突检测、回退、重试、校验和生成、验证以及与处理硬件故障相关的更多功能。用户只需传输消息标识符和有效负载,CAN 硬件负责添加数据包的其余部分。
在使用RS-485时,其实并没有RS-485底层的定义:数据从哪里来,谁可以发送,发送的是什么数据,接收到的数据是否损坏等等(一无所知)除非软件中指定)。
02
仲裁
RS-485 的主要问题是信号拥塞。这通常是由于多个节点试图同时在总线上发送数据,导致过载造成的。
CAN 遵循仲裁,消息按状态顺序排序和接收。失去仲裁的节点将重新发送其消息。这将对所有节点持续进行,直到只剩下一个节点仍在传输。
得益于基于消息的仲裁,CAN 无需采取额外的预防措施即可实现多主机操作。对于RS-485,这只能通过特定协议实现。
03
协作以及错误检测和纠正
当CAN 总线的一个节点将隐性状态“写入”总线并发现它实际上处于显性状态时,它就知道另一个节点正在驱动它。尝试写入隐性状态的节点将后退并等待消息结束。
写入主导状态的节点永远不会知道发生了这种情况。它的消息通常由所有其他节点发送和接收。这种冲突检测功能允许在没有任何中央仲裁的情况下实现对等网络架构。
节点发送消息,但在检测到冲突时后退,然后在当前数据包完成后重试。最终,当总线可用时,会发送这些附加消息,并且之前发生冲突的消息会在不发生冲突的情况下发送,包括16 位CRC 校验和。
RS-485不能触发任何消息冲突,系统的应用软件必须确保避免冲突。
概述
尽管RS-485端口仍在许多新开发的设备中使用,但仲裁、错误消息检查、改进的带宽和更大的数据字段等CAN特性加速了对CAN总线的需求。
审稿人:刘庆