Next: Biblioteka PCC
Up: Karty procesorowe
Previous: Podsumowanie
  Spis tresci
Biblioteki dostępu do kart procesorowych w środowisku Linux
Rysunek 2.7:
Schemat komunikacji między kartą a komputerem
|
Przyjrzyjmy się jeszcze raz jak wygląda komunikacja pomiędzy aplikacją
działającą na komputerze a kartą (rys. 2.7).
W poprzednim rozdziale
dowiedzieliśmy się, jak odbywa się komunikacja pomiędzy czytnikiem a kartą.
Pozostaje wyjaśnić jak połączony jest komputer z czytnikiem. W większości
przypadków użyte jest łącze szeregowe RS232, choć coraz częściej czytniki
komunikują się z komputerem przez łącze USB lub przez kartę
PCMCIA
(w przypadku komputerów przenośnych). Skoncentrujmy się na czytnikach
wykorzystujących standard RS232. Komunikacja wygląda następująco:
- aplikacja wysyła polecenie do czytnika przez łącze szeregowe (wykorzystując
sterownik portu szeregowego zawarty w jądrze systemu);
- czytnik sprawdza, czy jest to polecenie do niego i jeżeli tak, to wykonuje
je.
Jeżeli jest to polecenie kierowane do karty, to przesyła je do niej, wykorzystując
opisany wcześniej protokół T=0 lub T=1 i odbiera wynik;
- czytnik odsyła wynik operacji niezależnie od tego, czy było to polecenie do
niego, czy też do karty.
Taki mechanizm komunikacji jest dla twórcy aplikacji po stronie komputera
dość niewygodny:
- wysyłanie poleceń numerycznych do czytnika, oczekiwanie na odpowiedź tylko
przez określony czas, czy interpretowanie znaków specjalnychwymaga dużej
ilości kodu, w którym o popełnienie błędu nie trudno. Co więcej każdy
czytnik dostępny na rynku ma inny zestaw instrukcji, co powoduje, że
aplikacja musi być pisana dla konkretnego modelu;
- nawet posiadanie wygodnej, wysokopoziomowej funkcji, pozwalającej na
wysłanie polecenia do karty i odczytanie wyniku, nie rozwiązuje do końca
problemu. Polecenia kart same w sobie są dość złożone, składają się z wielu
numerków, oznaczających rodzaj polecenia, jego długość oraz parametry. Co więcej numerki
te są różne dla każdej karty.
Dość naturalne w takiej sytuacji wydaje się wykorzystanie biblioteki, która
udostępniałaby aplikacji wysokopoziomowy interfejs do komunikacji z kartą
(wspólny dla wielu modeli kart i czytników) ukrywający zawikłane
niskopoziomowe szczegóły komunikacji poprzez łącze RS232,
USB, czy
jakiekolwiek inne.
Przyjrzyjmy się dwóm bibliotekom realizującym takie zadanie, działającym
w środowisku Linux.
Subsections
Next: Biblioteka PCC
Up: Karty procesorowe
Previous: Podsumowanie
  Spis tresci
Janina Mincer-Daszkiewicz
2001-11-21