UDS诊断ISO-14229分析总结

UDS基本概念

OSI模型

UDS(Unified Diagnostic Services,统一诊断服务)是汽车电子设备中电子控制单元(ECU)环境中的诊断通信协议,在ISO-14229中规定。
ISO-14229在OSI七层模型中的位置如下图:
会话层,应用层
物理层,数据链路层,网络层,传输层

诊断交互方式

诊断是以服务为基础的两方交互数据和命令的过程,一方是Request,另一方是Response,下面是Request和Response的基本格式:
Request基本格式有两种:
SID + Parameter
SID + SubFunction + Parameter

Response基本格式有两种类型:
Positive Response(Request被正确的执行):
(SID+0x40) + Parameter
(SID+0x40) + SubFunction + Parameter

Negative Response(Request执行错误或者不能在规定时间内完成):
0x7F + SID + NRC

Physical Addressing:物理寻址,诊断仪与单独ECU进行诊断交互。
Functional Addressing:功能寻址,诊断仪与总线上所有ECU进行诊断交互,即广播模式。

SID:Service Identity
NRC:Negative Response Code
Note1:功能寻址下在Request中SubFunction的最高位bit7若置0x01,正响应会被抑制,即不回复正响应,负响应正常回复。
Note2:功能寻址下NRC=SNS (serviceNotSupported), NRC=SNSIAS (serviceNotSupportedIn-
ActiveSession), NRC=SFNS (sub-functionNotSupported), NRC=SFNSIAS (sub-functionNotSupportedIn-
ActiveSession) or NRC=ROOR (requestOutOfRange),负响应会被抑制,即不回复这些负响应,正响应正常回复。

诊断NRC

诊断常用NRC如下:

Byte valueNRC definitionMnemonic
0x10generalRejectGR
0x11serviceNotSupportedSNS
0x12subFunctionNotSupportedSFNS
0x13incorrectMessageLengthOrInvalidFormatIMLOIF
0x22conditionsNotCorrectCNC
0x24requestSequenceErrorRSE
0x31requestOutOfRangeROOR
0x33securityAccessDeniedSAD
0x35invalidKeyIK
0x36exceedNumberOfAttemptsENOA
0x37requiredTimeDelayNotExpiredRTDNE
0x72generalProgrammingFailureGPF
0x78requestCorrectlyReceived-ResponsePendingRCRRP
0x7EsubFunctionNotSupportedInActiveSessionSFNSIAS
0x7FserviceNotSupportedInActiveSessionSNSIAS

常用诊断服务

诊断会话控制

DiagnosticSessionControl(0x10)
诊断会话控制服务用于在电控单元所支持的诊断会话中转换当前的会话。一个诊断会话使能电控单元的一个特定诊断服务集以及相关诊断功能。某些诊断服务在特定的会话下会限制使用。
诊断功能上电后处于默认会话,当跳转到其他会话时,会启动S3计时器,计时器超时会自动跳转回默认会话,S3计时期间任何服务请求会更新S3计时器重新计时。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

ECU重启

ECUReset(0x11)
电控单元复位服务用于要求电控单元根据复位类型参数值来有效执行复位操作。电控单元复位服务的肯定应答报文一般在复位操作执行之前发送。
在这里插入图片描述
在这里插入图片描述

安全访问

SecurityAccess(0x27)
由于保密、排放或安全的原因,安全访问服务提供一种方法以便访问受限制的数据或诊断服务。该安全方法采用种子和密钥的算法。种子和密钥都为32位(4字节)。
安全访问服务一般会定义最大尝试访问失败次数和达到最大尝试访问失败次数后的延时时间用于防止被破解。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
诊断仪与ECU安全访问交互过程:

诊断仪 ECU 请求种子 回复伪随机数种子 回复计算得到的密钥 回复密钥匹配结果 诊断仪 ECU

通讯控制

CommunicationControl (0x28)
通讯控制服务用于开启/关闭电控单元对某些报文的发送或接收。
通讯类型一般为应用报文和网络管理报文。
在这里插入图片描述
在这里插入图片描述

诊断仪保持连接

TesterPresent (0x3E)
测试工具保持连接服务用于告知电控单元测试工具仍在线。该服务一般周期性发送,用于重置S3server 计时器并维持当前激活的非默认诊断会话。
诊断处理模块同一时间只能处理一个诊断请求,正在处理当前请求时忽略其它所有诊断请求,只有一个例外情况是功能寻址下的诊断已保持连接服务且开启正响应抑制位,即 0x3E 80。
在这里插入图片描述
在这里插入图片描述

控制DTC设置

ControlDTCSetting (0x85)
控制诊断故障代码设置服务用于停止或重启电控单元设置诊断故障代码。
当接收到子功能参数为“开”的控制诊断故障代码服务请求,会话层时序参数超时(电控单元进入默认会话)或电控单元执行复位操作后,诊断故障代码状态信息应重新开始更新。
在这里插入图片描述
在这里插入图片描述

通过标志读数据

ReadDataByIdentifier (0x22)
根据标识符读取数据服务用于从电控单元存储器中读取由数据标识符所确定的数据记录值。根据电控单元的支持情况,这些数据记录可能包括模拟输入输出信号、数字输入输出信号、内部数据和系统状态信息。
该服务的请求报文支持一次读取多个数据标识符的数据。
在这里插入图片描述
在这里插入图片描述

通过地址读内存

ReadMemoryByAddress (0x23)
根据地址读取存储器服务用于从一个连续的地址区域读取数据。该服务一般用于电控单元开发阶段时读取无法通过其它诊断服务获取的数据。
在这里插入图片描述
在这里插入图片描述

通过标志写数据

WriteDataByIdentifier (0x2E)
根据标识符写入数据服务允许测试工具将数据写入由数据标识符指定的内部存储单元。电控单元应在数据已写入非易失性存储器后发送该服务的肯定应答。
在这里插入图片描述
在这里插入图片描述

通过地址写内存

WriteMemoryByAddress (0x3D)
根据地址写入存储器服务用于向电控单元的一个或多个连续存储单元写入数据。该服务主要用于电控单元开发阶段时写入无法通过其它诊断服务修改的数据。
在这里插入图片描述
在这里插入图片描述

清除诊断信息

ClearDiagnosticInformation (0x14)
清除诊断信息服务用于清除一个或多个电控单元存储器中的诊断信息。与具体诊断故障代码相关的故障信息包括:诊断故障代码、诊断故障代码状态、全局快照、局部快照和扩展数据等。
当接收到测试工具发送的控制诊断故障代码设置服务($85)服务关闭设置诊断故障代码后,接收到测试工具发送的清除诊断信息($14)服务后,电控单元应重新开始设置诊断故障代码。
在这里插入图片描述
在这里插入图片描述

读取诊断信息

ReadDTCInformation (0x19)
读取诊断故障代码信息服务用于从电控单元中读取其存储的诊断故障代码信息。
诊断故障代码长度为两个字节,诊断故障代码状态长度为一个字节。
快照信息是指诊断故障代码设置时记录的一些电控单元此时刻的信息,对故障的修复具有辅助作用。例如全局快照信息可以包括供电电压、里程读数、点火状态和冷却液温度等。
扩展数据信息是一组提供诊断故障代码相关扩展状态信息的数据组,包括故障出现计数器、故障待定计数器、已老去计数器和老化计数器。
读取诊断信息常用子功能如下:

SubFunctionSubFunction definition
0x01根据状态掩码报告诊断故障代码数量
0x02根据状态掩码报告诊断故障代码
0x04根据诊断故障代码报告诊断故障代码快照记录
0x06根据诊断故障代码报告诊断故障代码扩展数据记录
0x0A报告支持的诊断故障代码

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

通过标志输入输出控制

InputOutputControlByIdentifier (0x2F)
根据标识符控制输入输出服务用于替换输入信号的值、电控单元内部参数或控制电子系统的输出值。
在这里插入图片描述
在这里插入图片描述

例程控制

RoutineControl (0x31)
程序控制服务用于启动程序、停止程序和请求程序执行结果。一个程序由2个字节的程序标识符表示。
在这里插入图片描述
在这里插入图片描述

请求下载

RequestDownload (0x34)
请求下载服务用于启动从测试工具到电控单元的数据传输(下载)。当接收到该服务有效的请求报文后,电控单元应擦除请求报文中指定地址范围的存储数据,并在返回肯定应答报文前采取必要的措施,做好接受数据的准备。
在这里插入图片描述
在这里插入图片描述

传输数据

TransferData (0x36)
传输数据服务用于测试工具向电控单元传输数据(下载)。
该服务请求报文包含参数块序号。该序号用于提高在连续多个传输数据请求过程中发生错误的处理能力。
在这里插入图片描述
在这里插入图片描述

请求退出下载

RequestTransferExit (0x37)
该服务用于终止测试工具和电控单元之间的数据传输(下载)。电控单元当收到请求退出传输请求报文后一般进行该模块的完整性检查。
在这里插入图片描述
在这里插入图片描述

  • 17
    点赞
  • 182
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: iso-14229是一项用于汽车电子系统通信的协议,其全称为ISO14229 Unified Diagnostic Services(UDS)on Controller Area Network(CAN)。该协议旨在为车辆的诊断、维护和修复提供标准化的方法。ISO 14229定义了诊断服务和通信的标准化消息格式,包括诊断数据、错误码、故障清除等,以使不同车辆的系统实现得到统一和互操作性。 ISO14229 UDS协议栈是用于实现ISO 14229诊断协议的软件组件。该协议栈的实现可分为物理层和软件层两个部分,其中物理层是指使用CAN总线对车辆的执行单元进行通信,而软件层则是指实现ISO 14229标准的协议堆栈。该协议栈具有标准化、可重用和可配置的特点,可在不同的客户平台上使用。 ISO 14229的文档是对该协议规范和说明,包括协议的基本架构、消息格式、错误码表、会话层和传输层的细节等。该文档是实现ISO 14229协议的必要依据,可用于开发UDS协议栈的开发人员和车辆诊断工程师。 源码.zip则是UDS协议栈的实现源代码,包括物理层和软件层代码。开发人员可根据该源码了解UDS协议栈的实现细节和技术实现,并根据需求进行二次开发。 综上所述,ISO-14229_14229_UDS协议栈_UDS-ISO-14229_ISO14229文档_ISO 14229_源码.zip等组件,是用于实现汽车电子系统诊断的标准化协议,可为车辆的维护和修复提供规范的方法。开发人员和车辆诊断工程师可根据这些组件进行UDS协议栈的开发和实现。 ### 回答2: ISO-14229是用于诊断汽车电子控制单元(ECU)的标准协议。该协议旨在提供一种标准化的方法,让技术人员可以使用相同的工具和流程诊断不同制造商的汽车。 14229 UDS是该标准的通信协议栈。UDS协议栈中定义的通用诊断服务,该服务可用于访问ECU的内部数据和状态。ISO14229文档提供了UDS协议栈的详细规范,以及相关的数据格式和命令集合。 此外,文档和源代码可以帮助工程师实现符合ISO-14229标准的诊断工具或ECU,提高汽车诊断系统的质量和效率。源码.zip则是UDS协议栈的代码包。 总之,ISO-14229标准和UDS协议栈提供了一种标准化的、可靠的汽车诊断协议。它们有助于提高汽车技术人员的工作效率,同时减少汽车诊断工具和软件的开发成本。 ### 回答3: ISO-14229是一种用于汽车电子系统的通讯协议。它定义了诊断通信的规范协议,允许车辆厂商和供应商使用这些规范协议来开发和测试车载电子控制单元。其中,UDS协议栈是实现ISO-14229的关键技术之一,能够为客户端提供远程访问ECEs的可能性。 ISO-14229规定了接口:UDS(Unified Diagnostic Service),用于与电子控制单元(ECU)之间进行通讯。 UDS协议栈则实现了UDS协议的接口,可以自动进行诊断和测试,发生故障时还能产生错误报告。 相应地, ISO14229文档描述了在ISO14229-1文档中定义的UDS协议的特定应用,与ISO15765-2的特定要求相结合。 它还包括了EVITA Light文档中的安全方面。 源码.zip文件则包含了UDS协议栈的源代码,可以在开发与应用中使用,实现对汽车电子控制单元的简便对话操作。 总之,ISO-14229及其UDS协议栈实现了车载控制电子单元的标准化通讯,可简化车辆诊断和维护过程,提高效率和可靠性。同时,相应的规范、文档和源代码也为相关人员提供了方便和支持。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值