0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

多种角度来了解OBD2

jf_91995625 来源:jf_91995625 作者:jf_91995625 2023-09-04 09:55 次阅读

本文介绍了OBD2(On Board Diagnostic )的协议,其中包括OBD2连接器,OBD2 PID(parameter IDs)以与CAN总线的关系。

注意:这是一个实用介绍,因此您还将学习如何请求和解码OBD2数据,关键日志记录用例以及应用技巧。

什么是OBD2?
简而言之,OBD2——On Board DiagnosticsⅡ是您爱车的自我诊断系统。

您可能早已接触过了OBD2:

试着回忆一下,您是否注意到故障指示灯突然在您仪表盘上弹出了?

这就说明您的爱车向您反馈它出现了点问题。如果您去找修理师求助,他会使用OBD2 扫描仪来进行诊断。

通常,他会将OBD2扫描仪通过OBD2 16针的连接器连接到您的车辆,这样修理师就可以读取到OBD2的代码——诊断故障代码来判断故障问题所在。

OBD2连接器
您可以通过OBD2连接器轻松地访问汽车中的数据。SAE J1962标准中指定了两种OBD2母头16针连接器类型(A和B)。

图中是A型OBD2引脚连接器(有时也称为DLC(Data Link Connector))的示例。

需要注意的是:

OBD2连接器在方向盘周围,但也有可能在垫子下面或者仪表盘后
并非所有的公头都适合所有的OBD2母头,需检查接头类型和OBD的引脚
引脚16连着汽车电池,一般熄火后也是连通的
引脚6(CAN-H)和引脚14(CAN-L)是最重要的,因为CAN(ISO 15765-4)是大多数现代汽车(包括电动车)的标准配置

wKgZomT1NumAS2BdAAEkhOvShN4529.png


我们车上有OBD吗?
基本上都有!

几乎最近几年生产的汽车都支持OBD2,并且大多数都是基于CAN(ISO 15765)的。对于比较老的汽车,请注意,即使有16针OBD2连接器,它可能也不支持OBD2。确定车辆上是否有OBD2的一种方法是看您是在何时何处购买的产品

下图是适配OBD2的国家和年限:

wKgaomT1Nw6ANo9oAAC9vKwgomM001.png

连接OBD2和CAN
CAN总线是一种像电话似的通信方法,而OBD2是一种高层协议,可以理解为一种语言。

值得说明的是,OBD2标准指定了的OBD2连接器,可以由5个协议运行。然而,自从2008年以来,CAN总线(ISO 15764)规定了美国出售的所有汽车强制性应用OBD2,这基本消除了其他4种协议。

ISO 15765是指一组限制应用的CAN标准,它是由ISO 11898定义的。ISO11898又被称为为汽车而定的CAN。

另外,OBD2 与其他高层协议如J1939,CANopen有相似。

wKgaomT1NyuAFKQYAAC6YHE2220134.png

OBD2的历史
OBD2来源于加利福尼亚,加州空气资源委员会(CARB)从1991年起要求所有新车都使用OBD,以达到控制排放的目的。

汽车工程师协会(SAE)和标准化的转轨以及OBD转接器制造商(SAE j1962)联合推荐OBD2标准的使用。

OBD2 标准按如下顺序一步步推出:

1996:OBD2在美国被强制用于汽车/轻型卡车
2001:应用于欧盟汽油车
2003:应用于欧盟的柴油车
2005:美国要求OBD2应用于中型车辆
2008:美国汽车必须使用ISO 15765-4 (CAN)作为OBD2基础
2010:美国要求OBD2应用于重型车辆


OBD2的未来
OBD2未来将以何种形式存在呢?

以下两种潜在的途径可能从根本上改变OBD2:

OBD3无线发送测试

在如今这个汽车智能网联的时代,OBD2测试似乎有些麻烦:需要手工进行排放控制,这样检查既费时又昂贵。

OBD3可以为所有汽车添加远程信息处理功能来解决上述问题。

基本上,OBD3给所有的汽车都增加了一个小型的无线电应答器(比如网关)。通过这种方式,车辆识别号码(VIN)和DTCs可以通过WiFi发送到中央服务器进行检查。

现如今,许多CAN和OBD2的设备可以通过Wifi/移动网络完成数据传输——比如CANedge2 Wifi版CAN记录仪。

这样既方便又能节省成本,但是从政治角度来说,出于监管方面的考虑,这也是一个挑战。

减少第三方OBD2服务

上面提到过,OBD2协议最初是为了控制排放才设计的。

然而,现在的OBD2被第三方开发者广泛地用于生成实时型数据——通过OBD2加密软件和CAN记录仪等。然而,德国汽车行业正在寻求方法改变这种状况。

消除第三方OBD2服务,建议开车时停止OBD2服务,而是在中央服务器上收集相关数据,这样可以让汽车制造商控制“大数据”。

尽管许多人把OBD2的第三方服务认定为是商业行为,但这一论证是基于安全考虑的(例如消除汽车黑客的风险)。这是否会成为必定趋势还有待观察——但是这可能会真正扰乱OBD2第三方服务的市场。

OBD2的PID
我们为什么关心OBD2数据呢?

工程师显然更关注OBD2 DTCs(用户可能也同样),然而管理机构需要OBD2来控制排放。

但是OBD2同样支持一系列可以被大多数汽车记录的广泛性标准参数

这意味着您可以很容易地从您的车中获得可读的OBD2数据,包括速度、转速、油门位置等。

换句话说,OBD2让您很容易分析您爱车相关数据——OEM特定专有的原始数据。

解码OBD2和CAN总线的数据

原则上,从汽车上记录原始的CAN帧很简单。如果将CAN记录器连接到OBD2连接器,则将立即开始记录CAN总线的广播数据。但是,原始CAN消息需要通过转换规则数据库进行解码,并且此类数据库通常是专有的,从而不能从原始CAN数据中获得有用的信息。

汽车黑客可以尝试对转换规则进行逆向工程,尽管这在技术上相当先进。但是,CAN仍然是“完全获得”汽车数据的唯一方法,而OBD2仅只能提供对有限数据部分的访问。

如何记录OBD2数据
OBD2数据记录的工作方式如下:

您将OBD2记录器连接到OBD2连接器
通过工具,您可以通过CAN发送“请求帧”
相关的ECU通过CAN发送“响应帧”
换句话说,能够发送自定义CAN帧的CAN记录仪也可以用作OBD2记录仪。

请注意,汽车在支持的OBD2 PID方面因型号/年份而异。有关详细信息,请参见我们的OBD2数据记录器指南。

CANedge OBD2数据记录仪
CANedge可以让您轻松记录OBD2数据到8-32 GB的SD卡。您只需指定想要请求的OBD2 PID,然后通过OBD2适配器将其连接到汽车即可开始记录。最后通过免费软件/ API和我们的OBD2 DBC处理数据。

原始OBD2报文细节
如果想要开始记录OBD2数据,那先了解下原始OBD2消息结构基础会对您非常有帮助。

简而言之,OBD2消息包含 标识符和数据。此外,数据按服务、PID和数据字节(A,B,C,D)拆分开来并如下图所示:

wKgZomT1OByAcemoAABUmvb-4PE236.png

OBD2信息段解释

标识符:对于OBD2消息,标识符是标准的11位,用于区分“请求消息”(ID 7DF)和“响应消息”(ID 7E8至7EF)。请注意,7E8通常是主机或ECU响应的ID。

有效位:仅用来反映这一帧数据的字节数(03至06)。对于“车速”的这个示例,请求帧的有效位是02(因为仅跟随01和0D),而响应帧有效位是03,因为跟随41、0D和32。

服务:对于请求,这将在01-0A之间。对于响应,将0替换为4(即41、42,…,4A)。如SAE J1979 OBD2标准中所述,有10种服务。模式1显示当前数据,例如用于查看实时车速,RPM等。其他模式用于如显示或清除存储的诊断故障代码并显示冻结帧数据。

PID:对于每种服务,都存在标准OBD2 PID的列表,例如,在01服务中,PID 0D为车速。有关完整列表,请查看Wikipedia OBD2 PID概述。每个PID都有一个说明,有些PID具有指定的最小或最大值以及转换公式。

比如只有参数A,速度的公式就是将16进制的A转换为十进制以获得km / h转换后的值(即32变为50 km / h以上)再例如,对于RPM(PID 0C),公式为(256 * A + B)/ 4。

A,B,C,D:这些是十六进制中的数据字节,在将其用于PID公式计算之前,需要将其转换为十进制形式。注意,不使用最后一个数据字节(在Dh之后)。

OBD2数据记录实例
来自汽车和轻型卡车的OBD2数据可应用于各种案例:

记录汽车数据

来自汽车的OBD2数据可用于减少油耗,改善驾驶行为,测试新型零件和保险事务

实时汽车诊断

OBD2接口可用于实时传输人类可读的OBD2

预测性维护

可以通过云端的IoT OBD2记录器监控汽车和轻型卡车,以预测和避免故障

车辆黑匣子记录器

OBD2记录器可以用作车辆或设备的“黑匣子”,例如为纠纷或诊断提供数据

需要什么样的OBD2的记录仪呢?
下面我们概述了最常见的OBD2分析仪类别:

OBD2诊断仪:维修师傅在车辆故障诊断(例如可能MIL灯相关)时,用于静态读取或者清除DTC。存在各种情况。

OBD2记录仪:用于将汽车中的OBD2数据记录到SD卡,非常适合例如黑匣子或新型零件现场测试。支持WiFi的版本也可用于例如车载远程信息处理。

OBD2接口:例如通过USB提供实时OBD2数据,通常用于专业诊断和OEM车辆开发中。

更专业的OBD2接口还可以用于传输OBD2数据以及专用的CAN总线数据,这对于CAN嗅探和汽车黑客攻击很有用。

文章开之hongkeqiche

审核编辑 黄宇

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 连接器
    +关注

    关注

    96

    文章

    12642

    浏览量

    133139
  • 记录仪
    +关注

    关注

    1

    文章

    411

    浏览量

    21472
  • OBD2
    +关注

    关注

    2

    文章

    9

    浏览量

    15581
  • 汽车
    +关注

    关注

    12

    文章

    2991

    浏览量

    36080
收藏 人收藏

    评论

    相关推荐

    汽车OBD2蓝牙诊断仪解决开发流程详解

    ),TL718能自动设定了Header/ID/PCI/CHECKSUM这部分数据,对于标准的OBD2诊断程序你都几乎不用关心修改它。想了解有关内容,它们分别定义在ISO14230-2、J1850
    发表于 05-14 23:07

    车联网OBD2模块数据手册

    `车联网OBD2模块数据手册 产品特点Ø 标准OBDII接口支持Ø 覆盖所有主流汽车协议Ø 双MCU,处理速度快,是ELM327的5倍Ø 上位机无需进行任何运算,所有数据都以数值方式返回Ø 精确
    发表于 11-02 15:25

    OBD芯片应用开发手册 OBD2内部资料分享TDA61 TDA66芯片

    本帖最后由 obd2 于 2014-4-7 19:58 编辑 OBD产品及各种汽车电子相关的开发。往往需要开发者学习各种汽车协议,深入了解全部OBD规范和汽车各性能参数。这往往需
    发表于 04-07 19:53

    OBD2与CAN总线

    有谁知OBD2的通信协议是什么啊,,还有那些指令集,什么指令是提取汽车车速的?、、
    发表于 07-10 13:12

    OBD2的通信协议

    求助大神,OBD2的通信协议有吗
    发表于 07-10 13:56

    付费找人 做个OBD2 协议开发~

    本帖最后由 阿择 于 2016-1-9 18:29 编辑 汽车OBD2 协议开发能做的, 请联系我QQ:30573
    发表于 01-09 17:38

    用于维修ECU的OBD2测试板

    描述OBD2 测试板修订版 1.1用于维修 ECU(Webasto 等)的 OBD2 测试板。代码https://github.com/radekshub/OBD2TestBoard.git
    发表于 09-13 06:26

    汽车OBD2诊断程序开发

    ISO14230 ISO9141要求通讯前的初始化过程、及连接后要求有一个周期性的握手信号,这些TL718都已经自动完成,OBD2标准的诊断程序都不用更改
    发表于 06-28 11:49 2.1w次阅读
    汽车<b class='flag-5'>OBD2</b>诊断程序开发

    自我诊断OBD2的工作原理

    自我诊断OBD2的工作原理,我还上传好多相关资源,感兴趣的小伙伴们可以去我上传的资料页看看哦。
    发表于 08-05 11:57 97次下载

    OBD2输出信息的9种诊断模式

    OBD2输出信息的9种诊断模式,我还上传好多相关资源,感兴趣的小伙伴们可以去我上传的资料页看看哦。
    发表于 08-05 14:20 105次下载

    "PIC18F25K80芯片烧录方案(汽车诊断仪OBD-II,OBD2,ELM327 V1.5)"

    "PIC18F25K80芯片烧录方案(汽车诊断仪OBD-II,OBD2,ELM327 V1.5)"
    发表于 11-16 21:06 41次下载
    "PIC18F25K80芯片烧录方案(汽车诊断仪<b class='flag-5'>OBD</b>-II,<b class='flag-5'>OBD2</b>,ELM327 V1.5)"

    用于维修ECU(Webasto等)的OBD2测试板

    电子发烧友网站提供《用于维修ECU(Webasto等)的OBD2测试板.zip》资料免费下载
    发表于 08-18 10:09 0次下载
    用于维修ECU(Webasto等)的<b class='flag-5'>OBD2</b>测试板

    用于维修ECU的OBD2测试板

    电子发烧友网站提供《用于维修ECU的OBD2测试板.zip》资料免费下载
    发表于 08-18 10:03 1次下载
    用于维修ECU的<b class='flag-5'>OBD2</b>测试板

    ISO15765 OBD2 PID故障码读取

    ISO15765 OBD2 PID
    发表于 05-29 11:17 4次下载

    基于OBD2的仪表板

    电子发烧友网站提供《基于OBD2的仪表板.zip》资料免费下载
    发表于 06-16 14:51 1次下载
    基于<b class='flag-5'>OBD2</b>的仪表板