Modellbahn - Steuersystem digital
(aber anders)

NGO-MBT 02/2011
Konzept         Bus-Master         Zur Homepage         Fahrstrom-Schaltteil

Modellbahnsteuerng

Blockstrecken-Rechner

Jeder der vier Mikroprozessoren (PIC16F877) auf dieser Platine kontrolliert und steuert jeweils vier Blockstrecken und gibt entsprechende Informationen an die anderen Rechner und/oder an den Bus-Master weiter. Der Nachrichtenaustausch am Euro-Bus ist hardwaremäßig als 8-Bit parallel Übertragung mit 3 Steuerleitungen realisiert:
/* 
Steuerleitungen: MSclk, Mack, Sack
Ablauf: Wenn im zugeordeten Sendetakt ((Takt % 7) == (Rechnerid+1)) 'Mack' nicht gesetzt ist,
legt Sender Adresse auf den Bus und setzt 'MSclk'. Erkennt ein Empfaenger 'MSclk' und die
Adresse als seine, so setzt er 'Sack' als Acknowledge und 'geht auf Empfang'. Erkennt Sender 
'Sack', so setzt er 'Mack' und loescht 'MSclk'. 'Sack' folgt 'MSclk' waehrend 'Mack' bis zum 
Ende der Nachricht gesetzt bleibt. '!Sack' leitet die Uebertragung des naechsten Byte durch den 
Sender ein, er legt Byte auf den Bus, setzt 'MSclk' usw.......
Timeout wird nach 2 Takten des zentralen Taktes (~ 16 ms) erkannt, wenn die Uebertragung nicht 
protokollgerecht fortgesetzt oder abgeschlossen wurde. Nach 8 Wiederholungsversuchen wird die 
Nachricht verworfen und - fallsvorhanden - mit der naechsten Nachricht aus dem Sendepuffer 
fortgesetzt. 
Aufbau Adressbyte (8 bit): BXMMFFII   B  = Nachricht an Bus-Master
                                      X  = Endblock (kein Folgeblock)
                                      MM = Bus-Master Id (0-3)
                                      FF = Block-Rechner Id (0-3)
                                      II = Blockindex       (0-3)
*/  
Diese Auslegung ermöglicht eine schnelle, sichere und im Zeitverhalten flexible Datenübertragung.

Durch Pulsbreiten-Modulation wird die Fahrgeschwindigkeit geregelt, wobei der zentrale Takt in 74 Pulsbreitentakte (72 Fahrstufen + 2 Leertakte) geteilt wird. Durch diese feine Abstufung ist eine nahezu optimale Anpassung an die Bedürfnisse unserer Triebfahrzeuge über die Definition der Lokcharakteristik möglich.

Die Funktion des Besetztmelders wird durch Abtasten der Blockstrecke mit 3 Pulsbreitentakten ausgeführt. Vier mal pro Sekunde wird so geprüft, ob sich ein Verbraucher im Streckenteil befindet. Ist dies der Fall, so wird die Blockstrecke als 'besetzt' gemeldet und eine Reservierungsanforderung an den Folgeblock gestellt. Wird die Anforderung negativ beantwortet, wird die Reservierungsanforderung periodisch wiederholt und solange negative Antworten erfolgen die Fahrgeschwindigkeit stufenweise entsprechend der Lokcharakteristik verringert.

Konzept         Bus-Master         Zur Homepage         Fahrstrom-Schaltteil