Forum: Mikrocontroller und Digitale Elektronik current modulating


von Gerhard Paulus (Gast)


Lesenswert?

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. ...

von Micha (Gast)


Lesenswert?

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

von Steffen (Gast)


Angehängte Dateien:

Lesenswert?

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.

von Gerhard Paulus (Gast)


Lesenswert?

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

von Steffen (Gast)


Lesenswert?

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

von thomas b (Gast)


Lesenswert?

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

von Gerhard Paulus (Gast)


Lesenswert?

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

von Manfred Glahe (Gast)


Lesenswert?

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

von Gerhard Paulus (Gast)


Angehängte Dateien:

Lesenswert?

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

von Sven (Gast)


Lesenswert?

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

von Gerhard Paulus (Gast)


Lesenswert?

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

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.