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 16 berechnen



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!

16.05.2022, 09:47
Beitrag #1

Kiesch Offline
LVF-Stammgast
***


Beiträge: 415
Registriert seit: Mar 2009

2019, 2018, 2016
2009
DE

04519
Deutschland
CRC 16 berechnen
Hi Leute,

ich bin offenbar zu dumm dafür, da ich zu selten mit irgendwelchen Bitflipoperationen etc. arbeite. Und vermute, dass es dafür auch mehr oder weniger eine Standardlösung gibt:

Ein externes Geräte will von mir, dass ich ein CRC 16 aus den 2 vorherigen Charactern eines Strings berechne (was etwas weird ist, da es doch eigentlich sinnvoller wäre für den ganzen String nen CRC zu errechnen wenn man den unbedingt überprüfen will).
Das Manual teilt mir mit, das das Referenzpolynom durch das geteilt werden soll x^16 + x^12 + x^2 + 1 ist und lässt mich damit im Wald stehen.

Hab mich jetzt schon etwas belesen, aber kriege das einfach nicht in den Schädel wie das Konzept funktioniert. Man soll irgendwie XORn etc. aber ich verstehs einfach nicht. Vor allem nicht die x^16 im Referenzpolynom - ich hab doch nur 2 character also x^15 maximal oder versteh ich da was falsch?

Hat da jemand ne Idee zu oder eventuell noch ne Lösung rumliegen und kann mir erklären wie ich das anwende?
Gefunden habe ich schon den link:
https://forums.ni.com/t5/LabVIEW/CRC16-c...-p/3298817

Wo man auch nen VI kriegen kann, allerdings beschwert sich mein Endgerät über alle meine Versuche den String richtig zu berechnen... und wirft mir nur "ii" für CRC falsch zurück. Ich vermute also ich habe irgendwas noch nicht verstanden :-(
Vielen Dank schonmal dafür.

Gruß Kiesch

P.S: Das Endgerät kommuniziert über USB, mir ist nicht klar warum der Hersteller unbedingt nen CRC zum Kommando haben will, aber ich kanns leider nicht ändern... Grundsätzlich kann der Fehler sicher auch woanders liegen, allerdings ist der Fehlercode recht eindeutig und heißt offenbar insbesondere, dass das Gerät zumindest meine Kommandos erkennt, aber nicht bereit ist sie auszuführen. Ansonsten würde ich neben dem Readback "ii" noch mehr Fehlercodes sehen.

Zitat:Märchen und Geschichten werden erzählt am Lagerfeuer, technischen Fakten werden mitgeteilt (oder so). (Genauso wie Software nicht auf einem Server "herumliegt", die ist dort installiert.)
*Zitat: IchSelbst*
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
17.05.2022, 19:50 (Dieser Beitrag wurde zuletzt bearbeitet: 17.05.2022 19:58 von GerdW.)
Beitrag #2

GerdW Offline
______________
LVF-Team

Beiträge: 17.480
Registriert seit: May 2009

LV2021
1995
DE_EN

10×××
Deutschland
RE: CRC 16 berechnen
Hallo Kiesch,

häng doch mal das Manual hier an…

Bis dahin kannst du ja dieses hier durchlesen! Smile

Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
17.05.2022, 22:38
Beitrag #3

Martin.Henz Offline
LVF-Team
LVF-Team

Beiträge: 429
Registriert seit: Jan 2005

2.5.1 bis 20
1992
kA

74363
Deutschland
RE: CRC 16 berechnen
(16.05.2022 09:47 )Kiesch schrieb:  x^16 + x^12 + x^2 + 1

also 0x1005 - komisches Polynom

Das Polynom alleine ist nicht ausreichend.

direct, crc init, crc xor, reflect in, reflect out) fehlt an Information um die Checksumme korrekt berechnen zu können.

Gibt es wenigstens Beispiele?

Martin Henz
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
29.07.2022, 07:55
Beitrag #4

Kiesch Offline
LVF-Stammgast
***


Beiträge: 415
Registriert seit: Mar 2009

2019, 2018, 2016
2009
DE

04519
Deutschland
RE: CRC 16 berechnen
Danke nochmal für die Hilfe. Habe jetzt doch noch über den Hersteller ein (bughaltiges, aber im CRC check funktionierendes) Beispielprojekt gekriegt, dass ich nur noch auf den Betrieb mehrerer Geräte aufbohren musste. Da ich grade gemeckert habe: Immerhin hatte das eine sehr elegante Lösung der Initialisierung der Schnittstelle und Verwendung einer FGVs zum Daten halten. Also strukturell immerhin gut gemacht.

Eines der Probleme war, dass doch nicht wie im Manual beschrieben (und sinnlos) über die letzten zwei Characters ein CRC check erfolgt sondern über den ganzen String (was auch mehr Sinn macht).

Gruß Kiesch

P.S: Hatte ich erwähnt dass ich deswegen erstmal wieder aufgegeben habe die Magie hinter Bit Operationen endlich mal zu begreifen? Angel_not Das bleibt dann für ne ruhige Minute irgendwann mal.

Zitat:Märchen und Geschichten werden erzählt am Lagerfeuer, technischen Fakten werden mitgeteilt (oder so). (Genauso wie Software nicht auf einem Server "herumliegt", die ist dort installiert.)
*Zitat: IchSelbst*
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
  Zeitstempel berechnen Hubert R. 6 7.174 06.07.2022 09:05
Letzter Beitrag: Hubert R.
Lightbulb Prüfsumme berechnen für String mit Sonderzeichen luna 3 4.543 22.03.2021 18:32
Letzter Beitrag: jg
Question MONATSverbrauch aus TAGES-String-Array berechnen Blondchen 1 4.678 19.02.2020 16:21
Letzter Beitrag: GerdW
  Endzeit berechnen LZH 1 3.870 31.01.2018 13:54
Letzter Beitrag: GerdW
  Dauer einer Schleife berechnen Marius89 3 6.481 31.10.2016 09:24
Letzter Beitrag: jg
  Mittelwerte berechnen vom Beginn der Messung bis zum Ende Ulmer 6 6.602 30.07.2015 15:17
Letzter Beitrag: Ulmer

Gehe zu: