上述のように、周知の幾つかのオーディオネットワークシステムは、イーサネットのデータリンク層を用いて、約48kHzの標準的なサンプリング周波数の非圧縮デジタルオーディオデータを伝送する。一方、本発明では、ポイントツーポイント接続を提供する高速イーサネットの物理層を用いて、周波数が高い(2.8224MHz)デジタルオーディオデータを伝送する。高速イーサネットの物理層をオーディオデータの伝送に用いることの利点は、物理層が広い帯域幅を有し、電磁両立性が保証され、エラー検出機能(巡回冗長検査)を既に備えていることである。物理層を用いることにより、論理回路を容易に設計し、実現することができる。オーディオデータをより上位の層(例えば、MAC層)の技術でエンコードしたとすると、ウィンドウイングプロトコルを取り扱う及び実現するハードウェアが必要であるが、本発明ではこのようなハードウェアを考慮する必要はない。更に、イーサネットの物理層レベルでのデータ伝送は、ロバストであり、スペクトルが制御されるため、電磁放射が少ない。
本発明の実施例が動作する原理を明らかにするために、まず、ネットワークプロトコルアーキテクチャの層構造及びイーサネットアーキテクチャの下位の層について、詳細に説明する。
図1は、ネットワークプロトコルアーキテクチャのための標準的な7階層を有する開放型システム間相互接続(Open Systems Interconnection:以下、OSIという。)参照モデルを示している。このOSI参照モデルは、アプリケーション層270と、プレゼンテーション層260と、セッション層250と、トランスポート層240と、ネットワーク層230と、データリンク層220と、物理層210とを備える。
アプリケーション層270は、通常、アプリケーションプログラムの形式で、ネットワーク上に分散された所定の範囲の情報サービスに対するユーザインタフェースを提供する。この層から提供されるサービスとしては、ファイル転送、ファイルアクセス、ファイル管理や、例えば電子メール等の汎用文書又はメッセージの交換等がある。
プレゼンテーション層260は、2つの通信アプリケーションプロセス間でデータを転送する際のデータの表現に関する。例えば、プレゼンテーション層260は、2つのアプリケーションエンティティ間で交換されるメッセージの構造が維持されるように、トランザクション中に用いるべき適切な転送構文(transfer syntax)を選択する。また、プレゼンテーション層260は、データの暗号化及び圧縮を管理する。
セッション層250は、通信ネットワークノード上の通信アプリケーション間のセッションを確立する。セッション層250は、双方向交互、すなわち半二重(双方向同時、すなわち全二重ではない)データ交換時のインタラクション管理機能を提供することもできる。更に、プレゼンテーション層250は、非常に長いネットワークトランザクションの同期や例外報告等の機能を提供することもできる。
トランスポート層240は、上位のアプリケーション指向層(セッション層250、プレゼンテーション層260、アプリケーション層270)と、下位のネットワークに依存するプロトコル層210、220、230との間のインタフェースとして動作する。トランスポート層240は、セッション層250に、メッセージ転送機能の定義された組を提供する。トランスポート層240は、基本的なコネクション確立を提供するクラス0から完全なエラー制御及びフロー制御を提供するクラス4までの範囲に亘る、様々な種類のネットワークのそれぞれに対して、複数の適切なサービスのクラスを提供する。
OSI参照モデルの下位の3層(ネットワーク層230、データリンク層220、物理層210)全ては、ネットワークに依存する層である。ネットワーク層230は、2つのトランスポート層プロトコルエンティティ間のコネクションを確立及び解放する機能を有し、及びネットワークのルーティング及びアドレッシングをサポートする。データリンク層220は、信頼性が高い情報転送機能を提供し、及びエラー検出やメッセージ再送信等の機能を提供する。多くの場合、コネクションレス型サービスとコネクション型サービスの両方が提供されている。コネクションレス型サービスは、エラーが検出された受信フレームを単に削除し、一方、コネクション型サービスは、エラーがない情報転送機能を提供することを目的とする。物理層210は、2つの機器間でシリアルビットストリームを伝送する手段をデータリンク層220に提供する。すなわち、物理層210は、データを、伝送媒体を介して実際に伝送される電気的なパルス、すなわちアナログのパルスのストリームに変換し、及びデータの伝送を監視する。
イーサネットは、単純な又は分岐型のバス型接続ラインを用いたローカルエリアネットワーク(local area network:LAN)技術の1つである。イーサネットネットワーク内の伝送媒体は、ハブによって連結されたケーブルの1本以上の連続したラインから形成される。ネットワーク機器は、このケーブルに接続され、搬送波感知多重アクセス/衝突検出(Carrier Sensing Multiple Access with Collision Detection:以下、CSMA/CDという。)プロトコルを用いて、ネットワークアクセスを競う。CSMA/CDプロトコルでは、全てのクライアント機器は、伝送媒体を監視し、伝送ラインが利用可能になるのを待って、メッセージの送信を開始する。2つのネットワークノードが同時にメッセージを送信しようとすると、衝突が発生する。この場合、クライアント機器は、送信を停止し、ランダムに決定された時間待機し、再び送信を試みる。
10BASE−Tとして知られる標準的なイーサネット方式は、最高10メガビット毎秒(Mbps)の転送速度を実現し、一方「高速イーサネット(又は、100BASE−T)」方式では、最高100Mbpsの転送速度が実現される。所謂「ギガビットイーサネット」等の更に高性能な方式も利用可能である。高速イーサネットは、10BASE−Tイーサネットと同じ配線システム、媒体アクセス制御(Media Access Control:以下、MACという。)方法及びフレーム化方法を用いる。本発明では、これらのうちのいかなる種類のネットワーク技術を用いてもよい。
イーサネット方式は、ツイストペアケーブル接続を用いてもよく、又は光ファイバ接続を用いてもよい。ツイストペアケーブルは、コンピュータを電話回線に接続するために通常用いられる標準的な銅線である。ツイストペアケーブルでは、ワイヤの対間におけるクロストーク又は電磁誘導を低減するために、2本以上の絶縁ワイヤが互いに撚り合わされている。このようにワイヤを撚り合わせることにより、ケーブルの実効放射領域が小さくなる。これは、交互の撚線の電磁効果が、撚線ピッチより大きい距離において、キャンセルされるためである。ツイストペアの各接続は、2本のワイヤを必要とする。グラウンドとして機能するシールドによってツイストペアを遮蔽している場合、このツイストペアは、シールドつきツイストペア(shielded twisted pair:以下、STPという。)と呼ばれる。標準的なツイストペアは、シールドなしツイストペア(unshielded twisted pair:以下、UTPという。)と呼ばれる。
高速イーサネット方式においては、ツイストペアケーブルセグメントのセグメント長は、信号往復時間仕様(signal round-trip timing specifications)を満足することを保証するように、最高100mに設定されている。高速イーサネットでは、シールドなしツイストペア(UTP)を用いて、どのようにして100Mbpsのデータ転送速度を達成するかが問題となる。実際には、この転送速度を実現するために2つの規格がある。一方(100BASE−4T)では、音声品質カテゴリ3ケーブル(voice-grade category 3 cable)を用い、他方(100BASE−X)では、高品質カテゴリ5UTPケーブル、シールドつきツイストペアケーブル(100BASE−TX)及び光ファイバ(100BASE−FX)のうちのいずれかを用いる。100BASE−X方式では、各種類の伝送媒体は、それぞれ異なる物理媒体依存(Physical Medium Dependent:以下、PMDという。)副層を必要とする。カテゴリ5UTPは、4対の信号線から構成され、そのうち2対は、通常、イーサネットに利用され、例えば一方の信号対がクロックの送信及び受信に、他方の信号対がデータの送信及び受信に利用される。この場合、未使用の2対の信号線が残っている。
図1では、7階層のOSI参照モデルの隣にイーサネット物理層及びデータリンク層の副層を示している。
データリンク層220は、媒体アクセス制御(Media Access Control:以下、MAC)層224と、論理リンク制御(Logical Link Control:以下、LLCという。)層222とを備える。物理層210は、調停(reconciliation)副層219と、媒体独立インタフェース(Medium Dependent Interface:以下、MIIという。)218と、物理コーディング副層216と、物理媒体接続副層214と、物理媒体依存副層(Medium Dependent Interface:以下、MDIという。)211とを備える。
MAC副層224は、データのカプセル化及び媒体アクセス管理の2つの主機能を有する。データカプセル化機能は、データのフレーム化、発信元アドレス及び宛先アドレスの処理及び物理媒体伝送エラーの検出等の機能を含む。媒体アクセス管理機能は、媒体割当(衝突回避)及び競合解消(衝突処理)機能を含む。
MAC副層224は、半二重モード及び全二重モードのいずれでも動作可能である。半二重モードでは、ネットワークノードは、多重アクセス(CSMA/CD)アルゴリズムを用いて、物理媒体の使用を競う。全二重モードでは、混信することなく、送信と受信を同時に行うことができる。全二重モードを用いる場合、3つの条件を満たす必要がある。第1に、物理媒体は、混信することなく、送信と受信を同時にサポートする必要がある。第2に、物理媒体をノード間の全二重ポイントツーポイントリンクとみなせるように、ローカルエリアネットワーク上に正確に2個のノードが存在している必要がある。この全二重の場合、共有媒体の使用に関する競合はないため、CSMA/CDアルゴリズムを用いる必要はない。第3の条件として、両方のノードが全二重モードで動作できるように構成されている必要がある。
論理リンク制御(LLC)層222は、データフレームに対するエラーチェックを実行し、及び通信ネットワークノード間のリンクを管理する。調停(Reconciliation)副層219は、媒体独立インタフェース218において提供された信号セットを物理コーディング副層216にマッピングする。
物理コーディング副層(Physical Coding Sub-layer:以下、PCSという。)216は、調停副層219に対し、全ての100BASE−TX物理層エンティティ(PHY)の実行に関する同一のインタフェースを提供する。PCS216は、MII218によって要求される全てのサービスを提供し、これらのサービスには、MIIの4ビット「データニブル(data nibbles)」から5ビットコードグループへの符号化(及び5ビットコードからデータニブルへの復号)、搬送波感知及び衝突検出指示情報の生成、下位のPMA(Physical Medium Attachment:以下、PMAという。)副層214への送信のためのコードグループの直列化(及びPMA副層214からの受信のためのコードグループの非直列化)、MII218と下位のPMA副層214間の送信、受信、搬送波感知及び衝突検出のマッピング等が含まれる。
物理媒体接続(Physical Medium Attachment:以下、PMAという。)副層214は、PCS216に、一定の範囲の物理媒体の利用をサポートするための媒体独立の機能を提供する。100BASE−TXのPMA副層214は、下位の物理媒体依存(PMD)副層212とPCS216間の送信及び受信コードビットのマッピング、及びPMD212の利用可能性をPCS216に知らせる制御信号の生成といった機能を果たす。PMA副層214は、これらの他に、下位のPMD副層212からの搬送波エラーを示す信号の生成、受信チャンネル障害の検出及び遠端への障害表示(far-end fault indications)の送信を行ってもよい。
PMD副層212は、事実上、125Mbps全二重シグナリング方式を定義するシグナリング規格の組であり、このシグナリング規格には、マルチモード光ファイバ(F)、シールドつきツイストペア(STP)及びシールドなしツイストペア(UTP)の配線が含まれる。
媒体独立インタフェース(MII)218の目的は、LLC副層222及びMAC副層224と物理層エンティティ(PHY)との間に10Mbps及び100Mbpsのデータ転送のための単純な相互接続を提供することである。この機能は、信号タイミングの関係と同様に、両方のデータ転送速度ついて同一のものである。10Mbps動作と100Mbps動作間の唯一の違いは、公称クロック周波数(nominal clock frequency)の相違である。MII218は、シールドなしツイストペア配線、シールドつきツイストペア配線、光ファイバケーブリング及び他の可能な媒体等を含む様々な媒体からの独立性を実現するために用いられ、これにより、これらの媒体のいずれの場合も同一のMACを用いることができる。MII218は、7階層のOSI参照モデルのデータリンク層220と物理層210とを完全に分離することにより、媒体からの独立性を最高化している。MII218のデータ及びデリミッタは、クロック基準に同期し、MII218は、一般的な集積回路プロセスと互換性を有する低電圧トランジスタ−トランジスタロジック回路(Low Voltage Transistor-Transistor Logic:以下、LVTTLという。)の信号レベルを用いる。MII218は、独立した4ビット幅のデータ送信パス及びデータ受信パスと、全二重動作とを提供する。データ転送の各方向について、4ビットのデータバンドル、1ビットのデリミッタ信号、1ビットのエラー信号、1ビットのクロック信号からなる7ビット信号がサポートされている。
図2は、ダイレクトストリームデジタル(Direct Stream Digital:DSD)方式の信号伝送のための周知のシステムを示している。システム300は、アナログ/デジタル変換器及びデジタル/アナログ変換器(A/D及びD/A変換器)310と、このA/D及びD/A変換器310に接続されたDSDマルチチャンネルレコーダ320とを備える。この接続は、2本の独立したケーブルによって行われている。第1のケーブル315は、DSDオーディオデータの8チャンネル(約22.6Mbps)を伝送する光ファイバであり、第2のケーブル325は、高い周波数のサンプリングクロックを伝送する。オーディオデータとサンプリングクロックとについて別々のケーブルを用いることは、標準的なスタジオにおいて慣行されている。
本発明に基づくDSD相互接続の実施例を図3に示す。この構成400においては、単一のケーブル405を用いて、マルチチャンネルA/D及びD/A変換器410をDSDマルチチャンネルレコーダ420に接続している。ケーブル405は、カテゴリ5シールドなしツイストペアケーブルである。このケーブル405は、4対の信号線を有し、これらのうちの2対が、イーサネット物理層技術を用いて符号化されたオーディオデータの送信及び受信に用いられ、残る2対が、リンクを介してDSDサンプリングクロックを双方向に伝送するために用いられる(下記の表1参照)。クロック信号及びオーディオデータは、2つの信号間の干渉がクロック信号の品質を劣化させる可能性を減らすように規定されている。クロック信号は、受信機の位相同期ループ(phase locked loop:以下、PLLという。)を同期させるために用いられ、また、A/D変換器及びD/A変換器のサンプリングクロックとしても用いることができる。サンプリングクロックにジッタが生じると、ジッタは再生アナログオーディオ出力信号における歪みとして現れるので、サンプリングクロックのいかなるジッタも望ましくない。オーディオ信号は、生来的にデジタル信号であり、したがって、クロック信号に比べて劣化に対してロバストである。イーサネットのようなパケットデータ伝送システムは、DSDオーディオデータを伝送することができる。この特定の実施例では、高速イーサネット(100BASE−TX)の物理層を用いて、32個のDSDチャンネルを単一のリンクで伝送することができる100Mbpsのチャンネルビットレートを実現している。他の実施例として、100Mbpsのリンクを用いて、24個のDSDチャンネルを単一のリンクを介して伝送してもよい。
イーサネットは、非同期データリンクであり、したがって、64Fsオーディオクロック信号を高い完全性(high-integrity)を保って伝送するには、本質的に適していない。このため、オーディオサンプリングクロックをカテゴリ5UTPケーブルの独立した信号対として伝送している。
図3に示す1本のケーブルでの接続は、基本的に、2つのオーディオ機器を直接接続するポイントツーポイントリンクである。この接続は、入出力接続を逆にするよう配線された特別な「クロスオーバ」のカテゴリ5ケーブルを用いている。例えばオフィスネットワーク等に用いられている従来のクロスオーバケーブルは、本発明の実施例においてオーディオサンプリングクロックの伝送に用いてる2対の信号線接続を逆にしないので、ここでは特注のクロスオーバケーブルが必要である。例えば図4に示す本発明の他の実施例においては、DSD設備における複数の個々の機器間でより複雑な相互接続を行うこともできる。図4に示すシステムは、スター構成のDSDルータ430と、マルチチャンネルA/D及びD/A変換器440と、DSDミキサ450と、DSDマルチチャンネルレコーダ460とを備える。中央のDSDルータ430には、3つのポイントツーポイントリンク445、455、465が接続されている。図3に示す実施例とは異なり、このスター構成では、3つの各接続に対して、標準のカテゴリ5ケーブルを用いることができる。これは、1つの機器の信号出力が他の機器の信号入力に接続されるように、DSDルータ430の内部においてポート接続が逆にされているためである。
DSDルータ430は、複数の信号送受信機を備え、各送受信機は、データクロック送信機(図6を用いて後に説明する)と、データ及びクロック受信機(図7を用いて後に説明する)とを備える。スイッチング及びルーティング機能は、再生クロック及びストリーミングされたオーディオデータに対して動作するクロスポイントスイッチ(図示せず)によって実行される。換言すれば、信号は、パケット化された形式ではルータを通過しない。
図3に示す実施例において、送信機と受信機とを接続するケーブル405は、8端子のRJ45プラグによって終端され、送信機及び受信機は、いずれもRJ45ソケットを備える。表1は、図3に示すオーディオ機器及び図4に示すスター構成のルータ機器用のRJ45ソケット端子の設定を示している。
図5は、本発明に基づくオーディオデータ伝送システムの構成を示すブロック図である。システム500は、カテゴリ5シールドなしツイストペアケーブル515を介して接続された第1のオーディオ処理機器510及び第2のオーディオ処理機器520を備える。各オーディオ処理機器510、520は、フィールドプログラマブルゲートアレー(Field Programmable Gate Array:以下、FPGAという。)512と、物理層インタフェース(PHY)素子514と、トランス516と、8ピンのRJ45コネクタ518とを備える。FPGA512は、DSD用のマルチチャンネルオーディオ接続(Multichannel Audio Connection for DSD:以下、MAC−DSDという。)を提供する。
1ビット64Fsダイレクトストリームデジタルデータが、オーディオ機器からFPGA512に供給される。FPGA512は、送信動作では、オーディオデータのバッファリング及びフレーム化を行い、受信動作では、フレーム化された構造からデータを抽出し、抽出したデータをDSDストリームに戻す処理を行う。FPGA512は、送信及び受信を同時に実行し、全二重オーディオ接続を実現している。フレームのフォーマットについては、図15及び図16を用いて後に詳細に説明する。PHY素子514は、フレーム化されたオーディオデータの物理層コーディングを行い、スペクトル制御処理を実行するとともに、ラインドライバを有し、ラインドライバは電流を増幅し、これにより、信号のパワーを増幅して送信時のロバスト性を高める。PHY素子514は、実際には、物理層210の物理コーディング副層(PCS)216、物理媒体接続(PMA)副層214及び物理媒体依存(PMD)副層212を実現している。この実施例では、PHY素子514は、インテル社(Intel:商標)LXT972a素子であり、これは、自動折衝(Auto-Negotiation)機能を有さず、データスクランブル機能を有する全二重モードで動作する。トランス516は、カテゴリ5ケーブル515を介して送信するデータを出力する。受信時には、トランス516は、信号を受信し、その後、物理層における処理が行われる。FPGA512とPHY素子514との間のインタフェースは、媒体独立インタフェース(MII)である。これにより、FPGA512は、従来のイーサネットシステムの媒体アクセス制御(MAC)を処理するネットワークアドレスを置換する。イーサネットシステムは、複数のサンプリングレートをサポートしており、また、将来開発される可能性があるより高いDSDサンプリングレートにも対応することができる。オーディオのサンプリングレートが変更されると、オーディオデータストリームをどのようにデータフレームにパック化するかも変更する必要があり、この変更は、FGPA512内の回路によって決定される。物理層リンクが十分な帯域幅を有しているならば、オーディオサンプルレートの変更は、PHY素子514に影響を与えない。
図6は、64Fsオーディオサンプリングクロック信号を、カテゴリ5ケーブルの異なる信号線対を介して、DSDオーディオデータとパラレルに送信する方法を説明する図である。図5に示す実施例と同様に、オーディオデータ信号は、FPGA512、PHY素子514及びトランス516において処理された後に、カテゴリ5UTPケーブル515の2対の信号線を介して送信される。64Fsオーディオサンプリングクロックは、FPGA512とローパスフィルタ552の両方に入力として供給され、FPGA512は、データをフレーム化するとともに、バッファリングする。ローパスフィルタ552は、クロック信号送信時の電磁放射を低減する役割を果たす。ローパスフィルタ552の出力は、入力として差動ラインドライバ554に供給された後、10BASE−T型のイーサネットトランス556に供給される。クロック信号は、RJ45コネクタ518を介して、カテゴリ5UTPケーブル515の1対の信号線に供給され、オーディオデータとパラレルに送信される。オーディオサンプリングクロック信号により、受信機のFPGA512は、受信したオーディオデータの同期をとり、すなわちDSDビットストリームを再構築するので、オーディオサンプリングクロック信号の伝送は重要である。本発明のこの実施例に用いられるカテゴリ5UTPケーブルの特性インピーダンスは、100Ωである。他の実施例においては、電磁両立性(electromagnetic compatibility:EMC)の性能が高いスクリーンツイストペアケーブルを用いてもよい。更なる他の実施例においては、カテゴリ5eケーブル(250Mbpsまでのデータ転送速度用)、カテゴリ6ケーブル(ギガビットイーサネットに適する)又はより高いデータ転送速度を可能にするカテゴリ7ケーブル等を含む他の種類のケーブルを用いてもよい。
FPGAは、送信機及び受信機において必要とされる機能を実現するための解決策の一例にすぎない。もちろん、ソフトウェア制御の汎用マイクロプロセッサを用いてもよい。この場合、ソフトウェアは、ストレージ媒体(例えば、読出専用メモリ、フラッシュメモリ、磁気ディスク、光ディスク等)又は伝送媒体(例えば、ネットワーク又はインターネット等)によって提供することができる。
図7は、高い周波数のオーディオサンプリングクロックをDSDオーディオデータ信号とパラレルに受信する動作を説明する図である。パラレル信号は、ケーブル515を介して、受信機のRJ45コネクタ522に供給される。DSDオーディオデータ信号は、トランス524を介して、物理層インタフェース素子526に供給され、次にFPGA528に供給され、FPGA528は、データを非フレーム化してDSDビットストリームを生成する。FPGA528は、受信機の局部位相同期ループから供給される64Fsクロック信号に基づいて、DSDオーディオストリームを出力する。
受信オーディオクロック信号は、受信機において、まず、トランス562に供給される。トランス562の出力信号は、ハイパスフィルタ563に供給された後、ローパスフィルタ564に供給される。ローパスフィルタ564は、送信機におけるローパスフィルタ552と同じ種類のフィルタである。受信機のローパスフィルタ564は、受信信号におけるあらゆる高周波妨害を除去する。このような高周波妨害は、ケーブル515においてパラレルに伝送されたオーディオ信号又は外部雑音源から誘導される。ローパスフィルタ564の出力信号は、比較器568に供給され、論理信号に変換される。比較器568からの論理信号は、局部位相同期ループ(PLL)回路を駆動するために用いられる。位相同期ループ(PLL)は、基準信号に対して一定の位相角を維持するように発振器を制御する電気回路である。この場合、受信された高い周波数のクロック信号が基準信号となる。PLL回路は、DSDオーディオデータの再生に用いられるローカルのオーディオ基準クロックを生成する。
図8は、64FsDSDサンプリングクロック信号の信号パスを示す図である。上述のように、DSDサンプリングクロックは、カテゴリ5UTP相互接続ケーブル515内の専用の差動信号対によって、双方向に送信される。以下、図8を用いて、高い周波数(64Fs)のクロック信号に対して行われる一連の処理について説明する。サンプリングクロック信号に対しては、UTPケーブルの信号対を介して非同期データ信号とパラレルに伝送することを容易にするために、特別なアナログ調整(analogue conditioning)を施す。このアナログ調整により、高い周波数のサンプリングクロック信号の品質を劣化させる、非同期データ信号(又は外部雑音源)からの電磁妨害の影響が低減される。図8に示すように、クロックマスタ機器のサンプリングクロック処理回路は、ローパスフィルタ552と、差動ラインドライバ554と、トランス556とを備える。一方、クロックスレーブ機器のサンプリングクロック処理回路は、トランス562と、ハイパスフィルタ563と、比較器568とを備える。
クロックマスタ機器のローパスフィルタ552には、2.8224MHz(64Fs)の論理信号551が入力される。この信号の周波数許容偏差は、1997年版AES11仕様書のグレード2規格に基づいている。したがって、サンプリングクロックの長期間周波数安定度は、+/−10/百万(ppm)であり、外部同期範囲は+/−50ppmである。サンプリングクロックのデューティサイクルは、40〜60%であり、低電圧トランジスタ−トランジスタロジック回路(low voltage trangistor-trangistor logic:以下、LVTTLという。)の論理信号を用いる。
クロックスレーブ機器の比較器568から出力される64Fs論理クロック信号569も2.8224MHz(64Fs)の論理信号である。リンク515の特性により、クロック信号に実質的なジッタ又は非対称性が導入される虞があるため、デジタルオーディオ信号の同期にこのクロック出力信号を直接用いない。クロック出力信号は、専ら、受信機のエッジトリガ方式の位相同期ループ(PLL)を同期させるために用いられる。クロック出力信号569は、他の高品質クロック信号に雑音又はジッタを重畳させないように、受信機内において注意深く配線する必要がある。クロックスレーブ機器のPLL回路(図示せず)は、受信機全体において用いられる高品質オーディオクロック信号を発生させるために用いられる。
送信側(クロックマスタ)機器及び受信側(クロックスレーブ)機器の両方に設けられているローパスフィルタ552、564は、それぞれ2.9MHzのカットオフ周波数を有する2次のバタワースローパスフィルタである。
送信機のローパスフィルタ552は、クロック信号の高周波成分を減衰させる。このような高周波成分は、ケーブル内で同時に伝送されるオーディオデータと干渉し、又はケーブルから過剰なRF放射を生じさせる虞がある。一方、受信機のローパスフィルタ564は、同時に伝送された高い周波数のデータ信号又は外部雑音源によってクロック信号に誘導される高周波の妨害をクロック信号から除去する役割を有している。
送信機内に設けられている差動ラインドライバ554は、100Ωのインピーダンス(カテゴリ5UTPリンクのインピーダンス)において1.5〜2.5Vの差動ピークツーピーク電圧を有する対称出力信号を生成する。
送信機及び受信機の両方に設けられているトランス556,562は、ライン側にコモンモードチョークコイルを有する巻数比が1:1の10Base−Tイーサネットトランスである。
受信機のハイパスフィルタ563は、カットオフ周波数がfc=500Hzの1次ハイパスフィルタである。このハイパスフィルタ563は、主電源からの低周波の妨害を除去し、DCオフセットが生じることを阻止する。このハイパスフィルタ563は、単純な抵抗−容量(RC)結合によって実現されている。
受信機の比較器568は、ローパスフィルタ564によってフィルタリングされたアナログクロック信号を論理信号に変換する。雑音に誘導された複数のエッジ(multiple edge)を除去又は低減するために、2%のヒステリシスを用いる。
図9は、物理層装置の同期周波数がオーディオサンプリングクロック周波数64Fsの整数倍(9*64Fs)となるように調整する本発明の実施例を示している。イーサネット規格では、データ伝送に25MHzのシンボルレートを用いることが定められている。
2.8224MHzのサンプリングクロックを25MHzのオーディオデータ信号と同じカテゴリ5UTPケーブルを用いて伝送すると、オーディオクロックに好ましくない劣化が生じる可能性がある。オーディオデータの伝送をサンプリングクロックと同期させることにより、高品質オーディオクロック信号の劣化を抑制することができる。図9に示す装置は、位相同期ループを用いて、入力された64Fsクロック信号を9倍の周波数にアップコンバートする逓倍器572を備える。×9逓倍器572からの出力は送信機のPHY素子514に供給され、576Fs(25.4016MHz)のオーディオデータ信号が生成される。すなわち、この実施例では、標準の25MHzイーサネットシンボルレートに代えて、25.4016MHzのシンボルレートでオーディオデータを伝送する。シンボルレートを高めた結果、チャンネルビットレートは、100Mbpsから101.6064Mbpsに高まる。
したがって、この本発明の実施例により、オーディオクロック信号の劣化を潜在的に抑制することができるが、標準的なイーサネット方式の25MHzシンボルレートとの互換性は失われる。
図10は、一方の機器がクロックマスタ600Mとして機能し、他方の機器がクロックスレーブ600Sとして機能するポイントツーポイントオーディオリンクの構成を示している。各オーディオ処理機器は、クロック源であるPLL602M、602Sと、クロック受信機(Rx)604M、604Sと、ロック検出モジュール606M、606Sと、クロック送信機(Tx)608M、608Sと、オーディオ入出力(I/O)装置610M、610Sと、スイッチ612M、612Sとを備えている。添字Mは、マスタ機器600Mに関連するコンポーネントを示し、添字Sは、スレーブ機器600Sに関連するコンポーネントを示している。DSDオーディオデータは、マスタ機器600MのオーディオI/O装置610Mをスレーブ機器600SのオーディオI/O装置610Sに接続するUTPケーブル(図示せず)を介して伝送される。
カテゴリ5UTPケーブルは、正常動作条件では、クロック信号が2つのオーディオ機器間を双方向に伝送されるよう、独立した接続を実現する。しかしながら、アクティブリンクにおいては、一方の機器をクロックマスタ600Mとして指定し、他方の機器をクロックスレーブ600Sとして指定する必要がある。クロックマスタ600Mのクロック送信機608Mは、クロックスレーブ600Sのクロック受信機604Sにオーディオクロック信号605Mを送信する。スレーブの位相同期ループ602Sは、このマスタからのオーディオクロック信号605Mを用いて、同期信号を生成し、スレーブのオーディオI/O装置610Sに供給する。スレーブのクロック送信機608Sからマスタのクロック受信機604Mに送信されたオーディオクロック信号605Sは、マスタのスイッチ612Mが開いているため、マスタの位相同期ループ602Mには供給されない。なお、スレーブのクロック信号605Sは、マスタのロック検出モジュール606Mにおいて、ローカルのマスタクロックと比較され、リモートのスレーブ機器600Sにおける同期を検出するために用いられる。
図11は、図10に示すマスタ機器とスレーブ機器との間に同期リンクを確立するために行われる動作シーケンスを説明するフローチャートである。
ステップ620において、機器Bであるスレーブ機器600Sの送受信機をスレーブモードに設定して、クロック送信機608Sを一時的に(リンクが確立され、ロック状態となるまでの間)ディスエーブルにする。この動作は、2つの機器がスレーブとなって、互いに同期を試み、予測できない結果を招くことを防止するために行う。
ステップ630において、UTPケーブルを用いて、マスタ機器600Mをスレーブ機器600Sに物理的に接続し、リンクを確立する。このケーブル接続により、マスタ機器600M及びスレーブ機器600Sは、リンクが現在有効になったことを検出する。このとき、マスタ機器600Mは、クロック信号605Mの送信を開始するが、スレーブ機器600Sのクロック送信機608Sは、一時的にディスエーブルにされた状態である。
ステップ640において、スレーブ機器600Sのクロック受信機604Sは、入力マスタクロック信号605Mを検出し、これをスレーブの局部位相同期ループ回路602Sに供給し、位相同期ループ回路602Sは、入力マスタクロック信号605Mにロックされる。
ステップ650において、スレーブ機器600Sは、ロック検出モジュール606Sによって、ローカルのシステムクロックと、入力マスタクロック信号605Mとを比較することにより、ロック状態を検出する。スイッチ612Sを閉じることにより、スレーブPLL602S、スレーブクロック受信機604S及びスレーブロック検出モジュール606Sの間の回路が閉じられ、ロック検出がイネーブルになる。スレーブロック検出モジュール606Sからの信号が、一旦マスタクロック信号605Mによってロックが確立されたことを示すと、スレーブクロック送信機608Sは、ディスエーブル状態からイネーブル状態に切り換えられ、スレーブ機器600Sのオーディオバッファ(オーディオI/O装置610S内に設けられている。)がリセットされる。
ステップ660において、マスタ機器600Mのクロック受信機604Mは、直前にイネーブルにされたスレーブの送信機608Sから返された(echoed)クロック信号を受信し、この返ってくる信号の位相を調べて、スレーブ機器600Sがマスタクロック信号605Mに正しく同期したことを確認する。ここで、同期が正しく確立されていない場合は、オーディオデータの送信はイネーブルにされない。
スレーブ機器600Sが正しく同期している場合、ステップ670において、マスタ機器600Mは、オーディオバッファ(オーディオI/O装置610M内に設けられている。)をリセットし、オーディオデータの送信をイネーブルにし、これによりフレーム化されたDSDオーディオデータが、マスタ機器600Mとスレーブ機器600Sとを接続するUTPケーブルを介して伝送される。
図11に示すフローチャートは、マスタ機器600Mとスレーブ機器600Sとの間で同期を確立するための標準的な処理を示している。なお、いずれもがスレーブモードに設定された2つのオーディオ機器間でリンクの確立を試みる場合もある。この場合、機器が有効なデータリンクを検出した時点では、両方の機器のクロック送信機がディスエーブルにされており、オペレータに対しては、リンクが同期していないことが知らされる。ユーザに対しては、RJ45ケーブルの接続ポートに隣接して設けられているLED状態表示(図示せず)によりリンク状態が知らされる。以下に示す表2は、可能な複数のリンク状態に対応するLED状態を示している。特に、赤又は黄色のLEDが「オン」となっている状態は、2つのスレーブモードのオーディオ機器をリンクしようとした場合に発生する可能性があるクロック同期エラーに対応している。
図12は、オーディオ設備内の2つの機器間で、複数のパラレルリンクが用いられるシステムを示している。複数のリンクを用いることにより、単一のポイントツーポイントリンクに比べてより多くのチャンネル数に対応することができる。この具体例では、2つのリンクを用いて、合計で64チャンネルを提供している。送信側オーディオ機器700Aは、第1の送信機702と、第2の送信機704と、クロック発生器706とを備える。受信側オーディオ機器700Bは、第1の受信機712と、第2の受信機714と、クロック発生器716とを備える。第1のカテゴリ5UTPケーブル721は、第1の送信機702と第2の受信機712とを接続し、オーディオデータチャンネル1〜32(又は1〜24)を提供する。第2のカテゴリ5UTPケーブル723は、第2の送信機704と第2の受信機714とを接続し、オーディオデータチャンネル33〜64(又は25〜48)を提供する。
図12に示すシステムを動作させるとき、第1の受信機712から出力されるDSDオーディオデータストリームを第2の受信機714から出力されるDSDオーディオデータストリームにサンプル間で同期させる必要があり、すなわちチャンネル1〜32(又は1〜24)のサンプルをチャンネル33〜64(又は25〜48)のサンプルと同期させる必要がある。送信機702、704内のPHY装置及び受信機712、714内のPHY装置における送信及び受信待ち時間(latency)により、受信機712、714の出力は、複数のDSDオーディオサンプル期間(3.543×10−7秒)同期がずれる可能性がある。PHY装置に共通に用いられている製造業者の仕様書では、PHY装置の送信待ち時間及び受信待ち時間の組み合わせは、最高6×10−8秒まで変化することを示し、したがって、受信機間で1DSDサンプル分のずれが生じることも考えられる。ケーブル721、723の長さの違いも同期に影響を及ぼす。
図12に示すように、送信側オーディオ機器700Aの第1及び第2の送信機702、704は、Fs=44.1kHzの共通の基準クロック信号Fs(A)を用いている。同様に、受信側オーディオ機器700Bの第1及び第2の受信機712、714は、Fs=44.1kHzの共通の基準クロック信号Fs(B)を用いている。これらの2つの44.1kHzの同期クロック信号Fs(A)、Fs(B)は、64Fsのマスタクロック信号に由来する同じ周波数を有しているが、位相は任意であり、2つの位相が整合している可能性は低い。クロック信号Fs(A)、Fs(B)は、それぞれ独立したクロックドライバによって共通の64Fsクロックから導き出されるために、このような位相の違いが生じる。図13は、クロック信号Fs(A)、Fs(B)を用いて、受信機712、714の出力信号(これらは、それぞれ独立したリンクケーブル721、723からのオーディオデータから得られる)の同期をどのように維持するかを説明するフローチャートである。
図13のステップ730において、送信側オーディオ機700Aと受信側オーディオ機700B間のリンクが確立される。2つの送信機702、704は、それぞれローカルの44.1kHzクロック信号Fs(A)のクロックエッジを待って、第1のオーディオフレームを送信する。データフレームは、1番目のDSDサンプルがクロックエッジに同期して入力されるようにパック化される。図13のフローチャートは、32DSDオーディオチャンネルを有する実施例に対応している。図18Aを用いて後に詳細に説明するように、32チャンネルのシステムでは、各フレームは384個のデータワードからなり、ワード13〜382は、32チャンネルのそれぞれの1ビットDSDサンプル値を含んでいる(チャンネル毎に370個のサンプル値が各フレームに含まれている)。第1の送信機702は、チャンネル1〜32に対応する第1のオーディオフレームを送信し、一方、第2の送信機704は、チャンネル33〜64に対応する第1のオーディオフレームを送信する。この実施例では、各フレームが370個のサンプルを含み、1Fs期間に64個のサンプルがあるため、フレームの開始(1番目のDSDサンプル値の出力)及びFs期間の開始(Fs(A)クロックのエッジ)は、370×64サンプル毎に一致する。ここで、370と64は、共通因数2を有するため、フレームの開始とFs期間の開始は、(370×64)/2サンプル毎、すなわち32フレーム毎に一致する。したがって、フレーム1、33、65、97・・・について、フレームの1番目のDSDサンプル値がローカルのFs(A)クロックのエッジに同期して出力される。これらの特別なフレームでは、データフレームの「フレームタイプ」フィールド(図16参照)内の特定のビットフラグが1に設定される。
フローチャートのステップ732において、第1の受信機712と第2の受信機714が位相カウント値Φj(jは、第1の受信機712の場合1、第2の受信機714の場合2)を捕捉し(capture)、最初に受信したフレーム内の1番目のDSDサンプル値を出力する時刻をマークする。なお、システムの起動時には、受信側のオーディオ出力はミュートされており、マスタ機器によって64Fsサンプリングクロックの同期が確認されると、送信側オーディオ出力のみがイネーブルにされる。受信側が1番目のDSDサンプル値を出力する準備ができる時刻は、スレーブ機器がマスタ機器の64Fsクロック信号に位相ロックするためにかかる時間に依存する。また、この時刻は、特定の送信機のFIFOバッファの閾値レベルの設定にも依存する。各受信機は、ローカルの64Fsクロック信号によって動作し、44.1kHz信号Fs(B)によってリセットされるカウンタから、位相カウント値Φjを導出する。
ステップ734において、システムコントローラ(図示せず)は、各受信機についての位相カウント値Φ1、Φ2を比較し、これらが同一であるか否かを判定する。ここで、Φ1=Φ2の場合、受信機は、同じDSDサンプル期間内に同期しており、これは望ましい状態である。この場合、処理はステップ738に進み、オーディオ出力のミュートが外される。一方、ステップ734において、Φ1≠Φ2である場合、処理はステップ736に進み、このステップ736において、システムコントローラは、同期を達成するために受信機のバッファ読出位置を調整する。最も早く64Fsマスタクロックに同期した受信機(したがって、最初にDSDオーディオデータを受信した受信機)は、自らのバッファ読出位置を最後に同期した受信機(最後にDSDデータの受信を開始した受信機)のバッファ読出位置に合わせるよう調整する。このバッファ読出位置の調整は、2つの位相カウント値Φjのうち大きな方の位相カウント値に両方の位相カウント値を合わせる修正に等しい。同期が達成された場合のみ、すなわち各受信機の位相カウント値が等しくなった場合にのみオーディオ出力がイネーブルにされる。
受信機の位相カウント値は、フラグが立てられた各フレーム(最初のフレーム及び最初のフレームから32個毎のフレーム)について相互に確認され、受信機間の同期が維持されているかが確認される。フレームは、131.25μs毎に伝送され、したがって、フラグが立てられたフレームは、約4.2ms(131.25μs×32)毎に伝送される。受信機の同期に関する全ての問題は、この4.2ms以内に検出し、修正することができる。図13に示すステップ742、744、746は、フラグが立てられた各フレームに対してシステムコントローラが行う確認処理を示している。ステップ742においては、システムコントローラは、フラグが立てられている現在のフレームに関する修正された位相カウント値を確認し、この位相カウント値と、フラグが立てられた先のフレーム、すなわちX−32番目のフレームに関する、最後に記憶された(修正された可能性がある)位相カウント値とを比較する。これらの位相カウント値が同じである場合、システムコントローラは、ステップ746において、オーディオデータの伝送を継続する。一方、フラグが立てられた2つのフレームに関する位相カウント値が異なる場合、これは、2つの受信機が同じオーディオサンプル値を同時に出力していないことを意味し、処理はステップ744に進み、システムコントローラは、適切な同期を回復するために、データリンクのリセットを開始する。データリンクがリセットされると、受信機のロジックは、図11に示すステップ732〜738を実行できるようリセット状態となる。他の実施例として、データリンクは、バッファ読出位置の調整によってリセットしてもよい。但し、この場合、バッファのオーバラン/アンダランによってリンク全体のリセットがトリガされることがある。同期のずれは、例えばケーブルの不具合(glitch)によって生じる。
図18Bを用いて後に詳細に説明する24DSDチャンネルを用いる他の実施例では、各フレームは368個のデータワードからなり、ワード15〜366は、24チャンネルの352個のDSDサンプルと、88バイトの補助的データを含んでいる。各32ビットのサンプルは、24DSDチャンネルのそれぞれからの1ビットと、2ビットの補助的データと、6ビットのチェックビットを含んでいる。各サンプルのビット0は、最初の論理オーディオチャンネルに対応し、ビット23は、24番目の論理オーディオチャンネルに対応する。この場合、第1の送信機702は、チャンネル1〜24に対応する1番目のオーディオフレームを送信し、第2の送信機704は、チャンネル25〜48に対応する1番目のオーディオフレームを送信する。この実施例では、各フレームは352個のサンプルを含み、1Fs期間毎に64個のサンプルがプルが送信されるため、フレームの開始(1番目のDSDサンプル値の出力)とFs期間の開始(Fs(A)クロックのエッジ)は、352×64サンプル毎に一致する。ここで、352と64は、共通因数32を有しているため、フレームの開始とFs期間の開始は、(352×64)/32サンプル毎、すなわち1つおきのフレーム毎に一致する。したがって、24DSDチャンネルの実施例では、フレーム1、3、5、7、9・・・について、フレームの1番目のDSDサンプル値がローカルのFs(A)クロックのエッジに同期して出力される。したがって、1つおきのフレーム毎にフラグが立てられ、受信機の位相カウント値は、1つおきのフレーム毎に相互に確認される。
図14は、送信機内でオーディオデータのバッファリングがどのように行われるかを示す図である。送信機のバッファリング装置800は、ファーストインファーストアウト(First In First Out:FIFO)バッファ810と、このFIFOバッファ810に直列に接続されたフレームアセンブラ820とを備える。動作中において、32チャンネルのDSD1ビットサンプルデータがFIFOバッファ810に64Fsのビットレートで供給され、64Fsは、90.3168Mbpsに相当する。FIFOバッファ810の占有レベルが(occupation level)が所定の閾値レベル815に達すると、システムコントローラは、新たなオーディオフレームの送信を開始するための信号を生成する。この信号に応じて、フレームアセンブラ820は、フレームプリアンブル及びヘッダを組み立て、この間も入力DSDサンプルはバッファリングされ続ける。オーディオデータのペイロードの組立が開始されると、フレームアセンブラ820は、FIFOバッファ810からのデータの読出を開始する。FIFOバッファ810からのデータの読出速度は、イーサネットの転送速度である100Mbps(又はシンボルレートを9*64Fsにロックする実施例では、101.6064Mbps)である。FIFOバッファ810には、90.3168Mbpsの速度でデータが供給され、100Mbpsの速度でデータが読み出されるため、正味バッファ占有レベル(net buffer occupation level)は、徐々に低下する。所定の閾値レベル815は、データ入力レートと、データ出力レートと、フレームサイズ(32チャンネルの場合370個の1ビットサンプル)とに基づき、各フレームの送信終了時にバッファの占有レベルが正確に0ではないが略0になるように、すなわち、次に送信するフレームのデータがFIFOバッファ810内に存在するように設定する。フレームの送信終了時にFIFOバッファ810が完全に空にはならないということは、MACの規則に違反する。フレームの送信が一旦完了すると、FIFOバッファ810の占有レベルは、閾値レベル815に達するまで急速に増加し、フレームの送信サイクルが繰り返される。
入力データレートが90.3168Mbps、出力データレートが101.6064Mbps、フレーム容量が370個の1ビットサンプル(32チャンネル)の伝送システムでは、最小バッファサイズは42DSDサンプルであり、対応する最小閾値レベルは30DSDサンプルである。この最小バッファサイズによって生じるオーディオ待ち時間は、14.9μs(すなわち、42/64Fs)である。
図15は、受信機においてどのようにオーディオデータがバッファリングされるかを示す図である。受信機のバッファリング装置850は、フレーム受信機860と、フレーム受信機860に直列に接続されたFIFOバッファ870とを備える。オーディオデータは、(5UTPケーブルを介して)フレームフォーマットで、100Mbps(又は9*64Fsシンボルレートでは、101.6064Mbps)のデータ転送レートでフレーム受信機860に供給される。フレーム受信機860は、各フレームのプリアンブル及びヘッダを分離し、更に、巡回冗長検査(cyclic redundancy check:CRC)を実行して、受信データの完全性を検証してもよい。フレーム受信機860は、フレーム化されたデータを非フレーム化し、この非フレーム化されたデータをFIFOバッファ870に直接供給する。受信機内のFIFOバッファ870には閾値レベルが設定されていないので、FIFOバッファ870からのデータの読出は、直ちに開始される。これにより、受信機における待ち時間を略ゼロにすることができる。オーディオデータフレームは、巡回冗長検査(CRC)ワードを含んでいる。CRCアルゴリズム、検査ワードの挿入位置及び範囲は、IEEE803.3(2000年版)セクション3.2.8に定義されている。この32ビット検査ワードにより、通常、フレーム内の全ての誤りを検出することができる。周知のイーサネットシステムでは、CRCは、送信機及び受信機の両方において、各フレームに対して実行される。受信機側では、フレームに関するCRC検査の結果が判定された場合にのみ、そのフレームが出力される。これにより、周知のイーサネットシステムでは、受信機において、データが出力される前に実質的な待ち時間が生じる。一方、本発明では、受信機においてCRC検査をしながら、CRC検査の結果が出る以前にバッファからデータを出力する。エラー制御は、受信機のFIFOバッファ870から出力されたデータが供給される後段において、復号パリティビットによって行われる。詳しくは、エラー制御は、32DSDチャンネルオーディオストリームとして出力する前に、32ビットデータブロックからデータを抽出する時点で行う。標準的なイーサネットシステムと異なり、本発明に基づくMAC−DSDプロトコルは、エラー発生時の再転送をサポートしていない。これは、再転送のためには、125μsの少なくとも2倍分のオーディオフレームをバッファリングする必要があり、システムの待ち時間が許容できない程度に大きくなるためである。IEEE802.3規格におけるCRCの本来の目的は、フレームエラーを検出し、これにより再転送要求を生成することであるが、ここでは、CRCは、互換性を保つために含まれている。もちろん、待ち時間を犠牲にしてもより高いロバスト性を必要とするアプリケーションでは、CRCにより開始されるMAC−DSDフレーム再転送をサポートするようにしてもよい。オーディオデータは、FIFOバッファ870から90.3168Mbpsの速度で連続的に読み出され、データ出力レートは、データ入力レートより遅いため、FIFOバッファ870は、フレームが受信される毎に、次第ににデータで満たされる。一旦フレームが完全に受信されると、次のフレームのオーディオデータが供給される前に、フレーム間の待ち時間があり、この休止期間において、FIFOバッファ870は、空に近づき続ける(完全にゼロにはならない)。
受信機のFIFOバッファ870が完全に一杯になるか、又は完全に空になる場合には、システムコントローラにエラー信号が送られる。バッファが完全に一杯になるか又は完全に空になるということは、データリンクに障害が発生し、送信機に障害が発生し、又はDSDマスタクロックが送信機と受信機の間で正しく同期していないことを示し、この場合、システムコントローラは、オーディオ出力をミュートする。
標準イーサネットフレームのデータ構造を図16に示す。このフレーム構造は、IEEE802.3規格に定義されている。図16に示すように、イーサネットフレームは、プリアンブル、開始フレームデリミッタ、宛先アドレスフィールド、発信元アドレスフィールド、データ長フィールド、データペイロード及びチェックサムから構成されている。
プリアンブルの長さは7バイトであり、各バイトは、ビットパターン10101010を有し、続いてビットパターン10101011を含む1バイトの開始フレームデリミッタSが設けられている。プリアンブル及び開始フレームデリミッタは、ハードウェアにおけるタイミングを調整する目的で使用される。宛先アドレスフィールドの長さは6バイトであり、宛先アドレスフィールドは、フレームを受信するネットワークアダプタの物理アドレスを指定している。発信元アドレスフィールドの長さは6バイトであり、発信元アドレスフィールドは、フレームを送信するネットワークアダプタの物理アドレスを含んでいる。データ長フィールドの長さは2バイトであり、データ長フィールドは、データペイロードのサイズを示している。データペイロードは、最小の長さが46バイトであり、最大の長さが1500バイトである可変長フィールドである。チェックサムフィールドの長さは4バイトであり、チェックサムフィールドは、巡回冗長検査(CRC)の実行時に使用される。CRCは、データ伝送を検証する一般的な手段である。送信側のネットワークノードは、所定のアルゴリズムに基づいてフレームに関するCRC値を算出し、このCRC値をフレーム内にエンコードする。そして、受信側のネットワークノードは、CRC値を再計算してCRCフィールドを検査し、送信側で算出された値と、受信側で算出した値とが一致するかを確かめる。これらの値が一致しない場合、伝送中にデータが欠落し、又は誤りが生じたことを示している。このイーサネットフレームは、物理層の回路に供給され、ここでビットストリームに変換されて、伝送媒体を介して送信される。なお、イーサネットフレームには、幾つかのバリエーションが存在する。
本発明に基づくオーディオデータフレームのデータ構造を図17に示す。このオーディオデータフレームは、合計で1536バイトのサイズを有し、8バイトのプリアンブル(これに続く物理層は、最大で1528バイトの任意のデータを受け入れる)と、宛先MACアドレス用に確保された6バイトフィールド(デフォルト値は0xffffff)と、発信元MACアドレス用に確保された6バイトフィールド(デフォルト値は0x000000)と、CRCを除く、以降のバイト数(常に1510バイト)を示す2バイトのデータ長フィールドと、ネットワーキングヘッダ用に確保された28バイトフィールドと、12ビットの予備フィールド(未だ割り当てられていない)と、例えば同期目的で使用される4ビットのフレームタイプフィールドと、32チャンネルDSDオーディオの370サンプルを収納する1480バイトのオーディオデータペイロードと、チェックサムを収納する4バイトのCRCフィールドとから構成される。本発明の実施例におけるCRCチェックサム処理については、後に説明する。図17に示すデータフレーム構造は、インターネットプロトコル(Internet Protocol:IP)ネットワークに対する互換性を有する。したがって、オーディオデータフレームは、ユーザデータグラムプロトコル(User Datagram Protocol:UDP)/IPデータグラムとして取り扱うことができ、より広域のIPネットワークを介して伝送することができる。UDPは、コネクションレス(ベストトライ)トランスポート層のプロトコルである。この特定の実施例では、物理層のみを用いる。ここでは、MAC層は用いず、したがってMACアドレスフィールドは、実際にはシステムには要求されない。これらのフィールドは、(後に必要性が生じた場合に)ローカルエリアネットワーク(Local Area Network:LAN)又はUDP/IPとの互換性を実現するために、確保されており、デフォルト値で埋められている。
次に、オーディオデータフレームのCRC妥当性検証(CRC validity check)について詳細に説明する。全てのフレームは、4バイトのCRC検査ワードを用いて、フレームの有効性(validity)を確認する。CRCアルゴリズム、検査ワードの挿入位置及び範囲は、IEEE803.3(2000年版)セクション3.2.8に定義されているものに類似している。
IEEE802.3規格では、フレームのペイロードは、CRCによってフレームの妥当性が確認されるまでは、データリンク層から渡してはならないことになっている。一方、本発明の実施例の文脈では、このような処理は、DSDオーディオデータストリームの出力を開始する前に、フレーム全体をバッファリングしなくてはならないことを意味する。この規格に直接準拠すると、オーディオの待ち時間が約25〜140μs、例えば115μsになるため、望ましくない。
CRCは、本来、システムの起動時においてオーディオ機器間でデータリンクの妥当性を確認するために用いられる。ケーブルの切断等、起動以後のリンク障害は、PHY装置からのエラーアサーションによって示される。リンクは、単純なポイントトゥポイント接続であり、確定的な(deterministic)、同期されたフレーズ転送を行い、衝突が生じないため、他のモードの障害が発生する可能性は低い。
したがって、本発明の実施例では、比較的単純なCRC検査を行う。受信機のオーディオ出力は、起動時から、最初のフレームが完全に受信され、そのCRCによって確認されるまでの間ミュートされる。CRC検査の結果、異常があった場合、オーディオ出力はミュートされたままとなり、ローカルのシステムコントローラにエラー状態が通知される。最初のフレームを確認した後は、CRCは、回顧的に(retrospectively)のみ確認される。これにより、受信機においては、略ゼロの待ち時間でオーディオデータストリームを出力することができる。CRCは、CRCエラーが発生したことをプロセッサに警告するためのみに使用される。
無効なオーディオフレームに遭遇した場合、回顧的なCRC検査に応答して出力がミュートされるまでに、理論的には最大131μsの無効なオーディオデータが出力されてしまう可能性がある。しかしながら、実際には、PHYラインシンボルを破壊するランダムな外乱によりシンボルが無効になると、受信機のエラー状態が早期に確定し、このエラー状態を検出してオーディオ出力をミュートすることができる。
全てのフレームに対してCRC検査を行う必要があると考えられる場合、DSDオーディオデータを出力する前に、各フレームをバッファリングし、CRCを用いて妥当性を確認する。この処理により、約115μsの追加的な待ち時間が生じ、受信機のハードウェアバッファサイズを実質的に大きくする必要があるため、この手法は、望ましい選択肢ではない。
図17に示す1536バイトのオーディオデータフレームは、それぞれ(101.6064Mbpsのシンボルレートにおいて)120.9μsの転送期間を有する。本発明の特定の実施例では、フレームは、131.1μs間隔で転送される。また96ビット期間に対応する最小フレーム間時間が設けられ、オーディオフレームの転送間に8.25μsの「リンク時間(link-time)」が残っている。このリンク時間を用いて、制御データを含む補助的フレーム(auxiliary frame)を転送することができる。この実施例における制御データの最大合計サイズは、104バイトである。
制御データフレームの構造は、オーディオデータフレームでは1480バイト長であるデータペイロードが、制御データフレームでは、48バイト長である点を除いて、図15に示すオーディオデータフレームの構造と同様である。制御データフレームは、131μs毎に伝送され、これにより制御データの帯域幅は2.9Mbpsとなる。制御データ自体は、チャンネル用途情報、ルータ制御データ及びクロックソース制御データ等を含んでいてもよい。制御データは、送信機のFIFOバッファ内の記憶領域から送信され、受信機のFIFOバッファ内に蓄積された後、受信機のシステムコントローラに送られる。
図18Aは、384*4バイトのデータワードとして構成された32DSDチャンネルの実施例におけるオーディオデータフレームのフォーマットを示している。一方、図19は、26*4バイトのデータワードとして構成された32DSDチャンネルの実施例における制御データフレームのフォーマットを示している。図18Aと図19の両方において、ビットゼロ(B0)が最初に送信され、ビット31(B31)が最後に送信される。これらのオーディオデータフレーム及び制御データフレームは、イーサネット物理層装置へのリンクを提供する媒体独立インタフェース(MII)218の接続に渡され、及びこのMII218の接続から受け取られる。MII218は、4ビット幅のデータ送信バスと、4ビット幅のデータ受信バスとを備え、これらはそれぞれPHYからの25MHz(又は25.4016MHz)のリンクレートに同期されている(clocked)。MII218は、更にデータ送信を開始するための送信イネーブル信号入力と、受信データの有効性を示す信号出力と、他のエラー及び信号状態表示とを有する。
図18Aのオーディオデータフレーム構造に示すように、オーディオデータフレームのペイロードは、32チャンネル64FsDSDオーディオの370サンプルを含んでいる。これらのチャンネルは、ビット毎に多重化されている。各32ビットワードは、32個のオーディオチャンネル用の1つの64FsDSDサンプルを表している。ワード13は、フレーム内の最初のDSDサンプルであり、ワード382は、最後のDSDサンプルである。オーディオデータワードのビット0は、常に、チャンネル1(システム内の最初のチャンネル)の1ビットサンプルデータであり、オーディオデータワードのビット31は、チャンネル32(システム内の最後のチャンネル)の1ビットサンプルデータである。以下に示す表3は、各チャンネルの連続するサンプルをオーディオフレームのデータワード内にどのように格納するかを示している。例えば、ワード13のビット0は、フレーム内の最初のDSDサンプルに関するチャンネル1のサンプルデータであり、ワード14のビット6は、フレーム内の2番目のDSDサンプルに関するチャンネル7のサンプルデータであり、ワード382のビット31は、フレーム内の最後のDSDサンプルに関するチャンネル32のサンプルデータである。
この表3は、32ビットワードのフレームフォーマットを表しているが、これらは、ワード(4バイト)として同時に送受されるのではなく、4ビット(ニブル)としてMIIに対し送受される。図18Bに示す単一の24DSDチャンネルフレーム用のMIIに供給されるニブルのシーケンスは、表4に示す通りである。14番目のデータの4バイトワード(ワード13)の最初は、105番目の4ビットニブル(ニブル104)の最初に対応する。表4における列の見出しTXD及びRXDは、それぞれMII送信データバス及びMII受信データバスを表し、これらのデータバスは、25MHz(又は25.4016MHz)クロックに同期してニブルを送受する。
ニブル0は、フレーム内の最初のニブルであり、プリアンブルパターン(0x5)の一部を含む。ニブル104は、オーディオデータフィールドの最初のニブル(ワード13の最初のニブル)であり、ニブル3063は、オーディオデータフィールドの最後のニブル(ワード382の最後のニブル)である。
図18Bは、24DSDチャンネルの実施例におけるオーディオデータフレームフォーマットを示している。この実施例では、フレームは、368*4バイトのデータワードから構成されている。オーディオデータフレームのペイロードは、352個のDSDサンプルから構成され、各サンプルは、24チャンネルのそれぞれからの1ビットを含んでいる。データワード15〜366は、オーディオデータペイロードを含んでいる。ワード2〜4は、発信元及び宛先MACアドレス用に確保されている。ワード5のビット0〜15は、CRCフィールドを除くデータ長フィールドの先頭からのバイトの総数を示し、この数は、ここでは1446バイトである。ワード5のビット16〜31、ワード6〜ワード12、及びワード13のビット0〜15は、UDP及びIPパラメータのために確保されたデータフィールドである。これらのデータフィールドは、UDP/IPのオプション用途に用いられる。UDP/IPの処理が不要の場合、送信機は、これらのフィールドをゼロで埋める。受信機は、IPバージョンを示す最初の4ビット(この具体例では、ワード5のビット16〜19)を除く全てのUDP/IPヘッダフィールドを無視してもよい。受信機は、IPバージョンフィールドのデータエントリを調べ、以下の表5に示すように、このデータエントリの値に応じて次のような動作を行う。
IPバージョンの検査は、将来のIPバージョン(すなわち、IPバージョン6)から現在のIPバージョン4への下位互換性を確実に保つために行う。将来のIPバージョンは、異なるヘッダ長を有する可能性があり、したがって、フレームフォーマットIDフィールドは、フレーム内の異なる位置に設けられる場合もある。IPバージョンフィールドを検査する安全策の意義は、(0x0又は0x4以外の値を有するために)これらのフレームが受信機によって破棄され、これにより、フレームフォーマットIDフィールドがワード13及びワード14において予想される位置に存在しないためにフレームが誤って解釈されることを防止できる点にある。
図18Bに示すワード13のビット16〜31及びワード14のビット0〜31は、MAC−DSDフレームフォーマットを指定すフィールドである。この48ビットのフレームフォーマットフィールドは、論理的に3つの別個の16ビット(4ニブル)セクションに分割され、これらのセクションはそれぞれ伝送に関する同一のフレームフォーマットデータの組を含んでいる。このように、所定のフレーム内において同じフレームフォーマットデータの組を3回繰り返すことにより、フレームフォーマット識別子が伝送エラーに対してロバストになり、すなわちデータの複数のコピーを送信することは、エラー保護機構として機能する。このデータを繰り返すことによるエラー保護機構により、16ビットを伝えるために48ビットを使用することが可能であれば、必要なエラー訂正能力を簡単に実現することができる。他の実施例として、例えば畳込み符号等のエラー訂正符号を用いてフレームフォーマットIDペイロードを送信してもよい。
3つの16ビットフレームフォーマットフィールドセクションは、それぞれ図20に示すような構造を有している。各16ビットセクションの最初のニブル(ビット0〜3)は、プロトコルマイナーバージョン(0x0−0xf)を指定する。プロトコルマイナーバージョンフィールドは、プロトコル仕様書のマイナー更新情報を示すために用いられる。最近のマイナーバージョンは、同じメジャーバージョンにおける先のマイナーバージョンに対する下位互換性を保っている必要があり、例えばバージョン1.7プロトコルには、バージョン1.6プロトコルの全ての機能が組み込まれている必要があり、バージョン1.7の送受信機は、バージョン1.6の送受信機と完全に通信できなくてはならない。各16ビットセクションの第2のニブル(ビット4〜7)は、プロトコルメジャーバージョン(0x0−0xf)を指定する。このフィールドは、プロトコル仕様書のメジャー更新情報を示している。同じプロトコルの先のメジャーバージョンとの下位互換性を保つことが望ましいが、これは必須条件ではない。各16ビットセクションの第3のニブル(ビット8〜11)は、フレームタイプ(0x0−0xi)を指定する。このフィールドは、プロトコルの所定のバージョンによって使用される異なるフレームタイプを示している。所定のメジャーバージョンレベル内では、フレームタイプの定義は一致している必要がある。オーディオフレームの基本的タイプは、常にタイプ0である。以下に示す表6は、この実施例におけるビット8〜11によって指定されるフレームタイプ番号から導き出される情報を示している。
各16ビットセクションの第4のニブル(ビット12〜15)は、例えば図13のフローチャートを用いて説明した同期目的のためのフラグフレーム等として使用される1以上のフラグを含む。フラグビットの定義は、メジャーバージョンプロトコルレベルに基づく。以下に示す表7は、この実施例におけるフレームフラグビット12〜15から導き出される情報を示している。特に、フラグフィールドのビット0は、44.1kHz同期フラグである。このフラグ0の値が1である場合、フレーム内の最初のDSDサンプルは、送信機において、44.1kHz同期クロックの立ち上がりエッジで受信されたことを示し、一方、フラグフィールドのビット0の値が0である場合、フレーム内の最初のDSDサンプルは、送信機において、44.1kHz同期クロックの立ち上がりエッジで受信されていないことを示す。
図21は、受信機において処理されるデータエントリの組を含む、フレームフォーマットIDの3個の4ニブルセクションを示している。セクション0は、ニブル0(n0)〜ニブル3(n3)を含み、セクション1は、ニブル4(n4)〜ニブル7(n7)を含み、セクション2は、ニブル8(n8)〜ニブル11(n11)を含む。受信されたデータセクションを用いて、受信機がどのようにデータ伝送エラーを排除するかについて、図21を用いて説明する。この技術では、送信時において3個のセクションのそれぞれが同じデータセットを含み、3個のセクションのそれぞれの対応するニブル位置におけるデータエントリが一致していることが既知である。詳しくは、n0=n4=n8、n1=n5=n9、n2=n6=n10、n3=n7=n11であることが予期される。受信機では、3個1組(以下、トリプレットという。)の対応するニブルを比較して同一であるか否かを判定し、多数決により正しいデータ値を判定する。図21に示す、受信機に供給されたデータの組について検討する。第1のニブルのトリプレットについては、n0=1101b、n4=1101b、n8=1101bであり、すなわち対応するニブルの値は同一であり、したがってこの値は正しい値であるとみなされ、プロトコルのマイナーバージョンを指定するフレームフォーマットの第1のニブルの値は、1101bに設定される。同様に、第2のニブルのトリプレットについては、n1=n5=n9=1110bであり、したがってこの値は正しい値であるとみなされ、プロトコルのメジャーバージョンを特定するフレームフォーマットの第2のニブルの値は、1110bに設定される。一方、第3のニブルのトリプレットについては、n2=n10=0110bであるが、n6=1011bであり、データ値間に不一致が生じている。この場合、多数決に基づき、n6が誤りであるとして拒否され、したがって、受信機は、フレームタイプに対応するフレームフォーマットの第3のニブルを0110bとして出力する。最後の第4のニブルのトリプレットについては、n3=0010b、n7=0111b、n11=1100bと、いずれのニブルも一致しない。この場合、多数決は不可能であり、したがって、フレームフォーマットを判定することができず、フレームは拒否される。
他の実施例では、修正されたフレームフォーマットエラー検出/訂正法を用いる。この他の実施例における手法は、データの繰り返し及び多数決法の使用を含んでいるが、更に、エラーとなることが既知のフラグニブルに100Base−TX PHY「MILL受信エラー」(rx_er)信号を用いることにより、エラー検出/訂正能力が向上されている。例えば、第4のニブルのトリプレットの値に、次のようなエラーフラグが関連付けられているとする。すなわち、n3=1000b(rx_er=true)、n7=0111b(rx_er=false)、n11=1000b(rx_er=true)であるとする。この場合、多数決では1000bが正しい値となるが、rx_er信号は、n3及びn11が不正な値であることを明示している。したがって、この他の実施例では、n3及びn11に優先してn7が選択され、フレームフラグフォーマット値は、0100bに設定される。
図18Bに示すフレームデータフィールドでは、24DSDチャンネルデータフレームの最後のワード(ワード367)は、巡回冗長検査(CRC)データを含むフィールドである。
以下に示す表4Bは、図18Bの単一の24DSDチャンネルフレーム用のMIIに供給されるニブルのシーケンスを示している。このシーケンスは、ニブル幅のMIIインタフェースを介して送信され、最下位ニブルから開始される。ニブル0〜8(32ビット)は、図18Bのワード0に対応し、ニブル8〜15は、図18Bのワード1に対応し、ニブル16〜23は、図18Bのワード2に対応し、このような関係が同様に続き、最後のニブルは、ワード366のビット28〜31に対応する。ここでは、最後のワードがニブルとして送信されないため、合計で2936個ニブル(367ワード)が図18Bの1446バイトフレームに対応している。図1を用いて上述したように、MII218は、それぞれ4ビット幅のデータ送信パス及びデータ受信パスを個別に備え、全二重動作に対応している。詳しくは、MII218は、物理層インタフェース(PHY)素子514、526からのクロックにより、リンクレート(25MHz又は25.4016MHz)に同期した4ビット幅の送信データバスと、送信イネーブル信号入力とPHYからのクロックにより、リンクレート(25MHz又は25.4016MHz)に同期した4ビット幅の受信データバスと、受信データ有効信号出力と、エラー及び信号状態表示とを備える。MIIインタフェースに関する完全な説明は、IEEE802.2(2000年版)セクション22に記載されているが、但し、本発明では、クロックレートは、IEEEにより標準化されている25.0000MHzではなく、25.4016MHzを用いてもよい。
ニブルは、物理層で処理される基本的なデータの単位である。各4ビットニブルは、信号ライン515を介して伝送するために、PHY素子514、526によって、5ビットシンボルにマッピングされる。送信される全てのフレームは、8バイトのプリアンブルパターンから始まる必要があり、これに続いて、物理層は、4ビットずつ同時に供給される最大1528バイトの任意のデータを受け取ることができる。受け取られたフレームは、プリアンブルを含み、受信バスを介して4ビットずつ供給される。
図18Bの24DSDチャンネルフレームフォーマットは、352個のDSDサンプルのフレームペイロードを含み、これらはそれぞれ32ビットデータブロックから構成されている。32ビットデータブロックのフォーマットを図22に示す。各データブロックは、約354nsの1DSDサンプル期間に対応している。データブロックは、各ビットが24オーディオチャンネルに対応する24ビットオーディオデータベクトルと、2ビットの補助的データと、6ビットのチェック(又はパリティ)ビットとから構成されている。図22に示すように、ビット番号0〜14は、オーディオデータベクトルのビット1〜15を含み、ビット番号15、23、27、29、30、31は、6ビットのパリティビットを含み、ビット番号26、28は、2ビットの補助データを含み、オーディオベクトルの残りの9ビットは、データブロックのビット番号16〜22、24、25に連続的に含まれる。
32ビットデータブロックの6ビットのパリティビットは、エラー制御機能を提供する。24ビットのオーディオデータ及び2ビットの補助データ(合計26ビット)は、ハミング符号化として知られる線形ブロック符号化の一種を用いて符号化されている。この実施例では(31,26)ハミング符号が用いられ、すなわち、26データビットの各ブロックに関する符号によって5(=31−26)個のパリティビットが生成される。32ビットブロックの最後のビットは、グローバルパリティビットであり、したがって、合計で6個のパリティビットと、26個のデータビットがある。(31,26)ハミング符号により、データブロック毎に2個のエラーを検出することができるが、データブロック毎に訂正できるのは、1つのエラーのみである。
24個のオーディオデータビット(番号1〜24)及び2個の補助データビットA0、A1から6個のパリティビットP0〜P5をどのように生成するかを図23Aを用いて説明する。パリティビットP0〜P5は、15個のデータ要素の所定のシーケンスに対してXNOR論理演算を行うことにより求められる。例えば、パリティビットP0は、オーディオベクトルビット1〜15に対するXNOR論理演算を行うことにより求められ、P1は、オーディオベクトル1〜8及びオーディオベクトル16〜22に対するXNOR論理演算を行うことにより求められる。グローバルパリティビットP5は、26個全てのデータ要素に対するXNOR論理演算を行うことにより得られる。受信機におけるエラー検出処理は、受信されたデータシーケンスにおいてパリティチェックの結果が正しいか否かを判定する処理を含む。この判定はシンドローム(syndrome)として知られる値を用いて行われる。受信データブロックの要素の様々なブロックに対するXNOR論理演算によって、シンドロームをどのように生成するかを図23を用いて説明する。シンドロームは、受信パリティビットと、受信情報から再計算されたパリティビットとを比較することによって得られる。以下に示す表8は、シンドロームの値を用いて、受信データブロックにおけるエラーをどのように検出し、訂正するかを示している。基本的には、シンドロームの6個全てのビットの値が1(s=111111)の場合、受信データシーケンスは正しいとみなされる。シンドロームの6番目のビットが0である場合、受信データブロックに単一のエラーがあるとみなされ、このエラーは、適切なビットを反転させることにより訂正できる。この適切なビットは、シンドロームの値から特定することができ、例えば、バイナリ表現でs=011011である場合、これは十進法では27であり、これにより、(ビット0〜31の)ビット番号27を反転させることにより、データブロックを訂正できることがわかる。また、シンドロームの6番目のビットが1であり、且つ他の5個のビットの全てが1ではない場合、例えばs=111011である場合、これはブロックが2以上のエラーを含んでいることを意味し、これらの複数のエラーは訂正することができない。
32ビットデータブロック(図22参照)は、32のグループにインタリーブされ、これによりグループのエラーの訂正が可能になる。インタリーブ処理は、データを所定の手法でパターン化する処理を含む。この処理は、各32ビットデータブロックに使用される(31,26)ハミング符号では、所定のブロック内における単一のビットエラーのみしか訂正できないために必要である。物理層の基本的なデータ単位は4ビットのデータニブルであるため、物理層における一回の同時的な破壊により、シンボルエラー(シンボルは、5ビットに相当する)が生じ、この結果、連続する4つのビットエラーが生じる。このような4ビットのバーストエラーの訂正を可能にするためには、エラーを含むビットを4つの異なる32ビットデータブロックに分散させる必要がある。
例えば、352個の32ビットデータブロックB0、B1、B2・・・B351が送信のためにパリティ生成器から出力されたとする。上述のように、図18Bに示す24DSDチャンネルフレームは、352個の32ビットデータブロックを含んでいる。インタリーバによって生成されるニブルのストリームを図24に示す。図24では、オーディオペイロードのビットは、例えば、ブロック2のビット0をB2[0]として示している。すなわち、ニブル0は、ブロック0、1、2、3のそれぞれのビット0を含み、ニブル1は、ブロック4、5、6、7のそれぞれのビット0を含む。したがって、ニブル0〜7は、集合的に、32個の32ビットデータブロックのそれぞれのビット0を含み、ニブル8〜15は、集合的に、32個の32ビットデータブロックのそれぞれのビット1を含み、ニブル2802〜2815は、32個の32ビットデータブロックのそれぞれのビット31を含んでいる。MAC−DSDによって用いられる32ブロックインタリーブ方式により、32個のインタリーブされたデータブロック(256個のニブル又はシンボル)のうち、最大8個のシンボルエラーの訂正が可能となる(すなわち、全体で32ビットを訂正することができる)。
要約すると、図18B、図20、図23を用いて上述した24DSDチャンネルの伝送に用いるMAC−DSDプロトコルのバージョンは、次のような主な特徴を有している。すなわち、このプロトコルは、2.8224MHzDSDオーディオの24チャンネル全二重転送、100Base−TX物理層、50μs以下のオーディオ待ち時間、256ニブルのブロックグループ毎に最大8個の間でのニブルエラーを訂正できる、256ニブルのインタリーブによるハミング線形ブロック符号エラー訂正、双方向の64FsDSDクロック伝送、44.1kHz同期信号の伝送を示すフレームフラグ等の特徴を有している。
図25は、24DSDチャンネルフレームフォーマットを用いた特定の実施例におけるMAC−DSDプロトコルのプロトコル層を示している。送信機1000では、プロトコル層は、パリティ生成及びデータフォーマット層1010を備え、このパリティ生成及びデータフォーマット層1010には、入力24チャンネルDSDオーディオストリーム及び最大5.6Mbpsの補助データストリームが供給される。このパリティ生成及びデータフォーマット層1010は、24個の各オーディオビット及び2個の補助ビットサンプルについて6個のパリティビットを生成し、32ビットフォーマットのデータブロックを生成する。パリティ生成及びデータフォーマット層1010から出力される32ビットデータブロックは、インタリーブ層1020に供給され、インタリーブ層1020は、データブロックを32個のグループにインタリーブし、図24を用いて説明したような4ビットニブルとして、インタリーブされたデータをMII218を介して、FIFOバッファ810に供給する。インタリーブ層1020からのデータニブルは、90.3168Mbpsの継続的なデータレートで送信機のFIFOバッファ810に供給される。ニブルは、(図14を用いて上述した)所定のバッファ占有閾値レベルに到達するまで、FIFOバッファ810に連続的に供給され、このバッファ占有閾値レベルにおいて、データフレームの組立が開始される。データフレームの組立の間、データニブルは、FIFOバッファ810から読み出され、フレームアセンブル層1040に渡される。フレーム組立処理は、ヘッダデータ生成モジュール1050を用いてフレームヘッダ情報を生成する処理及びCRC生成モジュール1060を用いて、CRCフィールド用のデータを生成する処理を含む。CRCフィールド用のデータとは、図18Bのフレームフォーマットのワード367に対応する。フレームは、352個の32ビットデータブロックに352個のDSDサンプルの1408ペイロードが含まれるように組み立てられる。フレームアセンブル層1040からのデータは、MIIフレーム(ニブルから構成される)として、101.6064Mbpsのレートで出力され、送信機の物理層1070に供給される。この物理層1070は、物理媒体を介したデータ送信を準備する。送信機1000の物理層1070は、各4ビットニブルから5ビットシンボルを生成し、これらのシンボルは、ツィストペアケーブルを介して、受信機1100に送信される。受信機1100においては、受信機1100の物理層1110が5ビットシンボルを受け取り、これらの5ビットシンボルを4ビットニブルからなるMIIフレームに変換する。MIIフレームは、101.6064Mbpsのレートで、フレーム逆アセンブル層1120に供給され、フレーム逆アセンブル層1120は、CRC検査を行い、後の処理のためにヘッダデータを分離する。フレーム逆アセンブル層1120は、フレームペイロードをMIIニブルとして(図15を用いて説明した)データ出力に関する待ち時間が小さいFIFOバッファ870に供給する。FIFOバッファ870からMIIニブルの形式で出力されたデータは、デインタリーブ層1160に渡される。デインタリーブ層1160は、32個のグループ内のデータをデインタリーブし、図22にフォーマットを示すような個々の32ビットデータブロックを再生する。32ビットデータブロックは、パリティ復号及びデータ抽出層1170に供給され、パリティ復号及びデータ抽出層1170は、パリティデータを用いてエラー制御を行い、再生ペイロードデータを抜き出す。このパリティ復号及びデータ抽出層1170からは、24チャンネルDSDオーディオデータストリーム及び最大5.2Mbpsの補助データストリームが出力される。なお、図25では、FIFOバッファ810、870は、いかなるデータの変換も行わず、したがって技術的にはプロトコル層ではないが、ここでは説明を明瞭にするために、プロトコル層の図式的表示にFIFOバッファを含ませている。
図18Bに示す24DSDチャンネルフレームの352個のサンプルペイロードの場合、送信バッファサイズ及び所定のバッファ占有閾値レベルは、図18に示す32DSDチャンネルフレームフォーマットの370個のサンプルペイロードに関する図14で説明したバッファサイズ及び占有閾値とは異なる。詳しくは、24DSDチャンネルフレームフォーマットについては、バッファサイズは、(42データブロックではなく)36データブロックに相当し、対応する最小占有閾値は、(先の例と同様)30データブロックに相当する。このバッファリングによって導入されるオーディオ待ち時間は、(42サンプルではなく)36DSDサンプルすなわち(12.2μsではなく)14.9μsとなる。
イーサネットリンク等のリンクの物理層によってデータ通信システムにDSDデータの送信機能を提供する上述のシステムは、他の種類の同期されたデジタルデータの伝送にも用いることができる。例えば、このシステムは、パルス符号変調(Pulse Code Modulated:以下、PCMという。)デジタルデータを伝送するよう構成してもよい。この技術に基づく物理層接続により、広い帯域幅のPCMデータ通信が実現される。
PCMデータは、DSDデータの64Fsクロック周波数よりかなり低い周波数(例えば、44.1〜96kHz)で同期されている。したがって、DSD伝送に加えてPCM伝送をサポートするために、ネットワーク機器間で、ツィストペアケーブルを介して、例えばワードクロック信号と呼ばれる周波数がより低いクロック信号が送受される。ワードクロックは、受信機においてPCMデータを再生するために用いられる。図18Bに示す24DSDチャンネル用のフレームフォーマットにより、24個の各オーディオチャンネルについて、フレーム毎に352ビットのデータを伝送することができる。基本的には、352個の24ビットDSDサンプル(チャンネル毎に1ビット)が単一のフレームで伝送される。データブロックは、リンクを介して、64Fsの総合的レート(aggregate rate)、すなわち44.1kHzオーディオデータについては2.8224MHz(64*44.1kHz)及び48kHzオーディオデータについては、3.072MHzで転送される。PCMデータを(44.1kHz−12.5%)〜(96kHz+12.5%)の所望の範囲の周波数で転送するためには、1フレーム毎に4〜13個の24ビットサンプルを含ませる必要がある。したがって、複数の代替的なデータフォーマットを定義し、送信機において、次のフレームにおいて幾つのサンプルを送信するべきかを判定し、送信機は、ルックアップテーブルを調べて、複数の代替的なデータフォーマットのうち、適切なデータフォーマットを選択する。I2S及びAES3(1992年版)及びパッケージPCMでは、データをシリアルサブフレームにサンプル化する。AES3は、線形に表現されたデジタルオーディオデータを少なくとも最長100mの従来のシールドつきツィストペアコンダクタを介して、イコライザにより等化することなく、シリアル伝送するためのオーディオエンジニアリングソサイエティ(Audio Engineering Society)規格である。図26Aは、AES3サブフレームフォーマットを示している。各AES3フレームは、独自に構成された2つのサブフレームからなり、フレーム転送レートは、通常、ソースサンプリング周波数に正確に一致する。第1のサブフレームは、プリアンブルXから開始され、プリアンブルは、192フレーム毎にZに変更される。これにより、チャンネル状態情報を組織化するために用いられるブロック構造が定義される。第2のサブフレームは、常に、プリアンブルYから開始される。図26Aに示すように、AES3サブフレームは、32ビットから構成され、これらのうち、ビット0〜3は、プリアンブルを格納し、ビット4(最下位ビット)〜27(最上位ビット)は、24ビットオーディオサンプルワードを格納し、ビット28は、オーディオサンプルワードに関連する有効性ビット(validity bit)である「V」フィールドであり、ビット29は、同じサブフレームにおいて伝送されるオーディオデータチャンネルに関連するユーザデータチャンネルの1ビットを含む「U」ビットであり、ビット30は、同じサブフレームにおいて伝送されるオーディオデータに関連するチャンネル状態情報の1ビットを含む「C」フィールド、すなわちチャンネル状態フィールドであり、ビット31は、タイムスロット4〜31が偶数個の1と偶数個の0とを含むように設定されたパリティビット、すなわち偶数パリティを格納する「P」フィールドである。Vフィールドのビット(Vビット)は、オーディオサンプルワードがアナログオーディオ信号への変換に適する場合は0に設定され、この他の場合は1に設定される。Cフィールドのビット(Cビット)は、例えばオーディオサンプルワードの長さ、オーディオチャンネルの数、サンプリング周波数等を指定するチャンネル状態情報のうちの1ビットである。チャンネル状態情報は、24バイトに再分割される192ビットブロックとして組織化される。各ブロックの先頭ビットは、プリアンブルZを有するフレームに格納される。
本発明に基づくPCM伝送のためのサブフレームフォーマットを図26Bに示す。この27ビットサブフレーム構造は、周知のAES3サブフレームフォーマットのUビット及びCビットフィールドを含み、物理層リンクを介してAES3フォーマットデータのトランスペアレントな伝送を実現している。図26Bに示すように、ビット0〜23は、データを含み、ビット24は、Uビットを含み、ビット25は、Cビットを含み、ビット26は、Mビットを含む。Uビット及びCビットは、入力AES3データストリームから直接又はユーザデータ及び送信機内のチャンネル情報バッファメモリから取り込まれる。Mビットは、本発明に基づく技術に固有の多重化ビット(multiplexed bit)であり、ビットストリームのある点に、以下の3つの指示情報(indications)のうちのいずれかを含めるために用いることができる。この3つの指示情報とは、外部のFs/n(nは整数)に同期されたデータサンプルを示し、Fsのn期間毎に全てのデータチャンネルに亘って繰り返されるSビット、AES3U/Cデータブロックの開始を示し、192サンプル毎に各チャンネルで繰り返されるZビット、及びサブサンプリングされたAES3Vビット状態を示すVビットである。指示情報S及びZは、それぞれオーディオデータストリーム内の特定のサンプルを識別するために用いられる。S及びZの指示情報は、生来的に周期的であるため、理論上は、サンプリングクロックに対して単にそれらの位相を特定すれば十分である。しかしながら、実際には、S及びZの指示情報は、リンクを起動時に速やかにロックし、リンク障害を早期に検出するために、適度に繰り返す必要がある。Mビットデータストリームでは、図27Bに示すように、指示情報Sをビットストリーム内の連続する2個の論理値1によって示し、また、図27Aに示すように、指示情報Zを単一の論理値1で示す。Mビットデータストリームにおいて、連続する2個の1によって同期サンプル(Sビット)を指示するために、送信機にはカウンタが設けられ、同期信号の発生をプリエンプト(pre-empt)する。Vビット状態は、各チャンネルについて指示情報Sの直後のビットにおいて示される。したがって、Vは、サンプル毎の頻度よりも少ない頻度で、チャンネル毎にSsyncの期間(多くの場合Fs/2048又は訳44.1kHzにおいて46ms)の間隔で示される。これは、Vビット状態が急速には変化しないとの仮定に基づいており、この仮定は、オーディオアプリケーションの大多数について妥当である。図27Cは、論理値1(真)であるVビット指示情報を示し、これにより、チャンネルサンプルが有効であることが示され、この結果、ビットストリーム内に論理値1が3個連続している(Sビット用の2つの1と、Vビット用の1つの1)。図27Dは、Sビットに対応する2個の論理値1の直後のVビット指示情報が0(偽)である場合を示している。これにより、チャンネルサンプルが無効であることが示される。Mビットは、複数の他のイベントを示すために用いられるため、イベント指示情報が同時に発生するか、又は近接して発生し、干渉する虞がある。このような理由から、指示情報Sは、指示情報Zに対して常に優先される。この結果、指示情報Zは時々失われ、したがって受信機におけるU/Cブロック位相のカウントを維持し、出力されるAES3ストリーム内のZビットをこれらの状態に設定することが望ましい。図28A〜図28Eは、指示情報Sと指示情報Zの相対的な位置関係の具体例であり、これらの相対的な位置関係において、指示情報Zをディスエーブルにするべきか否かを示している。図28Aでは、指示情報Zは、指示情報Sの第2のビットに重なり、したがって、Zはディスエーブルにされ、Sのみが示される。図28Bでは、受信Mビットシーケンスにおいて、指示情報Zは、指示情報Sの直前に発生し、この場合、Sが直後にくるためにZはディスエーブルにされる。図27Bの具体例においてZをディスエーブルにしないと、3個の論理値1が連続し、SとVの区別ができなくなってしまう。図28Cでは、指示情報Zは、指示情報Sに先行しているが、指示情報Zは、1ビット期間分、指示情報Sから離れている。この場合、ZとSが互いに干渉せず、十分区別できるため、Z及びSはいずれもイネーブルにされる。図28Dでは、指示情報Zが指示情報Sの直後にきており、区別ができなくなる虞があるため、Zはディスエーブルにされる。図28Eでは、指示情報Zは、指示情報Sから1ビット離れて後続している。この場合は、図28Cの場合と同様、ZとSが互いに干渉せず、十分区別できるため、Z及びSはいずれもイネーブルにされる。
機器間において、物理層を介してPCMデータを転送するために、PCMデータのフレームフォーマットは、図18Bを用いて上述したフォーマットと基本的に同じにする必要がある。詳しくは、各フレームの長さは、1472バイトであり、データペイロードは、352個の32ビットデータブロックから構成される。各32ビットブロックは、24個のオーディオデータビットと、2個の補助データビットとを含み、これにより352ビットのフレーム毎に、26個の独立したビットストリームセグメントが形成されている。PCMモードでは、24オーディオビットストリームは、パディング(padding)によって分離された複数のサンプルサブフレームに分割される。サブフレームの数は、個々のPCMサンプリング周波数に応じて、4〜13の範囲で変化する。これにより、44.1kHz−12.5%〜96kHz+12.5%の範囲のサンプリングレートをサポートすることができる。各サンプルサブフレームは、単一のPCMサンプルからのデータを含んでいる。
ビットストリーム毎に可能なサンプルサブフレームの数に応じて、それぞれに固有のサンプルサブフレーム及びパディングが定義される。全てのパディングビットの値は0である必要がある。このように定義することにより、受信機は、ビットストリームセグメントから、サンプルサブフレームを正しく抽出することができる。表9Aは、これらの構成を示している。一方、表9Bは、フレーム毎に9個のサンプルサブフレームを設ける特定の具体例におけるサブフレームの構成例を示している。
このように、図18Bに示すフレームフォーマットのPCMモードにおけるデータブロックオーディオビットの用途と、DSDモードにおけるオーディオビットの用途とは異なる。フレームフォーマットにおけるPCMモードとDSDモードの更なる違いは、図18Bに示すワード13、14における3つの同一のフレームIDセクションに含まれるフレームフォーマットID値に関連する。各セクションのフレームフォーマットIDフィールドは、図20を用いて説明した通りである。要約すれば、各フレームフォーマットIDセクションは、フラグフィールドと、フレームタイプフィールドと、プロトコルメジャーバージョンフィールドと、プロトコルマイナーバージョンフィールドとを備える。PCMモードに対応するために、フレームタイプフィールド値は、上述した表6に定義されたフレームタイプフィールド値より拡張される。図29の表に示すように、フレーム毎のサンプルサブフレームの数に対応する10個(4〜13の整数の個数)の異なるフレームタイプフィールド値の選択肢が定義されている。フレームフォーマットID(図18B及び図20のワード13、14参照)のフレームタイプフィールドについては、2つの別個のフォーマットが定義されている。これらのうち、一方のフォーマットは、DSDフレーム用のフォーマットであり、他方のフォーマットは、PCMフレーム用のフォーマットである。図30の表は、DSDフレーム用のフラグフィールドフォーマットを示している。この場合、フラグビット0は、フレーム内の第1のDSDサンプルが44.1kHz同期クロックの立ち上がりエッジと同時に受信されたか否かを示し、ビット1は、フレーム内の第1のDSDサンプルがFs/n同期クロックの立ち上がりエッジと同時に受信されたか否かを示す。図31の表は、PCMフレーム用のフラグフィールドフォーマットを示している。この場合、フラグビット0:1は、オーディオベースクロックの周波数を特定し、フラグビット3:2は、ベースクロックサンプリングレート倍率。サンプリングレートは、ベースクロック周波数Fsの1倍、2倍、4倍又は8倍として指定することができる。
上述したPCMフレームフォーマットは、24オーディオチャンネルに対応する具体例に関連する。他の実施例として、1FsPCMモード(44.1kHz又は48kHz±12.5%)に48オーディオチャンネルを対応させてもよい。この場合、各ビットストリームに2つのオーディオチャンネルが多重化される。この多重化は、サブフレーム毎に行ってもよく、ビット毎に行ってもよい。
以下、PCMモードのクロック及び同期機能について詳細に説明する。上述のように、ネットワークを介したPCMデータの伝送では、64FsMAC−DSDケーブルクロックに加えて、ワードクロックが必要である。これらの2つのクロックは、ツィストペアケーブルを介して個別に送信されるのではなく、64Fsクロック及びワードクロックは多重化される。この多重化処理は、64Fsクロックパルスの少なくとも1つのエッジをシフトさせることにより、すなわち「クロックパルス幅偏位(clock pulse width deviation)」を生成することにより、ワードクロック信号により64Fsクロック信号を変調する処理を含む。クロックパルス幅偏位は、64Fsクロックに組み込まれたワードクロックの位相指示情報(phase indicator)として機能する。クロックパルス幅偏位は、送信機において、ワードクロックの遷移に一致すると判定された64Fsクロック信号の遷移位置を特定することによって生成される。この実施例では、64Fsクロックの立ち上がり遷移をタイミング同期目的で用いているため、ワードクロックの位相は、64Fsクロックの立ち下がり遷移の位置をシフトすることによってエンコードされる。詳しくは、ワードクロック及び64Fsクロックの立ち上がり遷移が一致する場合、64Fsクロックにおいて先行する立ち下がりをシフトさせることによって多重化クロック信号が生成される。図32は、64Fs信号及びワードクロック信号に基づいて、多重化クロック信号を生成する処理を説明する図である。図32では、一番上に示す信号3210は、受信機内のPLLを同期させるために用いられる、変更されていない64Fsクロック信号であり、中間の信号3220は、受信機においてPCMデータフレームの同期をとるためのワードクロック信号であり、一番下に示す信号3230は、立ち下がり遷移がシフトされた、多重化されたクロック信号である。多重化クロック信号3230は、実際にMAC−DSDリンクを介して伝送されるクロック信号である。図32では、水平右方向が時間の経過を示している。この図32からわかるように、64Fsクロック信号の立ち上がりエッジ3212は、ワードクロック信号の立ち上がりエッジ3222に一致している。したがって、64Fsクロック信号3210において先行する立ち下がりエッジ3214が時間tclkmod分後方にシフトされ(多重化クロック信号3230のエッジ3234参照)、これによりクロックパルス幅が狭くされている。一方、64Fsクロック信号3210において後続する立ち下がりエッジ3216は、対応する時間tclkmod分前方にシフトされ(多重化クロック信号3230のエッジ3236参照)、これによりパルス幅が広くされている。すなわち、ワードクロックのエッジ3222の後の立ち下がり遷移3236は、先行する立ち下がりエッジ3234が前方に進められた時間と同じ時間後方に遅らされる。後続する立ち下がり遷移3236の遅延は、信号にDC成分が生じることを回避するための補償として行われる。信号のDC成分は、信号がAC結合システム(AC-coupled system)におてい伝送されている場合に、ワードクロック周波数における周期的な「ベースラインシフト(baseline shift)」を引き起こす虞がある。更に、ワードクロック及び64Fsクロックの一致に続いてクロックサイクルのこのような補償を行うことにより、64Fs信号におけるFs/nクロック周波数成分を減らすことができる。このような周波数成分を低減することは、PLL回路に供給されて、D/A及びD/A変換器オーディオサンプリングクロックを生成するために用いられる受信64Fs信号における低周波ジッタを低減するために重要である。図32に示すオフセット時間(tclkmod)は、図を明瞭にするために強調されている。実際の時間的シフト量は非常に小さく、例えば、2014Fs期間(Fs=44.1kHzにおいて11.07ns)程度である。なお、図32に示す多重化クロック信号3230に導入されるシフト又は「パルス幅偏位」は、全てのワードクロックサイクル毎に行う必要はない。クロックパルス幅偏位は、n×clk_fsクロックサイクル毎に行えばよい。ここで、nは、レジスタによって制御される整数を表す。このようにnワードクロックサイクル毎にクロックパルス幅偏位を導入することにより、周波数Fs/nのクロック信号が64Fsクロック信号に多重化される。サンプリングクロック(ワードクロック)の周波数は既知であるため、送信機によって伝えるべき情報は位相情報のみであり、この位相情報により受信機は、6ビットカウンタを用いてワードクロック信号を再生することができる。このカウンタは、Fsn信号によってリセットされ、64Fsクロックによってインクリメントされる。なお、図32に示す信号形式は、接続における送信側(多重化クロック信号を生成する。)と受信側(Fsクロックを生成する。)両方の端末に適用される。
図34は、PCM及びDSDデータの両方の送信に適応するMAC−DSD送信機3400(図6に示すFPGA512に同等な機器)の構成を示している。MAC−DSD送信機3400は、64Fsクロック発生器3410と、Fs同期信号発生器(ワードクロック発生器)3420と、クロック逓倍器3430と、カウンタ3440と、Sビット生成器3450と、符号化及びブロック構築モジュール3460と、インタリーバ3470と、FIFOバッファ3490と、フレームアセンブラ3492とを備える。
クロック逓倍器3430は、ワードクロック同期信号生成器3420からの出力に基づいて、64Fsクロック信号の所定の立ち下がりエッジをシフトさせることによって(図32を用いて説明した)パルス幅偏位クロック信号を生成する。パルス幅偏位クロック信号は、ツィストペアケーブルを介して、受信機に送信される。カウンタ3440は、64Fsクロック信号を追跡し、Fs同期信号の発生をプリエンプト(pre-empt)する。Sビット生成器3450によって実行されるオーディオビットストリームにおけるSビットの生成のためには、Fs同期信号をプリエンプトする必要がある。なお、PCMサンプルは、Mビット符号化によって、個々に同期マーカが付され(図27の27ビットPCMオーディオサンプル構造参照)、一方、DSDモードフレームは、送信機において設定されるフレームフラグと、受信機のFIFOの入り口で設定される、フラグが付されたフレームの最初のサンプルのマーカビットとに頼っている。Sビット生成器3450からの出力信号は、符号化及びブロック構築モジュール3460に供給され、符号化及びブロック構築モジュール3460は、パリティビットを生成し、PCMモードフレームのみにパディングビットを挿入し、フレームペイロードとなる32ビットデータブロック(図18B参照)を構築する。符号化及びブロック構築モジュール3460からの出力信号は、インタリーバ3470に供給され、インタリーバ3470は、インタリーブされたデータの4ビットニブルをFIFOバッファ3490に供給する。送信機のFIFOバッファ3490は、送信機のオーディオクロック領域とリンククロック領域(図6のPHY素子514)とをブリッジする(bridge)。送信機のFIFOバッファ3490は、25ビット幅を有する。この25ビットのうち、24ビットは、共存するDSD又はPCMオーディオサンプルの24個の各チャンネルに関係し、25番目のビットは、同期マーカとして確保されている。25番目のビットは、対応するDSD又はPCMオーディオサンプルが送信機のFs/nクロックエッジと同時に出現しているか否かを示している。これについて図33を用いて説明する。図3は、5個の連続するDSDサンプル(n−2),(n−1),n,(n+1),(n+2)と、これらのサンプルのローカルの64Fsクロック及びワードクロックに対する関係を示している。図33に示すように、DSDサンプルnは、ワードクロック及び64Fsクロックの両方の立ち上がりエッジに時間的に一致している。したがって、マーカビットの立ち上がりエッジは、DSDサンプルnの開始に合わせられている。送信機のFIFOバッファ3490からのデータは、(図14を用いて上述したように)占有閾値レベルに応じて読み出され、フレームアセンブラ3492に供給される。フレームアセンブラ3492からのデータは、送信機のPHYに供給される。送信機は、PCMモードとDSDモードで若干異なる起動処理を行う。PCMモードでは、送信機は、起動時に可能な限り早く送信を開始する。マークが付されたサンプルは、PCMサンプルサブフレーム「Mビット」符号化によって、明示的に示される。一方、DSDモードでは、マークが付されたサンプルは、明示的には示されず、図30に示すテーブルにおいて特定されているように、フレームフラグのフラグビット1から導出される。したがって、DSDモードの起動時には、送信機は、FIFOにおいてマークが付されたサンプルの1つ(すなわち、Fs/nクロックに同期するサンプル)が読出可能となるまで、第1のフレームの送信をホールドする。送信機がこのホールド状態にある間、サンプルは、FIFOのPHYクロック側で読み出され、破棄(dropped)される。マークが付されたサンプルが読出可能になると(フラグビット1によって示される)、このマークが付されたサンプルが第1のフレームの最初のサンプルとなるように、インタリーブ、符号化及びフレームフォーマット形成機構がイネーブルにされる。この観点から、フレームの送信は、バッファ状態(フレーム組立を開始できる状態)及びフレームフォーマットの規則に支配されているといえる。
図35は、PCMデータ及びDSDデータの両方の受信に適応するMAC−DSD受信機3500(図7)の構成を示している。MAC−DSD受信機3500は、Fs/n同期検出器3510と、Fsクロック発生器3520と、単安定カウンタ3530と、フレーム受信及び復号器3540と、FIFOバッファ3550と、デインタリーバ3560と、復号/ブロック解体モジュール3570とを備える。Fs/n同期検出器3510には、ツィストペアケーブルを介してパルス幅偏位クロック信号が供給され、Fs/n同期検出器3510は、この信号に基づいて、64Fsクロック及びワードクロックの相対的位相を判定する。Fs/n位相情報は、ワードクロック発生器3520に供給され、ワードクロック発生器3520は、ワードクロック(Fs)信号を出力する。
入力されてくるケーブルクロック信号は、受信機システムを同期させるために、受信機システムの局部位相同期ループに直接供給される。ワードクロック発生器3520から導出されたFsクロックは、この目的では使用することができない。これは、ワードクロック発生器3520が局部PLLに同期する逐次論理(sequential logic)を必要とし、したがって、抽出される信号は、常に、局部PLLに同期しているからである。このため、ワードクロック発生器3520の出力信号は、PLLの同期ソースには適していない。
なお、受信機のFsクロック信号は、Fs/n同期の結果、送信機のFsクロック信号と同じ位相を有する。Fs/n位相情報は、単安定カウンタにも供給される。単安定カウンタは、各Fs/n指示情報(Fs/n indication)の受信によってトリガされ、64Fsクロック期間を計数する。FIFO出力は、FIFOバッファ3550においてマークが付された最初のサンプルの検出によってディスエーブルにされ、この時点で、FIFOバッファ3550へのデータの充足が開始される。所定のリンク待ち時間に等しい64Fsサイクル数が経過した後、FIFOバッファ3550の出力がイネーブルにされる。所定のリンク待ち時間は、データの符号化及びフレームの組立のために送信機において生じる遅延及び復号処理のために受信機において生じる遅延を考慮して設定される。データリンクの所定の待ち時間は、ケーブルクロックによって送信されるFs/n同期信号に関して測定された64Fsクロック期間の整数倍となるようにプログラミングされる。
受信機のPHY素子526(図7参照)からのMIIフレーム(ニブルからなる)は、フレーム受信及び復号器3540に供給され、フレーム受信及び復号器3540は、ヘッダデータを分離し、エラー検査を行う。復号されたデータは、MIIニブルの形式で、FIFOバッファ3550に供給される。FIFOバッファ3550は、4ビットデータニブルをデインタリーバ3560に供給し、デインタリーバ3560は、この3ビットデータニブルをデインタリーブする。デインタリーブされたデータは、復号/ブロック解体モジュール3570に供給され、復号/ブロック解体モジュール3570は、オーディオデータペイロードを抽出し、オーディオデータストリームを出力する。
図36は、2個のサンプル同期リンクがパラレルに動作し、Fs/n同期信号を用いてこのパラレルリンクが同期されるシステムの構成を示している。このシステムは、送信機3600と、この送信機3600に第1のケーブル3603及び第2のケーブル3605を介して接続された受信機3700とから構成される。送信機3600は、第1のMAC−DSD送信機3610を備え、このMAC−DSD送信機3610は、第1のケーブル3603を介して、受信機3700の第1のMAC−DSD受信機3710に接続されている。送信機3600は、更に、第2のMAC−DSD送信機3620を備え、このMAC−DSD送信機3620は、第2のケーブル3605を介して、受信機3700の第2のMAC−DSD受信機3720に接続されている。2つのMAC−DSD送信機3610、3620は、内部クロックソース3630によって駆動され、内部クロックソース3630は、これらのMAC−DSD送信機3610に、64Fsクロック及びワードクロックの両方を供給する。受信機3700では、第1のMAC−DSD受信機3710のみがクロックソースとして動作し、これによりマスタクロックとしての役割を果たす。第1のMAC−DSD受信機3710は、第1のケーブル3603を介して受信した、多重化クロック信号から、ワードクロック信号及び64Fsクロック信号を導出する。なお、ここで独立したワードクロックソースを用いる場合、第1及び第2のMAC−DSD送信機3610、3620のいずれもマスタクロックソースとしては機能しない。リンクケーブル3603から供給された信号から抽出された64Fsクロック及びワードクロックは、PLL3730に供給され、PLL3730は、第1のMAC−DSD受信機3710及び第2のMAC−DSD受信機3720の両方に、ワードクロック信号及び64Fsクロック信号を供給する。第2のMAC−DSD受信機3720は、マスタクロックソースとしては機能せず、Fs/n指示情報(すなわち、クロックパルス幅偏位)を検出するために第2のケーブル3605を介して受信した多重化クロック信号を再クロックする必要がある。第1のケーブル3603を介したリンクにおける伝播遅延は、第2のケーブル3605を介したリンクにおける伝播遅延とは異なる場合が多い。第1のケーブル3603を介したリンクと、第2のケーブル3605を介したリンクとの間の伝播遅延の差は、受信された64Fsクロック信号のエッジの位置と、ローカルで再生されたクロック信号(PLL3730から出力される。)のエッジの位置とを比較し、及び受信したFs/n指示情報の位置と、ローカルで再生されたFsワードクロック(これもPLL3730から出力される。)とを比較することによって判定される。図37は、2つのリンク間で測定された伝播遅延の差の具体例を示している。図37の具体例では、多重化クロック信号3810において、シフトされた立ち下がりクロックエッジ(パルス幅偏位されたパルス)の直後にくる立ち上がりクロックエッジ3812は、ローカルで再生された64Fsクロック信号3822の対応する立ち上がりエッジ3822に対し、及びローカルで再生されたワードクロック信号3830の立ち上がりエッジ3832に対して、toffset分シフトしている。すなわち、受信したケーブルクロックFs/n指示情報は、ローカルのFsクロックエッジより時間的に遅れて出現している。ローカルのFsクロックエッジをクロックマスタMAC−DSDリンク上の受信されたケーブルクロックFs/n指示情報に同期するよう導出されたとすると、これは第2のリンク3605のケーブル伝播遅延がクロックマスタリンク3603におけるケーブル伝播遅延より長いことを示している。クロックマスタリンク3603と、他のリンク3605との間の伝播遅延の差は、toffsetである。時間toffsetは、上述の具体例のように、非クロックマスタリンク3605がクロックマスタリンク3603に対して遅れている場合、負の値となり、逆に、非クロックマスタリンク3605がクロックマスタリンク3603より進んでいる場合、正の値となる。
受信機においてtoffsetが判定されると、受信機の待ち時間単安定カウンタ3530を適応化し、クロックマスタリンクとの同期動作を確実にするために、以下のようなアルゴリズムが実行される。toffsetが正の場合(すなわち、非クロックマスタリンク3605がクロックマスタリンク3603より時間的に進んでいる場合)、リンク3605を介してFs/n指示情報が検出されると、MAC−DSD受信機3720内の待ち時間単安定カウンタ3530は、次のワードクロックエッジまで始動されない。一方、toffsetが負の場合(すなわち、非クロックマスタリンク3605がクロックマスタリンク3603より時間的に遅れている場合)、toffsetは、64Fs期間の整数倍に丸められ、この値から1を減算し、非マスタ待ち時間単安定カウンタ3530用の停止期間(timeout)を示す値を算出する。MAC−DSD受信機3720(非マスタ)内の待ち時間単安定カウンタ3530は、この停止期間に続く最初の64Fsクロック信号のクロックエッジにおいて始動される。これにより、非マスタ待ち時間単安定カウンタ3530の停止期間がクロックマスタ受信機内の単安定カウンタに同期する。
FIFOバッファ3550においてマークが付されたサンプルが検出されるより前に所定のリンク待ち時間が経過すると、これは、システムに障害が生じているか、又はリンク状態に対して、設定されたリンク待ち時間が小さすぎることを示している。したがって、マークが付されたサンプルが検出される前に待ち時間が経過した場合、割込信号が生成され、エラー指示ビットが設定される。表10は、7つのオーディオデータフォーマットのそれぞれに対応するリンク待ち時間を64Fs期間とμsとで示している。
図38は、MAC−DSDルータ4030による補助データのルーティングを説明する図である。
ルータ4030は、複数のMAC−DSD送受信機4000を備え、各MAC−DSD送受信機4000は、上述のように、イーサネット物理層機器を介して、補助データと音声データを伝送し、このようなビットストリームを受信すると、音声データと補助データストリームを分離する。なお、音声データのルーティング及び処理については、図38には示していない。
このシステムを介して補助データを伝送するために、補助データは、イーサネット型のパケット(Ethernet-like packet)にフォーマットされ、これらのパケットは、MAC−DSDプロトコルにより2個の補助データチャンネルに多重化される。
搬送される補助データの種類の具体例としては、以下に限定されるものではないが、例えば、記録と再生機能のためのリモートコントロールデータ、オーディオ及びビデオ機器のための一般的なリモートコントロールデータ、タイムコード、媒体コンテンツメタデータ、オーディオビジュアル再生のためのオーディオ供給(audio feed)に伴うストリーミングされた圧縮ビデオ画像などの補助メディア等がある。
送受信機4000の1つがビットストリームを受信すると、その送受信機4000は、補助データビットを分離し、補助データビットストリーム−RMIIインタフェース4010に供給する。RMIIは、削減型媒体独立インタフェース(Reduced Media Independent Interface)を表し、イーサネット方式における標準構成として確立されているが、この他に、広くサポートされ、マルチチャンネルイーサネット物理インタフェースにおいて用いられているMII(媒体独立インタフェース:media independent interface)、SMII(シリアル媒体独立インタフェース)、SS−SMII(ソース同期シリアル媒体独立インタフェース)等の他のインタフェースを用いてもよい。これらの全てのインタフェースの機能は、略々同等であるが、ピン数の削減とロジックの複雑性との間のトレードオフに関して、異なる設定を有している。
上述したように、補助データは、オーディオデータビット内に分散された、周期的な単一のビット又はビットの小さなグループとして搬送される。
RMIIインタフェース4010は、MAC−DSDプロトコル内の2個のチャンネルからの補助データビットをデータパケットに変換するこのデータパケットは、イーサネットプロトコルデータパケットを模倣するよう設定される。データパケットは、MAC−DSD送受信機の他方の1つ(又は、「同報通信」メッセージの場合、両方のMAC−DSD送受信機)を指定するパケットアドレスを有する。
擬似イーサネットパケットは、従来のイーサネットスイッチ回路4020に供給され、イーサネットスイッチ回路4020は、パケットアドレスに基づいてルーティングを行う。そのルーティングに基づいて、パケットは、補助ビットストリーム−RMIIインタフェース4010に戻され、MAC−DSDチャンネルを介して適切に搬送するために、補助データチャンネルフォーマットに再フォーマットされる。補助データは、インタフェース4010から、適切な1つ又は複数の送受信機4000に渡される。
図39は、補助データを搬送するためのプロトコルの概要を示している。
図39の一番下には、イーサネット物理インタフェース(PHY)層を示している。この層は、図39に示すプロトコルと標準のイーサネットプロトコルの間で共通の層である。物理層データフレームの冒頭には、プリアンブルのみが設けられている。
物理層の上位には、上述のように、1448バイトのフレームで構成されたMAC−DSDフレームフォーマットのデータを設けることが定められている。この上位では、ペイロード符号化により、順方向誤り訂正とインターリービングを含む26個の64Fsチャンネル(ビットストリーム)が提供されている。但し、このチャンネル数は、実施例に応じて任意に選択される。
更に、上述のように、ペイロードは、例えば、DSD又はPCMフォーマットのオーディオビットストリームと補助データビットとを含むことができる。補助データの場合、512バイトのフレームは、2個の補助データチャンネルからなる連続した128Fsビットストリームとして構成される。この512バイトのフレーム内では、イーサネットデータフレームフォーマットが定義されている。(512バイトは、第1の実施例において用いられているフレーム長の具体例に過ぎない。他の実施例においては、従来のイーサネット伝送のための最高のフレームの長さである1536バイトまでの長さであれば、異なるフレームの長さを用いることができる)。
したがって、このシステムは、物理的なビットストリームの残りの部分から分離されるとイーサネット補助データフレームであるように見えるフレームを搬送する。但し、これらのフレームは、従来のイーサネットプロトコルによっては搬送されず、これに代えて、2個の補助データチャンネルを形成する128Fsビットストリームに挿入されて搬送される。すなわち、擬似イーサネットフレームは、オーディオデータビット内に分散された連続した補助データビットとして伝送される。従来のイーサネットデータ処理装置は、これらのフレームをイーサネットフレームとして直接認識することはできない。
図40は、補助データフレームのデータ構造を示している。このデータ構造は、固定ヘッダ4040、宛先アドレス4050、長さフィールド4060、ペイロード4070及び誤り検出符号4080を含む。この実施例における、フレームの全長は、最高128ワードであり、これは、512個の8ビットバイトに相当する。
図41は、図38に示すインタフェース4010及びスイッチ4020のデータ受信モードの動作を説明する図である。
補助データの2つの論理チャンネルを含み、MAC−DSD送受信機4000において分離された128Fs補助データビットは、フレーム識別器4100に供給される。フレームは、補助データストリームにおいて、01111111110(1個の0、9個の1、1個の0)を含む同期フラグによって特定される。そして、フレームは、シリアルに伝送される。同期フラグの一意性を確実にするために、フレームデータにおける8個の連続する1の直後には、必ず0を挿入(伝送)する。したがって、9個の連続する1は、同期フラグのみを示す。付加的な0は、8個の1に続くビットが何であるかにかかわらず挿入される。フレームの最後には、別の同期フラグを伝送する。フレームが伝送されていない期間は、ビットストリームは、連続的な同期フラグを含む。
したがって、フレーム識別器4100は、受信データを調べて、9個の連続する1の存在を検出し、これによりフレーム同期フラグ検出する。
次に、データは、デスクランブラ4110に渡される。ここで、データをスクランブル処理する理由について説明する。
上述のような方式では、1が頻繁に連続するような特徴を有するデータペイロードに対して、多数の0が挿入され、これにより、送信すべきデータ量が大幅に大きくなる。これにより、システムの有効帯域幅が著しく減少する場合がある。ここで、ビットスタッフィング(付加的な0の挿入)を行う前に、畳込み符号器によってデータをスクランブルすることによって、このような事態を回避することができる。この場合、付加的なゼロの挿入によるデータ量の増加を約1/(28)(256ビットに対する1ビット、すなわち0.39%)程度に抑えることができる。
このスクランブル処理を行うスクランブリングエンコーダを図43に示し、対応するデコーダを図44に示す。
エンコーダは、9ビットシフトレジスタと排他的論理和ゲートから構成され、これにより、入力V及び出力Wは、以下のような関係となる。
W=V*W−5*W−9
図44に示すデスクランブル回路も9ビットシフトレジスタと排他的論理和ゲートから構成され、これにより入力Y及び出力Zは、以下のような関係となる。
Z=Y*Y−5*Y−9
なお、スクランブラもデスクランブラも信号を遅延させることはない。したがって、スクランブラとデスクランブラのカスケードによって演算的遅延が生じることはない。
すなわち、デスクランブラ4110(図41)によって、まず、全ての付加的な0(すなわち、8個の連続する1の後の0)が取り除かれ、次に、図44のデスクランブラによってデータをデスクランブルする。
これにより得られたデスクランブルされたデータは、デュアルポートランダムアクセスメモリ(dual port random access memory:以下、DPRAMという。)4120に渡される。DPRAM4120は、それぞれが少なくとも単一のデータパケットを格納できる2つの記憶領域を有している。データは、一方の記憶領域から読み出されている間、他方の記憶領域に書き込まれ、次にそれぞれ逆の処理が行われる。実質的にパケットの全てがDPRAMの一方の記憶領域にロードされ、及びそのとき、チャンネルプロトコルが許せば(後述の説明参照)、データのパケットは、RMIIインタフェース4130によって読み出される。このデータは、RMIIインタフェース4130からイーサネットスイッチ回路4020に渡される。この処理の詳細については後述する。
図42に示すように、RMIIインタフェース4130は、イーサネットスイッチチップ4020からデータパケットを受け取ると、このデータパケットを更なるDPRAM4200に保存する。データのパケットがDPRAM4200において構築されると、このパケットは、スクランブラ4210(図43)に渡される。スクランブラ4210は、スクランブルされているデータストリームにおいて8個の連続する1の後に0を加えるビットスタッフィング器(bit stuffer)を備える。更に、パケットはスクランブラ4210からフレームマーカ付与器4220に渡され、ここで、フレーム同期コード01111111110が挿入される。そして、これにより得られるビットストリームは、MAC−DSDリンクの補助データチャンネルを介して伝送される。
イーサネットスイッチチップ4020とRMIIインタフェース4130は、いずれも、例えば、50MHzで動作するクロック信号源4140等からのRMIIインタフェース同期信号の制御の下で動作する。なお、他の実施例として、例えば、オーディオマスタクロックに同期されたクロックレート等の非標準レート(non-standard rate)でRMIIインタフェースとイーサネットスイッチチップ4020とを動作させることにによって、構成を簡素化できる。このような構成では、クロック信号源4140を例えば、上述の図6〜図10に示すような64Fsクロック信号(又は、これに関連する信号)が入力されるクロック発生器に置き換えてもよい。
RMIIインタフェース4130とイーサネットスイッチ回路4020との間で用いられる伝送プロトコルは、所謂100BASE−T半二重方式(100 Base-T half duplex system)である。これは、いかなる時刻において、通信における一方のパートナのみが情報を送信できる100Mbps構成である。したがって、(イーサネットスイッチ回路4020への又はイーサネットスイッチ回路4020からの)伝送は、双方向である場合もあるが、データ転送は、いかなる瞬間においても、2つの方向のうちの1方向のみでしか行われない。以下、100BASE−T半二重方式を用いる理由について説明する。
(フレーム識別器4100が受信する)MAC−DSD送受信機からの受信データレートは、128Fs又は約5.6Mbpsである。したがって、これはデータパケットをRMIIインタフェース4130からイーサネットスイッチチップ4020に送信すべき最高速度である。また、これは、MAC−DSD送受信機4000を介した再伝送時において、イーサネットスイッチチップ4020からRMIIインタフェース4130にデータを送信することができる最高速度でもある。単一のルータを介して接続されたいくつかのノードを有するシステムでは、ある時刻に、単一の出力MAC−DSDチャンネルに複数のパケットがルーティングされることはよくある。このことは、原理的に、イーサネットスイッチチップ4020が単一のRMIIインタフェースに対し、5.6Mbpsより速いデータレートでデータを送信しようとする可能性があることを意味する。
イーサネットスイッチチップ4020は、標準イーサネットデバイスである。このようなデバイスは、安価であり、様々な種類の送信エラー又は受信エラーを回避するためのロジックを含んでいるので、好適であると考えられる。しかしながら、100BASE−Tイーサネットスイッチチップ4020は、ストリーミングされるデータレートが5.6Mbpsに制限された出力チャンネルに対処するためのロジックを含んでいない。
このような問題を回避するためには、RMIIインタフェースがイーサネットスイッチチップ4020から受け取ったデータのフローを調整できる能力を有する必要がある。これは、半二重構成を用いて実現される。
基本的な事項として、RMIIインタフェースは、「RMII CRS_DV」と呼ばれる信号又は、搬送波検知信号を用いて、イーサネットスイッチ回路4020にデータを送ろうとしていることを示すことができる。一方のパーティがこの信号を送ると、通信中の他方のパーティは、現在のフレームの伝送を完了させることはできるが、次のフレームの伝送を開始することはできなくなる。この実施例では、この方式を変更し、以下に説明する2つの手法のうちのいずれかによってRMII CRS_DV信号を生成できるようにする。図46に示すように、ORゲートは、RMII機器が生成することができる2つの信号を結合する。一方の信号は、フレームが伝送されようとしているときにのみ生成される従来の搬送波検知信号であるフレーム生成信号CRS_DVであり、もう一方の信号は、RMII_lockと呼ばれる信号である。
RMII_lockは、イーサネットスイッチチップ4020がいかなるデータもRMII機器に送信しないようにするための「偽」搬送波検知信号として用いられる。RMII_lockは、RMII機器又は更にダウンストリーム側の機器がそれ以上のデータを受け取る準備ができていない場合に用いられる。RMII_lockを生成する手法について、図46を用いて説明する。
図46は、RMII機器4130の状態を示す状態図である。
まず、アイドル状態4300において、MAC−DSD送受信機から、イーサネットスイッチチップ4020に転送するべき450バイト以上のデータを受け取ると、RMII_lockがアサートされる(状態4310となる)。これに続いて、RMII機器4130は、CRS_DVをアサートする。このとき、イーサネットスイッチチップ4020がRMII機器4130にデータを返そうとしている場合、イーサネットスイッチチップ4020は、現在のフレームに関する処理を完了することができるが、新たなフレームの転送を開始することは許可されない。しかしながら、イーサネットスイッチチップ4020は、100Mbpsで動作しており、この速度は、全ての(又は、他の実施例においては少なくとも幾つかの)MAC−DCD送受信機のデータレートより速いため、供給されてくるデータが450バイトに達した時点でRMII_lockをアサートしても、イーサネットスイッチチップ4020は、フレーム全体をRMII機器4130に返す処理を完了することができる。
そして、入力メモリの占有量が486バイトより大きくなると、RMII機器は、データをイーサネットスイッチチップ4020に供給する(状態4320)。486バイトの閾値は、5.6Mbpsと100Mbpsの2つのデータレートの比較に基づいて、イーサネットスイッチチップ4020にフレームの略々全体が転送される時刻までにそのフレームの残りの部分がDPRAMに供給されるように選択された値である。そして、RMIIインタフェースは、アイドル状態に戻る。
入力メモリが450バイト未満になり又は、出力メモリが486バイト未満になり、及びRMII機器4130がアイドル状態になると、RMII_lockがデアサートされる(4330を述べる)。
受信側では、イーサネットスイッチチップ4020からデータを受け取り(状態4340)、及び受信が完了すると、RMII_lockがアサートされ(状態4350)、RMII機器4130は、アイドル状態に戻る。上述のように、メモリがスイッチ回路から受け取ったデータを出力するまでは、RMII_lockは、デアサートされない。
本発明は、ソフトウェア、プログラミング可能なハードウェア(例えば、FPGA又はASIC)、ハードウェア又はこれらの組み合わせのいずれによって実現してもよい。本発明をソフトウェアコンポーネントとして実現する場合、本発明の範囲は、このようなソフトウェアを提供する提供媒体(例えば、ストレージ媒体や伝送媒体等)を含む。
添付の図面を参照して本発明を詳細に説明したが、本発明は上述の実施の形態の詳細に限定されるものではなく、当業者は、添付の請求の範囲に定義された本発明の思想及び範囲から逸脱することなく、上述の実施の形態を様々に変更及び修正することができる。