【ISO14229_UDS_0x85服务详解】

1、0x85服务(控制诊断故障代码设置服务)

  Service description:
  0x85服务(ControlDTCSetting,控制诊断故障代码设置服务)用于停止或重新开始诊断故障代码(DTC)的状态位更新,该服务的请求报文可以用来停止单个服务器或者一组服务器中诊断故障代码状态位的更新。ControlDTCSetting请求报文可用于停止更新单个服务器或一组服务器中的DTC状态位。如果被寻址的服务器不能停止DTC状态位更新,那么它应该否定应答,并表明其原因。
  当0x85(控制诊断故障代码设置服务)服务中子函数值DTCSettingType = off时,服务器将暂停对DTC状态位的任何更新(即冻结当前状态位值),直到该更新状态位的功能再次启用。一旦ControlDTCSetting子函数值DTCSettingType = on 或当前会话不支持ControlDTCSetting服务(例如,会话层超时回到默认会话(defaultSession), ECU复位等),DTC状态位信息将继续更新。如果在当前会话中支持该服务,并且所请求的子功能设置为“开”或“关”,服务器应发送肯定应答。
  如果客户端发送cleardiagnostic information (0x14)服务,ControlDTCSetting服务不应该禁止重置DTC状态位。
  诊断故障代码状态位记录了一些与数字标识符相关的信息,这些数字标识符代表了特定的故障状态。ControlDTCSetting服务只能打开/关闭诊断故障代码状态位的更新,不能关闭故障监控,也不能禁止故障诊断软件策略。将FailSoft 和 FailSafe策略直接链接和耦合到诊断故障码状态位,是不推荐的。

2、请求报文格式

请求报文的格式定义:

字节序号参数值约定字节值
#1ControlDTCSetting Request SIDM0x85
#2sub-function = [ DTCSettingType ]M0x00 - 0xFF
#3
.
.
#n
DTCSettingControlOptionRecord [] = [
               Parameter#1
               .
               .
               Parameter#m ]
U
0x00 – 0xFF
.
.
0x00 – 0xFF

请求报文中子函数参数定义说明:
  请求报文中子函数参数(DTCSettingType)表明了服务端是否应该停止还是开启诊断故障代码状态位的更新(suppressPosRspMsgIndicationBit (bit 7) 在下表中未出现):

Bit 6-0描述约定
0x00ISOSAEReserved
该值由ISO文档保留
M
0x01on
根据正常运行工况,重启更新诊断故障代码的状态位
M
0x02off
停止更新诊断故障代码的状态位
M
0x03 - 0x3FISOSAEReserved
该值由ISO文档保留
M
0x40 - 0x5FvehicleManufacturerSpecific
车辆制造商保留
M
0x60 - 0x7EsystemSupplierSpecific
供应商保留
M
0x7FISOSAEReserved
该值由ISO文档保留
M

请求消息中数据参数定义说明:
  该服务在请求报文中的数据参数定义如下表所示:

定义
DTCSettingControlOptionRecord
当控制DTC状态位的更新时,该参数记录是用户可选的,用于向服务器传输数据(例如,数据可以包含要打开或关闭的DTC列表)。

3、肯定应答报文

肯定应答报文格式定义如下:

字节序号参数名称约定字节值
#1ControlDTCSetting Response SIDM0xC5
#2DTCSettingTypeM0x00 - 0x7F

肯定应答报文数据参数定义:

Definition
DTCSettingType
请求报文中子函数参数值中的bit 6 - 0。

4、支持的否定应答码(NRC_)

  本服务应执行以下否定响应代码。下表记录了每个应答代码发生的情况,如果服务器在错误场景使用了该服务,则应使用如下列出的否定响应。

NRC描述
0x12sub-functionNotSupported
子函数参数不支持时,会发送该NRC
0x13incorrectMessageLengthOrInvalidFormat
请求报文长度不正确时,会发送该NRC
0x22conditionsNotCorrect
当服务器处于关键的正常模式活动时,并且因此无法运行请求诊断故障码控制功能时,会发送该NRC
0x31requestOutOfRange
在DTCSettingControlOptionRecord参数中检测到错误时,会发送该NRC

5、0x85服务(控制诊断故障码设置服务)案例说明

例1:ControlDTCSetting (DTCSettingType = off)
  该案例中没有使用服务功能将附加数据传输到服务端,通过设置subfunction parameter中bit 7为FALSE,要求服务端能够给出应答;
  控制诊断故障码设置服务的请求报文使用案例如下,由客户端发向服务端(ECU):

字节顺序Description字节值
#1ControlDTCSetting Request SID0x85
#2DTCSettingType = off, suppressPosRspMsgIndicationBit = FALSE0x02

  控制诊断故障码设置服务的肯定应答报文见下表,由服务端(ECU)发往客户端:

字节顺序Description字节值
#1ControlDTCSetting Request SID0xC5
#2DTCSettingType = off0x02

**例2:ControlDTCSetting ( DTCSettingType = on)
**
  该案例中没有使用服务功能将附加数据传输到服务端,通过设置subfunction parameter中bit 7为FALSE,要求服务端能够给出应答;
  控制诊断故障码设置服务的请求报文使用案例如下,由客户端发向服务端(ECU):

字节顺序Description字节值
#1ControlDTCSetting Request SID0x85
#2DTCSettingType = on, suppressPosRspMsgIndicationBit = FALSE0x01

  控制诊断故障码设置服务的肯定应答报文见下表,由服务端(ECU)发往客户端:

字节顺序Description字节值
#1ControlDTCSetting Request SID0xC5
#2DTCSettingType = on0x01

返回UDS诊断服务功能单元介绍目录

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
### 回答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协议栈实现了车载控制电子单元的标准化通讯,可简化车辆诊断和维护过程,提高效率和可靠性。同时,相应的规范、文档和源代码也为相关人员提供了方便和支持。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值