0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

DCM是什么?DCM在AUTOSAR中的位置

冬至子 来源:日拱一卒不期而至 作者:用洗洁精的和尚 2023-07-08 16:41 次阅读

DCM是什么

DCM全称Diagnostic Communication Manager,它位于AUTOSAR基础软件的服务层,它的主要作用是为开发和生产阶段提供与诊断仪交互的诊断服务。

DCM模块可以保证诊断数据流的正确性,管理诊断状态,比如会话状态和安全访问等级状态。DCM会检查某个诊断请求是否被支持,以及在当前的会话状态和安全访问等级下下该诊断请求会不会被执行。

DCM在AUTOSAR中的位置

DCM模块在AUTOSAR架构中的位置如下图:

图片

DCM模块独立于网络总线,也就是说DCM不区分接收到的诊断请求是来自于CAN总线还是LIN总线,抑或是Flexray总线,所有与总线有关的处理都在PDUR模块完成。DCM模块从PDUR接收诊断报文,然后在DCM内部完成检查和处理。在这个过程中DCM将会与其他BSW模块或SWC(通过RTE)进行交互,以获得需要的数据或者执行相应的命令。DCM最终会收集并整合信息,最后发送响应报文给PDUR模块。

DCM包含的子模块

为了合理的分配DCM的各项任务,DCM被划分为如下三个子模块:

  • DSL(Diagnostic Session Layer):处理诊断请求和响应的数据流,监督和管理诊断协议时序,管理会话和安全访问状态。
  • DSD(Diagnostic Service Dispatcher):检查诊断请求的有效性(诊断ID是否支持、会话状态、安全等级),把有效的诊断请求委托给DSP,并追踪诊断请求的处理
  • DSP(Diagnostic Service Processing):检查诊断请求格式以及诊断子服务是否支持,获得需要返回的数据或者执行需要被调用的函数(调用SWC的函数写数据到NVM,调用DEM的服务获得DTC状态)、填充response的数据

DCM各个子模块及其他软件模块之间的交互

下面利用一张图来厘清DCM各个子模块之间的关系,以及与其他软件模块的交互关系。

图片

现在通过诊断仪发送一条配置车辆识别码(VIN)的诊断命令,看一下DCM的整个处理流程。

  1. 首先这条诊断报文(0x2E, 0xF1, 0x90, ......)会经由PDUR传送到DSL,DSL会先确认当前是否有其他诊断请求正在处理,如果没有将会把该诊断请求发送给DSD模块。
  2. DSD模块收到0x2E的诊断报文后,会先判断服务ID 0x2E在不在当前的Service Identifier Table中,如果不在将会拒绝该请求(一般情况下ECU都是支持0x2E服务的,这里只是举例子),如果该服务ID在Service Identifier Table中,接下来要判断当前的诊断会话(从DSL获取)是否为扩展会话,以及当前的安全访问状态是否允许0x2E写入。如果所有检查通过,则会把该诊断请求委托给DSP模块。否则将会拒绝该诊断请求,并通知DSL发送响应的负反馈到PDUR。
  3. DSP收到0x2E的诊断请求后,会先检查请求的格式,比如总的报文长度是否符合定义,以及诊断子服务0xF190是否支持。如果校验通过则调用APP层相应的SWC的函数,把VIN数据写入到NVM。然后准备正响应报文并发送给DSD,DSD再发送给DSL,最后通过PDUR发送到相应到网络总线上。
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • LIN总线
    +关注

    关注

    19

    文章

    100

    浏览量

    27227
  • AUTOSAR
    +关注

    关注

    9

    文章

    329

    浏览量

    21137
  • DCM
    DCM
    +关注

    关注

    0

    文章

    145

    浏览量

    26176
  • ECU软件
    +关注

    关注

    1

    文章

    13

    浏览量

    10281
  • DTC控制
    +关注

    关注

    0

    文章

    18

    浏览量

    1128
收藏 人收藏

    评论

    相关推荐

    如何使用DCM

    有些FPGA学习者,看Xilinx的Datasheet会注意到Xilinx的FPGA没有PLL,其实DCM就是时钟管理单元。
    发表于 07-08 09:48 1227次阅读

    BUCK电路轻载条件下DCM与CCM的差异

    前文BUCK电路CCM与DCM的临界条件是什么?中介绍了DCM与CCM的临界条件。此文,介绍轻载条件下DCM与CCM的差异。
    的头像 发表于 12-12 15:37 1004次阅读
    BUCK电路轻载条件下<b class='flag-5'>DCM</b>与CCM的差异

    转载----DCM使用详解

    输出,但是进入全局时钟网的路径最多只有4个。DCM位置在哪?我们以Spartan3系列为例。FPGA看上去就是一个四方形。最边缘是IO pad了。除去IO pad,内部还是一个四方形。四个角上各趴着
    发表于 09-24 15:04

    DCMFPGA中指的是什么?

    上,BUFG的输出引脚反馈回来接在DCM的反馈时钟脚CLKFB上。另外,FPGA里,只有BUFG的输出引脚接在时钟网络上,所以一般来说你可以不使用DCM,但你一定会使用BUFG。DCM
    发表于 08-31 09:08

    怎么代码实现DCM

    Counter2_DCM isPort(clk:STD_LOGIC;重置:STD_LOGIC; clk0:STD_LOGIC
    发表于 02-27 10:24

    是否可以DCM保持复位期间使用DCM的状态输出

    嗨,我们在这里有一个Spartan6设备,想知道我们是否可以DCM保持复位期间使用DCM的状态输出。启动时,我们希望将DCM保持
    发表于 05-15 08:34

    如何锁定DCM

    你好在DCM中有一个RESET输入引脚。我已将RESET引脚指定为分配RESET = ~LOCKED // DCM锁定,希望这将使RESET从开始起至少保持三个时钟周期。当我使用这种类型的赋值
    发表于 06-06 07:23

    为什么ISE无法将DCM置于设计

    需要放置特定的相对位置表格RPM网格需要的相对坐标(可在FPGA编辑器中看到)显示
    发表于 08-05 09:10

    BUFG到DCM怎么进行连接

    bufg_inst。为了正确操作,它们都应放在同一半上。BUFGCTRL输入由IBUFDS驱动,均在上半部分。 DCM位于下半部分。 但是,Virtex-5用户指南第47页说明:2。 BUFGCTRL
    发表于 06-02 13:49

    什么是CCM和DCM

    内电感磁通从不回到0,功率管闭合时,线圈还有电流流过。DCM,(Discontinuous Conduction Mode)非连续导通模式:开关周期内,电感电流总会会到0,意...
    发表于 10-29 09:03

    rtthread dcm组件dcm_cache_save接口mkdir:/data failed怎样去解决呢

    然后确认了宏#define DCM_DEFAULT_STORAGE_NAME "/user/data/db/dcm" rtconfig.h已经声明,同时业务代码
    发表于 01-27 06:43

    FPGA设计中DCM的原理分析及应用研究

    为了应用FPGA中内嵌的数字时钟管理(DCM)模块建立可靠的系统时钟。首先对DCM的工作原理进行分析,然后根据DCM的工作原理给出了一种DCM动态重配置的设计方法。
    发表于 07-28 17:03 28次下载

    如何使用DCM,DCM使用说明

    DCM主要功能1. 分频倍频:DCM可以将输入时钟进行multiply或者divide,从而得到新的输出时钟。2. 去skew:DCM还可以消除clock的skew,所谓skew就是由于传输引起的同一时钟到达
    发表于 06-05 11:48 7921次阅读
    如何使用<b class='flag-5'>DCM</b>,<b class='flag-5'>DCM</b>使用说明

    赛灵思DCM概述和应用技巧

    DCM:即 Digital Clock Manager 数字时钟管理,关于DCM的作用: 顾名思义DCM的作用就是管理,掌控时钟的专用模块。
    发表于 02-11 11:30 1282次阅读

    使用DCM怎样消除时钟Skew?

    什么叫DCM(Digital Clock Management)? DCM内部是DLL(Delay Lock Loop(?)结构,对时钟偏移量的调节是通过长的延时线形成的。DCM的参数里有一个PHASESHIFT(相移),可以从
    的头像 发表于 07-15 11:28 4828次阅读