JP4148291B2 - 信号処理回路 - Google Patents
信号処理回路 Download PDFInfo
- Publication number
- JP4148291B2 JP4148291B2 JP2006327499A JP2006327499A JP4148291B2 JP 4148291 B2 JP4148291 B2 JP 4148291B2 JP 2006327499 A JP2006327499 A JP 2006327499A JP 2006327499 A JP2006327499 A JP 2006327499A JP 4148291 B2 JP4148291 B2 JP 4148291B2
- Authority
- JP
- Japan
- Prior art keywords
- data
- time
- circuit
- packet
- processing circuit
- 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 - Fee Related
Links
Images
Landscapes
- Small-Scale Networks (AREA)
- Communication Control (AREA)
Description
本発明は、ディジタルシリアルインタフェースに用いられる信号処理回路に関するものである。
近年、マルチメディア・データ転送のためのインタフェースとして、高速データ転送、リアルタイム転送を実現するIEEE(The Institute of Electrical and Electronic Engineers) 1394、High Performance Sirial Busが規格化された。
このIEEE1394シリアルインタフェースのデータ転送には、従来のRequest,Acknowledge の要求、受信確認を行うアシンクロナス(Asynchronous) 転送と、あるノードから125μsに1回必ずデータが送られるアイソクロナス(Isochronous) 転送がある。
このように、2つの転送モードを有するIEEE1394シリアルインタフェースでのデータは、パケット単位で転送が行われる。
図11は、アイソクロナス通信における1ソースパケットのバイトサイズを示す図である。図11(A)はDVB(Digital Video Broadcast) 仕様時、図11(B)はDSS(Digital Satelite System) 仕様時のパケットサイズを示している。
DVB仕様時のソースパケットサイズは、図11(A)に示すように、4バイトのソースパケットヘッダ(SPH;Source Packet Header)と188バイトのトランスポートストリームデータの192バイトである。
これに対して、DSS仕様時のソースパケットサイズは、図11(B)に示すように、4バイトのソースパケットヘッダ(SPH)、10バイトの付加データ、および130バイトのデータの144バイトである。
付加バイトはソースパケットヘッダとデータとの間に挿入される。なお、IEEE1394規格では、取り扱う最小データの単位は1クワドレット(quadlet)(=4バイト=32ビット)であるため、トランスポートストリームデータと付加データの合計が32ビット単位で構成できる設定であることが必要である。
ただし、デフォルトでは付加バイトなしで設定される。
付加バイトはソースパケットヘッダとデータとの間に挿入される。なお、IEEE1394規格では、取り扱う最小データの単位は1クワドレット(quadlet)(=4バイト=32ビット)であるため、トランスポートストリームデータと付加データの合計が32ビット単位で構成できる設定であることが必要である。
ただし、デフォルトでは付加バイトなしで設定される。
図12は、IEEE1394規格のアイソクロナス通信でデータを送信させるときの元のデータと、実際に送信されるパケットとの対応関係の一例を示す図である。
図12に示すように、元のデータであるソースパケットは、4バイトのソースパケットヘッダと、データ長を調整するためのパディングデータを付加された後、所定の数のデータブロックに分割される。
なお、パケットを転送するときのデータの単位が1クワドレット(4バイト)であることから、データブロックや各種ヘッダなどのバイト長は、全て4の倍数に設定される。
なお、パケットを転送するときのデータの単位が1クワドレット(4バイト)であることから、データブロックや各種ヘッダなどのバイト長は、全て4の倍数に設定される。
図13は、ソースパケットヘッダのフォーマットを示す図である。
図13に示すように、ソースパケットヘッダのうち、25ビットには、たとえば上述したDVB方式等のディジタル衛星放送等で利用されているMPEG(Moving Picture Experts Group)−TS(Transport Stream)データをアイソクロナス通信で送信するときに、ジッタを抑制するために利用されるタイムスタンプ(Time Stamp)が書き込まれる。
図13に示すように、ソースパケットヘッダのうち、25ビットには、たとえば上述したDVB方式等のディジタル衛星放送等で利用されているMPEG(Moving Picture Experts Group)−TS(Transport Stream)データをアイソクロナス通信で送信するときに、ジッタを抑制するために利用されるタイムスタンプ(Time Stamp)が書き込まれる。
そして、このようなパケットヘッダやCIP(Common Isochronous Packet) ヘッダ等のデータが、所定の数のデータブロックに付加されることによりパケットが生成される。
図14はアイソクロナス通信用パケットの基本構成例を示す図である。
図14に示すように、アイソクロナス通信のパケットは、第1クワドレットが1394ヘッダ(Header)、第2クワドレットがヘッダCRC(Header-CRC)、第3クワドレットがCIPヘッダ1(CIP-Header1)、第4クワドレットがCIPヘッダ2(CIP-Header2)、第5クワドレットがソースパケットヘッダ(SPH)で、第6クワドレット以降がデータ領域である。そして、最後のクワドレットがデータCRC(Data-CRC)である。
図14に示すように、アイソクロナス通信のパケットは、第1クワドレットが1394ヘッダ(Header)、第2クワドレットがヘッダCRC(Header-CRC)、第3クワドレットがCIPヘッダ1(CIP-Header1)、第4クワドレットがCIPヘッダ2(CIP-Header2)、第5クワドレットがソースパケットヘッダ(SPH)で、第6クワドレット以降がデータ領域である。そして、最後のクワドレットがデータCRC(Data-CRC)である。
1394ヘッダは、データ長を表すdata-length 、このパケット転送されるチャネルの番号(0〜63のいずれか)を示すchannel 、処理のコードを表すtcode 、および各アプリケーションで規定される同期コードsyにより構成されている。
ヘッダCRCは、パケットヘッダの誤り検出符号である。
ヘッダCRCは、パケットヘッダの誤り検出符号である。
CIPヘッダ1は、送信ノード番号のためのSID(Source node ID)領域、データブロックの長さのためのDBS(Data Block Size) 領域、パケット化におけるデータの分割数のためのFN(Fraction Number) 領域、パディングデータのクワドレット数のためのQPC(Quadlet Padding Count) 領域、ソースパケットヘッダの有無を表すフラグのためのSPH領域、アイソクロナスパケットの数を検出するカウンタのためのDBC(Data Block Continuty Counter)領域により構成されている。
なお、DBS領域は、1アイソクロナスパケットで転送するクワドレット数を表す。
なお、DBS領域は、1アイソクロナスパケットで転送するクワドレット数を表す。
CIPヘッダ2は、転送されるデータの種類を表す信号フォーマットのためのFMT領域、および信号フォーマットに対応して利用されるFDF(Format Dependent Field)領域により構成されている。
SPHヘッダは、トランスポートストリームパケットが到着した時間に固定の遅延値を加えた値が設定されるタイムスタンプ領域を有している。
また、データCRCは、データフィールドの誤り検出符号である。
また、データCRCは、データフィールドの誤り検出符号である。
上述した構成を有するパケットの送受信を行うIEEE1394シリアルインタフェースの信号処理回路は、主としてIEEE1394シリアルバスを直接ドライブするフィジカル・レイヤ回路と、フィジカル・レイヤのデータ転送をコントロールするリンク・レイヤ回路とにより構成される。
上述したIEEE1394シリアルインタフェースにおけるアイソクロナス通信系では、たとえば図15に示すように、アプリケーション側であるMPEGトランスポータ(Transporter) 1にリンク・レイヤ回路2が接続され、リンク・レイヤ回路2はフィジカル・レイヤ回路3を介してシリアルインタフェースバスBSに接続されている。
そして、IEEE1394シリアルインタフェースのデータ転送では、送信データおよび受信データは一旦リンク・レイヤ回路2に設けられたFIFO(First-In First-Out)メモリ(以下、単にFIFOという)等の記憶装置に格納される。実際には、アシンクロナスパケット用FIFOとアイソクロナスパケット用FIFOとは別個に設けられる。
そして、IEEE1394シリアルインタフェースのデータ転送では、送信データおよび受信データは一旦リンク・レイヤ回路2に設けられたFIFO(First-In First-Out)メモリ(以下、単にFIFOという)等の記憶装置に格納される。実際には、アシンクロナスパケット用FIFOとアイソクロナスパケット用FIFOとは別個に設けられる。
ところで、図11に示すように、通常のMPEGのトランスポートストリームデータのソースパケットサイズは、DVBでは192バイト、DSSでは144バイトというように、可変となる。
一方、リンク・レイヤ回路2に設けられるFIFOのサイズは決まっている。したがって、受信したソースパケットにエラーがあった場合、そのエラーをFIFOの前後で伝搬させるのに、FIFOとは別にエラービットがいくつも並んだレジスタを用意しておくことが考えれる。
しかしこの場合、FIFOに格納されているどのソースパケットに対してのエラービットであるかを知らせるための別の回路を設ける必要があり、回路規模が大きくなるという不利益がある。
しかしこの場合、FIFOに格納されているどのソースパケットに対してのエラービットであるかを知らせるための別の回路を設ける必要があり、回路規模が大きくなるという不利益がある。
また、たとえば上述したDVB方式等のディジタル衛星放送等で利用されているMPEG−TSデータをアイソクロナス通信で送信するときに、受信側の信号処理回路ではパケットに付加されたタイムスタンプに設定された時間に基づいて、いわゆるアプリケーション側であるMPEGトランスポータ(Transporter) へトランスポートストリームデータを出力する必要がある。
しかし、現在のIEEE1394シリアルインタフェースの信号処理回路では、受信パケットに付加されたタイムスタンプに対する処理系システムが確立されていない。
しかし、現在のIEEE1394シリアルインタフェースの信号処理回路では、受信パケットに付加されたタイムスタンプに対する処理系システムが確立されていない。
たとえばデータ化けや異なるシステム同士を接続した場合等で存在しない予期せぬタイムスタンプの値が設定されて送信される場合が想定されるが、このような場合であっても動作が停止することがなく安定に動作するシステムを実現する必要がある。
また、アプリケーション側へ規定された時間あるいは受信後直ちにパケットを出力することができる回路の実現が必要である。
また、たとえば上述したDVB方式等のディジタル衛星放送等で利用されているMPEG−TSデータをアイソクロナス通信で送信するときに、送信側の信号処理回路ではパケットに付加するタイムスタンプはデータ量に応じた遅延値が加算されて設定される。
この遅延値は、たとえば画像等のデータ量が増えると小さな値に設定され、受信側ではそのタイムスタンプの時間データに基づいて、いわゆるアプリケーション側であるMPEGトランスポータ(Transporter) へトランスポートストリームデータを出力する。
受信側では、受信データは一旦FIFO等の記憶装置に格納されるが、送信側でデータ量に応じて設定される遅延値が小さい程、受信してからMPEGトランスポータへトランスポートストリームデータを出力するまでの時間が短くなる。
この遅延値は、たとえば画像等のデータ量が増えると小さな値に設定され、受信側ではそのタイムスタンプの時間データに基づいて、いわゆるアプリケーション側であるMPEGトランスポータ(Transporter) へトランスポートストリームデータを出力する。
受信側では、受信データは一旦FIFO等の記憶装置に格納されるが、送信側でデータ量に応じて設定される遅延値が小さい程、受信してからMPEGトランスポータへトランスポートストリームデータを出力するまでの時間が短くなる。
しかし、上述したように、現在の1EEE1394シリアルインタフェースの信号処理回路では、パケットに付加されるタイムスタンプに対する処理系システムが確立されていないことから、たとえばチャンネルを変更してデータ量が増えた場合等には、チャンネルを変更したにもかかわらず不要なデータがアプリケーション側へ出力されてしまったり、タイムスタンプの遅延値の大きいチャンネル変更前のデータが、受信側において未だ出力されずにFIFOに格納されている間に、遅延値の小さい次のデータがFIFOに格納され、データの前後関係が損なわれたり、オーバーフロー等の不都合が発生するおそれがある。
本発明は、かかる事情に鑑みてなされたものであり、その第1の目的は、ソースパケットサイズが可変であっても回路規模の増大を招くことなく簡単にエラービットを設定でき、また、存在しないタイムスタンプの値があったとしてもシステムが止まることはなく、安定な動作を実現できる信号処理回路を提供することにある。
また、本発明の第2の目的は、的確に時間情報を付加できる信号処理回路を提供することにある。
また、本発明の第3の目的は、アプリケーション側へ規定された時間にパケットを出力することができる信号処理回路を提供することにある。
また、本発明の第4の目的は、データ量に合わせて設定される時間情報が変更されてもデータ損出や不要なデータがアプリケーション側へ出力されることを防止できる信号処理回路を提供することにある。
上記目的を達成するため、本発明は、あらかじめ決められた時間サイクルでシリアルインタフェースバスを送信されるパケットデータを受信してアプリケーション側へ出力する信号処理回路であって、記憶手段と、受信したパケット毎に、規格通りに送信されてきたか否かを判断し、規格通りでない場合にエラーマークを付加して上記記憶手段に格納する第1の受信回路と、上記記憶手段に格納されたパケットデータにエラーマークが付加されている場合には、エラーに対応した処理を行ってアプリケーション側へ出力する第2の受信回路とを有する。
また、本発明では、上記シリアルインタフェースバスを送信されるパケットには当該送信パケットが連続するものであるか否かを示す制御情報が付加されており、上記第1の受信回路は、上記制御情報から受信パケットが不連続と判断した場合に上記エラーマークを付加し、上記第2の受信回路は、エラーマークが付加されている場合には、上記記憶手段に格納されたパケットデータに代えてエラーパケットをアプリケーション側へ出力する。
また、本発明では、上記シリアルインタフェースバスを送信される各ソースパケットには受信側で受信データをアプリケーション側へ出力すべき時間が設定された時間情報を含むソースパケットヘッダが付加されており、上記第1の受信回路は、上記時間情報があらかじめ規定された時間を越える時間を示している場合に上記エラーマークを付加し、上記第2の受信回路は、エラーマークが付加されている場合には、上記記憶手段に格納されたパケットデータを時間情報にかかわりなくアプリケーション側へ出力する。
本発明の信号処理回路によれば、第1の受信回路で、受信したパケット毎に、規格通りに送信されてきたか否かが判断され、規格通りでない場合に受信パケットにエラーマークが付加され記憶手段に格納される。
そして、第2の受信回路において、記憶手段に格納されたパケットデータにエラーマークが付加されている場合には、エラーに対応した処理が行われてアプリケーション側へ出力される。
そして、第2の受信回路において、記憶手段に格納されたパケットデータにエラーマークが付加されている場合には、エラーに対応した処理が行われてアプリケーション側へ出力される。
また、本発明によれば、シリアルインタフェースバスを送信されるパケットには当該送信パケットが連続するものであるか否かを示す制御情報が付加されており、第1の受信回路では、その制御情報から受信パケットが不連続と判断された場合にエラーマークが付加される。
そして、第2の受信回路において、エラーマークが付加されている場合には、記憶手段に格納されたパケットデータに代えてエラーパケットがアプリケーション側へ出力される。
そして、第2の受信回路において、エラーマークが付加されている場合には、記憶手段に格納されたパケットデータに代えてエラーパケットがアプリケーション側へ出力される。
また、本発明によれば、シリアルインタフェースバスを送信される各ソースパケットには受信側で受信データをアプリケーション側へ出力すべき時間が設定された時間情報を含むソースパケットヘッダが付加されており、第1の受信回路では、時間情報があらかじめ規定された時間を越える時間を示している場合にエラーマークが付加される。
そして、第2の受信回路において、エラーマークが付加されている場合には、上記記憶手段に格納されたパケットデータが時間情報にかかわりなくアプリケーション側へ出力される。
そして、第2の受信回路において、エラーマークが付加されている場合には、上記記憶手段に格納されたパケットデータが時間情報にかかわりなくアプリケーション側へ出力される。
また、本発明は、パケットデータに、受信側で受信データをアプリケーション側へ出力すべき時間情報を付加し、かつあらかじめ決められた時間サイクルでシリアルインタフェースバスに送出する信号処理回路であって、上記時間を計測する計測手段と、送信データ量に応じて上記付加する遅延時間を設定可能な制御手段と、記憶手段と、上記制御手段により設定された遅延時間に基づいて上記時間情報を送信データに付加して上記記憶手段に格納する第1の送信回路と、送信データ量に応じてパケットの送信が有効であるか判断するためのスレッショルドを設定し、設定したスレッショルド、上記記憶手段に格納された時間情報、および上記計測手段による計測時間により、設定された時間情報が有効か否かの判別を行い、有効の場合には時間情報が付加されたパケットデータを読み出して送信データとして送出し、無効の場合にはそのパケットの読み出しを行わず、次のパケットの処理を行う第2の送信回路とを有する。
本発明の信号処理回路によれば、第1の送信回路において、制御手段により設定された遅延時間に基づいて時間情報が送信データに付加されて記憶手段に格納される。
そして、第2の送信回路においては、送信データ量に応じてパケットの送信が有効であるか判断するためのスレッショルドが設定され、設定したスレッショルド、記憶手段に格納された時間情報、および計測手段による計測時間により、設定された時間情報が有効か否かの判別が行われる。
判別の結果、有効の場合には時間情報が付加されたパケットデータが読み出されて送信データとして送出される。
無効の場合にはそのパケットの読み出しは行われず、次のパケットの処理が行われる。
そして、第2の送信回路においては、送信データ量に応じてパケットの送信が有効であるか判断するためのスレッショルドが設定され、設定したスレッショルド、記憶手段に格納された時間情報、および計測手段による計測時間により、設定された時間情報が有効か否かの判別が行われる。
判別の結果、有効の場合には時間情報が付加されたパケットデータが読み出されて送信データとして送出される。
無効の場合にはそのパケットの読み出しは行われず、次のパケットの処理が行われる。
また、本発明は、受信側で受信データをアプリケーション側へ出力すべき時間が設定された時間情報が付加され、かつあらかじめ決められた時間サイクルでディジタルシリアルインタフェースバスを送信されるパケットデータを受信してアプリケーション側へ出力する信号処理回路であって、時間を計測する計測手段と、受信したパケットデータから上記時間情報を取り出し、上記計測手段による計測時間値が当該時間情報値より大きい場合には、受信データを上記アプリケーション側へ出力する受信回路とを有する。
また、上記受信回路は、記憶手段と、受信したパケットデータからデータを復元し時間情報と共に上記記憶手段に格納し、この格納情報信号を出力する前処理回路と、上記前処理回路の格納情報信号を受けて、上記記憶手段に格納された時間情報を読み出し、上記時間情報と上記計測手段による計測時間値とを比較し、当該計測値が大きい場合に、データ読出指示信号を出力する比較回路と、上記データ読出指示信号を受けると上記記憶手段に格納されたデータを読み出して上記アプリケーション側へ出力させるデータ読出制御手段とを有する。
また、本発明は、受信側で受信データをアプリケーション側へ出力すべき時間が設定された時間情報が付加され、かつあらかじめ決められた時間サイクルでディジタルシリアルインタフェースバスを送信されるパケットデータを受信してアプリケーション側へ出力する信号処理回路であって、受信したパケットデータの上記時間情報があらかじめ規定された時間を越える時間を示している場合には、受信データを上記アプリケーション側へ出力する受信回路を有する。
また、本発明は、受信側で受信データをアプリケーション側へ出力すべき時間が設定された時間情報が付加され、かつあらかじめ決められた時間サイクルでシリアルインタフェースバスを送信されるパケットデータを受信してアプリケーション側へ出力する信号処理回路であって、時間を計測する計測手段と、受信したパケットデータから上記時間情報を取り出し、上記計測手段による計測時間値が当該時間情報値より大きい場合、または上記時間情報があらかじめ規定された時間を越える時間を示している場合には、受信データを上記アプリケーション側へ出力する受信回路とを有する。
また、上記受信回路は、記憶手段と、受信したパケットデータからデータを復元し時間情報と共に上記記憶手段に格納し、この格納情報信号を出力する前処理回路と、上記前処理回路の格納情報信号を受けて、上記記憶手段に格納された時間情報を読み出し、上記時間情報と上記計測手段による計測時間値とを比較し、当該計測値が大きい場合に、データ読出指示信号を出力する比較回路と、上記時間情報があらかじめ規定された時間を越える時間を示しているか否かを判別し、越えている場合にデータ読出指示信号を出力する判別回路と、上記比較回路または判別回路のデータ読出指示信号を受けると上記記憶手段に格納されたデータを読み出して上記アプリケーション側へ出力するデータ読出制御手段とを有する。
本発明の信号処理回路によれば、受信回路で受信したパケットデータから時間情報が取り出され、計測手段による計測時間値が当該時間情報値より大きい場合には、受信データがアプリケーション側へ出力される。
また、本発明によれば、受信したパケットデータの時間情報が、その時間があらかじめ規定された時間を越える時間を示している場合には、受信データがアプリケーション側へ出力される。
また、本発明は、受信側で受信データをアプリケーション側へ出力すべき時間が設定された時間情報が付加され、かつあらかじめ決められた時間サイクルでシリアルインタフェースバスを送信されるパケットデータを受信してアプリケーション側へ出力する信号処理回路であって、受信したパケットデータの上記時間情報に関係なく受信データを上記アプリケーション側へ出力させる制御手段を有する。
また、本発明は、受信側で受信データをアプリケーション側へ出力すべき時間が設定された時間情報が付加され、かつあらかじめ決められた時間サイクルでシリアルインタフェースバスを送信されるパケットデータを受信してアプリケーション側へ出力する信号処理回路であって、時間を計測する計測手段と、受信したパケットデータから上記時間情報を取り出し、上記計測手段による計測時間値が当該時間情報値より大きい場合には、受信データを上記アプリケーション側へ出力する受信回路と、制御信号により上記受信処理回路に上記時間情報に関係なく受信データを上記アプリケーション側へ出力させる制御手段とを有する。
また、上記受信回路は、記憶手段と、受信したパケットデータからデータを復元し時間情報と共に上記記憶手段に格納し、この格納情報信号を出力する前処理回路と、上記前処理回路の格納情報信号を受けて、上記記憶手段に格納された時間情報を読み出し、上記時間情報と上記計測手段による計測時間値とを比較し、当該計測値が大きい場合に、データ読出指示信号を出力する比較回路と、上記データ読出指示信号を受けると上記記憶手段に格納されたデータを読み出して上記アプリケーション側へ出力させ、上記制御手段からの制御信号を受けると、上記時間情報に関係なく上記格納情報信号に基づいて上記記憶手段に格納された受信データを受けて上記アプリケーション側へ出力させるデータ読出制御手段とを有する。
本発明の信号処理回路によれば、制御手段によって、受信したパケットデータの時間情報に関係なく受信データがアプリケーション側へ出力される。
また、本発明によれば、受信回路において、受信したパケットデータから時間情報が取り出され、計測手段による計測時間値が当該時間情報値より大きい場合には、受信データがアプリケーション側へ出力され、また、制御手段は、制御信号により受信処理回路に時間情報に関係なく受信データをアプリケーション側へ出力させる。
また、本発明は、パケットデータに、受信側で受信データをアプリケーション側へ出力すべき時間情報を付加し、かつあらかじめ決められた時間サイクルでシリアルインタフェースバスに送出する信号処理回路であって、送信データ量に応じて上記付加する遅延時間を設定可能な制御手段と、記憶手段と、上記制御手段により設定された遅延時間に基づいて上記時間情報を送信データに付加して上記記憶手段に格納し、この格納情報信号を出力する第1の送信回路と、以前に設定された制御手段による遅延時間と新たに設定された遅延時間とを比較し、新たに設定された遅延時間が短い場合にデータ読出制御信号を出力する比較回路と、上記第1の送信回路の格納情報信号を受けて、上記記憶手段に格納された時間情報を含むパケットデータを読み出して送信データとして送出し、上記データ読出制御信号を受けた場合には、新たに設定された遅延時間に基づく時間情報が付加されたパケットデータを読み出して送信データとして送出する第2の送信回路とを有する。
また、本発明の信号処理回路は、上記制御手段により設定された遅延時間をラッチするラッチ回路を有し、上記第1の送信回路は、上記ラッチ回路にラッチされた遅延時間に基づいて上記時間情報を付加し、上記比較回路は、上記制御手段により設定される遅延時間と上記ラッチ回路にラッチされた遅延時間とを比較する。
本発明の信号処理回路によれば、第1の送信回路において、制御手段により設定された遅延時間に基づいて時間情報が送信データに付加されて記憶手段に格納され、この格納情報信号が第2の送信回路に出力される。
また、比較回路において、以前に設定された制御手段による遅延時間と新たに設定された遅延時間とが比較され、新たに設定された遅延時間が短い場合にデータ読出制御信号が第2の送信回路に出力される。
そして、第2の送信回路では、第1の送信回路による格納情報信号を受けて、記憶手段に格納された時間情報を含むパケットデータが読み出されて送信データとして送出される。
また、比較回路によるデータ読出制御信号を受けた場合には、新たに設定された遅延時間に基づく時間情報が付加されたパケットデータが読み出されて送信データとして送出される。
また、比較回路において、以前に設定された制御手段による遅延時間と新たに設定された遅延時間とが比較され、新たに設定された遅延時間が短い場合にデータ読出制御信号が第2の送信回路に出力される。
そして、第2の送信回路では、第1の送信回路による格納情報信号を受けて、記憶手段に格納された時間情報を含むパケットデータが読み出されて送信データとして送出される。
また、比較回路によるデータ読出制御信号を受けた場合には、新たに設定された遅延時間に基づく時間情報が付加されたパケットデータが読み出されて送信データとして送出される。
本発明によれば、ソースパケットサイズが可変であっても、回路規模の増大を招くことなく簡単にエラービットを設定することができる。
また、存在しないタイムスタンプの値があったとしてもシステムが止まることはなく、安定な動作を実現できる利点がある。
また、存在しないタイムスタンプの値があったとしてもシステムが止まることはなく、安定な動作を実現できる利点がある。
また、本発明によれば、送信のレイト処理を自動的に行うことができ、的確なパケット送信を実現できる。
また、本発明によれば、アプリケーション側へ規定された時間にパケットを出力することができる。
また、本発明によれば、受信パケットに付加されてる時間情報に関係なく受信データを直ちに出力できるので、素早いデータ出力を実現できる。
また、受信データを一旦記憶する記憶手段の容量を少なくすることができる利点がある。
また、受信データを一旦記憶する記憶手段の容量を少なくすることができる利点がある。
さらに、本発明によれば、データ損失や不要なデータがアプリケーション側へ出力されることを防止できる利点がある。
(第1実施形態)
図1は、IEEE1394シリアルインタフェースに適用される本発明に係るMPEG用信号処理回路の第1の実施形態を示すブロック構成図である。
図1は、IEEE1394シリアルインタフェースに適用される本発明に係るMPEG用信号処理回路の第1の実施形態を示すブロック構成図である。
この信号処理回路は、リンク・レイヤ回路10、フィジカル・レイヤ回路20、ホストコンピュータとしてのCPU30により構成されている。また、40はMPEGトランスポータを示している。
リンク・レイヤ回路10は、CPU30の制御の下、アシンクロナス転送およびアイソクロナス転送の制御、並びにフィジカル・レイヤ回路20の制御を行う。
具体的には、図1に示すように、リンクコア(Link Core))101、ホストインタフェース回路(Host I/F)102、アプリケーションインタフェース回路(AP I/F) 103、送信用FIFO(AT-FIFO)104a、受信用FIFO(AR-FIFO)104bからなるアシンクロナス通信用FIFO104、セルフID用リゾルバ(Resolver)105、アイソクロナス通信用送信前処理回路(TXOPRE)106、アイソクロナス通信用送信後処理回路(TXOPRO)107、アイソクロナス通信用受信前処理回路(TXIPRE)108、アイソクロナス通信用受信後処理回路(TXIPRO)109、アイソクロナス通信用FIFO(I-FIFO)110、およびコンフィギュレーションレジスタ(Configuration Register、以下CFRという)111により構成されている。
具体的には、図1に示すように、リンクコア(Link Core))101、ホストインタフェース回路(Host I/F)102、アプリケーションインタフェース回路(AP I/F) 103、送信用FIFO(AT-FIFO)104a、受信用FIFO(AR-FIFO)104bからなるアシンクロナス通信用FIFO104、セルフID用リゾルバ(Resolver)105、アイソクロナス通信用送信前処理回路(TXOPRE)106、アイソクロナス通信用送信後処理回路(TXOPRO)107、アイソクロナス通信用受信前処理回路(TXIPRE)108、アイソクロナス通信用受信後処理回路(TXIPRO)109、アイソクロナス通信用FIFO(I-FIFO)110、およびコンフィギュレーションレジスタ(Configuration Register、以下CFRという)111により構成されている。
図1の回路おいて、ホストインタフェース回路102、アシンクロナス通信の送信用FIFO104a、受信用FIFO104bおよびリンクコア101によりアシンクロナス通信系回路が構成される。
そして、アプリケーションインタフェース回路103、送信前処理回路106、送信後処理回路107、受信前処理回路108、受信後処理回路109、FIFO110およびリンクコア101によりアイソクロナス通信系回路が構成される。
そして、アプリケーションインタフェース回路103、送信前処理回路106、送信後処理回路107、受信前処理回路108、受信後処理回路109、FIFO110およびリンクコア101によりアイソクロナス通信系回路が構成される。
リンクコア101は、アシンクロナス通信用パケットおよびアイソクロナス通信用パケットの送信回路、受信回路、これらパケットのIEEE1394シリアルバスBSを直接ドライブするフィジカル・レイヤ回路20とのインタフェース回路、125μs毎にリセットされるサイクルタイマ、サイクルモニタやCRC回路から構成されている。そして、たとえばサイクルタイマ等の時間データ等はCFR111を通してアイソクロナス通信系処理回路に供給される。
ホストインタフェース回路102は、主としてホストコンピュータとしてのCPU30と送信用FIFO104a、受信用FIFO104bとのアシンクロナス通信用パケットの書き込み、読み出し等の調停、並びに、CPU30とCFR111との各種データの送受信の調停を行う。
たとえばCPU30からは、アイソクロナス通信用パケットのSPH(ソースパケットヘッダ)に設定されるタイムスタンプ用遅延時間Txdelay がホストインタフェース102を通してCFR111にセットされる。
たとえばCPU30からは、アイソクロナス通信用パケットのSPH(ソースパケットヘッダ)に設定されるタイムスタンプ用遅延時間Txdelay がホストインタフェース102を通してCFR111にセットされる。
送信用FIFO104aには、IEEE1394シリアルバスBSに伝送させるアシンクロナス通信用パケットが格納され、受信用FIFO104bにはIEEE1394シリアルバスBSを伝送されてきたアシンクロナス通信用パケットが格納される。
アプリケーションインタフェース回路103は、MPEGトランスポータ40とアイソクロナス通信用送信前処理回路106およびアイソクロナス通信用受信後処理回路109とのクロック信号や制御信号等を含むMPEGトランスポートストリームデータの送受信の調停を行う。
リゾルバ105は、バスリセット時にIEEE1394シリアルバスBSを伝送されてきたセルフIDパケットの内容を解析し、CFR111に格納する。
送信前処理回路106、アプリケーションインタフェース回路103を介してMPEGトランスポータ40によるMPEGトランスポートストリームデータを受けて、IEEE1394規格のアイソクロナス通信用としてクワドレット(4バイト)単位にデータ長を調整し、かつ4バイトのソースパケットヘッダ(SPH)を付加し、FIFO110に格納する。
送信前処理回路106は、ソースパケットヘッダを付加するときに受信側のデータ出力時間を決定するタイムスタンプを設定するが、この設定は以下のように行われる。
まず、MPEGトランスポータ40からパケットの最終データを受け取ったタイミングで内部のサイクルレジスタの値をラッチする。
次に、CPU30からホストインタフェース102を介してCFR111にセットされた遅延時間Txdelay を上記サイクルレジスタの値に加算する。
そして、加算した値をタイムスタンプとして、受け取ったパケットのソースパケットヘッダに挿入(設定)する。
まず、MPEGトランスポータ40からパケットの最終データを受け取ったタイミングで内部のサイクルレジスタの値をラッチする。
次に、CPU30からホストインタフェース102を介してCFR111にセットされた遅延時間Txdelay を上記サイクルレジスタの値に加算する。
そして、加算した値をタイムスタンプとして、受け取ったパケットのソースパケットヘッダに挿入(設定)する。
図2は、ソースパケットヘッダにおけるタイムスタンプの具体的な構成を説明するための図である。
図2に示すように、受信側のデータ出力時間を決定するためのタイムスタンプは、25ビットで現時刻を表す。
すなわち、タイムスタンプは25ビットで構成され、下位12ビットがサイクルオフセットCO(cycle-offset)領域、上位13ビットがサイクルカウントCC(cycle-count) 領域として割り当てられている。
サイクルオフセットは0〜3071(12b 101111111111)の125μsをカウントし(クロックCLK=24.576MHz)、サイクルカウントは0〜7999(13b 1111100111111)の1秒をカウントするものである。
したがって、原則として、タイムスタンプの下位12ビットは3072以上を示すことはなく、上位13ビットは8000以上を示すことはない。
図2に示すように、受信側のデータ出力時間を決定するためのタイムスタンプは、25ビットで現時刻を表す。
すなわち、タイムスタンプは25ビットで構成され、下位12ビットがサイクルオフセットCO(cycle-offset)領域、上位13ビットがサイクルカウントCC(cycle-count) 領域として割り当てられている。
サイクルオフセットは0〜3071(12b 101111111111)の125μsをカウントし(クロックCLK=24.576MHz)、サイクルカウントは0〜7999(13b 1111100111111)の1秒をカウントするものである。
したがって、原則として、タイムスタンプの下位12ビットは3072以上を示すことはなく、上位13ビットは8000以上を示すことはない。
送信後処理回路107は、FIFO110に格納されたソースパケットヘッダを含むデータに対して図14に示すように、1394ヘッダ、CIPヘッダ1,2を付加してリンクコア101の送信回路に出力する。
具体的には、図14に示すように、データ長を表すdata-length 、このパケット転送されるチャネルの番号(0〜63のいずれか)を示すchannel 、処理のコードを表すtcode 、および各アプリケーションで規定される同期コードsyにより構成した1394ヘッダ、送信ノード番号のためのSID(Source node ID)領域、データブロックの長さのためのDBS(Data Block Size) 領域、パケット化におけるデータの分割数のためのFN(Fraction Number) 領域、パディングデータのクワドレット数のためのQPC(Quadlet Padding Count) 領域、ソースパケットヘッダの有無を表すフラグのためのSPH領域、アイソクロナスパケットの数を検出するカウンタのためのDBC領域により構成したCIPヘッダ1、並びに転送されるデータの種類を表す信号フォーマットのためのFMT領域、および信号フォーマットに対応して利用されるFDF(Format Dependent Field)領域により構成したCIPヘッダ2を付加する。
具体的には、図14に示すように、データ長を表すdata-length 、このパケット転送されるチャネルの番号(0〜63のいずれか)を示すchannel 、処理のコードを表すtcode 、および各アプリケーションで規定される同期コードsyにより構成した1394ヘッダ、送信ノード番号のためのSID(Source node ID)領域、データブロックの長さのためのDBS(Data Block Size) 領域、パケット化におけるデータの分割数のためのFN(Fraction Number) 領域、パディングデータのクワドレット数のためのQPC(Quadlet Padding Count) 領域、ソースパケットヘッダの有無を表すフラグのためのSPH領域、アイソクロナスパケットの数を検出するカウンタのためのDBC領域により構成したCIPヘッダ1、並びに転送されるデータの種類を表す信号フォーマットのためのFMT領域、および信号フォーマットに対応して利用されるFDF(Format Dependent Field)領域により構成したCIPヘッダ2を付加する。
受信前処理回路108は、リンクコア101を介してIEEE1394シリアルバスBSを伝送されてきたアイソクロナス通信用パケットを受けて、受信パケットの1394ヘッダ、CIPヘッダ1,2等の内容を解析し、データを復元してソースパケットヘッダとデータをFIFO110に格納する。
そして、ヘッダの解析処理において、CIPヘッダ1の第1クワドレットに設定されているDBCは、正常に連続データを送っている時は連続となることから、DBC不連続を検出した場合、すなわちソースパケットの不連続を検出した場合は、不連続だったということから、パケットが抜けたことを知らせるエラーマークとしてのエラービットERMをセットする。
そして、ヘッダの解析処理において、CIPヘッダ1の第1クワドレットに設定されているDBCは、正常に連続データを送っている時は連続となることから、DBC不連続を検出した場合、すなわちソースパケットの不連続を検出した場合は、不連続だったということから、パケットが抜けたことを知らせるエラーマークとしてのエラービットERMをセットする。
このエラービットERMは、ソースパケットヘッダの上位7ビットにうちの1ビット、たとえば図2に示すように、最上位ビットから2ビット目のビット30に割り当てられる。
なお、エラービットERMを設定(書き込みを行う)前には、ソースパケットヘッダの上位7ビットの情報は、CFR111(レジスタSPH−RSV)に格納するために退避しておく。
また、エラーパケット数は、タイムスタンプ情報に上書きすることになるが、エラービットはセットされ、送信後処理回路107でタイムスタンプは使用しないことから問題ない。
なお、エラービットERMを設定(書き込みを行う)前には、ソースパケットヘッダの上位7ビットの情報は、CFR111(レジスタSPH−RSV)に格納するために退避しておく。
また、エラーパケット数は、タイムスタンプ情報に上書きすることになるが、エラービットはセットされ、送信後処理回路107でタイムスタンプは使用しないことから問題ない。
受信後処理回路109は、FIFO110に格納されたソースパケットヘッダのタイムスタンプの時間データを読み出し、読み出したタイムスタンプデータ(TS)とリンクコア101内にあるサイクルタイマによるサイクルタイム(CT)を比較し、サイクルタイムCTがタイムスタンプデータTSより大きい場合には、FIFO110に格納されているソースパケットヘッダを除くデータをアプリケーションインタフェース回路103を介し、MPEG用トランスポートストリームデータとしてMPEGトランスポータ40に出力する。
そして、このFIFO110の読み出し時に、エラービットERMが「1」にセットされている場合には、すなわちDBC不連続マークがセットされているパケットを出力する場合には、まずエラービットをリセットし、ダミーのエラーパケットを1つ出力する。なお、このエラーパケットはDBCの不連続を示すために、FIFO110にないパケットを挿入するものである。
なお、次のデータ読み出しは、もはやDBC不連続マークはセットされていないことから、FIFO110から通常通り行う。
そして、このFIFO110の読み出し時に、エラービットERMが「1」にセットされている場合には、すなわちDBC不連続マークがセットされているパケットを出力する場合には、まずエラービットをリセットし、ダミーのエラーパケットを1つ出力する。なお、このエラーパケットはDBCの不連続を示すために、FIFO110にないパケットを挿入するものである。
なお、次のデータ読み出しは、もはやDBC不連続マークはセットされていないことから、FIFO110から通常通り行う。
次に、IEEE1394シリアルバスBSを伝送されてきたアイソクロナス通信用パケットを受信した場合の動作を説明する。
IEEE1394シリアルバスBSを伝送されてきたアイソクロナス通信用パケットは、リンクコア101を介して受信前処理回路108に入力される。
受信前処理回路108では、受信パケットの1394ヘッダ、CIPヘッダ1,2等の内容が解析され、データが復元されてソースパケットヘッダとデータがFIFO110に書き込まれる。
このヘッダの解析処理において、CIPヘッダ1の第1クワドレットに設定されているDBC領域のデータから、受信したソースパケットが正常な連続データであるか不連続であるかが判断される。
この判断の結果、正常の場合には、ソースパケットヘッダの上位7ビットにうちの最上位ビットから2ビット目のビット30に割り当てられたエラービットERMは「0」に保持される。一方、不連続であると判断された場合には、このエラービットERMが「1」にセットされる。
なお、エラービットERMの設定(書き込みを行う)前には、ソースパケットヘッダの上位7ビットの情報は、CFR111(レジスタSPH−RSV)に格納するために退避される。
受信前処理回路108では、受信パケットの1394ヘッダ、CIPヘッダ1,2等の内容が解析され、データが復元されてソースパケットヘッダとデータがFIFO110に書き込まれる。
このヘッダの解析処理において、CIPヘッダ1の第1クワドレットに設定されているDBC領域のデータから、受信したソースパケットが正常な連続データであるか不連続であるかが判断される。
この判断の結果、正常の場合には、ソースパケットヘッダの上位7ビットにうちの最上位ビットから2ビット目のビット30に割り当てられたエラービットERMは「0」に保持される。一方、不連続であると判断された場合には、このエラービットERMが「1」にセットされる。
なお、エラービットERMの設定(書き込みを行う)前には、ソースパケットヘッダの上位7ビットの情報は、CFR111(レジスタSPH−RSV)に格納するために退避される。
そして、受信後処理回路109において、FIFO110に格納されたソースパケットヘッダのタイムスタンプの時間データが読み出され、読み出したタイムスタンプデータ(TS)とリンクコア101内にあるサイクルタイマによるサイクルタイム(CT)が比較される。そして、サイクルタイムCTがタイムスタンプデータTSより大きい場合には、FIFO110に格納されているソースパケットヘッダを除くデータがアプリケーションインタフェース回路103を介し、MPEG用トランスポートストリームデータとしてMPEGトランスポータ40に出力される。
このパケットデータの出力にあたって、FIFO110からのソースパケットヘッダの読み出し時に、エラービットERMが「1」にセットされている場合には、まずエラービットがリセットされて、ダミーのエラーパケットが1つ生成されて出力される。
そして、次のデータ読み出しは、もはやDBC不連続マークはセットされていないことから、FIFO110から通常通り行われる。
このパケットデータの出力にあたって、FIFO110からのソースパケットヘッダの読み出し時に、エラービットERMが「1」にセットされている場合には、まずエラービットがリセットされて、ダミーのエラーパケットが1つ生成されて出力される。
そして、次のデータ読み出しは、もはやDBC不連続マークはセットされていないことから、FIFO110から通常通り行われる。
以上説明したように、本第1の実施形態によれば、受信前処理回路108において、CIPヘッダ1のDBC領域のデータから受信パケットが連続した正常のものか不連続のものであるかを判断し、不連続であると判断した場合にはソースパケットヘッダの上位7ビットの1ビット、たとえばビット30に割り当てたエラービットERMを「1」にセットしてFIFO110に書き込み、受信後処理回路109においてFIFO110の読み出し時に、エラービットEMRが「0」の場合にはFIFO110に格納されたデータをアプリケーション側に出力し、エラービットEMRが「1」の場合にはエラービットをリセットして、ダミーのエラーパケットを出力するようにしたので、ソースパケットサイズが可変であっても、回路規模の増大を招くことなく簡単にエラービットを設定することができる利点がある。
(第2実施形態)
次に、IEEE1394シリアルインタフェースに適用される本発明に係るMPEG用信号処理回路の第2の実施形態について説明する。
次に、IEEE1394シリアルインタフェースに適用される本発明に係るMPEG用信号処理回路の第2の実施形態について説明する。
本第2の実施形態では、上述した第1の実施形態ではエラービットを設定する例としてソースパケットの不連続を検出した場合を挙げたが、本第2の実施形態では、受信したパケットに付加されているタイムスタンプの値に、存在するはずのないタイムスタンプの値があった場合には受信前処理回路108でエラーマークとしてのエラービットをセットし、受信後処理回路109で、エラービットがセットされている場合には強制的にFIFO110に格納した受信データをアプリケーション側に出力するように構成される。
前述したように、タイムスタンプの下位12ビットは3072以上を示すことはなく、上位13ビットは8000以上を示すことはない。
しかしながら、データ化けや異なるシステム同士を接続した場合に予期せぬ設定がなされ、タイムスタンプの下位12ビットが3072以上を示し、あるいは上位13ビットが8000以上を示すことが想定される。
しかしながら、データ化けや異なるシステム同士を接続した場合に予期せぬ設定がなされ、タイムスタンプの下位12ビットが3072以上を示し、あるいは上位13ビットが8000以上を示すことが想定される。
この場合、エラービットには、たとえば図2に示すように、ソースパケットヘッダの上位7ビットのうちの最上位ビット(MSB)をタイムスタンプインバリッドフラグTSIF(Time Stamp Invalid Flag) として割り当てる。
受信前処理回路108は、ソースパケットヘッダの上位7ビットをCFR111に格納したら、まずTSIFを「0」に初期化し、上述した存在しないタイムスタンプの値があった場合にTSIFを「1」にセットする。
受信前処理回路108は、ソースパケットヘッダの上位7ビットをCFR111に格納したら、まずTSIFを「0」に初期化し、上述した存在しないタイムスタンプの値があった場合にTSIFを「1」にセットする。
したがって、本第2の実施形態では、サイクルタイムCTがタイムスタンプデータTSより大きい場合、FIFO110に格納した受信データがアプリケーション側に出力されることはもとより、通常の動作であるが、タイムスタンプの下位12ビットは3072以上を示し、あるいは上位13ビットは8000以上を示す場合には、即座にFIFO110に格納した受信データがアプリケーション側に出力される。
本第2の実施形態によれば、上述した第1の実施形態と同様に、ソースパケットサイズが可変であっても、回路規模の増大を招くことなく簡単にエラービットを設定することができ、また、安定な動作を実現できる利点がある。
なお、上述した第1および第2の実施形態では、エラービットをソースパケットヘッダ(SPH)の上位7ビットのうちの1ビットに割り当てるようにしたが、FIFO110に格納されるパケット1つ1つにエラーマークを設ける構成であれば、本発明がこれに限定されるものでないことはいうまでもない。
すなわち、いわゆるFIFOの各パケットバンクにエラーマークを1つずつ設ければよい。
ただし、ソースパケットヘッダ(SPH)の上位7ビットのうちのいずれかを割り当てることにより、ソースパケットのサイズが変わり、FIFO中のパケットバンク数が変化しても影響を受けないという利点がある。
すなわち、いわゆるFIFOの各パケットバンクにエラーマークを1つずつ設ければよい。
ただし、ソースパケットヘッダ(SPH)の上位7ビットのうちのいずれかを割り当てることにより、ソースパケットのサイズが変わり、FIFO中のパケットバンク数が変化しても影響を受けないという利点がある。
(第3実施形態)
図3は、IEEE1394シリアルインタフェースに適用される本発明に係るMPEG用信号処理回路の第3の実施形態を示すブロック構成図である。
図3は、IEEE1394シリアルインタフェースに適用される本発明に係るMPEG用信号処理回路の第3の実施形態を示すブロック構成図である。
本第3の実施形態が前述した第1の実施形態と異なる点は、送信後処理回路107Aにおいて、CPU30によりCFR111に設定される単位パケットの分割数に応じてレイト(LATE)スレッショルドLTHを設定し、送信前処理回路106によってFIFO110に格納されたソースパケットのソースパケットヘッダに設定されているタイムスタンプの値TSとリンクコア101内にあるサイクルタイマによるサイクルタイム(CT)、すなわち現時刻CTおよびLATEスレッショルドLTHとの関係から、送信前処理回路106で設定されFIFO110に格納されているタイムスタンプが有効か否かの判別を行い、有効な場合にパケットを送信を行い、無効の場合には送信せずに次のパケットの処理を行うようにしたことにある。
以下、第1の実施形態と異なる機能を有するリンク・レイヤ回路10Aにおける送信後処理回路107A、並びに受信前処理回路108Aおよび受信後処理回路109Aの具体的な機能について説明する。
送信後処理回路107Aは、FIFO110に格納されたソースパケットヘッダを含むデータに対して図14に示すように、1394ヘッダ、CIPヘッダ1,2を付加してリンクコア101の送信回路に出力する。
この出力時において、送信後処理回路107Aは、FIFO110に格納されたソースパケットのソースパケットヘッダに設定されているタイムスタンプの値TS(サイクルカウントCC領域の値)とリンクコア101内にあるサイクルタイマによるサイクルタイム(CT)、すなわち現時刻CTとの関係からLATE判断処理を行い、各パケット毎に送信を行うか否かの判断を行う。
そして、このLATE判断処理にあたっては、CPU30によりCFR111に設定される単位パケットの分割数(または合成数)に応じてLATEスレッショルドLTHを設定し、このLATEスレッショルドLTHを判断処理の一条件として用いる。
LATEスレッショルドLTHは、1サイクルでいくつのパケットを送るかで変わり、たとえば8分割のときは「11」に設定される。
なお、LATE処理とは、タイムスタンプの値TSと現時刻CTとの関係からパケットを送信しても受信側に到達したときは時間が過ぎてしまい無意味になってしまう場合には、そのパケットの送信を行わない処理をいう。
この出力時において、送信後処理回路107Aは、FIFO110に格納されたソースパケットのソースパケットヘッダに設定されているタイムスタンプの値TS(サイクルカウントCC領域の値)とリンクコア101内にあるサイクルタイマによるサイクルタイム(CT)、すなわち現時刻CTとの関係からLATE判断処理を行い、各パケット毎に送信を行うか否かの判断を行う。
そして、このLATE判断処理にあたっては、CPU30によりCFR111に設定される単位パケットの分割数(または合成数)に応じてLATEスレッショルドLTHを設定し、このLATEスレッショルドLTHを判断処理の一条件として用いる。
LATEスレッショルドLTHは、1サイクルでいくつのパケットを送るかで変わり、たとえば8分割のときは「11」に設定される。
なお、LATE処理とは、タイムスタンプの値TSと現時刻CTとの関係からパケットを送信しても受信側に到達したときは時間が過ぎてしまい無意味になってしまう場合には、そのパケットの送信を行わない処理をいう。
以下に、送信後処理回路107Aの具体的なLATE判断処理について、図4のフローチャートに関連つけて説明する。
まず、ステップS1において、リンクコア101内にあるサイクルタイマによるサイクルタイム(CT)、すなわち現時刻CTがタイムスタンプの値TS以下であるか否かの判別を行う。
ステップS1において肯定的な判別結果が得られた場合(CT≦TS)、ステップS2の判別動作を行う。
すなわち、タイムスタンプの値TSが有効であるか否かのチェックを行う。
具体的には、タイムスタンプの値TSは現時刻CTに最大63を加算したものであることから、タイムスタンプ値TSから現時刻CTを減じた時間が遅延時間Txdelay の最大値Txdelay max (64)より小さいはずである。
したがって、減算した結果が最大値Txdelay max (64)より小さいか否かの判別を行うとともに、タイムスタンプ値TSから現時刻CTを減じた時間が、パケットの分割数に応じて設定されるLATEスレッショルドLTH以上であるか否かの判別を行う。
そして、肯定的な判別結果が得られると、FIFO110に格納されたソースパケットに1394ヘッダ、CIPヘッダ1,2を付加してリンクコア101の送信回路に出力し(S3)、次のパケットを処理するため、ステップS1の処理に移行する。
否定的な判別結果が得られた場合には、タイムスタンプの値TSが無効であるとしてそのパケットを送信せずに(未送信)、次のパケットを処理するため、ステップS1の処理に移行する(S4)。
ステップS1において肯定的な判別結果が得られた場合(CT≦TS)、ステップS2の判別動作を行う。
すなわち、タイムスタンプの値TSが有効であるか否かのチェックを行う。
具体的には、タイムスタンプの値TSは現時刻CTに最大63を加算したものであることから、タイムスタンプ値TSから現時刻CTを減じた時間が遅延時間Txdelay の最大値Txdelay max (64)より小さいはずである。
したがって、減算した結果が最大値Txdelay max (64)より小さいか否かの判別を行うとともに、タイムスタンプ値TSから現時刻CTを減じた時間が、パケットの分割数に応じて設定されるLATEスレッショルドLTH以上であるか否かの判別を行う。
そして、肯定的な判別結果が得られると、FIFO110に格納されたソースパケットに1394ヘッダ、CIPヘッダ1,2を付加してリンクコア101の送信回路に出力し(S3)、次のパケットを処理するため、ステップS1の処理に移行する。
否定的な判別結果が得られた場合には、タイムスタンプの値TSが無効であるとしてそのパケットを送信せずに(未送信)、次のパケットを処理するため、ステップS1の処理に移行する(S4)。
一方、ステップS1において、現時刻CTがタイムスタンプの値TSより大きいと判別した場合には、ステップS5において、現時刻CTからタイムスタンプが示す時間TSを減じた時間が8000から64を減じた値以上であるか否かを判別するとともに、現時刻CTからタイムスタンプが示す時間TSを減じた時間が8000からLATEスレッショルドLTHを減じた値以下であるか否かを判別する(S5)。
すなわち、タイムスタンプの値TSが0秒を挟んで待っているが、現時刻CTが実際は通りすぎているのではないか否かをチェックする。
そして、ステップS5において、肯定的な判別結果が得られた場合、タイムスタンプは有効であり、サイクルタイムは未だ通り過ぎていないと判断され、FIFO110に格納されたソースパケットに1394ヘッダ、CIPヘッダ1,2を付加してリンクコア101の送信回路に出力し(S6)、次のパケットを処理するため、ステップS1の処理に移行する。
ステップS5において、否定的な判別結果が得られた場合、サイクルタイムはタイムスタンプが示す時間を通り過ぎたものと判断し、タイムスタンプの値TSが無効であるとしてそのパケットを送信せずに(未送信)、次のパケットを処理するため、ステップS1の処理に移行する(S7)。
すなわち、タイムスタンプの値TSが0秒を挟んで待っているが、現時刻CTが実際は通りすぎているのではないか否かをチェックする。
そして、ステップS5において、肯定的な判別結果が得られた場合、タイムスタンプは有効であり、サイクルタイムは未だ通り過ぎていないと判断され、FIFO110に格納されたソースパケットに1394ヘッダ、CIPヘッダ1,2を付加してリンクコア101の送信回路に出力し(S6)、次のパケットを処理するため、ステップS1の処理に移行する。
ステップS5において、否定的な判別結果が得られた場合、サイクルタイムはタイムスタンプが示す時間を通り過ぎたものと判断し、タイムスタンプの値TSが無効であるとしてそのパケットを送信せずに(未送信)、次のパケットを処理するため、ステップS1の処理に移行する(S7)。
受信前処理回路108Aは、リンクコア101を介してIEEE1394シリアルバスBSを伝送されてきたアイソクロナス通信用パケットを受けて、受信パケットの1394ヘッダ、CIPヘッダ1,2等の内容を解析し、データを復元してソースパケットヘッダとデータをFIFO110に格納する。
受信後処理回路109Aは、FIFO110に格納されたソースパケットヘッダのタイムスタンプの時間データを読み出し、読み出したタイムスタンプデータ(TS)とリンクコア101内にあるサイクルタイマによるサイクルタイム(CT)を比較し、サイクルタイムCTがタイムスタンプデータTSより大きい場合には、FIFO110に格納されているソースパケットヘッダを除くデータをアプリケーションインタフェース回路103を介し、MPEG用トランスポートストリームデータとしてMPEGトランスポータ40に出力する。
次に、アイソクロナス通信用パケットにタイムスタンプをセットしてIEEE1394シリアルバスBSに送信する場合の動作を、図4のフローチャートを参照しつつ説明する。
送信時には、CPU30によりタイムスタンプとして加算すべき遅延時間Txdelay がCFR111にセットされるとともに、たとえば送信する単位パケットの分割数がCFR111にセットされる。
そして、送信前処理回路106において、アプリケーションインタフェース回路103を介してMPEGトランスポータ40によるMPEGトランスポートストリームデータを受けて、IEEE1394規格のアイソクロナス通信用としてクワドレット(4バイト)単位にデータ長が調整され、かつ4バイトのソースパケットヘッダ(SPH)が付加され、FIFO110に格納される。
なお、ソースパケットヘッダを付加するときに、送信前処理回路106においては、受信側のデータ出力時間を決定するタイムスタンプが、MPEGトランスポータ40からパケットの最終データを受け取ったタイミングで内部のサイクルレジスタの値に、CPU30からホストインタフェース102を介してCFR111にセットされた遅延時間Txdelay が加算されて、加算した値がタイムスタンプとして、受け取ったパケットのソースパケットヘッダに挿入される。
そして、送信前処理回路106において、アプリケーションインタフェース回路103を介してMPEGトランスポータ40によるMPEGトランスポートストリームデータを受けて、IEEE1394規格のアイソクロナス通信用としてクワドレット(4バイト)単位にデータ長が調整され、かつ4バイトのソースパケットヘッダ(SPH)が付加され、FIFO110に格納される。
なお、ソースパケットヘッダを付加するときに、送信前処理回路106においては、受信側のデータ出力時間を決定するタイムスタンプが、MPEGトランスポータ40からパケットの最終データを受け取ったタイミングで内部のサイクルレジスタの値に、CPU30からホストインタフェース102を介してCFR111にセットされた遅延時間Txdelay が加算されて、加算した値がタイムスタンプとして、受け取ったパケットのソースパケットヘッダに挿入される。
送信後処理回路107Aでは、CPU30によりCFR111に設定される単位パケットの分割数に応じてLATEスレッショルドLTHが設定される。
そして、FIFO110に格納されたソースパケットのソースパケットヘッダに設定されているタイムスタンプの値TSとリンクコア101内にあるサイクルタイマによるサイクルタイム(CT)、すなわち現時刻CTおよびLATEスレッショルドLTHとの関係から、送信前処理回路106で設定されFIFO110に格納されているタイムスタンプが有効か否かの判別が行われる。
そして、FIFO110に格納されたソースパケットのソースパケットヘッダに設定されているタイムスタンプの値TSとリンクコア101内にあるサイクルタイマによるサイクルタイム(CT)、すなわち現時刻CTおよびLATEスレッショルドLTHとの関係から、送信前処理回路106で設定されFIFO110に格納されているタイムスタンプが有効か否かの判別が行われる。
すなわち、まず、リンクコア101内にあるサイクルタイマによるサイクルタイム(CT)、すなわち現時刻CTがタイムスタンプの値TS以下であるか否かの判別が行われる。その結果、現時刻CTがタイムスタンプの値TS以下である場合には、タイムスタンプ値TSから現時刻CTを減じた時間が遅延時間Txdelay の最大値Txdelay max (64)より小さいか否かの判別が行れるとともに、タイムスタンプ値TSから現時刻CTを減じた時間が、パケットの分割数に応じて設定されるLATEスレッショルドLTH以上であるか否かの判別が行われる。
そして、タイムスタンプ値TSから現時刻CTを減じた時間が遅延時間Txdelayの最大値Txdelay max(64)より小さく、かつ、タイムスタンプ値TSから現時刻CTを減じた時間がLATEスレッショルドLTH以上の場合には、FIFO110に格納されたソースパケットに1394ヘッダ、CIPヘッダ1,2が付加されて出力される。そして、次のパケットの処理が行われる。
一方、タイムスタンプ値TSから現時刻CTを減じた時間が遅延時間Txdelayの最大値Txdelay max より大きい、あるいはタイムスタンプ値TSから現時刻CTを減じた時間がLATEスレッショルドLTHより小さい場合には、タイムスタンプの値TSが無効であるとしてそのパケットを送信せずに(未送信)、次のパケット処理に移行される。
そして、タイムスタンプ値TSから現時刻CTを減じた時間が遅延時間Txdelayの最大値Txdelay max(64)より小さく、かつ、タイムスタンプ値TSから現時刻CTを減じた時間がLATEスレッショルドLTH以上の場合には、FIFO110に格納されたソースパケットに1394ヘッダ、CIPヘッダ1,2が付加されて出力される。そして、次のパケットの処理が行われる。
一方、タイムスタンプ値TSから現時刻CTを減じた時間が遅延時間Txdelayの最大値Txdelay max より大きい、あるいはタイムスタンプ値TSから現時刻CTを減じた時間がLATEスレッショルドLTHより小さい場合には、タイムスタンプの値TSが無効であるとしてそのパケットを送信せずに(未送信)、次のパケット処理に移行される。
また、現時刻CTがタイムスタンプの値TSより大きいと判別した場合には、現時刻CTからタイムスタンプが示す時間TSを減じた時間が8000から64を減じた値以上であるか否かが判別されるとともに、現時刻CTからタイムスタンプが示す時間TSを減じた時間が8000からLATEスレッショルドLTHを減じた値以下であるか否かが判別される。
そして、現時刻CTからタイムスタンプが示す時間TSを減じた時間が8000から64を減じた値以上であり、かつ、現時刻CTからタイムスタンプが示す時間TSを減じた時間が8000からLATEスレッショルドLTHを減じた値以下の場合には、FIFO110に格納されたソースパケットに1394ヘッダ、CIPヘッダ1,2が付加されて出力される。そして、次のパケットの処理が行われる。
一方、現時刻CTからタイムスタンプが示す時間TSを減じた時間が8000から64を減じた値より小さく、あるいは現時刻CTからタイムスタンプが示す時間TSを減じた時間が8000からLATEスレッショルドLTHを減じた値より大きい場合には、タイムスタンプの値TSが無効であるとしてそのパケットを送信せずに(未送信)、次のパケット処理に移行される。
そして、現時刻CTからタイムスタンプが示す時間TSを減じた時間が8000から64を減じた値以上であり、かつ、現時刻CTからタイムスタンプが示す時間TSを減じた時間が8000からLATEスレッショルドLTHを減じた値以下の場合には、FIFO110に格納されたソースパケットに1394ヘッダ、CIPヘッダ1,2が付加されて出力される。そして、次のパケットの処理が行われる。
一方、現時刻CTからタイムスタンプが示す時間TSを減じた時間が8000から64を減じた値より小さく、あるいは現時刻CTからタイムスタンプが示す時間TSを減じた時間が8000からLATEスレッショルドLTHを減じた値より大きい場合には、タイムスタンプの値TSが無効であるとしてそのパケットを送信せずに(未送信)、次のパケット処理に移行される。
送信側でタイムスタンプが有効であるとしてIEEE1394シリアルバスBSを伝送されてきたアイソクロナス通信用パケットは、リンクコア101を介して受信前処理回路108Aに入力される。
受信前処理回路108Aでは、受信パケットの1394ヘッダ、CIPヘッダ1,2等の内容が解析され、データが復元されてソースパケットヘッダとデータがFIFO110に書き込まれる。
受信前処理回路108Aでは、受信パケットの1394ヘッダ、CIPヘッダ1,2等の内容が解析され、データが復元されてソースパケットヘッダとデータがFIFO110に書き込まれる。
受信後処理回路109Aにおいては、FIFO110に格納されたソースパケットヘッダのタイムスタンプの時間データが読み出される。そしてし読み出したタイムスタンプデータ(TS)とリンクコア101内にあるサイクルタイマによるサイクルタイム(CT)が比較され、サイクルタイムCTがタイムスタンプデータTSより大きい場合には、FIFO110に格納されているソースパケットヘッダを除くデータがアプリケーションインタフェース回路103を介し、MPEG用トランスポートストリームデータとしてMPEGトランスポータ40に出力される。
以上説明したように、本第3の実施形態によれば、送信後処理回路107Aにおいて、CPU30によりCFR111に設定される単位パケットの分割数に応じてLATEスレッショルドLTHを設定し、送信前処理回路106によってFIFO110に格納されたソースパケットのソースパケットヘッダに設定されているタイムスタンプの値TSとリンクコア101内にあるサイクルタイマによるサイクルタイム(CT)、すなわち現時刻CTおよびLATEスレッショルドLTHとの関係から、送信前処理回路106で設定されFIFO110に格納されているタイムスタンプが有効か否かの判別を行い、有効な場合にパケットを送信を行い、無効の場合には送信せずに次のパケットの処理を行うようにしたので、送信のレイト処理を自動的に行うことができ、的確なパケット送信を実現できる。
(第4実施形態)
図5は、IEEE1394シリアルインタフェースに適用される本発明に係るMPEG用信号処理回路の第4の実施形態を示すブロック構成図である。
図5は、IEEE1394シリアルインタフェースに適用される本発明に係るMPEG用信号処理回路の第4の実施形態を示すブロック構成図である。
本第4の実施形態が前述した第1の実施形態と異なる点は、受信前処理回路108BからFIFO110への受信データの書き込みを行ったことを示す格納情報信号S108をパケットの書き込み毎に受信後処理回路109Bに出力し、受信後処理回路109Bにおいて、受信したパケットに付加されているタイムスタンプのデータTSと内部のサイクルカウンタによるサイクルタイムCTとを比較し、サイクルタイムCTがタイムスタンプデータTSより大きい場合(CT>TS)、FIFO110に格納した受信データを出力するようにしたことにある。
以下、第1の実施形態と異なる機能を有するリンク・レイヤ回路10Bにおける受信前処理回路108Aおよび受信後処理回路109Aの具体的な機能について説明する。
受信前処理回路108Bは、リンクコア101を介してIEEE1394シリアルバスBSを伝送されてきたアイソクロナス通信用パケットを受けて、受信パケットの1394ヘッダ、CIPヘッダ1,2等の内容を解析し、データを復元してソースパケットヘッダとデータをFIFO110に格納し、かつ、このFIFO110へのデータの書き込みを行ったことを示す格納情報信号S108をパケットの書き込み毎に受信後処理回路109Bに出力する。
受信後処理回路109Bは、たとえば図6に示すように、内部レジスタ(REG)1091、比較回路(COMP)1092、およびデータ読出制御回路(CTL)1093を備えている。
そして、受信前処理回路108Bによる格納情報信号S108の受信毎に、内部レジスタ1091にFIFO110に格納されたソースパケットヘッダのタイムスタンプの時間データを読み出し、読み出したタイムスタンプデータ(TS)とリンクコア101内にあるサイクルタイマによるサイクルタイム(CT)を比較し、サイクルタイムCTがタイムスタンプデータTSより大きい場合にはデータ読出指示用パルス信号S1092をデータ読出制御回路1093に出力する。なお、この比較回路1092の具体的な比較動作については後述する。
データ読出制御回路1093は、パルス信号S1092を受けると、データ読出信号S1093を出力し、FIFO110に格納されているソースパケットヘッダを除くデータをアプリケーションインタフェース回路103を介し、MPEG用トランスポートストリームデータとしてMPEGトランスポータ40に出力する。
そして、受信前処理回路108Bによる格納情報信号S108の受信毎に、内部レジスタ1091にFIFO110に格納されたソースパケットヘッダのタイムスタンプの時間データを読み出し、読み出したタイムスタンプデータ(TS)とリンクコア101内にあるサイクルタイマによるサイクルタイム(CT)を比較し、サイクルタイムCTがタイムスタンプデータTSより大きい場合にはデータ読出指示用パルス信号S1092をデータ読出制御回路1093に出力する。なお、この比較回路1092の具体的な比較動作については後述する。
データ読出制御回路1093は、パルス信号S1092を受けると、データ読出信号S1093を出力し、FIFO110に格納されているソースパケットヘッダを除くデータをアプリケーションインタフェース回路103を介し、MPEG用トランスポートストリームデータとしてMPEGトランスポータ40に出力する。
次に、IEEE1394シリアルバスBSを伝送されてきたアイソクロナス通信用パケットを受信した場合の動作を、受信後処理回路109Bにおける較回路1092の具体的な比較動作を中心に、図7のフローチャートを参照しつつ説明する。
IEEE1394シリアルバスBSを伝送されてきたアイソクロナス通信用パケットは、リンクコア101を介して受信前処理回路108Bに入力される。
受信前処理回路108Bでは、受信パケットの1394ヘッダ、CIPヘッダ1,2等の内容が解析され、データが復元されてソースパケットヘッダとデータがFIFO110に書き込まれる。そして、このFIFO110へのデータの書き込みを行ったこと示す格納情報信号S108がパケットの書き込み毎に受信後処理回路109Bに出力される。
受信前処理回路108Bでは、受信パケットの1394ヘッダ、CIPヘッダ1,2等の内容が解析され、データが復元されてソースパケットヘッダとデータがFIFO110に書き込まれる。そして、このFIFO110へのデータの書き込みを行ったこと示す格納情報信号S108がパケットの書き込み毎に受信後処理回路109Bに出力される。
受信後処理回路109Bにおいては、図7に示すように、信号S108を受けてFIFO110からタイムスタンプが内部レジスタ1091に読み出されるとともに、その時のサイクルタイム(Cycle Time;CT) 〔25〕、すなわち、現時刻の秒の桁が内部レジスタ1091に読み出される(S11)。
そして、比較回路1092において、内部レジスタ1091に読み出されたタイムスタンプデータTSとリンクコア101内にあるサイクルタイマによるサイクルタイム(CT)、すなわち現時刻CTとが比較される(S12)。
このとき、タイムスタンプの時間TSが0秒の位置を挟んでいるか否かが確認される。これは、0秒を挟んでいると単純な大小比較では処理できないことによる。
このとき、タイムスタンプの時間TSが0秒の位置を挟んでいるか否かが確認される。これは、0秒を挟んでいると単純な大小比較では処理できないことによる。
ステップS12において、TSがCTより小さいと判別された場合には、ステップS13において、現時刻CTからタイムスタンプが示す時間TSを減じた時間が8000から64を減じた値以上であるか否かが判別される。
すなわち、TSが0秒を挟んで待っているが、現時刻CTが実際は通りすぎているのではないか否かがチェックされる。
なお、サイクルタイムは25ビットで構成され、上位13ビットをサイクルカウント(cycle-count) 領域、下位12ビットをサイクルオフセット(cycle-offset)領域として用いられている。
また、送信側ではタイムスタンプのサイクルカウントには遅延値txdelay が最大63ビットしか付加されない。
サイクルタイムのサイクルカウントは、0〜7999をループする。
そこで、ステップS13において、肯定的な判別結果が得られた場合、タイムスタンプは有効であり、サイクルタイムは未だ通り過ぎていないと判断され、ステップS14の処理に移行する。
ステップS13において、否定的な判別結果が得られた場合、サイクルタイムはタイムスタンプが示す時間を通り過ぎたものと判断され、ステップS18の処理に移行する。
すなわち、TSが0秒を挟んで待っているが、現時刻CTが実際は通りすぎているのではないか否かがチェックされる。
なお、サイクルタイムは25ビットで構成され、上位13ビットをサイクルカウント(cycle-count) 領域、下位12ビットをサイクルオフセット(cycle-offset)領域として用いられている。
また、送信側ではタイムスタンプのサイクルカウントには遅延値txdelay が最大63ビットしか付加されない。
サイクルタイムのサイクルカウントは、0〜7999をループする。
そこで、ステップS13において、肯定的な判別結果が得られた場合、タイムスタンプは有効であり、サイクルタイムは未だ通り過ぎていないと判断され、ステップS14の処理に移行する。
ステップS13において、否定的な判別結果が得られた場合、サイクルタイムはタイムスタンプが示す時間を通り過ぎたものと判断され、ステップS18の処理に移行する。
ステップS14においては、CT>TSと0秒を挟んでTS待ちをしていることから、CTとの単純な比較はできない。
ここでは、ステップS11でレジスタに読み出した現時刻の秒の桁CT〔25〕が現在のCT〔25〕(Refsec) と不一致となるまで待たれる。
そして、不一致となると、TSとCTの秒の桁が同一となったと判断される(TSは1秒以上待つことはあり得ない)。
ここでは、ステップS11でレジスタに読み出した現時刻の秒の桁CT〔25〕が現在のCT〔25〕(Refsec) と不一致となるまで待たれる。
そして、不一致となると、TSとCTの秒の桁が同一となったと判断される(TSは1秒以上待つことはあり得ない)。
ステップS14の条件を満足すると、ステップS15において、TS≦CTになったか否かが判別される(単純比較される)。
そして、TS≦CTになった時点でFIFO110からのパケット(データ)の読み出しが開始される。
そして、TS≦CTになった時点でFIFO110からのパケット(データ)の読み出しが開始される。
一方、ステップS12において、TSがCTより大きいと判別された場合(TS>CT)には、単純比較を行うことができるが、まずステップS16においてTSが有効であるか否かのチェックが行われる。
具体的には、TSはCTに最大63を加算したものであることから、タイムスタンプが示す時間TSから現時刻CTを減じた時間が64より小さいはずであり、ステップS6においてその判別が行われる。
そして、否定的な判別結果が得られた場合には、ステップS18に移行し、そのCTはすでにTSを通りすぎていることから、直ちにFIFO110からパケットが読み出され、出力される。
具体的には、TSはCTに最大63を加算したものであることから、タイムスタンプが示す時間TSから現時刻CTを減じた時間が64より小さいはずであり、ステップS6においてその判別が行われる。
そして、否定的な判別結果が得られた場合には、ステップS18に移行し、そのCTはすでにTSを通りすぎていることから、直ちにFIFO110からパケットが読み出され、出力される。
ステップS16において、肯定的な判別結果が得られた場合、TSが有効であることから、TS待ちが行われる。ここでTSが有効で秒の桁がCT〔25〕と不一致となることはないが、ステップS17において不一致となったか否かの判別が行われ、万が一、不一致になった場合には強制的にFIFO110からパケットが読み出され、出力される。
以上説明したように、本第4の実施形態によれば、受信前処理回路108BからFIFO110への受信データの書き込みを行ったことを示す格納情報信号S108をパケットの書き込み毎に受信後処理回路109Bに出力し、受信後処理回路109Bにおいて、受信したパケットに付加されているタイムスタンプのデータTSと内部のサイクルカウンタによるサイクルタイムCTとを比較し、サイクルタイムCTがタイムスタンプデータTSより大きい場合(CT>TS)、FIFO110に格納した受信データを出力するようにしたので、IEEE1394シリアルバスBSを伝送されてきたアイソクロナス通信用パケットをMPEGトランスポータ40(アプリケーション)側へ規定された時間に確実に出力することができる。
(第5実施形態)
図8は、IEEE1394シリアルインタフェースに適用される本発明に係るMPEG用信号処理回路の第5の実施形態を説明するためのブロック構成図である。
図8は、IEEE1394シリアルインタフェースに適用される本発明に係るMPEG用信号処理回路の第5の実施形態を説明するためのブロック構成図である。
本第5の実施形態では、上述した第4の実施形態のように受信したパケットに付加されているタイムスタンプのデータTSと内部のサイクルカウンタによるサイクルタイムCTとを比較し、サイクルタイムCTがタイムスタンプデータTSより大きい場合、FIFO110に格納した受信データをアプリケーション側に出力する構成に加えて、前述した第2の実施形態の場合と同様に、存在するはずのないタイムスタンプの値があった場合には強制的にFIFO110に格納した受信データをアプリケーション側に出力するように構成している。
前述したように、タイムスタンプの下位12ビットは3072以上を示すことはなく、上位13ビットは8000以上を示すことはない。
しかしながら、データ化けや異なるシステム同士を接続した場合に予期せぬ設定がなされ、タイムスタンプの下位12ビットは3072以上を示し、あるいは上位13ビットは8000以上を示すことが想定される。
しかしながら、データ化けや異なるシステム同士を接続した場合に予期せぬ設定がなされ、タイムスタンプの下位12ビットは3072以上を示し、あるいは上位13ビットは8000以上を示すことが想定される。
この場合、システムの動作が停止してまうことが予測されることから、受信後処理回路109Cを、図8に示すように、図6に示した比較回路1092に対して並列に、内部レジスタタ1091に読み出されたタイムスタンプの下位12ビットが3071を越えているか否かを判別し、越えている場合にデータ読出指示用パルス信号S1094を出力する判別回路1094と、タイムスタンプの上位13ビットが7999を越えているか否かを判別し、越えている場合にデータ読出指示用パルス信号S1095を出力する判別回路1095と、比較回路1092、判別回路1094および1095の出力信号の論理和をとるオアゲート1096を設けて、オアゲート1096の出力をデータ読出制御回路1093に入力するように構成している。
したがって、本第5の実施形態では、サイクルタイムCTがタイムスタンプデータTSより大きい場合、FIFO110に格納した受信データをアプリケーション側に出力されることはもとより、通常の動作であるが、タイムスタンプの下位12ビットは3072以上を示し、あるいは上位13ビットは8000以上を示す場合には、即座にFIFO110に格納した受信データをアプリケーション側に出力される。
本第5の実施形態によれば、上述した第4の実施形態と同様に、アプリケーション側へ規定された時間にパケットを出力することができるという効果を得られることはもとより、存在しないタイムスタンプの値があったとしてもシステムが止まることはなく、安定な動作を実現できる。
(第6実施形態)
次に、IEEE1394シリアルインターフェスに適用される本発明に係るMPEG用信号処理回路の第6の実施形態について説明する。
次に、IEEE1394シリアルインターフェスに適用される本発明に係るMPEG用信号処理回路の第6の実施形態について説明する。
本第6の実施形態では、上述した第4の実施形態のように受信したパケットに付加されているタイムスタンプのデータTSと内部のサイクルカウンタによるサイクルタイムCTとを比較し、サイクルタイムCTがタイムスタンプデータTSより大きい場合、FIFO110に格納した受信データをアプリケーション側に出力する構成に加えて、CPU30からCFR111にタイムスタンプディセイブルというフラグを設定して、タイムスタンプの値に関係なく受信しFIFO110に格納した受信データを直ちにアプリケーション側に出力するように構成される。
本第6の実施形態においては、CFR111にタイムスタンプディセイブルというフラグTSDFが設定されると、データ読出制御回路1093は受信前処理回路108BからFIFO110に受信データを書き込んだ旨の格納情報信号S108を受けると直ちにFIFO110に格納した受信データをアプリケーション側に出力する。
本第6の実施形態によれば、CPU30からの設定により、受信パケットに付加されてるタイムスタンプに関係なくFIFO110に格納した受信データを直ちに出力できるので、素早いデータ出力を実現でき、またFIFO110の容量を少なくすることができる利点がある。
(第7実施形態)
図9は、IEEE1394シリアルインターフェースに適用される本発明に係るMPEG用信号処理回路の第7の実施形態を示すブロック構成図である。
図9は、IEEE1394シリアルインターフェースに適用される本発明に係るMPEG用信号処理回路の第7の実施形態を示すブロック構成図である。
本第7の実施形態が前述した第4の実施形態と異なる点は、送信前処理回路106AでCPU30により設定されるタイムスタンプ用遅延時間Txdelay をラッチし、ラッチした遅延時間TxdelayLとデータ量に合わせてCPU30により新たに設定される遅延時間TxdelayNとを比較し、遅延時間TxdelayNがラッチされている遅延時間TxdelayLより小さくなった場合には、データ読出制御信号S106を送信後処理回路107Bに出力し、送信後処理回路107Bでデータ読出制御信号S106をアクティブで受けた場合には、格納情報信号S106が示す書き込みポインターに読み出しポインターを一致させてデータ量が増えた新しい送信パケットをFIFO110から読み出し、データ量が増える前に設定された遅延時間に基づくタイムスタンプを付加されたデータをリセットして、読み出したパケットに1394ヘッダ、CIPヘッダ1,2を付加してリンクコア111の送信回路に出力するようにしたことにある。
以下、第4の実施形態と異なる機能を有するリンク・レイヤ回路10Cにおける送信前処理回路106Aおよび送信後処理回路107Bの具体的な機能について説明する。
送信前処理回路106Aは、たとえば図10に示すように、ラッチ回路1061と、FIFOアクセス制御回路1062と、比較回路1063とを備えている。
ラッチ回路1061は、CFR111に設定されるタイムスタンプ用遅延時間Txdelay をラッチする。
ラッチ回路1061は、CFR111に設定されるタイムスタンプ用遅延時間Txdelay をラッチする。
FIFOアクセス制御回路1062は、アプリケーションインタフェース回路103を介してMPEGトランスポータ40によるMPEGトランスポートストリームデータを受けて、IEEE1394規格のアイソクロナス通信用としてクワドレット(4バイト)単位にデータ長を調整し、かつラッチ回路1061にラッチされた遅延時間Txdelay を用いてタイムスタンプの値を設定して4バイトのソースパケットヘッダ(SPH)を付加してFIFO110に格納し、いわゆるFIFOの書き込みポインター等の格納情報信号S106を送信後処理回路107Bに出力する。
比較回路(COMP)1063は、ラッチ回路1061にラッチされている遅延時間TxdelayLと、CFR111にセットされる遅延時間TxdelayNとを比較して、CFR111にセットされる遅延時間TxdelayNがラッチ回路1061にラッチされている遅延時間TxdelayLより小さくなった場合には、たとえばチャンネルが変更され、データ量が増えて短い遅延時間に変更されたものとしてデータ読出制御信号S1063を送信後処理回路107Bに出力する。
送信後処理回路107Bは、送信前処理回路106AのFIFOアクセス制御回路1062による格納情報信号S106を受けてFIFO110に格納されたソースパケットヘッダを含むデータに対して図14に示すように、1394ヘッダ、CIPヘッダ1,2を付加してリンクコア101の送信回路に出力する。
このとき、送信前処理回路106Aの比較回路1063によりデータ読出制御信号S1063をアクティブで受けた場合には、データ量が増えて短い遅延時間に変更されたものと判断して、格納情報信号S106が示す書き込みポインターに読み出しポインターを一致させてデータ量が増えた新しい送信パケットをFIFO110から読み出し、1394ヘッダ、CIPヘッダ1,2を付加してリンクコアの送信回路に出力する。この場合、データ量が増える前に設定された遅延時間に基づくタイムスタンプを付加されたデータはリセットされることになる。
このとき、送信前処理回路106Aの比較回路1063によりデータ読出制御信号S1063をアクティブで受けた場合には、データ量が増えて短い遅延時間に変更されたものと判断して、格納情報信号S106が示す書き込みポインターに読み出しポインターを一致させてデータ量が増えた新しい送信パケットをFIFO110から読み出し、1394ヘッダ、CIPヘッダ1,2を付加してリンクコアの送信回路に出力する。この場合、データ量が増える前に設定された遅延時間に基づくタイムスタンプを付加されたデータはリセットされることになる。
次に、IEEE1394シリアルバスBSを伝送されるアイソクロナス通信用パケットの送受信動作を説明する。
IEEE1394シリアルバスBSにアイソクロナス通信用パケットを送出する場合には、たとえばCPU30からアイソクロナス通信用パケットのSPH(ソースパケットヘッダ)に設定されるタイムスタンプ用遅延時間Txdelay がホストインタフェース102を通してCFR111にセットされる。
CFR111にセットされたタイムスタンプ用遅延時間Txdelay は送信前処理回路106Aのラッチ回路1061にラッチされるとともに、遅延時間TxdelayNとして比較回路1062に入力される。
CFR111にセットされたタイムスタンプ用遅延時間Txdelay は送信前処理回路106Aのラッチ回路1061にラッチされるとともに、遅延時間TxdelayNとして比較回路1062に入力される。
そして、送信前処理回路106Aでは、FIFOアクセス制御回路1062において、アプリケーションインタフェース回路103を介してMPEGトランスポータ40によるMPEGトランスポートストリームデータを受けて、IEEE1394規格のアイソクロナス通信用としてクワドレット(4バイト)単位にデータ長が調整される。このとき、ラッチ回路1061にラッチされた遅延時間Txdelay を用いてタイムスタンプの値が設定され4バイトのソースパケットヘッダ(SPH)が付加されFIFO110に格納される。そして、FIFOの書き込みポインター等の格納情報信号S106が送信後処理回路107Bに出力される。
また、送信前処理回路106Aの比較回路1063では、ラッチ回路1061にラッチされている遅延時間TxdelayLと、CFR111にセットされる遅延時間TxdelayNとが比較される。比較の結果、CFR111にセットされる遅延時間TxdelayNがラッチ回路1061にラッチされている遅延時間TxdelayLより小さくなった場合には、たとえばチャンネルが変更され、データ量が増えて短い遅延時間に変更されたものとして、たとえばパルス信号であるデータ読出制御信号S1063が送信後処理回路107Bに出力される。
送信後処理回路107Bでは、送信前処理回路106AのFIFOアクセス制御回路1062による格納情報信号S106を受けて、FIFO110に格納されたソースパケットヘッダを含むデータに対して、1394ヘッダ、CIPヘッダ1,2が付加されてリンクコア101の送信回路に出力され、フィジカル・レイヤ回路20を介してIEEE1394シリアルバスBSにアイソクロナス通信用パケットとして送出される。
このとき、送信前処理回路106Aの比較回路1063によりデータ読出制御信号S1063をアクティブで受けた場合には、データ量が増えて短い遅延時間に変更されたものと判断される。そして、格納情報信号S106が示す書き込みポインターに読み出しポインターを一致させてデータ量が増えた新しい送信パケットがFIFO110から読み出され、1394ヘッダ、CIPヘッダ1,2が付加されてリンクコア111の送信回路に出力され、フィジカル・レイヤ回路20を介してIEEE1394シリアルバスBSにアイソクロナス通信用パケットとして送出される。
この場合、データ量が増える前に設定された遅延時間に基づくタイムスタンプを付加されたデータはリセットされることになる。
このとき、送信前処理回路106Aの比較回路1063によりデータ読出制御信号S1063をアクティブで受けた場合には、データ量が増えて短い遅延時間に変更されたものと判断される。そして、格納情報信号S106が示す書き込みポインターに読み出しポインターを一致させてデータ量が増えた新しい送信パケットがFIFO110から読み出され、1394ヘッダ、CIPヘッダ1,2が付加されてリンクコア111の送信回路に出力され、フィジカル・レイヤ回路20を介してIEEE1394シリアルバスBSにアイソクロナス通信用パケットとして送出される。
この場合、データ量が増える前に設定された遅延時間に基づくタイムスタンプを付加されたデータはリセットされることになる。
IEEE1394シリアルバスBSを伝送されてきたアイソクロナス通信用パケットは、リンクコア101を介して受信前処理回路108Bに入力される。
受信前処理回路108Bでは、受信パケットの1394ヘッダ、CIPヘッダ1,2等の内容が解析され、データが復元されてソースパケットヘッダとデータがFIFO110に書き込まれる。そして、このFIFO110へのデータの書き込みを行ったこと示す格納情報信号S108がパケットの書き込み毎に受信後処理回路109Bに出力される。
受信前処理回路108Bでは、受信パケットの1394ヘッダ、CIPヘッダ1,2等の内容が解析され、データが復元されてソースパケットヘッダとデータがFIFO110に書き込まれる。そして、このFIFO110へのデータの書き込みを行ったこと示す格納情報信号S108がパケットの書き込み毎に受信後処理回路109Bに出力される。
受信後処理回路109Bでは、受信前処理回路108Bによる格納情報信号S108の受信毎に、内部レジスタ1091にFIFO110に格納されたソースパケットヘッダのタイムスタンプの時間データが読み出される。そして、読み出したタイムスタンプデータ(TS)とリンクコア101内にあるサイクルタイマによるサイクルタイム(CT)とが比較される。
その結果、サイクルタイムCTがタイムスタンプデータTSより大きい場合にはデータ読出指示用パルス信号S1092がデータ読出制御回路1093に出力される。
データ読出制御回路1093においては、パルス信号S1092を受けると、データ読出信号S1093が出力され、FIFO110に格納されているソースパケットヘッダを除くデータがアプリケーションインタフェース回路103を介し、MPEG用トランスポートストリームデータとしてMPEGトランスポータ40に出力される。
その結果、サイクルタイムCTがタイムスタンプデータTSより大きい場合にはデータ読出指示用パルス信号S1092がデータ読出制御回路1093に出力される。
データ読出制御回路1093においては、パルス信号S1092を受けると、データ読出信号S1093が出力され、FIFO110に格納されているソースパケットヘッダを除くデータがアプリケーションインタフェース回路103を介し、MPEG用トランスポートストリームデータとしてMPEGトランスポータ40に出力される。
なお、受信後処理回路における比較動作は、図7を参照して説明した第4の実施形態の場合と同様に行われることから、ここではその詳細な説明は省略する。
以上説明したように、本第7の実施形態によれば、送信前処理回路106でCPU30により設定されるタイムスタンプ用遅延時間Txdelay をラッチするとともに、ラッチした遅延時間TxdelayLとデータ量に合わせてCPU30により新たに設定される遅延時間TxdelayNとを比較し、CFR111にセットされる遅延時間TxdelayNがラッチ回路1061にラッチされている遅延時間TxdelayLより小さくなった場合には、たとえばチャンネルが変更され、データ量が増えて短い遅延時間に変更されたものとしてデータ読出制御信号S1063を送信後処理回路107に出力し、送信後処理回路107でデータ読出制御信号S1063をアクティブで受けた場合には、データ量が増えて短い遅延時間に変更されたものと判断して、格納情報信号S106が示す書き込みポインターに読み出しポインターを一致させてデータ量が増えた新しい送信パケットをFIFO110から読み出し、データ量が増える前に設定された遅延時間に基づくタイムスタンプを付加されたデータをリセットして、読み出したパケットに1394ヘッダ、CIPヘッダ1,2を付加してリンクコア111の送信回路に出力するようにしたので、データ量に合わせて設定される時間情報が変更されても受信側でデータ損失や不要なデータがアプリケーション側へ出力されることを防止できる利点がある。
また、本実施形態では、受信したパケットに付加されているタイムスタンプのデータTSと内部のサイクルカウンタによるサイクルタイムCTとを比較し、サイクルタイムCTがタイムスタンプデータTSより大きい場合(CT>TS)、FIFO110に格納した受信データを出力するようにしたので、IEEE1394シリアルバスBSを伝送されてきたアシンクロナス通信用パケットをMPEGトランスポータ40(アプリケーション)側へ規定された時間に確実に出力することができる。
10,10A〜10C…リンク・レイヤ回路、101…リンクコア(Link Core)、102…ホストインタフェース回路(Host I/F)、1032…アプリケーションインタフェース回路(AP I/F) 、104…アシンクロナス通信用FIFO、送信用FIFO(AT-FIFO)、104b…受信用FIFO(AR-FIFO)、105…セルフID用リゾルバ(Resolver)、106,106A…アイソクロナス通信用送信前処理回路(TXOPRE)、107,107A,107B…アイソクロナス通信用送信後処理回路(TXOPRO)、108,108A,108B…アイソクロナス通信用受信前処理回路(TXPRE) 、109,109A,109B…アイソクロナス通信用受信後処理回路(TXIPRO) 、110…アイソクロナス通信用FIFO(I-FIFO)、111…コンフィギュレーションレジスタ(CFR)、20…フィジカル・レイヤ回路、30…CPU、40…MPEGトランスポータ。
Claims (3)
- 受信側で受信データをアプリケーション側へ出力すべき時間が設定された時間情報が付加され、かつあらかじめ決められた時間サイクルでシリアルインタフェースバスを送信されるパケットデータを受信してアプリケーション側へ出力する信号処理回路であって、
受信したパケットデータの上記時間情報に関係なく受信データを上記アプリケーション側へ出力させる制御手段
を有する信号処理回路。 - 受信側で受信データをアプリケーション側へ出力すべき時間が設定された時間情報が付加され、かつあらかじめ決められた時間サイクルでシリアルインタフェースバスを送信されるパケットデータを受信してアプリケーション側へ出力する信号処理回路であって、
時間を計測する計測手段と、
受信したパケットデータから上記時間情報を取り出し、上記計測手段による計測時間値が当該時間情報値より大きい場合には、受信データを上記アプリケーション側へ出力する受信回路と、
制御信号により上記受信回路に上記時間情報に関係なく受信データを上記アプリケーション側へ出力させる制御手段と、
を有する信号処理回路。 - 上記受信処理回路は、記憶手段と、
受信したパケットデータからデータを復元し時間情報と共に上記記憶手段に格納し、この格納情報信号を出力する前処理回路と、
上記前処理回路の格納情報信号を受けて、上記記憶手段に格納された時間情報を読み出し、上記時間情報と上記計測手段による計測時間値とを比較し、当該計測値が大きい場合に、データ読出指示信号を出力する比較回路と、
上記データ読出指示信号を受けると上記記憶手段に格納されたデータを読み出して上記アプリケーション側へ出力させ、上記制御手段からの制御信号を受けると、上記時間情報に関係なく上記格納情報信号に基づいて上記記憶手段に格納された受信データを受けて上記アプリケーション側へ出力させるデータ読出制御手段と、
を有する請求項2記載の信号処理回路。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2006327499A JP4148291B2 (ja) | 1997-04-01 | 2006-12-04 | 信号処理回路 |
Applications Claiming Priority (6)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP8313797 | 1997-04-01 | ||
JP8316297 | 1997-04-01 | ||
JP8419297 | 1997-04-02 | ||
JP8413797 | 1997-04-02 | ||
JP8413697 | 1997-04-02 | ||
JP2006327499A JP4148291B2 (ja) | 1997-04-01 | 2006-12-04 | 信号処理回路 |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP05713498A Division JP3924903B2 (ja) | 1997-04-01 | 1998-03-09 | 信号処理回路 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2007074756A JP2007074756A (ja) | 2007-03-22 |
JP4148291B2 true JP4148291B2 (ja) | 2008-09-10 |
Family
ID=37935724
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2006327499A Expired - Fee Related JP4148291B2 (ja) | 1997-04-01 | 2006-12-04 | 信号処理回路 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP4148291B2 (ja) |
-
2006
- 2006-12-04 JP JP2006327499A patent/JP4148291B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2007074756A (ja) | 2007-03-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6259694B1 (en) | Signal processing circuit | |
JP3584789B2 (ja) | データ転送制御装置及び電子機器 | |
JP3785747B2 (ja) | シリアルインタフェース回路およびその信号処理方法 | |
JP3731283B2 (ja) | 信号処理回路およびその方法 | |
JP4148290B2 (ja) | 信号処理回路 | |
JP3837857B2 (ja) | 信号処理回路 | |
JP3924903B2 (ja) | 信号処理回路 | |
JP4148291B2 (ja) | 信号処理回路 | |
JP4148292B2 (ja) | 信号処理回路 | |
JP4192988B2 (ja) | 信号処理回路 | |
JP3799726B2 (ja) | 信号処理回路 | |
US6973083B1 (en) | Data processing circuit | |
KR100539018B1 (ko) | 데이터 채널을 통해 수신되었거나 송신될 데이터 패킷을처리하기 위한 방법 및 장치 | |
JPH10285223A (ja) | 信号処理回路 | |
JP4045672B2 (ja) | 信号処理回路 | |
JPH10285235A (ja) | 信号処理回路 | |
JP2006040167A (ja) | バス調停回路、情報処理装置、並びに、そのプログラムおよび記録媒体 | |
JPH10285190A (ja) | 信号処理回路 | |
JPH10285236A (ja) | 信号処理回路 | |
JPH10283289A (ja) | 信号処理回路 | |
JP3887059B2 (ja) | データ書き込み方法、データ読み出し方法、及びメモリ回路 | |
JP2000156698A (ja) | 信号処理回路 | |
KR100712566B1 (ko) | 데이터 버스를 통해 수신된 데이터의 관리 방법 및 이방법을 실행하는 장치 | |
JP2011030146A (ja) | 通信装置および通信チップからの受信データ取得方法 | |
KR20010038785A (ko) | 실시간 데이터 처리 장치 및 방법 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
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: 20080603 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20080616 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110704 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110704 Year of fee payment: 3 |
|
LAPS | Cancellation because of no payment of annual fees |