基本概念:
配置CAN接收邮箱时的两个参数
1.filter mask: 掩码
2.Filter code:匹配值(不太清楚怎么翻译)
配置要求:
配置接收邮箱时,使该邮箱接受的报文ID 为 0x500 – 0x57F这个范围,求其Filter Mask和Filter Code接收标准帧报文(标准帧的报文Id为11位,前3位 后8位)计算掩码 Filter mask 和 Filter Code的关键两点:
1.Id , Filter mask 和 Filter code 的关系 :ID & Filter mask = Filter Code 2.求掩码的关键,1关心,0不关心
下面详细讲解其计算过程:
需要接收的Id范围 0x500 – 0x57F
第一步:
5 :0101, 每个位都关心,因此掩码为7,即0111;
需要关心这4位,且第一位必须为0 ,第二位必须为1,第三位必须为0,地上位必须为1 ,所以FiterCode为0101,即为5.
第二步:
0-7,0000 – 0111 ,只需要关心第 1位,后面3位的值不关心,所以掩码第一位为1,因此掩码为1000,即为8;
要求第一位必须为0,其他位不关心,也设置为0,所以,FilterCdoe为0000
第三步:
0 -F, 0000- FFFF,这4位都不需要关心,因此掩码为 0000 ,即0;
这4位都不关心,所以,FilterCode 为0000
第四步:掩码最终为 780
FilterCode 为500
进行验证:
ID 574
0
1
0
1
0
1
1
1
0
1
0
0
掩码780
0
1
1
1
1
0
0
0
0
0
0
FilterCode 500
0
1
0
1
0
0
0
0
0
0
0
0
若要使该接收邮箱只接受ID 为0x478的报文Id根据上述可知,其掩码为 0x7FF,表示对ID的每一位都关心,其FilterCode则为0x478。