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.