天天看点

ST芯片 CAN 滤波器配置filter banksScalable WidthIdentifier Mask / Identifier List

filter banks

假设有 28 个 filter banks,那么这 28 FB 是可以任意被分配给 FIFO0 或者 FIFO1 的。

Each filter bank i is composed of two 32-bit registers.

也就是说,每个 filter bank 都是成对的 32bit 的寄存器。

为什么会有两个呢?这两个该怎么用呢?后面细说。

Scalable Width

每个 FB 可以灵活使用:

  • 被分配成一个 32bit 的滤波地址,可以适配一个扩展帧
  • 被分配成两个 16bit 的滤波地址,可以适配两个标准帧

Identifier Mask / Identifier List

Identifier Mask

In mask mode the identifier registers are associated with mask registers specifying which bits of the identifier are handled as “must match” or as “don’t care”.

ST芯片 CAN 滤波器配置filter banksScalable WidthIdentifier Mask / Identifier List

每个 filter bank 有两个 32bit 的寄存器。

其中第二个寄存器当作掩码,第一个寄存器设置“所掩”的哪些位应该是 “1” 还是 “0”

Identifer List

这个就比较简单啦。

每个寄存器,设置的值是多少,可以接收这个值的 ID。

。。。

所以:

如果是扩展帧并设置为 Identifier Mask 模式,一个 Filter Bank 只能完成一组设置。(完成一类 ID的设置)。

如果是标准帧并设置为 Identifier Mask 模式,一个 Filter Bank 可以完成两组设置。(完成两类 ID 的设置)。

如果是扩展帧并设置为 Identifier List 模式,一个 Filter Bank 可以设置成两个 ID。

如果是标准帧并设置为 Identifier List 模式,一个 Filter Bank 可以设置成四个 ID.