Controler tastatură (calcul) - Keyboard controller (computing)
În calcul, un controler de tastatură este un dispozitiv care interfață o tastatură cu un computer . Funcția sa principală este de a informa computerul când o tastă este apăsată sau eliberată. Când sosesc datele de la tastatură, controlerul declanșează o întrerupere (o întrerupere de la tastatură ) pentru a permite procesorului să gestioneze intrarea.
Dacă o tastatură este o unitate de sistem periferică separată (cum ar fi în majoritatea computerelor desktop moderne ), controlerul tastaturii nu este atașat direct la taste, dar primește coduri de cod de la un microcontroler încorporat în tastatură printr-un fel de interfață serială . În acest caz, controlerul controlează de obicei LED - urile tastaturii trimițând date înapoi la tastatură prin cablu.
IBM PC AT a folosit un Intel 8042 cip pentru a interfața cu tastatura. Acest computer a controlat, de asemenea, accesul la linia A20 pentru a implementa o soluție pentru o eroare de cip în Intel 80286 . Controlerul de tastatură a fost , de asemenea , utilizat pentru a iniția o resetare CPU software - ul pentru a permite procesorului să tranziția de la modul protejat la modul real , deoarece 286 nu a permis CPU pentru a trece de la modul protejat în mod real excepția cazului în care procesorul este resetat. Aceasta a fost o problemă, deoarece BIOS-ul și serviciile sistemului de operare puteau fi apelate numai de programe în modul real. Aceste comportamente au fost folosite de o mulțime de software care așteaptă acest comportament și, prin urmare, controlerele de tastatură au continuat să controleze linia A20 și să efectueze resetări ale procesorului software chiar și atunci când necesitatea unei resetări prin intermediul controlerului de tastatură a fost înlăturată de capacitatea Intel 80386 de a comutați la modul real din modul protejat fără resetarea procesorului. Controlerul tastaturii gestionează și intrarea mouse-ului PS / 2 dacă este prezent un port PS / 2 pentru mouse. Astăzi, controlerul tastaturii este fie o unitate din interiorul unui dispozitiv Super I / O , fie lipsește, având funcțiile de tastatură și mouse gestionate de un controler USB și rolul său de a controla linia A20 gestionată de chipset.
IBM
- IBM joacă un rol mic în crearea controlerului tastaturii. Cu computerele compatibile IBM, controlerul tastaturii sau controlerul tastaturii Intel 8042 se găsește pe placa de bază. Controlerul gestionează intrările primite de la tastatura computerului, liniile A20, resetarea, descifrarea codurilor de scanare, precum și mouse-ul PS / 2. Cu modelele ulterioare de tastaturi, 8042 a fost înlocuit cu microcontrolerul 8742, care avea un microprocesor, memorie RAM și porturi I / O.
- Oricine încearcă să utilizeze controlerul clasic de tastatură în stil 8042 (KBC) găsit în IBM PC / AT și aproape toate computerele ulterioare întâmpină de obicei o problemă cu lipsa documentației exacte. 8042 (sau 8742 sau orice număr de piese compatibile încorporate în chips-uri Super I / O ulterioare) este de fapt destul de bine documentat. Prinderea este că 8042 este un microcontroler programabil cu propriul software de control în (de obicei) ROM. Până de curând, nimeni din afara câtorva companii (IBM, AMI, Phoenix) nu știa exact ce a făcut software-ul de control.
- IBM a documentat o serie de comenzi pe care gazda le poate trimite către KBC. Ar trebui să se înțeleagă că toate acele comenzi sunt o construcție software pură, fără nimic despre hardware-ul 8042 care dictează că comenzile trebuie să urmeze orice format, funcție specifică sau că trebuie chiar să fie acolo. Prin urmare, înțelegerea codului ROM 8042 este singura modalitate de a înțelege exact ce sunt comenzile și ce fac, cu avertismentul că diferite controlere pot și au cod oarecum diferit în ROM-ul lor.
Lista comenzilor KBC
-Comandele listate ca „ignorate” nu îndeplinesc nicio funcție.
- 00h-1Fh : Citiți KBC RAM indirect. Nedocumentat.
- 20h-3Fh : Citiți RAM KBC la offset 20h-3Fh. Numai comanda 20h este documentată de IBM.
- 40h-5Fh : scrieți KBC RAM indirect. Nedocumentat.
- 60h-7Fh : Scrieți RAM KBC la offset 20h-3Fh. Numai comanda 60h este documentată de IBM. Octetul la offset 20h este octetul de comandă și este tratat special.
- 80h-A8h : ignorat.
- AAh : Auto-test. Această comandă este documentată, dar efectele sale secundare nu sunt.
- ABh : Test de interfață.
- ACh : Depozitare de diagnosticare. Menționat de terți, dar nedocumentat de IBM.
- ADh : Dezactivează tastatura.
- AEh : Activați tastatura.
- AFh-BFh : ignorat.
- C0h : Citiți portul de intrare.
- C1h : interogare continuă a portului de intrare, ciugulire ridicată. Menționat de terți, dar nedocumentat de IBM.
- C2h : interogare continuă a portului de intrare, ciugulire scăzută. Menționat de terți, dar nedocumentat de IBM.
- C3h-CFh : ignorat.
- D0h : Citiți portul de ieșire.
- D1h : Scrieți portul de ieșire.
- D2h-DEh : ignorat.
- E0h : Citiți intrările de test.
- E1h-EFh : ignorat.
- F0h-FFh : biți de ieșire impuls.
Concluzie
Un dispozitiv portabil de calcul care cuprinde: un controler de tastatură având o primă intrare pentru primirea intrărilor de tastare și având o ieșire pentru transmiterea respectivelor intrări de tastare către un procesor principal; și un procesor secundar având o interfață cu controlerul de tastatură menționat printr-o magistrală secundară, respectiva magistrală secundară fiind de asemenea utilizată pentru a comunica cu un modul de baterie, în care controlerul de tastatură menționat de asemenea transmite respectivele intrări de apăsare a tastei către respectivul procesor secundar prin respectiva magistrală secundară. Controlerul tastaturii este programat să accepte interfața serială a tastaturii computerului personal compatibil IBM®. Controlerul tastaturii primește date seriale de la tastatură, verifică paritatea datelor, traduce codul de scanare și prezintă datele sistemului ca un octet de date în bufferul său de ieșire. Controlerul va întrerupe sistemul atunci când datele sunt plasate în memoria sa de ieșire. Octetul de date va fi trimis la tastatură în serie, cu un bit de paritate ciudat inserat automat. Tastatura este necesară pentru a confirma toate transmisiile de date. Nicio transmisie nu trebuie trimisă la tastatură până nu se primește confirmarea pentru octetul anterior trimis. Controlerul tastaturii și BIOS-ul pentru a îmbunătăți performanțele mașinilor PC IBM și compatibile ale acestora. O metodologie cablată este utilizată în acest controler de tastatură în loc de o implementare software, ca în tradiționalul BIOS de tastatură 8042. Aceasta permite controlerului tastaturii să răspundă instantaneu la toate comenzile trimise de la tastatură la BIOS-ul CPU. Acest lucru permite programelor populare precum Microsoft® Windows ™, NOVELL® și alte programe să ruleze mult mai repede.
Vezi si
- Tampon tampon
- Tastatură AT
- Extensor KVM
- Controler încorporat : Intel 8042 și alte controlere de tastatură utilizate în computere bazate pe designul IBM PC / AT pot fi considerate controlere încorporate.
- Toate fișele tehnice
Referințe
- ^ a b http://www.win.tue.nl/~aeb/linux/kbd/A20.html
- ^ "Ce este un controler de tastatură?" . www.computerhope.com . Adus 04-04-2019 .
- ^ "Comenzi IBM PC / AT 8042 Keyboard Controller | OS / 2 Museum" . www.os2museum.com . Adus 04-04-2019 .
- ^ "Comenzi IBM PC / AT 8042 Keyboard Controller | OS / 2 Museum" . www.os2museum.com . Adus 04-04-2019 .
- ^ "Comenzi IBM PC / AT 8042 Keyboard Controller | OS / 2 Museum" . www.os2museum.com . Adus 04-04-2019 .
- ^ [1] , „Dispozitiv de calcul care are un procesor secundar de putere redusă cuplat la un controler de tastatură”, emis 2001-03-08
- ^ "Foaie de date KBD42W11 (PDF) - SMSC Corporation" . www.alldatasheet.com . Adus 04-04-2019 .
linkuri externe
| Acest articol despre hardware-ul computerului este un butuc . Puteți ajuta Wikipedia extinzându-l . |