Forum: Mikrocontroller und Digitale Elektronik Single-Wire Can entkoppeln


von Jens (Gast)


Lesenswert?

Hallo Allerseits,
ich stehe vor einem riesengroßen Problem, bei dem ich einfach nicht mehr 
weiterkomme. Ich habe die Aufgabe einen Koppler für den Single-Wire-CAN 
zu entwerfen. Der Koppler muss also bidirektional sein und mit 2 
unterschiedlichen Pegeln klar kommen (5v/12V). Und genau das mit den 2 
Spannungen bereitet mir Schwierigkeiten.
Habt ihr vielleicht eine Idee wie man das möglichst einfach lösen 
könnte?

Vielen Dank schonmal!

Gruß,
Jens

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


Lesenswert?

Zwischen IC mit CAN und dem AU5790 SW-CAN Transceiver

- 2 Optokoppler rein
- einen DCDC-Wandler

fertig.

von (prx) A. K. (prx)


Lesenswert?

Wie I2C zeigt kann man bidirektionale O.C. Busse entkoppeln. Aber ganz 
so trivial ist das jedenfalls nicht, denn da gilt sonst "einmal dominant 
immer dominant".

Die eine oder andere für I2C vorgestellte Lösung könnte vielleicht auch 
hier funktionieren. Direkt, ohne zwischengeschaltete Transceiver.

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


Lesenswert?

Dann mache es soch so:

Ein SW-CAN >> AU5790 >> Optokoppler/DCDC Wandler >> AU5790 >> 2. Strang 
mit SW-CAN

von (prx) A. K. (prx)


Lesenswert?

Also unidirektional links nach rechts? Etwas einseitiges CAN. Wenn du 
bidirektional meinst, dann überleg mal, wie diese Konstruktion aus dem 
beiderseitigen Zustand "dominant" wieder rauskommt.

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


Lesenswert?

Natürlich 2 Optokoppler, für jede Richtung einen.

Datenblatt AU5790:
http://www.nxp.com/documents/data_sheet/AU5790.pdf

von (prx) A. K. (prx)


Lesenswert?

Also denn. Links dominant überträgt nach rechts dominant. Beide Seiten 
sind jetzt dominant. Sender geht auf rezessiv. Leitiung bleibt dominant, 
weil beide Transceiver sich stur stellen.

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


Lesenswert?

Anstatt zwei Opptokoppler kann auch ein ADUM1401 verwendet werden 
(Digital Isolator)

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


Lesenswert?

>beide Transceiver sich stur stellen
Müsste man probieren.
Eventuell eine CPU dazwischen schalten mit 2 CAN Busse die die 
Telegramme weitereicht.

von (prx) A. K. (prx)


Lesenswert?

Markus Müller schrieb:

>>beide Transceiver sich stur stellen
> Müsste man probieren.

Bischen denken reicht.

> Eventuell eine CPU dazwischen schalten mit 2 CAN Busse die die
> Telegramme weitereicht.

Yep, das geht.

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


Lesenswert?

Bei "Normalem CAN" würde ich den nehmen: AMIS42770
Gibts leider nicht für SW-CAN.

Man könnte vieleicht das machen:

SW-CAN
AU5790
ADUM1401
82C250
CAN
AMIS42770
CAN
82C250
ADUM1401
AU5790
SW-CAN

Also 7 IC's hintereinander. Vom Timing her solle es gut gehen, da SW-CAN 
nur 20KBaud maximal hat.
Dann braucht man nichts programmieren.

von (prx) A. K. (prx)


Lesenswert?

Ich würde eher dort anfangen zu suchen, denn I2C ist auf dieser Ebene 
recht ähnlich: 
http://www.mikrocontroller.net/articles/I2C#Galvanische_Trennung

von Christian H. (netzwanze) Benutzerseite


Lesenswert?

Es gibt irgendwo auch eine galvanische Trennung für 1-Wire (ich weiß nur 
nicht wo - könnte auch in einer Appnote von Dallas gewesen sein). Das 
ist ebenfalls dem SW-CAN ähnlich.

von Werner B. (werner-b)


Lesenswert?

Die wissen warscheinlich warum ihr (winziges) Teil 145 Dollar kostet.

http://www.gridconnect.com/optoadapter.html

von Jens (Gast)


Angehängte Dateien:

Lesenswert?

Also 7 IC's hintereinander wird dann wahrscheinlich doch etwas ins Geld 
gehen. Ich hatte mir das eher wie im Anhang vorgestellt. Da würde jetzt 
eben noch eine Pegelerkennung fehlen die, falls mal 12V über den Bus 
kommen, die Spannung auf 5V runter regelt und die Info das 12V wieder 
raus sollen auf die Gegenseite überträgt. Oder kennt ihr Logiken/Koppler 
die mit 5 und mit 12V klarkommen?

von Joerg W. (joergwolfram)


Lesenswert?

Bei den niedrigen Bitraten kann man das auch einfacher lösen. Dazu 
braucht man nur einen halbwegs schnellen Mikrocontroller nebst 2 
passenden Bustreiber-Bausteinen, ich hab das mal gemacht um zwei LIN 
Busse galvanisch zu trennen. Die sind ja ähnlich gestrickt, nur dass 
Dominant- und Rezessivpegel genau umgedreht sind.
Der Controller tastet sehr schnell beide Leitungen ab. Ist eine 
dominant, schaltet er die andere auch auf dominant und tastet daraufhin 
nur die erste dominat empfangene Leitung ab. Wechselt diese wieder nach 
rezessiv, wird auch die zweite Leitung rezessiv geschaltet und der 
Controller springt wieder in die Grundschleife zurück, in der er beide 
Leitungen abtastet.
Man könnte das sicher auch mit einem kleinen CPLD realisieren, wobei man 
abwechselnd abtasten oder eine Leitung priorisieren muss.

Jörg

von (prx) A. K. (prx)


Lesenswert?

Joerg Wolfram schrieb:

> Der Controller tastet sehr schnell beide Leitungen ab. Ist eine
> dominant, schaltet er die andere auch auf dominant und tastet daraufhin
> nur die erste dominat empfangene Leitung ab. Wechselt diese wieder nach
> rezessiv, wird auch die zweite Leitung rezessiv geschaltet und der
> Controller springt wieder in die Grundschleife zurück, in der er beide
> Leitungen abtastet.

Das müsste eigentlich zu einem Glitch führen, wenn in der 
Arbitrationsphase beidseitig aktiv dominant gesetzt ist. Wenn der Erste 
davon auf rezessiv geht, dann geht dort die Leitung kurz auf rezessiv, 
bis von der anderen Seite wieder das dominante Signal kommt.

von Joerg W. (joergwolfram)


Lesenswert?

Dazu müssen beide Seiten nahezu gleichzeitig anfangen zu senden und der 
dominate Pegel der niedriger priorisierten Nachricht zuerst erkannt 
wird.
Das führt dann auch zu einem Glitch, allerdings kurz nach einem 
Bitwechsel. Da bei CAN meist bei ca. 80% Bitzeit abgetastet wird, sollte 
das eigentlich keine Störungen bei der Kommunikation hervorrufen.

Jörg

von (prx) A. K. (prx)


Lesenswert?

Joerg Wolfram schrieb:

> Das führt dann auch zu einem Glitch, allerdings kurz nach einem
> Bitwechsel. Da bei CAN meist bei ca. 80% Bitzeit abgetastet wird, sollte
> das eigentlich keine Störungen bei der Kommunikation hervorrufen.

Ich weiss grad nicht, ob die CAN Controller einen Glitch-Filter in der 
Taktrückgewinnung drin haben, Wenn nicht, dann könnte die Flanke 
rezessiv->dominant die Synchronisation beeinflussen.

von david (Gast)


Lesenswert?

Hallo,

möglich wäre auch ein ADUM 125x / 225x.

Beispiel:
http://www.analog.com/en/interface/digital-isolators/adum1251/products/product.html

Über die 5...12V habe ich jetzt nicht weiter nachgedacht.

David

von Jens (Gast)


Lesenswert?

Der ADUM 125x klingt schon mal nicht schlecht...
Ob der die 12V verträgt schau ich Montag mal nach (jetzt hab ich 
Feierabend^^)

Vielen dank erstmal an alle^^

von Jens (Gast)


Lesenswert?

Also der Baustein packt die 12V leider nicht.
Falls jemand noch eine Idee hat wie man das einfach (billig) realisieren 
könnte, kann er es ja hier loswerden.

von T. Brandt (Gast)


Lesenswert?

Vielleicht etwas spät - aber :

Was haltet ihr denn hiervon ?

http://www.nve.com/isoapps-CAN.php

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.