トラ技78KマイコンとAdesの接続
トラ技78KマイコンをWillcomのPHS「AdEs(Advanced W-ZERO3 es)」に接続することに成功しました。
ようやく、最初のパケットの送受信ができました。
WindowsCE(Mobileも含む)は、USBポートに何かが挿入されると、そのUSBデバイスのVIDとPIDを取得し、レジストリを検索してUSBデバイスドライバを探します。
候補となるデバイスドライバがみつかると、USBDeviceAttach関数が呼ばれます。
USBDeviceAttach関数はActivateDevice関数を呼んでデバイスドライバをシステムに登録する処理を行います。
CEのデバイスドライバはユーザモードで作ることができるので、ダイアログを出したり何でもやりたい放題です。ていうか、ただのDLLです。なので、最初のUSBDeviceAttachの中で、VendorRequestやBulkTransferを実行して、トラ技78Kマイコンと通信してみたというわけです。
とりあえず、AdEsと78Kマイコンがつながることがわかりました。
あとはCreateFileやReadFile、WriteFileなどの関数を作ればそれなりにデバイスドライバらしくなりそうです。
ETには間に合わないかもしれません。
今回のデバイスドライバを作成するにあたって参考になった資料とWebページを挙げておきます。
(1) Interface 2007年7月号 Windows Embedded CE用USBモデムドライバの製作(前編)
と、上記のプログラム(コードギア株式会社のWebサイト内)。
WindowsCE用のUSBデバイスドライバのしくみについて解説されています。
とても参考になるソースコードも公開されています。
(2) ゾロさんの「進め!モゥ~ばいるコンピューター」内の「USB Device Driver」。
WindowsCE用のUSBデバイスドライバがPnPで認識されてシステムに組み込まれる過程の解説が秀逸です。とても参考になるソースコードも公開されています。
(3) ブログ「なんでも作っちゃう、かも。」におけるトランジスタ技術8月号USBマイコン基板を試す(2)。の記事。
トラ技BIOSの起動時のパケットを解析されています。
(4) bird.dip.jpさんのブログにおけるトラ技付録 78K0 マイコン (2) の記事。
同じく、トラ技BIOSの起動時のパケットを解析されていて、Perlで動くサンプルコードもあります。
貴重な情報を公開していただいた皆様に感謝いたします。
なお、トラ技78KマイコンのOpenするためのVendorRequestは、0x03,0x01のコマンドだけでよいようです。
それ以外のDTRとかはやらなくても通信できるようでした。
このドライバがまともに動くようになったら、公開予定です。
| 固定リンク
コメント