Piedinature - Pinouts
Mouse/Keyboard (PS/2)

Torna alla Home Page di Jack
Torna alla pagina delle informazioni tecniche
Torna alla pagina dei Pinouts



PS2 ports use synchronous serial signals to communicate between the keyboard or mouse to the computer. The signals are all TTL logic level voltages (0 volts for logical 0 and +5 volts for logical 1). Bi-directional communications are supported on all PS2 ports (mostly for keyboards but may be implemented in mouse only ports), all bi-directional transmissions are controlled by the clock and data lines. This feature is controlled by an open collector architecture which lets both lines to be forced to logical 0 by the device (mouse or keyboard) or the host computer. This means that at any point in time the host can force the clock line to 0 and inhibit the mouse to transmit. If the host inhibits while the mouse is transmitting the transmitted data must be retransmitted. Although this may seem odd, both ports are usually controlled by an INTEL 8042 keyboard controller (yes the keyboard controller also controls the PS2 mouse port on it's second channel).
Data transmission from the mouse to the computer is done as in figure 1, each clock period is usually between 70 to 150 microseconds (10 to 25 microseconds for transitions and 30 to 50 microseconds for high or low state), some may feel that these are large margins both this works good since this is a synchronous port (this also helps cut on the cost of high precision clocks). The data line transition is made on the falling edge of the clock signal and is usually sampled when the clock is low. Each data packet is composed of 11 bits, 1 start bit (which is low), 8 data bits, 1 odd parity bit and 1 stop bit (high).
Send data packet

Figure 1: SEND DATA PACKET
When the PS2 mouse sends it's information it must send 3 consecutive data packets in a row. Each packet sent has different information for button pressed, movement and direction of movement. The table below shows what information is sent in each packet. Please remember that this information is of general nature and can change from one manufacturer to another. This is for a 2 button mouse, I have no idea what bit is used for other types of mouses like 3 buttons and others that have special functions like an up-down wheel for scrolling within windows.

D7D6D5D4D3D2D1D0
1stYVXVYSXS10RL
2ndX7X6X5X4X3X2X1X0
3rdY7Y6Y5Y4Y3Y2Y1Y0

LLeft Button State (1 = pressed down)
RRight Button State (1 = pressed down)
X0-X7Movement in the X direction
Y0-Y7Movement in the Y direction
XSDirection of the movement in the X axis (1 = UP)
YSDirection of the movement in the Y axis (1 = LEFT)
XV,YVOverflow of the movement data bits (1 = overflow has occured)

The X and Y direction bits send the number of bits you moved since the last time this information was sent, the actual direction of the movement is sent in the XS and XY bits. If the movement of the mouse was higher than 255 data displacements since the information was last sent the overflow bit will go to one and will reset back to 0 as soon as the current data is sent. The way the driver handles overflow can change from one mouse driver to another, some may move the pointer 256 data bits and some may even decide to leave the pointer where it is! Some of you might wonder what exactly are the data bits sent for the movement bits, you will be able to shortly find this out in the i/o devices section on mouses which will be online shortly!

PS2 MOUSE ADAPTERS

Many of you have requested information on adapting serial mouses to PS2 ports and vice-versa. This is a very touchy subject and I wouldn't recommend to anyone to go ahead and make these adapters. Most mouses are either built for PS2 or serial ports and some are built for both, in the later case the appropriate adapters are supplied with the mouse when you buy it or can be purchased as an option.
Because of the nature of the ports the two kinds of mouses are not directly compatible. They don't send out the information in the same matter (different protocols) and don't use the same signal levels, PS2 mouses uses TTL logic signals (0-5 volts) and serial mouses use RS232 signals (typically +10 volts - -10 volts). When a mouse is built for operation on both ports, are setup with a 9 pin D-Shell used in serial mouses, these connectors have 9 pins and the serial mouse only uses between 5 and 8 pins. This leaves us with at least 1 spare line, this is the line that the PS2 data portion of the mouse will use for sending it's information. So as you can see, the adapters are designed to work on a particular make and model and are not usually compatible with other mouses.

6 PIN MINI-DIN FEMALE
(At the computer)

6 PIN MINI-DIN FEMALE (PS/2 STYLE) at the computer.

Pin Name Dir Description
1 DATA IN/OUT Key Data
2 n/c - Not connected
3 GND ------ Ground
4 VCC OUT Power , +5 VDC
5 CLK OUT Clock
6 n/c - Not connected

Note: Direction is Computer relative Mouse/Keyboard.

UNKNOW 6 PIN SDL FEMALE (PS/2 STYLE) at the computer.

Pin Name Dir Description
A n/c - Not connected
B DATA IN/OUT Key Data
C GND ------ Ground
D CLK OUT Clock
E +5V OUT Power , +5 VDC
F n/c - Not connected

Data

Mouse data packets or keyboard scan codes are sent from the mouse or keyboard to the computer on this single wire serially.

Clock

This signal is sent from the mouse or keyboard to synchronise the data signal.

+5 Vdc

This is a simple 5 volts signal for giving power to the mouse or keyboard.

Ground

This is a common ground signal used as a return path for data and is a reference to logical 0.


Torna alla Home Page di Jack
Torna alla pagina delle informazioni tecniche
Torna alla pagina dei Pinouts

(C) 2003-2022 Jack aka JackMauro aka Mauro