• 締切済み

USBバスパワーの感知について

今、バーコードリーダー(USB接続)を1つのPCに複数台接続し、複数のバーコードリーダーから読み込みができないかを検討しています。 この場合、同時にバーコードリーダーからの入力があった際に、読み取りの文字列が混ざってしまうことが解りました。USB接続のバーコードリーダーに関しては、同時に読み込みを行った場合これを制御するのは難しいようです(できれば最高なのですが…)。 そこで、下記のようなことができないかを検討しています。 U2H-SW4という、ポートごとに電源の供給を制御できるUSBハブがあり、 節電USB・HUB(U2H-SW4)の制御ソフト(http://www.iteclub.net/2011/08/12/u2h-sw4x_control_software/)という、CUIでU2H-SW4を制御できるソフトを見つけました。 ここで、例えばU2H-SW4に4つのバーコードリーダーを接続し、その中の1つに電源が供給(使用された)場合、他の3つのポートをOFFにして、その1つの電源供給が停止した際に(使用が終了)すべてのポートをONにできないかと考えました。その場合、1つがスキャンしている時は、他の3つは切断され、その間スキャンはできませんが、データが混じることはないと考えています。 ただ、その際スピーディーな切り替えが求められるます。 このようなことは可能でしょうか? CUI関係はそれほど馴染みはありません。 ご教授いただければと思います。

みんなの回答

回答No.2

USBの消費電流については、お書きの通り、各機器が「自分は規格上いくらの電流を消費するか」というのをホスト側に伝えますので、それを読んでいるだけです。 ですので、リアルタイムに電流を検出するのは、無理です。 さらにいえば、U2H-SW4 のマニュアルを確認すると 「USB 機器にアクセスしている状態、データ通信中には[Off]にはできません」 ということなので、同時に2台のスキャナが読み取りを始めた場合(文字が混ざるというのはそういう状況です)消費電流の増加を検出できたとしても、もうひとつのポートはOFFできないということになります。

回答No.1

直接の回答ではありませんが。 USB 接続タイプの、バーコードリーダーには、「キーボードエミュレーション(HID タイプ)」と、「仮想COMタイプ」のものがあります。(切り替えが可能なものもあります) キーボードエミュレーションのものは、キーボードを複数台つないだのと同じ動きをしますので、信号の分離は難しいですが、仮想COMタイプのものは、個別に制御できますので、データが混ざるようなことはないです。 (ただし、データの読み取り部分のソフトが必要です。難易度としては高くありません) たとえば、 http://www.j-itecs.co.jp/xenon1900.html のUSBタイプは切り替えできそうです。 そういうタイプの物を使用するというのも考え方のひとつだと思います。 あと、バーコードリーダーが、バーコードを読み取って信号を返すには、正しくUSB接続されている必要があります(もちろん給電も) なので、「使用されたら給電される」訳ではありませんから、USBの電源制御をするのであれば、「順次ポートをONにする」という方法しかないと思います。

rockonsand2000
質問者

補足

ご教授ありがとうございます。 仮想COMタイプのUSBに関しては、これができればよいのですが、価格が高いため難しいです。 給電に関してですが、文章がわかりにくく申し訳ありませんでしたが、 USB接続時には、いくらかの電力が供給されているものと思われます。ただし、スキャン実行にには、読み込みを行うため、待機状態よりも、電力を多く使用すると考えられます。 そこで、リアルタイムで、各ポートの電力の使用を感知できれば、あるポートの電力の供給量の上昇を感知した時点で、他のポートの供給を強制的に切断し、電力の使用量が待機状態に戻った時点で、すべてのポートに対して、電力の供給を開始するといった意味です。 USBの電力量を確認できるソフトUSBDeviewといったものがあり、試してみたのですが、これば供給量というより、規格上の使用量といったニュアンスのように思えます。 わかりにくく申し訳ありません。

関連するQ&A