Forum: Mikrocontroller und Digitale Elektronik CAN Buszykluszeit berechnen


von Florian S. (sirius7)


Lesenswert?

Hallo Community,

ich hoffe Ihr könnt mir weiterhelfen. Und zwar, bei Klausur werden wir 
wahrscheinlich nach CAN-Buszykluszeit gefragt und werden sie 
wahrscheinlich auch berechnen sollen.

Ich habe alle Bücher, Scripts und natürlich Google von Kopf bis Fuß 
recherchiert, jedoch nur die reinen Formel gefunden.

Laut meiner Erkenntnissen soll Buszykluszeit durch Summe der 
Verzögerungszeiten (hin und zurück) gedeckt sein:

wobei, was diese Zeiten an sich bedeuten, ist auch überall erläutert, 
jedoch nicht ihre Zahlenwerte.. und das ist für mich die wichtigste 
Information, ohne die ich keine Berechnung vornehmen kann.

ich würde mich daher sehr freuen, wenn mir jemand auf die Sprünge helfen 
würde und einen Rat gibt, wo ich die Zahlenwerte für diese Zeiten 
herausfinden kann. Und / oder mir einen Tipp gibt, ob mein Gedankengang 
an sich falsch ist.

Vielen Dank im Voraus!

: Bearbeitet durch User
von Rudolph R. (rudolph)


Lesenswert?

Hmm, wenn mich jemand nach der "CAN Buszykluszeit" fragen würde, dann 
würde ich vermuten, dass damit die Zeit gemeint ist die ein einzelnes 
Bus-Telegramm benötigt um über den Bus verschickt zu werden.
Denn als Zyklus verstehe ich ein zusammenhängendes Ereignis und nicht 
ein singuläres Bit-wackeln.
Dann würde ich nach der Datenrate und der Botschaftslänge fragen um das 
zusammen mit den Information über das Protokoll auszurechnen.

Die Länge eines einzelnen Bits ist doch über die Datenrate hinreichend 
beschrieben.

> durch Summe der Verzögerungszeiten (hin und zurück)

CAN ist nicht hin und zurück, CAN ist Multi-Master, uni-direktional und 
in dieser Eigenschaft nur sehr begrenzt vorhersehbar, sobald man mehr 
als zwei Teilnehmer und zwei Botschaften hat.

Und auch wenn man Botschafts Ping-Pong spielt, also ein Teilnehmer bei 
Eingang einer Botschaft "sofort" mit einer anderen Botschaft antwortet.
Dann kann man aufgrund der Bus-Eigenschaften noch lange nicht 
ausrechnen, wie viel Zeit benötigt wird die Botschaft zu verarbeiten und 
die nächste raus zu schicken.

Mir drängt sich der Verdacht auf, dass ich die Frage völlig falsch 
verstehe.
Kannst Du mal näher erläutern, was gemeint sein soll?

von Harald (Gast)


Lesenswert?

In diesem Datenblatt zum uralten CAN Controller 82527 ist eine Mengen an 
Grundlagen zum CAN Timing abgehandelt. Das findet man heute in 
Datenblättern meist nicht mehr in dieser Form. So findet man auf Seite 
40 wie sich in CAN-Nachricht zeitlichz zusammensetzt. An anderer Stelle 
findet man Angaben zum Interspace Timing.

Vielleicht hilft es, ich habe aber den Verdacht, dass Du in der Klausur 
GENAU das wiedergeben sollst, was der Vortragende vorgebetet hat.

http://chert.cis.ksu.edu/students/sean/27241003.pdf

von Rudolph R. (rudolph)


Lesenswert?

Hab das hier gefunden:
Zykluszeit (Buszyklus, Verarbeitungszyklus)
ist diejenige Zeit, die benötigt wird, um alle Teilnehmer einmal
abzufragen/zu beauftragen bzw. ein Durchlauf in einer
Verarbeitungseinheit.

Okay, das macht in meinen Augen beim CAN wenig bis keinen Sinn.
Man versucht zwar, zum Beispiel alle 10 ms zu senden, wann die Botschaft 
wirklich raus geht hängt aber von der Buslast und der Priorität der 
Botschaft ab.
Das gleiche Spiel hat dann in diesem Zusammenhang der Empfänger, erstmal 
muss der dazu kommen die Botschaft zu verarbeiten, vielleicht hängt der 
ja auch gerade in einem anderen Interrupt, man weiss es nicht.
Und dann kann er nur irgendwann mal versuchen die Botschaft zu senden.

Das ganze ergibt ein ziemlich grosses Zeitfenster mit vielen Unbekannten 
welche die ganze Zeit varieren.

Äh ja, oder was auch immer der Dozent dazu meint...

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.