使用NI-CAN被动监测CAN网络
硬件: Industrial Communications>>CAN>>PCI-CAN Series 2, Industrial Communications>>CAN>>USB-CAN
问题: CAN协议要求每个节点都能应答帧,即使节点不发送或者接收帧。对于NI-CAN接口,如果任意对象打开了端口,由于CAN控制器是工作着的所以CAN接口会应答帧。是否有方法可以在不干扰NI-CAN接口的情况下监测网络?是否可以让取消应答的功能?
解答: 这个方式称为“Listen only mode”并且可以在USB-CAN和系列2的CAN卡上实现。因为应答功能由硬件实现的底层操作,所以是否可以使用这个模式取决于使用的CAN控制器。所有的USB-CAN和系列2硬件使用的Philips SJA1000的CAN控制芯片,这个芯片提供了这种功能。
可以通过以下方式将USB-CAN和系列2 CAN卡配置为Listen-Only模式:
- 如果使用LabVIEW编程,可以用ncSetAttr.vi实现,将属性设为“Listen only?”并将属性值设为1。一定要在进行接口操作前进行设置,如果接口已经开始工作可以使用ncAction.vi来关闭接口
- 如果使用C语言编程,可以使用 use the NC_ATTR_LISTEN_ONLY 来对ncConfig函数进行配置。因为对这个参数的设置在对对象设置阶段进行的,所以接口肯定是处于关闭状态。
如需更详细的C语言编程信息请参考NI-CAN Hardware and Software Manual and Specifications
- 如果在MAX中使用Bus MonitorIf,那么只需要将Listen Only勾选上即可 (注意:一定要Bus Monitor停止之后再改变设置)

相关链接: Products & Services: CAN (Controller Area Network) Bus Interfaces
附件:
报告日期: 10/31/2003
最近更新: 01/30/2011
文档编号: 32U9FF2Y
Other Support Options
Ask the NI Community
Collaborate with other users in our discussion forums
Request Support from an Engineer
A valid service agreement may be required, and support options vary by country.