8.13 写入数据 Write DataBy Identifier (2Eh)
此服务允许测试工具将数据写入由数据标识符指定的内部存储单元。ECU应在数据已写入非易失性 存储器后发送该服务的肯定应答。
8.13.1 报文格式
表 64 写入数据服务的请求报文
Byte | Name | Cvt | Value (Hex) |
#1 | RequestServiceIdentifier | M | 2E |
#2 #3 | DataIdentifier[]=[ byte#1(MSB) byte#2(LSB)] | M M | 00-FF 00-FF |
4 … #m+3 | DataRecord[]=[ data#1 … data#m] | M … U | 00-FF … 00-FF |
表 65 写入数据服务的肯定响应
Byte | Name | Cvt | Value (Hex) |
#1 | PositiveResponseServiceID | M | 6E |
#2 #3 | DataIdentifier[]=[ byte#1(MSB) byte#2(LSB)] | M M | 00-FF 00-FF |
8.13.2 支持的否定响应码
表 66 写入数据服务的否定响应码
Hex | Cvt | ErrorText |
13 | M | 报文长度错误 如果报文长度错误,发送此否定响应码。 |
22 | M | 条件不满足 如果ECU的操作条件不满足执行相应动作的要求,发送此否定响应码。 |
31 | M | 请求超出范围 如果ECU不支持请求报文中的数据标识符, 或数据标识符只读, 发送此否定响应 码; |
33 | M | 安全访问拒绝 如果与专用地址相关的数据标识符处于保护状态并且ECU锁定, 发送此否定响应 码。 |
72 | M | 一般编程错误 如果向存储单元写入数据时ECU监测到错误,发送此否定响应码。 |
8.13.3 参数定义
附录B中定义了h事业部强制要求的“数据标识符”。其他与ECU功能相关的“数据标识符”由h事业部 及供应商的诊断工程师共同定义。
8.13.4 执行规定
a)该服务请求报文只允许包含1个ECU支持的数据标识符。
b)执行此服务请求的任意动作时,系统供应商应确保ECU状态满足要求。
8.14 输入输出控制 Input Output Control By Identifier (2Fh)
此服务服务用于代替ECU输入信号的值、电控单元内部参数或控制电子系统的输出值。
8.14.1 报文格式
表 67 输入输出控制服务的请求报文
Byte | Name | Cvt | Value (Hex) |
#1 | RequestServiceIdentifier | M | 2F |
#2 #3 | DataIdentifier=[ byte#1(MSB) byte#2(LSB)] | M M | 00-FF 00-FF |
#4 #5 … #5+(m- 1) | ControlOptionRecord[]=[ inputOutputControlParameter controlState#1 … constrolState#m] | M C1 … C1 | 00-FF 00-FF … 00-FF |
#5+m … #5+m+(r- 1) | ControlEnableMaskRecord[]=[ controlMask#1 … controlMask#r] | C2 …C2 | 00-FF … 00-FF |
C1:此参数的存在取决于data Identifier#1和input Output Control Parameter。 C2:此参数的存在取决于data Identifier#1。 |
表 68 输入输出控制服务的肯定响应
Byte | Name | Cvt | Value (Hex) |
#1 | PositiveResponseServiceID | M | 6F |
#2 #3 | DataIdentifier=[ byte#1(MSB) byte#2(LSB)] | M M | 00-FF 00-FF |
#4 #5 … #5+(m- 1) | ControlStatusRecord[]=[ inputOutputControlParameter controlState#1 … controlState#m] | M C1 …C1 | 00-FF 00-FF … 00-FF |
C1:此参数的存在取决于dataIdentifier#1和inputOutputControlParameter。 |
8.14.2 支持的否定响应码
表 69 输入输出控制服务的否定响应码
Hex | Cvt | ErrorText |
13 | M | 报文长度错误 如果报文长度错误,发送此否定响应码。 |
22 | M | 条件不满足 如果请求输入输出控制的条件不满足,发送此否定响应码 |
31 | M | 如下情况时,发送此否定响应码 1.ECU不支持请求的数据标识符值; 2.输入输出控制参数包含的值无效; 3.controlOptionRecord中的一个或多个可用的controlStates记录无效; |
33 | M | 安全访问拒绝 如果诊断工具请求一个受保护的数据标识符且ECU的安全特性为激活,发送 此否定响应码。 |
8.14.3 参数定义
表 70 输入输出控制类型参数的定义
Hex | Description | Cvt |
00 | 返回控制至ECU returnControlTo ECU 此值指示ECU:诊断工具不再能通过“输入输出本地标识符” (inputOutputLocalIdentifier)控制输入信号,内部参数或输出参数。请求中 controlState字节数: 0 肯定响应中controlState字节数:等于数据标识符对应的数据内容 | M |
01 | 复位至缺省值resetToDefault 此值指示ECU:请求通过“输入输出本地标识符” (inputOutputLocalIdentifier)复 位输入信号,内部参数或输出参数至缺省值。 请求中controlState字节数: 0 肯定响应中controlState字节数:等于数据标识符对应的数据内容 | U |
02 | 冻结当前状态freezeCurrentState 此值指示ECU:请求通过“输入输出本地标识符” (inputOutputLocalIdentifier)冻 结输入信号,内部参数或输出参数的当前状态。 请求中controlState字节数: 0 肯定响应中controlState字节数:等于数据标识符对应的数据内容 | U |
03 | 调整shortTermAdjustment 此值指示ECU:请求通过RAM中的“输入输出本地标识符” (inputOutputLocalIdentifier)调整输入信号,内部参数或输出参数的值至参数 controlOption中的值。(例如: 设置怠速空气控制阀门至一个特定的步骤数值, 设 置阀门的脉宽为特定值/占空比) 请求中controlState字节数:等于数据标识符对应的数据内容 肯定响应中controlState字节数:等于数据标识符对应的数据内容 | M |
8.14.4 执行规定
a)只有经授权的诊断工具才可以使用输入输出控制功能,而且只有在特定的车辆运行条件下该功 能才能被激活。基本条件如下:
1)车辆低于特定速度, 此速度由h事业部及供应商共同制定,并在零部件诊断规范中说明; 2)激活的输入输出并不存在严重的故障条件(根据特定的ECU/系统来定义);
3)系统不存在任何与操作者、驾驶员及乘客安全相关的隐患(根据特定的ECU/系统来定义)。 若上述任何一个条件不满足, ECU应该拒绝通信控制请求报文并发送否定响应码22h。
b)每个激活的输入输出将保持激活状态直到:
1) 执行了ECU的硬件或软件复位;
2) 无论任何原因, ECU由非默认会话模式切换到默认会话模式;
3) 控制时间超过最大安全时间时(S3_server超时),ECU应重新对这些参数进行控制;
4) ECU收到“returnControlToECU”的命令。
c)某些特殊的ECU可能会对该服务做特别的约束。这些需求需在该零部件诊断规范中描述。