Slotbaer / Carrera Digital 124/132 / CU Daten-Protokoll

Physikalische Ebene

Das Carrera Digital System ist genau wie die anderen digitalen Rennbahnsysteme ein zwei Leiter System.

Bei einem analog System verändert sich die Spannung zwischen den beiden Leitern und regelt so die Geschwindigkeit des Slotcars. Bei einem digitalen System liegt eine konstante Spannung an, die allen Fahrzeugen als Versorgungsspannung dient. Bei D132 und D143 sind dies etwa 15V (14,7V gemessen, aber 15V spricht sich leichter), bei D124 nominal 18V.

Da die Höhe der Spannung als Informationsträger für die Slotcargeschwindigkeit wegfällt, muss den Fahrzeugen ihre Sollgeschwindigkeit anders mitgeteilt werden.

Dies geschieht über Datenpakete, die an die Fahrzeuge geschickt werden.

Um die Datenpakete zu übertragen, wird die Spannung in einem bestimmten Rhytmus an und ausgeschalet, vergleichbar einem Morsecode. Das Ganze sieht etwa so aus:

CU1

Alle 7,5 ms kommt ein Datenwort. Es gibt 10 verschiedene Datenworte die sich ständig wiederholen. D.h. ein Datenwort wird alle 75ms neu gesendet. Das entspricht einer Frequenz von 13Hz.

Zwischen 9 Datenworten sind noch 8 einzelne Impulse zu sehen, diese dienen dem Senden von Informationen von externen Geräten zur CU. Wir ignorieren diese aber erst mal und konzentrieren uns auf die Datenpakete, die von der CU über die Fahrnahnleiter an Fahrzeuge, Weichen und andere Geräte gesandt werden.

Bei den Datenworten handelt es sich um serielle Datenworte im Manchester Code. Die Baudrate beträgt nominal 10 kBaud. D.h. die Bits wechseln alle 100µs.

Beim Manchester Code gibt der Zustand vor dem relevanten Flankenwechsel den Bit Wert an.

Das erste Bit ist ein Startbit.

Die Anzahl der Datenbits ist je nach Datenwort unterschiedlich. Es gibt Datenworte mit 7, 8, 9 und 12 Datenbits.

Es gibt kein Stopbit.

Aus einem mir nicht ersichtlichen Grund gibt es Datenworte im MSB und welche im LSB Format.

Innerhalb einer Pitlane werden die Ghost- und Fahrzeugpakete um eine 150µs lange Lowphase erweitert. Diese verhilft den Fahrzeugen zur Erkenntnis, dass sie sich in einer Pitlane befinden.

CU2

Den einzelnen Impulsen zwischen den Datenworten, widmen wir uns später im Detail.

 

Semantische Ebene

Wie schon erwähnt werden 10 Datenworte zyklisch gesendet.

Sechs dieser Datenworte haben den gleichen Aufbau, denn jedes gibt die Regler Informationen an das entsprechende Auto weiter.

Im Normalfall ist die Reihenfolge:

  • Programmierdatenwort
  • PaceUndGhostCardatenwort
  • Aktivdatenwort oder Quittungswort
  • Reglerdatenwort 0
  • Reglerdatenwort 4
  • Reglerdatenwort 1
  • Reglerdatenwort 5
  • Reglerdatenwort 2
  • Aktivdatenwort
  • Reglerdatenwort 3

Eine Besonderheit stellt das dritte übertragne Datenwort da, da es zwei verschiedene Arten von Datenwort sein kann. Im Normalfall handelt sich hier um ein Aktivdatenwort. Empfing die CU aber im letzen Zyklus ein oder mehrere Datenworte von einem anderen Gerät, so überträgt sie ein Quittungswort.

Reglerdatenwort: 1 R2 R1 R0 SW G3 G2 G1 G0 TA
Das Datenpaket teilt den Autos mit mit welcher Geschwindigkeit sie fahren sollen, ob der Spurwechseltaster am Regler gedrückt ist und ob die Fahrzeug eigene Spritverwaltung aktiviert ist. Es werden immer Datenworte für alle Regler gesendet unabhängig davon welche Regler wirklich angeschlossen sind.


1 Startbit
R2 R1 R0 Adresse des Reglers (0-5). MSB
SW

Spurwechseltaste. Wird 0 wenn die Taste gedrückt ist.

G3 G2 G1 G0

Geschwindigkeit (0-15) MSB

TA Ist 1, wenn der Benzinstand aktiviert ist. Das Bit wird von D143 Dekodern nicht ausgewertet.

 

PaceUndGhostCardatenwort: 1 1 1 1 KFR TK FR NH PC TA
Das Datenwort dient der Steuerung des Pacecars. Es sieht auf den ersten Blick wie ein Reglerdatenwort für den Regler Nummer 7 aus.

D143 Dekoder unterstützen keinen Ghostcar-Betrieb.


1 Startbit
1 1 1 Adresse des Reglers (7). MSB
KFR Keine Freigabe. Ist das Bit 0, findet normaler Bahnbetrieb statt. Ist das Bit 1, so ist die Startampel oder ein Programmmodus aktiv. Ghost und Pacecar stehen.
TK

Das Bit ändert sich bei jedem Befehl. Es kann als Takt dienen, ist allerdings nur bei normalem Bahnbetrieb aktiv. Und gibt möglicherweise den Weichen vor, ob ein Ghostcar die Weiche betätgen soll oder nicht.

FR Das Invertierte von KFR.
NH Wenn das Pacecartaste gedrückt wurde, zeigt dieses Bit an ob das Pacecar in die Box zurück soll. Bei einer 0 soll es, bei einer 1 nicht. Ist das Pacecar nicht aktiv ist das Bit 0.
PC Das Bit ist 1, solange das Pacecar aktiv ist, nachdem die Pacecartaste gedrückt wurde.
TA Ist 1, wenn der Benzinstand aktiviert ist.

 

Aktivdatenwort: 1 R0 R1 R2 R3 R4 R5 IE
Das Datenwort gibt bekannt welche Regler gerade gedrückt sind. Es berücksichtigt nur den Drücker, aber nicht die Spurwechseltaste. Dieses Datenwort wird in jedem Zyklus zweimal gesendet.

Ich vermute es dient zum verkürzen der Reaktionszeit beim Bremsen. Durch diese zusätzlichen Datenworte ergeben sich innerhalb eines 75 ms Zyklus, drei Gelegenheiten ein Loslassen des Reglers zu erkennen, statt nur einer. Ich nehme an, dass die Analogregler entsprechend häufig abgefragt werden.

Hilft allerdings nichts bei IR Regler, da deren Werte nur kurz vor dem Senden des Reglerdatenwortes abgefragt werden. Allerdings hilft es auch dort das "Verpassen" eines Reglerdatenwortes zu kompensieren.


1 Startbit
R0 Das Bit ist 1, wenn Regler 0 gedrückt wird.
R1 Das Bit ist 1, wenn Regler 1 gedrückt wird.
R2 R3 R4 R5 Das Gleiche in Moll.
IE Ist 1, wenn irgendein Regler gedrückt wird.

 

Quittierungswort: 1 S0 S1 S2 S3 S4 S5 S6 S7
Daten, die an die CU übertragen werden, werden in einem von 8 Slots (Zeitabschnitte, nicht Fahrbahnslots) übertragen. Die Slotnummer entspricht für gewöhnlich der Id des Fahrzeuges, auf das sich die Daten beziehen. Wurden im letzten Zyklus irgendwelche Daten von der CU empfangen, so geben die gesetzten Bits an, für welche Slots, die CU Daten empfangen hat.

Wurden im letzten Zyklus keine Daten von der CU empfangen, so sendet sie statt des Quittierungswortes ein Aktivdatenwort. Dieses Datenwort gibt es nur bei der CU und weder bei der Blackbox, noch bei der Redbox.

1 Startbit
S0 Das Bit ist 1, wenn Daten im Slot 0 empfangen wurden
S1 Das Bit ist 1, wenn Daten im Slot 1 empfangen wurden
S2 S3 S4 S5 S6 S7 Das Gleiche in Moll.

 

Programmierdatenwort: 1 W0 W1 W2 W3 B0 B1 B2 B3 B4 R0 R1 R2
Das Datenwort sendete ursprünglich nur die Werte für maximale Geschwindigkeit, Bremswirkung oder Tankfüllung an ein Auto. Bei der CU und der neuen BB werden zusätzlich Informationen über die Startampel oder Daten für Driverdisplay und Poition Counter gesendet,

Wenn die Werte für Geschwindigkeit, Bremse oder Tankinhalt programmiert werden, wird jeder Programmierbefehl für jedes Fahrzeug zweimal gesendet. D143 Dekoder unterstützen keine Programmierfeatures.

 
1 Startbit
W0 W1 W2 W3 Der Wert (0-15) für den ausgewählten Parameter. LSB

B0 B1 B2 B3 B4 Nummer des ausgewählten Befehls (0-31). LSB
R0 R1 R2 Adresse des Reglers (7). LSB

 

Die folgende Tabelle listet die mir bekannten Befehle. Es gibt vermutlich noch weitere zum Beispiel zum Update von Fahrzeug und Weichen. Die CU kennt als einzige alle diese Befehle. Die BB und RB kennen die meisten der Befehle nicht und verwenden zum Teil andere Befehlsnummern für die gleichen Befehl.

Wann welche Befehle zur Anwendung kommen wird u.a. auf der Seite mit der Beschreibung der Abläufe erklärt.

Befehl Wert Regler Beschreibung
0 0-15 0-5 Programmiere den Geschwindigkeitswert für Fahrzeug "Regler" auf "Wert"
1 0-15 0-5 Programmiere den Bremswert für Fahrzeug "Regler" auf "Wert"
2 0-15 0-5 Programmiere die Größe des Tanks für Fahrzeug "Regler" auf "Wert"
4 0 0-5 Normaler Betrieb für Fahrzeug "Regler" kein Pitlaneadapter vorhanden
4 0-7 0-5 Normaler Betrieb für Fahrzeug "Regler" Pitlaneadapter vorhanden. Der Wert spiegelt den Tankstand wieder. 7 bedeutet Tank voll.
4 8 0-5 Fahrzeug "Regler" blinkt, z.B. beim Frühstart, kein Pitlaneadapter vorhanden

4 8-15 0-5 Fahrzeug "Regler" blinkt, z.B. beim Frühstart, Pitlaneadapter vorhanden. Der Wert spiegelt den Tankstand wieder. 15 bedeutet Tank voll.
5 0 0-7 Fahrzeug "Regler" verlässt den "Tanken ist möglich" Modus

5 1 0-7 Fahrzeug "Regler" geht in den "Tanken ist möglich" Modus
6 1-8 0-7 Übertrage die Position "Wert" des Fahrzeuges "Regler"
6 9 0 Beim ersten Drücken der Starttaste (alle Leds rot) - Zurücksetzen der Positionen und Rundenanzeige
7 1 0-7 Fahrzeug "Regler" beendet das Rennen. Wird z.B. vom Rz30355 initiiert.
8 1 0-7 Fahrzeug "Regler" beendet eine Runde (Zieldurchfahrt) mit neuer Bestzeit
9 1 0-7 Fahrzeug "Regler" beendet eine Runde (Zieldurchfahrt) ohne neue Bestzeit
10 0-7 0-5 Tankstand für Fahrzeug "Regler"
10 15 0 Schalte die Tankanzeige beim DD ab. Wird wieder aktiviert sobald ein Tankwert übertragen wird.
10 15 4 Reset erstes übertragenes Progwort.
11 1 0-5 Frühstart durch Fahrzeug "Regler"
16 0-5 7 0 bis 5 Leds leuchten an der CU und Startampel
17 0-15 7 Höherwertiges Nibble (4 Bit) der Rundenzahl des Führenden. Wird nur gesendet, wenn kein Rundenzähler an der Lap Counter Buchse der CU angeschlossen ist. Das Update der Anzeige des Positions-Tower erfolgt erst mit dem Empfang des Niederwertigen Nibbles.
18 0-15 7 Niederwertiges Nibble (4 Bit) der Rundenzahl des Führenden. Wird nur gesendet, wenn kein Rundenzähler an der Lap Counter Buchse der CU angeschlossen ist.
19 0 7 Reset
20 1-4 7 Setzt Zieldurchfahrtmodus des Pitlaneadapters 1 = Aus, 2 = Zieldurchfahrt, 3 = Zwischenzeit 1, 4 = Zwischenzeit 2
20 15 7 Reset folgt auf 19/0/7 und löst Test ob Pitlaneadapter vorhanden ist aus

 

Kommunikation zur CU

Physikalische Ebene

Die CU ist in der Lage Daten von anderen Geräten über die Fahrbahnleiter zu empfangen. In jedem Zyklus gibt sie den Geräten dazu in 8 Zeitslots Gelegenheit. In den meisten Fällen entspricht die Slotnummer der Fahrzeugnummer des Fahrzeugs, das die Daten betreffen. Eine "uninspirierte" Entscheidung, denn dadurch kann eine Aufgrund der Daten ausgelöste Aktion erst einen ganzen Zyklus später das Auto beeinflussen.

Deshalb sind die Slots nicht nach ihrer zeitlichen Reihenfolge nummeriert, sondern orientieren sich an der Reihenfolge in der die Reglerdaten übertragen werden. Die Reihenfolge ist:

  • Slot 7 (Pacecar)
  • Slot 0
  • Slot 4
  • Slot 1
  • Slot 5
  • Slot 2
  • Slot 6 (Ghostcar)
  • Slot 3

Die 8 Slots liegen zwischen dem 2 und 3, 3 und 4 usw. Datenwort eines Zykluses. Die CU sendet 2,3 ms nach Beendigung des Datenwort eine 50 µs lange Lowphase.

CU3

Möchte ein Gerät in diesem Slot Daten senden, so zieht es sobald es die Lowphase erkannt hat den Fahrbahnleiter auf positives Potential. Dies erkennt die CU und erzeugt nun weitere 14 Lowphasen im Abstand (fallende Flanke zu fallende Flanke) von jeweils 250 µs.

CU4

Die kleinen Haken im Bild sind Übersprecher, haben keinen Einfluss und sollten einfach ignoriert werden.

Jede der insgesamt 15 Lowphasen steht für ein Bit. Zieht das Gerät das Signal "hoch" (wie bei den Bits 0, 1, 3, 8 und 14 der Fall), so liegt ein 1 Bit vor ansonsten ein 0 Bit. Die Bytes werden LSB übertragen. das erste Bit ist wie gesehen ein Startbit, dass der Sender setzt, damit die CU weiß, dass Daten bereit stehen und das letzte Bit muss der Sender setzen, damit die CU weiß, dass die Daten gültig sind.

Als Binärwert hätten wir im obigen Bild 100000100001011 also $410B vorliegen inkl. Start und Stopbit. Bei allen weiteren Diskussionen werde ich Start- und Stopbit jeweils im Datenwort einbeziehen.

Die Datenübertragung umfasst allerdings nur unter besonderen Umständen 15 Bit. Im Normalfall fehlen die Bits 6 bis 13.

CU5

Da der andere, der 15 Bit, Fall "natürlicher" aussieht habe ich ihn zuerst erwähnt. Da die fehlenden Bits alle auf positivem Potential liegen, bietet es sich an, sie als 1 zu interpretieren. In unserem Beispiel ergibt sich 111111111001011 oder $7FCB.

Der Pitlaneadapter reagiert nicht auf die negativen Impulse, sondern scheint nach einem eigenen internen Takt zu arbeiten. Dadurch sind bei 1 Bits, gar keine Impulse mehr zu sehen.

Semantische Ebene

Sensordurchfahrtswort

 

1 Stopbit
S7 S6 S5 S4 S3 S2 S1 S0 Die Sensordurchfahrt erfolgte soviele Millisekunden vor der Übertragung des Sensordurchfahrtwortes an die CU. Bei nur 6 Bit gültigen Daten werden alle Bits als einsen gelesen.
B Das Fahrzeug beginnt zu blinken. Das Blinken endet, wenn die CU es zurücksetzt oder ein Tanksensor überfahren wird. Während das Fahrzeug blinkt werden keine Runden gezählt.
Q Wir ein Adapter über die CU programmiert, so quittiert der Adapter dies mit einem Datenwort bei dem dieses Bit gesetzt ist. Bit ist sonst 0.
T Das Bit ist 1, wenn der durchfahrene Sensor (auch )ein Tanksensor ist
G1 G0

Sensor Gruppe für Zeitnahmen.

0 - keine Zeitnahme
1 - Zieldurchfahrt
2 - Zwischenzeit 1
3 - Zwischenzeit 2
1 Startbit

 

Kurve

Z0-Z7 ergeben hier den Wert 47.

Initialisierungswort

Nachdem der Pitstopadapter ein Progwort 20/15/7 empfangen hat antwortet er als Auto 0 mit

1 Stopbit

1 1 1 1 1 1 1 1

Immer 1
0 0 Immer 0

F
Wie F ?
F 1 falls 15 Bit Übertragung gewünscht Ist das Bit gesetzt, so erlaubt die CU alle Adapter auch für Zwischenzeitmessungen einzusetzen.
T 1 falls ein Tanksensor vorhanden ist
1 Startbit

 

Es gibt sicherlich noch weitere Befehle bzw. relevante Informationen, die ich nachtragen werde sobald sie mir bekannt werden.

Empfängt die CU eines oder mehrerer dieser Worte, so schickt sie im nächsten Zyklus statt des ersten Aktivdatenwortes ein Quittungsdatenwort, mit dem sie angibt in welchen Slots sie Daten empfangen hat.