Forum: Mikrocontroller und Digitale Elektronik Problem bei der optischen Übertragung des CAN-Signals


von Max M. (centech)


Angehängte Dateien:

Lesenswert?

Hallo,
ich arbeite an einer Schnittstelle, die das CAN-Signal optisch 
überträgt. Die optische Übertragung findet folgendermaßen statt:

Über einen CAN-Transceiver wird das CANH/CANL Signal in ein digitales 
Signal umgewandelt. Dieses wird dann auf eine LED gelegt. Auf der 
anderen Seite befindet sich eine Photodiode die das Signal der LED 
aufnimmt. Ein Komparator arbeitet das Signal dann zu einem sehr schönen 
0/5V Signal auf. Dieses wird dann wieder an einen CAN-Transceiver 
angeschlossen und in CANL/CANH umgewandelt.

Das klappt an sich. Das Problem das ich nun habe ist, dass wenn kein 
Signal über die Photodiode empfangen wird, der Komparator logischerweise 
ein 0V Signal ausgibt und auf den TXD-Pin des CAN-Transceivers gibt – 
dadurch wird der CAN-BUS aber dominant, obwohl es ja eigentlich nichts 
zu übertragen gibt.

Ich habe auch schon versucht das Signal vom Komparator einfach 
invertiert auszugeben. Das klappt soweit und die Umwandlung/Übertragung 
funktioniert. Nur das das CANH/CANL Signal dann genau gespiegelt – und 
damit wertlos ist.

Ich hoffe ich konnte mein Problem soweit deutlich machen. Ich suche nach 
einer Möglichkeit den TXD Pin des CAN-Transceivers immer high zu halten, 
außer es findet gerade eine Übertragung über die Photodiode statt.

viele Grüße,
Max

von (prx) A. K. (prx)


Lesenswert?

Licht=dominant, vorne und hinten, dann spiegelt nichts.

Freilich ist CAN bidirektional. Wie stellst du dir das vor? Einfach 2 
Strecken in Gegenrichtung klappt nicht.

: Bearbeitet durch User
von Max M. (centech)


Lesenswert?

A. K. schrieb:
> Also Licht=dominant. Vorne und hinten.
>
> Freilich ist CAN bidirektional. Wie stellst du dir das vor? Einfach 2
> Strecken in Gegenrichtung klappt nicht.

Du meinst, dass ich dann das CANL/CANH Signal nochmal invertiere? Ja 
dann hätte ich zwar das richtige Ausgangssignal - aber wie du schon 
sagst, wäre das Eingangssignal ja dann auch gespiegelt. Geht also auch 
nicht hmm...

von (prx) A. K. (prx)


Lesenswert?

Max M. schrieb:
> Ich hoffe ich konnte mein Problem soweit deutlich machen. Ich suche nach
> einer Möglichkeit den TXD Pin des CAN-Transceivers immer high zu halten,
> außer es findet gerade eine Übertragung über die Photodiode statt.

Bahnhof. TxD ist seitens des Transceivers ein Eingang.

Max M. schrieb:
> Du meinst, dass ich dann das CANL/CANH Signal nochmal invertiere? Ja
> dann hätte ich zwar das richtige Ausgangssignal - aber wie du schon
> sagst, wäre das Eingangssignal ja dann auch gespiegelt. Geht also auch
> nicht hmm...

Auch hier Bahnhof. Das kommt bei raus, wenn man Schaltungen in Prosa 
beschreibt.

: Bearbeitet durch User
von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

A. K. schrieb:
> Freilich ist CAN bidirektional. Wie stellst du dir das vor?
Würde mich auch interessieren...

von Max M. (centech)


Lesenswert?

Lothar Miller schrieb:
> A. K. schrieb:
>> Freilich ist CAN bidirektional. Wie stellst du dir das vor?
> Würde mich auch interessieren...

Ich habe zwei Platinen auf der jeweils eine LED, eine Photodiode sowei 
ein CAN-Transceiver ist. Diese sind gegenüber angebracht.


A. K. schrieb:
> Max M. schrieb:
>> Ich hoffe ich konnte mein Problem soweit deutlich machen. Ich suche nach
>> einer Möglichkeit den TXD Pin des CAN-Transceivers immer high zu halten,
>> außer es findet gerade eine Übertragung über die Photodiode statt.
>
> Bahnhof. TxD ist seitens des Transceivers ein Eingang.
>
> Max M. schrieb:
>> Du meinst, dass ich dann das CANL/CANH Signal nochmal invertiere? Ja
>> dann hätte ich zwar das richtige Ausgangssignal - aber wie du schon
>> sagst, wäre das Eingangssignal ja dann auch gespiegelt. Geht also auch
>> nicht hmm...
>
> Auch hier Bahnhof. Das kommt bei raus, wenn man Schaltungen in Prosa
> beschreibt.

Wie kannst du nix verstehen aber in deinem ersten Beitrag drauf 
antworten?
TXD ist der Eingangspin vom Transceiver, richtig. Und die Spannung die 
ich dort über meinen Komparator draufgebe ist das Signal das ich 
übertragen möchte. Findet allerdings keine Übertragung statt sollen dort 
5V angelegt sein, damit der BUS nicht dominant wird.

von (prx) A. K. (prx)


Lesenswert?

Max M. schrieb:
> Ich habe zwei Platinen auf der jeweils eine LED, eine Photodiode sowei
> ein CAN-Transceiver ist. Diese sind gegenüber angebracht.

Und die arbeiten antiparallel? Das latcht dominanten Pegel auf ewig.

> Wie kannst du nix verstehen aber in deinem ersten Beitrag drauf
> antworten?

Ich hatte versucht zu erraten, was du meinst.

: Bearbeitet durch User
von Peter D. (peda)


Lesenswert?

Ich trenne optisch immer vor dem Transceiver, d.h. es geht direkt von 
RXD und TXD des CAN-MC in die Optokoppler.

Wenn die Signale erstmal zu CANL/CANH verwurstet sind, ist es zu spät.

von (prx) A. K. (prx)


Lesenswert?

Max M. schrieb:
> TXD ist der Eingangspin vom Transceiver, richtig. Und die Spannung die
> ich dort über meinen Komparator draufgebe ist das Signal das ich
> übertragen möchte. Findet allerdings keine Übertragung statt sollen dort
> 5V angelegt sein, damit der BUS nicht dominant wird.

Und wo ist das Problem? Auf der Sendeseite muss "Licht" für dominant 
stehen, also für RxD: 0=hell, 1=dunkel. Auf der Empfängerseit muss 
"Licht" für dominant stehen, also für den Ausgang des Komparators: 
0=hell, 1=dunkel.

von Max M. (centech)


Lesenswert?

Peter Dannegger schrieb:
> Ich trenne optisch immer vor dem Transceiver, d.h. es geht direkt von
> RXD und TXD des CAN-MC in die Optokoppler.
>
> Wenn die Signale erstmal zu CANL/CANH verwurstet sind, ist es zu spät.

Das Problem hierbei ist, dass ich eine optische Schnittstelle habe die 
zwei CAN-BUSSE verbinden soll. Aber jeder CAN-BUS kann mehrer MCU haben. 
Deswegen der Umweg über den Transceiver auf der Schnittstellenplatine.

A. K. schrieb:
> Max M. schrieb:
>> TXD ist der Eingangspin vom Transceiver, richtig. Und die Spannung die
>> ich dort über meinen Komparator draufgebe ist das Signal das ich
>> übertragen möchte. Findet allerdings keine Übertragung statt sollen dort
>> 5V angelegt sein, damit der BUS nicht dominant wird.
>
> Und wo ist das Problem? Auf der Sendeseite muss "Licht" für dominant
> stehen, also für RxD: 0=hell, 1=dunkel. Auf der Empfängerseit muss
> "Licht" für dominant stehen, also für den Ausgang des Komparators:
> 0=hell, 1=dunkel.

Ah, das ist wirklich ein guter hinweis, d.h. ich invertiere das Signal 
sowohl beim Komparator als auch bei der LED schaltung, schade nur, dass 
ich dann hier ein weiteres Bauteil benötige.
Danke für den Hinweis.

von (prx) A. K. (prx)


Lesenswert?

Max M. schrieb:
> Das Problem hierbei ist, dass ich eine optische Schnittstelle habe die
> zwei CAN-BUSSE verbinden soll.

Ja, so klang es. Nur überleg jetzt mal was passiert, wenn in deiner 
antiparallelen Strecke dominant übertragen wird. Das funktioniert prima, 
beide Seiten sind dominant. Nur wie du dein Ding dann wieder auf 
rezessiv kriegst, dass erschliesst sich schlecht.

Such mal nach CAN Repeater. Bisschen mehr Logik muss da schon rein.

: Bearbeitet durch User
von 5V+9V=14V (Gast)


Lesenswert?

das wird aber nicht reichen.
schau dir das mal an:
Beitrag "CAN Repeater / Optoadapter mit zwei Transceivern und Optokopplern"

von Peter D. (peda)


Lesenswert?

Für I2C gibt es spezielle Trenn-ICs, die erkennen, von welcher Seite das 
dominante Signal kommt, die andere Richtung wird solange gesperrt.
Beim Wechseln der Richtung gibt es dann immer erst einen kurzen 
High-Puls auf der anderen Seite.

Könnte man beim CAN auch so machen, aber ob dann noch die Spezifikation 
eingehalten wird?

von Max M. (centech)


Lesenswert?

puh, ja jetzt leuchtet mir mein denkfehler ein. das ist allerdings schon 
ein anständiges problem. werd mal sehen ob mir dazu mehr einfällt

Vielleicht könnte man das Senden unterbinden wenn man gerade etwas 
empfängt - aber dann kann es wie angesprochen ja auch zu problemen 
kommen.

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.