一问到底 |汽车诊断的前世今生(上)——从各玩各的到UDS一统江湖

上篇:汽车诊断的“战国时代”——从各玩各的到UDS一统江湖

导语:

这可能是你过去一年,读过最长的一篇技术文章。但如果你跟我一样,曾被UDS的资料搞得晕头转向,我想它能帮你理清头绪。

你有没有过这种经历——

想搞清楚UDS到底是什么。打开搜索引擎,点开一篇文章,满屏的SID表格,0x10、0x19、0x27……换下一篇,开始讲OBD接口的16个针脚。再换一篇,直接扔给你一份ISO 14229的PDF。硬着头皮看了三四篇,每个词都认识,但就是串不起来。好像懂了一点,又好像什么都没懂。越看越乱,越学越没底。

说实话,这种感觉我跟了很久。网上的资料虽多,但东一块西一块,怎么也找不到一条清晰的主线。那种“明明在学,却始终没打通”的无力感,就像手里攥着一把拼图块,却不知道整幅图长什么样。

上篇,我们先从最原始的需求说起。沿着一条线走:从串口调试,到K线,到CAN,到UDS。走完你会发现,UDS不是什么凭空造出的大而全,而是每一个阶段的问题积累到最后,长出来的必然结果。

这篇文章有8千字,我希望能和大家一起,把这条线从头到尾梳理清楚。因为每一步的“为什么”,都藏在前面一步的“问题”里。

好,我们开始。

预备知识:看懂正片之前必须了解的三件事

作为基础知识,有三件事需要先理清楚:汽车诊断到底从哪来、谁在做标准、通信基础是什么。

这三件事,是理解后续所有技术演进的基石。

1、汽车诊断到底从哪来?

我先问你一个问题:汽车诊断到底从哪来?

你可能觉得,诊断就是插个OBD盒子读个故障码。不对。这个理解太窄了。

真正催生汽车诊断的,是两个源头,缺一不可。

一问到底 |汽车诊断的前世今生(上)——从各玩各的到UDS一统江湖-有驾

源头一:工程师的苦衷。

汽车电子这东西,特别是软件功能,看不见摸不着。你写了一段程序,烧进ECU,它跑成什么样了?你不知道。

怎么办?工程师想了个办法:让ECU通过串口把运行状态一条一条发出来。

调试的时候,电脑上显示“第一步执行完成”“氧传感器正常”……就像你用万用表去量一个点,表上直接显示10伏一样——本来看不见的电,一下就变成了你能看到的数据。

这就是诊断的雏形。后来,研发要诊断、生产要诊断、维修也要诊断。这三个需求,贯穿了汽车诊断技术的整个发展史。

源头二:法规的强制——OBD的诞生。

上世纪80年代,美国加州被空气污染搞得头疼。1982年通用汽车率先在车上装了监测排放系统的功能——这是工程自发的探索。1985年,加州空气资源委员会(CARB)决定出手:他们开始制定法规,要求从1988年起,所有在加州销售的新车必须装备OBD(车载诊断系统)

这是法规第一次以书面形式定义了OBD必须做什么:排放相关系统出现故障时,仪表盘要亮灯报警;必须把故障码存在ECU里;维修设备必须能读取这个故障码。

但问题来了:法规只说了“要有”,没说“怎么做”。

于是各厂家都装了OBD,却各玩各的——接口不一样(有圆的有方的),通信协议不一样(福特用PWM,通用用VPW),故障码定义也不一样(福特说0x01是发动机故障,通用说0x02才是)。

结果就是,各品牌诊断仪互不通用——就算你能把福特的仪器插到通用汽车上,也读取不到任何数据。汽车检测站想检测不同品牌的车,就得各备一套诊断仪。

这个阶段后来被称为OBD-I(1988-1995)。法规的强制力把“有无”的问题解决了,但“统一”的问题还留着。我们会在第五章详细讲OBD-II如何解决这个问题。

回到源头: 法规需求(排放监控)和工程需求(研发/生产/维修)是两条并行的线。一个是为了合规,一个是为了干活。不理解这一点,后面你看到“为什么OBD能读故障码但不能刷写ECU”时,就会一头雾水。

2、谁在做标准?

汽车行业里有两个最权威的标准化组织。

SAE(美国机动工程师协会),成立于1905年左右。它的标准叫“SAE Jxxxx”,几乎覆盖了汽车领域的一切。美系车的主导力量。

一问到底 |汽车诊断的前世今生(上)——从各玩各的到UDS一统江湖-有驾

ISO(国际标准化组织),成立于1947年,总部在欧洲。它管的范围更广,汽车只是其中一部分。

一问到底 |汽车诊断的前世今生(上)——从各玩各的到UDS一统江湖-有驾

现在这两个组织合作越来越紧密。SAE的很多标准被ISO收编后,成了ISO标准。两者互相协作,没有谁压谁。

3、通信基础:诊断的本质是通信

诊断说白了就是测试仪和ECU之间互相传话。不理解通信,就不可能真正理解诊断。

并行 vs 串行

并行通信:用8条数据线的并行通信,就像八车道高速公路。一个时钟周期能传一个字节(8个bit)。优点是快,缺点是需要很多线——成本高、体积大、重量重,而且线多了互相干扰。

一问到底 |汽车诊断的前世今生(上)——从各玩各的到UDS一统江湖-有驾

串行通信:只用一条线,一个比特一个比特地传,就像单车道公路。优点是线少、成本低、重量轻、抗干扰好。缺点是速度慢(一个时钟周期只能传1个比特)。

一问到底 |汽车诊断的前世今生(上)——从各玩各的到UDS一统江湖-有驾

汽车上怎么选?

车内空间有限,线束重量直接关系到油耗,电磁环境又极其恶劣。在这些约束下,串行通信是唯一的选择。你不可能为了让数据传快点,就在车身里塞几十上百根并行线。速度不够,提波特率就行了。

所以——汽车总线全是串行的。这一点你记住了,后面看任何协议都不会跑偏。

双工模式

双工模式,说的是通信的方向——数据是单向流、双向交替流、还是双向同时流。

单工:信息只能沿一个方向传输,发送方只管发,接收方只管收。
比如收音机,广播塔一直发射信号,你只能听,不能回传。在汽车上,某些传感器单向上报数据就属于这种模式,但诊断通信需要双向交互,所以单工不够用。

半双工:双方都能发送和接收,但同一时刻只能有一方发送。
就像对讲机——你按下说话时,我只能听;我说的时候,你必须闭嘴。半双工只需要一条传输线(加上地线)就能工作,因为信号在同一根线上分时流动。优点是节省线束;缺点是需要协调“谁先说话”,否则双方同时发送就会冲突。

全双工:双方可以同时发送和接收。
就像打电话——你说话的同时也能听到对方说话,互不干扰。全双工需要两条独立的传输线:一条专门从A到B,一条专门从B到A。优点是效率高、无需复杂的“谁先发”协调;缺点是需要双倍线缆。

一问到底 |汽车诊断的前世今生(上)——从各玩各的到UDS一统江湖-有驾

汽车上为什么选半双工? 成本。一辆车几十个ECU,全双工线束翻倍,成本和重量都受不了。半双工一条总线共享,够用。

但半双工有个问题:多个节点同时发,就会“打架”。怎么解决?

仲裁机制:

CAN总线的仲裁是非破坏性的:每个消息有个优先级ID(数字越小优先级越高)。多个节点同时发时,大家逐位比较ID——低ID的胜出继续发,高ID的自动退出,等总线空闲了再重试。没有数据丢失,不需要主节点调度。

这就是半双工+非破坏性仲裁的黄金组合。

拓扑结构

拓扑,简单说就是各个节点之间连接起来的方式。不同的连接方式,决定了通信的效率、成本和可靠性。

常见的拓扑有以下几种:

网状网:每两个节点之间都直接相连。节点数为n时,链路数为n(n-1)/2。
优点是任意两点都可以直接通信、效率最高;缺点是随着节点增加,线束数量呈几何级数增长——10个节点就需要45条链路,这在汽车上简直是灾难。
所以网状网只适合节点极少的场景。

一问到底 |汽车诊断的前世今生(上)——从各玩各的到UDS一统江湖-有驾

星型网:有一个中心节点,所有其他节点都只与中心节点相连,链路数为n-1。
优点是线束比网状少得多;缺点是中心节点负担极重——所有信息都要经过它中转,一旦中心节点故障,整个网络瘫痪。
汽车上很少采用这种结构。

一问到底 |汽车诊断的前世今生(上)——从各玩各的到UDS一统江湖-有驾

总线型:所有节点都挂在一根总线上,链路数就是1。
优点非常突出:线束最少、成本最低、重量最轻、易于扩展(新节点直接挂上去就行)。缺点是多个节点同时发送数据时会产生冲突,需要仲裁机制来决定谁先发。
但这个问题可以通过协议(如CAN的非破坏性仲裁)有效解决。

一问到底 |汽车诊断的前世今生(上)——从各玩各的到UDS一统江湖-有驾

菊花链:节点一个接一个串联,像击鼓传花一样,信息需要逐级传递。优点是线束也较少;缺点是每个节点都要参与转发,处理能力要求高,而且中间节点故障会影响后面的节点。

汽车上为什么清一色总线型?

线最少、最省钱、最轻。冲突的问题交给仲裁。所以,总线型+仲裁机制就是汽车通信的标准答案。

预备知识讲完了。现在我们进入正片!

第一章 早期“诸侯割据”时代:各玩各的,谁也不理谁

上世纪80年代,汽车电子化和排放法规同时起步。大家都在摸索,没有标准。

物理层:串口打底,各显神通

当时电子行业最成熟的串行通信方式就是串口,它的标准称呼是通用异步收发器(Universal Asynchronous Receiver/Transmitter,通常缩写为UART),通过在信号线上用两个不同的电压表示bit 0或者bit 1。

串口方案简单、成熟、便宜,所以几乎每家车厂的第一代诊断方案,都是在串口上做文章。

但串口有个先天不足:它是点对点的,只能连接两个设备。而汽车上需要很多ECU挂在一起,光用串口是不够用的。不过,早期工程师的需求相对简单——能连上、能读到内部状态就行。所以最开始,大家还是各自在串口上做文章。

你会看到,在这个“串口时代”,各家实现诊断的方式五花八门,完全没有统一的标准。

从串口到脉宽调制:技术进步的必然

虽然串口简单够用,但它有个硬伤:抗干扰能力弱。

汽车发动机舱里,电磁环境极其恶劣,点火线圈、电机、电磁阀,都是强大的干扰源。串口靠电压高低来表示0和1,干扰一来,电压一抖,判断就出错了。于是,各家开始寻找更强的物理层方案。

这时,脉宽调制技术登场了。

什么是脉宽调制?

串口看的是“电压是高还是低”,脉宽调制看的是“脉冲的宽度”。用一个固定周期内的脉冲宽度来编码信息,抗干扰能力大大增强——干扰可以瞬间改变电压,但很难精准改变一个脉冲的时间长度。

简单来说:

串口:以不同的电平来表示bit,实现简单但抗干扰弱

脉宽调制:以不同的脉冲宽度来表示bit,实现复杂但抗干扰强

通用和福特都从串口时代进化到了脉宽调制时代,但依然各走各的路。

到了90年代中期,随着SAE J1850标准(1994年2月发布)的推行,两家厂商的技术路线被统一到一个标准框架下,但标准里仍然保留了两种互不兼容的实现方案。

通用采用VPW(可变脉冲宽度),单线,速率10.4 Kbps,内部叫Class 2

福特采用PWM(脉宽调制),这是一种双差分线的脉宽调制方案,速率41.6 Kbps

你看,即便从串口进化到脉宽调制,技术底子变了,各家实现的方式依然不同。“各玩各的”局面并未改变。

链路层和诊断协议:全是私有

物理层不同,上层协议更是各玩各的。故障码怎么定义、用什么指令读数据、怎么确认通信建立——每家都有自己的规矩,甚至同一家公司的不同车型都可能不一致。

结果是什么?

福特的诊断仪插到通用的车上,完全读不出东西——电气信号对不上,字节含义也对不上。维修厂要想修所有品牌的车,得备好几种诊断仪。车主出了故障只能去4S店,路边店根本修不了。

这就是早期“私有协议时代”的特征:物理层私有、链路层私有、诊断协议私有。功能实现了,互操作性为零。虽然乱,但这是必经阶段——先解决“有没有”,再解决“通不通”。

一个小插曲:你可能听过OBD-I这个词。1988年起,加州要求新车必须装备OBD系统,这就是第一代OBD(后来叫OBD-I),但那时候的OBD只规定了“要有”,没规定“怎么做”。这个问题一直拖到1996年OBD-II才解决,我们第五章会详细讲。

第二章 K线与KWP2000:欧洲人说“得立规矩了”

百花齐放固然热闹,但汽车是全球卖的产品。你卖到欧洲,欧洲人修不了,那怎么行?于是从1980年代末开始,欧洲人开始推动标准化。

K线:串口的车载进化版

K线(K-Line)本质上还是UART串口的底子。你可以理解为,更善于做标准化的欧洲人,没有走脉宽调制的物理层进化路线,还是继续在串口上做文章,持续推动它的发展和标准化。

它的关键特性如下:

单线半双工(一根线加地线),所有节点挂上来

总线型拓扑,线束少

速率10.4 Kbps,对当时的诊断数据够用了

标准化:最初ISO 9141,后来ISO 14230扩展完善

K线还定义了一套完整的上层通信机制,引入了“关键字”校验来建立连接,有点像接头时先对暗号。具体来说,诊断仪先发一个关键字(比如0x81),ECU回应的关键字必须符合特定算法,双方确认后才能进入诊断通信。这个机制让K线的通信更可靠,也更安全。

KWP2000:第一个标准化的诊断协议

但K线只规定了怎么传(通信层)。传什么?上面的"语言"还得统一。于是KWP2000(Keyword Protocol 2000)**诞生了。

这是欧洲第一个大规模采用的标准化的诊断应用层协议。它首次定义了:

Service ID(服务标识符):用一个字节表示一个诊断功能。0x10进诊断会话、0x27安全验证、0x19读故障码……这个思想后来被UDS完全继承。

物理寻址 vs 功能寻址:物理寻址是只跟一个ECU说话;功能寻址是喊一嗓子,所有ECU都能听见。

请求—应答交互模式:发一条指令,ECU必须回一条应答。成功就回SID+0x40,失败就回0x7F+SID+错误码。

KWP2000可以跑在K线上,后来也移植到了CAN上。它定义了从物理层到应用层的完整内容,是UDS的直系祖先。

为什么K线时代是一个转折点?

为了说清楚这个问题,我们引入一个工具:OSI七层模型。

把通信系统分成七层,从底层的物理层(电线怎么连)、数据链路层(数据帧怎么组织),到上层的应用层(数据是什么意思)。我们不需要死板地对应每一层,但用它来区分“怎么传”和“传什么”,非常有效。

为了方便表达,我们把物理层和链路层合在一起,叫它“通信层”;把应用层单独拿出来,叫它“诊断应用层”。

有了这个框架,我们就能看清不同时代的差异:

在串口和脉宽调制时代(包括J1850):标准化的着力点主要在通信层,上层的诊断方法和内容都是厂家的私有协议。福特的PWM和通用的VPW都属于公司私有的通信层方案。

到了K线时代:通信层由ISO 9141定义,是一个公开的国际标准。但更关键的是,诊断应用层也开始进行标准化——这就是KWP2000(ISO 14230)。

这就是K线和以往技术相比,推动技术进步的核心价值所在:从此以后,标准在两个层面上同时进步了——通信层后续发展出CAN、IP等更先进的技术;诊断应用层持续发展到UDS、OBD-II(ISO 15031)、GMLAN-D等。

(关于OSI七层模型的详细拆解,可以查阅我们之前的文章:一问到底| 如何用 OSI 七层模型拆解实际通信困惑?

一个常见误解:K线早就被淘汰了?

很多人以为K线是老掉牙的东西,早该进博物馆了。其实不是。

K线和KWP2000直到今天还在用。很多老车型、甚至某些新车型的部分ECU,仍然通过K线进行诊断。而且,今天UDS里的Service ID体系,从0x10到0x3E,几乎都能在KWP2000里找到原型。没有KWP2000,就没有UDS。

真实案例:国内品牌,2018年量产的一款车,年检时检测站的OBD设备读不出诊断信息。后来我们帮客户做了适配,问题就解决了。原因并不复杂:厂家对KWP2000的实现有细微的私有改动,不完全符合标准。

第三章 CAN总线的革命:博世(Bosch)带来的“高速公路”

如果说K线是当时够用的乡间公路,那CAN总线就是横空出世的高速铁路网。

从博世的构想到全球标准

1983年,德国博世公司内部启动了一个秘密项目:开发一种全新的、专门为汽车设计的串行总线。

当时的背景是:ECU越来越多,线束越来越重,成本越来越高,K线的10.4 Kbps速率和可靠性已经不够用了。

1986年,在密歇根州的SAE(国际汽车工程师学会)会议上,博世正式向业界发布了CAN总线。

全场震动——多主、非破坏性仲裁、高可靠,完美契合汽车需求。

此后进展迅速:

1987年:Intel和Philips(现NXP)推出首批CAN控制器芯片

1991年:博世发布CAN技术规范2.0版(分为2.0A标准帧和2.0B扩展帧);同年,梅赛德斯-奔驰S系列轿车(W140)成为全球首款搭载CAN总线的量产车型

1993年:ISO正式发布ISO 11898,CAN成为国际标准

如今,ISO 11898已经是一个标准族,包含数据链路层(ISO 11898-1)、高速CAN物理层(ISO 11898-2)、低速容错CAN物理层(ISO 11898-3)等多个部分。

CAN强在哪?

多主架构:任何节点都能随时发起通信,不需要主节点调度。

非破坏性仲裁:每个消息有ID,ID越小优先级越高。多个节点同时发时,逐位比较ID——低ID胜出继续发,高ID自动退出,等总线空闲了重试。没有数据丢失,没有碰撞重传。这是CAN最天才的设计。

差分信号,抗干扰极强:一对双绞线(CAN_H和CAN_L),信号是两根线之间的电压差。共模干扰(比如发动机点火产生的电磁噪声)同时出现在两根线上,相减之后互相抵消。所以CAN在发动机舱这种“脏”环境里依然稳定。

短帧结构:每帧最多8字节数据,传得快、错误率低、实时性好。

速率高:125Kbps到1Mbps,远超K线的10.4Kbps。

通用走了自己的路:从单线CAN到GMLAN

CAN很快成为欧洲汽车的标准,随后被全球主流车厂采纳。但通用汽车走了一条稍微不同的路。

我们在第一章提到过,通用从早期的私有ALDL,到90年代中期采用SAE J1850 VPW(Class 2),一直走的是自己的技术路线。

当CAN总线成为主流后,通用面临一个棘手的问题:它的整个技术架构都是基于单线通信的。VPW是单线,Class 2也是单线。而标准的CAN(高速CAN)采用的是**双线差分信号,需要两条线。**如果直接切换成双线CAN,意味着通用要大规模改造ECU、线束和整车电气架构,成本极高。

于是,通用的工程师想出了一个巧妙的过渡方案:在物理层用一条线来实现CAN信号,保留单线架构,但跑的已经是CAN协议。这就是单线CAN(SW-CAN),后来被标准化为SAE J2411。

小贴士:SW-CAN速率约33.3Kbps,介于J1850 VPW(10.4 Kbps)和高速CAN(500Kbps)之间。它不是通用“愿意”选的,而是单线VPW的历史包袱太重,必须找一个桥梁方案,让老架构能平稳过渡到CAN时代。

SW-CAN的存在时间并不长。随着通用逐步更新技术架构,双线高速CAN最终成为主流。单线CAN只是通用在特定时期的一个过渡方案,但它很有特色——清晰反映了技术演进中“历史包袱”是如何影响技术选择的。

再说GMLAN:一个比UDS更“大”的东西

很多资料会把GMLAN简单理解为“通用汽车的总线协议”,但这只说对了一半。GMLAN实际上是通用汽车为自己制定的全套车载通信标准——从总线架构、ECU间的数据通信,到诊断服务,是一个完整的体系。

而我们常说的GMLAN-D(GMLAN-Diagnostic),才是其中专门负责诊断的那一部分,对标的是KWP2000和UDS。

仔细看GMLAN-D的协议,会发现它和UDS非常像:同样基于SID(Service ID)的诊断服务结构,大部分的SID定义和UDS一样——0x10进诊断会话、0x27安全访问、0x34请求下载,SID+0x40表示成功应答、0x7F+SID+NRC表示失败这些规则也完全相同。这并非巧合——通用在制定GMLAN-D时,大量借鉴了ISO诊断规范的核心思想。

可以说,GMLAN-D和UDS是“同根同源”的两套实现。

为什么不直接转UDS?

既然GMLAN-D和UDS这么像,通用为什么不干脆直接用UDS?

原因很现实:存量太大,全部换掉成本太高。通用有自己的产品序列和历史积累,与其推倒重来,不如在吸收UDS思想的基础上,做一套自己的协议,兼容老系统。这是大厂的“历史包袱”——行业主流方向是UDS,但通用要平衡先进性和兼容性。

一个小观察:今天你去修车,技师手里的诊断仪,对通用老车可能要切到J1850 VPW模式,对2000年代中后期的通用车型用GMLAN模式,对大众新车直接用“UDS on CAN”模式。接口都是那个OBD接口,但背后跑的“语言”不一样。(注:实际年份因车型和ECU而异,这里只是示意。)

第四章 UDS时代:真正意义上的统一诊断服务

CAN总线解决了速度和可靠性的问题,但上层诊断协议仍然有“方言”——通用用GM LAN,福特用自家的,欧洲用KWP2000 on CAN……行业需要一套真正统一的诊断服务框架。

于是,2006年,UDS(统一诊断服务)应运而生。

UDS就是ISO 14229

UDS由ISO 14229标准系列定义,是一套与底层总线无关的应用层诊断服务规范。它的目标是标准化前代各种协议的不同实现。

一问到底 |汽车诊断的前世今生(上)——从各玩各的到UDS一统江湖-有驾

UDS的核心是Service ID——用一个字节表示一个诊断功能。可以分为六大类:

一问到底 |汽车诊断的前世今生(上)——从各玩各的到UDS一统江湖-有驾

交互模式:诊断仪发一条指令,ECU必须回一条应答。成功就回SID+0x40;失败就回0x7F+SID+错误码(NRC)。

一问到底 |汽车诊断的前世今生(上)——从各玩各的到UDS一统江湖-有驾

UDS的精髓:不管底层是CAN、K-Line、FlexRay还是以太网,上层的诊断服务接口是统一的。

你只需要学会UDS,就能适配几乎所有现代车型。

UDS和KWP2000的传承关系

UDS不是凭空造出来的。它基于KWP2000发展而来,Service ID体系、请求/应答模式、否定应答码(0x7F)等核心设计,都直接继承自KWP2000。可以说,KWP2000是UDS的前身。

两者最大的区别:KWP2000最初是为K-Line设计的,受限于低速和简单帧结构;UDS从设计之初就考虑了CAN等高速总线,并通过ISO 15765传输层解决了长消息分帧问题。

初学者最容易搞混的关系:UDS、15765和CAN

用一个比喻就清楚了:

ISO 14229(UDS):规定“说什么”——信的格式、每个指令的含义(比如0x10是“进入诊断会话”)

ISO 15765:规定“怎么打包发送”——经典CAN一帧只能装8字节,而UDS的一条指令可能有几十字节。15765负责拆包、发送、接收、组包,还负责“流控”(“我能力有限,慢点发”或者“我处理超快,随便发”)

ISO 11898(CAN):规定“运输工具本身”——电气信号、仲裁机制、帧头帧尾

UDS要跑在CAN上,必须有15765在中间做“打包/拆包”。

没有15765,UDS的长消息没法在CAN上传输;没有UDS,ISO 15765传输的就只是一堆无意义的字节。好比一整套高效的物流车队,天天停在路边,却无货可拉。三者各司其职,缺一不可。

UDS的灵活性:

UDS不依赖特定的通信介质。从上面的表格就能看到,它官方覆盖了CAN、FlexRay、IP(以太网)、K-Line、LIN等多种底层总线。

一个小补充:虽然UDS官方标准覆盖了K-Line(ISO 14229-6:2013),但由于KWP2000在K-Line上已经非常成熟,实际量产中UDS on K-Line用得不如KWP2000多。

这意味着,未来出现更先进的总线时,UDS只需要增加一个“适配层”,上层的诊断服务完全不用变。这种分层设计,是UDS生命力长盛不衰的根本原因。

上篇结尾:UDS是万能刀,那OBD呢?

看到这里,你可能已经发现,我们沿着“需求驱动”的主线,走完了一段完整的旅程:从最原始的串口调试,到欧洲人用K线立下通信层的规矩,再到博世用CAN总线铺就高速公路,最终催生了统一诊断服务的集大成者——UDS。它就像一个不断升级的工具箱,功能越来越强,几乎什么都能干。但这都是工程师为了解决“干活”问题,自发演进出来的。

但问题来了:为什么路上随便一辆车,插个几十块的OBD蓝牙头就能读故障码?那个用的不是UDS啊。

这就引出了第二条线——法规线。

如果说UDS是工程师自己造的“万能工具”,那OBD就是法规逼出来的“统一接口”。它只管一件事:读取排放相关信息。但因为它被写进了法律,所以每辆车都有。

UDS和OBD,一个是为了干活,一个是为了合规。很多人搞混,就是因为没分清这两条线。

下篇,我们就来彻底讲清楚:OBD到底是个什么东西?它和UDS有什么区别?为什么它们最终会走向融合?

以上内容仅代表个人观点,如果有误,欢迎指正交流。

栏目信息:

《一问到底》 是讯联技术推出的汽车电子测试专栏。我们不讲空话,只聊工程师每天遇到的真问题——总线、通信、控制器。每一期,我们从一个具体痛点出发,讲透原理,给出解法。

本系列文章均为原创作品,禁止未经授权的搬运、洗稿、抄袭。如需转载,请先打招呼,获得授权后再行动。

一问到底系列将持续更新,敬请期待!

大家在实际测试中还遇到过哪些问题?欢迎在评论区留言讨论!

0
全部评论 (0)
暂无评论