Klawiatura komputera

1. Ogólny opis klawiatury.

W ostatnim okresie nastąpił gwałtowny zalew rynku nowoczesnymi urządzeniami przeznaczonymi do wprowadzania danych i ułatwiającymi kontakt użytkownika z komputerem. Mowa tu o różnych wymyślnych modelach myszek, skanerach czy wręcz systemach rozpoznawania mowy. Mimo tego wszystkiego trudno sobie w dalszym ciągu wyobrazić obsługę komputera bez użycia klawiatury.
To poczciwe urządzenie również podlega z biegiem czasu pewnym mniej lub bardziej widocznym przekształceniom. Stosowane obecnie mikroprzełączniki są coraz lepszej jakości, a i producenci zaczynają przywiązywać coraz większą wagę do ergonomicznego kształtu klawiatury. Należy się spodziewać, że jeszcze przez dłuższy czas zmuszeni będziemy do korzystania z klawiatury, warto więc zaznajomić się z jej działaniem i budową

2. Zasada działania klawiatury

Klawiatura komputerów PC XT/AT jest oddzielną fizycznie i logicznie jednostką, wyposażoną we własny procesor i łącze szeregowe służące do komunikacji z płytą główną. Jej zadaniem jest wysyłanie do komputera 8 - bitowego kodu klawisza, który został naciśnięty.
Współpraca klawiatury z komputerem została zorganizowana w sposób zapewniający możliwość elastycznego dopasowania funkcji poszczególnych klawiszy do potrzeb stosowanych programów. Do komputera przesyłane są, więc kody klawiszy, a nie standardowe kody przypisanych im znaków.

Zasada działania

podstawowy schemat klawiatury

Linie przeglądania matrycy klawiatury pobudzane są z wyjść dekodera wierszy (74145). Dekoder sterowany jest za pomocą licznika wierszy (modulo 8). Linie zwrotne są wprowadzane na wejście selektora kolumn (multipleksera 74150) sterowanego z wyjść licznika kolumn (modulo 16). Zawartość liczników (zliczających impulsy z generatora) określa współrzędne klawiszy. Jeśli żaden klawisz nie będzie wciśnięty podczas przeglądania klawiatury, wtedy na wszystkich wejściach selektora utrzymywać się będzie wysoki poziom logiczny. Niski poziom logiczny na wyjściu selektora blokuje wejście rejestru.
Jeśli którykolwiek klawisz zostanie naciśnięty i trzymany w tym położeniu dłużej niż wynosi czas przeglądania całej klawiatury, wtedy niski stan logiczny z wybranego wejścia dekodera, pojawi się na zaadresowanym wejściu selektora. Narastające zbocze na wyjściu multipleksera dokona wpisu do rejestru zawartości liczników, czyli adresu naciśniętego klawisza. Rejestr adresuje komórkę pamięci stałej (ROM), w której umieszczono kod ASCII znaku przypisanego naciśniętemu klawiszowi.

układy elektryczne klawiatury

3. Zasada działania klawiatury stosowanej w komputerach IBM PC.

Oczywiście schemat klawiatury pokazany na rysunku został uproszczony, aby łatwiej zrozumieć zasadę działania.
W nowoczesnych klawiaturach wykorzystywane są różne rozwiązania układowe. Przykładowy schemat pokazuje typową klawiaturę stosowaną w komputerach IBM PC. Centralnym elementem jest jednoukładowy procesor (np. 8049), do którego zadań należy:

- przeglądanie klawiatury (z wykorzystaniem dekodera 74LS138)
- sterowanie diodami świecącymi wskazującymi stan klawiatury (Caps Lock, Num Lock, Scroll Lock)
- sterowanie transmisją szeregową między klawiaturą a systemem

Klawiatura połączona jest z systemem za pomocą zwiniętego spiralnie 4-żyłowego przewodu ekranowego. Dwie z linii wykorzystywane są do prowadzenia zasilania (+5V i masa). Pseudo - synchroniczna komunikacja szeregowa prowadzona jest liniami "zegara" (CLOCK) i "danych" (DATA). Każda z linii sygnałowych jest sterowana przez bramki z otwartym kolektorem (06). Rozwiązanie umożliwia wymuszenie stanu logicznego "0" zarówno od strony klawiatury jak i komputera.
W stanie pasywnym, gdy dane nie są transmitowane, obie linie sygnałowe są w stanie logicznym "1". Wtedy klawiatura może rozpocząć nadawanie. W systemie PC AT dane i polecenia przesyłane są w obu kierunkach między klawiaturą i komputerem.

Schemat klawiatury IBM PC na mikrokontrolerze 8049

Jednostka informacji składa się z 11 bitów:

- bitu startu ("0")
- ośmiu bitów danych
- bitu nieparzystości
- bitu stopu ("1")

Wysyłając dane do komputera, klawiatura generuje na linii zegara impulsy, które taktują przesyłanie kolejnych bitów .

Sygnały generowane przez klawiaturę

Przed wysłaniem danej, klawiatura sprawdza stan logiczny linii sygnałowych:

- gdy linia "zegara" jest w stanie "0", to transmisja zostaje zablokowana i dana jest zapamiętywana w buforze (wewnętrznej pamięci procesora 8049)
- gdy linia "zegara" jest w stanie "1" i linia danych w stanie "0", to dana trafia do bufora, a klawiatura przechodzi w tryb odbioru informacji
- gdy linie "zegara" i "danych" są w stanie "1", to klawiatura może rozpocząć transmisję do komputera

Podczas transmisji, co najmniej raz na 60 ms klawiatura kontroluje stan linii "zegara". Jeśli komputer wymusi poziom niski na tej linii, to wstrzymana jest dalsza transmisja.
Dla każdego klawisza przewidziany został 8 - bitowy kod (scan code), przesyłany przez procesor 8049 do systemu linią DATA. Klawiatura wysyła do systemu inny kod, gdy klawisz jest naciśnięty i inny w momencie jego zwolnienia.
Zamiana kodów przypisanych klawiszom na kody ASCII, realizowana jest przez procedury BIOS-u w systemie. Gdy klawisz jest naciśnięty i trzymany w tym położeniu przez dłuższy czas, klawiatura (z pewnym opóźnieniem) wysyła powtarzające się kody aż do chwili zwolnienia klawisza

4. Sygnały przesyłane przez system do klawiatury

System PC AT może wysłać różne polecenia zmieniające tryb pracy klawiatury:

- zerowanie klawiatury (kod FFH)
- powtórz daną (kod FEH) - żądanie powtórzenia ostatnio wysyłanej, prawdopodobnie błędnej danej
- ustaw wartość opóźnienia i częstość repetycji (kod F3H + bajt określający wartość opóźnienia i częstość)

Częstość repetycji można dobrać od 2 do 30 powtórzeń wysłania kodu stale naciskanego klawisza na sekundę (częstość początkowa - 10 znaków/s). Opóźnienie początkowe (czas uznania klawisza za stale naciskany) może być zmieniane od 250 ms do 1250 ms. Wartość początkowa wynosi 500 ms.

5. Sygnały przesyłane z klawiatury do systemu

Klawiatura może również wysyłać szereg poleceń i odpowiedzi do systemu:

- powtórz nadanie (kod FEH) - żądanie powtórzenia błędnej transmisji
- potwierdzenie (kod FAH) - potwierdzenie przyjęcia polecenia z komputera
- przepełnienie (kod 00H) - informacja o przepełnieniu bufora pamięci w klawiaturze (bufor procesora może pomieścić 16 kodów klawiszy)
- zwolnienie klawisza (kod F0H) - w klawiaturze PC AT kod sygnalizujący zwolnienie klawisza przesyłany jest w postaci dwóch bajtów: kodu F0H i kodu naciśniętego klawisza

W klawiaturze XT kod zwolnienia klawisza tworzony jest przez dodanie wartości 80H do kodu wysyłanego w momencie naciśnięcia klawisza.