RFID RDM 630 - Checksum

Gast #2724448
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
Angehängte Dateien:
#2724465
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;
Gast #2724785
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
Gast #2792268
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

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren