写到这一篇,常用的诊断服务基本已经写完了,剩下的那些服务大部分主机厂基本不使用,所以就不再对其进行分享,今天就把最后11服务和3E服务强行放在一起介绍一下。当然也有一点相似的是,它们两个功能比较简单,没必要划分多次再次写。
11服务:
功能:控制MCU进行重启,重启分为硬重启和软重启,11服务一般代表软重启,虽然它里面有个子服务是硬件重启,这里需要注意下;硬重启在日常工作中一般代表B+重启。
命令格式(请求&应答):
诊断请求:
#1:11服务,软重启服务
#2 :SubFunction(resetType),重启类型,详情见Table 34。这几种为常见的重启类型服务,下面还有几种不常用的重启类型子服务,详情可查看14229规范文档。
肯定应答:
#1:11服务肯定应答
#2 :SubFunction(resetType),重启类型,同步请求服务的子服务
#3 :powerDownTime,常见的国内主机厂未见过,一般使用。
否定应答:
到这里11服务的介绍就结束了,就是一个软件的重启相当的简单,当然具体的重启到什么程度,要看各个公司的软件定义了,在日常测试工作中,经常会用到初始化使能配置数据。
3E服务:
功能:This service is used to keep one or multiple servers in a diagnostic session other than the defaultSession.这是规范的描述,大概意思就是保持诊断会话处于非默认会话状态。
命令格式(请求&应答):
诊断请求:
#1:3E服务,会话保持服务
#2 :SubFunction(zeroSubFunction),0x00代表正常的会话保持子服务,需要DUT返回肯定应答;0x80代表无需DUT返回肯定应答,依然需要DUT保持在当前会话。如果首次接触可能会有疑问,实际上这里有一个肯定应答抑制响应位,在$28、$85服务中也会见到,大家在遇到的时候一样的处理就好,DUT要执行相应的功能,但是无需应答。
肯定应答:
#1:3E服务肯定应答
#2 :SubFunction(zeroSubFunction),会话保持子服务,同步请求服务的子服务,一般就是00。
否定应答:
好了,到这里就结束了,3E服务只是简单的保持当前会话即可,常用的就是3E 00/3E 80,前者需要DUT返回应答,后续只需要执行相应功能即可,无需返回应答。至此,所有的诊断服务基本结束了。感谢大家的支持,有问题欢迎留言交流。