Railnet

Hodiny pro Loconet, Ibis, infra a analog.

DCC | Zdeno Janeček, 07. 01. 2014 (3464 zhliadnutí)

Už delší dobu mi leží na stole „Matka, hodinová ústředna“, kde jsem spojil až tři protokoly a jeden analog do jednoho přístroje (krabice). Tak nějak jsem dostal chuť napsat o tom článek, jak jsem to vymyslel a zhotovil. Už jsem několik hodinových ústředen zhotovil a tak mám základ na to, spojit několik věcí dohromady.

Schéma

Je to poněkud složitější, než bývá mým zvykem, ale je to proto, že čtyři zabudované věci prostě nepustí.

Použil jsem Atmegu88P, která je vynikající po stránce zabudovaných periférií a užitných vlastností. Navíc má dost paměti a tak jsem mohl využít programování v Bascom Basic, který je sice „ukecaný“, ale přehledný. A to je někdy důležitější než rychlost. A zrovna tady není rychlost limitující.

Přístroj se skládá z několika podskupin

Je to napájecí zdroj, klávesnice s displejem, příjem a vysílání Loconetu, a silové skupiny pro vysílání infra, Ibis a analogu. Napájení se skládá z trafa 230V / 15V / 14W, teda asi na 900mA výstup. Výstup z trafa se usměrní a vyfiltruje a stabilizuje na +5V, +12V a třetí napětí je na analog, 22V nestabilizovaných.

Klávesnice a display jsou zapojeny na stejné piny podle datasheetu obou a potenciometr R3 nastavuje kontrast displeje.

Vysílání a příjem Loconetu je odzkoušený a není s nim problém. Protokol IBIS je vlastně upravená RS232, kdy se za rozhodující úroveň považuje 6V. Teda vše nad 6V je “1“ a vše pod 6V je “0“. Analog posílá každou minutu změnu polarity, kterou se změní čas o jednu minutu. Infra je vlastně IBIS, která se vysílá pomoci modulace 36kHz a tím se rozlišuje 0 nebo 1. Přesněji, pokud se vysílá 36kHz, je to “1“, nevysílání je “0“. Protože to je asynchronní sběrnice, je to celkem slušně čitatelné. Doba “1“ je asi 20pulsů 36kHz, při 1200 Baudů.

Protokol Loconet

Je podrobně popsaný v manuálu a má několik zvláštností. Používá se paket s opcode EFh pro slot 123(7Bh) a dalších 12 bajtů, celkem 14. Protože v manuálu je to dost nesrozumitelné, tak jsem použil JMRI a jeho hodiny a přečtením toho, jak to JMRI dělá a zkopíroval jsem to.

Je v tom dost rozdíl oproti manuálu Loconetu od Digitraxu.

  • EFh – opcode
  • 0Eh – počet byte v paketu
  • 7Bh – určeno pro slot hodin
  • 0-127 – zrychleni času ; 0 = stojí, 127 = 127x rychlejší
  • 0 – desetiny vteřin
  • 0 – vteřiny
  • 67– 126 minuty, ; 67 + (0 až 59)
  • 3 – stav Loconetu a programovací koleje
  • 104 – 127 hodiny ; 104 + (0 až 23)
  • 0 – den, nepoužíváme
  • 64 – kontrolní údaj, JMRI tu dává „0“
  • 0 – kontrolní číslo, může být 0
  • 0 – kontrolní číslo, může být 0
  • Chk – negovaný EXOR předchozích bajtů

Specifikum Loconetu je v tom, že inicializace hodin není automatická, ale musí se vyžádat paketem <BB, 7B, 0, 3F>. kdy ústředna odpoví 14-bajtovým paketem o reálnem čase. To znamená, že hodiny vůbec nezatěžují sběrnici Loconet, pokud je vše v pořádku. No a pokud je průšvih s hodinami, tak je čas obsazení sběrnice, asi to poslední, co nás zajímá. Proto se dost divím, proč se hodiny na Loconet více nepoužívají.

Samozřejmě počáteční inicializace se provádí trojitým paketem EF, aby byla zajištěna 100% čitatelnost.

Aktualizace se provádí jedním paketem EF v délce 14 bajtů po vyžádání. To znamená, že podružné hodiny musí mít aktualizační tlačítko.

Protokol IBIS

Je používaný v MHD na řízení hodin osazených v dopravních prostředcích. Vysílá na 1200 Baudu a je to klasický UART, na sedmi bitech, jen s posunutou rozhodovací úrovní. Hodiny se musí obnovovat pravidelně každou minutu.

To je paket pro hodiny, kdy jednotlivé bajty se musí vysílat v ASCII formátu. 0=48, 1=49, u = 117, apod.

  • <117, hoddes, hodjedn, mindes, minjedn, 13, /Chk> / = negovane
  • <101, 48, Zrych+48, 48, 48, 48, 13, /Chk>

To je příkaz na zobrazení zrychlení hodin ; Zrych = „0 = STOP“ ; „1- 9 zrychlení“

U tohoto protokolu je nutné dát pozor na to, že se vysílá v ASCII kódech a ne binárně. Proto 0 je 48 (30h) v ASCII.

Analog

Analogové vysílání spočívá v tom, že se každou minutu zneguje +12V nebo +22V. To se dělá pomocí relátka, které je zapojeno do kříže.

Switch na přepnutí +12V a +22V je na desce spojů. Výstup utáhne asi 20 analog hodin běžného typu, ručičkové nebo pragotron.

Infra

Tak tady jsem se dost našpekuloval, protože neexistuje protokol pro něco takové a jiné protokoly jsou buď pomalé (RC5,6) anebo moc složité. Takže jako vždycky jsem čekal na nějakou inspiraci a souhru náhod, která mne postrčí nějakým směrem. Študoval jsem různé protokoly a nakonec mne napadlo spojit už vymyšlené, pro nosnou 36kz, se zabudovaným IBIS.

Vysílá 9 infra diod s celkovým výkonem asi 5W, vyzkoušený dosah za dne je asi 200m v přímé viditelnosti a 50m odrazem od zdi. Nemám možnost to odzkoušet někde v tělocvičně, proto to bude muset počkat. Zatím je to tak nějak mimo mého zajmu a nepřikládám tomu extra velkou prioritu. Je to laboratorně odzkoušené, ale netuším, jak se infra bude chovat v reálu.

Celkové vybavení a ovládání hodinové ústředny :

Ústředna umí vyrábět a posílat čas pravidelně každou minutu, nebo na vyžádání. Podle potřeby umí posílat pakety Loconetu, IBIS, infra nebo pulsy analogu. Ibis a analog posílá povinně každou minutu, infra na uživatelské povolení a Loconet na vyžádání od podružných hodin..

Časy na zrychlení jsou 0 = STOP, 1 = normální čas, 2 až 9 je zrychlení. Čas zrychlení znamená 1/číslo, teda převrácená hodnota čísla, teda 1/2 až 1/9 vteřiny.

Na ovládání hodinové ústředny používám kursor na displeji a numerickou klávesnici. Klávesami vlevo a vpravo od nuly ovládám pohyb kursoru a následně můžu měnit číslo nad kursorem. Jediný problém je, zabezpečit to proti dětem a iniciativním „nenechavcům“, kdy se musí zabudovat ochrany a tím pádem je obsluha trošku složitější.

Ochrana spočívá v tom, že čas a rychlé přestavění analogu se dají nastavit, jen když je rychlost nula, teda hodiny stojí. Pokud je rychlost nula, tak se přesunete kursorem na požadovanou pozici a volbou číslice, ji vypíšete na displej. Tak můžete změnit všechny číslice na displeji podle potřeby. Číslice jsou chráněny proti nesmyslům a nedá se zapsat třeba 92 minut, limit je 59, stejně tak hodiny na 23. Hodiny s spustí volbou rychlosti vyšší než nula.

Rychlé přestavění analogu se používá při ručičkových, nebo pragotron hodinách, na dosažení počátečního stavu před jezděním. Je tam několik voleb, od 1 do 4, kdy si můžete vybrat rychlost podle toho, jak hodiny stíhají. Po dosažení správného stavu zastavíte generátor impulsů přepnutím na nulu a následně můžete spustit čas, nastavením rychlosti.

Ovládání ústředny hodin je intuitivní a po velmi krátkém zaučení, je může ovládat kdokoliv rozumný.

Výhoda této centrály je v tom, že dokáže obsluhovat analogové hodiny minutovým impulsem a přitom může být použita pro Loconet na řízení a aktualizaci času. Oboje spolu souvisí, ale není to na sobě závislé. No a IBIS je tam proto, že to skoro nic nestálo.

Pokud by si to někdo chtěl vyrobit, tak ho to bude dost stát, protože jsou v tom zabudované drahé součástky.

Trafo = 8Eur, display = 10Eur, klávesnice = 11 Eur, Atmega88 = 3.5Eur, optočleny = 2Eur, konektory = 8Eur, no a různá bižuterie se vejde do 15 Eur. Takže cena součástek vyjde na 55 Eur.

Konstrukce není zrovna jednoduchá, i když to tak vypadá, proto to nedoporučuji stavět začátečníkům.

Těm ostatním, pošlu návod, nákresy spojů a program do Atmegy.

Až budu mít náladu a chuť, tak napíši článek o podružných hodinách, kterých mám taky pár vymyšlených a zhotovených.

Možná Harmi zkusí předělat i ty svoje na Loconet.

[Akt. známka: 4,33 / Počet hlasov: 3] -      + 

Pridať nový komentár

harmi 08.01.2014 10:19:13

Ahoj Zdeno, no vyborne, uz je teda na svete takmer uplne univerzalne riesenie. Este by som to doplnil radiofrekvenciami, cize 433/860 atd. vysielacom, pretoze infra sa mi vidi dobre len pre nastenne velke hodiny, ktore nikto nezatieni na rozdiel od stanicnych digitalov, ktore potrebuju bud kabel (loconet alebo IBIS) alebo radio. Musim este dokladnejsie otestovat spolahlivost RX/TX-MID za roznych podmienok, ale zatial moje pokusy s radiovym prenosom ibisu na 433MHz vyzeraju celkom uspokojivo, tak potom dam vediet.

Stanicne digitaly na loconet tak skoro neprerobim, totiz okrem dovodov v clanku http://www.railnet.sk/view.php?cisloclanku=2013110001 pouzity attiny je s pamatou na program (2kB) na hranici uz teraz a musel by som nieco ubrat, aby som tam vobec spracovanie loconetu napchal alebo to kompletne prerobil na atmega napriklad. Ak ich budem ale niekedy prerabat, tak by som uz doplnil aj autonomnu prevadzku, pretoze informaciu o rychlosti poskytuje loconet aj IBIS. Pokial vsak pojde spolahlivo radio, nebude vlastne ani dovod ich prerabat na loconet.

Este si dovolim dva komenty k tvojmu rieseniu: 1. prepinanie analogu relatkom sa mi paci menej nez vhodnym operakom/komparatorom. Z hladiska ceny je to porovnatelne a odstrani sa mechanicka suciastka, cim narastie dlhodoba spolahlivost. Cize vlastne tak isto, ako si urobil IBIS vystup, akurat napajanie pre operak pojde cez jumper 12/22V. 2. z popisu mi to nie je uplne jednoznacne jasne, ale pri vysielani IBISu cez infra by som posielal relaciu castejsie, napriklad kazde 2-3 sekundy a nielen pri zmene casu. To kvoli tomu, ze infra nemusi byt vzdy spravne rozpoznane.

Reagovať

zdeno 08.01.2014 10:27:46

Re:

to radio by bylo asi lepsi, ale nemam s tim zkusenosti. Teda mam, ale ne na prakticke urovni s temito moduly. V zasade by stacilo logicky vstup na infra hodit na 433MHz vstup modulu a pripojit antenu.
---
Dneska jdem ku Sindlerovi, podivam se, ci tam nema modul 433MHz vysilac.

Reagovať

Pridať nový komentár