JP4046846B2 - データ通信システム及びデータ通信装置 - Google Patents
データ通信システム及びデータ通信装置 Download PDFInfo
- Publication number
- JP4046846B2 JP4046846B2 JP11972798A JP11972798A JP4046846B2 JP 4046846 B2 JP4046846 B2 JP 4046846B2 JP 11972798 A JP11972798 A JP 11972798A JP 11972798 A JP11972798 A JP 11972798A JP 4046846 B2 JP4046846 B2 JP 4046846B2
- Authority
- JP
- Japan
- Prior art keywords
- size
- data
- segment
- data communication
- destination
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Landscapes
- Small-Scale Networks (AREA)
- Communication Control (AREA)
- Information Transfer Systems (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Description
【発明の属する技術分野】
本発明は、データ通信システム及びデータ通信装置に関する。
【0002】
【従来の技術】
最近、1つの伝送路を介して複数の電子機器を接続し、各機器間における制御信号と情報信号(ビデオ信号、オーディオ信号、グラフィックスデータ、テキストデータ等)との通信を混在させて行うように制御する通信システムが開発されている。
【0003】
また、このような通信システムにおいて、各種の情報信号を各機器間において非同期に伝送させる通信プロトコルが開発されている。このような通信システムを実現する技術の一つに、高性能シリアルバスに関するIEEE1394―1995規格(以下、1394規格)がある。
【0004】
以下、図10を用いて1394規格に準拠した従来の通信システムの構成について説明する。図10において、各機器は1394規格に準拠したデジタルインタフェース1005を具備している。
【0005】
図10の通信システムは、TV1001、デジタルビデオテープレコーダ(以下、DVTR)1002、プリンタ1003、デジタルカムコーダ(以下、DVCR)1004により構成されている。各機器は、1394規格に準拠した通信ケーブルを介して接続されている。
【0006】
ここで、通信ケーブルは、データの転送や調停信号の通信に用いられる2組のシールド付きより対線により構成されている4ピンコネクタケーブルと、2組のより対線と電源供給用のペア線からなる6ピンコネクタケーブルとがある。尚、2組のより対線を用いて伝送されるデータは、DS−Link方式により符号化されたデータである。
【0007】
上述の通信システムでは、電源投入時、新たな機器の接続や切り離し等の接続構成の変化に応じてバスリセットを自動的に行う。ここで、バスリセットとは、通信システムを構成する各機器(以下、ノード)が、今までの認識していた通信システムの接続構成と各機器の通信アドレス(以下、ノードID)とを初期化し、新たな接続構成の再認識と通信アドレスの再設定とを行うため処理である。
【0008】
以下、バスリセットの処理手順を簡単に説明する。この手順は、通信システムにおける階層的な接続構成の認識と各ノードに対する物理的な通信アドレスの付与からなる。
【0009】
接続構成の認識は、バスリセットの開始後、各ノードが親子関係を宣言し合うことによって実行される。各ノードは、各ノード間の親子関係を決定することにより、通信システムをツリー構造(階層構造)として認識する。尚、各ノード間の親子関係は、通信システムの接続状態や各ノードの機能に依存するため、バスリセット毎に同じ関係になることはない。
【0010】
例えば、図3の通信システムでは、まず、プリンタ1003(以下、ノードD)とDVTR1002(以下、ノードC)との間で親子関係を設定する。次に、DVCR1004(以下、ノードB)とTV1001(以下、ノードA)との間、及びノードCとノードAとの間で親子関係を設定する。
【0011】
最終的に全てのノードの親(或いは上位)と認識された機器がルート・ノードとなり、この通信システムのバス使用権の調停を管理する。図10の通信システムでは、ノードAがルート・ノードとなる。
ルート・ノードの決定後、通信システムを構成する各ノードは、ノードIDの設定を自動的に開始する。
【0012】
ノードIDの設定は、基本的に親ノードがポート番号の若い通信ポートに接続された子ノードに対して物理アドレスの設定を許可し、更にその子ノードが自分の子ノードに対して順番に設定の許可を与えることによって実行される。自己のノードIDを設定したノードは、セルフIDパケットを送出し、自己に付与されたノードIDを他のノードに対して通知する。最終的に全ての子ノードのID設定が終了した後、親ノードは自己のノードIDを設定する。
【0013】
以上の処理を繰り返し実行することによって、ルート・ノードのノードIDが一番最後に設定される。尚、各ノードに割り当てられるノードIDは、各機器の親子関係に依存するため、バスリセット毎に同じノードIDが設定されることはない。
【0014】
以下、図10の通信システムを用いてノードIDの自動設定処理を説明する。尚、本実施例では、接続構成の認識後、ノードAがルート・ノードとなった場合について説明する。
【0015】
図10において、ルート・ノードであるノードAはまず、「ポート1」の通信ポートに接続されているノード、即ちノードBに対してノードIDの設定を許可する。
【0016】
ノードBは、自己のノードIDを「#0」に設定し、その結果をセルフIDパケットとして通信システムを構成する全てのノードに対してブロードキャストする。ここで、ブロードキャストとは、所定の情報を不特定多数のノードを宛先として送出することである。
【0017】
この結果、全てのノードは、「ノードID「#0」は割当済である」と認識し、次にノードIDの設定を許可されたノードは「#1」を設定する。
ノードBの設定後、ノードAは、「ポート2」の通信ポートに接続されているノード、即ちノードCに対してノードIDの設定を許可する。
【0018】
ノードCは更に、子ノードの接続されている通信ポートの内、最も若いポート番号の通信ポートから順に設定の許可を与える。つまり、ノードDに対して許可を与え、その許可を受けたノードDがノードID「#1」を設定した後、セルフIDパケットをブロードキャストする。
【0019】
ノードDの設定後、ノードCが自己のノードIDを「#3」に設定し、最後にルート・ノードであるノードAが自己のノードIDを「#4」に設定して接続構成の認識を終了する。
【0020】
このようなバスリセット処理により、各ノードは通信システムの接続構成の認識と各ノードの通信アドレスの設定とを自動的に行うことができる。そして各ノードは、この上述のノードIDを用いることにより各ノード間の通信を行なうことができる。
【0021】
次に、図10の通信システムの具備するデータ転送方式について図9を用いて説明する。
図10の通信システムは、データ転送方式としてIsochronous 転送モードとAsynchronous転送モードとを具備している。Isochronous 転送モードは、1通信サイクル期間(125 μs )毎に一定量のパケットの送受信を保証するため、ビデオデータや音声データのリアルタイムな転送に有効である。
【0022】
また、Asynchronous転送モードは、制御コマンドやファイルデータ等を必要に応じて非同期に送受信する転送モードであり、Isochronous 転送モードに比べて優先順位が低く設定されている。
【0023】
図11において、各通信サイクルの始めには、サイクル・スタート・パケット1101と呼ばれる各ノードの計時するサイクル時間を調整するための通信パケットが送出される。
【0024】
サイクル・スタート・パケット1101の転送後、所定の期間がIsochronous 転送モードに設定されている。Isochronous転送モードでは、Isochronous 転送モードに基づいて転送されるデータの夫々に対してチャネル番号を付すことにより、複数のIsochronous 転送を実行することができる。
【0025】
例えば、図11において、DVCR1004からIsochronous 転送されるデータ1102にチャネル番号「ch0」、DVTR1002からIsochronous 転送されるデータ1103にチャネル番号「ch1」、TV1001からIsochronous転送されるデータ1104にチャネル番号「ch2」が割り当てられている場合、各データは、1通信サイクル期間内において時分割にIsochronous 転送される。
【0026】
各Isochronous 転送が終了した後、次のサイクル・スタート・パケット1101の転送される期間までがAsynchronous転送に使用される。例えば、図11では、Asynchronous転送に基づくデータ1105がDVCR1004からプリンタ1003に転送される。
【0027】
図12は、Asynchronous転送モードに基づく従来の通信プロトコルについて説明するシーケンスチャートである。
図12において、情報データをAsynchronous転送するノード、即ちソース1202をDVCR1004とする。
【0028】
また、ソース1202からAsynchronous転送された情報データを受信するノード、即ちデスティネーション1203をプリンタ1003とする。更に、ソース1202とデスティネーション1203との間の通信を管理するノード、即ちコントローラ1201をTV1001とする。
【0029】
従来の通信プロトコルは、3つのフェーズからなっていた。第1のフェーズ1204は、コネクションフェーズで、コントローラ1201は、デスティネーション1203の受信バッファサイズや受信可能か否かを問い合わせ、デスティネーション1203を受信待機状態にセットする。
【0030】
また、コントローラ1201は、デスティネーション1203に問い合わせた受信バッファサイズをソース1202に通知すると共に、ソース1202からAsynchronous転送される情報データを選択して、送信バッファからの転送をセットする。
【0031】
第2のフェーズ1205は、伝送フェーズで、コントローラ1201は、ソース1202とデスティネーション1203とを制御し、情報データをAsynchronous転送する。
【0032】
第3のフェーズ1206は、コネクションリリースフェーズで、コントローラ1201は、デスティネーション1203の受信バッファを自己の管理下から開放し、同様にソース1202の送信バッファを自己の管理下から開放する。
【0033】
図13は、ソース1202からAsynchronous転送される情報データとデスティネーション1203の受信バッファとの関係を説明する図である。ソース1202からAsynchronous転送される1オブジェクトの情報データ1301は、コントローラ1201から通知されたデスティネーション1203の受信バッファサイズに等しい1つ以上のセグメント1302に分割される。ここで、各セグメント1302のサイズは固定長であり、1セグメントは、1つ以上のセグメントデータ(固定長)からなる。
【0034】
各セグメントデータは、Asynchronous転送モードに基づく通信パケット1303(以下、Asynchronousパケット1303)にパケッタイズされ、ソース1202からデスティネーション1203に順次転送される。
【0035】
デスティネーション1203は、ソース1202からのAsynchronousパケット1303を順次受信し、一時的に受信バッファ1304に書き込む。1セグメント分の情報データの転送が終了した後、デスティネーション1203は、受信バッファ1304に格納されたデータを内部メモリ1305に順次書き込む。
【0036】
以下、図14を用いて上述の第2のフェーズ1205の処理について詳細に説明する。
図14において、コントローラ1201は、デスティネーション1203に対して、1つ以上の通信パケットによりAsynchronous転送されるセグメントデータを受信するように指示する(1401)。
【0037】
また、コントローラ1201は、ソース1202に対して、1オブジェクトの情報データを上述のセグメント単位に分割し、更に各セグメントを1つ以上の通信パケットでAsynchronous転送するように指示する(1402)。
【0038】
これらの指示の後、ソース1202は、1セグメントデータを1つ以上のAsynchronousパケットにパケッタイズし、それらのAsynchronousパケットをデスティネーション1203へ順次転送する(1403)。
【0039】
コントローラ1201から指示されたセグメントデータの転送が完了した後、ソース1202は、転送の完了をコントローラ1201に通知する(1404)。また、デスティネーション1203は、コントローラ1201から指示されたセグメントデータの受信が完了したことをコントローラ1201に通知する(1405)。以上、図14の1401〜1405に示す手順により、1セグメント分の情報データが転送される(1406)。
【0040】
次のセグメントデータの転送を開始する場合、再び1401〜1405に示す手順を繰り返し、コントローラ1201がソース1202とデスティネーション1203の間の転送を制御する(1407)。
【0041】
【発明が解決しようとする課題】
しかしながら、上述の通信プロトコルには次のような問題があった。
例えば、従来の通信プロトコルにおいて、各セグメントのサイズは固定長であり、デスティネーション1203の具備する受信バッファのサイズと等しくなるように制御されていた。
【0042】
また、デスティネーション1203の具備する受信バッファのサイズは、全データの転送が終了するまで一定であり、全データの転送中に各セグメントのサイズを可変的に制御する仕組みがなかった。
【0043】
例えば、従来の通信プロトコルに従って、複数のセグメントに分割された画像データを順次受信するプリンタにおいて、各セグメント分のデータの受信中に、プリント用に画像処理されているデータの一部を一時的に受信バッファの一部に記憶したい場合がある。
【0044】
このような場合、従来の通信プロトコルでは、各セグメントのデータ量は一定であるため、通信中に一部のセグメントのデータ量を減らし、受信バッファ内に所望の領域を確保することができなかった。
【0045】
また、より多くの機器との通信を可能とするために、通信中にソース1202からデスティネーション1203に転送される1セグメントのデータ量を減らしたり、より早く通信を終了させるために、通信中にデスティネーション1203の受信バッファサイズを大きくし、1セグメントのデータ量を増やしたりを適応的に制御することができなかった。
【0046】
そこで、本発明は、送信すべきデータを複数のセグメントに分割し、当該セグメントを複数のセグメントデータに分割し、当該複数のセグメントデータを受信側データ通信装置に送信する場合において、当該セグメントのデータ量を適切に制御することのできるデータ通信システム及びデータ通信装置を提供することを目的とする。
【0047】
【課題を解決するための手段】
本発明に係るデータ通信システムは、受信側データ通信装置と、送信すべきデータを複数のセグメントに分割し、前記セグメントを複数のセグメントデータに分割し、前記複数のセグメントデータを前記受信側データ通信装置に送信する送信側データ通信装置とを有するデータ通信システムであって、前記受信側データ通信装置は、前記送信側データ通信装置から送信された前記セグメントデータを格納する第1の受信バッファと、前記第1の受信バッファに格納された前記セグメントデータを格納する第2の受信バッファと、前記送信側データ通信装置が前記セグメントデータのサイズと前記セグメントのサイズとを決定するのに必要な前記第1の受信バッファのサイズを、前記受信側データ通信装置の最大データ転送速度に対応するペイロードサイズを用いて決定し、前記第2の受信バッファのサイズを、前記第1の受信バッファのサイズを用いて決定する第1の決定手段と、前記第1の決定手段により決定された前記第1の受信バッファのサイズを示す情報を前記送信側データ通信装置に送信する送信手段とを有し、前記送信側データ通信装置は、前記受信側データ通信装置から前記第1の受信バッファのサイズを示す情報を受信する受信手段と、前記セグメントデータのサイズと前記セグメントのサイズとを、前記第1の受信バッファのサイズを用いて決定する第2の決定手段とを有することを特徴とする。
【0048】
本発明に係るデータ通信装置の一つは、送信すべきデータを複数のセグメントに分割し、前記セグメントを複数のセグメントデータに分割し、前記複数のセグメントデータを送信する送信側データ通信装置から送信された前記複数のセグメントデータを受信するデータ通信装置であって、前記送信側データ通信装置から送信された前記セグメントデータを格納する第1の受信バッファと、前記第1の受信バッファに格納された前記セグメントデータを格納する第2の受信バッファと、前記送信側データ通信装置が前記セグメントデータのサイズと前記セグメントのサイズとを決定するのに必要な前記第1の受信バッファのサイズを、前記データ通信装置の最大データ転送速度に対応するペイロードサイズを用いて決定し、前記第2の受信バッファのサイズを、前記第1の受信バッファのサイズを用いて決定する決定手段と、前記決定手段により決定された前記第1の受信バッファのサイズを示す情報を前記送信側データ通信装置に送信する送信手段とを有することを特徴とする。
【0049】
本発明に係るデータ通信装置の一つは、送信すべきデータを複数のセグメントに分割し、前記セグメントを複数のセグメントデータに分割し、前記複数のセグメントデータを受信側データ通信装置に送信するデータ通信装置であって、前記データ通信装置から送信された前記セグメントデータを格納する第1の受信バッファと、前記第1の受信バッファに格納された前記セグメントデータを格納する第2の受信バッファと、前記データ通信装置が前記セグメントデータのサイズと前記セグメントのサイズとを決定するのに必要な前記第1の受信バッファのサイズを、前記受信側データ通信装置の最大データ転送速度に対応するペイロードサイズを用いて決定し、前記第2の受信バッファのサイズを、前記第1の受信バッファのサイズを用いて決定する第1の決定手段と、前記第1の決定手段により決定された前記第1の受信バッファのサイズを示す情報を前記データ通信装置に送信する送信手段とを有する前記受信側データ通信装置から、前記第1の受信バッファのサイズを示す情報を受信する受信手段と、前記セグメントデータのサイズと前記セグメントのサイズとを、前記第1の受信バッファのサイズを用いて決定する第2の決定手段とを有することを特徴とする。
【0051】
【発明の実施の形態】
以下、本発明のデータ通信システム、装置及び方法、並びに記録媒体について図面を用いて詳細に説明する。
尚、以下の実施の形態において、上記従来例と同一あるいはそれに相当する部材については同一符号を用いて説明を省略する。
【0052】
(第1の実施の形態)
以下、第1の実施の形態の通信プロトコルを、図10に示す通信システムに適用した場合について説明する。ここで、第1の実施の形態におけるコントローラ101をTV1001、ソース102をDVCR1004、デスティネーション103をプリンタ1003とする。
【0053】
第1の実施の形態において、ソース102は、1オブジェクトの情報データ(例えば、画像データ、音声データ、グラフィックスデータ、テキストデータ等)を所定のデータ量からなるセグメントに分割した後、そのセグメントを1つ以上のセグメントデータとしてAsynchronous転送する。
【0054】
また、デスティネーション103は、ソース102からAsynchronous転送された1つ以上のAsynchronousパケットを受信し、各Asynchronousパケットに含まれるセグメントデータを受信バッファに格納する。
【0055】
ここで、デスティネーション103の受信バッファは、デスティネーション103の具備するCSR(Control and Status Register)空間内に確保されている。セグメントデータは、各Asynchronousパケットに含まれるオフセットアドレスにより指定されるCSR空間内の所定の領域に対して書き込まれる。デスティネーション103は、CSR空間に対する1セグメント分のデータの書き込みが完了する毎に、そのデータを内部メモリに格納する。尚、CSR空間は、ISO/IEC 13213:1994規格に準拠している。
【0056】
更に、コントローラ101は、デスティネーション103のバッファサイズの問合せ、ソース102から転送される情報データの選択等、ソース102とデスティネーション103との間の通信を管理する。
【0057】
また、第1の実施の形態の通信プロトコルは、従来の通信プロトコルと同様に3つのフェーズ、即ち、コネクションフェーズ、伝送フェーズ、コネクションリリースフェーズから構成されている。ここで、第1の実施の形態におけるコネクションフェーズとコネクションリリースフェーズとは、従来の通信プロトコルにおける第1のフェーズ1204、第3のフェーズ1206と同様に実行することができる。従って、第1の実施の形態では、伝送フェーズについて詳細に説明する。
【0058】
以下、図1及び図2を用いて第1の実施の形態の伝送フェーズについて説明する。
図1は、第1の実施の形態の伝送フェーズについて詳細に説明するシーケンスチャートである。また、図2は、第1の実施の形態の伝送フェーズの手順について詳細に説明するフローチャートである。
【0059】
ステップS201において、コントローラ101は、デスティネーション103に対して、いくつかの通信パケットでAsynchronous転送される所定サイズのセグメントを受信するように指示する(104)。ここで、デスティネーション103は、コントローラ101からの指示に対してレスポンスを返す。
【0060】
ステップS202において、コントローラ101は、ソース102に対して、情報データを所定サイズのセグメントに分割し、更にそのセグメントをいくつかの通信パケットでAsynchronous転送するように指示する(105)。ここで、ソース102は、コントローラ101からの指示に対してレスポンスを返す。
【0061】
ステップS203において、コントローラ101からの指示の後、ソース102は、1セグメントデータを1つ以上のAsynchronousパケットにパケッタイズし、それらのAsynchronousパケットをデスティネーション103へ順次転送する(106)。
【0062】
ここで、各Asynchronousパケットには、デスティネーション103の具備する受信バッファの所定の領域を指定するオフセットアドレスが格納されている。例えば、各セグメントの最初のAsynchronousパケットには、コントローラ101により通知された受信バッファの先頭アドレスが格納されている。また、それ以降のAsynchronousパケットには、その受信バッファの所定の領域を順次指定するオフセットアドレスが格納されている。
【0063】
ステップS204において、1セグメント分のデータのAsynchronous転送が完了した後、ソース102は、1セグメント分のデータの転送の完了をコントローラ101に通知する(107)。ここで、ソース102は、コントローラ101からの指示を受信するまで、次のセグメントの転送を待機する。
【0064】
ステップS205において、また、デスティネーション103も同様に、1セグメント分のデータの受信が完了したことをコントローラ101に通知する(108)。
【0065】
ステップS206において、デスティネーション103は更に、次に受信するセグメントのために、新たに確保できる受信バッファのサイズをコントローラ101に通知する(109)。ここで、コントローラ101は、デスティネーション103より通知された新たなバッファサイズをCSR空間の所定の領域に格納して管理する。
【0066】
以上の手順により、1セグメント分のデータの転送が終了する。
次以降のセグメントの転送を開始する場合、コントローラ101、ソース102、デスティネーション103は、104〜109に示す手順を繰り返し行えばよい(ステップS207)。その際、コントローラ101は、1セグメントの転送が終了する毎に、デスティネーション103より通知された新たなバッファサイズをソース102に通知する。
【0067】
以上のように、第1の実施の形態では、1セグメント分の情報データの転送が完了する毎に、デスティネーション103がコントローラ101に対して新たなバッファサイズを通知するように制御することによって、各セグメントのデータ量を適応的に設定することができる。
【0068】
(第2の実施の形態)
上述した第1の実施の形態では、1セグメント分の情報データを受信する毎に、デスティネーション103が、次に受信するセグメントのために新たに確保できる受信バッファのサイズをコントローラ101に通知するように制御する通信プロトコルについて説明した。
【0069】
第2の実施の形態では、デスティネーション303が、次に受信するセグメントのために新たに確保できる受信バッファのサイズを直接ソース302に通知するように制御する通信プロトコルについて説明する。
【0070】
以下、第2の実施の形態の通信プロトコルを、図10に示す通信システムに適用した場合について説明する。ここで、第2の実施の形態におけるコントローラ301をTV1001、ソース302をDVCR1004、デスティネーション303をプリンタ1003とする。
【0071】
第2の実施の形態において、ソース302は、1オブジェクトの情報データ(例えば、画像データ、音声データ、グラフィックスデータ、テキストデータ等)を所定の大きさのセグメントに分割した後、そのセグメントを1つ以上のセグメントデータとしてAsynchronous転送する。
【0072】
また、デスティネーション303は、ソース302からAsynchronous転送された1つ以上のAsynchronousパケットを受信し、各Asynchronousパケットに含まれるセグメントデータを受信バッファに格納する。ここで、デスティネーション303の受信バッファは、デスティネーション303の具備するCSR(Control and Status Register )空間内に確保されている。
【0073】
セグメントデータは、各Asynchronousパケットに含まれるオフセットアドレスが指定するCSR空間内の所定の領域に対して書き込まれる。デスティネーション303は、CSR空間に対する1セグメント分のデータの書き込みが完了する毎に、そのデータを内部メモリに格納する。
【0074】
更に、コントローラ301は、デスティネーション303が通信開始時に確保できる受信バッファサイズの問合せ、ソース302から転送される情報データの選択等、ソース302とデスティネーション303との間の通信を管理する。
【0075】
また、第2の実施の形態の通信プロトコルは、従来の通信プロトコルと同様に3つのフェーズ、即ち、コネクションフェーズ、伝送フェーズ、コネクションリリースフェーズから構成されている。ここで、第2の実施の形態におけるコネクションフェーズとコネクションリリースフェーズとは、従来の通信プロトコルにおける第1のフェーズ1204、第3のフェーズ1206と同様に実行することができる。従って、第2の実施の形態では、伝送フェーズについて詳細に説明する。
【0076】
以下、図3及び図4を用いて第2の実施の形態の伝送フェーズについて説明する。
図3は、第2の実施の形態の伝送フェーズについて詳細に説明するシーケンスチャートである。また、図4は、第2の実施の形態の伝送フェーズの手順について詳細に説明するフローチャートである。
【0077】
ステップS401において、コントローラ301は、デスティネーション203に対して、いくつかの通信パケットでAsynchronous転送される所定サイズのセグメントを受信するように指示する(304)。ここで、デスティネーション303は、コントローラ301からの指示に対してレスポンスを返す。
【0078】
ステップS402において、コントローラ301は、ソース302に対して、情報データを所定サイズのセグメントに分割し、更にそのセグメントをいくつかの通信パケットでAsynchronous転送するように指示する(305)。ここで、ソース302は、コントローラ301からの指示に対してレスポンスを返す。
【0079】
ステップS403において、コントローラ301からの指示の後、ソース302は、1セグメントを1つ以上のAsynchronousパケットにパケッタイズし、それらのAsynchronousパケットをデスティネーション303へ順次転送する(306)。ここで、各Asynchronousパケットには、デスティネーション303の具備する受信バッファの所定の領域を指定するオフセットアドレスが格納されている。例えば、各セグメントの最初のAsynchronousパケットには、コントローラ301により通知された受信バッファの先頭アドレスが格納されている。また、それ以降のAsynchronousパケットには、その受信バッファの所定の領域を順次指定するオフセットアドレスが格納されている。
【0080】
ステップS404において、1セグメント分のデータのAsynchronous転送が完了した後、ソース302は、1セグメント分のデータの転送の完了をコントローラ301に通知する(307)。ここで、ソース302は、コントローラ301からの指示を受信するまで、次のセグメントの転送を待機する。
【0081】
ステップS405において、デスティネーション303も同様に、1セグメント分のデータの受信が完了したことをコントローラ301に通知する(308)。ステップS406において、デスティネーション303は更に、次に受信するセグメントのために、新たに確保できる受信バッファのサイズをソース302に通知する(309)。
【0082】
ステップS407において、ソース302は、この受信バッファのサイズをCSR空間の所定の領域に格納すると共に、この受信バッファのサイズを受信したことをコントローラ301に通知する(310)。この通知により、コントローラ301は、次のセグメントの転送の開始を指示することができる。
【0083】
以上の手順により、1セグメント分のデータの転送が終了する。次以降のセグメントの転送を開始する場合、コントローラ301、ソース302、デスティネーション303は、304〜310に示す手順を繰り返し行えばよい(ステップS408)。
【0084】
その際、ソース302は、1セグメントの転送が終了する毎に、デスティネーション303より通知される新たな受信バッファサイズを受信し、そのサイズに応じて次に転送すべきセグメントのサイズを決定する。以上のように、第2の実施の形態では、第1の実施の形態と同様に、1セグメント分の情報データの転送が完了する毎に、デスティネーション303がソース302に対して新たな受信バッファサイズを通知するように制御することによって、各セグメントのデータ量を適応的に設定することができる。
【0085】
また、第2の実施の形態では、全データの通信中に変更されたデスティネーション303の受信バッファサイズをコントローラ301に管理させる必要がなくなり、ソース302とデスティネーション303との間で管理させることができる。これにより、第1の実施の形態に比べてコントローラに対する負荷をより小さくすることができる。
【0086】
(第3の実施の形態)
上述した第2の実施の形態では、コントローラ301が、ソース302とデスティネーション303との間のコネクションを設定すると共に、各セグメントの転送の開始をコントローラ301により指示させるように制御する通信プロトコルについて説明した。
【0087】
第3の実施の形態では、コントローラ301が、ソース302とデスティネーション303との間のコネクションを設定した後、各セグメントの転送を、コントローラ301を介することなく、ソース302とデスティネーション303との間で制御する通信プロトコルについて説明する。
【0088】
以下、第3の実施の形態の通信プロトコルを、図10に示す通信システムに適用した場合について説明する。ここで、第3の実施の形態におけるコントローラ501をTV1001、ソース502をDVCR1004、デスティネーション503をプリンタ1003とする。
【0089】
第3の実施の形態において、ソース502は、1オブジェクトの情報データ(例えば、画像データ、音声データ、グラフィックスデータ、テキストデータ等)を所定の大きさのセグメントに分割した後、そのセグメントを1つ以上のセグメントデータとしてAsynchronous転送する。
【0090】
また、デスティネーション503は、ソース502からAsynchronous転送された1つ以上のAsynchronousパケットを受信し、各Asynchronousパケットに含まれるセグメントデータを受信バッファに格納する。ここで、デスティネーション503の受信バッファは、デスティネーション503の具備するCSR(Control and Status Register)空間内に確保されている。
【0091】
セグメントデータは、各Asynchronousパケットに含まれるオフセットアドレスが指定するCSR空間内の所定の領域に対して書き込まれる。デスティネーション503は、CSR空間に対する1セグメント分のデータの書き込みが完了する毎に、そのデータを内部メモリに格納する。
【0092】
更に、コントローラ501は、ソース502及びデスティネーション503に対するバッファ領域の開放の指示、ソース502に対するオブジェクトの転送開始の指示等、ソース502とデスティネーション503との間の通信を管理する。
【0093】
以下、第3の実施の形態の通信プロトコルについて説明する。
図5は、第3の実施の形態の通信プロトコルについて詳細に説明するシーケンスチャートである。また、図6は、第3の実施の形態の通信プロトコルの手順について詳細に説明するフローチャートである。
【0094】
第3の実施の形態の通信プロトコルは、従来の通信プロトコルと同様に3つのフェーズ、即ち、コネクションフェーズ、伝送フェーズ、コネクションリリースフェーズから構成されている。
【0095】
まず、コネクションフェーズについて説明する。
ステップS601において、コントローラ501は、ソース502とデスティネーション503との間のコネクションを設定し、デスティネーション503に対して受信バッファの開放と1オブジェクトの情報データの受信開始を指示する(504)。ここで、デスティネーション503は、コントローラ501からの指示に対してレスポンスを返す。
【0096】
ステップS602において、コントローラ501は、と共に、ソース502に対して送信バッファの開放と1オブジェクトの情報データの送信開始を指示する(505)。ここで、ソース502は、コントローラ501からの指示に対してレスポンスを返す。
【0097】
次に、伝送フェーズについて説明する。
ステップS603において、ソース502は、デスティネーション503に対して1オブジェクトの情報データのデータサイズを通知する(506)。デスティネーション503は、このデータサイズをCSR空間の所定の領域に格納する。
【0098】
ステップS604において、デスティネーション503は、受信バッファのサイズと1Asynchronousパケットにて受信可能なデータサイズ(即ち、ペイロードサイズ)を通信する(507)。ソース502は、この受信バッファサイズとペイロードサイズとをCSR空間の所定の領域に格納する。
【0099】
ステップS605において、ソース502は、受信バッファサイズとペイロードサイズとに応じて1オブジェクトの情報データを所定サイズのセグメントに分割し、そのセグメントを1つ以上のAsynchronousパケットにパケッタイズし、それらを順次デスティネーション503へ転送する(508)。1セグメントデータの転送完了後、ソース502は、デスティネーション503からの受信完了の通知があるまで次のセグメントの転送を待機する。
【0100】
ここで、各Asynchronousパケットには、デスティネーション503の具備する受信バッファの所定の領域を指定するオフセットアドレスが格納されている。例えば、各セグメントの最初のAsynchronousパケットには、ソース502により通知された受信バッファの先頭アドレスが格納されている。また、それ以降のAsynchronousパケットには、その受信バッファの所定の領域を順次指定するオフセットアドレスが格納されている。
【0101】
ステップS606において、1セグメント分のデータの受信後、デスティネーション503は、1セグメント分のデータの転送の完了をソース502に通知する(509)。
【0102】
ステップS607において、デスティネーション503は更に、次に受信するセグメントのために、新たに確保できる受信バッファのサイズをソース502に通知する(510)。ソース502は、この受信バッファサイズをCSR空間の所定の領域に格納すると共に、この受信バッファサイズとペイロードサイズとに応じて次に転送するセグメントの大きさを設定する。
【0103】
以上の手順により、1セグメント分のデータの転送が終了する。
次以降のセグメントの転送を開始する場合、コントローラ501、ソース502、デスティネーション503は、504〜510に示す手順を繰り返し行えばよい(ステップS608)。その際、ソース502は、1セグメントの転送が終了する毎に、デスティネーション503より通知される新たな受信バッファサイズを受信し、そのサイズに応じて次に転送すべきセグメントのサイズを決定する。1オブジェクトの情報データの転送が完了した後、ソース502は、転送の完了をコントローラ501に通知する(511)。
【0104】
また、デスティネーション503も、1オブジェクトの情報データの受信が完了したことをコントローラ501に通知する(512)。
以上の手順により伝送フェーズが終了する。
【0105】
コネクションリリースフェーズにおいて、コントローラ501は、ソース502及びデスティネーション503から通信完了の通知を受けた後、デスティネーション503の受信バッファを自己の管理下から解放する(513)し、ソース502の送信バッファを自己の管理下から解放する(514)。
【0106】
以上のように、第3の実施の形態では、1セグメント分の情報データの転送が完了する毎に、デスティネーション503がソース502に対して新たなバッファサイズを通知するように制御することによって、各セグメントのデータ量を適応的に設定することができる。
【0107】
また、第3の実施の形態では、第2の実施の形態と同様に、全データの通信中に変更されたデスティネーション503の受信バッファサイズをコントローラ501に管理させる必要がなくなり、ソース502とデスティネーション503との間で管理させることができる。これにより、第1の実施の形態に比べてコントローラに対する負荷をより小さくすることができる。
【0108】
更に、第3の実施の形態では、ソース502とデスティネーション503との間のコネクションの設定後、各セグメントのサイズ設定と各セグメントの転送とをソース502とデスティネーション503との間で制御し、実行することができる。これにより、第1、第2の実施の形態に比べてコントローラに対する負荷を減らし、通信手順をより簡素化することができる。
【0109】
(第4の実施の形態)
この第4の実施の形態では、上述した第3の実施の形態と同様に、コントローラ501が、ソース502とデスティネーション503との間のコネクションを設定した後、各セグメントデータの転送を、コントローラ501を介することなく、ソース502とデスティネーション503との間で制御する通信プロトコルについて説明する。
【0110】
以下、第4の実施の形態の通信プロトコルを、図10に示す通信システムに適用した場合について説明する。ここで、第4の実施の形態におけるコントローラ701をTV1001、ソース702をDVCR1004、デスティネーション703をプリンタ1003とする。
【0111】
第4の実施の形態において、ソース702は、1オブジェクトの情報データ(例えば、画像データ、音声データ、グラフィックスデータ、テキストデータ等)を所定のデータ量からなるセグメントに分割した後、そのセグメントを更に1つ以上のセグメントデータとしてAsynchronous転送する。
【0112】
また、デスティネーション703は、ソース702からAsynchronous転送された1つ以上のAsynchronousパケットを受信し、各Asynchronousパケットに含まれるセグメントデータを受信バッファに格納する。ここで、デスティネーション703の受信バッファは、デスティネーション703の具備するCSR(Control and Status Register)空間内に確保されている。
【0113】
各セグメントデータは、各Asynchronousパケットに含まれるオフセットアドレスが指定するCSR空間内の所定の領域に対して書き込まれる。デスティネーション703は、CSR空間に対する1セグメント分のデータの書き込みが完了する毎に、そのデータを内部メモリに格納する。
【0114】
以下、図8、及び図9を用いてソース702及びデスティネーション703の具備するバッファの構成について詳細に説明する。
図8、図9において、ソース702は、1つの受信バッファ、即ち「Source Buffer 1」を具備している。ここで、Source Buffer 1は、ソース702の具備するCSR空間の所定の領域に確保されている。
【0115】
また、図8、図9において、デスティネーション703は、2つの受信バッファ、即ち「Destination Buffer1」と「Destination Buffer2」とを具備している。ここで、Destination Buffer1とDestination Buffer2とは、デスティネーション703の具備するCSR空間の所定の領域に確保されている。
【0116】
図8、図9に示すSource Buffer 1、Destination Buffer1、Destination Buffer2のサイズは以下のように定義される。
まず、第4の実施の形態において、Destination Buffer1及びDestination Buffer2のサイズを以下のように定義する。
【0117】
Destination Buffer2=(max _rec )×N(N=1, 2, 3・・・ )…(式1)
ここで、Destination Buffer2は、1セグメントの大きさに対応している。また、Nは整数で、1セグメントを構成するセグメントデータの数に対応している。
【0118】
Destination Buffer1=max _rec …(式2)
ここで、「max _rec 」とは、IEEE1394-1995 規格に準拠したAsynchronous Writeトランザクションに基づいて受信されるAsynchronousパケットにおいて、デスティネーション703の受信可能なペイロードサイズの最大値を示す。尚、「max _rec 」のサイズは、デスティネーション703の対応する最大データ転送速度に応じて異なる。「max _rec 」は、以下のように定義される。
【0119】
max _rec =4Byte×2L (L=0,1,2…) …(式3)
ここで、Lは整数である。
【0120】
(式1)及び(式2)からDestination Buffer1とDestination Buffer2との関係は、以下のようになる。
【0121】
Destination Buffer2=(Destination Buffer 1) ×N (N=1,2,3…) …(式4)
また、第4の実施の形態において、Source Buffer 1を以下のように定義する。
【0122】
Source Buffer1=4Byte×2M (M=0,1,2…) …(式5)
(式4)において、Source Buffer 1とは、ソース702の送信可能なAsynchronousパケットのペイロードサイズの最大値を示す。尚、Source Buffer 1のサイズは、ソース702の対応する最大データ転送速度に応じて異なる。ここで、Mは整数である。
【0123】
(式3)及び(式5)からmax _rec とSource Buffer 1との関係は、以下の(式6)のようになる。
Source Buffer 1:max _rec =2M :2L …(式6)
式により、max _rec は、
【0124】
となる。
【0125】
(式7)及び(式1)からDestination Buffer2は、
Destination Buffer2=(Source Buffer 1)×{2(L-M) }×N…(式8)
となる。
【0126】
(式8)により、ソース702は、ペイロードのサイズがSource Buffer 1分となるAsynchronousパケットを、[ {2(L-M) }×N] 回送信することによってDestination Buffer2を一杯にすることができる。
【0127】
このように定義することにより、Destination Buffer2のサイズを、Source Buffer 1のサイズとDestination Buffer1のサイズとによって決定することができる。
【0128】
例えば、図8において、Source Buffer 1=Destination Buffer1(=max _rec )の場合、式からM=Lとなる。この場合、式により、Destination Buffer2のサイズは、Source Buffer 1のサイズのN倍となる。従って、Nの値を設定することにより、各セグメントの大きさを可変的に制御することができる。
【0129】
また、図8において、Source Buffer 1>Destination Buffer1(=max _rec )の場合、式より、M>Lとなる。この場合、ソース702は、Source Buffer 1のサイズをDestination Buffer1のサイズと等しくなるように設定する。これにより、Destination Buffer2のサイズは、Source Buffer 1のサイズのN倍となる。従って、Nの値を設定することにより、各セグメントの大きさを可変的に制御することができる。
【0130】
更に、図9において、Source Buffer 1<Destination Buffer1(=max _rec )の場合、式より、M<Lとなる。この場合、デスティネーション703は、Destination Buffer1のサイズをSource Buffer1のサイズと等しくなるように設定する。これにより、Destination Buffer2のサイズは、Source Buffer 1のサイズの[ {2(L-M) }×N] 倍となる。従って、M、N及びLの値を設定することにより、各セグメントの大きさを可変的に制御することができる。
【0131】
更に、第4の実施の形態において、コントローラ701は、ソース702及びデスティネーション703に対するバッファ領域の開放の指示、ソース702の具備するサブユニットに対するオブジェクトの転送準備の指示等、ソース702とデスティネーション703との間のコネクションを管理する。
【0132】
以下、第4の実施の形態の通信プロトコルについて説明する。
図7は、第4の実施の形態の通信プロトコルについて詳細に説明するシーケンスチャートである。
【0133】
第4の実施の形態の通信プロトコルは、従来の通信プロトコルと同様に3つのフェーズ、即ち、コネクションフェーズ、伝送フェーズ、コネクションリリースフェーズから構成されている。
まず、コネクションフェーズについて説明する。
【0134】
(1)図7に示す手順704の説明する。
コントローラ701は、デスティネーション703に対してアプリケーションCTS(Command Control Set )コマンド(図7に示す「SubUnit Appli Cmd 」)を発行し、デスティネーション703の具備するサブユニットに対して受信準備を行うように制御する。第4の実施の形態において、デスティネーション703はプリンタ1003である。従って、コントローラ701は、プリンタ1003の具備するプリンタユニットに対して、CTSコマンド形式のプリントコマンドを発行する。
【0135】
デスティネーション703は、図8、図9に示すように、Destination Buffer1とDestination Buffer2の2つの受信バッファを具備している。上述のアプリケーションCTSコマンドを受信したデスティネーション703は、Destination Buffer1とDestination Buffer2のイニシャライズ、及びサブユニットの具備するアプリケーションメモリのイニシャライズ等を行う。サブユニットが受信可能な状態であれば、コントローラ701に対してInterim レスポンス(図7に示す「SubUnit Appli Resp」)をCTSコマンド形式で返す。
【0136】
(2)図7に示す手順705の説明する。
次に、コントローラ701は、ソース702に対してアプリケーションCTSコマンド(図7に示す「SubUnit Appli Cmd 」)を発行し、ソース702の具備するサブユニットに対して送信準備を行うように制御する。第4の実施の形態において、ソース702は、DVCR1004である。従って、コントローラ701は、DVCR1004の具備するカムコーダユニットに対して、CTSコマンド形式の再生コマンドを発行する。
【0137】
デスティネーション703は、図8、図9に示すように、Source Buffer1を具備している。上述のアプリケーションCTSコマンドを受信したソース702は、Source Buffer 1のイニシャライズを行う。サブユニットが送信可能な状態であれば、コントローラ701に対してInterim レスポンス(図7に示す「SubUnit Appli Resp」)をCTSコマンド形式で返す。
【0138】
次に伝送フェーズについて説明する。
(3)図7に示す手順706の説明。
Interim レスポンスを送信したソース702は、サブユニットのアプリケーションメモリに格納されている1オブジェクトの情報データの送信準備を行い、その準備が完了したことをデスティネーション703に対して通知する。
【0139】
IEEE1394-1995 規格に準拠したAsynchronous Writeトランザクションを用いて、送信準備の完了を通知する場合、ソース702は、デスティネーション703の具備する所定のレジスタに対して送信準備の完了を示す「Ready to send 」情報を書き込む。尚、「Ready to send 」情報には、上述のMの値が含まれている。
【0140】
ここで、所定のレジスタは、デスティネーション703の具備するCSR空間内の所定のアドレスに設けられている。従って、ソース702は、その所定のアドレスを指定したAsynchronous Writeトランザクションを用いて「Ready to send 」情報の書き込みを行う。
【0141】
尚、第4の実施の形態では、所定のレジスタに「Ready to send」情報を書き込む処理について説明したが、該レジスタの所定のフィールドに「Ready to send」を示す特定のフラグを設けて、該フラグを書き換えるように処理してもよい。
【0142】
(4)図7に示す手順707の説明。
Interimレスポンスを送信し、ソース702から「Ready to send 」情報を受信したデスティネーション703は、ソース702の具備する所定のレジスタに対して「Ready to receive」情報とDestination Buffer1、2に関する情報(図7に示す「Buffer Info 」)とを書き込む。
【0143】
ここで、Destination Buffer1に関する情報とは、上述のLの値と上述のMの値とによって設定されるデスティネーションの受信可能なペイロードサイズの最大値であり、セグメントデータのサイズを示す情報である。また、Destination Buffer2に関する情報とは、上述のNの値により設定されるセグメントのサイズを示す情報である。ここで、セグメントのサイズは、セグメントデータのサイズのN倍になるように設定される。また、デスティネーション703は、Nの値を各セグメントによって可変的に設定することができる。
【0144】
ここで、所定のレジスタは、ソース702の具備するCSR空間内の所定のアドレスに設けられている。従って、デスティネーション703は、その所定のアドレスを指定したAsynchronous Writeトランザクションを用いてこれらの情報の書き込みを行う。
【0145】
(5)図7に示すData Transfer708についての説明。
ソース702は、デスティネーション703からの「Ready to receive」情報を受信した後、Destination Buffer1、2に関する情報を用いて、1オブジェクトの情報データをN個のセグメントデータからなるセグメントに分割する。
【0146】
ソース702は、各セグメントデータを順次Source Buffer 1に格納した後、Asynchronous Writeトランザクションを用いて順次転送する。
ここで、各セグメントデータは、CSR空間内に確保されたDestination Buffer1に連続的に書き込まれる。Destination Buffer1に書き込まれたセグメントデータは、次のセグメントデータが受信されるまでに、Destination Buffer2に格納される。各セグメントデータの送信は、デスティネーション703により確保されたDestination Buffer2が一杯になるまで実行される。
【0147】
(6)図7に示す手順709の説明。
ソース702は、N個のセグメントデータを送信した後、図7に示す「End of Segment」情報をデスティネーション703に送信する。この「End of Segment」情報は、Asynchronous Writeトランザクションを用いて、「Ready to send」情報を書き込むレジスタに書き込まれる。
【0148】
ここで、1オブジェクトの情報データを構成する全てのセグメントデータの送信が完了した場合、ソース702は、Destination Buffer2の全てが満たされていなくても、図7に示す「End of Data 」情報をデスティネーション703に送信する。この「End of Data 」情報は、Asynchronous Writeトランザクションを用いて、「Ready to send 」情報を書き込むレジスタに書き込まれる。
【0149】
(7)図7に示す手順710の説明。
デスティネーション703及びそのサブユニットは、「End of Segment」情報を受信すると、1セグメント分の情報データ(N個のセグメントデータからなる)の送信が終了したことを認識する。
【0150】
デスティネーション703は、Destination Buffer2に格納されたN個のセグメントデータを、サブユニット内部のアプリケーションメモリ領域に格納する。その後、デスティネーション703は、Asynchronous Writeトランザクションを用いて、「Ready to receive」情報をソース702の具備する所定のレジスタに対して書き込む。
【0151】
「Ready to receive」情報を受信したソース702は、次のセグメントの送信準備が完了した後、再び、図7の706〜710を実行し、Destination Buffer2分のデータを送信する。
【0152】
また、「End of Data 」情報を受信した場合、デスティネーション703は、1オブジェクトの情報データを構成する全てのセグメントデータの送信が終了したことを認識する。その後、デスティネーション703は、図7に示す「End of Conf 」情報をソース702に通知する。
この「End of Data 」情報は、Asynchronous Writeトランザクションを用いて、「Ready to send」情報を書き込むレジスタに書き込まれる。
以上の手順により伝送フェーズが終了する。
また、コネクションリリースフェーズについて説明する。
【0153】
(8)図7に示す手順711の説明。
「End of Conf 」情報を受信したソース702は、コントローラ701に対して、1オブジェクトの情報データを構成する全てのセグメントデータの送信が終了したことを通知する。この通知は、CTSコマンド形式の「Accepted response」を用いて行われる。
【0154】
(9)図7に示す手順712の説明。
「End of Conf 」情報を送信したデスティネーション703は、コントローラ701に対して、1オブジェクトの情報データを構成する全てのセグメントデータの受信が終了したことを通知する。この通知は、CTSコマンド形式の「Accepted response 」を用いて行われる。
【0155】
以上のように、第4の実施の形態では、Source Buffer 1、Destination Buffer1、Destination Buffer2の関係を定義した。これにより、デスティネーション703は、ソース702から通知されるMの値と、N及びLの値によって各セグメントのサイズを可変的に設定することができる。また、セグメントのサイズを決定するための演算を容易にすることができる。
【0156】
また、第4の実施の形態では、1セグメント分の情報データの転送が完了する毎に、デスティネーション703がソース702に対して新たなバッファサイズを通知するように制御することによって、各セグメントのデータ量を適応的に設定することができる。
【0157】
また、第4の実施の形態では、第3の実施の形態と同様に、全データの通信中に変更されたデスティネーション703の受信バッファサイズをコントローラ701に管理させる必要がなくなり、ソース702とデスティネーション703との間で管理させることができる。これにより、第1の実施の形態に比べてコントローラに対する負荷をより小さくすることができる。
【0158】
更に、第4の実施の形態では、ソース702とデスティネーション703との間のコネクションの設定後、各セグメントのサイズ設定と各セグメントの転送とをソース702とデスティネーション703との間で制御し、実行することができる。これにより、第1、第2の実施の形態に比べてコントローラに対する負荷を減らし、通信手順をより簡素化することができる。
【0159】
また、第4の実施の形態によれば、各セグメントの大きさをデスティネーション703の受信可能なペイロードサイズの整数倍に設定することができる。これにより、ソースから送出されるパケットの数を管理することによって、各セグメント分のデータの送信を管理でき、ソース側の送信制御が容易になる。
【0160】
更に、第4の実施の形態によれば、デスティネーションの受信バッファのサイズを、デスティネーションの受信可能なペイロードサイズの整数倍に設定することができる。これにより、デスティネーションにおいて確保される受信バッファを有効に利用できるとともに、各セグメントデータを書き込むアドレスの制御が容易になる。
【0161】
(他の実施の形態)
上述の各実施の形態は、以下のように実現することも可能である。
例えば、上述した実施の形態の機能を実現するソフトウェアのプログラムコードを記録した記録媒体を、本実施の形態のシステム或いは装置の具備する制御部(マイクロコンピュータを含む)に供給するように構成することもできる。
【0162】
そして、本実施の形態のシステム或いは装置の具備する制御部が、該記録媒体に格納されたプログラムコードを読み出し、上述した実施の形態の機能を実現するようにシステム或いは装置の動作を制御するように構成しても本発明の実施の形態を実現することができる。
【0163】
例えば、第1の実施の形態の図1、第2の実施の形態の図3、第3の実施の形態の図5、第4の実施の形態の図7に示した処理手順及び機能を実現するプログラムコードを格納した記録媒体を図7に示す各ノードの制御部706に供給する。そして、各ノードの制御部706が、その記録媒体に格納されたプログラムコードを読み出し、各実施の形態の機能を実現するように、図7に示す各ノードの処理回路を動作させるようにしてもよい。
【0164】
この場合、記録媒体から読み出されたプログラムコード自体が上述した実施の形態の機能を実現することになり、そのプログラムコードを記憶した記録媒体は、本発明の一部の構成要件になる。
【0165】
プログラムコードを供給するための記録媒体としては、例えば、フロッピディスク、ハードディスク、光ディスク、光磁気ディスク、CD−ROM、CD−R、磁気テープ、不揮発性のメモリカード、ROMなどを用いることができる。
【0166】
また、制御部上で稼動しているOS(オペレーティングシステム)或いはアプリケーションソフト等が、記録媒体より読み出したプログラムコードの指示に基づき、本実施の形態のシステム或いは装置の動作を制御することにより、上述した実施の形態の機能を実現する場合も本発明に含まれることは言うまでもない。
【0167】
更に、記録媒体から読み出されたプログラムコードが、制御部に接続された機能拡張ボード或いは機能拡張ユニットの具備するメモリに書き込まれた後、そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットの具備する制御部が本実施の形態のシステム或いは装置の動作を制御することにより、上述した実施の形態の機能が実現される場合も本発明に含まれることは言うまでもない。尚、本発明はその精神、またはその主要な特徴から逸脱することなく、様々な形で実施することができる。
【0168】
例えば、本実施の形態の伝送フェーズでは、IEEE1394-1995 規格に準拠したAsynchronous Writeトランザクションを用いて、1オブジェクトの情報データの転送を実行する場合について説明したが、それに限るものではない。例えば、IEEE1394.a規格に準拠したAsynchronous Streamsパケットを用いたトランザクションにより1オブジェクトの情報データを送信するように構成してもよい。尚、Asynchronous Streamsパケットの構成は、IEEE1394-1995規格に準拠したIsochronousパケットと同じ構成である。
【0169】
この場合、各セグメントデータを送信するパケットは、特定の宛先に対して1対1に送信されるものではなく、所定のチャネル番号を指定し、ブロードキャストされるものである。従って、上述の実施の形態はあらゆる点おいて単なる例示に過ぎず、限定的に解釈してはならない。
【0170】
【発明の効果】
以上のように、本発明に係るデータ通信システム及びデータ通信装置によれば、送信すべきデータを複数のセグメントに分割し、当該セグメントを複数のセグメントデータに分割し、当該複数のセグメントデータを受信側データ通信装置に送信する場合において、当該セグメントのデータ量を適切に制御することができる。
【図面の簡単な説明】
【図1】本発明に係る第1の実施の形態の伝送フェーズについて詳細に説明するシーケンスチャートである。
【図2】第1の実施の形態の伝送フェーズの手順について詳細に説明するフローチャートである。
【図3】第2の実施の形態の伝送フェーズについて詳細に説明するシーケンスチャートである。
【図4】第2の実施の形態の伝送フェーズの手順について詳細に説明するフローチャートである。
【図5】第3の実施の形態の通信プロトコルについて詳細に説明するシーケンスチャートである。
【図6】第3の実施の形態の通信プロトコルの手順について詳細に説明するフローチャートである。
【図7】第4の実施の形態の通信プロトコルについて詳細に説明するシーケンスチャートである。
【図8】ソース702及びデスティネーション703の具備するバッファの構成について説明する図である。
【図9】ソース及びデスティネーションの具備するバッファの構成について説明する図である。
【図10】従来の通信システムの構成を示す図である。
【図11】従来の通信システムの具備するデータ転送方式について説明する図である。
【図12】従来の通信プロトコルについて説明するシーケンスチャートである。
【図13】ソース1202からAsynchronous転送される情報データとデスティネーション1203の受信バッファとの関係を説明する図である。
【図14】図12における第2のフェーズについて詳細に説明するシーケンスチャートである。
【符号の説明】
101 コントローラ
102 ソース
103 デスティネーション
Claims (7)
- 受信側データ通信装置と、
送信すべきデータを複数のセグメントに分割し、前記セグメントを複数のセグメントデータに分割し、前記複数のセグメントデータを前記受信側データ通信装置に送信する送信側データ通信装置とを有するデータ通信システムであって、
前記受信側データ通信装置は、
前記送信側データ通信装置から送信された前記セグメントデータを格納する第1の受信バッファと、
前記第1の受信バッファに格納された前記セグメントデータを格納する第2の受信バッファと、
前記送信側データ通信装置が前記セグメントデータのサイズと前記セグメントのサイズとを決定するのに必要な前記第1の受信バッファのサイズを、前記受信側データ通信装置の最大データ転送速度に対応するペイロードサイズを用いて決定し、前記第2の受信バッファのサイズを、前記第1の受信バッファのサイズを用いて決定する第1の決定手段と、
前記第1の決定手段により決定された前記第1の受信バッファのサイズを示す情報を前記送信側データ通信装置に送信する送信手段とを有し、
前記送信側データ通信装置は、
前記受信側データ通信装置から前記第1の受信バッファのサイズを示す情報を受信する受信手段と、
前記セグメントデータのサイズと前記セグメントのサイズとを、前記第1の受信バッファのサイズを用いて決定する第2の決定手段とを有する
ことを特徴とするデータ通信システム。 - 前記第1の決定手段は、前記第2の受信バッファのサイズを、前記第1の受信バッファのサイズだけでなく、前記送信側データ通信装置の最大データ転送速度に対応するペイロードサイズを用いて決定することを特徴とする請求項1に記載のデータ通信システム。
- 前記送信側データ通信装置と、前記受信側データ通信装置との間のコネクションを管理するコントローラをさらに有することを特徴とする請求項1又は2に記載のデータ通信システム。
- 送信すべきデータを複数のセグメントに分割し、前記セグメントを複数のセグメントデータに分割し、前記複数のセグメントデータを送信する送信側データ通信装置から送信された前記複数のセグメントデータを受信するデータ通信装置であって、
前記送信側データ通信装置から送信された前記セグメントデータを格納する第1の受信バッファと、
前記第1の受信バッファに格納された前記セグメントデータを格納する第2の受信バッファと、
前記送信側データ通信装置が前記セグメントデータのサイズと前記セグメントのサイズとを決定するのに必要な前記第1の受信バッファのサイズを、前記データ通信装置の最大データ転送速度に対応するペイロードサイズを用いて決定し、前記第2の受信バッファのサイズを、前記第1の受信バッファのサイズを用いて決定する決定手段と、
前記決定手段により決定された前記第1の受信バッファのサイズを示す情報を前記送信側データ通信装置に送信する送信手段とを有することを特徴とするデータ通信装置。 - 前記決定手段は、前記第2の受信バッファのサイズを、前記前記第1の受信バッファのサイズだけでなく、前記送信側データ通信装置の最大データ転送速度に対応するペイロードサイズを用いて決定することを特徴とする請求項4に記載のデータ通信装置。
- 送信すべきデータを複数のセグメントに分割し、前記セグメントを複数のセグメントデータに分割し、前記複数のセグメントデータを受信側データ通信装置に送信するデータ通信装置であって、
前記データ通信装置から送信された前記セグメントデータを格納する第1の受信バッフ ァと、前記第1の受信バッファに格納された前記セグメントデータを格納する第2の受信バッファと、前記データ通信装置が前記セグメントデータのサイズと前記セグメントのサイズとを決定するのに必要な前記第1の受信バッファのサイズを、前記受信側データ通信装置の最大データ転送速度に対応するペイロードサイズを用いて決定し、前記第2の受信バッファのサイズを、前記第1の受信バッファのサイズを用いて決定する第1の決定手段と、前記第1の決定手段により決定された前記第1の受信バッファのサイズを示す情報を前記データ通信装置に送信する送信手段とを有する前記受信側データ通信装置から、前記第1の受信バッファのサイズを示す情報を受信する受信手段と、
前記セグメントデータのサイズと前記セグメントのサイズとを、前記第1の受信バッファのサイズを用いて決定する第2の決定手段とを有する
ことを特徴とするデータ通信装置。 - 前記第1の決定手段は、前記第2の受信バッファのサイズを、前記第1の受信バッファのサイズだけでなく、前記送信側データ通信装置の最大データ転送速度に対応するペイロードサイズを用いて決定することを特徴とする請求項6に記載のデータ通信装置。
Priority Applications (6)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP11972798A JP4046846B2 (ja) | 1998-04-28 | 1998-04-28 | データ通信システム及びデータ通信装置 |
US09/253,783 US7590133B2 (en) | 1998-02-24 | 1999-02-22 | Data communication system, data communication method, and data communication apparatus |
EP99301305A EP0984601A3 (en) | 1998-02-24 | 1999-02-23 | Data communication system and method for connection setup |
KR1019990006186A KR100294960B1 (ko) | 1998-02-24 | 1999-02-24 | 데이타 통신 시스템, 데이타 통신 방법, 및 데이타 통신 장치 |
CNB991056108A CN1184787C (zh) | 1998-02-24 | 1999-02-24 | 数据通信系统,数据通信方法和数据通信装置 |
MYPI99000653A MY135481A (en) | 1998-02-24 | 1999-02-24 | Data communication system, data communication method, and data communication apparatus |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP11972798A JP4046846B2 (ja) | 1998-04-28 | 1998-04-28 | データ通信システム及びデータ通信装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH11313124A JPH11313124A (ja) | 1999-11-09 |
JP4046846B2 true JP4046846B2 (ja) | 2008-02-13 |
Family
ID=14768639
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP11972798A Expired - Fee Related JP4046846B2 (ja) | 1998-02-24 | 1998-04-28 | データ通信システム及びデータ通信装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP4046846B2 (ja) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2001320376A (ja) * | 2000-05-02 | 2001-11-16 | Fujitsu Ltd | 電子機器の制御方法および半導体装置 |
CA2628235A1 (en) * | 2005-11-07 | 2007-05-10 | Lg Electronics Inc. | Near field communication host controller interface |
TWI767997B (zh) * | 2017-03-23 | 2022-06-21 | 日商索尼半導體解決方案公司 | 通信裝置、通信方法、程式及通信系統 |
CN112051974B (zh) * | 2019-06-06 | 2023-12-15 | 汉朔科技股份有限公司 | 电子价签信息传输方法及系统、电子价签、服务器 |
-
1998
- 1998-04-28 JP JP11972798A patent/JP4046846B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JPH11313124A (ja) | 1999-11-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7590133B2 (en) | Data communication system, data communication method, and data communication apparatus | |
US6717694B1 (en) | Data transmission apparatus, system and method, and recording medium | |
EP0959590B1 (en) | Data communication system operating at maximum data rate | |
US7203787B2 (en) | Information processing apparatus and method that utilizes stored information about a mountable device | |
EP0939529B1 (en) | Destination node, data communication system, method of controlling a destination node and method of operating a data communication system | |
JP2001306428A (ja) | ネットワーク機器、ネットワークシステム、通信方法及び記録媒体 | |
JP2000358033A (ja) | データ通信システム及びデータ通信方法 | |
AU736169B2 (en) | Electronic apparatus, information transmitting method thereof, and storing medium | |
US7002964B1 (en) | Communication system, method for a communication system and controller for a communication system | |
JP3630971B2 (ja) | データ通信方法、装置、システム、及び記憶媒体 | |
KR100311707B1 (ko) | 데이타 통신 시스템, 데이타 통신 방법, 데이타 통신 장치 및 디지탈 인터페이스 | |
JP4046846B2 (ja) | データ通信システム及びデータ通信装置 | |
JPH10341247A (ja) | データ送信装置、データ受信装置、データ伝送システム及びデータ伝送方法 | |
EP1017236A2 (en) | Transmission managing apparatus, information processing apparatus and information transmitting system | |
JP4428750B2 (ja) | データ通信システム | |
JP3774540B2 (ja) | データ転送方法及び画像処理システムと装置 | |
EP1133105A2 (en) | Buffer allocation method for 1394 serial bus | |
JP3943722B2 (ja) | データ転送装置、データ転送システムおよびその方法、画像処理装置、並びに、記録媒体 | |
JP2001075756A (ja) | 情報処理装置及び情報処理システム及びそれらの方法 | |
JP4026979B2 (ja) | データ通信システム | |
JP3890124B2 (ja) | データ通信システム、データ通信方法、データ通信ノードおよび記録媒体 | |
JP3647328B2 (ja) | 画像処理装置及びその制御方法並びに画像処理システム | |
JP3897773B2 (ja) | 通信方法及び通信装置 | |
JP4058156B2 (ja) | データ処理方法、データ処理装置、プリンタ、及び記憶媒体 | |
JP3678244B2 (ja) | 電子機器及び通信制御方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20050427 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20070823 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20070828 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20071029 |
|
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: 20071113 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20071121 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20101130 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: 20101130 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20111130 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20121130 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20131130 Year of fee payment: 6 |
|
LAPS | Cancellation because of no payment of annual fees |