JP3697949B2 - Communication device - Google Patents

Communication device Download PDF

Info

Publication number
JP3697949B2
JP3697949B2 JP16565999A JP16565999A JP3697949B2 JP 3697949 B2 JP3697949 B2 JP 3697949B2 JP 16565999 A JP16565999 A JP 16565999A JP 16565999 A JP16565999 A JP 16565999A JP 3697949 B2 JP3697949 B2 JP 3697949B2
Authority
JP
Japan
Prior art keywords
node
network
time value
time
value
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Lifetime
Application number
JP16565999A
Other languages
Japanese (ja)
Other versions
JP2000078170A (en
Inventor
泰孝 栗林
康 大谷
潤一 藤森
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Yamaha Corp
Original Assignee
Yamaha Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Yamaha Corp filed Critical Yamaha Corp
Priority to JP16565999A priority Critical patent/JP3697949B2/en
Publication of JP2000078170A publication Critical patent/JP2000078170A/en
Application granted granted Critical
Publication of JP3697949B2 publication Critical patent/JP3697949B2/en
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Images

Landscapes

  • Small-Scale Networks (AREA)
  • Synchronisation In Digital Transmission Systems (AREA)

Description

【0001】
【発明の属する技術分野】
本発明は、通信技術に関し、特に複数の通信装置間で同期をとるための通信技術に関する。
【0002】
【従来の技術】
IEEE1394規格のデジタルシリアル通信が普及しつつある。IEEE1394規格では、複数の通信ノードを接続してネットワークを構成することができる。例えば、1つの受信ノードは、複数の送信ノードからオーディオデータを受信することができる。
【0003】
第1及び第2の送信ノードが同時に1つの受信ノードにデータを送信するとする。この場合、ノード間の距離の相違等により、通常、受信ノードが第1の送信ノードから受信する時刻と第2の送信ノードから受信する時刻が異なる。例えば、第1の送信ノードからデータを受信し、その後に第2の送信ノードからデータを受信する。
【0004】
送信ノードと受信ノードは、それぞれ独自のサイクルタイマを有する。各サイクルタイマは、同期がとれていない。受信ノードは、第1の送信ノードから受信するデータと第2の送信ノードから受信するデータとの同期をとることが困難である。
【0005】
また、1つの送信ノードが第1及び第2の受信ノードに同じデータをほぼ同時に送信することがある。しかし、上記と同様に、通常、第1の受信ノードが受信する時刻と第2の受信ノードが受信する時刻が異なる。第1及び第2の受信ノードは、それぞれ自己のサイクルタイマに応じて、受信したデータの再生を行うので、第1及び第2の受信ノードの再生処理にずれが生じやすい。
【0006】
【発明が解決しようとする課題】
受信ノードは、複数の送信ノードから送信されるデータの同期をとることが困難である。また、送信ノードが複数の受信ノードにデータを送信する場合には、複数の受信ノード間における同期をとることが困難である。
【0007】
本発明の目的は、複数の通信ノード間で通信するデータの同期をとることができる通信装置を提供することである。
【0008】
【課題を解決するための手段】
本発明の一観点によれば、ネットワークに接続された複数のノードの1つを形成する通信装置は、前記ネットワークに接続されたルートノードの出力する時間値によって同期化された時間値を発生するサイクルタイマと、オーディオデータのサンプルをカウントするカウント値を生成するサンプルカウント生成手段と、前記同期化された時間値に対応する時間値に最大遅延量を加味した同期時間値を生成する同期時間値生成手段と、所定時間間隔で、前記サンプルカウント値と同期時間値とを含む同期パケットを生成し、生成した同期パケットを前記ネットワークに出力する同期パケット出力手段とを有する。
【0009】
また、本発明の他の観点によれば、ネットワークに接続された複数のノードの1つを形成する通信装置は、前記ネットワークに接続されたルートノードの出力する時間値によって同期化された時間値を発生するサイクルタイマと、前記ネットワークに接続されたワードクロックノードから同期情報を受信する受信手段と、前記同期化された時間値と前記受信した同期情報に基づいてワードクロックを発生するクロック発生手段と、前記ワードクロックに基づいてオーディオデータのサンプルを順次供給するデータサンプル供給手段と、前記同期情報に基づいてオーディオデータのサンプルカウント値を供給するサンプルカウント供給手段と、前記カウント値に転送最大遅延量を加味した同期カウント値を生成する同期カウント生成手段と、前記供給された複数のサンプルと前記同期カウント値とを含むデータパケットを生成し、生成したデータパケットを前記ネットワークに接続された受信ノードに送信する送信手段とを有する通信装置。
【0010】
また、本発明のさらに他の観点によれば、ネットワークに接続された複数のノードの1つを形成する通信装置は、前記ネットワークに接続されたルートノードの出力する時間値によって同期化された時間値を発生するサイクルタイマと、前記ネットワークに接続されたワードクロックノードから同期情報を受信する受信手段と、前記同期化された時間値と前記受信した同期情報に基づいてワードクロックを発生するクロック発生手段と、前記ワードクロックに基づいてオーディオデータのサンプルを順次供給するデータサンプル供給手段と、前記同期化された時間値に転送最大遅延量を加味した同期時間値を生成する同期時間値生成手段と、前記供給された複数のサンプルと前記同期時間値とを含むデータパケットを生成し、生成したデータパケットを前記ネットワークに接続された受信ノードに送信する送信手段とを有する。
【0011】
また、本発明のさらに他の観点によれば、ネットワークに接続された複数のノードの1つを形成する通信装置は、前記ネットワークに接続されたルートノードの出力する時間値によって同期化された時間値を発生するサイクルタイマと、前記ネットワークに接続されたワードクロックノードから同期情報を受信する同期情報受信手段と、前記同期化された時間値と前記受信した同期情報に基づいてワードクロックを発生するクロック発生手段と、前記ネットワークに接続された送信ノードから、複数のサンプルと該複数のサンプルに関連した同期カウント値とを含むデータパケットを受信するデータ受信手段と、前記同期情報と前記同期カウント値とに基づくタイミングで、前記データパケットに含まれる複数のサンプルを、前記ワードクロックに応じて1サンプルずつ順次出力するサンプル出力手段とを有する。
【0012】
また、本発明のさらに他の観点によれば、ネットワークに接続された複数のノードの1つを形成する通信装置は、前記ネットワークに接続されたルートノードから当該通信装置までの通信の到達遅延時間を計測する計測手段と、前記計測手段が計測する到達遅延時間に応じて補正値を決定する決定手段と、前記ルートノードの出力する時間値を受信する時間値受信手段と、受信した時間値を前記補正値に応じて補正する補正手段と、補正された時間値に基づいて同期化された時間値を発生するサイクルタイマと、前記ネットワークに接続されたワードクロックノードから同期情報を受信する同期情報受信手段と、前記同期化された時間値と前記受信した同期情報に基づいてワードクロックを発生するクロック発生手段とを有する
また、本発明のさらに他の観点によれば、ネットワークに接続された複数のノードの1つを形成する通信装置は、前記ネットワークに接続されたルートノードの出力する時間値によって同期化された時間値を発生するサイクルタイマと、前記ルートノードから当該通信装置までの通信の到達遅延時間を計測する計測手段と、前記計測手段が計測する到達遅延時間に応じて補正値を決定する決定手段と、前記ネットワークに接続されたワードクロックノードから同期情報を受信する同期情報受信手段と、受信した同期情報を前記補正値に応じて補正する補正手段と、前記同期化された時間値と前記補正された同期情報に基づいてワードクロックを発生するクロック発生手段とを有する。
【0013】
【発明の実施の形態】
図1は、本発明の第1の実施例による通信ネットワークの構成を示すブロック図である。
本実施例では、IEEE1394規格に準拠した"audio and music data transmission protocol"の規定に則ったパケット転送が可能である。そのパケット転送は、IEEE1394規格のアイソクロナスパケット転送で行うことが好ましい。
【0014】
IEEE1394バス4には、ワードクロック(WC)マスタノード1とWCスレーブノード2,3が接続されている。WCスレーブノード2は送信ノード(以下、Txノードという)であり、WCスレーブノード3は受信ノード(以下、Rxノードという)である。バス4には、複数のTxノード2及び/又は複数のRxノード3を接続してもよい。
【0015】
WCマスタノード1はサイクルタイマ1aを有し、Txノード2はサイクルタイマ2aを有し、Rxノード3はサイクルタイマ3aを有する。サイクルタイマ1a,2a,3aは、基本的に約25MHzで動作するカウンタである。
【0016】
WCマスタノード1は、バス4を介して、Txノード2及びRxノード3にWCパケット5を送信する。WCパケット5は、同期をとるためのパケットであり、システムタイム5a及びサンプルカウント5bを含む。
【0017】
WCマスタノード1は、例えばWCパケット5−24、5−32、5−40等を所定間隔で順次送信する。WCパケット5−24は、第24サンプルのオーディオデータの同期をとるためのパケットである。WCパケット5−32及び5−40は、それぞれ第32サンプル及び第40サンプルのオーディオデータの同期をとるためのパケットである。
【0018】
Txノード2は、WCマスタノード1から受信したWCパケット5に応じてタイミングを調整し、データパケット6をバス4を介してRxノード3へ送信する。データパケット6は、サンプルカウントを示すDBC6a及び8つのサンプルデータ6bを含む。
【0019】
Txノード2は、例えばデータパケット6−24、6−32、6−40等を所定間隔で順次Rxノード3へ送信する。データパケット6−24は、第24〜31サンプルのオーディオデータ6bを含む。データパケット6−32及び6−40は、それぞれ第32〜39サンプル及び第40〜47サンプルのオーディオデータ6bを含む。
【0020】
Rxノード3は、WCマスタノード1から受信したWCパケット5に応じてタイミングを調整し、Txノード2から受信したデータパケット6内のサンプルデータ(例えばオーディオデータ)6bを再生する。
【0021】
図2は、Txノード2の動作を説明するためのタイミングチャートである。
【0022】
まず、データパケット6−24(図1)の生成方法を説明する。Txノード2は、第24サンプルデータD24から第31サンプルデータD31までの8個のデータを1つのデータパケット6bとして生成する。インターバルSYT_INTERVALは、パケットを生成する周期である。
【0023】
サイクルタイマ2aは、時間経過に応じて32ビットのサイクルタイム値を増加する。ここで、第24、第32及び第40サンプルデータD24、D32、D40のサイクルタイムをそれぞれCT24、CT32及びCT40とする。
【0024】
システムタイムSYT24、SYT32及びSYT40は、それぞれサイクルタイムCT24、CT32、CT40の下位16ビットの値である。
【0025】
DBC6aは、サンプルカウントを示す。例えば、データパケット6bの先頭データは、第24番目のサンプルデータD24であるので、そのデータパケット6bに対応するDBC6aの値は24である。
【0026】
データパケット6(図1)は、DBC6a及びデータパケット6bを有する。DBC6aの代わりに、システムタイムSYT24を含ませてもよい。システムタイムSYT24は、上記のように、データパケット6bの先頭サンプルデータD24のタイミングを示す。
【0027】
データパケット6−32(図1)も上記と同様に生成することができる。Txノード2は、第32サンプルデータD32から第39サンプルデータD39までの8個のデータを1つのデータパケット6bとして生成する。このデータパケット6bの先頭データは、第32番目のサンプルデータD32であるので、そのデータパケット6bに対応するDBC6aの値は32である。DBC6aの代わりに、システムタイムSYT32を用いてもよい。
なお、上記のDBC及びシステムタイム(SYT)は、IEEE1394規格に準拠した"audio and music data transmission protocol"で規定されているものと同じであり、アイソクロナスパケット転送のためのCIPヘッダ内に含まれている。DBCは8ビットであり、SYTは16ビットである。
【0028】
図3は、図1のノード間の動作を示すタイミングチャートである。
【0029】
WCマスタノード1は、サンプルデータ24、32、40等のタイミングを示すWCパケット5−24、5−32、5−40等をTxノード2及びRxノード3に順次送信する。WCパケット5の送信間隔はインターバルSYT_INTERVAL(図2参照)である。
【0030】
WCパケット5がWCマスタノード1からTxノード2又はRxノード3に到達するまでの最大通信時間はSYT_OFFSETである。時間SYT_OFFSETは、IEEE1394規格で決められている最大遅延時間(トランスファディレイ)であり、352μsである。つまり、あるノードから他のノードへパケットを送信すると、遅くとも352μs以内にはパケットが到達することが保証されている。
【0031】
WCパケット5は、最大遅延時間SYT_OFFSETが加味されている。すなわち、WCパケット5−24は、第24サンプルカウントを示すサンプルカウント5bと、それに対応するシステムタイムSYT24(図2)に上記の最大遅延時間SYT_OFFSETを加算したシステムタイムWC_SYT24とを含む。システムタイムWC_SYT24=SYT24+SYT_OFFSETである。WCパケット5−32及び5−40等も同様に最大遅延時間SYT_OFFSETが加味されている。
【0032】
図3中のWCマスタノード1の縦軸は、自己が送信するWCパケット5内のサンプルカウント5bの値を示す。Txノード2及びRxノード3の各縦軸は、WCマスタノード1から受信したWCパケット5内のサンプルカウント5bの値を示す。3つのノード1、2、3は、上記のサンプルカウントの軸を基準にして処理を行う。サンプルカウント軸は、時間軸に相当する。3つのノードの軸は、絶対時間は異なるが、相対時間は同じである。Txノード2及びRxノード3は、それぞれのサンプルカウント軸に基づき同期をとることができる。
【0033】
WCマスタノード1は、例えばWCパケット5−32をTxノード2及びRxノード3に送信する。WCパケット5−32は、第32サンプルカウントを示すサンプルカウント5bとそれに対応するシステムタイムSYT32に上記の最大遅延時間SYT_OFFSET(352μs)を加算したシステムタイムWC_SYT32とを含む。
【0034】
Txノード2は、WCパケット5−32を受信すると、第32サンプルカウントにオフセット値SAMPLE_OFFSET(例えば17サンプル)を加算した第49(=32+17)サンプルデータを先頭に含むデータパケット6−49を送信する。データパケット6−49は、DBC6aが49であり、サンプルデータ6bが第49〜56サンプルデータである。
【0035】
オフセット値SAMPLE_OFFSET(例えば17サンプル)を加算することは、Txノード2からRxノード3へのデータパケット6の最大通信遅延時間を考慮したものであり、17サンプル分先のサンプルデータを送信することを意味する。つまり、Txノード2は、WCパケット5内のサンプルカウント5bが32であれば、その値に17サンプルを足したサンプルカウント値のサンプルデータを先頭にしたデータパケット6−49を送信する。
【0036】
この最大通信遅延時間が17サンプル分に相当することを説明する。上記のように最大通信遅延時間SYT_OFFSETは352μsである。オーディオデータのサンプリング周波数は、例えば、48kHzである。
【0037】
この場合のサンプル数は、48kHz×352μs=16.896である。したがって、サンプルオフセット値は、16.896サンプル以上でなければならない。サンプルオフセット値は、最小の整数として17サンプルが好ましい。
【0038】
Rxノード3は、遅くともサンプルカウントが49の時には、Txノード2から上記のデータパケット6−49を既に受信している。上記の通信の合計遅延時間はT1+T2である。遅延時間T1は、WCマスタノード1からTxノード2までのWCパケット5−32の通信時間である。遅延時間T2は、Txノード2からRxノード3までのデータパケット6−49の通信時間である。
【0039】
Rxノード3は、受信したデータパケット6−49をファーストインファーストアウトバッファ(FIFO)に格納し、サンプルカウントが49になったところで、データパケット6−49の再生処理を開始する。サンプルカウントが49になるまで、FIFOにパケットを格納して処理を待機することにより、遅延時間T1+T2を吸収することができる。
【0040】
上記のように、WCパケット5−32は、最大遅延時間SYT_OFFSETがオフセットされたシステムタイムWC_SYT32を含む。この最大遅延時間SYT_OFFSETは、通信遅延時間T1を吸収するためのオフセット値である。
【0041】
仮に、システムタイムオフセット値SYT_OFFSETをオフセットせずにWCパケット5−32を送信するとすると、Rxノード3がそのWCパケット5−32を受信したときには既にサンプルカウントの32に相当するシステムタイムが過ぎてしまっており、処理できなくなってしまう。
【0042】
データパケット6−49は、サンプルカウントオフセット値SAMPLE_OFFSETがオフセットされたDBC6aを含む。このオフセット値SAMPLE_OFFSETは、通信遅延時間T2を吸収するためのオフセット値である。
【0043】
仮に、サンプルカウントオフセット値SAMPLE_OFFSETをオフセットせずにデータパケット6−32を送信するとすると、Rxノード3がそのデータパケット6−32を受信したときには既にサンプルカウントの32が過ぎてしまっており、処理できなくなってしまう。
【0044】
図4は、WCマスタノード1の処理を示すフローチャートである。
【0045】
ステップSA1では、レジスタsample countに定数SYT_INTERVALを加算する。レジスタsample countは、オーディオデータのサンプル数のカウント値を格納するためのレジスタである。定数SYT_INTERVALは、1パケット内のサンプル数であり、例えば8である。このレジスタsample countは、図1のWCパケット5内のサンプルカウント5bに相当する。
【0046】
次に、システムタイムSYT(図2)にオフセット値SYT_OFFSETを加算した値をレジスタsytに格納する。システムタイムSYTは、例えば図2のSYT24である。オフセット値SYT_OFFSETは、最大遅延時間であり、例えば352μsである。オフセット値SYT_OFFSETを加算することにより、図3に示す遅延時間T1を吸収することができる。このレジスタsytは、図1のWCパケット5内のシステムタイム5aに相当する。
【0047】
ステップSA2では、図1に示すように、レジスタsample countをサンプルカウント5bとし、レジスタsytをシステムタイム5aとして、WCパケット5を生成し、バス4上に送出する。
【0048】
以上は1つのパケットの生成処理を示したが、WCマスタノード1は、所定時間間隔で上記の処理を繰り返し、例えば、WCパケット5−24、5−32、5−40等を順次送出する。
【0049】
WCパケット5−24は、システムタイム5aがWC_SYT24(=SYT24+SYT_OFFSET)であり、サンプルカウント5bが24である。WCパケット5−32は、システムタイム5aがWC_SYT32(=SYT32+SYT_OFFSET)であり、サンプルカウント5bが32である。
【0050】
図5は、第1のTxノード2の構成例を示すブロック図である。
【0051】
Txノード2は、IEEE1394インタフェースシステム11及びノードシステム12を有する。
【0052】
WCパケット5は、システムタイム5a及びサンプルカウント5bを含み、WCマスタノード1から受信するパケットである。サンプルカウントFIFO13は、サンプルカウント5bをファーストインファーストアウトで格納する。システムタイムFIFO14は、システムタイム5aをファーストインファーストアウトで格納する。
【0053】
システムタイム比較器15は、FIFO14が出力するシステムタイム5aとサイクルタイマ2aが出力するサイクルタイムの下位16ビットを比較する。サイクルタイムは32ビットである。システムタイム5aは、WCマスタノード1のサイクルタイムの下位16ビットに最大遅延時間SYT_OFFSET(352μs)を加算した値である。
【0054】
システムタイム5aは、最大遅延時間SYT_OFFSET分加算されているので、サイクルタイマ2aのサイクルタイムよりも大きい。サイクルタイマ2aは、約25MHzで順次サイクルタイムをインクリメントする。
【0055】
やがて、サイクルタイムとシステムタイム5aは一致する。両者が一致すると、比較器15は、一致信号を出力する。一致信号が出力するまで後に示す処理は待たされる。後の処理を待たせることにより、WCマスタノード1からTxノード2までの通信遅延時間T1(図3)を吸収することができる。WCマスタノード1から複数のTxノード2へWCパケット5を送信する場合、各Txノード2の受信時刻の相違を吸収することができる。
【0056】
位相フェーズロックループ回路(PLL)16は、上記の一致信号に同期して、例えば48kHzのオーディオ用ワードクロックWCKを生成し、ノードシステム12に供給する。
【0057】
タイミング調整器17は、上記の一致信号を受けた時点で、FIFO13内のサンプルカウント5bを加算器18へ出力する。加算器18は、サンプルカウント5bにオフセット値SAMPLE_OFFSET(例えば、17サンプル)を加算し、サンプルカウントSCNを出力する。例えば、サンプルカウント5bが32の場合、加算器18はサンプルカウントSCN=32+17=49を出力する。オフセット値を加算することにより、Txノード2からRxノード3までの通信遅延時間T2(図3)を吸収するための準備が整う。通信遅延時間T2の吸収は、後に示すRxノード3(図7)で行われる。
【0058】
ノードシステム12は、ワードクロックWCKに同期して、サンプルカウントSCN(例えば49)に応じて、8個のサンプルデータ(例えば第49〜第56サンプルデータ)をデータSDTとして読み出して、データFIFO19にファーストインファーストアウトで格納する。
【0059】
DBCジェネレータ20は、ワードクロックWCKに同期して、サンプルカウントSCNに応じてDBCを生成する。
【0060】
DBC6aは、DBCジェネレータ20により生成される。サンプルデータ6bは、FIFO19内のサンプルデータSDTを基に生成される。
【0061】
DBC6a及びサンプルデータ6bをパケット化することにより、データパケット6が生成される。データパケット6は、Txノード2からRxノード3へ送信される。
【0062】
なお、加算器18でサンプルカウント5bにオフセット値SAMPLE_OFFSETを加算した値SCNをノードシステム12に供給する場合に限定されず、サンプルカウント5bを直接供給するようにしてもよい。その場合、ノードシステム12は、オフセット値SAMPLE_OFFSETを考慮した処理を行う必要がある。
【0063】
また、サンプルカウントSCNをノードシステム12に1パケット毎に供給する場合に限定されず、1サンプル毎に供給するようにしてもよい。
【0064】
図6は、Txノード2の処理を示すフローチャートである。フローチャートの左側の処理SB1〜SB8はインタフェースシステム11の処理を示し、右側の処理SB9はノードシステム12の処理を示す。
【0065】
ステップSB1では、WCパケット5内のシステムタイム5a及びサンプルカウント5bをそれぞれFIFO14及び13に格納する。
【0066】
ステップSB2では、比較器15がシステムタイムとサイクルタイムを比較し、両者が一致するまで待機する。両者が一致すると、ステップSB3へ進む。
【0067】
ステップSB3では、FIFO14に格納されている次のシステムタイムを比較器15にロードし、次回の比較の準備を行う。
【0068】
ステップSB4では、PLL16がワードクロックWCKを生成する。
【0069】
ステップSB5では、加算器18がサンプルカウント5bとオフセット値SAMPLE_OFFSETを加算し、加算値SCNをノードシステム12へ出力する。
【0070】
次に、インタフェースシステム11はステップSB6を処理し、ノードシステム12はステップSB9を処理する。
【0071】
ステップSB6では、生成したサンプルカウントSCNを基にDBCを生成する。必要であれば、生成したDBCをFIFOに格納する。次に、ステップSB7へ進む。
【0072】
ステップSB9では、入力したサンプルカウントCNTに対応したサンプルデータSDTをインタフェースシステム11へ供給する。次に、ステップSB7へ進む。
【0073】
ステップSB7では、上記のノードシステム12からサンプルデータSDTを受け取る。
【0074】
ステップSB8では、サンプルデータSDT及びDBC等をパケット化して、データパケット6をRxノード3へ送出する。
【0075】
図7は、第1のRxノード3の構成例を示すブロック図である。
【0076】
Rxノード3は、IEEE1394インタフェースシステム31及びノードシステム32を有する。
【0077】
WCパケット5は、システムタイム5a及びサンプルカウント5bを含み、WCマスタノード1から受信するパケットである。サンプルカウントFIFO33は、サンプルカウント5bをファーストインファーストアウトで格納する。システムタイムFIFO34は、システムタイム5aをファーストインファーストアウトで格納する。
【0078】
システムタイム比較器35は、FIFO34が出力するシステムタイム5aとサイクルタイマ3aが出力するサイクルタイムの下位16ビットを比較する。システムタイム5aは、WCマスタノード1のサイクルタイムの下位16ビットに最大遅延時間SYT_OFFSET(325μs)を加算した値である。
【0079】
サイクルタイムとシステムタイム5aが一致すると、比較器35は、一致信号を出力する。一致信号が出力するまで後に示す処理は待たされる。後の処理を待たせることにより、WCマスタノード1からRxノード3までの通信遅延時間を吸収することができる。WCマスタノード1から複数のRxノード3へWCパケット5を送信する場合、各Rxノード3の受信時刻の相違を吸収することができる。
【0080】
PLL36は、上記の一致信号に同期して、例えば48kHzのオーディオ用ワードクロックWCKを生成し、ノードシステム32に供給する。
【0081】
タイミング調整器37は、上記の一致信号を受けた時点で、FIFO33内のサンプルカウント5bをサンプルカウントSCNとしてノードシステム32へ供給する。
【0082】
データパケット6は、DBC6a及びサンプルデータ6bを含み、Txノード2から受信するパケットである。DBC−FIFO40は、DBC6aをファーストインファーストアウトで格納する。データFIFO39は、サンプルデータ6bをファーストインファーストアウトで格納する。
【0083】
DBC比較器38は、FIFO33が出力するサンプルカウント5bとFIFO40が出力するDBC6aを比較する。DBC6aは、図5のTxノード2の加算器18にてサンプルカウント5bにオフセット値SAMPLE_OFFSET(例えば17)が加算された値である。
【0084】
DBC6aは、オフセット値が加算されているので、FIFO33のサンプルカウント5bよりも大きい。FIFO33は、入力されたサンプルカウント5bの値を出力し、その後、順次サンプルカウントをインクリメントした値を出力する。
【0085】
やがて、DBCとサンプルカウントは一致する。両者が一致すると、比較器38は、一致信号を出力する。一致信号が出力するまで、データFIFO39内のデータの読み出し処理は待たされる。読み出し処理を待たせることにより、Txノード2からRxノード3までの通信遅延時間T2(図3)を吸収することができる。Txノード2から複数のRxノード3へデータパケット6を送信する場合、各Rxノード3の受信時刻の相違を吸収することができる。
【0086】
データFIFO39及びDBC−FIFO40は、比較器38の比較結果により読み出しポインタ(アドレス)が制御される。
【0087】
比較器38が一致信号を出力すると、データFIFO39からサンプルデータが読み出されてタイミング調整器41に出力され、比較器38にはDBC−FIFO40内の次のDBCがセットされる。
【0088】
タイミング調整器41は、ワードクロックWCKに同期して、FIFO39から出力されたデータをサンプルデータSDTとしてノードシステム32に供給する。
【0089】
ノードシステム32は、ワードクロックWCKに同期して、サンプルカウントSCNに応じてサンプルデータ(オーディオデータ)SDTを再生処理し、スピーカから発音させる。
【0090】
なお、WCパケット5は、サンプルカウント5bの代わりにDBCを用いてもよい。その場合、FIFO33にはDBCが格納され、比較器38はFIFO33内のDBCとFIFO40内のDBCとを比較する。
【0091】
また、Rxノード3が受信を開始する際、データFIFO39及びDBC−FIFO40のリードポインタを所定値に制御する必要がある。具体的には、DBC−FIFO40の先頭のDBC値とサンプルカウントFIFO33の先頭のサンプルカウント値とを比較し、サンプル単位でデータFIFO39及びDBC−FIFO40の各リードポインタを制御する。これにより、サンプルカウントSCNとそれに対応するサンプルデータSDTをノードシステム32に所定のタイミングで供給することができる。
【0092】
IEEE1394規格では、複数チャンネル分のデータをアイソクロナスパケット転送することができる。データが複数チャンネル分存在するときには、上記のリードポインタ制御器を複数設けてもよいし、1つのリードポインタ制御器を切り換えて、1チャンネルずつ制御してもよい。データが複数チャンネル分存在するときには、データFIFO39はチャンネル数分必要である。
【0093】
図8は、Rxノード3の処理を示すフローチャートである。
【0094】
ステップSC1では、受信したWCパケット5内のシステムタイム5a及びサンプルカウント5bをそれぞれFIFO34及び33に格納する。
【0095】
ステップSC2では、データパケット6を受信した場合、パケット6内の内のDBC6a及びサンプルデータ6bをそれぞれFIFO40及び39に格納する。
【0096】
ステップSC3では、比較器35がシステムタイムとサイクルタイムを比較し、両者が一致するまで待機する。両者が一致すると、ステップSC4へ進む。
【0097】
ステップSC4では、FIFO34に格納されている次のシステムタイムを比較器35にロードし、次回の比較の準備を行う。
【0098】
ステップSC5では、PLL36がワードクロックWCKを生成する。
【0099】
ステップSC6では、比較器38がFIFO33内のサンプルカウントとFIFO40内のDBCとを比較し、比較結果に応じてFIFO39及び40の読み出しポインタを調整する。
【0100】
ステップSC7では、調整したポインタを基にFIFO39からサンプルデータSDTを読み出し、ノードシステム32に供給する。そして、FIFO33内のサンプルカウントSCNを読み出して、ノードシステム32に供給する。
【0101】
以上の第1の実施例では、図3に示すように、サンプルカウント軸を基準にすることにより、ノード間の同期をとる。第1及び第2の2つの送信ノード2が1つの受信ノード3にデータパケット6を送信する場合を説明する。WCマスタノード1は、第1及び第2の送信ノード2及び受信ノード3にWCパケット5を送信する。第1及び第2の送信ノード2は、それぞれWCパケット5に応じてデータパケット6を受信ノード3に送信する。例えば、第1の送信ノードは、第1の演奏会場で演奏された楽音をオーディオデータとしてリアルタイムで送信し、第2の送信ノードは、第2の演奏会場で演奏された楽音をリアルタイムで送信する。受信ノードは、第1及び第2の送信ノードからそれぞれ受信したオーディオデータを同期をとって再生することができる。これにより、第1及び第2の演奏会場での合同演奏が可能になる。
【0102】
次に、第2の実施例を示す。第2の実施例では、サンプルカウント軸の代わりに、システムタイム軸を基準にすることにより、ノード間の同期をとる。
【0103】
図9は、第2のTxノード2の構成例を示すブロック図である。
【0104】
第2の実施例では、図2に示すように、DBC6aの代わりにシステムタイム6cを用いる。すなわち、データパケット6は、システムタイム6c及びサンプルデータ6bを含む。
【0105】
Txノード2は、IEEE1394インタフェースシステム51及びノードシステム52を有する。
【0106】
WCパケット5は、システムタイム5a及びサンプルカウント5bを含む。サンプルカウントFIFO53は、サンプルカウント5bをファーストインファーストアウトで格納する。システムタイムFIFO54は、システムタイム5aをファーストインファーストアウトで格納する。
【0107】
システムタイム比較器55は、FIFO54が出力するシステムタイム5aとサイクルタイマ2aが出力するサイクルタイムの下位16ビットを比較する。システムタイム5aは、WCマスタノード1のサイクルタイムの下位16ビットに最大遅延時間SYT_OFFSET(352μs)を加算した値である。
【0108】
サイクルタイムとシステムタイム5aが一致すると、比較器55は、一致信号を出力する。一致信号が出力するまで後に示す処理は待たされる。後の処理を待たせることにより、WCマスタノード1からTxノード2までの通信遅延時間T1(図3)を吸収することができる。
【0109】
PLL56は、上記の一致信号に同期して、例えば48kHzのオーディオ用ワードクロックWCKを生成し、ノードシステム52に供給する。
【0110】
タイミング調整器57は、上記の一致信号を受けた時点で、FIFO53内のサンプルカウント5bをサンプルカウントSCNとしてノードシステム52に供給する。
【0111】
ノードシステム52は、ワードクロックWCKに同期して、サンプルカウントSCN(例えば49)に応じて、8個のサンプルデータ(例えば第49〜第56サンプルデータ)をデータSDTとして読み出して、データFIFO59にファーストインファーストアウトで格納する。
【0112】
タイミング調整器100は、上記でシステムタイムFIFO54から出力されたシステムタイム5aの値(比較器55で一致した値)を、比較器55で一致したタイミングで加算器58へ供給する。加算器58は、システムタイム5aにオフセット値SYT_OFFSET(例えば、17サンプルに相当するシステムタイム)を加算し、システムタイムFIFO60にファーストインファーストアウトで格納する。オフセット値を加算することにより、Txノード2からRxノード3までの通信遅延時間T2(図3)を吸収するための準備が整う。通信遅延時間T2の吸収は、後に示すRxノード3(図11)にて行われる。
【0113】
FIFO60内のシステムタイム6a及びFIFO59内のサンプルデータ6bを基に、データパケット6を生成する。データパケット6は、Txノード2からRxノード3へ送信される。
【0114】
図10は、上記の第2のTxノード2(図9)の処理を示すフローチャートである。フローチャートの左側の処理SD1〜SD7はインタフェースシステム51の処理を示し、右側の処理SD8はノードシステム52の処理を示す。
【0115】
ステップSD1では、WCパケット5内のシステムタイム5a及びサンプルカウント5bをそれぞれFIFO54及び53に格納する。
【0116】
ステップSD2では、比較器55がシステムタイムとサイクルタイムを比較し、両者が一致するまで待機する。両者が一致すると、ステップSD3へ進む。
【0117】
ステップSD3では、FIFO54に格納されている次のシステムタイムを比較器55にロードし、次回の比較の準備を行う。
【0118】
ステップSD4では、PLL66がワードクロックWCKを生成する。
【0119】
ステップSD5では、FIFO53内のサンプルカウントSCNをノードシステム52に供給する。
【0120】
次に、インタフェースシステム51はステップSD6を処理し、ノードシステム52はステップSD8を処理する。
【0121】
ステップSD6では、加算器58が上記の一致したシステムタイム5aとオフセット値SYT_OFFSETを加算し、加算値をFIFO60に格納する。次に、ステップSD7へ進む。
【0122】
ステップSD8では、入力したサンプルカウントSCNに応じたサンプルデータSDTをインタフェースシステム51へ供給する。次に、ステップSD7へ進む。
【0123】
ステップSD7では、サンプルデータSDT及びシステムタイム等をパケット化して、データパケット6をバス4を介してRxノード3へ送出する。
【0124】
図11は、第2のRxノード3の構成例を示すブロック図である。
【0125】
第2の実施例では、第1の実施例(図7)と異なり、データパケット6はDBC6aの代わりにシステムタイム6cを含む。データパケット6は、システムタイム6c及びサンプルデータ6bを含む。
【0126】
Rxノード3は、IEEE1394インタフェースシステム71及びノードシステム72を有する。
【0127】
受信するデータパケット6は、システムタイム6c及びサンプルデータ6bを含む。システムタイムFIFO80は、システムタイム6cをファーストインファーストアウトで格納する。データFIFO79は、サンプルデータ6bをファーストインファーストアウトで格納する。
【0128】
システムタイム比較器78は、FIFO80が出力するシステムタイム5cとサイクルタイマ3aが出力するサイクルタイムを比較する。システムタイム6cは、図9のTxノード2の加算器58にてシステムタイム5aにオフセット値SYT_OFFSETを加算した値である。
【0129】
システムタイム6cは、オフセット値SYT_OFFSETが加算されているので、初期はサイクルタイマ3aのサイクルタイムの値よりも大きい。サイクルタイマ3aは、順次サイクルタイムをインクリメントする。
【0130】
システムタイム6cとサイクルタイムが一致すると、比較器78は、一致信号を出力する。一致信号が出力されるまで、データFIFO79内のデータの読み出し処理は待たされる。この待機により、Txノード2からRxノード3までの通信遅延時間T2(図3)を吸収することができる。
【0131】
タイミング調整器81は、比較器78から一致信号を受けると、データFIFO79からサンプルデータを読み出して、データFIFO73に格納する。比較器78が一致信号を出力すると、比較器78にはシステムタイム80内の次のシステムタイムがセットされる。
【0132】
受信するWCパケット5は、システムタイム5a及びサンプルカウント5bを含む。システムタイムFIFO74は、システムタイム5aをファーストインファーストアウトで格納する。サンプルカウントFIFO82は、サンプルカウント5bをファーストインファーストアウトで格納する。
【0133】
システムタイム比較器75は、FIFO74が出力するシステムタイム5aとサイクルタイマ3aが出力するサイクルタイムの下位16ビットを比較する。システムタイム5aは、WCマスタノード1のサイクルタイムの下位16ビットに最大遅延時間SYT_OFFSET(352μs)を加算した値である。
【0134】
サイクルタイムとシステムタイム5aが一致すると、比較器75は、一致信号を出力する。一致信号が出力するまで後に示す処理が待たされるので、WCマスタノード1からRxノード3までの通信遅延時間を吸収することができる。
【0135】
PLL76は、上記の一致信号に同期して、例えば48kHzのオーディオ用ワードクロックWCKを生成し、ノードシステム72に供給する。
【0136】
タイミング調整器77は、上記の一致信号を受けた時点で、データFIFO73内のサンプルデータ6bをサンプルデータSDTとしてノードシステム72へ供給する。
【0137】
タイミング調整器83は、上記の一致信号を受けた時点で、サンプルカウントFIFO82内のサンプルカウント5bをサンプルカウントSCNとしてノードシステム72へ供給する。
【0138】
ノードシステム72は、ワードクロックWCKに同期して、サンプルカウントSCNに応じてサンプルデータ(オーディオデータ)SDTを再生することにより、スピーカから発音させることができる。
【0139】
以上のように、第2の実施例によれば、システムタイム軸を基準にすることにより、ノード間の同期をとることができる。比較器78は、Txノード2からRxノード3までのデータパケット6の通信遅延時間を吸収し、比較器75は、WCマスタノード1からRxノード3までのWCパケット5の通信遅延時間を吸収することができる。これら通信遅延時間を吸収することにより、ノード間の同期をとることができる。
【0140】
図12は、上記の第2のRxノード3(図11)の処理を示すフローチャートである。
【0141】
ステップSE1では、受信したWCパケット5内のシステムタイム5a及びサンプルカウント5bをそれぞれFIFO74及び82に格納する。
【0142】
ステップSE2では、データパケット6を受信した場合、パケット6内のシステムタイム6c及びサンプルデータ6bをそれぞれFIFO80及び79に格納する。
【0143】
ステップSE3では、比較器78がFIFO80内のシステムタイム6cとサイクルタイマ3aのサイクルタイムとを比較し、両者が一致するまで待機する。両者が一致すると、ステップSE4へ進む。
【0144】
ステップSE4では、FIFO80に格納されている次のシステムタイムを比較器78にロードし、次回の比較の準備を行う。
【0145】
ステップSE5では、データFIFO79内のサンプルデータをデータFIFO73に格納する。
【0146】
ステップSE6では、比較器75がFIFO74内のシステムタイム5aとサイクルタイマ3aのサイクルタイムとを比較し、両者が一致するまで待機する。両者が一致すると、ステップSE7へ進む。
【0147】
ステップSE7では、FIFO74に格納されている次のシステムタイムを比較器75にロードし、次回の比較の準備を行う。
【0148】
ステップSE8では、PLL76がワードクロックWCKを生成する。
【0149】
ステップSE9では、FIFO82内のサンプルカウントSCN及びFIFO73内のサンプルデータSDTをノードシステムに供給する。
【0159】
次に、WCマスタノード1、Txノード2及びRxノード3の各サイクルタイマ1a,2a,3a(図1)の位相を合わせる方法を説明する。WCマスタノード1、Txノード2及びRxノード3は、全てIEEE1394バスに接続されたノードである。これらのノードのうちの一つがルートノードとして決定される。例えば、各ノードに識別番号が付与され、その識別番号が最も小さな値又は大きな値のノードがルートノードとなる。その構成を次に示す。
【0160】
図14は、図1のネットワークを別の観点から表現したネットワークの構成を示す。
【0161】
ルートノードRNは、WCマスタノード1、Txノード2又はRxノード3のうちのいずれか一つのノードである。第1ノードN1〜第nノードNnは、ルートノード以外のノードである。
【0162】
ルートノードRNは、自己のサイクルタイマで生成されたサイクルタイムCTをバス上に送出する。ノードN1〜Nnは、ルートノードRNが送出するサイクルタイムCTを受け取り、そのサイクルタイムCTの値を自己のサイクルタイマにセットする。
【0163】
図15は、ルートノードRNが行う処理を示すフローチャートである。
【0164】
ステップSF1では、自己のサイクルタイマの値CTを他のノードに送信し、処理を終了する。ルートノードRNは、所定周期でサイクルタイマの値CTをブロードキャストでバス上に送信する。
【0165】
図16は、ノードN1〜Nnが行う処理を示すフローチャートである。
【0166】
ステップSG1では、ルートノードRNからサイクルタイマの値CTを受信する。
【0167】
ステップSG2では、自己のサイクルタイマを受信したサイクルタイマの値CTに更新する。
【0168】
このフローチャートは、ルートノードRNから所定周期でサイクルタイマの値CTを受信する度に行う。
【0169】
上記の方法により、各ノードのサイクルタイマの同期をとることができる。ここで、ルートノードRNがサイクルタイムCTを送信する遅延時間について考える。遅延時間の相違により、各ノードN1〜NnがサイクルタイムCTを受信する時刻は異なる。次に、通信遅延時間を考慮した処理を示す。
【0170】
ノードN1〜Nnは、ルートノードRNにピンパケットを送信する。ルートノードRNは、ピンパケットを受信すると、レスポンスパケットを返送する。ノードN1〜Nnは、ピンパケットを送信してからレスポンスパケットを受信するまでの時間を計測する。その時間は、ノードN1〜NnからルートノードRNまでの往復通信遅延時間である。ノードN1〜Nnは、自己のサイクルタイマを片道通信遅延時間分だけ進め、ルートノードRNのサイクルタイマの位相に合わせる。
【0171】
例えば、往復通信遅延時間が100μsとして計測された場合、片道通信遅延時間は50μsである。ノードN1〜Nnは、自己のサイクルタイマを片道通信遅延時間(50μs)分だけ加算する。
【0172】
サイクルタイマを片道通信遅延時間だけ加算することにより、各ノードのサイクルタイマの位相を合わせることができる。これにより、複数のRxノードは、ほぼ同時にオーディオデータの再生を行うことができる。次に、上記の処理をフローチャートにそって説明する。
【0173】
図17は、サイクルタイマの遅延時間補正値の決定処理を示すフローチャートである。フローチャートの左側の処理SH1、SH4、SH5、SH6はノードN1〜Nnの処理を示し、右側の処理SH2、SH3はルートノードRNの処理を示す。
【0174】
ステップSH1では、ノードN1〜NnがピンパケットをルートノードRNに送信し、時間計測を開始する。
【0175】
ステップSH2では、ルートノードRNがピンパケットを受信する。
【0176】
ステップSH3では、ルートノードRNが送信元のノードN1〜Nnにレスポンスパケットを即時に送信する。
【0177】
ステップSH4では、ノードN1〜Nnがレスポンスパケットを受信する。
【0178】
ステップSH5では、ノードN1〜Nnがピンパケットを送信(ステップSH1)してからレスポンスパケットを受信(ステップSH4)するまでの往復通信遅延時間を算出する。
【0179】
ステップSH6では、算出した往復通信遅延時間の半分の値を片道通信遅延時間として算出する。次に、片道通信遅延時間の値をサイクルタイムに換算して、補正値を決定する。サイクルタイムは、原則として約25MHzでカウントされる値である。
【0180】
図18は、ノードN1〜Nnが行う補正処理を示すフローチャートであり、図16のフローチャートに代わるものである。
【0181】
ステップSI1では、図15でルートノードRNから送信されたサイクルタイマの値CTを受信する。
【0182】
ステップSI2では、受信したサイクルタイマの値CTに図17で決定した補正値を加算する。
【0183】
ステップSI3では、自己のサイクルタイマを、上記の補正されたサイクルタイムの値に更新する。
【0184】
サイクルタイムを補正することにより、各ノードのサイクルタイマの位相を合わせることができる。例えば、第1のTxノード2(図5)では、サイクルタイマ2aの値を補正し、第1のRxノード3(図7)では、サイクルタイマ3aの値を補正する。
【0185】
次に、サイクルタイムの代わりに、システムタイムを補正する方法を説明する。第1のTxノード2(図5)では、比較器15がサイクルタイマ2aの値とシステムタイムFIFO14の値とを比較する。上記では、サイクルタイマ2aの値を補正したが、その代わりにシステムタイムFIFO14の値を補正して、比較器15にセットする。
【0186】
第1のRxノード3(図7)でも、同様に、サイクルタイマ3aの値を補正する代わりに、システムタイムFIFO34の値を補正して、比較器35にセットする。
【0187】
第2のTxノード2(図9)でも、同様に、サイクルタイマ2aの値を補正する代わりに、システムタイムFIFO54の値を補正して、比較器55にセットする。
【0188】
第2のRxノード3(図11)でも、同様に、サイクルタイマ3aの値を補正する代わりに、システムタイムFIFO74の値を補正して比較器75にセットし、かつシステムタイムFIFO80の値を補正して比較器78にセットする。
【0189】
図19は、上記のシステムタイム補正処理を示すフローチャートである。
【0190】
ステップSJ1では、システムタイムの値を受信用FIFO14、34、54、74、80から取り出す。
【0191】
ステップSJ2では、取り出したシステムタイマの値と図17で決定した補正値とを基に演算する。例えば、システムタイマの値から補正値を減算する。
【0192】
ステップSJ3では、比較器15、35、55、75、78の上記の演算値をセットする。
【0193】
なお、第2のTxノード(図9)では、システムタイムFIFO60内のシステムタイムを補正してデータパケット6を送信するようにしてもよい。その場合、第2のRxノード(図11)のシステムFIFO80の値を補正する必要はない。
【0194】
以上のように、サイクルタイム又はシステムタイムを補正することによって、各ノードの時間軸の位相を合わせることができる。位相を合わせることにより、複数のTxノードの送信タイミング又は複数のRxノードの再生タイミングの位相を合わせることができる。
【0195】
第1及び第2の実施例によれば、WCマスタノード1がWCパケット5をTxノード2及びRxノード3に送信する。Txノード2は、Rxノード3にデータパケット6を送信する。データパケット6は、サンプルデータ6bの他、DBC6a又はシステムタイム6cを有する。
【0196】
第1の実施例では、DBC6aを用いて、サンプルカウント軸を基にノード間の同期をとることができる。第2の実施例では、システムタイム6cを用いて、システムタイム軸を基にノード間の同期をとることができる。
【0197】
ノード間で同期をとることにより、1つのTxノードから複数のRxノードに同じデータをほぼ同時に送信する場合に、複数のRxノード間でデータの再生時間を合わせることができる。また、各Rxノードは、タイミングずれを起こすことなく、一連のデータを再生することができる。
【0198】
また、ノード間で同期をとることにより、複数のTxノードから1つのRxノードにデータを送信する場合に、Rxノードでは複数のTxノードから送信されるデータのタイミングを合わせることができる。
【0199】
なお、パケット中のデータはオーディオデータに限定されず、画像データ等でもよい。通信は、IEEE1394デジタルシリアル通信に限定されず、その他のシリアル通信やパラレル通信でもよい。例えば、インターネット、LAN等でもよい。
【0200】
図20はパーソナルコンピュータ12の具体的なハードウェア構成を示す図である。
【0201】
パーソナルコンピュータ12の構成を説明する。バス21には、CPU22、RAM24、外部記憶装置25,外部に対してMIDIデータを送受信するためのMIDIインターフェース26、サウンドカード27、ROM28、表示装置29、キーボードやスイッチやマウス等の入力手段30,インターネットに接続するための通信インターフェース31が接続されている。
【0202】
サウンドカード27は、バッファ27aとコーデック回路27bを有する。バッファ27aは、外部に対して入力又は出力するためのデータをバッファリングする。コーデック回路27bは、A/D変換器及び、D/A変換器を有し、アナログ形式とデジタル形式両者間の変換を行うことが出来る。さらに、コーデック回路27bは、圧縮/伸張回路を有し、データの圧縮及び伸張を行うことができる。
【0203】
外部記憶装置25は、たとえばハードディスクドライブ、フロッピーディスクドライブ、CD−ROMドライブ、光磁気ディスクドライブ等であり、MIDIデータ、オーディオデータ、画像データ又はコンピュータープログラム等を記憶することができる。
【0204】
ROM28は、コンピュータプログラム及び各種パラメータを記憶することができる。RAM24は、バッファやレジスタ等のワーキングエリアを有し、外部記憶装置25に記憶されている内容をコピーして記憶することができる。
【0205】
CPU22は、ROM28又はRAM24に記憶されているコンピュータプログラムに従って、各種演算又は処理を行う。システムクロック23は、時間情報を生成する。CPU22はシステムクロック23から時間情報を得て、タイマ割り込み処理を行うことができる。
【0206】
インターネット回線32には、パーソナルコンピュータ12の通信インターフェース31が接続される。通信インターフェース31は、インターネットにより、MIDIデータ、オーディオデータ、画像データ及びコンピュータプログラム等を送受信するためのインターフェースである。
【0207】
MIDIインターフェース26には、MIDI音源13が接続され、サウンドカード27には、音声出力装置14が接続される。CPU22は、通信インターフェース31を介して、インターネット回線32上からMIDIデータとオーディオデータと画像データとコンピュータープログラム等を受信する。
【0208】
通信インターフェース31は、インターネット用インターフェースのほか、イーサネット用インターフェース、IEEE1394規格のデジタル通信インターフェース、RS−232C用インターフェースでもよく、種々のネットワークに接続することができる。
【0209】
パーソナルコンピュータ12は、オーディオデータの受信や再生等をするためのコンピュータプログラムを記憶する。コンピュータプログラムや各種パラメータ等を外部記憶装置25に記憶させておき、それをRAM24に読み込むことにより、コンピュータプログラム等の追加やバージョンアップ等が容易に行える。
【0210】
CD−ROM(コンパクトディスク−リード・オンリー・メモリー)ドライブは、CD−ROMに記憶されているコンピュータプログラム等を読み出す装置である。読み出したコンピュータプログラム等は、ハードディスクにストアされる。コンピュータプログラムの新規インストールやバージョンアップ等が容易に行える。
【0211】
通信インターフェース31はLAN(ローカルエリアネットワーク)やインターネット、電話回線等の通信ネットワーク32に接続されており、該通信ネットワーク32を介して、コンピュータ33と接続される。外部記憶装置25内に上記のコンピュータプログラム等が記憶されていない場合、コンピュータ33からコンピュータプログラム等をダウンロードすることができる。パーソナルコンピュータ12は、通信インターフェース31及び、通信ネットワーク32を介してコンピュータ33へコンピュータプログラム等のダウンロードを要求するコマンドを送信する。コンピュータ33は、このコマンドを受け、要求されたコンピュータプログラム等を、通信ネットワーク32を介して、パーソナルコンピュータ12へ配信する。パーソナルコンピュータ12が、通信インターフェース31介して、コンピュータプログラム等を受信して外部記憶装置25に蓄積することにより、ダウンロードが完了する。
【0212】
なお、本実施例は、本実施例に対応するコンピュータプログラム等をインストールした市販のパーソナルコンピュータ等によって、実施させるようにしてもよい。その場合には、本実施例に対応するコンピュータプログラム等を、CD−ROMやフロッピーディスク等の、コンピュータが読み込むことが出来る記憶媒体に記憶させた状態で、ユーザーに提供してもよい。そのパーソナルコンピュータ等が、LAN、インターネット、電話回線等の通信ネットワークに接続されている場合には、通信ネットワークを介して、コンピュータプログラムや各種データ等をパーソナルコンピュータ等に提供してもよい。
【0213】
以上実施例に沿って本発明を説明したが、本発明はこれらに制限されるものではない。たとえば、種々の変更、改良、組み合わせ等が可能なことは当業者に自明であろう。
【0214】
【発明の効果】
以上説明したように、本発明によれば、複数の通信装置間で同期情報を通信することにより、同期をとってデータの送信又は処理を行うことができる。
【図面の簡単な説明】
【図1】 本発明の実施例によるネットワークの構成を示すブロック図である。
【図2】 送信ノード(Txノード)の処理を示すタイミングチャートである。
【図3】 図1に示す各ノードのタイミングチャートである。
【図4】 WCマスタノードの処理を示すフローチャートである。
【図5】 第1のTxノードの構成を示すブロック図である。
【図6】 第1のTxノードの処理を示すフローチャートである。
【図7】 第1の受信ノード(Rxノード)の構成を示すブロック図である。
【図8】 第1のRxノードの処理を示すフローチャートである。
【図9】 第2のTxノードの構成を示すブロック図である。
【図10】 第2のTxノードの処理を示すフローチャートである。
【図11】 第2のRxノードの構成を示すブロック図である。
【図12】 第2のRxノードの処理を示すフローチャートである。
【図13】 ネットワークの構成を示すブロック図である。
【図14】 ルートノードの処理を示すフローチャートである。
【図15】 ルートノード以外のノードの処理を示すフローチャートである。
【図16】 サイクルタイマの遅延時間補正値の決定処理を示すフローチャートである。
【図17】 遅延時間の第1の補正処理を示すフローチャートである。
【図18】 遅延時間の第2の補正処理を示すフローチャートである。
【図19】 パーソナルコンピュータ12の具体的なハードウェア構成を示す図である。
[0001]
BACKGROUND OF THE INVENTION
The present invention relates to a communication technique, and more particularly, to a communication technique for synchronizing a plurality of communication apparatuses.
[0002]
[Prior art]
IEEE 1394 standard digital serial communication is spreading. In the IEEE 1394 standard, a network can be configured by connecting a plurality of communication nodes. For example, one receiving node can receive audio data from multiple transmitting nodes.
[0003]
Assume that the first and second transmitting nodes transmit data to one receiving node at the same time. In this case, the time at which the receiving node receives from the first transmitting node and the time from the second transmitting node are usually different due to the difference in distance between the nodes. For example, data is received from a first transmission node and then data is received from a second transmission node.
[0004]
Each of the transmitting node and the receiving node has its own cycle timer. Each cycle timer is not synchronized. It is difficult for the receiving node to synchronize the data received from the first transmitting node and the data received from the second transmitting node.
[0005]
In addition, one transmitting node may transmit the same data to the first and second receiving nodes almost simultaneously. However, as described above, normally, the time received by the first receiving node is different from the time received by the second receiving node. Since the first and second receiving nodes reproduce the received data according to their own cycle timers, the reproduction processing of the first and second receiving nodes is likely to be shifted.
[0006]
[Problems to be solved by the invention]
It is difficult for the receiving node to synchronize data transmitted from a plurality of transmitting nodes. Further, when the transmitting node transmits data to a plurality of receiving nodes, it is difficult to synchronize between the plurality of receiving nodes.
[0007]
An object of the present invention is to provide a communication device capable of synchronizing data communicated between a plurality of communication nodes.
[0008]
[Means for Solving the Problems]
According to an aspect of the present invention, a communication device forming one of a plurality of nodes connected to a network generates a time value synchronized with a time value output from a root node connected to the network. A cycle timer, sample count generation means for generating a count value for counting samples of audio data, and a synchronization time value for generating a synchronization time value in which a maximum delay amount is added to a time value corresponding to the synchronized time value Generating means; and a synchronization packet output means for generating a synchronization packet including the sample count value and the synchronization time value at a predetermined time interval and outputting the generated synchronization packet to the network.
[0009]
According to another aspect of the present invention, a communication device forming one of a plurality of nodes connected to a network has a time value synchronized with a time value output by a route node connected to the network. A clock timer for generating a word clock based on the synchronized time value and the received synchronization information, a receiving unit for receiving synchronization information from a word clock node connected to the network, and a clock generator for generating a word clock based on the synchronized time value and the received synchronization information Data sample supply means for sequentially supplying audio data samples based on the word clock; sample count supply means for supplying audio data sample count values based on the synchronization information; and maximum transfer delay to the count values Synchronous count generating means for generating a synchronous count value taking the amount into account, Communication apparatus having a transmitting means for transmitting to the receiving node to generate a data packet, which is connected generated data packet to the network including the supplied plurality of samples and the synchronization count.
[0010]
According to still another aspect of the present invention, a communication device forming one of a plurality of nodes connected to a network is synchronized with a time value output by a root node connected to the network. A cycle timer for generating a value, receiving means for receiving synchronization information from a word clock node connected to the network, and clock generation for generating a word clock based on the synchronized time value and the received synchronization information Means, data sample supply means for sequentially supplying audio data samples based on the word clock, and a synchronization time value generation means for generating a synchronization time value in which a maximum transfer delay amount is added to the synchronized time value. Generating a data packet including the supplied plurality of samples and the synchronization time value; And a transmitting means for transmitting a packet to the connected receiving node to the network.
[0011]
According to still another aspect of the present invention, a communication device forming one of a plurality of nodes connected to a network is synchronized with a time value output by a root node connected to the network. A cycle timer for generating a value, synchronization information receiving means for receiving synchronization information from a word clock node connected to the network, and generating a word clock based on the synchronized time value and the received synchronization information Clock generation means, data reception means for receiving a data packet including a plurality of samples and a synchronization count value associated with the plurality of samples from a transmission node connected to the network, the synchronization information and the synchronization count value And a plurality of samples included in the data packet at the timing based on And a sample output means for sequentially output one sample in accordance with the click.
[0012]
According to still another aspect of the present invention, a communication device forming one of a plurality of nodes connected to a network has a communication arrival delay time from a root node connected to the network to the communication device. Measuring means for measuring, a determining means for determining a correction value according to the arrival delay time measured by the measuring means, a time value receiving means for receiving the time value output by the root node, and the received time value Correction means for correcting according to the correction value, a cycle timer for generating a time value synchronized based on the corrected time value, and synchronization information for receiving synchronization information from a word clock node connected to the network Receiving means; and clock generating means for generating a word clock based on the synchronized time value and the received synchronization information
According to still another aspect of the present invention, a communication device forming one of a plurality of nodes connected to a network is synchronized with a time value output by a root node connected to the network. A cycle timer for generating a value, a measuring means for measuring an arrival delay time of communication from the root node to the communication device, a determining means for determining a correction value according to the arrival delay time measured by the measuring means, Synchronization information receiving means for receiving synchronization information from a word clock node connected to the network, correction means for correcting the received synchronization information according to the correction value, the synchronized time value and the corrected Clock generating means for generating a word clock based on the synchronization information.
[0013]
DETAILED DESCRIPTION OF THE INVENTION
FIG. 1 is a block diagram showing the configuration of a communication network according to the first embodiment of the present invention.
In this embodiment, it is possible to transfer packets in accordance with the “audio and music data transmission protocol” compliant with the IEEE 1394 standard. The packet transfer is preferably performed by the IEEE 1394 standard isochronous packet transfer.
[0014]
A word clock (WC) master node 1 and WC slave nodes 2 and 3 are connected to the IEEE 1394 bus 4. The WC slave node 2 is a transmission node (hereinafter referred to as a Tx node), and the WC slave node 3 is a reception node (hereinafter referred to as an Rx node). A plurality of Tx nodes 2 and / or a plurality of Rx nodes 3 may be connected to the bus 4.
[0015]
The WC master node 1 has a cycle timer 1a, the Tx node 2 has a cycle timer 2a, and the Rx node 3 has a cycle timer 3a. The cycle timers 1a, 2a and 3a are basically counters operating at about 25 MHz.
[0016]
The WC master node 1 transmits the WC packet 5 to the Tx node 2 and the Rx node 3 via the bus 4. The WC packet 5 is a packet for synchronization, and includes a system time 5a and a sample count 5b.
[0017]
The WC master node 1 sequentially transmits, for example, WC packets 5-24, 5-32, 5-40, and the like at predetermined intervals. The WC packet 5-24 is a packet for synchronizing the audio data of the 24th sample. The WC packets 5-32 and 5-40 are packets for synchronizing the audio data of the 32nd sample and the 40th sample, respectively.
[0018]
The Tx node 2 adjusts the timing according to the WC packet 5 received from the WC master node 1 and transmits the data packet 6 to the Rx node 3 via the bus 4. The data packet 6 includes a DBC 6a indicating a sample count and eight sample data 6b.
[0019]
The Tx node 2 sequentially transmits, for example, data packets 6-24, 6-32, 6-40 and the like to the Rx node 3 at predetermined intervals. The data packet 6-24 includes audio data 6b of 24th to 31st samples. The data packets 6-32 and 6-40 include audio data 6b of 32nd to 39th samples and 40th to 47th samples, respectively.
[0020]
The Rx node 3 adjusts timing according to the WC packet 5 received from the WC master node 1 and reproduces sample data (for example, audio data) 6b in the data packet 6 received from the Tx node 2.
[0021]
FIG. 2 is a timing chart for explaining the operation of the Tx node 2.
[0022]
First, a method for generating the data packet 6-24 (FIG. 1) will be described. The Tx node 2 generates eight data from the 24th sample data D24 to the 31st sample data D31 as one data packet 6b. The interval SYT_INTERVAL is a cycle for generating a packet.
[0023]
The cycle timer 2a increases the 32-bit cycle time value as time passes. Here, the cycle times of the 24th, 32nd, and 40th sample data D24, D32, D40 are CT24, CT32, and CT40, respectively.
[0024]
The system times SYT24, SYT32, and SYT40 are values of lower 16 bits of the cycle times CT24, CT32, and CT40, respectively.
[0025]
DBC 6a indicates the sample count. For example, since the head data of the data packet 6b is the 24th sample data D24, the value of the DBC 6a corresponding to the data packet 6b is 24.
[0026]
The data packet 6 (FIG. 1) includes a DBC 6a and a data packet 6b. The system time SYT24 may be included instead of the DBC 6a. As described above, the system time SYT24 indicates the timing of the first sample data D24 of the data packet 6b.
[0027]
The data packet 6-32 (FIG. 1) can also be generated in the same manner as described above. The Tx node 2 generates eight pieces of data from the 32nd sample data D32 to the 39th sample data D39 as one data packet 6b. Since the head data of the data packet 6b is the 32nd sample data D32, the value of the DBC 6a corresponding to the data packet 6b is 32. System time SYT32 may be used instead of DBC 6a.
The above DBC and system time (SYT) are the same as those defined in “audio and music data transmission protocol” conforming to the IEEE 1394 standard, and are included in the CIP header for isochronous packet transfer. Yes. DBC is 8 bits and SYT is 16 bits.
[0028]
FIG. 3 is a timing chart showing the operation between the nodes in FIG.
[0029]
The WC master node 1 sequentially transmits WC packets 5-24, 5-32, 5-40 and the like indicating the timing of the sample data 24, 32, 40, etc. to the Tx node 2 and the Rx node 3. The transmission interval of the WC packet 5 is an interval SYT_INTERVAL (see FIG. 2).
[0030]
The maximum communication time until the WC packet 5 reaches the Tx node 2 or the Rx node 3 from the WC master node 1 is SYT_OFFSET. The time SYT_OFFSET is a maximum delay time (transfer delay) determined by the IEEE 1394 standard, and is 352 μs. That is, when a packet is transmitted from one node to another, it is guaranteed that the packet will arrive within 352 μs at the latest.
[0031]
The WC packet 5 includes a maximum delay time SYT_OFFSET. That is, the WC packet 5-24 includes a sample count 5b indicating the 24th sample count, and a system time WC_SYT24 obtained by adding the maximum delay time SYT_OFFSET to the corresponding system time SYT24 (FIG. 2). System time WC_SYT24 = SYT24 + SYT_OFFSET. Similarly, the maximum delay time SYT_OFFSET is added to the WC packets 5-32 and 5-40.
[0032]
The vertical axis of the WC master node 1 in FIG. 3 indicates the value of the sample count 5b in the WC packet 5 transmitted by itself. Each vertical axis of the Tx node 2 and the Rx node 3 indicates the value of the sample count 5 b in the WC packet 5 received from the WC master node 1. The three nodes 1, 2, and 3 perform processing based on the sample count axis. The sample count axis corresponds to the time axis. The axes of the three nodes are different in absolute time but in the same relative time. The Tx node 2 and the Rx node 3 can be synchronized based on their sample count axes.
[0033]
For example, the WC master node 1 transmits a WC packet 5-32 to the Tx node 2 and the Rx node 3. The WC packet 5-32 includes a sample count 5b indicating the thirty-second sample count, and a system time WC_SYT32 obtained by adding the maximum delay time SYT_OFFSET (352 μs) to the system time SYT32 corresponding thereto.
[0034]
Upon receipt of the WC packet 5-32, the Tx node 2 transmits a data packet 6-49 including 49th (= 32 + 17) sample data obtained by adding an offset value SAMPLE_OFFSET (for example, 17 samples) to the 32nd sample count. . In the data packet 6-49, the DBC 6a is 49, and the sample data 6b is the 49th to 56th sample data.
[0035]
The addition of the offset value SAMPLE_OFFSET (for example, 17 samples) considers the maximum communication delay time of the data packet 6 from the Tx node 2 to the Rx node 3, and indicates that the sample data of 17 samples ahead is transmitted. means. That is, if the sample count 5b in the WC packet 5 is 32, the Tx node 2 transmits a data packet 6-49 having the sample data of the sample count value obtained by adding 17 samples to the value.
[0036]
It will be explained that the maximum communication delay time corresponds to 17 samples. As described above, the maximum communication delay time SYT_OFFSET is 352 μs. The sampling frequency of audio data is 48 kHz, for example.
[0037]
In this case, the number of samples is 48 kHz × 352 μs = 16.896. Therefore, the sample offset value must be greater than or equal to 16.896 samples. The sample offset value is preferably 17 samples as the smallest integer.
[0038]
The Rx node 3 has already received the data packet 6-49 from the Tx node 2 when the sample count is 49 at the latest. The total delay time of the above communication is T1 + T2. The delay time T1 is a communication time of the WC packet 5-32 from the WC master node 1 to the Tx node 2. The delay time T2 is a communication time of the data packet 6-49 from the Tx node 2 to the Rx node 3.
[0039]
The Rx node 3 stores the received data packet 6-49 in a first-in first-out buffer (FIFO). When the sample count reaches 49, the Rx node 3 starts reproduction processing of the data packet 6-49. The delay time T1 + T2 can be absorbed by storing the packet in the FIFO and waiting for processing until the sample count reaches 49.
[0040]
As described above, the WC packet 5-32 includes the system time WC_SYT32 in which the maximum delay time SYT_OFFSET is offset. The maximum delay time SYT_OFFSET is an offset value for absorbing the communication delay time T1.
[0041]
If the WC packet 5-32 is transmitted without offsetting the system time offset value SYT_OFFSET, when the Rx node 3 receives the WC packet 5-32, the system time corresponding to the sample count of 32 has already passed. It becomes impossible to process.
[0042]
The data packet 6-49 includes the DBC 6a to which the sample count offset value SAMPLE_OFFSET is offset. This offset value SAMPLE_OFFSET is an offset value for absorbing the communication delay time T2.
[0043]
If the data packet 6-32 is transmitted without offsetting the sample count offset value SAMPLE_OFFSET, when the Rx node 3 receives the data packet 6-32, the sample count of 32 has already passed and can be processed. It will disappear.
[0044]
FIG. 4 is a flowchart showing processing of the WC master node 1.
[0045]
In step SA1, a constant SYT_INTERVAL is added to the register sample count. The register sample count is a register for storing a count value of the number of samples of audio data. The constant SYT_INTERVAL is the number of samples in one packet, for example, 8. This register sample count corresponds to the sample count 5b in the WC packet 5 of FIG.
[0046]
Next, a value obtained by adding the offset value SYT_OFFSET to the system time SYT (FIG. 2) is stored in the register syt. The system time SYT is, for example, SYT 24 in FIG. The offset value SYT_OFFSET is a maximum delay time and is, for example, 352 μs. By adding the offset value SYT_OFFSET, the delay time T1 shown in FIG. 3 can be absorbed. This register syt corresponds to the system time 5a in the WC packet 5 of FIG.
[0047]
In step SA2, as shown in FIG. 1, the register sample count is set to the sample count 5b, the register syt is set to the system time 5a, and the WC packet 5 is generated and transmitted onto the bus 4.
[0048]
The above has shown the generation processing of one packet, but the WC master node 1 repeats the above processing at predetermined time intervals, and sequentially sends out, for example, WC packets 5-24, 5-32, 5-40, and the like.
[0049]
In the WC packet 5-24, the system time 5a is WC_SYT24 (= SYT24 + SYT_OFFSET), and the sample count 5b is 24. In the WC packet 5-32, the system time 5a is WC_SYT32 (= SYT32 + SYT_OFFSET), and the sample count 5b is 32.
[0050]
FIG. 5 is a block diagram illustrating a configuration example of the first Tx node 2.
[0051]
The Tx node 2 includes an IEEE 1394 interface system 11 and a node system 12.
[0052]
The WC packet 5 includes a system time 5a and a sample count 5b, and is a packet received from the WC master node 1. The sample count FIFO 13 stores the sample count 5b first in first out. The system time FIFO 14 stores the system time 5a in first-in first-out.
[0053]
The system time comparator 15 compares the system time 5a output from the FIFO 14 with the lower 16 bits of the cycle time output from the cycle timer 2a. The cycle time is 32 bits. The system time 5 a is a value obtained by adding the maximum delay time SYT_OFFSET (352 μs) to the lower 16 bits of the cycle time of the WC master node 1.
[0054]
Since the system time 5a is added by the maximum delay time SYT_OFFSET, it is longer than the cycle time of the cycle timer 2a. The cycle timer 2a sequentially increments the cycle time at about 25 MHz.
[0055]
Eventually, the cycle time and the system time 5a coincide. When the two match, the comparator 15 outputs a match signal. Processing shown later is awaited until the coincidence signal is output. By waiting for subsequent processing, the communication delay time T1 (FIG. 3) from the WC master node 1 to the Tx node 2 can be absorbed. When the WC packet 5 is transmitted from the WC master node 1 to the plurality of Tx nodes 2, the difference in the reception time of each Tx node 2 can be absorbed.
[0056]
The phase phase lock loop circuit (PLL) 16 generates an audio word clock WCK of 48 kHz, for example, in synchronization with the coincidence signal, and supplies it to the node system 12.
[0057]
The timing adjuster 17 outputs the sample count 5b in the FIFO 13 to the adder 18 when receiving the coincidence signal. The adder 18 adds an offset value SAMPLE_OFFSET (for example, 17 samples) to the sample count 5b, and outputs a sample count SCN. For example, when the sample count 5b is 32, the adder 18 outputs a sample count SCN = 32 + 17 = 49. By adding the offset value, preparation for absorbing the communication delay time T2 (FIG. 3) from the Tx node 2 to the Rx node 3 is completed. Absorption of the communication delay time T2 is performed at the Rx node 3 (FIG. 7) described later.
[0058]
In synchronization with the word clock WCK, the node system 12 reads eight sample data (for example, the 49th to 56th sample data) as data SDT in accordance with the sample count SCN (for example, 49), and first loads the data into the data FIFO 19. Store in-first-out.
[0059]
The DBC generator 20 generates a DBC according to the sample count SCN in synchronization with the word clock WCK.
[0060]
The DBC 6a is generated by the DBC generator 20. The sample data 6b is generated based on the sample data SDT in the FIFO 19.
[0061]
Data packet 6 is generated by packetizing DBC 6a and sample data 6b. The data packet 6 is transmitted from the Tx node 2 to the Rx node 3.
[0062]
The adder 18 is not limited to the case where the value SCN obtained by adding the offset value SAMPLE_OFFSET to the sample count 5b is supplied to the node system 12, and the sample count 5b may be directly supplied. In that case, the node system 12 needs to perform processing in consideration of the offset value SAMPLE_OFFSET.
[0063]
The sample count SCN is not limited to being supplied to the node system 12 every packet, but may be supplied every sample.
[0064]
FIG. 6 is a flowchart showing processing of the Tx node 2. The processes SB1 to SB8 on the left side of the flowchart indicate the process of the interface system 11, and the process SB9 on the right side indicates the process of the node system 12.
[0065]
In step SB1, the system time 5a and sample count 5b in the WC packet 5 are stored in the FIFOs 14 and 13, respectively.
[0066]
In step SB2, the comparator 15 compares the system time with the cycle time, and waits until they match. If they match, the process proceeds to step SB3.
[0067]
In step SB3, the next system time stored in the FIFO 14 is loaded into the comparator 15 to prepare for the next comparison.
[0068]
In step SB4, the PLL 16 generates a word clock WCK.
[0069]
In step SB5, the adder 18 adds the sample count 5b and the offset value SAMPLE_OFFSET, and outputs the added value SCN to the node system 12.
[0070]
Next, the interface system 11 processes step SB6, and the node system 12 processes step SB9.
[0071]
In step SB6, DBC is generated based on the generated sample count SCN. If necessary, the generated DBC is stored in the FIFO. Next, the process proceeds to step SB7.
[0072]
In step SB9, sample data SDT corresponding to the input sample count CNT is supplied to the interface system 11. Next, the process proceeds to step SB7.
[0073]
In step SB7, sample data SDT is received from the node system 12 described above.
[0074]
In step SB8, the sample data SDT and DBC are packetized, and the data packet 6 is sent to the Rx node 3.
[0075]
FIG. 7 is a block diagram illustrating a configuration example of the first Rx node 3.
[0076]
The Rx node 3 includes an IEEE 1394 interface system 31 and a node system 32.
[0077]
The WC packet 5 includes a system time 5a and a sample count 5b, and is a packet received from the WC master node 1. The sample count FIFO 33 stores the sample count 5b first in first out. The system time FIFO 34 stores the system time 5a first-in first-out.
[0078]
The system time comparator 35 compares the system time 5a output from the FIFO 34 with the lower 16 bits of the cycle time output from the cycle timer 3a. The system time 5a is a value obtained by adding the maximum delay time SYT_OFFSET (325 μs) to the lower 16 bits of the cycle time of the WC master node 1.
[0079]
When the cycle time and the system time 5a coincide, the comparator 35 outputs a coincidence signal. Processing shown later is awaited until the coincidence signal is output. By waiting for later processing, the communication delay time from the WC master node 1 to the Rx node 3 can be absorbed. When the WC packet 5 is transmitted from the WC master node 1 to a plurality of Rx nodes 3, differences in reception times of the Rx nodes 3 can be absorbed.
[0080]
The PLL 36 generates an audio word clock WCK of 48 kHz, for example, in synchronization with the coincidence signal and supplies it to the node system 32.
[0081]
When receiving the coincidence signal, the timing adjuster 37 supplies the sample count 5b in the FIFO 33 to the node system 32 as the sample count SCN.
[0082]
The data packet 6 includes a DBC 6a and sample data 6b, and is a packet received from the Tx node 2. The DBC-FIFO 40 stores the DBC 6a first-in first-out. The data FIFO 39 stores the sample data 6b first in first out.
[0083]
The DBC comparator 38 compares the sample count 5b output from the FIFO 33 with the DBC 6a output from the FIFO 40. The DBC 6a is a value obtained by adding an offset value SAMPLE_OFFSET (for example, 17) to the sample count 5b by the adder 18 of the Tx node 2 in FIG.
[0084]
Since the offset value is added to the DBC 6a, the DBC 6a is larger than the sample count 5b of the FIFO 33. The FIFO 33 outputs the value of the input sample count 5b, and then outputs a value obtained by sequentially incrementing the sample count.
[0085]
Eventually, the DBC and sample count will match. When the two match, the comparator 38 outputs a match signal. Until the coincidence signal is output, the data reading process in the data FIFO 39 is awaited. By waiting for the reading process, the communication delay time T2 (FIG. 3) from the Tx node 2 to the Rx node 3 can be absorbed. When the data packet 6 is transmitted from the Tx node 2 to the plurality of Rx nodes 3, the difference in the reception time of each Rx node 3 can be absorbed.
[0086]
The read pointer (address) of the data FIFO 39 and the DBC-FIFO 40 is controlled by the comparison result of the comparator 38.
[0087]
When the comparator 38 outputs a coincidence signal, the sample data is read from the data FIFO 39 and output to the timing adjuster 41, and the next DBC in the DBC-FIFO 40 is set in the comparator 38.
[0088]
The timing adjuster 41 supplies the data output from the FIFO 39 to the node system 32 as sample data SDT in synchronization with the word clock WCK.
[0089]
The node system 32 reproduces the sample data (audio data) SDT in accordance with the sample count SCN in synchronization with the word clock WCK and generates a sound from the speaker.
[0090]
The WC packet 5 may use DBC instead of the sample count 5b. In that case, the DBC is stored in the FIFO 33 and the comparator 38 compares the DBC in the FIFO 33 with the DBC in the FIFO 40.
[0091]
Further, when the Rx node 3 starts reception, it is necessary to control the read pointers of the data FIFO 39 and the DBC-FIFO 40 to predetermined values. Specifically, the head DBC value of the DBC-FIFO 40 is compared with the head sample count value of the sample count FIFO 33, and each read pointer of the data FIFO 39 and the DBC-FIFO 40 is controlled in units of samples. Thereby, the sample count SCN and the corresponding sample data SDT can be supplied to the node system 32 at a predetermined timing.
[0092]
According to the IEEE 1394 standard, data for a plurality of channels can be transferred in an isochronous packet. When there are a plurality of channels of data, a plurality of the read pointer controllers may be provided, or one channel may be controlled by switching one read pointer controller. When there are data for a plurality of channels, the data FIFO 39 is required for the number of channels.
[0093]
FIG. 8 is a flowchart showing processing of the Rx node 3.
[0094]
In step SC1, the system time 5a and sample count 5b in the received WC packet 5 are stored in the FIFOs 34 and 33, respectively.
[0095]
In step SC2, when the data packet 6 is received, the DBC 6a and the sample data 6b in the packet 6 are stored in the FIFOs 40 and 39, respectively.
[0096]
In step SC3, the comparator 35 compares the system time with the cycle time, and waits until they match. If they match, the process proceeds to step SC4.
[0097]
In step SC4, the next system time stored in the FIFO 34 is loaded into the comparator 35 to prepare for the next comparison.
[0098]
In step SC5, the PLL 36 generates a word clock WCK.
[0099]
In step SC6, the comparator 38 compares the sample count in the FIFO 33 with the DBC in the FIFO 40, and adjusts the read pointers of the FIFOs 39 and 40 according to the comparison result.
[0100]
In step SC 7, the sample data SDT is read from the FIFO 39 based on the adjusted pointer and supplied to the node system 32. Then, the sample count SCN in the FIFO 33 is read and supplied to the node system 32.
[0101]
In the first embodiment described above, as shown in FIG. 3, synchronization between nodes is achieved by using the sample count axis as a reference. A case where the first and second transmitting nodes 2 transmit the data packet 6 to one receiving node 3 will be described. The WC master node 1 transmits a WC packet 5 to the first and second transmission nodes 2 and the reception node 3. The first and second transmission nodes 2 each transmit a data packet 6 to the reception node 3 in response to the WC packet 5. For example, the first transmission node transmits the musical sound played at the first performance hall in real time as audio data, and the second transmission node transmits the musical sound played at the second performance hall in real time. . The receiving node can reproduce the audio data received from the first and second transmitting nodes in synchronization. Thereby, the joint performance in the 1st and 2nd performance halls is attained.
[0102]
Next, a second embodiment is shown. In the second embodiment, synchronization between nodes is established by using the system time axis as a reference instead of the sample count axis.
[0103]
FIG. 9 is a block diagram illustrating a configuration example of the second Tx node 2.
[0104]
In the second embodiment, as shown in FIG. 2, a system time 6c is used instead of the DBC 6a. That is, the data packet 6 includes a system time 6c and sample data 6b.
[0105]
The Tx node 2 includes an IEEE 1394 interface system 51 and a node system 52.
[0106]
The WC packet 5 includes a system time 5a and a sample count 5b. The sample count FIFO 53 stores the sample count 5b first in first out. The system time FIFO 54 stores the system time 5a first in first out.
[0107]
The system time comparator 55 compares the system time 5a output from the FIFO 54 with the lower 16 bits of the cycle time output from the cycle timer 2a. The system time 5 a is a value obtained by adding the maximum delay time SYT_OFFSET (352 μs) to the lower 16 bits of the cycle time of the WC master node 1.
[0108]
When the cycle time and the system time 5a coincide, the comparator 55 outputs a coincidence signal. Processing shown later is awaited until the coincidence signal is output. By waiting for subsequent processing, the communication delay time T1 (FIG. 3) from the WC master node 1 to the Tx node 2 can be absorbed.
[0109]
The PLL 56 generates, for example, a 48 kHz audio word clock WCK in synchronization with the coincidence signal, and supplies the audio word clock WCK to the node system 52.
[0110]
When receiving the coincidence signal, the timing adjuster 57 supplies the sample count 5b in the FIFO 53 to the node system 52 as the sample count SCN.
[0111]
In synchronization with the word clock WCK, the node system 52 reads eight sample data (for example, 49th to 56th sample data) as data SDT in accordance with the sample count SCN (for example, 49), and first loads the data into the data FIFO 59. Store in-first-out.
[0112]
The timing adjuster 100 supplies the value of the system time 5a output from the system time FIFO 54 as described above (the value matched by the comparator 55) to the adder 58 at the timing matched by the comparator 55. The adder 58 adds an offset value SYT_OFFSET (for example, a system time corresponding to 17 samples) to the system time 5a, and stores it in the system time FIFO 60 in first-in first-out. By adding the offset value, preparation for absorbing the communication delay time T2 (FIG. 3) from the Tx node 2 to the Rx node 3 is completed. Absorption of the communication delay time T2 is performed at the Rx node 3 (FIG. 11) described later.
[0113]
A data packet 6 is generated based on the system time 6a in the FIFO 60 and the sample data 6b in the FIFO 59. The data packet 6 is transmitted from the Tx node 2 to the Rx node 3.
[0114]
FIG. 10 is a flowchart showing the processing of the second Tx node 2 (FIG. 9). The processes SD1 to SD7 on the left side of the flowchart show the process of the interface system 51, and the process SD8 on the right side shows the process of the node system 52.
[0115]
In step SD1, the system time 5a and sample count 5b in the WC packet 5 are stored in the FIFOs 54 and 53, respectively.
[0116]
In step SD2, the comparator 55 compares the system time with the cycle time, and waits until they match. If they match, the process proceeds to step SD3.
[0117]
In step SD3, the next system time stored in the FIFO 54 is loaded into the comparator 55 to prepare for the next comparison.
[0118]
In step SD4, the PLL 66 generates the word clock WCK.
[0119]
In step SD5, the sample count SCN in the FIFO 53 is supplied to the node system 52.
[0120]
Next, the interface system 51 processes step SD6, and the node system 52 processes step SD8.
[0121]
In step SD6, the adder 58 adds the above-mentioned matched system time 5a and the offset value SYT_OFFSET, and stores the added value in the FIFO 60. Next, the process proceeds to step SD7.
[0122]
In step SD8, sample data SDT corresponding to the input sample count SCN is supplied to the interface system 51. Next, the process proceeds to step SD7.
[0123]
In step SD7, the sample data SDT and system time are packetized, and the data packet 6 is sent to the Rx node 3 via the bus 4.
[0124]
FIG. 11 is a block diagram illustrating a configuration example of the second Rx node 3.
[0125]
In the second embodiment, unlike the first embodiment (FIG. 7), the data packet 6 includes a system time 6c instead of the DBC 6a. The data packet 6 includes a system time 6c and sample data 6b.
[0126]
The Rx node 3 includes an IEEE 1394 interface system 71 and a node system 72.
[0127]
The received data packet 6 includes a system time 6c and sample data 6b. The system time FIFO 80 stores the system time 6c in first-in first-out. The data FIFO 79 stores the sample data 6b first in first out.
[0128]
The system time comparator 78 compares the system time 5c output from the FIFO 80 with the cycle time output from the cycle timer 3a. The system time 6c is a value obtained by adding the offset value SYT_OFFSET to the system time 5a by the adder 58 of the Tx node 2 in FIG.
[0129]
Since the offset value SYT_OFFSET is added to the system time 6c, the system time 6c is initially larger than the cycle time value of the cycle timer 3a. The cycle timer 3a sequentially increments the cycle time.
[0130]
When the system time 6c matches the cycle time, the comparator 78 outputs a coincidence signal. Until the coincidence signal is output, the data reading process in the data FIFO 79 is awaited. By this standby, the communication delay time T2 (FIG. 3) from the Tx node 2 to the Rx node 3 can be absorbed.
[0131]
When the timing adjuster 81 receives the coincidence signal from the comparator 78, the timing adjuster 81 reads the sample data from the data FIFO 79 and stores it in the data FIFO 73. When the comparator 78 outputs a coincidence signal, the next system time within the system time 80 is set in the comparator 78.
[0132]
The received WC packet 5 includes a system time 5a and a sample count 5b. The system time FIFO 74 stores the system time 5a first in first out. The sample count FIFO 82 stores the sample count 5b first in first out.
[0133]
The system time comparator 75 compares the system time 5a output from the FIFO 74 with the lower 16 bits of the cycle time output from the cycle timer 3a. The system time 5 a is a value obtained by adding the maximum delay time SYT_OFFSET (352 μs) to the lower 16 bits of the cycle time of the WC master node 1.
[0134]
When the cycle time and the system time 5a coincide, the comparator 75 outputs a coincidence signal. Since the process shown later is waited until the coincidence signal is output, the communication delay time from the WC master node 1 to the Rx node 3 can be absorbed.
[0135]
The PLL 76 generates, for example, a 48 kHz audio word clock WCK in synchronization with the coincidence signal, and supplies the audio word clock WCK to the node system 72.
[0136]
The timing adjuster 77 supplies the sample data 6b in the data FIFO 73 to the node system 72 as sample data SDT at the time when the coincidence signal is received.
[0137]
When the timing adjuster 83 receives the coincidence signal, the timing adjuster 83 supplies the sample count 5b in the sample count FIFO 82 to the node system 72 as the sample count SCN.
[0138]
The node system 72 can generate sound from the speaker by reproducing sample data (audio data) SDT in accordance with the sample count SCN in synchronization with the word clock WCK.
[0139]
As described above, according to the second embodiment, synchronization between nodes can be achieved by using the system time axis as a reference. The comparator 78 absorbs the communication delay time of the data packet 6 from the Tx node 2 to the Rx node 3, and the comparator 75 absorbs the communication delay time of the WC packet 5 from the WC master node 1 to the Rx node 3. be able to. By absorbing these communication delay times, synchronization between nodes can be achieved.
[0140]
FIG. 12 is a flowchart showing the processing of the second Rx node 3 (FIG. 11).
[0141]
In step SE1, the system time 5a and the sample count 5b in the received WC packet 5 are stored in the FIFOs 74 and 82, respectively.
[0142]
In step SE2, when data packet 6 is received, system time 6c and sample data 6b in packet 6 are stored in FIFOs 80 and 79, respectively.
[0143]
In step SE3, the comparator 78 compares the system time 6c in the FIFO 80 with the cycle time of the cycle timer 3a, and waits until they match. If they match, the process proceeds to step SE4.
[0144]
In step SE4, the next system time stored in the FIFO 80 is loaded into the comparator 78 to prepare for the next comparison.
[0145]
In step SE5, the sample data in the data FIFO 79 is stored in the data FIFO 73.
[0146]
In step SE6, the comparator 75 compares the system time 5a in the FIFO 74 with the cycle time of the cycle timer 3a, and waits until they match. If they match, the process proceeds to step SE7.
[0147]
In step SE7, the next system time stored in the FIFO 74 is loaded into the comparator 75 to prepare for the next comparison.
[0148]
In step SE8, the PLL 76 generates the word clock WCK.
[0149]
In step SE9, the sample count SCN in the FIFO 82 and the sample data SDT in the FIFO 73 are supplied to the node system.
[0159]
Next, a method of matching the phases of the cycle timers 1a, 2a, 3a (FIG. 1) of the WC master node 1, the Tx node 2, and the Rx node 3 will be described. The WC master node 1, the Tx node 2, and the Rx node 3 are all nodes connected to the IEEE 1394 bus. One of these nodes is determined as the root node. For example, an identification number is assigned to each node, and the node having the smallest or largest identification number becomes the root node. The configuration is as follows.
[0160]
FIG. 14 shows a network configuration expressing the network of FIG. 1 from another viewpoint.
[0161]
The root node RN is any one of the WC master node 1, the Tx node 2, and the Rx node 3. The first node N1 to the nth node Nn are nodes other than the root node.
[0162]
The root node RN sends the cycle time CT generated by its own cycle timer onto the bus. The nodes N1 to Nn receive the cycle time CT sent from the root node RN, and set the value of the cycle time CT in its own cycle timer.
[0163]
FIG. 15 is a flowchart illustrating processing performed by the root node RN.
[0164]
In step SF1, the self-cycle timer value CT is transmitted to another node, and the process ends. The root node RN broadcasts the cycle timer value CT on the bus at a predetermined cycle.
[0165]
FIG. 16 is a flowchart illustrating processing performed by the nodes N1 to Nn.
[0166]
In step SG1, the cycle timer value CT is received from the root node RN.
[0167]
In step SG2, the own cycle timer is updated to the cycle timer value CT received.
[0168]
This flowchart is performed every time the cycle timer value CT is received from the root node RN at a predetermined cycle.
[0169]
The cycle timer of each node can be synchronized by the above method. Here, consider the delay time for the root node RN to transmit the cycle time CT. Due to the difference in delay time, the times at which the nodes N1 to Nn receive the cycle time CT differ. Next, processing that takes communication delay time into consideration is shown.
[0170]
The nodes N1 to Nn transmit pin packets to the root node RN. When the root node RN receives the pin packet, it returns a response packet. The nodes N1 to Nn measure the time from when the pin packet is transmitted until the response packet is received. The time is a round-trip communication delay time from the nodes N1 to Nn to the root node RN. The nodes N1 to Nn advance their cycle timers by the one-way communication delay time, and match the phase of the cycle timer of the root node RN.
[0171]
For example, when the round-trip communication delay time is measured as 100 μs, the one-way communication delay time is 50 μs. The nodes N1 to Nn add their cycle timers by the one-way communication delay time (50 μs).
[0172]
By adding the cycle timer by the one-way communication delay time, the phase of the cycle timer of each node can be matched. Thereby, the plurality of Rx nodes can reproduce the audio data almost simultaneously. Next, the above process will be described with reference to a flowchart.
[0173]
FIG. 17 is a flowchart showing the process for determining the delay time correction value of the cycle timer. The processes SH1, SH4, SH5, and SH6 on the left side of the flowchart indicate the processes of the nodes N1 to Nn, and the processes SH2 and SH3 on the right side indicate the processes of the root node RN.
[0174]
In step SH1, the nodes N1 to Nn transmit pin packets to the root node RN and start time measurement.
[0175]
In step SH2, the root node RN receives the pin packet.
[0176]
In step SH3, the root node RN immediately transmits a response packet to the transmission source nodes N1 to Nn.
[0177]
In step SH4, the nodes N1 to Nn receive the response packet.
[0178]
In step SH5, a round-trip communication delay time from when the nodes N1 to Nn transmit the pin packet (step SH1) to when the response packet is received (step SH4) is calculated.
[0179]
In step SH6, a half value of the calculated round-trip communication delay time is calculated as a one-way communication delay time. Next, the correction value is determined by converting the value of the one-way communication delay time into a cycle time. In principle, the cycle time is a value counted at about 25 MHz.
[0180]
FIG. 18 is a flowchart showing the correction process performed by the nodes N1 to Nn, which replaces the flowchart of FIG.
[0181]
In step SI1, the cycle timer value CT transmitted from the root node RN in FIG. 15 is received.
[0182]
In step SI2, the correction value determined in FIG. 17 is added to the received cycle timer value CT.
[0183]
In step SI3, the self cycle timer is updated to the corrected cycle time value.
[0184]
By correcting the cycle time, the phase of the cycle timer of each node can be matched. For example, the first Tx node 2 (FIG. 5) corrects the value of the cycle timer 2a, and the first Rx node 3 (FIG. 7) corrects the value of the cycle timer 3a.
[0185]
Next, a method for correcting the system time instead of the cycle time will be described. In the first Tx node 2 (FIG. 5), the comparator 15 compares the value of the cycle timer 2a with the value of the system time FIFO 14. In the above description, the value of the cycle timer 2a is corrected. Instead, the value of the system time FIFO 14 is corrected and set in the comparator 15.
[0186]
Similarly, in the first Rx node 3 (FIG. 7), instead of correcting the value of the cycle timer 3a, the value of the system time FIFO 34 is corrected and set in the comparator 35.
[0187]
Similarly, in the second Tx node 2 (FIG. 9), instead of correcting the value of the cycle timer 2a, the value of the system time FIFO 54 is corrected and set in the comparator 55.
[0188]
Similarly, in the second Rx node 3 (FIG. 11), instead of correcting the value of the cycle timer 3a, the value of the system time FIFO 74 is corrected and set in the comparator 75, and the value of the system time FIFO 80 is corrected. And set in the comparator 78.
[0189]
FIG. 19 is a flowchart showing the system time correction process.
[0190]
In step SJ1, the system time value is extracted from the reception FIFOs 14, 34, 54, 74, and 80.
[0191]
In step SJ2, calculation is performed based on the extracted system timer value and the correction value determined in FIG. For example, the correction value is subtracted from the value of the system timer.
[0192]
In step SJ3, the above calculation values of the comparators 15, 35, 55, 75, 78 are set.
[0193]
Note that the second Tx node (FIG. 9) may transmit the data packet 6 after correcting the system time in the system time FIFO 60. In that case, it is not necessary to correct the value of the system FIFO 80 of the second Rx node (FIG. 11).
[0194]
As described above, the phase of the time axis of each node can be matched by correcting the cycle time or system time. By matching the phases, it is possible to match the phases of transmission timings of a plurality of Tx nodes or reproduction timings of a plurality of Rx nodes.
[0195]
According to the first and second embodiments, the WC master node 1 transmits the WC packet 5 to the Tx node 2 and the Rx node 3. The Tx node 2 transmits the data packet 6 to the Rx node 3. The data packet 6 has DBC 6a or system time 6c in addition to the sample data 6b.
[0196]
In the first embodiment, the DBC 6a can be used to synchronize the nodes based on the sample count axis. In the second embodiment, synchronization between nodes can be achieved based on the system time axis using the system time 6c.
[0197]
By synchronizing the nodes, when the same data is transmitted almost simultaneously from one Tx node to a plurality of Rx nodes, the data reproduction time can be adjusted between the plurality of Rx nodes. Each Rx node can reproduce a series of data without causing a timing shift.
[0198]
Further, by synchronizing between nodes, when data is transmitted from a plurality of Tx nodes to one Rx node, the timing of data transmitted from the plurality of Tx nodes can be matched in the Rx node.
[0199]
Note that the data in the packet is not limited to audio data, and may be image data or the like. Communication is not limited to IEEE 1394 digital serial communication, but may be other serial communication or parallel communication. For example, the Internet or a LAN may be used.
[0200]
FIG. 20 is a diagram showing a specific hardware configuration of the personal computer 12.
[0201]
The configuration of the personal computer 12 will be described. The bus 21 includes a CPU 22, a RAM 24, an external storage device 25, a MIDI interface 26 for transmitting / receiving MIDI data to / from the outside, a sound card 27, a ROM 28, a display device 29, input means 30 such as a keyboard, a switch, and a mouse, A communication interface 31 for connecting to the Internet is connected.
[0202]
The sound card 27 has a buffer 27a and a codec circuit 27b. The buffer 27a buffers data for input or output to the outside. The codec circuit 27b includes an A / D converter and a D / A converter, and can convert between an analog format and a digital format. Further, the codec circuit 27b includes a compression / decompression circuit, and can compress and decompress data.
[0203]
The external storage device 25 is, for example, a hard disk drive, a floppy disk drive, a CD-ROM drive, a magneto-optical disk drive, or the like, and can store MIDI data, audio data, image data, a computer program, or the like.
[0204]
The ROM 28 can store a computer program and various parameters. The RAM 24 has a working area such as a buffer and a register, and can copy and store the contents stored in the external storage device 25.
[0205]
The CPU 22 performs various calculations or processes according to the computer program stored in the ROM 28 or the RAM 24. The system clock 23 generates time information. The CPU 22 can obtain time information from the system clock 23 and perform timer interrupt processing.
[0206]
A communication interface 31 of the personal computer 12 is connected to the Internet line 32. The communication interface 31 is an interface for transmitting and receiving MIDI data, audio data, image data, computer programs, and the like over the Internet.
[0207]
The MIDI sound source 13 is connected to the MIDI interface 26, and the sound output device 14 is connected to the sound card 27. The CPU 22 receives MIDI data, audio data, image data, a computer program, and the like from the Internet line 32 via the communication interface 31.
[0208]
The communication interface 31 may be an Ethernet interface, an IEEE 1394 standard digital communication interface, or an RS-232C interface in addition to the Internet interface, and can be connected to various networks.
[0209]
The personal computer 12 stores a computer program for receiving and playing audio data. By storing a computer program, various parameters, and the like in the external storage device 25 and reading them into the RAM 24, it is possible to easily add or upgrade a computer program or the like.
[0210]
A CD-ROM (compact disk-read only memory) drive is a device that reads a computer program or the like stored in a CD-ROM. The read computer program or the like is stored in the hard disk. New installation and version upgrade of computer programs can be done easily.
[0211]
The communication interface 31 is connected to a communication network 32 such as a LAN (local area network), the Internet, or a telephone line, and is connected to the computer 33 via the communication network 32. When the above computer program or the like is not stored in the external storage device 25, the computer program or the like can be downloaded from the computer 33. The personal computer 12 transmits a command requesting download of a computer program or the like to the computer 33 via the communication interface 31 and the communication network 32. The computer 33 receives this command and distributes the requested computer program or the like to the personal computer 12 via the communication network 32. The personal computer 12 receives a computer program or the like via the communication interface 31 and stores it in the external storage device 25, whereby the download is completed.
[0212]
In addition, you may make it implement a present Example by the commercially available personal computer etc. which installed the computer program etc. corresponding to a present Example. In that case, the computer program or the like corresponding to the present embodiment may be provided to the user while being stored in a storage medium that can be read by the computer, such as a CD-ROM or a floppy disk. When the personal computer or the like is connected to a communication network such as LAN, the Internet, or a telephone line, a computer program or various data may be provided to the personal computer or the like via the communication network.
[0213]
Although the present invention has been described with reference to the embodiments, the present invention is not limited thereto. It will be apparent to those skilled in the art that various modifications, improvements, combinations, and the like can be made.
[0214]
【The invention's effect】
As described above, according to the present invention, data can be transmitted or processed in synchronization by communicating synchronization information between a plurality of communication devices.
[Brief description of the drawings]
FIG. 1 is a block diagram showing a configuration of a network according to an embodiment of the present invention.
FIG. 2 is a timing chart showing processing of a transmission node (Tx node).
FIG. 3 is a timing chart of each node shown in FIG. 1;
FIG. 4 is a flowchart showing processing of a WC master node.
FIG. 5 is a block diagram showing a configuration of a first Tx node.
FIG. 6 is a flowchart showing processing of a first Tx node.
FIG. 7 is a block diagram showing a configuration of a first receiving node (Rx node).
FIG. 8 is a flowchart showing processing of a first Rx node.
FIG. 9 is a block diagram showing a configuration of a second Tx node.
FIG. 10 is a flowchart showing processing of a second Tx node.
FIG. 11 is a block diagram showing a configuration of a second Rx node.
FIG. 12 is a flowchart showing processing of a second Rx node.
FIG. 13 is a block diagram showing a network configuration.
FIG. 14 is a flowchart showing processing of a root node.
FIG. 15 is a flowchart showing processing of a node other than the root node.
FIG. 16 is a flowchart showing processing for determining a delay time correction value for a cycle timer.
FIG. 17 is a flowchart showing first delay time correction processing;
FIG. 18 is a flowchart showing a second delay time correction process;
FIG. 19 is a diagram illustrating a specific hardware configuration of the personal computer 12;

Claims (6)

ネットワークに接続された複数のノードの1つを形成する通信装置であって、
前記ネットワークに接続されたルートノードの出力する時間値によって同期化された時間値を発生するサイクルタイマと、
オーディオデータのサンプルをカウントするカウント値を生成するサンプルカウント生成手段と、
前記同期化された時間値に対応する時間値に最大遅延量を加味した同期時間値を生成する同期時間値生成手段と、
所定時間間隔で、前記サンプルカウント値と同期時間値とを含む同期パケットを生成し、生成した同期パケットを前記ネットワークに出力する同期パケット出力手段と
を有する通信装置。
A communication device forming one of a plurality of nodes connected to a network,
A cycle timer for generating a time value synchronized with a time value output by a route node connected to the network;
Sample count generation means for generating a count value for counting samples of audio data;
A synchronization time value generating means for generating a synchronization time value in which a maximum delay amount is added to a time value corresponding to the synchronized time value;
A communication apparatus comprising: synchronization packet output means for generating a synchronization packet including the sample count value and the synchronization time value at a predetermined time interval and outputting the generated synchronization packet to the network.
ネットワークに接続された複数のノードの1つを形成する通信装置であって、
前記ネットワークに接続されたルートノードの出力する時間値によって同期化された時間値を発生するサイクルタイマと、
前記ネットワークに接続されたワードクロックノードから同期情報を受信する受信手段と、
前記同期化された時間値と前記受信した同期情報に基づいてワードクロックを発生するクロック発生手段と、
前記ワードクロックに基づいてオーディオデータのサンプルを順次供給するデータサンプル供給手段と、
前記同期情報に基づいてオーディオデータのサンプルカウント値を供給するサンプルカウント供給手段と、
前記カウント値に転送最大遅延量を加味した同期カウント値を生成する同期カウント生成手段と、
前記供給された複数のサンプルと前記同期カウント値とを含むデータパケットを生成し、生成したデータパケットを前記ネットワークに接続された受信ノードに送信する送信手段と
を有する通信装置。
A communication device forming one of a plurality of nodes connected to a network,
A cycle timer for generating a time value synchronized with a time value output by a route node connected to the network;
Receiving means for receiving synchronization information from a word clock node connected to the network;
Clock generating means for generating a word clock based on the synchronized time value and the received synchronization information;
Data sample supply means for sequentially supplying samples of audio data based on the word clock;
Sample count supply means for supplying a sample count value of audio data based on the synchronization information;
Synchronization count generation means for generating a synchronization count value in which a transfer maximum delay amount is added to the count value;
A communication apparatus comprising: a transmission unit configured to generate a data packet including the plurality of supplied samples and the synchronization count value, and to transmit the generated data packet to a reception node connected to the network.
ネットワークに接続された複数のノードの1つを形成する通信装置であって、
前記ネットワークに接続されたルートノードの出力する時間値によって同期化された時間値を発生するサイクルタイマと、
前記ネットワークに接続されたワードクロックノードから同期情報を受信する受信手段と、
前記同期化された時間値と前記受信した同期情報に基づいてワードクロックを発生するクロック発生手段と、
前記ワードクロックに基づいてオーディオデータのサンプルを順次供給するデータサンプル供給手段と、
前記同期化された時間値に転送最大遅延量を加味した同期時間値を生成する同期時間値生成手段と、
前記供給された複数のサンプルと前記同期時間値とを含むデータパケットを生成し、生成したデータパケットを前記ネットワークに接続された受信ノードに送信する送信手段とを有する通信装置。
A communication device forming one of a plurality of nodes connected to a network,
A cycle timer for generating a time value synchronized with a time value output by a route node connected to the network;
Receiving means for receiving synchronization information from a word clock node connected to the network;
Clock generating means for generating a word clock based on the synchronized time value and the received synchronization information;
Data sample supply means for sequentially supplying samples of audio data based on the word clock;
A synchronization time value generating means for generating a synchronization time value by adding a transfer maximum delay amount to the synchronized time value;
A communication apparatus comprising: a transmission unit configured to generate a data packet including the plurality of supplied samples and the synchronization time value, and to transmit the generated data packet to a reception node connected to the network.
ネットワークに接続された複数のノードの1つを形成する通信装置であって、
前記ネットワークに接続されたルートノードの出力する時間値によって同期化された時間値を発生するサイクルタイマと、
前記ネットワークに接続されたワードクロックノードから同期情報を受信する同期情報受信手段と、
前記同期化された時間値と前記受信した同期情報に基づいてワードクロックを発生するクロック発生手段と、
前記ネットワークに接続された送信ノードから、複数のサンプルと該複数のサンプルに関連した同期カウント値とを含むデータパケットを受信するデータ受信手段と、
前記同期情報と前記同期カウント値とに基づくタイミングで、前記データパケットに含まれる複数のサンプルを、前記ワードクロックに応じて1サンプルずつ順次出力するサンプル出力手段と
を有する通信装置。
A communication device forming one of a plurality of nodes connected to a network,
A cycle timer for generating a time value synchronized with a time value output by a route node connected to the network;
Synchronization information receiving means for receiving synchronization information from a word clock node connected to the network;
Clock generating means for generating a word clock based on the synchronized time value and the received synchronization information;
Data receiving means for receiving a data packet including a plurality of samples and a synchronization count value associated with the plurality of samples from a transmission node connected to the network;
A communication apparatus comprising: sample output means for sequentially outputting a plurality of samples included in the data packet sample by sample according to the word clock at a timing based on the synchronization information and the synchronization count value.
ネットワークに接続された複数のノードの1つを形成する通信装置であって、
前記ネットワークに接続されたルートノードから当該通信装置までの通信の到達遅延時間を計測する計測手段と、
前記計測手段が計測する到達遅延時間に応じて補正値を決定する決定手段と、
前記ルートノードの出力する時間値を受信する時間値受信手段と、
受信した時間値を前記補正値に応じて補正する補正手段と、
補正された時間値に基づいて同期化された時間値を発生するサイクルタイマと、
前記ネットワークに接続されたワードクロックノードから同期情報を受信する同期情報受信手段と、
前記同期化された時間値と前記受信した同期情報に基づいてワードクロックを発生するクロック発生手段と
を有する通信装置。
A communication device forming one of a plurality of nodes connected to a network,
Measuring means for measuring the arrival delay time of communication from the root node connected to the network to the communication device;
Determining means for determining a correction value according to the arrival delay time measured by the measuring means;
Time value receiving means for receiving a time value output from the root node;
Correction means for correcting the received time value according to the correction value;
A cycle timer that generates a synchronized time value based on the corrected time value;
Synchronization information receiving means for receiving synchronization information from a word clock node connected to the network;
A communication apparatus comprising: a clock generation means for generating a word clock based on the synchronized time value and the received synchronization information.
ネットワークに接続された複数のノードの1つを形成する通信装置であって、
前記ネットワークに接続されたルートノードの出力する時間値によって同期化された時間値を発生するサイクルタイマと、
前記ルートノードから当該通信装置までの通信の到達遅延時間を計測する計測手段と、
前記計測手段が計測する到達遅延時間に応じて補正値を決定する決定手段と、
前記ネットワークに接続されたワードクロックノードから同期情報を受信する同期情報受信手段と、
受信した同期情報を前記補正値に応じて補正する補正手段と、
前記同期化された時間値と前記補正された同期情報に基づいてワードクロックを発生するクロック発生手段と
を有する通信装置。
A communication device forming one of a plurality of nodes connected to a network,
A cycle timer for generating a time value synchronized with a time value output by a route node connected to the network;
Measuring means for measuring the arrival delay time of communication from the root node to the communication device;
Determining means for determining a correction value according to the arrival delay time measured by the measuring means;
Synchronization information receiving means for receiving synchronization information from a word clock node connected to the network;
Correction means for correcting the received synchronization information according to the correction value;
A communication apparatus comprising: clock generation means for generating a word clock based on the synchronized time value and the corrected synchronization information.
JP16565999A 1998-06-15 1999-06-11 Communication device Expired - Lifetime JP3697949B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP16565999A JP3697949B2 (en) 1998-06-15 1999-06-11 Communication device

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP16747598 1998-06-15
JP10-167475 1998-06-15
JP16565999A JP3697949B2 (en) 1998-06-15 1999-06-11 Communication device

Publications (2)

Publication Number Publication Date
JP2000078170A JP2000078170A (en) 2000-03-14
JP3697949B2 true JP3697949B2 (en) 2005-09-21

Family

ID=26490317

Family Applications (1)

Application Number Title Priority Date Filing Date
JP16565999A Expired - Lifetime JP3697949B2 (en) 1998-06-15 1999-06-11 Communication device

Country Status (1)

Country Link
JP (1) JP3697949B2 (en)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3692858B2 (en) 1999-09-27 2005-09-07 ヤマハ株式会社 Communications system
JP3584873B2 (en) 2000-10-31 2004-11-04 ヤマハ株式会社 Communication control device and communication system
DE102005025529B4 (en) * 2005-06-03 2007-05-16 Wago Verwaltungs Gmbh Method for controlling access times to a system bus and communication module
JP4650248B2 (en) * 2005-12-09 2011-03-16 株式会社デンソー Vehicle network system and network node
JP4923655B2 (en) * 2006-03-22 2012-04-25 ヤマハ株式会社 Audio network system
US7684415B2 (en) 2006-03-22 2010-03-23 Yamaha Corporation Audio network system
DE602006007369D1 (en) * 2006-12-20 2009-07-30 Ntt Docomo Inc Apparatus for synchronizing a first transceiver with a second transceiver
DE112011104955B4 (en) 2011-02-25 2015-11-26 Mitsubishi Electric Corporation Master device and slave device and time synchronization method
GB2503267B8 (en) * 2012-06-22 2022-02-23 Canon Kk Gapless video transition

Also Published As

Publication number Publication date
JP2000078170A (en) 2000-03-14

Similar Documents

Publication Publication Date Title
US6751228B1 (en) Packet handler of audio data by isochronous mode
US6477181B1 (en) Data communication method and system
US5923902A (en) System for synchronizing a plurality of nodes to concurrently generate output signals by adjusting relative timelags based on a maximum estimated timelag
JP3697949B2 (en) Communication device
JPH11190993A (en) Device and method for communicating musical sound information, device and method for control, and medium where program is recorded
US6909728B1 (en) Synchronous communication
JP3531762B2 (en) Transmitter and receiver
JP3702261B2 (en) Time stamp correction circuit and correction method
JP3358528B2 (en) Communication device and communication method
JP3451971B2 (en) Packet transfer device
JP2005173136A (en) Music system, and music data transmitting and receiving apparatus
JP2001022353A (en) Musical singal processor and medium
JP3358581B2 (en) Packet transfer device
JP2000020055A (en) Musical sound information transfer device
JP3201298B2 (en) Network data synchronization method and apparatus, synchronization node, and network system
JP3451973B2 (en) Packet transfer device
JP2001144694A (en) Sampling rate converter
JPH11284588A (en) Communication device, communication method and recording medium program with program recorded therein
JP3496562B2 (en) Packet transfer device
JP3444224B2 (en) Packet transfer device
JP3786039B2 (en) Communication apparatus and method
JP3700693B2 (en) Music information transfer device
JP3451972B2 (en) Packet transfer device
JP2000278326A (en) Packet transfer device
JP3977124B2 (en) Data transmission method

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20040224

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20040426

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20040623

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20040721

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20041116

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20041216

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20050519

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20050614

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20050627

R150 Certificate of patent or registration of utility model

Ref document number: 3697949

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313532

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20090715

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20090715

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100715

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100715

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110715

Year of fee payment: 6

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110715

Year of fee payment: 6

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120715

Year of fee payment: 7

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130715

Year of fee payment: 8

EXPY Cancellation because of completion of term