マイコン工作実験日記

Microcontroller を用いての工作、実験記録

HIDをSSPで試してみる

2011-12-11 11:49:36 | WT32/BM20
おそらくこれまでにHIDを試したのは一度しかないと思うのですが、ブログ記事にはしていませんでした。MTM07でHIDへの需要があることがわかったので、改めてHIDの使い方を確認しておくことにします。トラ技で紹介後、試作目的でWCA-009を購入された企業も何社さんかいらっしゃいましたが、その中にもHIDの利用を想定していると思われる方が複数あるようだと想像しております。HIDだけが利用目的であれば、オーディオ機能まで含むWT32はオーバー・スペックであり、WT11で用が足りそうですが、技術適合を通したモジュールとなるとWCA-009に行き着くことになるのでしょうか。今回、実験に使用するのはこの記事で紹介した、簡易Bluetoothスピーカ用に製作したもの。このボードに用意してあるタクト・スイッチも使います。

まずは設定から...



今回はSSP(Simple Secure Paring)を使ってみることにします。SET BT SSP で設定していますが、今回はわざとパスキーを必要とする設定にしてみました。SET BT SSP 3 0にすれば、パスキーの入力は要求されません。

Windows 7とつなげてみます。コントロール・パネルからデバイスの追加を実行すると、HIDの設定をしたWT32-Aが見つかります。



ちなみに、SET BT CLASS 00580と設定しておくと、この段階でキーボードではなく、マウスの絵が表示されます。「次へ」をクリックして進むと。。



デバイス側でのパスキーの入力を要求されますので、WT32側で表示されたキーを入力します。すると次のようにペアリングが完了します。



WT32側の動作の様子は次のようになりました。



最初の2行がペアリングの際の様子です。Windows 7側からパスキー要求があったことが表示されています。そこでSSP PASSKEYコマンドを使って要求されたパスキーを入力します。上記のWindows 7側の表示とは別のキーを入力していますが、これは2つの画面ダンプを取得した時刻が異なっているため。もちろん、Windows 7側で表示されたパスキーを入力します。

ペアリングが完了すると、Windows 7が接続してくるのでRINGが表示されます。以降、シリアルからの入力はHIDデバイス入力を指定するものと解釈されます。通常の7ビットASCIIコードの範囲はキーボード入力としてホスト側に渡ります。この状態になると、シリアル入力は全てホスト側へ渡す扱いになってしまうので、シリアル入力によってWT32をコマンドモードに戻すことができません。そこで、タクト・スイッチの登場です。SET CONTROL ESCAPEの設定によりPIO6がDTR信号によるエスケープとして機能するように設定してあるので、該当スイッチを押すことでコマンドモードに戻ってREADYプロンプトが表示されます。

LISTコマンドを使うことで、2本のリンクが張られていることがわかりますが、これらはUSB HIDのControl pipeとInterrupt pipeに相当します。

コマンドモードから再びHIDモードに入るには、SELECTコマンドを用います。スイッチを押して、CLOSEすればHIDの接続を切断することができます。

このように、英字キーボード代わりに使うのは簡単にできます。マウス入力をするためには、HIDのマウスレポート形式での送信が必要となるので、端末ソフトを使っての簡易的な実験では無理があります。マイコン使えば、加速度センサーでマウス動かすくらいは簡単にできそうです。簡単に使えることができる反面、大幅に簡略化されており、ユーザが制御できない事項もあります。
  • デバイスのモデルがマウスとキーボードに限定されている。他の種類のデバイスのレポートを送れない。
  • ホスト側からのデバイスへの送信や制御ができない。キーボード上のLEDの点灯制御やマウスの感度調節というようにホスト側から情報を送信したり、パラメータを設定する操作がサポートされていません。
基本的なキーボドやマウス代わりに使うのであれば、さほど困ることは無いと思われますが、ちょっとシャレた機能になるとサポートできません。例えば、マウスのホイールなんかはサポートできないようです。こういったHIDサポートの制約は、iWRAP5でいくらか緩和されるようで、ホイールのサポートやキーボード上のLEDの制御等ができるようになり、デバイスモデルとしてもJoystickやGame controllerが追加されるようです。iWRAP5が使えるようになったら、改めて調査する必要ありです。