Hallo,
ich hab mal ne Frage an die Experten ...
Bei einer digitalen Modelleisenbahn wäre es ganz nett, wenn die Lok auch
Informationen an die Zentrale zurückliefern könnte. Dazu habe ich einen
Vorschlag (*) gefunden, bei dem Signale dadurch übertragen werden, daß
die betreffende Lok mit einer Frequenz von 4 MHz eine gewisse
(zusätzliche) Stromstärke von den Gleisen abgreift (logisch "1") oder
nichts tut (logisch "0").
Das ganze nennt sich dann "current modulating".
Auf der Sender-Seite kann ich diesen Ansatz nachvollziehen. Im Prinzip
könnte man diese Modulierung auch einfach dadurch erreichen, daß per
Programm Strom durch einen passenden Widerstand ein- oder ausgeschaltet
wird (evtl. über OC1-Pin).
Aber wie kann man so eine Modulierung auf den Gleisen detektieren ?
Gibt es ein schlaueses Teil so ähnlich wie bei Infrarot-Modulierung der
IR-Detektor TSOP 18xx, der diese Signale automatisch demoduliert und
digitale Signale an den Mikrocontroller weitergibt ?
Ich hab absolut keine Vorstellung wie das funktionieren soll ? :-)
Gerhard
(*)
http://www.tttrains.com/nmradcc/draftstandardsandrps.html
A: Technique for Transmitting Encoding Bits
"1" bit
A decoder transmits a bit with the value of "1" by current modulating
the track signal between 12 and 15 milliamps at 4.0 MHz (±) 1% measured
at the track as observed on a scope. ...
Hallo Gerhard,
ich denke die Geschichte ist ganz einfach.
In der Stromquelle ist ein Widerstand, über dem der Spannungsabfall
abgegriffen wird.
Durch unterschiedliche Last "(zusätzliche) Stromstärke" ergibt sich ein
entsprechende Spannung am Widerstand.
Ich habe die angegebene Seite nur 'mal kurz angeklickt; die Frequenz
liegt im Millihertz-Bereich.
Gruß Micha
Eine einfache Demodulatorschaltung könnte so aussehen:
Wie Micha schon geschrieben hat greifst Du den Strom, der über die
Gleise fliest über einen Wiederstand (R1) ab. Jetzt muss man irgendwie
detektieren, wenn sich der Strom ändert. Also vergleicht man den
mittleren Strom der letzten paar ms (je nach Frequenz des modulierten
Signales) mit dem aktuellen.
Die Mittelwertbildung überlässt man einem einfachen RC-Glied (R2,C1).
Über einen zweiten Zweig erzeugt man sich über einen Spannungsteiler
(R3,R4) eine zweite Hilfsspannung ), die ohne Zusatzlast (Modulation
durch Lock) geringfügig unter der Spannung hinter dem RC-Glied ist. Die
beiden Spannungen gibt man dann auf einen Comperator.
Bei richtiger Dimmensionierung hat man dann am Ausgang 0, wenn keine
Modulation (Zusatzlast) und eine 1, wenn Modulation.
Funktionieren tut das allerdings nur, wenn der Modulationswiederstand
der Lock ständig ein und ausgeschaltet wird.
MfG
Steffen
PS: Ich bin absichtlich nicht tiefer in die theoretische Elektrotechnik
eingegangen um das Ganze nicht zu verwirrend darzustellen. Die Schaltung
habe nur mal schnell hingekritzelt.
Hallo Micha und Steffen,
vielen Dank die Hinweise. Der Detektor scheint ja sogar
für Normal-Sterbliche wie mich machbar zu sein ... :-)
Bevor ich mich ans Ausprobieren mache hab ich noch eine
theoretische Frage. Kann die Detektion auch funktionieren, wenn nicht
nur ein Detektor existiert (in Zentrale bzw. Booster) sondern am Gleis
mehrere Detektoren nacheinander angeschlossen sind ?
Ich denke an folgende Sache:
GleisA +/- ----a----------c---------------|
GleisB -/+ -------------b---------d-------|
An Punkten a und b ist Detektor1 angeschlossen und
an Punkten c und d ist Detektor2 angeschlossen. Lok1 befindet sich auf
dem Gleis zwischen a und b und Lok2 fährt zwischen c und d.
Die Frage ist dann: kann Lok1 via Stromstärken-Modulierung
Signale (Bits) an ihren "zuständigen" Detektor Detektor1 schicken ohne
daß Detektor2 diese Signale mitbekommt ?
Irgendwie hab ich den Eindruck, daß Herr Lenz so etwas macht, um
festzustellen, auf welchen Gleisabschnitten welche Loks fahren:
http://www.lenz-elektronik.com/railcom_frame.htm
Wenn die Sache mit den seriellen Detektoren funktionieren könnte, dann
wäre das wirklich das Non-Plus-Ultra. Dann könnte man nämlich 2 Fliegen
mit einer Klappe schlagen:
1) Informationen und Rückmeldungen von der Lok bekommen (zB. effektive
Geschwindigkeit)
2) den aktuellen Standort der Lok elektronisch ermitteln
Und das alles auf sehr preiswerte und platzsparende Art und Weise, wenn
die Modulation in den DCC-Decoder der Lok gleich mitintegriert wird (im
Idealfall braucht man im Lok-Decoder nur einen zuätzlichen
Modulations-Widerstand).
Gerhard
Wenn die Gleisabschnitte nicht elektrisch miteinander verbunden sind
kann man auf diesem Weg feststellen, welche Lock sich auf welchem
Abschnitt befindet.
Nochmal zu der Schaltung:
Ich hab keine richtige Ahnung, welche Ströme bei einer Modellbahn
fliesen. Es könnte daher durchaus sein, das noch ein Verstärker mit rein
muss. Wenn ich mal annehme, das 6V am Gleis anliegen, die Lock mit einem
1kOhm Widerstand moduliert und die Stromänderung über einen 1Ohm
Wiederstand gemessen wird muss der Comperator bei mindestens 3mV
Differenz durchschalten, was aber kein Problem sein sollte.
Problematisch ist der Fall, bei dem es zu einer plötzlichen
Stromänderung kommt. Z.B. wenn eine andere Lock ebenfalls auf diesen
Gleisabschnitt einfährt. Bis die Spannung hinter dem RC-Glied wieder
stabil ist funktiniert die Demodulation nicht, was man aber über ein
entsprechendes Protokoll korrigieren könnte.
MfG
Steffen
Frage: Wird die Lok mit Gleich- oder Wechselstrom betrieben?
Falls mit Gleichstrom, würde ich diesen einfach glätten und die
Steuerimpulse über einen Kondensator ein- und auskoppeln.
Besser, etwas aufwendiger, das Nutzsignal AM moduliert mit einem
Kondensator einkoppeln. Auskoppeln kann mann das gut mit einem
Schwingkeis. Für den Zwei- oder Mehrwegbetrieb sind verschiedene
Trägerfrequenzen möglich.
Ich hab mal einen Gebührenzähler für 16KHZ gebastelt, das ist im Prinzip
etwas Ähnliches: Gleichspannung zum Betrieb des Telefons, 300-3600Hz
Sprache und 16KHz Zählimpuls auf einer Leitung.
cu tb
Hallo Steffen und Thomas,
/*
Wenn die Gleisabschnitte nicht elektrisch miteinander verbunden sind
kann man auf diesem Weg feststellen, welche Lock sich auf welchem
Abschnitt befindet.
*/
Da die Steuersignale für alle Loks über alle Gleise laufen sind alle
Gleisabschnitte elektrisch miteinander verbunden. Wenn das bedeutet daß
die modulierten Signale durch alle Detektoren laufen, dann läßt sich
eine automatische Standortbestimmung einer Lok auf diese Weise nicht
erreichen.
Es sei denn, dem ersten Detektor gelingt es, das Signal "auszubügeln"
bevor das Signal die anderen Detektoren erreicht. Aber das scheint das
Geheimnis von Herrn Lenz zu sein ... :-)
/*
Nochmal zu der Schaltung:
Ich hab keine richtige Ahnung, welche Ströme bei einer Modellbahn
fliesen. Es könnte daher durchaus sein, das noch ein Verstärker mit rein
muss. Wenn ich mal annehme, das 6V am Gleis anliegen, die Lock mit einem
1kOhm Widerstand moduliert und die Stromänderung über einen 1Ohm
Wiederstand gemessen wird muss der Comperator bei mindestens 3mV
Differenz durchschalten, was aber kein Problem sein sollte.
*/
Nach der DCC-Spezifikation können an Gleis A und B alternierend anliegen
+/- 7 Volt bis in der Spitze +/- 22 Volt. Die Steuersignale für die Loks
werden bestimmt durch die Frequenz dieser Rechteck-Wechselspannung.
Logisch "1" wird daurch übertragen, daß die Polarität wechselt, nach
58 Mikrosekunden wieder wechselt nach 58 Mikrosekunden nochmals
wechselt. Die Übertragung von logisch "0" funktioniert genauso, aber die
Umschaltperioden sind doppekt so lang (116 Mikrosekunden). Eine
Zeichnung dazu ist ziemlich am Ende des folgenden Textes:
http://www.miba.de/morop/n670.htm
Die Lok-Dekoder sind dann so aufgebaut, daß sie den Wechselstrom
gleichrichten und ein Mikrocontroller damit über einen Treiberbaustein
den Gleichstrom-Motor der Lok betreibt.
Das Steuersignal für die Lok wird direkt von einem Gleis über einen
Vorschaltwiderstand an einen EXTINT-Pin des Mikrocontrollers gegeben.
Ansosnsten hält das erste übertragene Byte immer die Adresse der jeweils
angesprochenen Lok.
In dem Vorschlag für das Rückmelden ist die Rede von 12 bis 15
MilliAmpere, die mit hoher Frequenz (4 MHz) auf das Steuersignal auf das
Steuersignal der Zentrale aufmoduliert
werden. Bei logisch "1" dauert dieses Modulieren 50 Mikrosekunden lang.
Logisch "0" wird dadurch signalisiert, daß während einer Bitperiode
überhaupt keine Modulation stattfindet.
Wenn ich jetzt mal 10 Volt Gleisspannung unterstelle wäre der
Modulationswiderstand in der Lok also ca. 666 Ohm. Was
Operationsverstärker angeht, muß ich mich erst mal schlau machen. Mit
solchen Teilen hab ich noch nicht gearbeitet.
/*
Problematisch ist der Fall, bei dem es zu einer plötzlichen
Stromänderung kommt. Z.B. wenn eine andere Lock ebenfalls auf diesen
Gleisabschnitt einfährt. Bis die Spannung hinter dem RC-Glied wieder
stabil ist funktiniert die Demodulation nicht, was man aber über ein
entsprechendes Protokoll korrigieren könnte.
*/
Das Protokoll sieht ein Prüfbyte vor. Wenn ein Übertragungsfehler
auftritt, muß die Zentrale die Rückmeldung halt nochmal anfordern.
/*
Frage: Wird die Lok mit Gleich- oder Wechselstrom betrieben?
*/
Die Lok wird mit Gleichstrom betrieben, auf den Gleisen ist ein
"Rechteck"-Wechselstrom.
/*
Falls mit Gleichstrom, würde ich diesen einfach glätten und die
Steuerimpulse über einen Kondensator ein- und auskoppeln. Besser, etwas
aufwendiger, das Nutzsignal AM moduliert mit einem Kondensator
einkoppeln. Auskoppeln kann mann das gut mit einem Schwingkeis. Für den
Zwei- oder Mehrwegbetrieb sind verschiedene Trägerfrequenzen möglich.
Ich hab mal einen Gebührenzähler für 16KHZ gebastelt, das ist im Prinzip
etwas Ähnliches: Gleichspannung zum Betrieb des Telefons, 300-3600Hz
Sprache und 16KHz Zählimpuls auf
einer Leitung.
*/
Ich glaub ich werde mich in Sachen Ein- und Aus- und Verkuppeln erst mal
schlau machen :-)
Vor allem die Sache mit dem Gebührenzähler könnte recht interessant
sein.
Ansonsten bedank ich mich herzlichst. Ihr habt mir wertvolle
Informationen gegeben wie ich weiter vorgehen kann.
Gerhard
Hallo Gerhard,
wenn Du wissen willst auf welchem Gleisabschnitt sich eine Lok gerade
befindet, so kannst Du die Lok Nummer kontinuierlich (in Zeitrastern)
über IR nach unten auf das Gleisbett abstrahlen. An den entsprechenden
Stellen (vor Weichen und Signalen usw.) sind dann Empfängerdioden
eingebaut und die werden dann über PC abgefragt und geben auf dem
Gleisbild Modell den genauen Standort an. Mit Hilfe dieser
Standortangaben läßt sich ein realistischer automatischer Fahrbetrieb
aufbauen der auch noch manuell Durchfahren werden kann.
MfG Manfred Glahe
Hallo,
ich hab die Anregungen zur Stromstärkenmodulation in einer
Testschaltung mal umgesetzt. Zumindest die Sachen, die ich getestet
habe, funktionieren jetzt. Allerdings hab ich eine Frequenz von 1000 Hz
genommen weil ich damit leichter Fehler finden konnte. Wenn die
RC-Glieder anders dimensioniert werden, dann müßte es wohl auch mit den
geforderten 4 MHz gehen.
Die 1000 Hz werden in der Testschaltung durch Programm generiert.
main:
; bei 8 MHz Quarz und f = 1 KHz (T = 1000us)
cbi PORTD, modulator ; end npn transistor
waitCycles (4000 - 2) ; 500 us
cpi running, 1 ; 1
brne main ; 1
sbi PORTD, modulator ; start npn transistor
waitCycles (4000 - 2) ; 500 us
rjmp main ; 2
;--------------------------------------------------
extint0: ; logisch "1" senden
ldi running, 1
reti
;--------------------------------------------------
extint1: ; logisch "0" senden (nichts tun)
ldi running, 0
reti
Die Schaltung kann man sicher viel besser machen. Ich könnte mir gut
vorstellen, daß bei geschickter Vorgehensweise nur ein Komparator
gebraucht wird. Aber ich bin momentan froh, daß es überhaupt
funktioniert :-)
Gerhard
Hi Gerhard!
Bevor Du Dir die Mühe machst, einen derartigen Decoder zu entwickeln,
hänge mal einen Widerstand in die Zuleitung und schau Dir das Signal
darüber an. Ich kann mir vorstellen, dass durch die ungleichmäßige
Stromaufnahme der Loks und die schwankenden Kontaktwiderstände zwischen
Lok und Schiene der Stromfluß derart gestört ist, dass Du kein
sinnvolles und reproduzierbares Signal daraus ableiten kannst. Und bei
mehreren Loks dürften sich die Signale und Störungen zu einem wahrhaft
babylonischen Gewirr vermengen.
Ich würde zu einem Ansatz mit einer modulierten IR-Diode in der Lok und
Detektoren an entsprechenden Gleisstellen tendieren, dazu gibt es auch
Projekte. Aber berichte mal weiter, was bei Dir rauskommt.
Sven
Hallo Sven,
ich hab mir die aktuellen Ansätze der Amis
http://www.tttrains.com/nmradcc/draftstandardsandrps.html
nochmal angeschaut und der Ansatz mit der Stromstärkenmodulierung ist
ersatzlos gestrichen worden. Offensichtlich ist die Sache doch zu
problematisch :-)
Dafür ist jetzt ein anderer Ansatz für "decoder transmission" gewählt,
wo der Booster für ca 400 Mikrosekunden die Stromversorgung unterbricht
und der Lokdekoder dann in dieser Zeit 3 Bytes zurückschickt. Diese Zeit
ist so kurz, daß es sicher möglich ist, mit dem Kondensator hinter dem
Gleichrichter der Lok den Stromausfall zu überbrücken.
Da die Amis scheinbar grundsätzlich die Entwicklungen von Meister Lenz
übernehmen ist das wohl auch der Ansatz hinter
http://www.lenz-elektronik.com/railcom_frame.htm
Ich vermute jetzt das funktiert so, daß der Detektor in die Versorgung
des Gleisabschnitts eingeschleift ist, den Strom kurz abstellt in der
Pause nach den üblichen DCC-Pakten und der Address-Sender (bzw. der
Lok-Dekoder) in dieser Zeit die Adress-Bytes schickt.
Ich sehe dabei folgende Vorteile: die aktuelle Position der Lok kann auf
Gleisabschnittsbasis elektronisch ermittelt werden und zwar auch dann,
wenn die Lok steht. Eine feinere Positionsbestimmung pro Gleisabschnitt
wäre dann auch zu realisieren durch einfache Magnet-Sensoren entlang dem
Gleisabschnitt.
Gerhard