INFO: Dieses Forum nutzt Cookies...
Cookies sind für den Betrieb des Forums unverzichtbar. Mit der Nutzung des Forums erklärst Du dich damit einverstanden, dass wir Cookies verwenden.

Es wird in jedem Fall ein Cookie gesetzt um diesen Hinweis nicht mehr zu erhalten. Desweiteren setzen wir Google Adsense und Google Analytics ein.


Antwort schreiben 

CRC Berechnung CAN



Wenn dein Problem oder deine Frage geklärt worden ist, markiere den Beitrag als "Lösung",
indem du auf den "Lösung" Button rechts unter dem entsprechenden Beitrag klickst. Vielen Dank!

22.07.2015, 14:50 (Dieser Beitrag wurde zuletzt bearbeitet: 22.07.2015 15:45 von qweisCAN.)
Beitrag #1

qweisCAN Offline
LVF-Neueinsteiger


Beiträge: 2
Registriert seit: Jul 2015

14
2013
DE



CRC Berechnung CAN
Hallo,

ich versuche seit ein paar Tagen die CRC Prüfsumme einer übertragenen CAN Nachricht in Labview zu rekonstruieren. Ich benutze das Polynom P(x) = x15+ x14+ x10+ x8+ x7+ x4+ x3+ x0 (0xC599). Ich hab einige funktionierende Vi's zur CRC-16 berechnung, mir ist es nur nicht bis jetzt gelungen eine Lösung für mein Problem zu finden.

Mein derzeitiges Programm ist für CRC-16 funktionierendes Programm wo ich nur das Polynom geändert habe.

[Bild: CRC_C599.png]

Eingabe Daten: 800100
Erwartete CRC Prüfsumme: 4B5A Laut http://ghsi.de/CRC/index.php?Polynom=110...age=800100 und meinem Oszilloskop.

Falls mir eventuell jemand weiterhelfen kann würde ich mich freuen.

Englische Version Crosspost


Angehängte Datei(en)
14.0 .vi  CRC_C599.vi (Größe: 9,68 KB / Downloads: 293)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
22.07.2015, 15:42
Beitrag #2

jg Offline
CLA & CLED
LVF-Team

Beiträge: 15.864
Registriert seit: Jun 2005

20xx / 8.x
1999
EN

Franken...
Deutschland
RE: CRC Berechnung CAN
Offtopic2
Bitte selbstständig auf CROSSPOSTING hinweisen (vgl. LVF-Regeln).

Danke, Jens

Wer die erhabene Weisheit der Mathematik tadelt, nährt sich von Verwirrung. (Leonardo da Vinci)

!! BITTE !! stellt mir keine Fragen über PM, dafür ist das Forum da - andere haben vielleicht auch Interesse an der Antwort!

Einführende Links zu LabVIEW, s. GerdWs Signatur.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
22.07.2015, 17:15
Beitrag #3

jg Offline
CLA & CLED
LVF-Team

Beiträge: 15.864
Registriert seit: Jun 2005

20xx / 8.x
1999
EN

Franken...
Deutschland
RE: CRC Berechnung CAN
Schau mal hier:
http://forums.ni.com/t5/LabVIEW/how-to-a...-p/2380590
Beitrag 2 verweist auf ein PDF, da wird die korrekte CRC15 Berechnung erklärt.

Gruß, Jens

Wer die erhabene Weisheit der Mathematik tadelt, nährt sich von Verwirrung. (Leonardo da Vinci)

!! BITTE !! stellt mir keine Fragen über PM, dafür ist das Forum da - andere haben vielleicht auch Interesse an der Antwort!

Einführende Links zu LabVIEW, s. GerdWs Signatur.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
22.07.2015, 17:27
Beitrag #4

qweisCAN Offline
LVF-Neueinsteiger


Beiträge: 2
Registriert seit: Jul 2015

14
2013
DE



RE: CRC Berechnung CAN
Smile Vielen Dank, den Eintrag hatte ich auch schon gefunden. In C hab ich auch eine funktionierende Lösung, mir fehlt nur die Implementierung in LabVIEW.

Code:
#include <stdio.h>
#include <stdint.h>

uint16_t can_crc_next(uint16_t crc, uint8_t data)
{
    uint8_t i, j;

    crc ^= (uint16_t)data << 7;

    for (i = 0; i < 8; i++) {
        crc <<= 1;
        if (crc & 0x8000) {
            crc ^= 0xc599;
        }
    }

    return crc & 0x7fff;
}

int main()
{
    int i;
    uint8_t data[] = {0x80, 0x01, 0x00};
    uint16_t crc;

    crc = 0;

    for (i = 0; i < sizeof(data); i++) {
        crc = can_crc_next(crc, data[i]);
    }

    printf("%x\n", crc);
}
C Code
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
22.07.2015, 18:59
Beitrag #5

jg Offline
CLA & CLED
LVF-Team

Beiträge: 15.864
Registriert seit: Jun 2005

20xx / 8.x
1999
EN

Franken...
Deutschland
RE: CRC Berechnung CAN
Und in LabVIEW hast du schon fast den Teil aus dem Bosch-PDF umgesetzt, mit einem kleinen, aber feinen Unterschied...
Code:
CRC_RG(14:0) = CRC_RG(14:0) EXOR (4599hex);
Gruß, Jens

Wer die erhabene Weisheit der Mathematik tadelt, nährt sich von Verwirrung. (Leonardo da Vinci)

!! BITTE !! stellt mir keine Fragen über PM, dafür ist das Forum da - andere haben vielleicht auch Interesse an der Antwort!

Einführende Links zu LabVIEW, s. GerdWs Signatur.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Antwort schreiben 


Möglicherweise verwandte Themen...
Themen Verfasser Antworten Views Letzter Beitrag
  CRC-Berechnung in LabVIEW anhand eines C-Code-Beispiels /Suche nach Frequenzumrichter Y-P 32 22.817 23.02.2016 08:57
Letzter Beitrag: Y-P
  Doppelte Berechnung & Sequenzen Schtief 4 3.892 08.09.2015 10:15
Letzter Beitrag: GerdW
  Berechnung im extra Fenster Günni1977 5 5.831 18.12.2013 19:26
Letzter Beitrag: Trinitatis
  Checkword Berechnung mithilfe von modulo 2 und Generatorpolynom YYYs 3 4.638 19.09.2013 13:41
Letzter Beitrag: YYYs
  Berechnung Ausgleichsebene Klaus R 6 13.268 27.01.2012 14:23
Letzter Beitrag: fabqu
  Integral Berechnung an verschiedenen Maxima flomo 16 13.668 28.07.2011 20:31
Letzter Beitrag: flomo

Gehe zu: