Forum: Mikrocontroller und Digitale Elektronik CAN Repeater / Optoadapter mit zwei Transceivern und Optokopplern


von Benjamin (Gast)


Angehängte Dateien:

Lesenswert?

Hallo,
dass die Schaltung im Anhang nicht funktionieren kann ist mir 
mittlerweile klar, da die 5V auf den Rx und Tx Leitungen fehlen die 
normalerweise vom CAN-Controller gespeist werden.
Zwei PCA82C250
( http://www.nxp.com/acrobat/datasheets/PCA82C250_5.pdf )
mit 2 invertierenden Optokopplern 6N137 die jeweils 5V anlegen 
funktioniert es auch nicht.
Dann habe ich versucht eine Leitung zu trennen, es funktionierte in eine 
Richtung.
Somit kam ich zu dem Schluss das in den CAN-Controllern noch eine Logik 
integriert sein muss welche beim empfang von Botschaften auf der Rx 
Leitung das senden über Tx zurückhält, da der CAN-Bus gleichzeitiges 
Senden und Empfangen nicht ermöglicht.
Es muss allerdings eine Logikschaltung (mit Speicher um das Senden von 
Nachrichten zu "Puffern"?) geben, die das Tx Signal beim Empfang von 
Nachrichten zurückhält.
Sonst würde es das:
http://www.peak-system.com/db/de/pcanoptoadapter.html
nicht geben.

Die Suche habe ich schon bemüht, allerdings konnte ich keine passenden 
Hinweise finden.
Es wäre toll wenn mir jemand Tipps oder Beispiele dazu geben könnte.
Vielen Dank, Benjamin

PS.: Bitte keine Hinweise zum  AMIS-42700, da ich galvanisch trennen 
muss.

von Andreas K. (a-k)


Lesenswert?

Dein Problem ist nicht die Spannung, sondern das Prinzip. Denn damit 
baust du einen 1-Bit Speicher auf: einmal dominant immer dominant.

von Andreas K. (a-k)


Lesenswert?

Ist es wirklich zwingend, innerhalb des CAN Busses galvanisch zu 
trennen? Weitaus einfacher ist es ja, die Nodes vom CAN Bus galvanisch 
zu trennen.

von Benjamin (Gast)


Lesenswert?

Ja ist leider zwingend.

von Benjamin (Gast)


Lesenswert?

>Dein Problem ist nicht die Spannung, sondern das Prinzip. Denn damit
>baust du einen 1-Bit Speicher auf: einmal dominant immer dominant.

Könntest du das bitte etwas genauer erklären?

von Martin (Gast)


Lesenswert?

1 A ist dominat und gibt dies an B weiter.
2 B ist also auch dominat und gibt dies an A weiter.

usw. usf.

von Benjamin (Gast)


Lesenswert?

Danke für die Erklärung.
Gibt es eine Möglichkeit dies zu verhindern?

von Andreas K. (a-k)


Lesenswert?

Ich denke schon. I2C hat ein ähnliches Problem und da gibt es Lösungen. 
Nur kenne ich keine fertige Lösung für CAN.

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


Lesenswert?

>>Ist es wirklich zwingend, innerhalb des CAN Busses galvanisch zu trennen?
>Ja ist leider zwingend.
Weshalb?

Potentialtrennung?
Gehört dorthin, wo die Potentialgrenze ist, nämlich an den betroffenen 
Busteilnehmer.

Oder max. Leitungslänge....?
Wenn es die Leitungslänge betrifft (frei nach dem Motto: dann kann ich 
viele Busse hintereinanderschalten), hilft dir so ein "passiver 
Repeater" (falls es sowas überhaupt gibt...) nicht weiter. Sondern der 
"stiehlt" dir durch seine Laufzeitverzögerung sogar noch ein paar Meter.

von Benjamin (Gast)


Lesenswert?

Es ist zwingend weil ein Simulationsrechner an ein Fahrzeugbordnetz 
angeschlossen werden soll, dies aber energetisch wenig bis garnicht 
beeinflusst werden soll. Also keine reale Leitung und keine falsche 
Masse über CAN.

von Andreas K. (a-k)


Lesenswert?

Es gibt diese Dinger ja fertig zu kaufen, wie du selbst oben gezeigt 
hast. Also warum nicht eben dies tun?

von Benjamin (Gast)


Lesenswert?

Es müsste eine ~5m-10m lange Leitung vom der Anschlusstelle bis zum 
Simulationrechner gelegt werden.

von Benjamin (Gast)


Lesenswert?

>Es gibt diese Dinger ja fertig zu kaufen, wie du selbst oben gezeigt
>hast. Also warum nicht eben dies tun?

Weil ich das Ganze gerne auf einer sowieso vorhandenen CAN Platine mit 
DC/DC-Wandler und Optokopplern als Zusatzschnittstelle integrieren 
würde.

von Benjamin (Gast)


Lesenswert?

Und weil ich dachte es wäre einfach :)

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


Lesenswert?

>dies aber energetisch wenig bis garnicht beeinflusst werden soll.
Das heisst aber im logischen Schluss, dass der Simulationsrechner kein 
dominantes Bit senden darf (sonst nähme er ja aktiv Einfluss auf den 
Bus).
Du willst nach deiner Definition also einen CAN-Sniffer.
Dann interessiert dich aber nur die Empfangsrichtung.

>~5m-10m lange Leitung ... bis zum Simulationrechner gelegt werden.
Welche Baudrate hast du?
Darfst du so lange Stichleitungen anbringen?

Ein Stichwort:
AMIS-42700 (kann als CAN Repeater betrieben werden)

von Benjamin (Gast)


Lesenswert?

Ich will hauptsächlich einen Sniffer, muss aber gelegentlich auch 
Botschaften einstreuen können.
Habe nur 100kBaud, da darf ich diese Längen schon legen, will sie aber 
wie gesagt nicht direkt an den vorhandenen Bus klemmen.

So jetzt mal wieder zum Thema, ich muss sowas selber bauen, Peak Systems 
hat nur eine High-Speed Lösung, habe gerade angerufen.
Low-Speed bauen sie nicht entkoppelt, weil dabei die Eindrahtmöglichkeit 
verloren geht.
Ich muss das aber unbedingt mit Low-Speed Transceivern haben.

Wenn ich während eine Nachricht zwischen den Transceivern in eine 
Richtung gesendet wird, die andere Richtung blockiere, hätte ich doch 
das Problem mit der "dominant-Schleife" gelöst, oder?
Dann wäre noch zu überlegen was passiert wenn die Nachricht eigentlich 
gegen eine Dominante von der anderen Seite verlieren müsste.

Bin ehrlichgesagt ein wenig Planlos, da ich keine Infos zur 
Kommunikation zwischen Transceiver und Controller und 
Trnasceiver-Interna finde.
Ohne solche Infos wird es wahrscheinlich schwierig.
Hat vielleicht jemand ein paar URLs?

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


Lesenswert?

Da war das schon mal:

Beitrag "Re: Can-Bus mit Verzweigungen"

Diese Repeater-Funktion sieht recht aufwendig aus.

von Benjamin (Gast)


Lesenswert?

Danke das hilft schonmal.

von Benjamin (Gast)


Angehängte Dateien:

Lesenswert?

Hier ist das Bild nochmal in Groß.
Das abgebildete Delay muss ich warscheinlich aus dem Datenblatt meines 
Transceivers ablesen.

von Karlheinz (Gast)


Lesenswert?

Die Schaltung aus dem vorhergehenden Post 
(Beitrag "Re: CAN Repeater / Optoadapter mit zwei Transceivern und Optokopplern") enthält zwei 
Delays. Wie muß ich die Delays festlegen bzw. berechnen? Hat jemand 
diese Schaltung schon einmal aufgebaut und eingesetzt?

von mp (Gast)


Lesenswert?

schau dir mal ISO1050DUBR von Ti an

von Karlheinz (Gast)


Lesenswert?

@ mp

Interessante Baustein. Leider erfüllt er nicht die Funktion der oben 
genannten Schaltung.

von Karlheinz (Gast)


Angehängte Dateien:

Lesenswert?

Hier die Simulation der Schaltung:

Die Gatterlaufzeiten sind aus den Datenblättern entnommen. A14 und A19 
sind die Delays und sind auf dem Steckbrett je 3 Inverter. A19 ist ein 
Buffer, der die Laufzeit auf dem CAN-Bus nachbildet. V1 sendet ein paar 
dominante Nullen.

von Sascha (Gast)


Lesenswert?

Hallo,
ich wollte mal fragen ob das Problem gelöst wurde und eine 
funktionierende Schaltung existiert?

von Helmut -. (dc3yc)


Lesenswert?

Sascha,

die gibt es (wir realisieren es mit einem kleinen GAL). Ausserdem gibt 
es eine Beschreibung im Buch von Wolfhard Lawrenz "CAN Grundlagen und 
Praxis" vom Hüthig Verlag. Zur Implementation: es wird eine synchrone 
Logik mit Speicher benötigt.

von Sascha (Gast)


Lesenswert?

ui, das ging aber schnell.. :)
Danke schonmal fuer die super schnelle Antwort!

Das Buch ist leider nicht wirklich verfuegbar..
Und ich brauche recht schnell eine Loesung.

Du kannst mir nicht zufaellig einen Schaltplan, Blockschaltbild, 
Erklaerung geben damit ich das realisieren kann? =)

Danke schonmal im Vorraus.

von Helmut -. (dc3yc)


Lesenswert?

Neee, das darf ich dir aus Copyrightgründen nicht sagen. Aber wenn du 
einigermaßen fit bist, hast du das in einem halben Tag heraus.

von Sascha E. (mxii)


Lesenswert?

weiß garnicht wo ich anfangen soll ..
Versuche es einfach mal anhand des Blockschaltbildes 
<iso-11898-2-repeater.gif> aufzubauen ..
Wie und wo ich dann meine galvanische Trennung einbaue kommt dann im 
zweiten Schritt ..
Wenn es so garnicht will, vllt haste dann ja noch eine kleinen Tipp 
parat :P

von Markus M. (Firma: EleLa - www.elela.de) (mmvisual)


Lesenswert?

Es geht auch so:

AMIS42770 >> ADUM3201 >> AMIS42770


Erster AMIS wndelt die CAN Daten als TTL Signal
ADUM kann die TTL Signale galvanisch getrennt weiterleiten
Zweiter AMIS wird mit DCDC Wandler versorgt.

Ein AMIS hat zwar zwei CAN Buse, der zweite wird nicht benötigt. Sondern 
nur das Feature dass man zwei AMIS Chips verbinden kann.

(Siehe Pins Text / Rint)

von Martin (Gast)


Lesenswert?

... Ausserdem gibt es eine Beschreibung im Buch von Wolfhard Lawrenz 
"CAN Grundlagen und Praxis" vom Hüthig Verlag. Zur Implementation: es 
wird eine synchrone Logik mit Speicher benötigt. ...

In der 1. und der 3. Ausgabe von "CAN Grundlagen und Praxis" steht vom 
Repeater nichts drin. Welche Ausgabe hast du?

von Sascha E. (mxii)


Lesenswert?

Markus,

das hatte ich auch schonmal durchgespielt..
Aber der AMIS42270 ist recht teuer und nicht so gut zu beschaffen..

Lieber waere mir eine Loesung mit 2 CAN controllern und etwas logik 
dazwischen..

von Helmut -. (dc3yc)


Lesenswert?

@Martin: Seite 141/142.

von Martin (Gast)


Lesenswert?

@Helmut

Danke für den Hinweis :)

In der 1. Auflage wird tatsächlich ein elektrischer Repeater (Probleme 
etc.) kurz angerissen. Nur eine Schaltung lässt sich daraus nicht 
ableiten.

In der 3. Auflage ist der Repeater komplett gestrichen.

von Markus M. (Firma: EleLa - www.elela.de) (mmvisual)


Lesenswert?

Ich kenne eine Firme die baut solch einen Repeater, wenn Interesse 
besteht.
Galvanische Trennung usw. Was der kostet weiß ich jetzt nicht, ist aber 
sicher günstiger als selbst entwickeln.

(Der hat 4 AMIS Chips drin, einen lokalen CAN Bus, nicht getrennt, auf 4 
CAN am Ausgnang, getrennt mir 2 DCDC Wandler/Optokoppler. (2x 2 Kanäle 
vom AMIS) Das Teil wurde extra entwickelt um große Bussysteme verbinden 
zu können, getestet mit über 400 Teilnehmer.)

von Christian (Gast)


Lesenswert?

Hallo,

wollte fragen ob jmd von euch schon diese oben Zusatzschaltung schon 
einmal aufgebaut hat?!? Habe sie selbst leider noch nicht zum laufen 
gebracht. Vielleicht kann mir der eine oder andere helfen oder mir sogar 
die richtige Lösung zeigen.


Bei mir sieht die Komplettschaltung im vereinfachten Sinne so aus:


CAN <-> TJA1055 <-> Rx/Tx <-> LWL <-> Rx/Tx <-> TJA1055 <-> CAN




MfG

Christian

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.