Klawiatura.pdf

(34 KB) Pobierz
Klawiatura1.doc
Opis protokolu transmisji klawiatury PC
Materialy pomocnicze dla laboratorium z przedmiotu
„Technika cyfrowa i mikroprocesorowa” III RA
Opracowal:
Dariusz Marchewka
Katedra Automatyki, Akademia Górniczo-Hutnicza
Al. Mickiewicza 30, 30-059 Kraków
tel. (0-12) 617-20-94
dmar@ia.agh.edu.pl
1. Opis transmisji z klawiatura PC
Klawiatura komputera PC polaczona jest z jednostka centralna za pomoca synchronicznego
interfejsu szeregowego. Rysunek 1 pokazuje opis pinów w standardowych zlaczach DIN
i PS/2, za pomoca których klawiatura podlaczona jest do komputera.
1. CLOCK
2. DATA
3. N/C
4. GND
5. +5V (Vcc)
1. CLOCK
2. GND
3. DATA
4. N/C
5. +5V (Vcc)
6. N/C
Rys.1
Klawiatura w naszym projekcie podlaczona jest bezposrednio do pinów mikrokontrolera.
Linia DATA (czarny przewód) do P1.0 , a linia CLOCK (brazowy przewód) do INT0. Dzieki
temu mozna napisac procedure odczytu danych z klawiatury wykorzystujac przerwanie INT0
mikrokontrolera 8051.
Caly protokól komunikacji z klawiatura jest dosyc rozbudowany, niemniej do naszych celów
skupimy sie na transmisji „od klawiatury”.
2. Transmisja „od klawiatury”
Po nacisnieciu któregokolwiek klawisza na klawiaturze, na linii danych pojawia 8-bitowy kod
klawisza zgodny z Rys.3. Ramka danych pokazana jest na nastepnym rysunku. Jak latwo
zauwazyc protokól jest zblizony do magistrali I2C. Komunikacje inicjalizuje klawiatura.
Najpierw wysylany jest bit startu równy 0, potem 8 bitów danych (poczawszy od
najmlodszego), nastepnie bit parzystosci, nastepnie bit stopu równy 1. Kazdy bit powinien
byc odczytywany podczas opadajacego zbocza sygnalu zegarowego.
Transmisja ma czestotliwosc 20-30 kHz – host (sterownik) moze ja spowolnic przez
przytrzymanie linii zegarowej w stanie niskim.
Rys.2. Transmisja “z klawiatury”
Rozrózniamy dwa sposoby odpowiedzi klawiatury:
- nacisniecie klawisza – na magistrali pojawia sie kod klawisza zgodny z Rys.2
- zwolnienie klawisza – na magistrali pojawia sie najpierw liczba F0H a potem kod
klawisza
Kody klawiatury numerycznej dodatkowo poprzedzone sa liczba E0H . Kody klawiatury
numerycznej przedstawia Rys.4.
Klawiatura PC
2
160552651.005.png 160552651.006.png 160552651.007.png
Rys.3 . Kody klawiszy
Rys.4. Kody Klawiatury numerycznej
3. Transmisja “do klawiatury”
Rys. 5. Przesylanie danych z Hosta do klawiatury
Transmisja jest inicjalizowana przez Hosta poprzez ustawienie na 0 (stan niski) lini CLOCK.
Aby zabezpieczyc sie przed przeslaniem danych przez klawiature w tym samym czasie, Host
powinien przytrzymac linie CLOCK w stanie niskim przez czas wiekszy niz 60us. Po tym
czasie linia danych (DATA) powinna byc ustawiona na 0 (stan niski). Nastepnie linia
CLOCK powinna zostac ustawiona na 1 (stan wysoki) - klawiatura powinna zaczac
generowac sygnal zegarowy. Po pierwszym opadajacym zboczu Host powinien wyslac na
linie danych pierwszy bit (najmlodszy) – zostanie on odczytany przez klawiature podczas
nastepnego opadajacego zbocza sygnalu zegarowego. Nastepnie na linii danych nalezy
umiescic nastepny bit danych. Operacje ta nalezy powtórzyc dla 8 bitów danych i bitu
Klawiatura PC
3
160552651.008.png 160552651.001.png 160552651.002.png
parzystosci. Po przeslaniu bitu parzystosci linia DATA ustawiona jest na 1 (stan wysoki) – po
to aby klawiatura mogla potwierdzic otrzymanie danych. Realizowane to jest zaraz w
nastepnym cyklu zegarowym poprzez ustawienie linii danych na 0 przez klawiature przez
okres 1 cyklu (patrz rys.5). Klawiatura bedzie generowala sygnal zegarowy tak dlugo, az linia
danych zostanie ustawiona na 1 (stan wysoki).
4. Opis wybranych polecen wysylanych przez hosta do klawiatury:
ED
Ustawianie stanu diod LED –NumLock, CapsLock, Scroll Lock.
Po przeslaniu EDh klawiatura odpowiada ACK (FAh) i czeka na nastepny
bajt ustawiajacy LEDy. Bit 0 steruje ScrollLock, Bit 1 – NumLock, Bit 2 –
CapsLock. pozostale bity sa ignorowane.
EE
Echo – Po przeslaniu tego polecenia klawiatura odpowiada Echo (EEh)
F0
Ustawienie Scan Code Set. Po przeslaniu F0h klawiatura odpowiada ACK
(FAh) i czeka na nastepny bajt, 01-03 który okresla rodzaj uzywanego
Scan Code. Przeslanie 00h jako drugiego bajtu spowoduje przeslanie
przez klawiature aktualnego ustawienia Scan Code
F3
Ustawienie szybkosci samopowtarzania (Typematic Repeat Rate). Klawiatura
odpowiada ACK (FAh) i czeka na drugi bajt okreslajacy szybkosc
samopowtarzania.
F4
Uaktywnienie Klawiatury – Zeruje bufor wyjsciowy klawiatury, ustawia
skanowanie nacisniecia klawiszy i wysyla ACK (FAh)
F5
Zablokowanie klawiatury – Kasuje klawiature, blokuje skanowanie nacisniecia
klawiszy i zwraca ACK (FAh).
FE
Resend – Klawiatura po otrzymaniu tego rozkazu przesyla jeszcze raz
ostatnio wyslany bajt.
FF
Reset – Reset Klawiatury.
5. Polecenie przesylane z klawiatury do hosta (odpowiedzi)
FA
Acknowledge –potwierdzenie
AA
Power On Self Test Passed (BAT Completed)
EE
Zobacz - Echo (Polecenia Hosta)
FE
Resend – Po otrzymaniu tego polecenia Host powinien powtórzyc ostatni
przeslany bajt.
00
Blad lub Przepelnienie Bufora
FF
Blad lub Przepelnienie Bufora
6. Literatura.
1. Elektronika Praktyczna 9/2002
2. Internet – strona www.beyondlogic.org
3. Internet – strona www.epanorama.net
Klawiatura PC
4
160552651.003.png 160552651.004.png
Zgłoś jeśli naruszono regulamin