Controller tastiera (informatica) - Keyboard controller (computing)

Image
Regolatore di tastiera e jack AT-tastiera su un AT - Mainboard

In informatica, un controller di tastiera è un dispositivo che interfaccia una tastiera a un computer . La sua funzione principale è informare il computer quando viene premuto o rilasciato un tasto . Quando arrivano i dati dalla tastiera, il controller genera un interrupt (un interrupt della tastiera ) per consentire alla CPU di gestire l'input.

Se una tastiera è un'unità di sistema periferica separata (come nella maggior parte dei computer desktop moderni ), il controller della tastiera non è direttamente collegato ai tasti ma riceve i codici di scansione da un microcontrollore incorporato nella tastiera tramite un qualche tipo di interfaccia seriale . In questo caso, il controller di solito controlla anche i LED della tastiera inviando i dati alla tastiera attraverso il cavo.

L' IBM PC AT utilizzava un chip Intel 8042 per interfacciarsi con la tastiera. Questo computer controllava anche l'accesso alla linea A20 per implementare una soluzione alternativa per un bug del chip nell'Intel 80286 . Il controller della tastiera è stato anche utilizzato per avviare un ripristino della CPU software al fine di consentire alla CPU di passare dalla modalità protetta alla modalità reale poiché il 286 non consentiva alla CPU di passare dalla modalità protetta alla modalità reale a meno che la CPU non fosse ripristinata. Questo era un problema perché il BIOS ei servizi del sistema operativo potevano essere chiamati solo dai programmi in modalità reale. Questi comportamenti sono stati utilizzati da molti software che si aspettano questo comportamento, e quindi i controller della tastiera hanno continuato a controllare la linea A20 e ad eseguire reset software della CPU anche quando la necessità di un reset tramite il controller della tastiera era ovviata dalla capacità dell'Intel 80386 passare alla modalità reale dalla modalità protetta senza un reset della CPU. Il controller della tastiera gestisce anche l' input del mouse PS / 2 se è presente una porta del mouse PS / 2. Oggi il controller della tastiera è un'unità all'interno di un dispositivo Super I / O o manca, le sue funzioni di tastiera e mouse sono gestite da un controller USB e il suo ruolo nel controllo della linea A20 è gestito dal chipset.


IBM

  • IBM gioca un piccolo ruolo nella creazione del controller della tastiera. Con i computer compatibili IBM, il controller della tastiera o il controller della tastiera Intel 8042 si trova sulla scheda madre. Il controller gestisce l'input ricevuto dalla tastiera del computer, le linee A20, il ripristino, la decifrazione dei codici di scansione e il mouse PS / 2. Con i modelli successivi di tastiere, l'8042 è stato sostituito con il microcontrollore 8742, che aveva un microprocessore, RAM e porte I / O.
  • Chiunque tenti di utilizzare il classico controller della tastiera (KBC) in stile 8042 che si trova nel PC / AT IBM e in quasi tutti i PC successivi, in genere incontra un problema con la mancanza di documentazione accurata. L'8042 (o l'8742, o qualsiasi numero di parti compatibili incorporate nei successivi chip Super I / O) è in realtà abbastanza ben documentato. Il problema è che l'8042 è un microcontrollore programmabile con il proprio software di controllo nella (solitamente) ROM. Fino a poco tempo, nessuno al di fuori di poche aziende (IBM, AMI, Phoenix) sapeva esattamente cosa facesse il software di controllo.
  • IBM ha documentato una serie di comandi che l'host può inviare al KBC. Dovrebbe essere chiaro che tutti quei comandi sono un puro costrutto software, con nulla nell'hardware 8042 che impone che i comandi debbano seguire un formato, funzione specifica o che debbano anche essere lì. Pertanto, la comprensione del codice ROM 8042 è l'unico modo per capire esattamente quali sono i comandi e cosa fanno, con l'avvertenza che controller diversi possono e hanno un codice leggermente diverso nella loro ROM.

Elenco dei comandi KBC

-I comandi elencati come "ignorati" non svolgono alcuna funzione.

  • 00h-1Fh : lettura indiretta della RAM KBC. Non documentato.
  • 20h-3Fh : legge la RAM KBC con offset 20h-3Fh. Solo il comando 20h è documentato da IBM.
  • 40h-5Fh : scrittura indiretta della RAM KBC. Non documentato.
  • 60h-7Fh : Scrive KBC RAM con offset 20h-3Fh. Solo il comando 60h è documentato da IBM. Il byte all'offset 20h è il byte di comando ed è trattato in modo speciale.
  • 80h-A8h : ignorato.
  • AAh : autotest. Questo comando è documentato, ma i suoi effetti collaterali non lo sono.
  • ABh : test dell'interfaccia.
  • ACh : dump diagnostico. Citato da terze parti, ma non documentato da IBM.
  • ADh : disabilita la tastiera.
  • AEh : attiva la tastiera.
  • AFh-BFh : ignorato.
  • C0h : lettura della porta di input.
  • C1h : polling continuo della porta di input, nibble alto. Citato da terze parti, ma non documentato da IBM.
  • C2h : polling continuo della porta di input, nibble basso. Citato da terze parti, ma non documentato da IBM.
  • C3h-CFh : ignorato.
  • D0h : legge la porta di uscita.
  • D1h : scrivere la porta di uscita.
  • D2h-DEh : ignorato.
  • E0h : legge gli ingressi di prova.
  • E1h-EFh : ignorato.
  • F0h-FFh : bit di uscita a impulsi.

Conclusione

1. Dispositivo di elaborazione portatile comprendente: un controllore di tastiera avente un primo ingresso per ricevere input di battitura di tasti e avente un'uscita per trasmettere detti input di battitura a un processore principale; e un processore secondario avente un'interfaccia a detto controller della tastiera attraverso un bus secondario, detto bus secondario essendo utilizzato anche per comunicare con un modulo batteria, in cui detto controller della tastiera convoglia anche detti ingressi di battitura a detto processore secondario attraverso detto bus secondario. Il controller della tastiera è programmato per supportare l'interfaccia seriale della tastiera del personal computer IBM® compatibile. Il controller della tastiera riceve i dati seriali dalla tastiera, controlla la parità dei dati, traduce il codice di scansione e presenta i dati al sistema come byte di dati nel suo buffer di output. Il controller interromperà il sistema quando i dati vengono inseriti nel buffer di output. Il byte di dati verrà inviato alla tastiera in modo seriale con un bit di parità dispari inserito automaticamente. La tastiera è necessaria per confermare tutte le trasmissioni di dati. Nessuna trasmissione deve essere inviata alla tastiera fino a quando non viene ricevuta la conferma per il byte inviato precedente. Il controller della tastiera e il BIOS per migliorare le prestazioni delle macchine PC IBM e dei loro compatibili. In questo controller della tastiera viene utilizzata una metodologia cablata anziché un'implementazione software, come nel BIOS della tastiera 8042 tradizionale. Ciò consente al controller della tastiera di rispondere immediatamente a tutti i comandi inviati dalla tastiera al BIOS della CPU. Ciò consente a programmi popolari come Microsoft® Windows ™, NOVELL® e altri programmi di essere eseguiti molto più velocemente.

Guarda anche

Riferimenti

  1. ^ a b http://www.win.tue.nl/~aeb/linux/kbd/A20.html
  2. ^ "Che cos'è un controller della tastiera?" . www.computerhope.com . Estratto 2019-12-04 .
  3. ^ "IBM PC / AT 8042 Keyboard Controller Commands | OS / 2 Museum" . www.os2museum.com . Estratto 2019-12-04 .
  4. ^ "IBM PC / AT 8042 Keyboard Controller Commands | OS / 2 Museum" . www.os2museum.com . Estratto 2019-12-04 .
  5. ^ "IBM PC / AT 8042 Keyboard Controller Commands | OS / 2 Museum" . www.os2museum.com . Estratto 2019-12-04 .
  6. ^ [1] , "Dispositivo informatico con un processore secondario a bassa potenza accoppiato a un controller della tastiera", pubblicato il 2001-03-08 
  7. ^ "KBD42W11 Datasheet (PDF) - SMSC Corporation" . www.alldatasheet.com . Estratto 2019-12-04 .

link esterno