• 214查看
  • 0回复

[Autosar] CAN多路复用及Autosar IpduM模块介绍

[复制链接]


该用户从未签到

发表于 8-5-2024 19:42:46 | 显示全部楼层 |阅读模式

汽车零部件采购、销售通信录       填写你的培训需求,我们帮你找      招募汽车专业培训老师


在汽车电子系统中,对于CAN总线来说通过多路复用可以让多个信号占用CAN的相同位置,对于那些比较长而又不常用的信号,可以有效降低空间(甚至可以让多个控制器共享1路CAN总线)。具体来说,我们需要在dbc中定义一个信号开关(Multiplexor Signal,对应Autosar中的Selector Field)用来表明当前信号位置上的值(MultiplexedSignal,对应Autosar中的dynamic segment)。根据Autosar规范,每个multiplexed 的IPDU的数据构成又由动态部分(dynamic part)和静态部分组成(static part),静态部分由0个或者多个信号或者信号组组成,动态部分由1个信号开关和1个或者多个信号或者信号组组成。根据Multiplexor Signal来解析不同的动态部分的MultiplexedSignal,如下图所示。
CAN多路复用及Autosar IpduM模块介绍w1.jpg

带有静态部分的multiplexed IPDU的layout

Ipdu模块介绍

CAN多路复用及Autosar IpduM模块介绍w2.jpg

IpduM模块在Autosar架构中的位置
从图上可以看出,IpduM主要和PduR和Com进行通信,接收时,PduR通过判断SelectFieldCode来触发对应的Signal的接收的indication。发送时,PduR直接调用IpduM_Transmit>PduR_IpduMTransmit->CanIf_Transmit进行数据的发送,在IpduM模块中将信号放置于对应位置接下来我们从两方面来说明在Autosar中如何生成对应的代码。
1 dbc导入

1.1 确定Multiplexor Signal
选中message中的frame的signal,点击edit mapped signal后,将某个选择信号确定为Multiplexor Signal
CAN多路复用及Autosar IpduM模块介绍w3.jpg

1.2 确定MultiplexedSignal
选中message中的frame的signal,点击edit mapped signal后,将某个选择信号确定为Multiplexed Signal,并确定Mutiplex Value为多少时解析这个Signal(途中表示Multiplexor Signal为1时解析Signal_1)
CAN多路复用及Autosar IpduM模块介绍w4.jpg

1.3 通过Frame的layout将对应的Multiplexed Signal放在同一个位置即可。

2 通过Autosar工具制作arxml
建立一个MultiplexedIPDU并创建两个DynamicPart分别来对应Signal,并在MultiplexedIPDU中配置好SelectorFieldLength等属性和DynamicPart对应的SelectorFieldCode,如下图所示。
CAN多路复用及Autosar IpduM模块介绍w5.jpg

CAN多路复用及Autosar IpduM模块介绍w6.jpg

3 IpduM模块配置生成
在第一种方法创建完dbc后可以通过Autosar工具导入dbc生成系统描述文件,此时生成的arxml和第二种手工制作的类似,此时通过conf-gen即可生成IpduM的配置,如下图所示。
CAN多路复用及Autosar IpduM模块介绍w7.jpg

快速发帖

您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|手机版|小黑屋|Archiver|汽车工程师之家 ( 渝ICP备18012993号-1 )

GMT+8, 27-12-2024 10:49 , Processed in 0.351869 second(s), 31 queries .

Powered by Discuz! X3.5

© 2001-2013 Comsenz Inc.