OK – this is another issue that sparked quite a bit of discussion, and is worth putting out here for others to consider.
Differential signals are a great concept – the transmitter transmits the signal between two wires, which connect directly to the receiver. The receiver then measures the DIFFERENCE (hence “differential”) between the two wires.
Ideally, such an arrangement is immune to common mode noise induced by the environment (like EMI induced from a nearby radio transmitter), because the signal will end up on BOTH lines, and will be cancelled out by the receiver measuring the difference between the wires – I almost forgot… we’re going to assume here that the wires are routed together, and are tightly coupled, either zip cord, or a twisted pair.
But is that really the case? You’ve probably guessed, since I’m rambling on about it – no, not really.
There ARE some truly differential signals – Ethernet is QUITE common (Duh), and systems like MIL-STD-1553, which are transformer coupled. Generally, these types of systems transmit data by a CHANGE in signal (Manchester II encoding). The cool part about this type of communication is that ground potential is completely irrelevant in the signalling scheme. This eliminates the potential of ground plane interference and issues due to long cable runs where bonding issues within portions of the ground system may come into play.
RS485 (and 422) are often called differential. In a way, they are… but – not completely. These specific signals actually require a reference signal in addition to the two “differential” signal lines – therefore, even one way communication requires THREE wires to be complete. Whhhaaaa??? Yes. If you read the EIA/TIA 485 spec (the “RS” in ‘RS-485’ is “Recommended Specification”, which is then formalized into TIA-485, but most still call it ‘RS-485’), the spec actually calls for a reference signal to be used, because the spec, and thus most commercially available transceivers, implements the differential signalling as a measurement of the DIFFERENCE between each signal wire and the reference plane!
You read that correctly – if you’re looking for a 5VDC difference between signal lines, you can have 7V on one line, and you’ll find 2V on the other, both referenced against the signal reference line. This may seem minor, but it really isn’t when you consider the potential for interference. If an interference signal impinges on the signal lines, but not the ground plane, or if you have noise on the ground plane, it is VERY easy to throw the signal lines into an unknown state, in reference to the ground plane.
Most receivers are a set of comparators, comparing the signal lines against a reference signal – so maybe 4.0-5.5 V will result in a logic “1”, and 0.0 – 1.5V will result in a logic “0”.
Many receivers for this pseudo-differential signalling scheme DO, on the plus side, provide a line-to-line reference, to help reduce the effects of some interference – but the unknown states are still a possibility when common mode noise impinges on the signal cables.
What happens if one of the lines shows up at 2.5V because of some ground plane noise? what happens if the signal line voltage drops below zero volts? you just don’t know – it COULD work, or it could result in erroneous data.
For this reason, it is very important to read the specification, and understand your signalling scheme…. Differential doesn’t always mean you can ignore ground issues. For short runs, this is probably completely irrelevant, because the cable will not be a significant receive antenna for low frequency interference (frequencies close enough to the data rate to cause data issues) – but longer cable runs, like you might see from the front to the back of a large vehicle, like a mobile command post, can very easily start to pick up such noise – which can be generated by nearby equipment power supplies, battery chargers, power line noise… just to name a few low frequency noise sources.