【车载开发系列】UDS诊断---写入数据($0x2E)

【车载开发系列】UDS诊断—写入数据($0x2E)

一.概念定义

  1. 根据ISO14119-1标准中所述,诊断服务2E主要用于Client向Server(ECU)通过DID的方式写入相关的数据。
  2. 2E服务作为诊断服务中的基础服务,可以简单理解为就是一个用于写入ECU数据的外部接口,可实时获取软件内部的相关的状态信息。
  3. WriteDataByIdentifier按标识符写数据
    该服务不含有sub-function的参数
  4. 服务器可以限制或禁止对某些 DID 值(由供应商/主车厂 定义为只读的 DID)的写访问以提高自身的安全性。
  5. 0x2C(DynamicallyDefineDataIdentifier)服务不得与此服务一起使用

二.应用场景

  1. 在整车下线的过程中写入相关配置信息,如常见的VIN码;
  2. 清除NVM;
  3. 重置已写入到Flash中的数据;
  4. 其他需要写入内部相关参数的场合;
    内部测试时需要写入相关测试用状态和数据的场合

三.报文格式

1)请求报文

dataIdentifler(数据标识符DID)是客户端请求消息,它的大小为2字节,例如:VIN码(0xF190,通常该数值用于表示车辆唯一标识的数据标识符)。一般常用标识符如下(具体根据整车厂的诊断需求文档来定):

  1. 版本信息相关
    软件版本号(数据内容包含如:软件版本,时间,修订次数等信息),硬件版本号以及FBL版本号。
  2. 内部数据相关
    车辆总里程,ECU供电电压,车辆VIN码(每辆车都有它唯一标识符,即VIN码)等。
  3. 诊断相关
    当前诊断会话(和诊断相关的,通过读取该DID信息,ECU返回当前诊断处于哪个会话模式)
  4. IO Control标识符
    属于0x2E服务,比如通过该服务控制远光灯打开,也需要DID用来标识下该功能。
  5. Routine Control标识符
    是0x31例行控制服务,例如在通过诊断FBL更新程序之前,需要检查下更新环境是否满足,如:车速是否低于2km/h,电源电压是否满足刷写要求等。
    在这里插入图片描述

2)肯定响应

在这里插入图片描述

3)否定响应

在这里插入图片描述

HexDescription描述
0x13incorrectMessageLengthOrInvalidFormat报文长度错误
0x31requestOutOfRange请求超出范围
0x33securityAccessDenied安全访问拒绝
0x72generalProgrammingFailure一般编程错误

四.特记事项

  1. 允许测试工具将数据写入由数据标识符指定的内部存储单元。
  2. 该服务请求报文只允许包含1个ECU支持的数据标识符。
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

进击的横打

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值