首页 > 其他分享 >CAN-关于CAN过滤器的一些设置方法

CAN-关于CAN过滤器的一些设置方法

时间:2023-03-02 09:55:26浏览次数:24  
标签:32 模式 掩码 CAN2 关于 设置 过滤器 ID

                                                                                                     CAN过滤器配置以及常见问题总结
过滤器组
在具有两个CAN的产品中,CAN1和CAN2分享28个过滤器组,只有一个CAN的系列产品中有14个过滤器组,用以对接收到的帧进行过滤。
• 设置为掩码模式主要是为了过滤出一组(多个)符合要求的ID;
• 设置为列表模式主要是为了过滤出一个或多个符合要求的ID;
• 设置16位过滤器只能用来过滤标准帧ID;
• 设置32位过滤器一般用来过滤扩展帧ID(当然也可以过滤标准帧);

一个过滤器组是由两个32位寄存器组成,可以将其配置为:
• 四个16位列表模式的过滤器,可以过滤出来四个ID号的信息;
• 两个16位掩码模式过滤器
• 一个32位掩码模式过滤器

下面介绍下掩码模式:
当我们设置为掩码模式时:一般我们称CAN_FxR1寄存器为ID寄存器(或者验证码寄存器),CAN_FxR1为掩码寄存器。

具体代码体现为:(315,316,317,318,均是需要左移五位填入相应寄存器的。注意32位掩码模式具体怎么移位可参考下面的32位列表ID怎么移位的)

掩码模式的过滤器计算逻辑为:其实就是掩码位与ID位对应,掩码位为1的通过,掩码位为0的随意。可参考如下示例:假设ID和掩码分别为
ID码: 11 0001 0110 //0x316
掩码: 11 0001 0111//0x317
那么计算结果就为:
1 1 x x x 1 x 1 1 0 ,(x可为0,可为1)这些数据均可通过过滤器。
如此可自行计算上面可通过的ID是什么?

下面介绍下列表模式:

可过滤出一个标识。此时CAN_FxR0和CAN_FxR1中的都是要匹配的标识符,收到的帧的标识符必须与其中的一个吻合才能通过过滤。注意:CAN_FilterIdHigh是指高16位CAN_FilterIdLow是低16位应该将需要得到的帧的和过滤器的设置值左对齐。
所有的过滤器是并联的,即一个报文只要通过了一个过滤器,就是算是有效的。
按工作模式和宽度,一个过滤器组可以变成以下几中形式之一:
(1) 1个32位的屏蔽位模式的过滤器。
(2) 2个32位的列表模式的过滤器。
(3) 2个16位的屏蔽位模式的过滤器。
(4) 4个16位的列表模式的过滤器。
如下面配置,四个16位ID(0x314,0x315,0x316,0x317)都可通过

那么32ID该怎么配置呢,(我们以32位列表为例,下面配置则通过的ID为0x12345678),至于为什么这样移位这里不再赘述,想知道的具体可看下寄存器手册

总结:我们发现ID是通过移位来实现的,具体原因参考手册中此寄存器

 

 

那么可对比列表模式和掩码模式优缺点:

 

常见CAN配置问题:
1.怎么配置多个过滤器?

像上面那种配置则表示过滤器组0,1与fifo0绑定,每个过滤器独立,可随意配置,如过滤器0可绑定fifo0,也可绑定fifo1。

2.CAN最多可配置几个过滤器组?

如果设备只有一个CAN,则最多14个(0-13),若有两个CAN,则最多27个(程序若不进行配置则默认CAN1可用0-13,CAN2可用14-27),可配置CAN2过滤器开始组,需注意CAN2使用的过滤器组好默认为开始组以后。
具体参考代码如下:如果这里填9,那么CAN1能使用的过滤器组为0-8,CAN2为9-27。

3.例程改为CAN2不能使用?

可参考上面的问题,需注意CAN2使用的过滤器组好默认为开始组以后,如果不进行配置则按照默认值分配。相关寄存器如下,可看到默认值为01110,则CAN2默认开始组为14。

 

标签:32,模式,掩码,CAN2,关于,设置,过滤器,ID
From: https://www.cnblogs.com/wchmcu/p/17170782.html

相关文章

  • 关于本地项目上传到gitlab
    两种方式的说明,如果是以学习的目的,建议使用第一种方式;如果是为了快速把代码上传到gitlab,建议使用第二方式;查看git配置的命令,注意:不同的目录,配置项也不尽相同:gitconfig--......
  • 关于VMware Centos 7 xshell 连接不上的情况
    关于VMwareCentos7xshell连接不上的情况1、现象在xshell检查ping主机发现能ping同,但是无法ssh上。2、检查思路(先检查系统---》再检查VMware---》台式机)2.1是否......
  • 关于我近期的面试和笔试
      今天突发奇想,想简单记录一下我这段时间来经历的面试和笔试,主要是面试。开这个帖的主要目的是为了总结自己每次面试和笔试的经验,也希望每个看到这个帖子的人能有所收获,......
  • 16.设置允许跨域
      @ConfigurationpublicclassBianenCorsConfiguration{@BeanpublicCorsWebFiltercorsWebFilter(){UrlBasedCorsConfigurationSourcesour......
  • WGCLOUD的基础使用 - 邮件告警设置说明
    WGCLOUD的邮件告警配置比较简单,不过还是写一下,因为有时候一些细节容易被忽略本文以qq邮箱发送为例说明,邮件告警配置成功后,所有告警通知都会自动发送邮件,如果不想接收邮件了,......
  • 安全SSH设置免密码登录
    SSH类似于Telnet,可以用来远程操控,但是这种方式走的是明文,这样不安全。安全shell是加过密的,这样就保证安全。1.执行命令,产生秘钥命令:ssh-keygen-t rsa,一直回车,产生两个......
  • SpringBoot过滤器获取请求Body
    packagecom.example.springboot.core;importlombok.extern.slf4j.Slf4j;importorg.springframework.stereotype.Component;importjavax.servlet.http.HttpServle......
  • 设置静态资源映射
    静态页面要么修改默认访问静态资源路径,要么将他们放在templates或static包下如何设置静态资源映射?@ConfigurationpublicclassWebMvcConfigextendsWebMvcConfigurat......
  • Java操作Excel之EasyExcel、标题、背景色设置
    首先不管是学习或者是了解什么技术都要先去看下官方文档https://alibaba-easyexcel.github.io/index.html原文地址 https://www.cnblogs.com/zhangsan-plus/p/16503278.h......
  • 关于配置中心-ConfigServer
               ......