Autosar Dcm模块之Vector Configurator Pro配置(通用配置)

本文介绍如何使用Vector Configurator Pro配置Autosar Dcm模块。详细解释了DcmGeneral容器中的各项配置参数,包括Dcm模块的版本、安全级别变更通知等功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

背景

上篇文章简单介绍了Autosar Dcm模块,接下来我们直接切入主题,如何通过Vector Configurator Pro工具配置Dcm模块,并实现客户的需求。


Dcm模块配置

1.Dcm模块总体配置

上图是Dcm模块整体配置框图,其中包括以下五个配置容器:

DcmDsd:该容器配置诊断服务调度的所有参数

DcmDsl:该容器配置诊断会话层的所有参数

DcmDsp:该容器配置诊断服务处理的所有参数

DcmGeneral: 该容器配置Dcm模块的通用参数

DcmPageBufferCfg:该容器配置Dcm模块的缓存区参数

2.Dcm通用配置(DcmGeneral)

上图是Dcm模块通用配置容器参数,以下是对这些参数的详细介绍。

DcmBswApiVersion:指定BSW堆栈API的AUTOSAR版本。若参数为空,使用V4.XX.XX AUTOSAR版本

DcmCalibrationOfObdIdsEnabled:是否支持标准OBD ID。

DcmCalibrationOfObdIdsMemoryType:标准OBD ID数据的存储类型。VOLATILE:生成RAM表。NON_VOLATILE:生成const区域表。默认使用NON_VOLATILE类型。

DcmDtrDataProvisionViaDemEnabled:Dem是否处理OBD MID DTR数据采集。若设置enable,Dcm请求OBD MID DTR(Sid 0x06 or Did 0xF600)时与Dem数据交互;若设置disable,Dcm使用BSWMD文件定义OBD MID配置来获取DTR数据。

DcmDefensiveBehaviorEnabled:指定Dcm是都监控API输入输出和内部行为,不通知DET BSW。若设置enable,Dcm监控代码的正常功能,避免不可预知情况(空指针、越界、不可预期的参数)。

DcmDemApiVersion:指定Dem API的AOTOSAR版本。若参数为空,使用V4.03.00 AUTOSAR版本

DcmDevErrorDetect:指定Dcm是都监控API输入输出和内部行为,并通知DET BSW。若设置enable,Dcm监控代码的正常功能,避免不可预知情况(空指针、越界、不可预期的参数)。

DcmDspDataDefaultEndianness:DSP层数据默认字节序

DcmFinalResponseToFblEnabled:是否支持FBL最终的响应传输。若设置enable,Dcm调用“Dcm_GetProgConditions”函数决定是否发送最终响应。

DcmForeignDiagnosticRequestDetectionEnabled:指定是否监听其他ECU的诊断请求。若设置enable,Dcm花费资源来处理这些诊断请求。

DcmKeepAliveTime:指定处理每个诊断请求后 Dcm 将保持 ComM 中的 Diag-Active 用户注册的时间(以秒为单位)。

DcmMainFunctionWorkerTaskTime:配置诊断服务处理任务的周期时间。若设置为空,同时DcmSplitTasksEnabled为true,诊断服务处理任务周期会直接调用DcmTaskTime时间。

DcmMaxNumberIterationsPerTask:每个Dcm_MainFunction任务的最大迭代次数。若设置为空,不限制次数;若设置大于0,对于比较复杂的诊断服务会造成运行时间增加。

DcmRequestManufacturerNotificationEnabled:为制造商提供诊断服务通知功能。若设置为enable,Dcm接收到诊断请求后会先处理配置函数。必须配置DcmDslServiceRequestManufacturerNotification参数。

DcmRequestSupplierNotificationEnabled:为供应商提供诊断服务通知功能。若设置为enable,Dcm接收到诊断请求后会先处理配置函数。同时必须配置DcmDslServiceRequestSupplierNotification参数。

DcmResetToFblAfterSessionFinalResposeEnabled:配置诊断会话切换肯定响应之前还是之后复位带FBL。若设置enable,Dcm会先回复肯定响应,再复位到FBL;若设置为disable,Dcm会先根据配置跳转到FBL,之后FBL会回复肯定响应。

DcmRespondAllRequest:是否处理接收到的安全诊断请求。若设置enable,Dcm会接收并处理所有的诊断请求;若设置为disable,Dcm会接收所有请求,但是不处理[0x40,0x7F]U[0xC0, 0xFF]范围内的诊断请求。

DcmSafeBswChecks:是否配置SafeBSW模式。若设置enable,Dcm不支持某些特定的功能(待深入理解);反之Dcm则支持全功能。

DcmSecurityLevelChangeNotificationEnabled:安全等级改变时是否通知SWC。若设置enable,Dcm会在安全等级发生改变时调用RTE的接口。

DcmSplitTasksEnabled:main-function任务是否分裂成worker+timer任务。若设置enable,Dcm会由Dcm_MainFunctionTimer和Dcm_MainFunctionWorker组成;反之Dcm只有一个Dcm_MainFunction任务。

DcmStateRecoveryAfterResetEnabled:是否通过重置ECU保留一些Dcm内部状态。若设置enable,Dcm在Dcm_Init之后读取信息或者默认信息。反之Dcm不恢复信息直接启动。

DcmSupportedIDCalculationSuppressionEnabled:是否抑制SupportedIDs的计算(待深入理解)。

DcmSuppressResponseOnCanTpFuncMixedAddrRequests:是否抑制由MixedAddressing CanTp连接的功能寻址的任何响应。

DcmTaskTime:Dcm主任务的周期时间。

DcmUserConfigFile:用户配置文件的路径。

DcmVersionInfoApi:是否提供版本信息。若设置enable,Dcm提供“Dcm_GetVersionInfo”API接口来读取版本信息。

DcmVirtualRequestEnabled:是否支持虚拟请求。

总结

以上是Dcm模块通用容器配置,我们仅仅用到其中一部分配置,很多配置还需具体实践。

### AutoSAR DCM模块概述 AutoSAR(AUTomotive Open System ARchitecture)是一个开放的标准软件架构,旨在提高汽车电子控制单元(ECU)的开发效率和灵活性。DCM(Diagnostic Communication Manager)作为AutoSAR基础软件的一部分,在车辆诊断通信中扮演着重要角色。 #### 1. DCM模块的核心功能 DCM的主要职责是管理和协调车辆内部以及外部设备之间的诊断服务请求。它支持多种标准协议,如UDS(Unified Diagnostic Services),并提供了一个统一的接口来处理来自不同网络层的服务调用[^2]。具体来说: - **诊断消息路由**:负责将接收到的诊断请求转发到相应的应用层或基础软件组件。 - **状态管理**:能够根据当前系统的运行模式调整其行为,比如切换至“静默”状态以减少不必要的数据传输。 - **资源分配与优先级设定**:当多个诊断会话并发执行时,合理安排各任务的时间片及其访问权限。 #### 2. DCM与其他模块的关系 为了更好地理解DCM的工作机制,有必要探讨一下它同其他几个关键模块间的协作方式: ##### (1)与PDU Router (PduR) 的互动 两者共同完成从物理信道接收原始帧直至将其解析成特定格式的过程;反之亦然——即由高层下达指令后再经封装发送出去[^2]。 ##### (2)跟Communication Management (ComM) 协作 这里提到过,Dcm能依据实际情况告知ComM自己处于活跃还是休眠阶段,从而影响后者做出是否允许继续交换信息之类的决定;另外还具备响应对方提出的开启或者关闭整个链路的能力[^3]. ##### (3)联系Defect & Event Memory(Dem) 每当检测到某个潜在错误条件满足预定义阈值之后就会触发相应事件记录动作并通过此渠道传递给上级管理者以便后续分析利用. ##### (4)借助Runtime Environment(RTE) 实现Service Call Exchange Between SWCs And BSW Components Including Itself. 这意味着任何基于Model Driven Engineering(MDE) 方法论构建起来的应用程序都可以轻松地接入进来享受标准化带来的便利性的同时也不必担心兼容性方面的问题存在. ##### (5)受控于Basic Software Manager(BswM). 最终所有的初始化过程都需要遵循全局调度计划来进行同步操作才能保证整体性能达到最优水平.[^2] #### 3. 配置流程概览 针对实际项目需求而言,通常采用专用图形化界面编辑器(例如Vector公司的CANoe suite中的Configurator Professional edition)[^1],按照如下步骤开展工作: - 明确目标平台特性参数设置范围; - 创建必要的信号映射表单关联起始地址偏移量等细节项; - 定义好各类定时器超时期限数值大小限制条件; - 设置安全防护措施诸如认证握手算法类型选择等等; 最后导出生成可供编译链接使用的源文件形式提交给下一环节进一步加工完善即可. ```python # 示例伪代码展示部分API函数原型声明可能样子 def configure_dcm_module(param_dict): """ param_dict: 用户输入的各项配置选项字典 returns: 成功与否标志位bool型变量True/False """ try: initialize_system() map_signals_to_memory_locations(**param_dict['SignalMapping']) set_timer_constraints(*param_dict['TimerSettings']) apply_security_policies(&param_dict['SecurityOptions']) finalize_configuration() return True except Exception as e: log_error(e) return False ``` ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值