Vortrag zur Studienarbeit Entwicklung eines HITAG 1 Kartenlesers 21. April 2005 Thimo Eichstädt T. Eichstädt 21. April 2005
Eine kurze Einleitung Durchführung Studienarbeit wurde durchgeführt bei der Firma Syntron Gesellschaft für integrale Sicherheitssysteme mbh in Lehrte Aufgabenstellung Entwicklung eines RFID-Kartenlesers/Programmierers mit dem HITAG 1 Protokoll der Firma Philips Benutzte Komponenten Mikrocontroller der Firma Microchip (in Assembler programmiert) IC HTRC 110 der Firma Philips Demo-Platine der Firma Microchip Selbst entwickelte Platine für Antennenkomponenten Antenne T. Eichstädt 21. April 2005 Folie 2
RFID Systeme RFID: Radio Frequency Identification Systems Aufgabe von RFID-Systemen: Bereitstellung von Informationen zu Menschen, Tieren und Waren oder Gütern Einteilung Nur-Lese Systeme (z.b. Transponder bei Markierung von Tieren, Barcode Etiketten zur Warensicherung) Schreib-Lese Systeme (Guthabenkarte wie Mensa-Card an der Universität Hannover, Zutrittskontrollen oder Zeiterfassung) Mikroprozessorbasierte Systeme Frequenzbereiche Die verbreitetsten RFID-Systeme arbeiten meist auf 13,56 MHz oder 125 khz Transponder Scheckkartenformat, Schlüsselanhänger, Münzen (Coins) T. Eichstädt 21. April 2005 Folie 3
HITAG RFID-System Merkmale HITAG 1 System Entwickelt von Philips Definierte Kommandos Arbeitsfrequenz: 125 khz Schreib-Lese System Reichweite: ca. 20 cm Filter usw. sind in einem IC des Typs HTRC 110 vereint Transponder Transponder im Scheckkartenformat Eindeutige, fest einprogrammierte 4 Byte große Seriennummer 256 kbyte großes EEPROM zur Speicherung von Daten Datenübertragung wird durch CRC Verfahren gesichert Kommunikation kann verschlüsselt und somit abhörsicher erfolgen T. Eichstädt 21. April 2005 Folie 4
Transponder Speicherorganisation 16 Blöcke Jeder Block besteht aus 4 Seiten Jede Seite speichert 4 Byte Block 0 4 Byte Seriennummer 12 Byte Konfiguration Block 1 Konfiguration Block 2..3 Zugriff nur verschlüsselt mit Passwort Block 4..7 Zugriff (je nach Konfiguration) verschlüsselt oder unverschlüsselt Block 8..15 Unverschlüsselter Zugriff T. Eichstädt 21. April 2005 Folie 5
Teil I: Das Lesegerät Beispielaufbau T. Eichstädt 21. April 2005 Folie 6
Das Lesegerät (1) T. Eichstädt 21. April 2005 Folie 7
Das Lesegerät (2) Philips HTRC 110 Generiert Antennensignal aus Daten vom Microcontroller Wandelt empfangenes Signal an Antenne in High- /Low Pegel um Wird über 3-adrigen SPI (Serial Peripheral Interface) Bus angesprochen Microchip PIC 16F876 Verschiedene Hardware Module bereits integriert SPI Modul für Kommunikation mit HTRC 110 UART (Addressable Universal Asynchronous Receiver / Transmitter) Modul für Kommunikation mit externen Komponenten über RS232 Verschiedene Timer (z.b. genutzt für Abtasten von Signal) Watchdog Getaktet mit 8 MHz T. Eichstädt 21. April 2005 Folie 8
Teil II: HITAG Kommunikation Beispielaufbau T. Eichstädt 21. April 2005 Folie 9
Datenübertragung zum Transponder (1) Einfacher Antennenschwingkreis Komponenten Widerstand R (Verlustwiderstand) und Kondensator C (auf Platine verbaut) Spule L (z.b. gewickelter Kupferdraht) Prinzip Energie wird zwischen Kondensator und Spule umgeladen Bei richtiger Dimensionierung der Komponenten schwingt die Kombination aus Kondensator und Spule In Spule wird magnetisches Feld aufund abgebaut In Raum wird elektromagnetisches Feld emittiert Durch erzeugtes Feld können Daten und durch Gleichrichtung ebenfalls Energie übertragen werden T. Eichstädt 21. April 2005 Folie 10
Datenübertragung zum Transponder (2) Datenübertragung vom Lesegerät zum Transponder Transponder wird berührungslos mit Energie versorgt Daten werden durch Amplitudenmodulation übertragen Amplitude wird zwischen 2 Zuständen getastet (Binär entweder 0 oder 1) (Amplitudentastung [engl: Amplitude shift keying]) T. Eichstädt 21. April 2005 Folie 11
Datenübertragung zum Transponder (3) Implementiertes Protokoll benutzt 100%-ASK Amplitude wird zwischen Û und 0 Volt getastet Während der 0 Volt Phasen wird keine Energie übertragen Transponder benötigt einen Stützkondensator, um während der 0 Volt Phasen weiter mit Energie versorgt zu werden Kodierung der zu sendenden Daten erfolgt im HITAG Protokoll in Binary Pulse Length Modulation Wertigkeit der Bits wird durch Länge der Low-/High-Phasen festgelegt HTRC 110 übersetzt Spannungspegel vom Mikrocontroller in 100%-ASK Kodierung T. Eichstädt 21. April 2005 Folie 12
Datenübertragung vom Transponder (1) Aktives Senden von Daten vom Transponder würde zuviel Energie benötigen Lösung: Lastmodulation Transponder verändert in seinem Schwingkreis eine Last Veränderung des Transponderschwingkreises verändert ebenfalls Amplitude der Spannung im Senderschwingkreis, Demodulator im Lesegerät erkennt Amplitude Kapazitive Lastmodulation: die Kapazität wird im Takt des Datenstromes verändert Ohmsche Lastmodulation: der Widerstand wird im Takt des Datenstromes verändert (hier benutzt) T. Eichstädt 21. April 2005 Folie 13
Datenübertragung vom Transponder (2) 2 verschiedene Kodierungen der zu übertragenen Daten Transponder wählt selbstständig die Kodierung Anticollision Mode Wird bei erster Antwort aller Transponder auf Broadcast Meldung benutzt Kollisionen zwischen mehreren gleichzeitig sendenden Transpondern soll erkannt werden Übertragungsrate: 2 kbit/s Minimale Länge der Potentialzustände: 128 us Manchester Kodierung Wird bei Kommunikation direkt mit einem bestimmten Transponder benutzt Übertragungsrate: 4kBit/s Minimale Länge der Potentialzustände: 128 us T. Eichstädt 21. April 2005 Folie 14
Datensicherheit Start Bits Benötigt zur Synchronisation auf das Transpondersignal Am Anfang der Datenübertragung werden 3-6 Start Bits gesendet. Prüfsumme Luft ist ein Medium, auf dem durch Störung Datenfehler auftreten können Fehlerhaft gelesene oder gar beschriebene Transponder können zu großen Problemen führen (z.b. Guthabenkarten) Sicherung der übertragenen Daten durch Prüfsummen unablässig Transponder nimmt nur Datenpakete an, wenn die Prüfsumme stimmt Software des Lesegeräts muss Prüfsumme berechnen und selbst die Antwort des Transponders überprüfen Verfahren: Cyclic Redundancy Check T. Eichstädt 21. April 2005 Folie 15
TEIL III: Das Programm T. Eichstädt 21. April 2005 Folie 16
Das Programm Die Interrupt Routine Tastet Transpondersignal vom HTRC 110 ab Speichert erkannte Bitfolgen vom HTRC 110 in einem Empfangspuffer Empfängt Daten vom UART Modul Berechnet und überprüft Parität der empfangen UART Daten Speichert korrekt empfangene Bitfolgen vom UART Modul in einem Kommandopuffer Routine muss möglichst kurz sein, um das Hauptprogramm nur kurz zu unterbrechen Das Hauptprogramm Wertet den Empfangpuffer aus Wertet den Kommandopuffer aus Berechnet alle Prüfsummen Sendet Daten über den HTRC 110 an den Transponder Sendet Daten über das UART Modul an angeschlossene Komponenten T. Eichstädt 21. April 2005 Folie 17
Interrupt Routine: Abtasten (1) Anticollision Mode Signal wird vom Programm im Mikrocontroller alle 64 µs (minimale Länge eines Potentialzustandes: 128 µs) abgetastet (Frequenz: f = 15,625 khz) Ein Bit im Anticollision Mode besteht aus 8 einzelnen Samples Eine 1 wird bei 00110011 erkannt Eine 0 wird bei 00001111 erkannt T. Eichstädt 21. April 2005 Folie 18
Interrupt Routine: Abtasten (2) Manchester Kodierung Signal wird ebenfalls alle 64 µs (f=15,625 khz) abgetastet Problem: Exakte Synchronisation auf Signal nötig, da bei Verschiebung um 4 * 64 µs falsche Bitfolgen erkannt werden Datenrate bei Manchester Kodierung doppelt so hoch, ein Bit besteht aus 4 einzelnen Samples Eine 1 wird bei 0011 erkannt Eine 0 wird bei 1100 erkannt T. Eichstädt 21. April 2005 Folie 19
Hauptprogramm: Programm-Ablauf-Plan T. Eichstädt 21. April 2005 Folie 20
TEIL IV: Kommunikation mit externen Komponenten T. Eichstädt 21. April 2005 Folie 21
Kommunikation mit externen Komponenten Beispiele für externe Komponenten Computer Kassensysteme Geldautomaten bzw. Warenautomaten kurz gesagt: alle Kompententen, die über RS232 kommunizieren können Eigenschaften der RS232 Schnittstelle 3 Adern: Transmit, Receive, Ground Potential liegt bei +/- 12 V 2-stufige Fehlererkennung Gerade Parität Prüfsumme am Ende jedes Kommandos / jeder Antwort Einheitliches Kommunikationsprotokoll T. Eichstädt 21. April 2005 Folie 22
Kommunikationsprotokoll (1) Steuerung des Lesegeräts Leser wird ausschließlich im Polling Modus betrieben Das Lesegerät sendet nicht selbstständig Daten Der Leser muss in regelmäßigen Abständen abgefragt werden ob sich ein Transponder im Feld des Lesers befindet 9 Befehl sind im Lesegerät implementiert Befehle zur Konfiguration des Lesegeräts Seriennummer lesen, Transponderdaten lesen/schreiben 10 Fehlercodes können vom Programm zurückgegeben werden Syntax der Kommandos und Antworten: Länge: Länge des kompletten Kommandos Leseradresse: Adresse des Lesegeräts (hier: 0xFF) Kommando: Befehl an das Lesegrät / Antwort auf Befehl Argumente: Argument(e) des Befehls / Fehlercode und Antwort des Lesegeräts Prüfsumme: XOR-Verküpfung aller vorangegener Bytes T. Eichstädt 21. April 2005 Folie 23
Kommunikationsprotokoll (2) Beispiel: Seriennummer lesen Befehl an das Lesegerät: [0x11] Seriennummer lesen Antwort des Lesegeräts: Kein Transponder im Feld (Fehlercode 0x01) Antwort des Lesegeräts: Transponder im Feld (kein Fehler: 0x00) T. Eichstädt 21. April 2005 Folie 24
TEIL V: Demonstration T. Eichstädt 21. April 2005 Folie 25