NI-CAN的Standard Comparator, Standard Mask, Extended Comparator, 和Extended Mask



主要软件: Driver Software>>NI-CAN
主要软件版本: 2.2
主要软件修正版本: N/A
次要软件: N/A

问题:
什么是 Standard Comparator, Standard Mask, Extended Comparator和Extended Mask?我如何使用它们来定义接收到的帧?


解答:
我们使用 comparators 和 masks 来决定哪些帧会被网络接口对象接收。 Standard 和 extended 是由CAN仲裁ID来区分的,其中standard包含 11数据位,而 extended 包含29数据位。你如何来设置comparator 决定了哪些帧将会被接收。

例如,一个CAN网络接收到了3个ID (01, 02 和 03,参考例子readmultnet.vi ). comparator 和  mask 共同决定了接收哪一帧。下面的列表描述了这个过程(所有的数据都是二进制表示的)

Mask 作为标志掩码和 NC_ATTR_CAN_COMP_STD 一起来过滤筛选输入的CAN标准帧。对于mask中的每一位, NI-CAN都会比对 standard frame comparator 中的对应位。 mask中的被清除的位(例如置为0)将会被当做“无关紧要”来处理。例如,十六进制数 000007FF (在comparator中)意味着将比较输入的标准CAN帧的全部11位.

备注:
  1. 如果你想要使用CAN对象来从网络接收标准帧,那你应该禁止所有的CAN网络接口对象接收标准帧,这可以通过设置 Standard Comparator Attribute 为 NC_CAN_ARBID_NONE (CFFFFFFF hex)来实现。因此,如果 standard frame comparator 为 NC_CAN_ARBID_NONE (0xCFFFFFFF),那么NI-CAN就会忽略 mask, 并且会禁止CAN网络接口对象接收所有的CAN标准帧.

  2. 如果你想要网络接口接收CAN标准帧,那么你应该将网络接口对象的 Standard Comparator Attribute 设置为0.

Comparator           11           11                 11              11
Mask 00 01 10 11
Frames Received All 01 (1), 11 (3) 10 (2), 11 (3) 11 (3)


Comparator 00 00 00 00
Mask 00 01 10 11
Frames Received All 10 (2) 01 (1) None

Extended comparators 和 extended masks 也是相类似的。如上所述,你可以通过这些复杂的组合来精确决定接收哪些帧

相关链接:

附件:





报告日期: 09/28/2000
最近更新: 02/12/2011
文档编号: 21RB363E