説明
概説
シリアルマウスで使われる普通の 9 ピンプラグのピン配列は以下である:
pin |
name |
used for |
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 |
これは仕様書であり、実際はほとんどのマウスでは 9 V で十分である。
マウスドライバは RTS をロー(low)に落し、再び上げることによって、マウスを認識できる。およそ 14 ms 後、マウスはデータライン上に 0x4D ('M') を送るだろう。さらに 63ms あと、マイクロソフト互換 3ボタンマウスは 0x33 ('3') を送る。
マウスの相対的な移動は、 dx(正が右)と dy(正が下)として伝えられる。各種のマウスは異なったスピードで操作できる。スピードを選択するには、下の表の2文字を送ってから 0.1 秒待つことで、9600, 4800, 2400, 1200 bit/s を順に選べる。以下の表では選択可能なスピードとそれを選択するための文字列を示している。
bit/s |
string |
9600 |
*q |
4800 |
*p |
2400 |
*o |
1200 |
*n |
データパケットの第 1 バイトは同期をとるのに利用できる。
マイクロソフトプロトコル(Microsoft Protocol)
マイクロソフトプロトコルは、1200 bits/sec のスピードで、1 スタートビット(1 start bit)、7 データビット(7 data bits)、パリティなし、1 ストップビット(1 stop bit)である。データは RxD に 3 バイトのパケットとして送られる。
dx と
dy の動きは 2 の補数表示で送られ、左(右)のボタンが押された時には
lb (
rb)がセットされる。
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 |
3つボタンマイクロソフトプロトコル(3-button Microsoft protocol)
本来のマイクロソフトマウスは 2 つのボタンしか持たない。しかし、3 つボタンのマウスでマイクロソフトプロトコルの物も存在する。真中のボタンを押す、または放すということは、動きゼロでボタンが押されていないというパケットを送ることで伝えられる。(従って他の二つのボタンと違い、真中のボタンのステータスは、それぞれのパケットからは伝わって来ない。)
ロジテックプロトコル(Logitech protocol)
ロジテックシリアル 3つボタンマウスは、マイクロソフトプロトコルとは異なった拡張をしている。:真中のボタンが押されてないと、上記 3バイトのパケットが送られる。真中のボタンが押されていると、4バイトのパケットが送られる。第4バイトは 0x20 の値を持っている(あるいは、少なくとも 0x20 ビットがセットされている)。但し、他のボタンが押されていない状態で、真中のボタンが押されると、0,0,0,0x20 と伝えられる。
マウスシステムズプロトコル(Mousesystems protocol)
マウスシステムズプロトコルは、1200 bits/secで、1 スタートビット、 8 データビット、パリティなし、2 ストップビットである。データは、RxD に 5 バイトのパケットとして送られる。
dx は 2 つの 2 の補数の和として送られ、
dy は 2 つの 2 の補数の和の否定として送られる。左(中、右)のボタンが押された時には
lb (
mb,
rb) がクリアされる。
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 |
第 4,5 バイトには、第 2,3 バイトが送られたあと生じた変更が記述される。
サンプロトコル(Sun protocol)
サン プロトコルは、上記の 5 バイトマウスシステムプロトコルの 3 バイト版です。後の 2 バイトは送られません。
MM プロトコル(MM protocol)
MM プロトコルは 1200 bits/sec で 1 スタートビット、8 データビット、奇数パリティ、 1 ストップビットを使う。データは RxD に 3 バイトのパケットとして送られる。
dx と
dy は一つの符号つきの値として送られ、サインビットは負の値を表す。左(中、右)のボタンが押された時には
lb (
mb,
rb)がセットされる。
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 |