解析RZ/N2L CANFD模块的缓冲区机制(3)

2025-05-21

在工业自动化、智能交通、机器人等领域,CANFD(CAN with Flexible Data-Rate)技术正逐步取代传统CAN,以适应更高的数据速率和更复杂的通信需求。本文将深入解析RZ/N2L CANFD模块的缓冲区机制,帮助工程师更高效地管理CAN消息,提高系统性能。(下面的内容主要涉及RZN2L CANFD外设手册的解读,篇幅较长,感兴趣的读者可以收藏,以备日后不时之需)

RZN2L CAN-FD模块提供高达8 Mbps的数据速率,支持丰富的缓冲管理机制(独立缓冲、FIFO缓冲、共享缓冲),提供完整的消息过滤、错误检测、消息路由及传输管理,同时具备低功耗模式和测试功能,适用于工业控制、汽车电子、自动化系统等需要高可靠性和高性能通信的应用。

接着前面的章节,下面是关于FIFO中断配置的深入解析:

解析RZ/N2L CANFD模块的缓冲区机制(3) (https://ic.work/) 技术资料 第1张

1FIFO中断模式配置

CFDRFCCn.RFIM(RXFIFO)和CFDCFCCn.CFIM(公共FIFO)控制中断生成条件。

模式0(InterruptMode=0):

RX FIFO:FIFO计数器达到阈值(RFIGCV/CFIGCV配置)时触发中断。

TX FIFO:成功发送最后一条消息时触发中断。

GWFIFO:

接收帧:消息计数器达到阈值时触发中断。

发送帧:最后一条消息成功发送后触发中断。

模式1(InterruptMode=1):

RXFIFO:每接收一条消息即触发中断。

TXFIFO:每条消息成功发送后触发中断。

GWFIFO:

接收帧:消息存入FIFO时触发中断。

发送帧:消息成功发送后触发中断。

2中断阈值配置

阈值寄存器:

CFDRFCCn.RFIGCV[2:0](RXFIFO)和CFDCFCCn.CFIGCV[2:0](公共FIFO)。

实际触发消息数:

根据FIFO深度(由FDC[2:0]位配置)计算。

示例:若FIFO深度为64消息(FDC=110b),配置阈值1/4满(001b),则触发阈值为16条消息。

3关键限制与注意事项

1.阈值配置依赖FIFO深度:

FDC[2:0]位配置的FIFO深度决定了阈值配置的有效性

例如:若FIFO深度为4消息(FDC=001b),某些阈值(如1/8满)可能不可用。

2.模式0的阈值应用:

仅在InterruptMode=0时生效,需确保阈值配置与FIFO深度匹配。

3.硬件无自动检查:

用户需自行验证配置合法性,避免因阈值超限导致中断失效。

4

应用场景建议

模式0(阈值触发):

适用于需要减少中断频率的场景(如高吞吐量系统),通过设定较高阈值(如3/4满)降低CPU负载。

模式1(每条消息触发):

适用于实时性要求高的场景(如关键控制指令),确保每条消息的即时处理。

GW模式中断:

需根据数据优先级选择接收/发送中断策略,避免关键消息丢失。

潜在问题与解决

中断未触发:

检查FDC[2:0]与阈值配置是否兼容(如深度过小时,阈值比例可能无效)。

确认Interrupt Mode位设置是否正确。

中断频率过高:

调整阈值至更高比例(如7/8满),或切换为模式0。

配置冲突:

若FIFO深度为0(未启用),所有中断配置均无效,需重新配置深度。

示例配置

1RX FIFO(高吞吐量场景):

深度:64消息(FDC=110b)。

中断模式:0(阈值触发)。

阈值:3/4满(101b),触发阈值48条消息。

2TX FIFO(实时控制):

中断模式:1(每条消息触发),确保每条指令的发送状态被即时监控。

3GW FIFO(数据转发):

接收中断:模式1(消息存入即触发),发送中断:模式0(最后一条消息触发)。

代码调试结果补充:

在RZN2L的canfd的example program中,对“RZN2L_RSK_canfd_Rev100a”工程做如下的配置:

开启CAN_TEST_MODE_LOOPBACK_EXTERNAL的回环测试模式

解析RZ/N2L CANFD模块的缓冲区机制(3) (https://ic.work/) 技术资料 第2张

通过4个不同的MB(Message Buffer)id发送4帧数据(不使能发送中断):

解析RZ/N2L CANFD模块的缓冲区机制(3) (https://ic.work/) 技术资料 第3张

解析RZ/N2L CANFD模块的缓冲区机制(3) (https://ic.work/) 技术资料 第4张

接收FIFO的设置:

解析RZ/N2L CANFD模块的缓冲区机制(3) (https://ic.work/) 技术资料 第5张

Loopback Mode下的发送行为:

在不开启TX中断(Transmit Interrupt)的情况下发送数据帧。

如果发送的帧数少于4,则不会触发RX中断。

FIFO配置相关:

在FSP(Flexible Software Package,瑞萨的软件框架)中配置FIFO时:

先启用FIFO(即使能FIFO功能)。

然后设置FIFO的Depth(深度),即FIFO的存储容量。

再设置FIFO的中断模式(Interrupt Mode),即何时触发中断。

最后设置中断阈值(Interrupt Threshold Value)

如果使用同一个MB id发送,需要使能对应的MB的TX中断,比如用MB0来发送,可以使用如下的发送代码和配置:

解析RZ/N2L CANFD模块的缓冲区机制(3) (https://ic.work/) 技术资料 第6张

解析RZ/N2L CANFD模块的缓冲区机制(3) (https://ic.work/) 技术资料 第7张

在使用不同的TXMB ID来发送CANFD数据帧的情况下,如果发送的帧数大于或等于4,才会触发RX中断,小于4则不会触发RX中断。在使用一个TXMB ID的情况下,对于接收FIFO的行为来说是一样的。如果发送的帧数大于或等于4,才会触发RX中断,小于4则不会触发RX中断。通过阈值的方式触发RX中断后,RX FIFO中的数据帧将逐一产生中断,直到RX FIFO中的数据帧为空。比如RX FIFO中有4帧数据,那么将逐一产生4次RX中断。注意这里并不是产生一次中断。

文章推荐

相关推荐

  • 小安派BW21 UNO从机

    作为一款本地AI图象识别开发板,BW21-CBV-Kit它能够独自运行目标识别模型。2.4GHz+5GHz的双频Wi-Fi,提供高性能的无线传输能 ...

    2025-05-21
  • IGBT模块吸收回路分析模型

    IGBT模块吸收回路分析模型 一、IGBT模块吸收电路的模型 尽管开关器件内部工作机理不同,但对于吸收电路的分析而 ...

    2025-05-21
  • BLDC电机的基本结构和控制方式

    来源:攻城狮原创之设计分享 直流无刷电机(Brushless DC Motor,BLDC)是一种基于电子换向技术的高效电机,具有长寿命 ...

    2025-05-21
  • 联通智家通通:聚四方守护之力,筑万家AI通途

    “神兽镇宅”,是深植于中国人心中的居家智慧。朱雀、玄武等神兽,站立在紫禁城之巅,也悬于普通百姓门上,寄托着镇守四方风雨 ...

    2025-05-21
  • FinFET与GAA结构的差异及其影响

    文章来源:老虎说芯 原文作者:老虎说芯 本文介绍了当半导体技术从FinFET转向GAA(Gate-All-Around)时工艺面临 ...

    2025-05-21
  • 一文详解球栅阵列封装技术

    文章来源:学习那些事 原文作者:前路漫漫 本文介绍了球栅阵列封装的结构、分类、应用和发展趋势。 概述 ...

    2025-05-21
  • 智能车电磁组——基本控制篇

    智能车电磁组——基本控制篇 前言 电磁车的控制比较简单,可以分为信号采集,舵机控制和电机控制三部分, ...

    2025-05-21
  • 低成本电源排序器解决方案

    绝大多数负载点DC-DC转换器可以将上一个转换器的电源就绪输出连接至下一个转换器的使能输入,实现上电排序。这种方法只适合 ...

    2025-05-21
  • 注入增强型IGBT学习笔记

    来源:星际浮尘 注入增强型IGBT 1、结构特点与典型工艺 1.1结构提出与发展 为了协调 ...

    2025-05-21