2010年11月11日木曜日

USB転送方式ってなんだ?

昨今は、マザーボード付属のオンボードサウンドやPCIスロットに差し込むサウンドボードではなく、USBからの音声出力が主流になっている。そして、その転送方式が話題に上るが、よくわからないのでまとめてみた。


●USBの転送方式
USBでは、PCを「ホスト(親機)」、DAC等のデバイスを「ターゲーット(子機)」と呼ぶ。USBの通信は、ホストがターゲットにポーリング(問い合わせ)を投げて、ターゲットがこれに答える形で行われる(半二重転送)。

その際、ターゲット側に「エンドポイント」というFIFOバッファメモリを用意し、ターゲット側のUSBコントローラーが、エンドポイントを通して、ホスト側からのポーリングや応答処理に対応するようになっている。

USBのホストとターゲット間のデータ転送は、基本的にこのエンドポイントを使ったホストとターゲット間のやり取りだけ。すべての通信はホストが制御しており、ターゲット側が勝手に通信を開始することはできない。

●4つの転送方式
USB転送方式には4種類がある。
①コントロール転送
②バルク転送
③インタラプト転送
④アイソクロナス転送

*Audio Device Document 1.0
http://www.usb.org/developers/devclass_docs/

◆①コントロール転送
コントロール転送は、ホットプラグ等の再コンフィグレーションに必要な情報のやりとりなど、デバイスの制御用に使われる転送方式。デバイスの接続時にデバイスを認識するために使用されるので、全てのUSBデバイスがサポートしなければならない。

◆②バルク転送
バルク転送は、リアルタイム性は重要でないが精度が重要となるプリンタ、スキャナ、大容量ストレージなどのアプリケーション向けの転送方式。時間の制約がない大量データを正確に伝えるのに適した非同期の転送方式。他の転送方式の空き時間をすべて使用でき、高信頼性のデータ転送が可能だが、タイムシェアリングの優先度が低く遅延が発生する。プリンタスキャナ、デジカメ、フラッシュメモリー、有線LAN、無線LAN等の画像入出力、ストレージ、ネットワーク系で使用される。データに誤りがあった場合やFIFOに空きがない場合は、再送される。

◆③インタラプト転送
インタラプト転送は、ホストまたはデバイスから定期的にデータを送る必要があるマウス、キーボード、ゲーム・パッドなどのデバイス向けの転送方式。少量のデータの転送に用いられる転送方式。ただし、インタラプトと言っても、デバイス側から自発的に転送が行われるのではなく、ホスト側からのポーリングで転送が行われる。
*REMのFireFaceUCでは、Windows用にこのインタラプト方式が使われている。RMEによる検証の中で、この方式がもっとも良かったとのことである。
●FireFaceUC USBテクノロジー
http://www.synthax.jp/usb-implementation.html

◆④アイソクロナス転送
アイソクロナス転送は、リアルタイム性重視の転送方式。一定時間あたりの最低データ転送量が保証されるので、データが途切れることなく転送される。動画や音声データのようなリアルタイム性を必要とするデータ転送に適している。ただし転送に失敗しても再送は行われない。「アイソクロナス」とは「同時性」「等時性」などといった意味である。
アイソクロナス転送は、さらに、クロックの使い方の違いで「シンクロナスモード」「アダプティブモード」と「アシンクロナスモード」に分類される。
*音声転送には、ほとんどこの方式が使われる。

④-1 同期モード
同期モードは、デバイス側がSOFと同期したクロックでサンプリングする。

④-2 アダプティブモード
ほとんどのUSB音楽転送に使われている方式。この方式では、PC側はデバイス側に向けて、常に同じ速度で決まった量の音楽データを送り続け、デバイス側はこれを受けるしかなく、再生に必要なクロックもPC側のクロックにデバイス側のPLL回路が周波数を変動させて合わせる必要に迫られる。この方式では、デバイス側が固定のクロックを使用することはできず、デバイス側の水晶発振器が大きくジッターを発生させることが問題になっている。

④-3 アシンクロナスモード
アダプティブ方式が、PC側が一方的にデータを転送してくるのに対し、アシンクロナス方式は、「フィードバック」と呼ばれる逆方向のエンドポイントを別途用意し、PC側にデータの増減をコントロールする返答を返すことで、デバイス側のエンドポイントが常に一定のデータ量に保たれるように制御する方式。これにより、PC側のクロックを使わず、デバイス側の固定クロックを使うことが可能となり、水晶発振器が発するジッターを少なく抑えることが可能となった。

ただし、制御プログラムの開発が難しく、ほとんど使われない方式だったが、元バーブラウンの技術者であるWavelength社社長のJ.Gordon Rankin氏がこの方式に注目しプログラムの開発に成功した。AyreはGordon氏とライセンス契約を交わしGordon氏のプログラムを使っている。ラトックやフェーズテックは独自開発。

●USBタイムシェアの優先順位
(優先順位が高いほど他に優先して転送ができる)
1 アイソクロナス転送
2 インタラプト転送
3 バルク転送、コントロール転送

●USBの規格と転送速度
USB1.1(ロースピード) 1.5Mbps
USB1.1(フルスピード) 12Mbps 標準ドライバー、24bit/96kHz
USB2.0(ハイスピード) 480Mbps 独自ドライバー、24bit/192kHz
USB3.0(スーパースピード)5Gbps

現在のオーディオ用の主流は、USB1.1(フルスピード)。独自に開発しなくても、USBインターフェースチップとOS標準のUSBドライバーで対応できるので、USB技術がないメーカーでも採用できる。ただし、24bit/96kHzまでしか転送できない。

しかし、最近は、意欲的で先端的なメーカーが、独自ドライバーを開発してUSB2.0に対応し、24bit/192kHzの転送を実現している。

0 件のコメント:

コメントを投稿