XII. PÁRHUZAMOS ÉS A SOROS ADATÁTVITEL Ma, a sok más felhasználás mellett, rendkívül jelentős az adatok (információk) átvitelével foglakozó ágazat. Az átvitel történhet rövid távon, egy berendezésen belül, vagy hosszú távon, egymástól távol levő berendezések között. Ebben a fejezetben az átvitelt megvalósító elveket és eszközöket tárgyaljuk. 1
XII.1. A PÁRHUZAMOS ÉS A SOROS ÁTVITEL JELLEMZŐI Az (a) ábra egy 7+1 bites adat párhuzamos átviteléhez szükséges hardvert és az adatvonalakon lejátszódó eseményeket mutatja, a (b) ábrán viszont a soros átvitelre jellemző idődiagramot láthatjuk. A párhuzamos átvitelnél a szükséges számú vezetéken egyszerre jelennek meg az adatbitek, a soros átvitelnél viszont bizonyos egyezmény (protokoll) szerint egymás után. 2
A 3
A két lehetőség jellemzőit az alábbi táblázatban tűntettük fel. Nyilvánvalóan a párhuzamos átvitel nagyon kedvező a sebességet illetően, de drága és csak kis távolságokon célszerű az alkalmazása. Párhuzamosan visszük át az adatokat és címeket egy processzoros rendszeren belül vagy egy nyomtatott áramkörön belül, ezzel növelve a rendszer jelfeldolgozási teljesítményét, de minden más esetben soros átvitelt alkalmazunk. 4
A 5
A párhuzamos átvitelre vonatkozóan gyakorlatilag nincsenek külön szabályok, csak össze kell kötni a küldő és fogadó egység megfelelő vezetékeit és olyan ütemben küldeni az adatokat, ahogyan azokat a fogadó egység értelmezni tudja. Általában nem módosítjuk a jelszinteket, ugyanolyan 5V-os vagy más szabványos feszültségű jelekkel dolgozunk, mint a rendszer más részeiben (az áramkörcsaládtól függően). 6
A továbbiakban gyakorlatilag csak a soros átvitelről lesz szó. A soros átvitel hardveres és szoftveres szabályok szerint történik, ezek közös neve a protokoll. Csak a protokoll betartásával valósítható meg, hogy az elküldött adatot a fogadó egység helyesen értelmezze. Két digitális rendszer elvi felépítése és soros kommunikációja a következő módon ábrázolható. A rendszereken belül az adatátvitel párhuzamos, a rendszerek közötti átvitel viszont soros. Az átviteli csatorna lehet villamos vezeték, optikai szál vagy rádiós kapcsolat. 7
A 8
Ha ugyanazt az adatmennyiséget szeretnénk átvinni, amely a belső párhuzamos átvitelben részt vesz, a soros kommunikációs csatornának sokkal magasabb frekvencián (nagyobb sávszélesség) kell működnie, mint a párhuzamos eszközöknek, mivel egyszerre csak egy bit vihető át. Az átviteli sebességet a kommunikációs hálózatoknál bit/s vagy byte/s formában fejezzük ki. A gyakorlatban előforduló rendszerek átviteli sebességei kbit/s-tól Gbit/s-ig terjednek, az igényektől és a lehetőségektől függően. 9
A soros átvitel történhet szinkron és aszinkron módon. A szinkron módszernél az adatok mellett órajelet is továbbítunk, esetleg további vezérlőjeleket is. Nagyobb távolságra ez a módszer nem racionális, mert több átviteli vonalra (pl. telefonvonal) van szükség egy adatsor továbbításához. A továbbiakban az aszinkron soros kommunikációt tárgyaljuk. 10
Az UART (universal asynchronous receiver/ transmitter univerzális aszinkron fogadó/küldő egység) a központi eszköz, amely a soros adatátvitelnél a párhuzamos-soros és a sorospárhuzamos átalakítást végzi, attól függően, hogy az adatok küldése vagy fogadása van-e folyamatban. Az átalakítás mellett segédbiteket iktat be az adatfolyamba és szinkronizációt végez. A soros átvitelnél szükséges olyan plusz információ küldése, amely egyértelműen jelzi egy adatcsomag elejét és végét. 11
Az így kiegészített bitsort keretnek nevezzük. A fogadó egységnek tudnia kell, hogy hol (mikor) kezdődik egy keret. A keret elejét egy start bit jelzi, amely mindig az ellenkező logikai értékű, mint az átviteli vonal használaton kívüli állapotában jellemző érték. A fogadó egységet konfigurálni kell: meg kell adni, hogy egy keretben hány adatbit fog érkezni (általában hét vagy nyolc). Az adatbiteket egy vagy több stop bit követi, hogy a fogadó egység fel tudja dolgozni (vagy el tudja tárolni) a beérkezett adatot a következő keret érkezése előtt. 12
Sok UART végez valamilyen hiba-érzékelést, rendszerint párosságot ellenőriz. Különösen nagy távolságra történő átvitelnél fontos ez. A párosság ellenőrzés a fogadó egységnél feltételezi, hogy a küldő egység generálja és hozzáadja az adatbitekhez a párosság bitet. A fogadó és a küldő egységet össze kell hangolni abban az értelemben, hogy a párosság bit az adatbitekben levő egyesek számát párosra vagy páratlanra egészíti-e ki. 13
Az UART rendszerint végez még valamilyen átvitel-vezérlést (handshaking). Ez történhet hardveresen vagy szoftveresen. A hardveres vezérlésnél a fogadó egység a küldő egységet külön vezetéken keresztül értesíti, hogy készen áll az újabb adat fogadására. A szoftveres megoldás nem igényel újabb vezetéket, hanem valamilyen ismert bitsort küld át a fogadó egység a küldő egységnek, így értesítve, hogy készen áll az újabb adatok fogadására. 14
Az UART általános szerkezetét az ábrán láthatjuk. Három egységet figyelhetünk meg: CPU interfész, küldő egység (transmitter), fogadó egység (receiver). Az interfész regiszterekben tárolja a konfigurációs adatokat (párosság, sebesség, átvitel-vezérlés és megszakítások). 15
A 16
A megszakításokon keresztül értesül a CPU, hogy új adat byte érkezett, vagy, hogy előállt a küldéshez az adat byte. A megszakítás indítja el a megfelelő rutint a kommunikáció végrehajtására. A küldő egység végzi a párhuzamos-soros átalakítást, előállítja a párosság bitet, hozzáadja a start és stop biteket (kialakítja a keretet). Az adatbitek közül rendszerint az LSB kerül először küldésre. 17
A 18
A soros kommunikáció nem képzelhető el szabványosítás nélkül, tekintettel arra, hogy sok különböző berendezés kell, hogy együttműködjön. A szabványosítás egyik eleme (a sebesség és a keret kialakítása mellett) az adatok kódolása. A küldött adatok általában nem akármilyen bitsorok, hanem egy kódrendszer kódjaiként értelmezendők. A legelterjedtebbek az ASCII kódok. Hét bittel kódolták az angol abc betűit, a decimális számjegyeket, különböző írásjeleket és számos (nem látható) vezérlő karaktert (tabulátor, sor vége...). 19
I.1. ÁTVITELI KÓDOK Az átviteli vonalon a nulla és az egyes különböző módon jelenhetnek meg. A legegyszerűbb, hogy a nullát alacsony feszültségszinttel továbbítsuk, az egyest pedig magas szinttel (vagy fordítva), ezt hívják NRZ (non return to zero) kódolásnak (ábra). Bizonyos műszaki megoldásoknál ez nem kedvező, mert nem kívánatos, hogy a jelnek egyen szintje legyen ami megtörténik, ha sok nullát vagy egyest küldünk egymás után. 20
21
Az NRZI (non return to zero, inverted) kódolásnál az egymás utáni egyeseket felváltva magas és alacsony szint formájában továbbítjuk. Az RZ (return to zero) kódolásnál az egyesre szánt idő közepén a jelszint magasról alacsonyra vált. A BPRZ (bipolar return to zero) kódolás az előző két módszert kombinálja. A Manchester kódolásnál az egy bit átvitelére szánt idő egyik felében magas szintet, a másik felében alacsony szintet viszünk át. Logikai egyes esetén a magas szint a periódus első felében van, nulla esetén a második felében. 22
12.2. TÁVOLSÁGI SOROS ÁTVITELI SZABVÁNYOK Az aszinkron soros átvitel széleskörű elterjedését a megfelelő szabványosítás tette lehetővé. Ilyen szabványok az RS-232 (és annak továbbfejlesztett változatai), az RS485 és az USB. 23
RS-232 SZABVÁNY Az RS-232-es szabvány szerint egy bitsor egyirányú átviteléhez egy jelvezetékre és egy földvezetékre van szükség (ábra). Kétirányú kommunikációhoz további jelvezeték és megfelelő vezérlőjelek (handshaking) is szükségesek. 24
Az ábrán a RS-232-es szabványnak megfelelő átviteli szinteket láthatjuk. Logikai egyes esetén a kommunikációs vonalra -5 V és -25 V közötti értéket kell kiküldeni, logikai nulla esetén pedig +5 V és +25 V közötti értéket. A fogadó oldalon a mérvadó jelszintek ±3V és ±25V, tekintettel az esetleges csillapításra. 25
RS-422 SZABVÁNY Néhány méteren túl, egészen 1200 méterig az RS-422 szabvány szerinti kapcsolat alkalmazható. A jelet itt sodrott érpáron viszik át, a földvezetéknek mellékes szerepe van. Az érpár két vezetékét két, egymással ellentétes előjelű, feszültséggel hajtják meg. A szabványos értékek a küldési oldalon ±2 V és ±6 V között vannak. 26
A fogadási oldalon a jelek különbségét értékelik ki, nem az egyes vezetékeken érkező jeleket. A sodrott érpár minimalizálja a külső zavarok bejutását, mivel megközelítőleg egyenlő nagyságú zavar jelenik meg mindkét vezetéken (közös jelű zavar), ezek különbsége jelentéktelen. Tekintettel a nagyobb távolságra, rendszerint nem alkalmazunk hardveres vezérlőjeleket (handshaking). E miatt szükséges valamilyen szoftveres egyeztetés a küldő és fogadó egység között. Az RS-422-es szabvány nem definiál speciális konnektort, a vezetékek végződhetnek akár csavaros sorkapcsokban is. 27
USB SZABVÁNY Viszonylag új keletű az USB (universal serial bus) kommunikációs szabvány. Az átvitel sodrott érpáron keresztül történik, de a kábel négy eres, tartalmazza a földvezetéket és az 5V-os tápvezetéket is (ábra). 28