Komunikace mezi AT klávesnicí určenou pro PC probíhá po dvou drátech. Jedná se o sériovou komunikaci, kde na vodiči nazvaném DATA (pin 2) jsou data a vodiči nazvaném CLOCK (pin 1) jsou hodiny. Pin 5 je napájení klávesnice 5V, pin 4 je zem a pin 3 je RESET, což je pozůstatek z XT klávesnic. Rychlost hodinového signálu může být v rozsahu 10 az 20 kHz.
Když je stisknuta klávesa, klávesnice vyšle do počítače kód klávesy. Po
uvolnění klávesy je vyslán řídící znak oznamující uvolnění klávesy a kód
uvolněné klávesy.
s--DATA--PS s = start bit DATA = první bit (LSB bit-nejnižší bit) P = paritní bit - lichá parita S = stop bit Jako příklad si uvedeme klávesu 'A' (0x1C): paritní bit | start bit | | | 00011100001 | stop bit
V případě požadavku na vyslání řídícího znaku do klávesnice je nutné signál DATA stáhnout na úroveň logické nuly a klávesnice si sama začne generovat hodinové pulsy na signálu CLOCK. Potom stačí tento řídící signál CLOCK sledovat a poslat mu data jako při příjmu (1 start bit, 8 bitové slovo a 1 paritní bit (lichá parita).
(všechny řídící kódy jsou v hexadecimálním formátu) 0xFF - reset klávesnice - spustí se power-on test 0xFE - žádost o zaslání posledního zaslaného scan kódu klávesy 0xFA - potvrzení - ACK 0xF6 - obnovení implicitního nastavení klávesnice 0xF5 - implicitní zablokování klávesnice - provede reset klávesnice, vrací kód ACK (0xFA), provede prerušení scanovaní klávesnice a ceka na dalsi prikaz, nema zadny vliv na LED indikator 0xF4 - odblokovani klávesnice - nuluje vystupni buffer, odblokuje klavesnici a vraci kod (0xFA) 0xEE - echo - klávesnice odpovi zpet take 0xEE jako echo - pro test 0xF2 - čtení ID klávesnice - klavensice odpovi ACK se dvemi ID byty (0x83,0xAB) a pokracuje ve scanovani po predchazejicim zablokovani klávesnice 0xED - zapnuti nebo vypnuti LED indikatoru klávesnice b0 - Scrollock - 1 zapnuto/0 vypnuto b1 - Numlock - 1 zapnuto/0 vypnuto b2 - Capslock - 1 zapnuto/0 vypnuto b3..b7 - 0
(všechny řídící kódy jsou v hexadecimálním formátu) 0xFF - preteceni bufferum klávesnice detekuje chybu 0xFE - zadost o zaslani posledniho zaslaneho znaku, spatne prijaty prikaz, parita apod. 0xFA - potvrzeni - ACK 0xF0 k - uvolneni klavesy - k -> kod uvolnene klavesy 0xAA - uspesny power-on test 0xEE - echo - klávesnice odpovi zpet take 0xEE jako echo - pro test 0x00 - preteceni bufferum klávesnice detekuje chybu
** Hlavní klávesy ** ----------------------------------------------------------------------- Klávesa Vyslaný kód při stisku Vyslaný kód při uvolnění ----------------------------------------------------------------------- ` 0x0E 0xF0 0x0E 1 0x16 0xF0 0x16 2 0x1E 0xF0 0x1E 3 0x26 0xF0 0x26 4 0x25 0xF0 0x25 5 0x2E 0xF0 0x2E 6 0x36 0xF0 0x36 7 0x3D 0xF0 0x3D 8 0x3E 0xF0 0x3E 9 0x46 0xF0 0x46 0 0x45 0xF0 0x45 - 0x4E 0xF0 0x4E = 0x55 0xF0 0x55 Backspace 0x66 0xF0 0x66 Tabelátor 0x0D 0xF0 0x0D Q 0x15 0xF0 0x15 W 0x1D 0xF0 0x1D E 0x24 0xF0 0x24 R 0x2D 0xF0 0x2D T 0x2C 0xF0 0x2C Y 0x35 0xF0 0x35 U 0x3C 0xF0 0x3C I 0x43 0xF0 0x43 O 0x44 0xF0 0x44 P 0x4D 0xF0 0x4D [ 0x54 0xF0 0x54 ] 0x5B 0xF0 0x5B \ 0x5D 0xF0 0x5D Caps Lock 0x58 0xF0 0x58 A 0x1C 0xF0 0x1C S 0x1B 0xF0 0x1B D 0x23 0xF0 0x23 F 0x2B 0xF0 0x2B G 0x34 0xF0 0x34 H 0x33 0xF0 0x33 J 0x3B 0xF0 0x3B K 0x42 0xF0 0x42 L 0x4B 0xF0 0x4B ; 0x4C 0xF0 0x4C ' 0x52 0xF0 0x52 Enter 0x5A 0xF0 0x5A Levý Shift 0x12 0xF0 0x12 Z 0x1A 0xF0 0x1A X 0x22 0xF0 0x22 C 0x21 0xF0 0x21 V 0x2A 0xF0 0x2A B 0x32 0xF0 0x32 N 0x31 0xF0 0x31 M 0x3A 0xF0 0x3A , 0x41 0xF0 0x41 . 0x49 0xF0 0x49 / 0x4A 0xF0 0x4A Pravý Shift 0x59 0xF0 0x59 Levý Ctrl 0x14 0xF0 0x14 Levý Alt 0x11 0xF0 0x11 Mezera 0x29 0xF0 0x29 Pravý Alt 0xE0 0x11 0xE0 0xF0 0x11 Pravý Ctrl 0xE0 0x14 0xE0 0xF0 0x14 ESC 0x76 0xF0 0x76 ----------------------------------------------------------------------- ** Funkční klávesy ** ----------------------------------------------------------------------- Klávesa Vyslaný kód při stisku Vyslaný kód při uvolnění ----------------------------------------------------------------------- F1 0x05 0xF0 0x05 F2 0x06 0xF0 0x06 F3 0x04 0xF0 0x04 F4 0x0C 0xF0 0x0C F5 0x03 0xF0 0x03 F6 0x0B 0xF0 0x0B F7 0x83 0xF0 0x83 F8 0x0A 0xF0 0x0A F9 0x01 0xF0 0x01 F10 0x09 0xF0 0x09 F11 0x78 0xF0 0x78 F12 0x07 0xF0 0x07 ----------------------------------------------------------------------- ** Numerická část ** ----------------------------------------------------------------------- Klávesa Vyslaný kód při stisku Vyslaný kód při uvolnění ----------------------------------------------------------------------- NumLock 0x77 0xF0 0x77 - 0x7B 0xF0 0x7B / 0xE0 0x4A 0xE0 0xF0 0x4A Pozn.1,2 . 0x71 0xF0 0x71 * 0x7C 0xF0 0x7C + 0x79 0xF0 0x79 Enter 0xE0 0x5A 0xE0 0xF0 0x5A 0 0x70 0xF0 0x70 1 0x69 0xF0 0x69 2 0x72 0xF0 0x72 3 0x7A 0xF0 0x7A 4 0x6B 0xF0 0x6B 5 0x73 0xF0 0x73 6 0x74 0xF0 0x74 7 0x6C 0xF0 0x6C 8 0x75 0xF0 0x75 9 0x7D 0xF0 0x7D ----------------------------------------------------------------------- ** Pomocná část ** ----------------------------------------------------------------------- Klávesa Vyslaný kód při stisku Vyslaný kód při uvolnění ----------------------------------------------------------------------- Ins 0xE0 0x70 0xE0 0xF0 0x70 Pozn.1,2,3 Home 0xE0 0x6C 0xE0 0xF0 0x6C Pozn.1,2,3 Pg Up 0xE0 0x7D 0xE0 0xF0 0x7D Pozn.1,2,3 Del 0xE0 0x71 0xE0 0xF0 0x71 Pozn.1,2,3 End 0xE0 0x69 0xE0 0xF0 0x69 Pozn.1,2,3 Pg Dn 0xE0 0x7A 0xE0 0xF0 0x7A Pozn.1,2,3 Šipka nahoru 0xE0 0x75 0xE0 0xF0 0x75 Pozn.1,2,3 Šipka doleva 0xE0 0x6B 0xE0 0xF0 0x6B Pozn.1,2,3 Šipka doprava 0xE0 0x74 0xE0 0xF0 0x74 Pozn.1,2,3 Šipka dolů 0xE0 0x72 0xE0 0xF0 0x72 Pozn.1,2,3 PrtSc 0xE0 0x12 0xE0 0x7C 0xE0 0xF0 0x7C 0xE0 0xF0 0x12 Ctl-PrtSc 0xE0 0x7C 0xE0 0xF0 0x7C Alt-PrtSc 0x84 0xE0 0x84 ScrLk 0x7E 0xF0 0x7E Ctrl-Break 0xE0 0x7E 0xE0 0xF0 0x7E nic ----------------------------------------------------------------------- ** Poznámky ** ----------------------------------------------------------------------- Poznámka 1 Při stiknutém levém shiftu : Vyslaný kód při stisku - 0xE0 0xF0 0x12 0x** 0x** Vyslaný kód při uvolnění - 0x** 0x** 0x** 0xE0 0x12 Poznámka 2 Při stisknutém pravém shiftu : Vyslaný kód při stisku - 0xE0 0xF0 0x59 0x** 0x** Vyslaný kód při uvolnění - 0x** 0x** 0x** 0xE0 0x59 Poznámka 3 Při stiknutém Num Locku : Vyslaný kód při stisku - 0xE0 0x12 0x** 0x** Vyslaný kód při uvolnění - 0x** 0x** 0x** 0xE0 0xF0 0x12 '0x** 0x**' - normálně vysílané sekvence při stiknuté klávese '0x** 0x** 0x**' - normálně vysílané sekvence při uvolnění klávesy Daniel Prokopec, email.: prokopec@login.cz Větrná 678/IV. Vysoké Mýto 56601
|