CAN总线系统的故障诊断方法
2019-05-05吉林景疆辉赵云堂
◆文/吉林 景疆辉 赵云堂
目前,总线(LIN总线、CAN总线、FlexRay总线和MOST总线等)在汽车上的应用范围越来越广,越来越多的开关及传感器信号通过总线进行传输。这使汽车电子线路变得简单,但对不熟悉总线的汽车故障诊断人员来说排除总线时就会遇到困难。本文以CAN总线为例,对其故障诊断方法进行了介绍,希望对相关人员有所帮助。
一、CAN总线简介
CAN(Controller Area Network)是指控制单元通过网络交换数据。CAN数据总线是一种双线式数据总线,相关控制单元都并联在CAN数据总线上,这两条线分别叫CAN-High线(CAN高位数据线)和CAN-Low线(CAN低位数据线),并且扭绞在一起,所以也称为双绞线,如图1所示。
图1 双绞线
通过这种数据传递形式,不管控制单元信息容量的大小,所有的信息都可以通过这两条数据线进行传递。因此,如果控制单元间进行大量的信息交换,CAN数据总线也能完全胜任。
对于大众(Volkswagen)车型,CAN导线的基色是橘黄色。通常,不同类型的CAN总线,CAN-Low线的颜色均为橘黄棕,而CAN-High线的颜色会有所不同。例如,驱动CAN颜色为橘黄黑;舒适CAN颜色为橘黄绿;底盘CAN颜色为橘黄蓝;扩展CAN颜色为橘黄灰;诊断CAN颜色为橘黄红;信息娱乐CAN颜色为橘黄紫。
二、CAN总线的信号波形和终端电阻
下面以高尔夫嘉旅1.2T车型的驱动CAN总线为例,介绍一下信号波形和终端电阻。
1.信号波形
CAN数据总线在工作时,CAN线的电压在显性状态和隐性状态之间进行转换。隐性状态时的电压称为静电平,它是作用在CAN两条导线上的预先设定值,驱动CAN的预定值大约为2.5V。在显性状态时,CAN-High线上的电压值会升高1V,而CAN-Low线上的电压值会降低1V。于是在驱动CAN数据总线上,CAN-High线的电压为3.5V(2.5V+1V=3.5V),而CAN-Low线的电压为1.5V(2.5V-1V=1.5V)。点火开关为“on”时测得的高尔夫嘉旅车驱动CAN的信号波形如图2所示。此时用万用表测量CANHigh线的电压为2.7V,测量CAN-Low线的电压为2.3V。
图2 点火开关为“on”时驱动CAN的信号波形
在给车辆断电后,信号波形如图3所示。此时测量CANHigh线和CAN-Low线的电压均为0。
图3 点火开关关闭后驱动CAN的信号波形
2.终端电阻
接下来介绍数据传输终端。在CAN总线系统中,有两个数据传输终端(电阻器,所以也称为终端电阻),作用是防止数据在传输线终端被反射回来并产生反射波,这将影响数据的正常传输。例如,驱动CAN的两个终端电阻分别位于发动机控制单元和网关中,底盘CAN的两个终端电阻分别位于制动系统控制单元和网关中,舒适CAN的两个终端电阻分别位于BCM(车身控制模块)和网关中。终端电阻R的分布如图4所示。
图4 终端电阻R的分布图
对于驱动CAN、底盘CAN和舒适CAN,每个终端电阻的值为120Ω。这两个终端电阻并联,构成一个60Ω的等效电阻,关闭点火开关后可以在两条CAN线之间测量这个等效电阻。
同样以高尔夫嘉旅的驱动CAN为例,在发动机控制单元的插头上找到CAN-High线和CAN-Low线,如图5所示。
图5 连接发动机控制单元的CAN线
在车辆断电后,将万用表跨接到CAN-High线和CAN-Low线上,测量的电阻值为62.3Ω(与60Ω存在一定误差,在可接受范围内)。拔下发动机控制单元的插头,在插头端测量CANHigh线与CAN-Low线的电阻为122.3Ω(此电阻即网关内的终端电阻值)。测量发动机控制单元内的终端电阻,为125Ω。
用以上测量方法可以判断终端电阻的好坏及CAN线是否存在断路、短路等。例如,在CAN线不断开的情况下测得电阻值为60Ω左右,则说明终端电阻正常;如果测得的电阻为120Ω左右,则说明总线存在断路;如果测得的电阻为零,则说明两条总线存在彼此短路的情形。
以上重点介绍了CAN总线的信号波形、电压和终端电阻,然而实际上,在CAN总线的故障诊断中,下面两种也是需要我们重点检查的。第一是检查CAN-High线和CAN-Low线的电压值。车辆上15号电后,CAN-High线的电压值为2.7V左右,CANLow线的电压值为2.3V左右;车辆断电后,CAN-High线和CAN-Low线的电压值都为0。通过测量电压值就可判断CAN线是否存在对正极短路或者对地短路的情形。第二十检查终端电阻。测量终端电阻值既可以判别终端电阻本身的好坏,也可以反映出CAN线是否存在断路或短路。
三、故障案例
1.故障现象
一辆高尔夫嘉旅,配置EA211 1.2T发动机,行驶里程8 200km,发动机无法启动。
2.故障诊断与排除
打开点火开关后,仪表上多个警告灯点亮,包括OBD警告灯、ESP警告灯和安全气囊警告灯。此时尝试启动发动机,发现启动机没有任何反应。用ODIS进行故障诊断,发现各个控制单元里储存有很多故障信息,如图6所示。
图6 控制单元中存储有很多故障信息
通常,这些故障信息都与通讯相关。例如,0008-空调/暖风电子装置存储的故障信息为U112100($7010F/459023)数据总线丢失信息;0019-数据总线诊断接口存储的故障信息为U000900($10101/65793)驱动系数据总线单线运行模式/U010000($20276/131702)发动机控制单元无通信;0042-驾驶员侧车门电子设备存储的故障信息为U112100($70033/458803)数据总线丢失信息;0076-泊车辅助系统存储的故障信息为U112300($D01732/13637426)数据总线接收到的故障值。
根据故障信息,判断为CAN驱动总线出现问题。尤其是根据“U000900($10101/65793)驱动系数据总线单线运行模式”与“U010000($20276/131702)发动机控制单元无通信”,初步判断为发动机控制单元连接的两条CAN线有一条出现了断路。
然后,测量终端电阻。在发动机控制单元的插头处找到CAN驱动总线的CAN-High线和CAN-Low线,关闭点火开关,用万用表测量两条线之间的电阻(注意不拔下插头,用破线方式测量),为122.3Ω,不正常,正常值应为60Ω左右。这就确定了在驱动CAN的某处存在断路。
接下来拔下发动机控制单元的插头,在插头端测量CAN两条线之间的电阻为123.1Ω,正常。测量发动机控制单元内的终端电阻为122.3Ω,也正常。将插头插回发动机控制单元,再次测量CAN两条线之间的电阻,仍为122.3Ω。至此就可以基本判断出是发动机控制单元与插头的CAN线针脚接触不良。经过仔细检查,发现是发动机控制单元插头处的CAN-High线的插孔端子变形、松旷。
处理插头,之后插回发动机控制单元,测量两条CAN线之间的电阻为62Ω,正常。尝试用ODIS清除故障码,发现之前与CAN通信有关的故障码都可以清除。发动机能正常启动,故障排除。
3.维修小结
该故障的原因是CAN驱动总线的CAN-High线断路,导致驱动CAN处于单线运行模式,因此发动机不能启动。而何处断路是通过测量终端电阻的方法确定的。另外还需注意,以U字母开头的故障码,都属于网络通讯系统方面的故障。