私はUSBで新しいです。USBでCDCとHIDクラスを同時に使用できますか?
ポインティングデバイスをPICマイクロコントローラに実装したいと考えています。 USBは、ポインティングデバイスとホストとの間の通信に使用される。
私は、次の操作を実行したいと思います:
デバイスはすぐにプラグインした後、簡単なマウスとして機能することができるように、ホストのHIDクラスドライバにデルタを送信します。
CDCクラスを使用してホストに他のデータを送信し、ユーザー空間上で実行されるアプリケーションによって後処理されるようにします。
私の主な質問は以下のとおりです。
これを実施するための最良の方法は何ですか? 2つの異なるインタフェースを定義する必要がありますか?
定義する必要がある記述子は?
私は、次のことを考えています:
Device descriptor
Config descriptor
Interface 0 descriptor
Functional descriptors
EP descriptor
Interface 1 descriptor (CDC)
EP descriptors
Interface 2 descriptor (HID)
EP descriptors
どのように私は、インターフェイス0の記述子の後に行く「機能記述子」を定義する必要がありますか?インターフェイス1と2をインターフェイス0のスレーブとして定義する必要がありますか?
あなたは、複合デバイスを実装する必要があります。おそらく、Arduino Leonardoを入手し、Arduino Mouseライブラリを使用してその動作を確認するとよいでしょう。これは、CDCシリアルポートとマウスを同時に実装します。 Linuxコンピュータ上で 'lsusb'を使って、そのディスクリプタを詳細にリストすることができます。 –