Browse Prior Art Database

Method for Keyboard Controller Support

IP.com Disclosure Number: IPCOM000117917D
Original Publication Date: 1996-Jul-01
Included in the Prior Art Database: 2005-Mar-31
Document File: 4 page(s) / 113K

Publishing Venue

IBM

Related People

Grimm, JA: AUTHOR [+3]

Abstract

Disclosed is a method abstracting the Intel 8042* Microcontroller as a dual-channel Universal Asynchronous Receiver-Transmitter (UART), so that the microcontroller can be treated as a generic byte stream device, such as a standard 16550 UART. With this abstraction, much of the common byte stream code from the UART device driver is reused in the 8042 device driver. Higher levels of code, which actually communicate with the microcontrollers in the mouse or keyboard devices, then reduce to simple stream I/O, as all synchronization issues are resolved within a single small 8042 microcontroller device driver.

This text was extracted from an ASCII text file.
This is the abbreviated version, containing approximately 51% of the total text.

Method for Keyboard Controller Support

      Disclosed is a method abstracting the Intel 8042*
Microcontroller as a dual-channel Universal Asynchronous
Receiver-Transmitter (UART), so that the microcontroller can be
treated as a generic byte stream device, such as a standard 16550
UART.  With this abstraction, much of the common byte stream code
from the UART device driver is reused in the 8042 device driver.
Higher levels of code, which actually communicate with the
microcontrollers in the mouse or keyboard devices, then reduce to
simple stream I/O, as all synchronization issues are resolved within
a single small 8042 microcontroller device driver.

      The hardware for a conventional IBM PC/AT* compatible keyboard
and mouse architecture includes an Intel 8042 Microcontroller, which
is configured as a special purpose interface chip by a firmware
program in internal Read-Only Memory (ROM).  Specifically, this
microcontroller chip is configured to have one synchronous serial
interface for the keyboard, using a single output bit for keyboard
command output and a single input bit for keyboard data input.  A
single output bit, which is usually connected to the Interrupt
Request (IRQ 1) line of the Central Processing Unit (CPU), is used to
signal an interrupt to the CPU.  Additionally, to provide a
synchronous mouse interface, a single output bit is used for a mouse
command output, and a single input bit is used for mouse data input,
while another output bit is tied to the IRQ 12 line of the CPU.  This
keyboard/mouse architecture also includes a keyboard microcontroller,
residing in the physical keyboard unit and communicating with the
8042 microcontroller over a synchronous serial interface, and a mouse
microcontroller, residing inside the physical mouse unit and
communicating with the 8042 Microcontroller over a synchronous serial
interface.

      Fig. 1 is a block diagram of a conventional method for
supporting the keyboard and mouse functions.  A conventional
operating system has one device driver for the keyboard, which is
divided into a keyboard Device-Independent Driver (DID 1) and a
keyboard Device-Dependent Driver (DDD 2) and another driver for the
mouse, which is similarly divided into a...