------------------------------------------------------------------------------ (c) 2008 Gerhard Günzel ------------------------------------------------------------------------------ Datei : RFIDSANDWICH.BAS Datum : 14.06.2008 Letzte Aenderung: ------------------------------------------------------------------------------ Das RFID-Sandwich ist eine Hardware-Entwicklung von Gerhard Günzel. http://www.emagu.de/rfid_mit_em4095.htm Die Software ist auf das Demokit von MCS aufgesetzt. Hier werden keine Taster und LCD verwendet; und zum Programmieren wird der Zugang über einen Mastertag, der selbst einprogrammiert werden kann, ermöglicht. ------------------------------------------------------------------------------ Beschreibung und Funktionsweise: Hardware: RFID-Sandwich ist ein RFID-Leser in runder Form, so dass RFID-Platine und Powerplatine in eine Unterputzdose passen. Sandwich daher, weil die Platinen so konstruiert sind, daß sie übereinander mit Abstandsbolzen verschraubt werden können. Die Hardware besteht aus Mega8, RFID Leser EM4095 und MAX202 für Serielle. Der Mega8 ist der Programmprozessor, der EM4095 ist der RFID-Leser und der Max 202 ist für die serielle Schnittstelle (8,N,1,19200). Die Serielle wird zur Ausgabe von Klartext während des Programmablaufs benutzt. Es werden nur ASCII Zeichen für ein Terminalprogramm auf dem PC ausgegeben. Zur Status- Anzeige ist eine Led eingebaut, die parallel zur Terminalausgabe verschiedene Zustände optisch am Reader anzeigt. Beschreibung folgt unten. Schnittstellen zum PC sind SPI (10pol) und RS232 (3pol) als Stiftleisten. Antenne und LED jeweils (2pol)) Stiftleisten. Generell: Zugang zum Reader erfolgt über einen Master Tag. Das kann ein xbeliebiger Tag mit 4102 IC sein. Der Master wird programmiert, wenn man einen Tag an den Leser hält und Reset drückt. Wird der Tag 10 mal erkannt, dann wird er ge- speichert. Als Anzeige hierfür blinkt die LED im 2 Sekunden Takt 10 mal und blinkt dann 5 sec. lang in schnellem Takt. Wird der Master nun entfernt und nochmal Resetet, bleibt der Tag als Master gespeichert, sperrt aber nicht. Der Master kann dann aber auch programmiert werden. Es ist Platz für 20 Tags im Speicher. Programmiermodus - Tags einlesen und speichern: Mastertag einlesen. Led blinkt schnell für 5 Sekunden und wird für zwei sec dunkel und Relais zieht an, wenn Mastertag gespeichert ist. Led leuchtet dann Ständig, bis ein neuer Tag dran gehalten wird. Led blinkt dann für 5 Sekunden langsam als Zeichen für gespeicherten Tag. Anschließend leuchtet die Led wieder ständig. Lesemodus: Wird ein Tag an den Leser gehalten, der nicht gespeichert ist, dann blinkt die Led im halb-Sekunden Takt. Das ist nur ein Zeichen, daß ein Tag gelesen wurde. Wird ein gespeicherter Tag erkannt, dann blinkt die Led kurz zweimal und wird für zwei Sekunden dunkel. In den zwei Sekunden wird ein Signal an einem Transistor mit Open Kollektor ausgegeben (aktiv Lo). Ist die Power- platine angeschlossen, so zieht für zwei Sekunden ein Relais. Programmbeschreibung: - Beim Programmstart werden die üblichen INIT-Geschichten für den Compiler festgelegt, wie Declare, Dim, Config, Alias, Baud usw. - Mit "Config Hitag" wird die Lib von Bascom eingebunden. - Zwei Funktionen werden im Programm deklariert und benutzt Havetag und Is_it_master. Havetag schaut nach, ob ein Tag schon gespeichert ist gibt entweder 0 oder die Tagnummer im Speicher zurück. Is_it_master testet ob der eingelesene Tag der gespeicherte Master ist. - Es werden eigentlich nur drei Signale vom EM4095 benutzt: MOD,SHD,DEMOD_OUT MOD und SHD werden beim Programmstart auf Lo gezogen, so daß der EM4095 als reiner Reader arbeitet. DEMOD_OUT ist das Nutzsignal, das vom Interrupt1 verarbeitet wird. - Das Auslesen der Tags erfolgt über den Bascombefehl "Readhitag".Es wird die Startadresse des 5-stelligen Arrays übergegeben, wo dann die Tag-Daten zu finden sind. Gleichzeitig wird der vorher mit (Config Hitag) festgelegte Interrupt frei gegeben, über den die Daten vom RFID-Chip gelesen werden. Die genaue Beschreibung ist in der em4095.lib von BASCOM zu finden :-) Programmablauf: INIT und Deklarationen. Für Daten der Tags plus Mastertag wird Speicher im EEPROM und SRAM für 20 + 1 Tags reserviert. Es wird zuerst und einmalig geprüft, ob ein Tag am Reader ist. Wird der Tag 10 mal gelesen, wird er als Master gespeichert. Nach Reset werden alle Tags vom EEPROM ins SRAM gespeichert und gezählt. Die Led wird dauernd angeschaltet; als Betriebsanzeige. In einer Do Loop Schleife wird abgefragt ob ein Tag am Leser ist. Wird einer erkannt wird geprüft ob es der Master ist. Ist es der Master, dann wird in Programmiermodus geschaltet und auf einen Tag gewartet, der dann gelesen und gespeichert wird. Ist der Tag nicht bekannt, dann wird er ge- speichert. Ist er schon gespeichert, wird das Relais betätigt und nicht mehr gespeichert. Optische Anzeige vor und nach dem Programmieren ist 5 Sekunden blinken. Ist der erkannte Tag nicht der Master, aber gespeichert, dann zieht das Relais für zwei Sekunden. Ist der erkannte Tag nicht gespeichert, dann blinkt nur die Led. Beschreibung: RFIDsandwich Türöffner mit ATMega8, RFID Chip EM4095 und RS232 Schnittstelle Dateiname: rfidsandwich.bas ZIP-Archiv: rfidsandwich.bas, RFIDSANDWICH.BIN, RFIDSANDWICH.HEX Eagle-Dateien als Info im Format (.png). Links: Autor: Gerhard Günzel http://www.emagu.de Urheberrecht: Bei Gerhard Günzel,