RS-232

RS-232 er i telekommunikasjonen en standard for seriell sammenkopling mellom en dataterminal (DTE) og datakretsløpsterminerende utstyr (DCE; for eksempel et modem). Standarden er ofte brukt i seriellporter på PC-er. En lignende ITU-T standard er V.24. RS er en forkortelse for «Recommended Standard» (anbefalt standard).


== Standardens omfang ==
EIA-standarden RS-232-C av 1969 definerer:

Elektriske signalegenskaper, slik som spenningsnivå, hastighet, timing og "slew-rate" av signalet, hvor mye spenning det skal tåle, oppførsel hvis kortslutning, maksimum kapasitansavvik og kabellengde
Mekaniske karakteristikker av grensesnittet, kontakter og pinneidentifikasjon
Funksjonene av hver krets i grensesnitt-tilkoblingen
Standardsett av gresnesnittkretser for utvalgt telekommunikasjonsbrukStandarden definerer ikke koding av tegn (for eksempel ASCII, Baudot eller EBCDIC) eller innpakning av karakterene i datastrømmen (biter per karakter, start/stop-biter, paritet). Standarden definerer heller ikke sendehastighet, selv om standarden nevner at den er ment for hastigheter lavere enn 20 Kbit/s. I dag bruker mange apparater hastigheter høyere enn dette. 38,4 Kbit/s og 57,6 Kbit/s er vanlig og 115,2 Kbit/s og 230,4 Kbit/s er også brukt.


== Historie ==
Standarden var originalt laget for å spesifisere sammenkoplingen mellom en elektromekanisk fjernskriver og et modem. Når elektroniske terminaler (smarte og dumme) først begynte å bli brukt, så var de ofte laget for å bytte eller bli byttet ut med fjernskrivere. Derfor støttet de også RS-232. C-revisjonen ble utgitt i 1969 for å tilpasse standarden til terminalenes elektriske egenskaper.
Fordi at standarden ikke var laget for datamaskiner, printere og så videre, så implementerte ofte designerne av slike apparater RS-232 på sin egen måte. Vanlige problemer var andre pinneoppsett og uriktige eller ingen kontrollsignaler. På grunn av denne manglende overholdelsen av standarden så begynte mange firmaer med å lage breakout- og patchbokser, testutstyr, bøker og andre hjelpemidler for å kople sammen forskjellig utstyr.
Senere begynte datamaskiner å ta i bruk standarden slik at de kunne koples opp mot eksisterende utstyr. RS-232-kompatible porter var i flere år en standard for seriell kommunikasjon, for eksempel for modem, for mange datamaskiner. Standarden var populær fram til slutten av 1990-tallet. Selv om den i dag har stort sett blitt byttet ut med andre standarder, så er den fremdeles brukt på bakoverkompatibelt utstyr.
Standarden har blitt omdøpt flere ganger på grunn av at sponsororganisasjonen har skiftet navn. Andre navn er EIA RS 232, EIA 232, og senest TIA 232. Standarden fortsetter med på bli revidert og oppdatert av EIA og, siden 1988, TIA (TIA). Revisjon C ble utgitt august 1969 og revisjon D i 1986. Nåværende revisjon kalles TIA-232-F Interface Between Data Terminal Equipment and Data Circuit-Terminating Equipment Employing Serial Binary Data Interchange og kom ut i 1997. Forandringer siden revisjon C er timing og større samsvar med CCITT-standarden V.24. Utstyr laget for nåværende standard vil virke med utstyr bygd etter eldre revisjoner.


== Begrensninger i standarden ==
Det har blitt laget nye standarder for å gjøre noe med begrensningene i opprinnelige standarden. Disse ble laget først og fremst fordi RS-232s bruksområde ble utvidet til å bli brukt til mye mer enn det den var opprinnelig laget for (å kople sammen en terminal og et modem).
Problemer med RS-232 standarden inkluderer:

De store svingningene i spenning og behovet for positiv og negativ strømtilførsel øker grensesnittets strømforbruk og kompliserer konstruksjonen av strømforsyningen. Svingningene i spenninga begrenser også hastigheten
Enkeltendet signalering henviser til felles jord og begrenser immunitet mot støy og lengde mellom sender og mottaker
Flerpunktoppsett (kopling mellom flere enn to apparater) er ikke definert; selv om løsninger har blitt utviklet så har de mange begrensninger innen hastighet og kompatibilitet
Asymmetriske definisjoner for de to endene i en oppkopling gjør at oppsettet til et nylaget apparat blir problematisk; Designeren må velge om det skal ha et DTE- eller DCE-grensesnitt og hvilket pinneoppsett som skal brukes
Kommunikasjonssjekk- og kontrollpinnene på grensesnittet er ment å brukes for å sette opp og ta ned en oppringningskrets; spesielt så er ikke implementeringen av flytkontroll over pinnene for kommunikasjonssjekk (handshaking) pålitelig implementert i mange apparater
Standarden anbefaler både "pinout" og en kontakt og kontakten er stor sammenlignet med dagens standarder


== Rolle i dagens datamaskiner ==
I boken "PC 97 Hardware Design Guide" anbefalte Microsoft å slutte med å bruke den RS-232-kompatible serieporten fra det originale IBM PC-designet. I dag blir RS-232 gradvis erstattet med USB for lokal kommunikasjon. USB er raskere, bruker lavere spenningsnivå og har mindre kontakter som det er enklere å koble ting til. USB er designet slik at det skal være enklere for driverne å kommunisere med tilkoplet maskinvare. USB er dog en mer kompleks standard som trenger mer programvare som støtter protokollen. RS-232 ble også brukt til å kontrollere forskjellig apparat som ikke hadde RS-232 implementert på apparatets side. Dette er ikke mulig med USB.
Mange datamaskiner for kontorbruk blir ofte solgt uten bakoverkompatibilitet med RS-232. Det er dog ofte brukt på salgsteder (strekkode- og kortlesere), amatørelektronikk og industrielle måleapparater og fjernkontrollering. Datamaskiner laget for slike formål har derfor ofte en RS-232 port. Som et alternativ så finnes det maskinvare for USB som lar deg kople til apparater som bruker serieporten. Disse trenger da en ekstra driver slik at programmene kan bruke det som er koplet til serieporten som om det skulle være koplet direkte til maskinen.


== Detaljer ==
Data blir sendt som en serie med biter. Både synkrone og asynkrone overføringer er tillatt ifølge standarden. Hver krets opererer bare en vei, som for eksempel signal fra en DTE til en DCE eller omvendt. Siden datasending og datamottak er på separate kretser, kan grensesnittet operere i full dupleks, altså sende og motta data samtidig. Standarden definerer ikke innpakning av data eller koding av karakterer.

Det vanligste oppsettet er en asynkron link som sender sju eller åtte biter om gangen. Bitene består av en startbit, sju eller åtte databiter (minst signifikante bit først), en valgfri paritetsbit og en stoppbit. Den konstante tilstanden er kalt for "Marking state". Begynnelsen på en ny karakter signaliseres ved å sette den til "Space state". Bitene blir da sendt ved å alternere mellom disse to og slutter med en stoppbit. Mange mekaniske fjernskrivere trenger ekstra tid for å klargjøres for neste karakter så mange systemer sender derfor to stoppbiter.
Historisk sett så brukte fjernskrivere og lignende ASCII i USA, og forskjellige andre tegnsett andre steder. Noen veldig gamle fjernskrivere og Telex-systemene brukte Baudot.


=== Spenningsnivå ===
RS-232-standarden definerer spenningsnivå som samsvarer med logisk en og null. Signaler er pluss eller minus 3-15V. Området rundt 0V er ikke et gyldig nivå. Logisk en er definert som negativ spenning og har funksjonen OFF. Logisk null er positiv og har funksjonen ON.  Standarden spesifiserer en maks spenningsnivå på 25V. ±5 V, ±10 V, ±12 V og ±15 V er vanlige etter hvilken type strømforsyning apparatet har. Kretser som driver et RS-232-kompatibelt grensesnitt må kunne tåle endeløs kortslutning til jord eller spenning til og med 25V. "Slew-rate", eller hvor raskt signalet skifter mellom nivåene, er også kontrollert.


=== Kontaktene ===
Apparater som bruker RS-232 er klassifisert som en DTE eller DCE. Dette definerer hvilke pinner som skal sende og ta imot signaler. Standarden anbefalte D-subminiature 25-pins kontakten men gjorde den ikke obligatorisk. Generelt sett så har terminaler hannkjønnskontakter med DTE-oppsett og modemer har hunnkjønnskontakter med DCE-oppsett. Andre apparater kan ha hvilken som helst kombinasjon av kontakter og pinneoppsett.
En 25-pins D-sub kontakt trenger ikke bety at grensesnittet støtter RS-232. For eksempel hadde den originale IBM PC-en en hannkjønnskontakt for RS-232 (med en ikke-standard loop på reserverte pinner) og en hunkjønnskontakt for parallell overføring til printere. Noen datamaskiner hadde også andre spenningsnivå og signal på sine serieporter.
Standarden spesifiserer 20 forskjellige signalforbindelser. Siden de fleste apparatene bruker bare noen få signaler, så kan mindre kontakter bli brukt. For eksempel så var 9-pins DE-9-kontakten brukt på de fleste IBM-kompatible PC-ene siden IBM PC AT. Senere så har 8-pins RJ-45 kontakter blitt mer vanlig, dog med varierende pinneoppsett. Standarden EIA/TIA 561 spesifiserer et pinneoppsett, men "Yost Serial Device Wiring Standard" som ble funnet opp av Dave Yost er vanlig på Unix-maskiner, og mange apparater følger ikke noen av standardene. 10-pins RJ-50 kontakter er også brukt.
Følgende tabell lister opp de vanlige RS-232-signalene og pinneoppsettene (se også RS-485 for en annen standard med de samme kontaktene):

Utgangspunktet er DTEen. TD, DTR og RTS blir sendt av DTEen og RD, DSR, CTS, DCD og RI blir sendt av DCEen. Jord er felles returledning for alle de andre pinnene. Den finnes på to pinner i Yost-standarden, men er det samme signalet. Kople sammen pin 1 (beskyttelsesjording) og pin 7 (signaljord) er vanlig, men ikke anbefalt. Bruken av felles jord er en av svakhetene ved RS-232. Hvis apparatene er for langt fra hverandre, eller på forskjellig strømtilførsel, så vil jorda bli degradert og kommunikasjonen vil feile. Dette er en vanskelig feil å lokalisere.
Merk at EIA/TIA 561 kombinerer DSR og RI, Yost kominerer DSR og DCD.


=== Kabler ===
Siden standarden ikke alltid er korrekt anvendt, så er det ofte nødvendig å bruke dokumentasjon, testkoplinger med en breakoutboks eller prøve og feile for å finne en kabel som virker mellom to apparater. For å koble sammen en fullt kompatibel DCE og DTE trenger man en kabel som kobler sammen identiske pinner på hver kontakt (en såkalt straight kabel). Kjønnsskiftere er tilgjengelig for å løse problemer med å koble sammen apparater og kabler. For å koble sammen apparater med forskjellig type kontakter trenger man en kabel som kopler sammen pinnene ifølge tabellen over. Kabler med 9 pinner på en side og 25 på den andre er vanlige og produsenter av utstyr med RJ-45 kontakter inkluderer som oftest en kabel med enten en DB-25 eller DE-9 kontakt (eller utbyttbare kontakter).
Man trenger ett såkalt null modem for å kople sammen to DTEer. Denne vil da oppføre seg som en DCE og kobler sammen de rette pinnene (TD-RD, DTR-DSR og RTS-CTS). Man kan enten bruke to vanlige kabler og et apparat eller en kabel hvor pinnene er koblet sammen for dette formålet. En egenskap ved Yost-standarden er at en nullmodem-kabel er en "rollover"-kabel som bare kobler om pin 1 og 8.
Hvis man skal konfigurere eller finne problemer med RS-232-kabler så kan en "breakoutboks brukes. Denne vil normalt ha en hunnkjønns- og en hannkjønnskontakt og er ment til å koples til mellom to apparater. Den har lys som indikerer aktivitet på de forskjellige pinnene og mulighet til å kople om pinnene til forskjellige konfigurasjoner.
RS-232-kabler kan lages med kontakter som kan kjøpes på elektronikkforretninger. Kablene må ha mellom 3 og 25 ledninger, vanligvis brukes 4 eller 6. Flate RJ-kabler (telefonkabler) kan bli brukt med spesielle RJ-RS232 kontakter, som er de enkleste å konfigurere.
Grunnen til at et tvo-veis grensesnitt kan bli laget med bare tre ledninger er at signalene deler jord. Bruken av ubalanserte kretser gjør at RS-232 er følsom overfor forandringer i jord mellom apparatene. RS-232 har også relativt dårlig kontroll over tiden mellom skifting av spenningsnivå, noe som kan forårsake krysstale. RS-232 var anbefalt for korte distanser (15 meter eller kortere). RS-232-kabler er vanligvis ikke laget med tvinnete par på grunn av de ubalanserte kretsene.
Selv om kontrollinjene på RS-232-grensesnittet var originalt laget for å sette opp og ta ned oppkoplinger, så kan andre "handshake"-metoder være nødvendig. Disse linjene kan bli brukt som flytkontroll slik at man kan verifisere mottak av data sendt til en skriver. Pinn 20 er ofte brukt for å indikere at apparatet er klart til mottak av data. Pinner kan også bli rutet tilbake på ett av apparatene. For eksempel så kan en pinne som sier "er du klar?" på apparat A bli sendt til pinnen som sier "jeg er klar" på apparat A hvis B ikke sendte signalet. Vanlige pinner for "handshake" er 20, 8, 4 og 6.


== Sjeldent brukte egenskaper ==
EIA-232-standarden spesifiserer koblinger for flere egenskaper som ikke er mye brukt. Disse egenskapene trenger en 25-pins kontakt og kabler, og selvfølgelig må både DTE og DCE støtte det.


=== Signalhastighetsvalg ===
DTE eller DCE kan velge mellom en høy eller lav hastighet. Hastigheter og hvilken av de som skal bestemme hastighetet må være konfigurert i både DTE og DCE. Høy hastighet blir valgt ved å sette pin 23 til ON.


=== Loopbacktest ===
Mange DCEer kan bruke loopback for testing av oppkoplingen. Når den er slått på så vil signalene bli sendt tilbake til senderen istedenfor å bli sendt til mottakeren. Hvis det er støttet så kan en DTE signalisere en lokal DCE (den DTEen er koplet til) at den skal gå inn i loopbackmodus ved å sette pin 18 til ON, eller en fjern DCE (den den lokale DCEn er koplet til) ved å sette pin 21 til ON. Når DCEen er i denne modusen så vil den signalisere DTEen ved å sette pin 25 til ON.
En annen måte er å koble sammen pinnene i kabelen. Da trenger man ikke støtte for loopback i apparatene.
Loopback er ofte utført med en spesialisert DTE kalt en "Bit Error Rate Tester (BERT).


=== Timingsignal ===
Noen apparater som opererer synkront bruker et klokkesignal til å synkronisere dataoverføringen. Dette er gjort av DCEen på pinnene 15 og 17. Pin 15 er sendeklokka; DTEen sender neste bit på datalinjen (pin 2) når pin 15 går fra OFF til ON. Pin 17 er mottakerklokka; DTEen leser neste bit fra datalinjen (pin 3) når denne klokka går fra ON til OFF.
Alternativt så kan DTEen sende ut et klokkesignal på pin 24 for både sendt og mottatt data. Igjen så er data sendt når klokka går fra OFF til ON og lest når den går fra ON til OFF.


=== Sekundær kanal ===
Data kan bli sendt over en sekundær kanal (hvis implementert i DTE og DCE), som er likeverdig med den primære kanalen. Pinneoppsett er som følger:


== Relaterte standarder ==
Andre standarder for seriell overføring kan være ukompatible med RS-232. For eksempel så vil ikke TTL-nivåene på +5V og 0V virke da de er utenfor nivåene RS-232 bruker. Sliker nivåer brukes noen ganger av NMEA-kompatible GPS-mottakere og dybdemålere.
20mA strømsløyfe bruker fravær av 20mA for høy og tilstedeværelse av 20mA for lav. Denne signalmetoden er ofte brukt over lange distanser eller i optisk isolerte koplinger. For å kople et slikt apparat til en RS-232 port så trenger man en nivåomformer siden disse apparatene kan sende ut spenninger over de grensene RS-232-kompatible apparater er laget for å tåle. Det originale IBM XT serieportkortet implementerte en 20mA strømsløyfe som aldri ble brukt i noe annet utstyr laget av andre leverandører
Andre grensesnitt som er lik RS-232:

RS-422 – Høyhastighetssystem lik RS-232 men med differensialsignalisering
RS-423 – Høyhastighetssystem lik RS-422 men med ubalansert signalisering
RS-449 – Grensesnitt som brukte RS-422- og RS-423-signaler. Det ble aldri like populært som RS-232 og ble trukket tilbake av EIA
RS-485 – Etterkommer av RS-422 som kan brukes som en buss i flerpunktkonfigurasjoner
MIL-STD-188 – System likt RS-232, men med bedre impedans og nivåskiftekontroll
EIA-530 – Høyhastighetssystem som brukte de elektriske egenskapene fra RS-422 og RS-423, men i en EIA-232 "pinout"-konfigurasjon slik at den kombinerte det beste fra begge


== Kilder ==
Electronics Industries Association, "EIA Standard RS-232-C Interface Between Data Terminal Equipment and Data Communication Equipment Employing Serial Data Interchange", august 1969, Telebyte Technology "Data Communication Library" Greenlawn NY, 1985, ingen ISBN
"PC 97 Hardware Design Guide", 1997, Microsoft Press, Redmond Washington USA, ISBN 1-57231-381-1
TIA


== Eksterne lenker ==
RS-232 informasjon
Yoststandarden
D-Subminiature terminologi
Konverterer RS-232-signaler fra og til TTL-nivå
Seriellport informasjon
Grunnleggende om RS-232
Trådløs RS-232
Introduksjon til seriekommunikasjon
Programmering av RS-232, V.24 UART
Hvordan koble en loopback-kabel https://web.archive.org/web/20070720130529/http://www.kunnskapsnett.no/innhold/FBloopbackkoblinger.htm