InputOutputControlByIdentifier (0x2F) 和 RoutineControl (0x31) 这两个诊断服务的用途
和用法。它俩的作用有点类似,都是调用 ECU 内部一些预定义的操作序列,相当于是我们从外部利用诊
断手段控制 ECU 的接口。
InputOutputControlByIdentifier (0x2F)
ECU 简单来说就是一个对输入(sensor)进行计算再产生输出(actuator)的系统。2F 这个服务就是对
ECU 的输入和输出进行控制。这个服务在生产线上会需要使用,比如,在总装阶段,工人需要验证车上
的各种功能是否正常,例如四个车窗的升降是否正常,如果挨个开关去按,那效率很低,如果通过一个
诊断命令就能够观察到车窗升降的情况,效率则高得多。
比如,ECU 接收一个输入信号 A,我们就可以利用 2F 给这个 A 赋个我们需要的值;ECU 对某个执行器
B 进行控制,我们就可以利用 2F 服务再配上某些特定的参数来实现对 B 的控制,例如门控对车窗升降、后视镜折叠等的控制。
2F 服务的 request 由 4 部分组成
1. SID
2. dataIdentifier,用于标识被控