(57)【特許請求の範囲】
【請求項１】
ネットワークに接続された複数のノードの１つを形成する通信装置であって、
前記ネットワークに接続されたルートノードの出力する時間値によって同期化された時間値を発生するサイクルタイマと、
オーディオデータのサンプルをカウントするカウント値を生成するサンプルカウント生成手段と、
前記同期化された時間値に対応する時間値に最大遅延量を加味した同期時間値を生成する同期時間値生成手段と、
所定時間間隔で、前記サンプルカウント値と同期時間値とを含む同期パケットを生成し、生成した同期パケットを前記ネットワークに出力する同期パケット出力手段と
を有する通信装置。
【請求項２】
ネットワークに接続された複数のノードの１つを形成する通信装置であって、
前記ネットワークに接続されたルートノードの出力する時間値によって同期化された時間値を発生するサイクルタイマと、
前記ネットワークに接続されたワードクロックノードから同期情報を受信する受信手段と、
前記同期化された時間値と前記受信した同期情報に基づいてワードクロックを発生するクロック発生手段と、
前記ワードクロックに基づいてオーディオデータのサンプルを順次供給するデータサンプル供給手段と、
前記同期情報に基づいてオーディオデータのサンプルカウント値を供給するサンプルカウント供給手段と、
前記カウント値に転送最大遅延量を加味した同期カウント値を生成する同期カウント生成手段と、
前記供給された複数のサンプルと前記同期カウント値とを含むデータパケットを生成し、生成したデータパケットを前記ネットワークに接続された受信ノードに送信する送信手段と
を有する通信装置。
【請求項３】
ネットワークに接続された複数のノードの１つを形成する通信装置であって、
前記ネットワークに接続されたルートノードの出力する時間値によって同期化された時間値を発生するサイクルタイマと、
前記ネットワークに接続されたワードクロックノードから同期情報を受信する受信手段と、
前記同期化された時間値と前記受信した同期情報に基づいてワードクロックを発生するクロック発生手段と、
前記ワードクロックに基づいてオーディオデータのサンプルを順次供給するデータサンプル供給手段と、
前記同期化された時間値に転送最大遅延量を加味した同期時間値を生成する同期時間値生成手段と、
前記供給された複数のサンプルと前記同期時間値とを含むデータパケットを生成し、生成したデータパケットを前記ネットワークに接続された受信ノードに送信する送信手段とを有する通信装置。
【請求項４】
ネットワークに接続された複数のノードの１つを形成する通信装置であって、
前記ネットワークに接続されたルートノードの出力する時間値によって同期化された時間値を発生するサイクルタイマと、
前記ネットワークに接続されたワードクロックノードから同期情報を受信する同期情報受信手段と、
前記同期化された時間値と前記受信した同期情報に基づいてワードクロックを発生するクロック発生手段と、
前記ネットワークに接続された送信ノードから、複数のサンプルと該複数のサンプルに関連した同期カウント値とを含むデータパケットを受信するデータ受信手段と、
前記同期情報と前記同期カウント値とに基づくタイミングで、前記データパケットに含まれる複数のサンプルを、前記ワードクロックに応じて１サンプルずつ順次出力するサンプル出力手段と
を有する通信装置。
【請求項５】
ネットワークに接続された複数のノードの１つを形成する通信装置であって、
前記ネットワークに接続されたルートノードから当該通信装置までの通信の到達遅延時間を計測する計測手段と、
前記計測手段が計測する到達遅延時間に応じて補正値を決定する決定手段と、
前記ルートノードの出力する時間値を受信する時間値受信手段と、
受信した時間値を前記補正値に応じて補正する補正手段と、
補正された時間値に基づいて同期化された時間値を発生するサイクルタイマと、
前記ネットワークに接続されたワードクロックノードから同期情報を受信する同期情報受信手段と、
前記同期化された時間値と前記受信した同期情報に基づいてワードクロックを発生するクロック発生手段と
を有する通信装置。
【請求項６】
ネットワークに接続された複数のノードの１つを形成する通信装置であって、
前記ネットワークに接続されたルートノードの出力する時間値によって同期化された時間値を発生するサイクルタイマと、
前記ルートノードから当該通信装置までの通信の到達遅延時間を計測する計測手段と、
前記計測手段が計測する到達遅延時間に応じて補正値を決定する決定手段と、
前記ネットワークに接続されたワードクロックノードから同期情報を受信する同期情報受信手段と、
受信した同期情報を前記補正値に応じて補正する補正手段と、
前記同期化された時間値と前記補正された同期情報に基づいてワードクロックを発生するクロック発生手段と
を有する通信装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、通信技術に関し、特に複数の通信装置間で同期をとるための通信技術に関する。
【０００２】
【従来の技術】
ＩＥＥＥ１３９４規格のデジタルシリアル通信が普及しつつある。ＩＥＥＥ１３９４規格では、複数の通信ノードを接続してネットワークを構成することができる。例えば、１つの受信ノードは、複数の送信ノードからオーディオデータを受信することができる。
【０００３】
第１及び第２の送信ノードが同時に１つの受信ノードにデータを送信するとする。この場合、ノード間の距離の相違等により、通常、受信ノードが第１の送信ノードから受信する時刻と第２の送信ノードから受信する時刻が異なる。例えば、第１の送信ノードからデータを受信し、その後に第２の送信ノードからデータを受信する。
【０００４】
送信ノードと受信ノードは、それぞれ独自のサイクルタイマを有する。各サイクルタイマは、同期がとれていない。受信ノードは、第１の送信ノードから受信するデータと第２の送信ノードから受信するデータとの同期をとることが困難である。
【０００５】
また、１つの送信ノードが第１及び第２の受信ノードに同じデータをほぼ同時に送信することがある。しかし、上記と同様に、通常、第１の受信ノードが受信する時刻と第２の受信ノードが受信する時刻が異なる。第１及び第２の受信ノードは、それぞれ自己のサイクルタイマに応じて、受信したデータの再生を行うので、第１及び第２の受信ノードの再生処理にずれが生じやすい。
【０００６】
【発明が解決しようとする課題】
受信ノードは、複数の送信ノードから送信されるデータの同期をとることが困難である。また、送信ノードが複数の受信ノードにデータを送信する場合には、複数の受信ノード間における同期をとることが困難である。
【０００７】
本発明の目的は、複数の通信ノード間で通信するデータの同期をとることができる通信装置を提供することである。
【０００８】
【課題を解決するための手段】
本発明の一観点によれば、ネットワークに接続された複数のノードの１つを形成する通信装置は、前記ネットワークに接続されたルートノードの出力する時間値によって同期化された時間値を発生するサイクルタイマと、オーディオデータのサンプルをカウントするカウント値を生成するサンプルカウント生成手段と、前記同期化された時間値に対応する時間値に最大遅延量を加味した同期時間値を生成する同期時間値生成手段と、所定時間間隔で、前記サンプルカウント値と同期時間値とを含む同期パケットを生成し、生成した同期パケットを前記ネットワークに出力する同期パケット出力手段とを有する。
【０００９】
また、本発明の他の観点によれば、ネットワークに接続された複数のノードの１つを形成する通信装置は、前記ネットワークに接続されたルートノードの出力する時間値によって同期化された時間値を発生するサイクルタイマと、前記ネットワークに接続されたワードクロックノードから同期情報を受信する受信手段と、前記同期化された時間値と前記受信した同期情報に基づいてワードクロックを発生するクロック発生手段と、前記ワードクロックに基づいてオーディオデータのサンプルを順次供給するデータサンプル供給手段と、前記同期情報に基づいてオーディオデータのサンプルカウント値を供給するサンプルカウント供給手段と、前記カウント値に転送最大遅延量を加味した同期カウント値を生成する同期カウント生成手段と、前記供給された複数のサンプルと前記同期カウント値とを含むデータパケットを生成し、生成したデータパケットを前記ネットワークに接続された受信ノードに送信する送信手段とを有する通信装置。
【００１０】
また、本発明のさらに他の観点によれば、ネットワークに接続された複数のノードの１つを形成する通信装置は、前記ネットワークに接続されたルートノードの出力する時間値によって同期化された時間値を発生するサイクルタイマと、前記ネットワークに接続されたワードクロックノードから同期情報を受信する受信手段と、前記同期化された時間値と前記受信した同期情報に基づいてワードクロックを発生するクロック発生手段と、前記ワードクロックに基づいてオーディオデータのサンプルを順次供給するデータサンプル供給手段と、前記同期化された時間値に転送最大遅延量を加味した同期時間値を生成する同期時間値生成手段と、前記供給された複数のサンプルと前記同期時間値とを含むデータパケットを生成し、生成したデータパケットを前記ネットワークに接続された受信ノードに送信する送信手段とを有する。
【００１１】
また、本発明のさらに他の観点によれば、ネットワークに接続された複数のノードの１つを形成する通信装置は、前記ネットワークに接続されたルートノードの出力する時間値によって同期化された時間値を発生するサイクルタイマと、前記ネットワークに接続されたワードクロックノードから同期情報を受信する同期情報受信手段と、前記同期化された時間値と前記受信した同期情報に基づいてワードクロックを発生するクロック発生手段と、前記ネットワークに接続された送信ノードから、複数のサンプルと該複数のサンプルに関連した同期カウント値とを含むデータパケットを受信するデータ受信手段と、前記同期情報と前記同期カウント値とに基づくタイミングで、前記データパケットに含まれる複数のサンプルを、前記ワードクロックに応じて１サンプルずつ順次出力するサンプル出力手段とを有する。
【００１２】
また、本発明のさらに他の観点によれば、ネットワークに接続された複数のノードの１つを形成する通信装置は、前記ネットワークに接続されたルートノードから当該通信装置までの通信の到達遅延時間を計測する計測手段と、前記計測手段が計測する到達遅延時間に応じて補正値を決定する決定手段と、前記ルートノードの出力する時間値を受信する時間値受信手段と、受信した時間値を前記補正値に応じて補正する補正手段と、補正された時間値に基づいて同期化された時間値を発生するサイクルタイマと、前記ネットワークに接続されたワードクロックノードから同期情報を受信する同期情報受信手段と、前記同期化された時間値と前記受信した同期情報に基づいてワードクロックを発生するクロック発生手段とを有する
また、本発明のさらに他の観点によれば、ネットワークに接続された複数のノードの１つを形成する通信装置は、前記ネットワークに接続されたルートノードの出力する時間値によって同期化された時間値を発生するサイクルタイマと、前記ルートノードから当該通信装置までの通信の到達遅延時間を計測する計測手段と、前記計測手段が計測する到達遅延時間に応じて補正値を決定する決定手段と、前記ネットワークに接続されたワードクロックノードから同期情報を受信する同期情報受信手段と、受信した同期情報を前記補正値に応じて補正する補正手段と、前記同期化された時間値と前記補正された同期情報に基づいてワードクロックを発生するクロック発生手段とを有する。
【００１３】
【発明の実施の形態】
図１は、本発明の第１の実施例による通信ネットワークの構成を示すブロック図である。
本実施例では、ＩＥＥＥ１３９４規格に準拠した"audio and music data transmission protocol"の規定に則ったパケット転送が可能である。そのパケット転送は、ＩＥＥＥ１３９４規格のアイソクロナスパケット転送で行うことが好ましい。
【００１４】
ＩＥＥＥ１３９４バス４には、ワードクロック（ＷＣ）マスタノード１とＷＣスレーブノード２，３が接続されている。ＷＣスレーブノード２は送信ノード（以下、Ｔｘノードという）であり、ＷＣスレーブノード３は受信ノード（以下、Ｒｘノードという）である。バス４には、複数のＴｘノード２及び／又は複数のＲｘノード３を接続してもよい。
【００１５】
ＷＣマスタノード１はサイクルタイマ１ａを有し、Ｔｘノード２はサイクルタイマ２ａを有し、Ｒｘノード３はサイクルタイマ３ａを有する。サイクルタイマ１ａ，２ａ，３ａは、基本的に約２５ＭＨｚで動作するカウンタである。
【００１６】
ＷＣマスタノード１は、バス４を介して、Ｔｘノード２及びＲｘノード３にＷＣパケット５を送信する。ＷＣパケット５は、同期をとるためのパケットであり、システムタイム５ａ及びサンプルカウント５ｂを含む。
【００１７】
ＷＣマスタノード１は、例えばＷＣパケット５−２４、５−３２、５−４０等を所定間隔で順次送信する。ＷＣパケット５−２４は、第２４サンプルのオーディオデータの同期をとるためのパケットである。ＷＣパケット５−３２及び５−４０は、それぞれ第３２サンプル及び第４０サンプルのオーディオデータの同期をとるためのパケットである。
【００１８】
Ｔｘノード２は、ＷＣマスタノード１から受信したＷＣパケット５に応じてタイミングを調整し、データパケット６をバス４を介してＲｘノード３へ送信する。データパケット６は、サンプルカウントを示すＤＢＣ６ａ及び８つのサンプルデータ６ｂを含む。
【００１９】
Ｔｘノード２は、例えばデータパケット６−２４、６−３２、６−４０等を所定間隔で順次Ｒｘノード３へ送信する。データパケット６−２４は、第２４〜３１サンプルのオーディオデータ６ｂを含む。データパケット６−３２及び６−４０は、それぞれ第３２〜３９サンプル及び第４０〜４７サンプルのオーディオデータ６ｂを含む。
【００２０】
Ｒｘノード３は、ＷＣマスタノード１から受信したＷＣパケット５に応じてタイミングを調整し、Ｔｘノード２から受信したデータパケット６内のサンプルデータ（例えばオーディオデータ）６ｂを再生する。
【００２１】
図２は、Ｔｘノード２の動作を説明するためのタイミングチャートである。
【００２２】
まず、データパケット６−２４（図１）の生成方法を説明する。Ｔｘノード２は、第２４サンプルデータＤ２４から第３１サンプルデータＤ３１までの８個のデータを１つのデータパケット６ｂとして生成する。インターバルＳＹＴ＿ＩＮＴＥＲＶＡＬは、パケットを生成する周期である。
【００２３】
サイクルタイマ２ａは、時間経過に応じて３２ビットのサイクルタイム値を増加する。ここで、第２４、第３２及び第４０サンプルデータＤ２４、Ｄ３２、Ｄ４０のサイクルタイムをそれぞれＣＴ２４、ＣＴ３２及びＣＴ４０とする。
【００２４】
システムタイムＳＹＴ２４、ＳＹＴ３２及びＳＹＴ４０は、それぞれサイクルタイムＣＴ２４、ＣＴ３２、ＣＴ４０の下位１６ビットの値である。
【００２５】
ＤＢＣ６ａは、サンプルカウントを示す。例えば、データパケット６ｂの先頭データは、第２４番目のサンプルデータＤ２４であるので、そのデータパケット６ｂに対応するＤＢＣ６ａの値は２４である。
【００２６】
データパケット６（図１）は、ＤＢＣ６ａ及びデータパケット６ｂを有する。ＤＢＣ６ａの代わりに、システムタイムＳＹＴ２４を含ませてもよい。システムタイムＳＹＴ２４は、上記のように、データパケット６ｂの先頭サンプルデータＤ２４のタイミングを示す。
【００２７】
データパケット６−３２（図１）も上記と同様に生成することができる。Ｔｘノード２は、第３２サンプルデータＤ３２から第３９サンプルデータＤ３９までの８個のデータを１つのデータパケット６ｂとして生成する。このデータパケット６ｂの先頭データは、第３２番目のサンプルデータＤ３２であるので、そのデータパケット６ｂに対応するＤＢＣ６ａの値は３２である。ＤＢＣ６ａの代わりに、システムタイムＳＹＴ３２を用いてもよい。
なお、上記のＤＢＣ及びシステムタイム（ＳＹＴ）は、ＩＥＥＥ１３９４規格に準拠した"audio and music data transmission protocol"で規定されているものと同じであり、アイソクロナスパケット転送のためのＣＩＰヘッダ内に含まれている。ＤＢＣは８ビットであり、ＳＹＴは１６ビットである。
【００２８】
図３は、図１のノード間の動作を示すタイミングチャートである。
【００２９】
ＷＣマスタノード１は、サンプルデータ２４、３２、４０等のタイミングを示すＷＣパケット５−２４、５−３２、５−４０等をＴｘノード２及びＲｘノード３に順次送信する。ＷＣパケット５の送信間隔はインターバルＳＹＴ＿ＩＮＴＥＲＶＡＬ（図２参照）である。
【００３０】
ＷＣパケット５がＷＣマスタノード１からＴｘノード２又はＲｘノード３に到達するまでの最大通信時間はＳＹＴ＿ＯＦＦＳＥＴである。時間ＳＹＴ＿ＯＦＦＳＥＴは、ＩＥＥＥ１３９４規格で決められている最大遅延時間（トランスファディレイ）であり、３５２μｓである。つまり、あるノードから他のノードへパケットを送信すると、遅くとも３５２μｓ以内にはパケットが到達することが保証されている。
【００３１】
ＷＣパケット５は、最大遅延時間ＳＹＴ＿ＯＦＦＳＥＴが加味されている。すなわち、ＷＣパケット５−２４は、第２４サンプルカウントを示すサンプルカウント５ｂと、それに対応するシステムタイムＳＹＴ２４（図２）に上記の最大遅延時間ＳＹＴ＿ＯＦＦＳＥＴを加算したシステムタイムＷＣ＿ＳＹＴ２４とを含む。システムタイムＷＣ＿ＳＹＴ２４＝ＳＹＴ２４＋ＳＹＴ＿ＯＦＦＳＥＴである。ＷＣパケット５−３２及び５−４０等も同様に最大遅延時間ＳＹＴ＿ＯＦＦＳＥＴが加味されている。
【００３２】
図３中のＷＣマスタノード１の縦軸は、自己が送信するＷＣパケット５内のサンプルカウント５ｂの値を示す。Ｔｘノード２及びＲｘノード３の各縦軸は、ＷＣマスタノード１から受信したＷＣパケット５内のサンプルカウント５ｂの値を示す。３つのノード１、２、３は、上記のサンプルカウントの軸を基準にして処理を行う。サンプルカウント軸は、時間軸に相当する。３つのノードの軸は、絶対時間は異なるが、相対時間は同じである。Ｔｘノード２及びＲｘノード３は、それぞれのサンプルカウント軸に基づき同期をとることができる。
【００３３】
ＷＣマスタノード１は、例えばＷＣパケット５−３２をＴｘノード２及びＲｘノード３に送信する。ＷＣパケット５−３２は、第３２サンプルカウントを示すサンプルカウント５ｂとそれに対応するシステムタイムＳＹＴ３２に上記の最大遅延時間ＳＹＴ＿ＯＦＦＳＥＴ（３５２μｓ）を加算したシステムタイムＷＣ＿ＳＹＴ３２とを含む。
【００３４】
Ｔｘノード２は、ＷＣパケット５−３２を受信すると、第３２サンプルカウントにオフセット値ＳＡＭＰＬＥ＿ＯＦＦＳＥＴ（例えば１７サンプル）を加算した第４９（＝３２＋１７）サンプルデータを先頭に含むデータパケット６−４９を送信する。データパケット６−４９は、ＤＢＣ６ａが４９であり、サンプルデータ６ｂが第４９〜５６サンプルデータである。
【００３５】
オフセット値ＳＡＭＰＬＥ＿ＯＦＦＳＥＴ（例えば１７サンプル）を加算することは、Ｔｘノード２からＲｘノード３へのデータパケット６の最大通信遅延時間を考慮したものであり、１７サンプル分先のサンプルデータを送信することを意味する。つまり、Ｔｘノード２は、ＷＣパケット５内のサンプルカウント５ｂが３２であれば、その値に１７サンプルを足したサンプルカウント値のサンプルデータを先頭にしたデータパケット６−４９を送信する。
【００３６】
この最大通信遅延時間が１７サンプル分に相当することを説明する。上記のように最大通信遅延時間ＳＹＴ＿ＯＦＦＳＥＴは３５２μｓである。オーディオデータのサンプリング周波数は、例えば、４８ｋＨｚである。
【００３７】
この場合のサンプル数は、４８ｋＨｚ×３５２μｓ＝１６．８９６である。したがって、サンプルオフセット値は、１６．８９６サンプル以上でなければならない。サンプルオフセット値は、最小の整数として１７サンプルが好ましい。
【００３８】
Ｒｘノード３は、遅くともサンプルカウントが４９の時には、Ｔｘノード２から上記のデータパケット６−４９を既に受信している。上記の通信の合計遅延時間はＴ１＋Ｔ２である。遅延時間Ｔ１は、ＷＣマスタノード１からＴｘノード２までのＷＣパケット５−３２の通信時間である。遅延時間Ｔ２は、Ｔｘノード２からＲｘノード３までのデータパケット６−４９の通信時間である。
【００３９】
Ｒｘノード３は、受信したデータパケット６−４９をファーストインファーストアウトバッファ（ＦＩＦＯ）に格納し、サンプルカウントが４９になったところで、データパケット６−４９の再生処理を開始する。サンプルカウントが４９になるまで、ＦＩＦＯにパケットを格納して処理を待機することにより、遅延時間Ｔ１＋Ｔ２を吸収することができる。
【００４０】
上記のように、ＷＣパケット５−３２は、最大遅延時間ＳＹＴ＿ＯＦＦＳＥＴがオフセットされたシステムタイムＷＣ＿ＳＹＴ３２を含む。この最大遅延時間ＳＹＴ＿ＯＦＦＳＥＴは、通信遅延時間Ｔ１を吸収するためのオフセット値である。
【００４１】
仮に、システムタイムオフセット値ＳＹＴ＿ＯＦＦＳＥＴをオフセットせずにＷＣパケット５−３２を送信するとすると、Ｒｘノード３がそのＷＣパケット５−３２を受信したときには既にサンプルカウントの３２に相当するシステムタイムが過ぎてしまっており、処理できなくなってしまう。
【００４２】
データパケット６−４９は、サンプルカウントオフセット値ＳＡＭＰＬＥ＿ＯＦＦＳＥＴがオフセットされたＤＢＣ６ａを含む。このオフセット値ＳＡＭＰＬＥ＿ＯＦＦＳＥＴは、通信遅延時間Ｔ２を吸収するためのオフセット値である。
【００４３】
仮に、サンプルカウントオフセット値ＳＡＭＰＬＥ＿ＯＦＦＳＥＴをオフセットせずにデータパケット６−３２を送信するとすると、Ｒｘノード３がそのデータパケット６−３２を受信したときには既にサンプルカウントの３２が過ぎてしまっており、処理できなくなってしまう。
【００４４】
図４は、ＷＣマスタノード１の処理を示すフローチャートである。
【００４５】
ステップＳＡ１では、レジスタｓａｍｐｌｅ  ｃｏｕｎｔに定数ＳＹＴ＿ＩＮＴＥＲＶＡＬを加算する。レジスタｓａｍｐｌｅ  ｃｏｕｎｔは、オーディオデータのサンプル数のカウント値を格納するためのレジスタである。定数ＳＹＴ＿ＩＮＴＥＲＶＡＬは、１パケット内のサンプル数であり、例えば８である。このレジスタｓａｍｐｌｅ  ｃｏｕｎｔは、図１のＷＣパケット５内のサンプルカウント５ｂに相当する。
【００４６】
次に、システムタイムＳＹＴ（図２）にオフセット値ＳＹＴ＿ＯＦＦＳＥＴを加算した値をレジスタｓｙｔに格納する。システムタイムＳＹＴは、例えば図２のＳＹＴ２４である。オフセット値ＳＹＴ＿ＯＦＦＳＥＴは、最大遅延時間であり、例えば３５２μｓである。オフセット値ＳＹＴ＿ＯＦＦＳＥＴを加算することにより、図３に示す遅延時間Ｔ１を吸収することができる。このレジスタｓｙｔは、図１のＷＣパケット５内のシステムタイム５ａに相当する。
【００４７】
ステップＳＡ２では、図１に示すように、レジスタｓａｍｐｌｅ  ｃｏｕｎｔをサンプルカウント５ｂとし、レジスタｓｙｔをシステムタイム５ａとして、ＷＣパケット５を生成し、バス４上に送出する。
【００４８】
以上は１つのパケットの生成処理を示したが、ＷＣマスタノード１は、所定時間間隔で上記の処理を繰り返し、例えば、ＷＣパケット５−２４、５−３２、５−４０等を順次送出する。
【００４９】
ＷＣパケット５−２４は、システムタイム５ａがＷＣ＿ＳＹＴ２４（＝ＳＹＴ２４＋ＳＹＴ＿ＯＦＦＳＥＴ）であり、サンプルカウント５ｂが２４である。ＷＣパケット５−３２は、システムタイム５ａがＷＣ＿ＳＹＴ３２（＝ＳＹＴ３２＋ＳＹＴ＿ＯＦＦＳＥＴ）であり、サンプルカウント５ｂが３２である。
【００５０】
図５は、第１のＴｘノード２の構成例を示すブロック図である。
【００５１】
Ｔｘノード２は、ＩＥＥＥ１３９４インタフェースシステム１１及びノードシステム１２を有する。
【００５２】
ＷＣパケット５は、システムタイム５ａ及びサンプルカウント５ｂを含み、ＷＣマスタノード１から受信するパケットである。サンプルカウントＦＩＦＯ１３は、サンプルカウント５ｂをファーストインファーストアウトで格納する。システムタイムＦＩＦＯ１４は、システムタイム５ａをファーストインファーストアウトで格納する。
【００５３】
システムタイム比較器１５は、ＦＩＦＯ１４が出力するシステムタイム５ａとサイクルタイマ２ａが出力するサイクルタイムの下位１６ビットを比較する。サイクルタイムは３２ビットである。システムタイム５ａは、ＷＣマスタノード１のサイクルタイムの下位１６ビットに最大遅延時間ＳＹＴ＿ＯＦＦＳＥＴ（３５２μｓ）を加算した値である。
【００５４】
システムタイム５ａは、最大遅延時間ＳＹＴ＿ＯＦＦＳＥＴ分加算されているので、サイクルタイマ２ａのサイクルタイムよりも大きい。サイクルタイマ２ａは、約２５ＭＨｚで順次サイクルタイムをインクリメントする。
【００５５】
やがて、サイクルタイムとシステムタイム５ａは一致する。両者が一致すると、比較器１５は、一致信号を出力する。一致信号が出力するまで後に示す処理は待たされる。後の処理を待たせることにより、ＷＣマスタノード１からＴｘノード２までの通信遅延時間Ｔ１（図３）を吸収することができる。ＷＣマスタノード１から複数のＴｘノード２へＷＣパケット５を送信する場合、各Ｔｘノード２の受信時刻の相違を吸収することができる。
【００５６】
位相フェーズロックループ回路（ＰＬＬ）１６は、上記の一致信号に同期して、例えば４８ｋＨｚのオーディオ用ワードクロックＷＣＫを生成し、ノードシステム１２に供給する。
【００５７】
タイミング調整器１７は、上記の一致信号を受けた時点で、ＦＩＦＯ１３内のサンプルカウント５ｂを加算器１８へ出力する。加算器１８は、サンプルカウント５ｂにオフセット値ＳＡＭＰＬＥ＿ＯＦＦＳＥＴ（例えば、１７サンプル）を加算し、サンプルカウントＳＣＮを出力する。例えば、サンプルカウント５ｂが３２の場合、加算器１８はサンプルカウントＳＣＮ＝３２＋１７＝４９を出力する。オフセット値を加算することにより、Ｔｘノード２からＲｘノード３までの通信遅延時間Ｔ２（図３）を吸収するための準備が整う。通信遅延時間Ｔ２の吸収は、後に示すＲｘノード３（図７）で行われる。
【００５８】
ノードシステム１２は、ワードクロックＷＣＫに同期して、サンプルカウントＳＣＮ（例えば４９）に応じて、８個のサンプルデータ（例えば第４９〜第５６サンプルデータ）をデータＳＤＴとして読み出して、データＦＩＦＯ１９にファーストインファーストアウトで格納する。
【００５９】
ＤＢＣジェネレータ２０は、ワードクロックＷＣＫに同期して、サンプルカウントＳＣＮに応じてＤＢＣを生成する。
【００６０】
ＤＢＣ６ａは、ＤＢＣジェネレータ２０により生成される。サンプルデータ６ｂは、ＦＩＦＯ１９内のサンプルデータＳＤＴを基に生成される。
【００６１】
ＤＢＣ６ａ及びサンプルデータ６ｂをパケット化することにより、データパケット６が生成される。データパケット６は、Ｔｘノード２からＲｘノード３へ送信される。
【００６２】
なお、加算器１８でサンプルカウント５ｂにオフセット値ＳＡＭＰＬＥ＿ＯＦＦＳＥＴを加算した値ＳＣＮをノードシステム１２に供給する場合に限定されず、サンプルカウント５ｂを直接供給するようにしてもよい。その場合、ノードシステム１２は、オフセット値ＳＡＭＰＬＥ＿ＯＦＦＳＥＴを考慮した処理を行う必要がある。
【００６３】
また、サンプルカウントＳＣＮをノードシステム１２に１パケット毎に供給する場合に限定されず、１サンプル毎に供給するようにしてもよい。
【００６４】
図６は、Ｔｘノード２の処理を示すフローチャートである。フローチャートの左側の処理ＳＢ１〜ＳＢ８はインタフェースシステム１１の処理を示し、右側の処理ＳＢ９はノードシステム１２の処理を示す。
【００６５】
ステップＳＢ１では、ＷＣパケット５内のシステムタイム５ａ及びサンプルカウント５ｂをそれぞれＦＩＦＯ１４及び１３に格納する。
【００６６】
ステップＳＢ２では、比較器１５がシステムタイムとサイクルタイムを比較し、両者が一致するまで待機する。両者が一致すると、ステップＳＢ３へ進む。
【００６７】
ステップＳＢ３では、ＦＩＦＯ１４に格納されている次のシステムタイムを比較器１５にロードし、次回の比較の準備を行う。
【００６８】
ステップＳＢ４では、ＰＬＬ１６がワードクロックＷＣＫを生成する。
【００６９】
ステップＳＢ５では、加算器１８がサンプルカウント５ｂとオフセット値ＳＡＭＰＬＥ＿ＯＦＦＳＥＴを加算し、加算値ＳＣＮをノードシステム１２へ出力する。
【００７０】
次に、インタフェースシステム１１はステップＳＢ６を処理し、ノードシステム１２はステップＳＢ９を処理する。
【００７１】
ステップＳＢ６では、生成したサンプルカウントＳＣＮを基にＤＢＣを生成する。必要であれば、生成したＤＢＣをＦＩＦＯに格納する。次に、ステップＳＢ７へ進む。
【００７２】
ステップＳＢ９では、入力したサンプルカウントＣＮＴに対応したサンプルデータＳＤＴをインタフェースシステム１１へ供給する。次に、ステップＳＢ７へ進む。
【００７３】
ステップＳＢ７では、上記のノードシステム１２からサンプルデータＳＤＴを受け取る。
【００７４】
ステップＳＢ８では、サンプルデータＳＤＴ及びＤＢＣ等をパケット化して、データパケット６をＲｘノード３へ送出する。
【００７５】
図７は、第１のＲｘノード３の構成例を示すブロック図である。
【００７６】
Ｒｘノード３は、ＩＥＥＥ１３９４インタフェースシステム３１及びノードシステム３２を有する。
【００７７】
ＷＣパケット５は、システムタイム５ａ及びサンプルカウント５ｂを含み、ＷＣマスタノード１から受信するパケットである。サンプルカウントＦＩＦＯ３３は、サンプルカウント５ｂをファーストインファーストアウトで格納する。システムタイムＦＩＦＯ３４は、システムタイム５ａをファーストインファーストアウトで格納する。
【００７８】
システムタイム比較器３５は、ＦＩＦＯ３４が出力するシステムタイム５ａとサイクルタイマ３ａが出力するサイクルタイムの下位１６ビットを比較する。システムタイム５ａは、ＷＣマスタノード１のサイクルタイムの下位１６ビットに最大遅延時間ＳＹＴ＿ＯＦＦＳＥＴ（３２５μｓ）を加算した値である。
【００７９】
サイクルタイムとシステムタイム５ａが一致すると、比較器３５は、一致信号を出力する。一致信号が出力するまで後に示す処理は待たされる。後の処理を待たせることにより、ＷＣマスタノード１からＲｘノード３までの通信遅延時間を吸収することができる。ＷＣマスタノード１から複数のＲｘノード３へＷＣパケット５を送信する場合、各Ｒｘノード３の受信時刻の相違を吸収することができる。
【００８０】
ＰＬＬ３６は、上記の一致信号に同期して、例えば４８ｋＨｚのオーディオ用ワードクロックＷＣＫを生成し、ノードシステム３２に供給する。
【００８１】
タイミング調整器３７は、上記の一致信号を受けた時点で、ＦＩＦＯ３３内のサンプルカウント５ｂをサンプルカウントＳＣＮとしてノードシステム３２へ供給する。
【００８２】
データパケット６は、ＤＢＣ６ａ及びサンプルデータ６ｂを含み、Ｔｘノード２から受信するパケットである。ＤＢＣ−ＦＩＦＯ４０は、ＤＢＣ６ａをファーストインファーストアウトで格納する。データＦＩＦＯ３９は、サンプルデータ６ｂをファーストインファーストアウトで格納する。
【００８３】
ＤＢＣ比較器３８は、ＦＩＦＯ３３が出力するサンプルカウント５ｂとＦＩＦＯ４０が出力するＤＢＣ６ａを比較する。ＤＢＣ６ａは、図５のＴｘノード２の加算器１８にてサンプルカウント５ｂにオフセット値ＳＡＭＰＬＥ＿ＯＦＦＳＥＴ（例えば１７）が加算された値である。
【００８４】
ＤＢＣ６ａは、オフセット値が加算されているので、ＦＩＦＯ３３のサンプルカウント５ｂよりも大きい。ＦＩＦＯ３３は、入力されたサンプルカウント５ｂの値を出力し、その後、順次サンプルカウントをインクリメントした値を出力する。
【００８５】
やがて、ＤＢＣとサンプルカウントは一致する。両者が一致すると、比較器３８は、一致信号を出力する。一致信号が出力するまで、データＦＩＦＯ３９内のデータの読み出し処理は待たされる。読み出し処理を待たせることにより、Ｔｘノード２からＲｘノード３までの通信遅延時間Ｔ２（図３）を吸収することができる。Ｔｘノード２から複数のＲｘノード３へデータパケット６を送信する場合、各Ｒｘノード３の受信時刻の相違を吸収することができる。
【００８６】
データＦＩＦＯ３９及びＤＢＣ−ＦＩＦＯ４０は、比較器３８の比較結果により読み出しポインタ（アドレス）が制御される。
【００８７】
比較器３８が一致信号を出力すると、データＦＩＦＯ３９からサンプルデータが読み出されてタイミング調整器４１に出力され、比較器３８にはＤＢＣ−ＦＩＦＯ４０内の次のＤＢＣがセットされる。
【００８８】
タイミング調整器４１は、ワードクロックＷＣＫに同期して、ＦＩＦＯ３９から出力されたデータをサンプルデータＳＤＴとしてノードシステム３２に供給する。
【００８９】
ノードシステム３２は、ワードクロックＷＣＫに同期して、サンプルカウントＳＣＮに応じてサンプルデータ（オーディオデータ）ＳＤＴを再生処理し、スピーカから発音させる。
【００９０】
なお、ＷＣパケット５は、サンプルカウント５ｂの代わりにＤＢＣを用いてもよい。その場合、ＦＩＦＯ３３にはＤＢＣが格納され、比較器３８はＦＩＦＯ３３内のＤＢＣとＦＩＦＯ４０内のＤＢＣとを比較する。
【００９１】
また、Ｒｘノード３が受信を開始する際、データＦＩＦＯ３９及びＤＢＣ−ＦＩＦＯ４０のリードポインタを所定値に制御する必要がある。具体的には、ＤＢＣ−ＦＩＦＯ４０の先頭のＤＢＣ値とサンプルカウントＦＩＦＯ３３の先頭のサンプルカウント値とを比較し、サンプル単位でデータＦＩＦＯ３９及びＤＢＣ−ＦＩＦＯ４０の各リードポインタを制御する。これにより、サンプルカウントＳＣＮとそれに対応するサンプルデータＳＤＴをノードシステム３２に所定のタイミングで供給することができる。
【００９２】
ＩＥＥＥ１３９４規格では、複数チャンネル分のデータをアイソクロナスパケット転送することができる。データが複数チャンネル分存在するときには、上記のリードポインタ制御器を複数設けてもよいし、１つのリードポインタ制御器を切り換えて、１チャンネルずつ制御してもよい。データが複数チャンネル分存在するときには、データＦＩＦＯ３９はチャンネル数分必要である。
【００９３】
図８は、Ｒｘノード３の処理を示すフローチャートである。
【００９４】
ステップＳＣ１では、受信したＷＣパケット５内のシステムタイム５ａ及びサンプルカウント５ｂをそれぞれＦＩＦＯ３４及び３３に格納する。
【００９５】
ステップＳＣ２では、データパケット６を受信した場合、パケット６内の内のＤＢＣ６ａ及びサンプルデータ６ｂをそれぞれＦＩＦＯ４０及び３９に格納する。
【００９６】
ステップＳＣ３では、比較器３５がシステムタイムとサイクルタイムを比較し、両者が一致するまで待機する。両者が一致すると、ステップＳＣ４へ進む。
【００９７】
ステップＳＣ４では、ＦＩＦＯ３４に格納されている次のシステムタイムを比較器３５にロードし、次回の比較の準備を行う。
【００９８】
ステップＳＣ５では、ＰＬＬ３６がワードクロックＷＣＫを生成する。
【００９９】
ステップＳＣ６では、比較器３８がＦＩＦＯ３３内のサンプルカウントとＦＩＦＯ４０内のＤＢＣとを比較し、比較結果に応じてＦＩＦＯ３９及び４０の読み出しポインタを調整する。
【０１００】
ステップＳＣ７では、調整したポインタを基にＦＩＦＯ３９からサンプルデータＳＤＴを読み出し、ノードシステム３２に供給する。そして、ＦＩＦＯ３３内のサンプルカウントＳＣＮを読み出して、ノードシステム３２に供給する。
【０１０１】
以上の第１の実施例では、図３に示すように、サンプルカウント軸を基準にすることにより、ノード間の同期をとる。第１及び第２の２つの送信ノード２が１つの受信ノード３にデータパケット６を送信する場合を説明する。ＷＣマスタノード１は、第１及び第２の送信ノード２及び受信ノード３にＷＣパケット５を送信する。第１及び第２の送信ノード２は、それぞれＷＣパケット５に応じてデータパケット６を受信ノード３に送信する。例えば、第１の送信ノードは、第１の演奏会場で演奏された楽音をオーディオデータとしてリアルタイムで送信し、第２の送信ノードは、第２の演奏会場で演奏された楽音をリアルタイムで送信する。受信ノードは、第１及び第２の送信ノードからそれぞれ受信したオーディオデータを同期をとって再生することができる。これにより、第１及び第２の演奏会場での合同演奏が可能になる。
【０１０２】
次に、第２の実施例を示す。第２の実施例では、サンプルカウント軸の代わりに、システムタイム軸を基準にすることにより、ノード間の同期をとる。
【０１０３】
図９は、第２のＴｘノード２の構成例を示すブロック図である。
【０１０４】
第２の実施例では、図２に示すように、ＤＢＣ６ａの代わりにシステムタイム６ｃを用いる。すなわち、データパケット６は、システムタイム６ｃ及びサンプルデータ６ｂを含む。
【０１０５】
Ｔｘノード２は、ＩＥＥＥ１３９４インタフェースシステム５１及びノードシステム５２を有する。
【０１０６】
ＷＣパケット５は、システムタイム５ａ及びサンプルカウント５ｂを含む。サンプルカウントＦＩＦＯ５３は、サンプルカウント５ｂをファーストインファーストアウトで格納する。システムタイムＦＩＦＯ５４は、システムタイム５ａをファーストインファーストアウトで格納する。
【０１０７】
システムタイム比較器５５は、ＦＩＦＯ５４が出力するシステムタイム５ａとサイクルタイマ２ａが出力するサイクルタイムの下位１６ビットを比較する。システムタイム５ａは、ＷＣマスタノード１のサイクルタイムの下位１６ビットに最大遅延時間ＳＹＴ＿ＯＦＦＳＥＴ（３５２μｓ）を加算した値である。
【０１０８】
サイクルタイムとシステムタイム５ａが一致すると、比較器５５は、一致信号を出力する。一致信号が出力するまで後に示す処理は待たされる。後の処理を待たせることにより、ＷＣマスタノード１からＴｘノード２までの通信遅延時間Ｔ１（図３）を吸収することができる。
【０１０９】
ＰＬＬ５６は、上記の一致信号に同期して、例えば４８ｋＨｚのオーディオ用ワードクロックＷＣＫを生成し、ノードシステム５２に供給する。
【０１１０】
タイミング調整器５７は、上記の一致信号を受けた時点で、ＦＩＦＯ５３内のサンプルカウント５ｂをサンプルカウントＳＣＮとしてノードシステム５２に供給する。
【０１１１】
ノードシステム５２は、ワードクロックＷＣＫに同期して、サンプルカウントＳＣＮ（例えば４９）に応じて、８個のサンプルデータ（例えば第４９〜第５６サンプルデータ）をデータＳＤＴとして読み出して、データＦＩＦＯ５９にファーストインファーストアウトで格納する。
【０１１２】
タイミング調整器１００は、上記でシステムタイムＦＩＦＯ５４から出力されたシステムタイム５ａの値（比較器５５で一致した値）を、比較器５５で一致したタイミングで加算器５８へ供給する。加算器５８は、システムタイム５ａにオフセット値ＳＹＴ＿ＯＦＦＳＥＴ（例えば、１７サンプルに相当するシステムタイム）を加算し、システムタイムＦＩＦＯ６０にファーストインファーストアウトで格納する。オフセット値を加算することにより、Ｔｘノード２からＲｘノード３までの通信遅延時間Ｔ２（図３）を吸収するための準備が整う。通信遅延時間Ｔ２の吸収は、後に示すＲｘノード３（図１１）にて行われる。
【０１１３】
ＦＩＦＯ６０内のシステムタイム６ａ及びＦＩＦＯ５９内のサンプルデータ６ｂを基に、データパケット６を生成する。データパケット６は、Ｔｘノード２からＲｘノード３へ送信される。
【０１１４】
図１０は、上記の第２のＴｘノード２（図９）の処理を示すフローチャートである。フローチャートの左側の処理ＳＤ１〜ＳＤ７はインタフェースシステム５１の処理を示し、右側の処理ＳＤ８はノードシステム５２の処理を示す。
【０１１５】
ステップＳＤ１では、ＷＣパケット５内のシステムタイム５ａ及びサンプルカウント５ｂをそれぞれＦＩＦＯ５４及び５３に格納する。
【０１１６】
ステップＳＤ２では、比較器５５がシステムタイムとサイクルタイムを比較し、両者が一致するまで待機する。両者が一致すると、ステップＳＤ３へ進む。
【０１１７】
ステップＳＤ３では、ＦＩＦＯ５４に格納されている次のシステムタイムを比較器５５にロードし、次回の比較の準備を行う。
【０１１８】
ステップＳＤ４では、ＰＬＬ６６がワードクロックＷＣＫを生成する。
【０１１９】
ステップＳＤ５では、ＦＩＦＯ５３内のサンプルカウントＳＣＮをノードシステム５２に供給する。
【０１２０】
次に、インタフェースシステム５１はステップＳＤ６を処理し、ノードシステム５２はステップＳＤ８を処理する。
【０１２１】
ステップＳＤ６では、加算器５８が上記の一致したシステムタイム５ａとオフセット値ＳＹＴ＿ＯＦＦＳＥＴを加算し、加算値をＦＩＦＯ６０に格納する。次に、ステップＳＤ７へ進む。
【０１２２】
ステップＳＤ８では、入力したサンプルカウントＳＣＮに応じたサンプルデータＳＤＴをインタフェースシステム５１へ供給する。次に、ステップＳＤ７へ進む。
【０１２３】
ステップＳＤ７では、サンプルデータＳＤＴ及びシステムタイム等をパケット化して、データパケット６をバス４を介してＲｘノード３へ送出する。
【０１２４】
図１１は、第２のＲｘノード３の構成例を示すブロック図である。
【０１２５】
第２の実施例では、第１の実施例（図７）と異なり、データパケット６はＤＢＣ６ａの代わりにシステムタイム６ｃを含む。データパケット６は、システムタイム６ｃ及びサンプルデータ６ｂを含む。
【０１２６】
Ｒｘノード３は、ＩＥＥＥ１３９４インタフェースシステム７１及びノードシステム７２を有する。
【０１２７】
受信するデータパケット６は、システムタイム６ｃ及びサンプルデータ６ｂを含む。システムタイムＦＩＦＯ８０は、システムタイム６ｃをファーストインファーストアウトで格納する。データＦＩＦＯ７９は、サンプルデータ６ｂをファーストインファーストアウトで格納する。
【０１２８】
システムタイム比較器７８は、ＦＩＦＯ８０が出力するシステムタイム５ｃとサイクルタイマ３ａが出力するサイクルタイムを比較する。システムタイム６ｃは、図９のＴｘノード２の加算器５８にてシステムタイム５ａにオフセット値ＳＹＴ＿ＯＦＦＳＥＴを加算した値である。
【０１２９】
システムタイム６ｃは、オフセット値ＳＹＴ＿ＯＦＦＳＥＴが加算されているので、初期はサイクルタイマ３ａのサイクルタイムの値よりも大きい。サイクルタイマ３ａは、順次サイクルタイムをインクリメントする。
【０１３０】
システムタイム６ｃとサイクルタイムが一致すると、比較器７８は、一致信号を出力する。一致信号が出力されるまで、データＦＩＦＯ７９内のデータの読み出し処理は待たされる。この待機により、Ｔｘノード２からＲｘノード３までの通信遅延時間Ｔ２（図３）を吸収することができる。
【０１３１】
タイミング調整器８１は、比較器７８から一致信号を受けると、データＦＩＦＯ７９からサンプルデータを読み出して、データＦＩＦＯ７３に格納する。比較器７８が一致信号を出力すると、比較器７８にはシステムタイム８０内の次のシステムタイムがセットされる。
【０１３２】
受信するＷＣパケット５は、システムタイム５ａ及びサンプルカウント５ｂを含む。システムタイムＦＩＦＯ７４は、システムタイム５ａをファーストインファーストアウトで格納する。サンプルカウントＦＩＦＯ８２は、サンプルカウント５ｂをファーストインファーストアウトで格納する。
【０１３３】
システムタイム比較器７５は、ＦＩＦＯ７４が出力するシステムタイム５ａとサイクルタイマ３ａが出力するサイクルタイムの下位１６ビットを比較する。システムタイム５ａは、ＷＣマスタノード１のサイクルタイムの下位１６ビットに最大遅延時間ＳＹＴ＿ＯＦＦＳＥＴ（３５２μｓ）を加算した値である。
【０１３４】
サイクルタイムとシステムタイム５ａが一致すると、比較器７５は、一致信号を出力する。一致信号が出力するまで後に示す処理が待たされるので、ＷＣマスタノード１からＲｘノード３までの通信遅延時間を吸収することができる。
【０１３５】
ＰＬＬ７６は、上記の一致信号に同期して、例えば４８ｋＨｚのオーディオ用ワードクロックＷＣＫを生成し、ノードシステム７２に供給する。
【０１３６】
タイミング調整器７７は、上記の一致信号を受けた時点で、データＦＩＦＯ７３内のサンプルデータ６ｂをサンプルデータＳＤＴとしてノードシステム７２へ供給する。
【０１３７】
タイミング調整器８３は、上記の一致信号を受けた時点で、サンプルカウントＦＩＦＯ８２内のサンプルカウント５ｂをサンプルカウントＳＣＮとしてノードシステム７２へ供給する。
【０１３８】
ノードシステム７２は、ワードクロックＷＣＫに同期して、サンプルカウントＳＣＮに応じてサンプルデータ（オーディオデータ）ＳＤＴを再生することにより、スピーカから発音させることができる。
【０１３９】
以上のように、第２の実施例によれば、システムタイム軸を基準にすることにより、ノード間の同期をとることができる。比較器７８は、Ｔｘノード２からＲｘノード３までのデータパケット６の通信遅延時間を吸収し、比較器７５は、ＷＣマスタノード１からＲｘノード３までのＷＣパケット５の通信遅延時間を吸収することができる。これら通信遅延時間を吸収することにより、ノード間の同期をとることができる。
【０１４０】
図１２は、上記の第２のＲｘノード３（図１１）の処理を示すフローチャートである。
【０１４１】
ステップＳＥ１では、受信したＷＣパケット５内のシステムタイム５ａ及びサンプルカウント５ｂをそれぞれＦＩＦＯ７４及び８２に格納する。
【０１４２】
ステップＳＥ２では、データパケット６を受信した場合、パケット６内のシステムタイム６ｃ及びサンプルデータ６ｂをそれぞれＦＩＦＯ８０及び７９に格納する。
【０１４３】
ステップＳＥ３では、比較器７８がＦＩＦＯ８０内のシステムタイム６ｃとサイクルタイマ３ａのサイクルタイムとを比較し、両者が一致するまで待機する。両者が一致すると、ステップＳＥ４へ進む。
【０１４４】
ステップＳＥ４では、ＦＩＦＯ８０に格納されている次のシステムタイムを比較器７８にロードし、次回の比較の準備を行う。
【０１４５】
ステップＳＥ５では、データＦＩＦＯ７９内のサンプルデータをデータＦＩＦＯ７３に格納する。
【０１４６】
ステップＳＥ６では、比較器７５がＦＩＦＯ７４内のシステムタイム５ａとサイクルタイマ３ａのサイクルタイムとを比較し、両者が一致するまで待機する。両者が一致すると、ステップＳＥ７へ進む。
【０１４７】
ステップＳＥ７では、ＦＩＦＯ７４に格納されている次のシステムタイムを比較器７５にロードし、次回の比較の準備を行う。
【０１４８】
ステップＳＥ８では、ＰＬＬ７６がワードクロックＷＣＫを生成する。
【０１４９】
ステップＳＥ９では、ＦＩＦＯ８２内のサンプルカウントＳＣＮ及びＦＩＦＯ７３内のサンプルデータＳＤＴをノードシステムに供給する。
【０１５９】
次に、ＷＣマスタノード１、Ｔｘノード２及びＲｘノード３の各サイクルタイマ１ａ，２ａ，３ａ（図１）の位相を合わせる方法を説明する。ＷＣマスタノード１、Ｔｘノード２及びＲｘノード３は、全てＩＥＥＥ１３９４バスに接続されたノードである。これらのノードのうちの一つがルートノードとして決定される。例えば、各ノードに識別番号が付与され、その識別番号が最も小さな値又は大きな値のノードがルートノードとなる。その構成を次に示す。
【０１６０】
図１４は、図１のネットワークを別の観点から表現したネットワークの構成を示す。
【０１６１】
ルートノードＲＮは、ＷＣマスタノード１、Ｔｘノード２又はＲｘノード３のうちのいずれか一つのノードである。第１ノードＮ１〜第ｎノードＮｎは、ルートノード以外のノードである。
【０１６２】
ルートノードＲＮは、自己のサイクルタイマで生成されたサイクルタイムＣＴをバス上に送出する。ノードＮ１〜Ｎｎは、ルートノードＲＮが送出するサイクルタイムＣＴを受け取り、そのサイクルタイムＣＴの値を自己のサイクルタイマにセットする。
【０１６３】
図１５は、ルートノードＲＮが行う処理を示すフローチャートである。
【０１６４】
ステップＳＦ１では、自己のサイクルタイマの値ＣＴを他のノードに送信し、処理を終了する。ルートノードＲＮは、所定周期でサイクルタイマの値ＣＴをブロードキャストでバス上に送信する。
【０１６５】
図１６は、ノードＮ１〜Ｎｎが行う処理を示すフローチャートである。
【０１６６】
ステップＳＧ１では、ルートノードＲＮからサイクルタイマの値ＣＴを受信する。
【０１６７】
ステップＳＧ２では、自己のサイクルタイマを受信したサイクルタイマの値ＣＴに更新する。
【０１６８】
このフローチャートは、ルートノードＲＮから所定周期でサイクルタイマの値ＣＴを受信する度に行う。
【０１６９】
上記の方法により、各ノードのサイクルタイマの同期をとることができる。ここで、ルートノードＲＮがサイクルタイムＣＴを送信する遅延時間について考える。遅延時間の相違により、各ノードＮ１〜ＮｎがサイクルタイムＣＴを受信する時刻は異なる。次に、通信遅延時間を考慮した処理を示す。
【０１７０】
ノードＮ１〜Ｎｎは、ルートノードＲＮにピンパケットを送信する。ルートノードＲＮは、ピンパケットを受信すると、レスポンスパケットを返送する。ノードＮ１〜Ｎｎは、ピンパケットを送信してからレスポンスパケットを受信するまでの時間を計測する。その時間は、ノードＮ１〜ＮｎからルートノードＲＮまでの往復通信遅延時間である。ノードＮ１〜Ｎｎは、自己のサイクルタイマを片道通信遅延時間分だけ進め、ルートノードＲＮのサイクルタイマの位相に合わせる。
【０１７１】
例えば、往復通信遅延時間が１００μｓとして計測された場合、片道通信遅延時間は５０μｓである。ノードＮ１〜Ｎｎは、自己のサイクルタイマを片道通信遅延時間（５０μｓ）分だけ加算する。
【０１７２】
サイクルタイマを片道通信遅延時間だけ加算することにより、各ノードのサイクルタイマの位相を合わせることができる。これにより、複数のＲｘノードは、ほぼ同時にオーディオデータの再生を行うことができる。次に、上記の処理をフローチャートにそって説明する。
【０１７３】
図１７は、サイクルタイマの遅延時間補正値の決定処理を示すフローチャートである。フローチャートの左側の処理ＳＨ１、ＳＨ４、ＳＨ５、ＳＨ６はノードＮ１〜Ｎｎの処理を示し、右側の処理ＳＨ２、ＳＨ３はルートノードＲＮの処理を示す。
【０１７４】
ステップＳＨ１では、ノードＮ１〜ＮｎがピンパケットをルートノードＲＮに送信し、時間計測を開始する。
【０１７５】
ステップＳＨ２では、ルートノードＲＮがピンパケットを受信する。
【０１７６】
ステップＳＨ３では、ルートノードＲＮが送信元のノードＮ１〜Ｎｎにレスポンスパケットを即時に送信する。
【０１７７】
ステップＳＨ４では、ノードＮ１〜Ｎｎがレスポンスパケットを受信する。
【０１７８】
ステップＳＨ５では、ノードＮ１〜Ｎｎがピンパケットを送信（ステップＳＨ１）してからレスポンスパケットを受信（ステップＳＨ４）するまでの往復通信遅延時間を算出する。
【０１７９】
ステップＳＨ６では、算出した往復通信遅延時間の半分の値を片道通信遅延時間として算出する。次に、片道通信遅延時間の値をサイクルタイムに換算して、補正値を決定する。サイクルタイムは、原則として約２５ＭＨｚでカウントされる値である。
【０１８０】
図１８は、ノードＮ１〜Ｎｎが行う補正処理を示すフローチャートであり、図１６のフローチャートに代わるものである。
【０１８１】
ステップＳＩ１では、図１５でルートノードＲＮから送信されたサイクルタイマの値ＣＴを受信する。
【０１８２】
ステップＳＩ２では、受信したサイクルタイマの値ＣＴに図１７で決定した補正値を加算する。
【０１８３】
ステップＳＩ３では、自己のサイクルタイマを、上記の補正されたサイクルタイムの値に更新する。
【０１８４】
サイクルタイムを補正することにより、各ノードのサイクルタイマの位相を合わせることができる。例えば、第１のＴｘノード２（図５）では、サイクルタイマ２ａの値を補正し、第１のＲｘノード３（図７）では、サイクルタイマ３ａの値を補正する。
【０１８５】
次に、サイクルタイムの代わりに、システムタイムを補正する方法を説明する。第１のＴｘノード２（図５）では、比較器１５がサイクルタイマ２ａの値とシステムタイムＦＩＦＯ１４の値とを比較する。上記では、サイクルタイマ２ａの値を補正したが、その代わりにシステムタイムＦＩＦＯ１４の値を補正して、比較器１５にセットする。
【０１８６】
第１のＲｘノード３（図７）でも、同様に、サイクルタイマ３ａの値を補正する代わりに、システムタイムＦＩＦＯ３４の値を補正して、比較器３５にセットする。
【０１８７】
第２のＴｘノード２（図９）でも、同様に、サイクルタイマ２ａの値を補正する代わりに、システムタイムＦＩＦＯ５４の値を補正して、比較器５５にセットする。
【０１８８】
第２のＲｘノード３（図１１）でも、同様に、サイクルタイマ３ａの値を補正する代わりに、システムタイムＦＩＦＯ７４の値を補正して比較器７５にセットし、かつシステムタイムＦＩＦＯ８０の値を補正して比較器７８にセットする。
【０１８９】
図１９は、上記のシステムタイム補正処理を示すフローチャートである。
【０１９０】
ステップＳＪ１では、システムタイムの値を受信用ＦＩＦＯ１４、３４、５４、７４、８０から取り出す。
【０１９１】
ステップＳＪ２では、取り出したシステムタイマの値と図１７で決定した補正値とを基に演算する。例えば、システムタイマの値から補正値を減算する。
【０１９２】
ステップＳＪ３では、比較器１５、３５、５５、７５、７８の上記の演算値をセットする。
【０１９３】
なお、第２のＴｘノード（図９）では、システムタイムＦＩＦＯ６０内のシステムタイムを補正してデータパケット６を送信するようにしてもよい。その場合、第２のＲｘノード（図１１）のシステムＦＩＦＯ８０の値を補正する必要はない。
【０１９４】
以上のように、サイクルタイム又はシステムタイムを補正することによって、各ノードの時間軸の位相を合わせることができる。位相を合わせることにより、複数のＴｘノードの送信タイミング又は複数のＲｘノードの再生タイミングの位相を合わせることができる。
【０１９５】
第１及び第２の実施例によれば、ＷＣマスタノード１がＷＣパケット５をＴｘノード２及びＲｘノード３に送信する。Ｔｘノード２は、Ｒｘノード３にデータパケット６を送信する。データパケット６は、サンプルデータ６ｂの他、ＤＢＣ６ａ又はシステムタイム６ｃを有する。
【０１９６】
第１の実施例では、ＤＢＣ６ａを用いて、サンプルカウント軸を基にノード間の同期をとることができる。第２の実施例では、システムタイム６ｃを用いて、システムタイム軸を基にノード間の同期をとることができる。
【０１９７】
ノード間で同期をとることにより、１つのＴｘノードから複数のＲｘノードに同じデータをほぼ同時に送信する場合に、複数のＲｘノード間でデータの再生時間を合わせることができる。また、各Ｒｘノードは、タイミングずれを起こすことなく、一連のデータを再生することができる。
【０１９８】
また、ノード間で同期をとることにより、複数のＴｘノードから１つのＲｘノードにデータを送信する場合に、Ｒｘノードでは複数のＴｘノードから送信されるデータのタイミングを合わせることができる。
【０１９９】
なお、パケット中のデータはオーディオデータに限定されず、画像データ等でもよい。通信は、ＩＥＥＥ１３９４デジタルシリアル通信に限定されず、その他のシリアル通信やパラレル通信でもよい。例えば、インターネット、ＬＡＮ等でもよい。
【０２００】
図２０はパーソナルコンピュータ１２の具体的なハードウェア構成を示す図である。
【０２０１】
パーソナルコンピュータ１２の構成を説明する。バス２１には、ＣＰＵ２２、ＲＡＭ２４、外部記憶装置２５，外部に対してＭＩＤＩデータを送受信するためのＭＩＤＩインターフェース２６、サウンドカード２７、ＲＯＭ２８、表示装置２９、キーボードやスイッチやマウス等の入力手段３０，インターネットに接続するための通信インターフェース３１が接続されている。
【０２０２】
サウンドカード２７は、バッファ２７ａとコーデック回路２７ｂを有する。バッファ２７ａは、外部に対して入力又は出力するためのデータをバッファリングする。コーデック回路２７ｂは、Ａ／Ｄ変換器及び、Ｄ／Ａ変換器を有し、アナログ形式とデジタル形式両者間の変換を行うことが出来る。さらに、コーデック回路２７ｂは、圧縮／伸張回路を有し、データの圧縮及び伸張を行うことができる。
【０２０３】
外部記憶装置２５は、たとえばハードディスクドライブ、フロッピーディスクドライブ、ＣＤ−ＲＯＭドライブ、光磁気ディスクドライブ等であり、ＭＩＤＩデータ、オーディオデータ、画像データ又はコンピュータープログラム等を記憶することができる。
【０２０４】
ＲＯＭ２８は、コンピュータプログラム及び各種パラメータを記憶することができる。ＲＡＭ２４は、バッファやレジスタ等のワーキングエリアを有し、外部記憶装置２５に記憶されている内容をコピーして記憶することができる。
【０２０５】
ＣＰＵ２２は、ＲＯＭ２８又はＲＡＭ２４に記憶されているコンピュータプログラムに従って、各種演算又は処理を行う。システムクロック２３は、時間情報を生成する。ＣＰＵ２２はシステムクロック２３から時間情報を得て、タイマ割り込み処理を行うことができる。
【０２０６】
インターネット回線３２には、パーソナルコンピュータ１２の通信インターフェース３１が接続される。通信インターフェース３１は、インターネットにより、ＭＩＤＩデータ、オーディオデータ、画像データ及びコンピュータプログラム等を送受信するためのインターフェースである。
【０２０７】
ＭＩＤＩインターフェース２６には、ＭＩＤＩ音源１３が接続され、サウンドカード２７には、音声出力装置１４が接続される。ＣＰＵ２２は、通信インターフェース３１を介して、インターネット回線３２上からＭＩＤＩデータとオーディオデータと画像データとコンピュータープログラム等を受信する。
【０２０８】
通信インターフェース３１は、インターネット用インターフェースのほか、イーサネット用インターフェース、ＩＥＥＥ１３９４規格のデジタル通信インターフェース、ＲＳ−２３２Ｃ用インターフェースでもよく、種々のネットワークに接続することができる。
【０２０９】
パーソナルコンピュータ１２は、オーディオデータの受信や再生等をするためのコンピュータプログラムを記憶する。コンピュータプログラムや各種パラメータ等を外部記憶装置２５に記憶させておき、それをＲＡＭ２４に読み込むことにより、コンピュータプログラム等の追加やバージョンアップ等が容易に行える。
【０２１０】
ＣＤ−ＲＯＭ(コンパクトディスク−リード・オンリー・メモリー)ドライブは、ＣＤ−ＲＯＭに記憶されているコンピュータプログラム等を読み出す装置である。読み出したコンピュータプログラム等は、ハードディスクにストアされる。コンピュータプログラムの新規インストールやバージョンアップ等が容易に行える。
【０２１１】
通信インターフェース３１はＬＡＮ（ローカルエリアネットワーク）やインターネット、電話回線等の通信ネットワーク３２に接続されており、該通信ネットワーク３２を介して、コンピュータ３３と接続される。外部記憶装置２５内に上記のコンピュータプログラム等が記憶されていない場合、コンピュータ３３からコンピュータプログラム等をダウンロードすることができる。パーソナルコンピュータ１２は、通信インターフェース３１及び、通信ネットワーク３２を介してコンピュータ３３へコンピュータプログラム等のダウンロードを要求するコマンドを送信する。コンピュータ３３は、このコマンドを受け、要求されたコンピュータプログラム等を、通信ネットワーク３２を介して、パーソナルコンピュータ１２へ配信する。パーソナルコンピュータ１２が、通信インターフェース３１介して、コンピュータプログラム等を受信して外部記憶装置２５に蓄積することにより、ダウンロードが完了する。
【０２１２】
なお、本実施例は、本実施例に対応するコンピュータプログラム等をインストールした市販のパーソナルコンピュータ等によって、実施させるようにしてもよい。その場合には、本実施例に対応するコンピュータプログラム等を、ＣＤ−ＲＯＭやフロッピーディスク等の、コンピュータが読み込むことが出来る記憶媒体に記憶させた状態で、ユーザーに提供してもよい。そのパーソナルコンピュータ等が、LＡN、インターネット、電話回線等の通信ネットワークに接続されている場合には、通信ネットワークを介して、コンピュータプログラムや各種データ等をパーソナルコンピュータ等に提供してもよい。
【０２１３】
以上実施例に沿って本発明を説明したが、本発明はこれらに制限されるものではない。たとえば、種々の変更、改良、組み合わせ等が可能なことは当業者に自明であろう。
【０２１４】
【発明の効果】
以上説明したように、本発明によれば、複数の通信装置間で同期情報を通信することにより、同期をとってデータの送信又は処理を行うことができる。
【図面の簡単な説明】
【図１】  本発明の実施例によるネットワークの構成を示すブロック図である。
【図２】  送信ノード（Ｔｘノード）の処理を示すタイミングチャートである。
【図３】  図１に示す各ノードのタイミングチャートである。
【図４】  ＷＣマスタノードの処理を示すフローチャートである。
【図５】  第１のＴｘノードの構成を示すブロック図である。
【図６】  第１のＴｘノードの処理を示すフローチャートである。
【図７】  第１の受信ノード（Ｒｘノード）の構成を示すブロック図である。
【図８】  第１のＲｘノードの処理を示すフローチャートである。
【図９】  第２のＴｘノードの構成を示すブロック図である。
【図１０】  第２のＴｘノードの処理を示すフローチャートである。
【図１１】  第２のＲｘノードの構成を示すブロック図である。
【図１２】  第２のＲｘノードの処理を示すフローチャートである。
【図１３】  ネットワークの構成を示すブロック図である。
【図１４】  ルートノードの処理を示すフローチャートである。
【図１５】  ルートノード以外のノードの処理を示すフローチャートである。
【図１６】  サイクルタイマの遅延時間補正値の決定処理を示すフローチャートである。
【図１７】  遅延時間の第１の補正処理を示すフローチャートである。
【図１８】  遅延時間の第２の補正処理を示すフローチャートである。
【図１９】  パーソナルコンピュータ１２の具体的なハードウェア構成を示す図である。
【図１】
0003697949.tif 000002
【図２】
0003697949.tif 000003
【図３】
0003697949.tif 000004
【図４】
0003697949.tif 000005
【図５】
0003697949.tif 000006
【図６】
0003697949.tif 000007
【図７】
0003697949.tif 000008
【図８】
0003697949.tif 000009
【図９】
0003697949.tif 000010
【図１０】
0003697949.tif 000011
【図１１】
0003697949.tif 000012
【図１２】
0003697949.tif 000013
【図１３】
0003697949.tif 000014
【図１４】
0003697949.tif 000015
【図１５】
0003697949.tif 000016
【図１６】
0003697949.tif 000017
【図１７】
0003697949.tif 000018
【図１８】
0003697949.tif 000019
【図１９】
0003697949.tif 000020