mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Single-Wire Can entkoppeln


Autor: Jens (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Markus Müller (mmvisual)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Zwischen IC mit CAN und dem AU5790 SW-CAN Transceiver

- 2 Optokoppler rein
- einen DCDC-Wandler

fertig.

Autor: A. K. (prx)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Markus Müller (mmvisual)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Dann mache es soch so:

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

Autor: A. K. (prx)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Markus Müller (mmvisual)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Natürlich 2 Optokoppler, für jede Richtung einen.

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

Autor: A. K. (prx)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Markus Müller (mmvisual)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Anstatt zwei Opptokoppler kann auch ein ADUM1401 verwendet werden 
(Digital Isolator)

Autor: Markus Müller (mmvisual)
Datum:

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

Autor: A. K. (prx)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Markus Müller (mmvisual)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: A. K. (prx)
Datum:

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

Autor: Christian H. (netzwanze) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Werner B. (werner-b)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Die wissen warscheinlich warum ihr (winziges) Teil 145 Dollar kostet.

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

Autor: Jens (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht 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?

Autor: Joerg Wolfram (joergwolfram)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: A. K. (prx)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Joerg Wolfram (joergwolfram)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: A. K. (prx)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: david (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

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

Beispiel:
http://www.analog.com/en/interface/digital-isolato...

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

David

Autor: Jens (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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^^

Autor: Jens (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: T. Brandt (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Vielleicht etwas spät - aber :

Was haltet ihr denn hiervon ?

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

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.