汽车电子在售后服务店里,维修工程师傅想快速知道车辆控制器哪里故障,他们需要借助诊断仪工具,读取整车的故障信息,诊断工具与车辆的通信协议,就是UDS协议。UDS 诊断服务能快速、准确地定位汽车电子系统故障。用 UDS 诊断工具,快速读取车辆故障码和相关数据,从而缩短故障诊断时间,提高维修效率。另外汽车电子控制器,经常会有软件更新的需求,软件如何更新,其实就是通过UDS协议,完成软件数据的传输,最后完成软件更新,所以如果是汽车行业从业者,学习UDS协议是非常必要的。
01
诊断功能说明
UDS(Unified Diagnostic Services)诊断服务具有多种功能,主要用于汽车电子控制单元(ECU)的故障诊断、配置和维护。
02
诊断服务分层
诊断服务分为三部分,分别如下:
03
诊断会话控制
常用会话类型有三种,除了三种常用,还有一些特殊会话,入门就不说了,常用会话分别如下
3.1 默认会话(Default Session)
这是诊断设备与 ECU 建立连接后的初始会话类型。在默认会话中,诊断设备可以执行一些基本的诊断功能,如读取故障码、读取 ECU 信息等,但对 ECU 的访问权限有限,不能进行一些敏感操作,如编程或修改关键配置参数。
3.2 编程会话(Programming Session)
当需要对 ECU 进行软件更新、闪存编程或修改一些与车辆配置相关的重要参数时,会进入编程会话。在这个会话中,诊断设备具有更高的权限,可以向 ECU 写入新的软件代码或修改特定的配置数据,但同时也需要进行严格的安全验证,以防止未经授权的操作。
3.3 扩展诊断会话(Extended Diagnostic Session)
扩展诊断会话提供了比默认会话更广泛的诊断功能,允许访问更多的 ECU 内部数据和执行一些特殊的诊断测试,例如进行全面的系统诊断、激活特定的功能模块进行测试等。它通常用于更深入的故障排查和车辆系统的详细检查。
3.4 诊断会话的报文请求和响应格式

04
诊断安全访问
如果设备可以随意与车辆中的设备进行通信,并且随意进行一些操作,这当然是不允许的,所以需要一个访问权限的控制,而诊断安全访问因此发挥重要作用。
UDS 27 服务是 UDS 诊断中的安全访问服务,主要用于对 ECU 进行解锁,以获得特定操作的权限。

其基本原理如下:
采用种子与密钥式关系。具体过程可分为四个阶段:
请求种子:Tester 向 ECU请求种子。
发送种子:ECU 向 Tester 发送随机种子。
计算密钥:Tester 基于接收到的随机种子计算出对应的 Key 并发送给 Server。
比较密钥:ECU 接受来自 Client 算出来的 Key 并与内部算出的 Key 比较,如果一致则解锁成功,否则解锁不成功。
安全访问的请求和响应报文格式如下:

05
诊断服务汇总
诊断服务很多,分别有各个作用(后续补充详细说明),具体每个服务描述如下:
($10) DiagnosticSessionControl
($11) EcuReset
($14) ClearDiagnosticInformation
($19) ReadDTCInformation
($22) ReadDataByIdentifier
($23) ReadMemoryByAddress
($24) ReadScalingDataByIdentifier
($27) SecurityAccess
($28) CommunicationControl
($2A) ReadDataByPeriodicIdentifier
($2C) DynamicallyDefineDataIdentifier
($2E) WriteDataByIdentifier
($2F) InputOutputControlByIdentifier
($31) RoutineControl
($34) RequestDownload
($35) RequestUpload
($36) TransferData
($37) RequestTransferExit
($38) RequestFileTransfer
($3D) WriteMemoryByAddress
($3E) TesterPresent
($83) AccessTimingParameter
($84) SecuredDataTransmission
($85) ControlDTCSetting
($86) ResponseOnEvent
($87) LinkContro
首页
电话咨询
留言