本文主要是介绍关于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);
对于标准帧:
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
这篇关于关于USBCAN二次开发函数的过滤器设置的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!