CAN接收邮箱掩码设置方法
1. 基本概念:
配置CAN接收邮箱时的两个参数
(1). filter mask:掩码
(2). Filter code:匹配值(不太清楚怎么翻译)
2. 配置要求:
配置接收邮箱时,使该邮箱接受的报文ID 为 0x500 – 0x57F这个范围,求其Filter Mask和Filter Code
接收标准帧报文(标准帧的报文Id为11位,前3位 后8位)
3. 计算掩码 Filter mask 和 Filter Code的关键两点:
Id , Filter mask 和 Filter code 的关系 :ID & Filter mask = Filter Code
求掩码的关键,1关心,0不关心
4. 下面详细讲解其计算过程:
【需要接收的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
5. 进行验证:
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 | 0 |
FilterCode 500 | 0 | 1 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
若要使该接收邮箱只接受ID 为0x478的报文Id根据上述可知,其掩码为 0x7FF,表示对ID的每一位都关心,其FilterCode则为0x478。
评论记录:
回复评论: