漫话UDS协议之Service 3D

汽车安全 2年前 (2022) admin
1,014 0 0

漫话UDS协议之Service 3D

漫话UDS协议之Service 3D

今天是2022年8月7日,今儿已经立秋,但是魔都天气又开始奇热无比。周末连续两天早上六点起来,没有逮着机会睡懒觉,感觉这个周末过的有点快,目前就最后一个下午了。所幸还可以有段自己的时间!

老规矩,分享一段喜欢的文字,避免自己成为高知识低文化的工科男:

中年人成熟了,又成熟又疲惫。咬紧牙关扛着社会的焦虑和不安,再吃力也只不过就是眼眸里隐藏着忧郁和惆怅。他们的忧郁和惆怅,一向是社会的一道凝重的风景线,谁叫他们,不,谁叫我们是中年人呢…

Return to today‘s topic!

漫话UDS协议之Service 3D

在车载诊断范畴,车载诊断功能是当外界无法直接获取或者需要花费很大精力才可以获取车载控制器的状态信息时,引入的功能。通过车载诊断功能可以获取车辆控制器相关运行状态(不管是静态的还是动态的数据),也可以通过外部设备(Tester)对车辆控制器进行写入配置。

在以往经验中,主要通过Tester发送

Service 2E + DID

对车辆控制器进行参数配置。其功能实现也是外部Tester发送请求,代码框架数据流走向:

CAN IF -> CAN TP -> PDUR -> DCM -> SWC

其中SWC做具体功能实现。在AUTOSAR框架中,上述流程为Data Link关系。每一家的AUTOSAR解决方案策略就是确保自己方案中的代码配置工具能够确保DCM模块和SWC(通过RTE实现调度)关联正确有效。

漫话UDS协议之Service 3D

关于Service 2E分享文章链接如下:

漫话UDS之Service 2E

本文分享UDS服务为Service 3D,该服务功能较为简单粗暴直接,通过Tester直接对ECU内存地址进行写入功能。因为操作对象是车辆控制器芯片中内存地址,其危险性就很知道考量。特别是车辆引入车载以太网,使得Tester可以远程获取与ECU通信的可能性,因此该服务执行的前提条件需要严谨苛刻些。比如需要进入特定会话模式、特定安全解锁模式。

另外也可以考虑执行该服务的运行权限最小化,比如可以不释放给售后等,仅在开发、下线等场景应用。

漫话UDS协议之Service 3D

Service 3D功能

Service 3D (WriteMemoryByAddress)允许客户端(Tester)在ECU芯片内存上一个或多个连续地址位置写入相关信息。WriteMemoryByAddress请求信息由参数DataRecord[]指定的信息写入参数MemoryAddress和MemorySize指定的存储器位置(ECU芯片掉电非易失内存)。请求格式中,用于规定MemoryAddress和MemorySize参数字节数由AddressAndLengthFormatIdentifier(低位和高位半字节)定义。

注:MemoryAddress和MemorySize参数内的未使用字节数在较高范围地址位填充值为0x00。

DataRecord的格式和定义由OEM特定规范,OEM在确保安全的前提下,该服务可用于如下功能:

-> 清除非易失存储器;

-> 更改校准值。

关于Service 3D,其请求格式在UDS定义如下:

漫话UDS协议之Service 3D

响应格式如下:

漫话UDS协议之Service 3D

其中该服务请求响应中参数含义:

漫话UDS协议之Service 3D

具体含义如下:

addressAndLengthFormatIdentifier

该参数作为后续参数的标注位,通过高半位和低半位对参数进行解析:

-> bit 7 – 4:MemorySize参数的长度;

-> bit 3 – 0:MemoryAddress参数的长度。

漫话UDS协议之Service 3D

MemoryAddress

参数MemoryAddress是要写入数据的车辆控制器内存的起始地址,描述该地址的字节数由addressAndLengthFormatIdentifier的低半字节控制。

memorySize

WriteMemoryByAddress请求消息中的参数MemorySize指定的地址开始写入ECU(Server端)内存的字节数。

dataRecord

该参数是Tester端向车辆控制器内存内地址中写入的具体数据内容。

举一个例子,加深理解:

Tester端发送请求

-> Request:0x3D 0x13 0x20 0x48 0x13 0x03 0x00 0x01 0x8C

-> Response:0x7D 0x13 0x20 0x48 0x13 0x03

漫话UDS协议之Service 3D

其中 Byte 1(0x13)为addressAndLengthFormatIdentifier;

预示着地址长度为3,在本例子中是0x20 0x48 0x13;

memorySize是0x03,为3个字节;

写入的数据DataRecord为0x00 0x01 0x8C。

在ISO 14229 2020版中,关于该服务给出了NRC优先级推荐解决策略,流程如下:

漫话UDS协议之Service 3D

对比以往,有所不同的是ECU需要检查Tester发送该服务的Pre-Condition,一般需要解锁认证,所以对应由NRC 34。

以上是关于Service 3D分享。希望有所帮助。

漫话UDS协议之Service 3D


———————————–
   作者简介 | 穿拖鞋的汉子
    汽车电子工程师
微信公众号:车载诊断技术
    来,每天进步一点点!


往期文章精选:

1、UDS文章汇总与分析
2、关于DoIP文章汇总和思考
3、关于CAN总线TP和车载以太网DoIP汇总和思考
4、《车载诊断技术》2021年诊断测试文章集
5、《车载诊断技术》2021年CANdelaStudio操作指南集
6、《车载诊断技术》2021年CANoe.DiVa操作指南文章集
7、2021年汽车电子常用的数据库简介集
8、诊断数据库ODX文章汇总
9、2021年汽车行业文章汇总集
10、每日闲思汇总


注:公众号平台改变了推送机制,点“赞”、“在看”、添加过“星标”的小伙伴们,会优先接受到我的文章推送,麻烦大家读完文章后,记得点一下“赞”和“在看”


原文始发于微信公众号(车载诊断技术):漫话UDS协议之Service 3D

版权声明:admin 发表于 2022年8月8日 上午7:31。
转载请注明:漫话UDS协议之Service 3D | CTF导航

相关文章

暂无评论

您必须登录才能参与评论!
立即登录
暂无评论...