OBDII和CAN之间的区别


30

什么是CAN(控制器局域网)?

OBD-II协议和CAN设置之间有什么区别?

如何在带有CAN的车辆上使用OBD-II扫描仪?


1
我曾与OBDI一起为制造商工作,并获得了在电动汽车上使用CAN的特权。足以说我是个老家伙,但我当然感谢您的清晰和信息。
特伦特

Answers:


39

好的,在回答您的特定问题之前,让我们先介绍一下总线系统。可能您已经了解了其中的部分内容,但是我将从这里开始,因为几乎没有IT或电子知识的人也应该能够理解这一点。

巴士系统

在电子系统中,信号是通过电线从一个芯片发送到另一个芯片的(让我们暂时忘记无线内容)。最简单的方法是,每条您希望传输的信息使用一根导线。一小部分信息只是对是/否问题(例如“车头灯亮了吗?”的答案)的答案如果前灯打开,则该电线上存在一个电压,例如5伏。如果它们不导通,则电线上的电压为0伏。

现在,只需一点信息即可。但是更多的数据需要更多的电线。不幸的是:更多的电线意味着更多的复杂性。现代汽车只是一台装有轮胎的计算机,因此其中有很多电线(服务器公里或英里)。更多的电线导致更多的重量和更多的成本,而汽车制造商则不喜欢这样。因此,我们需要一种减少导线数量的方法。

这样做的通常方法是使用总线系统

什么是公交系统?

可以将总线视为使用更少的电线传输更多信息的一种方式。总线系统还有其他好处,但我将重点关注这一方面。

例:

我们要打开或关闭四个灯。

没有总线系统:

  • 灯1:电线1上+5 V =灯已开启; 电线1上的0 V =灯熄灭
  • 灯2:电线2上的+5 V =灯亮;电线2上的0 V =灯熄灭
  • 灯3:...
  • 灯4:...

很容易看到;每个灯需要一根电线。

使用总线系统:

  • 灯1:电线1(选择器)上的+1 V,电线2上的0或+5 V用于开和关(开关)
  • 灯泡2:电线1(选择器)上的+2 V,电线2上的0或+5 V用于接通和关断(开关)
  • 灯泡3:电线1(选择器)上的+3 V,电线2上的0或+5 V用于开和关(开关)
  • 灯4:电线1(选择器)上的+4 V,电线2上的0或+5 V用于开和关(开关)

有了这个原始的一种总线系统,我们减少了线材的量2。不管我们要控制多少灯,我们只需要一根线来告诉另一芯片我们想要切换哪个灯,而第二根线则告诉我们我们想要打开或关闭灯。我的示例在现实世界中会受到限制,因为不能简单地将电线1上的电压提高到1000 V来切换一千种不同的灯。

这个例子说明了为什么在一般的电子产品中,特别是在汽车中,使用总线系统。汽车使用了许多专门为其量身定制的公交系统:

什么是CAN(控制器局域网)?

CAN是汽车中最重要的总线系统。关于这一点,我将不作详细介绍,仅将其视为仅使用两条导线传输大量数据的一种方式。您可以在Wikipedia上阅读有关CAN的更多信息。

OBD-II

OBD-II协议和CAN设置之间有什么区别?

OBD-II是用于诊断目的的高级协议。OBD-II可以使用(许多)不同的总线系统之一在您的汽车之间传输诊断数据。可以将OBD-II视为您使用的语言(英语),将CAN用作与某人交谈(关于您的汽车及其健康状况;)的通信设备(电话)。

许多人将OBD(车载诊断的缩写)或OBD-II称为“标准”。OBD-II是一个标准,但是它又包含许多不同的标准,协议和用于通信的总线系统,因此很难列出所有标准。我曾经制作了一个概览图,稍后将查看是否可以将其添加到答案中。

如何在带有CAN的车辆上使用OBD-II扫描仪?

只需将其插入汽车的OBD-II端口即可。CAN是OBD-II规范的传输协议之一,大多数OBD-II-Scanners都应支持CAN。可以使用Google(图像)搜索找到端口的位置。通常,端口位于驱动程序可及的范围内,例如,在仪表板下方或隐藏在中央控制台中


2
这是一个很好的综合答案!肯定+1!:d
Pᴀᴜʟsᴛᴇʀ2

马上开!
Shobin P

6
我喜欢免费配备轮胎的计算机的想法。;-)
鲍勃·克罗斯

2
除了“带有CAN的车辆”要点,车辆可能会或可能不会使用CAN在汽车上的各种黑匣子之间传输数据(可以使用其他协议,制造商可以使用他们喜欢的协议);并且它可能会或可能不会在OBD-II端口上支持CAN(OBD-II标准提供了三种协议的选择,其中CAN只是其中一种-这就是为什么它是20针连接器,因此可以使用其他针脚其他协议)。但是它将始终具有OBD-II端口,并且扫描仪将始终插入该端口。
格雷厄姆

请添加概述图形!
tdrury '16

9

OBD II是美国政府授权的诊断界面。保证此接口可以提供一组特定的信息,包括但不限于引擎计算机数据和引擎计算机故障代码。

在推出OBD II时,美国政府并未强迫制造商也将与引擎计算机的通信接口标准化。早期的OBD II具有至少六个通讯协议。后来美国政府意识到他们的错误,即至少发动机计算机必须支持CAN通信协议。

CAN通信协议是在OBD II的支持下的一种协议。

如果您的OBD II扫描仪支持CAN,则在OBD II和CAN要求之间出现的一些较旧的扫描仪不支持它,则使用上没有区别。扫描仪将自动选择可用的协议,方法是自动检测可用的协议,或者在输入制造商的型号和年份时,扫描工具将使用已知的可用协议。


2
什么政府?有很多政府。
Peter Mortensen

@PeterMortensen我编辑了答案
vini_i 2016年

有关OBD11协议的当前定义,请参见SAE J1979文档。自从最初的1996年实施以来,详细信息已多次更改。
弗雷德·威尔逊
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.