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 :