诊断服务之0x10(DiagnosticSessionControl)

目录

一、概述

二、状态机及常用会话

三、诊断请求与响应

四、0X10服务测试内容


一、概述

0x10服务:诊断会话控制服务。用于在服务器中启用不同的诊断会话。

每个时刻应始终只有一个诊断会话在服务器中处于活动状态。 服务器应在启动时始终启动默认的诊断会话。 如果没有启动其他诊断会话,则只要服务器通电,默认诊断会话就应该运行。

无论客户何时请求新的诊断会 话,服务器都应在新会话的时间在服务器中处于活动状态之前发送DiagnosticSessionControl响应消息 。

二、状态机及常用会话

 上图截自ISO14229,在该图中将诊断会话控制服务分为默认会话和其他会话,包含简单的切换过程。此目的在于提供借鉴,具体各OEM会有各自的定义,具体需参考OEM的诊断调查问卷。

以下介绍基本所有主机厂都会采用的一些诊断会话:

1. 0X01  默认会话(DefaultSession) 

此诊断会话启用服务器中的默认诊断会话,并且不支持任何诊断应用程序超时处理规定(例如不需要TesterPresent服务来保持会话处于活动状态)。 如果除defaultSession以外的任何其他会话在服务器中处于活动状态,并且 defaultSession再次启动,则应遵循以下实施规则(另请参阅上面给出的服务器诊断会话状态图):

服务器在发送DiagnosticSessionControl肯定响应消息时应停止当前的诊断会话,并应在之后启动新请求的诊断会话。 如果服务器发送了DiagnosticSessionControl肯定响应消息,则在诊断会话期间,如果客户端解锁了服务器,则它应该重新锁定服务器。 如果服务器发送带有DiagnosticSessionControl请求服务标识符的否定响应消息,则应继续活动会话。 注意如果使用的数据链路需要初始化步骤,则初始化的服务器应默认启动默认诊断会话。 在初始化步骤之后,不需要将diagnosticSession设置为 defaultSession的DiagnosticSessionControl。

2. 0X02 编程会话(ProgrammingSession):

此诊断会话启用支持服务器内存编程所需的所有诊断服务。 如果服务器在引导软件中运行programmingSession,则只能通过客户端启动的 ECUReset ( 0x11 )服务, sessionType 等 于 defaultSession 的 DiagnosticSessionControl ( 0x10 ) 服 务 或 服 务 器 中 的 会 话 层 超 时(0X3E)服务离开编程会话 。 如果服务器在启动软件中运行,并且它接收到sessionType等于defaultSession 的DiagnosticSessionControl(0x10)服务,或者会话层发生超时并且两种情况都存在有效的应用程序软件,则服务器应重新启动应用程序软件。

3. 0X03 扩展会话 (ExtendedDiagnosticSession):

该会话用于启用支持一些特殊功能的诊断服务,如主机厂一般会让0X85、0X28和0X27服务等在扩展会话下才能支持正常执行。

其他会话:根据主机厂定义。

三、诊断请求与响应

1、诊断请求

诊断请求发送格式:诊断请求ID:诊断数据长度 + 0X10 + 子服务

如:0x761 02 10 01

诊断请求ID(0x761):主机厂定义,一般为0X7** (CAN)

诊断数据长度(02):所需数长度(CAN报文数据8个字节:0x02代表有效字节长度为2,即10 01)

子服务(01):0x01(默认会话)、0x02(编程会话)、0x03(扩展会话) .....

2、诊断响应

诊断响应格式:

正响应:诊断响应ID: 响应数据长度 + 0X50 + 子服务 +P2server_max +P2*server_max

如:0X766 06 50 01 00 32 01 F4

诊断响应ID(0x766):一般也是0X7**大于请求ID

响应数据长度(06):同上

子服务 (01):同上

P2server_max(00 32):由主机厂定义,解析度为1毫秒,00 32既是50毫秒(ms)最大65535ms

P*2server_max(01 F4):由主机厂定义,解析度为10毫秒,01 F4既是5000毫秒(ms)最大655350ms

负响应:诊断响应ID: 响应数据长度 +7F+ 10 + NRC

如:0x766 03 7F 10 12

诊断响应ID(0x766):同上

响应数据长度(03):同上

0X7F:ISO14229规定否定响应均以0x7F 开头

NRC:否定响应码(下图为14229给出,根据主机厂需求可增加其他NRC)

四、0X10服务测试内容

1、寻址方式:

        物理寻址和功能寻址

2、服务切换:

        10服务之间根据状态机的切换

        各子服务下支持的诊断服务切换

3、NRC

        报各种相应NRC的条件测试

4、禁止肯定响应位

以上各测试之间会出现交叉。

  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

博学之~

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

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

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

打赏作者

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

抵扣说明:

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

余额充值