Kontaktlose ID-Systeme werden als RFID (radio frequency identification) bezeichnet. Diese Technologie ist dem Bereich der automatischen Identifizierung und Datenerfassung zugeordnet.
Radio frequency steht für die Übertragung von Daten mittels Funkwellen; identification für die eindeutige Identifikation eines Objektes anhand von gespeicherten Daten.
RFID bezeichnet heute die komplette Infrastruktur, die zum drahtlosen Informationsaustausch nötig ist. Dazu gehören neben dem an dem zu identifizierenden Objekt angebrachten RFID-Chip - auch RFID-Tag genannt - die Sende- und Empfangseinheit, mit welcher der RFID-Tag ausgelesen wird und die daran angeschlossenen Systeme, wie zum Beispiel Server und Dienste.
Herzstück der RFID Technologie ist der RFID Chip, der auf der Transpondertechnik aufbaut. Transponder ist ein Kunstwort. Es setzt sich zusammen aus Transmitter und Responder und soll andeuten, dass dieser Baustein in der Lage ist gleichzeitig Daten zu senden und zu empfangen.
Transponder können klein wie ein Stecknadelkopf sein, lassen sich unauffällig Auslesen und sind billig in der Herstellung. Sie enthalten eine Antenne, einen Schaltkreis zum Senden und Empfangen und einen Speicher. Die Kopplung erfolgt über ein Lesegerät, das magnetische Wechselfelder geringer Reichweite oder hochfrequente Radiowellen erzeugt.
In dieser Übung lernst du, wie ein RFID Lesegerät mit einem Propeller Controller beschaltet wird und wie man eine Tag ID ausliest und in einem Programm weiter benutzen kann.
Zusätzlich zu einem 5V und GRD Anschluss benötigt das RFID Lesegerät zwei Propeller I/O Anschlüsse. P2 wird als Ausgang geschaltet; über ihn wird der Pin Enable des Lesegerätes angesprochen. P1 wird auf Eingang gesetzt um die Daten vom Kartenleser seriell einlesen zu können. Der 2,2kOhm Widerstand ist notwendig, da das Ausgangssignal des Lesegerätes einen Signalpegel von 5V Signal hat und der Propeller Controller von 3,3V.
Material |
|
Aufgaben |
|
Im Terminalfenster sollten verschiedene Tag ID Nummern ausgegeben werden. Wird kein Tag innerhalb von einer Sekunde erkannt, erscheint der Text timed out, bis ein neuer Tag erkannt wird.
Sobald eine Tag-ID vom Lesegerät erkannt wurde, drücke die Taste Disable im Terminalfenster, notiere die ID in der Tabelle und setze die Messung fort, indem du die Taste Enable drückst.
Meine Messungen
Programm RFID1.c
Wie arbeitet das Programm?
Zeilen 1 und 2
Die beiden Bibliotheken simpletools und rfidser werden eingebunden. Die Bibliothek rfidser enthält u.a. die Funktionen rfid_open und rfid_get, die in diesem Programm aufgerufen werden.
#include „simpletools.h“
#include „rfidser.h“
Zeilen 4 und 5
Zwei Variablen rfidEn und rfidSout vom Typ int werden deklariert und mit den Werten 2 und 1 initialisiert. Der Enable Pin des Kartenlesegerätes wird mit P2 und der SOUT Pin mit P1 des Propeller-Controllers verbunden.
int rfidEn = 2;
int rfidSout = 1;
Zeile 7
Für das RFID-Lesegerät wird ein Gerätenamen Identifier rfid angelegt; der Name steht für eine Speicherstruktur, in der Informationen über die spezifische RFID-Lesegeräteverbindung abgelegt ist. Werden mehrere Lesegeräte eingesetzt, müssen sie durch entsprechend gewählte Gerätenamen Identifier mittels rfidser *AussagefähigerName voneinander unterscheidbar. sein.
rfidser *rfid;
Zeilen 9 - 11
Das Hauptprogramm startet mit einem Aufruf der Funktion rfid_open. Sie initialisiert das Kartenlesegerät und übergibt die anstehenden Aufgaben an einen weiteren Cog. Die in der Funktion benutzten Parameter entsprechen den I/O Pin, die am Anfang des Programmes initiiert wurden. Der Rückgabewert enthält Informationen, die in der Speicherstruktur von rfid abgelegt werden. Damit kann rfid in anderen Funktionen aufgerufen werden.
Die Funktion rfid_get(rfid, 1000) erwartet vom Gerät, dem wir den Namen rfid gegeben haben, in einem Zeitraum von 1000ms eine Rückmeldung. Wurde ein Tag erkannt, gibt die Funktion als Rückgabewert die Tag-ID an das Programm zurück, in jedem anderen Fall die Meldung „timed out“. Char *str bezeichnet einen Pointer, der auf einen Speicherplatz zeigt, in dem die von der Funktion zurückgegebenen Daten abgelegt werden.
In der Formatierungsanweisung des print-Befehls wird mit %s eine Stringausgabe angezeigt. Es wird eine Zeichenkette ausgegeben, die im Speicher mit der Startadresse str abgelegt ist.
Was du wissen solltest!
Passive Tags
Passive Tags verfügen über keine eigene Energiequelle. Sie beziehen ihre Versorgungsspannung durch Induktion aus den Funksignalen des Lesegerätes. Sendet das Lesegerät ein Funksignal in Form eines e-m Feldes und wird der Chip durch dieses Feld geführt, wird in der Spule mittels Induktion Strom erzeugt.
Das Parallax RFID Lesegerät arbeitet nur mit read-only Tags der Familie EM4100 zusammen und kann keine Daten auf RFID Tags schreiben.
Werden RFID-Tags als Bestätigung in Zugangssystemen eingesetzt, muss jedes Mal überprüft werden, ob die Tag ID dem System bekannt ist. Im folgenden Programmbeispiel werden wir das einmal praktisch umsetzen. Dazu müssen zunächst die IDs der vorhandenen Tags ausgelesen werden.
Aufgaben |
|
Jetzt kommst du!
Das Programm erkennt jetzt unterschiedliche Tag-IDs. Es ließen sich jetzt, je nach erkannter Tag-ID, unterschiedliche Aufgaben oder Aktionen damit verknüpfen. In der rfidser Bibliothek gibt es die Funktion rfid_disable. Sie weist den RFID-Kartenleser an, keine Tag-IDs einzulesen, bis die Funktion rfid_enable aufgerufen wird. Verändere das Programm so, dass das Lesegerät bei Tag B sperrt und eine entsprechende Textausgabe im Terminal erscheint.