Wat is een Seriële poort (RS232)?

serial_rs232_db9

Een seriële poort (RS232) is een communicatieverbinding die in de computerwereld wordt gebruikt. Het grote verschil met de parallelle poort is dat de bits van de gegevens één voor één achter elkaar worden verstuurd. Het voordeel hiervan is dat er minder draadjes nodig zijn om de gegevens te transporteren. De kabel kan daarom dun en soepel zijn.

Toepassing

Begin jaren 80 kon een pc worden uitgebreid met een seriële poort, dit was een 25-polige stekker (DB-25),onder meer voor het aansluiten van een modem. Toen de muis een plek vond bij de computer, werd ook de seriële poort standaard in de PC opgenomen, hiervoor werd een 9 polige ansluiting bedacht (DB-9) omdat niet de gehele “future set” van de seriele poort word gebruikt, na verloop van tijd werden ook andere apparaten op de seriële poort aangesloten zoals: toetsenborden, fotocamera’s, etc. Computerhobbyisten gebruikten de poort om hiermee de communicatie naar andere (zelf gebouwde) apparaten te verzorgen.

Het nadeel van de seriële poort is dat hij doordat de bits na elkaar worden verstuurd niet snel is. Voor een muis is de snelheid toereikend, maar een snel Internet-modem is voor de poort al niet meer bij te houden. Ook het scannen van afbeeldingen en het overhevelen van digitale foto’s uit een fotocamera duurt via de trage seriële poort erg lang. De Seriële Poort wordt ook wel COM(municatie)-poort genoemd. Deze is bidirectioneel en er kunnen dus zowel gegevens mee worden verstuurd als mee worden ontvangen. Afhankelijk van de aangesloten apparaten kent ook de seriële poort een Half- en een Full-duplex variant.

De seriële poort heeft, om de gegevens van 8 naar 1-bits om te zetten, wat aanvullende hardware nodig: de UART (Universal Asynchronous Receiver/Transmitter). De veel gebruikte UART chip type 16550 bevat een buffer van 14 bytes voor ontvangen en 16 bytes voor zenden, zodat de CPU van de PC niet voor ieder byte aandacht aan de poort hoeft te besteden.

Op veel moderne PC’s (en vooral notebooks) komt de seriële poort niet meer voor. Er zijn betere, snellere alternatieven, zoals USB. Om dezelfde reden dreigt ook de parallelle poort te verdwijnen, want moderne printers hebben tegenwoordig ook steeds vaker een snellere aansluiting.

Connectoren & aansluitingen

RS-232 kan onderverdeeld worden in ‘Data Terminal Equipment (DTE)’ (computers, terminals) en ‘Data Circuit-Terminal Equipment (DCE)’ (modems), deze geven aan welke draden de signalen zullen zenden en ontvangen. (DCE staat niet voor ‘Data Communications Equipment’ zoals de meesten denken.) De norm raadt het gebruik van een 25 pins aansluiting aan (dit is dus niet verplicht). Meestal hebben de computers en beeldschermen DTE-connectoren en hebben modems en printers DCE-connectoren. Op de computer (DTE) worden male connectors gebruikt en op een modem (DCE) een female connector. De norm specifieert 20 verschillende signaalverbindingen. De pennen voor massa (GND), verzonden data TD en ontvangen data RD worden altijd gebruikt, de overige pinnen worden bij veel apparaten niet gebruikt. Zo werden om geld en ruimte te besparen kleinere connectoren ontwikkeld. Vooral de 9 pin D-sub(miniatuur) DB-9 connector wordt vaak bij PC’s en bij andere toestellen gebruikt. DB-25 en DB-9 connectoren zijn meestal vrouwelijk op het toestel. Recentelijk zijn de 8 pin RJ-45 connectoren gebruikelijk, maar ook hier is er een grote verscheidenheid in de toekenning van de pinnen. Standaard EIA/TIA 561 specificeert een bepaalde pintoekenning, maar de “Yost Serial Device Wiring Standard”, uitgevonden door Dave Yost, wordt meestal op Unix computers gebruikt en vele andere toestellen volgen deze niet.

Pinout DB-9 connector

Pin:OmschrijvingAfkorting
1Carrier DetectDCD
2Received DataRxD
3Transmitted DataTxD
4Data Terminal ReadyDTR
5Common GroundGND
6Data Set ReadyDSR
7Request To SendRTS
8Clear To SendCTS
9Ring IndicatorRI
-Protective Ground-

Signaalniveaus

De RS-232-standaard definieert de signaalniveaus die corresponderen met een logische één en een logische nul als plus of min 3 tot 15 volt, het gebied rond nul volt is geen geldig RS-232 niveau. Een logische één heeft een negatief signaalniveau, wordt ‘mark’ genoemd en heeft als functionele betekenis UIT (OFF), een logische nul is positief, wordt ‘space’ genoemd en heeft als functionele betekenis AAN (ON). De standaard specifieert een maximum van 25 V. Afhankelijk van de gebruikte voeding worden veelal signaalniveaus van ±5 V, ±10 V, ±12 V en ±15 V gebruikt. Een bekende omzetter van en naar TTL-niveau is de MAX232 van Maxim Semiconductors. Ook de snelheid waarmee de signalen moeten veranderen (stijg- en daaltijd of slew rate) is vastgelegd in de norm.

serial_rs232_signaal

Voltage:Logische waarde:
+3...15v0
-3...15v1

Voorbeeld werking

Er worden dus 1’tjes en 0’tjes verstuurd (bits) via de kabel (doormiddel van spanningsveschillen), elke ASCII byte is 8 bits, hieronder is een overzichtje hoe letters (ASCII) eruit zien als binaire code:

Byte (ASCII) Binaire waarde
A 01000001
B 01000010
C 01000011
D 01000100
E 01000101
F 01000110
G 01000111
H 01001000

Om het woord “HALLO” te versturen is dit de binaire code die over de seriele kabel verzonden wordt: 0100100001000001010011000100110001001111

Snelheid

De seriele poort RS232 kent vele snelheidsinstellingen, ook wel “baudrate” genoemd, dit betekend het aantal bits per seconde (bit/s), bij veel apparaten word standaard 9600 bit/s gebruikt!

Baudrate (bit/s)byte/s
75±9
110±14
1200150
2400300
4800600
96001200
144001800
192002400
288003600
384004800
576007200
11520014400

Let er wel op dat de zender en ontvanger dezelfde baud rate gebruiken, ander snappen ze elkaar niet!

Afkortingen

Het kan voorkomen dat er met snelle afkortingen gewerkt word om de poortinstellingen weer te geven, zoals:

– 9600 8N1 (dit is de meest voorkomende instelling)
– 9600 7E1

Uitleg afkortingen poortinstellingen:

9600 8N1:
Baudrate = 9600
Data bits = 8
Parity = None
Stop bits = 1

9600 7E1:
Baudrate = 9600
Data bits = 7
Parity = Even
Stop bits = 1

Maximale kabel lengte

Kabellengte is één van de meest besproken onderwerpen in RS232 wereld. De standaard heeft hier een duidelijk antwoord op. De maximaal toegestane kabellengte is 15 meter, of de kabellengte die overeen komt met een capaciteit van 2500 pF. De laatste regel wordt echter vaak vergeten. Dit betekent, dat door gebruik te maken van een kabel met een lage capaciteit het mogelijk is grotere afstanden te overbruggen zonder buiten de limieten van de standaard te vallen. Als bijvoorbeeld UTP CAT-5 kabel wordt toegepast met een typische capaciteit van 57 pF/m, dan is de maximaal toegestane kabellengte 44 meter. Bij de in de standaard genoemde kabellengte is het mogelijk de maximale communicatiesnelheid te handhaven. Als de snelheid met een factor 2 of 4 wordt verlaagd, dan neemt de maximaal mogelijke lengte dramatisch toe. Texas Instruments heeft een aantal jaren geleden praktische experimenten uitgevoerd om bij verschillende baudrates de maximaal toegestane kabellengte te bepalen. Houd hierbij in het achterhoofd, dat de RS232 standaard oorspronkelijk ontwikkeld is voor snelheden tot 20 kbps. Door het halveren van de maximale communicatiesnelheid neemt de maximaal toegestane kabellengte toe met een factor tien!

BaudrateMax. kabellengte (m)
1920015
9600150
4800300
2400900

Bronnen
Wiki NL: http://nl.wikipedia.org/wiki/Seri%C3%ABle_poort
Wiki EN: http://en.wikipedia.org/wiki/Serial_port
Lambert Bies: http://www.lammertbies.nl/comm/cable/nl_RS-232.html
Rob Kalmeijer: http://www.robkalmeijer.nl/techniek/kabels/rs232/index.html
How stuff works: http://computer.howstuffworks.com/serial-port.htm