诊断数据流,管理诊断状态,尤其诊断会话和安全状态。
诊断服务是否支持,根据诊断状态判断当前的诊断复位是否在当前会话执行。
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 ) : 诊 断服务数据,执行的流程。• 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