2. 现场总线基础

现场总线是安装在工业现场、连接传感器、执行器、控制器与上位系统的数字通信网络。它把传统“点对点模拟量+继电器”的接线方式,替换为一对或多对总线电缆上的串行数字报文,使多台设备共享一条通信介质,同时完成测量值、控制命令、状态诊断与参数配置的传输。理解现场总线,关键不是记住某个协议名称,而是看清它在物理层如何传电信号、在数据链路层如何组织帧与仲裁,以及现场拓扑和介质如何决定系统的可靠性与可维护性。

一、现场总线的核心概念

现场总线通常具备四个特征:数字化、双向通信、多站共享、现场级安装。数字化意味着信息以报文形式传输,抗干扰能力和诊断能力远高于模拟电流环;双向通信意味着控制器不仅能下发命令,还能读取设备状态与故障码;多站共享意味着一条总线可挂接几十个节点,节省电缆与接线端子;现场级安装则要求接口具备隔离、防雷、宽温和抗共模干扰能力。

从工程视角看,现场总线可以分成三层关注点:

  • 物理层:电气信号如何表示 0 和 1,采用什么电平、终端电阻、隔离与共模范围。
  • 数据链路层:帧格式、寻址、仲裁、应答、错误检测与重发机制。
  • 应用与拓扑:节点如何分布、线缆如何走、分支多长、终端电阻装在哪里。
现场总线的可靠性,往往不取决于协议本身,而取决于物理层与拓扑是否被正确实现。RS-485 和 CAN 都使用差分信号,但它们在电气参数、仲裁方式和拓扑约束上有明显差异。

二、RS-485 与 CAN 的物理层差异

RS-485 是电气层标准,只规定差分收发器的电气特性,不规定帧格式和仲裁方式。它采用 A/B 两线差分,逻辑 1 和 0 由两线电压差的正负决定,共模范围通常为 -7V 至 +12V,适合长距离、多节点、半双工通信。RS-485 本身没有冲突检测和仲裁机制,多站共享时通常依赖主从轮询或令牌传递来避免冲突。

CAN 则把物理层与数据链路层绑定定义。CAN 收发器同样使用差分线 CAN_H 与 CAN_L,但显性位和隐性位的电平定义与 RS-485 不同,并且 CAN 控制器内置了非破坏性逐位仲裁、CRC 校验、应答位和错误帧机制。CAN 的物理层还要求两端终端电阻匹配,通常为 120Ω,以抑制反射。

对比项 RS-485 CAN
标准范围 仅物理层电气规范 物理层 + 数据链路层
信号线 A/B 差分,半双工 CAN_H/CAN_L 差分,半双工
逻辑表示 差分正负表示 1/0 显性位与隐性位,显性覆盖隐性
仲裁方式 无硬件仲裁,靠主从轮询 逐位非破坏性仲裁,ID 决定优先级
错误检测 依赖上层协议 CRC、位填充、应答、错误帧
终端电阻 通常 120Ω 两端 必须 120Ω 两端
典型速率 9600bps~10Mbps 10kbps~1Mbps

三、数据链路层差异与典型拓扑

RS-485 的数据链路层由上层协议决定,例如 Modbus RTU、Profibus DP、DMX512 等。以 Modbus RTU 为例,它采用主从结构,主站发起请求,从站按地址应答,帧之间用 3.5 个字符时间作为间隔。RS-485 本身不处理冲突,因此如果两个从站同时发送,总线数据会损坏,必须靠软件超时和重试恢复。

CAN 的数据链路层则内建了多主仲裁。每个节点发送帧时,先发送 11 位或 29 位标识符,标识符数值越小优先级越高。当多个节点同时发送时,显性位会覆盖隐性位,发送隐性位却检测到显性位的节点自动退出仲裁,转为接收。这种机制保证高优先级报文不被破坏,适合实时控制场景。

典型拓扑方面,RS-485 和 CAN 都推荐手拉手菊花链,而不是星形或树形。分支长度应尽量短,CAN 在 1Mbps 时分支通常不超过 0.3m,RS-485 在 115200bps 时分支也应控制在几米以内。传输介质优先选用 120Ω 特性阻抗的双绞屏蔽电缆,屏蔽层单点接地,避免地环流。

RS-485 与 CAN 的分层与拓扑对比 RS-485:物理层标准 + 上层协议 物理层:A/B 差分,共模 -7V~+12V 半双工,无硬件仲裁 数据链路层:由 Modbus/Profibus 等定义 主从轮询,超时重试 拓扑:菊花链,两端 120Ω 终端 分支短,双绞屏蔽电缆 风险:多站同时发送会冲突 依赖软件避免总线争用 CAN:物理层 + 数据链路层一体 物理层:CAN_H/CAN_L 差分 显性位覆盖隐性位 数据链路层:逐位非破坏性仲裁 CRC、应答、错误帧、重发 拓扑:菊花链,两端 120Ω 终端 分支极短,1Mbps 时 <0.3m 优势:高优先级报文实时传输 适合多主、事件驱动控制

四、典型场景与配置示例

假设一条现场总线需要连接 1 台 PLC、8 台变频器和 4 台智能仪表。如果采用 RS-485 + Modbus RTU,PLC 作为主站,按地址 1~12 轮询,波特率 19200bps,8 位数据位、1 位停止位、无校验。配置片段如下:

# Modbus RTU 主站轮询参数示例
波特率: 19200
数据位: 8
停止位: 1
校验: None
轮询周期: 200 ms
从站地址: 1 ~ 12
超时: 300 ms
重试次数: 3

如果采用 CANopen 或自定义 CAN 协议,则 PLC 作为 CAN 主站或管理节点,变频器与仪表作为从站,波特率 500kbps,终端电阻 120Ω。CAN 的仲裁机制允许紧急故障报文使用更小 ID,从而优先占用总线。配置片段如下:

# CAN 总线参数示例
波特率: 500 kbps
采样点: 87.5%
终端电阻: 120 Ω × 2
节点数: 13
心跳周期: 100 ms
紧急报文 ID: 0x080

五、常见误区与复盘

误区一:把 RS-485 当成完整协议。RS-485 只定义电气层,帧格式、地址、校验和重发都要靠上层协议。没有上层协议,RS-485 只是一条能传差分信号的电缆。

误区二:CAN 和 RS-485 可以随意混接。两者电平定义、终端电阻和仲裁方式不同,不能直接并联。需要网关或隔离转换器完成协议与电气隔离。

误区三:终端电阻随便装。RS-485 和 CAN 都要求在总线两端各装 120Ω,中间节点不装。星形拓扑、长分支和缺失终端电阻是现场通信不稳定的三大主因。

现场排查时,先量差分电压和终端电阻,再看波形是否有反射和振铃,最后检查屏蔽层接地与共模电压。物理层正常后,再分析数据链路层的仲裁、超时和错误计数。隔离 RS-485 与 CAN 接口时,应同时隔离信号线和电源,避免地电位差击穿收发器。

总结来看,RS-485 是灵活、低成本的物理层基础,适合主从轮询和长距离传输;CAN 是物理层与数据链路层一体化的实时总线,适合多主仲裁和事件驱动控制。两者都依赖正确的差分布线、终端匹配和隔离设计。掌握这些差异,才能在隔离 RS-485 与 CAN 现场总线接口工程中做出正确的选型、布线和排障决策。