|
|
|
Übersicht:
Funktion:
Bevor
auf die Funktion des Basis-Modul-Controllers (BMC)
eingegangen wird, hier erst einmal ein Eindruck von
der aufgebauten Platine:


Der BMC übernimmt im
wesentlichen, neben anderen allgemeinen Kontrollaufgaben, 2
Hauptfunktionen innerhalb der MoBaSbS.
- Er sorgt für den Datenaustausch zwischen den Basismodulen der
MoBaSbS. Dazu pollt der BMC zyklisch alle an ihm
angeschlossenen
Module und fragt deren Status ab.
- Er verwaltet die Lokdaten.
D.h. es
werden bei einer
Änderung des Status einer Lok deren Informationen im Speicher des BMCs
abgelegt oder aber auch bei einer Anfrage eines Moduls z.B. nach dem
Status einer Lok oder nach derem Namen die gewünschten Daten
vom BMC an das anfragende Modul gesendet.
Die
Parameter eines Lokdatensatzes werden in einem
seriellen EEPROM (ST24C256) gespeichert und nach dem Anschalten der
MoBaSbS aus dem EEPROM in ein statisches RAM kopiert. Von dort wird
während des laufenden Betriebs dann auf alle Parameter
zugegriffen. Die Parameter einer
Lok lassen sich in 4 Gruppen aufteilen
- Lokparameter, die zum Betrieb unbedingt notwendig (n) sind bzw.
dem Komfort (k) dienen. Diese Parameter können direkt über
den HDC oder das MoBaSbS-Konfigurationstool eingegeben werden. Zu
diesen Parametern gehören:
- (n) Adresse der Lok (bis 255 bei MM2, bis 9999 bei DCC)
- (n) Protokolltyp (MM2 oder DCC)
- (n) Fahrstufenanzahl (14, 28, 128)
- (k) Loknamen (20 Zeichen)
- Lokparameter, die während des Betriebs verändert werden
und deshalb vom Anwender nicht vordefiniert werden können. Dazu
gehören:
- Lokgeschwindigkeit
- Lokrichtung
- Funktionstastenstatus
- Lokparameter, die Kontrollzwecken dienen. Dazu gehören:
- Definition, ob eine Funktionstaste tastend oder schaltend
behandelt werden soll (derzeit wird dieser Parameter aber nicht
ausgewertet)
- Definition, an welcher Stelle der Datensatz innerhalb aller
Datensätze angelegt werden soll. Mit diesem Parameter ist es
möglich, bestimmte Loks zu gruppieren. Als Folge einer solchen
Gruppierung erscheinen die Loks dann beim Aufruf durch den HDC direkt
aufeinanderfolgend.
- Lokparameter, die derzeit eher eine statistische Funktion haben
und lediglich im Konfigtool ausgewertet werden. Dazu gehören:
- Artikrlnummer (6stellig)
- Herstellerbezeichner (Märklin, Roco, Fleischmann, ...)
- Definition des Loktyps (z.B. Dampf, Diesel, Elektro und
entsprechende Untergruppen wie Schnellzuglok, Güterzulok,
Triebwagen, etc.)
- Definition der Lokfunktionen zugeordnet zu den Funktionstasten
(z.B.: F1 = Licht vorne, F2 = Dampf, ... , F12 =
Geräusch-Kohleschaufeln)
Im Speicher des BMCs können insgesamt ca. 500 Datensätze
hinterlegt werden.
Weitere Informationen zur Konfiguration der Lokdatensätze
über das MoBaSbS-Konfigurationstools
sind der Beschreibung des Tools zu entnehmen.
Über die vier RJ45
Buchsen
links im Bild, lassen sich externe Module, wie etwa HDCs,
anschliessen. Werden mehr als die 4 Anschlußmöglichkeiten
benötigt, so kann mit entsprechenden Verteilern (Y-Splitter) die
Anzahl der Anschlußmöglichkeiten weiter erhöht
werden.
Auf die Jumperoptionen
wird weiter unten noch eingegangen..
Aufbauhinweise:
Wie
alle anderen Basismodule ist auch der BMC mit einem Mikrocontroller vom
Typ ATMega162 (Atmel) bestückt.
Als
RAM (32kx8) kann sowohl eine schmale,
als auch eine breite Version verwendet werden. Dafür ist auf der
Platine eine
alternative Bestückung vorgesehen.
Die beiden LEDs oben links im Bild
zeigen den Kommunikationsstatus der Module untereinander (gelbe LED),
sowie den aktiven Zustand (grüne LED) der MoBaSbS an. Die 4
weiteren Dioden (rechts unterhalb von "C") können ebenfalls in
eine Frontplatte
montiert werden, dienen aber lediglich Debugzwecken.
Die Platine ist so ausgelegt,
dass
sie in ein 19''-Gehäuse mit Frontplatte passt.
Sonstiges
Hier
noch ein paar Informationen
zu den Jumpern und Einstellmöglichkeiten. Die gelben Kreise im
abgebildeten
Layout zeigen folgendes an:

- A
- Hier
kann definiert werden,
ob die
an der Frontseite befindlichen Buchsen von einem eigenen Treiber
versorgt
werden sollen oder ob der interne RS485 Bus nach vorne
"herausgeschliffen"
werden soll. Derzeit müssen hier zwei Jumper gesetzt werden, die
die
mittleren beiden Stifte mit den unteren (mit 'i' gekennzeichneten)
Stiften des 6pol. Pfostensteckers
vertikal
verbinden. Der RS485 Treiber, rechts neben den Jumpern, kann
weggelassen
werden.
- B
- Wird
bei A der Treiber
ausgewählt
(die Jumper brücken die mittleren mit den oberen Stiften des 6pol
Pfostensteckers), dann
kann
bei B festgelegt werden, ob beide Treiber (der für den internen
und
für den externen Bus) aus einer Quelle (2 Jumper bei B von Mitte
nach
Rechts (U0) gesteckt) oder von zwei unterschiedlichen Quellen (2 Jumper
von der Mitte nach Links (U1) gesteckt) gespeist werden sollen. Derzeit
wird dieser Jumper in keiner Position unterstützt und bleibt offen!
- C
- Hier
kann eine
Versorgungsspannung
von +5V oder +9V bis +12V für jeden einzelnen Ausgang definiert
werden.
Die 4 Jumper werden dazu von der Mitte nach Links (+5V Option) oder
nach
rechts (höhere Spannung) gesteckt. Das Fahrpult unterstützt
derzeit
schon beide Versorgungsoptionen. Um einen Spannungsabfall bei
Kabellängen
> 5m zu kompensieren, kann hier die höhere Spannung verwendet
werden.
Ein eigener Festspannungsregler im HDC sorgt dann wieder für
die 5V Versorgung. Damit ein versehentliches Einstecken des HDCs
in einen PMC anstatt des BMCs nicht zu einer Zerstörung
des HDCs führt - an den PMC-Ausgängen liegen generell +9V
bis +12V an -, sollte der HDC standardmässig mit dem 5V
Festspannungsregler ausgestattet werden und der BMC so gejumpert
werden, dass an seinen RJ45 Buchsen die +9V bis +12V Spannung anliegt.
- D und E
- Diese
Potis dienen zur
Einstellung
des Abschlusswiderstandes des internen und externen RS485 Busses. Die
Einstellung
sollte etwa in Mittenstellung sein. Das Poti an Position D hat durch
die Jumperstellung von A jedoch keinen Einfluß.
- F
- Hier
können +5V
eingespeist
werden. Diese Einspeisung kann genutzt werden, wenn der Mikrocontroller
auf der Platine ausserhalb des
Gehäuses programmiert werden soll.
- G
- Hier liegt die ISP Schnittstelle
und der Resettaster. Über
die ISP (In-System-Programmable) Schnittstelle lässt sich der uC
im System programmieren. Befindet sich die Karte nicht an der Backplane
aufgesteckt, so kann am Punkt F eine 5V DC-Spannung eingespeist werden.
Diese ISP-Schnitstelle findet man auf allen Basismodulen der MoBaSbS.
Auf den Peripheriemodulen sind sie aus Platz- und
Kostengründen nicht vorgesehen. Noch ein Hinweis zum Reset: Der
Resettaster auf jedem der Hauptmodule
ist eigentlich nur der Vollständigkeit halber vorgesehen, um im
Falle eines Falles einmal ein Modul auch alleine zurücksetzen zu
können. Auf dem BMC kommt dem Reset aber eine besondere
Bedeutung zu, da hier das Auslösen des Resets zu einem
Rücksetzen aller Basismodule führt. Dies ist bei den anderen
Modulen nicht der Fall! Bei meinem eigenen Aufbau der MoBaSbS habe ich
diesen Resettaster über den 2pol Pfostenstecker (links vom
Resettaster) und ein Stück Kabel in die Frontplatte verlegt.
So ist er deutlich einfacher zu erreichen. Um eine sauberes Starten des
uCs nach dem Einschalten der Spannung zu gewährleisten, ist jeder
uC mit einer kleinen Beschaltung für den Reseteingang versehen.
Diese Beschaltung besteht aus zwei Bauteilen: Einem 10k Widerstand und
einem 100nF Kondensator. Der Widerstand befindet sich genau in der
Mitte unterhalb des ISP-Wannensteckers, der Kondensator direkt
unterhalb des Resettasters. Ich weise extra auf die beiden Komponenten
hin, da sie gerne mal übersehen werden!
Angeschlossen (angesteckt) wird der BMC
an die Backplane,
die
alle Basismodule untereinander verbindet und über die die
Kommunikation
der einzelnen Module läuft.
Download
|