RS-Rückmeldebus: Unterschied zwischen den Versionen
(→Meldungen (Beispiele)) |
(→Meldungen (Beispiele)) |
||
Zeile 102: | Zeile 102: | ||
St, Pe, 1, 0, N, D3, D2, D1, D0 | St, Pe, 1, 0, N, D3, D2, D1, D0 | ||
− | + | :St - Startbit (Low) | |
− | + | :Pe - Parität (even) | |
− | + | :1 - fest High | |
− | + | :0 - fest Low | |
− | + | :N - Nibble (0 für unteres, 1 für oberes Nibble) | |
− | + | :D3 - für E4 bzw E8 | |
− | + | :D2 - für E3 bzw E7 | |
− | + | :D1 - für E2 bzw E6 | |
− | + | :D0 - für E1 bzw E5 | |
, wobei Eingang geschlossen(low) einer 1 entspricht | , wobei Eingang geschlossen(low) einer 1 entspricht | ||
Zeile 117: | Zeile 117: | ||
Einige Beispiele: | Einige Beispiele: | ||
− | + | {| border=1 | |
− | Nr. St Pe 1 0 N D3 D2 D1 D0 Bedeutung | + | | Nr. |
− | 1 0 0 1 0 0 0 0 0 0 E1...E4 passiv | + | | St |
− | 2 0 1 1 0 0 0 0 0 1 E1 aktiv, E2..E4 pass. | + | | Pe |
− | 3 0 1 1 0 0 0 0 1 0 E2 akt., E1, E3, E4 pass. | + | | 1 |
+ | | 0 | ||
+ | | N | ||
+ | | D3 | ||
+ | | D2 | ||
+ | | D1 | ||
+ | | D0 | ||
+ | | Bedeutung | ||
+ | |- | ||
+ | 1 | ||
+ | 0 | ||
+ | 0 | ||
+ | 1 | ||
+ | 0 | ||
+ | 0 | ||
+ | 0 | ||
+ | 0 | ||
+ | 0 | ||
+ | 0 | ||
+ | E1...E4 passiv | ||
+ | |- | ||
+ | 2 | ||
+ | 0 | ||
+ | 1 | ||
+ | 1 | ||
+ | 0 | ||
+ | 0 | ||
+ | 0 | ||
+ | 0 | ||
+ | 0 | ||
+ | 1 | ||
+ | E1 aktiv, E2..E4 pass. | ||
+ | |- | ||
+ | 3 | ||
+ | 0 | ||
+ | 1 | ||
+ | 1 | ||
+ | 0 | ||
+ | 0 | ||
+ | 0 | ||
+ | 0 | ||
+ | 1 | ||
+ | 0 | ||
+ | E2 akt., E1, E3, E4 pass. | ||
4 0 0 1 0 0 0 1 0 1 E1, E3 akt., E2, E4 pass. | 4 0 0 1 0 0 0 1 0 1 E1, E3 akt., E2, E4 pass. | ||
− | 5 0 0 1 0 1 0 0 0 1 E5 akt., E6…E8 pass. | + | |- |
+ | 5 | ||
+ | 0 | ||
+ | 0 | ||
+ | 1 | ||
+ | 0 | ||
+ | 1 | ||
+ | 0 | ||
+ | 0 | ||
+ | 0 | ||
+ | 1 | ||
+ | E5 akt., E6…E8 pass. | ||
+ | |- | ||
6 0 0 1 0 1 1 0 0 0 E8 akt., E4..E7 pass. | 6 0 0 1 0 1 1 0 0 0 E8 akt., E4..E7 pass. | ||
− | 7 0 1 1 0 1 0 0 0 0 E8 wieder passiv | + | |- |
− | 8.1 0 1 1 0 0 0 0 0 1 2 Meldungen: E1 und ... | + | 7 |
− | 8.2 0 0 1 0 0 0 0 1 0 ... E6 aktiv, Rest passiv | + | 0 |
+ | 1 | ||
+ | 1 | ||
+ | 0 | ||
+ | 1 | ||
+ | 0 | ||
+ | 0 | ||
+ | 0 | ||
+ | 0 | ||
+ | E8 wieder passiv | ||
+ | |- | ||
+ | 8.1 | ||
+ | 0 | ||
+ | 1 | ||
+ | 1 | ||
+ | 0 | ||
+ | 0 | ||
+ | 0 | ||
+ | 0 | ||
+ | 0 | ||
+ | 1 | ||
+ | 2 | ||
+ | Meldungen: E1 und ... | ||
+ | |- | ||
+ | 8.2 | ||
+ | 0 | ||
+ | 0 | ||
+ | 1 | ||
+ | 0 | ||
+ | 0 | ||
+ | 0 | ||
+ | 0 | ||
+ | 1 | ||
+ | 0 | ||
+ | ... E6 aktiv, Rest passiv | ||
+ | } | ||
Version vom 11. Februar 2007, 11:29 Uhr
Die nachfolgende Dokumentation wurde ausschließlich aus Messungen und Schaltungs-analysen gewonnen. Sie kann Fehler enthalten und erhebt keinen Anspruch auf Vollständigkeit.
Sie ist als Hilfsmittel zum Verständnis des RS-Busses und für eigene Versuche zur Nutzung zu verstehen. Korrekturen, Ergänzungen oder Fehlerhinweise sind ausdrücklich erwünscht.
Inhaltsverzeichnis
Allgemeines
Für Weichen-Signal- oder andere Rückmeldungen gibt es verschiedene Buslösungen zur Kabeleinsparung. Bekannt ist der S88-Rückmeldebus oder Loconet, Selectrix und RS-Bus. Der RS-Rückmeldebus ist eine proprietäre Lösung der Firma Lenz für ihre zentralen LZ100/LZV100. Während die anderen Busse recht gut dokumentiert sind, ist der RS-Bus leider quasi unbeschrieben. Anfragen ergaben keine wesentlichen Informationen. Da die Vorteile z.B. gegenüber dem S88-Bus deutlich sind, wird hier versucht, die wesentlichen Eigenschaften zu beschreiben. Nicht Gegenstand der Betrachtung ist die eigentliche Besetzt-/Rückmeldung sowie die interne Schaltung und Programmierung der Bausteine. Der im Ergebnis der Messungen konzipierte Baustein eines Rückmelders/Gleisbesetztmelders wurde praktisch aufgebaut und steht ggf. zur Verfügung.
Prinzip
Der RS-Bus ist ein reiner Meldebus, der im Mono-Masterbetrieb arbeitet. Die LZ100 bzw. gleichartige Zentralen arbeiten dabei als Master. Nachrichten der RM erfolgen nur bei Änderungen, es wird jeweils der neue Zustand gemeldet.
Die Zentrale sendet130 Pulse, jeder Rückmeldebaustein (RM) hört das Telegramm mit. . Es ergibt sich eine Pulsfolge mit 130 Pulsen, mit ca. 109ms High und ca. 93ms Low sowie einer Pulspause von ca. 7ms. (s.a. Skizze 1) Falls eine aktuelle Nachricht in einem RM bereit liegt, legt er diese nach dem Impuls, der seiner Adresse entspricht auf den Bus. Die Zentrale wartet bis zum Ende der Nachricht mit dem nächsten Impuls. Jede Antwort eines Bausteins kann nur 4 Bit (1 Nibble) umfassen. Enthält die aktuelle Nachricht Bits aus beiden Nibbles, muss der Baustein mit zwei Nachrichten in 2 Zyklen antworten. (entspricht 2 Nibbles) Bausteine unterschiedlicher Adresse können während eines Zyklus ihre Nachricht senden. Eigentlich sind es immer 2*4-RM, die eine gemeinsame Adresse benutzen und nicht gleichzeitig senden können.
physikalische Realisierung
Alle der geprüften Bausteine, das sind
- LR101 Fa. Lenz
- RS8 Fa. Littfinski
- GBM16 Fa. Blücher
- LS100 Fa. Lenz (Decoder mit RM)
arbeiten mit der Zentrale LZ100/LZV100 der Fa. Lenz zusammen, die den RS-Bus definiert hat. Die eigentliche Busankopplung ist bei diesen Firmen i.w. gleich gelöst und vom LR101 inspiriert. Kleinigkeiten, wie ein anderer Optokoppler (OK) oder die Verwendung einer stromregulierenden Diode anstelle einer Konstantstromquelle mit LM334 sind unwesentlich.
Die LZ100 enthält die Taktsende- und Auswertschaltung für den RS-Bus. Am Anschluss R wird P12 bereitgestellt. Anschluss S führt über einen Transistor und Widerstände an Ground. (Skizze 1). Parallel dazu liegt ein Schalttransistor T1 direkt gegen Ground, der die 130 Sendepulse schaltet.
Jeder RM-Baustein enthält eine Stromquelle für ca. 3mA in Reihe mit einer Z-Diode 5,1 (5,6) V zum Empfang der Pulse sowie parallel dazu eine schaltbare Stromquelle ca. 18 mA für die Antwort. Aufgrund des Taktverhältnisses von ca. 50% ergibt sich ein Ruhestrom von etwa 1,6mA/RM
Alle RM-Bausteine liegen parallel an R und S. Bei ON des Taktsenders wird S auf Ground gezogen, es fließen dabei ca. 3mA/RM. Bei gesperrtem T1(Puls) fließen nur noch ca. ___mA über T2 und den Spannungsteiler R1, R2. R5, R6 und T2 realisieren dabei einen Schalter, der erst bei Spannungen über 6V an S einen nennenswerten Strom fließen lässt. Die Spannung über R2 reicht dabei nicht zum Durchsteuern von T3, der das Empfangssignal für den Rückmelde-prozessor erzeugt.
Wenn ein RM eine Nachricht sendet, taktet er die 18mA-Stromquelle, die ohne Reihen-Z-Diode arbeitet. Dieser Strom erzeugt bei aktiviertem T2 an R2 einen Spannungsabfall, der T3 durchsteuert und somit einen Low-Puls für den Rückmeldeprozessor generiert. Während der Antwortzeit wird kein neuer Sendeimpuls durch die Zentrale erzeugt. Erst nach Ende der 9-Bit-Antwort wird der nächste Taktimpuls gesendet.
Durch die bei allen RM realisierte Schaltung mit Optokopplern ist eine galvanische Trennung der RM untereinander und von der Zentrale gesichert.
Dies darf durch eine gemeinsame Stromversorgung nicht aufgehoben werden. Da die ver-schiedenen Typen von RM unterschiedliche Bezugspotentiale erzeugen, die LZ wieder ein anderes, können Bausteine zerstört werden.
Startverhalten/ Anmeldung
Die LZ100 gibt nach dem Einschalten einen Puls ca. 88ms mit nachfolgender Pause ca. 562ms aus. Gleiches gilt nach Störungen. In dieser Zeit können die RM ihre Einstellungen zurücksetzen und sich nach Beginn der normalen Pulstelegramme anmelden.
Die getesteten Bausteine
- der LR101 (Lenz)
- der RS8 (Littfinski)
- der GBM16 (Blücher
- der LS100 (Lenz, Weichendecoder mit Rückmeldung)
senden Ihre Anmeldung sofort nach dem Start. Die Anmeldung eines RM ist jedoch auch später zu beliebigen Zeiten möglich.
Ein Baustein meldet sich an, indem er in 2 aufeinanderfolgenden Pulstelegrammen ein gültiges unteres und oberes Nibble sendet. Ein Senden der Nibbles in nicht aufeinanderfolgenden Zyklen oder z.B. 2 untere oder obere Nibbles führen nicht zur Anmeldung. Eine Abmeldung gibt es nicht. Jede Nachricht, die zum Zeitpunkt eines angemeldeten RM’s eintrifft, wird dessen Adresse zugeordnet. Sendet ein nicht angemeldeter RM eine Nachricht, wird die Pulsfolge der LZ100 nicht gestoppt, wie sonst bei angemeldeten RM.
Codierung/Protokoll
Die Nachricht eines Rückmelders wird mit 4800bit/s gesendet. Sie besteht aus 8 Bit Nutzdaten:
- Start
- Parität (even)
- fest 1
- fest 0
- unteres Nibble(0) oder oberes Nibble(1)
- D3, D2, D1, D0
- Stop ( RM wieder passiv)
Hierbei steht D3...D0 für Eingang E1...E4 bzw E5...E8. Eine 1 entspricht Kontakt geschlossen, also eigentlich Pegel Low! Es ist hier nicht nachzuvollziehen, warum eine so exotische Codierung gewählt wurde, die Codes 10 in Bit 6,5 sind in keiner Weise mit irgendwelchen Informationen, wie z.B. Folgenachricht, Startmeldung o.ä. zu belegen, sie sind bei allen Messungen fest auf P, 1, 0, .... gewesen. Es ist nur zu vermuten, dass es aus historischen Gründen so ist, da uralte mC keine (7 bit + Parität)- Telegramme ausgeben konnten. Außerdem sind die Ansprüche an die Genauigkeit der Taktfrequenz bei kurzen asynchronen Bitfolgen geringer. Im Ergebnis heißt es also, dass letztlich nur 4 Bit je Nachricht ausgegeben werden können. Eine Meldung über dieses Nibble sagt absolut nichts über das andere Nibble aus, dessen Nachricht erfolgt völlig unabhängig, jedoch immer in einem anderen Zyklus. Diese sind dann folgendermaßen codiert:
P, 1; 0, Nibble, D3, D2, D1, D0
P wird zuerst gesendet, D0 zuletzt, im Unterschied zu üblichen UART’s. Innerhalb eines Nibbles ist es also möglich, Mehrfachinfos zu senden, z.B. Eingang 1 und 3 aktiv (.. 0), das ergibt 001000101, nicht jedoch Informationen zu verschiedenen Nibbles. Diese müssen als 2 Nachrichten auf 2 Zyklen verteilt werden.
Im Ergebnis heißt es also:
- verschiedene Melder können in einem Zyklus empfangen werden
- unteres/oberes Nibble eines Melders benötigen 2 Zyklen
Leider entfällt somit die Möglichkeit, kleine, verteilt angeordnete 4er RM-Bausteine zu realisieren, wenn man den Adressraum lückenlos belegen will. Diese müssten sich immer mit dem RM, der das andere Nibble gleicher Adresse überwacht, synchronisieren. Nur bei Verzicht auf je 4 Eingänge wäre ein 4er Aufbau denkbar, aber nicht besonders sinnvoll, da der Unterschied zum 8er-RM nur noch in einigen passiven Bauteilen liegt, die wenige Cents kosten.
Die Grafik zeigt oben die Pulsfolge RS-Bus ohne Antwort (130 Pulse 202µs + Pause 7ms), unten die Pusfolge (Ausschnitt) mit Antwort des RM.
Meldungen (Beispiele)
Meldungen sind wie folgt codiert:
St, Pe, 1, 0, N, D3, D2, D1, D0
- St - Startbit (Low)
- Pe - Parität (even)
- 1 - fest High
- 0 - fest Low
- N - Nibble (0 für unteres, 1 für oberes Nibble)
- D3 - für E4 bzw E8
- D2 - für E3 bzw E7
- D1 - für E2 bzw E6
- D0 - für E1 bzw E5
, wobei Eingang geschlossen(low) einer 1 entspricht Eine Meldung beschreibt ausschließlich ein Nibble, bei gleichzeitigen Änderungen in beiden Nibbles werden zwei Meldungen generiert.
Einige Beispiele:
Nr. | St | Pe | 1 | 0 | N | D3 | D2 | D1 | D0 | Bedeutung |