Úvod
V
předchozím článku jsem popsal několik věcí, které se týkají
komunikace skrz sériový port. Přestože je sériový přenos v praxi
obtížně nahraditelný, existují důvody, kde je výhodou jeho
použití a případy, kde jeho použití nemá smysl. Používat
komunikaci přes sériový port nemá smysl, pokud jde o komunikaci
mezi počítači připojenými k síti LAN, WiFi. Podobně, jako nemá smysl v radioamatérské praxi
vrtat díru do zdi kvůli komunikačnímu a ovládacímu kabelu z
hamovny k anténám.
Realizace přenosu dat mezi počítači je jednoduchá a levná, pokud
použijeme technologie LAN sítí a WiFi. Moderní vývojové
prostředky obsahují spolehlivě fungující zapouzdřené komponenty.
S těmi se dělá snadno a rychle. Proto je realizace spojení mezi počítači protokolem TCP otázkou
jednoduchého programování, které trvá opravdu jen několik minut.
O tom však bude některý z dalších článků. Nyní uvedu schéma a
HW, tedy věci, které používám ke komunikaci mezi PC (aplikací) a
zařízením se sériovým portem (např. tuner, přepínač antén,
měřicí ústředna):
|
|
|
Na levé straně schématu je sice nakreslena spousta serverů,
možná to vypadá složitě, ale ve skutečnosti se jedná o jednoduchý komunikační
program, který běží buď na domácím serveru nebo na PC, ze
kterého ovládáme a řídíme zařízení. Bude popsán mezi články
o programování. K TCP serverům (na schématu S1 až S4) se
připojují klienti aplikací (tunerů, přepínačů, měřicích
přístrojů, ...). Na pravé části jsou servery, které nedělají
nic jiného, než převod TCP komunikace na komunikaci po
sériovém portu (RS232). Tyto převodníky lze realizovat buď s
pomocí jednodeskových počítačů, např. SBC Asus Tinker Board,
na kterém běží jednoduchý program. Toto řešení je robustní a
spolehlivé. V nejbližší době budu zkoušet program na
Raspberry Zero, u kterého nehodlám programovat tzv. I/O
piny, ale pouze využívat sériová rozhraní. Rovněž se
vyrábějí různá levná (300 Kč) zařízení, která plní podobné funkce,
např. Elfin EW10. Viz obrázky ještě níže. |
|
|
|
Elfin ve funkci STA zařízení přihlášený k domácímu WiFi
routeru: |
|
|
Závěry
Pravděpodobně existuje celá
řada řešení a zařízení, která umí realizovat přenos dat z
TCP serverů do sériového portu (nebo ttyUSB0 zařízení).
Zařízení, které jsem naprogramoval na jednodeskovém počítači
Asus bude s největší pravděpodobností fungovat na Raspberry
Zero. Továrně vyrobená zařízení jsou zase vyrobená s vysokým
komfortem administrace, např. přes webové rozhraní. Nemusí
však být dostatečně transparentní pro naše potřeby. Já
osobně sleduji, aby řešení bylo spolehlivé, aby bylo
extrémně jednoduché programování jednočipového mikropočítače
v zařízení. S tímto programováním opravdu nehodlám strávit
večery. Podobně nemám v úmyslu bádat nad věcmi, které
neudělali programátoři továrních převodníků dostatečně
transparentně. Moje zařízení chodí s minimálními požadavky
na řízení toku dat sériového rozhraní.
Poznámky
V úvodu článku jsem uvedl řešení s
jednodeskovým počítačem ASUS Tinker Board. Jde o Linuxový
stroj s architekturou ARM. Toto řešení nemusí být vždy
vhodné pro TCP server se směrováním do RS232 v případě, že
tvoříme své aplikace ve vývojovém prostředí určeném pro
Windows. Pokud vezmeme v potaz cenu ASUS Tinker Board, tak
mi vycházejí tyto náklady: deska SBC ... 1500,- Kč, USB
zdroj ...200,- Kč, SD karta ...100,- Kč, krabička ...100,-
Kč, tedy dohromady asi 1900,- Kč Za alternativní
řešení s PC Lenovo Stick 300 jsem dal také
1900,-Kč. Balení obsahovalo miniaturní počítač v krabičce,
napájecí USB adaptér, kabel USB - microUSB a prodlužovák
HDMI na připojení HDMI displeje. Mini počítač je vybaven 4
jádrovým procesorem, operačním systémem Windows 10 home,
úložištěm eMMC (32G), pamětí RAM (2G) a rozhraním USB. Na
takovém stroji krásně běží serverová část, klientské
aplikace pro místní ovládání a další věci pod Windows 10. Za
stejné peníze, jako jsme dali za ASUS Tinker Board. |
|
|
|
|
|
|