Jste zde

Prodloužení linek RS 232 / 485 pomocí ethernetu

V posledních měsících se objevuje stále více řešení pro protažení linky RS232 skrz TCP/IP síť ?

většinou na bázi ethernetu. Zařízení která to zprostředkovávají se nazývají Ethernet modemy, převodníky Ethernet na

RS485 nebo prostě konvertory, jak je budu nazývat dále v tomto článku.

Z hlediska aplikací je posun k ethernetu logický vývoj, protože ovládací PC může být připojeno kdekoli v rámci lokální, případně globální internetové sítě. Dosavadní nutnost fyzického spojení linkou RS 232 nebo RS 485 s ovládaným zařízením je tak vytlačena za podobnou cenu technologií s širšími možnostmi. S použitím nové technologie je ale nutné zorientovat se alespoň v základních možnostech a odlišnostech, které přináší. 

Paketový přenos

Ethernet je sdílené médium a jakýkoli přenos po něm je tedy dělen do bloků dat, které jsou s různým zpožděním doručeny adresátovi.  Teoretická rychlost přenosu je sice řádově vyšší, ale přesto se principielně nejedná za rovnocennou náhradu za stabilní vedení sběrnice. 

Komunikační protokoly

Pro přenos paketů v Ethernet síti se používají dva základní protokoly. Každý je určen pro jiný typ přenosu a podporovaný protokol naznačuje typ aplikace daného zařízení. Oba dále popsané protokoly jsou nadstavbou protokolu IP. Ten tvoří základ veškeré internetové komunikace. IP protokol je nad tzv. linkovou vrstvou, jejíž linkové protokoly jsou určeny pro dopravu dat v rámci lokální sítě, jiné linkové protokoly dopravují data mezi sousedními směrovači rozsáhlé sítě. IP-protokol na rozdíl od linkových protokolů dopravuje data nejen v lokální síti, ale hlavně mezi dvěma libovolnými IP adresami v Internetu, tj. i přes mnohé LAN. 
 

Spojení  UDP/IP

Protokol UDP je jednoduchou alternativou k protokolu TCP. Protokol UDP je nespojovaná služba (na rozdíl od protokolu TCP), tj. nenavazuje spojení. Odesilatel odešle UDP datagram příjemci a už se nestará o tom, zda-li se datagram náhodou neztratil (o to se již musí postarat aplikační protokol). Definice délky dat UDP datagramu umožňuje odesílat datagramy od nulové délky, pak je dlouhý 8 bytů a obsahuje pouze záhlaví a žádná data. Pole kontrolní součet datagram sice obsahuje, ale nemusí být povinně vyplněno. Výpočet kontrolního součtu je tak v protokolu UDP nepovinný. Kontrolní součet pak je počítán pouze na linkové vrstvě, ale např. linkový protokol SLIP výpočet kontrolního součtu také nepočítá, takže i technická porucha může způsobit poškození aplikačních dat, aniž by to měl příjemce šanci zjistit. 

Protokol UDP však umí posílat tzv. „oběžníky“ což nelze udělat protokolem TCP. Zvláštností protokolu UDP je skutečnost, že adresátem UDP datagramu nemusí být pouze jednoznačná IP-adresa, tj. síťové rozhraní konkrétního počítače. Adresátem může být skupina stanic – adresovat tak lze tzv. oběžník. 

Adresovat lze všeobecné oběžníky pro všechny stanice (broadcast), ale podstatně zajímavějším případem je adresování adresných oběžníků (multicast). Např. u aplikací typu RealAudio navazuje každý klient spojení se serverem. Kdežto u ProgresiveRealAudio se šíři data pomocí adresných oběžníků, tj. dochází k ohromné úspoře kapacity přenosových cest. A právě to je příležitost pro UDP. 

V aplikacích přenosu dat ze stabilní linky lze říci, že UDP je výrazně rychlejší. Datagramy jsou menší než pakety TCP ale UDP například neřeší zda dorazily ve správném pořadí atd. To je starostí nadřízených protokolů.  V menších lokálních sítích, kde data běží například po jediném fyzickém segmentu je použití UDP výhodné, protože představuje zhruba 50% potřebného výpočetního výkonu RS485/Ethernet konvertoru oproti TCP.  

Pro přenos dat z RS485 v systému otázka – odpověď je UDP ideální. Pokud lze v zařízení definovat ukončení zprávy (ukončovací znak) protokolu, dosahují zpoždění přenosu cca 10-30 ms.  Zde je třeba počítat s tím, že konvertor uchovává data z RS 485 linky, dokud není příkaz ukončen (pro 10. znakovou zprávu na 9600 Bd to znamená cca 10 ms). Pak jsou data sbalena a odeslána jako UDP paket (cca 1-5 ms)  a na druhé straně odvysílána opět rychlostí 9600 Bd (znovu cca 10 ms).  
V praxi to znamená, že ze zpoždění cca 25 ms je pouze 5 ms tvořeno samotným přenosem po síti. Některá zařízení umožňují konfiguraci počtu bytů, z nichž je sestaven paket a odeslán do ethernetu. Posílání paketu pro jednotlivé byty však velmi výrazně zatěžuje síť  a v praxi je často nepoužitelné. 

Pro konvertor obousměrné linky RS 232/422 je již použití UDP výrazně problematičtější. Vzhledem k možné vzájemné závislosti směrů komunikace je třeba zajistit správné pořadí paketů atd. To je na bázi UDP problematické a zbytečné, když tyto věci korektně řečí TCP protokol. 
 

Spojení  TCP/IP

Protokol TCP je spojovanou službou (connection oriented), tj. službu která mezi dvěma aplikacemi naváže spojení – vytvoří na dobu spojení virtuální okruh. Tento okruh je plně duplexní (data se přenášejí současně na sobě nezávisle oběma směry). Přenášené bajty jsou číslovány. Ztracená nebo poškozená data jsou znovu vyžádána. Integrita přenášených dat je zabezpečena kontrolním součtem. 

Aplikace nad TCP protokolem tak již nemusí řešit, zda nějaká data nebyla během přenosu ztracena nebo modifikována. Zabezpečení na úrovni TCP protokolu je samozřejmě pouze proti chybám technického rázu. Není zde cílem zabezpečit data proti inteligentním útočníkům, kteří mohou data modifikovat a přepočítat kontrolní součty. Tento typ ochrany je řešen buď  použitím protokolů SSL, S/MIME a dalších, nebo vhodným nastavením směrovačů na cestu, která bude bezpečná. Vhodným řešením může být také vytvoření Virtuální Privátní Sítě (VPN) kdy je celá komunikace mezi dvěma firemními sítěmi vedena ve veřejném internetu, ale kódována na úrovni vstupně/výstupních serverů. Veřejným internetem tak procházejí velmi dobře zabezpečená data. 

Protokol TCP využívá k transportu dat Internetem protokol IP, avšak nad tímto protokolem zřizuje spojovanou službu. Musí řešit problémy navázání a ukončení spojení, potvrzování přijatých dat, vyžádání ztracených dat, ale také problémy průchodnosti přenosové cesty. Podstatné na TCP protokolu je tedy popis výměny TCP segmentů (handshaking) mezi oběma konci TCP spojení, pokud je vytvořeno. Detaily ohledně TCP protokolu najdete v literatuře [1].

Použití protokolu TCP je výhodné především pro přenos dat ve velkých sítích, kde může dojít ke ztrátě některých paketů, nebo k záměně pořadí. 
 

Obecné možnosti ETHERNET / SERIAL převodníků

Obecně mohou konvertory pracovat ve dvou režimech :

  • Dva konvertory proti sobě jsou spojeny po ethernetu a vytvářejí virtuální RS 422/485 linku. 
  • Na jedné straně konvertor a na druhé počítač s připojením na síť a programem, který přistupuje na konvertor přímo pomocí zveřejněného rozhraní nebo přes virtuální driver.


Následující výčet shrnuje téměř všechny obecné možnosti základních funkcní konvertorů RS485/422 na Ethernet :

  • Možnost volby použitého přenosového protokolu (TCP/UDP) 
  • Možnost nastavení časové prodlevy po které je buffer se vstupními daty odeslán jako paket do sítě. (ideální např. pro protokol Profibus, který tak odděluje jednotlivé rámce)
  • Možnost nastavení ukončovacího znaku rámce (platí pouze pro přenos typu otázka-odpověď, např. většina protokolů na RS 485)
  • Podpora hardwarového handshakingu.
  • Driver pro Windows nebo jiný OS, umožňující vytvoření virtuálního sériového portu a jeho připojení po ethernetu. (nutno rozlišovat zda podporuje pouze RxD, TxD spojení, handshaking nebo plný sériový port.)
  • Zveřejnění komunikačního protokolu, aby zákaznické aplikace nemusely používat virtuální drivery a být tak omezeny pouze na podporované OS.
  • Často je umožněna komunikace s konvertorem po Ethernet síti pomocí klienta Telnet. Pak je ale nezbytné používat další zabezpečení, protože telnet používá nechráněná hesla atd.. Přenos lze zabezpečit vazbou na rozsah IP adres, použití VPN, nebo kryptovanou autorizaci při přihlášení. 
  • Podpora zabezpečení na báze restrikce IP adresy, nebo jejího rozsahu použitím masky.
  • Možnost různé komunikační rychlosti sériové linky a jejího vzdáleného přepnutí. (Konvertor tak může přijímat data ze zařízení na rychlostí 19200 Bd a odesílat je po ethernetu protistraně, která je odvysílá například na 9600 Bd. Vhodnou konfigurací tak lze podstatně snížit zpoždění přenosu rámce). 
  • Možnost vzdálené konfigurace zařízení. (prakticky se téměř nevyužívá vzhledem k problémům se zabezpečením konfigurace) 

Informace o projektu

Pokud máte zájem o průběžné informace plných i LITE verzích Web51, aktivujte si náš mailing k tomuto projektu. 
 

Informační server o projektu : 

Hodnocení článku: