Hallo Wilhelm und Interessierte,
das Thema inwieweit ein SX2-fähiges Steuergerät die D-Leitung bidirektional bedienen können muss/sollte, hat ganz offensichtlich doch noch einigen Diskussionsbedarf.
In meinen vorangegangenen Posts habe ich erläutert, dass diese Funktionalität für die Verwendung einer bereits verwendeten SX2-Buserweiterung (nennen wir es mal kürzer SX2-Kanal) immer dann erforderlich ist, wenn der geöffnete SX2-Kanal lediglich gesetzte Adresse-Bits aufweist. Alle Nutzdaten-Bits aber log. 0 sind. Exakt in dieser Konstellation steht die Info, für welchen Anwendungszweck der SX2-Kanal reserviert ist, nicht in den SX2-Präambel-Bits auf der T1-Leitung bereit und muss von der D-Leitung gelesen werden.
Ist einem SX2-Steuergerät der Verwendungszweck eines offenen SX2-Kanals nicht bekannt, so droht eine zusätzliche Belegung eines SX2-Kanals, wenn an einem weiteren SX2-Steuergerät die gleiche Adresse (exakter die gleichen Adress-Bits; SX2, DCC, MM kodieren diese ab 100 unterschiedlich in den SX2-Kanal) eingegeben wird, die auch schon in dem vorhanden SX2-Kanal zur Anwendung kommt.
Für den Fall, dass das zweite Gerät den gleichen Verwendungszweck (SX2, DCC kurz | lang, 28FS | 128 FS, MM, Prog., etc.) nutzen möchte, müsste es einfach den bereits vorhandenen SX2-Kanal bedienen. Für den Fall, dass zwar eine identische Adresse (s.o.) aber ein anderer Verwendungszweck vorgesehen ist (also Gerät 1 nutzt in einem SX2-Kanal bereits Adresse 17 und jetzt wird an Gerät 2 die Adresse 17 für eine DCC-Lok mit 28FS aufgerufen) müsste ein neuer bisher freier SX2-Kanal geöffnet werden. In diesem Fall droht Ungemach, falls ein SX2-Steuergerät nicht von der D-Leitung lesen kann. Nur dort liegt der Verwendungszweck eines SX2-Kanals im Gegensatz zur T1-Leitung
immer vor.
Wilhelm brachte nun einen weiteren Aspekt in die Diskussion, indem er darlegte, dass das SX2-Steuergerät auch alle weiteren Bits eines SX2-Kanals von der D-Leitung lesen können muss.
Digit-Electronic hat geschrieben: ↑16. Juni 2020, 13:01
Nicht allein um die 4Bit Präambel, sondern alle SX2-Erweiterung zwischen T1 und D lesen.
Dies sehe ich nicht so. Ich muss allerdings gestehen, dass es von Vorteil ist, wenn es auch weitere Bits von der D-Leitung lesen kann. Exakter gesagt die Bits, die die SX2-Adresse enthalten. Warum denn das?
Dazu muss ich etwas ausholen. Der SX2-Anteil im SX-Bus unterscheidet sich von dem des SX1-Anteils dadurch, dass hier nicht pauschal für alle potentiellen Verwendungszwecke (16 Stk.) und alle Adressen (10.000) entsprechend viele Slots bereitgestellt werden. Dies würde zu gigantischen Busumlaufzeiten führen. Bei SX1 gibt es keinen speziellen Verwendungszweck eines Slots und es stehen ja nur 112 (0..111) Adressen bereit. Hier kann man sich noch den Luxus gönnen für jede Adresse einen Slot (also 112 Stk.) am SX-Bus bereitzustellen und einfach stur kreisen zu lassen.
Mit den SX2-Slots ist die Sache deutlich komplexer. Pro SX-Bus (typisch 2 Stk.) stehen nur 16 Slots zur Verfügung. Gute Zentralen hängen dazu an den 16 SX1-Fames zunächst nur 6 Bits an, in den dann die 4 Präambel-Bits liegen. Zunächst ist ein SX2-Slot also verdammt kurz und kann gar keine Nutzbits aufnehmen. Grundsätzlich steht die SX2-Funktionalität aber schon bereit und wartet nur auf ihre zweckdienliche Verwendung.
Dazu verlängern diese Zentralen den SX2-Slot unmittelbar um weitere 60 Bits, wenn sie von einem SX2-Steuergerät Präambel-Bits für eine bestimmte Betriebsart (Verwendungszweck) empfangen. Das "weiß" und nutzt das Steuergerät und schreibt dort direkt die SX2/DCC/MM-Adresse rein, die es ansprechen/adressieren möchte.
Jetzt zu der Frage, warum sollte das Gerät die Adress-Bits den lesen können, es weiß doch was es reinschreibt? Zudem liefert die Zentrale die Adresse doch im nächsten Buszyklus auf der T1-Leitung an.
Um dies besser zu verstehen, nehmen wir mal an, 15 der verfügbaren 16 SX2-Slots an einem SX-Bus wären schon belegt und somit nur noch einer frei. Jetzt gehen mehre Personen (im Modellbahn Club) hin und rufen an ihren Steuergeräten weitere SX2/DCC/MM-Adressen auf. Man ahnt es schon. Es kommt zu einem Wettlauf um den einen noch freien SX2-Slot. Wer wird gewinnen? Was wird passieren? Systemabsturz? Reboot der Steuergeräte?
Ich hoffe doch nichts von alldem. Das potentielle Chaos muss abgefangen werden. Dazu benötigt man eine Zugriffsverwaltung für die SX2-Slots. Also eine Administration die regelt, welches Gerät darf zu welchem Zeitpunkt welchen SX2-Slot verwenden. Für die SX1-Anteile ist sowas natürlich
nicht erforderlich. Hier hat jede Adresse ja einen eigenen Slot und jedes Gerät darf lesend und/oder schreibend darauf zugreifen.
Wie könnte so eine Zugriffsverwaltung den aussehen? Nun eine Variante wäre, man checkt einfach ob bei dem SX2-Slot-Zugriff eine Kollision stattgefunden hat (ähnlich zu CSMA/CD bei Ethernet). In einer vorangegangenen Post habe ich bereits geschrieben, dass man dies z.B. daran erkennen kann, dass die Zentrale eine andere Adresse auf der T1-Leitung zurückgibt als jene, die die jeweiligen SX2-Steuergeräte dort eingetragen haben.
Eine elegantere Variante zu diesem Verfahren ist: Man prüft direkt, ob das jeweilige Bit was ein Gerät gerade geschrieben hat auf dem SX-Bus auch tatsächlich zur Wirkung kommt. Wie kann man das machen? Nun für eine log. 0 am SX-Bus zieht ein Gerät intern die D-Leitung auf nahezu 0V herunter und für eine log. 1 hebt es das Potential intern auf ~5V hoch und gibt diesen Pegel über einen 100 Ohm Widerstand dann aus.
Überwacht das Gerät nun hinter dem Ausgangswiderstand, also direkt auf der D-Leitung ob der Pegel dort auf high geht, dann wurde das Bit angenommen. Ist der Spannungspegel aber auf low, dann wurde die Leitung von einem anderen Gerät in diesem Moment auf low gezogen und das Bit somit überschrieben. Low (log. 0) ist also dominant gegenüber high (log. 1) {hatte ich in meinem vorangegangenen Post falschherum aufgeführt, habe es dort korrigiert].
Ein SX2-Steuergerät, welches die D-Leitung bidirektional nutzen kann, hat also den Vorteil, dass es unmittelbar nach der Ausgabe von jedem einzelnen Adressbit bereits erkennen kann, ob es bei der Reservierung eines SX2-Slots zu einer Kollision kam und kann damit seine weitere Datenausgabe direkt abbrechen. Dies hat nicht nur den Vorteil, dass eine derartige Kollision früher erkannt wird, sondern es gewährt einem anderen Gerät damit auch charmant den Vortritt. Dieses SX2-Busgerät kann damit mit der Belegung des in Konkurrenz stehenden SX2-Frames unbeeinflusst fortfahren. Dieses Verfahren ähnelt dem, welches auch z.B. beim CAN-Bus zum Einsatz kommt und als CSMA/CA bezeichnet wird.
Um es noch einmal deutlich zu sagen. Für bestimmte Situation ist es unabdingbar, dass ein SX2-Steuergerät von der D-Leitung lesen kann und für bestimmte andere Situation stellt es einen markanten Vorteil dar. Der WLAN-SX-Adapter von Stärz verfügt soweit erkennbar über keine Hardware, um von der D-Leitung lesen zu können.
Zu welchen Ungereimtheiten es dadurch bei der Belegung von SX2-Slots kommen kann, habe ich noch nicht untersucht, da ich derzeit nicht mit den SX2-Erweiterungen experimentiere
. Dem Thema werde ich mich aber bei nächster Gelegenheit noch zuwenden. Aktuell beschäftigen mich allerdings noch die anderen bereits kommunizierten Punkte bei diesem Gerät.
sx2user hat geschrieben:
Alle anderen, weiteren Daten, (aktivierte Adresse und Nutzdaten) werden unmittelbar nach der Belegung einer SX2-Erweiterung von einer SX2-Zentrale von der D-Leitung übernommen und dann auf der T1-Leitung ausgegeben.
Digit-Electronic hat geschrieben: ↑16. Juni 2020, 13:01
Nicht allein von der Zentrale, sondern vom Regler 1 und von der Zentrale.
Ein Regler (SX2-Steuergerät) schreibt auf die T1-Leitung!? Interessant. Verstehe ich nicht. Muss ich aber auch nicht. Welches SX2-Steuergerät hat denn die dazu erforderliche Hardware HR4000? Da muss ich doch mal nachsehen.
P.S.: Kleine Bitte an den Admin, falls er hier mitliest.
Wäre nett, wenn der Thread auf der Übersichtsseite nicht den Betreff „Gelöscht“ tragen würde.
Falls möglich und wenn keine schwerwiegenden Gründe dagegen sprechen sollte dieser zurück auf den Ursprungstitel „Stärz WLAN-SX Modul“ gesetzt werden. Danke.
Beste Grüße
Werner