はい、かなり規格化されています。ざっくり言うと「USBという土管の規格」+「その中を流す“マウス”の話し方(クラス)の規格」の二段構えです。
-
USB自体の信号
物理層(電圧レベル、差動信号、速度:Low/Full/High-Speed など)、パケット形式、エラー検出、ホスト主導の通信(ポーリング)などは USB規格で標準化されています。 -
“マウスとして”のデータ形式
ふつうのUSBマウスは USB HID(Human Interface Device)クラスとして動きます。
ここで「ボタン何個」「X/Y移動量」「ホイール」などをどういうビット列で送るかは、基本的に **HIDの仕組み(レポート)**で表現され、ホスト(PC)がそれを解釈します。 -
完全に固定の1形式か?
「一般的なマウス」は共通に見えるように作られていますが、実は -
ボタン数が多い
-
高解像度ホイール
-
独自機能(DPI切替、マクロ、RGB制御)
みたいな部分は **HIDの“ベンダー独自レポート”**として追加されることがあり、そこはメーカー次第で統一されていないことがあります(ただし基本の移動/クリック部分は標準に寄せるのが普通です)。 オシロで見えるもの(USB2.0の典型的な有線マウス)
1) 配線と信号
-
D+ / D- の2本で差動通信(ねじれ対推奨)
-
VBUS 5V と GND
-
信号は基本 差動なので、理想は
-
差動プローブで D+−D- を見る
-
ない場合は D+ と D- をそれぞれ見て「逆相だな」を確認(ただし歪みの評価は難しくなります)
-
2) 速度(マウスはだいたいこれ)
多くのUSBマウスは Full-Speed(12Mbps) か Low-Speed(1.5Mbps) です。
(High-Speed 480Mbps のマウスも理屈上ありえますが、一般的には少ないです)オシロでの見分けの目安:
-
Low-Speed:ビット時間が長くてゆっくり(約 666ns/bit)
-
Full-Speed:その8倍速い(約 83ns/bit)
3) 電気的な「レベル」
USB2.0のLow/Full-Speedはいわゆる “3.3Vロジックそのまま”ではなく、終端・プルアップ・受け側終端を含む規格の振る舞いがあります。
-
デバイス側は D+ または D- に プルアップ抵抗を付けて速度を宣言
-
Full-Speed:D+ にプルアップ
-
Low-Speed:D- にプルアップ
-
-
これにより、アイドル時に片側が少し高くなり **“J状態”**になります(ここがオシロでまず見える特徴)
4) 波形の符号化(ここが「USBっぽさ」)
Low/Full-Speedのデータは NRZI で送られます。
-
“0” を送ると 反転
-
“1” を送ると 維持
さらに ビットスタッフィングが入り、同じ状態が続きすぎないようにします。
なので、オシロで見ると
-
規則的に反転が入る
-
完全なクロック線は無い(クロックは埋め込み)
5) まず見えるイベント(通信の塊)
USBはホスト主導なので、マウスが勝手に喋り続けるのではなく
-
ホストが定期的に INトークンで「変化ある?」と取りに来る
-
変化があればマウスがデータを返す
マウスだと「割り込み転送(interrupt IN)」で、だいたい 1ms〜10ms間隔でポーリングされます。
オシロでは「一定周期でバーストが出る」ように見えがちです。実務的な測り方(壊さない・見やすい)
-
できれば USBブレークアウト基板や テスト用延長ケーブルを使って、プローブの負荷で波形を潰さない
-
受動プローブを直刺しすると容量で波形が丸まることがあります(特にFull-Speed以上で顕著)
どのUSB世代のマウスを想定?
-
USB2.0(LS/FS) なら、普通のオシロでも見分けやすいです
-
USB3.x だと物理層が全く別(高速差動ペア追加、符号化も別)で、普通のオシロだけで“中身”まで追うのは難易度が上がります
-