1 / 13

Gestione della tastiera

Gestione della tastiera. Interfaccia tra PC e tastiera. Keyboard Interface. Keyboard. Y-decoder. Micro controllore. Keyboard chip. Cavo della tastiera. Scan Matrix. X-decoder. Scan Matrix.

Download Presentation

Gestione della tastiera

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Gestione della tastiera

  2. Interfaccia tra PC e tastiera Keyboard Interface Keyboard Y-decoder Micro controllore Keyboard chip Cavo della tastiera Scan Matrix X-decoder

  3. Scan Matrix • La tastiera è organizzata elettricamente come una matrice di linee che si incrociano. Ad ogni incrocio è posizionato un interruttore, su cui è localizzato un tasto. La pressione di un tasto chiude un interruttore. • Le linee della matrice sono collegate ad un chip che riconosce il tasto premuto.

  4. Microcontrollore • Il chip trasmette il codice relativo al tasto premuto su un cavo seriale collegato al PC. • Tale informazione è ricevuta da un microcontrollore (8042 per i primi PC/AT, 8741 o 8742 per i più recenti PC).

  5. Scan Code • Ad ogni tasto è associato un codice che lo identifica (scan code). Tale codice è codificato su 8 bit. • Il chip sulla tastiera trasmette al microcontrollore 2 tipologie di codici • make code, in corrispondenza della pressione di un tasto • break code, in corrispondenza del rilascio del tasto. • Per ogni tasto • il codice di make corrisponde allo scan code • il codice di break corrisponde allo scan code + 128 (bit 7 pari a 1).

  6. Controllore della tastiera • Per la programmazione e la lettura della tastiera è possibile accedere al microcontrollore come se fosse un normale dispositivo periferico.

  7. Porte • Indirizzo 60h receiver buffer e transmitter buffer • indirizzo 64h control register (write-only) e status register (read-only). • La funzione del registro dipende dal tipo di istruzione che svolge il processore • lettura all’indirizzo 60h receiver buffer • lettura all’indirizzo 64h status register • scrittura all’indirizzo 60h transmitter buffer • scrittura all’indirizzo 64h control register

  8. Status Register • Leggendo all’indirizzo 64h è possibile leggere lo stato del controllore della tastiera. • I bit del registro di stato hanno il seguente significato • bit 7 1 = l’ultimo byte ricevuto con errore di parità • bit 6 1 = la tastiera non risponde (time-out) • bit 5 utilizzato dal mouse • bit 4 1 = tastiera disponibile, 0 = tastiera bloccata • bit 3 1 = ultimo byte scritto dalla CPU è un comando al control register, 0 = ultimo byte scritto dalla CPU è un dato per il trasmitter buffer • bit 2 1 = self-test della tastiera non presenta errore • bit 1 1 = transmitter buffer register full • bit 0 1 = receiver buffer full

  9. Receiver buffer full • Se il bit 0 del registro di stato vale 1, un byte di dato è disponibile sul receiver buffer. • Quando la CPU legge il receiver buffer, il bit 0 del registro di stato viene azzerato automaticamente.

  10. Control Register • Scrivendo all’indirizzo 64h è possibile inviare un comando alla tastiera. • I codice di alcuni comandi sono i seguenti • AAh self-test il controllore della tastiera esegue un test della tastiera e scrive 55h nel receiver buffer se non è stato rilevato nessun errore • ADh tastiera è disabilitata • AEh tastiera è abilitata

  11. Esempio • Lettura di un codice nel receiver buffer • rbr equ 60h • str equ 64h • tast proc • test_fi in al, str • test al, 01h • jz test_fi • in al, rbr • ret • tast endp

  12. Scan Code in tastiera USA • ESC 01h - _ 0Ch I 17h G 22h X 2Dh • 1 ! 02h =+ 0Dh O 18h H 23h C 2Eh • 2 @ 03h BKSP 0Eh P 19h J 24h V 2Fh • 3 # 04h TAB 0Fh [ 1Ah K 25h B 30h • 4 $ 05h Q 10h ] 1Bh L 26h N 31h • 5 % 06h W 11h enter 1Ch ; : 27h M 32h • 6 ^ 07h E 12h CTRL 1Dh , @ 28h , < 33h • 7 & 08h R 13h A 1Eh ‘ 29h . > 34h • 8 * 09h T 14h S 1Fh shift 2Ah / ? 35h • 9 ( 0Ah Y 15h D 20h \ 2Bh shift 36h • 0) 0Bh U 16h F 21h Z 2Ch print 37h

  13. Scan Code in tastiera USA • alt 38h F9 43h + 4Eh • blank 39h F10 44h END 4Fh • caps-lock 3Ah NUM-Lock 45h cursor do 50h • F1 3Bh Scroll 46h page do 51h • F2 3Ch Home 47h ins 52h • F3 3Dh Cursor up 48h del 53h • F4 3Eh Page up 49h F11 57h • F5 3Fh - 4Ah F12 58h • F6 40h cursor le 4Bh • F7 41h 5 4Ch • F8 42h cursor ri 4Dh

More Related