(57)【特許請求の範囲】
【請求項１】
外部機器からデジタルデータバスを介してサイクルスタートパケット、同期型パケット及び非同期型パケットを受信するとともに、デジタルデータをサイクルスタートパケット、同期型パケット及び非同期型パケットとしてデジタルデータバスに送信するデータ送受信装置において、
外部機器からビットストリームがパケット化されたサイクルスタートパケット、同期型パケット及び非同期型パケットを受信するための受信手段と、
時刻情報を出力するサイクルタイマーと、
上記受信手段により受信されたサイクルスタートパケットから上記サイクルタイマーを補正する情報を抽出し、該情報に基づいて上記サイクルタイマーの時刻情報を補正する手段と、
上記受信手段により受信された同期型パケットを一時蓄積する蓄積手段と、
上記同期型パケットに付加された時刻情報を抽出する手段と、
上記抽出した時刻情報に所定値を加算した時刻情報と上記サイクルタイマーからの時刻情報とを比較する手段と、
上記比較した結果を用いて上記蓄積手段からのビットストリームの読み出し速度を制御する手段と、
送信すべきサイクルスタートパケットに送信先のサイクルタイマーを補正する情報を付加する手段と、
送信すべき同期型パケットに上記サイクルタイマーからの時刻情報を付加する手段と、
上記送信すべき同期型パケットにパケット長を付加する手段と、
上記送信すべきサイクルスタートパケット、上記送信すべき同期型パケット及び送信すべき非同期型パケットを上記デジタルデータバスに送信する手段とを有し、
上記サイクルスタートパケットを送信後、同期型パケットを先に送信し、送信すべき同期型パケットを全て送信した後、次のサイクルスタートパケットを送信するまで上記非同期型パケットを送信することを特徴とするデータ送受信装置。
【発明の詳細な説明】
【０００１】
【産業上の利用分野】
本発明は、ＩＥＥＥ−Ｐ１３９４に準拠した通信制御バス（以下「Ｐ１３９４シリアルバス」という。）を用いて、一定速度のビットストリームをパケット化して伝送する場合に用いて好適なデータ送受信装置に関する。
【０００２】
【従来の技術】
従来、ビットストリームをパケット化して伝送する場合、送信側では所定のフォーマットでパケット化したビットストリームの先頭にヘッダを付与し、受信側ではパケットのヘッダの位置を検出しこのヘッダの位置情報を用いて送信側と同期をとっていた。
【０００３】
【発明が解決しようとする課題】
しかし、前記従来の方法はビットストリームのフォーマットが変わる度にヘッダの位置を検出する手段を変えなければならず、したがって、アプリケーションに依存しているという問題があった。
【０００４】
本発明は、このような問題点を解決するためになされたものであって、任意の速度、フォーマットのビットストリームを伝送する際に、アプリケーションに依存することなく、送信側のビットストリームと受信側のビットストリームの速度を合わせることのできるデータ送受信装置を提供することを目的とする。
【０００７】
【課題を解決するための手段】
前記課題を解決するために、本発明に係るデータ送受信装置は、外部機器からデジタルデータバスを介してサイクルスタートパケット、同期型パケット及び非同期型パケットを受信するとともに、デジタルデータをサイクルスタートパケット、同期型パケット及び非同期型パケットとしてデジタルデータバスに送信するデータ送受信装置において、外部機器からビットストリームがパケット化されたサイクルスタートパケット、同期型パケット及び非同期型パケットを受信するための受信手段と、時刻情報を出力するサイクルタイマーと、上記受信手段により受信されたサイクルスタートパケットから上記サイクルタイマーを補正する情報を抽出し、該情報に基づいて上記サイクルタイマーの時刻情報を補正する手段と、上記受信手段により受信された同期型パケットを一時蓄積する蓄積手段と、上記同期型パケットに付加された時刻情報を抽出する手段と、上記抽出した時刻情報に所定値を加算した時刻情報と上記サイクルタイマーからの時刻情報とを比較する手段と、上記比較した結果を用いて上記蓄積手段からのビットストリームの読み出し速度を制御する手段と、送信すべきサイクルスタートパケットに送信先のサイクルタイマーを補正する情報を付加する手段と、送信すべき同期型パケットに上記サイクルタイマーからの時刻情報を付加する手段と、上記送信すべき同期型パケットにパケット長を付加する手段と、上記送信すべきサイクルスタートパケット、上記送信すべき同期型パケット及び送信すべき非同期型パケットを上記デジタルデータバスに送信する手段とを有し、上記サイクルスタートパケットを送信後、同期型パケットを先に送信し、送信すべき同期型パケットを全て送信した後、次のサイクルスタートパケットを送信するまで上記非同期型パケットを送信することを特徴とする。
【０００９】
【作用】
本発明によれば、受信側では、送信側でパケットに付加したビットストリームの先頭ビットの位置の時刻を抽出し、この抽出した時刻を用いて受信側のビットストリームを一時蓄積手段から読み出す速度を制御することにより、送信側と受信側のビットストリームの速度を合わせることができる。
【００１０】
受信側のビットストリームの読み出し速度の制御は、受信したパケットから抽出した先頭ビットの位置の時刻に所定値を加算した時刻でのビットストリームの位置を受信側のビットストリームの先頭ビットの位置に定め、例えばこの先頭ビットの位置の間隔の差分が０になるようにする。
【００１１】
また、受信側のビットストリームの読み出し速度の制御は、送信側で付加されたビットストリームのビットの位置を基に受信側の先頭ビットの位置を定め、この先頭ビットの位置を一時蓄積手段から読み出した時刻とパケットから抽出した先頭ビットの位置の時刻とに基づいて行う。このようにすると、送信側のビットストリームと受信側のビットストリームの速度を合わせ、かつ位相を一定の関係に制御することかできる。
【００１２】
【実施例】
以下本発明の実施例について、〔１〕Ｐ１３９４シリアルバスを用いた通信システム、〔２〕本発明の第１実施例、〔３〕本発明の第２実施例、の順に詳細に説明する。
【００１３】
〔１〕Ｐ１３９４シリアルバスを用いた通信システム
本発明を４Ｍｂｐｓ  のビットストリームをＰ１３９４シリアルバスに乗せて伝送する場合の２つの実施例について説明する。まず、２つの実施例に共通であるＰ１３９４シリアルバスを用いた通信システムについて説明する。
【００１４】
図１０にこのような通信システムの例を示す。この通信システムは４台のデジタルビデオテープレコーダ（ＶＴＲ１〜４）、１台のデジタルカムコーダ（ＣＡＭ）、１台の編集機、及び１台のコンピュータを備えている。そして、各機器の間はＰ１３９４シリアルバスのケーブルにより接続されている。各機器はＰ１３９４シリアルバスのケーブルから入力される情報信号及び制御信号を中継する機能を持っているので、この通信システムは各機器が共通のＰ１３９４シリアルバスに接続されている通信システムと等価である。
【００１５】
バスを共有している機器におけるデータ伝送は、図１１のように所定の通信サイクル（例えば１２５μｓｅｃ）  毎に時分割多重によって行なわれる。バス上における通信サイクルの管理はサイクルマスターと呼ばれる所定の機器により行われ、サイクルマスターが通信サイクルの開始時であることを示す同期パケット（サイクルスタートパケット）をバス上の他の機器へ伝送することによってその通信サイクルにおけるデータ伝送が開始される。なお、サイクルマスターはＰ１３９４シリアルバスに各機器を接続して通信システムを構成すると、ＩＥＥＥ−Ｐ１３９４で規定する手法により自動的に決定される。
【００１６】
一通信サイクル中におけるデータ伝送の形態は、ビデオデータやオーディオデータなどの同期型（Ｉｓｏｃｈｒｏｎｏｕｓ）  データと、接続制御コマンド等の非同期型（Ａｓｙｎｃｈｒｏｎｏｕｓ）データの２種類である。そして、同期型データパケットが非同期型データパケットより先に伝送される。同期型データパケットそれぞれにチャンネル番号１，２，３，・・・Ｎを付けることにより、複数の同期型データを区別することができる。送信すべき全てのチャンネルの同期型データパケットの送信が終了した後、次のサイクルスタートパケットまでの期間が非同期型データパケットの伝送に使用される。
【００１７】
〔２〕本発明の第１実施例
２−１）送信側のタイミング
まず図１を参照しながら第１実施例における送信側のタイミングについて説明する。この図で、（ａ）は入力されるビットストリーム、（ｂ）は４ＭＨｚのクロックをカウントするカウンタの出力値、（ｃ）は送信される同期型データパケットを示す。なお、本発明の対象となるパケットは同期型データパケットだけなので、以下単にパケットと呼ぶことにする。
【００１８】
入力されるビットストリームはＩＥＥＥ−Ｐ１３９４の仕様で決められているように、１２５μｓ毎にパケット化され伝送される。ここでは、期間Ｔ１で後述するＦＩＦＯに書かれたビットストリームはパケットＰ１として、期間Ｔ２でＦＩＦＯに書かれたビットストリームはパケットＰ２として伝送される。
【００１９】
本実施例では、入力されるビットストリームを仮想的に一定の周期で繰り返すビット列の集合と考え、すなわち現実には一定の周期を持っていないか他の周期で繰り返しているビットストリームを一定の周期で繰り返しているビット列の集合とみなし、仮想的にフレーミングをしている。このフレーミングを行うために、入力されるビットレートと同じ速度で動作するカウンタを用いている。このカウンタの出力値が図１の（ｂ）である。
【００２０】
また、パケットにはシンクタイム（Ｓｙｎｃ  Ｔｉｍｅ）  が先頭に付いているものと、付いていないものがある。これは、そのパケットで伝送されるビットストリームの中に、ビットストリームの先頭ビットが含まれているかどうかに依存する。本実施例ではカウンタの出力値が０の位置をフレームの先頭とした。
【００２１】
シンクタイムとはフレームの先頭ビットにおける、Ｐ１３９４のサイクルタイマー（Ｃｙｃｌｅ  Ｔｉｍｅｒ）  が示す時刻のことである。このサイクルタイマーは、各機器内に設けられており、所定の周期（例、１２８秒）で一周する時刻を持っている。
【００２２】
送信側と受信側のクロックは独立しており、同期をしていないため、クロックの誤差が累積し、送信側でビットストリームをＦＩＦＯに書き込む速度と、受信側でビットストリームをＦＩＦＯから読み出す速度が少しづつずれてくる。これを調節するための情報としてシンクタイムを用いる。この調節方法の詳細については後述する。
【００２３】
本実施例の伝送方式はアプリケーションに依存しないため、ビットストリームの内容を解析して先頭ビットを決めることはできない。そこで、ビットストリームと同じ速度で一づつ増加するカウンタを用意し、このカウンタの出力値が０になった位置を先頭ビットとした。このカウンタはＰ１３９４の一周期である１２５μｓよりも長くなくてはならない。これは一つのパケット中に、二つ以上のシンクタイムを書き込むことができないからである。本実施例では一周期の長さが２５０μｓのカウンタ、例えば４ＭＨｚのクロックを１０００カウントしたら一周するカウンタを用いた。
【００２４】
図１の周期Ｔ１の中ではカウンタの出力値が０になっているので、パケットＰ１にはシンクタイムが付加されている。同様に、周期Ｔ３中にもカウンタの出力値が０になるので、パケットＰ３にはシンクタイムが付加されている。しかし、周期Ｔ２ではカウンタ値は０にならないので、パケットＰ２にはシンクタイムは含まれていない。図１ではカウンタの出力値が０の時からのビットストリームの値を仮にＡ，Ｂ，Ｃ，・・・とした。これは後で受信側の説明で用いる。なお、Ａ，Ｂ，Ｃ等の各々は１ビットではなく複数ビットでもよい。
【００２５】
２−２）送信回路
次に、図２を参照しながら送信回路の説明をする。入力されたビットストリームａは４ＭＨｚのクロックｂに同期してＦＩＦＯ１に書き込まれる。一方、Ｐ１３９４インターフェイス（以下「Ｐ１３９４  Ｉ／Ｆ」という。）３は、読み出し要求信号ｅをシンクタイム付与回路２へ出力し、ＦＩＦＯ１からデータを読み出すように指示する。
【００２６】
シンクタイム付与回路２はこれから出力するパケットにシンクタイムを書き込むかどうか判断し、もし必要であればシンクタイムをデータｆとしてＰ１３９４Ｉ／Ｆ３へ出力する。その後はＰ１３９４  Ｉ／Ｆ３からの読み出し要求信号ｅに合わせて、読み出し要求信号ｃをＦＩＦＯ１へ出力し、ＦＩＦＯ１からデータｄを読み出し、Ｐ１３９４  Ｉ／Ｆ３に渡す。
【００２７】
シンクタイムを付与するかどうかの判断は以下のようにして行われる。クロックｂでカウントアップするカウンタ４の出力値が比較回路５に出力される。比較回路５はカウンタ１４の出力値が０になると出力信号をシンクタイム付与回路２とラッチ６へ出力する。これにより、シンクタイム付与回路２では、これから出力をしようとしているパケットにシンクタイムを書き込むかどうかの判断ができる。
【００２８】
ここで、シンクタイムとして書かれる値は、ラッチ６が出力する値である。ラッチ６は比較回路５が出力をした時点でのサイクルタイマー７の値をラッチし、シンクタイム付与回路２へ出力をする。
【００２９】
カウンタ８が出力するパケット長ｇは、前の周期で書かれたビットストリームの長さである。この値はＰ１３９４  Ｉ／Ｆ３に与えられる。実際の回路では、図１に示したように一周期１２５μｓの間に書かれるビットストリームの長さは、書き込まれるタイミングとクロックのジッタ等の影響で、必ずしも一定でない。したがって、各周期毎にパケット長をＰ１３９４  Ｉ／Ｆ３に与えている。
【００３０】
Ｐ１３９４  Ｉ／Ｆ３は１２５μｓの周期の先頭でリセット信号ｈを出力する。比較回路５とカウンタ８はこのリセット信号ｈによりリセットされ、次の周期に備える。
【００３１】
２−３）受信側のタイミング
次に、図３を参照しながら受信側のタイミングについて説明をする。この図で、（ａ）は受信したパケット、（ｂ）は受信したパケットから生成したビットストリーム、（ｃ）は４ＭＨｚのクロックをカウントするカウンタの出力値を示す。
【００３２】
Ｐ１３９４シリアルバスを経て受信したパケットは、後述するＦＩＦＯを介しビットストリームとして読み出される。受信側も送信側と同様、ビットストリームと同期して動作しているカウンタがある。このカウンタは送信側のカウンタとは独立に動作しているために、同じ時刻でも送信側とは異なる値をとる。前述の通り、送信側のクロックと受信側のクロックは独立して動作しているので、互いにずれを生ずる。送信側と受信側のビットレートは平均して同じでなければならないので、シンクタイムを用いてこのずれを修正する。
【００３３】
以下にシンクタイムを用いてこのずれを修正する方法を説明する。シンクタイムが書き込まれているパケット（例えば図３のパケットＰ４）が受信されると、パケットからシンクタイムを読みだし、所定の遅延時間ｔｄを加えた時刻を受信側のビットストリームの先頭ビットとする。遅延時間ｔｄを加える理由は、パケットに書かれているシンクタイムの時刻は送信側の時刻であり、受信側でパケットが受信され、そのパケットに書かれたデータがビットストリームとして読みだされた時には、パケットのジッタΔＴ等の要因でシンクタイムの時刻を過ぎているからである。なお、このジッタはＰ１３９４シリアルバスの仕様上生ずるものである。
【００３４】
次に、このシンクタイムに遅延時間ｔｄを加えた時刻のカウンタの出力値をラッチしておく。図３（ｃ）では５９である。そして、次にまたシンクタイムが書き込まれているパケットを受信した時に同様の処理を行い、カウンタ出力値をラッチする。その後、前回ラッチしたカウンタ出力値と今回ラッチしたカウンタ出力値の差を求める。受信側のカウンタも送信側と同様、４ＭＨｚのクロックを１０００カウントしたら一周する。したがって、送信側のビットレートと受信側のビットレートが同じであれば、ラッチした二つの値は同じになり、差は０になるはずである。この差が０でない場合は、受信側の読みだしクロックを作成しているＰＬＬ（詳細は後述する）にその差を出力し、受信側のビットレートを調節する。これにより、送信側と受信側のビットレートを平均して同じにすることができる。
【００３５】
送信側ではビットストリームの値が図１の例ではＡの所が先頭ビットであった。しかし、受信側では必ずしも先頭ビットがＡであるとは限らない（図３の例ではＣである）。したがって、図４に示すように、送信側の周期と受信側の周期では位相が通常ずれている。しかし、平均して送信側と受信側で同じビットレートであれば良く、位相のずれは問題にならない。
【００３６】
２−４）受信回路
次に、図５を参照しながら受信回路の説明をする。Ｐ１３９４シリアルバス９を介してＰ１３９４  Ｉ／Ｆ１１で受信されたパケットｊは、ＦＩＦＯ１２へ出力され、ＰＬＬ２２から出力される４ＭＨｚのクロックｍに同期して４ＭＨｚのビットストリームｋとして読み出される。
【００３７】
一方、Ｐ１３９４  Ｉ／Ｆ１１から出力されたパケットｊはシンクタイム抽出回路１３にも出力され、シンクタイムが抽出される。このシンクタイムには、レジスタ１５にセットされている遅延時間ｔｄが加算器１４で加算され、比較回路１６でサイクルタイマー１７の出力と比較され、同じであれば出力をする。
【００３８】
サイクルタイマーの値は送信側も受信側も同じ絶対時刻を持っている。これは、前述したサイクルマスターが１２５μｓ毎にバスへ送出するサイクルスタートパケットにサイクルマスターに設けられているサイクルタイマーの絶対時刻が書かれており、バスに接続されている各機器はサイクルスタートパケットを受信しそこに書かれている絶対時刻により自分のサイクルタイマーの時刻を補正しているからである。
【００３９】
比較回路１６の出力はアンド回路１９とラッチ１８及びラッチ２３に出力される。ラッチ２３は比較回路１６からの出力により、カウンタ２０の出力をラッチする。カウンタ２０はビットストリームの読み出しクロックｍで一づつ増加し、周期は送信側と同じ１０００ある。
【００４０】
ラッチ２１は電源投入後、一度のみラッチがかかる。このラッチ２１でラッチされた値が受信側の先頭ビットである。その後、この値は変更されてほしくないために、一度のみラッチがかかるようになっている。これをラッチ１８で実現している。ラッチ１８は電源投入後、最初の比較回路１６からの出力でローレベルをラッチする。したがって、それ以降はアンド回路１９にローレベルを出力し続ける。この回路によりラッチ２１には比較回路１６からの出力は一度しか入力されず、ラッチ２１は一度しかラッチがかからないことになる。
【００４１】
減算器２４ではラッチ２１の出力からラッチ２３の出力を減算し、ＰＬＬ２２へ出力する。もし減算器２４の出力が０より大きければ、前回の先頭ビットの位置よりも小さい値をラッチしたことになるので、ＰＬＬ２２には位相が早くなるような値を出力し、逆の場合は位相が遅くなるような値を出力すれば良いことになる。この結果、受信側のビットレートを送信側のビットレートに合わせることができる。
【００４２】
〔３〕本発明の第２実施例
次に図６〜図９を参照しながら本発明の第２実施例について説明する。ここで第１実施例と対応する部分には同一の番号が付してある。
【００４３】
３−１）送信側のタイミング
まず、図６を参照しながら送信側のタイミングについて説明する。この図で（ａ）は入力されるビットストリーム、（ｂ）は４ＭＨｚのクロックをカウントするカウンタの出力値、（ｃ）は送信されるパケットを示す。
【００４４】
第１実施例との差異は、全てのパケットにパケット長とデータブロック番号（Ｄａｔａ  Ｂｌｏｃｋ  Ｎｕｍｂｅｒ：以下「ＤＢＮ」と略す。）が付加されていることである。パケット長は第１実施例において説明したように、前の周期でＦＩＦＯに書き込まれたビットストリームの長さである。そして、ＤＢＮは各パケットの最初に書かれているビットのカウンタの出力値である。
【００４５】
また、本実施例では、シンクタイムがフレームの先頭ビットの時刻を示していることを利用して、受信側でシンクタイムに所定の遅延時間ｔｄを足した時刻にＦＩＦＯからフレームの先頭ビットが読み出されるようにすることにより、送信側に入力されるビットストリームと、受信側から出力されるビットストリームの間の位相を制御するためにも用いる。
【００４６】
３−２）送信回路
次に図７を参照しながら送信回路の説明をする。入力されたビットストリームａは４ＭＨｚのクロックｂに同期してＦＩＦＯ１に書き込まれる。一方、Ｐ１３９４  Ｉ／Ｆ３は、読み出し要求信号ｅをシンクタイム，ＤＢＮ付与回路２’へ出力し、ＦＩＦＯ１からデータを読み出すように指示する。
【００４７】
シンクタイム，ＤＢＮ付与回路２’はこれから出力するパケットにシンクタイムを書き込むかどうかの判断をし、もし必要であればシンクタイムとカウンタ４から入力されるＤＢＮをデータｆ’としてＰ１３９４  Ｉ／Ｆ３へ出力する。その後はＰ１３９４  Ｉ／Ｆ３からの読み出し要求信号ｅに合わせて、読み出し要求信号ｃをＦＩＦＯ１へ出力し、ＦＩＦＯ１からデータｄを読み出し、Ｐ１３９４  Ｉ／Ｆ３に渡す。なお、シンクタイムを書き込む必要がなければＤＢＮのみをＰ１３９４  Ｉ／Ｆ３に渡す。
【００４８】
シンクタイムを付与するかどうかの判断基準及びシンクタイムとして書かれる値は第１実施例と同じである。また、カウンタ８が出力するパケット長ｇ、及びＰ１３９４  Ｉ／Ｆ３が出力するリセット信号ｈの作用も第１実施例と同じである。
【００４９】
３−３）受信側のタイミング
次に図８を参照しながら受信側のタイミングについて説明をする。この図で、（ａ）は受信したパケット、（ｂ）は受信したパケットから生成したビットストリーム、（ｃ）はフレーミングビット、（ｄ）は４ＭＨｚのクロックをカウントするカウンタの出力値である。
【００５０】
Ｐ１３９４シリアルバスを経て受信したパケットは、後述するＦＩＦＯからビットストリームとして読み出される。第１実施例において説明したように、送信側のクロックと受信側のクロックは独立して動作しているので、互いにずれを生ずる。送信側と受信側のビットレートは平均して同じでなければならないので、シンクタイムを用いてこのずれを修正し、同時に送信側と受信側それぞれのビットストリーム間の位相制御を行う方法について説明する。
【００５１】
パケットＰ４が受信されるとデータ部はＦＩＦＯに書き込まれ、ＤＢＮとシンクタイムが抽出される。受信側にはパケットのデータが読み出される毎にカウントアップするカウンタがあり、図８の（ｄ）がその出力値を示している。このカウンタ出力値はＤＢＮを受け取る度に、ＤＢＮに合わせられる。図８のパケットＰ４にはＤＢＮ＝９９８が書かれているので、カウンタの出力値は強制的に９９８に合わせられる。正常に動作していれば、カウンタの出力値はＤＢＮを受け取った時点では９９８の筈である。
【００５２】
このようにしてＤＢＮにより値が補正されるカウンタの出力値０になった時にフレーミングビットを１にしてＦＩＦＯに書き込み、その時同時にＦＩＦＯに書き込まれたデータがフレームの先頭ビットであることを示す。このため、ＦＩＦＯはデータの幅より１ビット広いデータバスを持っている。ＦＩＦＯからはビットストリームと同時にフレーミングビットも読み出される。その様子を図８の（ｃ）に示す。前記したようにフレーミングビットが１のデータはフレームの先頭ビットであり、このデータが読み出された時刻がシンクタイムに所定の遅延時間ｔｄを足した時刻になるように読み出し側のＰＬＬを調節する。これにより送信側と受信側の間で一定の位相を保証することができる。
【００５３】
３−４）受信回路
次に図９を参照しながら受信回路の説明をする。Ｐ１３９４  Ｉ／Ｆ１１はパケットを受信すると、書き込み信号ｎと共にパケットｐをデータ部抽出回路２５、ＤＢＮ抽出回路２６、及びシンクタイム抽出回路１３に出力する。
【００５４】
ＤＢＮ抽出回路２６はパケットｐからＤＢＮを読み出し、カウンタ２７へ出力する。カウンタ２７は書き込み信号ｑによってカウントアップをし、ＤＢＮ抽出回路２６からＤＢＮが入力された時は、出力値がＤＢＮに合わせられる。カウンタ２７は比較回路２８へカウンタ値を出力する。
【００５５】
比較回路２８ではカウンタ２７からの出力と０を比較し、０であればデータ部抽出回路２５に信号を出力する。データ部抽出回路２５ではＰ１３９４  Ｉ／Ｆ１１から入力されるパケットｐからデータ部ｒを抽出し、書き込み信号ｑと共にＦＩＦＯ１２’に書き込む。またこの時、比較回路２８からカウンタ２７の出力値が０であることを示す信号が入力されると、ＦＩＦＯ１２’に書き込むフレーミングビットを１にする。これにより、ＦＩＦＯ１２’内のフレーミングビットが１のデータはフレームの先頭であることがわかる。
【００５６】
シンクタイム抽出回路１３はパケットからシンクタイムを抽出し、加算器１４において所定の遅延時間ｔｄを加算し、加算結果を減算器２４へ出力する。ＦＩＦＯ１２’にデータと共に書き込まれたフレーミングビットはデータと共に読み出され、ラッチ２９へ出力される。ラッチ２９ではサイクルタイマー１７からの値を、ＦＩＦＯ１２’からの出力が１になったときにラッチし、ラッチした値を減算器２４へ出力する。
【００５７】
減算器２４ではラッチ２９から入力された時刻から加算器６４から入力された時刻を引き、ＰＬＬ２２へ出力する。ＰＬＬ２２は正の値が入力されると、その大きさに従って早い方向（周波数が高くなる方向）にクロックｍを動かし、負の値が入力されると、その大きさに従って遅い方向（周波数が低くなる方向）にクロックｍを動かす。これにより送信側に入力されるビットストリームと受信側から読み出されるビットストリームを一定の位相関係に制御することができる。
【００５８】
また、本実施例では、パケット長を利用して損失したパケットのデータ量を算出することもできる。例えば図８の場合、パケットＰ４の一つ前のパケットのＤＢＮは４９８でありそのパケット長は５００であるから、正常に動作していれば、このＤＢＮにパケット長を加算した値は次のパケットＰ４のＤＢＮに等しくなる。しかし、Ｐ４が損失すると、ＤＢＮ抽出回路２６が抽出するＤＢＮは次に受信するパケットに付与されている４９８となるので、５００ビットを損失したことがわかる。
【００５９】
さらに、本実施例では、受信側でＤＢＮを受け取った時のカウンタ２７の出力値がＤＢＮと異なることを検出することにより、パケットの損失を検出することが可能である。例えば図８の場合、パケットＰ４が損失すると、ＤＢＮ抽出回路２６が抽出するＤＢＮは次に受信するパケットに付与されている４９８となる。一方、カウンタ２７の出力値は９９８になっている。
【００６０】
【発明の効果】
以上詳細に説明したように、本発明によれば、任意の速度、フォーマットのビットストリームを伝送する際に、アプリケーションに依存することなく、送信側のビットストリームと受信側のビットストリームの速度を合わせることができる。
【００６１】
また、本発明によれば、送信側のビットストリームと受信側のビットストリームの速度を合わせ、かつ位相関係を一定に制御することができる。さらに、本発明によれば、損失したパケットのデータ量を検出することができる。
【図面の簡単な説明】
【図１】本発明の第１実施例における送信側の信号のタイミングの一例を説明する図である。
【図２】本発明の第１実施例における送信回路を示すブロック図である。
【図３】本発明の第１実施例における受信側の信号のタイミングの一例を説明する図である。
【図４】本発明の第１実施例における送信側と、受信側の、先頭ビットと周期の関係の一例を説明する図である。
【図５】本発明の第１実施例における受信回路を示すブロック図である。
【図６】本発明の第２実施例における送信側の信号のタイミングの一例を説明する図である。
【図７】本発明の第２実施例における送信回路を示すブロック図である。
【図８】本発明の第２実施例における受信側の信号のタイミングの一例を説明する図である。
【図９】本発明の第２実施例における受信回路を示すブロック図である。
【図１０】Ｐ１３９４シリアルバスを用いた通信システムの一例を示す図である。
【図１１】Ｐ１３９４シリアルバスにおける通信サイクルの一例を示す図である。
【符号の説明】
Ｐ１〜Ｐ４  パケット、  Ａ，Ｂ，Ｃ，・・・  ビットストリーム、  １，１２  ＦＩＦＯ、  ２  シンクタイム付与回路、  ２’  シンクタイム，ＤＢＮ付与回路、  ３，１１  Ｐ１３９４  Ｉ／Ｆ、  ４，８，２０，２７  カウンタ、５，１６  比較回路、  ６，１８，２１，２３，２９  ラッチ、  ７，１７  サイクルタイマー、  ９  Ｐ１３９４シリアルバス、  １３  シンクタイム抽出回路、  １４  加算器、  １５  レジスタ、  １９  アンド回路、  ２２  ＰＬＬ回路、  ２４  減算器、  ２５  データ部抽出回路、  ２６  ＤＢＮ抽出回路
【図１】
0003546799.tif 000002
【図２】
0003546799.tif 000003
【図３】
0003546799.tif 000004
【図４】
0003546799.tif 000005
【図５】
0003546799.tif 000006
【図６】
0003546799.tif 000007
【図７】
0003546799.tif 000008
【図８】
0003546799.tif 000009
【図９】
0003546799.tif 000010
【図１０】
0003546799.tif 000011
【図１１】
0003546799.tif 000012