Forum: Mikrocontroller und Digitale Elektronik Gleichtaktstörung bei Signalübertragung


von Michael (Gast)


Lesenswert?

Hallo zusammen,


Ich habe hier folgendes Problem:

Mehrere Komponenten sind mit einer Schnittstelle miteinander verbunden. 
Darin befinden sich vier Signale. Zweimal die Versorgungsspannung und 
zwei voneinander unabhängige Datenleitungen.

Die Versorgungsspannung überträgt allerdings nicht nur die Leistung, 
sondern auch ein Datensignal. Dies wird durch eine Modulation der 
Versorgungsspannung (Spannung von etwa 7 bis etwa 25 Volt und Frequenz 
maximal 20 kHz) erreicht. Durch eine H-Brücke werden auf der Senderseite 
drei Zustände erzeugt: Positive Polarität, negative Polarität und Null. 
Ungefähr so wie hier beschrieben:

https://de.wikipedia.org/wiki/AMI-Code

Dieser Teil der Schaltung ist seit Jahr(zehnten) erprobt und verrichtet 
zuverlässig seinen Dienst. Jede Komponente besitzt eine 
Vollweggleichrichtung und einen Pufferkondensator um die Nulllage zu 
überbrücken. Die Datengewinnung erfolgt einfach durch zwei 
Spannungsteiler und Anschluss an den Digitalteil der Schaltung.

Auf den beiden, bislang ungenutzten, Datenleitungen soll nun allerdings 
eine Art Rückkanal (einfaches Protokoll wie UART etwa 10 kBaud) 
realisiert werden.

Der erste Versuch bestand darin eine Datenleitung als RX und eine als TX 
zu definieren und direkt Digitalsignale (0 bzw. 5 Volt) anzulegen. Dies 
funktionierte allerdings nur, wenn auch eine Masseverbindung zwischen 
den beiden beteiligten Komponenten besteht, was jedoch in der Realität 
nicht der Fall ist.

Schließt man ein Oszilloskop an die Datenleitung an, sieht man, wie im 
Takt der Versorgungsspannung kurze Störungen (t < 2 µs) hervorgerufen 
werden. Diese Störungen führe ich auf die Bauteiltoleranzen der Dioden 
zur Gleichrichtung zurück.

Im zweiten Versuch wurde eine differentielle Datenübertragung gewählt 
(mit RS485-Bustreibern), aber auch hier traten erneut die 
Gleichtaktstörungen auf, sofern keine Masseverbindung bestand.

Ich gebe zu, dass ich mich mit Analogtechnik nicht wirklich auskenne. 
Daher meine Frage an euch:

Wie kann ohne Masseverbindung hier eine Signalübertragung erreicht 
werden, die gegenüber Gleichtaktstörungen unempfindlicher ist?

Die einfachste Lösung, nämlich eine zusätzliche Masseverbindung, ist aus 
verschiedenen Gründen (Kompatibilität, Steckersystem usw.) nicht 
realisierbar.

Mir schwebt momentan eine Art Stromschnittstelle vor, da ich davon 
ausgehe, dass die Störimpulse nicht genügend Leistung aufbringen können, 
um hier eine Verfälschung der Daten hervor zu rufen.

Aber wie kann dies, möglichst einfach, realisiert werden? Gibt es für so 
etwas fertige IC? Am liebsten wäre mir ein Bauteil, welches so einfach 
wie ein Bustreiber angewendet werden kann.


Viele Grüße,

Michael

von Falk B. (falk)


Lesenswert?

@ Michael (Gast)

>sondern auch ein Datensignal. Dies wird durch eine Modulation der
>Versorgungsspannung (Spannung von etwa 7 bis etwa 25 Volt und Frequenz
>maximal 20 kHz) erreicht.

Ganz schön viel Spannungshub. Sowas hat man vor 30 Jahren mal gemacht, 
heute kommt man mit DEUTLICH weniger aus.

>Auf den beiden, bislang ungenutzten, Datenleitungen soll nun allerdings
>eine Art Rückkanal (einfaches Protokoll wie UART etwa 10 kBaud)
>realisiert werden.

>Der erste Versuch bestand darin eine Datenleitung als RX und eine als TX
>zu definieren und direkt Digitalsignale (0 bzw. 5 Volt) anzulegen.

Das wird schwierig ohne echte Masse.

>den beiden beteiligten Komponenten besteht, was jedoch in der Realität
>nicht der Fall ist.

eben ;-)

>Schließt man ein Oszilloskop an die Datenleitung an, sieht man, wie im
>Takt der Versorgungsspannung kurze Störungen (t < 2 µs) hervorgerufen
>werden. Diese Störungen führe ich auf die Bauteiltoleranzen der Dioden
>zur Gleichrichtung zurück.

Nö.

>Im zweiten Versuch wurde eine differentielle Datenübertragung gewählt
>(mit RS485-Bustreibern), aber auch hier traten erneut die
>Gleichtaktstörungen auf, sofern keine Masseverbindung bestand.

Klar.

>Wie kann ohne Masseverbindung hier eine Signalübertragung erreicht
>werden, die gegenüber Gleichtaktstörungen unempfindlicher ist?

Mit AC-Kopplung über einen Trafo. Ethernet & Co machen es auch.
Wobei ein normale, differentielle Übertragung ala RS485 auch gehen 
sollte, die Gleichtaktstörungen interessieren einen DIFFERENTIELLEN 
Empfänger kaum!
Denn es gibt ein indirekte Masseverbindung, wenn gleich die durch die 
AMI-Modulation halt "versaut" ist mit Gleichtaktstörungen.

>etwas fertige IC? Am liebsten wäre mir ein Bauteil, welches so einfach
>wie ein Bustreiber angewendet werden kann.

MAX485 & Co.

von Michael (Gast)


Lesenswert?

Falk Brunner schrieb:
> Ganz schön viel Spannungshub. Sowas hat man vor 30 Jahren mal gemacht,
> heute kommt man mit DEUTLICH weniger aus.

Aus dieser Zeit stammt die Grundkonzeption ja auch (etwa 1982).

>>Schließt man ein Oszilloskop an die Datenleitung an, sieht man, wie im
>>Takt der Versorgungsspannung kurze Störungen (t < 2 µs) hervorgerufen
>>werden. Diese Störungen führe ich auf die Bauteiltoleranzen der Dioden
>>zur Gleichrichtung zurück.
>
> Nö.

Da du dich auskennst, woher kommt die Störung? Also welches Bauteil ist 
die eigentliche Ursache?

> Wobei ein normale, differentielle Übertragung ala RS485 auch gehen
> sollte, die Gleichtaktstörungen interessieren einen DIFFERENTIELLEN
> Empfänger kaum!
> Denn es gibt ein indirekte Masseverbindung, wenn gleich die durch die
> AMI-Modulation halt "versaut" ist mit Gleichtaktstörungen.

Würde es auch mit einem CAN-Bustreiber funktionieren? Beispielsweise dem 
MCP2561 von Microchip? Das wäre nett, da man für die keine 
Enable-Leitung braucht. Anders als die RS485-Treiber sprechen die auch 
erst bei Differenzen von mehr als 400mV an (nicht 200mV wie bei RS485).

So wie ich das Datenblatt verstehe wären die Eingänge dann auch 
Kurzschlussfest (bis zu +/-58 Volt Fremdspannung werden offenbar 
toleriert?)

von Uwe (Gast)


Lesenswert?

Hi,
>Im zweiten Versuch wurde eine differentielle Datenübertragung gewählt
>(mit RS485-Bustreibern), aber auch hier traten erneut die
>Gleichtaktstörungen auf, sofern keine Masseverbindung bestand.
Das sollte eigentlich auch ohne GND gehen. Wie war denn der Bus 
abgeschlossen? So 120R ist schon fast Standard(hängt vom Kabel ab).
Wie lang ist das Kabel überhaupt?

Viel Erfolg, Uwe

von Falk B. (falk)


Lesenswert?

@ Michael (Gast)

>Da du dich auskennst, woher kommt die Störung? Also welches Bauteil ist
>die eigentliche Ursache?

Ohne Schaltplan und Screenshots ist das eher schwer zu diskutieren.

>Würde es auch mit einem CAN-Bustreiber funktionieren?

Könnte sein.

>So wie ich das Datenblatt verstehe wären die Eingänge dann auch
>Kurzschlussfest

Eingänge sind immer kuzschlussfest. Du meist eher geschützt gegen 
Überspannung.

> (bis zu +/-58 Volt Fremdspannung werden offenbar toleriert?)

Ja, kann sein.

von Michael (Gast)


Lesenswert?

Erst einmal vielen Dank für die bisherigen Antworten!

Uwe schrieb:
> Das sollte eigentlich auch ohne GND gehen. Wie war denn der Bus
> abgeschlossen? So 120R ist schon fast Standard(hängt vom Kabel ab).
> Wie lang ist das Kabel überhaupt?

Das Kabel ist zwischen 20cm und 50cm lang. Insgesamt sind höchstens zehn 
Komponenten auf diese Art und Weise miteinander verbunden. Das Kabel 
wäre demnach in Summe zwischen knapp unter 2m und knapp unter 5m lang.

Vermutlich waren die Widerstände falsch dimensioniert. 120 Ohm waren es 
auf keinen Fall, viel hochohmiger, so, dass etwa 10mA Strom flossen.

Falk Brunner schrieb:
> Ohne Schaltplan und Screenshots ist das eher schwer zu diskutieren.

Genaue Schaltpläne liegen mir für die Ursprungsschaltung nicht vor. Die 
H-Brücke auf der Senderseite verwendet je einen Si9948 und Si9945. Zur 
Gleichrichtung werden auf der Empfängerseite vier SS26 eingesetzt. 
Zusätzlich einmal 4,7µF keramisch und einmal 22µF keramisch zur Glättung 
der Nulllage.

>>So wie ich das Datenblatt verstehe wären die Eingänge dann auch
>>Kurzschlussfest
>
> Eingänge sind immer kuzschlussfest. Du meist eher geschützt gegen
> Überspannung.

Richtig.

>> (bis zu +/-58 Volt Fremdspannung werden offenbar toleriert?)
>
> Ja, kann sein.

Gilt das dann auch im Falle der Ausgabe? Also wenn beispielsweise CANH 
oder CANL gegen 24 Volt kurzgeschlossen werden, obwohl der Baustein 
treibt?

von Günter Lenz (Gast)


Lesenswert?

Optokoppler verwenden, dann gibt es keine Gleichtaktstörungen,
und eine Masseverbindung ist auch nicht nötig.

von Michael (Gast)


Angehängte Dateien:

Lesenswert?

Ich habe mir weitere Gedanken zu dem Thema gemacht und wurde von einem 
Kollegen darauf hingewiesen, dass es mit einem Stromspiegel 
funktionieren würde.

Was meint ihr? Würde die angehängte Schaltung so umsetzbar sein?

Aus meiner Sicht wäre es günstig, da hier die Datenleitungen nur relativ 
hochohmig miteinander verbunden wären und so Überspannung und 
Kurzschluss aus der Betrachtung herausfielen.

Die Bustreiber hätten weiterhin den Nachteil, dass auch im Ruhezustand 
pro IC immer 10mA Strom verschwendet würden.

von Falk B. (falk)


Lesenswert?

@ Michael (Gast)

>Ich habe mir weitere Gedanken zu dem Thema gemacht und wurde von einem
>Kollegen darauf hingewiesen, dass es mit einem Stromspiegel
>funktionieren würde.

Warum willst du einen differentiellen Empfänger schlecht nachbauen?

>Die Bustreiber hätten weiterhin den Nachteil, dass auch im Ruhezustand
>pro IC immer 10mA Strom verschwendet würden.

Nö. Ein MAX485 zieht weniger als 1mA. Den Strom frisst nur die 
Terminierung. Die braucht man aber bei RS485 nicht zwingend, schon gar 
nicht bei niedrigen Baudraten. Ausserdem kann man den Sender abschalten 
(tristate).

von Michael (Gast)


Lesenswert?

Falk Brunner schrieb:
> Warum willst du einen differentiellen Empfänger schlecht nachbauen?

Ganz einfach: Ich habe festgestellt, dass die Empfänger in den 
CAN-Bus-Treibern nicht funktionieren, wenn CANH und CANL vertauscht 
sind.

> Nö. Ein MAX485 zieht weniger als 1mA. Den Strom frisst nur die
> Terminierung. Die braucht man aber bei RS485 nicht zwingend, schon gar
> nicht bei niedrigen Baudraten. Ausserdem kann man den Sender abschalten
> (tristate).

Das mag sein, aber hier ist das Problem noch schlimmer: Bei RS485 wird 
die Polarität ausgewertet A>B bzw. A<B. Dann wären die Daten invertiert.

Bei CAN-Bus ging ich davon aus, dass nur die Differenz ausgewertet wird. 
Das ist aber leider nicht der Fall, es ist nämlich nur positive 
Differenz erlaubt keine negative.

Da die Komponenten  einmal so herum und einmal so herum aneinander 
gesteckt werden können, gibt es keine Gewähr, dass die Leitungen immer 
gleichsinnig verbunden sind.

Der Empfänger müsste daher auf die Differenz schauen (und zwar 
unabhängig vom Vorzeichen) und sobald diese größer als ein bestimmter 
Schwellenwert ist beispielsweise "0" ausgeben und andernfalls "1".

Mit der Schaltungsidee aus dem vorangegangenen Beitrag wäre dies kein 
Problem. Hiermit könnte garantiert werden, dass immer RX mit TX und TX 
mit RX verbunden ist.

Ich habe schon befürchtet, dass hierfür keine Standardbauteile gibt...

von Falk B. (falk)


Lesenswert?

@ Michael (Gast)

>Das mag sein, aber hier ist das Problem noch schlimmer: Bei RS485 wird
>die Polarität ausgewertet A>B bzw. A<B. Dann wären die Daten invertiert.

Sicher.

>Da die Komponenten  einmal so herum und einmal so herum aneinander
>gesteckt werden können, gibt es keine Gewähr, dass die Leitungen immer
>gleichsinnig verbunden sind.

Dann musst du etwas tricksen oder anders kodieren. Man kann mittel XOR 
Gatter die Polarität des Empfängers drehen. Wenn man also kein 
sinnvolles Signal bekommt, weil es invertiert ist, invertiert man 
mittels XOR Gatter und hat dann ein richtig gepoltes Empfangssignal.
Oder man verwendet eine passende Kodierung ala CMI, Manchester etc., die 
polaritätunabhängig ist.

>Der Empfänger müsste daher auf die Differenz schauen (und zwar
>unabhängig vom Vorzeichen)

Das ist aber eine Frage der Logikauswertung und nicht des 
differentiellen Empfängers.

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.