S32k FlexCan 模块寄存器梳理

1、模块配置寄存器 MCR

DMA

控制DMA功能是否启用。DMA功能只能在Rx FIFO中使用,因此必须断言MCR[RFEN]。当设置DMA和RFEN时,IFLAG1[BUF5I]生成DMA请求,并且不生成RX FIFO中断

ps:该位只能在冻结模式下写入,因为它在其他模式下被硬件阻止。

0b-禁用RX FIFO的DMA功能。
1b-启用RX FIFO的DMA功能。

(RFEN) ;Rx FIFO Enable

Rx FIFO启用
该位控制Rx FIFO功能是否启用。设置RFEN时,MBs 0至5不能用于正常接收和传输,因为FIFO引擎使用相应的存储区域(0x80-0xDC)以及用作Rx FIFO ID过滤器表元素的附加MBs(最多32个,取决于CTRL2[RFFN]设置)。RFEN还影响表55-32中所述的每个CAN位的最小外围时钟数的定义。

该位只能在冻结模式下写入,因为它在其他模式下被硬件阻塞。注:启用CAN FD操作时无法设置此位(参见FDEN位)。
0b-未启用Rx FIFO。
1b-Rx FIFO已启用。

FD操作是否可以启用
该位使CAN具有灵活数据速率(CAN FD)操作。该位可以在冻结状态下写入仅限模式。
注:FlexCAN能够根据ISO 11898-1传输FD帧格式。
注:如果断言FDEN,则无法设置Rx FIFO启用(RFEN)位。
0b-CAN FD被禁用。FlexCAN能够接收和传输CAN 2.0格式的消息。
1b-CAN FD已启用。FlexCAN能够在CAN和FD中接收和传输消息CAN 2.0格式。

2、配置寄存器 

ctrol 1: 时钟源,数据域,仲裁预 百分比

ctrol 2:: ISO CAN FD Enable

为Rx邮箱启用全帧仲裁字段比较
此位控制Rx邮箱过滤器内IDERTR位与其对应的位的比较
通过匹配过程在输入帧中存储比特。此位不影响Rx FIFO的匹配

Number Of Rx FIFO Filters

3、错误 与 状态寄存器

4、报文缓存区结构

每个MB16、24、4072个字节组成,具体取决于为消息有效负载分配的数据字节数量:分别为8、16、3264个数据字节。

64字节 接收缓存结构

 

相关参考:【使用C++开发MCU】05-CAN实例之NXP S32K1 FlexCAN模块_mcucpp的博客-CSDN博客_flexcan mailbox

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
S32K FlexCAN是一种汽车电子控制系统中常用的通信协议,其全称为S32K Flex Controller Area Network。CAN是一种低层次的通信协议,用于实现车辆内部各个模块之间的数据传输,例如发动机控制单元、车身控制单元、仪表盘等。 S32K FlexCAN具有高可靠性、高带宽和灵活性等特点,能够满足现代汽车对数据传输的高要求。它能够在数据帧中实现多个模块之间的信息交换,这些模块可以同时接收和发送数据,并能够根据优先级对不同的数据帧进行处理。 S32K FlexCAN可以实现多种不同的通信模式,如点对点通信模式和广播通信模式。在点对点通信模式下,每个节点都能够单独与其他节点进行通信,而在广播通信模式下,一个节点发送的数据帧可以被所有其他节点接收。这种灵活性使得S32K FlexCAN能够满足不同汽车系统的通信需求。 S32K FlexCAN还支持错误检测和纠正,能够检测到和修复数据传输过程中的错误。在CAN总线中,错误的检测和纠正对于保证数据传输的可靠性至关重要,因为汽车系统可能面临环境电磁干扰和其他故障因素。 总的来说,S32K FlexCAN在汽车电子控制系统中起着至关重要的作用,它能够提供高效、可靠和灵活的数据传输,满足现代汽车对通信的高要求。它不仅能够实现点对点通信和广播通信,还能够检测和纠正数据传输中的错误,确保数据传输的可靠性和稳定性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值