CAN: Initialisierung und Synchronization Jump Width (SJW)

Gast #957395
Lesenswert?

Hi und guten morgen!

ich möchte hier gerade zwei Controller über can miteinander verbinden 
was soweit auch ganz gut funktioniert.

Nun weiß ic haber nicht so richtig für was die Synchronization Jump 
Width (SJW) gut ist?

Soweit ich das verstanden habe, gibt dieser Wert an, um wieviele quantas 
die synchronisation springen darf, bezogen auf die baudrate bzw, die 
nominelle Bitzeit.

wenn die beiden controller nun irgendwann asynchron laufen (wg. 
ungenauem Quartz, ect.) dann können sich die Controller um diesen 
SJW-wert wieder einsynchronisieren, richtig?

Warum kann ich den Wert aber dann im Register einstellen? dann ist es 
doch besser ich mach diesen Wert so gross wie möglich, oder?

Mein Problem ist, dass ich nicht weiß was ich da einstellen/definieren 
soll? mach ich lieber einen grossen wert um evt. auftretenden 
verschiebungen auszugleichen oder eher klein weil das auch "irgendeinen" 
Vorteil hat?

Es handelt sich hierbei um einen SJA1000 und einen 82527 welcher ich mit 
250kbaud verbinden möchte
Gast #957409
Lesenswert?

Die ganzen Timing-Werte sind m.M.n. für einfache Verbindungen nahezu 
irrelevant. Nur bei großen Netzen mit vielen Teilnehmern, Störungen, 
Reflexionen und Verschleifungen wirken sie sich aus.

"wenn die beiden controller nun irgendwann asynchron laufen (wg.
ungenauem Quartz, ect.) dann können sich die Controller um diesen
SJW-wert wieder einsynchronisieren, richtig?"

Da die Übertragung ja generell asynchron läuft, synchronisiert sie sich 
ja bei jedem Frame neu.
Und dass die Quarze so ungenau sind, dass das Timing innerhalb eines 
Frames davonläuft ...

Nimm die Std-Werte (spicke bei anderen Programmierern), das passt fürs 
Erste.
Gast #957412
Lesenswert?

>Nimm die Std-Werte (spicke bei anderen Programmierern), das passt fürs
>Erste.

Hi und Danke!
mein Problem ist, dass das so ziemlich mein erstes Programm ist, 
deswegen habe ich nichts zum "spicken" :(

Ich habe aber auch schon bemerkt, dass der Wert keinen Einfluß auf meine 
kommunikation hat. Nicht einmal hier auf dem Basteltisch wo ich die 
beiden Platinen mit "Eisenbahndraht" miteinander verbunden habe und 
alles über ein völlig überfordertes Steckernetzteil gespeist wird :o)
Gast #958020
Lesenswert?

"Da die Übertragung ja generell asynchron läuft, synchronisiert sie sich
ja bei jedem Frame neu.

Sinn und Zweck der SJW ist eine möglichst bitweise Resynchronisation, 
sofern die entsprechenden Flanken im Eingangsdatenstrom existieren. 
Nicht zuletzt deshalb gibt es Stuffbits.

Wähle die SJW einfach als <=TSEG2 und du solltest keine Probleme 
bekommen. Eine größere SJW gibt dem Controller mehr Luft bei 
Baudratenabweichungen zwischen den einzelnen Nodes.

Weiterführende Infos:

http://www.port.de/engl/canprod/sv_req_form.html
http://can-cia.org

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