RS-Rückmeldebus: Unterschied zwischen den Versionen

aus DerMoba, der Wissensdatenbank für Modellbahner
Wechseln zu: Navigation, Suche
(neu)
K (Prinzip)
 
(24 dazwischenliegende Versionen von 4 Benutzern werden nicht angezeigt)
Zeile 1: Zeile 1:
 +
'''Die nachfolgende Dokumentation wurde ausschließlich aus Messungen und Schaltungsanalysen gewonnen. Sie kann Fehler enthalten und erhebt keinen Anspruch auf Vollständigkeit.'''
  
 +
Sie ist als Hilfsmittel zum Verständnis des RS-Busses bei der Fehlersuche zu verstehen. Korrekturen, Ergänzungen oder Fehlerhinweise sind ausdrücklich erwünscht.
  
 +
  
'''Die nachfolgende Dokumentation wurde ausschließlich aus Messungen und Schaltungs-analysen gewonnen. Sie kann Fehler enthalten und erhebt keinen Anspruch auf Vollständigkeit.'''
+
==Allgemeines==
  
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.  
+
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. Hier wird versucht, die wesentlichen Eigenschaften zu beschreiben.
  
+
Vorteile gegenüber dem S88-Bus liegen in der Übertragung von Information durch Stromfluß und nicht durch Spannungspegel wie bei S88. Dadurch ergibt sich eine deutlich geringere Einkopplungswahrscheinlichkeit. Zudem sind die Daten (im Gegensatz zu S88) mit einer Parity geschützt.
  
==Allgemeines==
+
Nicht Gegenstand der Betrachtung ist die eigentliche Besetzt-/Rückmeldung sowie die interne Schaltung und Programmierung der Bausteine.
 
+
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.
 
Der im Ergebnis der Messungen konzipierte Baustein eines Rückmelders/Gleisbesetztmelders wurde praktisch aufgebaut und steht ggf. zur Verfügung.
 
  
 
==Prinzip==
 
==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.
+
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 nach dem Start und 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.
+
  
 +
Die Zentrale sendet 130 Pulse, jeder Rückmeldebaustein (RM) hört das Telegramm mit. Es ergibt sich eine Pulsfolge mit 130 Pulsen, mit ca. 109us High und ca. 93us Low sowie einer Pulspause von ca. 7ms. (s.a. Bild 3) 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 umfasst 4 Bit (1 Nibble). Hat ein Rückmelder an seinen Eingänge Änderungen aus beiden Nibbles, so werden diese  Nachrichten in 2 Zyklen übermittelt. Bausteine mit unterschiedlicher Adresse können während eines Zyklus ihre Nachricht senden. Eigentlich sind es also es immer zwei Vierfach-RM, die eine gemeinsame Adresse benutzen und nicht gleichzeitig senden können.
  
 
==physikalische Realisierung==
 
==physikalische Realisierung==
  
 
Alle der geprüften Bausteine, das sind
 
Alle der geprüften Bausteine, das sind
LR101 Fa. Lenz
+
*LR101 Fa. Lenz
RS8 Fa. Littfinski
+
*RS8 Fa. Littfinski
GBM16 Fa. Blücher
+
*GBM16 Fa. Blücher
LS100 Fa. Lenz (Decoder mit RM)
+
*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.
+
arbeiten mit der Zentrale LZ100/LZV100 der Fa. Lenz zusammen, die den RS-Bus definiert hat.
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.
+
[[Bild:RS-Bus-RM.png|thumb|Bild 1: Prinzip Rückmelder]]
 +
Die Teilnehmerschaltung bzw. 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. Es gibt zwei Stromquellen, eine mit 3mA und eine mit ca. 20mA. Die 3mA Stromquelle wird zum Empfangen verwendet, die 20mA Stromquelle ist schaltbar und wird zum Senden verwendet. In Reihe zur 3mA Stromquelle liegt noch eine Z-Diode 5,6V. Aufgrund des Taktverhältnisses von ca. 50% ergibt sich ein Ruhestrom von etwa 1,6mA/RM.
  
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.
 
  
Skizze1
+
[[Bild:RS-Bus-Z.png|thumb|Bild 2: Prinzip Zentrale]]
+
Die Zentrale enthält die Taktsende- und Auswertschaltung für den RS-Bus.
 +
Am Anschluss R wird +12V bereitgestellt. Der Anschluss S führt über einen Transistor T2 und Widerstände an Ground. Parallel dazu liegt ein Schalttransistor T1 direkt gegen Ground, der die 130 Sendepulse schaltet.
  
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.
+
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 über T1. Wenn T1 abgeschaltet ist, dann muß der Strom über T2 und den Spannungsteiler R1, R2 fließen. T2 (in Basisschaltung) realisiert dabei zusammen mit R5, R6  einen Schwellwertschalter, der erst bei Spannungen über 6V an S einen nennenswerten Strom fließen lässt. Diese Spannung wird aber von der 3mA-Stromquelle wegen der nachgeschalteten
 +
Zenerdiode nicht erreicht. Daher reicht die Spannung über R2 nicht zum Durchsteuern von T3, welcher das Empfangssignal für den Prozessor in der Zentrale 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 verschiedenen Typen von RM unterschiedliche Bezugspotentiale erzeugen, die LZ wieder ein anderes, können Bausteine zerstört werden.
  
 
==Startverhalten/ Anmeldung==
 
==Startverhalten/ Anmeldung==
Zeile 55: Zeile 55:
  
 
Die getesteten Bausteine         
 
Die getesteten Bausteine         
· der LR101 (Lenz)  
+
*der LR101 (Lenz)  
· der RS8 (Littfinski)  
+
*der RS8 (Littfinski)  
· der GBM16 (Blücher
+
*der GBM16 (Blücher
· der LS100 (Lenz, Weichendecoder mit Rückmeldung)
+
 
senden Ihre Anmeldung sofort nach dem Start.
 
senden Ihre Anmeldung sofort nach dem Start.
 
Die Anmeldung eines RM ist jedoch auch später zu beliebigen Zeiten möglich.
 
Die Anmeldung eines RM ist jedoch auch später zu beliebigen Zeiten möglich.
Zeile 65: Zeile 65:
 
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.
 
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.
 
Sendet ein nicht angemeldeter RM eine Nachricht, wird die Pulsfolge der LZ100 nicht gestoppt, wie sonst bei angemeldeten RM.
 
  
 
==Codierung/Protokoll==
 
==Codierung/Protokoll==
  
 
Die Nachricht eines Rückmelders wird mit 4800bit/s gesendet. Sie besteht aus 8 Bit  Nutzdaten:
 
Die Nachricht eines Rückmelders wird mit 4800bit/s gesendet. Sie besteht aus 8 Bit  Nutzdaten:
- Start
+
* Startbit (0)
- Parität (even)
+
* Parität (even)
- fest 1
+
* 2 TT-Bits (bei Rückmelder: 10) 
- fest 0
+
* Nibblebit (0 = unteres Nibble, 1=oberes Nibble)
- unteres Nibble(0) oder oberes Nibble(1)
+
* 4 Datenbits D3, D2, D1, D0   
- D3, D2, D1, D0   
+
* Stopzustand (RM wieder passiv)
- 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!
 
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.
+
Bit 5 und 6 sind die TT-Bits. Sie enthalten die Kennung des Rückmelders. Sie stehen in einem anderen Zusammenhang in der Lenz-Dok.:
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.
+
* 00  - Schaltempfänger ohne Rückmeldung
 +
* 01  - Schaltempfänger mit Rückmeldung
 +
* 10  - Rückmelder 
 +
* 11  - reserviert für zukünftige Anwendungen
 +
 +
Es ist hier nicht nachzuvollziehen, warum eine so exotische Codierung gewählt wurde. Die TT- Bits stellen keine relevante Information dar.
 +
Es ist nur zu vermuten, dass es aus historischen Gründen (Nibble-Infos) so ist, da uralte mC keine (8 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.
 
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.
 
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:
+
Diese sind dann folgendermaßen codiert(bei RM!):
  
P, 1; 0, Nibble, D3, D2, D1, D0
+
P, 1(T), 0(T), 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.
 
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.
 +
 +
[[Bild:RSBusPulsfolge.gif|thumb|Bild 3: RS-BUS: Pulsfolge]]
  
 
Im Ergebnis heißt es also:
 
Im Ergebnis heißt es also:
- verschiedene Melder können in einem Zyklus empfangen werden
+
*verschiedene Melder können in einem Zyklus empfangen werden
- unteres/oberes Nibble eines Melders benötigen 2 Zyklen
+
*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.
 
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.
Oben:  Pulsfolge RS-Bus ohne Antwort (130 Pulse 202µs + Pause 7ms)  
+
Unten: Pusfolge (Ausschnitt) mit Antwort des RM  
+
 
+
+
 
+
 
+
 
+
 
+
 
+
  
 
==Meldungen (Beispiele)==
 
==Meldungen (Beispiele)==
Zeile 110: Zeile 108:
 
Meldungen sind wie folgt codiert:
 
Meldungen sind wie folgt codiert:
  
St, Pe, 1, 0, N, D3, D2, D1, D0
+
St, Pe, T1, T0, N, D3, D2, D1, D0
  
St -  Startbit (Low)
+
:St -  Startbit (Low)
Pe -  Parität (even)
+
:Pe -  Parität (even)
1 -  fest High
+
:T1 T1, fest High bei RM (feedback module)
0 -  fest Low
+
:T0 T0, fest Low bei RM
N -  Nibble (0 für unteres, 1 für oberes Nibble)
+
:N -  Nibble (0 für unteres, 1 für oberes Nibble)
D3 -  für E4 bzw E8
+
:D3 -  für E4 bzw E8
D2 -  für E3 bzw E7
+
:D2 -  für E3 bzw E7
D1 -  für E2 bzw E6
+
:D1 -  für E2 bzw E6
D0 -  für E1 bzw E5
+
:D0 -  für E1 bzw E5
  
, wobei Eingang geschlossen(low) einer 1 entspricht
+
wobei Eingang geschlossen (=low) einer 1 entspricht.
 
Eine Meldung beschreibt ausschließlich ein Nibble, bei gleichzeitigen Änderungen in beiden Nibbles werden zwei Meldungen generiert.
 
Eine Meldung beschreibt ausschließlich ein Nibble, bei gleichzeitigen Änderungen in beiden Nibbles werden zwei Meldungen generiert.
  
Einige Beispiele:
+
Einige Beispiele:
  
 
+
{| border=1 width=70% align=center
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
4 0 0 1 0 0 0 1 0 1 E1, E3 akt., E2, E4 pass.
+
| 0
5 0 0 1 0 1 0 0 0 1 E5 akt., E6…E8 pass.
+
| N
6 0 0 1 0 1 1 0 0 0 E8 akt., E4..E7 pass.
+
| D3
7 0 1 1 0 1 0 0 0 0 E8 wieder passiv
+
| D2
8.1 0 1 1 0 0 0 0 0 1 2 Meldungen: E1 und ...  
+
| D1
8.2 0 0 1 0 0 0 0 1 0 ... E6 aktiv, Rest passiv   
+
| D0
 +
| Bedeutung
 +
|-
 +
|1
 +
|0
 +
|0
 +
|1
 +
|0
 +
|0
 +
|0
 +
| 0
 +
| 0
 +
| 0
 +
| E1, E2, E3, E4 passiv
 +
|-
 +
| 2
 +
| 0
 +
| 1
 +
| 1
 +
| 0
 +
| 0
 +
| 0
 +
| 0
 +
| 0
 +
| 1
 +
| E1 aktiv, E2..E4 passiv
 +
|-
 +
| 3
 +
| 0
 +
| 1
 +
| 1
 +
| 0
 +
| 0
 +
| 0
 +
| 0
 +
| 1
 +
| 0
 +
| E2 aktiv, E1, E3, E4 passiv
 +
|-
 +
| 4
 +
| 0
 +
| 0
 +
| 1
 +
| 0
 +
| 0
 +
| 0
 +
| 1
 +
| 0
 +
| 1
 +
| E1 u. E3 aktiv, E2 u. E4 passiv
 +
|-
 +
| 5
 +
| 0
 +
| 0
 +
| 1
 +
| 0
 +
| 1
 +
| 0
 +
| 0
 +
| 0
 +
| 1
 +
| E5 aktiv, E6, E7, E8 passiv
 +
|-
 +
| 6
 +
| 0
 +
| 0
 +
| 1
 +
| 0
 +
| 1
 +
| 1
 +
| 0
 +
| 0
 +
| 0
 +
| E8 aktiv, E5, E6, E7 passiv
 +
|-
 +
| 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 aktiv und ...  
 +
|-
 +
| 8.2
 +
| 0
 +
| 0
 +
| 1
 +
| 0
 +
| 0
 +
| 0
 +
| 0
 +
| 1
 +
| 0
 +
| ... E6 aktiv, Rest passiv   
 +
|-
 +
| 9
 +
| 0
 +
| 0
 +
| 0
 +
| 1
 +
| 1
 +
| 0
 +
| 0
 +
| 1
 +
| 0
 +
| LS100A1- (E6) aktiv, Rest passiv 
 +
|}
  
  
 +
----
  
  
Zeile 145: Zeile 266:
 
Peter Schneider
 
Peter Schneider
 
09.02.2007
 
09.02.2007
 +
 +
[[Kategorie:Digitalbetrieb]]

Aktuelle Version vom 18. Februar 2009, 14:57 Uhr

Die nachfolgende Dokumentation wurde ausschließlich aus Messungen und Schaltungsanalysen gewonnen. Sie kann Fehler enthalten und erhebt keinen Anspruch auf Vollständigkeit.

Sie ist als Hilfsmittel zum Verständnis des RS-Busses bei der Fehlersuche zu verstehen. Korrekturen, Ergänzungen oder Fehlerhinweise sind ausdrücklich erwünscht.


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. Hier wird versucht, die wesentlichen Eigenschaften zu beschreiben.

Vorteile gegenüber dem S88-Bus liegen in der Übertragung von Information durch Stromfluß und nicht durch Spannungspegel wie bei S88. Dadurch ergibt sich eine deutlich geringere Einkopplungswahrscheinlichkeit. Zudem sind die Daten (im Gegensatz zu S88) mit einer Parity geschützt.

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 nach dem Start und bei Änderungen, es wird jeweils der neue Zustand gemeldet.

Die Zentrale sendet 130 Pulse, jeder Rückmeldebaustein (RM) hört das Telegramm mit. Es ergibt sich eine Pulsfolge mit 130 Pulsen, mit ca. 109us High und ca. 93us Low sowie einer Pulspause von ca. 7ms. (s.a. Bild 3) 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 umfasst 4 Bit (1 Nibble). Hat ein Rückmelder an seinen Eingänge Änderungen aus beiden Nibbles, so werden diese Nachrichten in 2 Zyklen übermittelt. Bausteine mit unterschiedlicher Adresse können während eines Zyklus ihre Nachricht senden. Eigentlich sind es also es immer zwei Vierfach-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.


Bild 1: Prinzip Rückmelder

Die Teilnehmerschaltung bzw. 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. Es gibt zwei Stromquellen, eine mit 3mA und eine mit ca. 20mA. Die 3mA Stromquelle wird zum Empfangen verwendet, die 20mA Stromquelle ist schaltbar und wird zum Senden verwendet. In Reihe zur 3mA Stromquelle liegt noch eine Z-Diode 5,6V. Aufgrund des Taktverhältnisses von ca. 50% ergibt sich ein Ruhestrom von etwa 1,6mA/RM.


Bild 2: Prinzip Zentrale

Die Zentrale enthält die Taktsende- und Auswertschaltung für den RS-Bus. Am Anschluss R wird +12V bereitgestellt. Der Anschluss S führt über einen Transistor T2 und Widerstände an Ground. Parallel dazu liegt ein Schalttransistor T1 direkt gegen Ground, der die 130 Sendepulse schaltet.


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 über T1. Wenn T1 abgeschaltet ist, dann muß der Strom über T2 und den Spannungsteiler R1, R2 fließen. T2 (in Basisschaltung) realisiert dabei zusammen mit R5, R6 einen Schwellwertschalter, der erst bei Spannungen über 6V an S einen nennenswerten Strom fließen lässt. Diese Spannung wird aber von der 3mA-Stromquelle wegen der nachgeschalteten Zenerdiode nicht erreicht. Daher reicht die Spannung über R2 nicht zum Durchsteuern von T3, welcher das Empfangssignal für den Prozessor in der Zentrale 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 verschiedenen 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

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:

  • Startbit (0)
  • Parität (even)
  • 2 TT-Bits (bei Rückmelder: 10)
  • Nibblebit (0 = unteres Nibble, 1=oberes Nibble)
  • 4 Datenbits D3, D2, D1, D0
  • Stopzustand (RM wieder passiv)

Hierbei steht D3...D0 für Eingang E1...E4 bzw E5...E8. Eine 1 entspricht Kontakt geschlossen, also eigentlich Pegel Low! Bit 5 und 6 sind die TT-Bits. Sie enthalten die Kennung des Rückmelders. Sie stehen in einem anderen Zusammenhang in der Lenz-Dok.:

  • 00 - Schaltempfänger ohne Rückmeldung
  • 01 - Schaltempfänger mit Rückmeldung
  • 10 - Rückmelder
  • 11 - reserviert für zukünftige Anwendungen

Es ist hier nicht nachzuvollziehen, warum eine so exotische Codierung gewählt wurde. Die TT- Bits stellen keine relevante Information dar. Es ist nur zu vermuten, dass es aus historischen Gründen (Nibble-Infos) so ist, da uralte mC keine (8 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(bei RM!):

P, 1(T), 0(T), 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.

Bild 3: RS-BUS: Pulsfolge

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, T1, T0, N, D3, D2, D1, D0
St - Startbit (Low)
Pe - Parität (even)
T1 - T1, fest High bei RM (feedback module)
T0 - T0, fest Low bei RM
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
1 0 0 1 0 0 0 0 0 0 E1, E2, E3, E4 passiv
2 0 1 1 0 0 0 0 0 1 E1 aktiv, E2..E4 passiv
3 0 1 1 0 0 0 0 1 0 E2 aktiv, E1, E3, E4 passiv
4 0 0 1 0 0 0 1 0 1 E1 u. E3 aktiv, E2 u. E4 passiv
5 0 0 1 0 1 0 0 0 1 E5 aktiv, E6, E7, E8 passiv
6 0 0 1 0 1 1 0 0 0 E8 aktiv, E5, E6, E7 passiv
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 aktiv und ...
8.2 0 0 1 0 0 0 0 1 0 ... E6 aktiv, Rest passiv
9 0 0 0 1 1 0 0 1 0 LS100A1- (E6) aktiv, Rest passiv




Peter Schneider 09.02.2007