ACR/AMR屏蔽字属性用于屏蔽特定CAN ID,ACR用于指定CAN ID二进制中关注位和忽略位;AMR用于规定ACR中那些二进制位生效,哪些无效,通过ACR和AMR确定报文过滤规范。按照不同VCI、CAN卡等供应商和相关开发人员提供计算工具(不同的工具采用不同的公式)运算而取值。下面介绍理论情况下ACR和AMR计算原理:
在理解ACR、AMR之前,首先需要知道以下几个概念:
1. CAN:Controller Area Network
2. ACR:Acceptance Code Register
3. AMR:Acceptance Mask Register
4. AF:Acceptance Filter
类似Ethernet,CAN引入了子网的概念,IP包含Host ID和Network ID两部分,以Mask(子网掩码)区分。ACR和AMR就类似于Ethernet中的Mask,AF通过ACR和AMR起作用;
例如某ECU采用单滤波器接口、29位ID的扩展模式(Pelican Mode)下,CAN ID高8位用做命令字,3~23位用作具体ID设定位,低3位无用。
ECU CAN ID |
0x??40 0000 |
AMR |
0xFF1F FFFF |
ACR |
0x??40 0000 |
AMR中0代表有效位,1代表无效位;从AMR的设定可以看出,只有第二字节高3 bit有效。
CAN总线使用差分电平实现逻辑0/1的映射。低电平对应隐性位,即逻辑1;高电平对