• UDS诊断系列介绍03-DCM


    前言

    本系列Autosar 诊断入门介绍,会详细介绍诊断相关基础知识,如您对诊断实战有更高需求,可参见诊断实战系列专栏,快速链接:Autosar诊断实战系列导读

    如您MCAL配置,通信,诊断Autosar全栈等实战有更高需求,可以参见AutoSar 实战进阶系列专栏,快速链接:AutoSar实战进阶系列导读

    1. 缩写

    在进行介绍前,先简单罗列几个用到的缩写及全称方便后续理解。

    DCM:Diagnostic Communication Manager
    DEM:Diagnostic Event Manager
    UDS:Unified Diagnostic Services
    SID:Service Identifier
    DID: Data Identifier
    DSL:Diagnostic Session Layer
    DSD:Diagnostic Service Dispatcher
    DSP:Diagnostic Service Processing

    2. 模块概述

    DCM模块主要用来处理,外部测试人员或机载测试系统的诊断请求并将诊断状态信息传输回到诊断工具,如通过读DID获取车辆相关信息,通过读取故障码辅助维修人员进行故障定位等。

    诊断仪与DCM之间的交互示意图如下所示:
    在这里插入图片描述
    DCM实现了OSI七层模型的应用层,其在Autosar架构中位于BSW,通过PduR一组同用的接口进行保温传输,但并不感知底层网络具体的实现类型。

    在这里插入图片描述

    3. 功能实现

    3.1 DSL/DSD/DSP子模块

    DCM从功能逻辑上可进一步划分为DSL、DSD、DSP三个子模块,各子模块之间各自负责请求的接受、分发及处理,具体看:
    DSL:诊断会话层,负责与PduR交互,处理报文的传输,同时监控诊断的状态、请求及响应时序;

    DSD:诊断分发层,负责处理报文的统一校验及报文分发到内外部处理模块;

    DSP:诊断处理层,负责处理并联合用户执行具体的诊断请求。
    在这里插入图片描述

    3.2 Dcm实现逻辑

    以10服务的会话切换请求为例,对Dcm实现逻辑进行介绍:

    1)PduR会先调用Dcm_StartOfReception向Dcm模块请求buffer,确定当前可以用于接收的Buffer的大小用于计算传输层的BlockSize
    返回值类型可能有:
    BUFREQ_OK:连接被接受,可继续传输
    BUFREQ_E_NOT_OK:连接被拒绝;
    BUFREQ_E_OVFL:Buffer不足,接收终止。

    2)调用Dcm_CopyRxData(),用于接收I-PDU数据;

    3)PduR会调用**Dcm_TpRxIndication()**用于通知接收数据是否成功;

    4)Dcm中的DSL将会话请求发送至DSD;

    5)Dcm中的DSD对请求进行校验,校验通过后会进一步分发至DSP,并在DSP中进行处理;

    6)当I-PDU经过Tp模块发送完成后,PduR通过**Dcm_TpTxIndication()**接口可以确认数据发送是否成功。
    在这里插入图片描述

    4. Dcm配置

    后续在实战篇会专门开设基于Vector Davinci配置教程。
    在这里插入图片描述

  • 相关阅读:
    Java高级编程day24【谷】
    Spring Boot整合Jasypt 库实现配置文件和数据库字段敏感数据的加解密
    vscode终端命令报错
    OpenHarmony实战开发-文件上传下载性能提升指导。
    【Java集合框架】20 ——HashTable 类
    动环监控安装及调试过程,动环监控调试是什么
    函数相乘和相除的导数及证明
    动态规划解决股票问题(上)
    大数据课程K20——Spark的SparkSQL概述
    神经网络故障预测模型,神经网络故障预测方法
  • 原文地址:https://blog.csdn.net/initiallizer/article/details/126431553