WindowsMobileから使いたい

平成20年11月23日

Windows Mobile とは

    PHSや携帯電話に搭載されているWindows CEの一種です。

    Windows CEからさらに機能を削ったものです。アプリケーションやデバイスドライバは、Windows CE用に開発したものが使える場合が多いです。

Windows Mobile のデバイスドライバ

    Windows Mobileのデバイスドライバは、Windows CEのデバイスドライバと一緒です。

    Windows CEのデバイスドライバはただのDLLです。デバイスドライバはカーネルモードで動くものとユーザモードで動くものがあり、どちらも同じことができます。ユーザモードでのドライバはメッセージダイアログを開いたりするのが気軽にできるので、ぜひともユーザモードで作りましょう。

USBにトラ技マイコンが挿入されると・・

    USBに何かが挿入されると、OSはそのベンダIDとプロダクトIDを調べます。

    トラ技78Kマイコンの場合は、ベンダID 0x0409、プロダクトID 0xfffdが得られます。

    そのIDを10進で表記し、レジストリのHKEY_LOCAL_MACHINE\Drivers\USB\LoadClients\ 1033_65533\Default\Default\trgが調べられます。

    そして、そこに書かれているDLL(デバイスドライバ)が呼び出されます。なお、デバイスドライバのDLLは\Windowsフォルダに あらかじめ入れておけばよいようです。

    次に、デバイスマネージャがtrg.dll中のUSBDeviceAttach関数をコールし、ユーザが作ったデバイスドライバが動き始めます。

デバイスドライバの初期化

    USBDeviceAttach関数の中では、次のような処理を行っています。

      @ [HKEY_LOCAL_MACHINE\Drivers\USB\ClientDrivers\Toragi78k]にDLLを登録する

      A ActivateDevice関数をコールする。

    ClientDriversレジストリへの登録はここまでのいずれかのステップで行っておけばよいようです。

    ActivateDevice関数をコールすると、デバイスドライバがレジストリの[HKEY_LOCAL_MACHINE\ Drivers\Active\数値]に登録され、稼動中となります。そして、TRG_Init()が呼び出されます。

    CreateFileでデバイスドライバを呼び出せるようになります。

     

トラ技78Kマイコンの通信プロトコルは?

    正直なところ、まだよくわかっていません。

    ベンダリクエストで03 01を送ればポートがオープンし、Endpoint1にBulkOutで文字列送信、Endpoint2からBulkInで文字列受信ということはわかったのですが、受信リクエストを出すタイミングがよくわからないので、まだその先へ進んでいません。

サンプルプログラム

    サンプルプログラムには、

    ・トラ技78Kマイコン用ドライバ(暫定)

    ・ラッパDLL

    ・サンプルアプリケーション

    ・レジストリ

    が入っています。(ダウンロードはこちら

    trg.dllがデバイスドライバです。これを\Windowsディレクトリに入れ、レジストリファイルの内容をレジストリに追加してください。いずれインストーラを作ります。

    ラッパDLL(TRG78K.dll)は、受信スレッドを起動するのと、C#からアクセスしやすくするためのものです。サンプルアプリケーションと同じディレクトリに入れてください。

    サンプルアプリケーション(Trg78kSample.exe)は、トラ技BIOSと通信するアプリケーションです。

    ソースコードはトップページからダウンロードできます。 

chickens_back.gif 戻る

 Copyright(C) 2008 NAITOU Ryuji. All rights reserved. 無断転載を禁ず