1. 项目概述
在汽车电子系统开发中,CAN通信的灵活配置是确保系统可靠性和响应速度的关键。今天我要分享的是如何在Vector DaVinci Configurator工具中实现一个非常实用的功能:当收到ON请求时,信号快速重复发送两次,之后自动恢复默认周期发送模式。这个功能在车身控制、电源管理等场景特别有用,比如控制车窗升降或车灯开关时,既需要快速响应操作指令,又要在无操作时保持低负载通信。
这个方案最巧妙的地方在于完全基于AUTOSAR标准机制实现,不需要编写额外代码。核心思路是利用传输模式选择(TMS)机制,根据信号值动态切换两套发送参数。一套用于事件型的快速重复(ON请求),另一套用于周期型的默认状态(NoRequest)。整个配置过程主要涉及DBC文件定义和DaVinci Configurator工具的参数设置,下面我会详细拆解每个环节。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 核心原理与架构设计
2.1 传输模式选择(TMS)机制解析
TMS是AUTOSAR COM模块的核心功能之一,它允许同一个I-PDU根据条件动态切换不同的发送模式。在我们的场景中,需要配置两种模式:
-
快速重复模式(ON请求):
- 触发条件:当特定信号值(如PowerMode=1)被写入
- 行为特点:立即发送报文,并按照设定重复次数和间隔快速重发
- 典型参数:重复次数2次,间隔50ms
-
周期发送模式(默认状态):
- 触发条件:当信号值为非激活状态(如PowerMode=0)
- 行为特点:按固定周期发送报文
- 典型参数:周期500ms或1000ms
这两种模式的切换由一个过滤器(ComFilter)控制,它会持续监控信号值的变化。当信号值满足条件时,COM模块会自动切换到对应的发送模式。
2.2 DBC与COM模块的映射关系
理解DBC文件属性如何映射到AUTOSAR COM模块参数是成功配置的关键。下表展示了主要属性的对应关系:
| DBC属性 | COM模块参数 | 功能说明 |
|---|---|---|
| GenMsgSendType = event | ComTxModeMode = DIRECT | 事件触发型发送 |
| GenSigS |
