Im folgenden wird beschrieben, welche Werkzeuge und Materialien verwendet wurden, um einen funktionierenden Kartenklon zu erstellen:
Als Basis für den Postcard-Klon wurde eine programmierbare Chipkarte (ATmega163) mit einem AVR-Microcontroller der Firma Atmel verwendet, die im gut-sortierten Fachhandel bezogen werden kann. Der Preis liegt bei etwa CHF 20.00 (~ €15).
Für die AVR-Microcontroller gibt es eine GCC-basierte Entwicklungsumgebung, die die Programmierung von Applikationen in einer Hochsprache (C) erlaubt auf verschiedenen Plattformen - dies vereinfacht die Entwicklung ungemein. Nur die zeitkritische serielle Kommunikation benötigt ein Assembler-Modul (siehe auch ISO 7816-4/TO library).
Diese Entwicklungsumgebung mit C-Cross-Compiler für die AVR-Microcontroller ist auf verschiedenen Plattformen lauffähig:
Plattform | Voraussetzungen | Installation |
Unabhängig | Eclipse | AVR Eclipse Plugin |
Linux | Für die meisten Distributionen steht das Paket "avr-libc" zur Verfügung und kann über die normale Paketverwaltung installiert werden. In einem Artikel wird beschrieben, wie notfalls die Software aus den Quellen erstellt werden kann (Anleitung in Englisch und Deutsch). | |
Mac OS X | Apple Developer Tools, MacPorts | sudo port install avr-libc |
Windows |
WinAVR AVR Studio |
Die im Rahmen dieser Arbeit entstandene Bibliothek für die serielle Kommunikation basiert auf dem Projekt SOSSE (Simple Operating System for Smartcard Education). Die Assembler-Routine für das I/O wurde erweitert, so dass neben der "indirect convention" nun auch die "direct convention" unterstützt wird. Je nach verwendetem ATR schaltet das Modul selbstständig in die passende Betriebsart um.
Die Bibliothek y67.sclib.tar.gz ist unter GPL veröffentlicht.
Name | Beschreibung |
AVR Downloader/UploaDEr | Software zum Programmieren von Atmel AVR Microcontrollern |
Simulavr | Simulavr is ein Simulator für die Atmel AVR-Familie von 8-bit RISC Microcontrollern |
UISP | Tool für verschiedene AVR In-System Programmer Hardware |
Zum programmieren des AVR-Microcontrollers (Übertragen des compilierten Programms auf die Karte) wird eine spezielle Hardware benötigt. Gängige Programmer wie der STK50x können aber nur gesockelte Microcontroller programmieren, weshalb nur wenige Anbieter entsprechende Geräte für Chipkarten anbieten. Besonders die Linux-Unterstützung dieser Programmer lässt sehr zu wünschen übrig.
In diesem Projekt wurde unter anderem der Infinity USB Unlimited verwendet.