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
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.
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...
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.
A. K. schrieb: > Freilich ist CAN bidirektional. Wie stellst du dir das vor? Würde mich auch interessieren...
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.
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.
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.
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.
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.
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.
das wird aber nicht reichen. schau dir das mal an: Beitrag "CAN Repeater / Optoadapter mit zwei Transceivern und Optokopplern"
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?
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.