- 締切済み
1つのデバイスにCDCクラスとHIDクラス実装できますか?
当方PIC18F4550を実験台に色々なUSB機器を作ろうと 楽しんでおります。 開発環境はWindowsXPでMPLAB IDE v8.43を利用しております。 コンパイラはC18を利用しております。 MicrochipよりMicrochip Application Libraries v2009-11-18を ダウンロードしてきてCDCやHIDをPIC18F4550へ秋月のライターを使って プログラミングしてみた所、2つとも正常に動かすことができました。 そこで、この2つのクラスを組み合わせて対話式キーボード(仮称)を 作ってみたくなりました。 概要は、PC上で動いているWindowsアプリケーション(C#)からUSB通信(CDCクラス) を利用して数値『1』を送信するとPIC18F4550はHIDクラスを利用して 『しばらくおまちください。』とPC上のメモ帳なりメッセンジャーなりに タイピングするようなデバイスを作りたいと思っております。 CDCクラスの送受信やHIDクラスのキー送信は実験済みで利用できておりますが、 この2つ1つのデバイスにプログラミングする所でつまずいてしまいました。 C#についても開発経験があり問題ありません。 1つのデバイスにCDCとHIDを入れるとデバイスマネージャー上では どうなるの?などなど・・・ 疑問が山済みです。 どなたか、この2つのクラスを1つのデバイスにプログラミングする方法や ヒントなどお持ちでしたら是非ご教授ください。 よろしくお願いいたします。
- みんなの回答 (7)
- 専門家の回答
みんなの回答
- SnowShower
- ベストアンサー率40% (140/348)
回答No.7
- SnowShower
- ベストアンサー率40% (140/348)
回答No.6
- SnowShower
- ベストアンサー率40% (140/348)
回答No.5
- SnowShower
- ベストアンサー率40% (140/348)
回答No.4
- SnowShower
- ベストアンサー率40% (140/348)
回答No.3
- SnowShower
- ベストアンサー率40% (140/348)
回答No.2
- SnowShower
- ベストアンサー率40% (140/348)
回答No.1
補足
ご回答ありがとうございます。 >軽く眺めましたが、CDCやHIDのソースは何を基準に選びましたか? >「USB Device - Composite - HID + MSD」のように、 >最初からマルチファンクション用の構成もいくつかありましたよ? ●おぉ!本当だ!! 色々見てみないとだめですね。 抜け出せない所にはまると視野が狭くなってしまって・・・ 早速3種類のComposite構成(HID+MSD / MSD+CDC / WinUSB+MSD)の 中からMSD+CDCを使ってみました。 Configuration Descriptorの中にInterface Association Descriptor という物がありましてこれが恐らく要かな? MSDの部分をHIDに変えて何度かビルドを試行錯誤してhexができましたが やはりWindowsXPが認識してくれません。 正しく言うと、COMポートは正常に認識されて付属のWindowsアプリ からConnectできました。Send Dataしても帰ってきませんがこの辺は 色々消して壊れている模様です。 問題はHIDです。 確かにヒューマンインターフェイスデバイスに認識されました。(2つ認識された!かなりの進歩?嬉) しかし、ポップアップで『ハードウェアのインストール中に・・・』となり 正常に稼動しません。これはやはり Device Descriptor Configuration Descriptor Interface Descriptor Endpoint Descriptor Interface Association Descriptor ここの記述が間違っているからなのでしょうか? >サンプルの構成からだと、「はい」となります。 ●だいぶ確信に近づいてきた気がします。 ではよろしくお願いいたします。