CAN过滤器,位时序和模式

本文详细介绍了STM32F1的CAN模块,包括28个过滤器的配置,如32位和16位过滤器模式,以及CAN_FMR寄存器的使用。位时序部分讲解了同步段、传播时间段、相位缓冲段的设定,以及如何通过位时序实现不同单元间的同步。此外,还阐述了环回模式、静默模式和环回静默模式的应用,如自测试和总线活动分析。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目录

过滤器

    CAN_FMR 寄存器

位时序

环回模式和静默模式

环回模式

静默模式

环回静默模式


过滤器

 由上图可知的是,CAN1、CAN2共用28个过滤器(bxCAN中最多有28个过滤器)。通过CAN_FMR 寄存器的设置,可以设置过滤器的分配方式。

STM32F1 每个过滤器组可提供:

  • 1 个 32 位过滤器,包括:STDID[10:0]、EXTID[17:0]、IDE 和 RTR位
  • 2 个 16 位过滤器,包括:STDID[10:0]、IDE、RTR 和 EXTID[17:15]位

可配置为:屏蔽位模式,标识符列表模式

  • 屏蔽位模式:标识符寄存器和屏蔽寄存器一起,指定报文标识符的任何一位,应该按 照“必须匹配”或“不用关心”处理。
  • 标识符列表模式:此模式下,屏蔽寄存器被当作标识符寄存器用。所以这里是使用两个标识符寄存器。接收报文标识符的每一位都必须跟过滤器标识符相同。

    CAN_FMR 寄存器

  • 为了过滤出一组标识符,应该设置过滤器组工作在屏蔽位模式。
  • 为了过滤出一个标识符,应该设置过滤器组工作在标识符列表模式。
  • 应用程序不用的过滤器组,应该保持在禁用状态。

位时序

由发送单元在非同步的情况下发送的每秒钟的位数称为位速率。

一个位可分为 4 段:

  • 同步段(SS)
  • 传播时间段(PTS)
  • 相位缓冲段 1(PBS1)
  • 相位缓冲段 2(PBS2)

这些段又由可称为 Time Quantum(以下称为 Tq)的最小时间单位构成。

  • 1 位分为 4 个段,每个段又由若干个 Tq 构成,这称为位时序。
  • 1位由多少个 Tq 构成、每个段又由多少个 Tq 构成等,可以任意设定位时序。通过设定 位时序,多个单元可同时采样,也可任意设定采样点。
段名称       段的作用        Tq 数

同步段

SS

多个连接在总线上的单元通过此段实现时序 调整,同步进行接收和发送的工作。由隐性电 平到显性电平的边沿或由显性电平到隐性电 平边沿最好出现在此段中。1Tq8~25Tq

传播时间段

PTS

用于吸收网络上的物理延迟的段

物理延迟指的就是传播过程中会出现的延迟

这个段的时间为以上各延迟时间的和的两倍。

1~8Tq

相位缓冲段 1

PBS1

当信号边沿不能被包含于 SS 段中时,可在此 段进行补偿。

由于各单元以各自独立的时钟工作,细微的时 钟误差会累积起来,PBS 段可用于吸收此误 差。

通过对相位缓冲段加减 SJW 吸收误差。SJW 加大后允许误差加大,但 通信速度下降。

1~8Tq

相位缓冲段 2

PBS2

2~8Tq

再同步补偿宽度

SJW

因时钟频率偏差、传送延迟等,各单元有同步 误差。SJW 为补偿此误差的最大值。1~4Tq

1个位构成图如下

 

  • CAN挂靠在APB1(一般为36Mhz)总线下
  • 波特率计算公式为1/(tq+tbs1+tbs2)

环回模式和静默模式

环回模式

在环回模式下,bxCAN 把发送的报文当作接收的报文并保存(如果可以通过接收过滤)在接 收邮箱里。也就是环回模式是一个自发自收的模式。

  •  环回模式可用于自测试
  • 在环回模式下,bxCAN 在内部把 Tx 输出 回馈到 Rx 输入上,而完全忽略 CANRX 引脚的实际状态。发送的报文可以在 CANTX 引脚上 检测到。

 

静默模式

  • 在静默模式下,bxCAN可以正常地接收数据帧和远程帧,但只能发出隐性位,而不能真正发送 报文。
  • 静默模式通常用于分析CAN总线的活动,而不会对总线造成影响-显性位(确认位、 错误帧)不会真正发送到总线上。

环回静默模式

 

该模式可用于 “热自测试”,即可以像环回模式那样测试bxCAN,但却不会影响CANTX和CANRX所连接的 整个CAN系统。在环回静默模式下,CANRX引脚与CAN总线断开,同时CANTX引脚被驱动到 隐性位状态

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值