busz rs_232 en: Recommanded Standard 232
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.
előnyei
hátrányai
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 |
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.
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.
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.
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.
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
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:
6: Ismét nyugi.
A fenti esetben 1 baud = 11 bit.
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 |
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.
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.
hu: kézfogás, en: 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:
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.
A kézfogásnak két fajtája van:
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.