How to solve the "lost data" problem in CAN bus communication?

In CAN bus communication, lost data may cause communication failure or inaccurate information transmission. Here are some possible solutions:

Check cable connections: Make sure all CAN bus cables are firmly connected and not loose or broken. These problems may cause signal loss or interference.

Terminal resistance: Confirm that the correct terminal resistance is installed at both ends of the CAN bus. Missing terminal resistance or mismatched resistance values may cause signal distortion and data loss.

Noise interference: Check the cable for external electromagnetic interference. High-frequency noise or electrical interference may affect signal quality. Using shielded cables can reduce this interference.

Node configuration: Make sure all CAN nodes are correctly configured and meet the protocol requirements of the CAN bus. Mismatched node settings may cause packet loss or errors.

Protocol error: Check the implementation of the CAN protocol to ensure that all devices follow the same communication protocol and data format. Inconsistent protocol implementation may cause data loss.
 
Add to the above list: flaky power-supplies, devices auto-rebooting (usually due to software issues), CPU overload, ...

Despite all these measures, due to external disturbances a message may occasionally still get lost. The only way around this to have detection of this in the network protocol (not CAN, but the higher-level protocol) and then retry.
 
Top