トップページ⇒tech
85コメント27KB

USBプログラミング入門

■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん2006/11/07(火) 21:07:23
VC6.0でUSB機器を制御するプログラムを作成しないと
駄目なんですが、良い参考文献はないでしょうか?

現在ネックになっているのは同一IDを同時に制御する
方法です。どうやって振り分けるのかが分かりません。
0035デフォルトの名無しさん2009/04/20(月) 00:22:39
なんか哀れなお馬鹿さんだな。
まあこういう可愛くない馬鹿を見ると追い込みを掛けたくなる俺も病気だなw

>>34
まあ罵倒はいいから、弁解なり反論なりをしてくれない?
生のuartって何?commドライバって何?

既に示したとおり、理屈上も現に存在する製品としても[CPU]⇔[USB コントローラ]
間のインターフェイスと[USBデバイス]⇔[PC]間のインターフェイスに直接の関連はなく、
前者がUARTだからといって後者がVCPである必要は何もない事実と、>>29のレスが
どう整合するの?

もちろんできないならいいよ無理しなくても。
0036 ◆0uxK91AxII 2009/04/20(月) 03:01:59
見ている第三者が恥ずかしいわ。
0037デフォルトの名無しさん2009/04/20(月) 03:54:46
自称第三者はいいよw
0038デフォルトの名無しさん2009/04/20(月) 06:28:21
> 前者がUARTだからといって後者がVCPである必要は何もない事実

別にそれが間違ってるなんて書いてないだろ。
わざわざ指摘するほどのことかって言ってるだけ。

ちょっと冷静になった方がいいぞ。
0039デフォルトの名無しさん2009/04/20(月) 06:36:55
第三者だけど煽っといて冷静になれはねぇな。
0040a36 ◆K0BqlCB3.k 2009/04/20(月) 11:25:23
俺はそんな細かいことは気にしないぜ
ここは神経質なスレだな
0041デフォルトの名無しさん2009/04/25(土) 15:39:27
Windows で PC に接続している USB 機器を列挙してデバイス、コンフィギュレーション、
インターフェース、エンドポイントなんかのディスクリプタ情報を取りたいんですけど、
SP_DEVINFO_DATA からどうすればそれらを取得できますか?

HDEVINFO hDevInfo = SetupDiGetClassDevs(
  NULL, "USB", NULL, DIGCF_ALLCLASSES | DIGCF_PRESENT);
while(SetupDiEnumDeviceInfo(hDevInfo, i, &devInfoData)){
  /* ??? */
}
0042デフォルトの名無しさん2009/05/02(土) 10:30:30
何で MaxPower だけ b 付いてないの?
0043デフォルトの名無しさん2009/05/06(水) 15:45:22
一番メジャーなオープンソース汎用 USB ドライバって何ですか?
0044デフォルトの名無しさん2009/10/13(火) 17:31:53
libusb-win32
のinfファイルって、
何で
>Class = LibUsbDevices
なの?
0045デフォルトの名無しさん2009/10/14(水) 19:32:09
ClassGUID
ってどうやって番号発行するの?
0046デフォルトの名無しさん2009/10/14(水) 19:58:29
デバイス側の作り方も知りたい
0047デフォルトの名無しさん2009/10/15(木) 14:53:39
Arduinoいいお
0048デフォルトの名無しさん2010/05/09(日) 00:24:10
このスレで質問してもいいのかな

自作のHIDキーボードをPCに繋いで、
Windowsのデバイスマネージャの該当プロパティを見ると、
電源管理タブが表示されず
「このデバイスで、コンピュータのスタンバイ状態を解除できるようにする」
のチェックができないんだけど、
何が足りないのかな。
一応、デスクリプタのattributesの
remote wakeupフラグは立ててるんだけど。
0049デフォルトの名無しさん2010/05/09(日) 00:39:27
>>48
PC側のBIOS設定で禁止されてるとかね。
あるいは、デバイスがバスパワーで(キーボードだからたぶんそうだと思うけど)、
かつBIOSの設定で省電力モード時USBに給電しない設定になっている(というより、
デフォルトでそうなってるマシンが多い気がする)とか。

まあ電気・電子板で聞いた方がいいのかもね。
半年以上休眠してるスレで質問してもw
0050デフォルトの名無しさん2010/05/09(日) 01:18:39
ありがとうございます。
とりあえず会社のマシンとかで試してみます。
0051デフォルトの名無しさん2010/05/09(日) 03:31:51
>>49
試しに他のPCでやってみたら出てきました。
デスクリプタの設定自体は正しかったようです。
ただ、実際に復帰するにはホストデバイス間の通信と、
デバイスの信号や電源周りを含め処理しないとだめらしく、
想像より敷居が高いと判りました。
まともなデバッグ環境がないと実装は無理そうです。
0052ぷれ2010/05/13(木) 10:10:05
始めまして、今、マスストレージに対応していないUSBデバイスを
マスストレージに対応しているかのように見せるようなドライバを作成したい
と思っています。(USBを接続するとドライブのように見えるイメージです)
何か参考になりそうなサンプル、
ドキュメント等ご存知でしたら教えてくれませんか?


0053デフォルトの名無しさん2010/05/13(木) 14:11:11
V-USBいいお
0054ぷれ2010/05/14(金) 14:08:31
>>53 ありがとうございます。
もしかしてLinuxのドライバですよね。

環境書いていなくてすいません。
Windows WDMで書きたいのです。。。。

0055デフォルトの名無しさん2010/05/14(金) 14:17:20
あなたへのレスではなかったのですが・・・
0056ぷれ2010/05/14(金) 15:38:59
>>55 そうでしたかすいません。
0057デフォルトの名無しさん2010/05/25(火) 08:56:35
分け合ってUSBを延長する必要があります。
LANケーブルを使用した延長器でトライしたのですが線長が長くなり通信が安定しません。

アイオーデータのETG-DS/US+無線LANを使用してnet.USB経由にしようかと思いましたが、
最終的な接続先がマイコンのため、net.USBが使用できません。


パソコンでUSBの中継をするようなツールご存知ないでしょうか?


ETG-DS/US → Ethernet → PC(net.USB) → マイコンのUSB I/F
                    -----------

仮想USBであるnet.USBからUSB物理ポートへデータを吐き出す…。
いわば、USBのブリッジみたいなツールがほしいのですが。

0058デフォルトの名無しさん2010/05/25(火) 09:14:16
ないよ
多分LAN対応したマイコン同士を繋いだ方が早い

USB → マイコン1→ 無線LAN → マイコン2
0059572010/05/25(火) 09:26:58
>>58

ありがとうございます。

やはり、ないですかぁ。

今回、図でいうとマイコン2が、購入品のため手を加えられません。
0060デフォルトの名無しさん2010/05/25(火) 09:32:02
PCに挿せるような環境なら、そのPCを遠隔から操作すりゃいいんじゃない?
0061sage2010/05/25(火) 09:57:58
「PC」じゃなくて「マイコン」って書いてるんだから分ってやれよ。
> LANケーブルを使用した延長器でトライしたのですが線長が長くなり通信が安定しません。
コレガの安っちいのじゃなくてBlackBoxの奴なら行けるかも。
0062572010/05/25(火) 10:00:43
もともとUSBで直接PCに接続している信号を、置き換えを行うためマイコンで擬似信号を付加して、
PCに戻す装置なので、ハードが必要となります。なので、PC上に載せられないのです。
0063デフォルトの名無しさん2010/05/25(火) 10:00:53
そもそもPCのUSBってデバイス側にはなれないと思うよ
マイコン2がいじれないなら
USB → マイコン3 → 無線 → マイコン1 → USB → マイコン2
とか
0064デフォルトの名無しさん2010/05/25(火) 10:03:56
Arduino使えばいいよ
0065572010/05/25(火) 10:08:31
やはり、デバイス側になれないということでソフト的に何とかしようというのは、無理っぽいですね。
ありがとうございます。
0066デフォルトの名無しさん2010/05/25(火) 10:34:17
ああ、マイコンがUSBホストなのかw
最終的な接続先がマイコンとか矢印の向きで、マイコンがデバイス側なのかと思ってた。
0067デフォルトの名無しさん2010/05/25(火) 11:40:16
Dだけ光にすればいいじゃん?
長さと金額にもよるだろうけど
0068デフォルトの名無しさん2010/05/25(火) 19:04:39
>>57

- USBはルートハブを入れて6段まで接続可能
- USBハブはレピータでもある
- ノード間のケーブル長は規格上は5mまで(実際は高品質のケーブルならもっといける)

以上は知ってるんだよね?
つまり、ごく普通に30mは引き回せるってことだけど。

あと、まんまUSBの物理層を無線にするものも売ってるよ。
0069デフォルトの名無しさん2010/05/26(水) 08:00:03
試しにUSBロングケーブルでぐぐったら20mとかいうのが出てきた。
0070デフォルトの名無しさん2010/05/27(木) 10:46:19
オシロで先頭と数十mぐらい引き伸ばした先を計ったら
劣化して見えるのかな
D+D-両端にバッファ(74VHCU04とか)付けるとかで改善しない?
0071デフォルトの名無しさん2010/05/27(木) 17:27:04
I2Cと似た半二重だからバッファかますの無理じゃね?
0072デフォルトの名無しさん2010/05/27(木) 20:45:15
単純に双方向にするだけだから、理論的には不可能じゃないけど(現にI2Cの場合は既製品であるし)
USBの周波数に追従するバッファってどんだけーって気はする。
差動だけにタイミング余計シビアだよな

というか、だから普通にハブを使っとけと。
0073デフォルトの名無しさん2010/05/27(木) 23:11:44
そうだね。ハブ中継なら遅延は起きても劣化は無視できる
0074デフォルトの名無しさん2010/05/28(金) 06:08:20
信号側の電圧上げてやればいいんじゃね?
0075デフォルトの名無しさん2010/05/28(金) 20:58:11
電力伝送してるわけじゃないから電圧とかそういう問題じゃないのw
0076デフォルトの名無しさん2010/05/29(土) 00:09:31
>>75
無知すぎw
0077デフォルトの名無しさん2010/05/29(土) 00:17:00
馬鹿かコイツ。
じゃあ仮に意味があるとして、どうやって電圧上げるんだよ。
0078デフォルトの名無しさん2010/05/29(土) 15:54:20
教えてくんかよ
0079デフォルトの名無しさん2010/05/31(月) 22:44:10
Through
0080デフォルトの名無しさん2010/09/26(日) 10:09:39
亀レスだけど、LANケーブル使うやつで安定しないのは
PCの電力供給能力が低いからじゃない?
ハブ多段につなげる場合でも、
電力供給用にセルフパワーハブ入れるのは必須な感じ。
0081デフォルトの名無しさん2010/09/26(日) 16:34:52
3ヵ月後にレスされても見てないだろうな
0082デフォルトの名無しさん2011/02/28(月) 22:18:01.85
ほ
0083デフォルトの名無しさん2011/03/07(月) 01:57:43.36
usb over tcp/ip 作ってみたいんだけど、
どっかにusbの規格書とか、分かりやすいusbドライバのソースとか落ちてない?
0084デフォルトの名無しさん2011/03/07(月) 08:41:40.68
規格書ならusb.orgにあるよ
WindowsならWDK落としてくればサンプルソースついてる
0085デフォルトの名無しさん2011/03/08(火) 19:15:09.67
>>84
サンクス
ちょっと調べてみる
■ このスレッドは過去ログ倉庫に格納されています