UDS诊断系列之十一 输入输出控制(2F)服务 上

应粉丝要求,先来更新输入输出控制(2F)服务的内容。
输入输出控制(2F)服务顾名思义就是对输入和输出内容进行控制,这里的输入和输出一般指的是控制器的输入和输出引脚或者设备,例如仪表的各种灯就是仪表控制器的输出,而车内的各种灯光开关则是车身控制器的输入。

一、主要功能和响应规则描述

输入输出控制比较常用的场景就是用来进行一些下线检测,前面提到仪表的各种警告灯,在下线时如果想检查是否能够点亮,不太可能去制造相关的故障或状态来让仪表的灯点亮,所以输入输出控制这个服务就可以用在这里。通过控制仪表控制器的输出变量,来直接控制点亮相关的警告灯,来达到检测目的。
注意这里的控制是强制的,也就是说通过输入输出控制这个服务,可以直接改变原有的状态,不管原来是何种状态,都强制转换到服务所请求的状态,例如请求打开远光灯,那么请求之后无论车内的开关什么状态,远光灯都是打开状态,但是要注意这个控制的值应该在符合其正常或安全的范围内才可以被执行。同时,这里的控制也是临时的,一般输入输出控制仅在扩展会话下支持,且需要先通过安全访问才可以执行,也就是说,一旦按照诊断会话服务所介绍的跳转到了默认会话,那么所有被改变的内容都会恢复到被控制之前的状态。
输入输出控制和后面要说的例程控制(31)服务是不同的,输入输出控制服务仅控制简单的输入和输出状态,而复杂的输入和输出如需要控制发送某个协议信息并且需要进行编码的时候,则需要例程控制服务来进行。
输入输出控制服务会通过一个数据ID以及ID所代表的数据参数来表示其所控制的一个或一类输入或输出内容,这里的数据ID指的是两个字节的ID值,在22读取DID服务的时候会详细说明,假设看到这个服务内容的读者已了解其概念。ID里的数据可以是一个参数(控制一个输入或输出),也可以是多个参数(控制多个输入或输出),当包含多个参数的时候,如果OEM选择支持Control Mask的功能,那么需要一个Control Mask参数来表明本次控制的是ID所包含的参数里的哪一个。这个Mask是按位来排列的,举个例子,mask的第一个字节的最左边也就是最高位代表本次所控制的第一个参数,左边第二个位代表第二个参数,以此类推,每个位表示一个参数,不够一个字节后面用0补齐。Control Mask里的每个位“0”表示本次请求不对该位所对应的参数进行控制,“1”表示本次控制需要控制该位对应的参数。这里写了这么一大段话,着实是比较难理解,后来又不舍得删,下篇会有单独的章节将这个mask的内容。
当控制请求被成功执行或已经到了目标值,那么服务端(ECU)需要给出肯定响应,并且如果请求的控制参数是returnControlToECU的话,即使当前已经是由ECU自己控制被请求的参数了,也应该回肯定响应。这里需要注意的点是第一句话里的被成功执行或者已经到了目标值,为什么是这两种情况呢,因为有些输出控制是没有办法立即达到目标值的,比如发动机转速,如果控制它从当前的800转/分到3000转/分,在响应的时候只能说是开始控制了,但还没达到目标值,而有些控制是可以立即实现的,如开关输入以及灯光控制。

二、应用数据格式

1.请求报文

输入输出控制服务的请求报文格式相对于前面的几个服务更复杂一些,首先第一个字节一样是请求的服务ID;其次第二和第三个字节是数据ID,可以缩写为DID,它用来标记数据的编号,这里可以理解为用来标记后面要控制的一个或多个参数;紧接着后面是controlOptionRecord参数,这里面包含两部分内容,第一部分也就是整个请求的第四个字节inputOutputControlParameter表示控制参数,具体哪些见后面单独的章节,第二部分是controlState,也就是前面所说的要控制的状态参数,这里是1到m个,也就是说可以控制一个或多个,取决于DID如何定义,请求里是否包含这个参数参照后面inputOutputControlParameter章节;最后呢就是这个controlMask了,具体格式后面会有单独章节详细说明。
在这里插入图片描述

2.肯定响应报文

肯定响应报文和请求报文格式少了一个参数,第一个字节是肯定响应的服务ID,后面紧跟着DID和inputOutputControlParameter,然后是控制状态,注意没有controlMask参数。需要特殊说明的是controlState参数在这里需要填的数据是当前的状态,如果请求是控制车灯打开,那么这里的状态应该是打开,但如果请求是控制发动机转速,那么这里有可能并不是目标转速,因为控制仅仅是开始执行了,但到目标转速需要时间,而诊断响应的时间要求是50ms,没办法这么短时间一下子变换这么多。另外controlState是否需要ISO标准里说是参考附录E1,实际E1是要求都包含的。
在这里插入图片描述
内容太多,分两章说明,敬请谅解。
UDS诊断系列之十一 输入输出控制(2F)服务 下

UDS系列汇总链接

  • 4
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

ChenglimK

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

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

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

打赏作者

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

抵扣说明:

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

余额充值