CAN buses are often constructed with many nodes placed physically close together. When these “clumps” of nodes are spaced a long distance from other nodes on the bus, random data errors can occur. A “message priority inversion” error causes a high-priority message to receive low-priority placement after arbitration.
Uneven node spacing can also affect the ACK procedure in a CAN message. If a message is not properly cknowledged because of interruptions from reflected waves, an error is generated with each occurrence until the controller reaches an error limit that is internally set by the CAN protocol.
The controller places itself in a bus-off state when this internal limit is reached so that a single node cannot block all communication on the bus.
我在想, 正常的 CAN 协议, 由于不归零制的数据规则, 会不会也会导致优先级倒转问题呢?
|