hu:comm:bus_rs232

Differences

This shows you the differences between two versions of the page.

hu:comm:bus_rs232 [2017/09/06 20:53]
hu:comm:bus_rs232 [2022/04/21 15:03] ()
 1:  1:
 +{{ wiki:comm:rs232_1.png|RS-232 cable}}
 +====== RS-232 ======
 +{{tag>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 ([[hu:comm:start#p2p|p2p]]) kapcsolatban résztvevő két állomás között.
 +
 +Az RS-ek (232, 422, 485) paramétereinek összevetését [[bus_rs|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 [[hu:comm:start#baudrata|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 [[bus_rs|itt találja]].
 +
 +^ ^RS-232|
 +^Működési mód|[[hu:comm:start#asszinkron|asszinkron átvitel]]|
 +^Meghajtók és vevők\\ száma egy vonalon|1 meghajtó\\ 1 vevő (pont-pont)|
 +^Adatátvitel módja|[[hu:comm:start#half_duplex|félduplex]],\\ [[hu:comm:start#full_duplex|full-duplex]]|
 +^Adatátvitel|[[hu:comm:start#p2p|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 ([[file:///D:/www.ob121.com/bus_collection.html#abb_procontic_t200|ABB  Procontic T200]], [[bus_collection#bacnet|BACnet]], [[file:///D:/www.ob121.com/bus_collection.html#buep19|BÜEP19]], [[file:///D:/www.ob121.com/bus_collection.html#melsec_a|Melsec]],.. [[bus_view|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 [[bus_cable_connectors#utp|UTP]] [[bus_cable_connectors#eiatia_568|CAT-5]] vezetékkel - 55 pF/m - rel valósíthatók meg.
 +
 +|maximális [[hu:comm:start#baudrate|baud]][[hu:comm:start#baudrate|rá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 [[bus_ethernet#tcpip|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 ([[bus_units#repeater|repeater]]-ek) számától. A lenti görbék pusztán jellemző értékeket jelenítenek meg.
 +
 +{{wiki:comm:rs_signal_rate.png?562x383|RS-232, RS-422, RS-485 compare signal rates }} 
 +
 +==== Adatjel állapotok ====
 +^ ^{{wiki:comm:rs232_jelszint.png?346x299|RS-232 signal levels}}^{{wiki:comm:rs232_2.png?236x149|space / mark level}}|
 +
 +  * Adatjel (TXD) Space, feszültségszint **+3V** - **+15V**Logikai **0** jel, ellenőrző jel (RTS, DTR): ON
 +  * Adatjel (TXD) Mark, feszültségszint **-3V** - **-15V**Logikai **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 [[bus_rs232#szinkron_asszinkron|aszinkron adatátvitel]]t 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:
 +
 +{{wiki:comm:rs232startstop.png?456x166|RS-232 data transfer}}A fenti ábrán egy [[raktar#ascii_tabla|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 [[hu:comm:start#baudrate|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).
 +
 +^SUB D9^SUB D25|
 +| {{wiki:comm:csat_sub_d9_papa.png?172x103|SUB D-9 connector }} | {{wiki:comm:csat_sub_d25_papa.png?378x116|SUB D-25 connector }} |
 +| {{wiki:comm:csat_sub_d9_mama.png?172x103|SUB D-9 plug-in}} | {{wiki:comm:csat_sub_d25_mama.png?378x116|SUB D-25 plug-in}} |==== Nullmodem RS-232 csatlakozó ====
 +
 +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|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.
 +
 +{{wiki:comm:rs232_3.png?453x261|RS-232 nullmodem}} \\ 
 +
 +==== 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.
 +
 +{{wiki:comm:rs232_minimal.png?453x114|RS-232 "minimal"}} \\
 +
 +==== 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ő:
 +
 +{{wiki:comm:rs232handshake.png?659x179|RS-232 handshake}}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.