(57)【要約】【課題】  単一の転送元から複数の転送先へ同時並列的にデータを転送する場合において、信頼性が高くかつ効率のよい転送を実現する。【解決手段】  ＰＣ１から複数のプリンタ２へと同時並列的にデータを転送することが可能なアイソクロナス転送と、ＰＣ１から単一のプリンタ２へデータを転送するアシンクロナス転送とを用いてこれらの装置間で通信を行う場合において、ＰＣ１が、アイソクロナス転送によって複数のプリンタ２にデータを転送し、かつそのプリンタ２の少なくとも１つで受信エラーが発生した場合に、受信エラーが発生したプリンタ２の数に応じてアイソクロナス転送を用いるかアシンクロナス転送を用いるかを選択し、その選択した通信方式を用いて、受信エラーが発生したデータをその受信エラーが発生したプリンタ２に再転送する。【選択図】        図１
2004153803.tif 000002
【特許請求の範囲】
【請求項１】
単一の一の転送元から複数の他の転送先へ同時並列的にデータを転送する第１の通信手段と、
単一の一の転送元から単一の他の転送先へとデータを転送する第２の通信手段と、
前記第１の通信手段により複数の転送先にデータを転送した結果当該複数の転送先のうちの少なくとも１の転送先から当該データ受信が正常に行われなかった旨を示す受信エラー情報を受信した際、前記第１の通信手段及び前記第２の通信手段のうちから該受信エラー情報を発信した転送先の数に応じて選択された一の通信手段を用いて前記受信が正常に行われなかったデータを前記受信エラー情報を発信した転送先に再転送する再転送手段とよりなるデータ通信装置。
【請求項２】
前記第１の通信手段はマルチキャスト方式を使用する構成を有し、前記第２の通信手段はユニキャスト方式を適用する構成を有してなる請求項１に記載のデータ通信装置。
【請求項３】
前記マルチキャスト方式としてアイソクロナス転送を適用し、前記ユニキャスト方式としてアシンクロナス転送方式を適用する構成とされてなる請求項２に記載のデータ通信装置。
【請求項４】
前記再転送手段によってなされる前記第１の通信手段及び前記第２の通信手段のうちから一の通信手段を選択する際の選択方法は、前記受信エラー情報の受信以降前記受信が正常に行なわれなかったデータの再転送が完了するまでの間に前記複数の転送先との間で実施される通信の回数の合計がより少なく済む側の通信手段を選択する方法を採る構成とされてなる請求項１乃至３のうちの何れか一項に記載のデータ通信装置。
【請求項５】
前記複数の転送先に転送するデータは画像データよりなる請求項１乃至４のうちの何れか一項に記載のデータ通信装置。
【請求項６】
単一の一の転送元から複数の他の転送先へ同時並列的にデータを転送する第１の通信手段と、単一の一の転送元から単一の他の転送先へとデータを転送する第２の通信手段とによって転送されたデータを受信するデータ通信装置であって、
前記第１の通信手段により転送されたデータを受信したが正常に受信されなかった際、その旨を示す所定の再転送要求を発信し、前記第１の通信手段及び前記第２の通信手段のうちから所定の再転送要求を発信した転送先の数に応じて選択された一の通信手段を用いて再転送された当該正常に受信されなかったデータを受信する再転送受信手段とよりなるデータ通信装置。
【請求項７】
前記第１の通信手段ではマルチキャスト方式が適用され、前記第２の通信手段ではユニキャスト方式が適用される構成とされてなる請求項６に記載のデータ通信装置。
【請求項８】
前記マルチキャスト方式としてアイソクロナス転送方式が適用され、前記ユニキャスト方式としてアシンクロナス転送方式が適用された構成とされてなる請求項７に記載のデータ通信装置。
【請求項９】
前記複数の転送先に転送されるデータは画像データよりなる請求項６乃至８のうちの何れか一項に記載のデータ通信装置。
【請求項１０】
単一の一の転送元から複数の他の転送先へ同時並列的にデータを転送する第１の通信手段と、単一の一の転送元から単一の他の転送先へとデータを転送する第２の通信手段とよりなる少なくとも一のデータ通信装置と、
該データ通信装置から転送されるデータを受信する手段と該受信手段によるデータの受信が正常に行われなかった場合にそのデータの転送元に対してその旨を示す受信エラー情報を送信する手段とよりなり、前記データ通信装置からのデータの転送先となりうる複数の受信装置とよりなるデータ通信システムであって、
前記データ通信装置は更に、前記第１の通信手段により前記複数の受信装置にデータを転送した結果当該複数の受信装置のうちの少なくとも一の受信装置から前記受信エラー情報を受信した際、前記第１の通信手段及び前記第２の通信手段のうちから該受信エラー情報を送信した受信装置の数に応じて選択された一の通信手段を用いて前記受信が正常に行われなかったデータを前記受信エラー情報を発信した受信装置に再転送する再転送手段よりなるデータ通信システム。
【請求項１１】
前記第１の通信手段ではマルチキャスト方式が適用され、前記第２の通信手段ではユニキャスト方式が適用される構成とされてなる請求項１０に記載のデータ通信システム。
【請求項１２】
前記マルチキャスト方式としてアイソクロナス転送方式が適用され、前記ユニキャスト方式としてアシンクロナス転送方式が適用される構成とされてなる請求項１１に記載のデータ通信装置。
【請求項１３】
前記再転送手段によってなされる前記第１の通信手段及び前記第２の通信手段のうちから一の通信手段を選択する際の選択方法は、前記データ通信装置による前記受信エラー情報の受信以降前記受信が正常に行なわれなかったデータの再転送が完了するまでの間に前記データ通信装置と前記複数の受信装置との間で実施される通信の回数の合計がより少なく済む側の通信手段を選択する方法を採る構成とされてなる請求項１０乃至１２のうちの何れか一項に記載のデータ通信システム。
【請求項１４】
前記複数の受信装置に転送されるデータは画像データよりなる請求項１０乃至１３のうちの何れか一項に記載のデータ通信装置。
【請求項１５】
単一の一の転送元から複数の他の転送先へ同時並列的にデータを転送する第１の通信方式と、単一の一の転送元から単一の他の転送先へとデータを転送する第２の通信方式とを用いて複数の装置間でのデータ通信を行うデータ通信方法であって、
ある転送元が前記第１の通信方式によって複数の転送先にデータを転送した結果当該複数の転送先のうちの少なくとも一の転送先から受信が正常に行われなかった旨を示す受信エラー情報を受信した際、前記第１の通信方式と前記第２の通信方式とのうちから該受信エラー情報を発信した転送先の数に応じて選択された一の通信方式を用いて前記受信が正常に行われなかったデータを前記受信エラー情報を発信した転送先に再転送する段階よりなるデータ通信方法。
【請求項１６】
前記第１の通信方式としてはマルチキャスト方式が適用され、前記第２の通信方式としてはユニキャスト方式が適用されてなる請求項１５に記載のデータ通信方法。
【請求項１７】
前記マルチキャスト方式としてはアイソクロナス転送が適用され、前記ユニキャスト方式としてはアシンクロナス転送方式が適用されてなる請求項１６に記載のデータ通信方法。
【請求項１８】
前記再転送段階によってなされる前記第１の通信方式及び前記第２の通信方式のうちから一の通信方式を選択する際の選択方法は、前記受信エラー情報の受信以降前記受信が正常に行なわれなかったデータの再転送が完了するまでの間に前記転送元と前記複数の転送先との間で実施される通信の回数の合計がより少なくて済む側の通信方式を選択する方法を採る構成とされてなる請求項１５乃至１７のうちの何れか一項に記載のデータ通信方法。
【請求項１９】
前記複数の転送先に転送するデータは画像データよりなる請求項１５乃至１８のうちの何れか一項に記載のデータ通信方法。
【請求項２０】
データ通信を行なう通信装置を制御するコンピュータに、単一の一の転送元から複数の他の転送先へ同時並列的にデータを転送する第１の通信方式と、単一の一の転送元から単一の他の転送先へとデータを転送する第２の通信方式とを用いて複数の装置間でのデータ通信を実行させる命令よりなるデータ通信制御プログラムであって、
前記コンピュータに、ある転送元が前記第１の通信方式によって複数の転送先にデータを転送した結果当該複数の転送先のうちの少なくとも一の転送先から受信が正常に行われなかった旨を示す受信エラー情報を受信した際、前記第１の通信方式と前記第２の通信方式とのうちから該受信エラー情報を発信した転送先の数に応じて選択された一の通信方式を用いて前記受信が正常に行われなかったデータを前記受信エラー情報を発信した転送先に再転送する段階を実行させる命令よりなるデータ通信プログラム。
【請求項２１】
前記第１の通信方式としてはマルチキャスト方式が適用され、前記第２の通信方式としてはユニキャスト方式が適用されてなる請求項２０に記載のデータ通信プログラム。
【請求項２２】
前記マルチキャスト方式としてアイソクロナス転送方式が適用され、前記ユニキャスト方式としてアシンクロナス転送方式が適用されてなる請求項２１に記載のデータ通信プログラム。
【請求項２３】
前記再転送段階によってなされる前記第１の通信方式及び前記第２の通信方式のうちから一の通信方式を選択する際の選択方法は、前記受信エラー情報の受信以降前記受信が正常に行なわれなかったデータの再転送が完了するまでの間に前記転送元と前記複数の転送先との間で実施される通信の回数の合計がより少なくて済む側の通信方式を選択する方法を採る構成とされてなる請求項２０乃至２２うちの何れか一項に記載のデータ通信プログラム。
【請求項２４】
前記複数の転送先に転送するデータは画像データよりなる請求項２０乃至２３のうちの何れか一項に記載のデータ通信プログラム。
【請求項２５】
請求項２０乃至２４のうちの何れか一項に記載のデータ通信プログラムが記録されたコンピュータ読取り可能な情報記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、単一の一の転送元から複数の他の転送先へ同時並列的にデータを転送する方式と、単一の一の転送元から単一の他の転送先へとデータを転送する方式との２方式により他の装置と通信を行うデータ通信装置に係る。特に、本発明は、ＩＥＥＥ（Ｉｎｓｔｉｔｕｔｅ  ｏｆ  Ｅｌｅｃｔｒｉｃａｌ  ａｎｄ  Ｅｌｅｃｔｒｏｎｉｃ  Ｅｎｇｉｎｅｅｒｓ）１３９４インタフェース、ＵＳＢ（Ｕｎｉｖｅｒｓａｌ  Ｓｅｒｉａ  Ｂｕｓ）インタフェース等を用いた通信手段を有するデータ通信装置に関する。また本発明は、このようなデータ通信装置とその転送先となる装置とを用いて構成したデータ通信システム、このようなデータ通信装置によってデータ通信を行う際に用いるデータ通信方法、当該通信方法を、データ通信装置を構成するコンピュータに実施させるためのデータ通信プログラム、このプログラムを記録したコンピュータ読取り可能な情報記録媒体等にも関する。
【背景技術】
【０００２】
近年、動画や音声等のリアルタイム性の要求されるデータを転送するため、アイソクロナス転送モードと称される、データ転送の帯域を保証したモード（定められた期間内に、予め確保された帯域内でのデータの送信を保証するモード）を有する通信規格が制定されている。これは例えば、ＩＥＥＥ  Ｓｔｄ  １３９４規格やＵＳＢ規格であり、これらの規格に準拠した通信インタフェースは広く用いられている。
【０００３】
このアイソクロナス転送は一般に、データの受信確認を行う非同期転送（アシンクロナス転送）に比べて高いスループットを得やすく、大量のデータを定められた時間内で転送する用途に適している。そのため、動画や音声などの所謂マルチメディアデータの転送用途の他、印刷装置やスキャナ等における画像データの転送にも使用することが可能である。
【０００４】
しかしながら、上記アイソクロナス転送モードでは、帯域幅が保証される代わりにデータの受信確認が行われない。そのため、何らかの原因によりデータの欠落が発生しても、再送信等は行われない。この特性は、動画や音声などでは殆ど問題にならない。しかるに、印刷用途に用いられる静止画データ、ソフトウェアプログラムデータ等、僅少でも誤差が許されない性質のデータでは致命的な問題となりうる。このため何らかの対処が必要である。
【０００５】
この問題を解決するための技術として、例えば特許文献１に開示されたものがある。これは、単一のアイソクロナスチャネルを時分割することによりプリンタとプリンタコントローラとの間の双方向通信を可能にする。この構成によれば、エラーが発生した場合にデータの再送信を行うことができる。
【０００６】
また、特許文献２に開示された技術によれば、印刷データをアイソクロナス転送によってホストから印刷装置に転送し、エラーが発生した場合にはアシンクロナス転送によってホストにその旨を伝えてデータを再転送させる。
【０００７】
又特許文献３に開示された技術では、データ転送をアイソクロナス転送によって行い、エラーが発生した場合には再送要求をアシンクロナス転送によって行い、これに応じてデータをアイソクロナス転送によって転送する。
【０００８】
これらの技術によれば、アイソクロナス転送によって高速なデータ転送を行うことができる。更に、エラーが発生した場合でもリカバリが可能であり、信頼性の高いデータ転送を行うことができる。
【０００９】
ところで、アイソクロナス転送では、単一の転送元から複数の転送先へ同時並列的にデータを転送する、いわゆるマルチキャスト方式を適用可能である。即ち同報的なデータ転送が可能となる。この方式によれば、例えばＰＣ（パーソナルコンピュータ）から２つ以上のプリンタに対して同時に印刷データを転送し、それぞれのプリンタに同時に印刷を行わせるようなことも可能である。
【００１０】
このような場合のデータ転送を制御する技術として、例えば特許文献４に開示された技術がある。これは、送信側となるソースノードと受信側となるデスティネーションノードとの間で使用する通信プロトコルを、複数の通信プロトコルから選択する。この選択対象の複数の通信プロトコルには、マルチキャスト方式のもの（例えばアイソクロナス転送を適用可能）と、１対１の通信を行うユニキャスト方式（例えばアシンクロナス転送を適用可能）のものとが含まれる。
【特許文献１】特開平１０−１１１７７３号公報
【特許文献２】特開平１０−３０７６９１号公報
【特許文献３】特開平１０−１６４１７４号公報
【特許文献４】特開２０００−４９８３４号公報
【発明の開示】
【発明が解決しようとする課題】
【００１１】
ここで、上記のように、マルチキャスト方式でデータ転送を行う場合であって、プリントデータ等、転送の正確さが必要なデータの場合、受信エラーが発生したデータを再転送する必要がある。そして、データの再転送は、受信エラーが起こった送信先のみに対して行う必要がある。しかし、マルチキャスト方式で再転送を行うと、全ての送信先に対して同時並列的にデータが再転送されてしまう。その場合、受信エラーが発生していない送信先に対しては予めネゴシエーションを行い、再転送に係るデータの受信（処理）を無効化する必要がある。このようなネゴシエーション処理は、マルチキャストの送信先が多数に亘る場合、それによるトラフィックが無視できない量となる。その結果、転送効率が低下してしまうという問題があった。
【００１２】
逆にエラー発生時の再転送をユニキャスト方式で行うとした場合、多数の送信先に再転送を行う必要のある場合には、個々の送信先に対して個別に再転送することとなる。その結果多数回の通信が必要となり、転送効率が悪くなるという問題があった。
【００１３】
このような問題点は、上記特許文献１乃至３に記載の技術によって直接的には解決しえない。それは、これらの技術ではアイソクロナス転送については考慮されているが、マルチキャスト方式による転送におけるデータ再転送については特に考慮されていないからである。
【００１４】
また、特許文献４に記載のデータ通信システムでは、当該文献の段落０１２６及び段落０１２９等に記載のように、ソースノードとディスティネーションノードとが、対応可能な通信プロトコルの種類に応じて使用する通信プロトコルを決定する。しかしながら上記のような受信エラー発生時のデータの再転送については特に考慮されていない。したがって上記の問題について特に解決策を与えるものではない。
【００１５】
本発明は、このような問題を解決し、単一の一の転送元から複数の他の転送先へ同時並列的にデータを転送する場合において、受信が正常に行われなかった場合にデータの再転送を行って信頼性の高いデータ転送を実現するにあたり、その転送を効率よく、高速に行うことができる構成を提供することを目的とする。
【課題を解決するための手段】
【００１６】
上記の目的を達成するため、本発明のデータ通信装置は、単一の一の転送元から複数の他の転送先へ同時並列的にデータを転送する第１の通信手段と、単一の一の転送元から単一の他の転送先へとデータを転送する第２の通信手段と、上記第１の通信手段によって複数の転送先にデータを転送し、かつその複数の転送先のうちの少なくとも一の転送先から受信が正常に行われなかった旨を示す受信エラー情報を受信した場合に、上記第１の通信手段及び上記第２の通信手段のうちから、その受信エラー情報を発信した転送先の数に応じて選択された通信手段を用いて、前記受信が正常に行われなかったデータを上記受信エラー情報を発信した転送先に再転送する再転送手段とよりなる。
【００１７】
又、本発明のデータ通信システムは、単一の一の転送元から複数の他の転送先へ同時並列的にデータを転送する第１の通信手段と単一の一の転送元から単一の他の転送先へデータを転送する第２の通信手段とを有する少なくとも一のデータ通信装置と、そのデータ通信装置から転送されるデータを受信する手段とその手段によるデータの受信が正常に行われなかった場合にそのデータの転送元に対してその旨を示す受信エラー情報を送信する手段とを有し上記少なくとも一のデータ通信装置からのデータの転送先となりうる複数の受信装置とによりなるデータ通信システムであって、上記少なくとも一のデータ通信装置は、上記第１の通信手段によって上記複数の上記受信装置にデータを転送した結果その複数の受信装置のうちの少なくとも一の受信装置から上記受信エラー情報を受信した場合に、上記第１の通信手段及び上記第２の通信手段のうちから、その受信エラー情報を送信した受信装置の数に応じて選択された一の通信手段を用いて、受信が正常に行われなかったデータを上記受信エラー情報を発信した受信装置に再転送する再転送手段よりなる。
【００１８】
また、本発明のデータ通信方法は、単一の一の転送元から複数の他の転送先へ同時並列的にデータを転送する第１の通信方式と、単一の一の転送元から単一の他の転送先へデータを転送する第２の通信方式とを用いて複数の装置間で通信を行うデータ通信方法であって、ある転送元が、上記第１の通信方式によって複数の転送先にデータを転送した結果その複数の転送先のうちの少なくとも一の転送先から受信が正常に行われなかった旨を示す受信エラー情報を受信した場合に、上記第１の通信方式及び上記第２の通信方式のうちから、その受信エラー情報を発信した転送先の数に応じて選択された一の通信方式を用いて、受信が正常に行われなかったデータを上記受信エラー情報を発信した転送先に再転送する段階よりなる。
【発明の効果】
【００１９】
本発明のデータ通信装置、データ通信システムあるいはデータ通信方法によれば、単一の一の転送元から複数の他の転送先へと同時並列的にデータを転送する間に受信が正常に行われなかった場合、データの再転送を行って信頼性の高いデータ転送を実現し、且つその転送を効率よく高速に行うことができる。
【発明を実施するための最良の形態】
【００２０】
以下、本発明の好ましい実施の形態を図面を参照して説明する。
【００２１】
まず、図１，図２及び図３を用い、本発明のデータ通信装置及びそのデータ通信装置を用いて構成した本発明のデータ通信システムの実施の形態のハードウェア構成について説明する。図１はそのデータ通信システムを構成する各装置の接続例を示す図であり、図２はそのデータ通信システムを構成するＰＣ（パーソナルコンピュータ;後述のデータソース装置を構成する）の構成例を示すブロック図であり、図３は同じく同システムを構成するプリンタ（後述のデータシンク装置を構成する）の構成例を示すブロック図である。
【００２２】
本発明のデータ通信システムは、図１に示すように、それぞれＩＥＥＥ１３９４ポート４を備え、ここに通信ケーブル５を接続してＩＥＥＥ１３９４バスによって互いにデータ通信が可能とされた複数の装置によって構成される。そして、これらの装置のうち少なくとも１つは、後述する所定の第１の通信手段と第２の通信手段とを使い分けて通信を行なう機能を有する。
【００２３】
上記第１の通信手段は、単一の一の転送元から複数の他の転送先へ同時並列的にデータを転送する所定の第１の通信方式にて当該装置が他の装置と通信を行うことを可能にする通信手段である。又、上記第２の通信手段は、単一の一の転送元から単一の他の転送先へとデータを転送する第２の通信方式にて、当該装置が他の装置と通信を行うことを可能にする通信手段である。
【００２４】
図示のデータ通信システムでは、上記第１の通信手段と第２の通信手段と使い分けて通信を行なう機能を有するデータ通信装置として、パーソナルコンピュータ（ＰＣ）１を想定している。
【００２５】
このＰＣ１の構成は図２に示す通りであり、ＣＰＵ１１，ＲＯＭ１２，ＲＡＭ１３，ハードディスクドライブ（ＨＤＤ）１４，ＩＥＥＥ１３９４インタフェース（Ｉ／Ｆ）１５を備える。又、これはシステムバス１６によって接続されている。また、図示は省略したがユーザへのインタフェースとして操作手段や表示手段を設けるとよい。
【００２６】
このＰＣ１は、ハードウェア構成としては従来のものを用いればよく、ＣＰＵ１１がＲＯＭ１２やＨＤＤ１４に記憶している各種制御プログラムやアプリケーションプログラムを実行することによって各部の動作を制御し、種々の手段として機能する。
【００２７】
特に、このＰＣ１には、ＩＥＥＥ１３９４ポート４を備えるＩＥＥＥ１３９４Ｉ／Ｆ１５が設けられ、ＣＰＵ１１によりこの動作が制御される。その結果、当該ＰＣ１は、ＩＥＥＥ  ｓｔｄ  １３９４規格に従ったデータ通信動作を行う。その結果、当該ＰＣ１は、上述した第１及び第２の通信手段を使い分けて通信を行なう手段として機能する。又、当該ＰＣ１は、上記第１の通信手段を適用して通信を行なってデータ転送を行う際に、必要に応じて後述する再転送手段としても機能する。
【００２８】
そしてこのデータ通信システムでは、上記単一の一の転送元から複数の他の転送先へ同時並列的にデータを転送する方式、即ちマルチキャスト方式として、周知のアイソクロナス転送方式を適用する。又、上記単一の一の転送元から単一の他の転送先へとデータを転送する方式、即ちユニキャスト方式としてアシンクロナス転送方式を適用する。尚、このＩＥＥＥ規格におけるアシンクロナス転送方式は、例えばＵＳＢ規格においてバルク転送方式、インタラプト転送方式等と呼ばれる転送方式と等価である。
【００２９】
また、このデータ通信システムには、データソース装置としてのＰＣ１からのデータの転送先となる装置、即ちデータシンク装置としての受信装置が複数設けられている。これらの受信装置は、各々が、その転送されるデータの受信と、当該データの受信が正常に行われなかった場合にそのデータの転送元に対してその旨を示す受信エラー情報の送信が可能な構成とされている。
【００３０】
具体的には、これらの受信装置として、複数のプリンタ２、並びに他の複数の周辺機器３が設けられている。これらのプリンタ２の各々構成は、例えば図３に示す通りであり、コントローラ２０とプリンタエンジン３６とを備える。そして制御手段であるコントローラ２０によってプリンタエンジン３６の動作が制御される。
【００３１】
また、コントローラ２０には、ＩＥＥＥ１３９４Ｉ／Ｆ２１，ＣＰＵ２２，ＲＯＭ２３，ＲＡＭ２４，エンジンＩ／Ｆ２５が含まれる。そしてこれらはシステムバス２６によって互いに接続されている。そして、ＣＰＵ２２がＲＯＭ２３に記憶されている各種制御プログラムを実行することにより、各部の動作を制御する。特に、ＣＰＵ２２がＩＥＥＥ１３９４ポート４を備える上記ＩＥＥＥ１３９４Ｉ／Ｆ２１の動作を制御することにより、当該プリンタ２はＩＥＥＥ  ｓｔｄ  １３９４規格に従ったデータ送受信動作を実行可能となる。
【００３２】
上記のアイソクロナス転送方式においては、チャネル番号を知っている複数のノードが同時にデータを受信することが可能である。このため、図１に示すように、データ転送元となるデータソース装置（ここではＰＣ１）に対し、データ転送先となるデータシンク装置（ここではプリンタ２及び周辺機器３）を複数接続することが可能となる。
【００３３】
尚、これらの装置は互いに直接接続されている必要はなく、ツリー状に接続される構成とすることも可能である。又、図１には１台のＰＣ１、２台のプリンタ２、並びに４台の周辺機器３とが互いに接続された例が示されている。しかしながらこの構成は一例であり、接続する装置の台数や種類はこれに限られるものではない。
【００３４】
さらに、アイソクロナス転送においては、接続されている全ての装置に対して送信を行う動作に加え、複数の転送先を選択し、それらに対してのみデータを転送する動作も実施可能である。すなわち、同一バス上にデータソースでもなく、データシンクでもない装置が存在していてもよい。このような動作により、例えばＰＣ１から２台のプリンタ２のみに対して同時に印刷データを送信し、これらに同時に画像形成を行わせることが可能である。また、同一バス上に複数組のデータソース装置とデータシンク装置が存在する構成としてもよい。
【００３５】
次に、図１と共に上述したデータ転送システムにおけるデータ伝送路の構成について図４、図５と共に説明する。
【００３６】
図４に示す如く、上記データソース装置（ここではデータソース装置３０として表現する）と各データシンク装置（ここでは一例としてデータシンク装置３１乃至３４として表現する）との間の物理的な通信線路の中には、双方向の通信を行うことのできるユニキャスト通信路Ｐｕと、データソース装置３０からデータシンク装置３１乃至３４への単一方向のみの通信を行なうことの出来るマルチキャスト通信路Ｐｍという二種類の論理的な通信路が存在する。尚、これら２種の通信路Ｐｕ，Ｐｍは、論理的に設けられるものであり、物理的には共通の線路を利用可能であることは言うまでもない。
【００３７】
即ち、その場合、マルチキャスト通信路適用の場合とユニキャスト通信路適用の場合とに夫々の場合において、物理的には該当する信号が全ノードに送信されるが、論理的に転送先を指定して転送するか否かでこれらの通信路適用の場合が区別される。即ち、論理的に転送先を一ノードに指定して転送する場合はユニキャスト通信路適用の場合となり、指定しない場合にはマルチキャスト通信路適用の場合となる。
【００３８】
又図５に示す如く、データソース装置３０と複数のデータシンク装置３１乃至３４との間には、各データシンク装置３１乃至３４の夫々について別個の論理的なユニキャスト通信路Ｐｕと、全てのデータシンク装置３１乃至３４間で共有される一つの論理的なマルチキャスト通信路Ｐｍという二種類の論理的な通信路が存在していることになる。
【００３９】
尚、これら２種の論理的通信路Ｐｕ，Ｐｍの実現方法としては、例えばマルチキャスト通信路Ｐｍの実現のためには受信先の指定を「マルチアドレス指定」とし、他方、ユニキャスト通信路Ｐｕの実現のためには受信先の指定を「単一アドレス指定」とすることが考えられる。
次に、このようなデータ転送装置あるいはデータ転送システムにおけるデータ転送時の、本発明によるデータ転送方法に係る制御について、図６乃至図１０を用いて例示的に説明する。
【００４０】
図６はマルチキャスト方式のデータ転送中に全く受信エラーが起こらなかった場合の処理について説明するための図であり、図７は１つの転送先でのみ受信エラーが発生した場合の処理について説明するための図であり、図８は２つの転送先でのみ受信エラーが発生した場合の処理について説明するための図であり、図９は全ての転送先で受信エラーが発生した場合の処理について説明するための図であり、図１０は１つを除いて他の全ての転送先で受信エラーが発生した場合の処理について説明するための図である。
【００４１】
なお、これらの図においては、上述の図１とは異なり、１つのデータソース装置３０から４つのデータシンク装置３１〜３４に対してデータ転送を行う場合を例として示している。
【００４２】
マルチキャスト方式のデータ転送を行う場合、データソース装置３０（図１ではＰＣ１に相当）では、データシンク装置３１〜３４（図１ではプリンタ２に相当）に対して送りたいデータを用意し、予め確保されている論理的なデータ（情報）転送用通信路（図４，５におけるマルチキャスト通信路Ｐｍ）を通じてデータシンク装置３１〜３４にデータを転送する。
【００４３】
データシンク装置がプリンタのような印刷装置の場合には、転送されるデータは、画像データなどの印刷データになる。また、この場合適用するデータ転送用通信路としては、ＩＥＥＥ１３９４バスを用いる場合、予め所定のプロトコルにより帯域とチャネル番号が割り当てられたＩＥＥＥ  Ｓｔｄ  １３９４規格のアイソクロナス・ストリーム・チャネルもしくは、予め所定のプロトコルによりチャネル番号のみが割り当てられたＩＥＥＥ  Ｓｔｄ  １３９４ａ規格の非同期ストリーム・チャネルを用いることができる。
【００４４】
一方、データシンク装置３１〜３４では、データソース装置３０から送信されてきたデータを受信すると共に、１回の転送単位毎に、受信した情報の妥当性や、情報の欠落がないか、すなわち受信が正常に行われたか否かを検査する。検査方法としては、例えば期待される転送サイクル毎に情報の受信を検査するというような単純な方法、各情報単位（パケットなど）に連続的な番号などのＩＤを付加し、それによりデータの欠落を検知する方法、各情報単位にチェックサムやＣＲＣ（ｃｙｃｌｉｃ  ｒｅｄｕｎｄａｎｃｙ  ｃｈｅｃｋ）符号などの冗長情報を付加し、それにより誤りを検出する方法等、一般的な様々な方法が適用できる。
【００４５】
データの欠落や誤りが検出されない場合、すなわちデータ転送にエラーが発生しなかった場合には、データ転送はそのまま継続されて引き続いて次のデータも転送され、図６に示すようにデータソース装置３０からデータシンク装置３１〜３４に同時並列的に順次データが転送される。
【００４６】
一方、データの欠落や誤りが検出された場合には、検出したデータシンク装置はその旨を示す受信エラー情報をデータの転送元であるデータソース装置３０に送信する。この送信は、例えば、アシンクロナス転送のような一対一の通信路（即ち、図４，５におけるユニキャスト通信路Ｐｕ）を使って再送要求をデータソース装置３０へ送ることによって行うことができる。
【００４７】
そして、データソース装置３０は、データシンク装置３１〜３４うちの少なくとも１つから受信エラー情報を受信した場合に、受信エラー情報を発信した転送先のデータシンク装置の数に応じてアイソクロナス転送（即ちマルチキャスト通信路Ｐｍ）を用いるかアシンクロナス転送（即ちユニキャスト通信路Ｐｕ）を用いるかを選択する。そして、その選択した方式を適用して、受信が正常に行われなかったデータを、受信エラー情報を発信したデータシンク装置に再転送する。
【００４８】
ここで、もし受信エラーの発生が少数のデータシンク装置のみで起こった場合には、データソース装置３０とエラーが観測されたデータシンク装置との一対一の通信路Ｐｕを使って個別にデータの再転送を行った方が効率が良い。即ち、マルチキャスト方式のアイソクロナス転送Ｐｍによって再転送を行うと、エラーの発生していない転送先でも再転送したデータが受信されてしまう。このため、マルチキャスト方式適用の際には、予めネゴシエーションを行うことにより、エラーが発生していない転送先では再転送データを受信（処理）しないようにする必要が生ずる。したがってもし対象となるデータシンク装置が多数であった場合、これらのネゴシエーションによって生ずるトラフィックは再転送データのサイズと比べても無視できない程度の大きさとなってしまうからである。
【００４９】
逆に、全てもしくは多数のデータシンク装置で同一データに関する受信エラーが生じた場合には、上述のエラー転送制御に関するネゴシエーションのオーバーヘッドを考慮しても、アイソクロナス転送Ｐｍよってデータの再転送を行った方が、アシンクロナス転送Ｐｕにて個々の転送先に別々に再転送を行なうよりも、一回の転送で済む分だけ効率が良いと考えられる。
【００５０】
そこで、本実施の形態によるデータ通信システムにおいては、受信エラー情報を発信した転送先データシンク装置の数に応じてデータの再転送にアイソクロナス転送路Ｐｍを用いるかアシンクロナス転送路Ｐｕを用いるかを選択するようにしている。
【００５１】
このような再転送に関し、まず初めに、アシンクロナス転送Ｐｕを使って行う場合の動作について説明する。
【００５２】
例えば、図７に示すようにデータシンク装置３２のみで受信エラーが発生した場合、データシンク装置３２は、（ａ）で示すようにデータソース装置３０に対して受信エラー情報としてエラーが確認された転送単位についての再送要求を送信する。そして、再送要求を受け取ったデータソース装置３０は、（ｂ）で示すように、再送要求を行ったデータシンク装置３２のみに再送要求に係るデータをアシンクロナス転送Ｐｕで転送する。アシンクロナス転送Ｐｕは１対１の通信であるので、他のデータシンク装置では受信されない。従ってこの場合、エラーによる再転送に費やされるコストは（ａ）と（ｂ）の２回の通信によるもののみとなる。
【００５３】
また、図８に示すように二つのデータシンク装置３２，３４で受信エラーが発生した場合、これらの装置はデータソース装置３０に対して（ａ），（ｃ）でそれぞれ示す再送要求を行い、データソース装置３０はこれに応じて（ｂ），（ｄ）でそれぞれ示すようにそれぞれ再送要求に係るデータをアシンクロナス転送Ｐｕで転送する。そしてこの場合には、エラーによる再転送に費やされるコストは（ａ）、（ｂ）、（ｃ）、（ｄ）の計４回の通信によるものとなる。
【００５４】
これらのように、アシンクロナス転送Ｐｕを用いてデータの再転送を行う場合、
（受信エラーが発生したデータシンク装置の数×２）回
の通信分のコストがかかることが分かる。すなわちデータ再転送に関し、これだけの通信が必要になることになる。
【００５５】
次に、アイソクロナス転送Ｐｍを使って再転送を行う場合の動作について説明する。
【００５６】
例えば、図９に示すように全てのデータシンク装置３１〜３４で受信エラーが発生した場合、これらのデータシンク装置３１〜３４は、（ａ）〜（ｄ）でそれぞれ示すようにデータソース装置３０に対して受信エラー情報としてエラーが確認された転送単位についての再送要求を送信する。そして、再送要求を受け取ったデータソース装置３０は、（ｅ）で示すように、全てのデータシンク装置３１〜３４に再送要求に係るデータをアイソクロナス転送路Ｐｍで転送する。アイソクロナス転送路Ｐｍによる転送は一斉同報的なマルチキャスト方式の転送であるので、１回の通信で全てのデータシンク装置３１〜３４に対してデータの再転送を行うことができる。従ってこの場合、エラーによる再転送に費やされるコストは（ａ）〜（ｅ）の計５回の通信となる。
【００５７】
また、図１０に示すように１つのデータシンク装置３３を除く他の全てのデータシンク装置で受信エラーが発生した場合、受信エラーが発生したデータシンク装置は、（ａ），（ｂ），（ｄ）でそれぞれ示すようにデータソース装置３０に対して再送要求を送信する。そして、再送要求を受け取ったデータソース装置３０は、図９の場合と同様、（ｅ）で示すように再送要求に係るデータをアイソクロナス転送路Ｐｍで一回に通信にて転送する。しかし、このままでは全てのデータシンク装置３１〜３４でデータが受信されてしまうため、受信エラーの発生しなかったデータシンク装置３３に対しては、データの再転送に先立ち、（ｃ）に示すように「再転送データを無視する」旨の指示を送る。
【００５８】
このようにすることにより、アイソクロナス転送路Ｐｍによって実質的に必要なデータシンク装置３１，３２，３４のみにデータの再転送を行うことができる。そして、この場合のエラーによる再転送に費やされるコストも、（ａ）〜（ｅ）の計５回の通信によるものとなる。
【００５９】
このように、アイソクロナス転送路Ｐｍをデータ再転送に適用する場合、受信エラーの発生したデータシンク装置については再送要求が必要となり、他方受信エラーの発生しなかったデータシンク装置については再転送データ無視の旨の指示が必要になる。これらを合計すると、全データシンク装置の台数分の通信が必要となることになる。更にこれらに加え、データ再転送のための１回のアイソクロナス転送Ｐｍが必要となる。従って、データの再転送に要される全体のコストは、受信エラーの発生したデータシンク装置の数に関わらず、
（全データシンク装置の数＋１）回
の通信分となることが分かる。
【００６０】
ここで、以上により、以下の（式１）の条件を満たす場合にはデータ再転送にユニキャスト方式のアシンクロナス転送路Ｐｕを適用した方が、マルチキャスト方式のアイソクロナス転送路Ｐｍを適用した場合より所要通信回数が少なく済み、即ち効率がよくなる。他方、（式２）の条件を満たす場合には、逆にアイソクロナス転送路Ｐｍ適用の方が効率が良くなる。又、（式３）の条件を満たし場合、両方式の夫々の所要通信回数は等しくなり、いずれの方式を適用しても同等の効率となる。
【００６１】
（受信エラー発生データシンク装置の数×２）
＜（全データシンク装置の数＋１）      ・・・（式１）
（受信エラー発生データシンク装置の数×２）
＞（全データシンク装置の数＋１）      ・・・（式２）
（受信エラー発生データシンク装置の数×２）
＝（全データシンク装置の数＋１）      ・・・（式３）
例えば図７の場合、受信エラー発生データシンク装置の数は１であるため上記夫々の式における左辺は２となり、他方全データシンク装置の数は４であるため右辺は５となる。その結果左辺より右辺が大きくなり、（式１）が満足され、ユニキャストのアシンクロナス方式Ｐｕ適用が選択される。
【００６２】
同様に図８の場合、受信エラー発生データシンク装置の数は２であるため夫々の式における左辺は４となり、右辺は常に５である。その結果左辺より右辺が大きくなり、この場合も（式１）が満足され、ユニキャストのアシンクロナス方式Ｐｕ適用が選択される。
【００６３】
又図９の場合、受信エラー発生データシンク装置の数は４であるため夫々の式における左辺は８となり、右辺は常に５である。その結果右辺より左辺が大きくなり、この場合は（式２）が満足され、マルチキャストのアイソクロナス方式Ｐｍ適用が選択される。
【００６４】
同様に図１０の場合、受信エラー発生データシンク装置の数は３であるため夫々の式における左辺は６となり、右辺は常に５である。その結果右辺より左辺が大きくなり、この場合も（式２）が満足され、マルチキャストのアイソクロナス方式Ｐｍ適用が選択される。
【００６５】
このように、一連のデータ転送中には全データシンク装置の数、即ち右辺は変化しないため、これらの式において変化するのは受信エラーが発生したデータシンク装置の数のみ、即ち左辺のみである。そして、この数は受信エラー情報を発信した転送先の数と同数である。そこで、本発明のデータ通信システムに備えるデータ通信装置においては、再送要求に係る（受信エラーの発生した）データを再転送する際、受信エラー情報を発信した転送先の数に応じて、上記の式１乃至３を用いた基準に従い、アイソクロナス転送路Ｐｍおよびアシンクロナス転送路Ｐｕのうちのいずれか効率のよい方を選択し、その方式で再転送を行うようにする。この構成により、再転送時に高い転送効率を得ることができる。
【００６６】
尚、上記実施例における計算方法（上記式（１）乃至（３）の適用）を適用する根拠は以下の通りである。即ち、パケット一つ一つのサイズより、パケットの個数の方が、より結果的に得られるスループット（トラフィック）により強く影響することを前提としている。このため、所要通信回数をより少なくすることで通信の効率化を図るものである。
【００６７】
図１１と共に、転送データをｎ個の転送単位に分割して送信する場合の、上記データソース装置３０の動作の流れを説明する。
【００６８】
ステップＳ１１にて転送データの番号を示すパラメータｎを１に初期化する。次にステップＳ１２にてｎ番目の転送単位を、マルチキャスト送信路Ｐｍを適用してデータシンク装置へ転送する。ステップＳ１３にて、所定制限時間内にデータシンク装置から再送要求を受信したかどうかについて判定する。そして判定結果がＹｅｓの場合、ステップＳ１４にて上記（式１）の正否を判定する。判定結果がＹｅｓの場合、当該ｎ番目の転送単位を、上記基準にしたがってユニキャスト通信路Ｐｕを適用し、再送要求発信元のデータシンク装置に対して個別に再転送する。
【００６９】
他方、ステップＳ１４の判定がＮｏの場合、即ち（式１）が不満足の場合、上記（式２）又は（式３）が満足されることを意味する。したがってステップＳ１５にて、「次の送信データを無視する」旨のコマンドを、再送要求を発信しなかったデータシンク装置へ個別にユニキャスト通信路Ｐｕにて送信した後、ステップＳ１６にて当該ｎ番目の転送単位を、マルチキャスト通信路Ｐｍにて全データシンク装置へと同報的に再転送する。
【００７０】
そして、ステップＳ１８にて、ｎ個の転送単位全てについてデータ転送が終了したかどうか判定する。その結果Ｙｅｓの場合、当該送信処理を終了し、Ｎｏの場合ステップＳ１９にてパラメータｎを１インクリメントしてステップＳ１２からの処理を繰り返す。
【００７１】
図１２と共に、図１１と共に説明した送信処理にてｎ個の転送単位に分割して送信された転送データを受信する場合の、上記データシンク装置３１乃至３４各々の動作の流れを説明する。
【００７２】
ステップＳ３１にて転送データの番号を示すパラメータｎを１に初期化する。ステップＳ３２にて、n番目の転送単位を、マルチキャスト送信路Ｐｍで受信する。そしてステップＳ３３にて、所定の制限時間内に、当該n番目の転送単位を正常受信したかどうかを判定する。判定結果がＮｏの場合、ユニキャスト通信路Ｐｕを使い、データソース装置に対し当該n番目の転送単位の再送要求を送信する（ステップＳ３４）。そしてステップＳ３５にて、当該n番目の転送単位を、マルチキャスト送信路Ｐｍ／ユニキャスト通信路Ｐｕのいずれかで受信する。
【００７３】
又、ステップＳ３３の判定結果がＹｅｓの場合、ステップＳ３６にて、「次の送信データを無視する」旨のコマンドを受信したどうかを判定する。判定結果がＹｅｓの場合、その後マルチキャスト送信路Ｐｍにて再受信したn番目の転送単位を、上記コマンドにしたがって読み捨てる（無視する）（ステップＳ３７）。
【００７４】
そしてステップＳ３８にて、ｎ個の転送単位の全てのデータの送信を終了したどうか判定する。判定結果がＹｅｓの場合当該受信処理を終了する。判定結果がＮｏの場合、ステップＳ１９にてパラメータｎを１インクリメントしてステップＳ３２からの処理を繰り返す。
【００７５】
このように、本発明の実施の形態によるデータ通信装置、データ通信システムあるいはデータ通信方法によれば、データの受信側と送信側との間で再送制御を行う事により、信頼性の高い高速データ転送の実現が可能である。
【００７６】
すなわち、帯域幅が保証されているアイソクロナス転送を主に適用しながら、必要に応じてデータの再送制御を行うことにより転送の信頼性も高める事が可能である。また、本実施の形態の方式はＩＥＥＥ  Ｓｔｄ  １３９４規格に完全に適合したものであるので、付加回路や特別なプロトコルのサポートの必要がなく、また他のプロトコルとも共存可能であるので、同一のバス上に繋がっている他の機器への影響もない。
【００７７】
さらに、データの再転送で使用する通信方式について、最適な方式を動的に選択するため、一つのデータの転送元と複数のデータ転送先との間でデータ転送を行う一対多の通信におけるエラー訂正のために生ずるトラフィックを最小限にすることが可能である。
【００７８】
なお、以上説明した実施の形態においては、受信エラー情報として再送要求を送信する例について説明したがこれに限られず、逆にデータの受信毎にアシンクロナス転送のような一対一の通信路を使って受け取り確認をデータシンク装置からデータソース装置へと送ることにしておき、データに欠落や誤りが検出された場合には受け取り確認を送らないようにする方式も適用可能である。
【００７９】
また、以上説明した実施の形態においては、伝送路としてＩＥＥＥ１３９４バスを用い、マルチキャスト方式の通信路Ｐｍとしてはアイソクロナス転送方式を用い、ユニキャスト方式Ｐｕの通信路Ｐｕとしてはアシンクロナス転送方式を用いる例について説明したが、他の伝送路及び通信方式、例えばＵＳＢを用いた場合でも、同様な効果を得ることができる。
【００８０】
さらに、データ通信システムを構成するデータ通信装置や受信装置、あるいはデータ通信方法を実施するための装置についても、上述したＰＣやプリンタに限られるものではなく、他の様々な適用分野が想定されうる。
【図面の簡単な説明】
【００８１】
【図１】本発明の実施の形態によるデータ通信装置を用いて構成した本発明のデータ通信システムを構成する各装置間の接続例を示す図である。
【図２】図１に示したデータ通信システムを構成するＰＣの構成例を示すブロック図である。
【図３】同じくプリンタの構成例を示すブロック図である。
【図４】図１に示すデータ通信システムのおける装置間の通信路について説明するための図（その１）である。
【図５】図１に示すデータ通信システムのおける装置間の通信路について説明するための図（その２）である。
【図６】本発明の実施の形態によるデータ通信システムにおける、マルチキャスト方式のデータ転送時に受信エラーが起こらなかった場合の処理について説明するための図である。
【図７】同じく１つの転送先で受信エラーが発生した場合の処理について説明するための図である。
【図８】同じく２つの転送先で受信エラーが発生した場合の処理について説明するための図である。
【図９】同じく全ての転送先で受信エラーが発生した場合の処理について説明するための図である。
【図１０】同じく１つを除いて全ての転送先で受信エラーが発生した場合の処理について説明するための図である。
【図１１】本発明の実施の形態によるデータソース装置の動作の流れを示す動作フローチャートである。
【図１２】本発明の実施の形態によるデータシンク装置の動作の流れを示す動作フローチャートである。
【符号の説明】
【００８２】
１：ＰＣ
２：プリンタ
３：周辺機器
４：ＩＥＥＥ１３９４ポート
５：通信ケーブル
１１，２２：ＣＰＵ
１２，２３：ＲＯＭ
１３，２４：ＲＡＭ
１４：ＨＤＤ
１５，２１：ＩＥＥＥ１３９４Ｉ／Ｆ
１６，２６：システムバス
３０：データソース装置
３１〜３４：データシンク装置
３６：プリンタエンジン
【図１】
2004153803.tif 000003
【図２】
2004153803.tif 000004
【図３】
2004153803.tif 000005
【図４】
2004153803.tif 000006
【図５】
2004153803.tif 000007
【図６】
2004153803.tif 000008
【図７】
2004153803.tif 000009
【図８】
2004153803.tif 000010
【図９】
2004153803.tif 000011
【図１０】
2004153803.tif 000012
【図１１】
2004153803.tif 000013
【図１２】
2004153803.tif 000014