如何设置屏蔽验收码的总结

在使用周立功的CANTest软件时,会有滤波设置。由于在CAN卡接到整车ECU上,几乎所有的总线上的数据都会显现在界面上。有些时候,你需要的是固定的几个ID,其他的ID为干扰,故在此你就需要过滤掉不想要的ID。

这时你就需要调整滤波设置,设置过滤ID。

1.打开CANTest软件,找到滤波设置。

如何设置屏蔽验收码的总结

2.打开滤波设置。设置你想要的ID的滤波形式和帧格式。我基本上用到的为下图标记的两个。

如何设置屏蔽验收码的总结

3.选择完成后如下图。(在此以标准帧,单滤波(仅ID,*设定)为例)

如何设置屏蔽验收码的总结

4.在上图 滤波器1 中设置数据过滤。

以标准帧ID为0x0378~0x037F之间的数为例,滤除其他的杂波。由于帧ID为32位无符号整型。

  • 标准帧:具有11位(0000 0XXX  XXXX XXXX)识别符的帧称之为标准帧。
  • 扩展帧:具有29位(000X XXXX  XXXX XXXX  XXXX XXXX  XXXX XXXX)识别符的帧为扩展帧。

      例如:0x0378~0x037F之间的数都能通过。

        0x0378转化为二进制:0000 0011 0111 1000

        0x0379转化为二进制:0000 0011 0111 1001

        0x037A转化为二进制:0000 0011 0111 1010

        0x037B转化为二进制:0000 0011 0111 1011

        0x037C转化为二进制:0000 0011 0111 1100

        0x037D转化为二进制:0000 0011 0111 1101

        0x037E转化为二进制:0000 0011 0111 1011

        0x037F转化为二进制:0000 0011 0111 1111

         滤波器1 的值:0000 0011 0111 1XXX(前五个数舍去。相同数据为本数据,后面XXX表示无论1或者是0都能通过)

如何设置屏蔽验收码的总结

  5.验收码和屏蔽码是如何计算出来的。

  你在输入滤波器你要过滤的ID,屏蔽码和验收码会直接给出。屏蔽码一般是0  验收码是你收的地址,一般为二进制异或。

   接收屏蔽器可用于在接收时忽略标识符的选定位。在接收报文时, 这些位将不与过滤器中的位进行比较。

  屏蔽寄存器的某一位等于1时,表示忽略对该位对应ID位的滤波
  如屏蔽寄存器值=FFFFFFFF,则可以接收所有的消息。

   验收滤波器ACR,验收屏蔽器AMR都是32bits(4bytes).
   对于需要验收滤波的ID值,ID最高位(标准帧ID最高位为Bit10,扩展帧为bit28)与ACR/AMR的最高位(bit31)位对齐,即左对齐方式。
CAN总线验收滤波器和验收屏蔽器均对于CAN接收而言。
当AMR=0xFFFFFFFF时,表示屏蔽ACR的所有滤波位,即可以接收所有的消息。

针对所要过滤ID的某个位全部相同置为0,否则置为1。去掉左边三个位,补充到右边三个位。屏蔽码的某个位如果是1的话那验收码对应的位置为1,如果是0的话就看你所要过滤的ID如果某个位全部一样,那验收码那个位的值就跟过滤ID那个位一样。

有些硬件方面的知识可以参考https://wenku.baidu.com/view/4f8da6f4ff00bed5b8f31d41.html

  

第一次写总结,有写的不足的地方希望可以指点!