Forum: Mikrocontroller und Digitale Elektronik Frage zu "End of frame" CAN


von Thomas (kosmos)


Lesenswert?

Ich habe mal ein eine Frage zum End of frame(7bits) und interframe 
space(3bits).

Bevor ein CAN Knoten anfängt zu senden sollte er doch darauf achten das 
mindestens 10bits lang ruhe auf dem Bus war oder? Im Normalfall kommt es 
ja durch das stuffbit innerhalb von 5 bits zu einem Flankenwechsel(für 
neue Synchronisation) so das man nach 10 Bits ruhe davon ausgehen kann 
das man senden kann.

Eine weite Frage, wenn ein Teilnehmer wegen einer verlorenen 
Arbitrierung nochmal sende möchte wird da eine feste Zeit gewartet oder 
wird wieder nach den 10 "Ruhebits" gelauscht und dann der neue versuch 
gestartet?

von Disco (Gast)


Lesenswert?

Frage 1 gestopft wird nur im Frame nicht dazwischen.


es wird eine zufällige Zeit gewartet.  Bzw die Prioritäten klären das.

von Peter D. (peda)


Lesenswert?

Disco schrieb:
> es wird eine zufällige Zeit gewartet.

Nein, es wird eine fest Zeit gewartet.
Daher muß man unbedingt vemeiden, daß 2 Master den gleichen Identifier 
mit unterschiedlichen Daten senden. Die machen das dann, bis der 
Error-Counter überläuft und sie sich beide abschalten.

von Thomas (kosmos)


Lesenswert?

ich habe nicht vor anhand der Priorität unterschiedlich lange zu warten 
da es sich ja mit der Arbitrierung eh ergibt wer durchkommt.

von Rudolph (Gast)


Lesenswert?

Implementierst Du Deinen eigenen CAN-Core in programmierbarer Logik?

von Thomas (kosmos)


Lesenswert?

nein ich programmiere mir etwas für ATTiny26/2313A wobei ich schon etwas 
vom CAN Protokoll abspecke, z.B. kürzere CRC, generell 4 Datenbytes um 
den Overhead klein zu halten...

von Disco (Gast)


Lesenswert?

Rudolph schrieb:
> Implementierst Du Deinen eigenen CAN-Core in programmierbarer Logik?

Ich habe das schon einmal gemacht. Ich muss jetzt meine Zufallszeit raus 
bauen...

von Rudolph (Gast)


Lesenswert?

Thomas O. schrieb:
> nein ich programmiere mir etwas für ATTiny26/2313A wobei ich schon etwas
> vom CAN Protokoll abspecke, z.B. kürzere CRC, generell 4 Datenbytes um
> den Overhead klein zu halten...

Also Du schnitzt Dir ein eigenes Protokoll und benutzt CAN nur als 
Vorlage?

Wie wäre es denn dann mit LIN?
Das ist von vornherein dafür ausgelegt mit einem UART implementiert 
werden zu können.

Oder die Tiny durch einen ATMega16M1 ersetzen der nur wenig grösser ist 
aber einen CAN-Controller eingebaut hat.

von Peter D. (peda)


Lesenswert?

Disco schrieb:
> Ich muss jetzt meine Zufallszeit raus
> bauen...

Die Zufallszeit würde ja die Priorität der Identifier aushebeln.

von Disco (Gast)


Lesenswert?

Peter Dannegger schrieb:
> Die Zufallszeit würde ja die Priorität der Identifier aushebeln.

Verhindert aber das sterben von Knoten. .. aber du hast recht.  In dem 
Zusammenhang habe ich gelesen, dass es Controller gibt die in 
Abhängigkeit ihrer Filter 3 oder 4 Bit Interframe Space haben.

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.