车载诊断技术 发表于 2022-7-15 22:13:56

解读UDS协议—附录表应用

今天是2022年7月15日,魔都天气晴朗无风,又一个周末,无加班,暗喜。坐在电脑前可以敲击些文字,记录下这周时间的痕迹,也希望以文字为载体,可以在后续的日子里,作为打开记忆闸门的钥匙。
昨天看到新闻说日本前首相遇刺,无意中看到朋友圈以及网上吃瓜者的狂欢。总感觉这种心态要不得,就好像强者出现意外,弱者的暗自庆幸,关键在于把自己摆在弱者的位置上。
2022年注定是一个不平凡的年度,俄乌战争、漂亮国为保证其位置所做的举措、英国首相辞职、日首相事件、疫情的反反复复等等,让有房贷在身的人有莫名的焦虑(自己)。可能是到了这样的年龄,焦虑和希望并存,需要自己去花时间探索。因为焦虑,代表了对自己现在的不满,想折腾下自己。文似看山不喜平,人生亦如此,想要的是芝麻开花步步高。
老规矩,分享一句自己喜欢的话,避免成为高知识低文化的工科男:

年轻时候的我,以为坚持是永不退缩。慢慢的一个年纪才明白,坚持就是犹豫着,退缩着,心猿意马着,一步三停着还在往前走。

警惕自己成为“乌合之众”中的一员,宁愿是寂寞是个人的狂欢。独立、边缘、自信、不妥协!
Return to today‘s topic!
本文主要汇总下UDS(ISO 14229)协议关于附录表的应用,在车载诊断有两个范畴:
1、针对OEM
主要应用场景:
-> 界定产生故障的部件;
-> ECU Software update;
-> ECU配置。
2、针对社会及法规
主要关于以往传统燃油车动力域排放相关标准:
-> 车辆尾气排放监测
-> 满足阈值的外部可检查性
前者应用协议主要为ISO 14229,后者协议主要用ISO 15031。考虑到现阶段电动车所占比重在逐年增加,关于电动车相关国标也在发布使用。最近几年也有另外一个趋势,行业用考虑使用两套协议来开发协议栈,有诸多不便,就打算使用一套协议栈同时兼顾两方面的内容:
使用ISO 27145交融ISO 14229和ISO 15031,像当于使用UDS Service 22/19/14等服务代替0x01 - 0x0A十个服务功能。
回归正题,关于UDS协议附录表,有Annex A-J 10个附录表。
Annex A
主要是关于NRC的规定以及解释。NRC是Negtive Response Code,在如下诊断模型中:

NRC作用是告知测试工程师为何ECU给与否定响应。在附录表中具体定义如下,可参看:

对于每一个NRC对应含义在UDS协议中都有明确定义,OEM在定义需求规范时,UDS协议也有预留为给用户自定义。其中NRC22(ConditionNotCorrect),具体是什么条件,可以按照用户自定义。
对于NRC优先级,UDS协议给出了基本推荐:

而对于具体服务,UDS协议在每个服务格式定义后面,有时候也会有具体NRC优先级推荐:

需要注意的是,不是每一个服务都会有,看情况。对于企业需求规范,可以基于自身需求做详细定义即可。
Annex B
该附录表是关于Service 参数详细定义:

涉及到常规ECU通信和网络管理报文的使能与否。
Annex C
主要是关于DID内容的定义,一个DID表示ECU的一个数据内容,在诊断功能中经常跟Service 22/2E等服务配合使用,在AUTOSAR框架中,Tester发送诊断请求,先到DCM模块,需要获取DID内容时,需要基于RTE关联SWC,形成数据Link关系来获取所需要的数据内容。

对于DID内容,UDS中有如下定义:

主要分为两个内容:
-> 预留了相应区间,给用户自定义;

-> 关于通用的DID,做了声明定义。

需要注意的是在整车级别中,DID数量趋向于不够使用,这个时候可以采取单个DID,定义多重内容,减少DID数据资源。对于单个DID,在RTE端也是一个Runnable,至于这最终反馈什么内容,主要由用户自定义实现。
Annex D
该附录主要是关于DTC相关内容,关于DTC,涉及到不同的协议,对于DTC格式也不尽相同。如下所示:

在OBD关于DTC定义是2个Bytes,UDS协议关于DTC定义3个Bytes长度,特别是在ISO 15031中关于2个Bytes还有具体定义:

在附录表D中,ISO 14229协议定义了诸多内容:
-> groupOfDTC parameter definition;
-> DTCStatusMask and statusOfDTC bit definitions;
-> DTC status bit definitions;
-> DTC severity and class definition;
-> FunctionalGroupIdentifier definition
如果初次接触车载诊断,DTC这点是一个难点,特别是在AUTOSAR框架中,DEM模块关于此处有很多名词,若不理顺,会有很多点不容易理解:
1、DTC Status bit相互转换关系;
2、运行周期、检测周期、检测结果.....相关概念;
3、PreFailed、PrePassed、DTCFaultDetectionCounter等概念;
4、快照信息、扩展类统计数据等记录概念。
这些信息都在该附录表中有详细描述:

Annex E
该附录表主要关于IO Control(Input output control functional unit data-parameter definitions)相关内容定义。

Service 2F详细功能可参看如下链接:
Annex F
该附录表主要讲述Service 31(Routine functional unit data-parameter definitions)相关内容。

定义了Service DID可以应用的范围。关于Service 31具体功能可参看如下链接:
Annex G
主要是关于Upload and download functional unit data-parameter相关定义:

定义了相关参数,具体这边也可参看如下文章:
Annex H
Examples for addressAndLengthFormatIdentifier parameter values,详细如下:

Annex I
该附录表主要讲解Service 27相关内容,定义了ECU从Locked -> Unlocked流程示意图,以及等待时间。

关于Service 27详细内容也可参看如下文章:
Annex J
主要讲述了多Tester(Recommended implementation for multiple client environments)场景:

伴随着车载以太网引入到车载网络中,该类场景会更多机会出现,近端Tester、远程Tester、车内Tester,如何区分优先级,将会对网关有更大的要求。
汇总
整个ISO14229协议定义了26个UDS诊断服务,也通过附录表补充了相关内容。在用户定义自属需求规范时,参看相关内容即可。
页: [1]
查看完整版本: 解读UDS协议—附录表应用