Baudratentoleranz CAN Bus

A

andreas ruetten

Guest
Hallo,
weiß jemand welche Baudratenanbweichung beim CAN Bus zulässig sind.
Ich möchte einen Prozessor von Silabs ehemals Cygnal einsetzen.
Der hat einen internen Oszzilator mit einer Abweichung von 2%.
Die Frage ist nun ist das OK, oder muß ich doch einen Quarz anschließen
???

mfg Andreas
 
Hallo Andreas,

2% iss nich, auf gut deutsch. Soweit ich weiss muessen es 1.5% sein oder
noch weniger bei hohen Taktraten. Quarz oder PLL sind aber doch nicht so
teuer.

Gruesse, Joerg.
 
Joerg schrieb:

Hallo Andreas,

2% iss nich, auf gut deutsch. Soweit ich weiss muessen es 1.5% sein oder
noch weniger bei hohen Taktraten. Quarz oder PLL sind aber doch nicht so
teuer.
Diesmal geht es allein um Größe. Der Quarz ist dann schon fast so groß
wie der Microcontroller. Und die wirklich kleinen SMD Quarze sind dann
wirklich zu teuer, oder nur in Rollen a 10.000 zu erhalten.
Aber wenns nicht geht, dann geht es nicht......


Danke ,
Andreas Rütten


Gruesse, Joerg.
 
Hallo Andreas,

Ich kenne Deinen uC nicht. Aber viele wie etwa der MSP430 laufen mit einem
winzig kleinen Uhrenquartz und der Hauptoszillator ist dann in einer
Regelschleife daran gekoppelt. Geht so etwas mit Deinem Controller?

Auch andere Quarze bekommt man in einem Gehaeuse, dass zwar so breit und lang
ist wie ein Mini Quartz, jedoch nur etwa 3mm hoch. Am besten mal bei einem
Hersteller fragen. Bei Euch in Deutschland vielleicht Dr.Steeg & Reuter? In
der Eifel gibt es noch einen Hersteller, aber ich habe den Namen vergessen.

Gruesse, Joerg.
 
andreas ruetten schrieb:

Hallo,
weiß jemand welche Baudratenanbweichung beim CAN Bus zulässig sind.
Es gibt ein Papier zum CAN-Bittiming anbei der Link:

http://www.can.bosch.com/docu/CiA99Paper.pdf

Auf S.6 unten ist die Toleranz ausgeführt. Wichtig: die Baudrate!
Die erwähnst Du nicht.

Ich möchte einen Prozessor von Silabs ehemals Cygnal einsetzen.
Der hat einen internen Oszzilator mit einer Abweichung von 2%.
2% auf was? Hast Du ein Datenblatt vom Oszillator? Wenn die Abweichung
worst-case ist, d.h. Alterung und Temperatur dann solltest Du einmal
Regelabweichung anschauen. Der von Dir favorisierte ľC besitzt sicher
einen Resonator, und bei der Anpassung der CAN-Spec von V1.1 auf V1.2
wollte man eben auch den Einsatz von Resonatoren ermöglichen.

Die Frage ist nun ist das OK, oder muß ich doch einen Quarz anschließen
???
Nö, Du benötigst nicht unbedingt einen Quarz, deswegen mein Dissenz
zu den anderen Postings. 2% ist normalerweise eine worst-case Abweichung,
wenn Du eine Baudrate von 100 kBaud nutzen kannst (man bedenke, ein
CAN-Frame benötigt dann ~ 1,3 ms alleine zur physikalischen Übertragung über
den Bus) dann funktioniert der Bus auch mit 2%. Ist Dein Netzwerk
single-source mit diesem ľC bestückt, wie sieht die Toleranz der
anderen CAN-Knoten aus? Du schreibst leider zu wenig über die verknüpfte
Anwendung (bspw. Labormeßplatz 2 CAN-Knoten, 2 m Leitungslänge etc.).
Beim entsprechendem Setup der Bittimingregister solltest Du einen Bus
mit 100 kBaud zum Laufen bekommen. Da Theorie und Praxis beim CAN oft
auseinandergehen kannst Du natürlich auch Tests mit 250 kBaud oder 500
kBaud machen, denn 2% sind sicher ein Datenblattwert, oder?

Bitte mehr Details über Deine Anwendung, dann kann man auch präzisere
Empfehlungen abgeben.
 
Anastasios Tsitlakidis schrieb:

andreas ruetten schrieb:

Hallo,
weiß jemand welche Baudratenanbweichung beim CAN Bus zulässig sind.

Es gibt ein Papier zum CAN-Bittiming anbei der Link:

http://www.can.bosch.com/docu/CiA99Paper.pdf
Besten Dank ...

Auf S.6 unten ist die Toleranz ausgeführt. Wichtig: die Baudrate!
Die erwähnst Du nicht.
Die steht auch leider noch nicht fest.


Ich möchte einen Prozessor von Silabs ehemals Cygnal einsetzen.
Der hat einen internen Oszzilator mit einer Abweichung von 2%.

2% auf was? Hast Du ein Datenblatt vom Oszillator? Wenn die Abweichung
worst-case ist, d.h. Alterung und Temperatur dann solltest Du einmal
Regelabweichung anschauen.
Über alles ...


Der von Dir favorisierte ľC besitzt sicher
einen Resonator
Nein einen internen RC Oszillator

, und bei der Anpassung der CAN-Spec von V1.1 auf V1.2
wollte man eben auch den Einsatz von Resonatoren ermöglichen.

Die Frage ist nun ist das OK, oder muß ich doch einen Quarz anschließen
???

Nö, Du benötigst nicht unbedingt einen Quarz, deswegen mein Dissenz
zu den anderen Postings. 2% ist normalerweise eine worst-case Abweichung,
wenn Du eine Baudrate von 100 kBaud nutzen kannst (man bedenke, ein
CAN-Frame benötigt dann ~ 1,3 ms alleine zur physikalischen Übertragung über
den Bus) dann funktioniert der Bus auch mit 2%. Ist Dein Netzwerk
single-source mit diesem ľC bestückt, wie sieht die Toleranz der
anderen CAN-Knoten aus? Du schreibst leider zu wenig über die verknüpfte
Anwendung (bspw. Labormeßplatz 2 CAN-Knoten, 2 m Leitungslänge etc.).
10m 2 Knoten.


Beim entsprechendem Setup der Bittimingregister solltest Du einen Bus
mit 100 kBaud zum Laufen bekommen. Da Theorie und Praxis beim CAN oft
auseinandergehen kannst Du natürlich auch Tests mit 250 kBaud oder 500
kBaud machen, denn 2% sind sicher ein Datenblattwert, oder?

Bitte mehr Details über Deine Anwendung, dann kann man auch präzisere
Empfehlungen abgeben.
Mit dem link von Bosch hast du mir erstmal geholfen.
Besten Dank

Andreas
 
Um mal eine Zahl in den Raum zu werfen:
Im Automobilbereich werden gefordert:

500kbit/s +/- 0,4%
250kBit/s +/- 0,7%
125kbit/s +/- 1,2%
 
Erik Hermann schrieb:

Um mal eine Zahl in den Raum zu werfen:
Im Automobilbereich werden gefordert:

500kbit/s +/- 0,4%
250kBit/s +/- 0,7%
125kbit/s +/- 1,2%
Es gibt OEM mit schärferen Vorgaben, für bestimmte Anwendungen
(Labormeßplätze etc.) kann man aber sicher auch mal mit 2%
experimentieren, wenn man keine anderen ľC zur Auswahl hat.
 
weiß jemand welche Baudratenanbweichung beim CAN Bus zulässig sind.
Ich möchte einen Prozessor von Silabs ehemals Cygnal einsetzen.
Der hat einen internen Oszzilator mit einer Abweichung von 2%.
Ich kenne Deinen Prozessor nicht. Daraus, dass er aber mit 2%
Abweichung kommt, schliesse ich aber dass er keinen integrierten
CAN Bus Controller hat und Du das Protokoll stattdessen in Software
programmierst. In diesem Fall solltest Du einfach ein variables
Timing realisieren. Orientiere Dich an den Daten, die Dir geschickt
werden (andere Busteilnehmer bzw ACK/NAK Slots falls es keine
anderen aktiven Teilnehmer gibt). Fuehre eine Messung durch, und
passe daraufhin Deine Sende-Rate an. Die Messung sollte regelmaessig
durchgefuehrt werden (am besten kontinuierlich bei jedem empfangenen
Paket), da Temperaturschwankungen Deinen internen Oszillator
beinflussen.

Marc
 

Welcome to EDABoard.com

Sponsor

Back
Top