ZHCAD88 October 2023 TMS320F280039
标准(或扩展)过滤器元素由以下字段定义:
各个函数可能根据过滤器类型而有所不同,如表 8-1 和表 8-2 所示:
参数 | 说明 |
---|---|
标准过滤器类型 (SFT) | 0x0:从 SFID1 到 SFID2 的范围过滤器 (SFID1<= SFID2) 0x1:用于 SFID1 或 SFID2 的双 ID 过滤器 0x2:传统过滤器:SFID1 = 过滤器;SFID2 = 掩码 0x3:过滤器元素已禁用 |
标准过滤器元素配置 (SFEC) | 0x0:禁用过滤器元素 0x1:如果过滤器匹配,则存储在 Rx FIFO 0 中 0x2:如果过滤器匹配,则存储在 Rx FIFO 1 中 0x3:如果过滤器匹配,则拒绝 ID 0x4:如果过滤器匹配,则设置优先级 0x5:如果过滤器匹配,则设置优先级并存储在 Rx FIFO 0 中 0x6:如果过滤器匹配,则设置优先级并存储在 Rx FIFO 1 中 0x7:存储在 Rx 缓冲器中,忽略 SFT [1:0] 字段 |
参数 | 说明 |
---|---|
扩展过滤器类型 (EFT) | 0x0:从 EFID1 到 EFID2 的范围过滤器 (EFID1<= EFID2) 0x1:用于 EFID1 或 EFID2 的双 ID 过滤器 0x2:传统过滤器:EFID1 = 过滤器;EFID2 = 掩码 0x3:从 EFID1 到 EFID2 的范围过滤器 (EFID1<= EFID2),未应用 XIDAM 掩码 |
扩展过滤器元素配置 (EFEC) | 0x0:禁用过滤器元素 0x1:如果过滤器匹配,则存储在 Rx FIFO 0 中 0x2:如果过滤器匹配,则存储在 Rx FIFO 1 中 0x3:如果过滤器匹配,则拒绝 ID 0x4:如果过滤器匹配,则设置优先级 0x5:如果过滤器匹配,则设置优先级并存储在 Rx FIFO 0 中 0x6:如果过滤器匹配,则设置优先级并存储在 Rx FIFO 1 中 0x7:存储在 Rx 缓冲器中,忽略 EFT 字段 |
下面显示了一个设置标准过滤器元素的示例:
如果应用需要过滤器配置,以便
在这种情况下,要添加的标准过滤器元素如表 8-3 所示:
过滤器元素编号 (filtNum) |
标准过滤器类型 (sft) |
标准过滤器元素配置 (sfec) |
标准过滤器 ID 1 (sfid1) |
标准过滤器 ID 2 (sfid2) |
---|---|---|---|---|
0 | xx = 不用考虑 | 111 = 存储在 Rx 缓冲器中 | 0x04 | 0x05 |
1 | 10 = 传统位掩码过滤器 | 001 = 存储在 Rx FIFO 0 中 | 0x371(过滤器) | 0x0C(掩码) |
2 | 01 = 双 ID | 011 = 拒绝 | 0xF4 | 0x23 |
3 | 00 = 范围过滤器 | 010 = 存储在 Rx FIFO 1 中 | 0x734 | 0x75A |
当访问任何标准过滤器元素时,地址是在消息 RAM 配置期间初始化到寄存器 (MCAN_SIDFC.FLSSA) 的起始地址加上过滤器元素的字大小乘以过滤器元素的索引。然而,当根据过滤器列表评估任何接收到的帧时,模块检查的过滤器至多仅为在消息 RAM 配置期间初始化到寄存器 (MCAN_SIDFC.LSS) 的数量。
注意:确保过滤器元素索引不超过初始化的值 (MCAN_SIDFC.LSS);否则过滤器元素基准可能会出现问题。