Jindra Fučík

Převodník rozhraní R-Bus na rozhraní S88n

Úvod

Nějakou dobu jsem sledoval technický rozvoj na straně Roco. Pochopitelně zejména rozvoj centrál Z21/z21. Zdá se mi, že se jedná o celkem rozumná zařízení, která však v některých případech celkem nesmyslně trvají na starých proprietárních systémech, jako je například systém zpětného hlášení R-Bus (podporovaný výhradně moduly Roco 10787). Již v minulosti jsem věnoval nějaký čas reverznímu inženýrství tohoto protokolu (popis protokolu zde). Vzhledem k tomu, že cena modulů 10787 postupně vzrostla nad přijatelnou úroveň, rozhodl jsem se vytvořit jejich náhradu. Abych nemusel vytvářet kompletní poměrně komplikovaný modul s omezeným počtem vstupů, rozhodl jsem se vytvořit pouze převodník ze sběrnice R-Bus na mnohem přátelštější sběrnici S88n.

Popis zapojení

Zapojení je velice jednoduché. Jedná se vlastně jen o rozhraní RS-485 použité v původním RocoNet rozhraní (původně XpressNet), použitém při derivaci R-Bus. Dále pak budič pro rozhraní S88 (posilovač sběrnice 74HC245). Vzhledem k tomu, že R-Bus má omezené proudové zatížení (max cca 25mA pro každý modul 10787), rozhodl jsem se přidat samostatné napájení. Toto napájení není galvanicky oddělené od R-Bus.
Použil jsem také několik signalizačních LED. Vycházel jsem z vlastností Roco 10785 (Rocomotion), která oslovuje jen tolik modulů, kolik skutečně potřebuje, proto jsem přidal 4 žluté led pro zobrazení tohoto počtu. Pokud je modul použit na Z21/z21, zobrazuje vždy maximum - tedy 10 modulů.
Dále jsem použil zelenou LED, která signalizuje odchozí komunikaci. Připojil jsem jí na výstup pro přepínání směru RS-485. To asi nebylo úplně správné, zde by bylo vhodnější použít volnou kapacitu 74HC245 a nezatěžovat LEDkou datový signál.

Converter R-Bus interface to S88n interface

Introduction

For some time I'm watching technical improvement on Roco. Of course especially with command stations Z21/z21. It look like, that it is more less good devices. But it in some cases non-logically pushing old proprietary systems. For example system of feedback modules called R-Bus (supported only by modules Roco 10787). I was spent some time by reverse engineering of this protocol in the past (Protocol description can be found here). Because price of modules 10787 increased to unacceptable levels, I decided to create its replacement. To avoid creation of full probably complex module with limited number of inputs, I decided to create only converter from R-Bus to more friendly feedback bus S88n.

Hardware description

Schematic is very simple. It is only generic interface RS-485 used in original RocoNet interface (originally XpressNet) used during R-Bus derivation. Next part is S88 bus driver (power bus driver 74HC245). Because R-bus have limited power source to (max cca 25mA per module 10787), I decided to add additional powering. This powering is not isolated from R-Bus.
I was also used few signalling LEDs. Based on experience with Roco 10785 (Rocomotion), it calling only that amount of modules that actually need. Then I was added four yellow LEDs for display this amount. Once module is used with Z21/z21, it will always display maximum - that is 10 modules.
Next I was used green LED, signalling outgoing communication. It is connected to output for change RS-485 direction. Probably it is not good idea, it will be better to utilise unused capacity of 74HC245 and not load data signal with LED.
Podle Roco zvyklostí jsem na modul udělal rovnou dva rovnocenné R-Bus konektory, takže je možné je řetězit za sebou. As usual for Roco modules, I was done two equivalent R-Bus connectors on module. Then it is possible to create chain of modules.

Popis software

Software je celkem jednoduchý. Program používá dvě hlavní vlákna. Hlavní vlákno je použito pro čtení S88 modulů. Bez ohledu na to, kolik modulů je požadováno na R-Bus straně, vždy se čte všech 10 modulů. Druhé vlákno je řízeno sériovou komunikací a jeho úloha je pouze komunikace a odpovídání na R-Bus příkazy.
Vzhledem k tomu, že adresování je u S88 vyřešeno prostou polohou modulu v síti, nebyl nutné do software nijak zahrnovat jakoukoli práci s adresami.

Software description

Software principle is not complicated. Program using two main threads. Main thread is used for for reading of S88 modules. It always read all 10 modules, does not matter, how many modules are requested on R-Bus side. Second thread is driven by serial communication. Its role is only reply to R/Bus commands.
Because addressing on S88 is solved by position of module in network, then it is no necessary to done any support for work with addresses.

Návod k používání

Používání modulu je velice jednoduché. Prostě se propojí R-Bus sběrnice z centrály s jedním R-Bus konektorem na modulu. Je nutné použít nekroucený telefonní kabel, s minimálně čtyřmi vodiči. Tento kabel je notoricky známý ze všech XpressNet propojů.
Do konektoru S88n se pak připojují běžné S88 moduly. Zařízení předpokládá osmi vstupové moduly. S88 modul připojený nejblíže k převodníku má adresu 1 (nebo 11) další v pořadí má adresu 2 (12) až poslední modul má adresu 10 (20).
Propojkou na převodníku se nastaví, jestli převodník obsluhuje adresy 1-10 (propojka je rozpojená) a nebo adresy 11-20 (propojka je přítomná).
Na převodníku je ještě druhá propojka, která slouží k přepínání napájení. Výchozí stav je propojka přepnutá na napájení přímo z R-Bus. To je vhodné pro menší počet S88 modulů (2~3). Pro větší počet modulů je vhodné použít doplňkové napájení (9-12V) a přepnout napájecí propojku do pozice pro externí napájení.

Následující obrázky ukazují možné kombinace modulů zpětného hlášení. Podstatné je, že jeden převodník automaticky obsadí všechny adresy jedné skupiny, tedy všechny rozsahu 1-10 (bez adresní propojky), nebo všechny adresy v rozsahu 11-20 (s adresní propojkou). A to bez ohledu na to, jestli jsou a nebo nejsou přítomné příslušné moduly S88.

Instructions for use

Module usage is very easy. Simple connect R-Bus interface from command station to one of R-Bus connectors on module. It must be done by "non twisted" telephone cable with minimum of four wires. This cable is well known from every XpressNet connections.
Standard S88 modules are connected into S88n connector. Device expect modules with 8 input each. Module connected first to converter have address 1 (or 11) next connected module have address 2 (12) and last module have address 10 (20).
Here is shorting jumper on module for configuration. It is used to select if module handles addresses 1-10 (jumper open) or addresses 11-20 (jumper closed).
Converter also contain switching jumper, it is for selection of power source. Default is jumper switched to powering directly from R-Bus. It is good for small amount of S88 modules (2~3). For bigger amount is better to use additional power (9-12V) and then switch this jumper to external power position.

Following figures presents possible combinations of feedback modules. Mandatory is, that one converter automatically occupy all addresses of one group. Then addresses in range 1-10 (without address jumper), or addresses in range 11-20 (with short address jumper). It will occupy addresses also if S88 modules are not found.



Závěr

Ukázalo se, že převod uzavřeného R-Bus protokolu na mnohem jednodušší S88 je celkem jednoduchý. Je až překvapivé, že se Roco stále drží poněkud nepružného protokolu R-Bus. Ale na druhou stranu Roco strategie je zaměřená na kobercové ježdění a tam se zpětný ohlas příliš nepoužívá.

Resume

It seems like, that conversion from closed R-Bus protocol to more simple S88 is feasible and not complicated. It is interesting, that Roco still keeping this little obsoleted and non flexible standard R-Bus. From the other hand, Roco main strategy is in carpet rail-road, where feedback is not so popular.

Pokud máte problém s osazováním, nebo s výrobou desek plošných spojů, využijte kontaktní formulář na TOMTO web-shopu, kde si můžete objednat komponenty nebo hotový dekodér. Once you have problems with soldering or creating PCB boards, please use contact form on THIS web-shop, where you can order some parts or finished decoder.