STM32,CAN总线过滤器的设置详细讲解
来源:互联网 发布:linux系统ls命令 编辑:程序博客网 时间:2024/06/13 00:21
屏蔽位模式:
在屏蔽位模式下,标识符寄存器和屏蔽寄存器一起,指定报文标识符的任何一位,应该按照“必须匹配”和“不用关心”处理。
标识符列表模式:
在标识符列表模式下,屏蔽寄存器也被当做标识符寄存器用。因此,不是采用一个标识符加一个屏蔽位的方式,而是采用两个标识符寄存器。接收报文的每一位都必须跟过滤器标识符相同。
STM32普通型芯片的 CAN 有14组过滤器组(互联型有28组过滤器组) ,用以对接收到的
帧进行过滤。每组过滤器包括了2个可配置的32位寄存器:CAN_FxR0和 CAN_FxR1。
对于过滤器组, 可以将其配置成屏蔽位模式, 这样 CAN_FxR0中保存的就是标识符匹配值,
CAN_FxR1中保存的是屏蔽码,即 CAN_FxR1中如果某一位为1,则 CAN_FxR0中相应
的位必须与收到的帧的标志符中的相应位吻合才能通过过滤器; CAN_FxR1中为0的位表
示 CAN_FxR0中的相应位可不必与收到的帧进行匹配。 过滤器组还可以被配置成标识符列
表模式,此时 CAN_FxR0和 CAN_FxR1中的都是要匹配的标识符,收到的帧的标识符必
须与其中的一个吻合才能通过过滤。
一般我们用的都是普通型的,所以在本文中可以说 STM32有14组过滤器组。
根据配置,每1组过滤器组可以有1个,2个或4个过滤器。
这些过滤器相当于关卡,每当收到一条报文时,CAN 要先将收到的报文从这些过滤器上”
过”一下,能通过的报文是有效报文,收进 FIFO,不能通过的是无效报文(不是发给”我”
的报文),直接丢弃。
所有的过滤器是并联的,即一个报文只要通过了一个过滤器,就是算是有效的。
每组过滤器组有两种工作模式:标识符列表模式和标识符屏蔽位模式。
每组过滤器组必须关联且只能关联一个 FIFO。复位默认都关联到 FIFO_0。
所谓“关联”是指假如收到的报文从某个过滤器通过了,那么该报文会被存到该过滤器相连
的 FIFO。
从另一方面来说,每个 FIFO 都关联了一串的过滤器组,两个 FIFO 刚好瓜分了所有的过
滤器组。
- STM32,CAN总线过滤器的设置详细讲解
- STM32的CAN总线过滤器的配置
- STM32学习笔记:CAN总线的过滤器
- stm32之can总线过滤器研究
- stm32之can总线过滤器研究
- STM32 CAN总线标识符过滤器难点解析
- stm32之can总线过滤器研究
- stm32之can总线过滤器研究
- STM32 CAN应用-过滤器设置
- STM32的CAN总线使用
- STM32的CAN总线调试
- STM32的CAN总线使用指南
- STM32 CAN总线屏蔽寄存器设置
- STM32 CAN过滤器的学习心得
- STM32的CAN过滤器详解
- stm32之can总线过滤器的标准帧、扩展帧、远程帧等
- STM32之CAN ---CAN ID过滤器分析与设置 CAN_FilterInit
- 【转】 STM32的can总线实验心得
- HTTP响应状态码
- 【bzoj 1503】 [NOI2004]郁闷的出纳员
- C# 判断文件是否存在和文件读写
- 做硬件产品经理的困惑
- It's All Star☆Right彡 歌词翻译
- STM32,CAN总线过滤器的设置详细讲解
- 写出高效的Bug测试报告的9点建议(51Testing)
- c# 类
- LINUX下GDB调试
- 【bzoj 1699】[Usaco2007 Jan]Balanced Lineup排队
- 浏览器内部工作原理
- 观察者模式在MVP中的应用
- Vue入门实战01:搭建webpack+vue开发环境
- 「学园孤岛」ED 翻译