ECU 在线3 / 3所有节点响应正常
CAN 总线负载18.4%500 kbps · CAN 2.0B
活动 DTC01需要调查
12V 母线12.6 V供电稳定
实时信号监视器
CAN0 · 500 kbpsLIVE · 10 Hz
VBAT · 12.6 V
| 时间 | CAN ID | ECU | 信号 | 数值 | 状态 |
|---|
ECU 诊断状态
LAST POLL · 14:32:08当前调查
CASE / 00412V 低压母线波动ACTIVE
多个 ECU 在点火后出现间歇性通信故障。先确认供电,再判断是否为总线本身问题。
01读取 VCU DTC:
U010002检查 12V 实时数据:
12.6 V03对比 BMS / MCU 报文周期
04确认根因并清除 DTC 验证
物理层与仲裁动画
看见总线上的电压与竞争
每次只观察一个变化:先看并联收发器如何在铜线上形成“线与”,再沿同一时间轴观察两个节点怎样逐位完成无损仲裁。
CAN-HCAN-L
01
00三个节点全部发送隐性 1,内部功率管断开,CAN-H 与 CAN-L 都回到约 2.5 V。
总线 1 · 隐性Vdiff 0.0 V
02
CAN 位仲裁与同步差分波形
从最高位逐位比较00两个节点等待总线空闲,准备从 ID 最高位开始同步发送。
A 就绪B 就绪
经典 CAN 数据帧
一帧 CAN 报文是怎样组成的
从总线由空闲转为显性的 SOF 开始,经过仲裁、控制、数据与完整性校验,最后用 EOF 结束。点击字段查看它的任务。
标准数据帧
时间 / 发送顺序左 → 右
位填充:从 SOF 到 CRC 序列,如果连续出现 5 个相同电平,发送器自动插入 1 个相反位,接收器再移除。它保证同步,不属于原始业务数据。
CAN-ID 教学
CAN-ID:消息编号,不是设备地址
硬件在总线上传输二进制,工程文档用十六进制简写。ID 同时标识报文含义并参与优先级仲裁,数值越小,越早出现显性 0,优先级越高。
ID 越小 · 优先级越高
01 · 进制、位宽与 IDE
输入一个 ID,对照二进制、十六进制和十进制。
二进制00100100000
十六进制0x120
十进制288
标准 ID:0 - 20470x000 - 0x7FF
IDE = 0 表示标准帧,仲裁字段使用 11 位标识符。
02 · 从最高位开始仲裁
比较方向是 Bit 10 → Bit 0,不是从最低位向前。
最高位 · BIT 10最低位 · BIT 0
从最左侧最高位开始。前面相同的位不会决定胜负。
核心:ID 是报文优先级编号,不是 ECU 的设备地址。接收节点依据 ID 判断是否订阅这条消息。
03 · 简化整车 CAN 矩阵
一条报文对应一个生产者和多个消费者;ID 区间由具体车型项目定义。
| ID | 功能域 | 报文名称 | 生产者 | 消费者 | 周期 | 关键信号 |
|---|---|---|---|---|---|---|
| 0x080 | 动力底盘 | Brake_Status | ESP | VCU, MCU, Gateway | 10 ms | 制动请求 / 车轮速度 |
| 0x120 | 动力底盘 | VCU_Torque_Request | VCU | MCU, BMS, Instrument | 10 ms | 目标扭矩 / 就绪 |
| 0x220 | 动力能源 | BMS_Pack_Status | BMS | VCU, TMS, Gateway | 20 ms | SOC / 电压 / 功率限制 |
| 0x340 | 车身控制 | BCM_Door_Status | BCM | Instrument, Gateway | 100 ms | 门锁 / 门开状态 |
| 0x520 | 舒适系统 | HVAC_Command | HVAC | TMS, BCM | 100 ms | 温度目标 / 风量 |
| 0x6A0 | 娱乐信息 | Media_Status | Infotainment | Instrument | 500 ms | 音源 / 曲目信息 |
教学示例,并非行业统一分配表。真实车型的 ID、周期、字节与信号定义以 OEM 的 CAN Database / DBC 为准。
04 · 生产者-消费者与同 ID 冲突
正常情况下一个 ID 只有一个生产者,但可以被多个 ECU 同时订阅。
单一生产者VCU 发送一帧 0x120,MCU、BMS 和仪表都能在同一总线上接收,无需为每个接收者重复发送。
技术边界:“ID 完全相同”本身不会立刻产生 CRC 错误。若两个节点连数据也完全一致,总线可能无法察觉;当不同 payload 的某一位发生冲突时,发送隐性 1 的节点读到显性 0,产生 Bit Error 和 Error Frame,部分抓包工具会显示 CRC/Frame Error。
补充实验
CAN 物理层与非破坏性仲裁
从差分电平、总线端接到逐位仲裁,观察 CAN 为什么能在复杂车载电气环境中可靠地让多个 ECU 共享一条总线。
500 kbps · ISO 11898-2
01
显性 0 与隐性 1
观察 CAN-H / CAN-L 差分电平,以及“0 碾压 1”。
3.5 V1.5 V
CAN-H2.5 V
CAN-L2.5 V
Vdiff0.0 V
隐性位 1:两个线都约为 2.5 V,差分电压接近 0 V。节点只监听总线,没有主动拉开电平。
02
120Ω 终端电阻
开关两端终端匹配,对比边沿反射与过冲。
两端各 120Ω · 已接入
差分信号时间 →
等效阻抗 ≈ 60Ω信号质量 稳定
正确端接:总线两端各接 120Ω,并联后断电测得约 60Ω。阻抗匹配吸收信号能量,边沿干净。
03
非破坏性位仲裁
两个节点同时发送,ID 数值更小者优先。
准备就绪。点击下方按钮逐位观察总线仲裁。
12V 低压电路路径
供电 · 保险丝 · 继电器 · ECU12V 蓄电池静态 12.6 V
点火唤醒电源源头
点火唤醒电源源头
→
保险丝 · 主继电器过流保护与负载切换
先测电压,再查通信
先测电压,再查通信
→
ECU 电源脚VCU / BMS / MCU
共地 + CAN_H / CAN_L
共地 + CAN_H / CAN_L
VBAT 12.6 VF12 10 A · OKR1 CLOSEDGND 0.08 Ω
低压诊断顺序:蓄电池电压 → 保险丝两端压差 → 继电器输出 → ECU 电源脚 → 公共地。供电异常会制造一串“假通信故障”。
车载网络 & 数据视图
CAN · LIN · 数据分析- CAN多 ECU 共享总线;ID 决定优先级。监视报文周期、超时计数和总线负载。
- LIN低成本主从总线;主节点按调度表轮询,适合车门、座椅和空调执行器。
- UDS诊断工具与 ECU 的应用层协议;读取 DTC、DID,并支持刷写流程。
- 可视化Pandas 清洗时序数据,Matplotlib 绘制趋势,区分阈值故障与信号卡滞。