Hinweis: Diese technische Beschreibung des SELECTRIX Systems ist zur
Zeit noch im Entstehen, also noch nicht fertig.
2 Der SELECTRIX-Bus
2.1 Das Stecksystem
2.2 Die Bussignale
2.2.1 Ausgangsspannung und Ausgangswiderstand
2.2.2 Zeitbedingungen
2.2.3 Das Vollduplexverhalten am Bus
|2.2.4 Busverdrahtung
|2.2.5 Strombedarf der Geräte
|2.2.6 Probleme bei Busüberlastung
3 Kanalbelegungen
3.1 Kanal 111
3.2 Kanal 109
3.3 Kanal 106
3.3.1 Derzeitige Kanalbelegung
3.3.2 Funktion mit b.6=1
4 Die Spannung am Gleis
4.1 Codierung bei NMRA/Lenz
4.2 Codierung bei SELECTRIX
7 Troubleshooting
7.1 Verdrahtung
7.1.1 Bus-Verdrahtung
7.1.2 Verdrahtung des Belegtmelders
Das Übertragungsformat besteht aus einem Synchronteil (der aus
einer im übrigen Datenstom nicht verwendeten Impulsfolge und einer
sogenannten 'Basisadresse' besteht) und daran anschließend den einzelnen
Übertragungskanälen, wobei in jedem Kanal 8 Informationsbits
zur Verfügung stehen.
Gesamtrahmen
|
|
Grundrahmen
|
Bedingt durch den Aufbau mit einem Synchronkanal - in dem auch die 16 Basisadressen übertragen werden - und anschließend den 7 Informationskanälen ergibt sich ein Umfang von
16 * 7 = 112 Informationskanälen
Kanäle und Adressen
Sync+B.A. Datenkanäle 96 .. 111 Datenkanäle 80 .. 95 Datenkanäle 64 .. 79 Datenkanäle 48 .. 63 Datenkanäle 32 .. 47 Datenkanäle 16 .. 31 Datenkanäle 00 .. 15
Bitfolge im Sync-Kanal
0 0 0 1 X 1 B3 B2 1 B1 B0 Die Bits haben folgende Bedeutung:
0 log 0 1 log 1 X spezielles Bit am Bus: Ein/Aus der Zentrale (Spannung am Gleis) am Gleis: immer G1 = 0 (für den Gleichlauf von Boostern) B0..B3 Basisadresse ( 0 .. 15) B0 = lsb (Wertigkeit 1) B3 = msb (Wertigkeit 8)
Bitfolge im Informationskanal
D7 D6 1 D5 D4 1 D3 D2 1 D1 D0 1Die Bits haben folgende Bedeutung:
0 log 0 1 log 1 D7..D0 InformationFür den Informationskanal ist Bit 7 das msb, Bit 0 das lsb. Für die Ansteuerung einer Lok gilt folgenden Zuordnung
bit 7 Horn (oder Zusatzfunktion 2) bit 6 Licht bit 5 Richtung bit 4 .. 0 Geschwindigkeit ( bit 0 = lsb), bis 31 Fahrstufen und Halt
;-----------------------------------------------; ; Grundprogramm Betrieb ; ;-----------------------------------------------; x_xmit: call x_xkan ; K 7 (96 .111) call x_xkan ; K 6 (80 . 95) call x_xkan ; K 5 (64 . 79) call x_xkan ; K 4 (48 . 63) call x_xkan ; K 3 (32 . 47) call x_xkan ; K 2 (16 . 31) call x_xkan ; K 1 (00 . 15) ; jmp x_xmit ; letzte 1 ; ;-----------------------------------------------; ; Sx-Bus: Normal-Kanal ; ;-----------------------------------------------; x_xkan: call x_otri ; 1. Impuls (= 1) mov a,rx_bad ; add a,#10h ; Erhoehung der mov rx_bad,a ; Kanalnummer xrl a,rx_adr ; Adressvergleich jz x_kinp ; Datenuebernahme jmp x_ot10 ; Leerkanal ; ;-----------------------------------------------; ; Sx-Bus: Übernahme-Kanal ; ;-----------------------------------------------; x_kinp: call x_idat ; Info 0 call x_idat ; Info 1 call x_otri ; call x_idat ; Info 2 call x_idat ; Info 3 call x_otri ; call x_iodat ; Info 4 call x_idat ; Info 5(V) call x_otri ; call x_idat ; Info 6 call x_idat ; Info 7 ret ; ; ;-----------------------------------------------; ; sx-bus: Synchronisierung ; ;-----------------------------------------------; x_syt0: jb sxt0,x_syt0 ; call z_cy20 ; ret ; ; x_sync: call x_syt0 ; Kontrolle auf 3 * '0' + 1 * '1' jb sxt1,x_sync ; 1. "0" call x_syt0 ; jb sxt1,x_sync ; 2. "0" call x_syt0 ; jb sxt1,x_sync ; 3. "0" call x_syt0 ; jnb sxt1,x_sync ; 1. "1" ; x_sy40: call x_syt0 ; mov c,sxt1 ; Uebernahme ein/aus mov a,ra_zus ; der Zentrale rl a ; rrc a ; mov ra_zus,a ; call x_otri ; 3. "1" ; call x_adin ; Adresse a0 call x_adin ; Adresse a1 call x_otri ; call x_adin ; Adresse a2 call x_adin ; Adresse a3 ret ; ;dabei bedeutet x_otri ein hochohmigschalten der Ausgabe und steht hier stellvertretend für die Übernahme einer log '1'
Die Belegung der 5-poligen Buchse (Ansicht von oben)
T0 Taktsignal T1 Daten von der Zentrale GND Erde (Ground) D Daten zur Zentrale + Betriebsspannung (+20V)
Ausgangsspannung log '0' 0 .. 1 V Ausgangsspannung log '1' 4 .. 5 V Abtastungschwelle (nominal) 2,5 V Ausgangswiderstand T0 100 Ohm Ausgangswiderstand T1 220 Ohm Ausgangswiderstand D 470 Ohm
Die log '0' im Takt ist immer genau 10 µs lang, die Periodenzeit (> 50 µs) ist nicht so genau definiert. In den alten Zentraleinheiten I und II ist diese Periode genau 50 µs lang, in der neuen Zentraleinheit CC2000 und auch im Translator (wenn dieser auf 'Zentrale' gestellt wird) ist die Zeit nicht so genau definiert. Vor allem beim Betrieb der Zentrale im kombinierten oder 'Lenz'-Modus ist die periodenzeit stark verlängert (entsprechend der Codierung mit 58 bzw. 116 µs).
Das Grundelement (1 Bit) ist bei Betrieb mit SELECTRIX demnach ca. 50 µs lang. Mit dieser Zeiteinheit und der gegebenen Rahmenstruktur kann man folgende Zeiten errechnen:
1 Bit 50 µs 1 Kanal 600 µs (= 12 Bit) 1 Grundrahmen ca. 4,8 ms 1 Gesamtrahmen ca. 80 ms (= 16 Grundrahmen)
Will ein an den Bus angeschlossenes Gerät (zB. ein Handregler) das Datensignal ändern (also zB. aus einer log '0' eine log '1' machen, um die Fahrstufe zu ändern), dann 'überschreibt' der Handregler (in dem durch seine Adresse gewählten Kanal) die log '0' mit einer log '1'. Dies ist durch die Dimensionierung der Koppelwiderstände gegeben (siehe Bild)
Kopplung von T1 auf D
Die Zentrale koppelt ihr (altes) Signal mit 470 Ohm auf die Leitung D, der Handregler das 'neue' Signal mit 100 Ohm auf die Leitung D - der Handregler 'gewinnt'. Dieser Überschreibvorgang ist im nächsten Bild dargestellt.
Überschreibvorgang
Wichtig ist dabei nur, daß die zulässige Gesamtlänge
von ca. 100 m eingehalten wird, und daß die Masseleitung einen entsprechenden
großen Querschnitt besitzt (siehe folgenden Abschnitt)
Maximaler Widerstand der Masseleitung
Die Zeitkonstante Tau wird gebildet durch den Innenwiderstand mal der
Kabelkapazität (Tau = R * C)
Zusätzlich wird diese schlechte Kurvenform noch dadurch "belastet", daß in alten Geräten (Combi Control, alte Funktionsdecoder) die Abtastschwelle für den Takt direkt durch die Eingangschwellspannung eines Mikroprozessors (der TTL-Pegel verarbeitet) gebildet wird, also nicht in der Mitte des Taktsignals (bei ca. 2,5 Volt) liegt, sondern bei etwa nur 1,5 Volt.
Zur Behebung dieses Problems gibt es mehrere Lösungen
Kanal von der ZE: zur ZE: 111 erweiterte Basisadresse Uhrzeit 110 Systemkanal der ZE nicht benutzbar! 109 Zustandskanal der ZE nicht benutzbar! 108 107 106 nicht benutzt Anforderungskanal 105 Parameter Parameter 1 104 Parameter 2 Parameter 2 103 *) Parameter 3 Parameter 3 102 *) Parameter 4 Parameter 4 *) noch nicht in Verwendung
Als Verwendung für diese erweiterte Basisadresse ist (für die Zukunft) ein Multiplexbetrieb am BUS gedacht, wodurch sich die Anzahl der anschließbaren Geräte um diesen Multiplexfaktor erhöht.
Beispiele:
MUX-Faktor = 1 (derzeit) 1 Teilnehmer / Adresse (Lok, 8 Weichen, Belegtmelder etc) MUX-Faktor = 4 4 Teilnehmer / Adresse (zB. 32 Weichen)Man hat mit dieser Methode den Vorteil, daß die Multiplexrate je nach Anwendung gewählt werden kann. Z.B. kann für die Loks die Multiplexrate = 1 betragen (wegen der hohen Störanfälligkeit der Übertragung zur Lok), sodaß pro Adresse nur 1 Dekoder angeschlossen werden kann, für Zusatzfunktionen, bei denen es nicht so auf die Schnelligkeit der Reaktion ankommt, kann die Multiplexrate = 2 genommen werden (d.h. man kann pro Adresse 2 Teilnehmer erreichen) usw.
Reaktionszeit bei Multiplexbetrieb:
Aus den Zeitverhältnissen der Rahmenstruktur ergibt sich eine
Ansprechzeit von max. 80 ms (jede Adresse wird alle 80 ms angesprochen).
Bei einer Multiplexrate von 4 erhöht sich diese Zeit selbstverständlich
entsprechend um den Faktor 4 (ist aber mit 320 ms zB. für Weichen
immer noch akzeptabel)
Die Kanalbelegung ist
2 Multiplexkanäle sind noch nicht belegt (unused). Stunden und
Minuten werden als Dualzahl übertragen
Bit.2..0 Systenanzeige 000 SelecTRIX 001 Combi-Modus (1/2 SelecTRIX - ½ Lenz) 011 "Lenz" Rest " ?? "Die Umschaltung zwischen den Systemen erfolgt in den bis etwa Ende 97 ausgelieferten Geräten nur durch die Tasteneingabe an der Zentrale. Ab Ende 97 ausgelieferte Geräte können auch von extern über den Kanal 106 umgeschaltet werden. Dazu wird ähnlich wie bei der Einstellung (Programmierung) von Geräten, die am Bus betrieben werden (z.B. Funktionsdecoder) das Bit 5 im Kanal 106 gesetzt. Damit sind die Kanäle 106, 105 und 104 reserviert. Gleichzeitig wird im Kanal 106 die Kennung zur Programmierung der Zentrale eingegeben:
b.2=1, b.1=0, b.0=0 (siehe Kanalbelegung Kanal 106)
Mit der Aufforderung im Kanal 106 -> b.5=1, b.2=1 weiß die Zentrale,
daß der Programmierwunsch an sie gerichtet ist. Der Wunsch, die Betriebart
zu ändern, erfolgt mit dem Setzen von Bit 7 im Kanal 105. Erkennt
dies die Zentrale, schaltet sie das System um 1 weiter und setzt das Bit
7 im Kanal 105 wieder zurück. Die Ausgabe des aktuellen Systemzustandes
erfolgt eben im Kanal 110 und dieser Zustand wird auch vom Handgeber, der
die Änderung veranlaßt hat, angezeigt. Ändert sich also
die Anzeige im Handgeber, weiß man, daß die Zentrale reagiert
hat. Außerdem hat man durch diese Methode die Möglichkeit nur
durch Änderung der Zentrale die Systemvariationen zu erhöhen.
Erkennt der Handregler eine von der Zentrale ausgegebene Codierung nicht
(diese war z.B. zur Auslieferung des Handreglers noch nicht vorgesehen),
dann meldet er als System "??"
Bit.7 Ein/Aus der ZE (der Spannung am Gleis) Bit.6 Programmer Bit.5 'Ready' Bit - solange ein Vorgang läuft (zB. 'Lesen') ist dieses Bit auf '0' Bit.4 Kurzschlußanzeige Bit.3..0 Betriebszustandsanzeige 0000 Programmierung Betriebsmodus (SELECTRIX, NMRA etc) 0001 Lesen (derzeit nur SELECTRIX) 1000 Programmierung einer Lok 'intern' (nur durch Zentrale auf # 1..9) 1001 Programmierung einer Lok externZur Betriebzustandsanzeige:
bit 7 'do it' Aufforderung zur Aktivität bit 6 Programmer Umschaltung der ZE in den Programmiermodus bit 5 Geräte-Einstellung (z.B. Funktionsdekoder, Belegtmelder) bit 4 bit 3 Programmieren (log '0' = Lesen) bit 2..0 Betriebsart 3-stellig = 8 Möglichkeiten
Bit 2..0: Modus Anzeige CH2000 Erklärung 001 SELECTRIX SEL derzeit für alle SELECTRIX-Decoder 100 NMRA Pag Paged Mode (Stand: April 97) 101 NMRA Reg Register ModeDie restlichen Kombinationen sind noch nicht vergeben.
Um die Zentrale auf 'Programmer' umzustellen ist ein kurzer 'Handshake'-Betrieb zwischen der Anforderungsstelle (LokControl, ControlHandy oder auch Interface) und der Zentrale erforderlich.
Folgender Ablauf findet statt:
Bit 2..0 000 Funktionsdecoder FD2000 001 Belegmelder BM2000 100 Zentrale CC2000Die Umschaltung der Baugruppe auf Programmierung wird durch Tastendruck auf der entsprechenden Baugruppe eingeleitet.
Kontrolle der Zulässigkeit der Programmierung:
Es wird kontrolliert, ob
Übergang auf Programmierung:
Ist die Baugruppe berechtigt, programmiert zu werden, so wird beim Übergang in den Programmiermodus
Rücksprung auf Betrieb:
Der Rücksprung auf 'Betrieb' erfolgt entweder durch
Die Übergabe der Parameter für die Programmierung von Baugruppen (z.B. Adresse des Funktionsdekoders, Belegtmelders etc.) erfolgt über die Kanäle 00-**. Dazu muß lediglich der entsprechende Kanal eingestellt werden.
Kanal Funktionsdecoder Belegtmelder 00 Adresse Adresse 01 Impuls/Dauerausgang Betriebsmodus 02 Rückmelde-Adresse Versionsnummer 03 Impulszeit 04 Versionsnummer *) *) noch in AusarbeitungBeispiel:
z.B. / / / - - - - - 1 + 2 + 4 + 0 + 0 + 0 + 0 + 0 Adresse = 07
b.7 Incrementiere Betriebsrat (SelecTRIX ® Combi-Modus ® Lenz usf.) b.2 write Memory (Abspeicherung der aktuellen Betriebswerte) b.1 read Memory (Aufruf der abgespeicherten Betriebswerte) b.0 Clear Memory (Reset alle Kanäle auf "0")Das jeweilige Bit wird nur kurz vom anfordernden Gerät gesetzt, die Rücksetzung dieses Bits erfolgt durch die Zentrale mit der Abarbeitung des entsprechenden Befehls.
Im Fehlerfall (beim Lesen) wird der Kanal 105 mit lauter log "1" belegt
(dies entspricht keiner güütigen CV- oder Register-Nummer mehr).
Coded diphase Verfahren
Nimmt man an, daß in der Datenübertragung die log '1' und die log '0' etwa gleich häufig vorkommen, errechnet sich die mittlere Zeit für ein Datenbit zu 165 µs.
Der Vorteil
dieses Verfahrens liegt in der Zweistufigkeit des Signals, es ist damit
in der Zentrale sehr leicht zu erzeugen.
Der Nachteil
liegt in der Zeitabhängigkeit (dies ist ja die Codierregel): Sowohl
die Zentraleinheit als auch die Decoder dürfen nur relativ geringe
Frequenztoleranzen aufweisen. Während dies im Sender, der meistens
einen quarzgesteuerten Mikroprozessor beinhaltet, von Haus aus gegeben
ist, muß auch in den Decodern ein Quarz verwendet werden, was prinzipiell
die Baugröße vergrößert und auch eine Vollintegration
des Decoders ausschließt (dies ist besonders für die Zukunft
ein schwerwiegender Aspekt!).
SELECTRIX Codierung
Ein Datenimpuls ist unabhängig von der Information (log '0' oder log '1') immer 50 µs lang. Er beginnt mit einer 10 µs langen Pause (diese Pause liefert den Takt), und danach einer 40 µs langen Spannungsperiode. Das Codierschema ist einfach:
Der Nachteil
liegt in der 3-Stufigkeit des Signals: Die Zentraleinheit muß
diesen 3. Zustand ermöglichen, was mit etwas Mehraufwand gegenüber
der 2-Stufigkeit erkauft werden muß.
Dieses Codierverfahren wird im übrigen auch von der Fa. Fleischmann bei der digitalen Mehrzugsteuerung FMZ verwendet, lediglich das Datenprotokoll ist gegenüber SELECTRIX unterschiedlich.
Ein typisches Signal
Fahrstufe 31 Vmax Fahrstufe 01 1/100 VmaxMit 31 Fahrstufen (dies entspricht 30 "Zwischenräumen") ergibt sich die ideale, logarithmische Stufung zu
V2 / V1 = 100 -30 (dies ist die 30. Wurzel aus 100) = 1,16Damit ist die Geschwindigkeitsdiffferenz zwischen den Fahrstufen ca. 16%. Damit ergibt sich die im Beispiel a) dargestellte theoretische Kennlinie.
Bedingt durch Schwierigkeiten bei der Realisierung wurde abweichend von dieser theoretischen Kennlinie eine Kennlinie nach b) ausgeführt. Man kann jedoch auch hier erkennen, daß mit "nur" 31 Fahrstufen ein sehr feinfühliges Fahren ermöglicht wird. Eine Erhöhung der Fahrstufenzahl ist unsinnig. Lediglich eine Verbesserung der geringsten Geschwindigkeit (auf ca. 1/200) wäre sinnvoll, kann jedoch mit den derzeit gebräuchlichen Modellbahnmotoren nicht erreicht werden.
a) Kennline aus Computersimulation
b) Tatsächlich gemessene Geschwindigkeiten (aus Messprotokoll)
Erklärung der Kennlinien:
Bild a)
zeigt die bei der Computersimulation erhaltene Spannung, wie sie am
Ausgang des D/A-Wandlers (im ASIC) entsteht. Theoretisch sollte die (bei
perfekter Motorregelung) entstehende Geschwindigkeitskurve diesen Werten
entsprechen. Aus dieser Kurve kann man sehr gut die nichtlineare Kennlinie
erkennen. Aus dem Verhältnis zwischen proportionaler Spannung Vprop
und der Maximalspannung Vmax erkennt man den Effekt der Verfeinerung der
Fahrstufen im unteren Bereich.
FSTrangier = FST31 * Vmax/Vprop
Eine Geschwindigkeitsstufe im unteren Bereich entspricht ca. 1/72 des
Gesamtbereiches, d.h. daß im Rangierbetrieb ein feinfühliges
Fahren gewährleistet ist.
Bild b)
zeigt die tatsächlich gemessenen Geschwindigkeitskurven, in denen
zusätzlich jeweils die Höchstgeschwindigkeit als Parameter aufgenommen
ist. Es sind 6 Kurven zu erkennen, die 7. Kurve ist beim einscannen "verlorengegangen"
(diese Kurve war gelb geplottet). Sie liegt zwischen der 2. und der 4.
Kurve.
Erklärungen zu den gemessenen Kurven:
Zunächst erkennt man, daß die Kennlinien bei zu groß eingestellter Höchstgeschwindigkeit "oben", also bei einer Maximalgeschwindigkeit anstoßen. Dies ist bedingt durch die zur Verfügung stehende Motorspannung (schneller geht's nicht).
Man erkennt außerdem eine geringe Welligkeit der Kurven. Dies wird hervorgerufen durch die Motor-EMK. Diese EMK ist ja keine Gleichspannung (dies wäre der Idealfall), sondern eine Gleichspannung mit einer relativ großen Welligkeit. Diese Welligkeit wird hervorgerufen durch die "Polfühligkeit" des Motors, sie ist je nach Motorkonstruktion mehr oder weniger groß. Und diese Welligkeit ergibt unterschiedliche Geschwindigkeitswerte: Mißt die Regelung gerade im Tal der EMK, dann ist sie gezwungen die Geschwindigkeit zu erhöhen, um den vorgegebenen Spannungswert des D/A-Wandlers zu erreichen. Wird die Spannung zufällig gerade am Höcker der Motor-EMK gemessen, dann vermindert sich die Geschwindigkeit. Diese Geschwindigkeitswelle ist also von der Drehzahl des Motors abhängig und nicht von der Fahrstufe (siehe Kurven: die Unstetigkeit ist immer bei derselben Geschwindigkeit, unabhängig von der einprogrammierten Höchstgeschwindigkeit, und damit der Fahrstufe)
Leider ist auch die Minimalgeschwindigkeit (bei Fahrstufe 1)
nicht einzuhalten: Unterschreitet die Motor-EMK den durch die theoretische
Spannungskennlinie vorgegebenen Wert, dann wird ein Impuls an den Motor
ausgelöst. Dieser Impuls beschleunigt den Motor (je kräftiger
der Impuls = Impulsbreite im Programmer, desto stärker die Geschwindigkeitszunahme).
Die tatsächliche Geschwindigkeit liegt also immer über dem vorgegebenen
rechnerischen Spannungswert. Die in der Praxis erreichten Werte sind jedoch
als sehr gut zu bezeichnen, sie sind eine Folge nicht nur der guten Regelcharakteristik,
sondern auch des, der Regelung überlagerten, PWM-Prinzips (siehe Erklärung
dort).
Da die Reaktionszeit auf eine Nummer ca. 20 .. 30 ms beträgt, kann der Vorgang zum Auslesen eines Wertes bis zu 3 sec dauern.
Zur Vermeidung einer Fehlmessung des Impulsstromes muß in beiden Polaritäten des Ausgangssignals gemessen werden: Durch einen Programmierfehler bedingt, wird das Licht am Decoder eingeschaltet. Der Lichtstrom würde einen Motorstrom simulieren, der zu einer Fehlmessung führt. Da die Lichter normalerweise am Chassis, und damit an einem Pol der Gleises angebracht sind, fließt bei Einschaltung des Lichtes zwar bei einer Polarität des Ausgangssignals Strom, nicht jedoch bei der anderen. Der Motorstrom hingegen fließt bei beiden Polaritäten.
Einschalten der Versorgungsspannung
Anstieg der Versorgungspannung am Kondensator des ASIC's
Impulsstrom am Gleis
Erklärung zu den Kurvenverläufen:
Das Einschalten der Versorgungsspannung führt zu einem Spannungsanstieg am Kondensator der Versorgungsspannung des ASIC's. Ist die Betriebsspannung des ASIC's erreicht (diese ist bei ca. 3,5V der Fall), beginnt der Auslesevorgang der intern gespeicherten Information. Vor diesen Ausleseimpulsen ist noch ein kleiner Stromimpuls direkt beim Einschalten der Gleisspannung zu beobachten, der durch den Ladevorgang des Kondensators hervorgerufen wird.
Folgende Codiervorschrift für den Impulsstrom des Auslesevorgangs wird angewendet:
Im folgenden Bild ist ein Datensatz mit D0=0, D1=1, D2=0 usw. angenommen. Die Impulse werden durch Ansteuerung des Motors erzeugt (damit Strom fließt) Damit sich der Motor bei diesem Auslesevorgang nicht bewegt, werden die Impulse abwechselnd in Richtung 'vorwärts' und in Richtung 'rückwärts' abgegeben (siehe Bilder Motorimpulse). Die Stromimpulse am Gleis sind ja die Addition der 'vorwärts' und 'rückwärts' Impulse und liefern wieder den gewünschten Gesamtimpulszug.
Es werden 16 Bits ausgelesen, die folgende Bedeutung haben:
D0 D1 D2 D3 D4 D5 D6 D7 D8 D9 D10 D11 D12 D13 D14 D15 A0n A1n A2n A3n A4 A5 A6 I0 I1 I2 B0 B1 B2 V0 V1 V2
V2, V1, V0 Höchstgeschwindigkeit B2, B1, B0 Beschleunigung I2, I1 Impulsbreite des Motorimpulses I0 1 / 2 - Halteabschnitte A6, A5, A4 Kanalnummer A3n, A2n, A1n, A0n Basisadresse (invertiert)
von ca. 500 µs bis ca. 1200 µs
Ein kleiner Trick bei der Programmierung löst dieses Problem. Der Impulsstrom beim Auslesen beginnt mit 2*log"1", gefolgt von einer log"0". Dabei wird die 1. Log"1" zum Einsynchronisieren verwendet, die 2.log"1" liefert die "Normalzeit eines langen Impulses. Die Entscheidung, ob im Impulszug eine log"0" oder eine log"1" auftritt, liegt dann bei genau 3/4 dieser Meßzeit.
Um sich großartige Rechenarbeiten zu ersparen, erfolgt die Messung der "Normalzeit" mit einer Zyklusperiode von 8 (Prozessorschritten), d.h. der Meßwert ist die "Normalzeit" geteilt durch 8 Prozessorschritte (im realisierten Fall sind dies 8 µs). Die Auswertung erfolgt mit einer Zyklusperiode von 6. Schritten. Damit hat man erreicht, daß der Diskriminationswert genau dem Wert der Normalzeit entspricht, und es nur zu einem größer/kleiner Vergleich kommt. Das folgende Programmbeispiel zeigt dieses Verfahren:
Ermittlung der Normalzeit Ermittlung des Meßwertes
le_mes: clr a ; le_d1p: clr a ; le_me1: add a,#1 ; le_m11: add a,#1 ; nop ; nop ; nop ; jc le_err ; nop ; jnb p2.6,le_me1 ; jc le_err ; jnb p2.6,le_me1 ; Zeitmessintervall jeweils mit 8 cy
Die E2Prom Technologie der Firma eurosil® sieht eine Schieberegisteranordnung vor, wobei jeder Schieberegisterstufe ein nichtflüchtiger Speichertransistor zugeordnet ist. Das Schieberegister kann ganz normal über die Logik geladen werden. Beim Einschalten der Versorgungsspannung ist jedoch zu beachten, daß zunächst das Schieberegister (mit dem Impuls SET) gesetzt wird und danach (mit dem Impuls READ) durch den nichtflüchtigen Inhalt des Speichertransistors eventuell wieder zückgesetzt wird. Die Anordnung einer Speicherzelle ist der folgenden Zeichnung zu entnehmen, die Signale, die für SET/READ generiert werden, dem nachfolgenden Zeitdiagramm.
Bild: EEProm Struktur fehlt
Bild: Zeitdiagramm
Zeichenerklärung 1
Einschalten der Versorgungsspannung
2 Stromimpulse wie beim Auslesevorgang
3 SET / READ Impulse des EEProms im ASIC intern
4 3,2ms Impuls (deaktiviert Programmiermöglichkeit)
Beschreibung:
ASIC inaktiv
Zunächst ist der ASIC noch nicht aktiv. Die interne Stromversorgung,
die einen
Kondensator beinhaltet, muß erst einen bestimmten Wert (ca. 3,5 V
erreichen).
Dies ist nach ca. 1 .. 5 ms der Fall (je nach Versorgungsspannung und Toleranzen).
Programmierung In diesem Bereich
hat es noch keinen Sinn, das Schieberegister des EEProms zu
unmöglich
laden, da es ohnehin wieder mit dem gespeicherten Signal überschrieben
wird.
Dieses Überschreiben erfolgt bei Set/Read.
Programmierung Nur in diesem
Bereich kann das Schieberegister geladen werden, da mit Ablauf der
3,2ms (siehe Signal 4) ein Laden des Schieberegisters verhindert wird
Durch die interne Struktur der Speicherzelle bedingt, muß beim
Einschalten der Versorgungsspannung zunächst die Speicherzelle auf
"log"1" gesetzt werden (Signal SET), danach kann erst die Information aus
dem Speichertransistor übernommen werden (Signal READ). Solange das
EEProm noch mit der Übernahme der Daten aus dem Speichertransistor
beschäftigt ist, dürfen dem Schieberegister natürlich keine
Daten zugeführt werden.
Bild: Rahmenstruktur und Aktivierung des Schieberegisters:
Im normalen Betriebsfall besteht ein Grund rahmen aus einer Synchronisierung und 7 Datenkanälen. Soll auf Programmierung umgeschaltet werden, dann wird ein rahmen mit einer Synchronisierung und nur 2 Datenkanälen (mit beliebigem Inhalt, normalerweise K=0) angewendet. Werden 2 aufeinanderfolgende "kurze" Rahmen erkannt, erfolgt mit der nächsten Synchronisierung die Umschaltung des Schieberegisters auf Übernahme der Daten (damit werden die aus dem nichtflüchtigen Speicher geladenen Daten überschrieben, der Speicher wird jedoch noch nicht programmiert). Dieser Vorgang muß innerhalb von 3,2 ms abgeschlossen sein, da sonst ein intern ablaufendes Zeitglied die Aktvierung der Umschaltung verhindert. Es müssen also 7 Kanäle (siehe obiges Bild) innerhalb von 3,2 ms (besser aus Toleranzgründen innerhalb von 2,4 ms) übertragen werden. Da 1 Kanal wie auch bei normalem Betrieb aus 12 Bit besteht, muß mit verkürzten Datenbits gearbeitet werden. Ein Datenbit bei der Programmierung darf max. sein:
tBit = 2,4 ms / (7 * 12) = 28 µs
Empfohlen wird ein Datenbit mit 12 µs Impuls und 8 µs Pause.
Ist die Aktivierung des Schieberegisters erfolgt, hat man beliebig Zeit. Um nicht mit dem internen READ-Impuls zu kollidieren, wird am Besten nach der Aktivierung des Schieberegisters eine kleine Pause (10 ms) eingelegt (die Zeiten im ASIC streuen technologiebedingt sehr stark).
Man kann die Impulsfolge auch leicht an dem realisierten Programm erkennen:
;-----------------------------------------------;
; Pg-Sx: Programmierzyklus
;
;-----------------------------------------------;
z_pzyk: acall z_pvon
; Sync auf 1. @EN
;
acall
z_p1d1 ; Vorspann, damit
acall
z_p1d1 ; das 1. Sync richtig
acall
z_p1d0 ; erkannt wird
acall
z_p1d0 ;
acall
z_p1d0 ;
acall
z_p1d1 ;
acall
z_p1d1 ;
acall
z_p1d1 ;
acall
z_p1d1 ;
;
acall
z_psyn ;
acall
z_p1k0 ;
acall
z_p1k0 ;
acall
z_psyn ;
acall
z_p1k0 ;
acall
z_p1k0 ;
acall
z_psyn ;
;
acall
ti_10m ; Dateneingabe:
acall
z_paus ; aus r6 und r7
acall
z_p1d0 ; entspricht Sync:
acall
z_p1d0 ; 3 * 0
acall
z_p1d0 ;
acall
z_p1d1 ;
acall
z_p1d1 ;
acall
ti_25m ; 25 ms für Programmierung
orl
p1,#0e0h ; Spannung aus
ret
;
;
Dabei bedeuten:
z_pvon
Einschalten der Spannung mit Wartezeit auf 1. Leseimpuls
z_p1d0 1 Impuls
D = "0"
z_p1d1 1 Impuls
D = "1"
z_psyn
kompletter sync-Kanal 0 0 0 1 1 1 0 0 1 0 0 1
z_p1k0 kompletter
Leerkanal 0 0 1 0 0 1 0 0 1 0 0 1
z_paus
2 Datenkanäle d d 1 d d 1 d d 1 d d 1
d d 1 d d 1 d d 1 d d 1
t_10ms Wartezeit
10 ms
t_25ms Wartezeit
25 ms
Es ist ganz wichtig, die Impulsfolge nach der Wartezeit von 10 ms genau
einzuhalten, da sonst keine Programmierung erfolgt (der Programmierimpuls
wird nur ausgelöst, wenn das externe Synchronisiersignal mit dem internen
erzeugten Synchronisiersignal, das zeitmäßig etwas verzögert
ist, übereinstimmt).
Dimensionierung der Stromansprechschwelle:
Der Strom muß in einem Meßwiderstand in eine Spannung umgewandelt werden, danach wird diese Spannung mit einem vorgegebenem Wert in einem Komparator verglichen. Um keine zusätzliche Verlustleistung zu erzeugen und zudem eine wirksame Sicherung der Ausgangstransistoren gegen Überlast zu haben, wird gleich der Innenwiderstand der MOSFet-Ausgangstransistoren als Meßwiderstand benutzt.
Die prinzipielle Schaltung ist dem folgenden Bild zu entnehmen, in dem auch die entsprechenden Schaltungswerte eingetragen sind.
Die gegenwärtige Dimensionierung ergibt folgende Schaltschwelle:
Us = ( 10V - 0,8 V ) * 3,3k / ( 3,3k + 100k ) = 294 mV (also rund 300 mV)
Anm: Die 0,8 V entsprechen der Diodenspannung
Mit einem Innenwiderstand der MOSFET-Transistoren von 0,12 Ohm ( = BUZ71A ) ergibt sich ein Abschaltstrom von 2,45 A. Zu beachten ist hierbei jedoch noch, daß mit dem Codierverfahren nach SELECTRIX (siehe Kapitel 4.2) lediglich 40 µs Impulse auf die Gleise abgegeben werden, gefolgt von einer Pause mit 10 µs. Mißt man daher den Strom in der Gleichspannungszuleitung zur Ausgangsschaltung, so beträgt der Strom, bei dem die Sicherung anspricht:
Inutz = Ik * 40 us / 50 us = 1,96 A (also rund 2 A)
Mit entsprechenden Ausgangstransistoren, die einen geringeren Innenwiderstand
aufweisen (z.B. BUZ10 = 0,08 Ohm oder BUZ11 = 0,04 Ohm ) könnten höhere
Kurzschlußströme - und damit eine größere Leistung
- auf die Schienen abgegeben werden.
Dimensionierung der Zeitglieder:
Das Lesen der Decoderinformation (nach dem SELECTRIX-Verfahren) beginnt mit dem Einschalten der Gleisspannung. Dazu wird das eine Gleis mit +20V beaufschlagt, das andere Gleis auf 0V gehalten. Nach einem kurzen Einschaltstromimpuls, der von der Kondensatorladung des Decoders herrührt, erfolgt die Abgabe des Impulszuges des Decoders. Dazu muß in der Zentraleinheit ein Stromkomparator vorgesehen sein (siehe Schaltbild), dessen Schwelle auf ca. 30 mA eingestellt ist, so daß auch bei den Motoren mit der geringsten Stromaufnahme eine ausreichende Sicherheit zur Erkennung der Impulse vorhanden ist.
Das Schaltbild ist im folgenden Bild im Prinzip dargestellt.
Mit der Ansteuerung der Transistoren V4 und V5 ergibt sich die erwähnte Gleichspannung am Gleis, der Strom fließt von +20V über V5, den angeschlossenen Lokdekoder, V4 und den Meßwiderstand R4 nach 0V. Die dem Meßwiderstand parallelgeschaltete Diode begrenzt die Spannung an R4 auf max. 800 mV.
Die Schaltschwelle des Komparators berechnet sich zu:
Us = +5V * R38 / ( R40 + R42 + R38 ) = 300 mV
Mit dem Meßwiderstand R4 = 10 Ohm und 300 mV Schaltspannung ergibt
sich eine Schaltschwelle für den Strom von 30 mA.
Trick: Man hört an dem kleinen "Piepser", den
der Motor durch die Ansteuerung mit den
Leseimpulsen erzeugt, ob der Auslesevorgang richtig funktioniert hat.
Schaltschwelle:
Die Feststellung, wie groß der Strom ist, bzw. ob er die Schwelle
des "Kurzschlußstromes" überschritten hat, erfolgt über
den Innenwiderstand der MOSFet-Ausgangstansistoren V4 und V6 (siehe Schaltung).
Der Ausgangsstrom liefert über den Kanalwiderstand der Transistoren
einen Spannungsabfall, der mit einem vorgegebenen Schwellwert verglichen
wird. Wird dieser Schwellwert überschritten, spricht mit einer gewissen
Zeitverzögerung die Kurzschlußsicherung an und schaltet die
Ausgangsschaltung hochohmig. Der Vorteil dieser Meßmethode über
die Innenwiderstände der Transistoren liegt darin, daß
Die Schwellspannung wird über die Widerstände R2, R3 und R4 eingestellt, abgeleitet aus einer Zenerdiodenspannung von 10 V. Der derzeit verwendete Ausgangstransistor (BUZ71A) hat einen typischen Kanalwiderstand Rk von 0,12 ?
Us = Usz * R4 / (R2 + R3 +
R4) = 10 * 3,9 / (82 + 22 + 3,9) = 361
mV
Ik = Us / Rk
= 2,4 A
Zeitsicherung
In der Kurzschlußstromüberwachung ist eine Zeitsicherung eingebaut, die kurzzeitige Kurzschlüsse überbrückt. Dies ist nötig, da sich ja die einzelnen Motorimpulse des öfteren überlagern und nicht sofort bei jeder derartigen Überlagerung die Sicherung abschalten soll. Auch soll beim erstmaligen Einschalten der Gleisspannung (zu diesem Zeitpunkt müssen alle Kondensatoren der Lokdecoder geladen werden) nicht sofort die Sicherung ansprechen.
In der Zeitsicherung ist auch ein Verhältnis zwischen Ein/Ausschalten realisiert um eine Überlastung der Ausgangstransistoren zu verhindern (im Kurzschlußfall liefern die Ausgangstransistoren bis zu 20A, es muß ihnen also eine entsprechend lange Ruhepause gegönnt werden, um sich wieder abzukühlen). Dies führt im Kurzschlußfall zu einem "Pumpen" (Flackern der Leuchtdiode) im Ein/Ausschaltverhältnis. Nach Beseitigung des Kurzschlusses wird sofort wieder der Normalbetrieb aufgenommen.
Zur Dimensionierung:
Das Integrationsverhalten (für die Motorimpulse) wird über den Kondensator C7 eingestellt (nach Umdimensionierung = 100nF), die Wiederholrate mit C8 (nach Umdimensionierung = 1 µF). Damit werden folgende Werte erreicht:
Integrationszeit =
5 ms
Wiederholzeit = 500
ms
Bei größeren Längen des Bussystems ist auf folgendes zu achten
Die Einspeisung der Gleichspannung erfolgt zwischen Betriebserde (Pin 2 des Rundsteckers) und der Busspannung +B (Pin 3 des Rundsteckers) des SELECTRIX-Bus. Diese Einspeisung hat den Vorteil, daß die Stromstärke im Bussystem nicht mehr limitiert ist, sondern nur durch das gekaufte Netzteil bestimmt wird. Es muß dann selbstverständlich darauf geachtet werden, daß die Sicherheit bei einem allfälligen Kurzschluß erhalten bleibt (z.B. Absicherung von einzelnen Sektionen durch PTC-Widertstände oder normale Glasrohrsicherungen), und nicht die ganze Anlage abbrennt.
Durch diese Einspeisung erfolgt die Versorgung der Zentraleinheit CC2000 von "hinten" (also vom Bus aus), sie benötigt deshalb keine Versorgungs-Wechselspannung mehr. In dieser Anordnung könnten auch alle Zusatzgeräte, die eine eigene Versorgungsspannung benötigen (z.B. Funktionsdecoder, Translator, PowerPack etc.) vom Bus aus versorgt werden, wenn jeweils ein Verorgungsspannungseingang des Gerätes mit +B verbunden wird. Die Versorgungspannung wird damit von +B über eine im Gerät befindliche Gleichrichterdiode geführt, die Betriebserde ist ohnehin verbunden.
Die Leitung von der Zentrale zum Belegtmelder ist unkritisch. Diese Leitung wird ganz niederohmig von der Zentrale betrieben. Nicht jedoch die einzelnen Leitungen, die zu den Belegungsabschnitten führen. Diese Leitungen sind im Belegtmelder relativ hochohmig mit der Zuleitung verbunden, um für die Belegungsmessung entsprechende Empfindlichkeit zu erreichen. Dies bedeutet jedoch gleichzeitig, daß diese Leitungen auch für Störungen relativ empfindlich sind.
Die Störungen werden kapazitiv eingekoppelt. Dies bedeutet: Die Störung wird umso kräftiger eingekoppelt, je länger die Zuleitung mit der störenden Leitung parallel verläuft und je geringer der Abstand der Zuleitung zur störungsführenden Leitung ist. Bei geringen Längen der Zuleitung (< 50 cm) sind noch keine Störungen zu erwarten. bei größeren Zuleitungslängen sollten folgende Verdrahtungsreglen beachtet werden.
Selbstverständlich ist für eine professionelle Steuerung einer
Anlage durch einen Computer nur mit SELECTRIX möglich, da nur dieses
System die kurze Reaktionszeit mit der ausgezeichneten Regelung der Lokgeschwindigkeiten
vereint. Denn nur damit ist eine Berechnung der von der Lok zurückgelegten
Strecke (vom Eintritt in einen bestimmten Belegtmelderabschnitt) möglich.
Die Position der Lok kann somit ganz genau ermittelt werden, ein unbedingtes
"Muß" für eine professionelle Computersteuerung.