2011-08-23 8 views
10

私は、シンプルで独自仕様のインターフェイスとカスタムLinuxドライバでLinuxと通信するUSB​​デバイスを開発しました。私の目標は、Windowsドライバを作成せずにWindowsに移植することです。私がしたいことは、WindowsのCOMポートのように見えるウィンドウ用のオープンソースまたはinbuiltクラスドライバを見つけることです。次に、仮想COMポートが期待するプロトコルとディスクリプタに合わせて組み込みソフトウェアを調整します。カスタムUSBデバイスをWindowsでCOMポートとして表示するにはどうしたらいいですか?

私のデバイスをWindowsマシンに接続すると、比較的高速のCOMポートが表示され、Windowsドライバを開発する必要があります。

私はUSB CDC(通信デバイスクラス)のドキュメントを見ていて有望そうですが、どのサブインターフェイスがCOMポートとして表示されるように使用するのが最適かはわかりません。

これまで誰もこのような作業をしていたことがありますか? は、具体的に:

  1. は窓に「内蔵の」仮想COMドライバはありますか私は、サードパーティ製のドライバが必要になります。
  2. シンプルなRS232エミュレーションにはどのCDCサブクラスを使用する必要がありますか(モデムのATコマンドなどは必要ありません)
  3. 私がしようとしていることを行うには、より良い選択肢がありますか?

おかげ

答えて

10

は、あなたがやりたいだろうWindowsに内蔵のUSB - シリアルドライバがあります。それが呼び出されるusbser.sys:

http://support.microsoft.com/kb/837637

あなたはINFファイルを作成し、ユーザーにそれを配布する必要がありますが、それは、テキストのわずか数キロバイトであるので、それはあまりにも難しいことではないだろうとのことができます。オンラインで例を見つける。

私はこのドライバの偉大なドキュメントがMicrosoftによって認識されていないので、Pololu Wixelのような、それを使用する他のデバイスを見つけて、それらが何をしたのかを調べることになります。

ここ

は、我々が使用するデバイスディスクリプタと、我々が実装しなければならなかった特殊な制御tranfersです: https://github.com/pololu/wixel-sdk/blob/master/libraries/src/usb_cdc_acm/usb_cdc_acm.c

あなたがソフトウェアをダウンロードし、ドライバのフォルダに見ることで、私たちのINFファイル、wixel_serial.infを見ることができます: http://www.pololu.com/docs/0J46/3.a (あなたには必要ない他のファイルもあります)

同じドライバを使用しているため、Arduino Unoも見ることができます。

あなたがしていることは、あなたの製品に当社のUSBベンダーIDを使用しないでください!あなたは自分自身を取得する必要があります。

更新プログラム: Windows 10には、Windowsに付属の新しいusbser.infドライバのため、INFファイルは必要ありません。

1

あなたは簡単に開発、プロトタイプやテストのためにhttp://www.prolific.com.tw/eng/products.asp?id=59

ようhttp://www.ftdichip.com/Products/ICs/FT232R.htmのようなFTDIのUSBチップや多産にそれをインタフェースすることができUARTを使用している場合、私はこれらの敷設周りhttp://www.pololu.com/catalog/product/391

の半ダースを持っていますAVRと8051マイクロのUARTピンに直接接続します。

+0

私は実際には別の方法をとっていますが、私はすでにマイクロのUSBインターフェイスを持っていて、ホストPCのシリアルUARTに接続したいです – CodePoet

+0

次に私はおそらくhttp://www.pololu.com/catalog/product/126をマイクロに接続してください。もう1つのオプションは、Vinculumとシリアルケーブルです。これは、ホストデバイスインタフェースが必要なためです。 – Jeff

関連する問題