Oorspronkelijk is de seriele poort opgezet om vanaf een terminal een modem aan te sturen, en daarvoor zijn er een heleboel signaal-lijntjes bedacht om het verkeer goed te regelen, zodat niet een van beide partijen overspoeld wordt met data die niet in dat tempo kan worden verwerkt (overrun). Deze zgn. hardware-handshaking is sterk a-symmetrisch :
code:
1
2
3
4
5
6
7
8
9
10
11
| modem terminal
SG --
FG --
RD ->
TD <-
RTS <-
CTS ->
DTR <-
DSR ->
DCD ->
RI -> |
SG : signal ground, het nul-niveau voor alle spanninkjes.
FG : frame ground, verbonden met de afscherming van de kabel.
RD : received data, de gegevens die binnenkomen over de telefoon-lijn.
TD : transmitted data, de gegevens die de telefoon-lijn opgaan.
RTS : request to send, de terminal wil gaan zenden.
CTS : clear to send, de terminal mag gaan zenden.
DTR : data terminal ready, de terminal staat aan.
DSR : data set ready, de data-set (-modem) staat aan.
DCD : data carrier detect, het modem heeft verbinding met een ander modem.
RI : ring indicator, een ander modem probeert een verbinding op te zetten.
De bedoelde setup was dus :
code:
1
| centrale computer <-> modem <-> telefoon-lijn <-> modem <-> terminal |
Nu bleek het toch handig om ook computers met terminals (of andere computers) te laten praten zonder tussenkomst van modems, maar een van de problemen is dat van beide de poort is opgezet als een "terminal", dus de hele handshaking gaat fout. Daarom is er een modem-eliminator of null-modem nodig om dit te ondervangen. In zo'n ding worden een aantal lijnen gekruist om de handshaking op orde te krijgen. Er zijn dozijnen mogelijkheden voor, maar de "standaard", voor zover die bestaat is :
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
| FG -------- FG
SG -------- SG
RD ---\/--- RD
TD ---/\--- TD
RTS ---\/--- RTS
CTS ---/\--- CTS
DCD -\ /- DCD
DSR ---\/--- DSR
DTR ---/\--- DTR |
als je niet bang bent voor problemen, en handshaking via software doet, kun je met 3 draadjes uit :
code:
1
2
3
4
5
6
7
8
9
10
11
12
| FG -\ /- FG
SG -------- SG
RD ---\/--- RD
TD ---/\--- TD
RTS -\ /- RTS
CTS -/ \- CTS
DCD -\ /- DCD
DSR -| |- DSR
DTR -/ \- DTR |