OpenDCC GBM16, Gleisbesetztmelder / BiDi-Belegtmelder

    Auf dieser Seite wird die Schaltung des Besetztmelders näher erläutert. Diese Seite ist für den Einsatz nicht erforderlich, gibt aber dem Interessierten aufschlußreiche Hintergrundinformationen.

Übersicht

    Intern sind in GBM sind zwei Prozessoren des Typs ATXmega128A1 verbaut: ein Prozessor übernimmt die BiDi-Auswertung und Strommessung ('trackproc'), der zweite Prozessor kommuniziert mit dem PC und parallel mit der Zentrale ('controlproc'). Die Prozessoren laufen in unterschiedlichen Versorgungsbereichen und kommunizieren über schnelle Datenkoppler miteinander. Soweit möglich, wurden alle Bauteile in SMD verbaut, nur so war ein kompakter Entwurf möglich.

    Beide Schaltungsteile sind voneinander trennbar und können mit einen 6-poligen Kabel verbunden werden. Es ist auch möglich, bis zu vier trackproc an einem controlproc zu betreiben.

Schaltung Gleisprozessor

    Der Gleisprozessor ist auf das Potential des Gleises bezogen und wertet Stromverbrauch bzw. BiDi-Nachrichten aus und sendet eine Zusammenfassung dieser Auswertung an den Controllprozessor.

    Jedes Gleis wird mit einem Sensor bestehend aus einem Widerstand 22 Ohm und zwei antiparallelen schnellen Schottky-Dioden erfaßt. Die Dioden haben eine nominale Durchflußspannung von ca. 0.45V bei 3A. Mögliche Typen sind hier:
    • SSA33L, Gehäuse DO214AC (=SMA), 3A (Vishay)
    • SK 36A SMD, Gehäuse DO214AC (=SMA), 3A
    • SK 34A SMD, Gehäuse DO214AC (=SMA), 3A
    Die Dioden können 3A Dauerstrom, Zerstörungsversuche mit höherem Strom haben sehr gute Toleranz gegen kurzzeitigen Überstrom gezeigt (sprich: Mit dem 4A DCC-Booster, der bei Kurzschluß abschaltet, passierte nichts).

    Der Widerstandswert von 22 Ohm ermöglicht auch die Messung sehr kleiner Gleisströme (z.B. bei 15V und 30kOhm fließen nur 500uA, was an 22 Ohm einen Spannungsabfall von 10mV verursacht. (Hinweis: 22 Ohm verursachen beim Nominalstrom von BiDi (30mA) einen Spannungsabfall von 660mV (das ist beschränkt durch die Dioden auf 250mV), was über der Spezifikation liegt. Das ist aber ohne Belang, da der Summenspannungsabfall aus Belegtmelder und BiDi-Detektor kleiner als jede am Markt verfügbare Kombination ist.) (Bitte hierzu auch die Hinweise im Forum beachten, dieser 22Ohm wird ev. geändert auf 5.6 Ohm)

    Das Sensorsignal wird direkt mit den integrierten A/D-Wandlern des Gleisprozessors ausgewertet. Durch die Verwendung von Schottky-Diode liegt dann das Meßsignal in einem Bereich von ca. +/- 0.45V um GND. Optional kann die Referenz des A/D-Wandler von einen externen Referenzbaustein Analog Devices ADR380 versorgt werden, dieser ist aber regulär nicht bestückt.
    Der Prozessor erlaubt eine Messung von (kleinen) negativen Spannungen bis ca. -0,4V, so dass keine duale Stromversorgung erforderlich ist. Die Messung erfolgt differentiell (signed mode) gegen GND. Um eine zu große Belastung der Schutzdioden im Prozessor zu vermeiden, sind Begrenzungswiderstände in die Meßzuleitungen geschaltet.

    Dadurch reduziert sich der Schaltungsaufwand für die Stromversorgung, diese erfolgt direkt über das DCC Eingangssignal.

    Wenn das DCC Signal fehlt, so kann eine Ersatzspannung verwendet werden; Diese wird an den Klemmen X1-4 und X1-2 eingespeist. Zum einfachen und billigen Einspeisen der Ersatzspannung kann auch die USB Buchse J40 verwendet werden. Hierbei ist allerdings zu beachten, dass die Masse des TrackProc fest mit DCC verbunden ist, die Speisung muß also potentialfrei erfolgen. Hier keinenfalls mit dem PC einspeisen!

    Der Gleisprozessor ist mit einer DCC Acknowledge und BiDi-Stufe ausgerüstet und kann als vollwertiger DCC Dekoder agieren. Neben der Konfiguration über DCC können damit auch optional Nachrichten der lokalen Detektoren auch an den globalen Detektor weitergeleitet werden.

    Die Belegung der Kanäle wird mit lokalen LEDs angezeigt, diese werden mit 1mA Strom betrieben. Um eine ansprechende Helligkeit von 3mcd zu erreichen, sind LEDs mit einer Helligkeit von ca. 50mcd/20mA zu verwenden (z.B. Osram L296).

    Für Entwicklungszwecke, für erweitertes Monitoring und für den Bootloader ist ein optogekoppelter USB Zugang über FTDI-Kabel vorgesehen.
    Optionen des Trackproc (GBM16T)
    ACKDieser Optokopplerausgang dient irgendwann in ferner Zukunft als beschleunigte Quittung auf dem BiDiB. Die Zentrale kann dann Ihren Stack und die Befehlswiederholungen optimieren.
    FremdeinspeisungDamit bleibt die Belegtmeldungsmessung (und das Debug-IF) am Leben, auch wenn DCC abgeschaltet wird.
    Hinweis: Falls das nicht erfolgt: Der GBM16 macht 'HOLD', d.h. der Controlproc sieht den abgeschaltet Track und 'hält' die Belegung einfach fest. Das geht automatisch, man muß nichts konfigurieren oder ändern. (Änderungen des Belegungszustandes im abgeschalteten Zustand kann er dann natürlich keine mehr erkennen).
    DCC-Eingangder GBM16T braucht nur DCC, die Railcom-Sendestufe ist optional und wird bisher auch nicht in der SW unterstützt.

Schaltung Controlprozessor

    Der Controlprozessor ist auf 'Erde' bezogen (also entweder Masse vom PC oder von der Zentrale). Er empfängt die Daten von Gleisprozessor, reduziert diese fallweise auf das jeweils verwendete Rückmeldeprotokoll und reicht diese per USB, BiDiB, Xpressnet oder S88 weiter.
    An den Controlprozessor können bis zu vier Gleisprozessoren angeschlossen werden, damit können z.B. im Bahnhofsbereich bis zu 64 Gleise von einem GBM verwaltet werden.

    Am Controlprozessor stehen 3 Hostinterfaces zur Verfügung:
    • USB: Hier findet der FT232R Verwendung dieser ist mit der entsprechenden USB-ID zu laden.
    • Xpressnet: Das ist eine RS485 basierende Halbduplexverbindung auf RS485-Basis. Der GBM kann hierbei sowohl Master als auch Slave-Rolle übernehmen. Nur im Master-Betrieb ist der Abschlußwiderstand (TERM) einzuschalten. Hierzu ist ein 2mm Jumper J72 vorgesehen.
    • BiDiB: Die Verdrahtung erfolgt gemäß BiDiB Normierung, dadurch kann eine einfache Verkabelung mit CAT5-Kabeln erfolgen.
    • S88: Die Verdrahtung erfolgt gemäß s88-n Normierung, dadurch kann eine einfache Verkabelung mit CAT5-Kabeln erfolgen. S88 und BiDiB ist eine Bestückungsoption, man kann nur eines der beiden Interfaces bestücken.
    S88 Interface:
    Das Interface zum S88 ist mit einem D-FF realisiert: eingehende Datenbits werden per Hardware mit dem Flipflop übernommen, ausgehende Datenbits werden durch Ansteuern der Set- bzw. Resetleitungen in der Interrupt-Serviceroutine eingestellt. Falls das S88-Interface während des Betriebes ausfallen sollte (z.B. weil der Host abgeschaltet wird), so wird dies durch die Überwachung der 5V-Versorgung auf dem S88-Bus erkannt. Der controlproc schaltet daraufhin seine Ausgänge ab.

    Timing:
    Der OpenDCC GBM hat am S88-Bus eine Setupzeit von 20ns. Die Verzögerungszeit bis zu Ausgang T(pd,clock_to_out) ist typisch 4µs, im worst case < 10µs. Die erlaubte Clockrate ist bis zu 50kHz (20µs Periode).

    Xpressnet, BiDiBus:
    Das BiDiBus und Xpressnet-Interface ist mit einen üblichen 8-poligen Treiber im SO8-Gehäuse ausgeführt. Es gibt dafür eine Reihe kompatibler RS485-Chips mit 3,3V Versorgung. Hinsichtlich der notwendigen Geschwindigkeit und Ausgangsslewrate bitte die Hinweise auf www.bidib.org berücksichtigen. (Für Xpressnet empfiehlt sich ein 250kBaud Baustein, bei BiDiB ist ein 500k Baustein erforderlich. Schnellere Bausteine sind möglich, allerdings muß dann der Xpressnet oder BiDiBus sauber verlegt und abgeschlossen sein.)

Stromversorgung der Prozessoren

    Die gesamte Schaltung läuft bei 3,3V, diese wird mittels Längsregler aus der jeweils verfügbaren Oberspannung (also aus DCC, Xpressnet, USB, usw.) gewonnen. Als Spannungsregler für die 3.3V ist ein LT3080 im SOT223 verwendet, bestückbar ist aber auch ein TO39 oder DPAK Gehäuse. Der LT3080 hat eine besonders geringe Dropout-Spannung von 1,2V (das ist der notwendige Spannungsabfall am Regler) bei gleichzeitig großen Eingangsbereich.

    Als gängiger Ersatz ist auch LM317 im SOT223 verwendbar. Der LM317 ist zwar recht preiswert, macht jedoch 1,4V Dropout und fordert zudem einen Mindestlaststrom. Das wird dann schon knapp, wenn man als Ersatzspeisung 5V DC verwendet:
      - Schutzdiode: 0,3V (gute Schottky-Diode)
      - LM317: 1,4V
      - Verbleibt eigentlich keine Reserve mehr, um 3,3V auszuregeln.

    Als weitere Alternativen bietet sich an:
      - LT1117 bzw. TLV1117 (1,1V Dropout, aber nur einen V-In Bereich bis 15V)

    Wichtig ist eine hinreichend gute Siebung der Versorgung, damit die Analog-Digitalwandler stabil arbeiten.

Clockversorgung

    Die ATXmega können sowohl mit internen Oszillator als auch mit externen Quarz betrieben werden, wobei die tatsächliche Taktrate mittels einer PLL von der Quarzrate abgeleitet werden kann. Der GBM verwendet einen externen Quarz mit 8 MHz, dieser wird mit einem Faktor 4 mittels der PLL auf 32MHz gebracht. Sollte der Quarz fehlen, nicht anschwingen oder die PLL nicht einrasten, so schaltet die Software automatisch auf einen Notbetrieb mit dem internen RC-Oszillator um. Der ist dann nicht mehr so genau, meine Messungen zeigen in diesem Fall ca. 2% Fehler.