can的ACR和AMR
can总线中有ACR和AMR。他们是CAN总线实现点对点,一点对多点的重要寄存器。其中AMR是专门为实现一对多而设置的寄存器。因为can控制器实际对网络数据的标识符和本身的ACR值进行比较时还要参考AMR值,当AMR中某位为1时也就意味着ACR中的该位被屏蔽了,任意值都可以接收,也即只比较AMR寄存器中位置为0的位,只要他们符合就接收。
举例:
ACR: 0 1 1 1 0 0 1 0
AMR:0 0 1 1 1 0 0 0
可接收信息0 1 * * * 0 1 0 * * *
其中*为0或1皆可以。
在本例中,由于AMR的第二三四位分别为1,故对于标识ID来说,只要其它位满足就接收该数据包,而不管这三位是0还是1.
网友评论