14
If you read about null modems, this three wire null modem cable is often talked about. Yes, it is simple
but can we use it in all circumstances? There is a problem, if either of the two devices checks the DSR
or CD inputs. These signals normaly define the ability of the other side to communicate. As they are not
connected, their signal level will never go high. This might cause a problem.
The same holds for the RTS/CTS handshaking sequence. If the software on both sides is well
structured, the RTS output is set high and then a waiting cycle is started until a ready signal is received
on the CTS line. This causes the software to hang because no physical connection is present to either
CTS line to make this possible. The only type of communication which is allowed on such a null modem
line is data-only traffic on the cross connected RX/TX lines.
This does however not mean, that this cable is useless. Communication links like present in the Norton
Commander program can use this cable. This cable can also be used when communicating with devices
which do not have modem control signals like electronic measuring equipment etc.
As you can imagine, with this simple cable no hardware flow control can be implemented. The only way
to perform flow control is with software flow control using the XOFF and XON characters.
Null modem with loop back handshaking
Loop back handshaking
The simple null modem cable without handshaking shows incompatibilities with common software. The
main problem with this cable is that there is a possibility for the software to hang if it checks the modem
signal lines in a proper way. I.e. with this cable, good written programs will perform worse than badly
written programs.
To overcome this problem and still be able to use a cheap communication cable with only three lines in
it, a fake cable layout has been defined. The null modem cable with loop back handshaking resulted
from this.
The main purpose of this cable is to let well defined software think there is handshaking available, with
a cable which has no provisions for it.
Compatibility issues
Consider first the DSR signal (pin 6). This input indicates that the other side is ready to start
communicating. In the layout, the line is linked back to the DTR output (pin 4). This means, that the
software doesn't see the ready signal of the other device, but its own. The same holds for the CD input
(pin 1). The assumption is, that if software has been written to check the DSR line to test communication
availability, it will probably also set the DTR output to indicate its own state. This is true for at least 99%
of all serial communication software. This implies that at least 99% of all serial communication software
is capable of faking its own DSR check with this cable.
The same trick is used with the CTS input. In the original use, RTS is set, and then CTS is checked
before starting the communication. By setting the RTS output (pin 7) the CTS input on the same
connector (pin 8) is receiving clearance immediately. There is no possibility of a software hangup
because of dangling RTS requests.
Other issues to consider
Comments to this Manuals