Forum: Projekte & Code CAN CRC Berechnung im Wiki


von Thomas (kosmos)


Lesenswert?

Hallo, ich habe mich mal mit der CRC Berechnung einer CAN Nachricht 
auseinandergesetzt und stelle das im Wiki vor, vielleicht will ja noch 
jemand etwas hinzufügen, verbesser oder auch korrigieren.

Ich werde demnächst eine Berechnungsroutine in .asm einfügen vielleicht 
kann das jemand in .c schreiben.

https://www.mikrocontroller.net/wikisoftware/index.php?title=CAN_CRC_Berechnung&redirect=no

von Helmut (Gast)


Lesenswert?

Hallo Thomas,
zuerst vielen Dank für diesen Wiki-Beitrag!!

Kennst du dich auch mit der Tq-Geschichte in der Parameterbestimmung 
aus?

Im Detail die Boudrate in einem CAN-Bussystem?
Gruß Helmut

von Thomas (kosmos)


Lesenswert?

mit einem CAN-Controller habe ich bisher noch nicht kommuniziert. Geht 
es dir darum ihm die Baudrate mitzuteilen mit welcher er arbeiten soll? 
Welchen CAN-Controller setzt du ein oder ein µC mit integriertem CAN?

von Helmut (Gast)


Lesenswert?

Im Moment geht es mir um Diesen:
Beitrag "Simpler CAN Baustein"

Aber es ist ja ein Parameter des CAN-Bus, der wichtig ist.

Die Tq's werden ja auch zur besseren Synchron-Fehler-Erkennung 
gebraucht.

Auf Englisch gibt es Erklärungen, aber ..... ich verstehe es nicht so 
recht....

Hier zB.
http://www.softing.com/home/en/industrial-automation/products/can-bus/more-can-bus/bit-timing.php?navanchor=3010534

von Thomas (kosmos)


Lesenswert?

ein CAN Bus läuft ja in der Regel immer mit dem selben Takt, also wenn 
dann einmal einstellen und beibehalten. Wieso Synchronfehler wird doch 
spätestens nach 5 gleichen Bits durch das Stuffbit wieder 
synchronisiert.

von Thomas (kosmos)


Angehängte Dateien:

Lesenswert?

habe ein paar Sachen übers Timing gefunden vielleicht hilfst dir ja.

von Helmut (Gast)


Lesenswert?

Richtig, aber das ändert nichts an den Einstellmöglichkeiten.

Speziell gibt man die Parameter
*SYNC_SEG
*PROP_SEG
*PHASE_SEG1
*PHASE_SEG2
alle in Abhängigkeit eben von diesem Tq an.
Guckst du:
http://www.softing.com/home/en/industrial-automation/products/can-bus/more-can-bus/bit-timing/sub-bit-segments.php?navanchor=3010535

von Johann L. (gjlayde) Benutzerseite


Lesenswert?

Thomas O. schrieb:
> Hallo, ich habe mich mal mit der CRC Berechnung einer CAN Nachricht
> auseinandergesetzt und stelle das im Wiki vor, ...
>
> CAN CRC Berechnung

hmm, was ich nicht verstehe ist die Multiplikation mit anschliessender 
Reduktion mod p(x).  Wäre es nicht günstiger, in jedem 
Multiplikationsschritt mod p(x) zu reduzieren?

von Thomas (kosmos)


Lesenswert?

Verstehe das nicht was du meinst Johann, aber wenn du die Schritte 
erklärst versuche ich mal für meine und deine Variante einen .asm Code 
zu schreiben, das Thema ist bei mir gerade wieder aktuell.

von Steffen R. (steffen_rose)


Lesenswert?

Helmut schrieb:
> alle in Abhängigkeit eben von diesem Tq an.

Helmut, was genau ist deine Frage?

Der CPU Takt wird per Prescaler geteilt. Das ergibt den CAN Takt fCAN.
1tq=1/fCAN.

Entsprechend deiner korrekten Aussage bilden x tq's ein Bit der CAN 
Nachricht (tBit). 1/tBit ist dann der Takt auf dem CAN, den man 
landläufig kennt (z.B. 250kbit/s).

http://www.can-wiki.info/bittiming/tq.html

von hallo (Gast)


Lesenswert?

3 Jahre später ...

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.