【CAN】Hardware Object的配置规则


>>返回总目录<<

1. 前言

在英飞凌的芯片中,MCAN模块有一块Message RAM,这块空间主要用来划分过滤空间、接收数据空间以及发送数据空间,至于如何切分Message RAM,由用户或者工具设置。虽然Message RAM区可以按需切割,但是,切割的顺序需要按照手册要求实现,Message RAM如下所示:
在这里插入图片描述
这里以Vector的Configurator配置工具进行介绍,对Can Controller中RAM缓存区的配置是在Can->CanConfigSet->CanHardwareObjects中进行配置的。
在这里插入图片描述

2 发送缓存区的配置

如果Hardware Object的Object Type配置为Transmit,则该Hardobject Object指向的是RAM缓存区的Tx Buffers。进一步,如果Handle Type配置为Full,则该Hardware Object占用Tx Buffers中的一个element(也即一个PDU缓存区),也可以说该element使用的是Tx Dedicated Buffer模式;如果Handle Type配置为Basic,则该Hardware Object占用Tx Buffers中的一个或多个elements,这个(些)elements使用的是Tx FIFO Buffer模式。
这里有一个Hardware FIFO的勾选项,如果一个Can Controller中配置了多个Basic类型的发送Hardware Object,其中最多只能有一个可以勾选Hardware FIFO配置项,否则配置界面会报错,其实不难理解,因为2.2节介绍过Tx Buffers中最多存在一个Tx FIFO Buffer。从界面中也可以看到,Hardware FIFO不勾选时,Object Hw Size配置项默认为1,不支持用户编辑,Hardware FIFO勾选后,才可以输入。
那么对于未勾选Hardware FIFO的Basic类型Hardware Object,其对应的element是什么缓存模式?
当配置两个Basic,默认都不勾选Hardware FIFO,默认Hw Size为1。此时寄存器中可以看到,只有两个Tx Dedicated Buffer,而没有Tx FIFO Buffer。由此可以看出,即使配置成Basic类型的发送Hardware Object,如果不勾选FIFO选项,其本质上还是一个Dedicated类型的element。
在这里插入图片描述
在这里插入图片描述
当配置两个Basic,其中一个勾选Hardware FIFO,且Hardware FIFO设置为20,另一个不勾选,默认Hw Size为1。此时寄存器中可以看到,有一个Tx Dedicated Buffer,和一个Tx FIFO Buffer,且其长度为20。也即2.2节中的Dedicated Tx Buffers 和 Tx FIFO结合使用模式。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述在这里插入图片描述

3 接收缓存区的配置

如果Hardware Object的Object Type配置为Receive,则该Hardobject Object指向的是RAM缓存区的Rx FIFO 0,Rx FIFO 1或Rx Buffer。进一步,如果Handle Type配置为Full,则该Hardware Object占用Rx Buffer中的一个element(也即一个PDU缓存区),也可以说该element使用的是Rx Dedicated Buffer模式;如果Handle Type配置为Basic,则该Hardware Object对应Rx FIFO 0或者Rx FIFO 1。这里注意, 一个CAN Controller只能配置两个Basic类型的Hardware Object,分别对应的是Rx FIFO0和Rx FIFO1,否则会报如下的错误。
在这里插入图片描述

4 Hardware Object的配置顺序

Hardware Object的配置顺序:Tx Full CAN -> Tx Basic CAN -> Rx Full CAN -> Rx Basic CAN,CAN Controller(n)的所有Hardware Object要在CAN Controller(n-1)之前。
在这里插入图片描述
Hardware Object在Mailbox中的处理顺序如下:
在这里插入图片描述
在中断场景时,Rx FullCANs优先Rx BasicCANs进行处理;在polling场景下,Rx FullCANs优先Rx BasicCANs进行处理。
在这里插入图片描述

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

woniudaidai

你的鼓励将是我创作的最大动力!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值