首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

SIM32F107VCT6平台的bxCAN标识符过滤技术与应用(2)

SIM32F107VCT6平台的bxCAN标识符过滤技术与应用(2)

图2是bxCAN控制器标识符过滤机制的说明。3个过滤器组处于标识符列表模式,其他的过滤器组处于标识符屏蔽模式。工作在标识符列表模式下过滤器组的标识符为0、1、4、5,而工作在标识符屏蔽位模式下的过滤器组的标识符为2、3.假设有一数据报文的标识符为4,当该报文到达接收节点后,就会首先与列表模式下的标识符比对。显然报文标识符与标识符为4的过滤器匹配,因此报文内容被存入FIFO,同时过滤器编号被保存在过滤器匹配序号域FMI中。如果数据报文的标识符与列表模式下的过滤器组的标识符不匹配,假设标识符为3,则报文标识符会与屏蔽位模式下的过滤器组比对,而该类过滤器组中有标识符为8的过滤器,则数据报文匹配后也会被送入FIFO,并保存匹配序号。

  4 标识符过滤编程实现
  为了更加清楚地说明bxCAN控制器标识符过滤的应用方法,以C语言编制实验程序,该程序在MDK平台开发环境下,通过JTAG接口进行实时调试、仿真和下载,并在实际应用中得到了验证。
  主要的代码如下:

  上述代码设置好后,过滤器开始工作,且过滤器位宽为32位,工作在屏蔽模式。只过滤基本ID为00000000000B的数据包,其他标识符的数据包由硬件丢弃。
  结语
  本文主要研究了STFM32F107VCT6芯片的bxCAN控制器的标识符过滤使用技术。要使用bxCAN控制器的标识符过滤功能,需要首先通过位宽寄存器CANFS1R的FSCx位设置过滤器位宽,之后通过主控寄存器CAN_FMR的FBMx位设置过滤器模式,最终在相应的位宽及过滤器模式下通过过滤器组CAN_FxR1和CAN_FxR2实现标识符的硬件过滤设置。
  使用标识符的硬件过滤可以实现复杂的验收滤波功能,并且硬件过滤不占用CPU的额外资源,上述特点非常适于嵌入式系统的数据收发功能。本文对嵌入式开发过程中使用STM32F107VCT6芯片的bxCAN控制器收发数据具有一定的借鉴作用。
继承事业,薪火相传
返回列表