诊断数据流,管理诊断状态,尤其诊断会话和安全状态。
诊断服务是否支持,根据诊断状态判断当前的诊断复位是否在当前会话执行。
PDUR-DCM-Application(ID from the DCM)
DCM design组成:
•
High-Level
Design
(HLD
)
:执行
DCM
的
ID
接口
•
Low-Level Design (LLD)
:具体详细设计的接口
•
•
Diagnostic Service Dispatcher (DSD
)
:诊断的数据流,传给诊断执行器,接收请
求
转发给
数
据执行器,或触发数据执行器
->
发送回
应给
PduR
•
Diagnostic Session Layer (DSL
)
:确认数据流包括数据请求和回应,监督管理诊断协议时间,管理诊断状态(
诊断会话和安全状态
)通信状态。
•
DSP
(
Process
)
:
诊
断服务数据,执行的流程。
![](https://i-blog.csdnimg.cn/blog_migrate/59b6d3e9fe0e66c8341da47aaf0c905a.png)
•
Diagnostic Session
Layer(DSL)
:
•
ISO 14229-1 or ISO 15765-3
standard
•
0x3E
逻辑,维持当前会话模式,处理不同诊断协议:
UDS
,
OBD…
,
0x78
加强帧,
client-server
处理
(P2,P2*),
•
将
DSD
回应报文转发到
PduR
•
周期性触发:
tester
可以周期性从
ECU
或
server
请求传输,两种方式:
•
1
)如果
ECU
有任意流程正在执行,且相同的
PDUID
正在周期性发送:当完成前一个流程后,
DSL
将允许此类型的请
求。
•
2
)如果
PDU ID
配置用于独立的协议,它可以立即发送用另一个
PDU ID
,这种不可用于正常的诊断请求
•
分
段回应:如果有一个回应超出配置,分配
buffer size
,
DSL
将切割成多个回应发送。但
DSL
不支持分段请求。
•
事
件发送:
0x86
服务中
DSL
处理开始或停止任意周期的传输数据
•
通知会话改变到其他的依赖模块:若有会话模式改变,
DSL
通知相关的模块。
•
Diagnostic Service Dispatcher (DSD)
:
•
检
查支持诊断
ID
,调节诊断报文:验证请求报文,支持发给
DSP
,不支持回复否定
.DSD
有服务
ID
表格
-
支持服务列表,配置后生成由
DSL
提供。
•
切
断
Positive
响应
[
suppressPosRspMsgIndicationBit
],
如果
Tester
或
client
不想要正相应
•
服
务验证功能:
诊断会话验证
(
否定回复
0x7F)
,
安全访问验证
(
否定回复
0x33),
环境条件验证
(
如
ECU
在运行时,
OBD
功能请求失败
)
•
诊
断报文发给
DSP:
寻找对应功能回调。
•
正响应或负响应报文组装:根据执行的请求响应,基于
DSP
子模块的回应
DSD
子模块组合回应的报
文。如果成功,它将加上
0x40
与请求服务,与从
DSP
收到的数据。如果失败,它将加上负响应
0x7F
与
从
DSP
收到的数
据。
•
启
动回应报文的发送:在成功组合回应报文后,将回应报文发给
DSL
子模块。一旦
DSL
接收
PduR
的确认信息,它将传给
DSD
,然后
DSD
再一次发给
DSP
进行传输确认。
•
Diagnostic Service Processing (DSP):
•
接收服务请求从
DSD
,检查,执行预定的功能,获取数据执行请求功能在
DEM
或
SWC.
一旦完成,它将组合会用发给
DSD
。
•
检查格式
(
否定响应
0x13),
子功能是否支持(否定响应
0x12
),长度检查
.
•
除了回应
ID
,准备其他回应的数据;
•
基于
ISO 14229 standard
.
•
DSL
配置项:
•
Buffer of
Tx
and Rx
•
PduR
of
Tx
and Rx
•
协议类型和详细参数配置
•
所
有的时间参数配置
•
DSD
配置项
:
•
protocol service
table
配置
•
UDS
协议服务
ID
•
每个服务支持的子功能
•
诊
断会话模式
•
安
全访问等级
•
DSP
配置项:
•
服
务的参数配置
•
服
务
ID
,子功能,数据参数,
DID
,
DTC