验收滤波器Verilog设计
With the help of the acceptance filter the CAN controller is able to allow passing of received messages to the RXFIFO only when the identifier bits of the received message are equal to the predefined ones within the acceptance filter registers.
类似Ethernet,CAN引入了子网的概念,IP包含Host ID和Network ID两部分,以Mask(子网掩码)区分。ACR和AMR就类似于Ethernet中的Mask,AF通过ACR和AMR起作用。
一个多功能的验收滤波器,该滤波器允许自动检查 标识符和 数据字节。
使用这些有效的滤波方法,可以防止对于 某个节点无效的报文或 报文组存储在接收缓冲器里,因此降低了主控制器的处理负载。
滤波器由 验收码寄存器和 屏蔽寄存器根据数据表给定算法来控制。
接收到的数据会和验收代码寄存器中的值进行逐位比较。
接收屏蔽寄存器定义与比较相关的位的位置(0=相关 1=不相关)。
只有 收到报文的相应的位与 验收代码寄存器相应的位相同,报文才会被接收。
换句话说,屏蔽位可以看成是“无视”的功能。在某种定义上,这两个寄存器是为 RXFIFO 也就是接受缓冲寄存器所准备的。
当多个报文在总线传输时,能进入到节点的 RXFIFO 只有相对应标示符的报文,那么该节点就要事先将接受的标示符写入接受代码寄存器,过后进行屏蔽动作,这一过程就是验收过滤。
通过时钟分频寄存器(CDR),地址31的BIT 7
| BIT.7 | BIT.6 | BIT.5 | BIT.4 | BIT.3 | BIT.2 | BIT.1 | BIT.0 |
|---|---|---|---|---|---|---|---|
| CAN Mode | CBP | RXINTEN | (0) | 关闭时钟 | CD.2 | CD.1 | CD.0 |
BIT 7 = 0,CAN Mode = BasicCAN
BIT 7 = 1,CAN Mode = PeliCAN
BasicCAN
验收代码寄存器(ACR),地址4
| BIT.7 | BIT.6 | BIT.5 | BIT.4 | BIT.3 | BIT.2 | BIT.1 | BIT.0 |
|---|---|---|---|---|---|---|---|
| AC.7 | AC.6 | AC.5 | AC.4 | AC.3 | AC.2 | AC.1 | AC.0 |
验收屏蔽寄存器(AMR),地址5
| BIT.7 | BIT.6 | BIT.5 | BIT.4 | BIT.3 | BIT.2 | BIT.1 | BIT.0 |
|---|---|---|---|---|---|---|---|
| AM.7 | AM.6 | AM.5 | AM.4 | AM.3 | AM.2 | AM.1 | AM.0 |
如果一条信息通过了验收滤波器的测试而且接收缓冲器有空间,那么ID和Data将被分别顺次写入 RXFIFO。

当信息被正确的接收完毕就会
- 接收状态位置高 (满)
接收中断使能位置高 使能 接收中断置高 (产生中断)

当满足以下方程的描述,则被接收:
[(ID.10-ID.3)≡ (AC.7-AC.0)] ∨ (AM.7-AM.0) ≡ 8'b1111_1111
Basic_Null_Match_o = (
(id[3] == acr0[0] | amr0[0]) &
(id[4] == acr0[1] | amr0[1]) &
(id[5] == acr0[2] | amr0[2]) &
(id[6] == acr0[3] | amr0[3]) &
(id[7] == acr0[4] | amr0[4]) &
(id[8] == acr0[5] | amr0[5]) &
(id[9] == acr0[6] | amr0[6]) &
(id[10]== acr0[7] | amr0[7]) );PeliCAN
模式寄存器(MOD),地址0:**
| MOD.7 | MOD.6 | MOD.5 | MOD.4 | MOD.3 | MOD.2 | MOD.1 | MOD.0 |
|---|---|---|---|---|---|---|---|
| - | - | - | SM | AFM | STM | LOM | RM |
复位模式下可写:
验收代码寄存器(ACRn),地址16-19:**
| BIT.7 | BIT.6 | BIT.5 | BIT.4 | BIT.3 | BIT.2 | BIT.1 | BIT.0 |
|---|---|---|---|---|---|---|---|
| ACRn.7 | ACRn.6 | ACRn.5 | ACRn.4 | ACRn.3 | ACRn.2 | ACRn.1 | ACRn.0 |
验收屏蔽寄存器(AMRn),地址20-23:**
| BIT.7 | BIT.6 | BIT.5 | BIT.4 | BIT.3 | BIT.2 | BIT.1 | BIT.0 |
|---|---|---|---|---|---|---|---|
| AMRn.7 | AMRn.6 | AMRn.5 | AMRn.4 | AMRn.3 | AMRn.2 | AMRn.1 | AMRn.0 |
PeliCAN 模式的验收滤波已被扩展 4 个 8 位的验收码寄存器 ACR0 ACR1 ACR2 和 ACR3 和验收屏蔽寄存器 AMR0 AMR1 AMR2 和 AMR3 可以用多种方法滤波报文。
单滤波器模式 :MOD.AFM = 1
0x00 接收标准帧

其中,AMR1的最后四位没有用到(no used)
部分代码如下:
Peli_SFStd_Match_o = (
(id[3] == acr0[0] | amr0[0]) &
(id[4] == acr0[1] | amr0[1]) &
(id[5] == acr0[2] | amr0[2]) &
(id[6] == acr0[3] | amr0[3]) &
(id[7] == acr0[4] | amr0[4]) &
(id[8] == acr0[5] | amr0[5]) &
(id[9] == acr0[6] | amr0[6]) &
(id[10]== acr0[7] | amr0[7]) &
(rtr1 == acr1[4] | amr1[4]) &
(id[0] == acr1[5] | amr1[5]) &
(id[1] == acr1[6] | amr1[6]) &
(id[2] == acr1[7] | amr1[7]) &
(Data0[0] == acr2[0] | amr2[0] | MaskData0) &
(Data0[1] == acr2[1] | amr2[1] | MaskData0) &
(Data0[2] == acr2[2] | amr2[2] | MaskData0) &
(Data0[3] == acr2[3] | amr2[3] | MaskData0) &
(Data0[4] == acr2[4] | amr2[4] | MaskData0) &
(Data0[5] == acr2[5] | amr2[5] | MaskData0) &
(Data0[6] == acr2[6] | amr2[6] | MaskData0) &
(Data0[7] == acr2[7] | amr2[7] | MaskData0) &
(Data1[0] == acr3[0] | amr3[0] | MaskData1) &
(Data1[1] == acr3[1] | amr3[1] | MaskData1) &
(Data1[2] == acr3[2] | amr3[2] | MaskData1) &
(Data1[3] == acr3[3] | amr3[3] | MaskData1) &
(Data1[4] == acr3[4] | amr3[4] | MaskData1) &
(Data1[5] == acr3[5] | amr3[5] | MaskData1) &
(Data1[6] == acr3[6] | amr3[6] | MaskData1) &
(Data1[7] == acr3[7] | amr3[7] | MaskData1) );0x01 接收扩展帧

**其中,AMR3的最后两位没有用到(no used)
部分代码如下:
Peli_SFExt_Match_o = (
(id[21] == acr0[0] | amr0[0]) &
(id[22] == acr0[1] | amr0[1]) &
(id[23] == acr0[2] | amr0[2]) &
(id[24] == acr0[3] | amr0[3]) &
(id[25] == acr0[4] | amr0[4]) &
(id[26] == acr0[5] | amr0[5]) &
(id[27] == acr0[6] | amr0[6]) &
(id[28] == acr0[7] | amr0[7]) &
(id[13] == acr1[0] | amr1[0]) &
(id[14] == acr1[1] | amr1[1]) &
(id[15] == acr1[2] | amr1[2]) &
(id[16] == acr1[3] | amr1[3]) &
(id[17] == acr1[4] | amr1[4]) &
(id[18] == acr1[5] | amr1[5]) &
(id[19] == acr1[6] | amr1[6]) &
(id[20] == acr1[7] | amr1[7]) &
(id[5] == acr2[0] | amr2[0]) &
(id[6] == acr2[1] | amr2[1]) &
(id[7] == acr2[2] | amr2[2]) &
(id[8] == acr2[3] | amr2[3]) &
(id[9] == acr2[4] | amr2[4]) &
(id[10] == acr2[5] | amr2[5]) &
(id[11] == acr2[6] | amr2[6]) &
(id[12] == acr2[7] | amr2[7]) &
(rtr2 == acr3[2] | amr3[2]) &
(id[0] == acr3[3] | amr3[3]) &
(id[1] == acr3[4] | amr3[4]) &
(id[2] == acr3[5] | amr3[5]) &
(id[3] == acr3[6] | amr3[6]) &
(id[4] == acr3[7] | amr3[7]) );双滤波器模式 :MOD.AFM = 1
0x00 接收标准帧

部分代码如下:
Peli_DFStd_Match_o = ((
(id[3] == acr0[0] | amr0[0]) &
(id[4] == acr0[1] | amr0[1]) &
(id[5] == acr0[2] | amr0[2]) &
(id[6] == acr0[3] | amr0[3]) &
(id[7] == acr0[4] | amr0[4]) &
(id[8] == acr0[5] | amr0[5]) &
(id[9] == acr0[6] | amr0[6]) &
(id[10]== acr0[7] | amr0[7]) &
(rtr1 == acr1[4] | amr1[4]) &
(id[0] == acr1[5] | amr1[5]) &
(id[1] == acr1[6] | amr1[6]) &
(id[2] == acr1[7] | amr1[7]) &
(Data0[0] == acr3[0] | amr3[0] | MaskData0) &
(Data0[1] == acr3[1] | amr3[1] | MaskData0) &
(Data0[2] == acr3[2] | amr3[2] | MaskData0) &
(Data0[3] == acr3[3] | amr3[3] | MaskData0) &
(Data0[4] == acr3[4] | amr3[4] | MaskData0) &
(Data0[5] == acr3[5] | amr3[5] | MaskData0) &
(Data0[6] == acr3[6] | amr3[6] | MaskData0) &
(Data0[7] == acr3[7] | amr3[7] | MaskData0) )|(
(id[3] == acr2[0] | amr2[0]) &
(id[4] == acr2[1] | amr2[1]) &
(id[5] == acr2[2] | amr2[2]) &
(id[6] == acr2[3] | amr2[3]) &
(id[7] == acr2[4] | amr2[4]) &
(id[8] == acr2[5] | amr2[5]) &
(id[9] == acr2[6] | amr2[6]) &
(id[10]== acr2[7] | amr2[7]) &
(rtr1 == acr3[4] | amr3[4]) &
(id[0] == acr3[5] | amr3[5]) &
(id[1] == acr3[6] | amr3[6]) &
(id[2] == acr3[7] | amr3[7]) ));0x01 接收扩展帧

部分代码如下:
Peli_DFExt_Match_o = ((
(id[21] == acr0[0] | amr0[0]) &
(id[22] == acr0[1] | amr0[1]) &
(id[23] == acr0[2] | amr0[2]) &
(id[24] == acr0[3] | amr0[3]) &
(id[25] == acr0[4] | amr0[4]) &
(id[26] == acr0[5] | amr0[5]) &
(id[27] == acr0[6] | amr0[6]) &
(id[28] == acr0[7] | amr0[7]) &
(id[13] == acr1[0] | amr1[0]) &
(id[14] == acr1[1] | amr1[1]) &
(id[15] == acr1[2] | amr1[2]) &
(id[16] == acr1[3] | amr1[3]) &
(id[17] == acr1[4] | amr1[4]) &
(id[18] == acr1[5] | amr1[5]) &
(id[19] == acr1[6] | amr1[6]) &
(id[20] == acr1[7] | amr1[7]) )|(
(id[21] == acr2[0] | amr2[0]) &
(id[22] == acr2[1] | amr2[1]) &
(id[23] == acr2[2] | amr2[2]) &
(id[24] == acr2[3] | amr2[3]) &
(id[25] == acr2[4] | amr2[4]) &
(id[26] == acr2[5] | amr2[5]) &
(id[27] == acr2[6] | amr2[6]) &
(id[28] == acr2[7] | amr2[7]) &
(id[13] == acr3[0] | amr3[0]) &
(id[14] == acr3[1] | amr3[1]) &
(id[15] == acr3[2] | amr3[2]) &
(id[16] == acr3[3] | amr3[3]) &
(id[17] == acr3[4] | amr3[4]) &
(id[18] == acr3[5] | amr3[5]) &
(id[19] == acr3[6] | amr3[6]) &
(id[20] == acr3[7] | amr3[7]) ));
12 条评论
华纳圣淘沙公司开户新手教程
零基础学会(183-8890-9465薇-STS5099)
华纳圣淘沙公司开户
华纳圣淘沙公司开户保姆级教程(183-8890-9465薇-STS5099)
一步步教你开通华纳圣淘沙公司账户(183-8890-9465薇-STS5099)
华纳圣淘沙公司开户分步图解
首次开户必看:(183-8890-9465薇-STS5099)
华纳圣淘沙全攻略
华纳圣淘沙公司开户实操手册(183-8890-9465薇-STS5099)
华纳圣淘沙开户流程视频教程
手把手教学:(183-8890-9465薇-STS5099)
华纳圣淘沙公司开户
华纳圣淘沙公司开户完全指南(183-8890-9465薇-STS5099)
华纳圣淘沙开户步骤详解(183-8890-9465—?薇-STS5099【6011643】
华纳圣淘沙公司开户流程全解析(183-8890-9465—?薇-STS5099【6011643】
华纳圣淘沙公司账户注册指南(183-8890-9465—?薇-STS5099【6011643】
新手如何开通华纳圣淘沙公司账户(183-8890-9465—?薇-STS5099【6011643】
华纳圣淘沙企业开户标准流程(183-8890-9465—?薇-STS5099【6011643】
华纳圣淘沙公司开户:从零到一(183-8890-9465—?薇-STS5099【6011643】
官方指南:华纳圣淘沙公司开户流程(183-8890-9465—?薇-STS5099【6011643】
华纳圣淘沙公司开户流程说明书(183-8890-9465—?薇-STS5099【6011643】
2025年10月新盘 做第一批吃螃蟹的人coinsrore.com
新车新盘 嘎嘎稳 嘎嘎靠谱coinsrore.com
新车首发,新的一年,只带想赚米的人coinsrore.com
新盘 上车集合 留下 我要发发 立马进裙coinsrore.com
做了几十年的项目 我总结了最好的一个盘(纯干货)coinsrore.com
新车上路,只带前10个人coinsrore.com
新盘首开 新盘首开 征召客户!!!coinsrore.com
新项目准备上线,寻找志同道合 的合作伙伴coinsrore.com
新车即将上线 真正的项目,期待你的参与coinsrore.com
新盘新项目,不再等待,现在就是最佳上车机会!coinsrore.com
新盘新盘 这个月刚上新盘 新车第一个吃螃蟹!coinsrore.com
新盘新项目,不再等待,现在就是最佳上车机会!
作者的观点新颖且实用,让人在阅读中获得了新的思考和灵感。
建议引入反面案例,增强辩证性。
建议引入反面案例,增强辩证性。
作者对主题的挖掘深入骨髓,展现了非凡的洞察力和理解力。
真棒!
不错不错,我喜欢看 https://www.ea55.com/
不错不错,我喜欢看 https://www.237fa.com/
陈蛇胲:文章真不错http://m.suunpower.com/