历史上的今天
今天是:2025年01月25日(星期六)
2021年01月25日 | 汽车can总线工作原理及测量方法详解
2021-01-25 来源:elecfans
CAN总线的总体结构
CAN总线由CAN控制器、CAN收发器、数据传输线、数据传输终端等组成。CB311的ECU(发动机控制单元)、TCU(变速器控制单元)、FEPS(无钥匙进入和无钥匙启动系统)、组合仪表四个电控单元通过CAN总线连接,CAN控制器、CAN收发器均集成在电控单元中。CB311CAN总线的结构如图1所示。

图1 CB311 CAN总线的总体结构
1、CAN控制器
CAN控制器集成在电控单元内部,接收由控制单元微处理器传来的数据。CAN控制器对这些数据进行处理并将其传递给CAN收发器;同样CAN控制器也接收收发器传来的数据,处理后传递给控制单元微处理器。
2、CAH收发器
CAN收发器集成在电控单元内部,同时兼具接收、发送和转化数据信号的功能。它将CAN控制器发送来的电平信号数据转化为电压信号并通过数据传输线以广播方式发送出去。同时,它接收数据传输线发送来的电压信号并将电压信号转化为电平信号数据后,发送到CAN控制器。
3、数据传输线
为了减少干扰,CN总线的数据传输线采用双绞线,其绞距为20mm,截面积为0.5m,称这两根线为CAN-高线(CAN-H)和CAN-低线(CAN-L),如图2所示。两根线上传输的数据相同,电压值互成镜像,这样,两根线的电压差保持一个常值,所产生的电磁场效应也会由于极性相反而互相抵消。通过该方法,数据传输线可免受外界辐射的干扰;同时,向外辐射时,实际上保持中性(即无辐射)。
4、数据传输终端
数据传输终端是一个电阻器,阻止数据在传输终了被反射回来破坏数据,一般数据传输终端为120Q的电阻。CB311的数据传输终端为两个1202的电阻,分别集成在BCU和组合仪表中。
汽车CAN总线数据传输系统构成及工作原理
现代汽车的电控单元主要有主控制器、发动机控制系统、悬架控制系统、制动防抱死控制系统(ABs牵引力控制系统、AsR控制系统、仪表管理系统、故障诊断系统、中央门锁系统、座椅调节系统等。所有这些子控制系统连接起来构成1个实时控制系统,即:指令发出去之后,必须保证在一定时间内得到响应,否则,就有可能发生重大事故。这就要求汽车上的cAN通信网络有较高的波特率设置。另外,汽车在实际运行过程中,众多节点之间需要进行大量的实时数据交换。若整个汽车的所有节点都挂在1个cAN网络上,众多节点cAN总线进行通信,信息管理配置稍有不当,就很容易出现总线负荷过大,导致系统实时响应速度下降。这在实时系统中是不允许的,因此在对汽车上各节点的实性进行了分析之后,根据各节点对实时性的要求,设计了高、中、低速3个速率不同的CAN通信网络,将实时性要求严格的节点组成高速cAN通信网络,将其它实时性要求相对较低的节点组成中速cAN通信网络,将剩下实时性要求不是很严格的节点组成低速CAN通信网络。并架设网关将这3个速率不同的3个通信网络连接起来,实现全部节点之间的数据共享。

汽车CAN总线故障产生的原因
CAN总线系统中拥有一个CAN控制器、一个信息收发器、两个数据传输终端及两条数据传输总线,除了数据总线外,其他各元件都置于各控制单元的内部。分析CAN总线系统产生故障的原因一般有以下三种:
1.汽车电源系统引起的故障:汽车电控模块的工作电压一般在10.5-15.0V,如果汽车电源系统提供的工作电压不正常,就会使得某些电控模块出现短暂的不正常工作,这会引起整个汽车CAN总线系统出现通信不畅。
2.汽车CAN总线系统的链路故障:当出现通信线路的短路、断路或线路物理性质变化引起通信信号衰减或失真,都会导致多个电控单元工作不正常,使CAN总线系统无法工作。
3.汽车CAN总线系统的节点故障:节点是汽车CAN总线系统中的电控模块,因此节点故障就是电控模块的故障。它包括软件故障即传输协议或软件程序有缺陷或冲突,从而使汽车CAN总线系统通信出现混乱或无法工作,这种故障一般会成批出现;硬件故障一般是电控模块芯片或集成电路故障,造成汽车CAN总线系统无法正常工作。
万用表测量诊断CAN总线方法详解
系统概览:
此说明用于检查总线连接上的CAN高速和CAN低速信号电平是否正确。
检测提示:
●电压检测(示波器):电压检测的前提条件是,蓄电池已连接并且点火开关已接通。
●电阻测量:在电阻测量时,在测量前必须把待测部件断电。为此应断开车辆蓄电池的接线。等待约3分钟,直到系统中的所有电容器放完电。
数据总线 K-CAN (车身 CAN)、PT-CAN (传动系 CAN) 和 F-CAN (底盘 CAN) 之间的区别:
● K-CAN:数据传输率约 100 kBit/s。可以进行单线运行。
● PT-CAN:数据传输率约 500 kBit/s。不能进行单线运行。
● F-CAN:数据传输率约 500 kBits/s。不能单线运行
主控单元
主控单元是主动式通信方,通信的主动权由它发出。主控制单元掌控总线,并控制通信。主控制单元能够在总线系统中向被动式总线用户 (副控制单元) 发送信息,并根据被动式用户的要求接收信息。
副控单元
副控制单元是一个被动式通信用户。副控制单元被要求接收和发送数据。
多主控单元系统
在一个多主控单元系统中所有的通信用户在某个时间都能够担当主控单元或副控制单元的角色。
示波器测量
为了弄清 CAN 总线是否完好工作,必须观察总线上的通信情况。在这种情况下不需要分析单个位,而只需要观察 CAN 总线是否工作。示波器测量说明:‘CAN 总线很可能无故障工作’。
如果用示波器测量 CAN 低 (或 CAN 高) 导线和接地之间的电压,则获得一个处于下列电压极限范围内的类矩形波信号:
K-CAN:
CAN Low (低速) 对地:U 最小 = 1 V,U 最大 = 5 V
CAN High (高速) 对地:U 最小 = 0 V,U 最大 = 4 V
这些值都是近似值,根据总线上的负载可能有几个 100 mV 的偏差

测量 K-CAN:CH1 CAN 低,CH2 CAN 高
如果用示波器测量 CAN 低 (或 CAN 高) 导线和接地之间的电压,则获得一个处于下列电压极限范围内的类矩形波信号:
PT-CAN 和 F-CAN:
CAN Low (低速) 对地:U 最小 = 1.5 V,U 最大 = 2.5 V
CAN High (高速) 对地:U 最小 = 2.5 V,U 最大 = 3.5 V

测量 PT-CAN:CH1 CAN 低,CH2 CAN 高
总线端测量
测量前提 :
● CAN 总线必须断电。
● 不允许使用其它测量仪 (并联测量仪)。
● 测量在 CAN-Low 导线和 CAN-High 导线之间进行。
● 实际值允许与标准值有几欧姆的偏差。
K-CAN :
因为电阻根据控制单元内部的开关逻辑而变化,所以在 K-CAN 总线上不能进行规定的电阻测量!
PT-CAN、F-CAN :
为了避免信号反射,在 2 个 CAN 总线用户上 (在 PT-CAN 网络中的距离最远) 分别连接一个 120 Ω 的终端电阻。这两个终端电阻并联,并构成一个 60 Ω 的等效电阻。关闭供电电压后可以在数据线之间测量这个等效电阻。此外,单个电阻可以各自分开测量。
通过 60 Ω 等效电阻进行测量的提示:把一个便于拆装的控制单元从总线上脱开。然后在插头上测量 CAN-Low导线和 CAN-High 导线之间的电阻。
提示:
并非所有车辆都在 CAN 总线上有终端电阻。可以根据相应的电路图检查,在连接的车辆上是否安装有终端电阻。
CAN 总线失效
当 K-CAN 或 PT-CAN 数据总线失效时,在 CAN-Low 或 CAN-High 导线上可能存在短路或断路。或者某个控制单元已损坏。
为了查找故障原因,建议进行下列工作步骤:
● 将总线用户从 CAN 总线上依次拔下,直至找到故障原因 (= 控制单元 X)。
● 检查通往控制单元 X 的导线是否短路或断路。
● 如有可能,检测控制单元 X。
● 如果某个控制单元至 CAN 总线的分支线短路,仅执行该工作步骤就成功了。如果 CAN 总线中的一条导线自身短路,则必须检查电线束。
上一篇:发光二极管检测器电路图
史海拾趣
|
单片机与TCP/IP网络 ——单片机如何控制以太网网卡进行传输数据,如何加载TCP/IP协议连接到互联网,这些都是一些令人感兴趣的问题。 ——可以说以太网和TCP/IP协议已经成为使用最广泛的协议,而其它总线协议如RS485、RS232,CAN,LANWORKS ...… 查看全部问答> |
|
win7 x64 + VS2008 怎么搭建开发wince5.0的环境 我装了 wince 5.0 sdk 后,在vs里是有这个sdk了,但是没有模拟器,下载个模拟器也无法安装,总提示错误。 最关键的pb也没有… 查看全部问答> |
|
最近买了个315M的无线模块,由于没有编解码芯片,决定自己用单片机编解码,可是无线发射模块的输出电平有点奇怪,请问:但我给发射数据端为低电平时,发出的波形时什么?如果是高电平呢?如果高低短时间连续发送呢?… 查看全部问答> |
|
谁有关于使用AD7865-1的电路图和相关程序,给参考一下; 请告诉一下,使用该芯片有没有什么特别需要注意的事项???? 本人现在调试AD7865,怎么也调不通,不知道是什么原因? 所以想找个现成的电路和程序做参考。 … 查看全部问答> |
|
再LINUX下做DS1337的驱动程序,加入了内核支持,在启动的时候能够看到: i2c /dev entries driver i2c_adapter i2c-0:Client creation failed at 0x68 (-5) at91_i2c at91_i2c: AT91 i2c bus driver. 这其中第二行的应 ...… 查看全部问答> |
|
用LED共阴极方式写运行无错误 unsigned char code BitTab[]={0x02,0x04,0x08,0x10,0x20,0x40,0x80}; unsigned char code DispTab[]={0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F}; 把里面的数改为共阳极的数,就有*** error 65: access ...… 查看全部问答> |
|
ifneq(A,B) ifneq(C,D) ifneq(E,F) a语句 b语句 c语句 endif endif endif 要是A=B是不是直接跳出了? 要是A=B为假(ifneq(A,B)成立),C=D成立执行了那个语句? 在网上看到一篇帖子说ifeq不能够嵌套???但是我的makefile明明 ...… 查看全部问答> |




