文章目录
功能简介对信号进行控制,但是怎么知道软件内部有没有真正的起作用应用场景请求和响应1、请求2、子功能3、肯定响应4、否定响应5、NRC优先级
控制参数(IOCP)报文示例UDS中常用 NRC参考
功能简介
2F服务,即 InputOutputControlByIdentifier(按标识符的输入输出控制)服务,该服务用于相对简单的(如静态)输入替换/输出控制,但若必须使用较为复杂的输入替换/输出控制时,则使用 routineControl(例程控制)。
该服务是用于client主动请求server去对相关输入输出信号进行控制。所谓的输入输出控制简而言之就是屏蔽实际的输入输出信号值,取而代之的是client主动以某种特定的控制方式去设置这些信号值。
2F服务会对所需要受控的信号进行编组,同时分配一个特定的DataIdentifier(即DID)来实现1个或多个信号参数的控制。但有时发送2F诊断服务时我们不需要对所有信号进行控制,那么此时我们可以引入controlEnableMask来实现只对特定信号的控制。
对信号进行控制,但是怎么知道软件内部有没有真正的起作用
此时要引入一个新的服务22(ReadDataByIdentifier),该服务可以通过信号所在的DID去获取对应的数值,然后与2F请求设置的数值比较是否相同,进而便可以知道2F控制是否生效。
也就意味着支持2F的DID必然支持22服务,反之则不然。
2F服务功能逻辑:
应用场景
常见场景:
车窗的升降控制;(OutputControl)直连执行器的启动与停止;(OutputControl)车灯的开启与关闭;(OutputControl)ADAS相关功能的配置开启与关闭;(InputControl)LED报警灯的驱动与关闭;(OutputControl)
请求和响应
1、请求
基本格式
归纳起来,诊断的request格式无非以下两种:
即有无sub-function的区别。Parameter可以是DID,可以是输入参数,可以是自定义的值,字节数视具体要求而定。
2、子功能
子功能参数定义(1字节数据):
Bit7:抑制肯定响应消息指示位suppressPosRspMsgIndicationBit
0=False:需要肯定响应1=True:禁止肯定响应 Bit6-0:子功能参数值(0x00~0x7F)
无。
3、肯定响应
基本格式:
要注意,第一个字节是由SID和0x40的和构成。这里的Parameter项是optional的,具体要看协议规定。
4、否定响应
基本格式:
<0x7F> +
看起来比较简单,格式比较固定,只要是Negative Response,第一字节就是0x7F,第二字节照抄原来的SID,第三个字节是错误响应码,指示具体错误响应的原因
5、NRC优先级
在ISO14229-1中未明确定义NRC优先级,可以参考下方优先级顺序: 0x11 > 0x7F > 0x13 > 0x12 > 0x7E > 0x33 > 0x24 > 0x31 > 0x22 > 0x78
NRC 判断优先级顺序:
控制参数(IOCP)
控制参数IOCP是一种控制输入输出的控制模式,有以下4种控制模式:
在使用4个参数时,需注意以下两点内容:
IOCP参数并不是2F服务的子服务,2F服务没有子服务,这点要明确; 在使用00 ,01,02时,诊断请求不需要加入受控参数controlState参数以及enable Mask,只需执行诊断请求 2F + DID +Byte Number,但其诊断回复还是要带有该DID所控制的参数的值; IOCP中的4个参数并不是都需要支持,取决于客户需要,一般而言,00,03都会支持,其余两项可选;
报文示例
示例 1 - 示例 1:“进气门位置”shortTermAdjustment(短期调整) 正受控制的参数是与 dataIdentifier(数据标识符)(0x9B00) 相关的“进气门位置”。 换算: Air Inlet Door Position(进气门位置) [%] = 十进制(十六进制) * 1 [%]
步骤 1: ReadDataByIdentifier(按标识符读取数据) 步骤 2: shortTermAdjustment(短期调整) 步骤 3: ReadDataByIdentifier(按标识符读取数据) 步骤 4: returnControlToECU(将控制权返还给 ECU) 示例 2 – EGR 和 IAC shortTermAdjustment(短期调整)(单个请求内的各个参数或多个参数) 本示例使用了打包的 dataIdentifier(数据标识符) 0x0155 说明单个请求内的各个参数或多个参数。 dataIdentifier 支持下表内的五个参数
案例 1:仅控制 IAC 枢轴位置
案例 2: 仅控制 RPM
案例 3:控制踏板位置 A和 EGR 工作周期
案例 4:将所有参数的控制权返还给 ECU
UDS中常用 NRC
返回 UDS诊断专栏目录及索引
参考
https://zhuanlan.zhihu.com/p/381330120