PS/2: Difference between revisions
[unchecked revision] | [unchecked revision] |
Start of PS/2 controller vs.protocol vs. device restructuring |
m "see also" fixes |
||
Line 38: | Line 38: | ||
==See Also== |
==See Also== |
||
⚫ | |||
*[[PS/2 Keyboard]] |
*[[PS/2 Keyboard]] |
||
*[[PS/2 Mouse]] |
*[[PS/2 Mouse]] |
||
⚫ | |||
===External Links=== |
===External Links=== |
||
*[http://www.computer-engineering.org/ps2protocol/ www.computer-engineering.org/ps2protocol] |
*[http://www.computer-engineering.org/ps2protocol/ www.computer-engineering.org/ps2protocol] |
Revision as of 03:36, 25 March 2012
PS/2 Overview
PS/2 is a type of serial communication, typically used for user input devices (keyboard, mouse, bar code scanner, etc). It involves a controller (e.g. "8042 chip" on PC compatible systems), the mechanical and electrical details of the communication itself, and a device.
History
Originally (1981) IBM used a different type of serial communication for XT keyboards. The older interface was not bi-directional - the device could talk to the controller, but the controller couldn't talk to the device.
Later (1984) IBM replaced the older serial interface with a newer bi-directional interface for AT keyboards. This allowed the host to send commands to the device.
Later still (1987) IBM extended the "AT" standard to create the "PS/2" standard. The PS/2 standard is electrically identical to the older AT standard (it only uses a different plug/connector).
Eventually the PS/2 was superseded by USB, however it is still fairly common (and for compatibility, some system have emulation layers that make USB devices appear as PS/2 devices).
PS/2 Protocol
A diagram of the PS2 connector is below.
The serial communication typically runs at a baud rate of 10 KHz to 16.7 KHz. Each byte sent by a device to a controller is transmitted as a packet containing 11 bits. The "device to host" packet has the following bits:
- 1 start bit (always 0)
- 8 data bits (least significant bit first)
- 1 parity bit (odd parity)
- 1 stop bit (always 1)
Each byte sent by a controller to a device is transmitted as a packet containing 12 bits. The "host to device" packet has the following bits:
- 1 start bit (always 0)
- 8 data bits (least significant bit first)
- 1 parity bit (odd parity)
- 1 stop bit (always 1)
- 1 acknowledgement bit