Single-Wire Can entkoppeln

Gast #1675487
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
#1675608
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.
(Firma: EleLa - www.elela.de) #1675667
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.
Gast #1676406
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?
Angehängte Dateien:
#1676448
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
#1676455
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.
#1676474
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
#1676482
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.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren