關於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