Keyboard controller (computing)

Keyboard controller (computing)

In computing, a keyboard controller is a device that interfaces a keyboard to a computer. Its main function is to inform the computer when a key is pressed or released. When data from the keyboard arrives, the controller raises an interrupt (a keyboard interrupt) to allow the CPU to handle the input. Today the keyboard controller is either a unit inside a super I/O device or is missing, having the keyboard controller integrated in the USB keyboard itself, and its role in controlling the A20 line handled by the chipset.

Comment
enIn computing, a keyboard controller is a device that interfaces a keyboard to a computer. Its main function is to inform the computer when a key is pressed or released. When data from the keyboard arrives, the controller raises an interrupt (a keyboard interrupt) to allow the CPU to handle the input. Today the keyboard controller is either a unit inside a super I/O device or is missing, having the keyboard controller integrated in the USB keyboard itself, and its role in controlling the A20 line handled by the chipset.
Depiction
AT hauptplatine stromanschluss.jpg
Has abstract
enIn computing, a keyboard controller is a device that interfaces a keyboard to a computer. Its main function is to inform the computer when a key is pressed or released. When data from the keyboard arrives, the controller raises an interrupt (a keyboard interrupt) to allow the CPU to handle the input. If a keyboard is a separate peripheral system unit (such as in most modern desktop computers), the keyboard controller is not directly attached to the keys but receives scancodes from a microcontroller embedded in the keyboard via some kind of serial interface. In this case, the controller usually also controls the keyboard's LEDs by sending data back to the keyboard through the wire. In the 80s the IBM PC AT used an Intel 8042 chip to interface to the keyboard. This computer also controlled access to the A20 line in order to implement a workaround for a chip bug in the Intel 80286. The keyboard controller was also used to initiate a software CPU reset in order to allow the CPU to transition from protected mode to real mode because the 286 did not allow the CPU to go from protected mode to real mode unless the CPU is reset. This was a problem because the BIOS and the operating system services could only be called by programs in real mode. These behaviors have been used by plenty of software that expects this behavior, and therefore keyboard controllers have continued controlling the A20 line and performing software CPU interrupts even when the need for a reset via the keyboard controller was obviated by the Intel 80386's ability to switch to real mode from protected mode without a CPU reset. The keyboard controller also handles PS/2 mouse input if a PS/2 mouse port is present. Today the keyboard controller is either a unit inside a super I/O device or is missing, having the keyboard controller integrated in the USB keyboard itself, and its role in controlling the A20 line handled by the chipset.
Hypernym
Device
Is primary topic of
Keyboard controller (computing)
Label
enKeyboard controller (computing)
Link from a Wikipage to an external page
www.alldatasheet.com/datasheet-pdf/pdf/110969/SMSC/KBD42W11.html
www.yourdictionary.com/computer/keyboard-controller
www.datasheetcatalog.org/datasheet/StandardMicrosystems/mXsstsv.pdf
Link from a Wikipage to another Wikipage
2 port
A20 line
AT keyboard
BIOS
Category:Computer keyboards
Central processing unit
Computer
Computer keyboard keys
Computer peripheral
Desktop computer
Embedded controller
File:AT hauptplatine stromanschluss.jpg
IBM PC AT
Intel 80286
Intel 80386
Intel 8042
Interrupt
Interrupt request (PC architecture)
Keyboard (computing)
Keyboard buffer
KVM extender
LED
Microcontroller
Mouse (computing)
O
Protected mode
Real mode
Scancode
Serial interface
System unit
SameAs
4pe4A
Keyboard controller (computing)
m.0crj0gj
Q6398227
Subject
Category:Computer keyboards
Thumbnail
AT hauptplatine stromanschluss.jpg?width=300
WasDerivedFrom
Keyboard controller (computing)?oldid=1117633888&ns=0
WikiPageLength
8555
Wikipage page ID
28462588
Wikipage revision ID
1117633888
WikiPageUsesTemplate
Template:!
Template:More citations needed
Template:Other uses