解答:
CAN总线ISO 11898协议规定,CAN总线必须在网络的两端,通常是网络主控制器和网络最远端的节点之间安装合适的总线终端电阻(在位于DB-9接口的第2和第7引 脚的CAN_H和 CAN_L信号线之间安装一个120欧姆的电阻)。详细请参考相关链接部分“为NI-CAN硬件安装合适的终端电阻”,更为详细地了解如何为NI-CAN 网络安装终端电阻。 在没有安装合适的终端电阻的情况下,通信可能会出现下面非预期的行为:
- 在低波特率的情况下能够正确通信,但是在波特率较高时会出错(具体出错的波特率的值取决于一系列因素,包括CAN网络长度、数据帧上携带的数据----它能够改变具体传输的最高频率以及网络附近的电磁干扰等等)。下表中的测试总结详细描述了这种情况:
CAN波特率 - 终端电阻测试 波特率 线缆安装合适的终端电阻? 端口间传输正确? 1M 是 是 1M 否 否 125K 是 是 125K 否 有时 40K 是 是 40K 否 是
值得注意的是,在安装了合适的终端电阻的情况下,通信总是正常的。但是在40K较低的波特率下,通信仍然是正常的,因此这点是不符合CAN ISO 11898规范的地方。 - CAN错误 - Form错误、CRC错误、Bit错误、Stuff错误和其他由于不合适终端电阻所导致的错误。如果出现这些错误,则请按照附件中的知识库文章来检验是否 安装了合适的终端电阻。更多短语CAN错误的信息,请参考相关链接一栏中的NI-CAN硬件和软件用户手册(附录B包含了一个CAN标准的总结,并包含一 个叫“CAN错误检测与约束”,该章节详细描述了CAN错误)。
值得庆幸的是,在CAN ISO 11898规范中,已经将整个CAN网络的终端电阻简化为在网络两端安装两个120欧姆的电阻(就如同第一部分描述的一样,这完全符合CAN标准)。