Klawiatura.doc

(348 KB) Pobierz

Klawiatura              601

Rozdział 13. Klawiatura

W ostatnim okresie nastąpił gwałtowny zalew rynku nowoczesnymi urządzeniami prze­znaczonymi do wprowadzania danych i ułatwiającymi kontakt użytkownika z kompu­terem. Mowa tu o różnych wymyślnych modelach myszek, skanerach czy wręcz sys­temach 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 ergonomicz­nego kształtu klawiatury. Należy się spodziewać, że jeszcze przez dłuższy czas zmu­szeni będziemy do korzystania z klawiatury, warto więc zaznajomić się z jej działaniem i budową.

Klawiatury XT, AT i PS/2

Klawiatura komputera, a zwłaszcza nowoczesne modele PS/2 (oznaczenie PS/2 odnosi się do modelu klawiatury 101- lub 102-klawiszowej, wprowadzonego na rynek przez firmę IBM w modelach IBM PC/RT i PS/2 - klawiatura ta znana jest też pod nazwą Enhanced A T lub MF-II, a żargonowo nazywana jest „klawiaturą 101"), stanowi układ dużo bardziej skomplikowany, niż mogłoby się to wydawać na pierwszy rzut oka.

Wbrew powszechnie panującej opinii, model XT, będący pierwowzorem dla później­szych udoskonaleń, również wyposażony był we własny kontroler klawiatury. Idea działania klawiatury typu XT przedstawiona jest na rysunku 13.1.


602


Anatomia PC


 


Rysunek 13,1.

Schemat obsługi klawiatury typu XT


PC/XT

Mikrokomputer jednoukładowy (mikrokontroler) 8048 nadzoruje siatkę połączeń X i Y, w której węzłach umieszczone są poszczególne klawisze. Układ kontroluje odpowiednio często stan tej siatki, wysyłając impulsy kolejno wszystkimi liniami X i badając, czy nie pojawiły się one na którejś z linii Y. W ten sposób można w dowolnym momencie określić, które z klawiszy zostały wciśnięte i ewentualnie zwolnione. Informacja ta prze­kazywana jest w formie szeregowego strumienia danych przewodem połączeniowym do komputera. Dane przesyłane są w sposób synchroniczny (dodatkową linią transmitowa­ny jest przebieg zegarowy), a ramka danych ma stałą budowę i zawiera jeden bit startu, osiem bitów danych, jeden bit kontroli parzystości (typu nieparzystego) i jeden bit stopu. Bit startu jest zawsze równy zero, zaś bit stopu -jeden. Przewód połączeniowy klawia­tura - komputer jest pięciożyłowy i oprócz linii danych, synchronizacji i masy dostarcza napięcia zasilającego +5 V dla układów sterujących klawiatury oraz posiada nie zawsze wykorzystywaną linię Reset.

Napływające z klawiatury dane opracowywane są w komputerze PC/XT przez układ 8255, a odebranie kompletnego znaku sygnalizowane jest przerwaniem IRQl. Znak ten stoi do dyspozycji w porcie B układu 8255 (rejestr o adresie 60h).

Trochę inaczej przedstawia się sytuacja w przypadku klawiatur AT i PS/2. Jak widać z rysunku 13.2, między klawiaturą a komputerem PC/AT możliwa jest dwukierunkowa wymiana informacji (w synchronicznym trybie półdupleksowym). Za komunikację tę odpowiedzialny jest od strony komputera scalony kontroler 8741, 8742 lub 8042, a od strony klawiatury - mikrokontroler 8049, posiadający odpowiednio rozbudowany w sto­sunku do swego poprzednika mikrokod.

Procesor jest w stanie programować zarówno klawiaturę, jak i jej kontroler (ten od stro­ny komputera). Wprowadzona została cała lista rozkazów, które mogą być przesyłane do klawiatury. Modele AT i PS/2 wzbogacone zostały również o dodatkowy rejestr sterujący o adresie 64h. Podstawowa funkcja portu 60h jako rejestru danych została oczywiście zachowana ze względu na konieczność utrzymania zgodności sprzętowej.


Klawiatura


603


Rysunek 13.2.

Schemat obsługi : klawiatury typu AT


PC/AT

Mapa klawiatury

Każdemu przyciskowi klawiatury przyporządkowana jest na stałe liczba zwana kodem klawisza (ang. scan code). Nie ma tu absolutnie znaczenia, jakim znakiem lub funkcją opisany jest klawisz, ważne jest jedynie jego położenie na klawiaturze. Różnych kodów może być oczywiście nie więcej niż klawiszy, czyli maksymalnie 102, tak więc do ich opisania wystarczy l bajt. W przypadku pokazanej na rysunku 13.3. klawiatury XT klawisze zostały po prostu kolejno ponumerowane.

Naciśnięcie dowolnego klawisza powoduje przesłanie do komputera tzw. kodu naciś­nięcia (ang. mąkę code), który równy jest kodowi naciśniętego klawisza. Kod ten mieści się w całości w 11 -bitowej ramce, za pomocą której transportowany jest do komputera. Nadejście dowolnego bajtu danych z klawiatury wyzwala przerwanie sprzętowe na linii IRQ1. Obsługująca to przerwanie procedura (wskazywana przez wektor 09h) przejmuje odebrany znak. Dalszy sposób postępowania procedury INT 09h zależy od tego, czy naciśnięto klawisz funkcyjny (np. F2), specjalny (np. Alt, Shift), czy klawisz ze zwy­kłym znakiem (np. B).

Pojedynczy kod naciśnięcia nie określa niestety w jednoznaczny sposób intencji użyt­kownika. Wiele klawiszy opisanych jest bowiem kilkoma symbolami, nawet zwykłe litery mogą występować w wersji dużej lub małej. Wybór znaczenia klawisza dokony­wany jest za pomocą klawiszy specjalnych. Procedura obsługi przerwania 09h (zwana też sterownikiem klawiatury, ang. keyboard handler) musi więc brać pod uwagę stan całego pola zestyków i odpowiednio go interpretować.


604


Anatomia PC


 


 


Rysunek 13.3.

Mapa klawiatury typu XT


Klawiatura PC/XT

 

 

 

 

59

60

01 02

|03|04

os|oe

> 07(08

09J 10)11

12|13| 14

69

70

61

62

15   1

3 17 18

19 2

021(22

> 23 24 2

5 26| 27

28

71

72

73

74

63

64

29

30 31 32[33

34(35 3

63738

39 40 41

75

76

77

78

65

66

4243

4445

...

Zgłoś jeśli naruszono regulamin