AUTOSAR新手咨询:CAN消息接收应用组件与BSW层COM模块连接方法
AUTOSAR SWC与COM模块连接配置(针对CAN消息0x500)
关于信号/组信号的选择
不需要用组信号,直接用单个信号cmd1和cmd2即可。组信号主要用于需要将多个信号作为一个整体同步传输或接收的场景,而你的需求是异步接收两个独立信号,单个信号的配置更灵活,也便于SWC分别处理或按需订阅。
具体连接配置步骤(ARXML层面)
定义信号元数据
在ARXML的Signal定义节点中,分别创建cmd1和cmd2:cmd1:起始位设为0,长度2位,关联到CAN帧ID0x500(DLC=8);cmd2:起始位设为2,长度2位,同样关联到CAN帧0x500;
确保信号的数据类型匹配实际需求(比如无符号整数)。
COM模块接收配置
在COM模块的ARXML配置中,为cmd1和cmd2配置接收属性:- 设置接收模式为异步触发:配置COM在收到CAN帧
0x500时,自动更新对应信号的值,并触发后续的SWC通知; - 绑定信号到对应的CAN帧,确保COM能正确从CAN驱动层解析出这两个信号。
- 设置接收模式为异步触发:配置COM在收到CAN帧
SWC与VFB配置
- 给你的应用软件组件(SWC)定义Required Port,关联包含
cmd1和cmd2的Data Interface; - 在虚拟功能总线(VFB)中,将SWC的Required Port与COM模块的
Provided Port(对应信号接收服务)建立连接; - 为SWC配置
Runnable,并设置触发条件为信号更新事件:当cmd1或cmd2的值被COM更新时,自动触发该Runnable执行解码逻辑。
- 给你的应用软件组件(SWC)定义Required Port,关联包含
SWC解码逻辑实现
在Runnable的代码中,通过AUTOSAR标准API(比如Com_SignalRead())读取cmd1和cmd2的当前值,完成解码处理。
内容的提问来源于stack exchange,提问作者Аna Toda
相关产品推荐
相关产品推荐

