JP2006049980A - データ転送制御装置、電子機器及びデータ転送制御方法 - Google Patents
データ転送制御装置、電子機器及びデータ転送制御方法 Download PDFInfo
- Publication number
- JP2006049980A JP2006049980A JP2004224172A JP2004224172A JP2006049980A JP 2006049980 A JP2006049980 A JP 2006049980A JP 2004224172 A JP2004224172 A JP 2004224172A JP 2004224172 A JP2004224172 A JP 2004224172A JP 2006049980 A JP2006049980 A JP 2006049980A
- Authority
- JP
- Japan
- Prior art keywords
- data
- header
- packet
- cycle
- time stamp
- 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.)
- Withdrawn
Links
Images
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
【課題】 転送データの確実な時間管理を実現し、データ転送に伴う処理負荷の軽減及び低コスト化を図るデータ転送制御装置、電子機器及びデータ転送制御方法を提供する。
【解決手段】 データ転送制御装置100は、転送サイクル毎に更新されるサイクルタイムをカウントするサイクルタイマ150と、パケットデータの転送を制御する転送コントローラ140とを含む。転送コントローラ140が、パケットデータに含まれるタイムスタンプ情報と比較値とを比較し、前記比較値と一致するタイムスタンプ情報を含むパケットデータ群に対し、前記タイムスタンプ情報に替えて、前記サイクルタイマの現在のサイクルタイムを基準にオフセット値だけ先行したサイクルタイムに対応した出力タイムスタンプ情報を設定して、該パケットデータ群を現在の転送サイクルにおいて転送先に出力する。
【選択図】 図19
【解決手段】 データ転送制御装置100は、転送サイクル毎に更新されるサイクルタイムをカウントするサイクルタイマ150と、パケットデータの転送を制御する転送コントローラ140とを含む。転送コントローラ140が、パケットデータに含まれるタイムスタンプ情報と比較値とを比較し、前記比較値と一致するタイムスタンプ情報を含むパケットデータ群に対し、前記タイムスタンプ情報に替えて、前記サイクルタイマの現在のサイクルタイムを基準にオフセット値だけ先行したサイクルタイムに対応した出力タイムスタンプ情報を設定して、該パケットデータ群を現在の転送サイクルにおいて転送先に出力する。
【選択図】 図19
Description
本発明は、データ転送制御装置、電子機器及びデータ転送制御方法に関する。
近年、MPEG(Moving Picture Experts Group、より具体的にはMPEG2)ストリームを配信するBSデジタル放送等のデジタル放送が脚光を浴び、デジタル放送チューナやデジタル放送のコンテンツの記録・再生装置等の電子機器の普及が著しい。このデジタル放送チューナと記録・再生装置は、例えばIEEE(Institute of Electrical and Electronics Engineers)1394に代表される汎用高速シリアルインタフェースを介して接続される。
IEEE1394では、上述のストリームをパケット化して実現されるアイソクロナス(Isochronous)転送(広義には同期転送)が行われる。アイソクロナス転送はほぼ125μs(マイクロ秒)の間に必ず行われる転送であり、アシンクロナス(Asynchronous)転送(広義には非同期転送)より優先的に行われる転送であるため、リアルタイムのデータ転送に適している。
このようなストリームを送受信する場合、送信側と受信側の時間の整合性を保つ必要がある。そのため、パケット化されたデータにタイムスタンプ情報を付加し、時間管理を行っている。従って、この時間管理を行いつつ、アイソクロナス転送のために一定以上の転送レートを確保する必要がある。
ところが、受信側の装置のバッファメモリの容量の制約があるため、無条件に転送レートを高めることができない。そこで、送信側の装置では、データに含まれるタイムスタンプ情報を参照しながら、アイソクロナスサイクルと呼ばれる転送サイクル毎に数パケットずつ転送を行うようにソフトウェアでデータ転送の制御を行っている。
このようなデータ転送の制御について、例えば特許文献1に開示されている。特許文献1には、パケットデータの到着時刻に伝送遅延値と送信遅延値とを加算して生成したタイムスタンプ情報を該パケットデータに付加し、このパケットデータを伝送遅延値だけ遅延させて出力させる技術が開示されている。
特開2002−84288号公報
しかしながら、タイムスタンプ情報を参照して転送すべきパケットデータをアイソクロナスサイクル内で判別する処理をソフトウェアで行うと、処理負荷が重い。従って、制御を司る中央演算処理装置(Central Processing Unit:CPU)の処理能力を他の高度な処理に割り当てることができなくなる。そのため、システム全体の処理能力を維持させるために高性能なCPUや他の付加回路を用いることとなりコスト高を招く。特に、引用文献1に記載されるように、ストリームの到着時に出力用のタイムスタンプ情報を付加したパケットデータをバッファリングした場合、送信するパケットデータの時間管理を正確に制御できなくなる場合がある。例えばタイムスタンプ情報の付加時に想定できない遅延が発生する場合があったり、この種の遅延を考慮して余分な遅延時間を設定せざるを得なくなったりする。
また、既にタイムスタンプ情報が付加されているパケットデータであっても、タイムスタンプ情報を再設定して受信側に最適なタイミングで送出できることが望ましい。
本発明は、以上のような技術的課題に鑑みてなされたものであり、その目的とするところは、転送データの確実な時間管理を実現すると共に、データ転送に伴う処理負荷の軽減及び低コスト化を図るデータ転送制御装置、電子機器及びデータ転送制御方法を提供することにある。
上記課題を解決するために本発明は、データ転送を制御するためのデータ転送制御装置であって、転送サイクル毎に更新されるサイクルタイムをカウントするサイクルタイマと、パケットデータの転送を制御する転送コントローラとを含み、前記転送コントローラが、前記パケットデータに含まれるタイムスタンプ情報と比較値とを比較し、前記比較値と一致するタイムスタンプ情報を含むパケットデータ群に対し、前記タイムスタンプ情報に替えて、前記サイクルタイマの現在のサイクルタイムを基準にオフセット値だけ先行したサイクルタイムに対応した出力タイムスタンプ情報を設定して、該パケットデータ群を現在の転送サイクルにおいて転送先に出力し、前記比較値と不一致のタイムスタンプ情報が検出されたときに前記比較値を更新すると共に、前記現在のサイクルタイムの次のサイクルタイムにおいて、更新された比較値と次に転送すべきパケットデータに含まれるタイムスタンプ情報とを比較するデータ転送制御装置に関係する。
本発明によれば、パケットデータにタイムスタンプ情報が既に付加されている場合であっても、転送先側でバッファリングを行うのに適したタイミングで送信することができるようになる。そして、この場合においても、例えばタイムスタンプ情報により再生時刻が指定される場合に、一旦バッファリングする等の理由で、例えば他のノードの転送状況に依存して、転送先側で再生時刻として指定したサイクルタイムを過ぎた後にパケットデータを送出してしまうといった事態を回避できる。このため、パケットデータに付加するタイムスタンプ情報のマージンを少なくでき、しかも処理負荷を軽減できる。従って、簡素な構成により、送信するパケットデータの時間管理を正確に制御できるようになる。
また本発明に係るデータ転送制御装置では、前記転送コントローラが、前記比較値と前記パケットデータに含まれるタイムスタンプ情報とを比較し、該比較値と一致するタイムスタンプ情報を含むパケットデータが検出されなかったとき、空パケットを前記転送先に出力することができる。
また本発明に係るデータ転送制御装置では、前記転送コントローラが、パケットデータに付加されるヘッダ情報を作成するヘッダ作成回路と、前記ヘッダ作成回路によって作成された前記ヘッダ情報とパケットデータとを結合した出力用パケットデータを生成し、該出力用パケットデータを転送先に出力するパケット生成回路とを含み、前記ヘッダ作成回路が、前記タイムスタンプ情報を読み出して、前記比較値と一致するタイムスタンプ情報を含むパケットデータ群に対してヘッダ情報を作成すると共に、前記比較値と不一致のタイムスタンプ情報を含むデータが検出されたこを条件に前記比較値の更新処理を行い、前記パケット生成回路が、前記タイムスタンプ情報に替えて、前記サイクルタイマの現在のサイクルタイムを基準にオフセット値だけ先行したサイクルタイムに対応した出力タイムスタンプ情報を設定したパケットデータを前記転送先に出力することができる。
また本発明に係るデータ転送制御装置では、前記パケットメモリを含み、前記パケットメモリが、入力タイムスタンプ情報が付加されたパケットデータが記憶されるデータ領域と、前記ヘッダ作成回路によって作成された前記ヘッダ情報が記憶されるヘッダ領域とを有し、前記パケット生成回路が、前記データ領域からのパケットデータに含まれる入力タイムスタンプ情報に替えて前記出力タイムスタンプ情報を設定し、該パケットデータと前記ヘッダ領域からのヘッダ情報とを結合することができる。
また本発明に係るデータ転送制御装置では、前記ヘッダ作成回路が、前記ヘッダ領域に記憶されたヘッダの基本情報を読み出して、該基本情報を用いて前記ヘッダ情報を生成して前記ヘッダ領域に書き戻すことができる。
本発明によれば、パケットデータの生成処理及びヘッダの付加処理の負荷を軽減させることができる。
また本発明に係るデータ転送制御装置では、IEEE1394の規格に準拠したデータ転送を行うことができる。
また本発明は、上記のいずれか記載のデータ転送制御装置と、前記データ転送制御装置を介してバスに接続される記録媒体とを含み、前記データ転送制御装置が、前記バスを介して入力されたデータを前記記録媒体に出力して該記録媒体に記録させ、或いは前記記録媒体から読み出したデータを前記バスを介して出力する電子機器に関係する。
本発明によれば、記録媒体に記録するためのパケットデータ又は記録媒体から再生するためのパケットデータのパケットデータの正確な時間管理を、少ない処理負荷で実現できる電子機器を提供できる。
また本発明は、データ転送を制御するためのデータ転送制御方法であって、転送サイクル毎に更新されるサイクルタイムをカウントし、パケットデータに含まれるタイムスタンプ情報と比較値とを比較し、前記比較値と一致するタイムスタンプ情報を含むパケットデータ群に対し、前記タイムスタンプ情報に替えて、現在のサイクルタイムを基準にオフセット値だけ先行したサイクルタイムに対応した出力タイムスタンプ情報を設定して、該パケットデータ群を現在の転送サイクルにおいて転送先に出力し、前記比較値と不一致のタイムスタンプ情報が検出されたときに前記比較値を更新すると共に、前記現在のサイクルタイムの次のサイクルタイムにおいて、更新された比較値と次に転送すべきパケットデータに含まれるタイムスタンプ情報とを比較するデータ転送制御方法に関係する。
また本発明に係るデータ転送制御方法では、前記比較値と前記パケットデータに含まれるタイムスタンプ情報とを比較し、該比較値と一致するタイムスタンプ情報を含むパケットデータが検出されなかったとき、空パケットを前記転送先に出力することができる。
以下、本発明の実施の形態について図面を用いて詳細に説明する。なお、以下に説明する実施の形態は、特許請求の範囲に記載された本発明の内容を不当に限定するものではない。また以下で説明される構成のすべてが本発明の必須構成要件であるとは限らない。
1. パケットデータ
図1に、本実施形態のデータ転送制御装置が適用されたシステムの構成例を示す。
図1に、本実施形態のデータ転送制御装置が適用されたシステムの構成例を示す。
このシステムでは、アンテナ10、デジタル放送チューナ20、記録・再生装置30を含む。アンテナ10は、BSデジタル放送として配信されたMPEG2ストリームを受信する。デジタル放送チューナ20は、データ転送制御装置22を含み、アンテナ10で受信された複数チャネル分のTS(Transport Stream)パケットが連続したMPEG2TSのマルチストリームから、1チャネル分のTSパケットが連続したMPEG2TSのパーシャルストリームを抽出する。そして、データ転送制御装置22は、IEEE1394バスを介して接続された記録・再生装置30に対し、抽出したストリームのTSパケットを転送する。記録・再生装置30は、記録媒体32を含み、IEEE1394バスを介して転送されたTSパケットを記録媒体32に記録する。記録・再生装置30は、記録媒体32に記録されたTSパケットを読み出して再生することもできる。
図2に、BSデジタル放送、データ転送制御装置及びIEEE1394バスにおけるデータ構造の説明図を示す。
BSデジタル放送では、MPEG2のTSパケットが配信される。TSパケットは、188バイトの固定長のパケットデータである。このTSパケットには、Iピクチャ(広義にはフレーム内符号化データ)や、Bピクチャ及びPピクチャ(広義にはフレーム間符号化データ或いは予測符号化データ)や、オーディオデータ(音声データ、非ビデオデータ)等が1つのビットストリームに多重化されてパケット化されている(パケット多重)。このTSパケットは、TSヘッダ(TSH)とTSペイロードとにより構成される。
データ転送制御装置22は、アンテナ10で受信されたTSパケットに4バイトのSP(Source Packet)ヘッダ(SPH)を付加した後、SPヘッダ及びTSパケットを用いて構築したアイソクロナスパケット(ISOパケット)をIEEE1394バスに出力する。ISOパケットは、SPヘッダ及びTSパケットを1組として、1又は複数組のSPヘッダ及びTSパケットを含むことができる。各ISOパケットには、8バイトのアイソクロナスヘッダ(ISOH)と8バイトのCIP(Common Isochronous Packet)ヘッダ(CIPH)とが付加される。CIPヘッダと1又は複数組のSPヘッダ及びTSパケットとを1394ペイロードということができる。また1又は複数組のSPヘッダ及びTSパケットを、SP(Source Packet)ということができる。
空パケットとしてのNullパケットの場合、ISOヘッダとCIPヘッダのみが含まれる。即ち、Nullパケットは、SPを含まずにISOヘッダとCIPヘッダのみの構成となる。
図3に、TSパケットのフォーマットの一例を示す。
TSパケットは、TSヘッダとTSペイロードとにより構成される。TSヘッダは、同期バイト(sync byte)、トランスポート誤りインディケータ(transport error indicator)、ペイロード部スタートインディケータ(payload unit start indicator:PUSI)、トランスポートプライオリティ(transport priority)、PID(Packet identification)、トランスポートスクランブル制御(transport scrambling control)、アダプテーションフィールド制御(adaptation field control)、コンティニュイティカウンタ(continuity counter)、アダプテーションフィールド(adaptation field)等を有する。
TSヘッダに含まれるPIDを用いることで、約8000種類のTSパケットの識別が可能となる。例えば図4に示すように、MPEGストリームにおいて構成されるPES(Packetized Elementary Stream)は、同じPIDを有するTSパケットに分割される。このPESは、同じPIDを有するTSパケットに分割される。受信側では、同じPIDを有するTSパケットのペイロード部をつなぎ合わせることで元のPESを復元できる。
なおPESは、同じPIDのTSパケットのペイロード部に分割して転送されるが、PESの先頭は、TSペイロードの先頭から開始するように配置される。そしてPESの先頭が配置されたTSペイロードは、ペイロード部スタートインディケータ(PUSI)により識別される。
図5(A)〜(D)に、ISOパケットとこれに含まれるSPヘッダ、CIPヘッダ及びISOヘッダのフォーマットの一例を示す。
図5(A)は、アイソクロナス転送でIEEE1394バスに出力されるISOパケットの構成例を示す。図5(B)は、SPヘッダのフォーマットの一例を示す。図5(C)は、CIPヘッダのフォーマットの一例を示す。図5(D)は、ISOヘッダのフォーマットの一例を示す。
図5(B)、(C)に示すSPヘッダやCIPヘッダは、IEEE1394バス上でMPEG2ストリームを転送するためのプロトコルを定めたIEC(International Electrotechnical Commission)61883規格により定義されている。SPヘッダは、タイムスタンプ情報としてアイソクロナス転送のサイクルカウントを含む。サイクルカウントは、サイクルタイムのカウント値である。またSPヘッダは、サイクルオフセットを含む。サイクルオフセットは、サイクルカウントをカウントアップするためのカウント値である。SPヘッダのサイクルカウントをタイムスタンプ情報として扱ってもよいし、SPヘッダのサイクルカウント及びサイクルオフセットをタイムスタンプ情報として扱ってもよい。以下では、説明の便宜上、タイムスタンプ情報として、SPヘッダのサイクルカウントを示すものとして説明する。
図5(C)に示すCIPヘッダは、転送されるデータがMPEGデータであることを宣言したり、MPEGのTSパケットの分割方法を指定するものであり、ソースノードID(SID)、データブロックサイズ(DBS)、フォーマットID(FMT)等を含む。
図5(D)に示すISOヘッダは、データ長を示すデータレングス(Data_length)、アイソクロナスデータフォーマットタグ(tag)、アイソクロナスリソースマネージャから取得したアイソクロナスチャンネル番号(Channel)、トランザクションコード(tcode)、同期コード(sy)、ヘッダCRC(Header_CRC)を含む。Nullパケットの場合は、データレングスに、CIPヘッダのデータ長が設定される。
IEEE1394では、電源投入やデバイスの抜き差し等によってポートの接続状態が変化したとき、バスリセットが行われる。バスリセットが行われると、ツリー識別が行われ、ノード間の親子関係やルートノードが決定される。その後、自己識別が行われ、セルフIDパケットの送受信により各ノードのアドレスの自動割り付けが行われる。
こうしてノードの接続状態が管理できるようになると、全ノードのうちアイソクロナスリソースマネージャとして選ばれた管理ノードが、アイソクロナス転送を行うノードに必要なリソースを提供して、アイソクロナス転送のための帯域を割り当てる。更に全ノードのうちサイクルマスタとして選ばれたノードが、平均して125マイクロ秒ごとにサイクルスタートパケットを送信する。アイソクロナス転送を行うノードは、サイクルマスタからのサイクルスタートパケットを基準にアイソクロナスサイクル(ISOサイクル)(広義には転送サイクル)を開始する。
図6に、アイソクロナス転送の説明図を示す。
アイソクロナス転送を行うノードは、サイクルマスタからのサイクルスタートパケット50、52、54を基準にそれぞれISOサイクルを開始する。サイクルマスタは、原則として125マイクロ秒毎にサイクルスタートパケットを送信する。アイソクロナス転送を行うノードは、サイクルスタートパケットを受信する毎に図5(B)のSPヘッダのサイクルカウントをカウントアップさせる。従って、ISOサイクル毎にサイクルカウントが更新される。サイクルカウントは、0から順にインクリメントされ、16進数表示で1F3Fh(最後の「h」は16進数表示であることを示す。以下同様)になると再び0に戻る。即ちサイクルカウントは、0hから1F3Fhまで(10進数で0から7999まで)となる。これにより、1秒(=125マイクロ秒×8000)間を、125マイクロ秒毎に更新されるサイクルカウントで計ることが可能となる。秒単位のカウント値は、ソフトウェアやファームウェアにより保持することで、管理できる。サイクルオフセットは、125マイクロ秒をカウントするためのカウント値であり、インクリメントされるサイクルオフセットのオーバーフローが発生したときにサイクルカウントがインクリメントされる。
アイソクロナス転送を行うノードは、サイクルスタートパケットの受信後、アイソクロナスギャップと呼ばれるバスアイドル時間を経過後にアービトレーションを開始してISOパケットを送信する。図6では、サイクルスタートパケット50の受信により開始されるISOサイクルにおいて、ノードAがISOパケットISOA、ノードBがISOパケットISOBを転送する。そして、次のサイクルスタートパケット52の受信により開始されるISOサイクルにおいても、ノードAがISOパケットISOA、ノードBがISOパケットISOBを転送する。なおISOサイクルにおいてISOパケットが転送された後に、アシンクロナスパケットの転送が行われる。これは、サブアクションギャップと呼ばれるアシンクロナス転送の調停開始前のバスアイドル時間をアイソクロナスギャップより長い時間とすることで、各転送の優先度を異ならせることができる。
このようにアイソクロナス転送で転送されるISOパケットとSPヘッダのサイクルカウントとは、以下のような関係を有する。
図7に、ISOパケットとSPヘッダのサイクルカウントとの関係の説明図を示す。
アイソクロナス転送では、ISOパケットの転送が行われる。通常、ISOパケットは上述のように1又は複数のTSパケットを含む。図7では、Nullパケットの転送が行われないものとし、簡略化のためにISOヘッダやCIPヘッダを省略し、TSパケットのSPヘッダのみを示している。
ISOサイクルに対応するサイクルタイムは、サイクルカウントによって特定される。サイクルカウントはサイクルマスタからのサイクルスタートパケットを受信する毎にインクリメントされるため、サイクルタイムもまた同様にサイクルスタートパケットを受信する毎にインクリメントされる。アイソクロナス転送を行うノードは、受信側で再生する時刻を指定するサイクルタイム(サイクルカウント)がSPヘッダに設定されたTSパケットを含むISOパケットを送信する。図7では、サイクルタイムが1000のとき、SPヘッダにサイクルカウントとして1003が設定された2つのTSパケットを含むISOパケットを送信する。即ち、現在のサイクルタイムに+3のオフセットを与えて送信する。これにより、受信側では、サイクルタイムが1003になったとき、受信したTSパケットをデコードに入力して伸張処理し、画像の再生を行う。このように受信側のバッファメモリに蓄積されるTSパケットに対して、先行するサイクルタイムを指定して送出する。
ところが、受信側のバッファメモリの容量の制約があるため、無条件に転送レートを高めることができない。そのため、送信側においてSPヘッダを参照しながら、ISOサイクル毎に数パケットずつ転送を行うようにデータ転送の制御を行う必要がある。しかしながら、SPヘッダを参照しながら転送すべきパケットをISOサイクル内で判別する処理をソフトウェアで行うと処理負荷が重くなってしまう。また送信側で一旦バッファリングしてからパケットを送信する場合、パケットの到着時にSPヘッダを付加してしまうと、送信するパケットの時間管理を正確に制御できなくなる場合がある。例えば、他のノードからの転送状況に依存して、受信側で再生時刻として指定したサイクルタイム(例えば1003)を過ぎた後にパケットを送信してしまうと、サイクルタイムが7999に達して再び1003になるまで再生できないことになる。そして、このような事態を回避するためにマージンを加えた時刻を指定する必要が生じ、細かい時間管理が不可能となる。
そこで本実施形態では、以下の構成を採用することで、ストリームが分割されたパケットの確実な時間管理を実現すると共に、データ転送に伴う処理負荷の軽減及び低コスト化を図る。
2. データ転送制御装置
図8に、本実施形態におけるデータ転送制御装置の構成例のブロック図を示す。
図8に、本実施形態におけるデータ転送制御装置の構成例のブロック図を示す。
なお本実施形態のデータ転送制御装置は、図8のすべての回路、ユニット(部)を含む必要はなく、その一部を省略する構成であってもよい。
本実施形態におけるデータ転送制御装置100は、ストリームインタフェース(InterFace:I/F)回路110、IDE(Integrated Drive Electronics)I/F回路(広義には記録媒体用I/F)120、SDRAM(Synchronous Dynamic Random Access Memory)I/F回路(広義にはDRAMI/F)130を含むことができる。
ストリームI/F回路110は、MPEG2ストリームの受信装置(アンテナ、復調部)又はデコーダとデータ転送制御装置100との間のインタフェースを実現する回路である。受信装置又はデコーダは、データ転送制御装置100の外部に設けられる。受信装置は、デジタル放送として配信されるMPEG2ストリームを受信して復調したストリームをデータ転送制御装置100に供給する。デコーダは、データ転送制御装置100が出力したMPEG2ストリームをデコードし、デコード結果に対応して画像を表示させるための画像データとして図示しない表示装置に供給する。ストリームI/F回路110は、SPH比較出力回路112を含み、パケットデータにタイムスタンプ情報として含まれるSPヘッダに基づいて、パケットデータ間の時間間隔がSPヘッダで指定された通りとなるようにタイミング調整しながらパケットデータをデコーダに出力できる。IDEI/F回路120は、記録媒体としてのハードディスクドライブ(Hard Disk Drive:HDD)やDVD(Digital Versatile Disk)の記録・再生装置とデータ転送制御装置100との間のインタフェースを実現する回路である。ハードディスクドライブやDVDの記録・再生装置は、データ転送制御装置100の外部に設けられる。SDRAMI/F回路130は、SRAM(Static Random Access Memory)よりシーケンシャルアクセスが高速なSDRAMとデータ転送制御装置100との間のインタフェースを実現する回路である。SDRAMは、データ転送制御装置100の外部に設けられる。
本実施形態におけるデータ転送制御装置100は、リンクコントローラ(広義には転送コントローラ)140と、サイクルタイマ150とを含む。このデータ転送制御装置100は、例えば1394PHYチップを介してIEEE1394バスに接続される。1394PHYチップは、IEEE1394の物理層のプロトコルを実現し、IEEE1394バスに接続される。なお、図8では、1394PHYチップを含まずにPHYI/F回路(図示せず)を有する構成となっているが、データ転送制御装置100が1394PHYチップを含む構成であってもよい。
データ転送制御装置100において、サイクルタイマ150は、ISOサイクル(広義には転送サイクル)毎に更新されるサイクルタイムをカウントする。より具体的には、バスリセット後に選択されたサイクルマスタによって送出されるサイクルスタートパケットを受信する毎に、サイクルタイムをカウントする。サイクルタイマ150がサイクルタイムを更新する際、サイクルタイムをインクリメントしてもよいし、サイクルタイムをデクリメントしてもよい。SPH比較出力回路112は、SPヘッダに含まれるサイクルカウントとサイクルタイマ150のサイクルタイムとを比較して、パケットデータを出力する。
記録媒体においては、パーソナルコンピュータ用として広く使用されているIDE(ATA)I/Fを有する安価なハードディスクドライブを用いる。一方、デジタルデータ(デジタルビデオデータ、デジタルオーディオデータ)のI/FとしてはIEEE1394が広く用いられる。図8に示すように、IDEI/F回路120とリンクコントローラ140とを設けることで、IEEE1394とIDEの変換ブリッジ機能をデータ転送制御装置100に実現させることができる。
図8において、リンクコントローラ140は、IEEE1394バスを介したパケットデータの転送を制御する。リンクコントローラ140は、IEEE1394のリンク層又はリンク層と該リンク層より上層のプロトコルを実現するための回路である。このリンクコントローラ140は、ヘッダ(ISOヘッダ、CIPヘッダ、SPヘッダ)を作成し、該ヘッダを付加したパケットをIEEE1394バスに出力する。
データ転送制御装置100は、パケットメモリとしてのSRAM160を含むことができる。このSRAM160をデータ転送制御装置100の外部に設けることも可能である。SRAM160は、ストリームI/F回路110、IDEI/F回路120又はSDRAMI/F回路130を介して入力されるTSパケットを、IEEE1394バスを介して転送するために一時的に記憶するものである。またSRAM160は、IEEE1394バスを介して受信したパケットを一時的に記憶する機能も有する。このSRAM160は、ファームウェア等によりランダムアクセス可能な構成になっている。
データ転送制御装置100は、ポインタコントローラ170を含むことができる。このポインタコントローラ170は、SRAM160の書き込み領域を指定するための書き込みポインタとSRAM160の読み出し領域を指定するための読み出しポインタとを制御する。SRAM160に対するパケットデータの書き込み領域は、SRAM160の記憶領域を特定する書き込みポインタによって指定される。そして、パケットデータを書き込む毎に、ポインタコントローラ170が書き込みポインタを(インクリメント又はデクリメントして)更新していく。SRAM160からのパケットデータの読み出し領域は、SRAM160の記憶領域を特定する読み出しポインタによって指定される。そして、パケットデータを読み出す毎に、ポインタコントローラ170が読み出しポインタを(デクリメント又はインクリメントして)更新していく。
データ転送制御装置100は、更にPIDフィルタ180を含むことができる。PIDフィルタ180は、ストリームI/F回路110、IDEI/F回路120又はSDRAMI/F回路130を介して入力されたMPEG2TSのマルチストリームから、所定のPIDを有するパーシャルストリームを抽出し、SRAM160に供給する。
データ転送制御装置100は、処理部190を含む。処理部190は、装置内の各回路や各ユニット(部)の制御や装置の全体制御を行う。この処理部190の機能は、CPU或いはシステムコントローラ等のハードウェアやファームウェア(プログラム)により実現される。なお処理部190をデータ転送制御装置100の外部に設けるようにしてもよい。
本実施形態では、リンクコントローラ140が、データ転送制御装置100に入力されたときにはタイムスタンプ情報が未付加のTSパケット(パケットデータ)をバス(転送先)に出力する際に、出力タイムスタンプ情報を該TSパケットに付加することができる。そのため、リンクコントローラ140は、ヘッダ作成回路142と送信制御回路(広義にはパケット生成回路)144とを含むことができる。
ヘッダ作成回路142は、IEEE1394バスに出力するパケットに付加するヘッダを作成する。このヘッダ作成回路142は、ISOヘッダ、CIPヘッダ、SPヘッダを生成する。更に具体的にはヘッダ作成回路142は、予め作成されたヘッダの基本情報に対し所定の情報のみが書き換えられた情報をヘッダ(情報)として出力する。
送信制御回路144は、ヘッダ作成回路122によって作成されたヘッダを付加したISOパケットを生成し、該ISOパケットをIEEE1394バスに出力する制御を行う。こうして送信制御回路144は、1394PHYチップを介してIEEE1394バス(広義には転送先)に出力する際に、タイムスタンプ情報(出力タイムスタンプ情報)をTSパケットに付加する。
このようにリンクコントローラ140は、データ転送制御装置100に入力されたときにはタイムスタンプ情報が未付加のTSパケットを、1394PHYチップを介してIEEE1394バス(広義には転送先)に出力する際に、タイムスタンプ情報(出力タイムスタンプ情報)をTSパケットに付加する。このタイムスタンプ情報は、サイクルタイマ150の現在のサイクルタイムを基準にオフセット値だけ先行したサイクルタイムに対応したタイムスタンプ情報である。例えばサイクルタイマ150のカウント方向がインクリメント方向の場合、現在のサイクルタイムをインクリメント方向にオフセットを与えた値がタイムスタンプ情報として設定される。また例えばサイクルタイマ150のカウント方向がデクリメント方向の場合、現在のサイクルタイムをデクリメント方向にオフセットを与えた値がタイムスタンプ情報として設定される。
こうすることで、例えばデコーダ側でバッファリングを行うのに適したタイミングでTSパケットを送出できる。更に、一旦バッファリングする等の理由で、例えば他のノードの転送状況に依存して、受信側で再生時刻として指定したサイクルタイムを過ぎた後にパケットを送信してしまうといった事態を回避できる。その際、余分な時間を加える必要がなく、処理負荷を軽減できる。従って、簡素な構成により、送信するパケットの時間管理を正確に制御できるようになる。
またデータ転送制御装置100は、転送モード設定レジスタ200、最大連結パケット数設定レジスタ202、SPHロード設定レジスタ204、転送開始SPH設定レジスタ206、送信オフセット値設定レジスタ208を含むことができる。また処理部190は、これらの設定レジスタ(制御レジスタ)の設定値に対応して、データ転送制御装置内の各回路や各ユニット(部)の制御や装置の全体制御を行うことができる。
転送モード設定レジスタ200には、データ転送制御装置100の転送モードを設定するための設定値が設定される。このデータ転送制御装置100は、データ残量比較モード(広義には第1のモード)又はSPヘッダ比較モード(広義には第2のモード)のいずれかの転送モードでアイソクロナス転送を制御する。
データ残量比較モードに設定されたデータ転送制御装置100は、SRAM160に転送すべきTSパケットが存在すると、IEEE1394バスを介して転送先にTSパケットを出力する制御を行う。このデータ残量比較モードは、ストリームI/F回路110を介して連続的に入力されるリアルタイムデータの転送に有効な転送モードである。本実施形態では、転送すべきTSパケットがSRAM160に1パケット以上格納されているときアイソクロナス転送を行い、最大でも最大連結パケット数設定レジスタ202に設定された設定値に対応したパケット数毎にアイソクロナス転送を行う。この際、サイクルタイマ150のサイクルタイムに送信オフセット値設定レジスタ208の設定値を加算した値を含むSPヘッダをTSパケットに付加する。なお、SRAM160に格納され転送すべきTSパケットが1パケット未満のとき、空パケットとしてNullパケットを転送する。
これに対してSPヘッダ比較モードに設定されたデータ転送制御装置100は、SRAM160に格納されたTSパケットに付加されたSPヘッダを参照し、サイクルタイマ150によって更新されるサイクルカウントに対応して該TSパケットを出力する制御を行う。このSPヘッダ比較モードは、IDEI/F回路120を介して入力される記録媒体からのTSパケットの転送に有効な転送モードである。本実施形態では、SPヘッダに含まれるタイムスタンプ情報が転送開始SPH設定レジスタ206の設定値と一致するTSパケットを用いてアイソクロナス転送を行い、最大でも最大連結パケット数設定レジスタ202に設定された設定値に対応したパケット数毎にアイソクロナス転送を行う。この際、SPHロード設定レジスタ204の設定値、送信オフセット値設定レジスタ208の設定値及びサイクルタイマ150のサイクルタイムに基づいて生成された値を含むSPヘッダを、元のSPヘッダに張り替えてTSパケットを送出する。なお、SRAM160に格納され転送すべきTSパケットが1パケット未満のとき、空パケットとしてNullパケットを転送する。
図9に、リンクコントローラ140の構成例のブロック図を示す。
このリンクコントローラ140は、データ残量比較モード又はSPヘッダ比較モードのいずれかの転送モードで、ISOパケットを生成し、IEEE1394バスに出力する。
リンクコントローラ140は、処理部190に含まれるアクセス調停部250を介してSRAM160にアクセスできるようになっている。即ちリンクコントローラ140が、ヘッダを作成するためのアクセス制御信号、作成したヘッダを読み出すためのアクセス制御信号、ISOパケットのデータを読み出すためのアクセス制御信号をアクセス調停部250に出力する。アクセス調停部250は、これらのアクセス制御信号を調停し、調停後のアクセス制御信号に基づいてSRAM160にアクセスする。
リンクコントローラ140のヘッダ作成回路142は、メモリアクセス制御部300、ヘッダ生成コントローラ310を含む。メモリアクセス制御部300は、ヘッダを作成するためのアクセス制御信号、作成したヘッダを読み出すためのアクセス制御信号を生成する。ヘッダ生成コントローラ310は、メモリアクセス制御部300を制御するための制御信号を生成する。
リンクコントローラ140の送信制御回路144は、RAM制御信号生成部320、ISO送信シーケンサ330、ISO送信FIFO(First-In First-Out)340、張り替えSPH保持レジスタ350を含む。RAM制御信号生成部320は、ISOパケットを構成するTSパケット等のデータをSRAM160から読み出すためのアクセス制御信号を生成する。ISO送信シーケンサ330は、ISOパケットを送信するためのタイミング制御を行う。ISO送信FIFO340は、ISOパケットの送信バッファとして機能する。張り替えSPH保持レジスタ350は、サイクルタイマ150のサイクルタイムと送信オフセット値設定レジスタ208の設定値との加算値を保持する。張り替えSPH保持レジスタ350が保持する値は、ISO送信シーケンサ330からのSPH張り替えイネーブルに同期して、ISOパケットのSPヘッダのサイクルカウントとして設定される。
以下、上述の構成において、各転送モードの動作について説明する。
2.1 データ残量比較モード
図10に、データ残量比較モードに設定されたデータ転送制御装置100の動作例の概要のフローを示す。
図10に、データ残量比較モードに設定されたデータ転送制御装置100の動作例の概要のフローを示す。
データ転送制御装置100は、図示しない転送イネーブル設定レジスタを有し、該転送イネーブル設定レジスタの設定値によりイネーブル状態又はディスエーブル状態に設定されるようになっている。
まずデータ転送制御装置100が、転送イネーブル設定レジスタによりイネーブル状態に設定される(ステップS10)。その後、ストリームI/F回路110を介してTSパケットを受け付け、SRAM160に格納される。
そして、リンクコントローラ140が、SRAM160のデータ残量を判別する(ステップS11)。SRAM160のデータ残量が1パケット以上であると判別されたとき(ステップS11:Y)、ISOヘッダを作成し(ステップS12)、ISOパケットを生成する(ステップS13)。
ステップS11において、SRAM160のデータ残量が1パケット未満であると判別されたとき(ステップS11:N)、Nullパケットを生成する(ステップS14)。
ステップS13又はステップS14の後は、次のISOサイクルになったとき(ステップS15:Y)、ステップS13で生成したISOパケット又はステップS14のNullパケットを送信する(ステップS16)。
その後、所定の終了条件を満たすとき(ステップS17:Y)、一連の処理を終了する(エンド)。所定の終了条件を満たさないとき(ステップS17:N)、ステップS11に戻る。
データ転送制御装置100の各回路又は各ユニット(部)は、以上のような処理を独立に、又は処理部190の制御下で動作する。
図11に、データ転送制御装置の処理タイミングの説明図を示す。
図10に示す処理のうち、SRAM160のデータ残量を求めてデータ転送すべきか否かを判別するデータ残量確認処理は、サイクルスタートパケット60を基準に開始されるISOサイクル期間のアイソクロナス転送64の後に行う。そして、当該ISOサイクル期間内のデータ残量確認処理後に、ISOパケットのヘッダ生成処理を行う。
図12に、データ残量比較モードの説明図を示す。図12において、図8と同一部分には同一符号を付し、適宜説明を省略する。
本実施形態では、リアルタイム性が要求されるアイソクロナス転送を行う場合、TSパケットを転送先に出力する際に、リンクコントローラ140が、サイクルタイマ150の現在のサイクルタイムを基準にオフセット値だけ先行したサイクルタイムに対応した出力タイムスタンプ情報を、該パケットデータに付加する。このとき、タイムスタンプ情報が未付加のパケットデータがデータ転送制御装置100に入力されたときに、サイクルタイマ150のサイクルタイムに対応した入力タイムスタンプ情報を、一旦、該TSパケットに付加することができる。そして、TSパケットを転送先に出力する際に、リンクコントローラ140が、入力タイムスタンプ情報として付加されたサイクルタイムを基準にオフセット値だけ先行したサイクルタイムに対応した第1のタイムスタンプ情報を、出力タイムスタンプ情報として、送信制御回路144が入力タイムスタンプ情報に替えて設定してもよい。
この場合、ストリームI/F回路110が、SPH付加回路114を含み、SPH付加回路114が入力タイムスタンプ情報をTSパケットに付加することができる。この場合、SRAM160には、SPヘッダが付加されたTSパケットが格納されることになる。
SPH付加回路114は、サイクルタイマ150によって更新されるサイクルタイムを参照して、例えば受信装置からのMPEG2TSマルチストリームのTSパケットに、入力タイムスタンプ情報として、TSパケットの到着時刻をSPヘッダに付加する。この到着時刻は、出力タイムスタンプ情報を求める際に、いつ受け取ったかを特定するための情報として付加されることになる。ストリームI/F回路110を介して入力されたTSパケットは、PIDフィルタ180に供給される。
図13(A)に、SPH付加回路114の動作説明図を示す。図13(B)に、PIDフィルタ後のTSパケットの説明図を示す。図13(A)、(B)では、TSパケットのSPヘッダのみを示し、ISOヘッダやCIPヘッダの図示を省略している。
BSデジタル放送で配信されるTSパケットには、タイムスタンプ情報が付加されていない。従って、受信装置で受信されてストリームI/F回路110に入力されるTSパケットには、タイムスタンプ情報が未付加の状態である。そこでSPH付加回路114が、TSパケットが入力された時点のタイムスタンプ情報としてサイクルタイマ150のサイクルタイムをSPヘッダのサイクルカウントとして設定する。図13(A)では、サイクルタイムが3000のときに入力されたTSパケットには、サイクルカウントが3000に設定されたSPヘッダが付加される。同様に、サイクルタイムが3001のときに入力されたTSパケットには、サイクルカウントが3001に設定されたSPヘッダが付加される。
PIDフィルタ180は、不要なチャネルのパケットを削除し、図13(B)に示す各パケットをSRAM160に供給する。
SRAM260の記憶領域は、ヘッダ領域とデータ領域とに分離したり、送信用領域と受信用領域とに分離することが望ましい。またデータ領域を、アシンクロナス用領域とアイソクロナス用領域とに分離してもよい。
図14に、SRAM160のメモリマップの一例を示す。
図14では、SRAM160が、ヘッダ領域(送信ヘッダ領域、受信ヘッダ領域)とデータ領域(アシンクロナス送信データ領域、アシンクロナス受信データ領域、アイソクロナス送信データ領域、アイソクロナス受信データ領域)とに分離されている。そして、パケットのヘッダ(制御情報)はヘッダ領域に格納され、パケットのデータ(アシンクロナスデータ、アイソクロナスデータ)はデータ領域に格納される。
また図14では、データ領域が、アシンクロナス(非同期)用領域(アシンクロナス送信データ領域、アシンクロナス受信データ領域)とアイソクロナス用領域(アイソクロナス送信データ領域、アイソクロナス受信データ領域)とに分離されている。更に図14では、SRAM160が、送信用領域(アシンクロナス送信データ領域、アイソクロナス送信データ領域)と受信用領域(アシンクロナス受信データ領域、アイソクロナス受信データ領域)とに分離されている。
更にまた図14では、送信ヘッダ領域が、自動転送用ヘッダ領域、Nullパケット用ヘッダ領域及びアイソクロナスヘッダ領域とを含む。自動転送用ヘッダ領域には、データ残量比較モード又はSPヘッダ比較モードにおいてISOパケットを転送するために予め作成されたヘッダ(ISOヘッダ、CIPヘッダ、SPヘッダ)の基本情報が格納される。Nullパケット用ヘッダ領域には、データ残量比較モード又はSPヘッダ比較モードにおいてNullパケットを転送するために予め作成されたヘッダ(ISOヘッダ、CIPヘッダ)の基本情報が格納される。そして、ISOパケット又はNullパケットを転送する際に、リンクコントローラ140のヘッダ作成回路142が、自動転送用ヘッダ領域又はNullパケット用ヘッダ領域からヘッダの基本情報を読み出して、所定の情報を書き換えてSRAM160のアイソクロナスヘッダ領域に書き戻す。そして、送信制御回路144が、書き戻されたヘッダ情報をアイソクロナスヘッダ領域から読み出すと共に、アイソクロナス送信データ領域からアイソクロナスデータを読み出してISOパケットを構築する。
このように、ヘッダ領域及びデータ領域に分離したり、送信用領域及び受信用領域に分離したり、アイソクロナス転送用領域及びアシンクロナス転送用領域に分離したりすることで、SRAM160の記憶領域を管理し易くなる。そのため、パケットの送受信の際にSRAM160へのアクセスが簡素化される。
従って、本実施形態のようにパケットメモリとして、例えばSPH付加回路114によって入力タイムスタンプ情報が付加されたTSパケットが記憶されるデータ領域と、ヘッダ作成回路142によって作成されたヘッダ情報が記憶されるヘッダ領域とを有するSRAM160を備えることが望ましい。この場合、パケット生成回路としての送信制御回路144(リンクコントローラ140)が、SRAM160のデータ領域からのパケットデータに含まれる出力タイムスタンプ情報を入力タイムスタンプ情報に替えて設定し、該パケットデータとSRAM160のヘッダ領域からのヘッダ情報とを結合したパケットデータ(広義には出力用パケットデータ)を送信する。ヘッダを予め作成してハードウェアでパケットにヘッダを付加する場合、ヘッダ領域及びデータ領域を分離しておくことで、容易にヘッダの付加処理を実現できるようになる。
なお、図14の各領域は、いわゆるリングバッファ構造になっている。即ち、これらの領域の一方の境界(スタートアドレス)から他方の境界(エンドアドレス)に向かってパケットのヘッダ又はデータが格納され、他方の境界に達した場合には一方の境界に戻ってパケットのヘッダ又はデータが格納されるようになっている。こうすることで、SRAM160の記憶容量を効率的に活用できる。また図14のように用途別に各領域を分離しているため、リングバッファ構造を実現し易くなる。
図12において、PIDフィルタ180によって不要なチャネルが削除されたパケットデータは、図14に示すSRAM160のアイソクロナス送信データ領域に格納される。
図15に、SRAM160に格納されたパケットデータの送信動作の説明図を示す。
データ残量比較モードでアイソクロナス転送を行う場合、あるISOサイクルにおいて、SRAM160にTSパケットが蓄積されているとき、当該TSパケットをすべてISOパケットに構築してIEEE1394バスに出力する。その際、TSパケットに付加された入力タイムスタンプ情報のまま転送すると、デコーダに入力された際には未来の時刻を指定することになる。例えば現在のサイクルタイムが3000の時刻でTSパケットを送信すると、受信側に到達するときにはサイクルタイムが進み、到達時のサイクルタイムは例えば3000より大きな値となっている。そのため、タイムスタンプ情報として3000が指定されたTSパケットをデコードする場合、サイクルカウントが1周して再びサイクルタイムが3000となるまで再生されないことになる。
そこで本実施形態では、SRAM160から読み出したTSパケットを転送する際に、現在のSPヘッダのサイクルカウントにオフセット値を加算した値を、再びSPヘッダに設定し直して送信する。より具体的には、SRAM160から読み出したTSパケットのSPヘッダにタイムスタンプ情報として付加されたサイクルカウントを参照し、該サイクルカウントに送信オフセット値設定レジスタ208の設定値を加算した値を、SPヘッダのサイクルカウントとして再設定して送信する。
図15では、送信オフセット値設定レジスタ208の設定値が5である場合を示している。このため、図15では、SRAM160から読み出したTSパケットのSPヘッダにタイムスタンプ情報として付加されたサイクルカウントに5を加算した値を、SPヘッダのサイクルカウントとして再設定して送信している。そして、例えばSRAM160に格納されたTSパケットは、ISOパケットに構築されて次のISOサイクルで送信される。
より具体的には、リンクコントローラ140が、以下のようにしてSRAM160に格納されたTSパケットをISOパケットに構築して送信する。
図12において、ポインタコントローラ170は、SRAM160に格納されているTSパケットの量を判別するためのSRAM内データ残量情報を求める。より具体的には、ポインタコントローラ170は、SRAM160の書き込みポインタであるストリーム側ポインタとSRAM160の読み出しポインタであるリンク側ポインタとの差分に対応したSRAM内データ残量情報を求める。ポインタコントローラ170によって求められたSRAM内データ残量情報は、リンクコントローラ140のヘッダ作成回路142に供給される。
ヘッダ作成回路142は、ポインタコントローラ170からのSRAM内データ残量情報に基づいて、SRAM160に1パケット以上のTSパケットがあるか否かを判別する。そしてSRAM160に1パケット以上のTSパケットがあると判別されると、ISOパケットを生成するためのISOヘッダを作成する。ヘッダ作成回路142が作成したISOヘッダは、SRAM160のアイソクロナスヘッダ領域に格納される。
送信制御回路144は、SRAM160のアイソクロナスヘッダ領域に、ヘッダ作成回路142によって作成されたISOヘッダがあるか否かを検出する。SRAM160にアイソクロナスヘッダ領域にISOヘッダがあると検出されたとき、送信制御回路144は、アイソクロナス領域から当該ISOヘッダを読み出すと共に、アイソクロナス送信データ領域からデータ(TSパケット)を読み出す。そして、送信制御回路144は、当該データに付加されたSPヘッダを、現在のサイクルタイムに送信オフセット値設定レジスタ208の設定値を加算した値を有するSPヘッダに替えて出力する。
なお、SRAM160にアイソクロナス領域にISOヘッダがないと検出されたとき、送信制御回路144は、Nullパケット用ヘッダ領域からNullパケット用ヘッダを読み出す。そして、送信制御回路144は、このNullパケット用ヘッダをNullパケットとして出力する。
以下、図9を参照しながらリンクコントローラ140の動作について説明する。
図16に、Nullパケットを送信する場合のリンクコントローラ140の動作例のタイミング図を示す。
まず処理部190から自動転送イネーブルを受け取ると、ヘッダ作成回路142が動作を開始する。図16では、自動転送イネーブルによってイネーブル状態に設定されているものとする。
この状態において、ヘッダ作成回路142がISOパケット転送完了信号を受け取るとアイソクロナスヘッダの生成を開始する。ISOパケット転送完了信号は、当該ISOサイクルにおいてISO送信シーケンサ330のタイミング制御に基づいてISOパケットの転送が完了したときにアクティブとなる。
ISOパケット転送完了信号を受け取ったヘッダ生成コントローラ310のシーケンサ312は、ポインタコントローラ170からのSRAM内データ残量情報に基づいて、SRAM160内に格納されるTSパケットが1パケット以上であるか否かを判別する(E1)。
SRAM160内に格納されるTSパケットが1パケット未満のとき、シーケンサ312がNextNullを有効にして、ヘッダ読み出しスタート信号をアクティブにする(E2)。これにより、メモリアクセス制御部300のヘッダアクセスコントローラ302は、図14で説明したようにSRAM160のNullパケット用ヘッダ領域からヘッダを読み出す(E3)。
次に、ヘッダアクセスコントローラ302は、読み出したNullパケット用ヘッダ領域をSRAM160のアイソクロナスヘッダ領域に書き込む(E4)。ヘッダアクセスコントローラ302は、ヘッダ書き込み終了をアクティブにしてシーケンサ312に通知する。
そして、サイクルスタートパケットを受けてアイソサイクルスタート信号がアクティブとなると(E5)、次のISOサイクルが開始される。ISO送信シーケンサ330は、RAM制御信号生成部320を介してSRAM160のアイソクロナスヘッダ領域からヘッダを読み出して、必要に応じてデータレングスを書き換えてNullパケットとして送信する(E6)。Nullパケットであるため、データを含まない。
図17に、ISOパケットを送信する場合のリンクコントローラ140の動作例のタイミング図を示す。図17においても、自動転送イネーブルによってイネーブル状態に設定されているものとする。
当該ISOサイクルにおいて例えばNullパケットの送信を完了すると、ISO送信シーケンサ330がISOパケット転送完了信号をアクティブにする。ISOパケット転送完了信号を受け取ったヘッダ生成コントローラ310のシーケンサ312は、ポインタコントローラ170からのSRAM内データ残量情報に基づいて、SRAM160内に格納されるTSパケットが1パケット以上であるか否かを判別する(E10)。
SRAM160内に格納されるTSパケットが1パケット以上のとき、シーケンサ312がNextNullを無効にして、ヘッダ読み出しスタート信号をアクティブにする(E11)。これにより、メモリアクセス制御部300のヘッダアクセスコントローラ302は、図14で説明したようにSRAM160の自動転送用ヘッダ領域からヘッダの基本情報を読み出す(E12)。
ヘッダ生成コントローラ310の転送データ長計算部314は、SRAM内データ残量情報を用いて、次のISOサイクルで転送できるISOパケットのデータ長を求める。メモリアクセス制御部300のヘッダ書き換え部304は、転送データ長計算部314からの転送データ長を用いて自動転送用ヘッダから読み出したヘッダの基本情報を書き換える。そして、ヘッダアクセスコントローラ302は、書き換え後のヘッダをSRAM160のアイソクロナスヘッダ領域に書き込む(E13)。ヘッダアクセスコントローラ302は、ヘッダ書き込み終了をアクティブにしてシーケンサ312に通知する。
そして、サイクルスタートパケットを受けてアイソサイクルスタート信号がアクティブとなると(E14)、次のISOサイクルが開始される。ISO送信シーケンサ330は、RAM制御信号生成部320を介してSRAM160のアイソクロナスヘッダ領域からヘッダを読み出して、SRAM160のアイソクロナス送信データ領域からデータを読み出してISOパケットを生成し、ISOパケットとして送信する(E15)。
以上のように、本実施形態では、パケットが受信側に到着した直後にサイクルタイムがSPヘッダの値に一致するようになり、転送データの確実な時間管理を実現し、データ転送に伴う処理負荷の軽減及び低コスト化を図ることができるようになる。
なお、上述したように所定の送信オフセット値を現在のサイクルタイムに加算するようにしてもよいが、より正確には以下のようにSPヘッダを置換することが望ましい。即ち、SPH付加回路114に付加されたタイムスタンプ情報(第1のタイムスタンプ情報)とサイクルタイマ150の現在のサイクルタイムとに基づいて、現在のサイクルタイムにおいて付加すべき第2のタイムスタンプ情報を求め、該第2のタイムスタンプ情報を、出力タイムスタンプ情報として入力タイムスタンプ情報に替えて設定する。これにより、送信オフセット値で現在のサイクルタイムに対して一定のオフセット値を持たせる場合に比べて、より細かい時間管理を実現できるようになる。
2.2 SPヘッダ比較モード
図18に、SPヘッダ比較モードに設定されたデータ転送制御装置100の動作例の概要のフローを示す。
図18に、SPヘッダ比較モードに設定されたデータ転送制御装置100の動作例の概要のフローを示す。
まずデータ転送制御装置100が、転送イネーブル設定レジスタによりイネーブル状態に設定される(ステップS20)。ここで、SPHロード設定レジスタ204によりSPHロード設定がイネーブル状態に設定されたか、ディスエーブル状態に設定されたかを判別する(ステップS21)。
SPHロード設定がイネーブル状態に設定されたとき(ステップS21:Y)、SRAM160内の先頭パケットのSPヘッダのサイクルカウントを比較値として設定する(ステップS22)。この比較値は、転送開始SPH設定レジスタ206に設定される。
一方、SPHロード設定がディスエーブル状態に設定されたとき(ステップS21:N)、ファームウェアで指定された値を比較値として設定する(ステップS23)。この比較値もまた、転送開始SPH設定レジスタ206に設定される。
なお転送イネーブル設定後に、ストリームI/F回路110を介してTSパケットを受け付け、SRAM160に格納される。
そして、ステップS22又はステップS23の後は、リンクコントローラ140が、SRAM160のデータ残量が、最大連結パケット数以上であるか否かを判別する(ステップS24)。最大連結パケット数は、最大連結パケット数設定レジスタ202に設定される。
SRAM160のデータ残量が最大連結パケット数以上のとき(ステップS24:Y)、SRAM160のアイソクロナスデータ領域に格納された各TSパケットに付加されるSPヘッダを参照し、比較値と一致するサイクルカウントを有するSPヘッダが付加されたTSパケットがあるか否かを検出する(ステップS25)。
ステップS24においてデータ残量が最大連結パケット数に満たないとき(ステップS24:N)、Nullパケットデータを生成する(ステップS26)。
ステップS25においてSRAM160のアイソクロナスデータ領域に比較値と一致するサイクルカウントを有するSPヘッダが付加されたTSパケットがないと検出されたとき(ステップS25:N)、比較値をインクリメントした後に(ステップS27)、Nullパケットデータを生成する(ステップS26)。
ステップS25において、SRAM160のアイソクロナスデータ領域に比較値と一致するサイクルカウントを有するSPヘッダが付加されたTSパケットがあると検出されたとき(ステップS25:Y)、比較値と不一致のサイクルカウントを有するSPヘッダが付加されたTSパケットがあることを条件に(ステップS28:Y)、比較値をインクリメントする(ステップS29)。
ステップS29の後、又はステップS28において比較値と不一致のサイクルカウントを有するSPヘッダが付加されたTSパケットがないとき(ステップS28:N)、ISOパケット用のヘッダを作成し(ステップS30)、現在のサイクルタイムにオフセット値だけ先行させた値をサイクルカウントとして有するSPヘッダに替えて設定されたISOパケットを生成する(ステップS31)。
ステップS26又はステップS31の後は、次のISOサイクルになったとき(ステップS32:Y)、ステップS31で生成したISOパケット又はステップS26のNullパケットを送信する(ステップS33)。
その後、所定の終了条件を満たすとき(ステップS34:Y)、一連の処理を終了する(エンド)。所定の終了条件を満たさないとき(ステップS34:N)、ステップS24に戻る。
データ転送制御装置100の各回路又は各ユニット(部)は、以上のような処理を独立に、又は処理部190の制御下で動作する。
SPヘッダ比較モードにおいても、SRAM160のデータ残量を求めてデータ転送すべきか否かを判別するデータ残量確認処理は、ISOサイクル期間のアイソクロナス転送の後に行う。そして、当該ISOサイクル期間内のデータ残量確認処理後に、ISOパケットのヘッダ作成処理を行う。
図19に、SPヘッダ比較モードの説明図を示す。図19において、図8又は図12と同一部分には同一符号を付し、適宜説明を省略する。
SPヘッダ比較モードに設定されたデータ転送制御装置100は、IEEE1394バスと記録媒体との間に設けられる。従って、記録媒体としてのHDDやDVDの記録・再生装置にMPEG2TSを記録する場合、データ転送制御装置100に接続されたIEEE1394バスを介して転送されたパケットか、ストリームI/F回路110を介して受信したストリームのパケットかのいずれかである。IEEE1394バスを介して転送されたパケットは、IEC61883規格に準拠して、SPヘッダが既に付加されている。ストリームI/F回路110を介して受信されたストリームのパケットには、SPH付加回路114によってSPヘッダが付加されている。そのため、記録媒体にMPEG2TSを記録する場合、データ転送制御装置100はIDEI/F回路120を介してそのまま出力する。このとき、データ転送制御装置100の外部にSDRAMI/F回路130を介して接続されたSDRAM380(広義にはバッファメモリ)に書き込むべきパケットデータを蓄積し、SDRAM380からIDE/IF回路120を介して記録媒体に書き込むことが望ましい。例えば記録媒体がHDDの場合、バースト的にデータ書き込みを行わないと、シーク時間等の増加によって書き込み時間が長くなってしまう。
これに対して、記録媒体としてのHDDやDVDの記録・再生装置からMPEG2TSを読み出して再生する場合は、以下のように行う。この場合、記録媒体から読み出したMPEG2TSを、SDRAMI/F回路130を介して外部に接続されたSDRAM380にバッファリングする。
図20に、データ転送制御装置100において記録媒体としてのHDDから読み出されたデータがSDRAM380に転送されるときの動作説明図を示す。
HDDから読み出したMPEG2TSを再生する場合、記録時と同様にある程度大きなデータ単位でSDRAM380にデータを書き込む。こうすることで、シーク時間の長短に応じて、アイソクロナスデータとして途切れることのないTSパケットをSRAM160に供給できる。
図20では、サイクルタイムが5000のときに、HDDから読み出されたデータのSPヘッダのサイクルカウントが2500、2501、2502、2503のデータが読み出されている。このように、HDDから読み出されるデータのSPヘッダとサイクルタイマ150がカウントするサイクルタイムとは全く無関係である。これは、記録時等において付加されていたSPヘッダのサイクルカウントと再生時のサイクルタイムとは何ら関係がないからである。しかも、MPEG2TSの帯域に対し、HDDからのデータの読み出し時間がはるかに高速であるため、記録時等において付加されていたSPヘッダのサイクルカウントと再生時のサイクルタイムとを関連付けることができない。
このようにしてSDRAM380に書き込まれたMPEG2TSは、SRAM160に転送される。この転送は、例えばSDRAMI/F回路130が含むDMA(Direct Memory Access)制御回路によって制御されるDMA転送であることが望ましい。
図21に、データ転送制御装置100においてSDRAM380からSRAM160に転送されるときの動作説明図を示す。
ここでは、サイクルタイムが6500のときに、SDRAM380からSPヘッダのサイクルカウントが2500、2501、2502、2503のデータが読み出され、SRAM160に書き込まれている。このように、SDRAM380に蓄積されたデータがDMA転送によってSRAM160に書き込まれる場合も、サイクルタイマ150のサイクルタイムとTSパケットに付加されたSPヘッダのサイクルカウントとは関係がない。
SRAM160に蓄積されたデータは、そのSPヘッダが参照され、比較値と一致したサイクルカウントを有するSPヘッダが付加されたデータ群が読み出されてISOパケットに構築されて送信される。
図22に、データ転送制御装置100においてSRAM160からIEEE1394バスに転送されるときの動作説明図を示す。
例えばサイクルタイマ150のサイクルタイムが6500のとき転送を開始する場合、比較値である2500と一致するサイクルカウントを有するSPヘッダが付加された2つのTSパケットが連結されて出力される。この際、SPヘッダは、2500にオフセット値4006を加算した6506をサイクルカウントとするSPヘッダに置き換えられる。これは、現在のサイクルタイムを基準にオフセット値5だけ先行したサイクルカウントを有するSPヘッダに置き換えるということもできる。そして、サイクルタイムが6501に、この2つのTSパケットがIEEE1394バスに出力される。
次のISOサイクルでは、比較値がインクリメントされて2501に更新される。従って、比較値である2501と一致するサイクルカウントを有するSPヘッダが付加された2つのTSパケットが連結されて出力される。この際、SPヘッダのサイクルカウントは、6501を初期値としてインクリメントした値とすることができる。また、SPヘッダのサイクルカウントは、元のSPヘッダのサイクルカウントにオフセット値4006を加算した値としてもよい。要は、SPヘッダのサイクルカウントは、現在のサイクルタイムを基準に5だけ先行した値であればよい。
なお最大連結パケット数を変更することで、1つのISOサイクル中に比較値と一致するサイクルカウントを有するSPヘッダが付加されたTSパケット数が2以上存在しても、1つだけを送信し、残りを次のISOサイクルで転送することも可能である。
以下、図9を参照しながら、SPヘッダ比較モードにおけるリンクコントローラ140の動作について説明する。
図23に、SPヘッダ比較モードにおけるリンクコントローラ140の動作例のタイミング図を示す。
図23においても、自動転送イネーブルによってイネーブル状態に設定されているものとする。この状態において、ISOパケット転送完了信号を受け取るとアイソクロナスヘッダの生成を開始する。
当該ISOサイクルにおいて例えばNullパケットの送信を完了すると、ISO送信シーケンサ330がISOパケット転送完了信号をアクティブにする。ISOパケット転送完了信号を受け取ったヘッダ生成コントローラ310のシーケンサ312は、ポインタコントローラ170からのSRAM内データ残量情報に基づいて、SRAM160内に格納されるTSパケットが1パケット以上であるか否かを判別する(E20)。
SRAM160内に格納されるTSパケットが1パケット以上のとき、シーケンサ312は、SPH読み出しスタート信号をアクティブにしてメモリアクセス制御部300に出力する(E21)。
SPH読み出しスタート信号を受けたメモリアクセス制御部300のヘッダアクセスコントローラ302は、SRAM160のアイソクロナス送信データ領域に格納されたTSパケットに付加されたSPヘッダを読み出す(E22)。ヘッダ生成コントローラ310のSPH比較部316は、読み出したSPヘッダ(のサイクルカウント)が転送開始SPH設定レジスタ206に設定された比較値CompaCountと一致するか否を判定する。
読み出したSPヘッダ(のサイクルカウント)が比較値CompaCountと一致したと判定されたとき、SPHOK信号をアクティブにしてシーケンサ312に出力し(E23)、転送データ長計算部314に供給されるSPH一致回数信号をインクリメントする。
シーケンサ312は、SRAM内データ残量情報に基づいて、次に読み出し可能なSPヘッダがSRAM160にあるか否かを判別する。そして、次に読み出し可能なSPヘッダがあると判別されたとき、シーケンサ312は再度SPH読み出しスタート信号をアクティブにする(E24)。そして、同様にしてヘッダアクセスコントローラ302は、SRAM160のアイソクロナス送信データ領域に格納されたパケットのSPヘッダを読み出す(E25)。更にSPH比較部316は、読み出したSPヘッダが比較値CompaCountと一致したと判定したとき、SPHOK信号をアクティブにしてシーケンサ312に出力し(E26)、転送データ長計算部314に供給されるSPH一致回数信号をインクリメントする。
またシーケンサ312は、SRAM内データ残量情報に基づいて、次に読み出し可能なSPヘッダがSRAM160にあるか否かを判別する。そして、次に読み出し可能なSPヘッダがあると判別されたとき、シーケンサ312は再度SPH読み出しスタート信号をアクティブにする(E27)。そして、ヘッダアクセスコントローラ302は、SRAM160のアイソクロナス送信データ領域に格納されたパケットのSPヘッダを読み出す(E28)。
次に読み出し可能なSPヘッダがSRAM160にないと判別されるまで、或いはSPH比較部316において、読み出したSPヘッダが比較値CompaCountとが不一致と判定されるまで、同様の処理を繰り返す。
例えばSPH比較部316において、読み出したSPヘッダが比較値CompaCountと不一致と判定されたとき、転送データ長計算部314は、SPH一致回数信号の値により、次のISOサイクルで転送可能なデータ数を算出する。即ち転送データ長計算部314は、192バイト×SPH一致回数を、転送データ長として求める。
その後、シーケンサ312はNextNullを無効にして、ヘッダ読み出しスタート信号をアクティブにする(E29)。これにより、メモリアクセス制御部300のヘッダアクセスコントローラ302は、図14で説明したようにSRAM160の自動転送用ヘッダ領域からヘッダの基本情報を読み出す(E30)。
ヘッダ書き換え部304は、転送データ長計算部314からの転送データ長を用いて自動転送用ヘッダの基本情報を書き換える。そして、ヘッダアクセスコントローラ302は、書き換え後のヘッダをSRAM160のアイソクロナスヘッダ領域に書き込む(E31)。ヘッダアクセスコントローラ302は、ヘッダ書き込み終了をアクティブにしてシーケンサ312に通知する。
そして、サイクルスタートパケットを受けてアイソサイクルスタート信号がアクティブとなると(E32)、次のISOサイクルが開始される。ISO送信シーケンサ330は、RAM制御信号生成部320を介してSRAM160のアイソクロナスヘッダ領域からヘッダを読み出して、SRAM160のアイソクロナス送信データ領域からデータを読み出してISOパケットを生成し、ISOパケットとして送信する(E33)。
なお先頭のSPヘッダが比較値CompaCountと不一致のとき、転送データ長が0となり、次のISOサイクルで転送可能なデータはないと判断され、上述のようにNullパケットが転送される。即ち、比較値とSRAM160に蓄積されたデータに含まれるタイムスタンプ情報とを比較し、該比較値と一致するタイムスタンプ情報を含むデータが検出されなかったとき、空パケットを転送先に出力する。
以上のように本実施形態におけるデータ転送制御装置100は、転送モード設定レジスタ200を含む。そして、転送モード設定レジスタ200によりデータ残量比較モード(第1のモード)に切り替えられたとき、TSパケット(パケットデータ)をバス(転送先)に出力する際に、リンクコントローラ140が、サイクルタイマ150の現在のサイクルタイムを基準にオフセット値だけ先行したサイクルタイムに対応した出力タイムスタンプ情報を、TSパケットに付加できる。
或いは、データ残量比較モードでは、例えばTSパケットがデータ転送制御装置100に入力されたときのサイクルタイマ150のサイクルタイムに対応した入力タイムスタンプ情報をTSパケットに付加する。その後、リンクコントローラ140が、入力タイムスタンプ情報として付加されたサイクルタイムを基準にオフセット値だけ先行したサイクルタイムに対応した第1のタイムスタンプ情報を、出力タイムスタンプ情報として、TSパケットをバスに出力する際に入力タイムスタンプ情報に替えて設定することができる。
また転送モード設定レジスタ200によりSPヘッダ比較モード(第2のモード)に切り替えられたとき、リンクコントローラ140が、SRAM160に蓄積され入力タイムスタンプ情報が付加されたTSパケットに付加されたタイムスタンプ情報と比較値とを比較する。そして、比較値と一致するタイムスタンプ情報を含むデータ群に対し、サイクルタイマ150の現在のサイクルタイムを基準にオフセット値だけ先行したサイクルタイムに対応した出力タイムスタンプ情報を付加してTSパケットを生成すると共に、該パケットデータを現在のサイクルタイムにおいてバス(転送先)に出力する。ここで、比較値と不一致のタイムスタンプ情報が検出されたときには、比較値を更新する。そして、現在のサイクルタイムの次のサイクルタイムにおいて、更新された比較値とSRAM160に蓄積されたデータに含まれるタイムスタンプ情報とを比較することができる。
これにより、当初からタイムスタンプ情報が付加されている記録媒体からのパケットデータの転送をする場合であっても、転送先側でバッファリングを行うのに適したタイミングで送信することができるようになる。
ここで、SPヘッダ比較モードにおいてもデータ残量比較モードと同様に、比較値と一致するタイムスタンプ情報を含むデータ群に対してヘッダ情報を作成することが望ましい。そして比較値の更新処理は、比較値と不一致のタイムスタンプ情報を含むデータが検出されたことを条件に行うことが望ましい。更にSRAM160に蓄積されたデータのタイムスタンプ情報を、サイクルタイマ150の現在のサイクルタイムを基準にオフセット値だけ先行したサイクルタイムに対応した出力タイムスタンプ情報に置き換えて、TSパケットを生成してIEEE1394バスに出力することが望ましい。
3. 電子機器
次に、本実施形態のデータ転送制御装置を含む電子機器の例について説明する。
次に、本実施形態のデータ転送制御装置を含む電子機器の例について説明する。
図24に、本実施形態におけるデータ転送制御装置が適用された電子機器としてのデジタル放送受信装置の構成例のブロック図を示す。図24において、図8に示すデータ転送制御装置100と同一部分には同一符号を付し、適宜説明を省略する。
デジタル放送受信装置400は、BSデジタル放送として配信されたMPEG2ストリームを、アンテナ420を介して受信する。そしてMPEG2ストリームをデコードして表示装置430に出力したり、MPEG2ストリームの一部のパーシャルストリームを表示装置430が内蔵するHDD432に出力したり、或いは該パーシャルストリームをHDDレコーダ440に転送したりできる。
デジタル放送受信装置400は、本実施形態のデータ転送制御装置100、RF・復調部(受信回路)402、デコーダ404、1394PHYチップ406を含むことができる。なおデジタル放送受信装置400は、図24のすべての回路、ユニット(部)を含む必要はなく、その一部を省略する構成であってもよい。
デジタル放送受信装置400に適用されるデータ転送制御装置100は、データ残量比較モードでデータ転送を制御する。そのため、図24では、図8のデータ転送制御装置100の一部のみを図示している。
アンテナ420を介して受信されたMPEG2ストリームは、RF・復調部402で復調されて、MPEG2TSのマルチストリームとしてデータ転送制御装置100及びデコーダ404に供給される。
表示装置430にMPEG2ストリームのリアルタイム画像を表示させる場合、デコーダ404がデコードした結果を表示装置430に出力する。
表示装置430が内蔵するHDD432に記録する場合、データ転送制御装置100がストリームI/F回路110を介してMPEG2TSのマルチストリームを取り込み、PIDフィルタ180でMPEG2TSのパーシャルストリームを抽出し、IDEI/F回路120を介してHDD432に出力する。
HDDレコーダ440に記録する場合、データ転送制御装置100が、PIDフィルタ180で抽出したMPEG2TSのパーシャルストリームをSRAM160にバッファリングし、リンクコントローラ140を介して1394PHYチップ406に出力する。1394PHYチップは、IEEE1394バスを介してHDDレコーダ440にTSパケットを転送する。従って、RF・復調部402によって受信されたパケットデータのストリームが、データ転送制御装置100により、IEEE1394バスを介して記録媒体を有するHDDレコーダ440に転送される。
なお図24において、デジタル放送受信装置400が表示装置430を含む場合、本実施形態におけるデータ転送制御装置100をデジタル放送表示装置に適用できるということができる。
このようなデジタル放送受信装置によれば、確実なTSパケットの時間管理の下、処理負荷が軽減されて低コスト化を実現できる。
図25に、本実施形態におけるデータ転送制御装置が適用された電子機器としての記録・再生装置の構成例のブロック図を示す。図25において、図8に示すデータ転送制御装置100と同一部分には同一符号を付し、適宜説明を省略する。
記録・再生装置500は、AVデータの記録・再生を実現する。即ち、アンテナ520を介して受信されたMPEG2ストリームを内蔵するHDD510に記録したり、HDD510に記録したMPEG2ストリームを再生できる。
記録・再生装置500は、本実施形態のデータ転送制御装置100、HDD510、SDRAM(広義にはバッファメモリ)380、1394PHYチップ406を含むことができる。なお記録・再生装置500は、図25のすべての回路、ユニット(部)を含む必要はなく、その一部を省略する構成であってもよい。
記録・再生装置500に適用されるデータ転送制御装置100は、SPヘッダ比較モードでデータ転送を制御する。そのため、図25では、図8のデータ転送制御装置100の一部のみを図示している。
アンテナ520を介して受信されたMPEG2ストリームは、表示装置(例えばデジタルTV装置)530でデコードされ、デコード結果に対応した画像がデジタル放送として表示される。表示装置530に供給されたMPEG2ストリームは、IEEE1394バスを介して記録・再生装置500に転送される。
記録・再生装置500では、1394PHYチップ406を介してIEEE1394バス上のTSパケットがデータ転送制御装置100に供給される。
MPEG2ストリームをHDD(広義には記録媒体)510に記録する場合、データ転送制御装置100では、TSパケットが一旦SRAM160に格納される。そして、SDRAMI/F回路130を介してSDRAM380にバッファリングされた後、再びSDRAMI/F回路130及びIDEI/F回路120を介してHDD510に対してDMA転送される。
HDD510に格納されたMPEG2ストリームを再生する場合、データ転送制御装置100では、HDD510から読み出されたMPEG2ストリームは、IDEI/F回路120及びSDRAMI/F回路130を介して、一旦SDRAM380にDMA転送されてバッファリングされる。その後、データ転送制御装置100は、SDRAM380から読み出したデータを、SDRAMI/F回路130を介してSRAM160に格納する。そして、SRAM160に格納されたデータのSPヘッダを参照しながら、順次IEEE1394バスを介してISOパケットを転送する。表示装置530は、ISOパケットを取り込んでデコードし、デコード結果に対応した画像を表示する。
以上のように、HDD510は、データ転送制御装置100を介してIEEE1394バスに接続される。そして、データ転送制御装置100が、IEEE1394バスを介して入力されたデータをHDD510に出力して記録させ、或いはHDD510から読み出したデータをIEEE1394バスを介して出力することができる。
このような記録・再生装置によれば、確実なTSパケットの時間管理の下、デコード側に適したタイミングで送信できると共に、処理負荷が軽減されて低コスト化を実現できる。
なお、本発明は上述した実施の形態に限定されるものではなく、本発明の要旨の範囲内で種々の変形実施が可能である。
また、本発明のうち従属請求項に係る発明においては、従属先の請求項の構成要件の一部を省略する構成とすることもできる。また、本発明の1の独立請求項に係る発明の要部を、他の独立請求項に従属させることもできる。
また、明細書又は図面中の記載において広義な用語(転送コントローラ、パケットデータ等)として引用された用語(ヘッダ作成回路又はパケット生成回路、TSパケット等)は、明細書又は図面中の他の記載においても広義な用語に置き換えることができる。
本実施形態では、アイソクロナス転送を行う場合について説明したが、本発明はこれに限定されない。例えばアシンクロナス転送を行う場合にも適用できる。
また本実施形態では、タイムスタンプ情報としてSPヘッダのサイクルカウントを例に説明したが、本発明はこれに限定されない。例えばタイムスタンプ情報として、SPヘッダのサイクルカウントに加えてサイクルオフセットを含めて付加、設定又は張り替えを行ってもよい。
更に本実施形態では、TSパケットを例に説明したが本発明はこれに限定されない。
更にまた本実施形態では、MPEG規格(MPEG2、MPEG4)のデータをIEEE1394規格のバス(インタフェース)で転送する場合について説明したが、本発明はこれに限定されない。例えばMPEG(MPEG2、MPEG4)と同様の思想に基づく規格やMPEGを発展させた規格のデータを、IEEE1394と同様の思想に基づく規格やIEEEE1394を発展させた規格のバスで転送する場合にも本発明を適用できる。また、例えばMPEG等の符号化データをUSB(Universal Serial Bus)のアイソクロナス転送で転送する場合にも本発明を適用できる。
更にまた本実施形態では、IEEE1394等の汎用高速シリアルインタフェースを用いるものとして説明したが、本発明はこれに限定されない。例えば、無線伝送路を介したデータ転送を制御するデータ転送制御装置にも本発明を適用できる。
10、420、520 アンテナ、 20 デジタル放送チューナ、
22、100 データ転送制御装置、 30 記録・再生装置、 32 記録媒体、
110 ストリームI/F回路、 112 SPH比較出力回路、
114 SPH付加回路、 120 IDEI/F回路、
130 SDRAMI/F回路、 140 リンクコントローラ、
142 ヘッダ作成回路、 144 送信制御回路、 150 サイクルタイマ、
160 SRAM、 170 ポインタコントローラ、 180 PIDフィルタ、
190 処理部、 200 転送モード設定レジスタ、
202 最大連結パケット数設定レジスタ、 204 SPHロード設定レジスタ、
206 転送開始SPH設定レジスタ、 208 送信オフセット値設定レジスタ、
250 アクセス調停部、 300 メモリアクセス制御部、
302 ヘッダアクセスコントローラ、 304 ヘッダ書き換え部、
310 ヘッダ生成コントローラ、 312 シーケンサ、
314 転送データ計算部、 316 SPH比較部、
320 RAM制御信号生成部、 330 ISO送信シーケンサ、
340 ISO送信FIFO、 350 張り替えSPH保持レジスタ、
380 SDRAM、 400 デジタル放送受信装置、 402 RF・復調部、
404 デコーダ、 406 1394PHYチップ、 430、530 表示装置、
432、510 HDD、 440 HDDレコーダ
22、100 データ転送制御装置、 30 記録・再生装置、 32 記録媒体、
110 ストリームI/F回路、 112 SPH比較出力回路、
114 SPH付加回路、 120 IDEI/F回路、
130 SDRAMI/F回路、 140 リンクコントローラ、
142 ヘッダ作成回路、 144 送信制御回路、 150 サイクルタイマ、
160 SRAM、 170 ポインタコントローラ、 180 PIDフィルタ、
190 処理部、 200 転送モード設定レジスタ、
202 最大連結パケット数設定レジスタ、 204 SPHロード設定レジスタ、
206 転送開始SPH設定レジスタ、 208 送信オフセット値設定レジスタ、
250 アクセス調停部、 300 メモリアクセス制御部、
302 ヘッダアクセスコントローラ、 304 ヘッダ書き換え部、
310 ヘッダ生成コントローラ、 312 シーケンサ、
314 転送データ計算部、 316 SPH比較部、
320 RAM制御信号生成部、 330 ISO送信シーケンサ、
340 ISO送信FIFO、 350 張り替えSPH保持レジスタ、
380 SDRAM、 400 デジタル放送受信装置、 402 RF・復調部、
404 デコーダ、 406 1394PHYチップ、 430、530 表示装置、
432、510 HDD、 440 HDDレコーダ
Claims (9)
- データ転送を制御するためのデータ転送制御装置であって、
転送サイクル毎に更新されるサイクルタイムをカウントするサイクルタイマと、
パケットデータの転送を制御する転送コントローラとを含み、
前記転送コントローラが、
前記パケットデータに含まれるタイムスタンプ情報と比較値とを比較し、
前記比較値と一致するタイムスタンプ情報を含むパケットデータ群に対し、前記タイムスタンプ情報に替えて、前記サイクルタイマの現在のサイクルタイムを基準にオフセット値だけ先行したサイクルタイムに対応した出力タイムスタンプ情報を設定して、該パケットデータ群を現在の転送サイクルにおいて転送先に出力し、
前記比較値と不一致のタイムスタンプ情報が検出されたときに前記比較値を更新すると共に、前記現在のサイクルタイムの次のサイクルタイムにおいて、更新された比較値と次に転送すべきパケットデータに含まれるタイムスタンプ情報とを比較することを特徴とするデータ転送制御装置。 - 請求項1において、
前記転送コントローラが、
前記比較値と前記パケットデータに含まれるタイムスタンプ情報とを比較し、該比較値と一致するタイムスタンプ情報を含むパケットデータが検出されなかったとき、空パケットを前記転送先に出力することを特徴とするデータ転送制御装置。 - 請求項1又は2において、
前記転送コントローラが、
パケットデータに付加されるヘッダ情報を作成するヘッダ作成回路と、
前記ヘッダ作成回路によって作成された前記ヘッダ情報とパケットデータとを結合した出力用パケットデータを生成し、該出力用パケットデータを転送先に出力するパケット生成回路とを含み、
前記ヘッダ作成回路が、
前記タイムスタンプ情報を読み出して、前記比較値と一致するタイムスタンプ情報を含むパケットデータ群に対してヘッダ情報を作成すると共に、前記比較値と不一致のタイムスタンプ情報を含むデータが検出されたこを条件に前記比較値の更新処理を行い、
前記パケット生成回路が、
前記タイムスタンプ情報に替えて、前記サイクルタイマの現在のサイクルタイムを基準にオフセット値だけ先行したサイクルタイムに対応した出力タイムスタンプ情報を設定したパケットデータを前記転送先に出力することを特徴とするデータ転送制御装置。 - 請求項3において、
前記パケットメモリを含み、
前記パケットメモリが、
入力タイムスタンプ情報が付加されたパケットデータが記憶されるデータ領域と、前記ヘッダ作成回路によって作成された前記ヘッダ情報が記憶されるヘッダ領域とを有し、
前記パケット生成回路が、
前記データ領域からのパケットデータに含まれる入力タイムスタンプ情報に替えて前記出力タイムスタンプ情報を設定し、該パケットデータと前記ヘッダ領域からのヘッダ情報とを結合することを特徴とするデータ転送制御装置。 - 請求項4において、
前記ヘッダ作成回路が、
前記ヘッダ領域に記憶されたヘッダの基本情報を読み出して、該基本情報を用いて前記ヘッダ情報を生成して前記ヘッダ領域に書き戻すことを特徴とするデータ転送制御装置。 - 請求項1乃至5のいずれかにおいて、
IEEE1394の規格に準拠したデータ転送を行うことを特徴とするデータ転送制御装置。 - 請求項1乃至6のいずれか記載のデータ転送制御装置と、
前記データ転送制御装置を介してバスに接続される記録媒体とを含み、
前記データ転送制御装置が、
前記バスを介して入力されたデータを前記記録媒体に出力して該記録媒体に記録させ、或いは前記記録媒体から読み出したデータを前記バスを介して出力することを特徴とする電子機器。 - データ転送を制御するためのデータ転送制御方法であって、
転送サイクル毎に更新されるサイクルタイムをカウントし、
パケットデータに含まれるタイムスタンプ情報と比較値とを比較し、
前記比較値と一致するタイムスタンプ情報を含むパケットデータ群に対し、前記タイムスタンプ情報に替えて、現在のサイクルタイムを基準にオフセット値だけ先行したサイクルタイムに対応した出力タイムスタンプ情報を設定して、該パケットデータ群を現在の転送サイクルにおいて転送先に出力し、
前記比較値と不一致のタイムスタンプ情報が検出されたときに前記比較値を更新すると共に、前記現在のサイクルタイムの次のサイクルタイムにおいて、更新された比較値と次に転送すべきパケットデータに含まれるタイムスタンプ情報とを比較することを特徴とすることを特徴とするデータ転送制御方法。 - 請求項8において、
前記比較値と前記パケットデータに含まれるタイムスタンプ情報とを比較し、該比較値と一致するタイムスタンプ情報を含むパケットデータが検出されなかったとき、空パケットを前記転送先に出力することを特徴とするデータ転送制御方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2004224172A JP2006049980A (ja) | 2004-07-30 | 2004-07-30 | データ転送制御装置、電子機器及びデータ転送制御方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2004224172A JP2006049980A (ja) | 2004-07-30 | 2004-07-30 | データ転送制御装置、電子機器及びデータ転送制御方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2006049980A true JP2006049980A (ja) | 2006-02-16 |
Family
ID=36028069
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2004224172A Withdrawn JP2006049980A (ja) | 2004-07-30 | 2004-07-30 | データ転送制御装置、電子機器及びデータ転送制御方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2006049980A (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2019103101A (ja) * | 2017-12-08 | 2019-06-24 | キヤノン株式会社 | 通信装置、通信装置の制御方法およびプログラム |
-
2004
- 2004-07-30 JP JP2004224172A patent/JP2006049980A/ja not_active Withdrawn
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2019103101A (ja) * | 2017-12-08 | 2019-06-24 | キヤノン株式会社 | 通信装置、通信装置の制御方法およびプログラム |
JP7027145B2 (ja) | 2017-12-08 | 2022-03-01 | キヤノン株式会社 | 通信装置、通信装置の制御方法およびプログラム |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP1006729A2 (en) | Data recording and/or reproducing apparatus, method, and system and recording medium | |
JP3633884B2 (ja) | 再生画像伝送装置 | |
KR100982890B1 (ko) | 특정 모드를 구현하기 위한 비디오 데이터 전송 방법 및장치 | |
US6937599B1 (en) | Data source, data conversion device, inverse data conversion device, auxiliary data file generation device, reception method, medium and information aggregate | |
JP3671925B2 (ja) | データ転送制御装置、電子機器及びデータ転送制御方法 | |
US7194548B1 (en) | Data transmission apparatus, receiving apparatus, and sending apparatus | |
JP3815597B2 (ja) | 信号処理装置 | |
JP3558983B2 (ja) | デジタル放送の記録再生装置 | |
JP2003501892A (ja) | 電子ネットワークにおけるコンテクストを切り換える装置及び方法 | |
KR100259295B1 (ko) | 메모리 제어 장치 | |
JP4426800B2 (ja) | Avデータ記録再生装置及び方法、並びに当該avデータ記録再生装置又は方法で記録された記録媒体 | |
JP2006049948A (ja) | データ転送制御装置、電子機器及びデータ転送制御方法 | |
JP2006049980A (ja) | データ転送制御装置、電子機器及びデータ転送制御方法 | |
JP2004048464A (ja) | 音声映像データ記録再生装置 | |
JP2001057567A (ja) | 伝送路間のブリッジシステム及び方法 | |
JP2003281085A (ja) | データ転送制御装置、電子機器及びデータ転送制御方法 | |
JP4845326B2 (ja) | Ieee1394バスを転送されるmpeg記録データを読取るための方法及び装置 | |
JP4075360B2 (ja) | データ転送制御装置及び電子機器 | |
JP2006050078A (ja) | データ転送制御装置及び電子機器 | |
JP2006050077A (ja) | データ転送制御装置及び電子機器 | |
JP2000316015A (ja) | 記録再生装置 | |
JP2000156698A (ja) | 信号処理回路 | |
JP3897753B2 (ja) | 記憶出力装置 | |
JP2000041011A (ja) | 情報出力装置および方法、並びに提供媒体 | |
JP2004515022A (ja) | 情報記録媒体のプログラム仕様情報提供方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A300 | Application deemed to be withdrawn because no request for examination was validly filed |
Free format text: JAPANESE INTERMEDIATE CODE: A300 Effective date: 20071002 |