跳转至

CAN/LIN 总线在 IoT 中的应用

难度:🟡 中级 | 领域:工业通信、车联网 | 阅读时间:约 16 分钟

日常类比

会议室只有一支麦克风(共享总线)。控制器局域网(Controller Area Network, CAN)像大家同时喊出优先级编号:编号最小者发言,其他人退让且不破坏已发出的位——非破坏性仲裁。本地互联网络(Local Interconnect Network, LIN)像主持人按名单点名:被点到才能说。工厂里 CAN 更像抗干扰的“车间神经”;LIN 更像车窗、座椅这类低优先级舒适件的“经济型支线”[1][5]。

摘要

对比 CAN 2.0 / CAN FD / CAN XL 与 LIN 的物理层、仲裁、错误处理与 IoT 选型线索。表中速率、长度与节点数为标准/厂商标称量级,实际受线缆、终端电阻与负载率约束[1][2][4]。

1. CAN 物理层与帧

CAN 用差分对(CAN_H / CAN_L):显性位(逻辑 0)压差约数伏量级,隐性位(逻辑 1)压差近零;显性覆盖隐性,仲裁才成立[1][7]。

参数 CAN 2.0 CAN FD CAN XL
数据段速率叙事 至约 1 Mbps 数据段可更高(常见至数 Mbps 级) 更高(标准叙事至约 20 Mbps 级)
仲裁段 与数据同速叙事 常保持较低仲裁速率 类似双速率思路
数据长度 0–8 B 0–64 B 至约 2048 B 级
CRC 15-bit 17/21-bit 更长 CRC 叙事
典型定位 成熟车身/工业 中等载荷实时 过渡期大载荷

标准帧含 SOF、仲裁 ID、控制、数据、CRC、ACK、EOF。CAN FD 用位速率切换(Bit Rate Switch, BRS)在数据段提速;CAN XL 面向更大载荷与以太网过渡场景[2][3][4]。

2. 仲裁与错误处理

多节点同时发送时,逐位比较:发隐性却读到显性则退出,ID 最小者获胜,失败帧未被破坏[1][7]。

错误检测含位监控、位填充、CRC、帧格式与 ACK 等;节点用发送/接收错误计数在 Error Active / Passive / Bus-Off 间迁移。残余错误率极低是协议设计目标,现场仍须看负载率与物理层质量[1][2][9]。

3. LIN 与 CAN 对比

LIN 单主多从、单线+地、速率约 20 kbps 量级,从节点可用 RC 振荡器靠 Sync 字节校准——成本与布线简单,实时性与抗扰弱于差分 CAN[5]。

维度 CAN LIN
拓扑 多主 单主多从
物理层 差分双线 单线
速率叙事 Mbps 级(视代际) 约 20 kbps
成本/节点 较高 较低
同步 通常需晶振级精度 从节点可 RC
典型用途 动力/安全/工业传感 舒适件、低速执行器

IoT 中 LIN 偶见于楼宇窗帘、农业低速传感等“能点名即可”的场景;关键路径、高可靠仍优先 CAN/CAN FD[5][10]。

4. 硬件接入与选型

无内置 CAN 的微控制器(Microcontroller Unit, MCU)常用串行外设接口(Serial Peripheral Interface, SPI)外挂控制器(如 MCP2515)+ 收发器(如 TJA1050),总线两端各约 120 Ω 终端,测 CAN_H–CAN_L 应约 60 Ω 量级[6][7]。

场景 更常见选择 原因
产线传感、中等载荷 CAN FD 单帧更大、实时
车身/成熟工业 CAN 2.0 生态与工具成熟
舒适/低成本支线 LIN 单线、主从简单
大载荷过渡 CAN XL / 以太网 载荷与带宽

经验上总线长度与波特率负相关;负载率建议留裕量(常见叙事不超过约 70%),否则低优先级易饿死——以示波器/总线分析仪实测为准[7][8]。

5. 局限、挑战与可改进方向

1. 把标称 Mbps 当有效吞吐

局限:忽略填充位、仲裁等待与重传。 改进:按目标消息周期与最坏仲裁延迟做负载预算,并用 can-utils / 逻辑分析仪验收。

2. 终端与拓扑被忽视

局限:缺终端、星型乱接导致反射与间歇错误。 改进:坚持两端终端;分支尽量短;量产前做眼图/错误帧统计。

3. ID 分配无优先级策略

局限:紧急帧 ID 过大,被周期数据挤掉。 改进:预留低 ID 给安全/告警;周期传感与诊断分区。

4. LIN 当“便宜 CAN”滥用

局限:单线抗扰与带宽不足,现场误码高。 改进:关键闭环仍用 CAN;LIN 仅限低优先级、短距离支线。

6. 实践要点

  1. 先定载荷与实时性,再选 CAN 2.0 / FD / XL 或 LIN。
  2. 物理层:差分走线、终端、共地与浪涌防护一起做。
  3. 软件:超时看门狗 + Bus-Off 恢复策略,勿只依赖“发成功就返回”。

参考文献

[1] Bosch, "CAN Specification Version 2.0," Robert Bosch GmbH, 1991. [2] ISO 11898-1, "Road vehicles — Controller area network (CAN)," ISO. [3] CAN in Automation (CiA), CAN FD specification / CiA documents. [4] CiA 610-1, "CAN XL Data Link Layer," 2024. [5] LIN Consortium, "LIN Specification Package Revision 2.2A," 2010. [6] Microchip, "MCP2515 Stand-Alone CAN Controller Datasheet." [7] S. Corrigan, "Introduction to the Controller Area Network (CAN)," TI SLOA101. [8] F. Hartwich, "CAN with Flexible Data-Rate," Bosch. [9] M. Di Natale et al., "Understanding and Using the Controller Area Network Communication Protocol," Springer. [10] W. Voss, "A Comprehensible Guide to Controller Area Network," Copperhill. [11] ISO 17987, LIN related road vehicles standards (family).