Zeiten und Spannungen, nominal und real. Die angegebenen Werte wurden alle gemessen. D.h. nicht, dass die Werte bei allen Bahnen gleich sein müssen. Es kann kleine Abweichungen geben. Ein Abfrageintervall von 102ms ist möglicherweise nominal (sozusagen sollte eigentlich) ein 100 ms Signal sein. ![]() LSB und MSB Wir sind es gewohnt, dass die höchste Stelle bei einer Zahl links steht. Das entspricht der MSB Anordnung. Bei der LSB Anordnung sind die Bits genau anderherum angeordnet, also zuerst die niederwertigsten Bits. Das heisst MSB 101110 entspricht LSB 011101. |
Physikalische Ebene - Terminals Das SCX System ist genau wie die anderen digitalen Rennbahnsysteme ein zwei Leiter System. Die Schienen verfügen zwar über drei Leiter, aber der dritte Leiter führt "nur" versorgungsspannung und ist für das reine Digitalsystem nicht notwendig. Er erlaubt es allerdings weitere Geräte an die "Schienen" an zu schliessen ohne das die Treiber überfordert werden. 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 SCX Digital sind dies etwa 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 18V Leitung in einem bestimmten Rhytmus an und ausgeschalet, vergleichbar einem Morsecode. Das Ganze sieht etwa so aus: Man erkennt 9 Signalgruppen. Jede Signalgruppe bildet ein Datenwort. Ein Datenpaket besteht also aus 9 Datenworten. Der Abstand zwischen den Datenworten ist unterschiedlich, die Übertragung aller Datenworte benötigt etwa 1.57ms . Bei den Datenworten handelt es sich um serielle Datenwörter die im NRZ (Non return to zero) Verfahren, das auch bei der seriellen Schnittstelle des PCs verwendung findet, übertragen werden. Die Baudrate beträgt nominal 115200 Baud. D.h. die Bits wechseln alle 8,68µs. Bei der seriellen Schnittstelle des PCs ist die Datenleitung in der Ruhephase auf 1. Damit der Empfänger weiss, dass ein Datenwort beginnt, wird bei der asynchronen Datenübertragung am Anfang eines jeden Datenwortes ein Startbits gesendet. dies eine 0-Phase von der Dauer eines Bits. Bei SCX Digital sind es allerdings eineinhalb 0-Phasen gefolgt von einer halben 1 Phase. Also sind es eigentlich 2 Starbits. Diese Art von Doppelstartbit hat den Vorteil, dass man die Baudrate aus jedem beliebigen Datenbyte bestimmen kann und dass man das Startbit eindeutig identifizieren kann, denn es gibt sonst kein 0 Phasen von eineinhalb Bit Länge. Bei Eigenentwicklungen sollte man ebachten, dass gerade beim B(ogengassen)-Terminal das Startbit aus dem 115200 Baud Raster fallen kann, so dass es notwendig sein kann das Startbit nicht mit einem starren Zeitraster zu analysieren. Ich habe auch Messungen bei denen das Startbit aus eineinhalb 0 Phasen und fast einer ganzen 1 Phase besteht. Den Startbits folgen 8 Datenbits. Diese sollten alle gleich lang sein. Da aber die Treiber im Terminal nicht hundertprozentig symetrisch arbeiten, sind in der Praxis die 0-Phasen etwas länger als die 1-Phasen. Diese kleine Abweichung stellt allerdings kein Problem dar. Im Rahmen dieses Textes verwende ich Hexadezimalzeichen. Diese haben den Vorteil, dass sich ein Byte mit zwei Zeichen darstellen lässt und die Umwandlung von und zu einem Bitmuster sehr einfach ist. Die, die nicht mit Hexzahlen vertraut sind, verweise ich and Wikipedia oder einfach nach Hexadezimal googeln. Ich kennzeichne Hexzahlen mit einem vorgestellten $. Das erste Datenbit ist das LSB (least significant bit). Man muss die Bits also in umgekehrter Reihenfolge anordnen. Im obigen Beispiel ergibt sich binär 10101010 oder hexadezimal $AA oder dezimal 170 oder im folgenden Beispiel: 1110000 oder in Hex(adezimal) $F0 Nach den 8 Datenbit folgt ein Stopbit. Es dient dazu, sicher zu gehen, dass die Leitung eine 1 anzeigt bevor das nächste Startbit kommt. Wäre die Leitung nämlich 0, so würde man das nächste Startbit nicht erkennen. Ausserdem gibt es dem Empfänger die Möglichkeit das gerade gelesene Byte zu speichern oder zu verarbeiten bevor die nächsten Daten kommen. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Physikalische Ebene - Autos Bei einer Zieldurchfahrt oder bei der Einfahrt in die Boxengasse teilt das Auto dem Terminal seine Nummer mit. Das Auto überträgt ein Datenpaket aus 4 Bytes. Es handelt sich wieder um eine NRZ Übertragung, diesmal mit 57600 Baud. das Startbit besteht aus eineinhalb 0-Phasen und einer 1-Phase. |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Semantische Ebene: Datenpakete - Terminal Wie wir festgestellt haben, werden vom Terminal nur Datenpakete übertragen, die aus 9 Datenworten zu je 8 Bit bestehen. Jedes Datenpaket besteht also aus 9 Byte. Von den 9 Byte haben 3 Byte eine feste Funktion, während die anderen 6 Byte unterschiedliche Bedeutungen haben. Das erste Byte ist immer $55 und kennzeichnet den Beginn eines Datenpaketes. Das zweite Byte gibt immer die Art der Information, die übertragen wird, an. Die nachfolgenden sechs Bytes enthalten die eigentliche Information. Das letzte Byte gibt eine Prüfsumme an, an Hand derer man feststellen kann, ob die vorangegangen Bytes fehlerfrei übertragen wurden. Bei der Prüfsumme handelt es sich um eine Variante des Standard 8-Bit CRC allerdings mit anderen Startwerten. Für Controlleranwendungen bietet sich die Tabellen Version des Konvertierungsalgorithmuses an. Die Tabelle wird wie üblich erstellt und basiert auf dem Wert $31. Die Prüfsumme wird über alle Bytes eines Datenpakets gebildet (mit Ausnahme der Prüfsumme). Am Ende muss die Prüfsumme noch mit $BB geexored werden. Es gibt verschiedene Datenpakete, das wohl wichtigste ist das Reglerpaket: $55 $FF R0 R1 R2 R3 R4 R5 PS Das Datenpaket teilt den Autos mit mit welcher Geschwindigkeit sie fahren sollen und ob der Spurwechseltaster am Regler gedrückt ist oder nicht. Das Paket überträgt immer Informationen für 6 Autos unabhängig davon wieviele Regler angeschlossen sind.
Zuweisungspaket: $55 $CC RG $FE $FF $FF $FF $FF PS Dieses Datenpaket teilt dem Auto mit welche Fahrzeugnummer es erhalten soll.
Busfreigabepaket: $55 $AA ZÄ NN $F0 $F0 $F0 $F0 PS Diese Pakete zeigen den Autos an, dass das Terminal in Kürze aufhören wird die Leiter zu versorgen und dass das Auto, das das Ziel durchfahren hat, nun seine Kennung schicken kann. Wie der genaue Ablauf einer Zieldurchfahrt ist, wird an anderer Stelle beschrieben.
Zieldurchfahrtpaket: $55 $EE R0 R1 R2 R3 R4 R5 PS Diese Pakete identifizieren die Fahrzeuge, die gerade das Ziel durchfahren haben.
Platzierungspaket: $55 $D3 P0 P1 P2 P3 P4 P5 PS Diese Pakete enthalten die Fahrzeugnummern in der Reihenfolge ihrer gegenwärtigen Platzierung.
Rundenzeitpaket: $55 $D4 FN RU1 RU0 VS Z1 Z0 PS Dieses Paket enthält die aktuelle Anzahl Zieldurchfahrten und Rundenzeit des angegebenen Fahrzeugs. Es werden immer nur die Daten des/der Fahrzeug/e übertragen, die als letzte das Ziel durchfahren haben.
Dieses Datenpaket teilt den Geräten die Startrundenzahl und die Zählrichtung mit.
Qualifyingpaket: $55 $DB RU2 RU1 RU0 FZ $FF $FF PS
Resetpaket: $55 $D0 §FF ZÄ NN $AA $AA $AA PS Dieses Datenpaket teilt mit, dass die Starttaste gedrückt wurde und die Rundenzahl, Rundenzeiten und Platzierungen zurückgesetzt wurden.
Startpaket: $55 $DD $00 $AA $AA $AA $AA $AA PS Das Paket kennzeichnet den Rennbeginn.
Benzinstandpaket: $55 $D6 S0S1 S2S3 S4S5 $14 $50 $AA PS
Die Boxengasse erzeugt diese Pakete wenn man den rES wählt. Beim ersten Drücken der Select Taste wird kein Paket gesendet. Danach wiederholen sich die letzten beiden Pakete. Verlässt man den rES Modus beginnt die Sqeuenz beim nächsten Aufruf von vorne.
Das Paket erscheint nur in der Boxengasse.
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Semantische Ebene: Datenpakete - Auto Nicht nur die Terminals senden Daten auch die Autos sind dazu in der Lage. Allerdings verwenden sie eine andere Baudrate und die Datenpakete sind nur 4 Byte lang. Autopaket: $55 FZ XX PS
|