Electronic – RS-485 / CAN signal levels

candigital-communicationsrs485signal integrity

From what I know, CAN at the physical layer in the "recessive" state just lets pull-up/pull-down do the work.

Does that mean the rise time is theoretical slower than a RS-485 transceiver?

And about the noise rejection on RS-485 and CAN? Both uses a differential bus, but again CAN relies just on resistors to provide the "recessive" signal.

Reading some papers, the majority, if not all, states RS-485 as 1200 m at 100 kbit/s, where CAN normally states a maximum of 40 m at slower speeds (I have read just one that talked about CAN networks with longer bus lines). And even that CAN papers seems to be more specific about using shielded pairs where RS-485 seems more "relaxed" with UTP.

Is RS-485 more robust and fast for long buses than CAN?

Yes, I know one is theoretically single-master and the other multi-master, but for me that's not true as TDMA could be used to implement a good multi-master on RS-485, sending a sync signal from a "master" (it could be called a synchronisation source just than a master), from time to time, and the slot is just being used to get access to the bus.


1 Yes, I know CAN is initially designed for the automotive market, so distance is not a big issue, but today it seems to be used in industrial automation too, where RS-485, I think, is "dominant".

2 I have seen notes saying RS-485 being more expansive than CAN. Well, that's really not what I get. Major "popular" micro-controllers have UART, whereas a small portion have CAN controllers, and external CAN controllers are difficult to get or expensive.

Best Answer

CAN can go up to 1 Mbit/s on busses up to a few 10s of meters. The passive state doesn't really slow down the signalling. A total of 60 Ω is pulling the lines together, which will make them do so quite fast. I have looked at bits on a CAN bus with a scope, and the edges have been nice and solid in both directions. Think of the fact that the passive state is still driving the bus together as if it were shorted, but the drive impedance is at the characteristic impedance of the cable. A deliberate driver would have the same impedance, so there is really no difference.

What limits the length of a CAN bus in practise is that the signal must do a round trip between the two most distant nodes in a fraction of a bit time. This is necessary for the collision detection mechanism to work.

RS-485 and CAN are really in two different leagues. RS-485 throws you a electrical spec for a multi-drop bus, and that's it. CAN defines whole messages with IDs and data bytes, a checksum, control information, collision detection, some error detection and error handling, and full use of the bandwidth under heavy loading, all on a true peer to peer network. In addition, this plus automatic sending retry is built into hardware on a number of low cost microcontrollers.

You could in theory implement something like this using RS-485 as the underlying bus, but getting all the protocol details right for reliable operation in all the corner cases is nowhere near as easy as some people seem to think.