Bits über Zweidrahtleitung

Hallo,
ich übertrage einen Bitstrom (nur 1 KBaud) über eine ca. 10 m lange Zweidrahtleitung. Diesen werte ich dann am anderen Ende der Leitung aus. Das Signal kommt allerdings nicht so an wie es abgeschickt wurde. Hat hiermit jemand Erfahrung, wie man die Übertragung verbessern/auswerten kann - Tiefpass am Empfänger ? Welche Maßnahmen ?

Danke für jeden Tipp
Franky

Hallo Franky,

ich übertrage einen Bitstrom (nur 1 KBaud) über eine ca. 10 m
lange Zweidrahtleitung. Diesen werte ich dann am anderen Ende
der Leitung aus. Das Signal kommt allerdings nicht so an wie
es abgeschickt wurde.

Das ist eigentlich normal !!

Also

  1. Wie steuerst du das Kabel an ?
  2. Was für Kabel verwendest du ?
  3. Wie ist der Empfänger aufgebaut ?

Hat hiermit jemand Erfahrung, wie man
die Übertragung verbessern/auswerten kann - Tiefpass am
Empfänger ? Welche Maßnahmen ?

Kommt drauf an, welche Art von Störung du hast!

MfG Peter(TOO)

Was heißt…

Das Signal kommt allerdings nicht so an wie es abgeschickt wurde.

?
Wie sieht der Flankenverlauf eingangs- und ausgangsseitig aus? Weißt Du überhaupt, wie er aussieht?
Vermutest Du einen kapazitiven Kurzschluss?

Gruß!
Tino

es abgeschickt wurde. Hat hiermit jemand Erfahrung, wie man
die Übertragung verbessern/auswerten kann - Tiefpass am
Empfänger ? Welche Maßnahmen ?

Hallo,

mit geringstem Aufwand einfach den Pegel anheben. 2 MAX232 reichen dafür aus, einen senderseitig, den anderen empfängerseitig.

Hallo Peter,

  • Wie steuerst du das Kabel an ? Was für Kabel verwendest du ?
    Wie ist der Empfänger aufgebaut ?

Ich habe keine Verstärkerstufe, da der Leitungswiderstand recht gering ist. Ich gehe direkt mit dem Ausgangssignal eines Controlers (5V) auf eine Zweidrahtkupferleitung (Querschnitt 0.5mm²). Der Empfänger ist ein analoges Gegenstück: Controler mit digitalem Eingangspin.
Am Eingang des Empägers habe ich mir das Signal nicht angesehen, aber es funktioniert prima mit ca. 1 Meter Kabel, aber mit 7-8 Meter wertet der Empfänger ein ganz anderes Signal aus. Verstärken bringt wohl nichts, da der Pegel selber groß genug sein dürfte. Das Kabel hat nur ein paar Ohm Widerstand. Die induktiven und kapazitiven Anteile scheinen das Signal zu verzerren ?? Die Bits werte ich im Empfänger immer zeitmittig aus; Synchronisation erfolgt über einen 0-1 Übergang zu Beginnn eines jeden Bitstromes (ca. 50bit lang)

Gruß
Franky

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Hi,

So einfach ist das leider nicht. Wichtig ist, wieviel Strom der Empfänger braucht, nicht unbedingt, wieviel Ohm die Leitung hat.

Erklärung: Angenommen, der Empfänger misst den Pegel in Volt. 5 Volt sind „1“ und 0 Volt sind „0“. Wenn der Eingang sehr hochohmig ist, sprich der Empfänger praktisch keine Leistung braucht und empfindlich ist, reichen kleinste elektromagnetische Einstreuungen, um ein Signal vorzuschwindeln. Daher werden lange serielle Leitungen gerne „stromgetrieben“. D.h.z.B. 100 mA sind „1“ und 0 mA sind „0“. Solche Ströme können von Einstreuungen nicht erzeugt werden.

Für Deinen Zweck brauchst Du also evtl. eine Treiberschaltung am Sender und eine Impedanzwandlerschaltung am Empfänger, die den Eingang niederohmig macht (was er im Moment garantiert nicht ist).

Ich nehme mal an, das ist zu kompliziert zum Basteln. Daher kannst Du es erstmal mit einem Koaxialkabel versuchen, weil Du hier keine Einstreuungen zu befürchten hast. Da kannst Du notfalls ein Fernsehantennenkabel versuchen. Hast Du nicht mal dies, hilft vielleicht bereits ein Verdrillen der beiden Leitungen.
Was auch helfen könnte, ist ein kleiner Kondensator, vielleicht ein paar 100 nF (kein Elko), der auf der Empfängerseite die beiden Leitungen verbindet. So werden schon mal hohe Frequenzen gefiltert.

Frohes Basteln
Moriarty

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Hallo Franky,

  • Wie steuerst du das Kabel an ? Was für Kabel verwendest du ?
    Wie ist der Empfänger aufgebaut ?

Ich habe keine Verstärkerstufe, da der Leitungswiderstand
recht gering ist.

Der Ohmsche Widerstand ist auch nicht das Problem.

Bei 100kBaud gehen wir mal von 1MHz Bandbreite aus.
Für dein Kabel setzen wir 100pF als Kapazität ein.
Dann ist dein Port mit 1.5kOhm belastet, hat dein Kabel 1nF sind es nur noch 150Ohm. Hinzu kommen noch Reflexionen auf dem Kabel, welche dein Signal weiter verzerren, da mit Sicherheit keine richtige Anpassung besteht.

Ich gehe direkt mit dem Ausgangssignal eines
Controlers (5V) auf eine Zweidrahtkupferleitung (Querschnitt
0.5mm²). Der Empfänger ist ein analoges Gegenstück: Controler
mit digitalem Eingangspin.

Tja, für so etwas sind beide nicht geschaffen !!

Am Eingang des Empägers habe ich mir das Signal nicht
angesehen, aber es funktioniert prima mit ca. 1 Meter Kabel,
aber mit 7-8 Meter wertet der Empfänger ein ganz anderes
Signal aus. Verstärken bringt wohl nichts, da der Pegel selber
groß genug sein dürfte.

Das Problem ist nicht der Pegel sondern der Strom (Das C des Kabels muss nämlich bei jeder Flanke umgeladen werden), den dein Port nicht bringt und die falsche Anpassung.

Das Kabel hat nur ein paar Ohm Widerstand.

Das ist auch nicht das Problem.

Die induktiven und kapazitiven Anteile scheinen
das Signal zu verzerren ??

Genau, so eine Leitung ist in Wirklichkeit ein RLC-Tiefpass.

Die Bits werte ich im Empfänger
immer zeitmittig aus; Synchronisation erfolgt über einen 0-1
Übergang zu Beginnn eines jeden Bitstromes (ca. 50bit lang)

Tja, wenn du dir die Signale ansiehst, wirst du dich nicht mehr Wundern.

Bei solchen Frequenzen gelten halt schon die HF-Regeln.
Hierbei habe ich noch gar nicht von Störungen, welche von aussen eigestreut werden gesprochen.

MfG Peter(TOO)

Naja, das geht auch einfacher und besser.
Hallo Stefen,

ein Max232 ist eigentlich nur dann eine gute Wahl, wenn Du mit einem nicht alltäglichen PC kommunizieren willst. Da so ein IC auch noch eine Menge Beschaltung braucht, ist eigenltich ein HC14 (oder ein anderers simples Logikgatter) die einfachste und zuverlässigste Lösung.

Gruß
achim

P.S.: Die optimale Wahl ist halt immer:

LeitungsImpedanz als Serienwiderstand des Senders, und als Abschlusswiderstand gegen Masse am Empfängers. Also ca. 100Ohm.

Da das ziemliche Ströme benötigt, ist in diesem Fall die einfachste Lösung:
HC-14 als Treiber und Empfänger
Am Ende der Leitung (Empfägner-Eingang) 1k gegen Masse und 1k in serie zum HC-14-Eingang
100 R Serienwiederstand am HC-14-Ausgang des Senders

Bei 100m sind so unidirektional etwa 100kBaud erreichbar.

Damit kann man auch mit jedem normalen PC kommunizieren, da hier der Umschaltpegel bei 99,9% aller RS232-Schnittstellen bei ca. 1V liegt. Und der 1k Serienwiderstand des Empfängers begrenzt den Strom und mit hilfe der internen Klimb-Dioden die Eingangsspannung, wenn man direkt einen PC anschließt.

Hallo,

Ich habe keine Verstärkerstufe, da der Leitungswiderstand
recht gering ist. Ich gehe direkt mit dem Ausgangssignal :eines Controlers (5V) auf eine Zweidrahtkupferleitung
(Querschnitt 0.5mm²). Der Empfänger ist ein analoges
Gegenstück: Controler mit digitalem Eingangspin.

Controlerausgänge sind oft sehr schwache Stromtreiber
und sind unter Umständen auch keine unsymetrisch
größerer Strom gegen Low (paar mA) aber nur sehr
geringer Strom gegen High (

Hallo Uwi,
danke für die Antwort - auch an alle anderen !

Ich nutze einen der PIC Controller, die softwaremäßig schon Pull-Ups ermöglichen und die auch aktiviert sind. Mit Übertragung über Zweidrahtleitung fehlt mir die Erfahrung; hätte nicht gedacht, dass so kurze Strecken schon solche Verfälschungen bringen. Wenn ich die Lösungen auf das ganze Problem nun zusammenfassen sollte, dann dürfte die Lösung eine senderseitige Treiberstufe mit empfangsseitigem Tiefpass sein !?

Danke und Gruß
Frank

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Hallo Franky,

Ich nutze einen der PIC Controller, die softwaremäßig schon
Pull-Ups ermöglichen und die auch aktiviert sind.

Also, der PIC ist schon perfekt, da er hohe Ströme treibt (> 10m&gt:wink:.

Wenn Du allerdings Pullups aktiviert hast, sind das genau die falschen ports, du brauchst „push-pull“-Ausgang. Open-Drains sind normalerweise einge der A-Port-Pins, wenn Du so einen hast, versuche das Design auf andere Pins zu legen.

Du kannst beim Sender halt noch ~100 Ohm Serienwiderstand einfügen, am Empfänger >= 1k Pull-Down. Dann sollten 100kBaud @ 100m problemlos möglich sein. Wenn das nicht der Fall ist, ist vielleicht

  • Dein Protokoll fehlerhaft. normale RS-232-Sios funktionieren an der maixmalen Fehlergrenze noch perfekt (3% Baudratenfehler, bzw. fast ein halbes Bit versatz). Bei eigenen Protokollen (du schreibst was von 50 bit??) sollten wir uns dass evt. mal anschauen.

  • Die Zweidrahtleitung falsch angeschlossen? Also, gibt es eventuell Potentialunterschiede? In Deinem Fall bedeutet 2-Draht hoffentlich eine Leitung ist Masse, über die wenig Strom fließt (wenige mA), und eine Datenleitung, über die halt die Daten gehen (high-low). Du arbeitest also uni-direktional, d.h. von einem Gerät wird nur gesendet, das andere empfängt nur.

Gruß
achim

Hi,

So einfach ist das leider nicht. Wichtig ist, wieviel
Strom der Empfänger braucht, nicht unbedingt,
wieviel Ohm die Leitung hat.

Das ist m.E. nicht ganz richtig.
Reflexionen sind in erste Näherung abhängig vom richtigen Leitungsabschluß. Da das i.d.R. ~100R sind, würde bei 5V natürlich "richtig strom"fließen, aber hier sollten nicht ursache/wirkung vertauscht werden. Im Zweifel also lieber 1mA an 100R (= 100mV) Signal als 10 mA an 500R (= 5VSignal).

Mit den Eingekoppelten Störungen:
erstens sind Störungen weit seltener als man denkt (im Laborbetrieb)
zweitens sind viele Störungen in erster Näherung abhängig davon, wie hochohmig ein Kabel gegebener Länge angesteuert wird. Näherungsweise können Sender-Serien- und Empfänger-Abschluß-Widerstand als parallel-geschaltet betrachtet werden. Ein Optimum (wenn man z.B. 10mA bei 5V will) besteht dabei nicht in je 250R, sondern in entweder 100R Sender/ 400R Empfänger oder auch umgekehrt, da der Gesamtwiderstand der Ansteuerung auf weniger fast 1/3 fällt.

Gruß
achim

Hi,

klar ist die Impedanz „normalerweise“ wichtig. Hier ging es aber um 1 Kilobaud. Das ist ja schon fast Gleichstrom. Wellenwiderstände etc spielen hier keine Rolle.
Daß er nach nur 10 m Kabel hier falsche Signale erhält, kann nur daran liegen, daß er einen hochohmigen Empfänger hat und irgendwelche Einstreuungen, vielleicht Netzbrummen. Daher muß er den Empfänger niederohmig machen und/oder abschirmen.
Ich wollte hier auch keine detailliert richtige Lösung anbieten, sondern eine schnelle, die das Problem vielleicht erst mal löst

Gruß
Moriarty

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Hallo,

ich übertrage einen Bitstrom (nur 1 KBaud) über eine ca. 10 m
lange Zweidrahtleitung.

Also 1 kBaud über eine 2-Drahtltg. von 10 m Länge sollte eigentlich keinerlei Problem sein - das sind schlappe 1 kHz, wenn deine Empfängerschaltung nicht auf große Flankensteilheit angewiesen ist. Also Pegel überprüfen, ggf. einen Schmitttrigger am Eingang o.ä.

Gruß, Stucki

CControl-Signale über Zweidrahtleitung
Hallo Uwi,

nur zur Information: Ich habe einen CControl, dessen DA/DE über ein Bündel von Zweidrahtltgen. (Klingelleitung) von über 10 m Länge eine Elektronik (TTL) ansteuern/einlesen. Die DA gehen über diese Leitungen direkt auf die TTL-Eingänge, spezielle Beschaltungsmassnahmen sind nicht da. Die Elektronik ist in meiner Hauptverteilung, also da wo dicke Ströme (Nachtspeicherheizung!) geschaltet werden. Bisher lief alles einwandfrei, noch nie (5 Jahre) Störungen gehabt. Allerdings übertrage ich keine „Frequenzen“, nur gelegentlich Umschaltsignale für einen MUX, um mehr DE einlesen zu können (CControl hat ja nur 16). Umschalt und Lesebefehl kommen allerdings sehr schnell nacheinander. Auch da noch nie Probleme gehabt.

Gruß Stucki

Hallo,

Ich nutze einen der PIC Controller, die softwaremäßig schon
Pull-Ups ermöglichen und die auch aktiviert sind.

Naja, so wie ich das sehe, sind diese imternen Pull-Up-W.
sehr schwach. Meist sind das FET, die als Stromquellen
geschaltet sind und nur sehr kleine Ströme liefern.
Die reichen gerade, um den Ausgängen einen definierten
Pegel bei geringer last zu geben, aber mit lange Leitungen
sieht es schnell düster aus.
Versuche also wie angegeben entweder mal richtige Pull-UP
oder nimm die richtigen Ausgänge, wie Achim vorgeschlagen
hat.
Gruß Uwi

Mit
Übertragung über Zweidrahtleitung fehlt mir die Erfahrung;
hätte nicht gedacht, dass so kurze Strecken schon solche
Verfälschungen bringen.

Mit RS232-Treibern sind auch bei 100m Leitung und 9600Baud
kaum Probleme zu erwarten.

Wenn ich die Lösungen auf das ganze Problem nun
zusammenfassen sollte, dann dürfte die Lösung eine
senderseitige Treiberstufe mit empfangsseitigem Tiefpass
sein !?

Treiber (am besten noch auf Fassung) am Ausgang von
Controlern sind schon deshalb zu empfehlen, damit man etwas robustes zwischen der Außenwelt und dem Controler hat.
Sonst kann es beim Basteln schnell mal passieren, daß
ein Port zerschossen wird, was dann evtl. viel Ärger
und Mühe macht, außerdem manchmal gar nicht richtig zu
erkennen ist.
Gruß Uwi

Hallo,

Daß er nach nur 10 m Kabel hier falsche Signale erhält, kann
nur daran liegen, daß er einen hochohmigen Empfänger hat und
irgendwelche Einstreuungen, vielleicht Netzbrummen.

das kann sein, ist aber eher unwahrscheinlich.
Schließlich hängt da ja auch noch ein Sender dran, der
normalerweise gerade nicht hochohmig ist.
Falls doch, dann tritt viel eher das Problem auf, daß
der Sender die lange Leitung nicht mehr treiben kann.

Daher muß
er den Empfänger niederohmig machen und/oder abschirmen.

Bei viel längeren Leitungen und höheren Baudraten wird
sowas sicher nötig werden, aber 10m sind noch nicht
wirklich kritisch.
Ich kann auch nur Achims Erfahrungen bestätigen, wobei
natürlich immer möglich ist, daß es noch ganz andere
Probleme gibt.
Gruß Uwi

Hallo Achim,
danke zunächst mal für die prima Antwort. Ich denke, diese wird das Problem lösen. Aber ich glaube es gibt ein Mißverständnis bzgl. der Pull-Ups. Die Pics (zumindest die PIC12XX) stellen Pull-Ups nur bei Pins im Eingangsmodus zur Verfügung. D.h. für den Empfänger ist der interne Pull-Up aktiv. Ich habe beim Empfänger keinerlei externen Widerstand nach Masse und der interne über den PIC scheint sehr groß zu sein. D.h. ich habe eine Zweidrahtleitung mit hohem Eingangswiderstand. Ich werde mal den PullUp am Eingang (Empfänger) deaktivieren und einen Widerstand (1K) gegen Masse legen und die Software entsprechend umstellen (1->0 und umgekehrt).

Vielen Dank nochmal und Gruß
Frank

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Ach nö :frowning:
Hallo,

Eingangswiderstand. Ich werde mal den PullUp am Eingang
(Empfänger) deaktivieren und einen Widerstand (1K) gegen :Masse legen und die Software entsprechend umstellen
(1->0 und umgekehrt).

ich bin zwar kein PIC-Spezi, aber so weit ich das sehe
sind die PIC-Ports tatsächlich auch nicht symetrisch.
Die können gegen Masse gut 10mA treiben aber gegen
+Betriebsspannung nur einen Bruchteil davon.
Wenn das so ist, dann sollte man eben keine niederohmigen
Pull-Down-Widerstände verwenden, sondern Pull-Up-W.

Natürlich muß immer die Betriebsspannung ordentlich
abgeblockt werden. Die Blockkondensatoren wirken dann
für hohe Freqenzen auch als Kurzschluß gegen Masse,
so daß Hf-Technisch gesehen der Pull-Up gegen +UB den
gleichen Effekt hat wie ein direkter Pull-Down gegen
eine niederohmige Masse.
Gruß Uwi