技术资源 / Technology

胎压监测选 RS485 还是 CAN

· 6 分钟阅读

一句话结论

两种接口都能在一台机器上把胎压数据可靠地传完。胎压是个慢信号,一秒传几次,且由一台设备发出,总线长度在工业场景里也算短——两种物理层都能轻松胜任。

所以这不是"哪个技术更好"的问题,而是关于你这台机器的问题:

  • 需要胎压数据的控制器本来就有 CAN 口,就用 CAN。接收器成为总线上一个普通节点,你的集成工作量立刻下降。
  • 那个控制器是以开关量/模拟量为主的 PLC 或 HMI,就用 RS485 + Modbus RTU。不用加硬件,而且几乎所有工业控制器都会讲。
  • 现在还没定,那就买一台两种都支持的接收器,选择权留在后面。

CAN 那条路的细节见 CAN 总线 TPMS 集成页。本文只比那些真正会改变项目的点。

两层协议的本质差别

CAN 是一套完整的协议栈,连帧格式都定义好了。RS485 只是电气层,协议跑在它上面——工业机械里通常是 Modbus RTU。这个差别解释了后面几乎所有实际差异。

CAN:

  • 差分总线,多主结构,谁都可以在总线空闲时发送;
  • 按标识符仲裁,高优先级帧不会被丢掉;
  • 11 位或 29 位标识符,CAN 2.0B 就在这里;
  • 帧级 CRC、接收方应答、出错自动重发、每个节点有错误计数器;
  • 节点能察觉自己被"隔离"出总线并上报。

RS485:

  • 同样是差分总线,但物理层没有寻址、仲裁、应答和错误恢复;
  • 一般是一主多从,挨个轮询;
  • 帧的完整性靠上层协议保证,比如 Modbus RTU 里的 CRC;
  • 从站不会主动说话,问它才答;
  • 低速下传输距离更长,适合控制器离后轴很远的机器。

两者都不脆弱,只是失败的方式不同——而这恰恰是你真正在选的东西。

对胎压数据意味着什么

胎压监测是"一个说话、多个听、速率很低"的场景。我们接收器默认数据周期 500 ms,也就是每个轮位每秒两次;无论是 250 kbps 的 CAN 还是 19200 的串口,都绰绰有余。

真正影响项目的只有三件事:

谁发起对话。 CAN 上接收器按自己的节奏发;RS485 上必须由 PLC 来问。如果你的报警策略依赖"接收器一发现快速漏气就立刻上报",CAN 更自然。走 RS485 你拿到的是同样的信息,但新鲜度只等于你的轮询周期。

故障怎么暴露。 CAN 在帧级报错,每个节点有错误计数器,所以接线临界时你会先看到错误计数上升,然后才是数据中断。RS485 上沉默就是沉默,你必须自己实现超时和心跳。两者都能用,只是其中一个要你写这部分逻辑。

软件谁来写。 CAN 配上写清楚的帧布局,你的集成就是一个解码器。Modbus 上你还要负责轮询调度、超时策略和过期数据处理——不难,但是活儿。

总线负载、延迟与确定性

250 kbps、500 ms 周期下,即使 160 个轮位分散在若干条报文里,胎压帧占用的带宽也只是极小一部分。不存在"胎压把 CAN 总线占满"的现实场景,所以把默认周期做得慢一些是工程上合理的选择,不是能力缺陷。

延迟的表现不一样。CAN 靠仲裁让高优先级帧先走,所以漏气报警可以比常规压力数据优先。RS485 的最坏延迟 = 主站扫描时间 × 从站数量,再加上失败重试。PLC 扫描 100 ms、挂几台设备时,仍然稳稳在一秒以内;串口网络负载很重时会长起来,值得算一算而不是想当然。

如果你的要求是"控制器必须在一秒内看到快速漏气",两种都能满足。要求比这更紧,那多半是这个系统被选错了。

接线与现场环境

好消息是两者的物理规则几乎一样,因为都是差分总线:

  • 信号对用双绞线,另加一根公共地线;
  • 总线两端各一个 120 Ω 终端电阻,只在两端;
  • 菊花链拓扑,支线要短,绝不星形;
  • 屏蔽层单端接地;
  • 远离电机和驱动器电缆走线。

差别在速度与距离的取舍上。CAN 在 250 kbps 下能覆盖常见的底盘长度;RS485 在低波特率下能走更远,而串口轮询恰好允许低速。矿卡、港口设备、长运梁车上,驾驶室往往离后轴组很远,两种做法都有成功案例。

我们的接收器和中继器是 IP68、DC 10–30 V 供电,所以装的位置由机器需要决定,而不是由哪里取电方便决定。

成本、工作量,以及"可反悔"

纸面上,RS485 通常赢在硬件:一个 PLC 串口加两根线,对比一个 CAN 模块加一段总线。CAN 通常赢在软件:不用写轮询循环、白得帧级诊断、关键时候还能用优先级。

实际决定因素往往是组织层面的。如果这台机器本来就有 CAN 总线、上面还挂着别的设备,把胎压加进去只是对现有接口设计做个小改动;如果这台机器就是个没有总线的串口控制柜,为了一个传感器系统去引入 CAN——连同终端电阻、布线纪律和调试工具——代价就不成比例了。

所以我们把两种接口放在同一台接收器上:今天适配哪种就用哪种,下一台机器换了方向,型号也不用变。我们支持的完整协议清单见 TR100 接收器产品页。

五个问题定下来

1. 需要胎压数据的控制器现在有没有 CAN 口?还是说 CAN 对这台机器是一条全新的总线?

2. 那条总线上已经挂了什么?还有多少余量?

3. 你要的是"接收器立刻主动报警",还是"在我扫描周期内被问出来就行"?

4. 控制器离后轴组有多远?总线准备跑多快?

5. 接收侧的软件谁写——你们自己、集成商,还是暂时没人?

这五个答完,接口基本自己就定了。如果第 3 题答"立刻"、第 1 题答"有",就用 CAN;如果机器本来就是串口控制系统、第 3 题答"半秒内就行",那么 RS485 + Modbus RTU 更简单。

无论选哪条,我们给什么

GZVIA 在深圳自研自产传感器、接收器、中继器、显示器和云平台。单台接收器最多支持 256 个轮位;我们交付过 160 轮运梁车(2 台接收器 + 12 台中继器 + 160 颗传感器),单台设备实测最大 224 轮(28 轴 × 8)。压力精度 ±7 kPa,同一硬件家族支持 CAN 2.0B、J1939、RS485、RS232、Modbus RTU、PROFINET 和 UART。

走 CAN,我们交付报文对照表或 DBC、报警语义和配置工具;走串口,我们再加上寄存器表。把你的控制器型号和轮位数量发给我们,我们推荐的会是适合你的那条,而不是我们偏好的那条。说说你的机器。

← 全部文章