Obsługa kart chipowych Smart Card
W świecie elektroniki istnieje wiele sposobów identyfikacji użytkownika. Obecnie bodaj najbardziej rozpowszechnionym w codziennym życiu (szczególnie w bankowości) jest standard wykorzystujący karty Smart Card. W artykule podajemy informacje, jak wykorzystać karty Smart Card w aplikacjach z mikrokontrolerami STM32.
Elektroniczne karty płatnicze zupełnie zrewolucjonizowały codzienne życie ludzi. Dzięki nim nie ma potrzeby obracania gotówką, wystarczy jedynie kawałek plastiku z zaszytą weń elektroniką i już można dokonywać transakcji na całym świecie. Zastosowania kart identyfikacyjnych nie ogranicza się rzecz jasna tylko do dokonywania płatności. Współczesne karty znalazły zastosowanie w wielu obszarach, które wymagają zabezpieczeń lub autoryzacji, jak choćby karty umożliwiające odbiór płatnych pakietów telewizyjnych.
Pierwotnie autoryzacja kart elektronicznych odbywała się dzięki informacjom zapisanym na pasku magnetycznym umieszczonym na karcie. Z czasem i postępującym rozwojem mikroelektroniki stało się możliwym technologicznie, i co ważniejsze opłacalnym, wmontowywanie w karty mikroprocesora. W ten sposób powstały wszechobecne dziś mikroprocesorowe karty typu Smart Card.
Mikrokontrolery STM32 oferują sprzętowe wsparcie dla aplikacji pracujących z kartami identyfikacyjnymi. Wbudowany w te układy uniwersalny interfejs szeregowy USART może pełnić rolę kontrolera Smart Card. W programie przedstawionym pod koniec niniejszego artykułu wykorzystamy tą alternatywną funkcjonalność USART.
Standard Smart Card (ISO 7816)
Wszystko, co jest związane z kartami identyfikacyjnymi Smart Card, zostało zdefiniowane w standardzie ISO 7816. Normę podzielono na części, a kolejne dodawano wraz z upływem czasu i powstającymi nowymi wymaganiami. Dotychczas powstało kilkanaście części standardu, lecz aby odczytywać i zapisywać dane do typowej karty identyfikacyjnej wystarczy zapoznanie się tylko z pięcioma pierwszymi częściami:
- ISO 7816-1 – konstrukcja mechaniczna, parametry elektryczne oraz wytrzymałość na czynniki zewnętrzne,
- ISO 7816-2 – liczba, funkcje, położenie oraz wymiary pól kontaktowych,
- ISO 7816-3 – sygnały elektryczne oraz protokoły transmisji – warstwa łącza danych,
- ISO 7816-4 – specyfikuje komendy i metody dostępu,
- ISO 7816-5 – systemy numeracji oraz procedury nadawania identyfikatorów dla producentów.
Wygląd typowych styków karty identyfikacyjnej z mikroprocesorem zamieszczono na rys. 1.
Rys. 1. Styki karty identyfikacyjnej Smart Card
Rys. 2. Interfejs Smart Card z użyciem układu ST8024
Podłączenie karty identyfikacyjnej do mikrokontrolera z rodziny STM32 wymaga zastosowania układu interfejsu analogowego. W tej roli dobrze spisuje się układ ST8024, a jego standardową aplikację przedstawiono na rys. 2. Warto zauważyć, iż istnieje tylko jedna linia przeznaczona do wymiany danych, co sprawia, że możliwa jest tylko komunikacja w trybie half-dupleks (naprzemienne wysyłanie i odbieranie danych).
Układ interfejsu zapewnia poprawne formowanie sygnałów oraz m. in. zabezpieczenie przed skutkami wyładowań elektrostatycznych. Ponadto ST8024 monitoruje stan mikroprzełącznika sygnalizującego umieszczenie karty w gnieździe.
Charakterystyka gniazda Smart Card powoduje, że podczas umieszczania karty w gnieździe kontakty znajdujące się na karcie mogą w trakcie ruchu uzyskać połączenie elektryczne z niewłaściwymi kontaktami gniazda. Może to oczywiście grozić uszkodzeniem karty lub czytnika, dlatego zasilanie powinno być doprowadzone do karty dopiero po tym, jak zostanie ona poprawnie umieszczona w gnieździe. Oznacza to, że w stanie jałowym, to jest wtedy, kiedy gniazdo jest puste, oraz podczas wkładania karty na złączach gniazda nie może występować napięcie. W przeciwnym wypadku mikroprocesor umieszczony w karcie może ulec uszkodzeniu. Zachowanie się czytnika po umieszczeniu w nim karty definiuje trzecia część standardu: ISO 7816-3.
Wygląd przebiegów sygnałów inicjalizujących interfejs Smart Card zamieszczono wraz z komentarzem na rys. 3. Gdy karta jest poprawnie umieszczona w czytniku to następuje włączenie napięcia zasilania oraz sygnału zegarowego. Taki stan musi trwać przynajmniej 40 000 cykli zegarowych. Po ich upływie linia zerująca RST powinna zostać przełączona w stan wysoki. Od tej chwili karta identyfikacyjna ma 400 cykli na wygenerowanie tzw. odpowiedzi na sygnał zerowania ATR (z ang. Answer to Reset).
Rys. 3. Sekwencja sygnałów na liniach interfejsu po umieszczeniu karty w gnieździe
Rys. 4. Maszyny stanów czytnika i karty identyfikacyjnej