[行业规范] 漫谈UDS协议之Service 23

[复制链接]
查看905 | 回复0 | 2022-8-7 16:37:24 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册 |

x
今天是2022年8月初,说要来的台风没有来,温度倒是降低了不少,没有先前那个酷热难耐。昨天加了一天班,今天才能得空静下心坐在电脑前,敲击些文字,梳理下思绪!
老规矩,分享一段自己喜欢的文字,避免成为高知识低文化的工科男:

别把自己过得像个落难者,忙着告诉所有人你有多不幸,成长本是孤立无援得过程,自己够努力,全世界都会对你和颜悦色。杜绝无用的矫情,不沉醉于自我感动式的付出。不去追逐他人的接纳,也不去拒绝他人的排斥。

Return to today‘s topic!
plum-blossoms-7129237.jpg
公众号以前写过UDS协议中一些常用到的诊断服务:
详细见公众号:车载诊断技术
接下来将以往一些不常用的诊断服务做一系列汇总,本文主要分享Service 23主要应用场景和作用。
Service 23(ReadMemoryByAddress)服务允许客户端(Tester)通过提供的起始地址和要读取的内存大小,向Server端请求内存数据。如上是UDS协议关于该服务的准确介绍。
对比Service 22,Service 23是直接从ECU芯片内存直接硬读取存储的数据内容,有点“简单、粗暴”的意思。在请求格式中会定义起始地址和要读取数据的大小长度。在请求格式中定义的内容直接将读取。
而Service 22,是在ECU诊断需求规范中,定义其DID,一个DID对应一个需要读取的参数值。在AUTOSAR软件框架中,DID对应的R-Port在DCM端,而对应的DID参数信息提供端P-Port由提供。R-Port和P-Port的Link链路,通过RTE实现。在这个功能实现中,会定义具体DID的Runnable和Event,其中Event是该DID API接口参数触发事件。
该服务对应地址存储的信息,原则上是在诊断需求规范中定义,比如ECU系统状态值、ECU运行数据、软件Counter值等,特别是一些内部记录数据值,可以帮助软件开发人员快速确定发生故障的模块,作为一个维测得数据存在。
关于Service 23(ReadMemoryByAddress)请求消息用于请求由参数MemoryAddress和MemorySize标识的Server端(ECU)的内存数据。用于MemoryAddress和MemorySize参数的字节数由AddressAndLengthFormatIdentifier(低位和高位半子节)定义。具体可参看如下图所示。
也可以使用固定的AddressAndLengthFormatIdentifier,并且memoryAddress或MemorySize参数内未使用字节在较高范围填充为0x00.
注:在存储区重叠的情况下,可以使用额外的存储器地址字节作为存储器标识符
road-7349232.jpg
服务器通过ReadMemoryByAddress肯定响应消息发送数据记录值。DataRecord参数的格式和定义应该车辆主机厂制定,如果服务器支持,DataRecord参数可以包含输入和输出信号、数字输入和输出,内部数据和系统状态信息。
该服务请求和响应格式如下:

e5493f28-595d-401d-862e-eed9bca8cb5d.png
28d09bb3-09f7-4e30-a2d7-4c01ecc7d4e1.png
  
其中UDS协议中给了关于Service 23否定响应NRC处理策略,如下:

e3875221-8a12-4ac3-9f25-ba2112b95617.png

AddressAndLengthFormatIdentifier:
4f940c16-854f-4053-a7e1-ad1e70e2beb7.png
该参数是一个单字节值,每个半字节分别进行编码:
bit 4-7:MemorySize参数的长度(字节数);
bit 0-3:MemoryAddress参数的长度。
ocean-6603623.jpg
MemoryAddress:
参数MemoryAddress是从中检索数据的Server端内存的起始地址,用于该地址的字节数由AddressAndLengthFormatIdentifier的低半字节表示,MemoryAddress参数中的字节始终是Server端引用地址的最低有效字节,地址的最高有效字节可以作为存储器标识符。
MemorySize
ReadMemoryByAddress请求消息中的参数MemorySize指定要从Server端内存中有MemoryAddress指定的地址开始读取字节数。

鉴于该服务的功能较为直接粗暴,一般有如下限制条件:

执行该服务需要一定的权限,比如需要进入OEM特定的会话模式,或者需要进行ECU解锁(Service 27)才可以执行;

在流程上也可以有限制,比如在OEM整车级研发以及量产线、下线等场景才使用该功能,对售后等不开放权限。

design-3904351.jpg
如上是关于Service 23功能介绍,下篇介绍对应的基于内存写数据的Service 3D.


"您的鼓励,是我前进的动力"
还没有人打赏,支持一下
车研会员,开心每一天!
您需要登录后才可以回帖 登录 | 立即注册 |

本版积分规则