1. CAN总线物理层基础:差分信号原理、CAN_H与CAN_L电平定义、终端电阻的作用与测量方法

各位工程师朋友,咱们开始第一课。做车载网络诊断,CAN总线是绕不开的基础。很多故障,说白了就是物理层出了问题。你软件层分析得再漂亮,波形都畸变了,一切白搭。今天我就带大家把CAN物理层的三个核心概念彻底吃透。

1.1 差分信号原理:为什么CAN总线这么“抗造”?

CAN总线用的是差分信号传输。什么意思呢?它不是靠一根线对地的电压高低来表示0和1,而是靠两根线——CAN_H和CAN_L——之间的电压差。

你想想看,车间里电机启动、大灯闪烁,电磁干扰到处都是。如果像普通串口那样用单端信号,地电平一飘,数据就错了。差分信号就不一样:干扰是共模的,同时作用在两根线上,电压差基本不变。这就是CAN总线能在恶劣环境下稳定工作的根本原因。

核心公式:总线电平 = CAN_H - CAN_L

显性(Dominant):CAN_H ≈ 3.5V,CAN_L ≈ 1.5V,差分电压 ≈ 2V

隐性(Recessive):CAN_H ≈ 2.5V,CAN_L ≈ 2.5V,差分电压 ≈ 0V

我在项目中遇到过一台车,只要一开空调,CAN通讯就丢帧。查了半天,发现是空调压缩机的EMC滤波电容老化,导致共模干扰把差分信号淹没了。换了个电容,问题解决。这就是差分信号的优势——但前提是两根线的布线要对称,阻抗要匹配。

1.2 CAN_H与CAN_L电平定义:别把两根线搞反了

CAN_H和CAN_L的电平,不同标准下略有差异。咱们最常用的高速CAN(ISO 11898-2),电平定义如下:

状态 CAN_H电压 CAN_L电压 差分电压
隐性(逻辑1) 2.5V 2.5V 0V
显性(逻辑0) 3.5V 1.5V 2V

嗯,这里要注意:显性电平会“覆盖”隐性电平。也就是说,只要有一个节点发送显性位,总线就是显性。这是CAN总线仲裁机制的基础。

避坑指南:我曾经遇到一个案例,维修工把CAN_H和CAN_L接反了。结果呢?差分电压变成了负值,所有节点都收不到数据。用万用表量CAN_H对地是1.5V,CAN_L对地是3.5V,明显反了。所以,测量时一定要先确认哪根是CAN_H,哪根是CAN_L。

1.3 终端电阻的作用与测量方法

终端电阻,是CAN总线物理层最容易忽略、也最容易出问题的地方。

它的作用有两个:

  • 消除信号反射:高速信号在总线末端如果不匹配阻抗,会产生反射,导致波形畸变。
  • 提供隐性电平:当所有节点都处于隐性状态时,终端电阻把CAN_H和CAN_L拉到2.5V。

标准高速CAN总线,两端各有一个120Ω的电阻。为什么是120Ω?因为双绞线的特性阻抗大约是120Ω,匹配了才能最大程度减少反射。

测量方法:

  1. 断开所有节点电源(重要!带电测量会不准)。
  2. 用万用表电阻档,测量CAN_H与CAN_L之间的电阻。
  3. 正常值:约60Ω(两个120Ω并联)。
  4. 如果测到120Ω:说明只有一个终端电阻,或者总线某处断开了。
  5. 如果测到0Ω:说明CAN_H和CAN_L短路了。
  6. 如果测到无穷大:说明两个终端电阻都丢了,或者总线完全断开。

我个人习惯,上车第一件事就是量终端电阻。60Ω左右,说明物理层基本没问题。如果偏离太多,波形肯定不对。

我记得有一次,一台车CAN通讯时好时坏。量终端电阻,发现是120Ω。查了半天,原来是总线末端的节点被人拔掉了,少了一个终端电阻。插回去,问题消失。所以,终端电阻的测量是快速定位物理层故障的第一步。

1.4 知识体系总览

下面这张图,把CAN物理层的核心逻辑串起来了。你可以把它当作一个快速排查的思维导图。

CAN总线物理层知识体系 CAN物理层 差分信号原理 CAN_H/CAN_L电平 终端电阻 抗共模干扰 Vdiff = CAN_H - CAN_L 显性/隐性状态 隐性:2.5V / 2.5V 显性:3.5V / 1.5V 差分电压 ≈ 2V 消除信号反射 提供隐性偏置 标准值:120Ω × 2 快速排查口诀 量电阻:60Ω正常,120Ω缺一个,0Ω短路,∞断路 看电平:2.5V/2.5V隐性,3.5V/1.5V显性,反了就是接错

1.5 实战要点总结

最后,我把这一章的核心要点列出来,方便你以后快速回顾:

  • 差分信号是CAN抗干扰的根本,两根线必须对称布线。
  • CAN_H和CAN_L的电平,显性时差2V,隐性时差0V。测量时先确认哪根是哪根。
  • 终端电阻是物理层健康的“体温计”。上车先量,60Ω是标准答案。
  • 如果遇到CAN通讯故障,别急着分析协议,先拿万用表量电阻、量电压。物理层没问题,再往上查。

我的经验:80%的CAN总线故障,其实都是物理层的问题。终端电阻丢失、CAN_H/CAN_L短路或断路、接插件接触不良——这些占了绝大多数。把物理层搞扎实了,你就已经赢了一半。