そらのうきぶくろ

Blog - Permalink

偽トロキャプチャで画面が乱れないようにする

※ここに書かれている事は憶測を含むため、間違っている可能性があります。

配線等は合っていること前提で考えると、帯域幅が足りていないことが原因。偽トロキャプチャは大量のデータをやりとりしているため。
よって、USB3.0のポートを使えば解決する
また、画面が大きく乱れたり、映像の受信が途中で止まるような場合は、フロントパネルのUSBポートに繋ぐのではなくPC裏のUSBポートを試してみると良い。
配線が合っているかどうか自信がなくても、とりあえず試してみる価値はある、と、思う。

というわけで、一体どういうことなのかまとめてみることに。

PCに繋がっているUSBポートは、USBホストコントローラというものが管理している。
下図のような感じである。

また、USBハブを使用すると下図のようになる。

USB2.0の帯域幅は480Mbpsとなっている。
しかし、この帯域幅はUSBホストコントローラの帯域幅の上限である。
つまり、各USBポートで480Mbps使うことは出来ないのである。

じゃあせっかくポートが余ってても、偽トロキャプチャを使っている限り他の機器は諦めるしかないのかというと、そうでもない。
要するに、USBホストコントローラの帯域を偽トロキャプチャだけで占有してしまえばいいのである。
実は環境によってはUSBホストコントローラが複数存在することもある。
・最初からマザーボードに複数存在する
・USBポート拡張ボードをPCI/PCI-Eスロットに差している
という場合である。
最近のPCなら最初からマザーボードに複数存在する事が多いのかな?よく分からんけど。

それはどうやって確認すればいいか。
コントロールパネル→システム→デバイスマネージャで、デバイスマネージャを開く。

表示→デバイス(接続別)を選び、ツリーから「PCI バス」という項目を探し、開く。

ここで、USB Enhanced Host Controllerと書かれているのが先程のUSBホストコントローラの事である。
これで、各ホストコントローラに接続されている機器が一目で分かる。
もちろん、偽トロキャプチャ(カメレオンUSB FX2)は「Cypress EZ-USB Example Device」である。
この図では、Logicool USB Camera(ウェブカメラ)が同じUSBホストコントローラに接続されていることが分かる。

ではこの状態でウェブカメラを起動するとどうなってしまうのか?

左がウェブカメラのプレビュー起動前、右が起動後。この通り画面が崩壊する。
ウェブカメラに帯域を占有され、DSの画面の信号を送りきれていないということが分かる。
もちろんこれは極端な例である。

ではもう片方のUSBホストコントローラの方に繋いだらどうか?と思い、カメレオンUSBを接続するポートを色々替えてみることにした。
フロントパネルのUSBポートに繋ぐと、もう片方の方に接続されたことになったが……残念ながら、こっちも画面が崩れた。
以前別のPCでも試したが、どうもフロントパネルのUSBポートは帯域幅が小さいらしく、偽トロキャプチャ用には使えない。(環境によって違うと思う)

そこで、USB3.0のポートに繋いでみることにした。
デバイスマネージャでは下図のようになる。

「Cypress EZ-USB Example Device」が、USB 3.0 Host Controllerの下に来ていることが確認できる。
USB3.0の転送速度は5.0Gbpsと圧倒的。
帯域は余裕というわけである。
これでエラーフレームは発生しなくなった。

結論として……。
配線が合っているけど画面が乱れる場合は、USB3.0のポートに繋ぐ。なければ、USB3.0ポートを拡張できるボードを買い、そこにカメレオンUSBを繋ぐ。検索すれば色々出てくる。当然だが、買う前にマザーボードに空きスロットがあるか、物理的に挿せるか、確認しておくこと。
配線が合っているかどうか分からない場合は、他のUSBデバイスを繋いだり外したりしてみて、画面の乱れに変化があれば帯域幅が怪しい。常時乱れているようであれば配線が原因だと思われる。

コンピュータのお話 | 君はコメントしてもいいししなくても良い

偽トロキャプチャで画面が乱れないようにするへのコメント (0)

コメントを書く


You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>