下载此文档

01-STM32之CAN -CAN ID过滤器分析.doc


文档分类:医学/心理学 | 页数:约12页 举报非法文档有奖
1/12
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该文档所得收入归上传者、原创者。
  • 3.下载的文档,不会出现我们的网址水印。
1/12 下载此文档
文档列表 文档介绍
------------------------------------------------------------------------------------------------ —————————————————————————————————————— 01-STM32 之 CAN -CAN ID 过滤器分析 STM32 之 CAN ---CAN ID 过滤器分析 1 前言在 CAN 协议里,报文的标识符不代表节点的地址,而是跟报文的内容相关的。因此, 发送者以广播的形式把报文发送给所有的接收者。节点在接收报文时, 根据标识符(CAN ID) 的值决定软件是否需要该报文; 如果需要, 就拷贝到 SRAM 里; 如果不需要, 报文就被丢弃且无需软件的干预。为满足这一需求, bxCAN 为应用程序提供了 14 个位宽可变的、可配置的过滤器组(13~0) ,以便只接收那些软件需要的报文。硬件过滤的做法节省了 CPU 开销,否则就必须由软件过滤从而占用一定的 CPU 开销。每个过滤器组x由2个32 位寄存器, CAN_FxR 0和 CAN_FxR 1 组成。为了让大家了解 STM32 的 bxCAN 的接收过滤机制,首先大家需要了解几个概念。 2 几个重要的概念 过滤器组 STM32 总共提供 14 个过滤器组来处理 CAN 接收过滤问题, 每个过滤器组包含两个 32 位寄存器 CAN_FxR0 和 CAN_FxR1 组成, 在设置为屏蔽位模式下, 其中一个作为标识符寄存器, 另一个作为屏蔽码寄存器。过滤器组中的每个过滤器,编号( 叫做过滤器号)从0 开始,到某个最大数值( 这时最大值并非 13, 而是取决于 14 个过滤器组的模------------------------------------------------------------------------------------------------ ——————————————————————————————————————式和位宽的设置, 当全部配置为位宽为 16, 且为标识符列表模式时, 最大编号为 14*4-1=55 )。 过滤器的过滤模式 STM32 提供两种过滤模式供用户设置: 屏蔽位模式和标识符列表模式。 屏蔽位模式为了过滤出一组标识符,应该设置过滤器组工作在屏蔽位模式。在屏蔽位模式下, 标识符寄存器和屏蔽寄存器一起, 指定报文标识符的任何一位,应该按照“必须匹配”或“不用关心”处理。 2 . 标识符列表模式为了过滤出一个标识符, 应该设置过滤器组工作在标识符列表模式。在标识符列表模式下,屏蔽寄存器也被当作标识符寄存器用。因此, 不是采用一个标识符加一个屏蔽位的方式, 而是使用 2 个标识符寄存器。接收报文标识符的每一位都必须跟过滤器标识符相同。 过滤器的位宽每个过滤器组的位宽都可以独立配置, 以满足应用程序的不同需求。根据位宽的不同,每个过滤器组可提供: ●1个 32 位过滤器, 包括: STDID[10:0] 、 EXTID[17:0] 、 IDE 和 RTR 位●2个 16 位过滤器,包括: STDID[10:0] 、 IDE 、 RTR 和 EXTID[17:15] 位 过滤器组的过滤模式和位宽设置------------------------------------------------------------------------------------------------ ——————————————————————————————————————过滤器组可以通过相应的 CAN_FMR 寄存器( CAN 过滤器主控寄存器)配置。但是不是什么时候都可以直接配置, 在配置一个过滤器组前,必须通过清除 CAN_FAR 寄存器( CAN 过滤器激活寄存器)的 FACT 位,把它设置为禁用状态。然后才能设置或设置过滤器组的配置。? 通过设置 CAN_FS1R ( CAN 过滤器位宽寄存器) 的相应 FSCx 位, 可以配置一个过滤器组的位宽。? 通过 CAN_FM1R ( CAN 过滤器模式寄存器)的 FBMx 位,可以配置对应的屏蔽/ 标识符寄存器的标识符列表模式或屏蔽位模式。( 见后续 节) 应用程序不用的过滤器组,应该保持在禁用状态。关于过滤器配置,可参见下图:图1 过滤器匹配序号一旦收到的报文被存入 FIFO , 就可被应用程序访问。通常情况下, 报文中的数据被拷贝到 SRAM 中;为了把数据拷贝到合适的位置,应用程序需要根据报文的标识符来辨别不同的数据。 bxCAN 提供了过滤器匹配序号,以简化这一辨别过程。根据过滤器优先级规则, 过滤器匹配序号

01-STM32之CAN -CAN ID过滤器分析 来自淘豆网m.daumloan.com转载请标明出处.

相关文档 更多>>
非法内容举报中心
文档信息
  • 页数12
  • 收藏数0 收藏
  • 顶次数0
  • 上传人wz_198614
  • 文件大小22 KB
  • 时间2017-06-02