(57)【要約】【課題】  ＦＩＦＯを用いた非同期伝送を行う伝送制御装置であって、ＦＩＦＯ内の残存データ量の発散を抑制し、適正値に速やかに収束させることができる伝送制御装置を提供する。【解決手段】  ＦＩＦＯ１０は、書き込み要求信号ＷＥに応じて、新たに入力されるデータを記憶し、読み出し要求信号ＲＥに応じて、記憶したデータを古いものから順に読み出して出力する。残存データ量検出部５０は、ＦＩＦＯ１０における読み出し未了のデータの残存データ量ΔＳを検出する。可変周波数発振部７０は、書き込み要求信号ＷＥの発生を許可するイネーブル信号ＥＮを周波数制御情報ｙに応じた時間密度で生成する。周波数制御部６０は、残存データ量ΔＳが適正値から外れて上限値または下限値に向かって変化している場合または上限値または下限値となっている場合に限り、残存データ量ΔＳを適正値に戻す方向に周波数制御情報ｙの修正を行う。【選択図】      図１
2006238044.tif 000002
【特許請求の範囲】
【請求項１】
書き込み要求信号に応じて、新たに入力されるデータを記憶し、読み出し要求信号に応じて、記憶したデータを古いものから順に読み出して出力する先入れ先出し方式の記憶手段と、
前記記憶手段に記憶された読み出し未了のデータの残存データ量を検出する残存データ量検出手段と、
前記書き込み要求信号または読み出し要求信号の発生を許可する許可信号を周波数制御情報に応じた時間密度で生成する可変周波数発振手段と、
前記残存データ量検出手段により検出される残存データ量が適正値から外れて上限値または下限値に向かって変化している場合または上限値または下限値となっている場合に限り、前記残存データ量を適正値に戻す方向に前記周波数制御情報を修正する周波数制御手段と
を具備することを特徴とする伝送制御装置。
【請求項２】
補間手段と、伝送制御手段とを具備し、
前記補間手段は、
第１のサンプリング周波数のデータを順次取り込んで、補間演算用入力データ列として保持する補間演算用入力データ保持手段と、
前記伝送制御手段により発生される補間比に応じた補間係数と前記補間演算用入力データ保持手段に保持された補間演算用入力データ列とを用いた補間演算により第２のサンプリング周波数のデータを生成して出力する補間演算手段とを具備し、
前記伝送制御手段は、
書き込み要求信号に応じて、前記補間手段から出力される第２のサンプリング周波数のデータを記憶し、読み出し要求信号に応じて、記憶したデータを古いものから順に読み出して出力する先入れ先出し方式の記憶手段と、
前記記憶手段に記憶された読み出し未了のデータの残存データ量を検出する残存データ量検出手段と、
前記書き込み要求信号の発生を許可する許可信号を周波数制御情報に応じた時間密度で生成するとともに前記周波数制御情報に応じた速度で変化する前記補間比を発生する可変周波数発振手段と、
前記残存データ量検出手段により検出される残存データ量が適正値から外れて上限値または下限値に向かって変化している場合または上限値または下限値となっている場合に限り、前記残存データ量を適正値に戻す方向に前記周波数制御情報を修正する周波数制御手段と
を具備することを特徴とするサンプリング周波数変換装置。
【請求項３】
補間手段と、伝送制御手段とを具備し、
前記補間手段は、
第１のサンプリング周波数のデータを前記伝送制御手段から順次取り込んで、補間演算用入力データ列として保持する補間演算用入力データ列保持手段と、
前記伝送制御手段により発生される補間比に応じた補間係数と前記補間演算用入力データ列保持手段に保持された前記補間演算用入力データ列とを用いた補間演算により、第２のサンプリング周波数のデータを生成して出力する補間演算手段とを具備し、
前記伝送制御手段は、
書き込み要求信号に応じて、第１のサンプリング周波数のデータを前段の装置から取り込んで記憶し、読み出し要求信号に応じて、記憶したデータを古いものから順に読み出して出力する先入れ先出し方式の記憶手段と、
前記記憶手段に記憶された読み出し未了のデータの残存データ量を検出する残存データ量検出手段と、
前記読み出し要求信号の発生を許可する許可信号を周波数制御情報に応じた時間密度で生成するとともに前記周波数制御情報に応じた速度で変化する前記補間比を発生する可変周波数発振手段と、
前記残存データ量検出手段により検出される残存データ量が適正値から外れて上限値または下限値に向かって変化している場合または上限値または下限値となっている場合に限り、前記残存データ量を適正値に戻す方向に前記周波数制御情報を修正する周波数制御手段と
を具備することを特徴とするサンプリング周波数変換装置。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、ジッタ吸収機能を有する伝送制御装置およびこの伝送制御装置を用いたサンプリング周波数変換装置に関する。
【背景技術】
【０００２】
デジタルオーディオ等の分野では、各々独立したクロックに同期して動作する２つの機器間でデータの授受が行われることが多い。そのような場合、前段の機器では同機器のクロックに同期してデータ出力が行われ、後段の機器では同機器のクロックに同期してデータ入力が行われるが、両機器のクロックはジッタを有しているのが一般的である。そこで、両機器間にジッタ吸収のためのＦＩＦＯ（First-In First-Out；先入れ先出し方式のバッファ）が介挿され、データ伝送はこのＦＩＦＯを介して行われることが多い。また、このようなＦＩＦＯの使用に加えて、クロックのジッタに起因してＦＩＦＯがオーバフローあるいはアンダフローを起こさぬようＦＩＦＯ内の読み出し未了の残存データ量を監視し、残存データ量が適正値よりも増加した場合には、例えばＦＩＦＯにおけるデータ出力速度を増加させ、データ残量が適正値よりも低下した場合には、例えばＦＩＦＯにおけるデータ出力速度を低下させるＰＬＬ（Phase Locked Loop）制御が行われる場合もある。また、デジタルオーディオ等の分野では、様々なサンプリング周波数に対応した機器が提供されているため、サンプリング周波数の異なる機器同士が接続される場合も多い。そのような場合、例えば前段の機器から出力されるサンプルデータのサンプリング周波数を後段の機器のサンプリング周波数に合わせるサンプリング周波数変換装置が用いられる。特許文献１は、上述したＦＩＦＯおよびＰＬＬ制御をサンプリング周波数変換装置に適用した技術を開示している。
【特許文献１】特開平１１−５５０７５号公報
【発明の開示】
【発明が解決しようとする課題】
【０００３】
ところで、上述した従来の技術においては、ＦＩＦＯ内の残存データ量の適正値からの差分に応じてＦＩＦＯにおけるデータ出力速度またはデータ入力速度の増減を行っていたため、この差分に応じた速度の増減操作が過剰となり、これにより残存データ量の時間変動を招き、データ伝送動作が不安定になる場合がある。すなわち、データ出力速度等の調整の結果が残存データ量の増加または減少となって現れるまでにはタイムラグがあり、その間も、データ出力速度等の調整が行われるため、残存データ量が安定した状態になっても、残存データ量の変動がやや大きくなってしまうのである。
【０００４】
この発明は上述した事情に鑑みてなされたものであり、ＦＩＦＯ内の残存データ量を適正値に収束させるデータ出力速度またはデータ入力速度の増減操作を適度に行って、残存データ量を速やかに適正値に収束させ、安定したデータ伝送を行うことができる伝送制御装置およびこれを用いたサンプリング周波数変換装置を提供することを目的としている。
【課題を解決するための手段】
【０００５】
この発明は、書き込み要求信号に応じて、新たに入力されるデータを記憶し、読み出し要求信号に応じて、記憶したデータを古いものから順に読み出して出力する先入れ先出し方式の記憶手段と、前記記憶手段に記憶された読み出し未了のデータの残存データ量を検出する残存データ量検出手段と、前記書き込み要求信号または読み出し要求信号の発生を許可する許可信号を周波数制御情報に応じた時間密度で生成する可変周波数発振手段と、前記残存データ量検出手段により検出される残存データ量が適正値から外れて上限値または下限値に向かって変化している場合または上限値または下限値となっている場合に限り、前記残存データ量を適正値に戻す方向に前記周波数制御情報を修正する周波数制御手段とを具備することを特徴とする伝送制御装置を提供する。
また、この発明は、かかる伝送制御装置を用いたサンプリング周波数変換装置を提供する。
かかる発明によれば、残存データ量を適正値に戻すための必要最低限の周波数制御情報の修正しか行われないため、残存データ量の発散を抑制して、残存データ量を速やかに適正値に収束させることができる。従って、安定したデータ伝送が実現される。また、かかる伝送制御装置をサンプリング周波数変換装置に用いることにより、波形歪の少ない高品質のサンプリング周波数変換が実現される。
【発明を実施するための最良の形態】
【０００６】
以下、図面を参照して、本発明の最良な実施の形態について説明する。
＜第１実施形態＞
図１は、この発明の第１実施形態であるサンプリング周波数変換装置の構成を示すブロック図である。このサンプリング周波数変換装置は、大別すると、伝送制御装置１００Ａと、補間部２００Ａと、インタフェース３００Ａにより構成されている。
【０００７】
補間部２００Ａは、図２に示すように、ｎ段のシフトレジスタ２０１と、補間係数発生部２０２と、畳み込み演算部２０３とを有している。ここで、シフトレジスタ２０１は、補間部２００Ａの前段部から第1のサンプリング周波数のデータを順次取り込み、取り込んだ過去n個分のデータ列を補間演算用入力データ列として保持する。
【０００８】
補間係数発生部２０２には、伝送制御装置１００Ａから補間比Δｔが供給される。この補間比Δｔは、補間部２００Ａにおいて生成すべきデータのサンプリング点の位相を示している。さらに詳述すると、本実施形態において、補間部２００Ａは、図３に例示するように、シフトレジスタ２０１に保持された補間演算用入力データ列Ｄ０〜Ｄｎ−１におけるデータＤｍ＋１とデータＤｍとの間に存在するデータＰｋを補間演算により求めるものであり、補間比Δｔは、時間軸上においてデータＤｍ＋１のサンプリング点とデータＤｍのサンプリング点との間のどの位置に補間演算により求めるべきデータＰｋのサンプリング点があるかを示している。補間係数発生部２０２は、例えば各種の補間比Δｔに対応した補間係数列を記憶したＲＯＭであり、伝送制御装置１００Ａから与えられる補間比Δｔに対応した補間係数列ａ０〜ａｎ−１を出力する。
【０００９】
畳み込み演算部２０３は、伝送制御装置１００Ａからメインクロックφに同期したデータ入力許可信号ＩＥが与えられるのに応じて、シフトレジスタ２０１に保持された補間演算用入力データ列Ｄ０〜Ｄｎ−１に補間係数発生部２０２から出力された補間係数列ａ０〜ａｎ−１を畳み込み、第2のサンプリング周波数のデータＰｋを出力する。ここで、メインクロックφは、第１のサンプリング周波数と同一の周波数を有するクロックであるが、伝送制御装置１００Ａは、このメインクロックφに同期したデータ入力許可信号ＩＥを第２のサンプリング周波数に相当する時間密度で補間部２００Ａに供給する。なお、このような時間密度でデータ入力許可信号ＩＥを発生するための構成については後述する。
【００１０】
補間演算により求めるべきデータのサンプリング点は、第２のサンプリング周波数に対応した速度で時間軸上を移動する。この結果、図３に例示するように、現在、補間演算により求めたデータＰｋの次に求めるべきデータＰｋ−１の位相がシフトレジスタ２０１に記憶されたデータＤｍの位相よりも進むことが起こりうる。この場合には、データＰｋの補間演算後、次のデータＰｋ−１の補間演算に備えて、新たなデータＤ−１が前段の装置からシフトレジスタ２０１に取り込まれ、シフトレジスタ２０１内の最も古いデータＤｎ−１は廃棄される。補間演算により求めるデータの位相を逐次進める操作は、現状の補間比Δｔに対し、第１のサンプリング周波数と第２のサンプリング周波数との比に基づいて決定される周波数制御情報ｙを加える、という操作の繰り返しにより行われる。この操作は、伝送制御装置１００Ａにより行われるものであるが、詳細は後述する。
【００１１】
図１における伝送制御装置１００Ａは、以上説明した補間部２００Ａから第２のサンプリング周波数のデータ列を受け取って保存し、これをインタフェース３００Ａからの読み出し要求信号ＲＲに同期したタイミングで出力する装置である。インタフェース３００Ａは、外部機器からのデータ要求信号ＬＲＣＫに応じて、読み出し要求ＲＲを伝送制御装置１００Ａに出力し、これに応じて伝送制御装置１００Ａから出力されるデータをシリアルなビット列ＳＤＯとして後段のＤＳＰに出力する装置である。
【００１２】
次に、伝送制御装置１００Ａの構成について説明する。
ＦＩＦＯ１０は、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）などにより構成される先入れ先出し形式のバッファであり、本実施形態のものは所定ビット数の入力データを最大８個記憶することができる。ＦＩＦＯ１０は、補間部２００Ａから供給されるデータＰｋを順次保存し、古いものから順にインタフェース３００Ａに出力する。書き込み制御部３０は、メインクロックφがＡＮＤゲート１０１を通過して書き込み要求信号ＷＲとして与えられたとき書き込みアドレスおよび書き込み要求信号ＷＥを生成し、ＦＩＦＯ１０に供給する。ＦＩＦＯ１０に供給される入力データＰｋは、書き込み要求信号ＷＥにより、ＦＩＦＯ１０内の書き込みアドレスによって指定されるエリアに書き込まれる。読み出し制御部４０は、インタフェース３００Ａからの読み出し要求信号ＲＲに応じて、読み出しアドレスおよび読み出し要求信号ＲＥを生成し、ＦＩＦＯ１０へ供給する。ここで、読み出しアドレスは、ＦＩＦＯ１０内に残存している読み出し未了の入力データのうち最も古いものを指定するように制御される。この読み出しアドレスにより指定された入力データは、読み出し要求信号ＲＥによりＦＩＦＯ１０から読み出され、インタフェース３００Ａに供給される。
【００１３】
残存データ量検出部５０は、ＡＮＤゲート１０２を介してメインクロックφが与えられたとき、書き込み制御部３０が発生している書き込みアドレスと読み出し制御部４０が発生している読み出しアドレスとの差分、すなわち、現時点においてＦＩＦＯ１０に残存する読み出し未了の入力データの個数である残存データ量ΔＳを検出する回路である。ベクトル検出回路５１は、残存データ量検出部５０から出力される残存データ量ΔＳの時間的変化を表すベクトルを検出する回路である。
【００１４】
ここで、ベクトル検出回路５１は、３個のポインタＶａｌｉｄ＿０、Ｖａｌｉｄ＿１およびＶａｌｉｄ＿ｐｔｒを有している。ポインタＶａｌｉｄ＿ｐｔｒには、現在の残存データ量ΔＳが格納される。このポインタＶａｌｉｄ＿ｐｔｒの値は、ポインタＶａｌｉｄ＿０と異なる値になると、ポインタＶａｌｉｄ＿０に代入され、それまでのポインタＶａｌｉｄ＿０の値はポインタＶａｌｉｄ＿１に代入される。
【００１５】
従って、一般的には、Ｖａｌｉｄ＿０＞Ｖａｌｉｄ＿１の関係にあれば、ＦＩＦＯ１０の残存データ量ΔＳは増加中であり、Ｖａｌｉｄ＿０＜Ｖａｌｉｄ＿１であれば、ＦＩＦＯ１０の残存データ量ΔＳは減少中であるといえる。しかし、残存データ量ΔＳが増加状態から減少状態に転じたり、減少状態から増加状態に転じたりすることがあり、そのような変化は、ポインタＶａｌｉｄ＿０およびＶａｌｉｄ＿１のみから判断することはできない。そこで、本実施形態において、ベクトル検出回路５１は、３個のポインタＶａｌｉｄ＿０、Ｖａｌｉｄ＿１およびＶａｌｉｄ＿ｐｔｒを参照し、残存データ量ΔＳの時間的変化の態様を示すベクトルを検出するようにしている。
【００１６】
残存データ量検出部５０から出力される残存データ量ΔＳは、ＦＩＦＯ１０内のデータの残存データ量を示すと同時に、最後に書き込まれたデータＰｋと、読み出し要求信号ＲＲによって最後に読み出されたデータＰｋとの位相差を示している。そして、上述した読み出し制御部４０と、書き込み制御部３０と、残存データ量検出部５０と、ベクトル検出回路５１と、周波数制御部６０と、可変周波数発振部７０は、この位相差を適正値に収束させるＰＬＬ８０を構成している。
【００１７】
周波数制御部６０は、変換部６１、全加算器６２、ラッチ回路６３およびリミタ６４から構成されている。変換部６１は、残存データ量ΔＳを修正量ΔＴに変換するテーブルを有している。変換部６１は、このテーブルとベクトル検出回路５１からの指示に基づき、残存データ量検出部５０から出力される現在の残存データ量ΔＳを修正量ΔＴに変換する。図４は、このベクトル検出回路５１と変換部６１とにより行われる変換内容を示している。また、図５（ａ）〜（ｄ）は、「０」以外の修正量ΔＴが変換部６１から出力される場合の残存データ量ΔＳの変化の態様を示している。
【００１８】
図５（ａ）に示すように、残存データ量ΔＳが増加中（Ｖａｌｉｄ＿1＜Ｖａｌｉｄ＿０＜Ｖａｌｉｄ＿ｐｔｒ）であり、かつ、残存データ量ΔＳの現在値であるポインタＶａｌｉｄ＿ｐｔｒの値が適正値である「４」を越えている場合（図４に示す例ではＶａｌｉｄ＿ｐｔｒ＝５および６）、ベクトル検出回路５１は、周波数制御情報を増加させる修正量ΔＴの出力指示を変換部６１に送る。この結果、変換部６１は、現在の残存データ量ΔＳと適正値「４」との差分に相当する大きさを有する正の修正量ΔＴを出力する。また、図５（ｃ）に示すように、現在の残存データ量ΔＳが上限である「７」に達している場合には、その時点までの残存データ量ΔＳの変化の態様とは無関係に、変換部６１は、現在の残存データ量ΔＳと適正値「４」との差分に相当する大きさを有する正の修正量ΔＴ（この例の場合、ΔＴ＝＋３）を出力する。従って、残存データ量ΔＳとして上限値「７」が検出されて正の修正量ΔＴ＝＋３が出力された後、再び上限値「７」が検出された場合には、残存データ量ΔＳは増加中であるとはいえないが、残存データ量ΔＳが上限値「７」であることのみをもって、正の修正量ΔＴ＝＋３が再び出力される。
【００１９】
一方、図５（ｂ）に示すように、残存データ量ΔＳが減少中（Ｖａｌｉｄ＿1＞Ｖａｌｉｄ＿０＞Ｖａｌｉｄ＿ｐｔｒ）であり、かつ、残存データ量ΔＳの現在値であるポインタＶａｌｉｄ＿ｐｔｒの値が適正値である「４」より少ない場合（図４に示す例ではＶａｌｉｄ＿ｐｔｒ＝３、２および１）、ベクトル検出回路５１は、周波数制御情報を減少させる修正量ΔＴの出力指示を変換部６１に送る。この結果、変換部６１は、現在の残存データ量ΔＳと適正値「４」との差分に相当する大きさを有する負の修正量ΔＴを出力する。また、図５（ｄ）に示すように、現在の残存データ量ΔＳが下限である「０」に達している場合には、その時点までの残存データ量ΔＳの変化の態様とは無関係に、変換部６１は、負の修正量ΔＴ（この例の場合、ΔＴ＝−３）を出力する。
【００２０】
そして、残存データ量ΔＳが以上の挙動以外の挙動を示している場合、ベクトル検出回路５１は、周波数制御情報の現状維持を変換部６１に指示する。この場合、変換部６１は、修正量ΔＴとして「０」を出力する。
以上が残存データ量検出部５０、ベクトル検出回路５１および変換部６１によって行われる処理の詳細である。
【００２１】
全加算器６２およびラッチ回路６３は、修正量ΔＴに基づいて周波数制御情報ｙを修正する手段を構成している。まず、全加算器６２は、ラッチ回路６３に保持された現在の周波数制御情報ｙと変換部６１から供給される修正量ΔＴとに基づき、下記式（１）に示す演算を行う。全加算器６２の出力データである新たな周波数制御情報ｙは、ＡＮＤゲート１０３を介してメインクロックφがラッチ回路６３に与えられるとき、ラッチ回路６３によりラッチされ、リミタ６４によって、ある上限値以下に制限され、可変周波数発振部７０に供給される。
ｙ←ｙ＋ΔＴ・・・・・（１）
ラッチ回路６３は、初期設定が可能な構成となっている。このサンプリング周波数変換装置が動作を開始するとき、ラッチ回路６３には、周波数制御情報の初期値ｙとして次式で示される値が設定される。
ｙ＝定数×（ｆ１／ｆ２）      ・・・・・（２）
ここで、ｆ１はサンプリング周波数変換前の第１のサンプリング周波数、ｆ２はサンプリング周波数変換後の第２のサンプリング周波数である。
【００２２】
可変周波数発振部７０は、全加算器７１と、ラッチ回路７２と、ＡＮＤゲート７３と、ダウンカウンタ７４と、イネーブル信号発生回路７５と、ラッチ回路７６とにより構成されている。全加算器７１は、周波数制御部６０から出力される周波数制御情報ｙとラッチ回路７２の出力データの小数部である補間比Δｔとを加算して出力する。この周波数制御情報ｙと補間比Δｔとの加算により、上述した「補間演算により求めるデータの位相を逐次進める操作」が行われる。ラッチ回路７２は、ＡＮＤゲート７３を介してメインクロックφが与えられたとき、全加算器７１の出力データをラッチして出力する。ダウンカウンタ７４には、このラッチ回路７２の出力データの整数部から「１」を減じた値がプリセットデータとして与えられる。ダウンカウンタ７４は、後述するイネーブル信号ＥＮがアサートされているとき、メインクロックφに同期して、このプリセットデータをカウント値として取り込み、以後、メインクロックφによるダウンカウントを行う。イネーブル信号発生回路７５は、例えばラッチ回路により構成されており、ダウンカウンタ７４のカウント値が「０」になったとき、メインクロックφに同期してイネーブル信号ＥＮをアサートする。なお、イネーブル信号発生回路７５は、上述したラッチ回路６３の初期設定が行われるときに同時に初期設定され、この初期設定の際にはダウンカウンタ７４のカウント値の如何に拘わらずイネーブル信号ＥＮをアサートするように構成されている。イネーブル信号ＥＮがアサートされることにより、ラッチ回路７６は、ラッチ回路７２の出力データの小数部をラッチして補間比Δｔとして補間部２００Ａに出力する。また、イネーブル信号ＥＮがアサートされているとき、ＡＮＤゲート１０１は、メインクロックφを書き込み要求信号ＷＲとして書き込み制御部３０に出力し、ＡＮＤゲート１０４はメインクロックφをデータ入力許可信号ＩＥとして補間部２００Ａに出力する。さらにＡＮＤゲート７３、１０２および１０３は、イネーブル信号ＥＮがアサートされているときに、ラッチ回路７２、残存データ量検出部５０およびラッチ回路６３にメインクロックφを供給する。ＡＮＤゲート７３を介してラッチ回路７２にメインクロックφが与えられたとき、ラッチ回路７２に格納されるデータの整数部が２以上増加する場合がある。これは、図３を参照して説明したように、この次に補間部２００Ａにおいて求めるべきデータの位相が、現在、シフトレジスタ２０１に保持されているデータＤｍの位相よりも進んでいないことを意味する。従って、その場合にはダウンカウンタ７４により数クロックのカウントダウンが行われた後、補間部２００Ａでは補間演算に必要な新たなデータを前段の装置からシフトレジスタ２０１に取り込む動作が行われる。
以上が伝送制御装置１００Ａの構成の詳細である。
【００２３】
次に本実施形態の動作を説明する。
このサンプリング周波数変換装置の動作が開始されるとき、初期設定動作が行われる。この初期設定動作では、伝送制御装置１００Ａ内のラッチ回路６３に前掲式（２）により与えられる周波数制御情報の初期値ｙが書き込まれる。また、初期設定動作では、イネーブル信号発生回路７５によってイネーブル信号ＥＮがアサートされる。このため、ラッチ回路６３に書き込まれた周波数制御情報ｙは、リミタ６４および全加算器７１を介してラッチ回路７２に書き込まれ、このラッチ回路７２に書き込まれた周波数制御情報ｙの整数部は、ダウンカウンタ７４にプリセットされる。その後、ダウンカウンタ７４では、メインクロックφに基づくダウンカウントが行われる。そして、ダウンカウンタ７４のカウント値が「０」になると、イネーブル信号発生回路７５によってイネーブル信号ＥＮがアサートされる。この結果、メインクロックφがＡＮＤゲート７３を介してラッチ回路７２に供給され、その時点における全加算器７１の出力データ、すなわち、周波数制御部６０から出力される周波数制御情報とラッチ回路７２の出力データの小数部との加算結果がラッチ回路７２に書き込まれる。そして、ラッチ回路７２の出力データの整数部はダウンカウンタ７４にプリセットされ、小数部は補間比Δｔとしてラッチ回路７６に書き込まれる。このような動作が繰り返される結果、周波数制御情報に応じた平均的な時間密度でイネーブル信号ＥＮが発生されるとともに周波数制御情報に応じた速度で変化する補間比Δｔが発生される。
【００２４】
メインクロックφは、イネーブル信号ＥＮが発生される度に、ＡＮＤゲート１０１および１０４を各々通過し、書き込み要求信号ＷＲおよびデータ入力許可信号ＩＥとして書き込み制御部３０および補間部２００Ａに各々与えられる。また、メインクロックφは、イネーブル信号ＥＮが発生される度に、ＡＮＤゲート１０２〜１０３を通過し、残存データ量検出部５０およびラッチ回路６３に与えられる。
【００２５】
補間部２００Ａでは、データ入力許可信号ＩＥが与えられたとき、その時点において記憶されている過去ｎ個の入力データに補間比Δｔに応じた補間係数列が畳み込まれ、この補間演算の結果は、第2のサンプリング周波数のデータＰｋとして出力される。
【００２６】
書き込み制御部３０は、書き込み要求信号ＷＲが与えられたとき、書き込みアドレスをインクリメントして、書き込み要求信号ＷＥをＦＩＦＯ１０に供給する。この結果、補間部２００Ａの出力データがＦＩＦＯ１０における書き込みアドレスにより指定されるエリアに書き込まれる。
【００２７】
一方、インタフェース３００Ａは、外部機器からクロックＬＲＣＫが供給されるのに応じて、読み出し要求信号ＲＲを出力する。読み出し制御部４０は、この読み出し要求信号ＲＲに応じて、ＦＩＦＯ１０に記憶された最も古いデータを指定する読み出しアドレスを読み出し要求信号ＲＥとともにＦＩＦＯ１０に供給する。この結果、最も古いデータがＦＩＦＯ１０から読み出され、インタフェース３００Ａに供給される。
【００２８】
残存データ量検出部５０は、イネーブル信号ＥＮがアサートされ、ＡＮＤゲート１０２を介してメインクロックφが与えられたとき、その時点においてＦＩＦＯ１０に最後に供給された書き込みアドレスと読み出しアドレスとの差分を残存データ量ΔＳとして求める。この残存データ量ΔＳを求める動作は、イネーブル信号ＥＮがアサートされる度に行われる。残存データ量検出部５０により求められた残存データ量ΔＳは、ポインタＶａｌｉｄ＿ｐｔｒに格納される。そして、ポインタＶａｌｉｄ＿ｐｔｒの値がポインタＶａｌｉｄ＿０と異なる値になると、ポインタＶａｌｉｄ＿ｐｔｒの値がポインタＶａｌｉｄ＿０に代入され、それまでのポインタＶａｌｉｄ＿０の値はポインタＶａｌｉｄ＿１に代入される。
【００２９】
ベクトル検出回路５１は、ポインタＶａｌｉｄ＿ｐｔｒ、Ｖａｌｉｄ＿０およびＶａｉｌｄ＿１に基づき、周波数制御情報を増加させるか減少させるか現状値を維持させるかの指示を変換部６１に送る。変換部６１は、この指示に従い、残存データ量検出部５０から供給される残存データ量ΔＳ（＝Ｖａｌｉｄ＿ｐｔｒ）を修正量ΔＴに変換する。この結果、次のような修正量ΔＴが出力される。まず、残存データ量ΔＳが増加中であり、かつ、残存データ量ΔＳの現在値が適正値「４」を越えている場合には、現在の残存データ量ΔＳと適正値「４」との差分に相当する大きさを有する正の修正量ΔＴが出力される。また、残存データ量ΔＳが上限値「７」である場合には、正の修正量「３」が出力される。一方、残存データ量ΔＳが減少中であり、かつ、残存データ量ΔＳの現在値が適正値「４」より少ない場合には、現在の残存データ量ΔＳと適正値「４」との差分に相当する大きさを有する負の修正量ΔＴが出力される。また、残存データ量ΔＳが下限値「０」である場合には、負の修正量「−３」が出力される。そして、これら以外の場合には修正量ΔＴとして「０」が出力される。
【００３０】
このようにして出力される修正量ΔＴとラッチ回路６３に記憶された現在の周波数制御情報ｙとが全加算器６２により加算され、ＡＮＤゲート１０３からのメインクロックφにより、新たな周波数制御情報ｙとしてラッチ回路６３に書き込まれる。この結果、正の修正量ΔＴが出力されているときには周波数制御情報ｙが増加し、負の修正量ΔＴが出力されているときには周波数制御情報ｙが減少し、修正量ΔＴとして「０」が出力されているときには周波数制御情報ｙは現状値を維持する。
【００３１】
周波数制御部６０では、このように修正量ΔＴに基づく周波数制御情報ｙの増減の調整が行われ、可変周波数発振部７０では、このような調整を経た周波数制御情報ｙに基づきイネーブル信号ＥＮが出力される。ここで、周波数制御情報ｙが増加する場合には、ダウンカウンタ７４がプリセットされてからカウント値が「０」になるまでに必要な平均的なメインクロックφの個数が増加し、イネーブル信号ＥＮの平均的な時間密度が減少する。このため、ＦＩＦＯ１０に対するデータの書き込み速度が低下する。逆に、周波数制御情報ｙが減少する場合には、イネーブル信号ＥＮの平均的な時間密度が増加するため、ＦＩＦＯ１０に対するデータの書き込み速度が上昇する。
【００３２】
そして、ＦＩＦＯ１０におけるデータの書き込み速度（すなわち、イネーブル信号ＥＮの周波数）が読み出し速度（すなわち、読み出し要求信号ＲＲの周波数）よりも低い場合には残存データ量ΔＳが減少し、この減少過程において負の修正量ΔＴが発生されると、周波数制御情報ｙが減少し、データの書き込み速度は上昇することとなる。逆にＦＩＦＯ１０におけるデータの書き込み速度が読み出し速度よりも高い場合には残存データ量ΔＳが増加し、この増加過程において正の修正量ΔＴが発生されると、周波数制御情報ｙが増加し、データの書き込み速度は低下することとなる。このように残存データ量ΔＳの増減に応じたＰＬＬ制御が行われる結果、ＦＩＦＯ１０における書き込み速度は読み出し速度に追従し、ＦＩＦＯ１０内の残存データ量ΔＳは適正値「４」に収束することとなる。
【００３３】
図６は、本実施形態における残存データ量ΔＳの時間的変化の例を示すタイムチャートである。この図において、符号Ａ１によって示す区間では、残存データ量ΔＳが順次増加し、ΔＳ＝「６」となった時点において、Ｖａｌｉｄ＿１＜Ｖａｌｉｄ＿０＜Ｖａｌｉｄ＿ｐｔｒであり、かつ、Ｖａｌｉｄ＿ｐｔｒが適正値「４」より大きいという条件を満たしている。従って、この時点において、周波数制御情報ｙを増加させてＦＩＦＯ１０のデータ入力速度を低下させる正の修正量ΔＴ＝Ｖａｌｉｄ＿ｐｔｒ−適正値＝＋２が発生される。その後、正の修正量または負の修正量を発生させる条件が満たされないため、修正量ΔＴとして「０」が発生されるが、符号Ａ２によって示す時点において残存データ量ΔＳが上限値である「７」に達する。この時点において正の修正量ΔＴを発生する条件が満たされるため、ＦＩＦＯ１０のデータ入力速度を低下させる正の修正量ΔＴ＝Ｖａｌｉｄ＿ｐｔｒ−適正値＝＋３が発生される。
【００３４】
図示の例では、この２度に亙る正の修正量ΔＴの発生により、適正値「４」から上方に向けて発散していた残存データ量ΔＳが適正値「４」に向けて戻される。その後、符号Ａ３によって示す区間では、符号Ａ１によって示す区間よりも緩やかな時間勾配で、残存データ量ΔＳが低下し、ΔＳ＝「３」となった時点において、Ｖａｌｉｄ＿１＞Ｖａｌｉｄ＿０＞Ｖａｌｉｄ＿ｐｔｒであり、かつ、Ｖａｌｉｄ＿ｐｔｒが適正値「４」より小さいという条件が満たされる。従って、この時点において、周波数制御情報ｙを減少させてＦＩＦＯ１０のデータ入力速度を上昇させる負の修正量ΔＴ＝Ｖａｌｉｄ＿ｐｔｒ−適正値＝−１が発生される。このとき発生される修正量ΔＴの絶対値は、先の符号Ａ１やＡ２により示されるタイミングにおいて発生された修正量ΔＴの絶対値よりも小さい。従って、このとき残存データ量ΔＳを適正値「４」に向けて戻す作用の強さ（以下、便宜上、適正値への復帰力という）は、符号Ａ１の区間の終了タイミングや符号Ａ２のタイミングにおいて発生される適正値への復帰力よりも弱い。しかし、符号Ａ３によって示す区間では、既に残存データ量ΔＳの変動の振幅は十分に減衰しているので、適正値への復帰力は、この程度の微妙なものであることが望まれる。何故ならば、残存データ量ΔＳの変動が十分に減衰した場合には、適正値への復帰力が過剰であると、却って残存データ量ΔＳを適正値「４」から発散させることとなるからである。
【００３５】
符号Ａ３によって示す区間以降、残存データ量ΔＳは、適正値「４」±１の範囲の振動を繰り返す（符号Ａ３およびＡ４参照）。これは、ＦＩＦＯ１０におけるデータの入力と出力のタイミングがずれているため、ＦＩＦＯ１０にデータが１個入力されたときにΔＳ＝適正値「４」＋１、ＦＩＦＯ１０からデータが１個出力されたときにΔＳ＝適正値「４」−１となるものである。この状態は、ＦＩＦＯ１０におけるデータの入力速度がデータの出力速度に完全に同期しており、ＦＩＦＯ１０の残存データ量ΔＳが安定した状態であるといえる。
【００３６】
図６には示されていないが、例えばインタフェース３００Ａから供給される読み出し要求信号ＲＲの周波数が本来想定していた第２のサンプリング周波数ｆ２からずれている等の理由により周波数制御情報の初期設定値が適切な値でない場合には、残存データ量ΔＳが適正値から完全に外れ、残存データ量ΔＳとして、複数回連続して上限値「７」または下限値「０」が検出されることが起こりうる。この場合には、残存データ量ΔＳとして上限値「７」（下限値「０」）が検出される度に、正の修正量ΔＴ＝＋３（負の修正量ΔＴ＝−３）が発生される。これにより、周波数制御情報は、読み出し要求信号ＲＲの周波数に見合った適切な値に急速に近づき、以後、図６に例示するような動作により残存データ量ΔＳは適正値に収束することとなる。
【００３７】
以上のように、本実施形態によれば、残存データ量ΔＳが適正値から発散しようとする挙動を示している場合および残存データ量ΔＳが完全に発散しているときのみ残存データ量ΔＳを適正値に戻す方向の正または負の修正量ΔＴが発生され、それ以外の場合には修正量ΔＴとして「０」が発生される。このように残存データ量ΔＳを適正値に戻すための修正量ΔＴが必要な期間のみ発生されるため、残存データ量ΔＳの時間的変動を発生させることなく速やかに残存データ量ΔＳを適正値に収束させることができる。よって、波形歪の発生が少ない高品質のデータ伝送を実現することができる。
【００３８】
＜第２実施形態＞
図７は、この発明の第２実施形態であるサンプリング周波数変換装置の構成を示すブロック図である。本実施形態では、伝送制御装置１００Ｂの前段にインタフェース３００Ｂが、後段に補間部２００Ｂが設けられている。インタフェース３００Ｂは、伝送制御装置１００Ｂに対し、書き込み要求信号ＷＲとともに第1のサンプリング周波数のデータＤｉｎを供給する。補間部２００Ｂは、第１実施形態における補間部２００Ａと同様な構成を有する。この補間部２００Ｂは、内蔵のシフトレジスタにＦＩＦＯ１０から取り込んだ過去一定個数のデータ列を保持し、上記第１実施形態と同様、ラッチ回路７６から供給される補間比Δｔに応じた補間用係数列をこのデータ列に畳み込み、この畳み込み演算の結果である出力データＰｋを、第２のサンプリング周波数を有する出力クロックＣＫｏｕｔに同期したタイミングで出力する。伝送制御装置１００Ｂの構成は、次の点において第１実施形態に係る伝送制御装置１００Ａと異なる。まず、書き込み制御部３０には、インタフェース３００Ｂから第１のサンプリング周波数と同一周波数の書き込み要求信号ＷＲが直接供給される。また、第１実施形態におけるＡＮＤゲート１０１および１０４に代えて、読み出し要求信号ＲＲを発生する読み出し要求信号発生部１０５が設けられており、イネーブル信号発生回路７５から出力されるイネーブル信号ＥＮがこの読み出し要求信号発生部１０５と補間部２００Ｂに供給される。ここで、補間部２００Ｂに供給されるイネーブル信号ＥＮは、第２のサンプリング周波数のデータの補間演算および出力を許可するデータ出力許可信号としての役割を果たす。それ以外は上記第１実施形態と同様である。
【００３９】
伝送制御装置１００Ｂでは、第２のサンプリング周波数と同一周波数のメインクロックφに同期して、残存データ量ΔＳを安定化するためのＰＬＬ制御が行われ、この制御の過程において、メインクロックφに同期し、かつ、第１のサンプリング周波数に対応した時間密度でイネーブル信号ＥＮがアサートされる。補間部２００Ｂは、イネーブル信号ＥＮがアサートされた場合に、出力クロックＣＫｏｕｔに同期したタイミングで読み出し要求許可信号ＲＲＥを出力する。読み出し要求信号発生部１０５は、イネーブル信号ＥＮがアサートされた後、読み出し要求許可信号ＲＲＥが出力された場合に、読み出し要求信号ＲＲを読み出し制御部４０に出力する。これにより、読み出し制御部４０は、読み出しアドレスを「１」だけ増加させて、読み出し要求信号ＲＥを出力する。この結果、ＦＩＦＯ１０における読み出し未了のデータのうち最も古いものが読み出され、補間部２００Ｂに供給される。補間部２００Ｂでは、このようにしてＦＩＦＯ１０から供給されるデータがシフトレジスタの初段に書き込まれ、シフトレジスタ内の既存のデータは順次後段にシフトされ、最終段のデータは廃棄される。そして、出力クロックＣＫｏｕｔの発生に合わせて、シフトレジスタに保持されたデータ列と補間比Δｔに応じた補間係数列とを用いた補間演算が行われ、演算結果である第２のサンプリング周波数のデータが出力クロックＣＫｏｕｔに同期して出力される。
【００４０】
上記第１実施形態では、ＦＩＦＯ１０におけるデータ入力速度をデータ出力速度に追従させるためのＰＬＬ制御が行われたが、本実施形態ではＦＩＦＯ１０におけるデータ出力速度をデータ入力速度に追従させるためのＰＬＬ制御が行われる。このＰＬＬ制御は、上記第１実施形態と同様な方法により行われる。従って、本実施形態においても上記第１実施形態と同様な効果が得られる。
【図面の簡単な説明】
【００４１】
【図１】この発明の第１実施形態であるサンプリング周波数変換装置の構成を示すブロック図である。
【図２】同実施形態における補間部の構成例を示すブロック図である。
【図３】同補間部の動作を説明する波形図である。
【図４】同実施形態における修正量の発生方法を示す図である。
【図５】同実施形態において修正量として「０」以外の値が発生される場合を示す図である。
【図６】同実施形態における残存データ量の時間的変化の例を示すタイムチャートである。
【図７】この発明の第２実施形態であるサンプリング周波数変換装置の構成を示すブロック図である。
【符号の説明】
【００４２】
１００Ａ，１００Ｂ…伝送制御装置、２００Ａ，２００Ｂ…補間部、２０１…シフトレジスタ、２０２…補間係数発生部、２０１…畳み込み演算部、３００Ａ，３００Ｂ…インタフェース、１０…ＦＩＦＯ、３０…書き込み制御部、４０…読み出し制御部、５０・・・残存データ量検出部、５１…ベクトル検出回路、６０…周波数制御部、７０…可変周波数発振部、８０…ＰＬＬ（位相同期ループ）。
【図１】
2006238044.tif 000003
【図２】
2006238044.tif 000004
【図３】
2006238044.tif 000005
【図４】
2006238044.tif 000006
【図５】
2006238044.tif 000007
【図６】
2006238044.tif 000008
【図７】
2006238044.tif 000009