Tangentbordskontroll (dator)
Inom datorer är en tangentbordskontroller en enhet som ansluter ett tangentbord till en dator . Dess huvudsakliga funktion är att informera datorn när en tangent trycks ned eller släpps. När data från tangentbordet anländer, höjer styrenheten ett avbrott (ett tangentbordsavbrott ) för att låta processorn hantera inmatningen.
Om ett tangentbord är en separat perifer systemenhet (som i de flesta moderna stationära datorer ) är tangentbordskontrollen inte direkt ansluten till tangenterna utan tar emot skanningskoder från en mikrokontroller inbäddad i tangentbordet via något slags seriellt gränssnitt . I det här fallet styr styrenheten vanligtvis även tangentbordets lysdioder genom att skicka data tillbaka till tangentbordet genom kabeln.
På 80-talet använde IBM PC AT ett Intel 8042- chip för att ansluta till tangentbordet. Den här datorn kontrollerade också åtkomsten till A20-linjen för att implementera en lösning för en chip-bugg i Intel 80286 . Tangentbordskontrollern användes också för att initiera en mjukvaru-CPU-återställning för att tillåta CPU:n att övergå från skyddat läge till verkligt läge eftersom 286:an inte tillät CPU:n att gå från skyddat läge till verkligt läge om inte CPU:n återställs. Detta var ett problem eftersom BIOS och operativsystemtjänsterna endast kunde anropas av program i verkligt läge. Dessa beteenden har använts av massor av programvara som förväntar sig detta beteende, och därför har tangentbordskontroller fortsatt att kontrollera A20-linjen och utföra mjukvaru-CPU- avbrott även när behovet av en återställning via tangentbordskontrollern undanröjdes av Intel 80386 :s förmåga att växla till verkligt läge från skyddat läge utan en CPU-återställning. Tangentbordskontrollern hanterar även PS/2 -musingång om en PS/2-musport finns.
Idag är tangentbordskontrollern antingen en enhet inuti en super I/O -enhet eller saknas, med tangentbordskontrollern integrerad i själva USB-tangentbordet och dess roll i att styra A20-linjen som hanteras av styrkretsen.
IBM
- IBM spelar en liten roll i skapandet av tangentbordskontrollern. Med IBM-kompatibla datorer finns tangentbordskontrollern eller Intel 8042-tangentbordskontrollern på moderkortet. Styrenheten hanterar input från datorns tangentbord, A20-linjer, återställning, dechiffrera skanningskoder samt PS/2-musen. Med senare modeller av tangentbord ersattes 8042 med 8742 mikrokontroller, som hade en mikroprocessor, RAM och I/O-portar.
- Alla som försöker använda den klassiska tangentbordskontrollern i 8042-stil (KBC) som finns i IBM PC/AT och nästan alla senare datorer stöter vanligtvis på problem med brist på korrekt dokumentation. 8042 (eller 8742, eller valfritt antal kompatibla delar inbyggda i senare Super I/O-chips) är faktiskt ganska väldokumenterad. Haken är att 8042 är en programmerbar mikrokontroller med egen kontrollmjukvara i (oftast) ROM. Tills nyligen visste ingen utanför ett fåtal företag (IBM, AMI, Phoenix) exakt vad kontrollmjukvaran gjorde.
- IBM dokumenterade ett antal kommandon som värden kan skicka till KBC. Det bör förstås att alla dessa kommandon är en ren mjukvarukonstruktion, med ingenting om 8042-hårdvaran som dikterar att kommandona måste följa något specifikt format, funktion eller att de ens behöver finnas där alls. Att förstå 8042 ROM-koden är därför det enda sättet att förstå exakt vad kommandona är och vad de gör, med förbehållet att olika kontroller kan och har något olika kod i sitt ROM.
Lista över KBC-kommandon
Kommandona listade som "ignorerade" har ingen funktion.
- 00h–1Fh : Läs KBC RAM indirekt. Ej dokumenterat.
- 20h–3Fh : Läs KBC RAM vid offset 20h-3Fh. Endast kommando 20h är dokumenterat av IBM.
- 40h–5Fh : Skriv KBC RAM indirekt. Ej dokumenterat.
- 60h–7Fh : Skriv KBC RAM med offset 20h-3Fh. Endast kommando 60h är dokumenterat av IBM. Byten vid offset 20h är kommandobyten och behandlas speciellt.
- 80h–A8h : Ignoreras.
- AAh : Självtest. Detta kommando är dokumenterat, men dess biverkningar är det inte.
- ABh : Gränssnittstest.
- ACh : Diagnostisk dumpning. Nämnd av tredje part, men inte dokumenterad av IBM.
- ADh : Inaktivera tangentbordet.
- AEh : Aktivera tangentbord.
- AFh–BFh : Ignoreras.
- C0h : Läs ingångsport.
- C1h : Kontinuerlig ingångsport poll, hög nibble. Nämnd av tredje part, men inte dokumenterad av IBM.
- C2h : Kontinuerlig ingångsportundersökning, låg napp. Nämnd av tredje part, men inte dokumenterad av IBM.
- C3h–CFh : Ignoreras.
- D0h : Läs utgångsport.
- D1h : Skrivutgångsport.
- D2h–DEh : Ignoreras.
- E0h : Läs testingångar.
- E1h–EFh : Ignoreras.
- F0h–FFh : Pulsutgångsbitar.
Slutsats
1 . Bärbar datoranordning innefattande: en tangentbordskontroller som har en första ingång för att ta emot tangenttryckningsingångar och som har en utgång för att överföra nämnda tangenttryckningsingångar till en huvudprocessor; och en sekundär processor som har ett gränssnitt till nämnda tangentbordskontroller via en sekundär buss, nämnda sekundära buss också används för att kommunicera med en batterimodul, varvid nämnda tangentbordskontroller också överför nämnda tangenttryckningsingångar till nämnda sekundära processor genom nämnda sekundära buss. Tangentbordskontrollern är programmerad att stödja det IBM®-kompatibla persondatortangentbordsseriella gränssnittet. Tangentbordsstyrenheten tar emot seriella data från tangentbordet, kontrollerar datapariteten, översätter skanningskoden och presenterar data för systemet som en byte med data i dess utdatabuffert. Styrenheten kommer att avbryta systemet när data placeras i dess utgångsbuffert. Databyten kommer att skickas till tangentbordet i serie med en udda paritetsbit automatiskt insatt. Tangentbordet krävs för att bekräfta alla dataöverföringar. Ingen överföring ska skickas till tangentbordet förrän bekräftelse har tagits emot för den tidigare skickade byten. Tangentbordskontrollern och BIOS för att förbättra prestandan för IBM PC-maskiner och deras kompatibla enheter. En hårdkopplad metod används i denna tangentbordskontroll istället för en mjukvaruimplementering, som i det traditionella 8042 tangentbords-BIOS. Detta gör att tangentbordskontrollern kan reagera omedelbart på alla kommandon som skickas från tangentbordet till CPU BIOS. Detta gör att populära program som Microsoft Windows, Novell och andra program kan köras mycket snabbare.
Se även
- ^ a b "A20 - en smärta från det förflutna" .
- ^ "Vad är en tangentbordskontroll?" . www.computerhope.com . Hämtad 2019-12-04 .
- ^ a b c "IBM PC/AT 8042 tangentbordskontrollkommandon | OS/2 Museum" . www.os2museum.com . Hämtad 2019-12-04 .
- ^ US-ansökan 2002129288 , Loh, Weng & Loughran, Stephen, "Datorenhet med en sekundär processor med låg effekt kopplad till en tangentbordskontroll", publicerad 2002-09-12, tilldelad Hewlett-Packard Development Company , nu övergiven.
- ^ "KBD42W11 Datablad (PDF) - SMSC Corporation" . www.alldatasheet.com . Hämtad 2019-12-04 .
externa länkar
- tangentbordskontroller - Computer Dictionary
- KBD43W13 Tangentbord och PS/2-muskontroll
- Alla datablad