RFID leicht gemacht. Implementierung Ihres eigenen RFID-Transponders und -Lesegeräts. Budget-UHF-RFID-Lesegerät und seine Entwicklung

Nachdem ich mehrere Jahre lang an RFID-Themen gearbeitet und verschiedene Lesegeräte für Transpondermodelle gängiger Standards wie Mifare, EMMARINE, TIRIS ... entwickelt hatte, begann mich diese Frage oft zu wundern – buchstäblich im letzten Jahr, verschiedene Arten von Emulatoren unter dem Tags beliebter Protokolle und verschiedene Schlüssel-/Schlüsselanhänger-Kopierer erfreuen sich großer Beliebtheit.

Angesichts der Vielzahl kommerziell erhältlicher Spezialchips für gängige RFID-Protokolle und günstiger Lesegeräte sowie der weiten Verbreitung von Geräten wie digitalen Oszilloskopen, Sniffern und Spektrumanalysatoren ist dieses Thema für viele Entwickler immer dringlicher geworden. Dann habe ich beschlossen, für eines der Projekte ein Austauschprotokoll zu erstellen, das von den oben beschriebenen Standards abweicht.

Natürlich löst diese Idee keine globalen Sicherheitsprobleme neues System und kann von anderen Entwicklern analysiert werden, wenn sie über die entsprechende Ausrüstung verfügen. Der Punkt ist jedoch, dass dies alles nicht mit den bestehenden Standards übereinstimmt und die gesamte Kopierhardware es Ihnen nicht ermöglicht, einen solchen Algorithmus schnell zu kopieren und neu zu erstellen. Natürlich wird ein solches System hier nicht als vollständige Lösung von Sicherheitsproblemen vorgestellt, sondern als Erfahrung in der Anpassung von RFID geschlossenes System. Ein gutes Plus Was die Sicherheit betrifft, ist unter anderen ähnlichen drahtlosen Systemen die Niederfrequenz-RFID-Technologie selbst wichtig – sie ermöglicht kein Lesen von Tags über große Entfernungen.

Passive Tags haben einen relativ geringen Stromverbrauch und erfordern einen recht leistungsstarken Lesegenerator, um sie mit Strom zu versorgen. Die Besonderheiten der Funkwellenausbreitung bei diesen Frequenzen begrenzen auch die Betriebsgrenzen dieses Systems. Die tatsächliche Lesereichweite von Transpondern überschreitet selten 20 cm für 125-kHz-Standards wie EmMarine, sagen wir den EM4001-Standard; für andere Protokolle wie Mifare (13,56 MHz) kann sie länger sein (1,5 Meter für iso15693). Eine größere Lesereichweite bei Niederfrequenz-Lesegeräten erreichen Sie, indem Sie die Größe der Spule bzw. die Versorgungsspannung und die Leistung des Lesegeräts erhöhen. Allerdings sind solche Systeme sperrig und in der Regel schwer tragbar. In der Regel werden solche Systeme nur dauerhaft eingesetzt – beispielsweise für Autos.

Nun zur eigentlichen Architektur unseres RFID-Systems. Für die Experimente wurde der atmel atmega8 Controller ausgewählt. Für die Zwecke der Transponderherstellung scheint dies ein Overkill zu sein. Allerdings wurde in diesem Fall die primäre Aufgabe gelöst, eine neue Schnittstelle auf einem fertigen Entwicklungsboard mit Atmega zu entwickeln und diesen Code anschließend auf günstigere Controller wie Tiny13 zu portieren. Für den Transponder wurde der Betriebsalgorithmus auf der Grundlage des PWM-Generierungsmodus unter Verwendung des Timers T1 im CTC-Modus mit Unterbrechung und Zurücksetzen gleichzeitig mit OCR1 erstellt. Die Übertragungsdaten des Transponders werden beim Einschalten des Controllers aus dem EEPROM gelesen. Insgesamt überträgt der Transponder 10 Byte. Der Inhalt des Transponder-EEPROMs ist auf ersichtlich Abbildung 1. Das erste Byte 0xE7 ist ein erforderlicher Paket-Header, da sein Vorhandensein zuerst überprüft wird, wenn der Leser das Paket analysiert.

Die ersten 8 Bytes sind der Inhalt des Transponderpakets, die letzten 2 Bytes enthalten die CRC16-Prüfsumme der ersten acht Bytes des Pakets. In unserem Transponder wurden beispielsweise folgende Daten aufgezeichnet: Paket 0xE7, 0x05, 0xE8, 0x93, 0x43, 0x7F, 0x20, 0xFF und dementsprechend Prüfsumme 0xF5 0xA8. Um Ihren eigenen einzigartigen Transponder zu erstellen, müssen Sie zusätzlich zum ersten Byte 0xE7 die nächsten sieben Bytes in das EEPROM schreiben und dann die Prüfsumme für die ersten acht Bytes berechnen. Schreiben Sie anschließend zwei CRC16-Bytes am Ende des Pakets in das EEPROM. Das erste Byte lassen wir unverändert – 0xE7. Beim Einschalten des Transponders werden die Daten dieser Bytes in Bits zerlegt und entsprechend dem Wert des OCR-Registers mit der entsprechenden Impulslänge kodiert. Zur Übertragung werden 2 Frequenzen von 2KHz und 5KHz verwendet, um logisch „0“ und „1“ zu übertragen. Darüber hinaus werden die Daten durch Synchronisationsimpulse – Paketstartmarken – getrennt.

Abb.1 Inhalt des Transponderpakets.


Abb.2 Dump der Transponderübertragung auf dem virtuellen Oszilloskopbildschirm.

Das Transponderdiagramm finden Sie unter Figur 3. Die Frequenz des Master-Oszillators beträgt 8 MHz. Spannungsversorgung des Controllers +5V. Sie können einen mit „L“ gekennzeichneten Mega8-Controller verwenden, dann kann die Stromversorgung über eine 3-V-Lithiumbatterie erfolgen (Parameter für einen solchen Chip sind +2,7...+3,5). Anstelle dieses Transistors können Sie jeden anderen NPN-Transistor mit geringer Leistung verwenden. Die Transponderspule wurde auf einen Dorn mit 50 mm Durchmesser mit 0,22 mm Draht gewickelt und hat 50 Windungen. Im Moment wird der Transponder aktiv gemacht – mit externer Energie. Im nächsten Schritt ist geplant, eine passive Version des Transponders herzustellen, was recht einfach ist: Machen Sie eine Isolierung für die Stromversorgung dieser Spule, fügen Sie Gleichrichterbrückendioden und einen Stabilisator hinzu.


Abb. 3 Transponderschaltung.

Lassen Sie uns nun über die Leseschaltung für diesen Transponder sprechen. Die Schaltung wurde auf Basis des bisher verwendeten Kartenlesers EMMARINE adaptiert. Der Teil der Schaltung mit dem Generator auf dem 74hc4060 kann an dieser Stelle getrost gelöscht werden, da wir vorerst ein aktives Label verwenden. Allerdings benötigen wir diesen Teil der Schaltung später, wenn wir ein passives Tag erstellen und Strom vom Lesegerät benötigen. Ansonsten unterscheidet sich die Schaltung nicht wesentlich von der Leseschaltung für EMMARINE: passiver Spitzenwertdetektor – Filter – Verstärker – Komparator. Das Schema hat ein Maximum mögliche Einfachheit und ermöglicht das Auslesen von Transponderdaten in einer Entfernung von 10-12 cm mit gut abgestimmten Konturen.

Sie können die Schaltung noch weiter vereinfachen, indem Sie nur einen Detektor und einen Filter übrig lassen und am Ausgang einen Transistor anbringen, der die Rolle eines Komparators übernimmt, aber das habe ich nicht getan. Am Ausgang erhalten wir ein binäres Rechtecksignal entsprechend der vom Transponder übermittelten kodierten Impulsdauer. Die zulässigen Abweichungen der Elementwerte, bei denen die Schaltung betriebsbereit ist, betragen 5-10 %. Stromversorgung für Controller und Operationsverstärker +5V. Die Quarzfrequenz des Controller-Masteroszillators beträgt 12 MHz. Der Komparatorausgang des LM358 ist mit dem externen Interrupt-Pin des INT0-Controllers verbunden. Das Steuerungsprogramm ist so konfiguriert, dass es bei einer steigenden Flanke am externen Interrupt-Pin INT0 einen Interrupt auslöst. Der Interrupt-Handler prüft die Taktimpulse, dann den Paket-Header und schreibt den Inhalt in den Controller-Puffer. Die Daten der gelesenen Pakete werden über die RS232-Schnittstelle an den PC übertragen. Um das Terminal zu konfigurieren, geben wir die folgenden Parameter an: Geschwindigkeit 57,6 Kb/s, 8 Datenbits, 1 Stoppbit, keine Parität.

Beim Empfang eines Pakets berechnet der Controller die Prüfsumme der empfangenen Bytes und übermittelt die Daten an das Terminal (Paket und CRC). Stimmen die vom Controller berechneten und im Paket empfangenen Prüfsummen überein, wird ein Signal an den Pin PORTB.0 (14) des Controllers ausgegeben (LED1 im Diagramm). An diesen Punkt können Sie einen Hochtöner mit eingebautem Generator oder eine LED über einen Widerstand anschließen. Beim Lesen des richtigen Schlüssels deaktiviert der Controller externe Interrupts und verzögert den nächsten Lesevorgang um 1 Sekunde. Die Funktionsweise dieses Lesegeräts als Basis eines RFID-Schlosses wird ebenfalls angegeben. Dazu ist es notwendig, die gesamten Transponder-Dump-Bytes in das EEPROM des Reader-Controllers zu schreiben – 10 Byte. Das Schreiben der Daten auf das EEPROM des Lesegeräts erfolgt auf die gleiche Weise wie auf das EEPROM des Transponders. Wenn in diesem Fall der nächste Transponder gelesen wird und dieser mit dem im EEPROM des Lesegeräts geschriebenen übereinstimmt, wird ein Signal an den Pin PORTB.1 (15) des Controllers ausgegeben (LED2 im Diagramm). Über einen Widerstand oder einen Ausgangsschalter (Transistor) am Aktorrelais können Sie an dieser Stelle eine LED anschließen. Jetzt haben wir ein RFID-Schloss für einen bestimmten Schlüssel und ein normales Lesegerät in einer Flasche.


Abb.4 Diagramm des RFID-Tag-Lesegeräts. (Diagramm vergrößern)

Fassen wir also die Zwischenergebnisse zusammen. Für dieses Lesegerät haben wir unseren eigenen Leser und Transponder hergestellt. Wir haben unsere Geräte vor Geräten Dritter geschützt, die mit gängigen RFID-Protokollen arbeiten. Der nächste Schritt besteht darin, wie namhafte Hersteller von Industrietranspondern einen passiven Tag für unser Lesegerät herzustellen und den Gerätecode auf günstigere Controller-Modelle zu portieren. Im Archiv füge ich dem Artikel die Firmware für den Transponder und das Lesegerät bei.

Firmware herunterladen:
Sie haben keinen Zugriff darauf, Dateien von unserem Server herunterzuladen

Eigenschaften:
Tag-Frequenz: 125 kHz
Stromversorgung: +5 VDC
Ausgangsdaten: seriell, 2400 bps 8N1. Es wird eine 10-stellige Tag-Seriennummer vergeben.

Bild 1:Figur 2:

Einführung

Dieses RFID-Lesegerät funktioniert mit 125-kHz-Tags in Karten im Kreditkartenformat und 125-kHz-Schlüsselanhängern (Abbildung 1). Dabei wird das EM4100-Protokoll verwendet. Wenn Sie ein RFID-Tag in die Nähe (4–5 cm) der Lesespule (L1) bringen, liest das Lesegerät die 10-stellige eindeutige ID des Tags und überträgt sie als ASCII-Zeichen mit 2.400 Bit pro Sekunde über den seriellen Ausgang.

Der Schaltkreis enthält einen Alarm, der intermittierend ausgibt Tonsignale wenn das Tag erfolgreich gelesen wurde.

Beschreibung

Ich werde versuchen, in wenigen Worten zu erklären, wie ein RFID-Lesegerät funktioniert. Der ATtiny13-Controller nutzt die PWM-Funktion, um ein 125-kHz-Rechteckwellensignal zu erzeugen. Dieses Signal kommt von Pin PB0. Bei der fallenden Flanke des Impulses an Pin PB0 (logische Null „0“) wird Transistor T1 geschlossen. Somit wird die Spule L1 über den Widerstand R1 (nominal 100 Ohm) mit einer Spannung von +5 V erregt. Wenn der Impuls an Pin PB0 ansteigt (logische Einheit „1“), öffnet Transistor T1 und einer der Anschlüsse der Spule L1 wird mit GND verbunden. Der Kondensator C2 ist parallel zur Spule L1 geschaltet und erzeugt so einen LC-Oszillator. Die Schaltdaten der Spule L1 von logisch Eins auf logisch Null erfolgen 125.000 Mal pro Sekunde (125 kHz).

Figur 3: Signalschwingungen mit einer Frequenz von 125 kHz, die von Spule L1 und Kondensator C2 übertragen werden.

Der RFID-Leser überträgt Energie an den Transponder (Tag), indem er ein elektromagnetisches Feld erzeugt. Die Energieübertragung zwischen dem RFID-Lesegerät und dem Tag erfolgt nach dem gleichen Prinzip wie die Funktionsweise Transformer , Umwandlung der Spannung in ein 220-V-Netz Wechselstrom bei 12 V AC, dank des von der Primärwicklung erzeugten Magnetfeldes. In unserem Fall ist die Primärwicklung der RFID-Leser und die Sekundärwicklung der RFID-Tag. Der einzige Unterschied besteht darin, dass es im Schaltkreis des RFID-Lesegeräts keinen magnetischen Stahlkreis zwischen den beiden Spulen gibt (eine Spule befindet sich auf der Seite des Lesegeräts und die andere Spule befindet sich im RFID-Tag). Die Komponenten D1, C3 und R5 bilden den Demodulator AM-Signal (AM = Amplitudenmodulation).

Datenübertragung zwischen Tags und Lesegerät.

Wie übermitteln Tags Daten an das Lesegerät? Sehr einfach! Wenn ein Tag eine logische Null „0“ an das Lesegerät senden möchte, legt es eine „Last“ an seine Stromversorgungsleitung an, um mehr Strom vom Lesegerät zu beziehen. Dies verursacht einen kleinen Spannungsabfall auf der Seite des RFID-Lesegeräts. Dieser Spannungspegel ist logisch Null „0“ (siehe Abbildung 4). Während das Lesegerät ein Signal mit einer Frequenz von 125 kHz sendet, liest es die Spannung des übertragenen Signals über die Filter D1, C3 und R5, C1. Wenn die Spannung am Tag abfällt, wie bereits erwähnt, liest das Lesegerät diesen Spannungsabfall als logische Null „0“. Wenn der Tag keine zusätzliche Energie benötigt, verursacht er keinen Spannungsabfall. Dies entspricht der logischen Eins „1“ (Abbildung 3). Die Länge der „Einsen“ bzw. „Nullen“ hängt von der seriellen Datenübertragungsrate ab. Beispielsweise erhalten wir bei einer Trägerfrequenz von 125 kHz keine Datenrate von 125.000 Bit pro Sekunde! Die Datenübertragung vom Tag zum Lesegerät variiert zwischen 500 und 8.000 Bit pro Sekunde.

Figur 4:Screenshot der übertragenen Daten...10101...Abbildung 5


  • Ein 125-kHz-RFID-Tag überträgt 64 Bit.
    1. Die ersten 9 Bits sind die Startbits der Übertragung (immer „1“).
    2. Die nächsten 4 Bits sind die niedrigstwertigen Bits der Benutzer-ID (D00,..., D03).
    3. Das nächste 1 Bit (P0) ist das Paritätsbit der vorherigen 4 Bits.
    4. Die nächsten 4 Bits sind die höchstwertigen Bits der Benutzer-ID (D04,..., D07).
    5. Das nächste 1 Bit (P1) ist das Paritätsbit der vorherigen 4 Bits.
    6. Die nächsten 4 Bits sind der erste Teil des 32-Bits Seriennummer Markierungen (D08,..., D11).
    7. Bit PC0 ist das Paritätsbit der Bits D00, D04, D08, D12, D16, D20, D24, D28, D32 und D36 (die Bits befinden sich in derselben Spalte).
    8. Die Bits PC1, PC2, PC3 sind die Paritätsbits der nächsten drei Spalten.

Die Datenüberprüfung erfolgt mithilfe des ATtiny13-Controllers, indem das Paritätsbit jeder Zeile und jeder Spalte mit den Paritätsbits berechnet wird, die in den übertragenen RFID-Tag-Daten empfangen werden.

Eine Spule herstellen

Die Spule hat einen Durchmesser von 120 mm und 58 Windungen. Lassen Sie für alle Fälle etwas Kupferdraht für weitere 2–3 Windungen übrig (insgesamt 60–61 Windungen). Um den maximalen Abstand zwischen dem RFID-Tag und dem Lesegerät (zwischen dem Tag und der Antennenspule des Lesegeräts) zu erreichen, müssen Sie die Spule kalibrieren. Wenn Sie das Oszilloskop an den gemeinsamen Verbindungspunkt zwischen R1 und L1 anschließen, sehen Sie in der Abbildung links die mit einem roten Kreis markierte Stelle. Das bedeutet, dass Spule L1 kalibriert werden muss.

Wie kalibriere ich die Spule L1?

Schalten Sie den RFID-Leser ein:

1. Nachdem Sie den Oszilloskop-Tastkopf an den gemeinsamen Punkt R1, L1 angeschlossen haben, versuchen Sie, langsam etwas Kupferdraht von der Spule zu entfernen oder hinzuzufügen (erhöhen oder verringern Sie die Anzahl der Windungen), bis das Rauschen beseitigt ist.

2. Wenn Sie kein Oszilloskop haben, versuchen Sie, das RFID-Tag nahe an die L1-Spule zu bewegen, bis das Tag vom Lesegerät erkannt wird. Wenn Ihre Markierung in einer Entfernung von 2 cm von der L1-Spule erkannt wird, versuchen Sie, einige Windungen Kupferdraht an der L1-Spule anzubringen, um sicherzustellen, dass die Markierung in einer größeren Entfernung (z. B. 3 cm) erkannt wird.

Versuchen Sie die gleichen Schritte, indem Sie die Kupferdrahtspulen von Spule L1 entfernen. Auf diese Weise erhalten Sie den maximalen Abstandsbereich zwischen den Markierungen und der L1-Spule.

Ich habe eine L1-Spule mit 120 mm Durchmesser und 58 Windungen hergestellt, wollte sie aber später kleiner machen. Also habe ich die Spule in zwei Hälften gebogen, bis sie wie eine „Acht“ aussah (Form wie eine Acht) und neu kalibriert. Somit hat die Spule L1 auf den Bildern tatsächlich einen Durchmesser von weniger als 120 mm.

Die Spule L1 im Bild hat einen Durchmesser von 60 mm und knapp 116 Windungen.

ProgrammierungATtiny13

Satz Konfigurationsbits (Sicherungen) für ATtiny13: High Fuse: 0x1F und Low Fuse: 0x7A. Dieser Satz von ATtiny13-Einstellungen arbeitet mit einem internen Oszillator mit einer Frequenz von 9,6 MHz. Die Funktion „Teilen durch 8“ der Systemuhr ist deaktiviert.

Die Firmware-Version v1.00 benötigt 1024 Bytes und belegt 100 % des Flash-Speichers des ATtiny13-Controllers. Vielleicht wäre ein Wechsel zu einem anderen 8-Pin-AVR wie dem ATtiny85 eine gute Idee, wenn Sie dem Quellcode einige Funktionen hinzufügen möchten.

Das Projekt wurde entworfen von: Vassilis Serasidis ( Vassilis Serasidis) 18. August 2012
Programmiersprache: MIT
Entwicklungsumgebung:
Mikrocontroller:ATtiny13 (interner 9,6-MHz-Oszillator)

Liste der Radioelemente

Bezeichnung Typ Konfession Menge NotizGeschäftMein Notizblock
IC1 MK AVR 8-Bit

ATtiny13

1 Zum Notizblock
IC2 Operationsverstärker

LM358

1 Zum Notizblock
IC3 Linearregler

LM78L05

1 Zum Notizblock
T1 MOSFET-Transistor

BS170

1 Zum Notizblock
T2 Bipolartransistor

BC547B

1 Zum Notizblock
D1 Gleichrichterdiode

1N4148

1 Zum Notizblock
C1 Kondensator12 nF1 Zum Notizblock
C2 Kondensator1,5 nF1 Zum Notizblock
C3 Kondensator4,7 nF1 Zum Notizblock
C4, C5 Elektrolytkondensator100 µF2 Zum Notizblock
C6 Kondensator100 nF1 Zum Notizblock
R1 Widerstand

100 Ohm

1 Zum Notizblock
R2 Widerstand

1 kOhm

1 Zum Notizblock
R3 Widerstand

390 kOhm

1 Zum Notizblock
R4, R8 Widerstand

33 kOhm

2 Zum Notizblock
R5 Widerstand

270 kOhm

1 Zum Notizblock
R6 Widerstand
Das EM4100-Tag speichert 64 Bit Daten, was bedeutet, dass das Design ein 64-Bit-Schieberegister enthalten muss, das aus acht 8-Bit-74HC165-Registern besteht. Das Register wird alle 64 Verschiebungen zurückgesetzt, um die Daten zurückzusetzen und von vorne zu beginnen. Die Daten an den Registereingängen lauten wie folgt:
  • Timing-Muster: neun Einheiten
  • Hersteller-/Versions-ID: 2 Blöcke mit 5 Bits, davon 4 Bits Daten und das fünfte Bit Parität
  • Eindeutiger Identifikator: 8 Blöcke mit 5 Bits, davon 4 Datenbits und das fünfte Paritätsbit
  • Prüfsumme: 4 Paritätsbits, gezählt pro Spalte
  • Stoppbit: „0“

Selbst verschlüsselte Tags sind anfällig für verschiedene Angriffe. Darüber hinaus wird es immer einfacher, Tags auf NFC-fähigen Smartphones zu emulieren (die normalerweise mit 13,56 MHz arbeiten). Schreiben Sie einfach eine korrekte Feldmodulationsanwendung und Sie können tun und lassen, was Sie wollen.

Als Standardausrede möchte ich Sie daran erinnern, dass der Autor (Und ein Übersetzer! - Notiz Übersetzung) übernimmt keine Verantwortung für die Folgen der Verwendung der Informationen aus diesem Artikel. Der Leser muss für alle seine Handlungen verantwortlich sein.

Rahmen

Manchmal Sehr glücklich. Ein schönes Gehäuse würde sich gerade jetzt als nützlich erweisen, wenn der Prototyp fertig ist und die Leiterplatte bestellt wurde. Und zu diesem Zeitpunkt beendete Fleming die Montage und brachte die Laserschneidmaschine OSAA PhotonSaw auf den Markt. Nach einem Jahr Projektarbeit ist der Laser bereit, die ersten Teile zu schneiden. Flemming und Roon nehmen die letzten Anpassungen vor und ersetzen den Aluminiumdeckel des Lasergehäuses. Sie können sich vorstellen, wie aufgeregt wir alle waren, als dieses Ding funktionierte.

Bei laufender Maschine konnten wir unser Projekt testen wahres Leben. Das Gehäuse für unseren RFID-Tag wurde aus 2 mm Plexiglas gefertigt. Dieser Körper ist das erste Objekt, das auf PhotonSaw erstellt wurde, ja!

Es entstand die Idee, die Spule außen am Körper anzubringen. Zunächst wurde beschlossen, die halbe Korpushöhe zu nutzen, was in der Praxis jedoch nicht funktionierte (die zusätzlichen Löcher in den Längsseiten werden daher nicht genutzt). Die Spule passt perfekt um den Umfang des gesamten Körpers, obwohl ich Zweifel hatte, ob die rechteckige Wicklung (105 x 55 mm) für eine normale elektromagnetische Kommunikation zu groß wäre.

Die Testspule wurde ohne Berechnung mit 0,4 mm Draht in 66 Windungen gewickelt. Und natürlich hatten wir wieder Glück, denn die Spule war genau so, wie sie sollte, mit einer Induktivität von 645 μH und einer angeschlossenen Markierung, die eine Resonanzfrequenz von 125,2 kHz ergab. Tests an einem Türleser haben gezeigt, dass der Prototyp mit dieser Spule einwandfrei funktioniert.

Mit einer Spule außerhalb des Gehäuses kann dessen Dicke reduziert werden. Die Innendicke hängt nun nur noch von der Höhe der Teile auf der Platine ab und sollte unter Berücksichtigung der Platinendicke etwa 6 mm betragen. Außerdem wäre es schön, etwas Gravur hinzuzufügen. Aus ästhetischen und ergonomischen Gründen schlug Flemming vor, die Körperseiten abzurunden. Ein gebogener Körper schützt auch die Seiten der Spule besser, da dort, wo keine große Spannung herrscht, die Drahtspulen dazu neigen, herauszustehen.

Die PhotonSaw-Maschine ist noch nicht in einwandfreiem Zustand: Gravur vorhanden obere Abdeckung deutlich nach unten verschoben. Es muss endgültig debuggt werden, bevor die endgültige Version des Gehäuses hergestellt wird. Bei gekrümmten Pfaden kam es ebenfalls zu Berechnungsfehlern Software, da der Strahl nicht zu zurückkehrte Startposition nach dem Passieren einer geschlossenen Flugbahn. Aber trotzdem sehen die Kurven wirklich glatt aus.

Leiterplattenmontage

Das bestellte Board ist eingetroffen:

Der Zusammenbau war nicht sehr schwierig. Auf die Platine wurde Lötpaste schabloniert, alle Teile platziert und dann in einem selbstgebauten Ofen gelötet.

Über die Isolationskapazität (47 pF hat einen Widerstand von ca. 27 kOhm bei einer Frequenz von 125 kHz) und Schutzdioden wird der Strom den Stromschienen zugeführt. Die von der Spule kommende Energie reicht aus, um die Versorgungsspannung von etwa 1 V aufrechtzuerhalten. Der Strom kann 250–500 μA erreichen. Überraschenderweise scheinen die 74HC-Chips mit diesem Netzteil zu funktionieren. Leider passieren unter dieser Spannung einige ziemlich seltsame Dinge. 74HC-Chips verfügen über einen internen Reset-Schaltkreis und Sie müssen sicherstellen, dass dieser funktioniert. Bitte beachten Sie, dass das Deaktivieren der Schutzdioden keine Abhilfe schafft. An den Eingängen der Mikroschaltungen befinden sich interne Schutzdioden, die in diesem Fall öffnen und die gleiche Aufgabe erfüllen.

Ein Power-Reset wird nur ausgelöst, wenn die Versorgungsspannung für einen bestimmten Zeitraum unter einen bestimmten Wert fällt. Bleibt die Spannung zu hoch, kann die interne Logik durcheinander geraten, da sich einige Teile davon möglicherweise in einem undefinierten Zustand befinden, während andere ordnungsgemäß funktionieren. Um alle Chips in einen konsistenten Zustand zu versetzen, ist ein interner Reset erforderlich. Daher arbeitet die Schaltung bei sehr niedrigen Versorgungsspannungen instabil.

Die folgenden Symptome wurden beobachtet: Der Tag funktioniert einige Zeit und sendet korrekte Daten. Wenn die Spule aus dem Lesegerät entfernt und dann wieder zurückgebracht wird, können Sie darauf wetten, ob sich der Tag ausschaltet. Manchmal funktioniert es, manchmal nicht. Das Deaktivieren der PLL verschlimmert die Situation. Ein geringer Stromverbrauch bedeutet, dass das Lesegerät gelegentlich Daten von einem ausgeschalteten Tag empfängt. Das ist es, was „energieeffizientes System“ bedeutet.

Es gibt zwei Lösungen: 1) Reduzieren Sie den Kondensator in der Taktwiederherstellungsschaltung auf 15 pF und 2) schließen Sie einen 22-100-kOhm-Widerstand zwischen Strom und Masse an, um überschüssige Energie abzuleiten. Die zweite Methode führt dazu, dass die Leckage während des Betriebs zunimmt und ist bei der Reduzierung der Kapazität des Kondensators nicht unbedingt erforderlich. Es wird jedoch als Option angeboten und ist immer noch besser als der unbestimmte Zustand der Chips.

Strom- oder Spannungsmodulation

Der Modulator verursachte eine neue Dosis Kopfschmerzen. Die Modulation verschwand vollständig, wenn die Spule in einem bestimmten Abstand vom Lesegerät platziert wurde. Dies kann auch passieren, wenn die Spule zum Lesegerät hin oder vom Lesegerät weg bewegt wird.

Es stellte sich heraus, dass der Grund in der Modulatorschaltung lag. MOSFETs schließen die Spule mit einem Widerstand mit einem bestimmten Widerstandswert kurz. Wenn jedoch der Stromverbrauch des Stromkreises hoch ist, ist der Modulatorwiderstand viel höher als der Widerstand der Stromkreise. Dies führt dazu, dass die Modulationstiefe vom aufgenommenen Strom abhängt, was nicht sehr gut ist. Die Situation wurde durch die Wahl einer begrenzenden Zenerdiode bei einer niedrigeren Spannung als im Prototyp noch verschlimmert.

Es wurde beschlossen, den Modulator vom Spannungsmodulationsmodus auf den Strommodulationsmodus umzustellen. Im ersten Modus befand sich der Widerstand im Drain-Kreis und ist jetzt zwischen Source und Masse geschaltet. Die Gate-Source-Spannung fällt an diesem Widerstand ab, bis ein Wert knapp über der Öffnungsschwelle des Transistors (0,9–1,1 V) bleibt, wodurch der Transistor in den linearen Modus geschaltet wird. Jetzt ist der Strom durch den Transistor unabhängig von der Drain-Spannung stabil.

Tests an einem Prototyp zeigten, dass die Strommodulation sehr gut funktioniert. Der billige No-Name-Reader stürzt nicht mehr ab (okay, vielleicht einmal in hundert oder so). Wir können davon ausgehen, dass diese Änderung bei anderen Readern wunderbar funktionieren wird, und das Tag wird nun wahrscheinlich bei den meisten von ihnen funktionieren können.

Fertige Version 1

Sie können die vorgenommenen Änderungen auf der Platine sehen. Ich hatte keinen 15 pF SMD-Kondensator, ich musste einen normalen mit Beinen löten. Der Modulator hat zusätzliche Widerstände an den Sources der Transistoren erhalten. Insgesamt akzeptabel für die erste Version.

(Bilder sind anklickbar)





Videodemonstration

Abschluss

Man könnte meinen, dass dieses auf 7400-Logik basierende Projekt als Retro-Schaltungsdesign klassifiziert werden kann, aber das ist nicht ganz richtig. Erstens ist die moderne 74HC-Familie noch nicht so alt. Zweitens sind Stromkreise mit geringem Stromverbrauch immer relevant. Drittens werden in modernen Designs häufig Single-Gate-ICs (wie der verwendete Schmitt-Trigger) verwendet. Es wird oft vergessen, dass die Technologieentwicklung auch bei älteren Chipfamilien nicht halt macht. Sie fielen vor dem Hintergrund der allgemeinen Vielfalt einfach weniger auf.

Der analoge Teil erwies sich als schwieriger zu entwickeln als der digitale Teil. Teilweise aufgrund fehlender Spezifikationen, vor allem aber aufgrund der vielen Kompromisse, die zur Einhaltung der Parameter erforderlich sind, und unvorhergesehener Nebenwirkungen. Bei digitalen Designs gibt es relativ wenige Optionen, während bei analogen Designs in der Regel ein Gleichgewicht zwischen verschiedenen (und oft gegensätzlichen) Kriterien erforderlich ist.

Ich muss zugeben, dass die 74HC-Chips sehr, sehr gut verarbeitet sind. Die Entwickler wussten, was sie taten und erreichten einen sehr geringen Stromverbrauch. Zuerst hatte ich einige Zweifel, ob der Tag mit passiver Energie betrieben werden kann, aber nachdem ich die Spezifikationen gelesen hatte, ging es nur noch um das richtige Schaltungsdesign. Dennoch gibt es immer noch Möglichkeiten, verschiedene Teile des Tags zu optimieren.

Nun wollen wir sehen, wie sich dieses Projekt beim 7400-Wettbewerb 2012 schlagen wird. Bewerbungsschluss für den Wettbewerb ist der 31. November. Wir wünschen dem Autor viel Glück! - Notiz Übersetzung

Stichworte:

  • RFID
  • 7400-Wettbewerb
  • Overengineering
  • Logik
  • überall Harken
Labels hinzufügen Das EM4100-Label speichert 64 Bit Daten, was bedeutet, dass das Design ein 64-Bit-Schieberegister enthalten muss, das aus acht 8-Bit-74HC165-Registern besteht. Das Register wird alle 64 Verschiebungen zurückgesetzt, um die Daten zurückzusetzen und von vorne zu beginnen. Die Daten an den Registereingängen lauten wie folgt:
  • Timing-Muster: neun Einheiten
  • Hersteller-/Versions-ID: 2 Blöcke mit 5 Bits, davon 4 Bits Daten und das fünfte Bit Parität
  • Eindeutiger Identifikator: 8 Blöcke mit 5 Bits, davon 4 Datenbits und das fünfte Paritätsbit
  • Prüfsumme: 4 Paritätsbits, gezählt pro Spalte
  • Stoppbit: „0“

Selbst verschlüsselte Tags sind anfällig für verschiedene Angriffe. Darüber hinaus wird es immer einfacher, Tags auf NFC-fähigen Smartphones zu emulieren (die normalerweise mit 13,56 MHz arbeiten). Schreiben Sie einfach eine korrekte Feldmodulationsanwendung und Sie können tun und lassen, was Sie wollen.

Als Standardausrede möchte ich Sie daran erinnern, dass der Autor (Und ein Übersetzer! - Notiz Übersetzung) übernimmt keine Verantwortung für die Folgen der Verwendung der Informationen aus diesem Artikel. Der Leser muss für alle seine Handlungen verantwortlich sein.

Rahmen

Manchmal Sehr glücklich. Ein schönes Gehäuse würde sich gerade jetzt als nützlich erweisen, wenn der Prototyp fertig ist und die Leiterplatte bestellt wurde. Und zu diesem Zeitpunkt beendete Fleming die Montage und brachte die Laserschneidmaschine OSAA PhotonSaw auf den Markt. Nach einem Jahr Projektarbeit ist der Laser bereit, die ersten Teile zu schneiden. Flemming und Roon nehmen die letzten Anpassungen vor und ersetzen den Aluminiumdeckel des Lasergehäuses. Sie können sich vorstellen, wie aufgeregt wir alle waren, als dieses Ding funktionierte.

Bei laufender Maschine konnten wir unser Projekt im echten Leben testen. Das Gehäuse für unseren RFID-Tag wurde aus 2 mm Plexiglas gefertigt. Dieser Körper ist das erste Objekt, das auf PhotonSaw erstellt wurde, ja!

Es entstand die Idee, die Spule außen am Körper anzubringen. Zunächst wurde beschlossen, die halbe Korpushöhe zu nutzen, was in der Praxis jedoch nicht funktionierte (die zusätzlichen Löcher in den Längsseiten werden daher nicht genutzt). Die Spule passt perfekt um den Umfang des gesamten Körpers, obwohl ich Zweifel hatte, ob die rechteckige Wicklung (105 x 55 mm) für eine normale elektromagnetische Kommunikation zu groß wäre.

Die Testspule wurde ohne Berechnung mit 0,4 mm Draht in 66 Windungen gewickelt. Und natürlich hatten wir wieder Glück, denn die Spule war genau so, wie sie sollte, mit einer Induktivität von 645 μH und einer angeschlossenen Markierung, die eine Resonanzfrequenz von 125,2 kHz ergab. Tests an einem Türleser haben gezeigt, dass der Prototyp mit dieser Spule einwandfrei funktioniert.

Mit einer Spule außerhalb des Gehäuses kann dessen Dicke reduziert werden. Die Innendicke hängt nun nur noch von der Höhe der Teile auf der Platine ab und sollte unter Berücksichtigung der Platinendicke etwa 6 mm betragen. Außerdem wäre es schön, etwas Gravur hinzuzufügen. Aus ästhetischen und ergonomischen Gründen schlug Flemming vor, die Körperseiten abzurunden. Ein gebogener Körper schützt auch die Seiten der Spule besser, da dort, wo keine große Spannung herrscht, die Drahtspulen dazu neigen, herauszustehen.

Die PhotonSaw-Maschine ist noch nicht in einwandfreiem Zustand: Die Gravur auf der oberen Abdeckung hat sich deutlich verschoben. Es muss endgültig debuggt werden, bevor die endgültige Version des Gehäuses hergestellt wird. Auch bei gekrümmten Bahnen kam es zu einem Berechnungsfehler in der Software, da der Strahl nach Durchlaufen der geschlossenen Bahn nicht in seine ursprüngliche Position zurückkehrte. Aber trotzdem sehen die Kurven wirklich glatt aus.

Leiterplattenmontage

Das bestellte Board ist eingetroffen:

Der Zusammenbau war nicht sehr schwierig. Auf die Platine wurde Lötpaste schabloniert, alle Teile platziert und dann in einem selbstgebauten Ofen gelötet.

Über die Isolationskapazität (47 pF hat einen Widerstand von ca. 27 kOhm bei einer Frequenz von 125 kHz) und Schutzdioden wird der Strom den Stromschienen zugeführt. Die von der Spule kommende Energie reicht aus, um die Versorgungsspannung von etwa 1 V aufrechtzuerhalten. Der Strom kann 250–500 μA erreichen. Überraschenderweise scheinen die 74HC-Chips mit diesem Netzteil zu funktionieren. Leider passieren unter dieser Spannung einige ziemlich seltsame Dinge. 74HC-Chips verfügen über einen internen Reset-Schaltkreis und Sie müssen sicherstellen, dass dieser funktioniert. Bitte beachten Sie, dass das Deaktivieren der Schutzdioden keine Abhilfe schafft. An den Eingängen der Mikroschaltungen befinden sich interne Schutzdioden, die in diesem Fall öffnen und die gleiche Aufgabe erfüllen.

Ein Power-Reset wird nur ausgelöst, wenn die Versorgungsspannung für einen bestimmten Zeitraum unter einen bestimmten Wert fällt. Bleibt die Spannung zu hoch, kann die interne Logik durcheinander geraten, da sich einige Teile davon möglicherweise in einem undefinierten Zustand befinden, während andere ordnungsgemäß funktionieren. Um alle Chips in einen konsistenten Zustand zu versetzen, ist ein interner Reset erforderlich. Daher arbeitet die Schaltung bei sehr niedrigen Versorgungsspannungen instabil.

Die folgenden Symptome wurden beobachtet: Der Tag funktioniert einige Zeit und sendet korrekte Daten. Wenn die Spule aus dem Lesegerät entfernt und dann wieder zurückgebracht wird, können Sie darauf wetten, ob sich der Tag ausschaltet. Manchmal funktioniert es, manchmal nicht. Das Deaktivieren der PLL verschlimmert die Situation. Ein geringer Stromverbrauch bedeutet, dass das Lesegerät gelegentlich Daten von einem ausgeschalteten Tag empfängt. Das ist es, was „energieeffizientes System“ bedeutet.

Es gibt zwei Lösungen: 1) Reduzieren Sie den Kondensator in der Taktwiederherstellungsschaltung auf 15 pF und 2) schließen Sie einen 22-100-kOhm-Widerstand zwischen Strom und Masse an, um überschüssige Energie abzuleiten. Die zweite Methode führt dazu, dass die Leckage während des Betriebs zunimmt und ist bei der Reduzierung der Kapazität des Kondensators nicht unbedingt erforderlich. Es wird jedoch als Option angeboten und ist immer noch besser als der unbestimmte Zustand der Chips.

Strom- oder Spannungsmodulation

Der Modulator verursachte eine neue Dosis Kopfschmerzen. Die Modulation verschwand vollständig, wenn die Spule in einem bestimmten Abstand vom Lesegerät platziert wurde. Dies kann auch passieren, wenn die Spule zum Lesegerät hin oder vom Lesegerät weg bewegt wird.

Es stellte sich heraus, dass der Grund in der Modulatorschaltung lag. MOSFETs schließen die Spule mit einem Widerstand mit einem bestimmten Widerstandswert kurz. Wenn jedoch der Stromverbrauch des Stromkreises hoch ist, ist der Modulatorwiderstand viel höher als der Widerstand der Stromkreise. Dies führt dazu, dass die Modulationstiefe vom aufgenommenen Strom abhängt, was nicht sehr gut ist. Die Situation wurde durch die Wahl einer begrenzenden Zenerdiode bei einer niedrigeren Spannung als im Prototyp noch verschlimmert.

Es wurde beschlossen, den Modulator vom Spannungsmodulationsmodus auf den Strommodulationsmodus umzustellen. Im ersten Modus befand sich der Widerstand im Drain-Kreis und ist jetzt zwischen Source und Masse geschaltet. Die Gate-Source-Spannung fällt an diesem Widerstand ab, bis ein Wert knapp über der Öffnungsschwelle des Transistors (0,9–1,1 V) bleibt, wodurch der Transistor in den linearen Modus geschaltet wird. Jetzt ist der Strom durch den Transistor unabhängig von der Drain-Spannung stabil.

Tests an einem Prototyp zeigten, dass die Strommodulation sehr gut funktioniert. Der billige No-Name-Reader stürzt nicht mehr ab (okay, vielleicht einmal in hundert oder so). Wir können davon ausgehen, dass diese Änderung bei anderen Readern wunderbar funktionieren wird, und das Tag wird nun wahrscheinlich bei den meisten von ihnen funktionieren können.

Fertige Version 1

Sie können die vorgenommenen Änderungen auf der Platine sehen. Ich hatte keinen 15 pF SMD-Kondensator, ich musste einen normalen mit Beinen löten. Der Modulator hat zusätzliche Widerstände an den Sources der Transistoren erhalten. Insgesamt akzeptabel für die erste Version.

(Bilder sind anklickbar)





Videodemonstration

Abschluss

Man könnte meinen, dass dieses auf 7400-Logik basierende Projekt als Retro-Schaltungsdesign klassifiziert werden kann, aber das ist nicht ganz richtig. Erstens ist die moderne 74HC-Familie noch nicht so alt. Zweitens sind Stromkreise mit geringem Stromverbrauch immer relevant. Drittens werden in modernen Designs häufig Single-Gate-ICs (wie der verwendete Schmitt-Trigger) verwendet. Es wird oft vergessen, dass die Technologieentwicklung auch bei älteren Chipfamilien nicht halt macht. Sie fielen vor dem Hintergrund der allgemeinen Vielfalt einfach weniger auf.

Der analoge Teil erwies sich als schwieriger zu entwickeln als der digitale Teil. Teilweise aufgrund fehlender Spezifikationen, vor allem aber aufgrund der vielen Kompromisse, die zur Einhaltung der Parameter erforderlich sind, und unvorhergesehener Nebenwirkungen. Bei digitalen Designs gibt es relativ wenige Optionen, während bei analogen Designs in der Regel ein Gleichgewicht zwischen verschiedenen (und oft gegensätzlichen) Kriterien erforderlich ist.

Ich muss zugeben, dass die 74HC-Chips sehr, sehr gut verarbeitet sind. Die Entwickler wussten, was sie taten und erreichten einen sehr geringen Stromverbrauch. Zuerst hatte ich einige Zweifel, ob der Tag mit passiver Energie betrieben werden kann, aber nachdem ich die Spezifikationen gelesen hatte, ging es nur noch um das richtige Schaltungsdesign. Dennoch gibt es immer noch Möglichkeiten, verschiedene Teile des Tags zu optimieren.

Nun wollen wir sehen, wie sich dieses Projekt beim 7400-Wettbewerb 2012 schlagen wird. Bewerbungsschluss für den Wettbewerb ist der 31. November. Wir wünschen dem Autor viel Glück! - Notiz Übersetzung

Tags: Tags hinzufügen

In der heutigen Lektion geht es um die Verwendung eines RFID-Lesegeräts mit Arduino, um ein einfaches Schließsystem zu erstellen. in einfachen Worten- RFID-Schloss.

RFID (engl. Radio Frequency IDentification, Radiofrequenzidentifikation) ist ein Verfahren zur automatischen Identifizierung von Objekten, bei dem in sogenannten Transpondern, sogenannten RFID-Tags, gespeicherte Daten mithilfe von Funksignalen gelesen oder geschrieben werden. Jedes RFID-System besteht aus einem Lesegerät (Lesegerät, Reader oder Interrogator) und einem Transponder (auch RFID-Tag genannt, manchmal wird auch die Bezeichnung RFID-Tag verwendet).

In diesem Tutorial wird ein RFID-Tag mit Arduino verwendet. Das Gerät liest die eindeutige Kennung (UID) jedes RFID-Tags, das wir neben dem Lesegerät platzieren, und zeigt sie auf dem OLED-Display an. Wenn die UID des Tags mit dem vordefinierten Wert übereinstimmt, der im Arduino-Speicher gespeichert ist, wird auf dem Display die Meldung „Unlocked“ angezeigt. Wenn die eindeutige ID nicht einem vordefinierten Wert entspricht, wird die Meldung „Entsperrt“ nicht angezeigt – siehe Foto unten.

Das Schloss ist geschlossen

Das Schloss ist geöffnet

Zur Erstellung dieses Projekts benötigte Teile:

  • RFID-Leser RC522
  • OLED-Display
  • Brotbrett
  • Drähte

Weitere Details:

  • Batterie (Powerbank)

Die Gesamtkosten der Projektkomponenten beliefen sich auf etwa 15 US-Dollar.

Schritt 2: RFID-Leser RC522

In jedem RFID-Tag Es gibt einen kleinen Chip (weiße Karte auf dem Foto). Wenn man diese RFID-Karte mit einer Taschenlampe beleuchtet, erkennt man den kleinen Chip und die Spule, die ihn umgibt. Dieser Chip verfügt nicht über eine Batterie zur Stromerzeugung. Über diese große Spule wird das Lesegerät drahtlos mit Strom versorgt. Es ist möglich, eine solche RFID-Karte aus einer Entfernung von bis zu 20 mm zu lesen.

Den gleichen Chip gibt es auch in RFID-Schlüsselanhängern.

Jedes RFID-Tag verfügt über eine eindeutige Nummer, die es identifiziert. Dies ist die UID, die auf dem OLED-Display angezeigt wird. Mit Ausnahme dieser UID kann jedes Tag Daten speichern. Dieser Kartentyp kann bis zu 1.000 Daten speichern. Beeindruckend, nicht wahr? Diese Funktion wird heute nicht verwendet. Heutzutage geht es nur noch darum, eine bestimmte Karte anhand ihrer UID zu identifizieren. Die Kosten für den RFID-Leser und diese beiden RFID-Karten betragen etwa 4 US-Dollar.

Schritt 3: OLED-Display

In der Lektion wird ein 0,96-Zoll-128x64-I2C-OLED-Monitor verwendet.

Dies ist ein sehr gutes Display für die Verwendung mit Arduino. Da es sich um ein OLED-Display handelt, ist der Stromverbrauch gering. Der Stromverbrauch dieses Displays beträgt etwa 10–20 mA und hängt von der Anzahl der Pixel ab.

Das Display hat eine Auflösung von 128 x 64 Pixel und ist winzig klein. Es gibt zwei Anzeigeoptionen. Einer davon ist einfarbig und der andere kann, wie der in der Lektion verwendete, zwei Farben anzeigen: Gelb und Blau. Der obere Bildschirmrand kann nur gelb und der untere nur blau sein.

Dieses OLED-Display ist sehr hell und verfügt über eine tolle und sehr schöne Bibliothek, die Adafruit für dieses Display entwickelt hat. Darüber hinaus verfügt das Display über eine I2C-Schnittstelle, sodass der Anschluss an den Arduino denkbar einfach ist.

Sie müssen nur zwei Drähte außer Vcc und GND anschließen. Wenn Sie neu bei Arduino sind und in Ihrem Projekt ein kostengünstiges und einfaches Display verwenden möchten, beginnen Sie hier.

Schritt 4: Alle Teile verbinden