DCM: 诊断通信管理 (Diagnostic Communiction Manager)

DCM: 诊断通信管理 (Diagnostic Communiction Manager)

  • 功能: 主要负责处理诊断数据流管理诊断状态, 包括诊断会话和安全状态,检查诊断服务的请求是否满足条件。
  • 组成:
  • DSL: Diagnosti Session Layer
  • DSD: Diagnostic Service Dispatcher
  • DSP: Diagnostic Service Processing
  • 相互之间的接口如下图:

在这里插入图片描述

Ⅰ DSL

功能: 用于处理诊断数据请求和响应的数据流; 监控和确保诊断请求和响应的时序。

  1. 处理诊断请求
    (1) RDUR调用**Dcm_startOfReception()Dcm_CopyRxData()函数将收到的诊断请求数据放置在DCM模块的Buffer中
    (2) PDUR调用
    Dcm_TpTxConfirmation()**函数通知DCM模块接受新的诊断请求

  1. 处理诊断响应
    (1) 当需要响应诊断请求时,DSL模块嗲用PduR_DcmTransimit()Dcm_CopyTxData()将数据传递到PDUR模块,
    **PduR_DcmTransimit()**传递长度信息、地址信息;
    **Dcm_CopyTxData()传递数据
    (2) 数据传输成功后,PDUR模块通过
    Dcm_TpTxConfirmation()**函数告知DCM数据接受成功。

  1. 管理安全等级
    DSL提供Dcm_GetSecurityLevel()DslInternal_SetSecurityLevel()函数风别获取当前的安全等级和设置安全等级。
    DSL菜单主要是配置诊断帧,包括
    物理寻址
    功能寻址单次通信的最大Buffer以及时间参数,包括回复0x78的时间和防止诊断服务异常,允许0x78的最大次数。

Ⅱ DSD

  1. 检查诊断服务
    • 当DSL接受到新的诊断请求,DSL通过内部接口通知DSD。 DSD调用**Dcm_GetSesCtrlType()Dcm_GetSecurityLevel()**获取当前Session和安全等级;
    • DSD模块会在当前Session的Service Identifier Table检查诊断请求SID是否在其中,如果不在table中,DSD会发送NRC 0x7F; 如果诊断服务支持,但当前Session不支持该自服务, DSD会发送NRC 0x7E;
    • 然后检查当前安全等级是否满足条件,如果当前安全等级不支持该诊断请求,DSD会发送NRC 0x33
    • 最后检查数据的长度。

  1. 汇总响应数据
    当DSP模块完成诊断请求处理后, DSD负责将整理响应数据,并发送到DSL。
    DSD模块将服务标识符(SID)和响应的数据流添加至Dcm_MsgContextType。然后DSD将其传送至缓冲区,并在缓冲区的第一个字节添加SID。
    对于配置耳音,DSD主要是配置所需要实现的服务,以及服务所支持的session以及服务执行的安全等级。

Ⅲ DSP

功能: 实现不同服务的处理,当接受到DS请求处理诊断服务,DSP的处理过程如下

  1. 分析接受的请求信息,调用不同的诊断服务实现函数;
  2. 检查格式以及是否支持所寻址的子功能;
  3. 获取数据或者嗲用DEM、SWC或者其他BSW模块的接口;
  4. 汇总响应数据。
  • DSP配置:
    1. DID的实现,包括DcmDspData用于配置DID的数据类型、数据长度以及接口类型;
  • DcmDspDidInfo用于配置DID的读写功能;DcmDspDids用于汇总DcmDspDidInfoDcmDspData,并且添加DID value
    1. 安全等级的实现,包括种子和密钥的位数、最大的错误访问次数,以及时间参数。
    1. Session的配置, 包括Session的等级,Session是否支持跳转至Boot,以及时间参数P2 ServeMaxP2*ServeMax
  • DCM模块主要实现UDS和OBD诊断服务的实现,但是DCM跟其他模块的交互比较频繁,需要了解诊断服务的机制需要其他模块配置,比如BswM、DEM、EcuM以及SWC等。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值