完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
CAN总线的标识符过滤器很重要。
1. 标识符过滤器是用于接收的,发送的时候无需设置过滤器,这点一定要整明白。 根据发送端发送来的帧数据,通过标识符过滤器就可以设置仅接收需要接收的帧数据有效降低CPU多余的处理时间。 2 什么是标识符? 标识符主要包括如下,也可以简单的理解仅包含ID号,但是在这里下面这些都是要包含的。 比如:数据帧和遥控帧,标识符就包含在其中,所以发送端发帧数据给接收端后,接收端就可以通过硬件标识符过滤器进行筛选,节省了CPU时间: |
|
相关推荐
|
|
3. 下面就是最重要的,STM32的CAN总线标识符滤波器组包含两种实现方法:
屏蔽位模式和标识符列表模式,这两种方式怎么理解呢,重点看下面的截图: |
|
|
|
|
|
书面上解释屏蔽位模式和标识符列表模式的区别
屏蔽位模式 在屏蔽位模式下,标识符寄存器和屏蔽寄存器一起,指定报文标识符的任何一位,应该按照“必须匹配”或“不用关心”处理。 标识符列表模式 在标识符列表模式下,屏蔽寄存器也被当作标识符寄存器用。因此,不是采用一个标识符加一个屏蔽位的方式,而是使用2个标识符寄存器。接收报文标识符的每一位都必须跟过滤器标识符相同。 =================================== 标识符的列表模式比较好理解,就是指的所有的过滤器寄存器位全部用于过滤,简单的说就是发送端发送的标识符所有的位必须跟接收端的滤波器寄存器定义一样。有一个位定义不一样,拒收此消息。 比STM32F103有14个过滤器组,如果采用两个16位的过滤器形式,那么就可以固定识别出14 * 4 = 56个不同的标识符,实际使用中也够用了。为什么是乘以4,注意看上面的截图,4个16位过滤器--标识符列表 =================================== |
|
|
|
|
|
屏蔽位模式要稍麻烦一些,我们以2个16位过滤器---标识符屏蔽为例进行说明:
将过滤器寄存器分成两个部分,标识符寄存器和屏蔽位寄存器。 上面截图中ID部分就是标识符寄存器,屏蔽部分就是屏蔽位寄存器。 比如 ID : 0xFED0; 屏蔽:0xFFE0; 那就是表示,接收端接受帧数据时,前11位的数值必须跟ID中定义的前11位一致,后面的5位数据忽略。 不管是什么值都可以。也即是说屏蔽位中的数值: 0: 不关心,该位不用于比较; 1: 必须匹配,到来的标识符位必须与滤波器对应的标识符寄存器位相一致。 基于此原因: 为了过滤出一组标识符,应该设置过滤器组工作在屏蔽位模式。 为了过滤出一个标识符,应该设置过滤器组工作在标识符列表模式。 |
|
|
|
|
|
嵌入式学习-飞凌嵌入式ElfBoard ELF 1板卡-移植前准备之git管理内核源码
304 浏览 0 评论
【瑞萨RA2L1入门学习】+ MacOS安装e2studio
253 浏览 0 评论
嵌入式学习-飞凌嵌入式ElfBoard ELF 1板卡-本地仓库管理之分支间的操作
650 浏览 0 评论
【RA-Eco-RA4E2-64PIN-V1.0开发板试用】3D 图形显示
510 浏览 0 评论
641 浏览 1 评论
【youyeetoo X1 windows 开发板体验】少儿AI智能STEAM积木平台
12209 浏览 31 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2025-1-24 01:36 , Processed in 0.557847 second(s), Total 69, Slave 52 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号