Buch Programmbeispiele & Libraries

Beispiel Kapitel 7.6
"Elektor-RFID-Reader Programmierung unter .NET"

Alle   Bibliotheken   bzw.   die   DLLs   (Dynamic-Link     Libraries)  für  den   Elektor-RFID-Reader wurden in C# entwickelt. Somit kann man den Elektor-RFID-Reader in jeder .NET Sprache programmieren.

Die   drei   Codebeispiele   zeigen   die   Verwendung   der   .NET   Reader   Libraries   in C/C++,  Visual  Basic.NET und C#. In jedem Beispiel wird jeweils mit der Methode ActivateCard() eine Karte aktiviert. Konnte eine Karte erfolgreich angesprochen werden, so wird die Kartenseriennummer (UID) auf der Konsole ausgegeben. Diese drei Beispiele sollten nur die Möglichkeit aufzeigen, dass der Reader auch in   einer anderen Sprache als C# programmiert werden kann. 

icon_zip.gif Elektor-RFID-Reader Programmierung unter .NET  

Elektor-RFID-Reader Library Quellcode

Elektor-RFID-Reader Firmware

Elektor-RFID-Reader USB Treiber

  

Beispiele Kapitel 8
"Karten und Tags angewandt"

In diesem Kapitel lernen Sie die grundlegenden Techniken der Programmierung unterschiedlicher MIFARE   und ISO/IEC-14443 Type A Karten kennen. Folgende Themen und Kartentypen werden in diesem Kapitel behandelt:

  • ISO/IEC 14443-3 Typ A Kartenaktivierung (Elektor-RFID-Reader)
  • Kartentyp Identifikation (Elektor-RFID-Reader)
  • MIFARE Ultralight Karte (Elektor-RFID-Reader & PC/SC Reader)
  • MIFARE Classic Karte  (Elektor-RFID-Reader & PC/SC Reader)
  • Triple-DES-Authentifikation einer MIFARE Ultralight C Karte  (Elektor-RFID-Reader)
  • ISO/IEC 14443-4 Übertragungsprotokoll (T=CL)  (Elektor-RFID-Reader )
  • MIFARE DESFire EV1 Karte  (Elektor-RFID-Reader & PC/SC Reader)

SCMagic_Win8_Source.png

Die vorgestellten Prinzipien und Programme sind großteils auch auf andere Reader Systeme übertragbar.

Alle Programmbeispiele mit Ausnahme der Kartenaktivierung kann man mit handelsüblichen PC/SC Reader nachvollziehen.

Sowohl die Elektor-RFID-Reader Library, als auch die CSharpPCSC Library implementieren die beiden Schnittstellen IMifareUltraLight und IMifareClassic.

Die in diesem Kapitel vorgestellten generischen Karten-Hilfsklassen sind Reader unabhängig.

Smart Card Magic.NET

icon_zip.gif Elektor-RFID-Reader Smart Card Magic.NET Script Examples

icon_zip.gif PC/SC Reader Smart Card Magic.NET Scritp Examples (NEW: 28.8.2013)

 

Beispiele Kapitel 9.1
Programmierung des Reader-IC MFRC522

Der Reader-IC MFRC522 wird über insgesamt 48 Special Function Register (SFR) konfiguriert und programmiert. Ein Hostrechner kann wahlweise die MFRC522 Register über RS232, I2C oder SPI ansteuern. Beim Elektor-RFID-Reader erfolgt die Anbindung an den P89LPC396 Mikrocontroller über I2C. 

 Bild_9_1_ElektorRfidReader_SimpleBlockDigram.jpg

Die Elektor-RFID Reader Library unterstützt mit den zwei Methoden RC522.ReadSFR() und RC522.WriteSFR() den direkten Zugriff auf die MFRC522 Register. In diesem Fall reduziert sich die Funktion der Reader-Firmware auf einen speziellen USB/I2C Konverter zur Ansteuerung des MFRC522 UART.  

Mit Hilfe dieser beiden Methoden hat man die Möglichkeit Teile der Readerfirmware direkt am PC zu entwickeln und zu testen. Dadurch entfällt das zeitaufwendige Programmieren (flashen) des Mikrocontrollers. Sämtliche Analogparameter des Reader-ICs kann man durch das Verändern der entsprechenden SFR konfigurieren. Die Antennenabstimmung und das Optimieren der Readerreichweite erfordern das wiederholte Verändern der MFRC522 Analogparameter und somit das wiederholte Updaten der entsprechenden Registerwerte. Bei der herkömmlichen Vorgangsweise muss man bei jedem Durchgang die Firmware neu programmieren. Auch in diesem Fall ist es wesentlich effizienter die Registerwerte mit einem PC-Programm (z.B. Smart Card Magic.NET Script) anzupassen und anschließend die HF- Messungen durchzuführen. Erst nach erfolgter Optimierung der Analog-Performance ist es zweckmäßig, eine modifizierte Readerfirmware in den Flash-Speicher des Readers zu laden. 

Die Smartcard Magic.NET Scriptbeispiele finden Sie in den Elektor-RFID-Reader Smart Card Magic.NET Script Examples Subfolder MFRC522 (siehe Kapitel 8 Download).

 

Beispiele Kapitel 9.3
Ein elektronischer Ausweis 

Die Funktionsweise von kontaktlosen Smartcards lässt sich eindrucksvoll mit einem einfachen elektronischen Ausweis demonstrieren. Das folgende Projekt realisiert einen elektronischen Ausweis (ohne Sicherheitsmerkmale) mit einer MIFARE 4K Karte. Für die Personalisierung und zum Lesen der Ausweisdaten wurde eine einfache Windows Forms- Anwendung in C# entwickelt.   

Bild_9_10_Mifare4kIDCard.jpg

icon_zip.gif MifareIdCard

 

Beispiele Kapitel 9.2
Der Elektor-RFID-Reader als Zutrittssystem 

Der Elektor-RFID-Reader eignet sich besonders für die Realisierung eines Offline-Zutritts- kontrollsystems. Ein Tor- und Türöffner kann entweder direkt oder über ein zusätzliches Relais mit Hilfe des Opencollector-Ausganges (T3) angesteuert werden.

Die Konfiguration des Access Control-Modes erfolgt über die eigens dafür entwickelte Win- dows-Anwendung Access Control Manager . Diese Anwendung wurde in C# auf Basis der Elektor-RFID-Reader Library entwickelt. Den Access Control Manager kann man einfach um weitere Funktionen erweitern. In Smart Card Magic.NET ist das Fenster des Access Control Managers ebenfalls integriert. 

Bild_9_7_AccessControlManager.jpg

icon_zip.gif Access Control Manager

 

Beispiele Kapitel 11.2 
PC/SC Reader: Programmierung der WinSCard-API in C

Eine detaillierte Beschreibung und den Sourcecode finden Sie hier.

 PCSC_Reader.JPG

 

Beispiele Kapitel 11.3
PC/SC Reader: Java Smartcard I/O API

Eine detaillierte Beschreibung und den Sourcecode finden Sie hier.

 JavaSmartCardIOApi.PNG

 

Beispiele Kapitel 11.4
Der CSharp PC/SC Wrapper für .NET

Die .NET Framework-Klassenbibliothek unterstützt auch in der Version 4.0 keine Smartcards. Daher wurde im Rahmen dieses Buches ein CSharp PC/SC Wrapper entwickelt, welcher die wichtigsten Windows WinSCard-API Funktionen in der Klasse WinSCard einbettet. Zusätzlich zur WinSCard Klasse bietet die PCSCReader Klasse eine High-Level PC/SC API.

Eine detaillierte Beschreibung und den Sourcecode finden Sie hier.

 PInvoke.PNG