RS-485

Z Wikipedie, otevřené encyklopedie
(přesměrováno z EIA-485)

EIA-485 (původně RS-485 nebo RS485) je standard sériové komunikace definovaný v roce 1983 sdružením EIA. Používá se především v průmyslovém prostředí. Standard RS-485 je navržen tak, aby umožňoval vytvoření dvouvodičového poloduplexního vícebodového sériového spoje. Má stejný základ jako standard RS-232, od kterého se liší především jinou definicí napěťových úrovní, nepřítomností modemových signálů, možností vytváření sítí (též sběrnice) sestávající z až 32 zařízení a možností komunikace na vzdálenost až 1 200 m (proti 20 m u RS-232). Výhodou rovněž je, že linku RS-485 je možné vytvořit z široce rozšířeného standardu RS-232 pomocí jednoduchých převodníků úrovně.

Technické parametry[editovat | editovat zdroj]

RS-485 (stejně tak RS-422) se vyznačuje dvouvodičovým propojením jednotek. Tyto vodiče se označují písmeny A a B, někdy se používá označení „−“ a „+“. V klidovém stavu by na vodiči A (neboli „−“) mělo být menší napětí než na vodiči B (neboli „+“). Maximální délka sběrnice je až 1 200 m, maximální počet uzlů (tj. zařízení vysílajících a přijímajících po lince data) je 32. Při použití opakovačů může být počet uzlů vyšší. Maximální přenosová rychlost je nepřímo úměrná délce vedení. Přenosová rychlost u krátkých spojů (do 10 m) může být až 10 Mib/s. Při komunikaci na vyšší vzdálenosti musí být vedení na obou stranách zakončeno zakončovacími odpory, neboli terminátory. Smyslem „terminátorů“ je zabránit odrazům signálu od konců vedení, rovněž pomáhají zvýšit odolnost linky proti rušivým signálům. Terminátor by měl mít v ideálním případě hodnotu 110 Ω (tzv. obrazová impedance), výsledná impedance linky je pak 55 Ω (110 Ω || 110 Ω).

Používané logické úrovně[editovat | editovat zdroj]

Logické úrovně (nebo stavy) jsou reprezentovány rozdílovým napětím mezi oběma vodiči. Je to rozdíl oproti RS-232, kde se úrovně stavů vztahují k referenční zemi (značené GND nebo G). Detekce logického stavu založená na rozdílovém napětí mezi oběma vodiči je výhodná zejména kvůli eliminaci indukovaného rušivého signálu, který se většinou přičítá k oběma vodičům stejně. Přijímač rozlišuje logický stav „1“ (také označovaný jako „Mark“) při rozdílu napětí A − B < −200 mV. Logický stav „0“ označovaný jako „Space“ při rozdílu napětí A − B > +200 mV. Vysílač by měl na výstupu při logické 1 (klidový stav linky) generovat na vodiči A napětí −2 V, na vodiči B +2 V, při logické 0 by měl na vodiči A generovat +2 V, na vodiči B −2 V.

I když se pracuje s rozdílovým napětím, při spojení na delší vzdálenosti se musí kromě signálových vodičů (RxTx+ a RxTx−) propojit i země (GND, G) komunikujících zařízení (viz např. specifikace Modbusu). Příčinou je, že ve vzdálených místech mohou existovat značné rozdíly v potenciálu „země“. Proto je často „dvouvodičová“ RS-485 ve skutečnosti spíše třívodičová a „čtyřvodičová“ RS-422 spíše pětivodičová.

Přenos dat[editovat | editovat zdroj]

Ukázka přenosu znaku 211 (hexadecimálně D3, dvojkově 11010011). Nejprve je vysílán start bit, pak 8 bitů počínaje LSB, bez parity, nakonec stop bit

Přenos dat se uskutečňuje pomocí 7- nebo 8bitových rámců se startbitem, 1 nebo více stopbity a případně i paritním bitem. Startbit je reprezentován logickou nulou, stopbit a neaktivní stav logickou jedničkou. Na úrovni logických signálů je tedy způsob přenosu znaku stejný jako u linky RS-232.

Dvouvodičová verze RS-485[editovat | editovat zdroj]

Pojmem RS-485 je nejčastěji myšlena právě „dvouvodičová“ verze RS-485. Přenos je poloduplexní, a proto se vyžaduje řízení přenosu dat (směru komunikace). Pomocí dvouvodičové linky RS-485 je možné vytvořit komunikační sběrnici, na kterou může být připojeno bez opakovače až 32 zařízení. Aby v jednom okamžiku vysílalo nanejvýš jedno zařízení, musí zajistit komunikační protokol, který však není součástí standardu RS-485. Nejjednodušší variantou je konfigurace s jedním trvale připnutým vysílačem a až 31 přijímači. V obvyklé topologii se zařízení ve vysílání střídají.

Čtyřvodičová verze RS-485[editovat | editovat zdroj]

V některých aplikacích se používá čtyřvodičová verze RS-485, která poskytuje plně duplexní (obousměrnou) komunikaci a odpadá tak nutnost řízení směru přenosu dat. V podstatě jde o dvě dvouvodičové linky. Výhodou je logická kompatibilita se základními signály linky RS-232. Nevýhodou je, že uskutečňované spojení je typu 1:1 (stejně jako u RS-232). V praxi se u čtyřvodičové linky používá i spojení 1:N, což předpokládá, že slave zařízení mají schopnost odpojovat svůj vysílací kanál. Na takové lince je většinou jedno zařízení typu master, které posílá po vysílací lince příkazy a N zařízení typu slave, které přijímají příkazy a vysílají odpovědi. Výhodou je, že master nepotřebuje přepínat směr linky a také u zařízení typu slave jsou časové požadavky na přepínání linky a na vyhodnocování příchozích zpráv mírnější. Současně nehrozí, že by slave zařízení např. v důsledku chyby software mohlo zablokovat „příkazový kanál“ celé sběrnice.

Praxe vs. standard[editovat | editovat zdroj]

Určitou „dírou“ ve standardu RS-485 je, že na rozdíl od RS-232 nebyly definovány standardní konektory (a tedy ani standardní zapojení konektorů). Vzhledem k aplikaci v průmyslu, kde se mohou používat v závislosti na prostředí různé systémy konektorů by to bylo pravděpodobně nepraktické. Absence standardizace konektorů pravděpodobně přispěla k tomu, že někteří výrobci chybně přehazují signály A a B.

Dalším problémem je, že označení RS-485 a RS-422 bývají kvůli své podobnosti nesprávně používána.

Problémy se značením signálů[editovat | editovat zdroj]

V praxi se u mnoha zařízení setkáme s přehozením značení datových vodičů A a B, které jsou pak opačně než je definuje norma. Je to pravděpodobně dané nesprávným označováním těchto signálů na obvodech budičů sběrnice RS-485, které používají významní výrobci jako Texas Instruments, MAXIM nebo Intersil.

Některá zařízení proto raději místo značení A/B používají jednoznačnější (avšak nenormalizované) značení obsahující „−“ pro vodič se zápornou klidovou úrovní a „+“ pro vodič s kladnou klidovou úrovní, např. RxTx−/RxTx+, atp.

RS-485 a RS-422[editovat | editovat zdroj]

Velká podobnost RS-485 a RS-422 vede k tomu, že jsou tyto termíny používány jako synonyma, v lepším případě se na RS-422 pohlíží jako na podmnožinu RS-485. Kompatibilita těchto standardů však není stoprocentní. Komponenty vyhovující RS-485 mohou být většinou bez problémů používány v sítích založených na RS-422, naopak to však neplatí.

  • komponenty RS-422 nemají signál pro odpojení výstupu. V sítích RS-422 může být tedy použit pouze jediný vysílač, komponenty RS-422 nejsou odolné vůči konfliktu na sběrnici.
  • komponenty RS-422 počítají s jednosměrnou linkou, proto mají slabší budiče, které „neutáhnou“ síť se dvěma terminátory.
  • komponenty RS-422 mají nižší odolnost proti indukovanému napětí, nebo offsetům projevujícím se u sítí s více vysílači

V sítích RS-485 lze používat komponenty RS-422 pouze jako přijímače, avšak je třeba vzít v úvahu, že při vstupním odporu 4 kΩ musíme 1 jednotku RS-422 počítat za 3 jednotky RS-485.

Prakticky se většinou používají součástky RS-485 kompatibilní s oběma standardy. Čtyřvodičové linky implementující obousměrnou komunikaci bez vypínání výstupního kanálu bývají označovány jako RS-422, i když mohou vyhovovat současně standardu RS-485. Označení RS-422 se pak nesprávně používá také u čtyřvodičových sběrnic RS-485, používajících v jednom páru vodičů odpojování výstupního kanálu.

Související články[editovat | editovat zdroj]

Externí odkazy[editovat | editovat zdroj]