Electronic – The CAN bus in this vehicle has only one 120 ohm termination resistance. What problems would this provoke

buscanerrorterminationtwisted-pair

This vehicle that I've started co-developing is designed with only a 120 termination resistor on the CAN bus. Obviously there should be two of those resistors on two ends of the bus. I will be making that change, but there were some troubles in the past and present with the CAN bus. I'm wondering if it is likely that those are/were caused by this error. And how critical it is/was that the bus was terminated at only one location, and at 120 ohm.

I will be troubleshooting those issues, but they're intermittent. So it would be of great help to know whether it is sensible to keep looking for them if this termination resistor issue is solved.

Some information:

  • J1939 communications protocol is used
  • Bus speed 250 kbit/s
  • Bus length ca. 7 m
  • Amount of nodes is 15 (I guess), combined, 60 unique messages exist.
  • Average busload 40%, at intervals the bus load peaks at 100%

There are also issues with one node intermittently not getting online at startup. Twisted pairs were used that wasn't forgotten by the designer, if you were wondering…

Best Answer

From a professional point of view, this is a critical problem. Missing termination will cause energy bouncing back at the end which isn't terminated. This could lead to strange random noise on the line, such as for example transients or random pulses that seem like ok binary pulses, but with wrong voltage levels etc. CAN Hi and Lo don't necessarily behave the same when this happens.

In practice, the CAN bus is so rugged that it might be able to "limp home" despite missing termination. You might get random error frames here and there but otherwise receive correct packages. How well this works "by accident" depends on baudrate, CAN transceivers used and wire length.

In my experience, you often get away with only using one terminating resistor at low baudrates. Errors tend to start becoming particularly noticeable around 250kbps, which is the most common baudrate. At faster baudrates it will typically not work at all.

This could match the problem you describe. Another common problem is missing signal ground, which could give very similar error symptoms: intermittent error frames, the system sometimes working perfect, other times not at all.

Either of these problems will manifest themselves with spurious error frames in your CAN listener.

100% bus load means an unhealthy, dangerous bus. Either because whoever designed the bus was a quack, or because a quack started to hook up other equipment to an existing bus without consulting engineers. Sure, if the bus is non-critical, you can design by purposely allowing 100% bus load peaks... maybe. But J1939 buses are almost exclusively performance and/or safety critical. If so, you definitely need to get to the bottom of the bus load problem.