なんでも作っちゃう、かも。

Arduino/Make/フィジカルコンピューティング/電子工作あたりで活動しています。スタバの空きカップを使ったスタバカップアンプなど製作。最近はもっぱらArduinoと3Dプリンタの自作に興味があります。

トランジスタ技術8月号USBマイコン基板を試す。

Posted by arms22 on 2008年07月15日 4  0

トランジスタ技術2008年8月号を買ってきました。早速、付録基板を試そうと思ったのですが、デバイスドライバがWindows用しかありません。。MacOSXで動かせません!まいった。。このまま本棚にしまってしまうのは勿体ないので、なんとかしようと思います。

で、思いついたのがlibusbを使って直接付録基板と通信してみる。Windows用のデバドラは仮想COMポートとして実装されています。恐らくシリアルデータはバルク転送を使って行われているはずです。エンドポイントはデバイスのコンフィグレーション一覧から知ることができるので、libusb経由で該当エンドポイントに対してバルク転送で読み書きしてやれば、シリアルデータの送受信ができるはずです、たぶん。。

早速、試してみる。

1.libusbのインストール
http://libusb.wiki.sourceforge.net/からlibusb-0.1.12.tar.gzをダウンロードしてきます。展開して次のコマンドを入力。

% ./configure
% make
% sudo make install

2.テストコード
Linux工作室のlibusbについてを参考にテストコードを書く。とりあえず、改行コードを送って、デバイスのスタートアップメッセージを受信してみる。処理内容はこんな感じ(全ソースコードは続きを読むで)。
  • libusb初期化
  • ベンダID、プロダクトIDでデバイス検索
  • デバイスオープン
  • コンフィグレーション、インターフェース設定
  • stdinからの入力待ち
  • 0xaを0xdに変換する
  • 入力された値をWrite(バルク転送:EP2:0x02)
  • デバイスからRead(バルク転送:EP1:0x81)
  • stdinからの入力待ちに戻る

3.結果
うーん。。何度改行コードを送っても、スタートアップメッセージが受信されません。。バルク転送がうまくいっていると仮定してトラ技BIOSのコードを読むと、
  • USBステータス確認
  • 改行コード入力待ち
  • スタートアップメッセージ送信
となっている。USBステータスの確認で止まっていそう。デバイスオープンの後にコントロール転送で何らかの操作が必要なのかもしれん。。

Ads by Google

4 Comments

もあ says...""
私も2冊買ってしまいました。もともとドライバが無いのでダメだと諦めていましたが、MacOSXで使えると嬉しいです。
USB付きのAVRとかPICとかも事情は同じだと思います。
libusbから使えるようになるなら嬉しいです。
2008.07.15 22:45 | URL | #IRbY6ELI [edit]
arms22 says...""
もあさん

トラ技BIOSの処理を追ってみようと思ったのですが、肝心のデバドラとの通信部分がライブラリ化されていて追えませんでした。。後はブルートフォースでアタックをしかけるしかなさそうです。。
2008.07.16 09:43 | URL | #j7sy4omY [edit]
もあ says...""
そうですか。。
私も週末に、まずはVMwareで試してみます。
ブルートフォースアタックする前に、USBアナライザで現実に動いているプロトコルを解析するという方法もあると思います。
これは、物がないと始まりませんが。。
2008.07.17 06:50 | URL | #- [edit]
arms22 says...""
とりあえず、ソフトウェアUSBアナライザで解析してみます。
2008.07.17 09:48 | URL | #j7sy4omY [edit]

Leave a reply






管理者にだけ表示を許可する

該当の記事は見つかりませんでした。