(57)【特許請求の範囲】
【請求項１】
他のＩＰ端末装置が一定間隔で送信した同期タイミングパケットを受信して内部で発生されたクロックを送信側のクロックに同期させる同期機能を備えるＩＰ端末装置において、
内部クロックを発生するクロック生成手段と、
上記クロック生成手段の生成した内部クロックをカウントするクロックカウンタと、
通信開始後に最初に受信された同期タイミングパケットの受信時における上記クロックカウンタのカウント値とその後に受信された同期タイミングパケットの受信時における上記クロックカウンタのカウント値との差分を基に送信側のクロックと上記クロック生成手段の発生しているクロックの周波数差を推定し、その推定結果に応じて上記クロック生成手段を移相制御する制御手段とを備え、
上記制御手段は、同期タイミングパケットが受信されて新たなカウント値の差分が算出されるたび、現時点までに算出された各時点のカウント値の差分についての出現範囲の上限範囲を与える直線の傾斜角と下限範囲を与える直線の傾斜角とを算出して当該２つの傾斜角の差分が予め定めた誤差範囲内となったか否かを判定し、２つの傾斜角の差分が予め定めた誤差範囲内となったとき、当該２つの傾斜角の平均値を推定対象である送信側のクロックと上記クロック生成手段の発生しているクロックの周波数差に対応する直線の傾斜角とみなして当該傾斜角よりクロックの周波数差を推定する
ことを特徴とするＩＰ端末装置。
【請求項２】
一定間隔ごと送信される同期タイミングパケットの受信タイミングを、受信装置内のクロックにて動作するクロックカウンタのカウント値として検出し、そのカウント値の情報を基に同期タイミングパケットの送信側のクロックと受信装置内のクロックとの周波数差を推定する場合における周波数誤差の範囲を推定する方法において、
通信開始後に最初に受信された同期タイミングパケットの受信時におけるクロックカウンタのカウント値とその後に受信された同期タイミングパケットの受信時におけるクロックカウンタのカウント値との差分が算出されるたび、現時点までに算出された各時点のカウント値の差分についての出現範囲の上限範囲を与える直線の傾斜角と下限範囲を与える直線の傾斜角とを算出して当該２つの傾斜角の差分の半分を推定対象である周波数差に含まれている周波数誤差の範囲と推定する
ことを特徴とする周波数誤差範囲推定方法。
【請求項３】
一定間隔ごと送信される同期タイミングパケットの受信タイミングを、受信装置内のクロックにて動作するクロックカウンタのカウント値として検出し、そのカウント値の情報を基に同期タイミングパケットの送信側のクロックと受信装置内のクロックとの周波数差を推定する周波数差推定方法において、
通信開始後に最初に受信された同期タイミングパケットの受信時におけるクロックカウンタのカウント値とその後に受信された同期タイミングパケットの受信時におけるクロックカウンタのカウント値との差分が算出されるたび、現時点までに算出された各時点のカウント値の差分についての出現範囲の上限範囲を与える直線の傾斜角と下限範囲を与える直線の傾斜角とを算出し、その２つの傾斜角の平均値を推定対象である送信側のクロックと受信装置内のクロックの周波数差に対応する直線の傾斜角とみなして当該傾斜角よりクロックの周波数差を推定する
ことを特徴とする周波数差推定方法。
【請求項４】
一定間隔ごと送信される同期タイミングパケットの受信タイミングを、受信装置内のクロックにて動作するクロックカウンタのカウント値として検出し、そのカウント値の情報を基に同期タイミングパケットの送信側のクロックと受信装置内のクロックとの周波数差を推定する周波数差推定方法であって、通信開始後に最初に受信された同期タイミングパケットの受信時におけるクロックカウンタのカウント値とその後に受信された同期タイミングパケットの受信時におけるクロックカウンタのカウント値との差分が算出されるたび、現時点までに算出された各時点のカウント値の差分についての出現範囲の上限範囲を与える直線の傾斜角と下限範囲を与える直線の傾斜角とを算出し、その２つの傾斜角の平均値を推定対象である送信側のクロックと受信装置内のクロックの周波数差に対応する直線の傾斜角とみなして当該傾斜角よりクロックの周波数差を推定する周波数差推定方法の場合において、上記周波数差の推定に必要な所要時間の算出方法において、
受信装置内のクロックを基準に設定された同期タイミングパケットの受信予定間隔をＴ１、クロックの周波数差が推定されるまでに必要な上記受信予定間隔の個数をｎ、クロックの周波数差の目標誤差をＷ、ネットワーク上に現れるゆらぎの上限をＹとするとき、同期タイミングパケットの送信側のクロックと受信装置内のクロックとの周波数差の推定に必要な所要時間Ｔ１×ｎを、次式に基づいて算出することを特徴とする推定所要時間算出方法。
Ｔ１×ｎ＝Ｙ／Ｗ
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、インターネット・プロトコル・ネットワーク（以下「ＩＰネットワーク」という。）に接続される端末装置（以下「ＩＰ端末装置」という。）並びに当該ＩＰ端末装置に適用して好適な周波数誤差範囲推定方法、周波数差推定方法及び推定所要時間算出方法に関する。
【０００２】
【従来の技術】
現在、ＩＰネットワークを介した音声データの実時間伝送サービス、いわゆるインターネット電話サービスが運用されている。本サービスの接続形態には、ＩＰネットワークに接続されたパソコン同士の通信、ＩＰネットワークを経由する電話機同士の通信など、さまざまな接続形態が考えられる。
【０００３】
ところで、かかる通信に使用されるＩＰ端末装置においては、送信側と受信側との間で、各装置に搭載される水晶発振子その他の部品の精度に起因して伝送クロック速度に誤差が生じるおそれがある。しかし、従来装置では、当該誤差が考慮されていない。このため、実際にクロック速度の誤差に起因したデータの余りや不足が生じると、受信側のＩＰ端末装置が余り分に相当する音声データを廃棄又は不足分に相当する代替データを挿入する処理を行う。
【０００４】
ところが、かかる処理が実行されると、本来のデータと、廃棄後又は挿入後のデータ（実際に音声として再生される波形）との間で、内容の同一性が損なわれてしまい、音声品質が低下するおそれがある。また、かかる処理後のデータをモデムにより復調すると、本来の波形とは全く異なったアナログ波形に復調されるおそれがあり、モデムを介在させる通信が実現不可能となる問題がある。
【０００５】
そこで、従来装置にあっては、マスタ端末（クロックの基準となる端末）となる送信側のＩＰ端末装置から一定周期で同期パケットを送信させて、スレーブ端末（マスタのクロックに合わせ込む端末）となる受信側のＩＰ端末装置で受信させ、その受信の度にクロックが遅れているか進んでいるかを判定させてマスタ端末のクロックにスレーブ端末のクロックを徐々に合わせ込む手法の適用が考えられている。
【０００６】
【発明が解決しようとする課題】
しかし、上述の方法には、クロック同期の調整を開始した時点での周波数のずれの大きさに応じて合わせ込みが完了するまでに要する時間にばらつきが生じるのを避け得ない欠点がある。すなわち、クロックの合わせ込みが完了するまでに要する時間にばらつきのために、調整開始から完了までに要する時間を一意に決定できない欠点がある。このため、ＩＰ端末装置としての仕様（例えば、装置立ち上げ後どれだけの時間が経てば同期が確立しているはずであるので、これこれの動作が可能である等。）を明確にできないという問題があった。
【０００７】
【課題を解決するための手段】
（Ａ）かかる課題を解決するため、第１の発明においては、他のＩＰ端末装置が一定間隔で送信した同期タイミングパケットを受信して内部で発生されたクロックを送信側のクロックに同期させる同期機能を備えるＩＰ端末装置において、(1) 内部クロックを発生するクロック生成手段と、(2) クロック生成手段の生成した内部クロックをカウントするクロックカウンタと、(3) 通信開始後に最初に受信された同期タイミングパケットの受信時におけるクロックカウンタのカウント値とその後に受信された同期タイミングパケットの受信時におけるクロックカウンタのカウント値との差分を基に送信側のクロックとクロック生成手段の発生しているクロックの周波数差を推定し、その推定結果に応じてクロック生成手段を移相制御する制御手段とを備え、制御手段は、同期タイミングパケットが受信されて新たなカウント値の差分が算出されるたび、現時点までに算出された各時点のカウント値の差分についての出現範囲の上限範囲を与える直線の傾斜角と下限範囲を与える直線の傾斜角とを算出して当該２つの傾斜角の差分が予め定めた誤差範囲内となったか否かを判定し、２つの傾斜角の差分が予め定めた誤差範囲内となったとき、当該２つの傾斜角の平均値を推定対象である送信側のクロックと上記クロック生成手段の発生しているクロックの周波数差に対応する直線の傾斜角とみなして当該傾斜角よりクロックの周波数差を推定するようにする。
【０００８】
このように、第１の発明においては、クロックの周波数差を推定してクロックの同期制御を行うため、相対的な位相関係（周波数が高いか低いか）のみに基づいて同期制御を行う場合に比して同期制御に要する時間の推定を可能とできる。
【００１１】
（Ｂ）また、第２の発明においては、一定間隔ごと送信される同期タイミングパケットの受信タイミングを、受信装置内のクロックにて動作するクロックカウンタのカウント値として検出し、そのカウント値の情報を基に同期タイミングパケットの送信側のクロックと受信装置内のクロックとの周波数差を推定する場合における周波数誤差の範囲を推定する方法において、通信開始後に最初に受信された同期タイミングパケットの受信時におけるクロックカウンタのカウント値とその後に受信された同期タイミングパケットの受信時におけるクロックカウンタのカウント値との差分が算出されるたび、現時点までに算出された各時点のカウント値の差分についての出現範囲の上限範囲を与える直線の傾斜角と下限範囲を与える直線の傾斜角とを算出して当該２つの傾斜角の差分の半分を推定対象である周波数差に含まれている周波数誤差の範囲と推定するようにする。
【００１２】
（Ｃ）また、第３の発明においては、一定間隔ごと送信される同期タイミングパケットの受信タイミングを、受信装置内のクロックにて動作するクロックカウンタのカウント値として検出し、そのカウント値の情報を基に同期タイミングパケットの送信側のクロックと受信装置内のクロックとの周波数差を推定する周波数差推定方法において、通信開始後に最初に受信された同期タイミングパケットの受信時におけるクロックカウンタのカウント値とその後に受信された同期タイミングパケットの受信時におけるクロックカウンタのカウント値との差分が算出されるたび、現時点までに算出された各時点のカウント値の差分についての出現範囲の上限範囲を与える直線の傾斜角と下限範囲を与える直線の傾斜角とを算出し、その２つの傾斜角の平均値を推定対象である送信側のクロックと受信装置内のクロックの周波数差に対応する直線の傾斜角とみなして当該傾斜角よりクロックの周波数差を推定するようにする。
【００１３】
（Ｄ）また、第４の発明においては、一定間隔ごと送信される同期タイミングパケットの受信タイミングを、受信装置内のクロックにて動作するクロックカウンタのカウント値として検出し、そのカウント値の情報を基に同期タイミングパケットの送信側のクロックと受信装置内のクロックとの周波数差を推定する周波数差推定方法であって、通信開始後に最初に受信された同期タイミングパケットの受信時におけるクロックカウンタのカウント値とその後に受信された同期タイミングパケットの受信時におけるクロックカウンタのカウント値との差分が算出されるたび、現時点までに算出された各時点のカウント値の差分についての出現範囲の上限範囲を与える直線の傾斜角と下限範囲を与える直線の傾斜角とを算出し、その２つの傾斜角の平均値を推定対象である送信側のクロックと受信装置内のクロックの周波数差に対応する直線の傾斜角とみなして当該傾斜角よりクロックの周波数差を推定する周波数差推定方法の場合において、上記周波数差の推定に必要な所要時間の算出方法において、受信装置内のクロックを基準に設定された同期タイミングパケットの受信予定間隔をＴ１、クロックの周波数差が推定されるまでに必要な受信予定間隔の個数をｎ、クロックの周波数差の目標誤差をＷ、ネットワーク上に現れるゆらぎの上限をＹとするとき、同期タイミングパケットの送信側のクロックと受信装置内のクロックとの周波数差の推定に必要な所要時間Ｔ１×ｎを、Ｔ１×ｎ＝Ｙ／Ｗに基づいて算出するようにする。
【００１４】
【発明の実施の形態】
（Ａ）第１の実施形態
（Ａ−１）構成の説明
【００１５】
【発明の実施の形態】
（Ａ）第１の実施形態
（Ａ−１）システムの形態
図１に、第１の実施形態に係るネットワークシステムの基本形態を示す。図１は、ＩＰネットワーク１を介して２台のＩＰ端末装置２及び３が接続された状態を表している。なおここでは説明を簡単にするために２台のＩＰ端末装置のみをＩＰネットワークに接続しているが、勿論、３台以上のＩＰ端末装置が接続される場合にも適用し得る。
【００１６】
図１は、伝送クロックの同期機能に関し、マスタとして機能する同期マスタモジュール４をＩＰ端末装置２に搭載し、スレーブとして機能する同期スレーブモジュール５をＩＰ端末装置３に搭載した状態を表している。ここでは、マスタとして動作するＩＰ端末装置とスレーブとして動作するＩＰ端末装置の関係を固定する。
【００１７】
勿論、ＩＰ端末装置２及び３の双方に、同期マスタモジュール４及び同期スレーブモジュール５の両方を搭載することも可能であるが、ここでは図１に示す構成について説明する。
【００１８】
なお、同期マスタモジュール４及び同期スレーブモジュール５の両方を各ＩＰ端末装置に搭載する場合にいずれがマスタとして動作し、いずれがスレーブとして動作するかは取り決めによる。例えば、発呼側がマスタ、着呼側がスレーブとして動作しても良く、発呼側がスレーブ、着呼側がマスタとして動作しても良い。その他の取り決めも考えられる。
【００１９】
（Ａ−２）各部の構成
続いて、各モジュールの内部構成を説明する。
【００２０】
図２に、同期マスタモジュール４の機能ブロック構成を示す。同期マスタモジュール４は、クロック生成器４Ａ、割り込み発生器４Ｂ、コントローラ４Ｃ及びＩＰユニット４Ｄから構成されている。
【００２１】
クロック生成器４Ａは、水晶発振子などから構成される基準クロック生成手段である。割り込み発生器４Ｂは、クロック生成器４Ａの発生した基準クロックをカウントし、一定個数に付き一回の割合で割り込み信号を発生する。この割り込み信号は、送信先となるＩＰ端末装置３の動作状態に関係無く、一定間隔Ｔ１ごと常に生成される。
【００２２】
コントローラ４Ｃは、割り込み信号を受けるたび、同期制御用データを出力する。ＩＰユニット４Ｄは、ＩＰネットワークを終端する手段であり、一定間隔Ｔ１ごとに入力される同期制御用データをパケット化し、同期タイミングパケットとして出力する。なお、当該ＩＰユニット４Ｄは、他のデータパケットの送受にも用いられる。
【００２３】
図３は、同期スレーブモジュール５の機能ブロック構成を示す。同期スレーブモジュール５は、ＩＰユニット５Ａ、コントローラ５Ｂ、クロックカウンタ５Ｃ、伝送クロック生成器５Ｄから構成されている。
【００２４】
ＩＰユニット５Ａは、マスタ側のＩＰユニット４Ｄと同じくＩＰネットワークを終端する手段である。ＩＰユニット５Ａは、同期タイミングパケットが受信されると、これを同期制御用データとしてコントローラ５Ｂに出力する。
【００２５】
コントローラ５Ｂは、同期制御用データが受信されるたびクロックカウンタ５Ｃのカウント値Ｘｎを読み出して保存し、それらの値からマスタ側のクロック周波数と自身（スレーブ側）のクロック周波数との差を推定する手段である。また、コントローラ５Ｂは、周波数差の推定に許容する目的誤差Ｗの値を基に、当該推定に要する最長時間を求める手段としても機能する。さらに、コントローラ５Ｂは、前述の推定に要する最長時間の経過後、推定されたクロック周波数の差を打ち消すように伝送クロック生成器５Ｄの制御を行う。なお、当該コントローラ５Ｂによる制御動作の詳細は後述する。
【００２６】
クロックカウンタ５Ｃは、伝送クロック生成器５Ｄが発生する基準クロックに基づいてカウントアップ動作を行う巡回型のカウンタである。ここで、クロックカウンタ５Ｃのカウント値の最大値（例えば、３９９９９）は、０からその値をカウントアップするのに要する時間（一定間隔Ｔ２）が、同期タイミングパケットの送出間隔（一定間隔Ｔ１）と同じになるように設定されている。
【００２７】
従って、同期マスタモジュール４のクロック生成器４Ａの動作クロックの精度と、同期スレーブモジュール５内の伝送クロック生成器５Ｄの動作クロックの精度に全く誤差がない場合には、クロックカウンタ５Ｃが０から最大値（例えば、３９９９９）までカウントアップするのに要する一定間隔Ｔ２は一定間隔Ｔ１と一致し、前述のコントローラ５Ｂが読み出すカウント値は常に同じ値になる。
【００２８】
伝送クロック生成器５Ｄは、マスタ側のクロック生成器４Ａと同様、水晶発振子などから構成される基準クロック生成手段である。そのクロック速度の設計値は、マスタ側のクロック生成器４Ａと同じになっている。なお、伝送クロック生成器５Ｄは、コントローラ５Ｂからの制御に従って、発生するクロック速度を変更し得るよう構成されている。
【００２９】
（Ａ−３）同期処理動作
続いて、以上の構成を有する同期モジュール４及び５を搭載するＩＰ端末装置２及び３間において行われる、伝送クロックの同期処理動作の内容を具体的に説明を行う。
【００３０】
まず、伝送クロックの同期機能に関しマスタ側となるＩＰ端末装置２は、スレーブ側となるＩＰ端末装置３の動作状態とは無関係に一定間隔Ｔ１ごと同期タイミングパケットを送出する。もっとも、この同期タイミングパケットは常に送出されている必要はなく（送出されていても良いが）、スレーブ側と通信が行われている間のみ送出されていれば本願発明の目的を達成することができる。
【００３１】
なお言うまでもなく、ここでの一定間隔Ｔ１は、ＩＰ端末装置２に搭載された同期マスタモジュール４のクロック生成器４Ａが出力するクロック速度に応じて定まる。
【００３２】
一方、伝送クロックの同期機能に関しスレーブ側となるＩＰ端末装置３は、同期スレーブモジュール５のコントローラ５Ｂにおいて同期タイミングパケットの到着を監視しており、同期タイミングパケットの到着を確認するたび、その時点でのクロックカウンタ５Ｃのカウント値Ｘｎの読み出しを行う。
【００３３】
以後、通信を開始したＩＰ端末装置３が最初に読み込んだカウント値をＸ０とし、２番目以降に読み込んだカウント値をＸｎ（ｎ＝１、２…）とする。図４は、この対応関係を表している。なお、図４では時間軸を横軸にとり、全くゆらぎがない場合（一定の遅延は合っても良い）における同期タイミングパケットの伝送を実線で、ゆらぎがある場合における同期タイミングパケットの伝送を破線で表している。
【００３４】
なお、カウント値Ｘ０については、当該の通信が終了されるか同期スレーブモジュール５の動作が停止するまでの間、コントローラ５Ｂ内のレジスタ等の記憶手段に保持され、途中で変更されることはない。
【００３５】
コントローラ５Ｂの動作の説明に戻る。コントローラ５Ｂは、前述の通り、同期タイミングパケットの到着を確認するとクロックカウンタ５Ｃにその都度アクセスし、その時点におけるカウント値の読み出しを行う。
【００３６】
ここで、クロックカウンタ５Ｃは、図５（Ａ）に示すように、自装置内にある伝送クロック生成器５Ｄから供給される伝送クロックに基づいて０から所定値（例えば、３９９９９）までカウントアップする動作を行っており、当該巡回的なカウントアップ動作により一定間隔Ｔ２の同期タイミングを得ている。
【００３７】
従って、マスタ側とスレーブ側のクロック周波数が等しく（一定間隔Ｔ１とＴ２が等しく）、しかも、ＩＰネットワーク１上にゆらぎが全くない場合（一定の遅延は合っても良い）には、図５（Ｂ）に示すように、読み出されるカウント値は常に同じ値になる。
【００３８】
しかし、ＩＰネットワーク１上にゆらぎが全く無くても（一定の遅延は合っても良い）、マスタ側とスレーブ側のクロック周波数に違いがあると（一定間隔Ｔ１とＴ２が相違すると）、図５（Ｃ）に示すように、読み出されるカウント値に周波数差に比例したずれが現れることになる。
【００３９】
その一方で、かかる規則的なカウント値のずれが認められる場合には、その規則性を確認することにより、容易にクロック周波数のずれを特定することができる。
【００４０】
ところが実際には、ＩＰネットワーク１上における伝送にはゆらぎがあり、図５（Ｄ）に示すように、その影響によって読み出されるカウント値はクロック周波数のずれに応じて定まる本来の規則性（図中複数の巡回周期にわたって斜めに描いた直線）とは全く無関係なものとなる。このため、読み出されるカウント値の差分を単に監視するだけで、クロック周波数のずれに応じた本来の規則性を求めることは容易ではない。
【００４１】
そこで、コントローラ５Ｂは、以下の手法によって一見無秩序に見えるカウント値の系列の中からクロック周波数のずれを推定する。この推定に際し、コントローラ５Ｂは、ＩＰネットワーク１上におけるゆらぎの上限値をＹ（単位はＸ０、Ｘｎと同じ。）とする。ここで、ゆらぎが無い場合にＸｎ−Ｘ０（ｎ＝１、２、…）が採る値をＺ（ｎ）とすると、揺らぎがある場合におけるＸｎ−Ｘ０の値は、Ｚ（ｎ）−Ｙ≦Ｘｎ−Ｘ０≦Ｚ（ｎ）＋Ｙのいずれかの値となる。
【００４２】
このゆらぎがある場合のＸｎ−Ｘ０をΔＸｎとすると、時間とΔＸとの関係は図６のようになる。ここで、図中の黒丸は、各読み出しタイミングでのカウント値Ｘｎの初期値Ｘ０に対する相対値ΔＸｎを表している。また、初期カウント値Ｘ０を始点とする直線ＬＡはゆらぎが無い場合にカウント値が本来とるべき値の系列を結んだものである。また、初期カウント値Ｙを始点とする直線ＬＢはゆらぎがある場合にカウント値がとり得る最大許容値の系列を結んだものである。また、初期カウント値−Ｙを始点とする直線ＬＣはゆらぎがある場合にカウント値がとり得る最小許容値の系列を結んだものである。
【００４３】
なお、通信中に生じ得るゆらぎの範囲はＹであるので、各通信においてカウント値の現れる範囲は直線ＬＢとＬＣで挟まれる全範囲ではなく、図中斜線で表される直線ＬＤ及びＬＥで挟まれる範囲に限られることになる。
【００４４】
このため、図７に示すように、最大許容値の初期値を与える（０，Ｙ）と各差分値ΔＸ（ｎ）とを結ぶ線分ＬＦの傾きは常に直線ＬＢの傾き（すなわち、直線ＬＡの傾き）よりも小さくなる関係が認められ、また、最小許容値の初期値を与える（０，−Ｙ）と各差分値ΔＸ（ｎ）とを結ぶ線分ＬＧの傾きは直線ＬＣの傾き（すなわち、直線ＬＡの傾き）よりも大きくなる関係が認められる。
【００４５】
そこで、本実施形態におけるコントローラ５Ｂは、新たな差分値ΔＸ（ｎ）が算出されるたび、最大許容値の初期値を与える（０，Ｙ）と各差分値ΔＸ（ｎ）とを結ぶ線分ＬＦのうちでその傾きがより大きくなるものの選択を行うと共に、最小許容値の初期値を与える（０，−Ｙ）と各差分値ΔＸ（ｎ）とを結ぶ線分ＬＧのうちでその傾きがより小さくなるものの選択を行い、真に求めたい直線ＬＡの傾きが存在し得る範囲を狭める処理を実施する。
【００４６】
すなわち、コントローラ５Ｂは、図８→図９→図１０→図１１→図１２→図７に示すように、２種類の線分ＬＦとＬＧの傾きの差を狭めて真に求めたい直線ＬＡの傾きが存在し得る範囲を狭める処理を実施する。
【００４７】
やがて、線分ＬＦの傾きとＬＧの傾きの差分が縮小して当該差分が予め定めた誤差の範囲内になると、コントローラ５Ｂは、両線分の傾きの平均をクロック周波数の差分に相当する傾きであると推定を行う。当然に、この推定値の精度は、予め定める誤差範囲を狭めることで高めることができる。
【００４８】
実際には以上の処理は、以下に示す計算動作により実施される。すなわち、コントローラ５Ｂは、同期タイミングパケットの受信が通知されるたび、次の（１）式及び（２）式で与えられる２種類の傾きＫ１及びＫ２をそれぞれ計算し、その都度、前者については過去の計算によって得られた傾きより小さいものを、後者については過去の計算によって得られた傾きよりも大きいものの選択を行う。
【００４９】
Ｋ１＝｛（Ｘｎ−Ｘ０）＋Ｙ｝／（Ｔ１×ｎ）                              …（１）
Ｋ２＝｛（Ｘｎ−Ｘ０）−Ｙ｝／（Ｔ１×ｎ）                              …（２）
ここで、ｎは、１、２…の整数値である。また、（１）式で表される傾きＫ１は図７〜図１２の線分ＬＧの傾きに、（２）式で表される傾きＫ２は図７〜図１２の線分ＬＦの傾きにそれぞれ相当する。
【００５０】
例えば、それまで保持されていた傾きＫ１の値が５０で、新たに計算された傾きＫ１の値が４０である場合、コントローラ５Ｂは、傾きＫ１の値として新たに計算された４０という値を選択する。一方、それまで保持されていた傾きＫ２の値が２０で、新たに計算された傾きＫ２の値が１０である場合、コントローラ５Ｂは、傾きＫ２の値として値２０をそのまま保持する。
【００５１】
かかる一連の計算処理を繰り返すことで傾きＫ１とＫ２の差分は徐々に小さくなり（図８→図９→図１０→図１１→図１２→図７のように）、時間的な制約を設けなければやがて２つの傾きはほぼ一致する状態になる。
【００５２】
しかしながら、現実には限られた時間内にクロック周波数の差分を求め、その差分値に基づいてマスタ側の伝送クロックとスレーブ側の伝送クロックとの間に存在する差分を解消する必要がある。そこで、コントローラ５Ｂは、傾きＫ１及びＫ２の値が更新されるたびに現在の誤差範囲を次式により求め、その値が予め定めた範囲以下になっているか判定する。
【００５３】
誤差範囲＝±（Ｋ１−Ｋ２）／２                                …（３）
（３）式で求めた値が予め定めた範囲内にない場合、コントローラ５Ｂは、新たな傾きＫ１、Ｋ２の算出と更新とを継続し、傾きＫ１、Ｋ２が更新されるたび同様の判定処理を実行する。一方、（３）式で求めた値が予め定めた範囲内にある場合、コントローラ５Ｂは、次式で与えられる傾きＫ１とＫ２の平均値を求めようとするクロック周波数の差分に相当する傾きであると推定し、当該推定値に応じた（すなわち、当該推定値に応じた周波数誤差を打ち消すような）制御信号を伝送クロック生成器５Ｄに出力する。
【００５４】
推定値＝（Ｋ１＋Ｋ２）／２                                    …（４）
かくして、伝送クロック生成器５Ｄで生成されるクロック周波数は、確実にマスタ側のクロック周波数に制御される。
【００５５】
ところで以上の説明は、クロック周波数誤差の推定開始から推定終了までの間に、同期タイミングパケットの受信のたびクロックカウンタ５Ｃから読み出されるカウント値にいずれも桁上がり（オーバーフロー）がない場合に支障無く成り立つものの、傾きＫ１及びＫ２を算出するのに用いる、すなわち（１）式及び（２）式におけるＸｎ又はＸ０のいずれか一方に桁上がりがある場合には、（Ｘｎ−Ｘ０）の値が本来の差分を表さないため、正確なクロック周波数誤差を求めることができなくなる。例えば、クロックカウンタ５Ｃが０〜３９９９９の場合、３９９９９の次は０からカウントアップが継続されるため、傾きの正負や差分が全く異なった値になってしまう。
【００５６】
そこで、本実施形態におけるコントローラ５Ｂは、図１３に示す判定処理に従ってカウント値の桁上がりを補正し、常に正確な傾きＫ１及びＫ２を計算できるようにする。なお言うまでも無く、判定の順序は図１３の場合に限るものでない。
【００５７】
まず、コントローラ５Ｂは、同期タイミングパケットの受信の確認の後、新たなカウント値Ｘｎが読み出されると、Ｘｎ−Ｘ０が”２００００”より大きいか否かを判定する（ステップＳＰ１）。
【００５８】
このステップＳＰ１で、肯定結果が得られた場合（負数がないために桁上がりの結果、Ｘｎが非常に大きな値になって読み出された場合）、コントローラ５Ｂは、カウント値Ｘｎを本来の負数に戻すべく”４００００”を減算して補正値を得、その値からカウント値の初期値Ｘ０を減算することで、真の差分値を得る（ステップＳＰ２）。例えば、Ｘｎが”３９９９８”でＸ０が”５”の場合、Ｘｎ−Ｘ０の補正値は、次式のようになる。
【００５９】
（３９９９８−４００００）−５＝−２−５＝−７                …（５）
これに対して、ステップＳＰ１で否定結果が得られた場合、コントローラ５Ｂは、さらにＸｎ−Ｘ０が”−２００００”より小さいか否かを判定する（ステップＳＰ３）。
【００６０】
ステップＳＰ３で肯定結果が得られた場合（カウント値の最大値を超えたために、Ｘｎが非常に小さい値になって読み出された場合）、コントローラ５Ｂは、カウント値の初期値Ｘ０をカウント値Ｘｎに対する相対的な真値に戻すべく”４００００”を減算して補正値を得、その値からカウント値のＸｎから減算することで、真の差分値を得る（ステップＳＰ４）。例えば、Ｘｎが”３”でＸ０が”３９９９０”の場合、Ｘｎ−Ｘ０の補正値は、次式のようになる。
【００６１】
３−（３９９９０−４００００）＝３−（−１０）＝１３          …（６）
そして、コントローラ５Ｂは、ステップＳＰ３でも否定結果が得られた場合、前述の説明の通り、何らの補正を行わない条件下でカウント値の差分（Ｘｎ−Ｘ０）を計算する（ステップＳＰ５）。
【００６２】
このように、本実施形態におけるコントローラ５Ｂは、カウント値の桁上がりにも的確に対処し得るように構成されている。
【００６３】
以上のように、本実施形態におけるコントローラ５Ｂは、上述の手法によって所定の精度でクロック周波数の差を特定し、その情報に基づいてクロック周波数を制御可能であるが、クロック周波数の差を特定するのにどの程度の時間を必要とするかが分からなければ依然として装置としての仕様を決定できない。
【００６４】
そこで、本実施形態においては、上述の手法によるクロック周波数の差の特定方法によると、誤差範囲が予め定めた範囲内に収束するのに要する時間の最長値が、各同期タイミングパケットに全くゆらぎが無い場合（図６で全ての点が直線ＬＡの上にある場合）に当ることに着目して当該時間の算出を実行する。
【００６５】
すなわち、予め定める誤差範囲の目標値をＷとするとき、傾きＫ１及びＫ２から算出される誤差範囲（Ｋ１−Ｋ２）／２が目標値Ｗと一致するまでの時間Ｔ１×ｎを次式のように決定する。
【００６６】
Ｔ１×ｎ＝Ｙ／Ｗ                                            …（７）
（Ａ−４）第１の実施形態の効果
以上のように、上述のＩＰ端末装置３（特に、同期スレーブモジュール５としてコントローラ５Ｂを有するもの）を用いることにより、（Ｋ１＋Ｋ２）／２±Ｗで与えられる傾きに相当する周波数の精度で、マスタ側のクロックとスレーブ側のクロックとの周波数のずれを最悪Ｔ１×ｎ時間後には確定することができる。
【００６７】
かくして、Ｔ１×ｎ時間後には誤差範囲を明確にしたクロック周波数の設定が可能となり、動作保証の範囲を明確にしたネットワークシステム及びＩＰ端末装置の設計が可能となる。
【００６８】
（Ｂ）第２の実施形態
（Ｂ−１）システムの形態
図１４に、第２の実施形態に係るネットワークシステムの基本形態を示す。１４は、ブロードキャストドメインを構成するＩＰネットワーク１を介して接続された一台のＩＰ端末装置２と複数台のＩＰ端末装置３間において伝送クロック速度の違いを調整する場合のシステム形態について表したものである。ただし、図１４には、図１と対応する部分に同一符号を付して示している。
【００６９】
第２の実施形態と第１の実施形態との違いは、第１の実施形態が相手先となるスレーブ側のＩＰ端末装置３を特定して同期タイミングパケットを送信したのに対し、この第２の実施形態では、当該同期タイミングパケットをブロードキャストパケットとしてドメイン内に存する全てのＩＰ端末装置に同報する点が異なる。
【００７０】
すなわち、本実施形態の場合、同期マスタモジュール４を搭載するＩＰ端末装置２は、同期スレーブモジュール５を搭載する全てのＩＰ端末装置３に対し、同期タイミングパケットを一定間隔Ｔ１ごとにブロードキャストする点が異なる。
【００７１】
なお、同期スレーブモジュール５を搭載する各ＩＰ端末装置３における同期確立動作は第１の実施形態で説明した動作と同じであり、スレーブ側となるＩＰ端末装置のそれぞれが、自装置の伝送クロック速度をマスタ側の伝送クロック速度に同期させる動作を実行されることになる。
【００７２】
（Ｂ−２）効果
かくして、第２の実施形態によれば、以下の効果が得られることになる。すなわち、同一ブロードキャストドメイン内に位置する全ての同期スレーブモジュール５は、そのいずれについても、同一ブロードキャストドメイン内に位置する同期マスタモジュール４との同期が確保される。従って、各同期スレーブモジュール５相互間についても、同期マスタモジュール４との同期を前提として、伝送クロックの同期が確保されることになる。
【００７３】
よって、同期スレーブモジュール５を搭載するＩＰ端末装置３間における通信においても、データの廃棄や代替データの挿入が一切不要となり、長時間に亘り（時間制限無く）、通信を行うことが可能となる。すなわち、同一のブロードキャストドメイン内に位置する全てのＩＰ端末装置（同期スレーブモジュール５を搭載するものに限らず、同期マスタモジュール４を搭載するものも含む）間で、モデム通信が可能となり、回線交換と同等の品質の通話を可能とできる。
【００７４】
また、このように同一のブロードキャストドメイン内に位置する全てのＩＰ端末装置（同期スレーブモジュール５を搭載するものに限らず、同期マスタモジュール４を搭載するものも含む）間において伝送クロック速度の同期が確保されるため、１つの同期マスタモジュール又は同期スレーブモジュールを搭載するだけで（すなわち、各チャネルごとに各モジュールを搭載しなくても）、複数チャネルの同時通話を実現できる。
【００７５】
（Ｃ）他の実施形態
上述の実施形態においては、特に実時間性の高い音声データを伝送する場合を前提に説明したが、伝送される情報としてはこれに限るものでなく、いわゆるテレビ電話や放送系の映像データのように実時間性が要求される他の情報を伝送する場合にも適用し得る。
【００７６】
【発明の効果】
以上のように、第１の発明によれば、他のＩＰ端末装置が一定間隔で送信した同期タイミングパケットを受信して内部で発生されたクロックを送信側のクロックに同期させる同期機能を備えるＩＰ端末装置に、(1) 内部クロックを発生するクロック生成手段と、(2) クロック生成手段の生成した内部クロックをカウントするクロックカウンタと、(3) 通信開始後に最初に受信された同期タイミングパケットの受信時におけるクロックカウンタのカウント値とその後に受信された同期タイミングパケットの受信時におけるクロックカウンタのカウント値との差分を基に送信側のクロックとクロック生成手段の発生しているクロックの周波数差を推定し、その推定結果に応じてクロック生成手段を移相制御する制御手段とを備え、制御手段が同期タイミングパケットが受信されて新たなカウント値の差分が算出されるたび、現時点までに算出された各時点のカウント値の差分についての出現範囲の上限範囲を与える直線の傾斜角と下限範囲を与える直線の傾斜角とを算出して当該２つの傾斜角の差分が予め定めた誤差範囲内となったか否かを判定し、２つの傾斜角の差分が予め定めた誤差範囲内となったとき、当該２つの傾斜角の平均値を推定対象である送信側のクロックとクロック生成手段の発生しているクロックの周波数差に対応する直線の傾斜角とみなして当該傾斜角よりクロックの周波数差を推定することにより、相対的な位相関係（周波数が高いか低いか）のみに基づいて同期制御を行う場合に比して同期制御に要する時間の推定を可能とできる。
【００７８】
また、第２の発明によれば、一定間隔ごと送信される同期タイミングパケットの受信タイミングを、受信装置内のクロックにて動作するクロックカウンタのカウント値として検出し、そのカウント値の情報を基に同期タイミングパケットの送信側のクロックと受信装置内のクロックとの周波数差を推定する場合における周波数誤差の範囲を推定する方法において、通信開始後に最初に受信された同期タイミングパケットの受信時におけるクロックカウンタのカウント値とその後に受信された同期タイミングパケットの受信時におけるクロックカウンタのカウント値との差分が算出されるたび、現時点までに算出された各時点のカウント値の差分についての出現範囲の上限範囲を与える直線の傾斜角と下限範囲を与える直線の傾斜角とを算出して当該２つの傾斜角の差分の半分を推定対象である周波数差に含まれている周波数誤差の範囲と推定することにより、周波数誤差を高精度で推定できる。
【００７９】
また、第３の発明によれば、一定間隔ごと送信される同期タイミングパケットの受信タイミングを、受信装置内のクロックにて動作するクロックカウンタのカウント値として検出し、そのカウント値の情報を基に同期タイミングパケットの送信側のクロックと受信装置内のクロックとの周波数差を推定する周波数差推定方法において、通信開始後に最初に受信された同期タイミングパケットの受信時におけるクロックカウンタのカウント値とその後に受信された同期タイミングパケットの受信時におけるクロックカウンタのカウント値との差分が算出されるたび、現時点までに算出された各時点のカウント値の差分についての出現範囲の上限範囲を与える直線の傾斜角と下限範囲を与える直線の傾斜角とを算出し、その２つの傾斜角の平均値を推定対象である送信側のクロックと受信装置内のクロックの周波数差に対応する直線の傾斜角とみなして当該傾斜角よりクロックの周波数差を推定することにより、周波数差を高精度で推定できる。
【００８０】
また、第４の発明によれば、一定間隔ごと送信される同期タイミングパケットの受信タイミングを、受信装置内のクロックにて動作するクロックカウンタのカウント値として検出し、そのカウント値の情報を基に同期タイミングパケットの送信側のクロックと受信装置内のクロックとの周波数差を推定する周波数差推定方法であって、通信開始後に最初に受信された同期タイミングパケットの受信時におけるクロックカウンタのカウント値とその後に受信された同期タイミングパケットの受信時におけるクロックカウンタのカウント値との差分が算出されるたび、現時点までに算出された各時点のカウント値の差分についての出現範囲の上限範囲を与える直線の傾斜角と下限範囲を与える直線の傾斜角とを算出し、その２つの傾斜角の平均値を推定対象である送信側のクロックと受信装置内のクロックの周波数差に対応する直線の傾斜角とみなして当該傾斜角よりクロックの周波数差を推定する周波数差推定方法の場合において、上記周波数差の推定に必要な所要時間の算出方法において、受信装置内のクロックを基準に設定された同期タイミングパケットの受信予定間隔をＴ１、クロックの周波数差が推定されるまでに必要な受信予定間隔の個数をｎ、クロックの周波数差の目標誤差をＷ、ネットワーク上に現れるゆらぎの上限をＹとするとき、同期タイミングパケットの送信側のクロックと受信装置内のクロックとの周波数差の推定に必要な所要時間Ｔ１×ｎを、Ｔ１×ｎ＝Ｙ／Ｗに基づいて算出するようにする。このように、第５の発明によれば、クロックの周波数差の推定に必要な所要時間を予め確定できるため、装置の仕様を容易に設定できる。
【図面の簡単な説明】
【図１】第１の実施形態に係るネットワークシステムの全体構成を示す図である。
【図２】同期マスタモジュールの機能ブロック構成を示す図である。
【図３】同期スレーブモジュールの機能ブロック構成を示す図である。
【図４】同期タイミングパケットの伝送ゆらぎとの関係を示す図である。
【図５】カウント値とクロック周波数差との関係及び伝送ゆらぎとの関係を示す図である。
【図６】クロック周波数の差分に起因したカウント値の出現範囲と伝送ゆらぎに起因したカウント値の出現範囲との関係を説明する図である。
【図７】クロック周波数の差分に応じた傾きの推定原理を説明する図である（その１）。
【図８】クロック周波数の差分に応じた傾きの推定原理を説明する図である（その２）。
【図９】クロック周波数の差分に応じた傾きの推定原理を説明する図である（その３）。
【図１０】クロック周波数の差分に応じた傾きの推定原理を説明する図である（その４）。
【図１１】クロック周波数の差分に応じた傾きの推定原理を説明する図である（その５）。
【図１２】クロック周波数の差分に応じた傾きの推定原理を説明する図である（その６）。
【図１３】カウント値の桁上がりを考慮したカウント値の差分算出処理手順を示すフローチャートである。
【図１４】第２の実施形態に係るネットワークシステムの全体構成を示す図である。
【符号の説明】
１…ＩＰネットワーク、２、３…ＩＰ端末装置、４…同期マスタモジュール、４Ａ…クロック生成器、４Ｂ…割り込み発生器、４Ｃ…コントローラ、４Ｄ…ＩＰユニット、５…同期スレーブモジュール、５Ａ…ＩＰユニット、５Ｂ…コントローラ、５Ｃ…クロックカウンタ、５Ｄ…伝送クロック生成器。
【図１】
0003630601.tif 000002
【図２】
0003630601.tif 000003
【図３】
0003630601.tif 000004
【図４】
0003630601.tif 000005
【図５】
0003630601.tif 000006
【図６】
0003630601.tif 000007
【図７】
0003630601.tif 000008
【図８】
0003630601.tif 000009
【図９】
0003630601.tif 000010
【図１０】
0003630601.tif 000011
【図１１】
0003630601.tif 000012
【図１２】
0003630601.tif 000013
【図１３】
0003630601.tif 000014
【図１４】
0003630601.tif 000015