Emulátor konzoly sériového rozhrania pre vzdialené ovládanie laboratórnych zariadení
12. Február, 2014, Autor článku: Demeter Dominik, Informačné technológie
Ročník 7, číslo 2
Pridať príspevok
Tento príspevok popisuje zariadenie, pomocou ktorého je možné ovládať technologické a laboratórne zariadenie vzdialene, pomocou zadávania inštrukcií. Príspevok popisuje riešenie z pohľadu softvéru, aj z pohľadu hardvéru. Toto riešenie je výhodné použiť pre ovládanie takých zariadení, ktoré potrebujeme nastaviť pomocou niekoľkých príkazov, príp. monitorovať ich činnosť.
1. Úvod
Veľká časť technologických a laboratórnych zariadení disponuje sériovým rozhraním, pomocou ktorého je možné tieto zariadenia ovládať. Existuje dokonca štandard SCPI, ktorý definuje univerzálnu sadu príkazov, pomocou ktorých je možné ovládať a monitorovať predovšetkým meracie zariadenia. Cieľom vytvoreného ovládacieho zariadenia je umožniť ovládať laboratórne zariadenie (predovšetkým generátory signálov a meracie prístroje) prostredníctvom počítačovej siete rovnakým spôsobom, ako keby bol používateľ pripojený na zariadenie pomocou sériovej linky.
2. Možnosti vzdialeného ovládania zariadení vybavenými sériovým rozhraním
V rámci nášho výskumu sem identifikovali tri spôsoby, akými sa dajú vzdialene ovládať technologické a meracie zariadenia vybavené sériovým rozhraním. Prvou možnosťou je pripojiť laboratórne zariadenie ku osobnému počítaču pomocou sériovej linky a ovládať zariadenie softvérovým vybavením, ktoré sa bežne používa pre prácu s daným zariadením. V takom prípade, vzdialené ovládanie je možné zabezpečiť zriadením vzdialeného prístupu k pripojenému počítaču. Toto riešenie je najvhodnejšie pre zariadenia, ktoré nie je možné ovládať iným spôsobom, iba pomocou dodávaného softvéru. Výrobcovia v poslednej dobe často zavádzajú extra obmedzenia pre využívanie nimi dodávaného softvérového vybavenia vo forme hardvérových kľúčov, bez ktorých nie je možné využívať ich softvérové riešenia a tým pádom ani ovládať zariadenia pomocou počítača. V takom prípade je opodstatnené mať jeden dedikovaný počítač, do ktorého je vložený hardvérový kľúč a pre ovládania zariadenia využívať iba tento počítač, či už pre lokálne alebo vzdialené ovládanie.
Druhou možnosťou je použitie prevodníka sériovej komunikácie na sieťovú komunikáciu. Typickým príkladom takého prevodníka je napr. Lantronix UDS1100 [1]. Tieto prevodníky sa pripoja pomocou sériového rozhrania ku laboratórnemu zariadeniu a taktiež sa pripoja do počítačovej siete. Na strane ovládacieho počítača sa nainštaluje softvérový nástroj, ktorý pridá virtuálny komunikačný port do systému (napr. Com Port Redirector [2]). Tento virtuálny komunikačný port sa z pohľadu softvéru správa rovnako, ako ktorékoľvek fyzické sériové rozhranie. Pre ovládanie zariadenia je potrebné na počítač s emulovaným sériovým portom nainštalovať ovládací softvér. Toto riešenie je použiteľné iba v prípadoch, kedy je ovládací softvér dostupný bezplatne, príp. jeho licencovane dovoľuje mať nainštalovaných niekoľko kópií. V každom prípade, vlastník licencie stráca reálne kontrolu nad licenciou, preto sa toto riešenie neodporúča pre viacpoužívateľské systémy.
Treťou možnosťou ovládania zariadenia vybaveného sériovým rozhraním je priame zadávanie príkazov cez sériovú konzolu. Tento spôsob je možné realizovať aj použitím už spomínaného konvertora. My sme však navrhli iný spôsob – komunikačné zariadenie s web rozhraním, pomocou ktorého je možné vzdialene posielať príkazy na laboratórne zariadenie pripojené ku komunikačnému zariadeniu.
3. Predpoklady úspešnej implementácie ovládania zariadenia pomocou príkazov prostredníctvom emulovanej konzoly sériového rozhrania
Tento spôsob sprístupnenia je vhodný predovšetkým pre zariadenia, ktoré sú prispôsobené pre komunikáciu pomocou sériovej linky. Do tejto kategórie môžeme zaradiť zariadenia, ktoré dokážu prijímať príkazy cez sériovú linku a prípadne aj dokážu poskytnúť odpoveď na poslaný dotaz. Táto forma komunikácie je výhodná vždy, keď nie je k dispozícii ovládací softvér, príp. používateľ potrebuje ovládať dané zariadenie zadaním jednoduchých príkazov. Keďže nie všetky laboratórne zariadenia komunikujúce cez sériovú linku poskytujú svoje odpovede vo forme ľahko čitateľnej pre ľudí, tento spôsob je výhodný predovšetkým pre zadávanie príkazov a príp. pre kontrolu správnej činnosti. Pre pokročilejšie merania príp. pre zaznamenávanie je stále najvýhodnejšie použiť dodávaný softvér nainštalovaný na pripojenom počítači a sprístupnený pomocou vzdialeného prístupu.
V prípade zariadení, ktoré dokážu svoj textový výstup formátovať do podoby ľahko čitateľnej pre ľudí je táto forma ovládania ideálna pre jednoduché experimenty, najmä v prípadoch, kedy používateľ potrebuje z času na čas zmeniť parametre experimentu (napr. zmena napätia pri experimentoch s elektronickými zariadeniami v klimatickej komore).
4. Popis riešenia – tok údajov a realizácia používateľského rozhranie
Princíp riešenia pozostáva z dvoch úrovní komunikácie. Na jednodoskovom počítači Raspberry-Pi [3] je spustený web server Apache [4]. Používateľ pristupuje k web stránke, v ktorej si nastaví parametre pripojenia (podľa technickej špecifikácie výrobcu), príp. si vyberie zo zoznamu preddefinovaných nastavení. Po potvrdení nastavení parametrov sa odošle príkaz serveru, aby sa pokúsil o otvorenie komunikácie na vybranej sériovej linke. V prípade, že sa to podarí, zobrazí sa emulácia sériovej konzoly vo web prehliadači, ktorý umožňuje posielať príkazy priamo na zvolenú sériovú linku. Zároveň sa každý príkaz uloží do html stránky a vytvorí sa tak archív komunikácie.
Počas vytvárania spojenia sa spustí program, ktorý zachytí sériovú komunikáciu a každý reťazec, ktorý prijme zo sériovej linky, zapíše do už spomínanej html stránky. Počas zachytávania komunikácie program transformuje formátovacie znaky sériovej komunikácie na formátovacie znaky html jazyka (napr. prevod znaku „/r“ na príkaz „<br>”).
Obr. 1 Tokový diagram dát pre web rozhranie sériovej komunikácie.
Používateľ pracuje s rozhraním (Obr. 1), v ktorom sa v okne roluje celá komunikácia a zároveň má k dispozícii príkazový riadok, pomocou ktorého môže zadávať príkazy. Do rolovacieho okna sa v 0,5 sekundových intervaloch načíta obsah html stránky, ktorá obsahuje časovou známkou označené príkazy používateľa ako aj neoznačené odpovede zariadenia prijaté cez sériovú linku. Takýmto spôsobom je možné efektívne komunikovať so zariadením rovnakým spôsobom, ako keby ho používateľ ovládal príkazmi priamo pomocou terminálového klienta z pripojeného počítača.
Obr. 2 Porovnanie sériovej komunikácie realizovanej pomocou Web rozhrania (vľavo) a pomocou lokálneho terminálu (vpravo).
Obr. 2 znázorňuje a porovnáva ovládanie laboratórneho zariadenia cez sériovú linku pripojeného priamo k počítaču a pomocou emulovanej konzoly pre ovládanie laboratórneho zariadenia prostredníctvom počítačovej siete. Prototyp emulátora sériovej konzoly je založený na projekte interaktívneho chatu založeného na jazyku PHP [5]. Tento projekt bol zvolený ako základ predovšetkým z dôvodu, že celé používateľské rozhranie sa výrazne podobá na konzolu a využíva pre realizáciu chatu ten istý princíp, ktorý som vymyslel pre sériovú komunikáciu (ako medzipamäť sa využíva html súbor). Výhodou uvedeného projektu sú applety napísané v java skripte, ktoré zabezpečujú riadenie sedenia (session), ako aj neustálu aktualizáciu rolovacieho okna.
5. Popis riešenia – hardvér
Hardvérové prepojenie (Obr. 3) je možné realizovať dvoma spôsobmi. Jednodoskový počítač Raspberry-Pi disponuje USB rozhraním ako aj priamo vyvedenými kontaktmi sériového rozhrania UART. V systéme sa toto rozhranie zobrazuje pod umiestnením /dev/ttyAMA0. Prvou možnosťou je pripojenie integrovaného obvodu prevádzajúceho komunikáciu UART na RS-232 priamo ku kontaktom UART na doske. Toto riešenie je kompaktné, avšak potrebuje aj softvérový zásah, nakoľko táto sériová linka je priradená prioritne konzolovému prístupu k systému Linux a nie je možné bez úpravy použiť toto sériové rozhranie na komunikáciu s iným zariadením.
Obr. 3 Hardvérové riešenie emulátora sériovej komunikácie.
Druhou možnosťou je pripojiť k jednému z USB portov hotový prevodník (založený napr. na integrovanom obvode PL-2302), ktorý prevádza USB rozhranie na rozhranie RS-232. Tieto prevodníky sa v systéme Linux zobrazia pod umiestnením /dev/ttyUSB0, /dev/ttyUSB1, atď. Pri realizácii web emulátora sme využili hotový prevodník Axago ADS-50 [6], založený na obvode PL-2303 [7]. Výhodou použitia počítača Raspberry-Pi je jeho pomerne nízka spotreba (cca. 6 W) ako aj priamo vyvedené kontakty osadeného procesoru. Tieto kontakty je možné využiť ako digitálne vstupno-výstupné porty. Navyše, väčšina kontaktov zastáva aj druhú úlohu – reprezentujú rôzne periférne komunikačné rozhrania, ako napr. SPI, I2C a pod. Prostredníctvom týchto portov je možné pripojiť ku počítaču rôzne senzory pre snímanie environmentálnych parametrov prostredia, ako aj ovládať experiment na hardvérovej úrovni pomocou elektromechanických komponentov, ako napr. relátka, elektromagnetické ventily a pod.
6. Záver
Zrealizovaná sériová konzola dostupná cez web rozhranie bola testovaná na dvoch typoch zariadení. V laboratóriách bolo testované vzdialené ovládanie laboratórneho zdroja MANSON SDP 2405, pre ktoré sa vytvorili aj ovládacie tlačidlá uľahčujúce zadávanie najčastejšie používaných príkazov (uzamknutie lokálneho ovládacieho panela, odomknutie lokálneho ovládacieho panela, prečítanie aktuálneho nastaveného napätia, prečítanie aktuálne nastaveného prúdu, a pod.).
Typickými zariadeniami, ktorých prvotná konfigurácia sa vykonáva pomocou sériovej konzoly sú sieťové prepínače a smerovače. Navrhnutý prevodník bol testovaný na sieťovom prepínači Cisco Catalyst 2950, pre ktorý dokázala emulovaná konzola poskytnúť podobný komfort práce ako pri práci s priamym pripojeným na konzolu. Využitie takto skonštruovaného emulátora sériovej konzoly je možné využiť na e-Larningové vyučovanie v rôznych oblastiach. V elektronike a v technológiách v elektronike dokáže poslúžiť na výučbu konfigurácie laboratórnych zariadení, ako aj pre vykonávanie vzdialených experimentoch, pri ktorých je potrebné priebežne meniť vstupné podmienky (prúd, napätie a pod.). Rovnako je možné predstavený emulátor sériovej konzoly využiť aj pri e-Learningovej výučbe sieťových technológií, predovšetkým pri konfigurácii sieťových zariadení.
Zdanlivou nevýhodou tohto riešenia je neformátovaný výstup zo zariadenia, čo môže často spôsobovať problém v čitateľnosti výstupu zo zariadenia. Túto nevýhodu je potrebné vnímať ako daň za univerzálnosť riešenia. Celý systém je možné prispôsobiť vybranému zariadeniu, v takom prípade je však potrebné implementovať všetky ovládacie príkazy do používateľského rozhrania a taktiež formátovať výstup zo zariadenia. Nie je možné vytvoriť univerzálny komunikačný modul, ktorý by vedel formátovať neštandardný výstup zo zariadení a transformovať výstup do formy ľahko čitateľnej pre ľudí.
Zoznam použitej literatúry
- Serial Ethernet Converter – External Device Servers – Lantronix UDS1100, elektronická verzia dostupná na adrese:
http://www.lantronix.com/device-networking/external-device-servers/uds1100.html - Com Port Redirector, elektronická verzia dostupná na adrese:
http://www.lantronix.com/device-networking/utilities-tools/com-port-redirector.html - Raspberry Pi – An ARM GNU/Linux box, elektronická verzia dostupná na adrese:
http://www.raspberrypi.org/ - Apache – The Apache HTTP Server Project, elektronická verzia dostupná na adrese:
http://httpd.apache.org/ - Nava Gabriel: How to Create A Simple Web-based Chat Application, 24. Júl 2009, elektronická verzia dostupná na adrese:
http://code.tutsplus.com/tutorials/how-to-create-a-simple-web-based-chat-application–net-5931 - AXAGO ADS-50 USB – serial adapter, elektronická verzia dostupná na adrese:
http://www.axago.cz/cz/produkty/usb-adaptery/ADS-50.html - Prolific PL2303RA, USB to RS232 Bridge Controller, elektronická verzia dostupná na adrese:
http://www.prolific.com.tw/US/ShowProduct.aspx?p_id=107&pcid=41
Spoluautorom článku je Prof. Ing. Juraj Banský, CSc, Katedra technológií v elektronike, Fakulta elektrotechniky a informatiky, Technická univerzita v Košiciach