LocoNet vs. XpressNet
Tento článek jsem zařadil do rubriky
Arduino. Udělal jsem to z několika důvodů. Jeden z nich je ten, že ho považuji za neužitečný,
druhý je ten, že se mi nechce jej psát v angličtině.
Pro začátek se pokusím trochu porovnat tyto sběrnice mezi sebou. Rovnou napíši, že se jedná pouze o můj osobní názor a tak je potřeba toto
srovnání chápat. Pokud máte názor jiný, pak vám pravděpodobně nezbývá, než si založit vlastní blog a tam si jej napsat.
Přenosová vrstva
Jako přenosovou vrstvu si
XpressNet zvolil diferenciální sběrnici
RS-485. Její přednost je velká rozšířenost a velká hardwarová podpora.
Přenosovou rychlost
Lenz stanovil na 62500 baud (bitů za vteřinu). Celková architektura je pak postavená jako single master, multi slave (PMP).
Volbu této přenosové rychlosti považuji za poněkud podivnou, já bych spíše preferoval některou z notoricky známých rychlostí (například 57600/115200).
Komunikace byla zvolená jak 9-bitová. To je celkem logický krok, který se často používá u sériových sběrnic tohoto typu. Devátý bit neslouží k
přenosu informace, ale k označení "volacího znaku" (STX). Tím pochopitelně dochází ke snížení efektivity využití přenosového média, ale rozhodně
to není ta největší degradace. Daleko větší je degradace způsobená tím, že centrála obvolává všechna připojená zařízení (ovladače) a pokud ovladač
nemá co říci, tak neodpovídá a centrála čeká na uplynutí timeoutu, než osloví další ovladač. Ovladačů je v síti jen omezený a přesně definovaný
počet (31), to bývá XpressNetu také často vytýkáno, nicméně ještě jsem se nesetkal s nikým, kdo by na toto maximum efektivně narazil. Vzhledem k tomu,
že centrála přiděluje komunikační čas a periodicky obvolává všechna zařízení, je na sběrnici prakticky nepřetržitý provoz. To se dá v zásadě
považovat za přednost, neboť každé zařízení má šanci poznat, že došlo k problémům v komunikaci.
LocoNet je co se týká přenosové vrstvy mnohem kreativnější. Zvolil si komunikaci na sdíleném médiu s detekcí chyby (
CSMA/CD). To je vrstva,
která je mnohem méně často popisovaná, ale přitom se s ní dnes setkáváme opravdu často. Jedná se o síťovou vrstvu, kterou používá například Ethernet.
Efektivně by se dalo použít asi srovnání s tlustým Ethernetem
10Base5. Oproti Ethernetu však LocoNet nepoužil oddělovací transformátory ani
komunikaci v přeneseném pásmu. Namísto toho definuje potřebu zdroj energie pro napájení přenosového média (proudový zdroj 15mA; typicky +12V max).
Pro mne trochu překvapivé je to, že na rozdíl od běžně používaného synchronního
Manchester kódování NRZ (Non Return to Zero)
používá
asynchronní sériové kódování 8N1 (stejné jako sériový port u počítače).
Zásadní přednost zvoleného přenosového média spatřuji v tom, že je symetrické a je tedy jedno, jestli uživatel použije přímého a nebo krouceného
kabelu. Komunikace je tím pádem volná a není definovaný žádný centrální bod. Komunikační rychlost byla stanovena na bajt za 60 µsec, tedy 16666 baud
(Tady asi nevadí, že je komunikace mimo běžné komunikační rychlosti sériového portu 9600/19200). Komunikace je stanovena jako osmibitová, s tím že
se osmý bit používá pouze k označení "opcode" - tedy příkazu sběrnice. Datové bajty jsou tedy sedmibitové a to je poměrně dost limitující, neboť
velké množství procesorových systémů (včetně definice DCC) je nastaveno na 8 bit, takže se v protokolu často vyskytují bajty, které doplňují
osmé bity jednotlivých bajtů. Dále je nutné vzít v úvahu, že se jedná o kolizní komunikaci, která není nikterak arbitrovaná, ale vzhledem ke komunikačním
potřebám běžných kolejišť ke kolizím prakticky nedochází (až na výjimky). V původní definici nebylo zavedeno ani označování zařízení (MAC adresa u
Ethernetu), ale později se zavedením individuálních konfigurací bylo částečně zavedeno unikátní sériové číslo. Pochopitelně, pokud na sběrnici
není žádná komunikace, není možné poznat, jestli je tato komunikace vůbec možná. Součástí vedení jsou dva vodiče Rail Sync. Tyto vodiče mají obsahovat
DCC signál, který mohou použít ovladače pro své napájení (jeden ovladač může spotřebovat maximálně 15mA) a nebo pro zesilovače (boostry), které jej
používají pro vytvoření kolejového DCC signálu. Bohužel došlo k nepříjemnému rozpadu sběrnice na několik variant a dnes se často setkáme s
označením LocoNetT (Throttle = ovladač), Která má místo Rail Sync pouze stejnosměrné napájení (většinou +12 až +15V), někdy se také setkáváme
s označením LocoNetB (Booster = zesilovač), který naopak obsahuje Rail Sync, ale né vždy má aktivní datové vodiče. U signálů Rail Sync je také
poněkud nelogické chování při přetížení DCC. V takovém případě se očekává, že nebude signál odpojen, ale bude připojen na kladné napájecí
napětí. To je nutné proto, aby bylo i nadále možné napájet ovladače. Celkově potřeby napájení ovladačů vytvářejí potřeby různých zesilovačů a
doplňovačů energie.
Logická vrstva
XpressNet se na logické úrovni spoléhá na velmi autoritativní centrálu. Protokol je přesně specifikovaný (specifikace je volně dostupná, aktuální verze je
3.6) a nepřipouští jinou komunikaci
než ovladač <=> centrála. Protokol vymezuje pouze přesně vyjmenovanou sadu příkazů a prakticky nepřipouští žádné alternativy. To by bylo v
pořádku, bohužel však protokol neumožňuje vytvářet žádné požadavky na speciální pakety, takže třeba rozšířený paket pro příslušenství na XpressNetu
nevytvoříte ani náhodou. Protokol také neumožňuje vytvářet zařízení, které by chtělo doplňovat informace v centrále. Například informace o obsazení
kolejí dokáže rozeslat pouze centrála a není možné k síti připojit nic jiného, co by bylo ochotné poskytovat další informace o obsazení.
Dobré je, že je popis protokolu v podstatě celkem dobře udržovaný a celkem přiměřeně reaguje na požadavky a potřeby modelářů. Vzhledem k pevné
definici se také velice snadno ověřuje funkčnost zařízení používajících tuto sběrnici. Vzhledem k tomu, že centrála je v komunikaci nosným prvkem,
nevzniká potřeba ověřovat funkčnost ovladačů nebo jiných prvků mezi sebou, pouze komunikace s centrálou. Je potřeba poznamenat, že XpressNet sám neřeší
komunikaci s detektory obsazení (ani jiný zpětný ohlas). Tuto informaci zprostředkovává centrále jiná sběrnice (RS-bus/S88) a XpressNet jen odesílá
informace k ovladačům
Jak již zaznělo,
LocoNet se spoléhá na decentralizovanou strukturu. To v určité míře klade větší nároky na každou jednu komponentu v síti, neboť
není úplně jednoznačné, od kterého dalšího prvku přijdou informace, které jsou pro něj relevantní. Proto v praxi mohou existovat instalace
LocoNetu, které vůbec nepoužívají DCC centrálu (někdy se mluví o takzvaném pasivním LocoNetu). Digitrax sám asi nemá příliš rád nadměrné papírování,
takže ani dokumentace není příliš detailní (Na stránkách
LocoNetu je dostupná pouze verze
1.0 a mimo to ještě rozšíření
v13 a
pak ještě pár poznámek třeba v popisu
Transponding s použitím modulu BDL168 a RX4).
Naopak nechává velký prostor pro lidovou tvořivost. Navíc Digitrax vytvořil podivný systém licencování,
který připouští komunitní tvorbu v diskuzní skupině
LocoNet Hackers.
Takže pokud chcete o nějakém zařízení prohlásit, že opravdu funguje správně, pak toho docílíte
jedině tak, že jej vyzkoušíte proti všem ostatním produktům. Konec konců si všimněte na seznamu certifikovaných zařízení, že je u nich často
uvedeno, proti jakým zařízením jsou testovaná. Vzhledem k otevřenosti komunikace si u LocoNetu vystačíte s jednou sběrnicí jak pro ovladače, tak
pro sběr informací o obsazení kolejí a možná i další komunikaci. Bohužel Digitrax není příliš inovativní, takže spoustu věcí, které se v DCC začali
používat později, tak norma neobsahuje a doplnila je lidová tvořivost a to ne vždy jednoznačným způsobem (všimněte si například používání funkcí
F13-F28). LocoNet připouští, aby ovladač požádal centrálu o vytvoření vlastního datagramu. To vnáší do komunikace značnou dávku kreativity a dává
to ovladačům velké možnosti. Otázka je, jak moc o to uživatelé stojí. Zajímavé z pohledu logické struktury je kombinování obou komunikačních směrů,
které se dá zužitkovat například tak, že jedno zařízení v sobě kombinuje komplexní dekodér příslušenství (řekněme točna) a k němu i zpětný ohlas
(točna se točí, točna stojí v pozici 3, ...). V těchto případech zase trochu pozor na již zmíněnou lidovou tvořivost - existuje komunikace, kterou
propagují moduly LocoIO a zároveň komunikace příslušenství/zpětné hlášení. Obojí je velice podobné, ale podobné neznamená stejné.
Uživatelské shrnutí
XpressNet se (asi zejména díky spolupráci Lenz+Roco) etabloval do rozhraní vhodného a používaného u domácích kolejišť. U těchto kolejišť se
považuje za výhodu, že je jednoznačně a čistě rozdělená hranice mezi tím, co je "uvnitř" kolejiště (pod kolejištěm) a co je vně kolejiště. Uvnitř
se předpokládá rozvod DCC signálu v jednom směru a rozvod RS-Bus (alternativně S88) v druhém směru. U těchto rozvodů je praktické, že jsou vytvořené s ohledem
na potřeby vnitřních rozvodů - takže propojování pomocí dvoudrátových kabelů, uchycených do šroubovacích svorek. Venku kolem kolejiště pak lehký
a flexibilní rozvod XpressNet pro připojení ovladačů a ovládacích panelů. Proto také v portfoliu najdete velké množství univerzálních ovladačů,
ale také celou řadu jednoúčelových udělátek, ovládacích panýlků a pomocných destiček. Pokud se tedy vžijeme do role uživatele kolejiště, pak poměrně
praktické možnosti jednoduchého nákupu.
Na
LocoNetu je naopak vidět jeho americký původ. Soustředí se na velká klubová kolejiště, kde je větší množství uživatelů, kteří zastávají
jednoduché úlohy. Uživatelé nejsou příliš kreativní a zařízení používají pouze tak, jak jim napsal výrobce, že je používat mají a nikdy si
nepoložili otázku, jestli se nedá to či ono zařízení použít ještě pro další funkce. Jednotný rozvod zajišťuje, že se uživatel nesplete v tom, co
kam připojuje a nenutí uživatele k přemýšlení. To že je vnitřní rozvod proveden tenkým drátem a navíc drátem s poněkud komplikovaným konektorováním
(Telefonní konektor vyžaduje jednoúčelový nástroj na nacvaknutí - krimplovací kleště), to vede k tomu, že uživatelé mají tendenci volit větší a
komplexnější zařízení a musí k nim složitě přivádět napájení. U locoNetu je těžké si představit, že vznikne něco jako kolejivo interně vybavené
dekodéry a detektory.
Ve své snaze zmonitorovat větší množství komerčně dostupných zařízení jsem narazil na jednu vlastnost, která opravdu hodně zhoršila můj pohled na LocoNet.
Zjistil jsem, že existují zhruba tři skupiny uživatelů - jedna, u nás asi nejpočetnější, jsou uživatelé, kteří používají loconet na modulových kolejištích.
Uznávají pouze ovladače FrED (
Fremos
Einfacher
Drehregler - jednoduchý Fremo ovladač vyrobený v roce 1997), zesilovače SPAX a centrálu
MiniBOX; na všechno ostatní říkají, že to není standard pro moduly. A pak jsou dvě skupiny a to dkupine Digitrax a Uhlenbrock. To je tak trochu dáno tím,
že tito výrobci si každý vyložili normu po svém a jejich produkty se vydaly každý jiným směrem. Jsou tak trochu vzájemně nekompatibilní. To slovo "tak trochu"
znamená, že třeba pro ovládání lokomotivy fungují funkce F0-F12 jednotně, ale pro funkce F13-F28 používá každý jinou sadu příkazů; Digitrax používá pro konfiguraci
zařízení v síti takzvané SV (Setup Value), zatímco Uhlenbrock LNCV (LocoNet Configuration Value), které se každé chovají jinak. K Digitrax SV existuje
alespoň částečná dokumentace, ale k LNCV existuje popis jen v rámci několika mailů s konferenci LocoNet Hackers. Není potřeba zdůrazňovat, že tyto metody
konfigurace jsou navzájem neslučitelné. A aby se to nepletlo, tak se postupně objevvuje na trhu třetí výrobce s centrálou DR5000, která začala zavádět další
lidovou tvořivost a nekompatibilitu.
Závěr
Pokud jste čekali nějaký jednoznačný závěr jako že třeba jedna sběrnice je lepší než druhá, tok to máte smůlu, nic takového si netroufám tvrdit.
Je to jako svět Windows vs. Linux. Každý má svoje a každý si musí vybrat svou cestu.