P/ECE研究室〜USB分室


* Mon Dec 31 00:54:13 JST 2001 Naoyuki Sawa

僕がP/ECEを買った目的の一つに、USBプログラミングの勉強をしたい、という理由がありました。
というわけで、Linux用のP/ECEデバイスドライバの作成を開始しました。
ゆくゆくはこのデバイスドライバを介して、二台のP/ECEでアオミドロンの対戦ができたらいいな、と考えています。
(決してCPUロジックを作るのが面倒とか、そういう消極的な理由ではありませ...ちょっとあるかも^^;)

最初に、ご注意いただきたいことがあります。
それは、僕はUSBについてもデバイスドライバについてもド素人だ、ということです。
本稿には、ウソの情報や、機械にダメージを与えるプログラムが含まれている可能性があります。
充分にご注意くださいませ。
また、USBプロフェッショナル、およびデバイスドライバ作成の達人の皆様におかれましては、
ぜひとも本稿の間違い・バグ等をご指摘いただければ幸いです。

まず、LinuxにP/ECEを認識させること。そして、複数のP/ECE接続に対応すること。
以上2点を最初の目標として、デバイスドライバを書いてみました。
現状では何の機能もなく、デバイスドライバとは言えない代物ですが...
これだけではあんまりなので、デバイスファイル(/dev/usb/piece0〜15としました)を読むと、
P/ECEのバージョン情報文字列を返すようにしてみました。

現時点のソースはこちらです。

左はP/ECE一号機。BIOS 1.12です。
右はP/ECE二号機。BIOS 1.14です。
光ってすごく見づらいですけど、何とか読めますよね?
デバイスドライバが入ってることを確認。
一番最初に表示されている、
piece 4272 0 (unused)
です。
ちなみにOSは、Kondara MNU/Linux 2.0です。
一号機を接続!認識されました。
中ほどに表示されている、
Manufacturer: OeRSTED, Inc.
Product: PIECE PME-001
piece.c: piece_probe
です。
続いて二号機を接続!こちもOKです。
中ほどに表示されている、
Manufacturer: OeRSTED, Inc.
Product: PIECE PME-001
piece.c: piece_probe
です。
上のほうに、さっきの一号機のメッセージが残っていますね。
一号機の情報を読み出します。
OS version: 1.12(1/12/3)
と表示されているので、間違いなく一号機です。
次は二号機の情報を読み出します。
OS version: 1.14(1/12/21)
二号機ですね。
上のほうに一号機のメッセージが残っています。
もちろんこのとき、一号機も二号機も接続されたままです。
(一号機を抜いてから二号機を挿したりはしていません。)
まずは、うまく動いたみたいです。 さあ次は、P/ECEとのアプリケーションデータ通信です。 そして、そのデータを全部のP/ECEに配信すれば、P/ECE間通信ができるかな? ...続きます。

nsawa@piece-me.org