Einstieg
Im Gegensatz zu anderen
Modellbahn Digital Systemen wurde bei der Ursprungsentwicklung
von Selectrix (SX) darauf geachtet, daß alle an einem Bus
angeschlossenen Teilnehmer (Decoder, Geräte) in schneller, zeitlicher
Folge immer wieder "ihre" Informationen erhalten.
Dadurch ist sichergestellt, daß der angeschlossene Teilnehmer
auch bei einer Störung oder längeren internen Datenverarbeitung
schnell wieder aktuelle Informationen über den Bus austauschen
kann.
Das SX System ist lastunabhängig ausgelegt.
Aus dieser Philosophie heraus kam es zu einer Begrenzung der
max. Anzahl von Busteilnehmern bzw. von Busadressen.
Die seinerzeit definierte Adressanzahl war
für eine Modellbahn vollständig ausreichend. Die Zeiten und
damit die Anforderungen haben sich geändert. Heute benötigen die
Modellbahner wesentlich mehr Adressen um alle angebotenen
Funktionen bedienen zu können.
Dies gilt insbesondere im Bereich des rollenden Materials.
Die am Markt befindlichen Selectrix - Hauptakteure haben das
erkannt, konnten sich allerdings leider nicht auf eine
gemeinsame Erweiterung des SX Protokolls einigen.
Das alte Protokoll wird SX1 genannt und das erweiterte SX2, mit
unterschiedlichen Ausprägungen.
Praktisch wird das SX2 Protokoll nur im Gleissignal verwendet.
Bei allen anderen Decodern wird das SX1 Protokoll
eingesetzt.
In diesem Bereich kann durch Einsatz von weiteren Zentralen / SX
Bussen die Adressanzahl indirekt erhöht werden.
Ich betrachte hier nur das SX1 Protokoll
für den SX Bus, also für alle Decoder die NICHT über das Gleis
angesteuert werden.
Anmerkung:
Im folgenden Text habe ich Bilder aus dem Internet bzw.
HomePages verschiedener Unternehmen und privaten Personen
entnommen, um diesen Beitrag auch graphisch unterlegen zu
können.
Ich danke allen Autoren für die Bereitstellung dieser
Informationen.
Aufbau des SX
Protokolls
-- leider werden von den Autoren bei der Beschreibung des
Protokolls nicht einheitlich und durchgängig die gleichen
Begriffe verwendet. Ich bemühe mich hier die verschiedenen
Begriffe jeweils durch Hinzufügen in einer Klammer)
darzustellen. Ich erhebe keinen Anspruch auf Vollständigkeit --
-- das nachfolgende gilt auch für
das Gleissignal --
Bei der Entwicklung des SX Systems wurde
ein Kompromiß gesucht, bestehend aus der Zykluszeit
(Wiederholzeit) zum Senden aller Bits und der max. Anzahl aller
Bits.
Jedem angeschlossenen Gerät wurden 8 Bits (= 1 Byte) an
"Nutzdaten" zugeordnet.
Theoretisch kann man alle Bits in Folge senden.
Damit aber ein Gerät beim seriellen Empfang der einzelnen Bits
erkennen kann, welche 8 Bits zusammen ein Byte bilden und für
dieses Gerät bestimmt ist, müssen zusätzliche, eindeutige
Informationen in den Datenfluß eingebaut werden.
Bei SX definierte man ein SYNC
(Synchronisation) Byte.
Die SYNC Information wurde als Bitfolge 000
festgelegt.
Damit ansonsten im Datenstrom diese Folge nie auftreten kann,
wird nach jeweils 2 Bit (Nutzinformation) 1 Bit (Trennungsbit)
mit dem Zustand 1 (high) eingefügt.

Durch die SYNC Bitfolge werden die Nutzinformation (
Byte + Trennbits) pro Gerät von einander getrennt.
Damit ein Gerät seine Nutzinformation herausfinden kann, haben
die SX Entwickler der SYNC Information noch eine
Adressinformation hinzugefügt.
Das SYNC Byte besteht also aus der SYNC Information +
Adreß-Information.

Zur Reduzierung der gesamten zu
übertragenen Bit - Anzahl überlegte man sich folgende indirekte
Adressierung.
Beispiel:
Die dezimal Zahl 70 entspricht binär 1000110.
Ein Gerät so adressieren zu wollen würde zu viele Bits benötigen
und damit die Wiederholraten stark reduzieren.
Lösungsansatz:
Zuerst faßte man logisch 7 Geräte und
damit 7 Nutzinformationen zu einem Paket (Block) zusammen.
Diesem Block stellte man ein SYNC Byte voran, damit ergab sich
ein logisches "Paket - Byte".
Man adressiert das einzelne Paket indem man die Pakete binär
numeriert von 0000 .... 1111. Das entspricht der Anzahl von
Bits, die im SYNC Byte für die Adresse zur Verfügung stehen.
Mit diesem "Trick" kann man 16 Pakete (Blöcke) a 7
Geräte (= Adressen) adressieren, was insgesamt 112 Adressen
entspricht.
Die Adresse des Pakets (Blocks) wurde BasisAdresse genannt.
Achtung !!
Die BasisAdresse, gleich Nummer des Pakets, wird in binärer
Schreibweise INVERTIERT in die Bits der BasisAdresse
geschrieben.
Beispiel: die Zahl 11 > binär 1011 wird als 0100 eingetragen.
(Ich weiß nicht warum)
Alle 16 Pakete werden logisch in einem
Rahmen zusammengefaßt.
BasisAdresse plus nachfolgender Platz der Nutzinformation
bestimmt das jeweilige nachfolgende Gerät.
Die jeweilige Nutzinformation besteht aus
8 Datenbits und 4 Trennbits == 12 Bits.
Die Anzahl der Bits pro Paket (Block) beträgt 8 x 12 =
96 Bits
Von den Geräten muß
demnach das SYNC erkannt werden, dann die Basisadresse und wenn
diese "übereinstimmt" müssen die Bits in dem Paket gezählt
werden.
Bei einer Taktfrequenz von 50 µs pro Bit
ergibt sich für ein Paket (Block) eine Übertragungszeit von 4,8
ms.
Die Übertragung eines Rahmens, 16 Pakete (Blöcke), dauert
demnach 16 * 4,8 ms = 76,8 ms.
In einer Sekunde wird dann jedes Paket (Block) 13 mal gesendet
und damit auch jede Adresse (Nutzinformation) mit dieser
Wiederholrate übertragen.
-- Als das SX System
entwickelt wurde erschienen 112 Adressen als vollkommen
ausreichend. Heute ist bekannt, daß dieser Adressraum nicht mehr
ausreichend ist, insbesondere beim rollenden Material. --

Umwandlung einer
dezimalen Adresse in BasisAdresse und Geräte-Position im Paket
Gegeben (Beispiel): Adresse
(dezimal) 68
Position der Nutzdaten oder
Geräteinformation an Position : allgemein : Ganzzahl von
Adresse / 16 + 1
Beispiel:
68 / 16 = 4,25 >> es wird nur die ganze Zahl 4 genommen
>> dieses Ergebnis ist um 1 zu erhöhen >> Geräteposition 5
im Paket
(von 00 aus nach links gesehen; Zählung mit 1 beginnen).
-- siehe Bild unten --
BasisAdresse (BA) : allgemein : Adresse
- (Ganzzahl von Adresse / 16)*16
Beispiel:
68 - 4*16 = 4 >> BA = 4
Da der Datenfluß nach SYNC aber mit den Daten 6 (7 tes Gerät)
weiter geht, muß bei der Ermittlung der Bitanzahl die
Betrachtung von links erfolgen.
-- siehe Bild oben --
Adresse 68 ist demnach indirekt : Ba 04
und die 3te Geräteinformation - Position im Datenfluß; d.h. nach dem SYNC
Byte folgen 2 x 12 Bit von anderen Geräten und diese
Geräteinformation beginnt mit Bit 25 nach dem SYNC Byte.
Betrachtet man die Bitzählung von Beginn an, dann gilt
allgemein:
12 (SYNC Byte) + ( 7 - Ganzzahl von Adresse / 16
+ 1)
* 12 + 1
für das Beispiel:
12 + (7 - 5)*12 + 1 = 37 >> Bit 37 von Beginn an (Zählung
mit 1 beginnen)

Aufteilung des
Adreßraums bei SX1
Die aufgezeigten 112 Adressen pro SX Bus
stehen heute nicht in der Gesamtheit zur Adressierung von
Geräten, auch Decodern genannt, zur Verfügung.
In einigen Beschreibungen wird anstelle
von Adressen auch von Kanälen gesprochen (eine Adresse == ein
Kanal) !!
Die Adressen (dezimal) von 1 .. 103 stehen
für die Anschaltung von Geräten / Decodern zur Verfügung.
Hierbei ist zu beachten, daß heutige Decoder oftmals mehr als
eine Adresse belegen ( 1 physisches Gerät / Decoder = n
Adressen). Das obige Prinzip bleibt unverändert gültig.
Die Adressen 104 .. 112 werden von den
verschiedenen Herstellern von SX Zentralen unterschiedlich
genutzt.
Einen Graubereich gibt es auch im Adreßbereich 100 .. 103.
Ihre Bedeutung hat sich auch mit Einführung von SX2 geändert.
Der Nutzer liegt auf der sicheren Seite,
wenn er die Adressen nur bis zur Adresse 99 ausnutzt.
Timing des SX Busses
(Lesen + Schreiben von Bits)
