【经验】RH850 RS-CANFD接收滤波配置

article/2025/11/6 13:56:10

芯片型号:RH850/F1KM-S1


不同PIN封装形式所支持的CAN通道数量不同,RS-CAN通道数量最多可支持6路。


目录

一、FLECCTR(接收规则Entry控制寄存器)

二、FLCFG0(接收规则配置寄存器0)

三、FLCFG1(接收规则配置寄存器1)

四、FDGAFLIDj(接收规则ID寄存器)

五、FDGAFLMj(接收规则掩码寄存器)

六、FDGAFLP0_j(接收规则指针寄存器0)

七、FDGAFLP1_j(接收规则指针寄存器1)

接收规则配置流程

接收规则配置示例代码

接收规则设置示例代码

接收缓存RAM区


RS-CANFD接收滤波基于接收规则表,控制和配置功能主要涉及7类寄存器:


一、FLECCTR(接收规则Entry控制寄存器)

【重要*】BitAFLDAE=1,使能Rule Table(接收规则列表)写权限;

    (1)写操作前,置位;

    (2)写操作完成后,清零;

BitAFLPN指定Rule Table所属的Page号。

    (1)Page可选值为0~63,Page总数共计64个。

    (2)每个Page包含16个Rule,Rule可选值为0~15。

二、FLCFG0(接收规则配置寄存器0)

FLCFG0和FLCFG1寄存器指定CAN通道包含的Rule数量;8个通道(channel0-channel7)由这两个寄存器完成数量设置。

例如:

BitRNC0[7:0]=0x3,意味着CAN通道0包含的Rule数量为3个;

BitRNC2[7:0]=0x5,意味着CAN通道2包含的Rule数量为5个;

BitRNC7[7:0]=0x6,意味着CAN通道7包含的Rule数量为6个。

三、FLCFG1(接收规则配置寄存器1)

   

四、FDGAFLIDj(接收规则ID寄存器)

接收规则的最大条目数量为16,该类型寄存器共计16个,使用“j”来索引。

【重要*】该寄存器存入预接收的CAN(FD) 报文ID及类型(扩展帧标识IDE、远程帧标识RTR、CAN通道来源)。

注意:CAN(FD) 标准帧ID所占位置为bit0~bit10,不需要移位;扩展帧ID所占位置为bit0~bit28

索引“j”的详细描述:

 五、FDGAFLMj(接收规则掩码寄存器)

【重要*】该寄存器与FDGAFLIDj相对应,为掩码寄存器。

0x0:‘关心’,相关位需要比较;

0x1:‘不关心’,相关位不需要比较。

六、FDGAFLP0_j(接收规则指针寄存器0)

BitGAFLPTR[15:0]:接收规则标签信息;

【重要*】BitGAFLRMV:是否使能接收Buffer;

    ——接收如果采用FIFO接收缓存机制,需要设置FDGAFLP1_j相关寄存器。

【重要*】BitGFLRMDP[6:0]:指定接收Buffer号;

【重要*】BitGAFLDLCA[3:0]:是否使能DLC检查,即RSCAN提供了报文DLC检查机制,如下图。如果采用软件DLC滤波,该4位设置为0。

七、FDGAFLP1_j(接收规则指针寄存器1)


接收规则配置流程

【重要*】每个通道具体的接收规则必须通过连续写地址方式完成,关联所在的Page页。

Each receive rule consists of 16 bytes in the RCFDCnCFDGAFLIDj, RCFDCnCFDGAFLMj,
RCFDCnCFDGAFLP0_j, and RCFDCnCFDGAFLP1_j registers (j = 0 to 15).

 

即FDGAFLIDj, FDGAFLMj,FDGAFLP0_j, FDGAFLP1_j四个寄存器连续写入配置数据,由一个结构体数组实现。

接收规则配置示例代码

canfd_cre_type CANFD_RX_RULE_TABLE[16] = {
/* CAN 0 reception rules */{0x00000010UL, 0xDFFFFFF0UL, 0x00008000UL, 0x00000000UL}, /* NO.000 : std data frm ID = H'10~1F will be accepted, 20 data length, destination Rx Buffer0 */{0x00000020UL, 0xDFFFFFF0UL, 0x00008100UL, 0x00000000UL}, /* NO.001 : std data frm ID = H'20~2F will be accepted, destination Rx Buffer1 */{0x00000030UL, 0xDFFFFFF0UL, 0x00008200UL, 0x00000000UL}, /* NO.002 : std data frm ID = H'30~3F will be accepted, destination Rx Buffer2 */{0x00000040UL, 0xDFFFFFF0UL, 0x00008300UL, 0x00000000UL}, /* NO.003 : std data frm ID = H'40~4F will be accepted, destination Rx Buffer3 */{0x00000050UL, 0xDFFFFFFFUL, 0x00008400UL, 0x00000000UL}, /* NO.004 : std data frm ID = H'50 will be accepted, destination Rx Buffer4 */{0x00000060UL, 0xDFFFFFFFUL, 0x00008500UL, 0x00000000UL}, /* NO.005 : std data frm ID = H'60 will be accepted, destination Rx Buffer5 */{0x00000070UL, 0xDFFFFFFFUL, 0x00008600UL, 0x00000000UL}, /* NO.006 : std data frm ID = H'70 will be accepted, destination Rx Buffer6 */{0x00000080UL, 0xDFFFFFFFUL, 0x00008700UL, 0x00000000UL}, /* NO.007 : std data frm ID = H'80 will be accepted, destination Rx Buffer7 */
};

解释CAN0第一个接收规则:

0x00000010UL, 0xDFFFFFF0UL, 0xB0008000UL, 0x00000000UL

FDGAFLID0=0x00000001:ID=0x10

FDGAFLM0=0xDFFFFFF0:接收掩码bit0~bit3为0,bit0~bit3为'不关心',可接收ID范围为0x10~0x1F

FDGAFLP0_0=0x00008000:使能接收Buffer,接收BufferNum=0

FDGAFLP1_0=0x00000000:无

接收规则设置示例代码

    uint16 RxRuleIdx;    /* Set Rx rule number per channel */RCFDC0CFDGAFLCFG0 |= 0x20ul; /*Channel 2 has 2 rx rules *//* Get access base address of Rx rule */pCRE = (volatile can_cre_type*)&(RCFDC0CFDGAFLID0);/* Receive Rule Table Write Enable */RCFDC0CFDGAFLECTR |= 0x00000100; /*set bit8 to 1, Receive rule table write is enabled*//* Copy Rx rule one by one */for (RxRuleIdx = 0U; RxRuleIdx < 16; RxRuleIdx++){PageRxRuleIdx = (uint8) (RxRuleIdx & 0x0F); /*RxRuleIdx=0, page=0; RxRuleIdx=16, page=1; RxRuleIdx=32,page=2;...*//* Update target Rx rule page if necessary. */if (PageRxRuleIdx == 0U) {RCFDC0CFDGAFLECTR |= RxRuleIdx >> 4U; /*CAN_RX_RULE_PAGE_IDX_BIT_POS= 4U*/}/* Set a single Rx rule.*/pCRE[PageRxRuleIdx] = RX_RULE_TABLE_LIST1[RxRuleIdx];}/* Receive Rx rule write Disable */RCFDC0CFDGAFLECTR &= 0xfffffeff;

   


Notes:

● The acceptance filter processing checks receive rules sequentially in ascending order from the smallest rule number.

If the same ID, IDE bit, or RTR bit value is set for multiple receive rules, the smallest number of receive rule is used for the acceptance filter processing.

If the message does not pass through the subsequent DLC filter processing, the data processing is terminated without returning to the acceptance filter processing and the message is not stored in the buffer.【重要*】优先经过DLC检查,建议禁能。
 


 接收缓存RAM区


http://chatgpt.dhexx.cn/article/ayNTQr5O.shtml

相关文章

瑞萨RH850 CS+环境下设置堆和栈空间

目录 1、设置栈空间 2、设置堆空间 嵌入式软件开发离不开对堆和栈的操作。 栈由操作系统自动分配和释放 &#xff0c;存放函数的参数值、局部变量的值等。通常都是被调用时处于存储空间中&#xff0c;调用完毕立即释放。 堆由开发者手动分配和释放&#xff0c; 若开发者不释…

基于IAR for RH850的瑞萨RH850 FCL库用法介绍(二)

版权声明 email&#xff1a;1256153255qq.com website for get 瑞萨RH850F1x开发板和瑞萨E1仿真器 认真的朋友会发现&#xff0c;我的上一篇博文《基于IAR for RH850的瑞萨RH850 FCL库用法介绍》在最后留下了一个bug&#xff0c;就是当FCL执行ERASE或WRITE时&#xff0c;返回的…

5、RH850 F1 定时器TAUJ功能和配置

TAUJ定时器为RH850较为常用的定时器&#xff1a; &#xff08;1&#xff09;定时器计时是通过计数来实现的&#xff0c;定时器内部有一个计数器&#xff0c;这个计数器根据时钟&#xff08;这个时钟来自于ARM的APB总线&#xff09;来工作。每隔一个时钟周期&#xff0c;计数器…

13、RH850 F1 选项字节和看门狗

前言: 选项字OPTION配置是RH850的一项重点&#xff0c;用户手册对选项字的配置介绍很少&#xff0c;这篇文章将主要针对选项字和看门狗的配置进行讲解。 一、选项字特性 闪存的选项字节是一个扩展区域&#xff0c;并保存用户为各种目的指定的数据。由选项字节指定的外围模块等的…

6、RH850 F1 AD转换功能和配置

前言: 上文完成了RH850的TAUJ定时器配置&#xff0c;此章我们将讲解RH850的ADC功能。 AD转换就是将时间连续和幅值连续的模拟量转换为时间离散、伏值也离散的数字量。使输出的数字量与输入的模拟量成正比。AD转换的过程有四个阶段&#xff0c;即采样、保持、量化和编码。 采样是…

RH850 Clock+LED

RH850 ClockLED 解除时钟寄存器写保护 写保护寄存器的写过程 通过使用以下保护解锁序列&#xff0c;可以启用对写保护寄存器的写访问&#xff1a; 1.将固定值0000 00A5H写入保护命令寄存器。 2.将所需的值写入受保护的寄存器。 3.将所需值的按位反转写入受保护的寄存器。 4.…

关于RH850系统时钟初始化的分析解读

博主联系方式&#xff1a;QQ&#xff1a;1256153255 &#xff0c;邮箱&#xff1a;1256153255qq.com 点击这里可申请RH850开发板 点击这里可申请瑞萨E1仿真器 RH850的时钟初始化&#xff0c;有些是自己配置的&#xff0c;有些是用Smart configure图形配置后自动生成的&#x…

RH850系列芯片Mcal代码生成教程

RH850系列芯片Mcal代码生成教程 Rh850 mcal的配置、生成代码不同于NXP、英飞凌等芯片&#xff0c;并非使用EB&#xff0c;而是使用Vector工具加Makefile组合的方式&#xff0c;比较繁琐。本文将以RH850/F1KM的Can模块为例&#xff0c;讲解Rh850的代码生成流程。 相关依赖 首…

瑞萨RH850 CS+集成开发环境Sections字段说明

在文章&#xff1a;瑞萨RH850 CS环境下设置堆和栈空间和瑞萨IDE&#xff1a;CS for CC进行BootLoader升级时开发环境配置中&#xff0c;讲解到Sections字段的使用。 那么Sections字段到底什么含义呢&#xff0c;下表进行了梳理和总结&#xff1a; 手册全文请参见&#xff1a;RH…

RH850进不去烧写

有遇到输入晶振进不去界面的嘛&#xff0c;引脚第二次梳理一次都是正确的&#xff0c;cs➕接法也进不去&#xff0c;请问有遇到这种情况的嘛&#xff0c;谢谢指点。(https://img-blog.csdnimg.cn/335b57577edd4feabd1226ab1666d154.jpg) can线不接的话板子会在上电1-2秒复位&a…

11、RH850 中断配置

前言: 单片机的中断是由单片机片内的中断系统来实现的。当中断请求源&#xff08;简称中断源&#xff09;发出中断请求时&#xff0c;如果中断请求被允许的话&#xff0c;单片机暂时中止当前正在执行的主程序&#xff0c;转到中断服务程序处理中断服务请求&#xff0c;处理完中…

RH850F1x Starter Kit V3用户手册(中文翻译版)

版权声明 本博文系广州欧科曼科技有限公司所有&#xff0c;转载请注明出处。 广州欧科曼科技有限公司致力于瑞萨MCU及周边相关产品开发设计。 email&#xff1a;1256153255qq.com 需要翻译版PDF文档&#xff0c;请联系博主QQ获取 website for purchase 瑞萨RH850开发板 and 瑞…

RH850F1L 移植freeRTOS

学习基于GHS将freeRTOS移植到RH850 F1L的过程 移植过程参考github的一个教程&#xff0c;其中有部分修改优化&#xff0c;但是不多。 GitHub - mikisama/FreeRTOS_RH850: FreeRTOS port for Renesas RH850 支持gcc、ghs、ccrh、IAR 4种编译器。 有问题一起讨论&#xff0c;…

瑞萨RH850 FCL、FDL和EEL库的配置和使用

目录 1、FCL库 1.1、配置FCL库 1.2、使用FCL库 2、FDL库 2.1、配置FDL库 2.2、使用FDL库 3、EEL库 瑞萨RH850 Flash中有两种存储类型&#xff1a;Mapping of Code Flash Memory和Mapping of Data Flash Memory。 Mapping of Code Flash Memory存储代码&#xff0c;Mappi…

基于IAR for RH850的瑞萨RH850 FCL库用法介绍

博主联系方式&#xff1a;QQ&#xff1a;1256153255 &#xff0c;email&#xff1a;1256153255qq.com website for get 瑞萨RH850F1x开发板和瑞萨E1仿真器 1、简介 本文介绍了RH850 FCL的使用以及相关的经验技巧&#xff0c;使用的环境如下 MCU&#xff1a;瑞萨RH850F1K 型号…

瑞萨RH850开发环境搭建

简述 本文介绍瑞萨RH850开发环境搭建。 内部包含cancasexl的驱动安装&#xff0c;canoe的软件安装&#xff0c;IAR的软件安装&#xff0c;E1的自检等。 当前版本&#xff1a;V1.0 email&#xff1a;1256153255qq.com website for get 瑞萨RH850开发板 and 瑞萨E1仿真器 变…

2、RH850外设时钟选择及配置

前言 上一篇文章完成了RH850时钟源寄存器配置&#xff0c;外设要正常工作&#xff0c;必须要配置对应的时钟&#xff0c;这篇文章说明RH850外设时钟配置。 时钟选择寄存器 下面表格是RH850-F1K技术规格书列出的外设时钟寄存器。 外设时钟寄存器基本都相同&#xff0c;如TAUJ代表…

3、RH850端口说明及及复用功能配置

RH850端口有3种工作模式 通用IO口(普通数字口)。PMC控制寄存器对应bit为0。软件配置复用模式。PMC控制寄存器对应bit为1。PIPC寄存器对应bit为0。硬件直接连接模式。PMC控制寄存器对应bit为1。PIPC寄存器对应bit为1。 主要控制寄存器 PIPC 0: 端口由软件配置(software I/O c…

10、RH850 CAN通讯功能和配置

前言: CAN 是 Controller Area Network 的缩写&#xff08;以下称为 CAN&#xff09;&#xff0c;是 ISO国际标准化的串行通信协议。 在当前的汽车产业中&#xff0c;出于对安全性、舒适性、方便性、低公害、低成本的要求&#xff0c;各种各样的电子控制系统被开发了出来。由于…

瑞萨RH850芯片在IAR和CS+编译环境下设置堆(heap)和栈(stack)的大小

博主联系方式&#xff1a;QQ&#xff1a;1256153255 &#xff0c;邮箱&#xff1a;1256153255qq.com 点击这里了解RH850开发板 点击这里了解瑞萨E1仿真器 点击这里了解GHS Multi 在实际使用RH850开发的过程中&#xff0c;有时会需要调整芯片的堆栈空间大小。 对于RH850芯片&…