RFID - Radio Frequency IDentification
Die Seite wurde im September 2007 erstellt und laufend ergänzt.
Die RFID Technik hat in den letzten Jahren viel Aufsehen erregt. Sei es nun in technischer oder humaner Hinsicht. Ich denke den Chip im Ausweis kann man wohl nicht aufhalten. Warenkennzeichnung ist auch schon lange Realität. Zukünftig sollen nun auch wertvolle Güter mit dem Chip versehen werden. So kann man vielleicht irgendwann mal feststellen, wo das Postpaket abgeblieben ist, das nie angekommen ist.
Das Vorspiel
Was mich mehr fasziniert ist die Technik, die dahinter steckt. In der Hinsicht bietet das Internet nicht sehr viel brauchbares. Die Artikel in Zeitschriften sind für meinen Geschmack auch zu spezifisch. Gleichzeitig wird am Heftende das fertige Produkt angeboten. Diese Aspekte nutzen viele Firmen aus und bringen (meine Meinung) überteuerte Produkte auf den Markt. Jetzt mag ich's aber wissen. Schafft man das selber oder nicht. Schau ma halt mal. Ärmel hochgekrempelt, nach Herstellern gegoogelt und Unmengen an Info durchgewälzt. Letztendlich liegt ein Datenblatt von der Firma EM Microelectronic Marin SA vor mir auf dem Schreibtisch. Der EM4095 ist der Chip, den ich mir ausgewählt habe. Aber woher bekommt man das IC. Laut Hersteller gibt es keinen Distributor in Deutschland. Durch Zufall kam ich in einem Forum auf die deutsche Firma Hedam. Hier konnte man auch als Endverbraucher zu vernünftigen Preisen kaufen. Dann von Firma RFID-Dealer übernommen - und 2017 auch schon wieder von der Bildfläche verschwunden. Auf der Seite von EM Marin gibt es auch eine Application Notes, die den Aufbau und die Entwicklung eines Demo Board veranschaulicht. Bei meinen ersten Versuchen haben allerdings zwei von den fünf erstandenen Chips indianisches Verhalten in Form von Rauchzeichen gezeigt. Da waren' s nur noch drei.
Das Konzept
Es soll ein kleines, eigenständiges RFID-Modul entwickelt werden, dass später bei Bedarf in ein Prozessor-Board (wie mein Mega8Board ) eingebunden werden kann. Auf das Modul soll nur der RFID-Chip und die notwendigen Bauteile für den Betrieb des RFID kommen. Dann noch Antennenanschluss und Ein-Ausgänge für das Prozessor-Board.
Jetzt aber zur Sache
Als allererstes will ich mal den Chip kennenlernen. Bei SO16 Gehäuse erübrigt sich die Frage ob man hier sockeln und löten kann. Es muss eine Platine her. Und was soll drauf: Lediglich der EM4095 und alles was der Reader an eigenem Umfeld braucht.
Das Layout und der Schaltplan wurde mit Eagle erstellt. Hier links im Bild sieht man auf die Lötseite der einseitigen Platine. Das Cent Stück zeigt in etwa die Größe. Die Bauteile sind SMD und rings rüber sind Pads für die Steckverbindung und die Antenne.
Fertig aufgebaut und fast zum ersten Test bereit. Fehlt nur noch die Luftspule. Form rund Isolierter Kupferlackdraht mit d = 0,2 mm 160 Windungen Durchmesser innen 23 mm 12 Meter Draht Induktivität 786 yH
Zum Wickeln der Spule habe ich mir ein kleines Hilfsmittel gedreht. Der Einschnitt hat einen Durchmesser von 23 mm und eine Breite von 2,5 mm. Damit ist auch schon das Maß der Spule festgelegt. Die Schraube in einen Akkuschrauber eingespannt und schon kann man wickeln. Einige Versuche ergaben die Daten für eine Spule von 786 yH. Zum genauen messen der Spule hab ich mich zum Kauf eines LCR Messgerätes durchgerungen - absolut hilfreich.
Hier ist schon alles verdrahtet. Auf dem Steckbrett ist die RFID-Platine links davon die Luftspule und ein Transponder 4102
Das Mega8-Testboard oben dient zur Zeit lediglich als Spannungsversorgung für das RFID-Modul. Nach den Versuchen für die reine Elektronik soll das Testboard dann in BASCOM programmiert werden und ordentlich arbeiten. Die ersten Versuche waren schon irgendwie niederschmetternd und ich hab mich gewundert wie einen eine neue Technik auf Trab bringen kann. Was mir nicht bewusst war: es werden Antennenspannungen bis zu 450 Volt von dem kleinen Ding produziert. Aber irgendwie funktioniert das alles nicht so wie ich mir das vorgestellt hatte. Nach einiger Probiererei und, wie erwähnt, zwei geschossenen ICs hab ich mich wieder auf die Suche nach Info gemacht; und ich bin fündig geworden. Hier gibt es eine EXCEL-Tapete , die einiges an Rechenarbeit abnimmt. EM4095 Hardware Environment Calculation Tool Das Excel Sheet beinhaltet genau die Daten, die in der App Note 404 gezeigt werden. Die AN 404 liegt übrigens auf der gleichen Seite wie das Excel Sheet. In dem zugrunde liegenden Beispiel wird deutlich, wie man vorzugehen hat. Und schon kommt Klarheit in die Sache.
Zuerst nimmt, oder wickelt man eine Spule, die zwischen 300 und 800 uH liegt. Hinter dem Logo verbirgt sich eine kompetente Firma, die auch preislich gesehen
am Boden der Realität ist. Es wird eine Grundfrequenz von 125 KHz zugrundegelegt. Man gibt einen Q der Spule (Gütefaktor) von ca. 40 an. Das passt lt. Messung für die Luftspule. Automatisch wird der ohmsche Widerstand der Spule berechnet. (ca. 15 Ohm). Dann wird der Resonanzkondensator ausgerechnet (Excel). Den Wert sollte man in etwa einhalten. Dann muss man noch zwei Kondensatoren für den Divisor berechnen. Das ist der Spannungsteiler, der für die Spannung am DMODIN Eingang verantwortlich ist. Die Kondensatoren für den Division Factor müssen so berechnet werden, dass am DMODIN nicht mehr als 4 Volt anstehen. (Verhältnis in etwa 1:30) Man kann sehr schön beim Spielen mit den Werten (1:100 und > ) sehen in welche Dimensionen die Spannung an der Spule geht. Ich war erstaunt, als da plötzlich 450 V PP angezeigt wurden. Kurz nachgemessen - stimmt. Aber da wird es dem EM4095 richtig warm ums Herz. Also muss man den Strom etwas "ausbremsen", indem man einen Vorwiderstand in die Spule bringt. Es gibt natürlich auch eine zu Fuß Methode. Aber warum soll man, wenn Excel das Gleiche macht. Hat man den Vorgang zur Berechnung verstanden, dann ist das eine große Hilfe. Ich hab als Werte eine Spule von 786 uH, Q = 40, Cres = 2nF, CDV2 = 1 nF, CDV1 = 47 pF und der Serial Resistor = 68 Ohm. Und das Ergebnis kann sich sehen lassen.
Das Oszillogramm zeigt oben an der Spule gemessen die modulierten 125 KHz. Unten die Daten am Ausgang DMODOUT. Der Transponder sprudelt.
Hier zeigt das Messinstrument die Frequenz der Spule an. Gemessen ist das mit einer Schnüffelspule. ( Äußere große Spule - die ist aus einer Wegfahrsperre von einem Auto )
Links zu sehen ist eine selbst gewickelte Schnüffelspule. Wer hat schon so eine Rarität wie oben gezeigt rumliegen? 1 mm Draht 60 mm x 60 mm 20 Windungen Messung an der Spule sollten immer mit einer Schnüffelspule durchgeführt werden. Direkt mit dem Scope kann zu bösen Messfehlern führen. Oskar weg und nichts geht mehr.
Die Herstellung der Leiterplatte wird in Elektronik beschrieben. Wer Interesse am Layout und Schaltplan oder an der Hardware hat, der kann hier die Zipfiles downloaden.
Bis hierher war es reine Hardware zum Kennenlernen der Technik und des Leser ICs. Das Modul liefert jetzt bereits Daten, wenn man einen Tag (Transponder) dranhält. Das ist am Oszillogramm oben schön zu erkennen - ein undefinierbares Rechtecksignal. Um das zu entschlüsseln gibt's wieder was zu klären. Welcher Transponder oder Tag ist das? Das Ding heißt UNIQUE und ist ein EM4102, EM4200. Datenblatt gibt's wieder bei EM Microelectronic Marin SA . Das Datenblatt sollte man sich unbedingt sorgfältig durchlesen, um den Sinn des Ganzen zu verstehen. Kurz: Der Tag ist vom Einfachsten. Er kann kein "anti-collision" und kann nicht beschrieben werden. Er liefert nur ganz doof seine eigenen Daten in Form eines 64 Bit langen Streams. Die positive Geschichte daran ist, dasss jeder Transponder-Tag ein Unikat darstellt. Das heißt auf gut Deutsch: Es gibt keine zwei gleichen Tags. Jeder hat seine eigene Hausnummer eingebrannt. Drum tragen die Kühe auch so lustige, gelbe Ohrclips. So wird die Hausnummer auf die Kuh übertragen. Alles Viehzeugs, das essbar ist, hat seit Euronorm irgendwo so ein Ding hängen. Zum Testen bitte einen Tag kaufen und keine Kuh plündern. Um den "Daten-Salat" mal anschaulich zu demonstrieren, hab ich mir die Arbeit gemacht den Stream eines Transponder-Tags grafisch darzustellen.
Links im Bild ist eine Grafik über den Aufbau des Nutzsignales zu sehen. Zum Vergrößern anklicken.
So geht es programmtechnisch natürlich am einfachsten. BASCOM ab der Release 1.11.9.0 unterstützt jetzt auch RFID - Reader. Mit meiner oben gezeigten Luftspule und der fertig aufgebauten RFID-Reader Platine wurde bei MCS Electronics die BASCOM-Library für das Beispiel unten geschrieben.
'------------------------------------------------------------------------------- ' (c) 1995-2007 MCS Electronics ' This sample will read a HITAG chip based on the EM4095 chip ' Consult EM4102 and EM4095 datasheets for more info '------------------------------------------------------------------------------- ' The EM4095 was implemented after an idea of Gerhard Günzel ' Gerhard provided the hardware and did research at the coil and capacitors. ' The EM4095 is much simpler to use than the HTRC110. It need less pins. ' A reference design with all parts is available from MCS '----------------------------------------------------------------------------- '------ Standard-Init with BASCOM ---------------------------------------------- $regfile = "M8def.dat" $baud = 19200 $crystal = 8000000 $hwstack = 64 $swstack = 40 $framesize = 40 Shd Alias Portb.2 Pmod Alias Portc.0 Config Shd = Output Config Pmod = Output Pmod = 0 'Shd = 1 'Waitms 1 Shd = 0 $lib "em4095.lib" Dim Tags(5) As Byte 'make sure the array is at least 5 bytes Dim J As Byte Dim Lcd_data(5) As Byte Config Hitag = 64 , Type = Em4095 , Demod = Pind.2 , Int = @int0 Lcd "Test EM4095" '------------------------------------------------------------------------------- ' you could use the PCINT option too, but you must mask all pins out ' so it will only respond to our pin ' Pcmsk2 = &B0000_0100 ' On Pcint2 Checkints ' Enable Pcint2 On Int0 Checkints 'we use the INT1 pin Config Int0 = Change 'we have to config so that on each pin change ' the routine will be called Enable Interrupts 'as last we have to enable all interrupts Cls Do If Readhitag(tags(1)) = 1 Then 'this will enable INT1 Disable Interrupts Cls Locate 1 , 1 For J = 5 To 1 Step -1 Lcd Hex(tags(j)) ; ","; Next Else Cls Locate 2 , 1 Lcd "nothing " End If Waitms 500 Enable Interrupts Loop Checkints: Call _checkhitag 'in case you have used a PCINT, you could have 'other code here as well Return
Im Beispiel oben sieht man, dass ich die For Next Schleife mit Step -1 benutze. Das hat auch einen Grund. Die Daten des TAGs werden beim Lesen in der LIB-Funktion auf dem Stack byteweise abgelegt. Liest man sie wie im BASCOM Beispielcode als normales Array aus, dann ist die Reihenfolge der einzelnen Bytes umgedreht. Das sollte man wissen und berücksichtigen, wenn man die Daten weiter verarbeitet. Meine Beispiel-Kuh von oben würde sich drüber freuen - Denn geht es im Schlachthof mit rechten Dingen zu, dann bleibt sie am Leben.
Und der Schluss vom Test - Na geht doch
Mit diesem Grundstock lässt sich nun allerhand realisieren. Der Fantasie sind keine Grenzen gesetzt - Türschloss, Zugangskontrolle, Wegfahrsperre. Um nur einiges zu nennen.
Im Display ist jetzt die Hausnummer vom Transponder zu sehen, und zwar so, wie es im Chip steht - Konform mit der Auswertung des Datenstrings oben mit der "zu Fuß" Methode. Ich wollte es ja wissen; ob man die Technik selber in den Griff bekommt. Es funktioniert tatsächlich. Ein langer Weg. Rückblickend kann ich sagen - Der Aufwand hat sich auf alle Fälle gelohnt.
Und wie geht's weiter
Der erste Prototyp des Readers - Ein RFID Sandwich.
Der Grundaufbau ist eine Rechteckform beider Platinen - RFID und Powerplatine. Damit die Platinen in eine Unterputzdose passen, sind sie so konstruiert, dasss der runde Teil ausgebrochen werden kann. Über Abstandsbolzen können beide Platinen zum Sandwich verschraubt werden.
Die RFID Platine ist mit Flat Packs aufgebaut. Normale DIL-ICs sind eine Nummer zu groß. Auf einer Fläche von 48x50 mm sind Prozessor, RFID Chip, Serielle Schnittstelle, Programmierschnittstelle, Quarz, LED Anzeige, Treibertransistor und Reset Taster untergebracht. Der Mega8 kann auf der Platine programmiert werden. Über RS232 kann man vom PC aus zugreifen.
Die Power Platine wird von außen über eine Klemmleiste mit Spannung versorgt. Gleich oder Wechsel ist egal. Dafür ist ein Gleichrichter integriert. Ein Netzteil liefert 5V Gleichspannung für die RFID Platine. Über eine weitere Klemmleiste wird ein potentialfreier, frei verfügbarer Relais- Kontakt herausgeführt. Z.B. Türöffner.
Die Platine ist nicht selbst gemacht. Doppelseitig und eine hohe Dichte. Das überlass ich lieber dem Fachmann. Heinz hat das prima hin bekommen. Den Heinz hab ich bei IBÄH unter Platinen gesucht und auch gefunden. Klick auf das Bild führt zu Heinz.
Hier rechts - nach langer Zeit vom neuen Spielzeug einer CNC Fräse weg, und wieder an den Lötkolben zurück - die fertig bestückte Powerplatine des RFID- Sandwich. Hier ist die Stromversorgung und das Türöffner-Relais drauf.
Links das Rahmenblech eines Lichtschalters soll der Träger für das RFID-Sandwich werden. Die Powerplatine kommt noch über Abstandsbolzen hinten dran. Das ganze passt dann in eine Unterputzdose.
Unten die fertig bestückte RFID Platine in Vorderseite und Rückseite.
Auf der Vorderseite sieht man die grünen Stecker für Serielle, SPI und Antenne. Reset Taster und Quarz sind auch vorne. Mittig ist der Sockel für die LED.
Die Rückseite Trägt die Steckverbinder für die Spannungsversorgung und den Relais- Ausgang. Beide werden zur Powerplatine verkabelt.
Das RFID-Sandwich komplett aufgebaut
Die beiden Platinen sind nun über Abstandsbolzen verschraubt und am Rahmenblech befestigt. Das Rahmenblech selbst wird in eine Unterputzdose eingeschraubt. Der große Plastikrahmen wird nach dem Einbau des Sandwichs auf das Rahmenblech geschraubt und die Abdeckkappe draufgedrückt. In der Abdeckkappe sind die LED und die Antenne mit Heißkleber eingegossen. Zieht man lediglich die Abdeckkappe ab, dann kann man mit dem PC an das Sandwich - zum Programmieren oder an die Serielle. Die
Reset Taste ist auch so zugänglich. Obwohl die Antenne direkt in einem Metallrahmen eingebaut ist, beträgt die Reichweite des Tags doch noch ca. vier Zentimeter - ist auch zwecks Störsicherheit so gewollt. Die Platinen selbst haben auch "viel" Massefläche, so dass Störeinflüsse gering gehalten werden. Zum Kippen bringt man, wenn man will, das Ganze allemal. Das wäre die erste Elektronik, die Wunder vollbringt. Jetzt muss das RFID-Sandwich nur noch mit Software gefüttert werden.
Zum Türöffner programmiert - eingebaut - und läuft
Das Sandwich ist außer Reset ohne weitere Tasten konstruiert. Deshalb habe ich die Software, die übrigens in BASCOM 1.11.9.0 geschrieben ist, so ausgelegt, dass zu allererst ein Tag als Master einprogrammiert werden muss, um auf das Sandwich zugreifen zu können. Dieser Master Tag übernimmt nun softwaremäßig die Funktion eines Tasters zur Eingabe. Weitere Tags können dann nur über diesen Master einprogrammiert werden. Und das ist hier zu finden. Aufgemotzt mit Uhrenquarz Taktet man den Mega8 intern, so kann man einen Uhrenquarz anstelle der 8 MHz-Quarz- Beschaltung verwenden. Das RFID-Sandwich kann dann per Software leicht vom einfachen Türöffner zum Zeiterfassungssystem "aufgebohrt" werden. Die RS232.Schnittstelle wäre als Datenkanal zu einem PC-Programm denkbar. Wie weiter oben schon erwähnt, bietet das Konzept eine Menge an Möglichkeiten. Das Gegenstück am PC Das Bild unten zeigt ein Programm, das ich in Visual Basic geschrieben habe. Es bildet nun die Schnittstelle zum PC und besteht aus drei Grundelementen: Port Einstellungen mit Schalter für Verbinden und Trennen, Wahlmöglichkeit für die gängigen Baudrates und Wahlmöglichkeit eines tatsächlich am PC vorkommenden COM-Ports. Zum Zweiten ein Fenster für Datenempfang. Und zum Dritten ein Fenster für Dateneingabe und Senden an den COM-Port. Als Ergänzung kann man noch Dinge wie Speichern in Datei einbinden. Denkbar wäre auch ein Menue vom "Sandwich" an den PC auszulagern.
Schwierigkeiten mit dem EM4095
Das war' s vorerst mal.
Diese Seite habe ich beim "Reinschmecken" in die RFID Technik mitgeschrieben. Die durchwegs positive Resonanz von einigen sehr netten Menschen die mir geschrieben haben, sei es wegen Problemen beim Nachbau oder einfach so, hat mir gezeigt, dass dieses interessante Thema nicht nur mich beschäftigt. Schwer beeindruckt hat mich, dass Resonanz aus allen Ecken der Welt gekommen ist. Besonderes gefreut hat mich die Anerkennung meines Engagements und die positive Beurteilung meiner Seite vom Hersteller des EM4095.
Was tun, wenn nichts geht - oder wenn's nicht mehr geht. Vor diesem Problem stand ich auch sehr oft. Was kann man tun - wo langt man hin - auf was ist zu achten. Einige Erfahrungswerte habe ich auf einer Extraseite zusammengestellt.