The spec says "the maximum recommended distance to operate RS232 signals is 75 feet at 9600 baud"
Answer:- "How can we believe you", and this is based on personal experience.
What the spec would probably not want to say was "we know you lot, you're going to use any old piece of wire and expect to get the distances we quote RS232 is truly capable of - and then blame us instead of your dubious engineering practices". If you think I'm being unkind, you should see some of the installations we've seen. It's amazing anything gets to the other side in one piece!
Slightly off the subject; What's the longest you've ever run a printer cable? 6 metres? 10 maybe? (and then you thought you were pushing it!). How about 110 metres (that's right, 360 feet!). The same principles being shown below should be adopted in all data installations if one is going to achieve the reliability that data transmissions deserve.
Back to the subject at hand. Achieving long distances on RS232 has two facets:
With this 'wiring standard' employed distances of over 100 metres at 19200 baud have successfully been implemented, kind of a far cry from 75ft! One word of warning (everything has a catch - doesn't it?), this only applies to proper RS232 spec ports i.e. they swing ±12V with a drive of >10mA, in other words they use the good ol' fashioned 1488 drivers into 1489 receivers. Be careful of 'clones', they will let you down. Furthermore, modern laptop manufacturers have created their own new 'standard' being EIA-562 which only swings ±3.3V (required maximum), just a little bit of loading and you've got corruption on your hands. Funny how when a lot of people start doing things their own way it suddenly becomes a 'specified standard'!
There is a way of reducing the amount of signals required to be relayed (which reduces the amount of cores required in the cable) and that is to ensure every signal is a truly active one. Many pieces of equipment don't have active outputs on each and every pin. A prime example is the DCD and DTR pins, these are often tied to a +12V source via current limiting resistors merely to satisfy the requirements of some PCs and/or software needing all signals present. Although there is nothing inherently wrong with doing this (far better than leaving the pins open circuit) this is a waste of wire when the same could be achieved at the opposite side (unless the signal actually means something to the hardware or software).
Extending beyond the "barrier" i.e. when you really feel like you're pushing your luck on distance, can be achieved by "terminating" the cable properly. ITC has a typical characteristic impedance of 900 ohms (no, you cannot use the RF based formula to calculate the impedance which would probably come out at about 100 ohms - we're still dealing with AF here). As the output impedance (not loading) of a RS232 driver is about 300 ohms we should settle for 600 ohms series resistance. Unfortunately we will strain the device so we're going to run the cable at a mismatch of 1.5:1 (still very acceptable mismatch) and treat it as 1350 ohms. This then makes the series resistor 1k.
On the other side we will be feeding into a 1489 which presents a loading of 4.7k to the line which we want to now reduce to 1.3k. This is done with a resistor in parallel to the input of 1.8k. Our cable is now terminated. If you are interested in the effects of this, use an oscilloscope at the receive side of the cable and notice how much sharper the waveform is together with the fact that the ringing is drastically reduced. Noise susceptibility is decreased making the link more reliable.
The 'mechanics' are simple; The two resistors each end of the cable, effectively being in parallel, place a load on the cable of 675 ohms. This reduces the RC constant of the cable significantly thus raising the frequency carrying capability of the whole system (from driver to receiver). The voltage will also be reduced (approximately half) but as the 1489 input is capable of accepting ±3V this should not pose any problems.
Some simple devices do not use proper RS232 drivers and derive the output from a CMOS IC (the output is only 0V and 5V instead of the proper -12V and +12V). This drastically affects the output drive of the device which is then easily affected by things like long cables. It may be worthwhile to measure the TX of the device and see if it is 0V or some amount of negative voltage.
Long cables, if not wired properly, could cause trouble. Many people don't realize just how important it is to wire long runs of RS232 in twisted pairs (actually, that's any length!). Please see the above rules for running long runs.
When wiring sensitive RS232 circuits then it is preferable that the cable also be shielded twisted pairs (although preferable each pair is shielded, it is acceptable to have just an overall shield, I've found it to still work very well). The shield should be wired between the two casings on the connectors (as long as the connectors are all metal!)
If minimal data data flows between the PC and the device, then drop the baud rate. For every time you drop the baud rate by half, you drop the possibility of corruption by four!
As a matter of course you should also wrap the cable around one of these "clip on" ferrite cores (a few turns). This stops any high frequency component from entering the data stream. Please note that there is no need to do this "right at the PC" meaning there is a large heavy object hanging off the back. Done at where the cable is secured (such as floor level) is more than sufficient.
© 12.03.01 / 06.07.03