Hlavní navigace

Sběrnice RS-422, RS-423 a RS-485

18. 12. 2008
Doba čtení: 12 minut

Sdílet

V dnešní části seriálu o architekturách počítačů si popíšeme tři typy externích sběrnic, které se poměrně často využívají v průmyslu. Jedná se o sběrnice typu RS-422, RS-423 a RS-485 (uvádím zde starší, ale všeobecně známé značení), pomocí nichž je možné přenášet data až do vzdálenosti větší než jeden kilometr.

Obsah

1. Sběrnice RS-422, RS-423 a RS-485
2. Základní charakteristiky sběrnice RS-422
3. Topologie a řízení RS-422
4. Sběrnice RS-423
5. Elektrické charakteristiky sběrnice RS-485
6. Zapojení sběrnice RS-485 s dvěma či třemi vodiči
7. Zapojení RS-485 se čtyřmi či pěti vodiči
8. Odkazy na Internetu

1. Sběrnice RS-422, RS-423 a RS-485

V předchozích třech částech tohoto seriálu jsme si popsali rozhraní typu RS-232C (sériový port), které je dodnes velmi často využíváno jak na osobních počítačích, tak i na mnoha dalších zařízeních. Například se pomocí něho mohou programovat regulátory motorů v průmyslových strojích, frekvenční měniče, v případě potřeby se přes něj konfigurují některé aktivní síťové prvky (Cisco), mnohé servery (především firem Sun a IBM) stále podporují textové terminály připojené k sériovým portům apod. Ovšem nejedná se o jediné rozhraní, které je v praxi používáno pro přenos dat mezi vzdálenými zařízeními. Především v průmyslu jsou mnohem více rozšířeny sběrnice typu RS-422, RS-423 a RS-485, po nichž se, stejně jako u výše zmíněného rozhraní RS-232C přenášejí data sériovým způsobem, a to bez nutnosti použití modulace (naproti tomu při přenosu dat po analogových telefonních linkách je nějaká modulace původně binárního signálu se širokým frekvenčním spektrem nutná, minimálně lze implementovat modulaci založenou na střídání dvou frekvencí. Podrobnosti o tomto způsobu přenosu dat si řekneme v některé z navazujících částí tohoto seriálu).

Všechny tři sběrnice, které jsou popsány v dalším textu, mají některé vlastnosti společné. Z hlediska přenosu dat je pro tyto sběrnice typické, že nemají vyvedený samostatný hodinový signál, který by sloužil k synchronizaci vysílaných a čtených bitů (tento signál je přítomen například u externí sběrnice I2C i na prakticky všech sběrnicích interních, včetně již popsané sběrnice ISA, VESA Local Bus či PCI). Z tohoto důvodu se všechna data i řídicí příkazy po datových vodičích musí posílat asynchronně, většinou stejným způsobem, jako u dříve popsaného rozhraní RS-232C (někdy se mezi start a stop bit vkládá i delší sekvence bitů, ovšem to klade mnohem vyšší nároky na přesnost krystalů ve vysílači i přijímači). Další společnou vlastností všech popisovaných sběrnic je, že pro jednosměrný přenos dat či half duplex se používá minimum vodičů – dva signálové vodiče (two-wire) s možností přidání dalšího vodiče představujícího signálovou nulu. Veškeré řízení přenosu dat je tedy prováděno ryze programově, většinou na základě softwarového handshakingu. To představuje poměrně podstatný rozdíl oproti již zmíněnému rozhraní RS-232C, u kterého je možné (a mnohá zařízení to dokonce přímo vyžadují) zapojit i další vodiče, po nichž se přenáší řídicí informace.

pc4201

Obrázek 1: Přenos jednoho bajtu (osmibitového znaku), který je na začátku doplněn start bitem a na konci stop bitem. Pokud přijímač a vysílač používají stejné hodinové pulsy, nedochází při přenosu k chybě rámce. V opačném případě může na konci přenosu bajtu dojít ke vzorkování nikoli uprostřed každého bitu, ale na přechodu mezi dvěma bity, což vede ke vzniku chyby rámce (frame error). Tato chyba je přijímačem zjištěna ve chvíli, kdy se nepřečte korektní stop bit nebo se za stop bitem nepřečte další start bit. V tomto případě se celý přečtený bajt zahodí a přenos je nutné provést znovu.

2. Základní charakteristiky sběrnice RS-422

Princip práce sběrnice RS-422 je založen na přenosu dat pomocí dvou vodičů, přičemž se na přijímací straně při zjišťování hodnoty bitu rozlišuje rozdíl (přesněji řečeno jeho polarita) napěťových potenciálů mezi těmito vodiči (diferenciální přenos), nikoli rozdíl mezi napětím jednoho vodiče a společného vodiče nulového (RS-232C, Centronics). Důvod, proč se pro přenos dat využívá dvojice vodičů a nikoli pouze vodič jeden, spočívá v tom, že při použití kroucené dvojlinky jakožto přenosového média se mohou data přenášet i poměrně vysokou rychlostí, aniž by docházelo k většímu vyzařování signálu do okolí a naopak – přenášená data jsou (indukovaným) šumem zatížena mnohem méně, než kdyby se využil pouze jeden datový vodič a společná nula (viz druhý obrázek). Každý dostatečně dlouhý vodič se totiž chová jako anténa schopná jak vyzařovat elektromagnetické vlnění, tak i toto vlnění přijímat, což je v tomto případě nežádoucí vlastnost. Vzhledem k tomu, že při použití kroucené dvojlinky je rušení malé (popř. působí současně na oba vodiče, což nijak neovlivní rozdíl potenciálů), může být zesilovač na přijímací straně velmi citlivý. Pro rozeznání logické jedničky či nuly postačuje rozdíl potenciálů dosahující hodnoty pouze 200 mV, což je o jeden řád méně, než v případě RS-232C či rozhraní Centronics (vysílač by měl udržovat napěťové úrovně na datových vodičích na hodnotách +6 či –6 Voltů, důležitý je však pouze rozdíl obou potenciálů).

pc4202

Obrázek 2: Při použití kroucené dvojlinky ve formě přenosového média se do značné míry eliminuje vliv externích zdrojů rušení (okolní stroje, napájecí síť) na přenášená data. Pokud by se místo kroucené dvojlinky využila například „obyčejná“ nekroucená dvojlinka či samostatné vodiče (RS-232C), fungovalo by celé vedení jako anténa.

Při základním zapojení sběrnice, tj. použití dvou vodičů, po nichž se vysílají data s diferenciálním kódováním, lze přenos provádět až na vzdálenost 1200 metrů, přičemž přenosová rychlost může na tuto vzdálenost dosáhnout poměrně slušné hodnoty 100 kbps. V případě, že se data přenáší na kratší vzdálenost, může se přenosová rychlost ještě stokrát zvýšil. Do vzdálenosti cca 15 metrů je tak možné dosáhnout rychlosti 10 Mbit/s. V případě, že jsou komunikující zařízení napájena z odlišných zdrojů (popřípadě má některé zařízení „plovoucí zem“), doporučuje se kromě obou datových linek propojit zařízení třetím vodičem, který tvoří signálovou nulu. Dokonce se doporučuje, pokud to ovšem použité konektory mechanicky umožňují, při vytváření datového spoje nejdříve zapojit signálovou nulu a teprve poté oba datové vodiče. V případě použití konektoru typu DIN je to možné, protože samotný konektor obsahuje kovový prstenec delší než vlastní piny, takže k propojení prstence s druhým konektorem dojde o nepatrnou chvíli dříve, než u všech dalších pinů. U některých dalších konektorů (RJ apod.) toto chování není možné zajistit, což může způsobovat problémy (a někdy dokonce i zničení zařízení) ve chvíli, kdy se zasunuje datový konektor do jednoho z komunikujících zařízení.

pc4203

Obrázek 3: Propojení dvou zařízení sběrnicí typu RS-422 tak, aby bylo možné data nezávisle přenášet oběma směry. Kromě dvou kroucených dvojlinek jsou zařízení propojena i signálovou nu­lou.

3. Topologie a řízení RS-422

Sběrnice RS-422 umožňuje ve své základní variantě přenos dat z jednoho vysílače do několika přijímačů. Z hlediska zatížení datových linek je počet přijímačů omezen na deset. Všechna zařízení by měla být připojena ve sběrnicové (lineární) topologii; nedoporučuje se použít ani zapojení do hvězdy, ani využití stromové či jiné topologie (docházelo by k vícenásobným odrazům signálu na konci vedení). V některých případech se místo sběrnice zařízení zapojují za sebe (daisy chain), tj. každé zařízení obsahuje přijímací i vysílací část. V případě, že je vyžadován souběžný přenos dat oběma směry (ovšem pouze mezi dvojicí zařízení), používají se místo jedné kroucené dvojlinky dva páry datových vodičů. Ve své podstatě se jedná o dvě zcela samostatné sběrnice RS-422. Způsob jejich použití je různý, typicky se dvojice opačně zapojených sběrnic RS-422 používá například pro „prodloužení“ dosahu rozhraní RS-232C. Princip je jednoduchý – z počítače se přes rozhraní RS-232C přenáší data do konvertoru, který signály převede tak, aby odpovídaly specifikaci RS-422. Na druhé straně přenosové linky se nachází obdobný konvertor, jenž signály převede zpátky na takové napěťové úrovně, aby byly kompatibilní s RS-232C. Takto lze dosah RS-232C „prodloužit“ až na zmiňovaných 1200 metrů.

pc4204

Obrázek 4: Značení svorek sběrnice RS-422 na přijímací a vysílací straně. V praxi je zapotřebí si dát pozor na to, že někteří výrobci přehazují značení vodičů A a B. Rezistory na konci každé kroucené dvojlinky utlumí odrazy signálu na vedení.

4. Sběrnice RS-423

Sběrnice RS-423 se používá méně často, než výše zmíněná sběrnice RS-422. Jedná se o sběrnici, kterou je možné taktéž použít pro propojení jednoho vysílače a maximálně deseti přijímačů na vzdálenost až 1200 metrů při přenosové rychlosti do 100 kbit/s. Jediným, zato však velmi podstatným rozdílem mezi oběma sběrnicemi je to, že u sběrnice RS-423 se nepoužívá diferenciální kódování signálu, ale způsob známý již z rozhraní RS-232C – logická hodnota přijatého bitu je zjištěna na základě rozdílu napěťových potenciálů mezi signálovým vodičem a signálovou zemí. Kvůli tomuto řešení, které v některých případech vede ke snížení potřebného počtu vodičů o jeden, se však zvýšila citlivost sběrnice na okolní vlivy a taktéž se snížila maximální přenosová rychlost. Vysílač by měl logickou jedničku či nulu převést na napětí +6 a –6 Voltů (při maximálním zatížení nesmí napětí klesnout pod rozsah +3,6 až –3,6 Voltů), přijímač dokáže rozeznat již napětí +0,2 a –0,2 Volty (v praxi spíše +3 a –3 Volty, právě kvůli šumu).

Zajímavé na této sběrnici je, že sklon signálu, tj. dobu přechodu mezi logickou jedničkou a nulou (či naopak), je možné konfigurovat, což má význam především na těch vedeních, která mají velkou kapacitu (dlouhé spoje). U rozhraní RS-232C byla normou stanovena pevná hodnota sklonu na 30 Voltů za sekundu, což omezovalo maximální délku vedení.

5. Elektrické charakteristiky sběrnice RS-485

Sběrnice RS-485 představuje další krok v možnostech propojení vzdálených zařízení. Pomocí této sběrnice může komunikovat maximálně 32 vysílačů a 32 přijímačů, což je výrazné vylepšení oproti RS-422, kde mohl v danou chvíli existovat pouze jeden vysílač (tento způsob komunikace se nazývá multidrop, protože přenášená informace „spadne“ do více přijímačů) či oproti RS-232C (point-to-point). Funkčnost sběrnice je zaručena díky tomu, že všechny přijímače i neaktivní vysílače se v klidu musí nacházet ve stavu vysoké impedance, tj. nijak neovlivňují komunikující zařízení. Pouze jedno zařízení na sběrnici může v daném čase pracovat jako řadič (vysílač), ovšem veškeré řízení přenosu i arbitráž sběrnice je ponechána na protokolu vyšší vrstvy – samotná specifikace RS-485 nic neříká o tom, jakým způsobem se mají zařízení vzájemně domluvit. I u této sběrnice se, podobně jako u výše popsané sběrnice RS-422, při vysílání používá diferenciálního kódování dat – jedna polarita představuje logickou jedničku, obrácená polarita pak logickou nulu. Rozdíl mezi oběma napěťovými potenciály musí dosahovat hodnoty minimálně 0,2 Voltů, typicky se však používají mnohem vyšší rozdíly, například 5 V, 7 V či 12 V.

pc4205

Obrázek 5: Základní způsob zapojení dvou zařízení na sběrnici RS-485. Všimněte si rezistorů na obou koncích přenosové linky. Jejich odpor by měl odpovídat impedanci vedení; hodnota 100 Ω až 120 Ω odpovídá kroucené dvojlince.

Díky použití kroucené dvojlinky a diferenciálního kódování je možné data přenášet i na poměrně velkou vzdálenost. Jako hranice dosažitelná za běžných podmínek (průmysl) se uvádí cca 1200 metrů, přičemž přenosová rychlost může dosahovat hodnot až 10 Mbit/s. Ovšem přenosová linka musí být správně zapojena, což v tomto případě znamená nutnost připojit na oba konce linky rezistory (terminátory) s odporem cca 120 Ω (podobně, jak si možná někteří čtenáři pamatují, tomu bylo i u desetimega­bitového Ethernetu používajícího koaxiální kabel; samozřejmě zde byla impedance kabelu odlišná). Kromě těchto rezistorů se obě diferenciální linky v klidu nastavují na nějaké napětí odlišné od 0 V, což lze provést jednoduchým propojením vodiče přes rezistor na napájecí napětí (postačuje na jedné straně linky, většinou je napájení řešeno v každém přijímači). Pokud by se tímto způsobem datové linky nezapojily, mohl by se šum na „plovoucích“ linkách při odpojeném vysílači projevit rozdílem větším než 0,2 Voltů, což je, jak již víme, požadovaná citlivost přijímače (přijímač či přijímače by tedy přečetly datový šum).

pc4206

Obrázek 6: V praxi se velmi často používají převodníky mezi RS-232C a RS-422 či RS-485. Zde je jedno z možných zapojení, ve kterém jsou obě vedení opticky oddělena, což zvyšuje ochranu obou komunikujících zařízení. Lze najít i mnoho dalších (většinou jednodušších) zapojení, ty však neobsahují optické oddělovače.“

6. Zapojení sběrnice RS-485 s dvěma či třemi vodiči

Ve standardu RS-485, který byl později nahrazen novým standardem nazvaným EIA-485, jsou stanoveny pouze charakteristiky přijímače a vysílače, nikoli přímo datový protokol použitý pro komunikaci. Vzhledem k tomu, pro vysílání dat se používají pouze dva datové vodiče tvořící jeden jednosměrný logický kanál, používá se většinou asynchronní sériový protokol známý již z minule popsaného rozhraní RS-232C. Vysílání každého bajtu (osmibitového slova) je zahájeno nulovým start bitem, následuje osm datových bitů nesoucích užitečnou informaci a po nich je na datovou linku vyslán jedničkový stop bit.

pc4207

Obrázek 7: Interně může každé zařízení připojené na sběrnici RS-485 obsahovat vysílací a přijímací (diferenciální) zesilovač, který se však musí v případě potřeby přepnout do stavu vysoké impedance. Na obou koncích vedení se nachází rezistory tlumící odrazy signálu.

Aby se zajistil normou specifikovaný rozsah napětí na signálových vodičích, mohou se zařízení propojit i signálovou nulou – důvod byl vysvětlen v úvodních kapitolách. Zajímavé je, že norma přesně nestanoví žádný konektor, jenž by se měl standardně pro připojení zařízení použít. V praxi se proto používají různé konektory, například DB-25, DC-37, RJ-45, DIN, mini-DIN 8, nebo pouze tři svorky pro připojení vodičů (to je možná nejčastější řešení).

pc4208

Obrázek 8: Připojení více přijímačů a jednoho vysílače (režim multidrop)

7. Zapojení sběrnice RS-485 se čtyřmi či pěti vodiči

V některých případech, především tehdy, když je zapotřebí, aby komunikace zařízení probíhala obousměrně v tomtéž časovém okamžiku, je možné použít zapojení sběrnice se čtyřmi či pěti vodiči. Podobně jako u full duplexové varianty RS-422, i zde se ve své podstatě jedná o dvě samostatně pracující jednosměrné sběrnice doplněné v případě potřeby o společný nulový vodič. Vzhledem ke způsobu řízení přenosu dat (již není nutné specifikovat směr přenosu) je nutné, aby jedno zařízení vystupovalo v roli master a ostatní zařízení v roli slave. Vysílač zařízení master je přes sběrnici (první kroucenou dvojlinku) připojený na přijímače všech zařízení slave a současně jsou všechny vysílače zařízení slave (přes druhou kroucenou dvojlinku) připojeny na přijímač zařízení master. Pokud si však vystačíme s jednosměrným nebo poloduplexním přenosem, což bývá asi nejčastější požadavek, bývá lepší se čtyřvodičové či pětivodičové variantě sběrnice RS-485 vyhnout a použít třívodičovou verzi, protože ta bývá podporována více zařízeními.

CS24_early

pc4209

Obrázek 9: Komerčně dostupný převodník mezi RS-232C a RS-482 (lze použít i pro RS-422).

8. Odkazy na Internetu

  1. RS232 to RS485 cable pinout
    http://pinouts­.ru/SerialPor­tsCables/rs485_c­able_pinout.shtml
  2. RS485 serial information
    http://www.lam­mertbies.nl/com­m/info/RS-485.html
  3. Základní informace o RS-485 a RS-422 pro každého
    http://automa­tizace.hw.cz/za­kladni-informace-o-rs-485-rs-422-pro-kazdeho
  4. RS-422/485 Serial Communication
    http://www.mo­xa.com/Zones/Se­rial_Communica­tion/Serial_Com­munication_Techno­logy/RS-422–485_Serial_Com­munication.htm
  5. Category:Serial buses
    http://en.wiki­pedia.org/wiki/Ca­tegory:Serial_bu­ses
  6. EIA-422
    http://en.wiki­pedia.org/wiki/RS-422
  7. EIA-485
    http://en.wiki­pedia.org/wiki/E­IA-485
  8. RS485 Cables – Why you need 3 wires for 2 (two) wire RS485
    http://www.chip­kin.com/articles/rs485-cables-why-you-need-3-wires-for-2-two-wire-rs485

Byl pro vás článek přínosný?

Autor článku

Vystudoval VUT FIT a v současné době pracuje na projektech vytvářených v jazycích Python a Go.