 |
 |
このUSB加速度センサマウスの実現では、USBの通信に関する理解と、USBN-9603の仕様の理解が殆ど全てと言っても過言ではなく、かなり苦しみました。
10〜30分程度ソースコードを変更して実行し、ログを取ってはUSB仕様書(600ページほど?)と、USBN-9603の仕様書(60ページほど)をめくって読む作業を1〜2時間繰り返す、そのような作業の繰り返しでした。
何度も開発を始めてしまった事を後悔したりもしたのですが、前述のように、『インターフェイス増刊 TECHI Vol.8 USBハード&ソフト開発のすべて CQ出版社』が丁度タイミングよく出版されたことで救われました。やはり、他人のコードを見ることが一番の勉強になります。
結局、非常に苦労はしたものの、完成してみれば「なんだそういう事か。」という部分が殆どで、今後はそれほど苦労しないのではないか...などと感じています。
少なくとも、USBのイニシャライズ(コントロール転送)の雛型は既にあるわけで、その他の転送、今回使用したインタラプトIN以外に、インタラプトOUT、バルクIN/OUT、アイソクロナスIN/OUTは、転送方式の違いはデバイス側で吸収してくれるため、ほぼ同様の処理で実現できるはずです。また、ソースコードも、参考にした『USBハード&ソフト開発のすべて』のコードに習って流用できる構造にしてあります。
どちらかと言えば、上流側、PC上のアプリケーションの開発が今後は重要なファクターで、この部分がクリアになれば、USBを用いたファームウェアへの高速プログラムダウンロードや高速ターミナル通信などが実現できそうです。
USBを使用して一番気持ちがいいのは、通信速度よりもなによりも、実は5V電源を簡単に供給できることだったりします。(^ー^;将来的には試作学習キットマイコンボードへのUSBインターフェイスの搭載は流行るのではないかなと感じています。
また、今回はたまたま知人のツテで、USBバスアナライザを使用させてもらうことができ、実際にどのようなデータのやり取りがUSBバス上で行われているのかを実際に観察することができ、非常に勉強になりました。
デバッグに使用したターミナルの表示ログと合わせて、比較用に取ったサンワサプライ製の3ボタンホイールつきUSBマウスと、製作した加速度センサUSBマウスのパケットデータを添付します。
USBへの道は、やはり敷居が高いのですが、製作を通じて学ぶことが多くあり終わってみれば非常に楽しかった、そのような気がします。みなさんも一度挑戦してみてください。 |