关于USBCAN二次开发函数的过滤器设置

来自: https://wenku.baidu.com/view/89fa57c34028915f804dc2c7.html?rec_flag=default&sxts=1537363928337

         CAN总线中的验证码有点像IP地址验证

        但是验收屏蔽位和IP地址掩码的概念完全不同

        屏蔽位=1时, 相当于不对该位上面的bit值进行验证----看下下图的逻辑运算就清楚了,        

========================================================

关于USBCANII接收验证码和屏蔽码的设置, 看这里:

             https://wenku.baidu.com/view/fb3ffccfa0c7aa00b52acfc789eb172ded639910.html

USBCAN采用如下图的左对齐方式进行验证码和屏蔽码的设置

SDK函数:   VCI_InitCAN(DWORD DevType, DWORD DevIndex, DWORD CANIndex,PVCI_INIT_CONFIG pInitConfig);

对于标准帧:

扫描二维码关注公众号,回复: 4117390 查看本文章

                pInitConfig->AccCode 取高11bit作为验证码:  pInitConfig->AccCode = ID << 21;

                pInitConfig->AccMask 取高11bit作为屏蔽码:      pInitConfig->AccCode = ID_MASK << 21;

多余扩展帧:

                pInitConfig->AccCode 取高29bit作为验证码:  pInitConfig->AccCode = ID <<3;

                pInitConfig->AccMask 取高29bit作为屏蔽码: pInitConfig->AccCode = ID_MASK << 3;

如果我要过滤ID为0x12x的标准帧, 则验证码为:  001 0010 xxxx

                                                             屏蔽码:   000 0000 1111

猜你喜欢

转载自blog.csdn.net/twd_1991/article/details/82779663