Forum: Mikrocontroller und Digitale Elektronik RFID RDM 630 - Checksum


von jojo (Gast)


Angehängte Dateien:

Lesenswert?

Hallo,

ich kämpfe gerade mit meinem RFID Reader RDM 630 UART von 
http://iteadstudio.com.

Ich denke ich habe einen systematischen Fehler in der 
Checksummenbildung, finde ihn aber nicht. Anbei die Spec des Moduls.

Ich lese folgende Hex

e.g. received date: 02 | 30 32 30 30 34 44 42 30 30 35 | 46 43 | 03
Aufbau: start | 10 ascii characters | checksum | end specified in spec

decoded hex date | 02h 00h 4Dh B0h 05h | FCh

xor Operation on the 5 bytes, I get 02 XOR 00 XOR 4d XOR b0 XOR 05 = FAh

Vielen Dank schon einmal vorab für Eure Hilfe.

Jojo

von Timmo H. (masterfx)


Lesenswert?

FC kann eigentlich nicht stimmen.
Also das Beispiel aus dem Datenblatt:
1
char test[] = {0x62,0xE3,0x08,0x6C,0xED};
2
unsigned char check=0;
3
for(i = 0; i<5;i++){
4
        check ^= test[i];
5
}
ergibt bei mir genauso wie auf S.4 0x08.
1
char test[]= {0x02,0x00, 0x4D,0xB0,0x05};
ergibt bei mir ebenfalls 0xFA und nicht 0xFC;

von jojo (Gast)


Lesenswert?

Danke für den "Nachtest". Ich kann das Spec Beispiel ebenfalls 
nachvollziehen.
Leider klappt es mit der echten TagId und den übertragenen Checksumme 
nicht; 4 weitere Tags zeigen die "gleichen" Abweichungen.

Auffällig ist, dass sogar einmal ein 0x3b also ";" Byte als 
Checksummenbyte ankommt.

Vielleicht hat doch noch einer eine Idee wo der Checksummenfehler 
entsteht und wie ich ihn in einer Prüfung verarbeiten kann.

Danke
Jojo

von MarkusZelg (Gast)


Lesenswert?

Hallo jojo

Ich habe das geliche Problem. Es hat mich 5 Stunden Programmierung un 
100 Euro für einen 8-PortScanner gekostet um nachzuweisen, dass meine 
125kHz Tags auf Basis EM4100 nicht das auf dem RDM630(0) bewirken, was 
sie sollten. Nach langer Analyse des EM4100 hat sich gezeigt, dass wohl 
das RDM630 die Checksume generiert. Auf welche weise das geschiet, 
entzieht sich mangelnder Dokumentation des RDM630 meiner Kenntnissen.
Die Werte ";" und "<" hatte ich auch. Sind übrgines dann als gültig zu 
verstehen, wenn man dem Hersteller der Karte zugibt, vergessen zu haben, 
dass zwischen ASCII "9" und "A" noch weitere Werte sind. oder andersrum: 
bei 5 von 10 Karten hätte die Checksume gepasst, würde ich nur '9' 
abziehen.

Bis jetzt habe ich keine stabile Umsetzung gefunden.

Gruss,
Markus

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.