Forum: Mikrocontroller und Digitale Elektronik Laufzeitverzögerung CAN Optokopler


von Mik (Gast)


Lesenswert?

Hallo,

ich würde gerne die maximale Leitungslänge meines CAN Netzwerkes 
bestimmen. Am liebsten per Rechung um das ganze ohne Aufbau erstmal 
abzuschätzen. Bei CAN 1 MBit/s wird eine Leitungslänge von 40 m 
spezifiziert. Wenn ich eine galvanische Trennung durch Optokoppler 
einbaue, die ja durchaus eine Laufzeitverzögerung von 50 ns haben, wird 
diese maximale Länge verkürzt. Bin mir jetzt nicht sicher wie ich das am 
besten berechnen kann.

Wie beurteilt ihr folgende Betrachtung?

- 2 CAN Knoten jeweils mit Optokopplern, 1 MBit/s

- Controller des Knoten 1 sendet eine CAN Nachricht.

- Diese wird durch den Optokoppler in CAN Knoten 1 verzögert (50ns)

- Ich gehe davon aus, dass das Signal auf der Leitung mit ca. 6 ns/m 
sich ausbreitet

- Nachricht gelangt zu Knoten 2

- Nachricht wird wieder um den Optokoppler verzögert. (Dies ist ja 
soweit kein Problem, da der CAN Controller ja auf die erste fallende 
Flanke synchronisisert)

- Knoten 2 empfängt Nachricht korrekt.

- zieht die Leitungen auf den dominanten Pegel für eine ACK (Verzögerung 
um wenige ns, auf Grund der Reaktionszeit des CAN Controllers, nehme an 
100 ns)

- ACK wird um Optokoppler in Knoten 2 verzögert

- Laufzeitverzögerung durch die Leitung (6 ns/m)

- ACK wird um Optokoppler in Knoten 1 verzögert

- Knoten 1 tastet Leitung bei ca. 75 % einer Bitzeit ab

Also wenn ich das jetzt mit den oben angegebenen Werten berechne, komme 
ich auf folgendes Ergebnis für die maximale Länge:

- 4 * 50 ns + 100 ns + 2  L  6 ns/m <= 750 ns

- Da komme ich auf 37,5 m und irgendwie kann ich das net glauben...

Gehe ich da vollkommen falsch an die Sache ran?

Gruß vom Mik

von Helmut -. (dc3yc)


Lesenswert?

Hallo Mik,

du hast die Propagation delays der Transceiver und der CAN-Controller 
nicht mit eingerechnet! Meine Rechnung ist einfacher:

Normale Leitungslänge: 40m
abzüglich 4*prop.delay (Hin-Rück Knoten1 und Hin-Rück Knoten2) ist in 
deinem Fall 200ns; entspricht 33m. Bleiben noch 7m übrig.

Ich würde wesentlich schnellere Optokoppler verwenden, denn sonst bleibt 
zu wenig Reserve übrig. Oder gehe mit der Geschwindigkeit herunter!

Servus,
Helmut.

von Mik (Gast)


Lesenswert?

Schnellere Optokoppler? Hmm ich kenn nicht viel schnellere als diese 
Serie... Welche würdest du mir empfehlen?

von Reiner S. (chickstermi) Benutzerseite


Lesenswert?

Schau dir mal diese Teile an...

Ich hab damit in meiner alten Firma mal nen galvanisch getrennten 
CAN-Bus umgesetzt. Hat super funktioniert...

http://www.analog.com/en/prod/0%2C2877%2CADUM1201%2C00.html

Die gibt es in 3 Geschwindigkeitsbereichen, wir konnten mit der 
langsamsten Variante bis 200kB fahren, die schnellste Variante lief auch 
bei 1MB noch stabil...

gruß reiner

von Martin L. (melvin_the_moose)


Lesenswert?

Hallo Mik,

ich bin heute im Etschberger, "Controller Area Network" über folgende 
Rechnung gestolpert:

Lmax = ((x/2*BR)-T_el)/t_p ;x: Abtastzeitpunkt < 100%

Unter den Annahmen
x = 75%,
t_p = 5 ns/m (spezifische Signallaufzeit) und
T_el = 300ns (angenommene Verzögerungszeit der CAN-Protokollbausteine 
und Transceiver)
ergibt sich daraus eine max. Leitungslänge von 15m bei 1MBaud ohne 
Optokoppler.

Erhöht man nun durch HInzufügung der Optokoppler die Zeit T_el um 200 ns 
(4*50 ns), wird die max. Leitungslänge negativ, d.h., mit diesen 
Optokopplern geht das schon theoretisch nicht mehr.

Die Schrauben, an denen man drehen kann:
- Abtastzeitpunkt nach hinten schieben
- T_el verkürzen (schnellere Optokoppler)
- Baudrate heruntersetzen

Gruß, Martin

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.