RS-232
busz rs_232 en: Recommanded Standard 232
Alapok
Az RS-232 szabványt az Electronic Industries Association (EIA), az USA Villamosipari Szövetsége fejlesztette ki.
A szabvány nevében az RS betűk a Recommanded Standard, azaz Ajánlott Szabvány kezdőbetűit jelentik, a végén lévő betű pedig az ajánlás különböző módosított, felújított változatait jelenti.
Az RS-232 szabvány első változatát 1962-ben vezették be, majd ezt követték a módosítások, melyek közül a harmadik a legismertebb, az EIA RS-232-C szabvány 1986-ból.
Ezt felváltotta a TIA/EIA-232-E (RS-232-E) melynek megjelentek az európai megfelelői a CCIT/ITU V.24 illetve DIN 66020 valamint az ISO IS2110.
A legújabb ajánlás a TIA/EIA-232-F (RS-232-F), ennek Európában a ITU-T V.24, és az ISO/IEC 2110 felel meg.
Gyakorlatilag az RS-232 a legrégebben használt, de máig „kiirthatatlan” szabvány a kommunikációban.
Az RS-232 jellemzően duplex kommunikációt biztosít a pont - pont (p2p) kapcsolatban résztvevő két állomás között.
Az RS-ek (232, 422, 485) paramétereinek összevetését itt találja.
Az RS 232 előnyei és hátrányai
előnyei
- olcsó
- széles körben elterjedt
hátrányai
- többszörös test-potenciálok: sokszor potenciálban jelentősen eltérő készülékeket kell összekötni; ilyenkor a GND vezetéken jelentős feszültség(különbség)ek kóvályoghatnak. Érdemes ezekben az esetekben opto-t iktatni a kommunikációba.
- érzékeny a zajokra: Ez a probléma jelentősen csökkenthető a közös GND-re a vezeték mindkét végén lekötött árnyékolással.
- rövid távolságra alkalmazható: Jellemzően (ajánlás szerint) 15m-ig alkalmazható, de árnyékolt vezetékkel (és zavarmentes környezetben) ez kihúzható 30 méterig is. Alacsony kapacitású vezetékkel akár a 100 méterre is rá lehet próbálkozni (lásd baudráta). Klasszikus megoldás még az RS-232-t RS422-re átkonvertálni (majd a másik oldalon visszakonvertálni), így a távolság 1200 m-re emelhető; ennek hivatalos neve: V.35 interface.
- lassú
Az RS 232 jellemzői
Az RS szabványok összehasonlítását itt találja.
RS-232 | |
---|---|
Működési mód | asszinkron átvitel |
Meghajtók és vevők száma egy vonalon | 1 meghajtó 1 vevő (pont-pont) |
Adatátvitel módja | félduplex, full-duplex |
Adatátvitel | p2p |
Max. kábelhosszúság | 15 m |
Max. adatátvitel 12 m 1200 m | 20 kbps (1 kbps) |
Max. jelváltozási sebesség (slew rate) | 30 V/μs |
Vevő bemeneti ellenállás | 3..7 kΩ |
Meghajtó terhelés- impedancia | 3..7 kΩ |
Vevő holtsáv | ±3 V |
Vevő feszültségszint | ±15 V |
Meghajtó kimenő feszültség max. | ±25 V |
Meghajtó kimenő feszültség min. (terheléssel) | ±5 V |
Meghajtó kimeneti rövidzárási áram limit | 500 mA Vcc vagy Test felé |
Vevő hiszterézis | 1,15 V |
RS-232 OSI modell
Szint | Magyarul | Németül | Angolul |
---|---|---|---|
7 | Alkalmazási réteg | Anwendungsschicht | Application layer |
6 | Megjelenítési réteg | Darstellungsschicht | Presentation layer |
5 | Viszonylati réteg | Kommunikationssteuerungsschicht | Session layer |
4 | Forgalmazási réteg | Transportschicht | Transport layer |
3 | Hálózati réteg | Vermittlungsschicht | Network layer |
2 | Adatkapcsolati réteg | Sicherungsschicht | Data Link layer |
1 | Fizikai réteg | Physikalische Schicht | Physical layer |
Az RS-232 átvitel - csakúgy, mint az összes, RS-ben definiált protokoll - a fizikai réteg szerepét tölti be, a jelprotokoll nem kerül ebben definiálásra - meglehetősen sok protokoll esetében (ABB Procontic T200, BACnet, BÜEP19, Melsec,.. ezekről bővebben itt talál áttekintést). Az RS-232-öt magában, csupaszon is lehet alkalmazni, de ebben az esetben a fizikai réteg feletti feladatok megvalósítását nekünk kell megoldanunk.
Maximális adatátviteli távolság
A lenti értékek UTP CAT-5 vezetékkel - 55 pF/m - rel valósíthatók meg.
maximális baudráta | 2.400 | 4.800 | 9.600 | 19.200 | 57.600 | 115.200 |
maximális távolság | 900 m | 300 m | 152 m | 15 m | 5 m | < 2 m |
Nagyobb áthidalandó távolság esetén érdemes olyan hálózati eszközt beiktatni a két végpont közé, ami alkalmas annak átvitelére. Egyszerű és kézenfekvő, hogy a két végpontban TCP/IP-re konvertáljuk az RS-232-nket, így viszonylag olcsón, gyakorlatilag bármekkora távolságra (akár az interneten is) átvihetjük a szükséges jeleket.
RS 232 jelrátája
Az átviteli ráta / távolság hányadosa jelentősen függ az alkalmazott vezeték minőségétől és a vonali erősítők (repeater-ek) számától. A lenti görbék pusztán jellemző értékeket jelenítenek meg.
Adatjel állapotok
- Adatjel (TXD) Space, feszültségszint +3V - +15VLogikai 0 jel, ellenőrző jel (RTS, DTR): ON
- Adatjel (TXD) Mark, feszültségszint -3V - -15VLogikai 1 jel, ellenőrző jel (RTS, DTR): OFF
- Holtsáv, feszültségszint -3V - +3V
Az RS-232 kommunikációba a szabvány szerint beépítettek egy holtsávot, ez a +3V - -3V tartomány. Ennek feladata a zajelnyelés, a voltaképpeni jeleket csak az ebből a sávból kimozduló feszültségszintek produkálnak. A pozitív irányba kimozduló feszültség logikai 0 jelet, un. space-t hoz létre, negatív irányban pedig logikai 1-et, mark-ot generál. A feszültségszint mindkét irányban 15V-ig terjedhet, de jellemzően a készülékek nagy része +/- 5V feszültséggel kommunikál.
Adatátvitel
Az RS-232 aszinkron adatátvitelt alkalmaz, ezért az átvitelhez szükséges a start-, stopbit alkalmazása. Ennek menetét egy példán keresztül szeretném bemutatni:
A fenti ábrán egy ASCII G betű átvitelét próbálom szemléltetni. Ebben az esetben a G betű a távirat tartalma, így ezt határolják a stop- és start bitek. Az RS-232 beállítása : 8O1. (a jellemző alapbeállítás 8N1)
1: Nyugalmi helyzetben a vonal SPACE, logikai 1 állapotban található.
2: A táviratokat mindig a szinkronizációhoz szükséges startbit vezeti be, ez egy MARK, logikai 0 alkalmazása
3: Itt következik a tartalom átvitele. Mivel minden byte-ot az LSB-vel (least significant bit) kell kezdeni és az MSB-vel (most significant bit) zárni, így a bitsorrend megfordul (G - hex 47 - 01000111 → 11100010)
4: A paritás bit alkalmazása opcionális (és nem is ad túl nagy biztonságot), mindenesetre
- O (odd - páros) beállítás esetén, ha az átvitt 1-esek száma páros - mint fent - a paritás értéke 1 lesz.
- E (even - páratlan) beállítás esetén ha az átvitt 1-esek száma páratlan - lesz a paritás értéke 1. A fenti példán E beállítás esetén a paritás 0 lett volna.
- N (none - nincs) beállítás esetén a telegram nem tartalmaz paritás bitet. Jellemzően alapbeállítás.
5: A stopbit vagy stopbitek zárják a telegramot egy SPACE logikai 1-gyel. A stopbiteknél az alábbi opciókból választhatunk:
- 1 Stopbit : A telegramot egy SPACE zárja. Alapértelmezett.
- 2 Stopbit : A telegramot két SPACE zárja. Olyankor szokták alkalmazni, ha a telegramot azonnal fel kell dolgoznia a vevőnek, így adnak a feldolgozásra egy kicsivel több időt.
6: Ismét nyugi.
A fenti esetben 1 baud = 11 bit.
Portkiosztás
megnevezés EIA/TIA | megnevezés CCITT | megnevezés DIN | csatlakozó 9 pólusú | csatlakozó 25 pólusú |
---|---|---|---|---|
DCD (Data Carrier Detect) | 1090 | M5 | 1 | 8 |
RXD (Receive Data) | 104 | D2 | 2 | 3 |
TXD (Transmit Data) | 103 | D1 | 3 | 2 |
DTR (Data Terminal Ready) | 1082 | S1.2 | 4 | 20 |
GND (Ground) | 102 | E2 | 5 | 7 |
DSR (Data Set Ready) | 107 | M1 | 6 | 6 |
RTS (Request To Send) | 105 | S2 | 7 | 4 |
CTS (Clear To Send) | 106 | M2 | 8 | 5 |
RI (Ring Indicator) | 125 | M3 | 9 | 22 |
Csatlakozó típusok, lábkiosztással
A lábakhoz tartozó funkciókat egy fejezettel feljebb (Portkiosztás) találja meg (a táblázat utolsó két oszlopa).
A - talán második - leggyakrabban felbukkanó RS-232 kommunikációs eszköz a nullmodem. Ezzel a vezetékkel jellemzően két, teljes értékű kommunikációra képes állomást szokás összekötni. Ha a két állomás esetleg nem kér a különböző kézfogásokból (handshake), semmi gond, mert a következő pontban ismertetésre kerülő minimál rs232 funkcionalitást (2,3,5) így is el tudja látni.
Minimál RS-232 csatlakozó
A jellemző minimális kivitele az rs232-nek. Nincs se kézfogás (handshake), meg semmi laca-faca, csak az adatok jönnek-mennek. A rendkívül sérülékeny adatátvitel ellenére a leggyakrabban ezt alkalmazzák mérésekre, paraméterek feltöltésére. Három vezetékes rs232-nek is szokás nevezni.
Handshake
hu: kézfogás, en: handshake
Szoftver handshake
X-ON / X-OFF protokoll néven is szokott futni - jellemzően beállítások esetén ezen a néven hivatkoznak rá. Mindaddig, amíg a hardver handshake extra portokat használ az átvitel vezénylésére, a szoftveres változat nem igényli ezt, ezért akár a minimál RS-232 csatlakozón is megvalósítható ez.
Az ASCII táblázat első 32 jelét vezénylő karakterek foglalják el, ebből 4 (DC1 - DC4; DC:Device Control) az átvitel vezénylésre lett elkülönítve, ezekből jellemzően kettőt használunk:
- DC1 (X-ON, Hex 11) az átvitel kezdetét jelzi
- DC3 (X-OFF, Hex 13) az átvitel lezárását jelzi
Ez a verérlés meglehetősen korlátozott módon vehető igénybe, ugyanis ha bináris adatokat akarunk továbbítani, azokban gyakran felbukkanhatnak a fenti vezénylő karakterek, amik megbolondítják, de legalábbis ellehetetlenítik az adatátvitelt. A módszer továbbfejlesztett változata például az x-modem protokoll, ami az átvitt adatmennyiséget blokkokba rendezi és egyszerre csak adott mennyiségű byte információt továbbít.
Hardver handshake
A kézfogásnak két fajtája van:
- DTR / DSR : kapcsolat létrehozását biztosítja, modem-módnak is szokás nevezni
- RTS / CTS : adatfolyam (adatátvitel) vezénylése
Amennyiben az adatátvitel során mindkét handshake-et alkalmazzuk, ennek menete a következő:
1: Az adó jelzi a vevő felé a DTR (Data Terminal Ready) jellel, hogy készen áll a forgalmazásra.
2: A vevő a DSR (Data Set Ready) jellel visszajelez, hogy szintén készen áll a kommunikációra.
3: Az adó az RTS (Request To Send) jellel jelzi, hogy adatot kíván küldeni.
4: A vevő a CTS (Clear To Send) jellel visszajelez, hogy készen áll az adat fogadására, illetve a kommunikációra.
5: Megkezdődik a kétirányú (duplex) forgalmazás a RxD (Receive Data) / TxD (Transmit Data) vonalakon
6: A vevő visszavonja a CTS-t, mert nem tud adatokat fogadni (pl. a puffere megtelt).
7: A CTS jel ismételt kiadásával a forgalmazás újraindul
8: Az adó az RTS jel megvonásával jelzi, hogy szüneteltetni akarja a kommunikációt.