(57)【特許請求の範囲】
【請求項１】
第１のクロックに同期してデータを書き込みポインタに応じて書き込み、第２のクロックに同期して前記データを読み出しポインタに応じて読み出すメモリと、
参照クロックを有理数Ｎ倍して、前記第２のクロックを生成するクロック生成回路と、
前記書き込みポインタと前記読み出しポインタのポインタ差の変化量に基づいて、前記第１のクロックと前記第２のクロックの周波数誤差を推定する周波数誤差推定回路と
推定した前記周波数誤差を前記参照クロックの周波数で除した値を調整倍数ΔＮとして出力する調整回路と
を備え、
前記クロック生成回路は、
前記調整回路が出力した前記調整倍数ΔＮを用いて、前記参照クロックを有理数（Ｎ＋ΔＮ）倍して、前記第２のクロックを生成する
データ転送回路。
【請求項２】
前記周波数誤差推定回路は、
所定期間における前記ポインタ差の単位時間あたりの変化量に基づいて、前記周波数誤差を推定する
請求項１記載のデータ転送回路。
【請求項３】
前記メモリは、ＦＩＦＯを備え、前記クロック生成回路は、ＰＬＬを備え、
前記ＰＬＬは、前記第２のクロックを、前記有理数（Ｎ＋ΔＮ）を用いて分周する有理数分周回路を備える
請求項１または２記載のデータ転送回路。
【請求項４】
前記周波数誤差推定回路は、
前記書き込みポインタと前記読み出しポインタのポインタ差を検出するポインタ差検出回路と、
前記ポインタ差の検出開始時において、前記ポインタ差を所定の測定範囲の中心にリセットするリセット回路と
を備える請求項１から３の何れか１項に記載のデータ転送回路。
【請求項５】
前記リセット回路は、
前記ポインタ差が所定の測定範囲の上限値または下限値に達した場合に、前記ポインタ差を所定の測定範囲の中心にリセットする
請求項４に記載のデータ転送回路。
【請求項６】
前記周波数誤差推定回路は、
前記ポインタ差が、所定の測定範囲の上限値または下限値を超える特定のポインタ差を検出する第１の検出回路を備え、
前記特定のポインタ差を除いた前記ポインタ差を用いて、前記周波数誤差を推定する
請求項１から５の何れか１項に記載のデータ転送回路。
【請求項７】
前記周波数誤差推定回路は、
単位時間ごとに検出した前記周波数誤差の変化量が、所定の許容値を超える特定の周波数誤差を検出する第２の検出回路を備え、
前記特定の周波数誤差を除いて、前記周波数誤差を推定する
請求項１から６の何れか１項に記載のデータ転送回路。
【請求項８】
請求項１から７の何れか１項に記載のデータ転送回路を備えた通信装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データ通信においてクロック同期を伴うデータ転送回路に関する。
【背景技術】
【０００２】
コヒーレント光通信では、クライアント側のデータ信号をライン側のクロックに載せ替え、光伝送した後、ライン側のデータをクライアント側のクロックに載せ替えて通信を行っている。この場合、送信側では、一般的に、クライアント側のデータ信号からクロック再生回路（ＣＤＲ）においてクロックが再生され、これがライン側のクロックとして使用できる。
【０００３】
一方、受信側では、ライン側のクロックとクライアント側のクロックとの間に周波数誤差があり、一般的には、ＦＩＦＯ（First-in First-out）とＰＬＬ（Phase Locked Loop）とによってライン側のクロックに同期したクライアント側のクロックが再生される。その再生されたクライアント側のクロックによって、ライン側からのデータがクライアント側に転送される。
【０００４】
特許文献１には、ＦＩＦＯとＰＬＬを利用したクライアント側クロックとライン側クロックとの同期方法が開示されている。実施の形態には、クライアント側クロックに同期したライン側クロックを生成する方法が示されている。クライアント側のデータが、クライアント側クロックに従ってＦＩＦＯに書き込まれ、ライン側クロックを利用してＦＩＦＯからデータ信号がライン側データとして読み出される。また、特許文献１には、ライン側クロックに同期したクライアント側クロックを生成する方法にも適用可能であることも記載されている。
【０００５】
ライン側クロックは、ＰＬＬによって生成される。ＦＩＦＯへは、書き込みポインタに従ってデータ信号が書き込まれ、読み出しポインタに従ってデータ信号が読み出される。特許文献１では、書き込みポインタと読み出しポインタとの差が、許容範囲の上限値よりも大きいか、或いは、許容範囲の下限値よりも小さいかを検出して、それにより周波数制御回路を制御しＰＬＬの分周動作をリセットして分周クロックの位相の進み／遅れのタイミングを調整している。これによって、ポインタの差が常に許容範囲内に収まるように制御され、ライン側のクロックとクライアント側のクロックとの同期が確立できる。
【０００６】
特許文献２では、ＦＩＦＯに格納された送信データのデータ量の単位時間差分に基づいて、クロックの周波数と送信データレートの周波数との差分を求め、その差分がゼロになるように、クロックを生成するＰＬＬの分周比率を設定する。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開２０１６−１３０９２１号公報
【特許文献２】特開２０１３−０６２６８７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
しかしながら、特許文献１のデータ転送回路では、ＦＩＦＯの書き込みポインタと読み出しポインタとの差と許容値との大小の比較に応じて分周数を制御するため、周波数差が小さくなると制御の回数が減り同期を確立するまでに長い時間を要する場合がある。
【０００９】
また、特許文献２では、クロックの周波数と送信データレートの周波数との差分を求める方法として、データ量の差分と所要時間量に基づくことが記載されているが、詳細な方法が未開示であり、かつ外乱等による変動への対処ができない場合がある。
【００１０】
本発明は、上記課題を解決するためになされたものであり、クロック同期を高速化できるデータ転送回路を提供することにある。
【課題を解決するための手段】
【００１１】
上述したような課題を解決するために、本発明のデータ転送回路は、第１のクロックに同期してデータを書き込みポインタに応じて書き込み、第２のクロックに同期して前記データを読み出しポインタに応じて読み出すメモリと、参照クロックを有理数Ｎ倍して、前記第２のクロックを生成するクロック生成回路と、前記書き込みポインタと前記読み出しポインタのポインタ差の変化量に基づいて、前記第１のクロックと前記第２のクロックの周波数誤差を推定する周波数誤差推定回路と推定した前記周波数誤差を前記参照クロックの周波数で除した値を調整倍数ΔＮとして出力する調整回路とを備え、前記クロック生成回路は、前記調整回路が出力した前記調整倍数ΔＮを用いて、前記参照クロックを有理数（Ｎ＋ΔＮ）倍して、前記第２のクロックを生成する。
【発明の効果】
【００１２】
本発明によれば、クロック同期を高速化できるデータ転送回路を提供することが可能となる。
【図面の簡単な説明】
【００１３】
【図１】図１は、本発明の実施の形態に係るデータ転送回路を含む通信装置の構成図である。
【図２】図２は、本発明の実施の形態に係るデータ転送回路の構成図である。
【図３】図３は、本発明の実施の形態に係る周波数誤差推定回路の構成図である。
【図４】図４は、本発明の実施の形態に係るＦＩＦＯのポインタ差の時間変化を示す図である。
【図５】図５は、本発明の実施の形態に係る周波数誤差とＦＩＦＯのポインタ差の時間変化量との関係を示す図である。
【図６】図６は、従来のデータ転送回路の構成例である。
【発明を実施するための形態】
【００１４】
以下、本発明の実施の形態を図面を参照して説明する。但し、本発明は、多くの異なる態様で実施することが可能であり、以下に説明する本願発明の実施の形態に限定して解釈すべきではない。
【００１５】
＜本発明の概要＞
本発明は、ライン側クロックに同期したラインデータを、クライアント側クロックで抽出しクライアント側回路へ転送するデータ転送回路に関する。
【００１６】
具体的には、ラインデータをライン側クロック（第１のクロック／第２のクロック）でＦＩＦＯ（メモリ）に書き込みクライアント側クロック（第１のクロック／第２のクロック）で読み取る構成において、クライアント側クロックを参照クロックを有理数Ｎ倍することにより生成する場合に、ＦＩＦＯにおける書き込みポインタと読み出しポインタとのポインタ差の単位時間あたりの変化量に基づいて、ライン側クロックとクライアント側クロックの周波数誤差を推定し、推定した周波数誤差に相当する調整倍数ΔＮを上述した有理数Ｎに加えて、参照クロックを有理数Ｎ＋ΔＮ倍してクライアント側クロックを生成することにより、クライアント側クロックの周波数をライン側クロックの周波数と所定の周波数誤差以内にする。
【００１７】
徐々に分周数を設定する従来方式に対して、一度の制御で、周波数誤差に対応する分周数を設定するので同期時間を短くすることができる。また、ポインタ差の変化量から周波数誤差を推定する場合に、ポインタ差の測定範囲の中心に測定開始時の値を設定するように構成すれば、その後の状態変化の様子を把握しやすくし、周波数誤差の計算を容易にすることができる。さらに、所定の許容範囲を超える想定外のポインタ差や、所定の許容値を超える周波数誤差を、周波数誤差の推定処理から除外するように構成すれば、周波数誤差推定の精度劣化を防止することができる。
【００１８】
＜データ転送回路を含む通信装置＞
図１は、本発明の実施の形態に係るデータ転送回路を含む通信装置の構成図である。図１は、光通信システムの光受信装置１００の構成例である。
【００１９】
光受信装置１００は、光受信機１０、Ａ／Ｄ変換器２０、デジタル信号処理回路３０、データ転送回路４０、及びクライアント側回路５０を含む。光ファイバ伝送路を経由した光信号は、光受信機１０において水平偏波信号と垂直偏波信号に分離され電気信号に変換される。この場合、２つの偏波信号で伝送する必要はなく、一つの偏波信号で伝送することも可能である。
【００２０】
電気信号に変換された受信信号は、Ａ／Ｄ変換器２０によってデジタル信号に変換される。デジタル信号は、デジタル信号処理回路３０において、波長分散補償、周波数・位相変動補償、及び偏波分散補償等、によって波形歪が補償される。最終的に誤り訂正回路によって誤り訂正を行うこともできる。一般的には、ここまでの処理系統をライン側と称する。
【００２１】
次に、データ転送回路４０によって、ライン側からクライアント側のネットワークにデータが転送される。この時、クライアント側ネットワークのクロックと、ライン側回路のクロックが必ずしも同期していないので、データ転送回路４０のクロック生成回路によって、それらの同期を確立する。即ち、デジタル信号処理回路３０からのライン側のデータ信号を、データ転送回路４０のクロック生成回路によって確立したクライアント側のクロックに乗せ換えて、クライアント側回路５０へ転送する。
【００２２】
＜データ転送回路＞
図２は、本発明の実施の形態に係るデータ転送回路の構成図である。図３は、周波数誤差推定回路の構成図である。
【００２３】
本実施の形態のデータ転送回路４０は、ＦＩＦＯ４１、周波数誤差推定回路４２、分周数調整回路４３、及びクロック生成回路であるＰＬＬ４４とを含むことができる。ＦＩＦＯ４１としては、例えば、最終段のデータを初段にフィードバックするリングバッファ型のものが使用できる。 周波数誤差推定回路４２や分周数調整回路４３は、ＦＰＧＡ（Field Programmable Gate Array）等のハードウェアに実装することができる。
【００２４】
周波数誤差推定回路４２は、ＦＩＦＯ４１の書き込みポインタと読み出しポインタからポインタ差を検出し、時間に対するポインタ差の変化量からライン側クロックとクライアント側クロックの周波数誤差を算出する。分周数調整回路４３は、周波数誤差推定回路４２で推定した周波数誤差に相当する分周数を計算する。ＰＬＬ４４の有理数分周回路４５は、現状の分周数に周波数誤差に相当する分周数を加算し、調整された分周数を用いて分周を行う。
【００２５】
ＦＩＦＯ４１では、ライン側データ信号がライン側クロックに基づいて書き込まれ、書き込まれたデータは、クライアント側クロックに基づいてクライアント側データ信号として読み出される。ここで、ライン側クロックの周波数をｆ１とし、クライアント側クロックの周波数をｆ２とする。
【００２６】
ライン側データ信号のＦＩＦＯ４１への書き込みは、書き込みポインタに従って行われ、クライアント側データ信号のＦＩＦＯ４１からの読み出しは、読み出しポインタに従って行われる。ここで、時刻ｔにおける書き込みポインタは、Ｐｗ（ｔ）とし、読み出しポインタは、Ｐｒ（ｔ）とする。
【００２７】
ライン側クロックやクライアント側クロックは、１ビット毎に処理する場合は、１ビットに対応した周波数であるが、Ｍビットを並列処理する場合は、クロックを１／Ｍにすることもできる。一般的には、後者の方法が使用される。
【００２８】
ＰＬＬ４４は、クライアント側クロックを生成する電圧制御発振器ＶＣＯ（Voltage Controlled Oscillator）、その出力を有理数分周する有理数分周回路４５、参照クロック（周波数ｆｒ）、位相比較回路４６、及びローパスフィルタ（ＬＰＦ）４７を含む。
【００２９】
ＰＬＬ４４は、一般的なＰＬＬで構成可能であり、上述の構成に限定されない。参照クロックは、位相比較回路４６への入力周波数がｆｒであれば、別の源振から生成した信号であってもよい。また、有理数分周回路４５は、数値演算処理で高精度に作成することが可能であり、この演算処理を用いた発振器は、数値制御型発振器（ＮＣＯ: Numerically Controlled Oscillator）として幅広く知られている。
【００３０】
周波数誤差推定回路４２は、ＦＩＦＯ４１の書き込みポインタと読み出しポインタからそれらの差分ΔＰ（ｔ）＝Ｐｗ（ｔ）−Ｐｒ（ｔ）をポインタ差として検出し、時間に対するポインタ差の変化量からライン側クロックとクライアント側クロックの周波数誤差を算出する回路である。
【００３１】
仮に、ライン側クロックとクライアント側クロックの周波数とが完全に一致している場合、ポインタ差は、時間に対して一定となる。多少の変動はあっても平均的に一定となる。ライン側クロックの方がクライアント側クロックよりも周波数が高い場合は、書き込みの方が読み出しよりも早くなるため、ポインタ差は、時間とともに減少する。
【００３２】
逆に、ライン側クロックの方がクライアント側クロックよりも周波数が低い場合は、書き込みの方は読み出しよりも遅くなるため、ポインタ差は時間とともに増大する。１ポインタが１クロックに対応する場合、時間に対するポインタ差の傾きが周波数誤差を示す。
【００３３】
なお、ＦＩＦＯ４１からは、書き込みポインタＰｗ（ｔ）や読み出しポインタＰｒ（ｔ）が検出できなくても、ＦＩＦＯ４１の機能によりポインタ差ΔＰ（ｔ）を直接検出することもできる。従って、所定の時間の単位で、順次的にポインタ差を検出することで、時間に対するポインタ差のグラフを描くことが可能である。
【００３４】
図４は、本発明の実施の形態に係る周波数誤差とＦＩＦＯのポインタ差の時間変化量との関係を示す図である。任意のライン側クロックの周波数に対して、クライアント側クロックの周波数を複数の周波数誤差に設定した場合の１ｍｓｅｃあたりのＦＩＦＯのポインタ差の変化量を測定したものである。図４では、ライン側クロックを７００ＭＨｚとした。
【００３５】
図４では、測定開始時点（時間＝０ｍｓｅｃ）において、ＦＩＦＯ４１のポインタ差の初期値を４０９６とした。これは、測定開始時点で、ＦＩＦＯ４１にリセットを与えることで設定できるようにしてある。
【００３６】
例えば、ポインタ差を０〜８１９２ポインタまで検出できるようにした場合、検出開始時におけるポインタ差が仮に６０００ポインタである場合でも、リセットによって検出開始時の初期値を４０９６に設定することができる。ポインタ差の初期値の設定は、周波数誤差推定回路４２にリセット回路４２５を設けて、検出開始時点でリセット回路４２５からポインタ差検出回路４２１にリセット信号を入力することにより行う。この場合、実際のポインタ差６０００ポインタを４０９６ポインタに見なすことになる。
【００３７】
上記の例では、検出可能なポインタ差の上限を８１９２、下限を０としている。これにより、初期値４０９６から±４０９６分、ポインタ差をカウントすることができる。図４に示すように、ポインタ差が上限値或いは下限値に達した場合には、ポインタ差はリセットされ、再び初期値から継続してカウントする。このように、絶対的なポインタ差を、測定開始時点においてカウンタ値の中心値に強制的に遷移させることで、ポインタ差の変化の度合いが把握しやすくなり、また、周波数誤差の推定計算が容易になる。
【００３８】
なお、上記の例では、演算を簡易化するためポインタ値を正で表現した。しかし、ポインタ値を正と負で表現できる場合は、ＦＩＦＯ４１のリセット時に初期値を０として、上限を＋４０９６、下限を−４０９６とすることも可能である。
【００３９】
ここで、ポインタ差を測定開始時点においてカウンタ値の中心値に設定しても、誤差が非常に大きい場合や測定期間が長い場合等、一度の測定期間の間に、ポインタ差が所定の測定範囲の上限値或いは下限値をオーバする場合がある（オーバーフロー／アンダーフロー）。設計の際には、規格値から決定される最大周波数誤差を想定して、上述のオーバーフローやアンダーフローが発生しないように上記の上限値及び下限値、並びに測定期間を決めることになる。
【００４０】
しかし、規格を遵守しない設計、故障、事故、及び予期しない環境変化等が原因で、オーバーフローやアンダーフローが発生する場合がある。そこで、本実施の形態の周波数誤差推定回路４２では、そのような場合に対処できるように、オーバーフロー／アンダーフロー検出回路４２２（第１の検出回路）を設けて、所定の時間において、カウンタ値が所定の許容範囲の上限値または下限値を超えるオーバーフロー及びアンダーフローを検出する。そして所定の許容範囲を超えた特定のポインタ差の測定値を、周波数誤差を推定する測定値から除外することができる。
【００４１】
また、測定期間の間に、一時的な周波数変動（予期しない周波数変化）が発生する場合がある。これらの一時的な周波数変動を測定から除外するように構成することもできる。具体的には、本実施の形態の周波数誤差推定回路４２では、変曲点検出回路４２３（第２の検出回路）を設けて、時間に対するポインタ差の変化を観測して、周波数誤差の変化量における変曲点の有無を検出し、変曲点における特定の周波数誤差を、測定対象から除外するように構成することができる。
【００４２】
例えば、１ｍｓｅｃ毎にポインタ差を検出して周波数誤差を推定する場合、１ｍｓｅｃ間のポインタ差の差分に基づいて、周波数誤差を推定できる。さらに、次の１ｍｓｅｃにおいて検出した周波数誤差との変化量を検出する。これは、時間に対するポインタ差に対して、２回の微分を行った結果と一致し、ポインタ差の変化の度合いを示す。この値が、所定の許容値よりも大きくなった場合、一時的な周波数変動が発生したとみなし、この周波数誤差を、周波数誤差推定のデータから除外する。これによって、一時的な周波数変動を測定から除外でき、周波数誤差を精度よく推定することができる。なお、所定の許容値は、通信装置の規格値等により適宜設定することができる。
【００４３】
このように、ポインタ差検出回路４２１において検出されたポインタ差は、オーバーフロー／アンダーフロー検出回路４２２における検出結果に基づいて、オーバーフロー及びアンダーフローとなる測定値が除外され、変曲点検出回路４２３において、一時的な周波数変動による測定値が除外された後に、周波数誤差計算回路４２４に供給される。
【００４４】
図４において、１０ｍｓｅｃ後では、ポインタ差は４６９６、２０ｍｓｅｃ後では、ポインタ差は、５２９６となっている。また、本データ転送回路では、ポインタ差が８１９２以上になると、初期値４０９６に戻すように設定している。なお、初期値の値、測定の上限値及び下限値は、上記の値に限定されず、許容可能な周波数誤差に合わせて適宜設定することができる。
【００４５】
図４では、時間２０ｍｓｅｃと時間１０ｍｓｅｃの間の１０ｍｓｅｃの期間に、ポインタ差は、４６９６から５２９６と＋６００変化した。この場合の周波数誤差は、６００／１０ｍｓｅｃ＝６０ｋＨｚと計算できる。即ち、この結果によれば、ライン側のクロックは、クライアント側クロックよりも６０ｋＨｚ大きいと推定される。仮に、ポインタ差が初期値４０９６から時間に対して減る場合には、ライン側のクロックはクライアント側クロックよりも低いと推定される。
【００４６】
＜周波数誤差の推定＞
ポインタ差から周波数誤差を求める計算式について説明する。所定期間Δｔ（＝時刻ｔ２−時刻ｔ１）におけるポインタ差の変化量をΔＰ（ｔ２）−ΔＰ（ｔ１）と定義する。この所定期間Δｔにおけるポインタ差の変化量は、ライン側クロックとクライアント側クロックとの周波数誤差に比例する。従って、所定期間のポインタ差を検出することで、時間に対するポインタ差のグラフの傾きから、ライン側クロックとクライアント側クロックとの周波数誤差を算出することができる。
【００４７】
ライン側クロックとクライアント側クロックとの周波数誤差Δｆは、以下の式（１）で示される。また、この周波数誤差は、図３中の周波数誤差計算回路４２４において、計算される。
Δｆ＝（ΔＰ（ｔ２）−ΔＰ（ｔ１））／Δｔ    ・・・（１）
【００４８】
図４に示したように、周波数誤差Δｆに対して、ＦＩＦＯのポインタ差の変化量は、比例の関係にあることが分かる。従って、前述したようにＦＩＦＯのポインタ差の変化量から周波数誤差を推定することが可能である。本図で示したように、１ｍｓｅｃという時間でもｐｐｍ単位で精度よく周波数誤差を推定できることがわかる。
【００４９】
＜周波数誤差を用いた分周数の調整＞
分周数調整回路４３は、推定された周波数誤差Δｆに相当する分周数を計算し、ＰＬＬ４４の分周数を調整する。ＰＬＬ４４の有理数分周回路４５は、周波数誤差に相当する分周数を現状の分周数に加算した分周数を用いて分周を行うことで、周波数誤差Δｆを最小にするようにクライアント側クロックを制御する。
【００５０】
具体的には、上記の周波数誤差Δｆを最小化するようにＰＬＬ４４の出力周波数を制御するために、有理数分周回路４５において、周波数誤差Δｆに相当する分周数を現状の分周数Ｎに加減算した分周数を用いて分周する。ＰＬＬ４４は、有理数分周回路４５の分周数を現状の分周数より増やすと出力周波数は高くでき、分周数を現状の分周数より減らすと出力周波数を低くすることができる。
【００５１】
周波数誤差Δｆに相当する分周数を加減算する前のＰＬＬの状態では、クライアント側クロックの周波数ｆ２は、以下の式（２）で示されるように制御されている。ここで、ｆｒは、参照クロックの周波数、Ｎ１は有理数分周回路４５の調整前の分周数である。ライン側クロックの方が、クライアント側クロックよりも高いと推定された場合は、分周数Ｎ１を増やし、逆の場合は、分周数Ｎ１を減らすように制御する。
ｆ２＝ｆｒ×Ｎ１    ・・・（２）
【００５２】
周波数誤差推定回路４２で推定した周波数誤差Δｆは、有理数分周回路４５における分周数として、以下の式（３）に示す分周数ΔＮに対応づけることができる。ここで、加減算する分周数ΔＮも有理数となる。
ΔＮ＝Δｆ／ｆｒ    ・・・（３）
【００５３】
分周数調整回路４３において、現状の分周数Ｎ１に加減算する分周数ΔＮを計算し、有理数分周回路４５において、調整された分周数（Ｎ１＋ΔＮ）を用いて、分周することで、一度の制御で周波数誤差を最小にすることが可能となる。周波数誤差Δｆが正の場合、ライン側クロックの方がクライアント側クロックよりも高いので、有理数分周回路４５の分周数は、Ｎ１+ΔＮに設定される。
【００５４】
一方周波数誤Δｆが負の場合、ライン側クロックの方がクライアント側クロックよりも低いので、有理数分周回路４５の分周数は、Ｎ１−｜ΔＮ｜に設定される。Δｆ及びΔＮを符号を含めて計算する場合は、どちらの場合も有理数分周回路の分周数は、Ｎ１+ΔＮで設定される。ここで、Ｎ１及びΔＮの桁数は、システム的な要求精度やＦＩＦＯ、ＰＬＬの構造から適宜設定し、最適化することができる。
【００５５】
＜データ転送回路のクロック同期動作＞
以下、具体的な周波数を仮定してデータ転送回路のクロック同期動作について説明する。ここでは、ライン側クロックの周波数が、ｆ１＝１０．０００１ＧＨｚ、クライアント側クロックの周波数が、ｆ２＝１０．０ＧＨｚの場合を考える。一般的には、複数ビットを並列処理するため、並列処理用クロックは低くなるが、ここでは動作原理を明確化するため、並列処理しない場合を例として説明する。
【００５６】
参照クロックの周波数ｆｒが、ｆｒ＝１０．０ＭＨｚの場合、ＰＬＬにおける有理数分周回路の分周数Ｎ１は、Ｎ１＝ｆ２／ｆｒ＝１０．０ＧＨｚ／１０．０ＭＨｚ=１０００．００である。
【００５７】
このような、ライン側クロックの周波数が、ｆ１＝１０．０００１ＧＨｚ、クライアント側クロックの周波数がｆ２＝１０．０ＧＨｚにおいて、ＦＩＦＯ４１から書き込みポインタと読み出しポインタのポインタ差を例えば１ｍｓｅｃ単位で検出する。この時、ある時刻ｔ１の時のポインタ差が、ΔＰ（ｔ１）＝５０００で、１０ｍｓｅｃ後の時刻ｔ２の時のポインタ差が、ΔＰ（ｔ２）＝６０００になったと仮定する。ポインタ差の初期値は４０００とする。
【００５８】
上記の場合、周波数誤差は以下の式（４）で計算できる。
Δｆ＝（ΔＰ（ｔ２）−ΔＰ（ｔ１））／（ｔ２−ｔ１）
＝（６０００−５０００）／１０ｍｓ＝０．１ＭＨｚ    ・・・（４）
【００５９】
この周波数誤差に相当する有理数分周回路の分周数は以下の式（５）で計算できる。
ΔＮ＝Δｆ／ｆｒ＝０．１ＭＨｚ／１０．０ＭＨｚ＝０．０１  ・・・（５）
【００６０】
次に、以下の式（６）のように、現状の有理数分周回路４５の分周数Ｎ１に、上記分周数ΔＮを加算する。
Ｎ１＋ΔＮ＝１０００．００＋０．０１＝１０００．０１  ・・・（６）
【００６１】
これによって、ＰＬＬ４４の出力クロックの周波数ｆ２は、以下の式（７）に示すように制御される。
ｆ２＝ｆｒ×（Ｎ１＋ΔＮ）
＝１０．０ＭＨｚ×１０００．０１＝１０．０００１ＧＨｚ  ・・・（７）
【００６２】
上記のＰＬＬの制御によって、クライアント側クロックの周波数ｆ２は、ライン側クロックの周波数ｆ１＝１０．０００１ＧＨｚとほぼ一致する。なお、周波数誤差推定回路４２における周波数誤差の精度や、有理数分周回路４５に設定する分周数ΔＮの精度によって、多少の誤差は存在する。ただし、周波数誤差測定時間や分周数の小数部の桁数の適正化によって、所望の周波数誤差内に、容易に一度の処理で設定することは可能である。
【００６３】
回路の構成において、周波数誤差に対する有理数分周回路４５へ加減算すべき分周数ΔＮの値は予め計算が可能なため、周波数誤差に対するコード値としてテーブル化しておくと、分周数調整回路４３を簡易に構成することができる。
【００６４】
また、上記の方法で、ＰＬＬ４４に周波数誤差補正用の分周数を設定すると、周波数誤差は、極めて小さくなる。しかしながら、時間経過において、その誤差は許容値よりも大きくなり、その場合再び同じ補正処理を行う。本処理は、ＰＩ（Proportional-Integral）制御に近いものとも言える。
【００６５】
上述したように、ＦＩＦＯを利用してライン側からのデータをクライアント側へ転送する本発明のデータ転送回路は、ＦＩＦＯへの書き込みポインタと読み出しポインタのポインタ差の時間的変化から、直接周波数誤差を推定し、読み出しクロックの周波数を調整できるので、クロック同期の同期時間を大幅に高速化できる。
【００６６】
また、周波数誤差を推定する際に、ポインタ差のオーバーフローやアンダーフローの測定値や、ポインタ差の変化の変曲点検出から一時的な周波数変動を除外でき、周波数誤差推定の精度を向上できる。従って、クロック同期後の残留周波数誤差を少なくできる。
【産業上の利用可能性】
【００６７】
本発明は、データ通信においてクロック同期を伴うデータ転送回路及び通信装置として利用することができる。
【符号の説明】
【００６８】
１０…光受信機、２０…Ａ／Ｄ変換器、３０…デジタル信号処理回路、４０…データ転送回路、４１…ＦＩＦＯ、４２…周波数誤差推定回路、４３…分周数調整回路、４４…ＰＬＬ、４５…有理数分周回路、４６…位相比較回路、４７…ローパスフィルタ（ＬＰＦ）、５０…クライアント側回路、１００…光受信装置（通信装置）。
【要約】
【課題】クロック同期を高速化できるデータ転送回路を提供する。
【解決手段】本発明のデータ転送回路は、第１のクロックに同期してデータを書き込みポインタに応じて書き込み、第２のクロックに同期してデータを読み出しポインタに応じて読み出すメモリと、参照クロックを有理数Ｎ倍して、第２のクロックを生成するクロック生成回路と、書き込みポインタと読み出しポインタのポインタ差の変化量に基づいて、第１のクロックと第２のクロックの周波数誤差を推定する周波数誤差推定回路と推定した周波数誤差を参照クロックの周波数で除した値を調整倍数ΔＮとして出力する調整回路とを備え、クロック生成回路は、調整回路が出力した調整倍数ΔＮを用いて、参照クロックを有理数（Ｎ＋ΔＮ）倍して、第２のクロックを生成する。
【選択図】  図２【図１】
0006929995.tif 000002
【図２】
0006929995.tif 000003
【図３】
0006929995.tif 000004
【図４】
0006929995.tif 000005
【図５】
0006929995.tif 000006
【図６】
0006929995.tif 000007