Jens Mohr

Ingenieur  +  Betriebswirt
 

... das (H0) Modellbahnprojekt
St. Margareten 

 



 

Home
 

 Projekt - Idee
 Projekt - Planung
 Projekt-Realisier.
       Anlagenaufbau
       Selectrix
          SX-Bus
            SX-Hardware
            SX-Protokoll
            SX-Procesor
          SX-Verkabelung
          SX-Komponent.
          SX-Dec-Pro-Lok
          SX-Dec-Pro-M 1
          SX-Dec-Pro-M 2
          SX-Dec-Pro-M 3
          Trafo - Booster
          SX - Funkerw.
          SX - Tools
          SX - Tips
       TrainController
       Zentrale<>PC
       PC-Konfig.
       Umrüstungen
       Tipps
       Ausgestaltung
       Elektr.Entw.
       3D Druck
       Paternoster
       Ansichten
 Anlagenbetrieb

 Support & Serv.
 Veröffentlichung.  Links
 Kontakt - Impres.
 Datenschutz


Copyright 2022
Jens Mohr
83224 Grassau
(Chiemsee/Achental)

 


Digital - System
-- SX Bus Protokoll (HW / SW) --


 

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)
 

 

 

 


 


HINWEISE     zu mit  *  markierten Worten

Alle Firmenbezeichnungen / Firmennamen; Produktbezeichnungen / Produktnamen stellen keine Werbung oder Empfehlung dar, sondern beschreiben nur die in diesem Projekt individuell und subjektiv ausgewählten Produkt - Hersteller bzw. Lieferanten als auch deren verwendeten Produkte zur Anschauung, Darstellung und Beschreibung des eigentlichen Projekt - Inhalts.

Analoges gilt auch für die eingetragenen Links (s. hierzu Distanzierung auf der Link-Seite).

Der Leser soll selbst auf dem Markt recherchieren und für seine Bedürfnisse selbst entscheiden, welches Produkt er einsetzen will und wo er sich dieses beschaffen möchte.

In dieser Veröffentlichung verwendete Produktnamen / Produktbezeichnungen sind von / durch den einzelnen Hersteller(n) geschützt. Ihre Nutzung dient lediglich zur Kennzeichnung / Beschreibung des Produktes selbst.
Analoges gilt für die erwähnten
Firmenbezeichnungen / Firmennamen.