虽然随着时间的推移,已经开发出了许多用于车辆诊断的协议,例如 KWP 2000、ISO 15765 和 K-Line,但汽车OEM厂商和供应商们已将统一诊断服务(UDS)协议作为标准协议来确保通用的兼容性。汽车OEM厂商可遵循ISO-14229标准中所定义的诊断协议来提供可用于诊断任何车辆的通用计算机系统。
图1:UDS 结合并统一了其他汽车诊断协议,如ISO 15765。(图片来源:Embitel)
最新的汽车每台有40到150个ECU(服务器),而且每个ECU都执行着特定的功能,如电子燃油喷射 (EFI)、发动机控制、门锁、制动和车窗操作。然而,这使得汽车在故障发生时很难测试和诊断车辆系统。
UDS协议让诊断测试人员(客户端)通过连接到ECU上的串行数据线控制车辆并进行诊断。UDS会向控制器发送请求数据,然后控制器会提供肯定或否定的回答。连接到ECU的诊断测试工具,会检索故障代码并通过图形用户界面(GUI)对其进行显示。
UDS软件堆栈会将车辆中每个问题的故障代码存储在ECU内存中,然后在需要时将其传输到客户端。UDS堆栈还允许工程师在必要时执行 ECU 刷新和重新编程。
图2:UDS协议栈使用户能够指定功能集。(图片来源:Embitel)
ISO 14229 UDS协议基于开放式系统互联(OSI)模型,它使用的是OSI模型的第五层(会话层)和第七层(应用层)。这里值得一提的是,CAN协议工作在OSI模型的第一层(物理层)和第二层(数据链路层)。
(原文刊登于EDN美国版,参考链接:A short primer on ISO-14229 UDS protocol for vehicle diagnostics,由Franklin Zhao编译。)
本文为《电子技术设计》2022年2月刊杂志文章,版权所有,禁止转载。免费杂志订阅申请点击这里。