10服务-DiagnosticSessionControl

Posted 诊断协议那些事儿

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了10服务-DiagnosticSessionControl相关的知识,希望对你有一定的参考价值。

诊断协议那些事儿

诊断协议那些事儿专栏系列文章,本文介绍诊断和通讯管理功能单元下的10服务Session State Machine (会话状态机管理)。


文章目录


一、10服务-DiagnosticSessionControl

该服务用于启动服务器不同的会话状态。不同的会话状态具有一组特定的诊断服务和/或功能、以及不同的定时参数 。标准定义了默认会话和非默认会话下允许的服务,如下图。

下图为某车厂诊断会话支持的服务情况,供参考(各个需求存在差异)。

其本质为描述了不同服务所需要的权限,如下图默认会话下只支持22服务,用于读取车身相关信息(VIN、软件版本号等);编程会话(Bootloader模式下),实现ECU软件更新,相对增加2E服务;扩展会话下支持的服务相对更多一些,除了22服务,还支持2E、2F服务等。

在服务器中始终有且只有一个诊断会话处于活跃状态。服务器上电时应初始启动Default Session,如果没有启动其他诊断会话,则只要服务器上电,Default Session将一直在运行。详见诊断会话模式的状态转移图

DS-默认会话;PRGS-编程会话;EXTDS-扩展会话(详细见下文diagnosticSessionType)
a:服务器上电或复位
b:服务器接收到DS_ = DS的DSC请求报文
c:服务器接收到DS_ = PRGS或EXTDS的DSC请求报文,依据DS_进入编程模式或扩展模式
d:服务器接收到DS_ = DS的DSC请求报文,或者S3Server超时,服务器的安全状态变为锁定状态
e:服务器接收到DS_ = PRGS的DSC请求报文
f:服务器接收到DS_ = EXTDS的DSC请求报文

二、请求格式

字节参数名称Cvt字节值助记符
#1DiagnosticSessionControl Request SIDM0x10DSC
#2sub-function = [diagnosticSessionType]M0x00-0xFFLEV_DS_

diagnosticSessionType

诊断会话控制服务使用子功能参数diagnosticSessionType来选择服务器的具体行为,可能的诊断会话的解释和使用详细内容见下图:

注:未显示SuppressPosRspMsgIndicationBit(抑制肯定响应消息指示位)——bit7

三、肯定响应格式

肯定响应消息数据参数定义

定义
diagnosticSessionType(诊断会话类型):该参数是对来自请求消息的子功能参数第6-0位的回显
SessionParmeterRecord(会话参数记录):该参数记录包含服务器报告的会话具体参数值

SessionParmeterRecord


会话参数记录内容定义·

参数说明字节数分辨率最小值最大值
P2 Server_max已激活的诊断会话期间,服务器支持的默认P2 Server_max计时21ms0ms65535ms
P2 Star Server_max已激活的诊断会话期间,服务器支持的强化(NRC 0x78)P2 Server_max计时210ms0ms655350ms

四、否定响应格式

1.支持的否定响应码

NRC描述助记符
0x12不支持请求服务的子功能SFNS
0x13请求报文的数据长度(或者格式)不符合标准IMLOIF
0x22条件不满足CNC

五、消息流示例

本消息流显示的是如何启用服务器中的编程会话,客户端将SPRMIB设置为FALSE来请求响应消息,假定P2 Server_max为50ms,P2 Star Server_max为5000ms


总结

以上就是今天要讲的内容,欢迎各位评论,提出宝贵意见,小编也会持续更新,以提供更好的作品。

以上是关于10服务-DiagnosticSessionControl的主要内容,如果未能解决你的问题,请参考以下文章

启动win10壁纸保护服务的启动参数是啥

win10怎么搭建web服务器 win10搭建web服务器的方法

win10系统怎么设置ip代理服务器上网

10.32/10.33 rsync通过服务同步 10.34 linux系统日志 10.35 scre

Nginx 静态文件服务 10Gbps 服务器的性能问题

hyperf实现简单的rpc服务(win10 + docker+consul)