USBの+信号ピンに数ボルトの直流電圧かけた場合、それをプログラムで感知するWindowsAPI関数はあるでしょうか?信号のやり取りは別にしないのですが・・・(MFCは使いません、できればDirectXあたり)
USBの列挙とか、GET何とかでやりたいのですが・・・
ご教授ください。
USBの信号検知について
Re:USBの信号検知について
おそらく、ユーザーサイドから検出することはできないと思います。
まず、USB の D+ には外部から電圧をかけてはいけません。
5V(通常、USB の電源)に対して、 1.5kΩの抵抗でプルアップします。
これによって、OS 側は、USB 機器が(ついでに言えば、High Speed で)接続されたことを認識します。
ですから、OS のどこかで、D+ が 1.5kΩでプルアップされたことは認識できていると思いますが。
ユーザーサイドで使うのは、その後、デバイスドライバ経由で、USB デバイスとして登録が終わった後のことになります。
まず、USB の D+ には外部から電圧をかけてはいけません。
5V(通常、USB の電源)に対して、 1.5kΩの抵抗でプルアップします。
これによって、OS 側は、USB 機器が(ついでに言えば、High Speed で)接続されたことを認識します。
ですから、OS のどこかで、D+ が 1.5kΩでプルアップされたことは認識できていると思いますが。
ユーザーサイドで使うのは、その後、デバイスドライバ経由で、USB デバイスとして登録が終わった後のことになります。
Re:USBの信号検知について
なぎ 様
回答ありがとうございます・・・
では、自前のUSBドライバーを開発することになるでしょうか?
汎用性のある又はD+端子を認識する代替(同等)のドライバーなどありましたら
ご紹介ください。
C言語からは、かなり離れた質問で恐縮です。
回答ありがとうございます・・・
では、自前のUSBドライバーを開発することになるでしょうか?
汎用性のある又はD+端子を認識する代替(同等)のドライバーなどありましたら
ご紹介ください。
C言語からは、かなり離れた質問で恐縮です。
Re:USBの信号検知について
いずれにしても、D+ の状態を直接知ることはできないはずです。
USB ドライバへの接続までは OS がやってしまいますし、そのドライバを接続するためには、USB デバイスとして正しくデバイスの開始手続きを(USB デバイス側が)行う必要があります。
このために、少なくとも、ベンダーID(USB デバイスメーカーの識別)と、プロダクトID(具体的なデバイスの識別)が定義されていて、OSに通知される必要があります。
汎用的に使える USB のデバイスドライバとしては、
http://www.otto.to/~kasiwano/newpage17.htm
で紹介されているものが使えそうです。
USB ドライバへの接続までは OS がやってしまいますし、そのドライバを接続するためには、USB デバイスとして正しくデバイスの開始手続きを(USB デバイス側が)行う必要があります。
このために、少なくとも、ベンダーID(USB デバイスメーカーの識別)と、プロダクトID(具体的なデバイスの識別)が定義されていて、OSに通知される必要があります。
汎用的に使える USB のデバイスドライバとしては、
http://www.otto.to/~kasiwano/newpage17.htm
で紹介されているものが使えそうです。
Re:USBの信号検知について
なぎ様
とにかく、貴重な情報ありがとうございます。
USBのD+端子にTTLレベルの信号が印加されたかどうかの有無、
それだけの目的ではつかえそうです、今は想像でしかものが言えませんが
自分のものにするには時間がかかりそうです。
とにかくお世話になりました。
とにかく、貴重な情報ありがとうございます。
USBのD+端子にTTLレベルの信号が印加されたかどうかの有無、
それだけの目的ではつかえそうです、今は想像でしかものが言えませんが
自分のものにするには時間がかかりそうです。
とにかくお世話になりました。
Re:USBの信号検知について
>デバイスの開始手続きを(USB デバイス側が)行う必要があります。
>このために、少なくとも、ベンダーID(USB デバイスメーカーの識別)と、プロダクトID
ご指示いただいた、この件ですが・・・
ご指摘通り個人レベルではIDをロムることはできないようです。
市販の最も安価なUSBを分解する事にします。
ありがとうございました。
>このために、少なくとも、ベンダーID(USB デバイスメーカーの識別)と、プロダクトID
ご指示いただいた、この件ですが・・・
ご指摘通り個人レベルではIDをロムることはできないようです。
市販の最も安価なUSBを分解する事にします。
ありがとうございました。