诊断协议那些事儿专栏系列文章,本文介绍数据传输服务下的2E服务WriteDataByIdentifier,允许客户端在通过提供的dataidentifier数据标识符指定的内部位置将信息写入服务器。
参考文章:
数据传输功能单元——DID参数定义
22服务-ReadDataByIdentifier
WriteDataByldentiffer服务允许客户端在通过提供的dataidentifier数据标识符指定的内部位置将信息写入服务器。客户端使用WriteDataByldentifier服务将dataRecord写入ECU 服务器。
数据由dataldentifier标识,可能受保护,也可能不受保护。
动态定义的dataldentifer不得与此服务一起使用。
在执行此服务时,满足服务器条件是车辆制造商的责任。该服务的可能用途是∶
-将配置信息编程到服务器中(例如VIN码),
-清除非易失性存储器,
-重置学习值,
-设置选项内容。
注意∶服务器可能会限制或禁止对某些dataldentffer值的写访问(由系统供应商/车辆制造商定义的只读标识符等)。
dataIdentifier-数据标识符,本参数确定了客户端请求写入的服务器数据记录
dataRecord-数据记录,本参数提供了与客户端请求写入的DID相关的数据记录。
注:本服务不适用子功能参数!
NRC | 描述 | 助记符 |
---|---|---|
0x13 | 请求报文的数据长度(或者格式)不符合标准 | IMLOIF |
0x22 | 条件不正确 | CNC |
0x31 | ①请求消息中的DID在服务器中不受支持或DID仅只读(22服务受支持);②在DID后的请求消息中传输的任何数据是无效的; | ROOR |
0x33 | 安全访问被拒绝:若至少有一个DID已受保护,并且服务器未处于解锁状态 | SAD |
0x72 | 一般编程故障:在写入一个存储单元时服务器检测到错误 | GPF |
本示例描述通过一个两字节DID:0xF190进行VIN编写的过程
肯定响应消息流:
以上就是今天要讲的内容,欢迎各位评论,提出宝贵意见,小编也会持续更新,以提供更好的作品。