MOUSE(4) | Ficheros especiales | MOUSE(4) |
mouse - Interfaz de ratón serie
Los ratones serie se conectan a una línea serie RS232/V24, véase ttys(4) para una descripción.
El diagrama de conexión de un conector de 9 pines normal como el usado por un ratón serie es:
pin | nombre | usado para |
2 | RX | Data |
3 | TX | -12 V, Imax = 10 mA |
4 | DTR | +12 V, Imax = 10 mA |
7 | RTS | +12 V, Imax = 10 mA |
5 | GND | Ground |
Esta es la especificación aunque, de hecho, 9 voltios son suficientes para la mayoría de los ratones.
El driver del ratón puede reconocer un ratón poniendo la RTS a nivel bajo y subiéndola de nuevo. Después de 14 ms el ratón enviará 0X4D ('M') en la línea de datos. Después de otros 63 ms, un ratón de 3 botones Microsoft-compatible enviará 0x33 ('3').
El movimiento relativo del ratón es enviado como dx (un valor positivio indica derecha) y dy (un valor positivo indica abajo). Ratones diferentes pueden operar a diferentes velocidades. Para seleccionar una velocidad, entre los valores 9600, 4800, 2400 y 1200 bit/s, se escriben los dos caracteres que aparecen en la tabla de abajo y se hace una pausa de 0.1 segundos. La siguiente tabla muestra las velocidades disponibles y las cadenas que las seleccionan:
bit/s string |
9600 *q |
4800 *p |
2400 *o |
1200 *n |
El primer byte de un paquete de datos se puede usar para propósitos de sincronización.
El protocolo Microsoft usa 1 bit de inicio, 7 bits de datos, no paridad y un bit de parada a la velocidad de 1200 bits/seg. Los datos se envía a RxD en paquetes de 3 bytes. Los movimientos dx y dy son enviados en complemento a dos, y el bit lb (rb) se pone a 1 cuando se presiona el botón izquierdo (derecho):
byte | d6 | d5 | d4 | d3 | d2 | d1 | d0 |
1 | 1 | lb | rb | dy7 | dy6 | dx7 | dx6 |
2 | 0 | dx5 | dx4 | dx3 | dx2 | dx1 | dx0 |
3 | 0 | dy5 | dy4 | dy3 | dy2 | dy1 | dy0 |
El ratón original de Microsoft sólo tiene dos botones. No obstante, hay algunos ratones de tres botones que también usan el protocolo Microsoft. Presionar o soltar el tercer botón (botón central) se indica enviando un paquete de movimiento zero y ningún botón presionado. (Por tanto, a diferencia de los otros dos botones, el estado del tercer botón no se indica en cada paquete.)
Los ratones serie Logitech de 3 botones usan una extensión diferente del protocolo Microsoft: cuando el botón central está levantado, se envía el paquete anterior de 3 bytes. Cuando el botón central está pulsado, se envía un paquete de 4 bytes donde el 4º byte tiene el valor 0x20 (o, al menos, tiene activo el bit 0x20). En particular, la pulsación del botón central se indica como 0,0,0,0x20 cuando ningún otro botón está pulsado.
El protocolo Mousesystems usa 1 bit de comienzo, 8 bits de datos, no paridad y dos bits de parada a la velocidad de 1200 bits/seg. Los datos se envian a RxD en paquetes de 5 bytes. dx se envía como la suma de los dos valores en complemento a dos, dy se envía como la suma negada de los dos valores en complemento a dos. El bit lb (mb, rb) se pone a 0 cuando se presiona el botón izquierdo(central,derecho):
byte | d7 | d6 | d5 | d4 | d3 | d2 | d1 | d0 |
1 | 1 | 0 | 0 | 0 | 0 | lb | mb | rb |
2 | 0 | dxa6 | dxa5 | dxa4 | dxa3 | dxa2 | dxa1 | dxa0 |
3 | 0 | dya6 | dya5 | dya4 | dya3 | dya2 | dya1 | dya0 |
4 | 0 | dxb6 | dxb5 | dxb4 | dxb3 | dxb2 | dxb1 | dxb0 |
5 | 0 | dyb6 | dyb5 | dyb4 | dyb3 | dyb2 | dyb1 | dyb0 |
Los bytes 4 y 5 describen el cambio producido desde que se transmitieron los bytes 2 y 3.
El protocolo Sun es la versión de 3 bytes del protocolo anterior Mousesystems de 5 bytes: los últimos 2 bytes no se envían.
El protocolo MM usa 1 bit de comienzo, 8 bits de datos, paridad impar y un bit de parada a la velocidad de 1200 bits/seg. Los datos se envían a RxD en paquetes de 3 bytes. dx y dy se envían como un único valor con signo, donde el bit de signo indica un valor negativo. El bit lb (mb, rb) se pone a 1 cando se presiona el botón izquierdo (central, derecho):
byte | d7 | d6 | d5 | d4 | d3 | d2 | d1 | d0 |
1 | 1 | 0 | 0 | dxs | dys | lb | mb | rb |
2 | 0 | dx6 | dx5 | dx4 | dx3 | dx2 | dx1 | dx0 |
3 | 0 | dy6 | dy5 | dy4 | dy3 | dy2 | dy1 | dy0 |
10 Febrero 1996 | Linux |