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 | 字节值 | 助记符 |
---|---|---|---|---|
#1 | DiagnosticSessionControl Request SID | M | 0x10 | DSC |
#2 | sub-function = [diagnosticSessionType] | M | 0x00-0xFF | LEV_DS_ |
diagnosticSessionType
诊断会话控制服务使用子功能参数diagnosticSessionType来选择服务器的具体行为,可能的诊断会话的解释和使用详细内容见下图:
注:未显示SuppressPosRspMsgIndicationBit(抑制肯定响应消息指示位)——bit7
三、肯定响应格式
肯定响应消息数据参数定义
定义 |
---|
diagnosticSessionType(诊断会话类型):该参数是对来自请求消息的子功能参数第6-0位的回显 |
SessionParmeterRecord(会话参数记录):该参数记录包含服务器报告的会话具体参数值 |
SessionParmeterRecord
会话参数记录内容定义·
参数 | 说明 | 字节数 | 分辨率 | 最小值 | 最大值 |
---|---|---|---|---|---|
P2 Server_max | 已激活的诊断会话期间,服务器支持的默认P2 Server_max计时 | 2 | 1ms | 0ms | 65535ms |
P2 Star Server_max | 已激活的诊断会话期间,服务器支持的强化(NRC 0x78)P2 Server_max计时 | 2 | 10ms | 0ms | 655350ms |
四、否定响应格式
1.支持的否定响应码
NRC | 描述 | 助记符 |
---|---|---|
0x12 | 不支持请求服务的子功能 | SFNS |
0x13 | 请求报文的数据长度(或者格式)不符合标准 | IMLOIF |
0x22 | 条件不满足 | CNC |
五、消息流示例
本消息流显示的是如何启用服务器中的编程会话,客户端将SPRMIB设置为FALSE来请求响应消息,假定P2 Server_max为50ms,P2 Star Server_max为5000ms
总结
以上就是今天要讲的内容,欢迎各位评论,提出宝贵意见,小编也会持续更新,以提供更好的作品。
以上是关于10服务-DiagnosticSessionControl的主要内容,如果未能解决你的问题,请参考以下文章
win10怎么搭建web服务器 win10搭建web服务器的方法