Upload
oscarsat
View
113
Download
1
Embed Size (px)
DESCRIPTION
Elektor Rfid Reader
Citation preview
elektor - 9/200628
ELEKTOR-RFID-ReaderPRAXIS RFID
Von Gerhard H. Schalk
RFID-Halbleiter sinddabei, viele Bereiche zuerobern, in denen bisherBarcodes und Chipkartenverwendet wurden. Dazukommen noch viele neueMöglichkeiten, wie zumBeispiel in Reisepässen odersogar in Banknoten. Als ersteElektronikzeitschrift bietetELEKTOR den Lesern mit dieserAusgabe nicht nur eine Gratis-RFID-Karte, sondern auch den dazupassenden professionellen RFID-Readerfür eigene Anwendungen. Der hiervorgestellte Entwurf kann alle RFID-ICslesen und schreiben, die mit den weitverbreiteten Standards MIFARE® undISO 14443-A kompatibel sind.
Für MIFARE®- und ISO 14443-A
Ziel bei der Entwicklung des ELEK-TOR-RFID-Readers war es, den Readerso universell wie möglich einsetzen zukönnen. Der Reader eignet sich sowohlfür den PC-Anschluss über USB alsauch für den autonomen Betrieb miteinem LC-Display. In Verbindung mitdem kostenlosen PC-ProgrammMIFARE Magic ist es sehr einfachmöglich, unterschiedlichste MIFARE-
Karten zu lesen und zu beschreiben,ohne ein eigenes Programm für denReader erstellen zu müssen.MIFARE Magic unterstützt direkt eineReihe von kontaktlosen 13,56-MHz-MIFARE-Karten, wie zum Beispiel Phil-ips MIFARE® UltraLight, MIFARE® 1Kund MIFARE® 4K. Die Oberfläche vonMifare Magic (Bild 1) bietet auch dieMöglichkeit, einzelne Kartenkomman-
dos per Mausklick zu senden. Damitkann man auf sehr einfache Weise dieEigenschaften unterschiedlicher Kar-ten untersuchen. Ein geeignetesObjekt ist zum Beispiel die diesemHeft beigelegte MIFARE-UltraLight-RFID-Karte, deren Eigenschaften einseparater Artikel in dieser Ausgabeerklärt. Auch im autonomen Betrieb-zum Beispiel für eine Zutrittskontrolle-
ist der Reader mit der entwickeltenFirmware sofort einsatzbereit. Nachdem Einschalten sucht der Readersofort nach Karten im Erfassungsbe-reich der Antenne. Karten im Umkreisvon einigen Zentimetern werden aus-gelesen. Das LC-Display (wenn ange-schlossen) zeigt dann sowohl den Kar-tentyp als auch die Seriennummer,gleichzeitig wird ein Schaltausgangdes Readers aktiviert.Der Reader ist mit dem neuesten Phi-lips-Reader-IC MF RC522 und einemeigenen Mikrocontroller vom TypLPC936 aufgebaut. Da das Reader-ICnur in einem HVQFN32-Gehäuse liefer-bar ist, haben wir die Löt- und Monta-geprobleme durch das Angebot einesfertig bestückten und getestetenReaderboards mit bereits program-miertem Mikrocontroller gelöst.
Der ELEKTOR-RFID-Reader eignet sichnatürlich nicht nur für Experimente mitder Gratis-MIFARE®-UltraLight-Karte.Dank seines leistungsfähigen Mikro-controllersystems mit I2C-, SPI-, UART-und USB-Schnittstelle und der kosten-losen Entwicklungstools eignet er sichbestens für die Entwicklung von eige-nen Anwendungen und Systemen, wiezum Beispiel für kontaktlos codege-steuerte Tor- und Türöffner, Mitglieds-ausweis-Systeme, das Abspeichernvon Passwörtern und Konfigurations-daten, Bezahlfunktionen an Automa-ten, das Absichern von elektronischenGeräten im Haushalt (z.B. Fernseher,Videorekorder, PC), die Überwachungvon Akkupacks und vieles anderemehr. Die Kombination von gesicherterIdentität, Datenspeicherung und kon-
taktlosem Interface bietet viele Mög-lichkeiten für kreative Lösungen…
Reader-HardwareBild 2 zeigt das Blockschaltbild desReaders. Die eigentliche Readerfunk-tionalität, sprich das Erzeugen des HF-Felds, die Modulation und Demodula-tion und das Erzeugen der ISO 14443-Signale ist mit dem MF RC522realisiert. Vereinfacht betrachtet ist derRC522 ein kontaktloser UART, welcher
direkt über einen Mikrocontrollergesteuert wird. Im ELEKTOR-Readerist es ein 8051-kompatibler LPC936von Philips. Seine CPU benötigt nurzwei Zyklen pro Befehl und wird mit16 MHz getaktet. Diese Geschwindig-keit und der 16 KByte große Flashspei-cher sind vollkommen ausreichend, umunterschiedlichste Readerapplikatio-nen zu realisieren. Der Controller kannmit jedem 8051-Compiler sehr einfachprogrammiert werden. Der USB/RS232Schnittstellenbaustein FT232R von
9/2006 - elektor 29
Bild 1. Das für den ELEKTOR-RFID-Reader entwickelte PC-Programm Mifare Magic erlaubt das Schreiben,Lesen und Programmieren von Mifare®- und ISO 14443-A-RFIDs.
EigenschaftenELEKTOR-RFID-Reader:
• Nahfeld-Reader für 13,56-MHz-RFIDs
• Kompatibel mit MIFARE®- und ISO 14443-A
• Lesen und Schreiben möglich
• USB-Schnittstelle für PC-Anschluss
• Sofort verwendbar ohne Programmierung
• Gratis-PC-Software für Betrieb am PC
• Autonomer Betrieb mit LC-Display (auch mobil)
• Spezial-Reader-IC RC522
• Zusätzlicher Mikrocontroller auf Reader-Platine
• I2C- und SPI-Schnittstelle
• Freier 8-bit-Mikrocontroller-Port
• Gepufferter Schaltausgang
• Bestückte und getestete SMD-Platine verfügbar
• Anpassung an eigene Entwicklungen möglich
• Tools für eigene Programmierung verfügbar
Reader-IC RC 522:
• Hochintegriertes ( Single-chip-) Reader-IC fürISO 14443 A und MIFARE®
• Unterstützt kontaktlose Übertragungsgeschwindigkeitenvon 106, 212 und 424 kbit/s
• Lese- /Schreibreichweite bis zu 50 mm (je nach Antenne)
• Integrierter MIFARE® Classic Kryptoblock
• Wahlweise über UART, I2C oder SPI programmierbar
• 64 Byte Sende- und Empfangs-FIFO-Puffer
• Programmierbare Reset- und Power-down-Modes
• Programmierbarer Timer
• Interner Oszillator ermöglicht direkten Anschluss eines27,12-MHz-Quarzes
Future Technolgy Devices (FTDI)ermöglicht eine sehr einfache Kommu-nikation mit dem PC.Der vollständige Schaltplan ist in Bild 3zu sehen. Beim Anschluss an den PCüber das Mini-USB-Kabel (Buchse K1)erfolgt die Stromversorgung über denUSB-Port. Der USB-Interface-BausteinFT232R (IC1) ist bereits so vorkonfigu-riert, dass sich der Reader bei der USB-Bus-Initialisierung (Enumeration) alsHigh-Power-Gerät anmeldet und somitals Bus-powered-device bis zu 500 mAentnehmen darf. Sobald die USB-Bus-Enumeration erfolgreich abgeschlossenist, schaltet das Signal /PWRNEN anPin 11 von IC1 den P-Kanal-MOSFET T2leitend, der dann die 5-V-Spannungzum Spannungsregler IC5 durchschal-tet. Der LM2937 liefert ausgangsseitig3,3 V für den LPC-Controller (IC3) undden MF RC522 (IC4). Die rote LED D6zeigt die 3,3-V-Betriebsspannung an.Ist keine 5-V-Spannung von der USB-Seite vorhanden, übernimmt eine am
Anschluss PC1 anliegende Spannungüber die Schottky-Diode D4 automa-tisch die Stromversorgung. An PC1kann eine Batterie (in dem in der Stück-liste angegebenen Gehäuse sind esvier Mignonzellen) oder auch ein 5-V-Steckernetzteil angeschlossen werden,das 300 mA liefern kann.
Eine Übersicht über das Innenlebendes Reader-ICs gibt das sehr verein-fachte Blockschaltbild des MF RC522 inBild 4. Die gepufferten Ausgangstrei-ber des MF RC522 ermöglichen dendirekten Anschluss der Sende- undEmpfangsantenne ohne zusätzlichenaktiven Leistungsverstärker. Für die(sehr wichtige) Antennenanpassungsind nur wenige passive Bauelementenötig. Das Analog-Interface übernimmtauch die Demodulation und die Deko-dierung der von der Karte zurückgesen-deten Antworten. Das Erzeugen vonISO 14443A- oder MIFARE®-Protokoll-Rahmen sowie die dazugehörige
Fehlererkennung (Parity und CRC)erfolgt im digitalen Block des kontakt-losen UART. Der FIFO-Puffer ermöglichtdas Senden und Empfangen von64 Byte großen Blöcken (T=CL-Proto-koll) im ISO 14443A-Betrieb. ImMIFARE®-Betrieb werden maximal16 Byte große Datenblöcke ausge-tauscht, so dass kein Aufteilen derKommandoblöcke im Mikrocontrollererforderlich ist. Programmiert werdendie Register des RC522 entweder überRS232, I2C oder SPI. Da der LPC936 nurüber eine serielle RS232 Schnittstelleverfügt und diese für die Kommunika-tion mit dem PC benötigt wird, erfolgtdie Kommunikation mit dem RC522über I2C. An P0 des LPC932 wird bei Bedarfüber den Steckverbinder K2 das zwei-zeilige LC-Display angeschlossen. Eindurch einen Transistor gepufferterSchaltausgang (P0.0), der freie PortP2.0 und die I2C- sowie die SPI-Schnittstelle des LPC-Controllersermöglichen eine sehr einfache Erwei-terung mit zusätzlicher Hardware. Sokönnte mit einem RTC-Baustein eineStand-Alone-Zeiterfassung sehr ein-fach realisiert werden, und über denSchaltausgang lässt sich zum Beispielein Türöffner steuern (siehe auchunsere RFID-Reader-Seite unterwww.elektor.de/rfid).
Get startedDie (zweilagige) Platine des ELEKTOR-RFID-Readers ist in Bild 5 zu sehen.Das Reader-IC lässt sich nur perReflow löten, weshalb die Platine imELEKTOR-Shop bestückt und getesteterhältlich ist. Für den Einbau in dasebenfalls lieferbare Gehäuse wird einedetaillierte Anleitung mitgeliefert.Die beiden Jumper auf der Reader-Pla-tine (JP1 und JP2) werden im Normal-betrieb nicht gesetzt. Ist die Reader-Platine mit dem LC-Display verbun-den, so ist der Reader nach demEinschalten der Betriebsspannungsofort einsatzbereit. Die Seriennummereiner RFID-Karte wird dann auf demDisplay angezeigt, solange sich dieKarte im Erfassungsbereich derAntenne („Readerfeld“) befindet.Sollte das Display nichts anzeigen,muss der Kontrast mit P1 eingestelltwerden.Für die Inbetriebnahme der USB-Ver-bindung zum PC ist es erforderlich,den auf der ELEKTOR-Website kosten-los bereitgestellten CMD-FTDI-USB-Treiber herunterzuladen. Dieser Treiberist zwingend erforderlich, weil der
elektor - 9/200630
PRAXIS RFID
MF RC522
Optional Power Supply5V
USB
I / OLCD
RS232
060132 - 13
I2C
I2C
FT232RUSB / UART
VoltageRegulator
Ant
enna
Mat
chin
gµC / Philips
LPC 935
RFID Reader
Bild 2. Blockschaltbild des ELEKTOR-RFID-Readers.
AnalogInterface
FIFO Host
Register Bank
Serial UARTSPII2C
ContactlessUART
MFRC5222
060132 - 14
Bild 4. Blockschaltbild des hochintegrierten Reader-ICs MF RC522 von Philips.
9/2006 - elektor 31
K2
K1
12345
MIN
I US
B-B
C3
100n
C1
47p
C2
47p
C5
100n
D2
YE
D1
GR
R2
1k
R1
1kC
4
100n
D5
BA
T54
D4
BA
S19
C31
100n
L1
T2
IRL
M6402
R13100k
C30
2µ2
LM
2937IC
5
C32
2µ2
D3
RER
12
1k
X1
16MH
z
C7
12p
C8
12p
T1
IRL
M6402
R16
10k
D6
CP
U P
WR
R15
1k
R5
4k7
C6
100n
564
IC2.B
≥1
231
IC2.A
≥1
9810
IC2.C
≥1
121113
IC2.D
≥1
JP1
JP2
R3
4k7
R4
4k7
C10
100n
C9
100n
C12
100n
C11
100n
X2
27.12MH
z
C13
12p
C14
12p
L2560n
H
L3560n
H
CB
US
3 PW
RN
EN
CB
US
0 TX
LE
D
CB
US
1 RX
LE
D
CB
US
4 SL
EE
P
FT
232RQ
FN
3V3O
UT
VC
CIO
CB
US
2
US
BD
M
US
BD
P
RE
SE
T
IC1
OS
CI
OS
CO
TE
ST
TX
D
GN
D
VC
C
GN
DG
ND
GN
D
RX
D
DT
R
RT
S
DS
R
DC
D
CT
S
19
30
1720
24
3132R
I
16
222110111514 18272826
4
1
23678
9
R6
1kC16
100n
C17
220p
C19
220p
C18
*C20
*
C21
27p
C23
27p
C22
*C24
*
C25
68p
C27
68p
C26
*C28
* R84Ω
7
R94Ω
7
L4An
t.
L5An
t.
R7
2k2
+4V8...+6V
C15
1n
D7 R
17
1k
R1410k
T3BC
517
IC2
147
+5V
P1.3/S
DA
/INT
0
P2.5/S
PIC
LK
P89L
PC
935
P1.4/IN
T1
P2.2/M
OS
I
P2.3/M
ISO
P1.0/T
XD
P1.1/R
XD
P1.2/S
CL
P1.5/R
STP3.1/X
1P
3.0/X2
P2.4/S
S
P0.7/T
1
IC3
P1.6
P1.7
P2.0
P2.1
P2.6
P2.7
P0.0
P0.1
P0.2
P0.3
P0.4
P0.5
P0.6
VS
S
VD
D
262524
21
18 17
12 11 10131415162728
23222019
89
7
65 412
3IC
2 = 74HC
02
R10
10Ω
R11
10Ω
C29
2µ2
10kP
1
+5V
LC
DIS
PL
AY
LC
D1
VSS
VDD
R/W
VO
RS
D0
D1
D2
10D3
11D4
12D5
13D6
14D7
1516
12
34
56E
78
9
K
A
R/W
RSED4
D5
D6
D7
060132 - 11
see text*
voir texte
*sieh
e Text*
zie tekst*
+3V3
MF
RC
522
AL
E S
DA
NR
ST
PD
D7 S
CL
D1 A
5
D2 A
4
D3 A
3
D4 A
2
D5 A
1
D6 A
0
IC4
PVDD
DVSS
DVDD
AVDD
TVDDAU
X1
AU
X2
VM
IDAVSS
TV
SS
TV
SS
PV
SS
SV
DD
I2C
IRQ
TX
1
TX
2
OU
T
OS
C
RX
D
TX
D
13
RX
17
1512
23
19201611
18
IN2122
1014
EA
32 24 252627282931 30
4
1
23
65 9
78
Bild 3. Der vollständige Schaltplan des Readers, der sowohl autonom mit LC-Display als auch über USB am PC arbeitet.
FT232R die ELEKTOR-Vendor-ID undProduct-ID enthält.Anschließend wird der RFID-Readerüber das USB-Kabel mit dem PC ver-bunden. Windows erkennt automa-tisch ein neues USB-Device. Als USB-Treiber muss jetzt der zuvor herunter-geladene Treiber ausgewählt werden.Sollte die Treiberinstallation Problemebereiten, kann man einen „InstallationGuide“ von der FTDI-Webseite(www.ftdichip.com) herunterladen undzu Rate ziehen. Dieser Guide ist auchfür den modifizierten Treiber gültig.Mit der Installation des CMD-FTDI-Treibers wird sowohl der „D2XX-“(Direct Driver) als auch der „VCP-“ (Vir-tueller COM Port) Treiber installiert.Mit Hilfe des VCP-Treibers wird derUSB-Port des RFID–Readers sowohlauf der PC- als auch auf der Mikrocon-trollerseite wie eine gewöhnlicheRS232-Schnittstelle angesprochen. Der D2XX-Treiber wird auch benötigt,wenn man den ELEKTOR-Reader imZuge eigener Entwicklungen so weit-gehend modifiziert, dass Konfigura-tionsdaten im internen EEPROM desFT232R geändert werden müssen.Dafür gibt es auf der FDTI-Website dasPC-Programm MPROG als Gratis-Download, das wiederum nur mit demD2XX-Treiber arbeitet.
MIFARE MagicNach der Treiberinstallation kann dasspeziell für den ELEKTOR-RFID-Reader entwickelte PC-ProgrammMIFARE Magic verwendet werden,das ebenfalls als Gratis-Download aufwww.elektor.de bereitsteht. Nach demDownload muss der Inhalt des ZIP-Filein ein frei wählbares Unterverzeichniskopiert werden. Beim Start des Pro-gramms durch einen Doppelklick aufMifareMagic.exe sollte der Readerbereits mit dem USB-Port verbundensein, damit sich MIFARE Magic auto-matisch mit dem Readerport verbin-den kann. Es ist nicht erforderlich,einen COM-Port auszuwählen, daMIFARE Magic intern den „D2XX“-Treiber verwendet. Bild 6 zeigt den„Terminal“-View“ von MIFARE Magic,der ein VT100-Terminal emuliert undalle Zeichen darstellt, die vom LPC-Controller über den FDTI-Schnittstel-lenkonverter gesendet werden. Die Firmware im LPC-Controller befin-det sich nach dem Einschalten eben-falls im „Terminal“-Betrieb. Sobald derReader eine neue Karte im Felderkennt, wird diese angesprochen(aktiviert). Erkennt der Reader, dass
elektor - 9/200632
PRAXIS RFID
(C) ELEKTOR 060132-1
C1
C2
C3
C4
C5
C6
C7
C8
C9C10
C11
C12
C13
C14
C15
C16
C17
C18
C19
C20C21C22
C23C24
C25C26
C27C28
C29 C30
C31
C32
D1
D2
D3
D4
D5
D6
D7
IC1IC2
IC3 IC4
IC5JP1
JP2
K1
K2
L1
L2
L3
P1
R1
R2
R3
R4
R5
R6
R7
R8 R9
R10R11
R12 R13
R14
R15
R16
R17 T1
T2
T3
X1
X2
060132-1T
-
-
++
14 1
Bild 5. Die zweilagige Platine enthält auch die Antenne. Wegen des nicht manuell lötbaren Reader-ICs ist siefertig bestückt und getestet erhältlich.
9/2006 - elektor 33
StücklisteWiderstände (SMD 0805, 5%):R1, R2, R6, R12, R15, R17 = 1 kR3,R4,R5 = 4k7R7 = 2k7R8, R9 = 4Ω7R10 = 270 ΩR11 = 10 ΩR13 = 100 kR14, R16 = 10 kP1 = 10-k-Trimmpotentiometer, SMD,
4 mm SQ
Kondensatoren (SMD 0805, 16 V, keramisch):C1, C2 = 47 p NP0C3, C4, C5, C6, C9, C10, C11,
C12, C16, C31 = 100 nC7, C8, C13, C14 = 12 p NP0C15 = 1 n NP0C17, C19 = 220 p NP0 C18, C20 = nicht bestücktC21, C23 = 27 p NP0C22, C24 = nicht bestücktC25, C27 = 68 p NP0C26, C28 = nicht bestücktC29, C30, C32 = 2µ2
Halbleiter:D1 = SMD-LED (0805) grün,
Low-currentD2 = SMD-LED (0805) gelb,
Low-currentD3, D6, D7 = SMD-LED (0805), rot,
Low-currentD4 = BAS19 (200 mA, SOT23)D5 = BAT54S (30 V/300 mA,
SOT23)T1, T2 = 6402 (P-Kanal-MOSFET,
20 V/3,7 A, SOT23)T3 = BC517 (NPN-Darlington, TO92)IC1 = FT232RQFN (QFN32, FTDI)IC2 = 74HC02 (TSSOP14,
NORGATE)IC3 = P89LPC936FDH-S (SSOP28,
Philips)IC4 = MFRC52201HN1 (HVQFN32,
Philips)IC5 = LM2937 (Low-drop, 3V3,
SOT223)
Außerdem:X1 = 16-MHz-Quarz (18-p-
Parallelkapazität, 5 mm x 3,2 mm)X2 = 27,12-MHz-Quarz (18-p-
Parallelkapazität, 5 mm x 3,2 mm)K1 = Mini-USB-B-Buchse, SMD,
5-poligL1 = SMD-Ferrit (1,5 A, 0805)L2, L3 = SMD-Induktivität 560 nH
(0805)JP1, JP2 = 0,1”-Jumper (siehe Text)LCD1 = LCD-Modul, 2 x 16 Zeichen
mit HintergrundbeleuchtungGehäuse, 146 x 91 x 33 (mm) mit
LCD-Fenster und Batteriefach für4 Mignon-Zellen (AA)
Platine EPS 060132-91 (bestückt undgetestet, inklusive USB-Kabel, sieheElektor-Shop-Anzeige am Heftende)
Passendes LC-Display (siehe Elektor-Shop-Anzeige am Heftende)
Hex- und Source-Kode für LPC LPC936(kostenloser Download unterwww.elektor.de)
PC-Software Mifare Magic mit Source-Kode (kostenloser Download unterwww.elektor.de)
eine MIFARE®-UltraLight-, MIFARE®-1K- oder eine MIFARE®-4K-Karte imFeld ist, wird der gesamte Speicherin-halt der Karte gelesen und im „Termi-nal“ von MIFARE Magic angezeigt. BeiMIFARE®-1K- und 4K-Karten wirddabei der Standard-MIFARE®-Schlüs-sel verwendet. Sollte eine Karte unter-schiedliche Schlüssel verwenden, sokann der Dateninhalt des jeweiligenSektors nicht gelesen werden. Wennman an Stelle von Mifare Magic einanderes Terminalprogramm verwen-den möchte (z.B. Hyper Terminal oderdas in das LPC-Tool Flash Magic inte-grierte Terminalprogramm), so mussals Port der vom VCP-Treiber erzeugtevirtuelle COM-Port ausgewählt wer-den. Die Parameter sind: 115.200 Baud,No Parity, 8 Datenbits, 1 Stoppbit.Über das Menü „Window“ kann inMIFARE Magic zwischen den Ansich-ten „Terminal“, „Mifare UltraLight“und „Show All Cards“ gewechseltwerden (siehe Bild 7). Das Fenster„Mifare UltraLight“ (Bild 1) stellt dieentsprechenden Kartenkommandosper Mausklick zur Verfügung. Somit istes auf sehr einfache Weise möglich,eine MIFARE-UltraLight-Karte (Gratis-Muster in diesem Heft) zu program-mieren. Sobald dieses Fenster aufgeru-fen wird, wechselt die Firmware imLPC-Controller der Reader-Platine vomTerminal-Betrieb in den PC-Reader-Betrieb. In diesem Betrieb wartet derMikrocontroller auf Kartenbefehle vomPC und ruft die dazugehörige Funktionin seiner Software auf. Diese Betriebs-art eignet sich auch, um eigene Reader-applikationen am PC zu entwickeln. ImFenster „Show All Cards“ werden dieSeriennummern aller Karten angezeigt,welche vom Reader noch gleichzeitigerkannt werden können. Dieses Fens-ter eignet sich zum Test von Reich-weite und erfassbarer Kartenanzahl.
Selbst programmierenFür eigene Entwicklungen undAnwendungen kann man sowohl dieFirmware im LPC936 als auch die PC-Software selbst modifizieren oder neuprogrammieren. Auch ein möglicherUpdate der ELEKTOR-Reader-Firm-ware kann ein Grund sein, um denLPC936 neu zu flashen. Auf der ELEK-TOR-Website steht immer die aktuelleSoftware zum Download kostenlos zurVerfügung, außerdem wird ein Hinweisauf einen Update auch auf der News-Seite bei www.elektor.de und in derMailbox-Rubrik im Heft (unter „Nach-lesen und Updates“) veröffentlicht.
elektor - 9/200634
PRAXIS RFID
Bild 6. Der „Terminal-View“ von MIFARE Magic visualisiert alle Zeichen, die der Reader über USB ausgibt.
Bild 7. Das Programmfenster „Mifare UltraLight“ ermöglicht die einfache Programmierung der RFID-Karte.
Bild 8. Das kostenlose PC-Programm Flash Magic zur Programmierung des LPC-Mikrocontrollers über die USB-Schnittstelle des ELEKTOR-RFID-Readers.
Der LPC936 auf der Reader-Platinelässt sich mit dem kostenlosen PC-Pro-gramm Flash Magic (Bild 8) direktüber den USB programmieren. DiesesProgramm, das von Embedded Sys-tems Academy stammt (Esacademy,www.esacademy.com) und von Philips(www.semiconductors.com) gespon-sert wird, unterstützt verschiedenePhilips-Controllertypen. Zum Programmieren des LPC-Control-lers werden die beiden Jumper auf derReader-Platine (JP1 und JP2) gesetzt.Eine detaillierte Anleitung zur Pro-grammierung finden Sie bei www.elek-tor.de auf der Webseite zum ELEKTOR-RFID-Reader-Artikel. Dort sind auchalle Reader- und Kartenkommandos fürMIFARE® UltraLight aufgelistet.Die Readerfirmware für den LPC-Con-troller wurde mit dem C-Compiler KeilµVision3 programmiert. Für die Ent-wicklung von eigenen Programmenstehen bereits alle erforderlichen Kar-tenkommandos als Funktionen zur Ver-fügung. Somit ist es nicht erforderlich,sich mit den einzelnen Registern desMF RC522 auseinanderzusetzen.Das Listing zeigt die erforderlichenCodes für die Kartenaktivierung undDatenblöcke einer MIFARE®-Ultra-Light-Karte. Anschließend werdendiese über die serielle Schnittstelle desControllers ausgegeben.Wie schon erwähnt, erlaubt der „PC-Reader-Betrieb“ der LPC-Firmware dasAufrufen der Kartenfunktionen übereine PC-Applikation. In diesem Fallwerden die Funktionsauf-rufe über ein sehre i n f a c h e sserielles Pro-tokoll direktan die Control-lersoftware über-tragen. Diese sen-det nach der Aus-führung derFunktion die Antwort-daten wieder an denPC. Name und Parameterder Funktionen für die PC-und Controllerprogrammie-rung sind identisch.Als Basis für eigene Entwick-lungen können die Sourceco-des der PC-Software MifareMagic und der Firmware des LPC-Controllers von der ELEKTOR-Web-site kostenlos heruntergeladen wer-den!
(060132-1e)
9/2006 - elektor 35
Listingwhile(1)
status = ISO14443_Request(WUPA, &bATQ);if(status != STATUS_SUCCESS)
continue;
status = ISO14443_Anticoll(Level1,0,&abSNR[0]);if(status != STATUS_SUCCESS)
continue;
status = ISO14443_Select(Level1, &abSNR[0], &bSAK); if(status != STATUS_SUCCESS)
continue;
// Check if UID is completeif((bSAK & 0x04) == 0x04)
// UID not completestatus = ISO14443_Anticoll(Level2,0,&abSNR[4]);if(status != STATUS_SUCCESS)
continue;
status = ISO14443_Select(Level2, &abSNR[4], &bSAK);if(status != STATUS_SUCCESS)
continue;
// Read UltraLight Block 0..3status = Read(0,abDataBuffer);