Frohe Osterfesttage zusammen. Ich habe seit längerer Zeit die Pollin-RFID-Hardware und EM4102 Schlüsselkeys liegen. Bisher sind alle Leseversuche der Keys an fehlerhaften Parity-Bits gescheitert (originale und auch bekannte C & Assemblersourcen). Um ein wenig zu spielen und weil ich mich damit beschäftigen wollte, habe ich die einfache State-Mashine mal in Luna umgesetzt. Soweit so gut. Synchronisierung ok, Header erkannt, Datenbits gelesen. Auf dem angehängten Bild "rfid-out" ist zu sehen, dass die Parity-Bits z.T. nicht stimmen. Laut Datenblatt der EM4102 tags kommen nach den 9 Headerbits jeweils 4 Datenbits und ein Parity-bit, welches high sein sollte. Mir ist es leider bisher nicht gelungen einen Key zu lesen, bei welchem alle Parity-Bits valid sind. Erstaunlicherweise sind die Datenbytes selbst soweit wohl korrekt, wenn man dem Aufdruck auf den Schlüsselanhängern glauben schenken darf. Die Customer-ID, also das erste Byte des Datenstroms nach dem Header ist bei allen mir vorliegenden Schlüsseln gleich, jedoch fehlen Vergleichswerte. Dazu muss man sagen das die Pollin-Hardware und die damals mitgelieferte Spule nicht wirklich zusammenpassten. Es mussten 12 Windungen abgenommen werden und es wurde ein 330 Ohm Widerstand in Reihe geschalten, bis das Signal sauber war und kein Radio Moskau zu empfangen war. Mangels Induktivitätsmessgerät kann ich hier jedoch leider nur raten. Habe ich etwas übersehen oder ist meine Umsetzung der State-Maschine falsch? Liegt es möglicherweise an der Hardware? Mit bestem Ostergruß, Ehrhardt
Ehrhardt Balstein schrieb: > Laut Datenblatt der EM4102 tags kommen nach den 9 > Headerbits jeweils 4 Datenbits und ein Parity-bit, welches high sein > sollte. Wieso sollte das folgende Paritybit high sein? Dessen Zustand hängt doch vom vorherigen Daten-Nibble ab. Vermutlich empfängt die Hardware so schlecht, dass entweder Datenbits oder eines der Paritybits falsch eingelesen werden und somit der Parity-Check fehlschlägt.
Tippe auch auf besch**** Empfangs-HW, wenn das mit dem Parity nicht stimmt. Aus Versuchen in grauer Vorzeit mit 125kHz-Teilen von EM, mit EM-Original Sende-Empfangschip weiß ich daß hier der Knackpunkt sein wird. Schaue auch mal nach der Parity-Erzeugung, ist im Datenblatt beschrieben. Das Parity-Bit hängt vom Datenbyte ab. Wenn Du einen Oszi hast schau Dir mal das "Antennen-Signal" an, wenn hier schon "Schrott" vorhanden ist, wird es mit der Dekodierung problematisch. Man kann aus der Absenkung der Amplitude (durch den RF-ID-Baustein) schon einiges sehen. Wenn, wie Du schreibst die HW nicht gepaßt hat, ist die Fehlerursache dort zu suchen.
Bond schrieb: > Wenn Du einen Oszi hast schau Dir mal das "Antennen-Signal" > an siehe Abbildung oben: da kommt nach den 9 Startbits als erstes Nibble eine 1000, gefolgt vom Paritybit 0, was aber 1 sein müsste. Dann folgt 0001 mit dem Paritybit 0 was ebenfalls eine 1 sein müsste usw... D.h. laut Oszilloskopbild kommen schon fehlerhafte Daten aus dem U2270. Also wahrscheinlich Antennenfehler (Schwingkreis falsch abgestimmt).
Mit dem Atmel-chip hatte damals nicht gearbeitet, jedoch mit dem EM4095, das ist das Front-End-Teil, das bei www.emmicroelectronic.com hergestellt wird. Im Datanblatt sind auch einige Oszillogramme direkt an der Antennenspule! gemessen. emmicroelectronic ist der Hersteller deiner RFID-Chips. Auch wenn die in der französischsprachigen Schweiz sitzen, man spricht außer frpnzösisch auch deutsch und englisch. Eine freundliche Anfrage wird in der Regel hilfsbereit beantwortet.
Hallo Erfid/Bond, danke für eure Ideen/Tips. Habe mir nun die Signale direkt an Spule und parallel zusätzlich auch nochmal am Output angesehen: Ohne Vorwiderstand und Originalspule ist Radio Moskau frei empfangbar. Selbst wenn kein Key in der Spule liegt werden hier lustige Ausgangssignale vom U2270B erzeugt. Die modifizierte Spule mit Vorwiderstand ist "sauber". Will heißen ohne Key keine Signale, mit Key normaler Output. Der Hinweis bezüglich der Parity-Bits in Abhängigkeit der vorhergehenden Nibble-Werte führt mich gleich nochmal dazu das Datenblatt zu den Keys/Tags zu studieren. Über diese Pollin-Hardware liest man ja desöfteren "geht nicht". Zumindest habe ich gegenüber der Originalsoftware den Erfolg überhaupt Ergebnisse zu sehen. Mit der Bascom-Software lässt sich auch nichts anfangen, da 1. Bascom und 2. ein alleinstehender Befehl dessen interne Arbeitsweise sich im Code nicht nachvollziehen und ändern lässt. Gruß, Ehrhardt
Nachtrag: Ich hatte tatsächlich Zweifel ob die Synchronisierung ordnungsgemäß ist, aber sie ist es (siehe Oszillogramm).
So, einen Dank für den Denkanstoß! Die Parity-Bits sind in Empfangsrichtung je Nibble eine XOR-Verknüpfung. D.h. Die Hardware und auch die Software ist in Ordnung, nur das Hirn spielte nicht mit. Im Anhang noch der passende Quelltext mit eingepflegter Parity-Prüfung und optionaler Hex-Ausgabe der Tags. Hinweis dazu: ich nutze die Hardware noch für andere Spielereien und habe einen 16 Mhz-Quarz verbaut. Für den original 8 Mhz-Quarz einfach die Konstante F_CPU entsprechend anpassen. Ich habe den Quelltext als Beispiel an die Luna-AVR-Heimseite (http://avr.myluna.de) weitergegeben, falls sich jemand noch um die LCD-Einbindung kümmern will. Ohne Ausgaberoutinen belegt diese RFID-Dekodierungsroutine 866 Bytes (ca. 40%), also noch ausreichend Platz auf dem Attiny2313. Schöne Ostern! Ehrhardt
Moin Ehrhardt, danke für den RFID-Reader, geht prima! habe die Lcd-Ansteuerung eingebaut und gleichzeitig noch zwei kleine Fehler im Compiler gefunden. Gestern mitgeteilt, heute wurde es schon von Richard behoben. Harald
Würdest Du den Quelltext bitte hier posten? Myluna zeigt nichts an.
kwell schrieb: > Würdest Du den Quelltext bitte hier posten? Myluna zeigt nichts an. siehe einen Beitrag darüber "rfid-lcd.luna" auf der Webseite ist er unter Beispiel-Sourcen zu finden: http://avr.myluna.de/doku.php?id=de:beispiel-sourcen Harald
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.