CAN总线的过滤器与邮箱(四)

编程入门 行业动态 更新时间:2024-10-10 06:20:23

CAN总线的<a href=https://www.elefans.com/category/jswz/34/1771166.html style=过滤器与邮箱(四)"/>

CAN总线的过滤器与邮箱(四)

系列文章目录


文章目录

  • 系列文章目录
  • 前言
  • 一、过滤器的作用
  • 二、可变的位宽
  • 三、屏蔽位模式
  • 四、标识符列表模式
  • 五、过滤器组位宽和模式的设置
  • 六、过滤器优先级规则
  • 七、邮箱
    • 1.发送邮箱
    • 2.接收邮箱


前言

STM32提供两种过滤器模式供用户选择,屏蔽位模式(标识符屏蔽位模式)和标识符列表模式。


一、过滤器的作用

过滤器在接收时使用,在发送时不需配置过滤器!过滤器会根据标识符而决定节点要不要发送者发过来的报文。通俗一点:是我想要的,我就要;不是我想要的,我就不要。

二、可变的位宽

三、屏蔽位模式

四、标识符列表模式

五、过滤器组位宽和模式的设置

过滤器组可以通过相应的CAN_FMR寄存器配置。在配置一个过滤器组前,必须通过清除CAN_FAR寄存器的FACT位,把它设置为禁用状态。通过设置CAN_FS1R的相应FSCx位,可控制器局域网(bxCAN)

通过CAN_FMR的FBMx位,可以配置对应的屏蔽/标识符寄存器的标识符列表模式或屏蔽位模式
为了过滤出一组标识符,应该设置过滤器组工作在屏蔽位模式。
为了过滤出一个标识符,应该设置过滤器组工作在标识符列表模式
应用程序不用的过滤器组,应该保持在禁用状态。
过滤器组中的每个过滤器,都被编号为(叫做过滤器号)从0开始,到某个最大数值-取决于过滤器组的模式和位宽的设置

一旦收到的报文被存入FIFO,就可被应用程序访问。通常情况下,报文中的数据被拷贝到
SRAM中;为了把数据拷贝到合适的位置,应用程序需要根据报文的标识符来辨别不同的数
据。 bxCAN提供了过滤器匹配序号,以简化这一辨别过程。

六、过滤器优先级规则

根据过滤器的不同配置,有可能一个报文标识符能通过多个过滤器的过滤;在这种情况下,存放在接收邮箱中的过滤器匹配序号,根据下列优先级规则来确定:

  1. 位宽为32位的过滤器,优先级高于位宽为16位的过滤器
  2. 对于位宽相同的过滤器,标识符列表模式的优先级高于屏蔽位模式
  3. 位宽和模式都相同的过滤器,优先级由过滤器号决定,过滤器号小的优先级高

七、邮箱

邮箱是软件和硬件之间传递报文的接口。邮箱包含了所有跟报文有关的信息:标识符、数据、控制、状态和时间戳信息。

1.发送邮箱

软件需要在一个空的发送邮箱中,把待发送报文的各种信息设置好(然后再发出发送的请求)。发送的状态可通过查询CAN_TSR寄存器获知。

2.接收邮箱

在接收到一个报文后,软件就可以访问接收FIFO的输出邮箱来读取它。一旦软件处理了报文(如把它读出来),软件就应该对CAN_RFxR寄存器的RFOM位进行置’1’,来释放该报文,以便为后控制器局域网(bxCAN)
面收到的报文留出存储空间。过滤器匹配序号存放在CAN_RDTxR寄存器的FMI域中。 16位的时间戳存放在CAN_RDTxR寄存器的TIME[15:0]域中。

更多推荐

CAN总线的过滤器与邮箱(四)

本文发布于:2024-02-13 06:19:57,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1757821.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:过滤器   总线   邮箱

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!