FDCAN的4种过滤器类型

news/2025/12/1 11:30:07/文章来源:https://www.cnblogs.com/lgs7/p/19292148

FDCAN的4种过滤器类型

FDCAN过滤器类型

以方便自己理解的口头形式来表达,有错的请指出,欢迎互相交流学习

1. FDCAN_FILTER_RANGE - 范围过滤器

这种过滤器定义一个ID范围,所有在这个范围内的标准ID或扩展ID都会被接收。

工作原理:

  • 配置一个起始ID和一个结束ID
  • 所有在 [起始ID, 结束ID] 范围内的消息都会被接收
// 配置接收ID从0x100到0x1FF的所有消息
filterConfig.IdType = FDCAN_STANDARD_ID;    // 标准ID
filterConfig.FilterIndex = 0;               // 过滤器索引
filterConfig.FilterType = FDCAN_FILTER_RANGE;
filterConfig.FilterConfig = FDCAN_FILTER_TO_RXFIFO0;
filterConfig.FilterID1 = 0x100;             // 起始ID
filterConfig.FilterID2 = 0x1FF;             // 结束ID

2. FDCAN_FILTER_DUAL - 双ID过滤器

一个过滤器槽可以匹配两个特定的ID。

工作原理:

  • 配置两个具体的ID
  • 只有完全匹配这两个ID之一的消息才会被接收
// 只接收ID为0x123和0x456的消息
filterConfig.FilterType = FDCAN_FILTER_DUAL;
filterConfig.FilterID1 = 0x123;             // 第一个ID
filterConfig.FilterID2 = 0x456;             // 第二个ID

3. FDCAN_FILTER_MASK - 掩码过滤器(最常用)

这是最灵活和常用的过滤器类型,类似于传统CAN的掩码模式。

工作原理

  • FilterID1 = 要匹配的ID(比较值)
  • FilterID2 = 掩码位(决定哪些位需要比较)
    • 1 = 必须匹配,该位必须匹配 FilterID1 的对应位
    • 0 = 不关心(任意值都可以)(可以是0或1)

标准ID的配置(11位)

配置规则:

  • 标准ID范围:0x000 ~ 0x7FF (11位)
  • FilterID1FilterID2 都使用11位
// 示例1:精确匹配单个ID 0x123
FilterID1 = 0x123;    // 要匹配的ID
FilterID2 = 0x7FF;    // 掩码:所有11位都必须匹配// 示例2:匹配ID范围 0x120-0x12F(低4位任意)
FilterID1 = 0x120;    // 比较值
FilterID2 = 0x7F0;    // 掩码:高7位(12)必须匹配,低4位任意// 示例3:匹配所有以0x10开头的ID(0x100-0x1FF)
FilterID1 = 0x100;    // 比较值  
FilterID2 = 0x700;    // 掩码:高3位(1)必须匹配,低8位任意// 示例4:接收所有标准ID消息
FilterID1 = 0x000;    // 比较值(任意)
FilterID2 = 0x000;    // 掩码:所有位都不检查

怎么知道哪些是在匹配ID范围

标准ID结构: [高3位] [中间4位] [低4位]

先看FilterID2的取值,如果有全1的必须匹配(即高3为111,中间四位为1111,低4位为1111)

例如 0x7FF转换为二进制是 111 1111 1111(11位),很明显高3位,中间4位,低4位都是1,所以对应的FilterID1的高3位必须为001,中间四位必须为0010,低4位必须为0011,即0x123,只有一个匹配的ID(如果都要1则应该是按从左到右1-3递增,如果低四位不是1(如0x7F0),则是0x12x(后面的x表示任意数0-F),如果中间四位和低四位都不是1(如0x700),则是0x1xx(后面的x表示任意数0-F))

扩展ID的配置(29位)

配置规则:

  • 扩展ID范围:0x00000000 ~ 0x1FFFFFFF (29位)
  • FilterID1FilterID2 都使用29位
// 示例1:精确匹配单个扩展ID 0x12345678
FilterID1 = 0x12345678;    // 要匹配的扩展ID
FilterID2 = 0x1FFFFFFF;   // 掩码:所有29位都必须匹配// 示例2:匹配扩展ID范围 0x1234000-0x1234FFF(低12位任意)
FilterID1 = 0x12340000;    // 比较值
FilterID2 = 0x1FFF0000;   // 掩码:高17位(1234)必须匹配,低12位任意// 示例3:匹配所有以0x100开头的扩展ID
FilterID1 = 0x10000000;   // 比较值
FilterID2 = 0x1FF00000;   // 掩码:高9位(100)必须匹配,低20位任意// 示例4:接收所有扩展ID消息
FilterID1 = 0x00000000;   // 比较值(任意)
FilterID2 = 0x00000000;   // 掩码:所有位都不检查

怎么知道哪些是在匹配ID范围(原理与标准ID类似)

具体看我另一个文章,链接:https://www.cnblogs.com/lgs7/p/19291993

4. FDCAN_FILTER_RANGE_NO_EIDM - 无EID掩码的范围过滤器

这是专门用于扩展ID的范围过滤器,忽略EIDM(扩展ID掩码)设置。

工作原理:

  • 类似于范围过滤器,但专门为扩展ID设计
  • 忽略EIDM寄存器的设置,使用完整的29位扩展ID进行比较
// 接收扩展ID从0x10000到0x1FFFF的所有消息
filterConfig.IdType = FDCAN_EXTENDED_ID;    // 扩展ID
filterConfig.FilterType = FDCAN_FILTER_RANGE_NO_EIDM;
filterConfig.FilterID1 = 0x10000;           // 起始扩展ID
filterConfig.FilterID2 = 0x1FFFF;           // 结束扩展ID

实际应用示例

FDCAN_FilterTypeDef filterConfig;// 示例1:掩码过滤器 - 接收ID 0x100-0x103
filterConfig.FilterType = FDCAN_FILTER_MASK;
filterConfig.FilterIndex = 0;
filterConfig.FilterID1 = 0x100;             // 比较值
filterConfig.FilterID2 = 0x7FC;             // 掩码:匹配高9位,忽略低2位// 这样会匹配 0x100, 0x101, 0x102, 0x103// 示例2:范围过滤器 - 接收ID 0x200-0x2FF
filterConfig.FilterType = FDCAN_FILTER_RANGE;
filterConfig.FilterID1 = 0x200;             // 起始ID
filterConfig.FilterID2 = 0x2FF;             // 结束ID// 示例3:双ID过滤器 - 只接收0x123和0x456
filterConfig.FilterType = FDCAN_FILTER_DUAL;
filterConfig.FilterID1 = 0x123;
filterConfig.FilterID2 = 0x456;// 配置过滤器
HAL_FDCAN_ConfigFilter(&hfdcan1, &filterConfig);
  • 精确匹配特定ID:使用 FDCAN_FILTER_DUAL
  • 匹配一组连续的ID:使用 FDCAN_FILTER_RANGE
  • 灵活的模式匹配:使用 FDCAN_FILTER_MASK(最常用)
  • 扩展ID的范围过滤:使用 FDCAN_FILTER_RANGE_NO_EIDM

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/982758.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

2025年度常州十大雪山草鸡火锅品牌排行榜,鲜珍珍雪山草鸡火

为帮助常州本地食客精准锁定口味地道、品质可靠的雪山草鸡火锅门店,避免踩雷预制菜陷阱,我们从食材新鲜度(养殖溯源、现杀现做)、口味地道性(汤底熬制工艺、药膳配比)、服务体验(就餐环境、响应速度)及本地口碑…

SQL Server 收缩日志

📣收缩日志其中的 TEST_U8CLOUD 为需要收缩的日志数据库名其中的 TEST_U8CLOUD 为需要收缩的日志数据库名DECLARE @dbName NVARCHAR(100); SET @dbName = TEST_U8CLOUD; --数据库名称 DECLARE @logFileName NVARCHAR…

ubuntu_12.04_nfs安装与设置

ubuntu_12.04_nfs安装与设置 OS: ubuntu 120.4 64位 LTS 1.安装NFS $sudo -s #apt-get install nfs-kernel-server2.建立nfs共享目录 #cd ~ #mkdir nfsboot #chmod -R 777 nfsboot3.设置权限 打开/etc/exports文件,在…

Java记录类入门:简化的以数据为中心的Java编程

记录类声明是一种在Java类中封装数据同时减少样板代码的高效方式。本文将通过基础及高级编程场景介绍其工作原理。Java记录类是一种用于存储数据的新型类。无需编写构造方法、访问器、equals()、hashCode() 和 toStrin…

写个chrome插件屏蔽某些视频,防止孩子看些不正常的视频

写个chrome插件屏蔽某些视频,防止孩子看些不正常的视频Posted on 2025-12-01 11:22 隐客 阅读(0) 评论(0) 收藏 举报manifest.json{"manifest_version": 3,"name": "抖音关键词屏蔽&qu…

ODB和其他C++ ORM框架相比有什么优势?

ODB 作为 C++ 领域的老牌 ORM 框架,与其他 C++ ORM(如 SQLiteCpp、ORMpp、Drogon ORM、Qt SQL 等)相比,在性能、设计理念、功能完整性等方面具有显著优势,以下是其核心竞争力的详细分析: 一、编译期代码生成,极…

2025年cpvc化工管源头厂家权威推荐榜单:upvc化工管/pph化工管/pph工业管源头厂家精选

在现代化工、电子半导体、环保水处理等行业快速发展的背景下,CPVC化工管以其卓越的耐腐蚀性、耐热性及稳定的化学性能,成为腐蚀性介质输送系统的关键材料。数据显示,高性能CPVC管道在强腐蚀环境下的使用寿命可比普通…

论文阅读:《AI大模型时代:向量数据库如何挑战存储极限?》

收获总结:AI不是只靠GPU堆出来的,背后需要一个“聪明”的存储系统——它要能分层、能提速、能省钱,还要适配AI工作流的不同阶段。 核心观点一:AI数据管道是“动态闭环”,不是“一条直线” 很多人以为AI流程就是:…

C++ ODB ORM 从入门到实战应用

C++ ODB ORM 从入门到实战应用 ODB(Object-Relational Mapping)是 C++ 领域成熟的 ORM 框架,由 Code Synthesis 开发,能将 C++ 对象与关系型数据库(如 MySQL、PostgreSQL、SQLite)无缝映射,避免手动编写 SQL 语…

【EF Core】两种方法记录生成的 SQL 语句

原本计划 N 天前写的内容,无奈拖到今天。大伙伴们可能都了解,年近岁末,风干物燥,bug 特多,改需求的精力特旺盛。有几个工厂的项目需要不同程度的修改或修复。这些项目都是老周个人名义与他们长期合作的(有些项目…

ubuntu_12.04_tftp的安装与设置

ubuntu_12.04_tftp的安装与设置 1.安装 tftp-hpa(这是客户端) tftpd-hpa(这是服务端) xinetd(什么是xinetd) sudo apt-get install tftp-hpa tftpd-hpa xinetd2.建立服务的目录tftpboot cd ~mkdir tftpbootchmod -R…

2025年仓储货架厂家综合实力排行榜:三阳货架领跑行业

文章摘要 本文基于中国仓储与配送协会2022-2024年度行业调研数据,对全国主流货架厂家进行综合评估。通过对产品品质、服务能力、技术实力、企业规模四大维度的量化分析,甘肃三阳仓储设备有限公司以94.6分的综合评分位…

2025年知名的企业网站建设价格与服务对照表

2025年知名的企业网站建设价格与服务对照表 行业背景与市场趋势 随着数字化转型的加速推进,企业网站建设已成为品牌展示、客户引流和业务拓展的重要工具。2025年,企业网站建设市场呈现出更加精细化、智能化和个性化…

组装成树

我来为你提供几种Java实现菜单树形结构的方案: 方案一:使用递归构建树形结构 // 菜单实体类 @Data public class Menu { private String code; private String parentCode; private String name; private Integer so…

AI生成代码系列:在不干扰开发者体验的情况下集成开源代码片段检测

AI生成代码系列:在不干扰开发者体验的情况下集成开源代码片段检测转载自FossID AI生成代码:如何快速推进且不破坏现有系统 在生成式人工智能Gen-AI时代,企业应对软件风险管理的方式正发生实质性转变。软件工程团队正…

2025 武汉文化课集训学校权威推荐榜单

随着高考竞争的日益激烈,优质的文化课集训学校成为高三学子提升成绩的重要助力。本榜单基于武汉市教育主管部门资质审核结果、第三方教育评估机构数据及学员真实反馈,从办学资质、师资力量、教学成果、管理体系等维度…

2025年国标mpp电力管直销厂家权威推荐榜单:mpp电力管/mpp电缆保护管/mpp电力管穿线管源头厂家精选

在城市化进程持续加速与电网升级改造的背景下,MPP电力管作为电力电缆保护的核心材料,其质量直接关系到电网工程的安全性与使用寿命。严格的国标产品与规模化源头厂家,已成为市政工程、电网建设等领域采购决策的关键…

2025年密封垫片生产厂家联系方式完整汇总:全国重点企业官方联系方式与高效采购指引

本文基于2025年行业公开数据和中国摩擦密封材料协会报告,结合推荐对象参考内容,从专业能力、服务稳定性、资源网络等维度筛选5个推荐对象,旨在为密封垫片生产厂家领域提供可靠联系方案。根据中国密封材料行业年度报…

标题:2025年密封垫片生产厂家联系方式完整汇总:全国重点企业官方联系方式与高效采购指引

本文基于2025年行业公开数据和权威第三方报告,结合推荐对象参考内容,从专业能力、服务稳定性、资源网络等维度筛选5个推荐对象,旨在为密封垫片生产厂家领域提供可靠联系方案。根据中国摩擦密封材料协会数据显示,20…

2025年评价高的多功能移动餐车十大热门品牌推荐榜

2025年评价高的多功能移动餐车热门品牌推荐榜 开篇:行业背景与市场趋势 随着城市化进程加快和消费升级,移动餐车行业在2025年迎来爆发式增长。这种灵活、低成本的餐饮经营模式不仅满足了消费者对便捷、多样化美食的…