• 492查看
  • 0回复

[VCU] UDS 19服务全方面了解,19 01服务

[复制链接]


该用户从未签到

发表于 10-2-2025 19:07:51 | 显示全部楼层 |阅读模式

汽车零部件采购、销售通信录       填写你的培训需求,我们帮你找      招募汽车专业培训老师


当了解什么是DTC状态,什么是快照数据和扩展数据,什么是老化,驾驶循环等概念之后,就可以来详细UDS 19服务。
UDS 19服务全方面了解,19 01服务w1.jpg

19 01子服务

UDS 19服务的01子功能是 “根据状态掩码读取 DTC 数量(reportNumberOfDTCByStatusMask)”,即通过该服务让诊断设备获取ECU中与DTC状态掩码相匹配的故障个数。通过向ECU发送带有特定状态掩码的请求,ECU会根据这个掩码来筛选内部存储的DTC,并返回符合条件的DTC数量,帮助诊断人员快速了解特定类型故障的数量情况。如果某一个故障码的实际状态位为1,并且DTC状态掩码中的相应位也为1,那么就认为该故障码的状态与DTC状态掩码相匹配,其具体逻辑是:如果DTC状态掩码与DTC实际状态进行逻辑“位与”运算后的结果为非零值,那么两者就相匹配,此时则将故障数累加1。根据ISO 14229-1,19 01的请求格式如下:
UDS 19服务全方面了解,19 01服务w2.jpg

常用的DTC状态掩码值有 0x01(表示当前故障)、0x08(表示历史故障)、0x09(表示当前故障和历史故障)等。比如发送的状态掩码为 0x01,就是请求ECU返回当前存在的故障 DTC的数量。ECU收到请求后,ECU的响应报文格式如下:

UDS 19服务全方面了解,19 01服务w3.jpg

其中DTCstatusAvaiabilityMask表示当前ECU支持的状态位,DTCFormatIdentifier表示使用的哪种DTC格式;而DTCCount,需要根据DTC状态掩码和DTC状态匹配情况进行计数统计,其实现代码,如下所示:
/*按照DTC状态掩码统计ECU中与之匹配的DTC数*/uint16 DTC_GetDtcCountByStatusMask(uint8 status_mask)     {uint16 DTC_count = 0;uint8 count;/*遍历所有的DTC*/for(count = 0; count < DTC_CODE_MAX_NUM; count++)    {        /*如果某个DTC的状态掩码和其DTC状态一样,则计数加1*/if((DTC_status_record[count].dtc_status.status_byte & status_mask) != 0)        { DTC_count++;}    }    return DTC_count;}
因此,当ECU进行19 01的正响应,Byte #1和Byte #2是固定的,分别为50(SID+0x40)和01,其余字节实现代码如下所示:
FUNC(void,DCM_CODE) Dcm_ProcessSubFct01(P2VAR(Dcm_MsgContextType,AUTOMATIC,DCM_APPL_DATA) pMsgContext){   uint16 Counter = 0U;   uint8  DTCStatus_Temp;   /*通过19 01服务第3个字节发送状态掩码;*/   DTCStatus_Temp = pMsgContext->reqData[DCM_INDEX_2];    /*按照状态掩码统计ECU中与之匹配的DTC数*/               Counter = DTC_GetDtcCountByStatusMask(DTCStatus_Temp);   /*返回ECU支持的状态位*/             pMsgContext->resData[DCM_INDEX_2] = DTCStatusAvailabilityMask;    /* 如果以下数据按需设置 *//* 0x00 ISO15031-6Format,0x01 ISO14229-1Format,0x02 J1939 Format */   /*返回ECU使用的DTC格式标识符,00:15031-6;01:14229-1;02:J1939*/    pMsgContext->resData[DCM_INDEX_3] = 0x00U;/*返回按照状态掩码统计出来的DTC数*/    pMsgContext->resData[DCM_INDEX_4] = (uint8)(Counter >> 8U);         pMsgContext->resData[DCM_INDEX_5] = (uint8)(Counter);               最后通过一个例子再说明:比如需要了解ECU历史故障的情况,那么会请求:19 01 08;假设有4个DTC,其状态分别为01,08, 09, 0F,则ECU正响应为59 01 FF 00 00 03.为什么是这样?

    从Byte #3为0xFF,说明DTC状态bit0-bit7都支持;

    从Byte #4为0x00,说明使用ISO15031-6所定义的DTC格式;

    从Byte #5和#6为0x0003,因为DTC掩码为0x08,与DTC状态进行位与,则 01&08=0,08&08=1, 09&08=1, 0F&08=1,结果为1则加1,最终计数为3。

以上就是关于19 01服务的简单介绍,以后以别人家的实例数据来结束:

UDS 19服务全方面了解,19 01服务w4.jpg

source: uds 0x19 0x14 服务总结_uds 19服务回复 (本图ECU样件支持的状态掩码为第0位和第3位)



创作不易,欢迎点赞再看收藏关注!

汽车研发交流群,有兴趣的朋友请添加群主:prOmiseyes,备注:公司+职务入群。仅限汽车从业人员


该用户从未签到

发表于 11-3-2025 02:33:00 | 显示全部楼层
UDS 19服务是汽车诊断服务中的一种,用于读取和管理车辆的故障诊断代码(DTC)。关于UDS 19服务全方面的了解,其核心在于理解DTC状态的不同定义。其中,“快照数据”指的是当DTC被触发时保存的数据状态,“扩展数据”则是关于故障发生的进一步详细信息。老化是指汽车零件随使用时间而产生的性能退化。驾驶循环则是指汽车从启动到关闭的整个过程。具体到UDS 19服务的子功能01,即根据状态掩码读取DTC数量。这项服务通过状态掩码筛选出特定的DTC并返回数量。因此在实际操作中,通过特定的掩码与内部存储的DTC比对,当某DTC实际状态位与状态掩码相符时,会被统计计数返回给诊断设备。这一功能有助于诊断人员快速了解特定类型故障的数量情况,从而进行针对性的维修工作。

[内容由汽车工程师之家人工智能总结,欢迎免费使用,见贴尾]
回复 支持 反对

使用道具 举报



该用户从未签到

发表于 11-3-2025 02:33:00 | 显示全部楼层
UDS 19服务详解:

关于UDS 19服务,它主要用于读取和管理车辆的故障诊断代码(DTC)。其中,19 01子服务用于根据状态掩码读取DTC数量。DTC状态是诊断工具了解故障性质的关键,包括当前存在的、历史性的和历史间歇性故障等。快照数据和扩展数据是与某些故障瞬间记录的信息,有助于诊断人员更准确地定位问题。老化则是指车辆或某些部件随时间产生的性能退化。驾驶循环则涉及到车辆使用中的各种工况阶段。

关于19 01子服务,它允许诊断工具根据特定的状态掩码来筛选并获取与状态掩码相匹配的DTC数量。当发送请求时,ECU会响应包含特定状态位的DTC数量。这对于快速了解特定类型的故障数量非常有价值,有助于诊断人员更高效地定位和解决问题。

[内容由汽车工程师之家人工智能总结,欢迎免费使用,见贴尾]
回复 支持 反对

使用道具 举报



该用户从未签到

发表于 11-3-2025 02:33:00 | 显示全部楼层
针对您的需求,以下是对UDS 19服务及其子功能的专业回复:

关于UDS 19服务,它主要涉及到故障诊断与清除。其中,UDS 19 01子功能允许诊断工具根据状态掩码读取与DTC(故障诊断代码)状态相匹配的故障数量。通过这一功能,可以迅速了解特定类型的故障数量情况。了解以下相关概念非常重要:

1. DTC状态:描述了故障的性质,如当前存在、历史存在等。
2. 快照数据和扩展数据:与故障发生时的车辆状态有关的重要数据记录。
3. 老化:指车辆系统随时间产生的性能下降,是评估系统是否需要维护的重要依据。
4. 驾驶循环:指车辆从启动到熄火的一系列操作过程,某些故障可能与特定驾驶循环相关。

UDS 19服务的详细流程与应用需要专业人员深入研究与实操。如您有进一步的需求或疑问,请进一步交流或参考专业文献。

[内容由汽车工程师之家人工智能总结,欢迎免费使用,见贴尾]
回复 支持 反对

使用道具 举报



该用户从未签到

发表于 11-3-2025 02:33:00 | 显示全部楼层
针对您的要求,以下是对UDS 19服务及其子功能的专业回复:

关于UDS 19服务:它是一种用于读取车辆故障诊断信息的重要服务。该服务能够帮助诊断工具获取电子控制单元(ECU)中与特定的故障状态掩码匹配的故障代码数量。在对UDS 19服务中的快照数据、扩展数据以及老化、驾驶循环等概念进行深入了解后,可以更好地理解其工作原理和应用。

关于其中的“根据状态掩码读取DTC数量”功能(即子功能):该功能允许诊断设备根据设定的状态掩码查询并获取特定数量的诊断故障代码(DTC)。具体来说,通过向ECU发送含有状态掩码的请求信号,ECU会根据预设算法,从内部存储的故障代码中筛选出符合状态掩码要求的故障代码数量,从而帮助诊断人员快速了解特定类型故障的数量情况。若某一故障码的实际状态位与所设定的状态掩码相匹配且已处于存储状态,该故障码会被记录在返回的DTC数量中。通过这种操作方式,可有效指导故障诊断及后续维护工作。以上描述是对这一服务的初步介绍。对于实际的工作应用和更多技术细节,需要进一步研究相关的技术标准。

[内容由汽车工程师之家人工智能总结,欢迎免费使用,见贴尾]
回复 支持 反对

使用道具 举报

快速发帖

您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|手机版|小黑屋|Archiver|汽车工程师之家 ( 渝ICP备18012993号-1 )

GMT+8, 19-8-2025 05:47 , Processed in 0.403754 second(s), 40 queries .

Powered by Discuz! X3.5

© 2001-2013 Comsenz Inc.