S32K14x FlexCAN入门

每个系列S32K14x支持的邮箱个数。

基本每个系列的FlexCAN0可以支持32个报文缓存和支持CANFD。

中断源

mail 最多有32个mail

• 灵活的消息缓冲区 (MB),总共 32 个消息缓冲区,数据长度为 8 字节
每个,可配置为 Rx 或 Tx

过滤掩码功能


强大的 Rx FIFO ID 过滤,能够将传入 ID 与 128扩展、256 个标准或 512 个部分(8 位)ID,最多具有 32 个单独掩码能力。
• 与以前的FlexCAN 版本100% 向后兼容
• 支持低功耗下的假装网络功能:停止模式

消息缓冲区存储在FlexCAN 模块专用的嵌入式 RAM。

MB结构
FlexCAN收到和发送的报文会放在这一片message buffer 报文缓存区中,以下是FlexCAN,有16个MB的缓存结构,到到Data Byte 63。

如果FlexCAN0有32MB,结构大概是这样,会到Data Byte 127.

通过DS调试

看到这里估计对32MB和16MB有些不能理解,我以标准CAN计算。一个MB的结构 2个字帧首+2个字的数据,总共是4个字(16个字节)。FlexCAN0有128个Data Byte,128/4=32MB,如果FlexCAN只有64Data Byte,64/4=16MB.(MB可以看成是邮箱mail)
如果是支持FD的话,FlexCAN0有128个Data Byte,CANFD数据占64个字节(16字),一个MB占用 18个字,128/18=7.

MB前两个字的介绍

EDL - 扩展数据长度
该位区分 CAN 格式和 CAN FD 格式帧。 EDL 位
不得为配置为具有代码字段 0b1010 的 RANSWER 的消息缓冲区设置

BRS - 比特率开关
该位定义是否在 CAN FD 格式帧内切换比特率。
ESI - 错误状态指示器
该位指示发送节点是主动错误还是被动错误。
CODE - 消息缓冲区代码
该 4 位字段可由 CPU 和 FlexCAN 模块访问(读或写)
本身,作为消息缓冲区匹配和仲裁过程的一部分。
接收

发送

过滤

SRR
固定隐性位,仅在扩展格式中使用。 用户必须将其设置为 1
传输(Tx 缓冲区)并将与 CAN 总线上接收到的值一起存储
Rx 接收缓冲区。 它可以被认为是隐性的或显性的。 如果 FlexCAN
接收到该位为显性位,则将其解释为仲裁丢失。
1 = 隐性值对于扩展格式帧中的传输是强制的
0 = 显性不是扩展格式帧中传输的有效值
IDE - ID 扩展位
该字段标识帧格式是标准的还是扩展的。
1 = 扩展帧格式
0 = 帧格式为标准
RTR - 远程传输请求
该位影响远程帧的行为,并且是接收过滤器的一部分。如果 FlexCAN 将该位发送为“1”(隐性)并接收为“0”(显性),则
解释为仲裁损失。 如果该位传输为“0”(显性),则如果
接收为“1”(隐性)时,FlexCAN 模块将其视为位错误。 如果值
接收到的值与发送的值匹配,则认为位传输成功。
1 = 指示当前 MB 可能有要发送的远程请求帧(如果 MB 为
德克萨斯州。 如果MB是Rx,则可以存储传入的远程请求帧。
0 = 表示当前MB有数据帧要发送。 在 Rx MB 中可能是
在匹配过程中考虑。
笔记
配置 CAN FD 帧时,RTR 位必须为
被否定了。
TIME STAMP - 自由运行计数器时间戳
该 16 位字段是自由运行定时器的副本,在以下位置捕获 Tx 和 Rx 帧:
标识符字段的开头出现在 CAN 总线上的时间。
PRIO-本地优先级
该 3 位字段仅在 CAN_MCR 中设置 LPRIO_EN 位时使用,并且仅使
Tx 邮箱的意义。 这些位不被传输。 它们被附加到常规的
用于定义传输优先级的 ID。 请参阅仲裁过程。
ID——帧标识符
在标准帧格式中,仅 11 个最高有效位(28 至 18)用于帧
接收和发送情况下的识别。 18 个最低有效位被忽略。
在扩展帧格式中,所有位都用于接收和接收帧中的帧标识

功能模式

FlexCAN 模块具有以下功能模式:
• 正常模式(用户或管理员)Normal mode:
在正常模式下,模块操作接收和/或发送消息帧,
错误处理正常,所有 CAN 协议功能均启用。 用户和
管理员模式的不同之处在于对某些受限控制寄存器的访问。
• 冻结模式 Freeze mode:
当 MCR 中的 FRZ 位被置位时,冻结模式被启用。 如果启用,则冻结
当 MCR[HALT] 置位或芯片请求调试模式时进入模式
电平且 MCR[FRZ_ACK ] 由 FlexCAN 置位。 在此模式下,无
帧的传输或接收完成,并且 CAN 总线的同步性丢失。
• 环回模式 Loop-Back mode:
当控制 1 寄存器中的 LPB 字段为
断言。 在此模式下,FlexCAN 执行内部环回,可用于
自检运行。 发送器的比特流输出在内部反馈到
接收器输入。 Rx CAN 输入引脚被忽略,Tx CAN 输出转到
隐性状态(逻辑“1”)。 FlexCAN 的行为与平常一样
发送并将其自己发送的消息视为从
远程节点。 在此模式下,FlexCAN 忽略在 ACK 时隙期间发送的位。
CAN 帧确认字段确保其自身消息的正确接收。 两个都
产生发送和接收中断。
• 只听模式 Listen-Only mode:
当控制 1 寄存器中的 LOM 字段为
断言。 在此模式下,传输被禁用,所有错误计数器被冻结,并且
模块在 CAN 错误被动模式下运行。 仅接收由另一个 CAN 站确认的消息。 如果 FlexCAN 检测到一条消息
被确认后,它将标记一个 BIT0 错误(不更改 REC),就好像它是
试图确认该消息。
• CAN FD 主动模式 CAN FD Active mode:
在此模式下,FlexCAN 能够发送和接收所有消息
根据 CAN FD 协议和 CAN 2.0 协议 2.0 格式化
交错的时尚。 CPU 可以通过以下方式将 FlexCAN 设置为 CAN FD 主动模式:
在冻结模式下配置 MCR[FDEN] 位字段。

对于低功耗操作,FlexCAN 模块具有:

• 模块禁用模式Module Disable mode:
当 MCR 寄存器中的 MDIS 位被置位时,进入该低功耗模式
由 CPU 发出,LPM_ACK 由 FlexCAN 发出。 当禁用时,
模块请求禁用 CAN 协议引擎和控制器的时钟
主机接口子模块。 通过取消 MDIS 位来退出该模式
MCR 寄存器。 有关详细信息,请参阅模块禁用模式。
• 停止模式 Stop mode:
当在芯片级请求停止模式并且
MCR 寄存器中的 LPM_ACK 位由 FlexCAN 置位。 停止时
模式下,模块将自身置于非活动状态,然后通知 CPU
时钟可以全局关闭。 当停止模式时,会退出此模式
请求被删除。 有关详细信息,请参阅停止模式。
• 假装网络模式 Pretended Network Mode:
可以选择该模式与停止模式一起运行。 进入之前
其中一种低功耗模式必须置位 MCR 寄存器中的 PNET_EN 位。
一旦进入低功耗模式,CHI 子块时钟将关闭,CAN_PE 子块保持时钟,以便 Rx 接收过程仍然处于活动状态以过滤传入的数据消息(请参阅假装网络模式下的接收过程)配置寄存器(请参阅假想网络控制 1 寄存器 (CTRL1_PN))。一旦检测到唤醒事件,就会向系统发出唤醒中断。

  • 4
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
S32K14x用户手册是一本详细介绍S32K14x系列微控制器的使用的技术手册。这个系列的微控制器是由恩智浦半导体(NXP Semiconductors)公司开发的,主要用于汽车电子控制系统的应用。 该用户手册以全面的方式介绍了S32K14x微控制器的架构、功能和特性,以及如何设计和编程应用电路。手册是为开发人员和工程师编写的,提供了大量的技术细节和实践建议,帮助用户快速上手并优化设计。 用户手册的内容包括以下方面: 1. S32K14x微控制器概述:介绍了S32K14x系列微控制器的特点、架构和性能指标,包括处理器核心、存储器、外设等。 2. 开发环境设置:介绍了如何搭建S32K14x开发环境,包括软件工具的安装和配置,以及硬件连接的方法。 3. 芯片功能使用介绍:详细说明了S32K14x微控制器的各种功能模块的使用方法,如GPIO(通用输入输出)、ADC(模数转换器)、PWM(脉冲宽度调制)等。 4. 编程指南:介绍了如何使用C语言或汇编语言编写S32K14x微控制器的应用程序,包括中断处理、时钟配置、外设初始化等方面的操作。 5. 调试和测试:介绍了如何使用调试工具和测试设备对S32K14x进行调试和验证,以确保程序的正确性和性能优化。 6. 附录:提供了一些额外的参考资料,如引脚定义、寄存器描述、常见问题解答等。 通过阅读S32K14x用户手册,用户可以深入了解S32K14x微控制器的特性和功能,掌握其设计和编程方法,帮助开发人员更高效和准确地开发和维护汽车电子控制系统。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

小昭dedug

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

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

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

打赏作者

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

抵扣说明:

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

余额充值