类似于问题在 USB 电缆中,可以交换 D+ 和 D- 线吗?,如果我们将CAN-H和CAN-L线互连可以吗?
CAN是一种差分协议。难道显性位和隐性位只不过是这些线上的电压差吗?
有关其他差分协议的信息也将是有用的。
类似于问题在 USB 电缆中,可以交换 D+ 和 D- 线吗?,如果我们将CAN-H和CAN-L线互连可以吗?
CAN是一种差分协议。难道显性位和隐性位只不过是这些线上的电压差吗?
有关其他差分协议的信息也将是有用的。
我找不到任何给出明确答案的参考资料。但是看一些数据表,我不这么认为。USB 正在查看是否存在电压变化。而 CANBus 正在查看电压本身。
以下是 USB 传输的示例:
1 和 0 的编码取决于是否存在转换。
与 CANBus 不同,CANBus 采用本应用说明中的电压电平差异:
如果我们查看 CANBus 收发器的数据表,例如MCP2551,我们会看到以下内容:
Sym Characteristic Min Max Units
VDIFF(r)(i) Recessive differential input voltage -1.0 +0.5 V
VDIFF(d)(i) Dominant differential input voltage 0.9 5.0 V
由于提到了负电压,这使我相信极性很重要,并且它们没有采用差分电压的绝对值。
所以如果我们有:
通常收发器会:
如果你交换了它会做的行:
到目前为止,一切都很好。当我们遇到以下问题时,问题就来了:
在这里,收发器通常会:
如果你交换了它会做的行:
所以你接收端只会看到隐性位。
交换 CAN-High 和 CAN-Low 线不起作用。这很容易凭经验确定。我和我的同事有时会不小心交换线路,很明显它不起作用。
一切都取决于收发器模型。它们对 CAN_H 和 CAN_L 的值具有一定的灵活性,但我确实认为CAN_H 的值在任何情况下都必须更高(至少对于我所见过的所有模型)。
如果您只是更改电缆引脚,只要所有 CAN_L 相互连接,CAN_H 也连接,它应该可以工作。