2020年6月15日月曜日

PCオーディオの基本-1.USB伝送

PCオーディオは、PCからUSB伝送によって楽曲データがDACに伝送されます。

今から10年ほど前に、これまでのPC側が全てを制御するアダプティブ方式から、ターゲット側(DDC等)がPCを制御するアイソクロナス方式のアシンクロナスモードが開発され、ジッターを排除し、クロックにターゲット側の高精度の水晶発振器を使うことが出来るようになったことで、USB伝送がようやくオーディオ用として認められるようになったことが画期的でした。


以下は「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の転送を実現している。

2 件のコメント:

  1. asoyagiさん、ここではご無沙汰です。

    この記事は2010年11月に纏められていたのですね。素晴らしい。
    只今、diyAudioを使って、SMPDを海外に普及させようとしています。しかし、場所が悪かった(^^;;;。ハード強者たちが集まる場なので、ソフト屋の作者(パパリウスさん)とその一派で国際的大論争になっています。
    asoyagiさんの記事を読むと、結局、この論争はラズパイ-i2s派(日本-ドイツ)とintel-usb派(チェコ-ドイツ)の争いとよく分かりました(あと、中立派もいて、これはスウェーデン)。論争は、「貧弱なクロックしか持たないラズパイ-i2sがいくらソフトでそのクロックの精度を高めようとしても、ちゃんとしたクロックを装備する最新のusb-ddcには敵わないのではないか」というハード屋(intel-usb派)達の主張に対して、ソフト屋から適切な測定データを返せないというところに問題点があるようです。只今、中立派のスウェーデンが「それじゃ、測定してやろうじゃないの」とという展開になっていて、なかなか面白いです。

    しかし、この問題は、紹介された記事内容では、10年前に解決しているともいえるわけで、さすが、asoyagiさんの情報力に感嘆です。

    返信削除