您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 人事档案/员工关系 > CAN数据帧验收屏蔽码设置(最终版本)
CAN数据帧验收屏蔽码设置1.滤波原理SJA1000滤波器由4个验收代码寄存器和4个屏蔽代码寄存器组成,分别为ACR0,ACR1,ACR2,ACR3,AMR0,AMR1,AMR2,AMR3。其中每个寄存器都为一个字节。单滤波是指只有一个由4个验收码寄存器和4个验收屏蔽码寄存器组成的验收滤波器,总线上的信息只有通过了它的验收滤波,才予以接收。对于单滤波情况下的标准帧而言,验收屏蔽寄存器的设置如下图所示:ACR0与AMR0对应ID.10~ID.3,ACR1与AMR1中的高四位对应ID.2、ID.0、ID.0、RTR位。数据帧中RTR为0。ACR1与AMR1中的低四位未使用,即均为零。ACR2、ACR3与AMR2、AMR3对应数据区域的前两个字节,由于本程序中不需要将数据区域的数据进行滤波,将AMR2、AMR3均设为1即可。图2标准帧报文的单滤波器设置验收规则如下:((ID.10~ID.0)同或(ACR.10~ACR.0))或(AMR.10~AMR.0)=11111111111B。注意实际上ID后面还有RTR位参与滤波,两个数据字节由于AMR2、AMR3的设置被屏蔽掉。例如:验收码ACR0ACR1ACR2ACR37654321076543210765432107654321000010110000000000000000000000000屏蔽码AMR0AMR1AMR2AMR37654321076543210765432107654321000000000000000001111111111111111ID109876543210RTRDB1DB2000101100000如上表所示,验收码高11位与ID各对应位相同,才能接收到此ID数据帧。如ID号为00010110000,则验收码ACR0和ACR1的高三位也为00010110000。ACR1和AMR1的低四位为保留位,均为0。注意RTR位为0,表示数据帧。这样,验收码在二进制形式下为00010110000000000000000000000000。屏蔽码的后两个字节共16均为1,即可屏蔽掉数据区域DB1,DB2滤波。验收码在十六进制下为0x16000000,屏蔽码为0x0000ffff,ID为0x0b0。
本文标题:CAN数据帧验收屏蔽码设置(最终版本)
链接地址:https://www.777doc.com/doc-4382556 .html