BSW: Dcm模块配置--28服务

本文介绍了UDS通信控制服务28的配置过程,涉及DCM、BSWM、COM和RTE模块。主要内容包括DCM模块的Enable Mode Declaration Support和DSD、DSP配置,BSWM模块的ModeRequestPort、ModeCondition、LogicalExpression、Action和ActionList设置,以及Com模块的PduGroup管理和RTE配置。配置中强调了根据客户需求和工具链特点进行选择,并给出了静态代码接口调用的示例。

前文:

这个章节讲解下UDS中的28服务(Communcation Control)的配置,顾名思义,对当前ECU的通讯状态进行变更,主要设置应用报文,网络管理报文的收发控制,通常应用在刷写APP软件时,降低总线负载。

这里首先要提醒的一点是,28服务几乎不需要手写代码,只有在客户需求要求前置条件不满足时报特定NRC时才需要填充代码。

Note:不同的工具链静态代码可能不同,但配置基本相同。

正文:

实际配置中主要涉及的模块有DCM,BSWM,COM,RTE.

1.DCM模块的配置

<1>DcmGeneral

下面的选项是需要勾选。

Enable Mode Declaration SupportIf enabled, the Dcm acts as a mode manager and is responsible for providing the modes of the ModeDeclarationGroupPrototypes it defines in its Basic Software Module Description:

Enable RTE usage: Enables RTE functionality usage by the Dcm.

<2>DSD

配置支持的子服务,安全等级,会话模式等,这里的配置需要熟悉UDS服务。

<3>DSP

在Com Control中需要reference Com channel,如果项目中启用了网络管理,这里的通道要和网络管理的通道一致。

2.BswM模块的配置
2.1.BswMModeRequestPort

这里要注意的有以下两点:

BswMRequestProcessing:This parameter defines if the processing of the mode arbitration shall be done immediately when a mode request is received or if it shall be deferred to the processing of the main function of BswM.选择立即处理还是在mainfunction中轮询到再处理。

BswMModeRequestSource :这里我推荐选择的是BswMBswModeNotification,因为前面勾选了Enable Mode Declaration Support也有的同学会去选择BswMDcmComModeCurrentState或者BswMDcmComModeRequest.这里先不详细展开,文末我们再来讨论区别

2.2.BswMModeCondition

BswConditionType: 选择BSWM_EQUALS,等价于=。

BswMCondtionMode:这里关联前面创建的ModeRequestPort.,做为条件判断的输入。BswCondtionValue:因为勾选了Enable Mode Declaration Support,所以这里选择BswModeDeclaration,如果选择其他类型

### BSW、COM、DCM 和 PduR 的定义与功能 #### 1. **BSW(Basic Software Module)** BSW 是 AUTOSAR 架构中的基础软件模块,其主要职责是为上层应用软件组件(ASW)提供通用服务和硬件抽象[^4]。它包括多个子模块,例如操作系统(OS)、通信管理(ComM)、诊断服务Dcm)、以及网络传输层(CanTp/LinTp)。这些模块共同协作以确保 ECU 的高效运行。BSW 的设计目标是实现硬件无关性,并支持跨平台的复用。 #### 2. **COM(Communication Manager)** COM 模块在 AUTOSAR 中充当通信管理器的角色,负责处理信号到数据帧的转换以及反之亦然的操作[^1]。它的主要任务包括: - 管理信号与 PDU(Protocol Data Unit)之间的映射。 - 提供统一接口以支持不同通信协议(如 CAN、LIN、FlexRay 等)。 - 实现周期性和事件驱动的数据交换。 COM 模块通过 RTE 层与 ASW 组件交互,并通过底层驱动程序(如 CanIf 或 LinIf)与物理网络连接[^3]。 #### 3. **DCM(Diagnostic Communication Manager)** DCM 模块专注于诊断服务的管理,为 ECU 提供标准化的诊断通信接口。它的核心功能包括: - 处理 UDS(Unified Diagnostic Services)请求。 - 管理诊断会话控制。 - 支持错误报告和安全访问机制。 DCM 模块通常与其他 BSW 模块(如 ComM 和 Nvm)协同工作,以确保诊断服务的可靠性和一致性。 #### 4. **PduR(PDU Router)** PduR 模块作为 AUTOSAR 架构中的路由组件,负责将 PDU 在不同通信层之间进行传递和转换。具体功能包括: - 将来自 COM 层的 PDU 转发至网络接口层(如 CanIf 或 LinIf)。 - 将从 DCM 接收到的诊断 PDU 路由至相应的传输层(如 CanTp 或 LinTp)。 - 支持基于配置的灵活路由规则。 PduR 的实现通常依赖于宏定义和静态配置,以减少运行时开销并提高性能[^1]。 ### 技术关联与交互 在 AUTOSAR 系统中,BSW、COM、DCM 和 PduR 共同构成了一个完整的通信框架。以下是它们之间的交互关系: - **COM 和 PduR**:COM 模块生成或接收信号后,将其封装为 PDU 并传递给 PduR。PduR 根据配置决定将 PDU 转发至哪个目标模块或网络接口。 - **DCM 和 PduR**:DCM 模块生成的诊断 PDU 通过 PduR 路由至适当的传输层(如 CanTp 或 LinTp),以便发送至外部诊断工具[^4]。 - **BSW 和 RTE**:BSW 模块通过 RTE 层与 ASW 组件进行交互,从而实现应用逻辑与底层通信的解耦[^3]。 ```python # 示例代码:PduR 配置片段 CONFIG_PduR = { "Route": [ {"Source": "COM", "Destination": "CanIf"}, {"Source": "DCM", "Destination": "CanTp"} ] } ```
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值