Vestavné mikropočítačové systémy 6. Týden – Datové komunikace I (rozdělení, RS-232, RS-422/485)
Datová komunikace I Sériový přenos dat Technické standardy Sériový vs. paralelní Simplexní, duplexní, poloduplexní Přenos v základním pásmu (nemodulovaný) Synchronizace přenosu Technické standardy RS-232 RS-422 a RS-485 Možnosti AVR USART
Sériový vs. paralelní přenos v jednom okamžiku se přenese celé slovo (1/2/4/8 bajtů) součástí sběrnice musí být řídící signály mnoho vodičů, proto se používá téměř výhradně pouze na DPS (lokální použití) typické použití: adresové a datové sběrnice mezi procesorem a paměťmi, příp. mezi moduly jednoho zařízení (backplane) nevhodný pro propojování více zařízení (drahý kabel, drahé konektory, složitější galvanické oddělování – každý vodič) Sériový přenos data se serializují a přenáší po bitech řídící signály nejsou nezbytné, je možné je rekonstruovat z dat propojování přístrojů na dlouhé vzdálenosti (desítky a stovky metrů) levné kabely a konektory, snadné galvanické oddělování, průmyslové standardy odolnost proti rušení současným trendem je komunikovat sériově data control 1 bajt „strobe“ data control 1 bajt
Simplex, duplex, poloduplex Z hlediska schopnosti komunikovat v obou směrech rozlišujeme: (plně) duplexní přenos: komunikace může probíhat v obou směrech současně poloduplexní přenos: přenos je možný v obou směrech, ale nikoliv současně simplexní přenos: přenos je možný jen v jednom směru Jde o obecnou klasifikaci komunikace rozdělení se netýká pouze toho, co umožňuje přenosové médium může popisovat i způsob použití: nad plně duplexním médiem můžeme provozovat protokol založený na principu otázka-odpověď a pak mluvíme o poloduplexní komunikaci Příbuzné pojmy semiduplex (dusimplex): každý přenosový směr je realizován jinak, jinou cestou, jinou technologíí, na jiné frekvenci (např. 2× RS-422) asymetrický přenos: když jsou maximální/nominální rychlosti v obou směrech různé (např. ADSL)
Přenos v základním pásmu (baseband, nemodulovaný přenos) Signál je převáděn na přenosové médium přímo Přenášené bity se reprezentují napěťovými úrovněmi velikostí proudu (tzv. proudová smyčka) Na jednom přenosovém médiu probíhá pouze jeden přenos I v případě kódované komunikace mluvíme přenosu v základním pásmu jeden bit je „zakódován“ více změnami přenášeného signálu motivace: větší robustnost, lepší detekce chyb, nulová SS složka signálu high low 1 U/I t
Synchronizace přenosu Bitový intervalu přenos jednoho bitu není „okamžitý“, ale trvá určitou dobu – bitový interval hodnotu bitu reprezentuje stav signálu během bitového intervalu Příjemce vyhodnocuje stav signálu v rámci bitového intervalu (kde?) rozhodující je okamžik vyhodnocení signálu příjemce se musí „strefit“ do správného bitového intervalu hodiny příjemce musí „tikat“ dostatečně souběžně (synchronně) jak to udělat, pokud nemáme k dispozici hodiny vysílací strany?
Asynchronní přenos Přenáší se skupiny bitů (obvykle 8) tvořící tzv. znaky Začátek přenosu znaku je uvozen tzv. start-bitem příjemci slouží k zasynchronizování hodin vychází se z předpokladu, že se během přenosu jednoho znaku udrží dostatečná synchronnost Časové prodlevy mezi jednotlivými znaky mohou být různě dlouhé proto se někdy také hovoří o arytmickém přenosu – postrádá rytmus 1 pevný počet datových bitů start-bit parita stop-bit(y) synchronizační hrana
Synchronní přenos Přenáší se celé souvislé bloky dat (libovolně dlouhé) Synchronnost je udržována průběžně po celou dobu přenosu souvislého bloku někdy se udržuje i v době mezi bloky Synchronní přenos je obecně rychlejší než asynchronní Možnosti synchronizace hodin samostatný synchronizační signál: přenáší „tikání“ odesilatele, obvodově nejjednodušší řešení, používá se ale pouze lokálně, ne mezi přístroji redundantní kódování: zahrnutí časového signálu do kódování jednotlivých bitů, např. kódování Manchester – nezáleží na datech synchronizace z dat: přenášený signál neobsahuje žádné časování, příjemce se synchronizuje podle datových bitů, problémem jsou dlouhé sekvence stejných bitů – řeší se vkládáním bitů
RS-232 Rozhraní pro duplexní asynchronní sériový přenos dvě zařízení proti sobě úroveň L – vysílač: +5V +15V, přijímač: +3V +25V úroveň H – vysílač: –5V –15V, přijímač: –3V –25V max. délka kabelu dle specifikace je 15m nebo délka vodiče o kapacitě 2500pF, tzn. při použití kvalitního kabelu cca až 50m max. délka závisí na použité rychlosti nevýhody: krátká vzdálenost, propojené země různých přístrojů zemní smyčky integrované převodníky úrovní TTL/RS-232: MAX232 (+5 kondenzátorů pro nábojovou pumpu), MAX3233 (bez kondenzátorů) pro nově vyvíjené konstrukce určené k připojení k PC není již vhodný, stává se minulostí, nahradilo jej USB pozor na převodníky USB/RS-232, pokud se řídící signály používají k něčemu jinému než k čemu jsou určeny, je zle, převodníky je nepřenášejí ale nanejvýš generují a zpracovávají lokálně
RS-422 a RS-485 Průmyslové standardy pro sériovou asynchronní komunikaci Mají stejné elektrické specifikace, liší se způsobem použití Stejný princip přenosu dat – diferenciální napětí úroveň L: A–B > 0,3V, vysílač: +2V, přijímač: >200mV úroveň H: A–B < –0,3V, vysílač: –2V, přijímač: <200mV max. délka 500m (až 1600m pro vodiče s kapacitou do 65pF/m) použití kroucených párů zvýší odolnost proti rušení rozdíl mezi zeměmi vysílače a přijímače musí být menží než 7V Specifikace předepisuje proudové omezení výstupu odolnost proti zkratu Zakončení sběrnice sběrnice by měla být zakončena odporem stejným jako je impedance vedení, aby nedocházelo k odrazům má význam pro vysoké komunikační rychlosti při nízkých rychlostech to vývojáři často nedodržují Klidový stav linky Vcc
RS-422 Jeden pár pro jeden směr, druhý pár pro druhý směr – dusimplexní komunikace Transparentní konverze RS-232 – RS-422 – RS-232, není třeba podpora software „Diferenciální náhrada“ RS-232 vyšší odolnost proti rušení, delší vzdálenost RS-485 Jeden pár pro oba směry – poloduplexní provoz Přepínání musí zajistit buď software nebo MKO Až 16 zařízení na stejné sběrnici
AVR – USART Duplexní komunikace – oddělený datový registr pro příjem a pro vysílání Volitelně synchronní nebo asynchronní přenos V synchronním režimu může být master nebo slave, volitelná aktivní hrana hodin Dedikovaný baud-rate generátor – na rozdíl od 8051, kde se používá timer 5, 6, 7, 8 nebo 9 datových bitů, 1 nebo 2 stop-bity Hardwarová podpora generování i kontroly parity (liché i sudé) Podpora multiprocesorové komunikace první stop-bit obsahuje příznak adresy, který je hardwarově detekován a příp. filtrován