(57)【特許請求の範囲】
【請求項１】
被送信データを送信するソースと、
前記被送信データを受信するディスティネーションと、
前記ソースと前記ディスティネーションとの間の通信を管理するコントローラとを有し、
前記ソースは、
前記被送信データ内の各データを、前記ディスティネーションが有する受信バッファの一部を指定するのに用いられるオフセットアドレスとともに送信する機能と、
バスリセットが発生した場合において、前記被送信データの送信を中断する機能とを有し、
前記ディスティネーションは、
前記バスリセットが発生した後において、前記バスリセットが発生する前に正常に受信されたデータに対応する前記オフセットアドレスを前記ソースに通知する機能を有し、
前記ソースはさらに、
前記バスリセットが発生した後において、前記ディスティネーションから通知された前記オフセットアドレスに従って前記被送信データの送信を再開する機能を有することを特徴とするデータ通信システム。
【請求項２】
前記コントローラはさらに、前記バスリセットが発生した後において、前記ディスティネーションに再設定された通信アドレスを前記ソースに通知する機能を有することを特徴とする請求項１に記載のデータ通信システム。
【請求項３】
前記コントローラはさらに、前記バスリセットが発生した後において、前記ソースに再設定された通信アドレスを前記ディスティネーションに通知する機能を有することを特徴とする請求項１又は２に記載のデータ通信システム。
【請求項４】
前記被送信データ内の各データは、前記オフセットアドレスとともに、ＩＥＥＥ１３９４−１９９５規格で規定されたアシンクロナス（Asynchronous）転送方式により送信されることを特徴とする請求項１から３のいずれかに記載のデータ通信システム。
【請求項５】
前記バスリセットは、ＩＥＥＥ１３９４−１９９５規格で規定された機能であることを特徴とする請求項１から４のいずれかに記載のデータ通信システム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、被送信データを送信するソースと、当該被送信データを受信するディスティネーションと、当該ソースと当該ディスティネーションとの間の通信を管理するコントローラとを有するデータ通信システムに関する。
【０００２】
【従来の技術】
従来、パーソナルコンピュータ（以下、ＰＣ）の周辺機器の中で、最も利用頻度が高かったのはハードディスクやプリンタであった。これらの周辺機器は、専用の入出力インタフェース或いはＳＣＳＩ（small computer system interface ）インタフェース等の汎用性のあるデジタルインタフェースによってＰＣと接続されていた。
【０００３】
一方、近年、デジタルカメラ、デジタルビデオカメラ等のＡＶ（Audio/Visual）機器もＰＣの周辺装置の１つとして注目を浴びている。これらのＡＶ（Audio/Visual）機器も専用インタフェースを介してＰＣと接続されていた。
【０００４】
従来の専用インタフェースやＳＣＳＩインタフェースでは、特にＡＶ機器の有する静止画像や動画像のような大容量のデータを扱う場合において、データ転送レートが低い、パラレル通信のため通信ケーブルが太い、接続できる周辺機器の数と種類が少ない、接続方式に制限がある、リアルタイムなデータ転送が行えない等の多くの問題があった。
【０００５】
このような問題点を解決する次世代の高速、高性能デジタルインタフェースの一つとして、ＩＥＥＥ（The Institute of Electrical and Electronics Engineers，Inc.）１３９４−１９９５規格が知られている。
【０００６】
ＩＥＥＥ１３９４−１９９５規格に準拠したデジタルインタフェース（以下、１３９４インタフェース）には、次のような特徴がある。
（１）データ転送速度が高速である。
（２）リアルタイムなデータ転送方式（即ち、Isochronous転送方式）とAsynchronous転送方式をサポートしている。
（３）自由度の高い接続構成（トポロジ）を構築できる。
（４）プラグ・アンド・プレイ機能と活線挿抜機能をサポートしている。
【０００７】
【発明が解決しようとする課題】
しかしながら、ＩＥＥＥ１３９４−１９９５規格では、コネクタの物理的、電気的な構成、最も基本的な２つのデータ転送方式等については定義しているが、どのような種類のデータを、どのようなデータ・フォーマットで、どのような通信プロトコルに基づいて送受信するのかについては定義していなかった。
【０００８】
又、ＩＥＥＥ１３９４−１９９５規格のＩｓｏｃｈｒｏｎｏｕｓ転送方式では、送出パケットに対する応答が規定されていないため、各Ｉｓｏｃｈｒｏｎｏｕｓパケットが確実に受信されたかは保証されない。したがって、連続性のある複数のデータを確実に転送したい場合、或いは１つのファイルデータを複数のデータに分割して確実に転送したい場合、Ｉｓｏｃｈｒｏｎｏｕｓ転送方式を使用することはできなかった。
【０００９】
又、ＩＥＥＥ１３９４−１９９５規格のＩｓｏｃｈｒｏｎｏｕｓ転送方式では、転送帯域に空きがある場合でも、通信の総数が６４個に制限される。このため、少ない転送帯域で数多くの通信を行いたい場合、Ｉｓｏｃｈｒｏｎｏｕｓ転送方式を使用することはできなかった。
【００１０】
又、ＩＥＥＥ１３９４−１９９５規格では、ノードの電源のＯＮ／ＯＦＦ、ノードの接続／切り離し等に応じてバスリセットが生じた場合、データの転送を中断しなければならない。ところが、ＩＥＥＥ１３９４−１９９５規格では、バスリセットや伝送時のエラーによってデータ転送が中断した場合、どのような内容のデータを失ったのかについては知ることができなかった。更に、一度中断した転送を復帰するためには、非常に煩雑な通信手順を踏む必要があった。
【００１１】
ここで、バスリセットとは、新たなトポロジの認識と各ノードに割り当てられるアドレス（ノードＩＤ）の設定とを自動的に行う機能である。この機能により、ＩＥＥＥ１３９４−１９９５規格では、プラグ・アンド・プレイ機能と活線挿抜機能とを提供することができる。
【００１２】
又、ＩＥＥＥ１３９４−１９９５規格に準拠した通信システムにおいて、リアルタイム性は必要とされないが信頼性が要求される比較的データ量の多いオブジェクトデータ（例えば、静止画像データ、グラフィックスデータ、テキストデータ、ファイルデータ、プログラムデータ等）を、１以上のセグメントデータに分割して連続的に転送するための通信プロトコルは具体的に提案されていなかった。
【００１３】
又、このような通信システムでは、通常バスリセットが発生した場合、転送中であったセグメントを再び始めからやり直さなければならなかった。特に、ディスティネーションのバッファ容量が大きく、しかもセグメントのほとんどの転送が完了していた場合には、転送の再開に時間がかかり、同じデータを無駄に転送してしまう問題があった。
【００１４】
また、前述の問題を解決するために、ディスティネーションのバッファサイズを予め小さく設定し、廃棄されるデータ量と再送されるデータ量とを減らすことが考えられる。しかしながら、そのように構成した場合でも、セグメント単位に転送される制御コマンドとそれに対するレスポンスの通信が増加し、伝送効率が悪くなってしまう問題があった。
【００１５】
そこで、本発明は、転送の再開にかかる時間と重複して転送されるデータ量とを減らすことができるデータ通信システムを提供することを目的とする。
【００１６】
【課題を解決するための手段】
本発明に係るデータ通信システムの一つは、被送信データを送信するソースと、前記被送信データを受信するディスティネーションと、前記ソースと前記ディスティネーションとの間の通信を管理するコントローラとを有し、前記ソースは、前記被送信データ内の各データを、前記ディスティネーションが有する受信バッファの一部を指定するのに用いられるオフセットアドレスとともに送信する機能と、バスリセットが発生した場合において、前記被送信データの送信を中断する機能とを有し、前記ディスティネーションは、前記バスリセットが発生した後において、前記バスリセットが発生する前に正常に受信されたデータに対応する前記オフセットアドレスを前記ソースに通知する機能を有し、前記ソースはさらに、前記バスリセットが発生した後において、前記ディスティネーションから通知された前記オフセットアドレスに従って前記被送信データの送信を再開する機能を有することを特徴とする。
【００２１】
【発明の実施の形態】
以下、本発明のデータ通信システム、データ通信方法、データ通信装置及び記憶媒体の一実施の形態を図面を参照して説明する。
図１は、本実施例の通信システムの構成について説明する図である。図１において、各機器は、ＩＥＥＥ１３９４−１９９５規格（以下、１３９４規格）に準拠したデジタルインタフェース１０５を具備している。
【００２２】
図１の通信システムは、ＴＶ１０１、デジタルビデオテープレコーダ（以下、ＤＶＴＲ）１０２、プリンタ１０３、デジタルカムコーダ（以下、ＤＶＣＲ）１０４により構成されている。
【００２３】
図１において、ＴＶ１０１、ＤＶＴＲ１０２、ＤＶＣＲ１０４は、制御部１０６、信号処理部１０７を具備し、プリンタ１０３は制御部１０６、画像処理部１０９を具備している。各機器は、１３９４規格に準拠した通信ケーブルを介して接続されている。
【００２４】
ここで、通信ケーブルには、４ピンケーブルと６ピンケーブルの２種類がある。４ピンケーブルは、データの転送や調停信号の通信に用いられる２組のシールド付きのより対線により構成されている。６ピンケーブルは、２組のより対線と電源供給用のペア線からなる。２組のより対線を用いて伝送されるデータは、ＤＳ−Ｌｉｎｋ方式により符号化されたデータである。
【００２５】
次に、図２を用いて本実施例のデジタルインタフェース１０５の構成について詳細に説明する。
デジタルインタフェース１０５は、機能的に複数のレイヤ（階層）から構成されている。図２において、デジタルインタフェース１０５は、ＩＥＥＥ１３９４−１９９５規格に準拠した通信ケーブル２０１を介して他の機器のデジタルインタフェース１０５と接続される。又、デジタルインタフェース１０５は、１つ以上の通信ポート２０２を有し、各通信ポート２０２はハードウェア部に含まれるフィジカル・レイヤ２０３と接続される。
【００２６】
図２において、ハードウェア部は、フィジカル・レイヤ２０３とリンク・レイヤ２０４とから構成されている。フィジカル・レイヤ２０３は、他のノードとの物理的、電気的なインタフェース、バスリセットの検出とそれに伴う処理、入出力信号の符号化／復号化、バス使用権の調停等を行う。又、リンク・レイヤ２０４は、通信パケットの生成、各種の通信パケットの送受信、サイクルタイマの制御等を行なう。又、リンク・レイヤ２０４は、後述する通信プロトコルにおいて規定するパケットの生成及び送受信の機能を提供する。
【００２７】
又、図２において、ファームウェア部は、トランザクション・レイヤ２０５とシリアル・バス・マネージメント２０６とを含んでいる。トランザクション・レイヤ２０５は、Asynchronous転送方式を管理し、各種のトランザクション（リード、ライト、ロック）を提供する。
【００２８】
又、トランザクション・レイヤ２０５は、後述する通信プロトコルにおいて規定するトランザクションを管理する機能を提供する。シリアル・バス・マネージメント２０６は、ＩＥＥＥ１２１２ＣＳＲ規格に基づいて、自ノードの制御、自ノードの接続状態の管理、自ノードのＩＤ情報の管理、シリアルバスネットワークの資源管理を行う機能を提供する。又、シリアル・バス・マネージメント２０６は、後述する通信プロトコルに関する各種の処理動作を制御する機能を提供する。
【００２９】
図２に示すハードウェア部及びファームウェア部が実質的に１３９４インタフェースを構成するものであり、それらの基本構成は、ＩＥＥＥ１３９４−１９９５規格により規定されている。
【００３０】
又、ソフトウェア部に含まれるアプリケーション・レイヤ２０７は、使用するアプリケーションソフトによって異なり、どのようなオブジェクトデータをどのように転送するかを制御する。
【００３１】
後述する本実施例の通信プロトコルは、デジタルインタフェース１０５を構成するハードウェア部及びファームウェア部の機能を拡張するものであり、ソフトウェア部に対して新規な転送手順を提供するものである。
【００３２】
前述のデジタルインタフェース１０５では、電源投入時、新たな機器の接続や切り離し等の接続構成の変化に応じてバスリセットを自動的に行う。ここで、バスリセットとは、通信システムを構成する各機器（以下、ノード）が、今までの認識していた通信システムの接続構成と各機器の通信アドレス（以下、ノードＩＤ）とを初期化し、新たな接続構成の再認識と通信アドレスの再設定とを行うため処理である。
【００３３】
以下、バスリセットの処理手順を簡単に説明する。この手順は、通信システムにおける階層的な接続構成の認識と各ノードに対する物理的な通信アドレスの付与からなる。
【００３４】
接続構成の認識は、バスリセットの開始後、各ノードが親子関係を宣言し合うことによって実行される。各ノードは、各ノード間の親子関係を決定することにより、通信システムをツリー構造（階層構造）として認識する。尚、各ノード間の親子関係は、通信システムの接続状態や各ノードの機能に依存するため、バスリセット毎に同じ関係になることはない。
【００３５】
例えば、図１の通信システムにおいて、デジタルインタフェース１０５では、まず、プリンタ１０３（以下、ノードＤ）とＤＶＴＲ１０２（以下、ノードＣ）との間で親子関係を設定する。次に、ＤＶＣＲ１０４（以下、ノードＢ）とＴＶ１０１（以下、ノードＡ）との間、及びノードＣとノードＡとの間で親子関係を設定する。
【００３６】
最終的に全てのノードの親（或いは上位）と認識された機器がルート・ノードとなり、この通信システムのバス使用権の調停を管理する。図１の通信システムでは、ノードＡがルート・ノードとなる。
【００３７】
ルート・ノードの決定後、通信システムを構成する各ノードは、ノードＩＤの設定を自動的に開始する。ノードＩＤの設定は、基本的に親ノードがポート番号の若い通信ポートに接続された子ノードに対して物理アドレスの設定を許可し、更にその子ノードが自分の子ノードに対して順番に設定の許可を与えることによって実行される。自己のノードＩＤを設定したノードは、セルフＩＤパケットを送出し、自己に付与されたノードＩＤを他のノードに対して通知する。最終的に全ての子ノードのＩＤ設定が終了した後、親ノードは自己のノードＩＤを設定する。
【００３８】
以上の処理を繰り返し実行することによって、ルート・ノードのノードＩＤが一番最後に設定される。尚、各ノードに割り当てられるノードＩＤは、各機器の親子関係に依存するため、バスリセット毎に同じノードＩＤが設定されることはない。
【００３９】
次に、図１を用いてノードＩＤの自動設定処理を説明する。尚、以下の説明では、接続構成の認識後、ノードＡがルート・ノードとなった場合について説明する。
【００４０】
図１において、ルート・ノードであるノードＡはまず、「ポート１」の通信ポートに接続されているノード、即ちノードＢに対してノードＩＤの設定を許可する。
【００４１】
ノードＢは、自己のノードＩＤを「＃０」に設定し、その結果をセルフＩＤパケットとして通信システムを構成する全てのノードに対してブロードキャストする。ここで、ブロードキャストとは、所定の情報を不特定多数のノードを宛先として送出することである。
【００４２】
この結果、全てのノードは、「ノードＩＤ「＃０」は割当済である」と認識し、次にノードＩＤの設定を許可されたノードは「＃１」を設定する。
ノードＢの設定後、ノードＡは、「ポート２」の通信ポートに接続されているノード、即ちノードＣに対してノードＩＤの設定を許可する。
【００４３】
ノードＣは更に、子ノードの接続されている通信ポートの内、最も若いポート番号の通信ポートから順に設定の許可を与える。つまり、ノードＤに対して許可を与え、その許可を受けたノードＤがノードＩＤ「＃１」を設定した後、セルフＩＤパケットをブロードキャストする。
【００４４】
ノードＤの設定後、ノードＣが自己のノードＩＤを「＃３」に設定し、最後にルート・ノードであるノードＡが自己のノードＩＤを「＃４」に設定して接続構成の認識を終了する。
【００４５】
このようなバスリセット処理により、各ノードのデジタルインタフェース１０５は、通信システムの接続構成の認識と各ノードの通信アドレスの設定とを自動的に行うことができる。そして各ノードは、この前述のノードＩＤを用いることにより各ノード間の通信を行なうことができる。
【００４６】
次に、デジタルインタフェース１０５の具備するデータ転送方式について、図３を用いて説明する。
図３の通信システムは、データ転送方式としてIsochronous 転送モードとAsynchronous転送モードとを具備している。Isochronous 転送モードは、１通信サイクル期間（125 μs ）毎に一定量のパケットの送受信を保証するため、ビデオデータや音声データのリアルタイムな転送に有効である。また、Asynchronous転送モードは、制御コマンドやファイルデータ等を必要に応じて非同期に送受信する転送モードであり、Isochronous 転送モードに比べて優先順位が低く設定されている。
【００４７】
図３において、各通信サイクルの始めには、サイクル・スタート・パケット３０１と呼ばれる各ノードの計時するサイクル時間を調整するための通信パケットが送出される。
【００４８】
サイクル・スタート・パケット３０１の転送後、所定の期間がIsochronous 転送モードに設定されている。Isochronous 転送モードでは、Isochronous 転送モードに基づいて転送されるデータの夫々に対してチャネル番号を付すことにより、複数のIsochronous 転送を実行することができる。
【００４９】
例えば、図３において、ＤＶＣＲ１０４からIsochronous 転送されるデータ３０２にチャネル番号「ｃｈ０」、ＤＶＴＲ１０２からIsochronous 転送されるデータ３０３にチャネル番号「ｃｈ１」、ＴＶ１０１からIsochronous 転送されるデータ３０４にチャネル番号「ｃｈ２」が割り当てられている場合、各データは、１通信サイクル期間内において時分割にIsochronous 転送される。
【００５０】
各Isochronous 転送が終了した後、次のサイクル・スタート・パケット３０１の転送される期間までがAsynchronous転送に使用される。例えば、図３では、Asynchronous転送に基づくデータ３０５がＤＶＣＲ１０４からプリンタ１０３に転送される。
【００５１】
図４は、Asynchronous転送モードを用いた本実施の形態の通信プロトコルの基本構成について説明するシーケンスチャートである。図４において、オブジェクトデータ、例えば静止画像を順次Asynchronous転送するノード、即ちソース４０２をＤＶＣＲ１０４とする。また、ソース４０２からAsynchronous転送されたオブジェクトデータを受信するノード、即ちディスティネーション４０３をプリンタ１０３とする。更に、ソース４０２とディスティネーション４０３との間の通信を管理するノード、即ちコントローラ４０１をＴＶ１０１とする。
【００５２】
本実施の形態の通信プロトコルは、３つのフェーズからなっている。第１のフェーズ４０４は、コネクションフェーズで、コントローラ４０１は、ディスティネーション４０３の受信バッファサイズ、後述するディスティネーションオフセット、受信可能か否かを問い合わせ、ディスティネーション４０３を受信待機状態にセットする。また、コントローラ４０１は、ソース４０２からAsynchronous転送されるオブジェクトデータを選択して、ソース４０２を転送待機状態にセットする。
【００５３】
第２のフェーズ４０５は、伝送フェーズで、コントローラ４０１は、ソース４０２とディスティネーション４０３とを制御し、オブジェクトデータを１つ以上のパケットにより順次Asynchronous転送する。
【００５４】
第３のフェーズ４０６は、コネクションリリースフェーズで、コントローラ４０１は、ディスティネーション４０３の受信バッファを自己の管理下から解放し、同様にソース４０２の送信バッファを自己の管理下から解放する。
【００５５】
図５は、ソース４０２からAsynchronous転送されるオブジェクトデータとディスティネーション４０３の受信バッファとの関係を説明する図である。
ソース４０２からAsynchronous転送されるオブジェクトデータ５０１は、コントローラ４０１から通知されたディスティネーション４０３の受信バッファサイズに等しい１つ以上のセグメント５０２に分割される。
【００５６】
それぞれのセグメント５０２に含まれるデータは、１つ以上のAsynchronous転送モードに基づく通信パケット５０３（以下、Asynchronousパケット５０３）にパケッタイズされ、ソース４０２からディスティネーション４０３に順次転送される。
【００５７】
ディスティネーション４０３は、ソース４０２からのAsynchronousパケット５０３を順次受信し、一時的に受信バッファ５０４に書き込む。１セグメント分のオブジェクトデータの転送が終了した後、ディスティネーション４０３は、受信バッファ５０４に格納された１セグメント分のデータを内部メモリ５０５に順次書き込む。
【００５８】
次に、図６は用いて、ディスティネーション４０３を含む全てのノードの有する受信バッファ５０４について詳細に説明する。受信バッファ５０４は、ＩＥＥＥ１２１２ＣＳＲ（Ｃｏｎｔｒｏｌ  ａｎｄ  Ｓｔａｔｕｓ  ＲｅｇｉｓｔｅｒＡｒｃｈｉｔｅｃｔｕｒｅ）規格（又は、ＩＳＯ／ＩＥＣ１３２１３：１９９４規格）に準拠した６４ビットのアドレス空間により管理されている。ＩＥＥＥ１２１２ＣＳＲ規格とは、シリアルバス向けの制御、管理、アドレス割り振りを規定した規格である。
【００５９】
図６（ａ）は、６４ビットのアドレスにより表される論理的なメモリ空間である。又、図６（ｂ）は、図６（ａ）に示すアドレス空間の一部であり、例えば、上位１６ビットがＦＦＦＦ16となるアドレス空間である。受信バッファ５０４は、図６（ｂ）に示すアドレス空間の一部を使用し、アドレスの下位４８ビットを示すデスティネーション・オフセットにより指定される。このデスティネーション・オフセットは、各Ａｓｙｎｃｈｒｏｎｏｕｓパケットのヘッダ部により指定される。
【００６０】
図６（ｂ）において、例えば、００００００００００００16〜０００００００００３ＦＦ16は予約された領域であり、実際にオブジェクトデータ５０１の書き込まれる領域は、アドレスの下位４８ビットがＦＦＦＦＦ００００４００16以降となる領域である。
【００６１】
（第１の実施の形態）
以下、第１の実施の形態の通信プロトコルを、図１に示す通信システムに適用した場合について説明する。ここで、第１の実施の形態におけるコントローラ４０１をＴＶ１０１、ソース４０２をＤＶＣＲ１０４、ディスティネーション４０３をプリンタ１０３とする。
【００６２】
第１の実施の形態において、ソース４０２は、図５に示すように、１つのオブジェクトデータ（例えば、画像データ、音声データ、グラフィックスデータ、テキストデータ等）５０１を１つ以上のセグメント５０２に分割した後、各セグメント５０２を１つ以上のAsynchronousパケット５０３にてAsynchronous転送する。また、ディスティネーション４０３は、ソース４０２からAsynchronous転送された１つ以上のAsynchronousパケット５０３を受信バッファ５０４に書込み、１セグメント５０２毎に内部メモリ５０５に格納する。
【００６３】
更にコントローラ４０１は、ディスティネーション４０３のバッファサイズの問合せ、ソース４０２から転送されるオブジェクトデータの選択、ソース４０２にて生成されるセグメントのサイズの指定等、ソース４０２とディスティネーション４０３との間の通信を管理する。
【００６４】
また、第１の実施の形態の通信プロトコルは、図４に示すように、３つのフェーズ、即ち、コネクションフェーズ、伝送フェーズ、コネクションリリースフェーズから構成されている。
【００６５】
ここで、第１の実施の形態におけるコネクションフェーズとコネクションリリースフェーズとは、図４に示す第１のフェーズ４０４、第３のフェーズ４０６と同様に実行することができる。従って、第１の実施の形態では、伝送フェーズについて詳細に説明する。
【００６６】
図７は、第１の実施の形態の伝送フェーズについて詳細に説明するシーケンスチャートである。
図７において、コントローラ４０１は、ディスティネーション４０３に対して、いくつかの通信パケットでAsynchronous転送される１セグメントのデータを受信するように指示する（７０４）。また、コントローラ４０１は、ソース４０２に対して、オブジェクトデータを１つ以上のセグメントに分割し、各セグメントをいくつかの通信パケットでAsynchronous転送するように指示する（７０５）。
【００６７】
ここで、コントローラ４０１からソース４０２に転送されるコマンドの構成を図８を用いて説明する。このコマンドは、例えば、ソース４０２に１セグメントの転送の開始を指示するコマンド（以下、転送開始コマンド）であり、Asynchronous転送モードにより転送される。
【００６８】
図８において、最初のフィールド８０１には、転送の開始等を指示するコマンドデータが格納される。フィールド８０２には、送信するセグメントの順番を示すセグメントナンバーが格納される。フィールド８０３には、ディスティネーション４０３のノードＩＤが格納される。
【００６９】
フィールド８０４には、ディスティネーション４０３の具備する受信バッファ５０４の先頭アドレスが格納される。フィールド８０５には、ディスティネーション４０３の具備する受信バッファのサイズ、つまり１セグメントのサイズ情報が格納される。フィールド８０６には、ディスティネーション４０３の受信可能な通信パケットの最大サイズ情報が格納される。フィールド８０７には、各種のステータス情報等が格納される。
【００７０】
また、図８において、フィールド８０７の所定の領域には、再送識別ビットを格納する領域８０８が設定されている。ソース４０２は、この領域８０８を読み出すことによって、通常の転送処理を行うか、再送処理を行うかを判断する。例えば、コントローラ４０１が、ソース４０２に対して通常のセグメントの転送を指示する場合、この領域８０８には“０”が格納される。
【００７１】
第１の実施の形態において、転送開始コマンドを受信したソース４０２は、フィールド８０４に格納された受信バッファ５０４の先頭アドレスの値を所定の内部レジスタに格納するように構成されている。ここで、内部レジスタは、各機器の具備するデジタルインタフェース１０５或いは各機器の動作を制御する制御部１０６（図１参照）に含まれている。
【００７２】
図７において、コントローラ４０１からの指示後、ソース４０２は、１セグメント５０２を１つ以上のAsynchronousパケット５０３にパケッタイズし、各Asynchronousパケット５０３をディスティネーション４０３へ順次転送する（７０６）。
【００７３】
ここで、各Asynchronousパケット５０３には、ディスティネーション４０３の具備する受信バッファ５０４の所定の領域を指定するアドレス（ディスティネーションオフセットアドレス）が格納されている。例えば、あるセグメントの最初のAsynchronousパケット５０３には、コントローラ４０１により通知された受信バッファ５０４の先頭アドレスが格納されている。また、それ以降のAsynchronousパケットには、その受信バッファ５０４の所定の領域を順次指定するオフセットアドレスが格納される。
【００７４】
あるセグメント５０２の転送中にバスリセット７０７が生じた場合、そのソース４０２はそのセグメントの転送を一時中断する。ディスティネーション４０３は、そのセグメントの受信を中断すると共に、バスリセットが発生する前に正常に受信された最後のAsynchronousパケットに含まれるオフセットアドレスを前述の内部レジスタに格納する。また、ディスティネーション４０３は、受信バッファ５０４に格納されたデータ（即ち、途中まで転送されたセグメント）を廃棄せず、そのまま保持する。
【００７５】
バスリセット７０７を検出したコントローラ４０１は、バスリセット処理の終了後、ソース４０２とディスティネーション４０３のノードＩＤが変化したか否かを調べる。その後、コントローラ４０１は、ソース４０２及びディスティネーション４０３に対してデータ転送の再開を指示する（７０８、７０９）。
【００７６】
ここで、ソース４０２に対して転送される転送の再開を指示するコマンドには、バスリセット７０７にて再設定されたディスティネーション４０３のノードＩＤが格納されている。また、このコマンドは、図８のように構成されており、フィールド８０７内の領域８０８（再送識別ビット）には、“１”が格納されている。ソース４０２は、この領域８０８を読み出すことによって、再送処理の実行を認識する。
【００７７】
同様に、ディスティネーション４０３に対して転送される転送の再開を指示するコマンドには、バスリセット７０７にて設定されたソース４０２のノードＩＤが格納されている。
【００７８】
コントローラ４０１からの指示を受けたディスティネーション４０３は、ソース４０２に対して内部レジスタに格納しておいたオフセットアドレスを通知すると共に、ソース４０２から再送されるセグメントを待機する（７１０）。
【００７９】
また、コントローラ４０１からの指示を受けたソース４０２は、ディスティネーション４０３からのオフセットアドレスの通知を待機する。オフセットアドレスの通知後、ソース４０２は、セグメントの途中からAsynchronous転送を再開する（７１１）。
【００８０】
ここで、ソース４０２は、前述の内部レジスタに格納されたディスティネーション４０３の具備する受信バッファ５０４の先頭アドレスの値と、ディスティネーション４０３から通知されたオフセットアドレスの値とを比較し、その差をとることにより転送を開始すべきデータを識別している。
【００８１】
例えば、図９に示すように、内部レジスタに格納されている受信バッファ５０４の先頭アドレスの下位16bit が「0E00h 」、前述のオフセットアドレスの下位16bit が「0E04h 」であった場合、ソース４０２は、バスリセットにより転送の中断されたセグメントの内、５Ｂｙｔｅ目のデータ９０１からAsynchronous転送を再開する。
【００８２】
このセグメントのAsynchronous転送が完了した後、ソース４０２は、転送の完了をコントローラ４０１に報告する（７１２）。また、ディスティネーション４０３も同様に、１セグメントの受信が完了したことをコントローラ４０１に報告する（７１３）。
【００８３】
このように、１セグメント分のデータの転送中にバスリセットが生じても、図７の７０８〜７１３に示す手順を実行することにより、そのセグメントの転送を始めからやり直すことなく再開することができる。
次以降のセグメントの転送を開始する場合には、コントローラ４０１、ソース４０２、ディスティネーション４０３が、再び７０４〜７１３に示す手順を繰り返し行えばよい。
【００８４】
以上のように、第１の実施の形態では、コントローラ４０１がバスリセットを検出した後、ソース４０２とディスティネーション４０３とに送信の再開を要求する。そして、ソース４０２は、この要求を受けたディスティネーション４０３から通知されたオフセットアドレスを用いて、転送の中断されたセグメントから送信すべきデータを選択し、それを順次Asynchronous転送するように構成されている。
【００８５】
これにより、各セグメントの転送中にバスリセットが生じても、転送の再開にかかる時間と重複して転送されるデータ量とを削減することができると共に、伝送効率の低下を回避することができる。
【００８６】
（第２の実施の形態）
以下、第２の実施の形態の通信プロトコルを、第１の実施の形態と同様に、図１に示す通信システムに適用した場合について説明する。ここで、第２の実施の形態におけるコントローラ４０１をＴＶ１０１、ソース４０２をＤＶＣＲ１０４、ディスティネーション４０３をプリンタ１０３とする。
【００８７】
以下、第２の実施の形態において、第１の実施の形態と同一あるいはそれに相当する部材或いは機能については同一符号を用いて説明を省略する。
第２の実施の形態の通信プロトコルは、第１の実施の形態と同様に、図４に示すように、３つのフェーズ、即ち、コネクションフェーズ４０４、伝送フェーズ４０５、コネクションリリースフェーズ４０６から構成されている。以下、第２の実施の形態では、第１の実施の形態と同様に、伝送フェーズについて詳細に説明する。
【００８８】
図１０は、第２の実施の形態の伝送フェーズについて詳細に説明するシーケンスチャートである。
図１０において、バスリセット７０７が発生するまでの手順、即ち図７の７０４〜７０６までの手順は、第１の実施の形態と同様に動作するため、その説明を省略する。以下、バスリセット７０７が発生した後の処理ついて説明する。
【００８９】
あるセグメントのAsynchronous転送中にバスリセット７０７が生じた場合、ソース７０２はそのセグメントの転送を中断する。転送を中断すると共に、ソース７０２は、バスリセットが発生する前に送信された最後のAsynchronousパケット５０３に含まれるオフセットアドレスを内部レジスタに格納する。
【００９０】
ここで、オフセットアドレスが格納される内部レジスタは、各機器の具備するデジタルインタフェース１０５或いは各機器の動作を制御する制御部１０６に含まれている。尚、前述のオフセットアドレスは、受信バッファ５０４の先頭アドレスが格納される内部レジスタとは異なる内部レジスタに格納される。
【００９１】
又、ディスティネーション４０３は、そのセグメントの受信を中断すると共に、受信バッファ５０４に格納されたデータ（即ち、途中まで転送されたセグメント）を廃棄せず、そのまま保持する。
【００９２】
バスリセット７０７を検出したコントローラ４０１は、バスリセット処理の終了後、ソース４０２とディスティネーション４０３のノードＩＤが変化したか否かを調べる。その後、コントローラ４０１は、ソース４０２及びディスティネーション４０３に対してデータ転送の再開を指示する（１００１、１００２）。
【００９３】
ここで、ソース４０２に対して転送される転送再開コマンドには、バスリセット７０７にて再設定されたディスティネーション４０３のノードＩＤが格納されている。また、このコマンドは、図２のように構成されており、フィールド８０７内の領域８０８（再送識別ビット）には、“１”が格納されている。ソース４０２は、この領域８０８を読み出すことによって、再送処理の実行を認識する。
【００９４】
同様に、ディスティネーション４０３に対して転送される転送の再開を指示するコマンドには、バスリセット７０７にて設定されたソース４０２のノードＩＤが格納されている。
【００９５】
コントローラ４０１からの指示を受けたディスティネーション４０３は、ソース４０２から再送されるデータを待機する。
また、コントローラ４０１からの指示を受けたソース４０２は、前述の内部レジスタに格納しておいたオフセットアドレスを読み出し、そのアドレスに対応するデータからのAsynchronous転送を再開する（１００３）。
【００９６】
ここで、ソース４０２は、前述の内部レジスタに格納されたディスティネーション４０３の具備する受信バッファ５０４の先頭アドレスの値と、前述のオフセットアドレスの値とを比較し、その差をとることにより転送を開始すべきセグメントの一部を識別している。
【００９７】
例えば、図９に示すように、内部レジスタに格納されている受信バッファ５０４の先頭アドレスの下位16bit が「0E00h 」、前述のオフセットアドレスの下位16bit が「0E04h 」であった場合、ソース４０２は、バスリセットにより転送の中断されたセグメントの内、５Ｂｙｔｅ目のデータ９０１からAsynchronous転送を再開する。
【００９８】
このセグメントのAsynchronous転送が完了した後、ソース４０２は、転送の完了をコントローラ４０１に報告する（７１２）。また、ディスティネーション４０３も同様に、１セグメントの受信が完了したことをコントローラ４０１に報告する（７１３）。
【００９９】
このように、１セグメント分のデータの転送中にバスリセットが生じても、図１０に示す手順を実行することにより、そのセグメントの全ての転送を始めからやり直すことなく再開することができる。
【０１００】
次以降のセグメントの転送を開始する場合には、コントローラ４０１、ソース４０２、ディスティネーション４０３が、再び図１０に示す手順を繰り返し行えばよい。
【０１０１】
以上のように、第２の実施の形態では、コントローラ４０１がバスリセットを検出した後、ソース４０２とディスティネーション４０３とに送信の再開を要求する。そして、ソース４０２が、バスリセットの前に正常に転送されたAsynchronousパケット５０３に含まれるオフセットアドレスを用いて、転送の中断されたセグメントデータから送信すべきデータを選択し、それを順次Asynchronous転送するように構成されている。
【０１０２】
これにより、各セグメントの転送中にバスリセットが生じても、第１の実施の形態と同様に、転送の再開にかかる時間と重複して転送されるデータ量とを削減することができると共に、伝送効率の低下を回避することができる。
【０１０３】
（第３の実施の形態）
以下、第３の実施の形態の通信プロトコルを、図１に示した通信システムに適用した場合について説明する。ここで、第３の実施の形態におけるコントローラ４０１をＴＶ１０１、ソース４０２をＤＶＣＲ１０４、ディスティネーション４０３をプリンタ１０３とする。
【０１０４】
以下、第３の実施の形態において、第１の実施の形態と同一あるいはそれに相当する部材或いは機能については同一符号を用いて説明を省略する。
第３の実施の形態において、ソース４０２は、オブジェクトデータ５０１を１つ以上のセグメント５０２に分割した後、各セグメント５０２を１つ以上のAsynchronousパケット５０３にてAsynchronous転送する。
【０１０５】
また、ディスティネーション４０３は、ソース４０２からAsynchronous転送された１つ以上のAsynchronousパケット５０３を受信し、１セグメント毎に内部メモリに格納する。更にコントローラ４０１は、ディスティネーション４０３のバッファサイズの問合せ、ソース４０２から転送されるオブジェクトデータの選択、ソース４０２にて生成されるセグメントのサイズの指定等、ソース４０２とディスティネーション４０３との間の通信を管理する。
【０１０６】
また、第３の実施の形態の通信プロトコルは、第１の実施の形態と同様に３つのフェーズ、即ち、コネクションフェーズ４０４、伝送フェーズ４０５、コネクションリリースフェーズ４０６から構成されている。以下、第３の実施の形態では、伝送フェーズについて詳細に説明する。
【０１０７】
図１１は、第３の実施の形態の伝送フェーズについて詳細に説明するシーケンスチャートである。
図１１において、バスリセット７０７が発生するまでの手順、即ち、図１１の１０４〜１０６までの手順は、第１の実施の形態と同様に動作するため、その説明を省略する。以下、バスリセット７０７が発生した後の処理ついて説明する。
【０１０８】
あるセグメントのAsynchronous転送中にバスリセット７０７が生じた場合、ソース４０２はそのセグメントの転送を中断する。転送を中断すると共に、ソース４０２は、バスリセットが発生する前に正常に送信された最後のAsynchronousパケット５０３に含まれるオフセットアドレスを内部レジスタに格納する。
【０１０９】
ここで、オフセットアドレスが格納される内部レジスタは、各機器の具備するデジタルインタフェース１０５或いは各機器の動作を制御する制御部１０６に含まれている。尚、前述のオフセットアドレスは、受信バッファ５０４の先頭アドレスが格納される内部レジスタとは異なる内部レジスタに格納される。
【０１１０】
ディスティネーション４０３は、そのセグメントの受信を中断すると共に、受信バッファ５０４に格納されたデータ、即ち、途中まで転送されたセグメントを廃棄せず、そのまま保持する。
【０１１１】
バスリセット７０７を検出したコントローラ４０１は、バスリセット処理の終了後、ソース４０２とディスティネーション４０３のノードＩＤが変化したか否かを調べる。その後、コントローラ４０１は、ソース４０２に対して、正常に送信された最後のAsynchronousパケット５０３に含まれるオフセットアドレスを問い合わせる（１１０１）。
【０１１２】
ここで、ソース４０２に対して転送される問合せコマンドのデータ部は、図８のように構成されており、そのコマンドのフィールド８０７内の領域８０８（再送識別ビット）には、“１”が格納されている。ソース４０２は、この領域８０８を読み出すことによって、再送処理の実行を認識する。
【０１１３】
この問い合せに対し、ソース４０２は、前述の内部レジスタに格納していたオフセットアドレスを読み出し、コントローラ４０１に通知する（１１０２）。
ソース４０２からの通知を受けたコントローラ４０１は、ディスティネーション４０３のノードＩＤを通知すると共に、そのオフセットアドレスに対応するデータからAsynchronous転送を再開するように指示する（１１０３）。
【０１１４】
コントローラ４０１から転送の再開の指示を受けたソース４０２は、前述のオフセットアドレスに対応するデータからのAsynchronous転送を再開する（１１０４）。
【０１１５】
ここで、ソース４０２は、ディスティネーション４０３の具備する受信バッファ５０４の先頭アドレスの値と、前述のオフセットアドレスの値とを比較し、その差をとることにより転送を開始すべきセグメントの一部を識別している。
【０１１６】
例えば、図９に示すように、内部レジスタに格納されている受信バッファ５０４の先頭アドレスの下位16bit が「0E00h 」、前述のオフセットアドレスの下位16bit が「0E04h 」であった場合、ソース４０２は、バスリセットにより転送の中断されたセグメントの内、５Ｂｙｔｅ目のデータ９０１からAsynchronous転送を再開する。
【０１１７】
この１セグメントのAsynchronous転送が完了した後、ソースは、転送の完了をコントローラ４０１に報告する（７１２）。また、ディスティネーション４０３も同様に、１セグメントの受信が完了したことをコントローラ４０１に報告する（７１３）。
【０１１８】
このように、１セグメント分のデータの転送中にバスリセットが生じても、図１１に示す手順を実行することにより、そのセグメントの全ての転送を始めからやり直すことなく再開することができる。
【０１１９】
次以降のセグメントの転送を開始する場合には、コントローラ４０１、ソース４０２、ディスティネーション４０３が、再び図１１に示す手順を繰り返し行えばよい。
【０１２０】
以上のように、第３の実施の形態では、コントローラ４０１がバスリセットを検出した後、バスリセットの前に正常に転送されたAsynchronousパケット５０３に含まれるオフセットアドレスをソース４０２に問い合わせる。そして、コントローラ４０１は、ソース４０２から通知されたオフセットアドレスに対応するデータからAsynchronous転送を再開するようにソース４０２に指示するように構成されている。
【０１２１】
これにより、各セグメントの転送中にバスリセットが生じても、第１の実施の形態と同様に、転送の再開にかかる時間と重複して転送されるデータ量とを削減することができると共に、伝送効率の低下を回避することができる。
【０１２２】
（他の実施の形態）
前述の第１〜第３の実施の形態は、以下のように実現することも可能である。例えば、前述した実施の形態の機能を実現するソフトウェアのプログラムコードを記録した記録媒体を、本実施の形態のコントローラ４０１、ソース４０２、ディスティネーション４０３の具備する制御部（マイクロコンピュータを含む）に供給するように構成することもできる。
【０１２３】
そして、本実施の形態のコントローラ４０１、ソース４０２、ディスティネーション４０３の具備する制御部が、その記録媒体に格納されたプログラムコードを読み出し、前述した実施の形態の機能を実現するようにシステム或いは装置の動作を制御するように構成しても本発明の実施の形態を実現することができる。
【０１２４】
例えば、第１の実施の形態の図７、第２の実施の形態の図１０、第３の実施の形態の図１１に示した処理及び機能を実現するプログラムコードを格納した記録媒体を、コントローラ４０１、ソース４０２、ディスティネーション４０３の制御部１０６に供給する。
【０１２５】
そして、コントローラ４０１、ソース４０２、ディスティネーション４０３の制御部１０６が、その記録媒体に格納されたプログラムコードを読み出し、各実施の形態の機能を実現するように、図１に示すコントローラ４０１、ソース４０２、ディスティネーション４０３の具備する各処理回路を動作させるようにしてもよい。
【０１２６】
この場合、記録媒体から読み出されたプログラムコード自体が前述した実施の形態の機能を実現することになり、そのプログラムコードを記憶した記録媒体は、本発明の一部の構成要件になる。
【０１２７】
プログラムコードを供給するための記録媒体としては、例えば、フロッピディスク、ハードディスク、光ディスク、光磁気ディスク、ＣＤ−ＲＯＭ、ＣＤ−Ｒ、磁気テープ、不揮発性のメモリカード、ＲＯＭなどを用いることができる。
【０１２８】
また、制御部上で稼動しているＯＳ（オペレーティングシステム）或いはアプリケーションソフト等が、記録媒体より読み出したプログラムコードの指示に基づき、本実施の形態のシステム或いは装置の動作を制御することにより、前述した実施の形態の機能を実現する場合も本発明に含まれることは言うまでもない。
【０１２９】
更に、記録媒体から読み出されたプログラムコードが、制御部に接続された機能拡張ボード或いは機能拡張ユニットの具備するメモリに書き込まれた後、そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットの具備する制御部が本実施の形態のシステム或いは装置の動作を制御することにより、前述した実施の形態の機能が実現される場合も本発明に含まれることは言うまでもない。尚、本発明はその精神、またはその主要な特徴から逸脱することなく、様々な形で実施することができる。
【０１３０】
例えば、第１〜第３の実施の形態において、コントローラ４０１、ソース４０２、ディスティネーション４０３の機能を夫々別の機器が具備している場合について説明したが、それに限るものではない。例えば、第１〜第３の実施の形態に示したコントローラ４０１の機能とソース４０２の機能とを同一の機器に具備させるように構成してもよい。
【０１３１】
このように構成した場合、コントローラ４０１とソース４０２との間の通信は、各機器に共通する伝送路を介することなく行われるため、通信システム全体の伝送効率をより向上させることができる。
【０１３２】
しかし、本発明は、コントローラ４０１とソース４０２とが同一の機器内に存在する場合よりも、第１〜第３の実施の形態に示すように、コントローラ４０１、ソース４０２、ディスティネーション４０３とが夫々別の機器として存在する場合において、より高い効果を奏するものである。このことは、コントローラ４０１の機能とディスティネーション４０３の機能とが同一の機器内に存在する場合についても同様である。したがって、前述の実施の形態はあらゆる点おいて単なる例示に過ぎず、限定的に解釈してはならない。
【０１３３】
【発明の効果】
本発明に係るデータ通信システムによれば、転送の再開にかかる時間と重複して転送されるデータ量とを削減することができる。
【図面の簡単な説明】
【図１】本実施の形態の通信システムの構成を示すブロック図である。
【図２】本実施の形態の１３９４インタフェースの構成を示す図である。
【図３】１３９４インタフェースの有する転送方式を説明する図である。
【図４】本実施の形態の通信プロトコルの基本手順を説明するシーケンスチャートである。
【図５】オブジェクトデータの転送モデルを説明する図である。
【図６】各ノードの有するアドレス空間を説明する図である。
【図７】第１の実施の形態の通信プロトコルを説明する図である。
【図８】コントローラからソースに転送される通信パケットの構成を示す図である。
【図９】ソースの具備する内部アドレスを説明する図である。
【図１０】第２の実施の形態の通信プロトコルを説明するシーケンスチャートである。
【図１１】第３の実施の形態の通信プロトコルを説明するシーケンスチャートである。
【符号の説明】
１０１  ＴＶ
１０２  ＤＶＴＲ
１０３  プリンタ
１０４  ＤＶＣＲ
１０５  デジタルインタフェース
１０６  制御部
１０７  信号処理部
４０１  コントローラ
４０２  ソース
４０３  ディスティネーション
【図１】
0004026979.tif 000002
【図２】
0004026979.tif 000003
【図３】
0004026979.tif 000004
【図４】
0004026979.tif 000005
【図５】
0004026979.tif 000006
【図６】
0004026979.tif 000007
【図７】
0004026979.tif 000008
【図８】
0004026979.tif 000009
【図９】
0004026979.tif 000010
【図１０】
0004026979.tif 000011
【図１１】
0004026979.tif 000012