JP4026979B2 - データ通信システム - Google Patents

データ通信システム Download PDF

Info

Publication number
JP4026979B2
JP4026979B2 JP06705299A JP6705299A JP4026979B2 JP 4026979 B2 JP4026979 B2 JP 4026979B2 JP 06705299 A JP06705299 A JP 06705299A JP 6705299 A JP6705299 A JP 6705299A JP 4026979 B2 JP4026979 B2 JP 4026979B2
Authority
JP
Japan
Prior art keywords
data
source
destination
transfer
node
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
Application number
JP06705299A
Other languages
English (en)
Other versions
JP2000032010A (ja
JP2000032010A5 (ja
Inventor
崇史 小林
慎二 大西
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Canon Inc
Original Assignee
Canon Inc
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Canon Inc filed Critical Canon Inc
Priority to JP06705299A priority Critical patent/JP4026979B2/ja
Publication of JP2000032010A publication Critical patent/JP2000032010A/ja
Publication of JP2000032010A5 publication Critical patent/JP2000032010A5/ja
Application granted granted Critical
Publication of JP4026979B2 publication Critical patent/JP4026979B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Description

【0001】
【発明の属する技術分野】
本発明は、被送信データを送信するソースと、当該被送信データを受信するディスティネーションと、当該ソースと当該ディスティネーションとの間の通信を管理するコントローラとを有するデータ通信システムに関する。
【0002】
【従来の技術】
従来、パーソナルコンピュータ(以下、PC)の周辺機器の中で、最も利用頻度が高かったのはハードディスクやプリンタであった。これらの周辺機器は、専用の入出力インタフェース或いはSCSI(small computer system interface )インタフェース等の汎用性のあるデジタルインタフェースによってPCと接続されていた。
【0003】
一方、近年、デジタルカメラ、デジタルビデオカメラ等のAV(Audio/Visual)機器もPCの周辺装置の1つとして注目を浴びている。これらのAV(Audio/Visual)機器も専用インタフェースを介してPCと接続されていた。
【0004】
従来の専用インタフェースやSCSIインタフェースでは、特にAV機器の有する静止画像や動画像のような大容量のデータを扱う場合において、データ転送レートが低い、パラレル通信のため通信ケーブルが太い、接続できる周辺機器の数と種類が少ない、接続方式に制限がある、リアルタイムなデータ転送が行えない等の多くの問題があった。
【0005】
このような問題点を解決する次世代の高速、高性能デジタルインタフェースの一つとして、IEEE(The Institute of Electrical and Electronics Engineers,Inc.)1394−1995規格が知られている。
【0006】
IEEE1394−1995規格に準拠したデジタルインタフェース(以下、1394インタフェース)には、次のような特徴がある。
(1)データ転送速度が高速である。
(2)リアルタイムなデータ転送方式(即ち、Isochronous転送方式)とAsynchronous転送方式をサポートしている。
(3)自由度の高い接続構成(トポロジ)を構築できる。
(4)プラグ・アンド・プレイ機能と活線挿抜機能をサポートしている。
【0007】
【発明が解決しようとする課題】
しかしながら、IEEE1394−1995規格では、コネクタの物理的、電気的な構成、最も基本的な2つのデータ転送方式等については定義しているが、どのような種類のデータを、どのようなデータ・フォーマットで、どのような通信プロトコルに基づいて送受信するのかについては定義していなかった。
【0008】
又、IEEE1394−1995規格のIsochronous転送方式では、送出パケットに対する応答が規定されていないため、各Isochronousパケットが確実に受信されたかは保証されない。したがって、連続性のある複数のデータを確実に転送したい場合、或いは1つのファイルデータを複数のデータに分割して確実に転送したい場合、Isochronous転送方式を使用することはできなかった。
【0009】
又、IEEE1394−1995規格のIsochronous転送方式では、転送帯域に空きがある場合でも、通信の総数が64個に制限される。このため、少ない転送帯域で数多くの通信を行いたい場合、Isochronous転送方式を使用することはできなかった。
【0010】
又、IEEE1394−1995規格では、ノードの電源のON/OFF、ノードの接続/切り離し等に応じてバスリセットが生じた場合、データの転送を中断しなければならない。ところが、IEEE1394−1995規格では、バスリセットや伝送時のエラーによってデータ転送が中断した場合、どのような内容のデータを失ったのかについては知ることができなかった。更に、一度中断した転送を復帰するためには、非常に煩雑な通信手順を踏む必要があった。
【0011】
ここで、バスリセットとは、新たなトポロジの認識と各ノードに割り当てられるアドレス(ノードID)の設定とを自動的に行う機能である。この機能により、IEEE1394−1995規格では、プラグ・アンド・プレイ機能と活線挿抜機能とを提供することができる。
【0012】
又、IEEE1394−1995規格に準拠した通信システムにおいて、リアルタイム性は必要とされないが信頼性が要求される比較的データ量の多いオブジェクトデータ(例えば、静止画像データ、グラフィックスデータ、テキストデータ、ファイルデータ、プログラムデータ等)を、1以上のセグメントデータに分割して連続的に転送するための通信プロトコルは具体的に提案されていなかった。
【0013】
又、このような通信システムでは、通常バスリセットが発生した場合、転送中であったセグメントを再び始めからやり直さなければならなかった。特に、ディスティネーションのバッファ容量が大きく、しかもセグメントのほとんどの転送が完了していた場合には、転送の再開に時間がかかり、同じデータを無駄に転送してしまう問題があった。
【0014】
また、前述の問題を解決するために、ディスティネーションのバッファサイズを予め小さく設定し、廃棄されるデータ量と再送されるデータ量とを減らすことが考えられる。しかしながら、そのように構成した場合でも、セグメント単位に転送される制御コマンドとそれに対するレスポンスの通信が増加し、伝送効率が悪くなってしまう問題があった。
【0015】
そこで、本発明は、転送の再開にかかる時間と重複して転送されるデータ量とを減らすことができるデータ通信システムを提供することを目的とする
【0016】
【課題を解決するための手段】
本発明に係るデータ通信システムの一つは、被送信データを送信するソースと、前記被送信データを受信するディスティネーションと、前記ソースと前記ディスティネーションとの間の通信を管理するコントローラとを有し前記ソースは、前記被送信データ内の各データを、前記ディスティネーションが有する受信バッファの一部を指定するのに用いられるオフセットアドレスとともに送信する機能と、バスリセットが発生した場合において、前記被送信データの送信を中断する機能とを有し、前記ディスティネーションは、前記バスリセットが発生した後において、前記バスリセットが発生する前に正常に受信されたデータに対応する前記オフセットアドレスを前記ソースに通知する機能を有し、前記ソースはさらに、前記バスリセットが発生した後において、前記ディスティネーションから通知された前記オフセットアドレスに従って前記被送信データの送信を再開する機能を有することを特徴とする
【0021】
【発明の実施の形態】
以下、本発明のデータ通信システム、データ通信方法、データ通信装置及び記憶媒体の一実施の形態を図面を参照して説明する。
図1は、本実施例の通信システムの構成について説明する図である。図1において、各機器は、IEEE1394−1995規格(以下、1394規格)に準拠したデジタルインタフェース105を具備している。
【0022】
図1の通信システムは、TV101、デジタルビデオテープレコーダ(以下、DVTR)102、プリンタ103、デジタルカムコーダ(以下、DVCR)104により構成されている。
【0023】
図1において、TV101、DVTR102、DVCR104は、制御部106、信号処理部107を具備し、プリンタ103は制御部106、画像処理部109を具備している。各機器は、1394規格に準拠した通信ケーブルを介して接続されている。
【0024】
ここで、通信ケーブルには、4ピンケーブルと6ピンケーブルの2種類がある。4ピンケーブルは、データの転送や調停信号の通信に用いられる2組のシールド付きのより対線により構成されている。6ピンケーブルは、2組のより対線と電源供給用のペア線からなる。2組のより対線を用いて伝送されるデータは、DS−Link方式により符号化されたデータである。
【0025】
次に、図2を用いて本実施例のデジタルインタフェース105の構成について詳細に説明する。
デジタルインタフェース105は、機能的に複数のレイヤ(階層)から構成されている。図2において、デジタルインタフェース105は、IEEE1394−1995規格に準拠した通信ケーブル201を介して他の機器のデジタルインタフェース105と接続される。又、デジタルインタフェース105は、1つ以上の通信ポート202を有し、各通信ポート202はハードウェア部に含まれるフィジカル・レイヤ203と接続される。
【0026】
図2において、ハードウェア部は、フィジカル・レイヤ203とリンク・レイヤ204とから構成されている。フィジカル・レイヤ203は、他のノードとの物理的、電気的なインタフェース、バスリセットの検出とそれに伴う処理、入出力信号の符号化/復号化、バス使用権の調停等を行う。又、リンク・レイヤ204は、通信パケットの生成、各種の通信パケットの送受信、サイクルタイマの制御等を行なう。又、リンク・レイヤ204は、後述する通信プロトコルにおいて規定するパケットの生成及び送受信の機能を提供する。
【0027】
又、図2において、ファームウェア部は、トランザクション・レイヤ205とシリアル・バス・マネージメント206とを含んでいる。トランザクション・レイヤ205は、Asynchronous転送方式を管理し、各種のトランザクション(リード、ライト、ロック)を提供する。
【0028】
又、トランザクション・レイヤ205は、後述する通信プロトコルにおいて規定するトランザクションを管理する機能を提供する。シリアル・バス・マネージメント206は、IEEE1212CSR規格に基づいて、自ノードの制御、自ノードの接続状態の管理、自ノードのID情報の管理、シリアルバスネットワークの資源管理を行う機能を提供する。又、シリアル・バス・マネージメント206は、後述する通信プロトコルに関する各種の処理動作を制御する機能を提供する。
【0029】
図2に示すハードウェア部及びファームウェア部が実質的に1394インタフェースを構成するものであり、それらの基本構成は、IEEE1394−1995規格により規定されている。
【0030】
又、ソフトウェア部に含まれるアプリケーション・レイヤ207は、使用するアプリケーションソフトによって異なり、どのようなオブジェクトデータをどのように転送するかを制御する。
【0031】
後述する本実施例の通信プロトコルは、デジタルインタフェース105を構成するハードウェア部及びファームウェア部の機能を拡張するものであり、ソフトウェア部に対して新規な転送手順を提供するものである。
【0032】
前述のデジタルインタフェース105では、電源投入時、新たな機器の接続や切り離し等の接続構成の変化に応じてバスリセットを自動的に行う。ここで、バスリセットとは、通信システムを構成する各機器(以下、ノード)が、今までの認識していた通信システムの接続構成と各機器の通信アドレス(以下、ノードID)とを初期化し、新たな接続構成の再認識と通信アドレスの再設定とを行うため処理である。
【0033】
以下、バスリセットの処理手順を簡単に説明する。この手順は、通信システムにおける階層的な接続構成の認識と各ノードに対する物理的な通信アドレスの付与からなる。
【0034】
接続構成の認識は、バスリセットの開始後、各ノードが親子関係を宣言し合うことによって実行される。各ノードは、各ノード間の親子関係を決定することにより、通信システムをツリー構造(階層構造)として認識する。尚、各ノード間の親子関係は、通信システムの接続状態や各ノードの機能に依存するため、バスリセット毎に同じ関係になることはない。
【0035】
例えば、図1の通信システムにおいて、デジタルインタフェース105では、まず、プリンタ103(以下、ノードD)とDVTR102(以下、ノードC)との間で親子関係を設定する。次に、DVCR104(以下、ノードB)とTV101(以下、ノードA)との間、及びノードCとノードAとの間で親子関係を設定する。
【0036】
最終的に全てのノードの親(或いは上位)と認識された機器がルート・ノードとなり、この通信システムのバス使用権の調停を管理する。図1の通信システムでは、ノードAがルート・ノードとなる。
【0037】
ルート・ノードの決定後、通信システムを構成する各ノードは、ノードIDの設定を自動的に開始する。ノードIDの設定は、基本的に親ノードがポート番号の若い通信ポートに接続された子ノードに対して物理アドレスの設定を許可し、更にその子ノードが自分の子ノードに対して順番に設定の許可を与えることによって実行される。自己のノードIDを設定したノードは、セルフIDパケットを送出し、自己に付与されたノードIDを他のノードに対して通知する。最終的に全ての子ノードのID設定が終了した後、親ノードは自己のノードIDを設定する。
【0038】
以上の処理を繰り返し実行することによって、ルート・ノードのノードIDが一番最後に設定される。尚、各ノードに割り当てられるノードIDは、各機器の親子関係に依存するため、バスリセット毎に同じノードIDが設定されることはない。
【0039】
次に、図1を用いてノードIDの自動設定処理を説明する。尚、以下の説明では、接続構成の認識後、ノードAがルート・ノードとなった場合について説明する。
【0040】
図1において、ルート・ノードであるノードAはまず、「ポート1」の通信ポートに接続されているノード、即ちノードBに対してノードIDの設定を許可する。
【0041】
ノードBは、自己のノードIDを「#0」に設定し、その結果をセルフIDパケットとして通信システムを構成する全てのノードに対してブロードキャストする。ここで、ブロードキャストとは、所定の情報を不特定多数のノードを宛先として送出することである。
【0042】
この結果、全てのノードは、「ノードID「#0」は割当済である」と認識し、次にノードIDの設定を許可されたノードは「#1」を設定する。
ノードBの設定後、ノードAは、「ポート2」の通信ポートに接続されているノード、即ちノードCに対してノードIDの設定を許可する。
【0043】
ノードCは更に、子ノードの接続されている通信ポートの内、最も若いポート番号の通信ポートから順に設定の許可を与える。つまり、ノードDに対して許可を与え、その許可を受けたノードDがノードID「#1」を設定した後、セルフIDパケットをブロードキャストする。
【0044】
ノードDの設定後、ノードCが自己のノードIDを「#3」に設定し、最後にルート・ノードであるノードAが自己のノードIDを「#4」に設定して接続構成の認識を終了する。
【0045】
このようなバスリセット処理により、各ノードのデジタルインタフェース105は、通信システムの接続構成の認識と各ノードの通信アドレスの設定とを自動的に行うことができる。そして各ノードは、この前述のノードIDを用いることにより各ノード間の通信を行なうことができる。
【0046】
次に、デジタルインタフェース105の具備するデータ転送方式について、図3を用いて説明する。
図3の通信システムは、データ転送方式としてIsochronous 転送モードとAsynchronous転送モードとを具備している。Isochronous 転送モードは、1通信サイクル期間(125 μs )毎に一定量のパケットの送受信を保証するため、ビデオデータや音声データのリアルタイムな転送に有効である。また、Asynchronous転送モードは、制御コマンドやファイルデータ等を必要に応じて非同期に送受信する転送モードであり、Isochronous 転送モードに比べて優先順位が低く設定されている。
【0047】
図3において、各通信サイクルの始めには、サイクル・スタート・パケット301と呼ばれる各ノードの計時するサイクル時間を調整するための通信パケットが送出される。
【0048】
サイクル・スタート・パケット301の転送後、所定の期間がIsochronous 転送モードに設定されている。Isochronous 転送モードでは、Isochronous 転送モードに基づいて転送されるデータの夫々に対してチャネル番号を付すことにより、複数のIsochronous 転送を実行することができる。
【0049】
例えば、図3において、DVCR104からIsochronous 転送されるデータ302にチャネル番号「ch0」、DVTR102からIsochronous 転送されるデータ303にチャネル番号「ch1」、TV101からIsochronous 転送されるデータ304にチャネル番号「ch2」が割り当てられている場合、各データは、1通信サイクル期間内において時分割にIsochronous 転送される。
【0050】
各Isochronous 転送が終了した後、次のサイクル・スタート・パケット301の転送される期間までがAsynchronous転送に使用される。例えば、図3では、Asynchronous転送に基づくデータ305がDVCR104からプリンタ103に転送される。
【0051】
図4は、Asynchronous転送モードを用いた本実施の形態の通信プロトコルの基本構成について説明するシーケンスチャートである。図4において、オブジェクトデータ、例えば静止画像を順次Asynchronous転送するノード、即ちソース402をDVCR104とする。また、ソース402からAsynchronous転送されたオブジェクトデータを受信するノード、即ちディスティネーション403をプリンタ103とする。更に、ソース402とディスティネーション403との間の通信を管理するノード、即ちコントローラ401をTV101とする。
【0052】
本実施の形態の通信プロトコルは、3つのフェーズからなっている。第1のフェーズ404は、コネクションフェーズで、コントローラ401は、ディスティネーション403の受信バッファサイズ、後述するディスティネーションオフセット、受信可能か否かを問い合わせ、ディスティネーション403を受信待機状態にセットする。また、コントローラ401は、ソース402からAsynchronous転送されるオブジェクトデータを選択して、ソース402を転送待機状態にセットする。
【0053】
第2のフェーズ405は、伝送フェーズで、コントローラ401は、ソース402とディスティネーション403とを制御し、オブジェクトデータを1つ以上のパケットにより順次Asynchronous転送する。
【0054】
第3のフェーズ406は、コネクションリリースフェーズで、コントローラ401は、ディスティネーション403の受信バッファを自己の管理下から解放し、同様にソース402の送信バッファを自己の管理下から解放する。
【0055】
図5は、ソース402からAsynchronous転送されるオブジェクトデータとディスティネーション403の受信バッファとの関係を説明する図である。
ソース402からAsynchronous転送されるオブジェクトデータ501は、コントローラ401から通知されたディスティネーション403の受信バッファサイズに等しい1つ以上のセグメント502に分割される。
【0056】
それぞれのセグメント502に含まれるデータは、1つ以上のAsynchronous転送モードに基づく通信パケット503(以下、Asynchronousパケット503)にパケッタイズされ、ソース402からディスティネーション403に順次転送される。
【0057】
ディスティネーション403は、ソース402からのAsynchronousパケット503を順次受信し、一時的に受信バッファ504に書き込む。1セグメント分のオブジェクトデータの転送が終了した後、ディスティネーション403は、受信バッファ504に格納された1セグメント分のデータを内部メモリ505に順次書き込む。
【0058】
次に、図6は用いて、ディスティネーション403を含む全てのノードの有する受信バッファ504について詳細に説明する。受信バッファ504は、IEEE1212CSR(Control and Status RegisterArchitecture)規格(又は、ISO/IEC13213:1994規格)に準拠した64ビットのアドレス空間により管理されている。IEEE1212CSR規格とは、シリアルバス向けの制御、管理、アドレス割り振りを規定した規格である。
【0059】
図6(a)は、64ビットのアドレスにより表される論理的なメモリ空間である。又、図6(b)は、図6(a)に示すアドレス空間の一部であり、例えば、上位16ビットがFFFF16となるアドレス空間である。受信バッファ504は、図6(b)に示すアドレス空間の一部を使用し、アドレスの下位48ビットを示すデスティネーション・オフセットにより指定される。このデスティネーション・オフセットは、各Asynchronousパケットのヘッダ部により指定される。
【0060】
図6(b)において、例えば、00000000000016〜0000000003FF16は予約された領域であり、実際にオブジェクトデータ501の書き込まれる領域は、アドレスの下位48ビットがFFFFF000040016以降となる領域である。
【0061】
(第1の実施の形態)
以下、第1の実施の形態の通信プロトコルを、図1に示す通信システムに適用した場合について説明する。ここで、第1の実施の形態におけるコントローラ401をTV101、ソース402をDVCR104、ディスティネーション403をプリンタ103とする。
【0062】
第1の実施の形態において、ソース402は、図5に示すように、1つのオブジェクトデータ(例えば、画像データ、音声データ、グラフィックスデータ、テキストデータ等)501を1つ以上のセグメント502に分割した後、各セグメント502を1つ以上のAsynchronousパケット503にてAsynchronous転送する。また、ディスティネーション403は、ソース402からAsynchronous転送された1つ以上のAsynchronousパケット503を受信バッファ504に書込み、1セグメント502毎に内部メモリ505に格納する。
【0063】
更にコントローラ401は、ディスティネーション403のバッファサイズの問合せ、ソース402から転送されるオブジェクトデータの選択、ソース402にて生成されるセグメントのサイズの指定等、ソース402とディスティネーション403との間の通信を管理する。
【0064】
また、第1の実施の形態の通信プロトコルは、図4に示すように、3つのフェーズ、即ち、コネクションフェーズ、伝送フェーズ、コネクションリリースフェーズから構成されている。
【0065】
ここで、第1の実施の形態におけるコネクションフェーズとコネクションリリースフェーズとは、図4に示す第1のフェーズ404、第3のフェーズ406と同様に実行することができる。従って、第1の実施の形態では、伝送フェーズについて詳細に説明する。
【0066】
図7は、第1の実施の形態の伝送フェーズについて詳細に説明するシーケンスチャートである。
図7において、コントローラ401は、ディスティネーション403に対して、いくつかの通信パケットでAsynchronous転送される1セグメントのデータを受信するように指示する(704)。また、コントローラ401は、ソース402に対して、オブジェクトデータを1つ以上のセグメントに分割し、各セグメントをいくつかの通信パケットでAsynchronous転送するように指示する(705)。
【0067】
ここで、コントローラ401からソース402に転送されるコマンドの構成を図8を用いて説明する。このコマンドは、例えば、ソース402に1セグメントの転送の開始を指示するコマンド(以下、転送開始コマンド)であり、Asynchronous転送モードにより転送される。
【0068】
図8において、最初のフィールド801には、転送の開始等を指示するコマンドデータが格納される。フィールド802には、送信するセグメントの順番を示すセグメントナンバーが格納される。フィールド803には、ディスティネーション403のノードIDが格納される。
【0069】
フィールド804には、ディスティネーション403の具備する受信バッファ504の先頭アドレスが格納される。フィールド805には、ディスティネーション403の具備する受信バッファのサイズ、つまり1セグメントのサイズ情報が格納される。フィールド806には、ディスティネーション403の受信可能な通信パケットの最大サイズ情報が格納される。フィールド807には、各種のステータス情報等が格納される。
【0070】
また、図8において、フィールド807の所定の領域には、再送識別ビットを格納する領域808が設定されている。ソース402は、この領域808を読み出すことによって、通常の転送処理を行うか、再送処理を行うかを判断する。例えば、コントローラ401が、ソース402に対して通常のセグメントの転送を指示する場合、この領域808には“0”が格納される。
【0071】
第1の実施の形態において、転送開始コマンドを受信したソース402は、フィールド804に格納された受信バッファ504の先頭アドレスの値を所定の内部レジスタに格納するように構成されている。ここで、内部レジスタは、各機器の具備するデジタルインタフェース105或いは各機器の動作を制御する制御部106(図1参照)に含まれている。
【0072】
図7において、コントローラ401からの指示後、ソース402は、1セグメント502を1つ以上のAsynchronousパケット503にパケッタイズし、各Asynchronousパケット503をディスティネーション403へ順次転送する(706)。
【0073】
ここで、各Asynchronousパケット503には、ディスティネーション403の具備する受信バッファ504の所定の領域を指定するアドレス(ディスティネーションオフセットアドレス)が格納されている。例えば、あるセグメントの最初のAsynchronousパケット503には、コントローラ401により通知された受信バッファ504の先頭アドレスが格納されている。また、それ以降のAsynchronousパケットには、その受信バッファ504の所定の領域を順次指定するオフセットアドレスが格納される。
【0074】
あるセグメント502の転送中にバスリセット707が生じた場合、そのソース402はそのセグメントの転送を一時中断する。ディスティネーション403は、そのセグメントの受信を中断すると共に、バスリセットが発生する前に正常に受信された最後のAsynchronousパケットに含まれるオフセットアドレスを前述の内部レジスタに格納する。また、ディスティネーション403は、受信バッファ504に格納されたデータ(即ち、途中まで転送されたセグメント)を廃棄せず、そのまま保持する。
【0075】
バスリセット707を検出したコントローラ401は、バスリセット処理の終了後、ソース402とディスティネーション403のノードIDが変化したか否かを調べる。その後、コントローラ401は、ソース402及びディスティネーション403に対してデータ転送の再開を指示する(708、709)。
【0076】
ここで、ソース402に対して転送される転送の再開を指示するコマンドには、バスリセット707にて再設定されたディスティネーション403のノードIDが格納されている。また、このコマンドは、図8のように構成されており、フィールド807内の領域808(再送識別ビット)には、“1”が格納されている。ソース402は、この領域808を読み出すことによって、再送処理の実行を認識する。
【0077】
同様に、ディスティネーション403に対して転送される転送の再開を指示するコマンドには、バスリセット707にて設定されたソース402のノードIDが格納されている。
【0078】
コントローラ401からの指示を受けたディスティネーション403は、ソース402に対して内部レジスタに格納しておいたオフセットアドレスを通知すると共に、ソース402から再送されるセグメントを待機する(710)。
【0079】
また、コントローラ401からの指示を受けたソース402は、ディスティネーション403からのオフセットアドレスの通知を待機する。オフセットアドレスの通知後、ソース402は、セグメントの途中からAsynchronous転送を再開する(711)。
【0080】
ここで、ソース402は、前述の内部レジスタに格納されたディスティネーション403の具備する受信バッファ504の先頭アドレスの値と、ディスティネーション403から通知されたオフセットアドレスの値とを比較し、その差をとることにより転送を開始すべきデータを識別している。
【0081】
例えば、図9に示すように、内部レジスタに格納されている受信バッファ504の先頭アドレスの下位16bit が「0E00h 」、前述のオフセットアドレスの下位16bit が「0E04h 」であった場合、ソース402は、バスリセットにより転送の中断されたセグメントの内、5Byte目のデータ901からAsynchronous転送を再開する。
【0082】
このセグメントのAsynchronous転送が完了した後、ソース402は、転送の完了をコントローラ401に報告する(712)。また、ディスティネーション403も同様に、1セグメントの受信が完了したことをコントローラ401に報告する(713)。
【0083】
このように、1セグメント分のデータの転送中にバスリセットが生じても、図7の708〜713に示す手順を実行することにより、そのセグメントの転送を始めからやり直すことなく再開することができる。
次以降のセグメントの転送を開始する場合には、コントローラ401、ソース402、ディスティネーション403が、再び704〜713に示す手順を繰り返し行えばよい。
【0084】
以上のように、第1の実施の形態では、コントローラ401がバスリセットを検出した後、ソース402とディスティネーション403とに送信の再開を要求する。そして、ソース402は、この要求を受けたディスティネーション403から通知されたオフセットアドレスを用いて、転送の中断されたセグメントから送信すべきデータを選択し、それを順次Asynchronous転送するように構成されている。
【0085】
これにより、各セグメントの転送中にバスリセットが生じても、転送の再開にかかる時間と重複して転送されるデータ量とを削減することができると共に、伝送効率の低下を回避することができる。
【0086】
(第2の実施の形態)
以下、第2の実施の形態の通信プロトコルを、第1の実施の形態と同様に、図1に示す通信システムに適用した場合について説明する。ここで、第2の実施の形態におけるコントローラ401をTV101、ソース402をDVCR104、ディスティネーション403をプリンタ103とする。
【0087】
以下、第2の実施の形態において、第1の実施の形態と同一あるいはそれに相当する部材或いは機能については同一符号を用いて説明を省略する。
第2の実施の形態の通信プロトコルは、第1の実施の形態と同様に、図4に示すように、3つのフェーズ、即ち、コネクションフェーズ404、伝送フェーズ405、コネクションリリースフェーズ406から構成されている。以下、第2の実施の形態では、第1の実施の形態と同様に、伝送フェーズについて詳細に説明する。
【0088】
図10は、第2の実施の形態の伝送フェーズについて詳細に説明するシーケンスチャートである。
図10において、バスリセット707が発生するまでの手順、即ち図7の704〜706までの手順は、第1の実施の形態と同様に動作するため、その説明を省略する。以下、バスリセット707が発生した後の処理ついて説明する。
【0089】
あるセグメントのAsynchronous転送中にバスリセット707が生じた場合、ソース702はそのセグメントの転送を中断する。転送を中断すると共に、ソース702は、バスリセットが発生する前に送信された最後のAsynchronousパケット503に含まれるオフセットアドレスを内部レジスタに格納する。
【0090】
ここで、オフセットアドレスが格納される内部レジスタは、各機器の具備するデジタルインタフェース105或いは各機器の動作を制御する制御部106に含まれている。尚、前述のオフセットアドレスは、受信バッファ504の先頭アドレスが格納される内部レジスタとは異なる内部レジスタに格納される。
【0091】
又、ディスティネーション403は、そのセグメントの受信を中断すると共に、受信バッファ504に格納されたデータ(即ち、途中まで転送されたセグメント)を廃棄せず、そのまま保持する。
【0092】
バスリセット707を検出したコントローラ401は、バスリセット処理の終了後、ソース402とディスティネーション403のノードIDが変化したか否かを調べる。その後、コントローラ401は、ソース402及びディスティネーション403に対してデータ転送の再開を指示する(1001、1002)。
【0093】
ここで、ソース402に対して転送される転送再開コマンドには、バスリセット707にて再設定されたディスティネーション403のノードIDが格納されている。また、このコマンドは、図2のように構成されており、フィールド807内の領域808(再送識別ビット)には、“1”が格納されている。ソース402は、この領域808を読み出すことによって、再送処理の実行を認識する。
【0094】
同様に、ディスティネーション403に対して転送される転送の再開を指示するコマンドには、バスリセット707にて設定されたソース402のノードIDが格納されている。
【0095】
コントローラ401からの指示を受けたディスティネーション403は、ソース402から再送されるデータを待機する。
また、コントローラ401からの指示を受けたソース402は、前述の内部レジスタに格納しておいたオフセットアドレスを読み出し、そのアドレスに対応するデータからのAsynchronous転送を再開する(1003)。
【0096】
ここで、ソース402は、前述の内部レジスタに格納されたディスティネーション403の具備する受信バッファ504の先頭アドレスの値と、前述のオフセットアドレスの値とを比較し、その差をとることにより転送を開始すべきセグメントの一部を識別している。
【0097】
例えば、図9に示すように、内部レジスタに格納されている受信バッファ504の先頭アドレスの下位16bit が「0E00h 」、前述のオフセットアドレスの下位16bit が「0E04h 」であった場合、ソース402は、バスリセットにより転送の中断されたセグメントの内、5Byte目のデータ901からAsynchronous転送を再開する。
【0098】
このセグメントのAsynchronous転送が完了した後、ソース402は、転送の完了をコントローラ401に報告する(712)。また、ディスティネーション403も同様に、1セグメントの受信が完了したことをコントローラ401に報告する(713)。
【0099】
このように、1セグメント分のデータの転送中にバスリセットが生じても、図10に示す手順を実行することにより、そのセグメントの全ての転送を始めからやり直すことなく再開することができる。
【0100】
次以降のセグメントの転送を開始する場合には、コントローラ401、ソース402、ディスティネーション403が、再び図10に示す手順を繰り返し行えばよい。
【0101】
以上のように、第2の実施の形態では、コントローラ401がバスリセットを検出した後、ソース402とディスティネーション403とに送信の再開を要求する。そして、ソース402が、バスリセットの前に正常に転送されたAsynchronousパケット503に含まれるオフセットアドレスを用いて、転送の中断されたセグメントデータから送信すべきデータを選択し、それを順次Asynchronous転送するように構成されている。
【0102】
これにより、各セグメントの転送中にバスリセットが生じても、第1の実施の形態と同様に、転送の再開にかかる時間と重複して転送されるデータ量とを削減することができると共に、伝送効率の低下を回避することができる。
【0103】
(第3の実施の形態)
以下、第3の実施の形態の通信プロトコルを、図1に示した通信システムに適用した場合について説明する。ここで、第3の実施の形態におけるコントローラ401をTV101、ソース402をDVCR104、ディスティネーション403をプリンタ103とする。
【0104】
以下、第3の実施の形態において、第1の実施の形態と同一あるいはそれに相当する部材或いは機能については同一符号を用いて説明を省略する。
第3の実施の形態において、ソース402は、オブジェクトデータ501を1つ以上のセグメント502に分割した後、各セグメント502を1つ以上のAsynchronousパケット503にてAsynchronous転送する。
【0105】
また、ディスティネーション403は、ソース402からAsynchronous転送された1つ以上のAsynchronousパケット503を受信し、1セグメント毎に内部メモリに格納する。更にコントローラ401は、ディスティネーション403のバッファサイズの問合せ、ソース402から転送されるオブジェクトデータの選択、ソース402にて生成されるセグメントのサイズの指定等、ソース402とディスティネーション403との間の通信を管理する。
【0106】
また、第3の実施の形態の通信プロトコルは、第1の実施の形態と同様に3つのフェーズ、即ち、コネクションフェーズ404、伝送フェーズ405、コネクションリリースフェーズ406から構成されている。以下、第3の実施の形態では、伝送フェーズについて詳細に説明する。
【0107】
図11は、第3の実施の形態の伝送フェーズについて詳細に説明するシーケンスチャートである。
図11において、バスリセット707が発生するまでの手順、即ち、図11の104〜106までの手順は、第1の実施の形態と同様に動作するため、その説明を省略する。以下、バスリセット707が発生した後の処理ついて説明する。
【0108】
あるセグメントのAsynchronous転送中にバスリセット707が生じた場合、ソース402はそのセグメントの転送を中断する。転送を中断すると共に、ソース402は、バスリセットが発生する前に正常に送信された最後のAsynchronousパケット503に含まれるオフセットアドレスを内部レジスタに格納する。
【0109】
ここで、オフセットアドレスが格納される内部レジスタは、各機器の具備するデジタルインタフェース105或いは各機器の動作を制御する制御部106に含まれている。尚、前述のオフセットアドレスは、受信バッファ504の先頭アドレスが格納される内部レジスタとは異なる内部レジスタに格納される。
【0110】
ディスティネーション403は、そのセグメントの受信を中断すると共に、受信バッファ504に格納されたデータ、即ち、途中まで転送されたセグメントを廃棄せず、そのまま保持する。
【0111】
バスリセット707を検出したコントローラ401は、バスリセット処理の終了後、ソース402とディスティネーション403のノードIDが変化したか否かを調べる。その後、コントローラ401は、ソース402に対して、正常に送信された最後のAsynchronousパケット503に含まれるオフセットアドレスを問い合わせる(1101)。
【0112】
ここで、ソース402に対して転送される問合せコマンドのデータ部は、図8のように構成されており、そのコマンドのフィールド807内の領域808(再送識別ビット)には、“1”が格納されている。ソース402は、この領域808を読み出すことによって、再送処理の実行を認識する。
【0113】
この問い合せに対し、ソース402は、前述の内部レジスタに格納していたオフセットアドレスを読み出し、コントローラ401に通知する(1102)。
ソース402からの通知を受けたコントローラ401は、ディスティネーション403のノードIDを通知すると共に、そのオフセットアドレスに対応するデータからAsynchronous転送を再開するように指示する(1103)。
【0114】
コントローラ401から転送の再開の指示を受けたソース402は、前述のオフセットアドレスに対応するデータからのAsynchronous転送を再開する(1104)。
【0115】
ここで、ソース402は、ディスティネーション403の具備する受信バッファ504の先頭アドレスの値と、前述のオフセットアドレスの値とを比較し、その差をとることにより転送を開始すべきセグメントの一部を識別している。
【0116】
例えば、図9に示すように、内部レジスタに格納されている受信バッファ504の先頭アドレスの下位16bit が「0E00h 」、前述のオフセットアドレスの下位16bit が「0E04h 」であった場合、ソース402は、バスリセットにより転送の中断されたセグメントの内、5Byte目のデータ901からAsynchronous転送を再開する。
【0117】
この1セグメントのAsynchronous転送が完了した後、ソースは、転送の完了をコントローラ401に報告する(712)。また、ディスティネーション403も同様に、1セグメントの受信が完了したことをコントローラ401に報告する(713)。
【0118】
このように、1セグメント分のデータの転送中にバスリセットが生じても、図11に示す手順を実行することにより、そのセグメントの全ての転送を始めからやり直すことなく再開することができる。
【0119】
次以降のセグメントの転送を開始する場合には、コントローラ401、ソース402、ディスティネーション403が、再び図11に示す手順を繰り返し行えばよい。
【0120】
以上のように、第3の実施の形態では、コントローラ401がバスリセットを検出した後、バスリセットの前に正常に転送されたAsynchronousパケット503に含まれるオフセットアドレスをソース402に問い合わせる。そして、コントローラ401は、ソース402から通知されたオフセットアドレスに対応するデータからAsynchronous転送を再開するようにソース402に指示するように構成されている。
【0121】
これにより、各セグメントの転送中にバスリセットが生じても、第1の実施の形態と同様に、転送の再開にかかる時間と重複して転送されるデータ量とを削減することができると共に、伝送効率の低下を回避することができる。
【0122】
(他の実施の形態)
前述の第1〜第3の実施の形態は、以下のように実現することも可能である。例えば、前述した実施の形態の機能を実現するソフトウェアのプログラムコードを記録した記録媒体を、本実施の形態のコントローラ401、ソース402、ディスティネーション403の具備する制御部(マイクロコンピュータを含む)に供給するように構成することもできる。
【0123】
そして、本実施の形態のコントローラ401、ソース402、ディスティネーション403の具備する制御部が、その記録媒体に格納されたプログラムコードを読み出し、前述した実施の形態の機能を実現するようにシステム或いは装置の動作を制御するように構成しても本発明の実施の形態を実現することができる。
【0124】
例えば、第1の実施の形態の図7、第2の実施の形態の図10、第3の実施の形態の図11に示した処理及び機能を実現するプログラムコードを格納した記録媒体を、コントローラ401、ソース402、ディスティネーション403の制御部106に供給する。
【0125】
そして、コントローラ401、ソース402、ディスティネーション403の制御部106が、その記録媒体に格納されたプログラムコードを読み出し、各実施の形態の機能を実現するように、図1に示すコントローラ401、ソース402、ディスティネーション403の具備する各処理回路を動作させるようにしてもよい。
【0126】
この場合、記録媒体から読み出されたプログラムコード自体が前述した実施の形態の機能を実現することになり、そのプログラムコードを記憶した記録媒体は、本発明の一部の構成要件になる。
【0127】
プログラムコードを供給するための記録媒体としては、例えば、フロッピディスク、ハードディスク、光ディスク、光磁気ディスク、CD−ROM、CD−R、磁気テープ、不揮発性のメモリカード、ROMなどを用いることができる。
【0128】
また、制御部上で稼動しているOS(オペレーティングシステム)或いはアプリケーションソフト等が、記録媒体より読み出したプログラムコードの指示に基づき、本実施の形態のシステム或いは装置の動作を制御することにより、前述した実施の形態の機能を実現する場合も本発明に含まれることは言うまでもない。
【0129】
更に、記録媒体から読み出されたプログラムコードが、制御部に接続された機能拡張ボード或いは機能拡張ユニットの具備するメモリに書き込まれた後、そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットの具備する制御部が本実施の形態のシステム或いは装置の動作を制御することにより、前述した実施の形態の機能が実現される場合も本発明に含まれることは言うまでもない。尚、本発明はその精神、またはその主要な特徴から逸脱することなく、様々な形で実施することができる。
【0130】
例えば、第1〜第3の実施の形態において、コントローラ401、ソース402、ディスティネーション403の機能を夫々別の機器が具備している場合について説明したが、それに限るものではない。例えば、第1〜第3の実施の形態に示したコントローラ401の機能とソース402の機能とを同一の機器に具備させるように構成してもよい。
【0131】
このように構成した場合、コントローラ401とソース402との間の通信は、各機器に共通する伝送路を介することなく行われるため、通信システム全体の伝送効率をより向上させることができる。
【0132】
しかし、本発明は、コントローラ401とソース402とが同一の機器内に存在する場合よりも、第1〜第3の実施の形態に示すように、コントローラ401、ソース402、ディスティネーション403とが夫々別の機器として存在する場合において、より高い効果を奏するものである。このことは、コントローラ401の機能とディスティネーション403の機能とが同一の機器内に存在する場合についても同様である。したがって、前述の実施の形態はあらゆる点おいて単なる例示に過ぎず、限定的に解釈してはならない。
【0133】
【発明の効果】
発明に係るデータ通信システムによれば、転送の再開にかかる時間と重複して転送されるデータ量とを削減することができる。
【図面の簡単な説明】
【図1】本実施の形態の通信システムの構成を示すブロック図である。
【図2】本実施の形態の1394インタフェースの構成を示す図である。
【図3】1394インタフェースの有する転送方式を説明する図である。
【図4】本実施の形態の通信プロトコルの基本手順を説明するシーケンスチャートである。
【図5】オブジェクトデータの転送モデルを説明する図である。
【図6】各ノードの有するアドレス空間を説明する図である。
【図7】第1の実施の形態の通信プロトコルを説明する図である。
【図8】コントローラからソースに転送される通信パケットの構成を示す図である。
【図9】ソースの具備する内部アドレスを説明する図である。
【図10】第2の実施の形態の通信プロトコルを説明するシーケンスチャートである。
【図11】第3の実施の形態の通信プロトコルを説明するシーケンスチャートである。
【符号の説明】
101 TV
102 DVTR
103 プリンタ
104 DVCR
105 デジタルインタフェース
106 制御部
107 信号処理部
401 コントローラ
402 ソース
403 ディスティネーション

Claims (5)

  1. 被送信データを送信するソースと、
    前記被送信データを受信するディスティネーションと、
    前記ソースと前記ディスティネーションとの間の通信を管理するコントローラとを有し
    前記ソースは、
    前記被送信データ内の各データを、前記ディスティネーションが有する受信バッファの一部を指定するのに用いられるオフセットアドレスとともに送信する機能と、
    バスリセットが発生した場合において、前記被送信データの送信を中断する機能とを有し、
    前記ディスティネーションは、
    前記バスリセットが発生した後において、前記バスリセットが発生する前に正常に受信されたデータに対応する前記オフセットアドレスを前記ソースに通知する機能を有し、
    前記ソースはさらに、
    前記バスリセットが発生した後において、前記ディスティネーションから通知された前記オフセットアドレスに従って前記被送信データの送信を再開する機能を有することを特徴とするデータ通信システム。
  2. 前記コントローラはさらに、前記バスリセットが発生した後において、前記ディスティネーションに再設定された通信アドレスを前記ソースに通知する機能を有することを特徴とする請求項1に記載のデータ通信システム。
  3. 前記コントローラはさらに、前記バスリセットが発生した後において、前記ソースに再設定された通信アドレスを前記ディスティネーションに通知する機能を有することを特徴とする請求項1又は2に記載のデータ通信システム。
  4. 前記被送信データ内の各データは、前記オフセットアドレスとともに、IEEE1394−1995規格で規定されたアシンクロナス( Asynchronous )転送方式により送信されることを特徴とする請求項1から3のいずれかに記載のデータ通信システム。
  5. 前記バスリセットは、IEEE1394−1995規格で規定された機能であることを特徴とする請求項1から4のいずれかに記載のデータ通信システム。
JP06705299A 1998-03-30 1999-03-12 データ通信システム Expired - Fee Related JP4026979B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP06705299A JP4026979B2 (ja) 1998-03-30 1999-03-12 データ通信システム

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP8470998 1998-03-30
JP10-84709 1998-03-30
JP06705299A JP4026979B2 (ja) 1998-03-30 1999-03-12 データ通信システム

Publications (3)

Publication Number Publication Date
JP2000032010A JP2000032010A (ja) 2000-01-28
JP2000032010A5 JP2000032010A5 (ja) 2006-06-08
JP4026979B2 true JP4026979B2 (ja) 2007-12-26

Family

ID=26408255

Family Applications (1)

Application Number Title Priority Date Filing Date
JP06705299A Expired - Fee Related JP4026979B2 (ja) 1998-03-30 1999-03-12 データ通信システム

Country Status (1)

Country Link
JP (1) JP4026979B2 (ja)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3539287B2 (ja) 1999-07-15 2004-07-07 セイコーエプソン株式会社 データ転送制御装置及び電子機器
JP4633735B2 (ja) * 2004-05-13 2011-02-16 パナソニック株式会社 情報処理装置、集積回路、データ転送制御方法、データ転送制御用プログラム、プログラム記録媒体、プログラム伝送媒体、及びデータ記録媒体
JP2010211580A (ja) * 2009-03-11 2010-09-24 Omron Corp 電子機器、設定機器および通信方法

Also Published As

Publication number Publication date
JP2000032010A (ja) 2000-01-28

Similar Documents

Publication Publication Date Title
US6397277B1 (en) Method and apparatus for transmitting data over data bus at maximum speed
US6690648B2 (en) Data communication apparatus, method, and system utilizing reception capability information of a destination node
US6996112B2 (en) Information communication system, information communication method, information signal processing device and information signal processing method, and storage medium
US20020026540A1 (en) Automatically configuring storage array including a plurality of media storage devices for storing and providing data within a network of devices
US6412076B1 (en) Signal processing apparatus and image sensing apparatus
US6895003B1 (en) Communication system, apparatus, and method in which data transmission is interrupted for a bus reset
EP0939529B1 (en) Destination node, data communication system, method of controlling a destination node and method of operating a data communication system
JP4181688B2 (ja) データ通信システム及びデータ通信装置
US20040057448A1 (en) Information processing system, information processing apparatus, and information processing method
US7002964B1 (en) Communication system, method for a communication system and controller for a communication system
KR100311707B1 (ko) 데이타 통신 시스템, 데이타 통신 방법, 데이타 통신 장치 및 디지탈 인터페이스
JP4428750B2 (ja) データ通信システム
JP4026979B2 (ja) データ通信システム
US20060017811A1 (en) Communication system, electronic apparatus, control apparatus, and computer-readable storage medium
US6956864B1 (en) Data transfer method, data transfer system, data transfer controller, and program recording medium
US7346714B2 (en) Notification of completion of communication with a plurality of data storage areas
JP2001274813A (ja) 情報信号処理装置及び情報信号処理方法並びに記憶媒体
JP4046846B2 (ja) データ通信システム及びデータ通信装置
JP3814407B2 (ja) データ通信システム、データ通信装置及びデータ通信方法
JP3943698B2 (ja) データ通信システム及びデータ通信装置
JP4065466B2 (ja) データ通信システム
JP4143205B2 (ja) データ通信システム
EP1228436A1 (en) Device for storing audio/video data and non audio/video data
JPH11177589A (ja) データ転送装置およびデータ転送装置のデータ処理方法およびコンピュータが読み出し可能なプログラムを格納した記憶媒体
JP2001313661A (ja) 通信システム及び通信方法

Legal Events

Date Code Title Description
A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20060313

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20060313

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20070629

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20070710

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20070910

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: 20071002

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20071009

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20101019

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20101019

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20111019

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20111019

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20121019

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20131019

Year of fee payment: 6

LAPS Cancellation because of no payment of annual fees