(57)【要約】【課題】非対称な通信プロトコルによるデータ通信機能を有する外部機器で非対称のいずれか一方の機能しか持たない機器同士でもデータ転送を可能にする。【解決手段】非対称の通信プロトコルによるデータ転送機能のターゲット機能のみ有するハードディスク２０２，２０３に接続されるＩ／Ｆを備えたデータ転送装置２０１を設け、ＣＰＵの制御により、Ｉ／Ｆを介して接続されるハードディスク２０２，２０３に応じて非対称の通信プロトコルによるデータ転送機能のイニシエータ機能による動作を実行して、ハードディスク２０２，２０３のデータ転送を実行させる。【選択図】　　　図１
2004013828.tif 000002
【特許請求の範囲】
【請求項１】
非対称の通信プロトコルによるデータ転送機能の一方を有して他方を有しない通信手段を有する複数の外部機器に接続されるインターフェースを備えたデータ転送装置であって、
前記インターフェースを介して接続される前記各外部機器の有しない非対称の通信プロトコルによるデータ転送機能による動作を実行して、該各外部機器間のデータ転送を実行させる制御手段を設けたことを特徴とするデータ転送装置。
【請求項２】
前記制御手段が、データ転送要求のデータ転送方向に依存する部分を変更して、前記外部機器にデータ転送要求を発行するように構成されていることを特徴とする請求項１記載のデータ転送装置。
【請求項３】
請求項１又は２記載のデータ転送装置において、
前記外部機器のうちデータの転送元となる機器又は転送先となる機器を選択させる手段を設けたことを特徴とするデータ転送装置。
【請求項４】
前記制御手段が、前記外部機器のいずれか一つからその他の複数の外部機器に対し、データ転送方向とデータ転送要求を変更して、前記各外部機器にデータ転送要求を発行するように構成されていることを特徴とする請求項１乃至３のいずれか一項記載のデータ転送装置。
【請求項５】
請求項１乃至４のいずれか一項記載のデータ転送装置において、
前記インターフェースに接続される外部機器を列挙して表示させる手段と、
該表示された前記外部機器から前記データ転送を実行させる外部機器を選択させる手段とを設け、
前記制御手段が、該選択された各外部機器間のデータ転送を実行させるように構成されていることを特徴とするデータ転送装置。
【請求項６】
前記インターフェースがＩＥＥＥ１３９４に従う通信インターフェースであることを特徴とする請求項１乃至５のいずれか一項記載のデータ転送装置。
【請求項７】
前記インターフェースがＵＳＢに従う通信インターフェースであることを特徴とする請求項１乃至５のいずれか一項記載のデータ転送装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
この発明は、非対称の通信モデルを採用している機器でそのいずれか一方の機能しか持たない機器同士でもデータ転送を可能にするデータ転送装置に関する。
【０００２】
【従来の技術】
近年の情報技術の進展に伴い、パーソナルコンピュータ（以下「パソコン」という）の周辺で使用される外部機器にも様々な機器が存在している。それに伴い、パソコンと外部機器を結ぶインターフェースにもいくつかのものがある。例えば、ＩＥＥＥ１３９４（ＩＥＥＥ：米国電気電子技術者協会が仕様を採択した規格）がある。このＩＥＥＥ１３９４では、バスに接続する各機器の機能、例えばプリンタやスキャナ等の外部機器の有する機能を知るためのしくみが提供されている。
現在市場に提供されているプリンタやスキャナは通信プロトコルにＳＢＰ−２（Ｓｅｒｉａｌ　Ｂｕｓ　Ｐｒｏｔｏｃｏｌ　２ｎｄ　ｖｅｒｓｉｏｎ）を使用しているものが多くなっている。このＳＢＰ−２は非対称の通信プロトコルであり、このＳＢＰ−２による通信モデルでは、通信を行う機器の一方がイニシエータとして作動し、もう一方の機器がターゲットとして作動する。イニシエータは通信を行うターゲットを選択し、通信を通してターゲットに対して動作要求を行い、動作に必要なバッファ領域の確保を行う。このため、イニシエータは通信可能なターゲットの列挙、通信するターゲットの選択、ターゲットに対する要求の発行、バッファの管理等の機能を持つことになる。
【０００３】
一方、ターゲットは、イニシエータから要求された動作を行い、その動作に必要なデータをイニシエータの用意したバッファ領域から取得したり、或いは動作の結果として生成されたデータをイニシエータの用意したバッファ領域に格納したりする。このため、ターゲットはイニシエータからの要求受付、指定されたバッファ領域からのデータ取得、指定されたデータ領域へのデータ格納、要求動作を実行した結果の告知等の機能をもつことになる。このように、ＳＢＰ−２による通信モデルは非対称であり、イニシエータとターゲットでは通信を行うのに必要とされる機能が大きく相違している。
【０００４】
【発明が解決しようとする課題】
しかし、これらの機器を組み合わせて使用する場合、次の点が問題になる。例えばスキャナで取得したデータをプリンタで出力しようとする場合、そのスキャナとプリンタとでデータを直接やり取りするためには、どちらかがイニシエータとして作動し、どちらかがターゲットとして作動する必要がある。しかしながら、一般的にスキャナもプリンタも通常はターゲットとして構成されているから、既存の機器を組み合わせてこのような通信を可能にすることは、上述のとおりイニシエータとターゲットに要求される機能が大きく相違することから不可能である。
また、どちらか一方の機器に、ターゲットに加えてイニシエータの機能を持たせるように構成しようとすると、イニシエータとターゲットに必要とされる機能がまったく違うことから、両方の機能を構成するために必要とされる資源がターゲットのみの構成の二倍になってしまう。つまり、この考えによると、プリンタやスキャナに全く違う２つの機能を実装するのと同じことになる。
【０００５】
さらに、通信を行う機器のどちらか一方がイニシエータの機能を持てばよいにもかかわらず、既存のその他の機器と組み合わせて使用され得ることを考慮すると、プリンタ側或いはスキャナ側等、イニシエータの機能を実装する機器を限定することはできないから、このような使用方法を前提とするすべての機器にイニシエータの機能を持たせる必要が生じてしまう。さらにまた、ターゲットの機能を専用の半導体の処理によって実現している場合、そのターゲットの機能をイニシエータとして構成すること自体が非現実的な要求となってしまう。
このＳＢＰ−２のような非対称な通信プロトコルによるデータ通信機能を有する外部機器のうち、上述のスキャナやプリンタを含め、ハードディスク等の二次記憶装置やＣＤ−ＲＯＭ等の固定記憶装置、ＣＤ−ＲＷ等の書き換え可能な記憶装置など、ターゲットの機能しか持たないものは数多く存在している。
【０００６】
この発明は、上記の問題点を解決するためになされたものであり、ＳＢＰ−２をはじめとする非対称な通信プロトコルによるデータ通信機能を有する外部機器で、非対称のいずれか一方の機能しか持たない機器同士でもデータ転送を可能にすることを目的とする。
【０００７】
【課題を解決するための手段】
この発明は、上記の目的を達成するため、非対称の通信プロトコルによるデータ転送機能の一方を有して他方を有しない通信手段を有する複数の外部機器に接続されるインターフェースを備えたデータ転送装置であって、上記インターフェースを介して接続される上記各外部機器の有しない非対称の通信プロトコルによるデータ転送機能による動作を実行して、その各外部機器間のデータ転送を実行させる制御手段を設けたデータ転送装置を特徴とするものである。
また、このデータ転送装置は、上記制御手段が、データ転送要求のデータ転送方向に依存する部分を変更して、上記外部機器にデータ転送要求を発行するように構成されているとよい。
【０００８】
この構成では、データ通信の際にオーバヘッドとなる領域の確保や領域データの設定などの作業が省略でき、転送効率および転送速度が向上する。
また、上記データ転送装置は、上記外部機器のうちデータの転送元となる機器又は転送先となる機器を選択させる手段を設けたものがよい。
さらに、上記データ転送装置は、上記制御手段が上記外部機器のいずれか一つからその他の複数の外部機器に対し、データ転送方向とデータ転送要求を変更して、上記各外部機器にデータ転送要求を発行するように構成されていることが好ましい。
この構成では、複数の転送先に対してデータ転送を行う際に、個別にＯＲＢやバッファの領域を確保することなく複数のデータ転送を行うことが可能となり、転送装置が必要とするＲＡＭの容量が抑えられる。
上記いずれのデータ転送装置でも、インターフェースに接続される外部機器を列挙して表示させる手段と、その表示された上記外部機器から上記データ転送を実行させる外部機器を選択させる手段とを設け、上記制御手段がその選択された各外部機器間のデータ転送を実行させるように構成されているとよい。
上記インターフェースがＩＥＥＥ１３９４に従う通信インターフェースにすることができ、また、ＵＳＢに従う通信インターフェースにすることもできる。
【０００９】
【発明の実施の形態】
以下、この発明の実施の形態を図面に基づいて詳細に説明する。
（第１の実施の形態）
図１は、この発明によるデータ転送装置内部の主要な構成を示すブロック図である。この発明によるデータ転送装置２０１は、ＣＰＵ１０１と、ＲＯＭ１０２と、ＲＡＭ１０３と、ＩＥＥＥ１３９４Ｉ／Ｆ１０４と、Ｉ／Ｏパネル１０５とを有し、これらがシステムバス１０６に接続されて構成されている。
ＣＰＵ１０１は、データ転送装置２０１全体の制御を行う制御手段であって、データ転送装置２０１がＩＥＥＥ１３９４Ｉ／Ｆ１０４を介して接続される外部機器同士がデータ転送を行うようにその動作を制御し、ＩＥＥＥ１３９４に規定された内容の動作を実現させる。
【００１０】
ＲＯＭ１０２は、ＣＰＵ１０１が実行する制御プログラムを記憶している。ＲＡＭ１０３は、ＣＰＵ１０１が制御プログラムを実行する際に必要なデータを記憶するとともに、ＯＲＢ（Ｏｐｅｒａｔｉｏｎ　Ｒｅｑｕｅｓｔ　Ｂｌｏｃｋ）とよばれるデータ構造やデータ転送に必要なバッファ（データ転送バッファ）が確保される。また、このＲＡＭ１０３上に確保されるＯＲＢやデータ転送バッファは、ＣＰＵ１０１により実行されるＲＯＭ１０２に記憶されているソフトウェア（プログラム）によって管理されている。ＩＥＥＥ１３９４Ｉ／Ｆ（以下「Ｉ／Ｆ」という）１０４は、ＩＥＥＥ１３９４にしたがってデータ転送を行い、接続されるターゲットからＯＲＢやＲＡＭ１０３上のデータ転送バッファへのアクセスがあった場合に直接ＲＡＭ１０３を参照してデータをターゲットに入力する。Ｉ／Ｏパネル１０５は、液晶ディスプレイ等の表示装置を有し、ＣＰＵ１０１の指示にしたがいデータ転送装置２０１に接続される外部機器の一覧を表示し、それらを選択させる。
【００１１】
データ転送装置２０１は、ＩＥＥＥ１３９４に規定された内容の動作を実現する。そのＩＥＥＥ１３９４では個々の機器をノードという。このＩＥＥＥ１３９４によりバスに接続する機器（ＩＥＥＥ１３９４機器）は、機器がバス上に追加されるなどしてバスリセットが発生した時点でルートノードが決定され、各機器にノード番号が割り振られる。このとき、ＩＥＥＥ１３９４機器のうちどれか一つの機器がルートノードとなり、この機器に一番大きなノード番号が割り振られる。通常、ルートノードとなる機器は、一定の手順に従って自動的に選抜されるが、機器が自ら進んでルートノードとなることも可能である。また、各機器のノード番号は、ルートノードとなった機器にどのように接続しているかによって一意に決定される。ＩＥＥＥ１３９４では、１３９４の各ポートにポート番号が割り振られていて、ルートノードからポート番号の若い順に辿ってノード番号が割り振られていく。
【００１２】
一方、同一のＩＥＥＥ１３９４のバス上に接続する機器は、バス上に接続する他の機器の機能を調べる事ができるが、これはＩＥＥＥ１３９４に規定される構成情報を読み取る事で実現する事ができる。ＳＢＰ−２での通信を行う場合、一方の機器がイニシエータとなって、通信を行う相手（ターゲット）の選択、動作要求の発行、データ転送に必要な領域の提供等を行う。このため、イニシエータにはＳＢＰ−２により通信を行える機器の列挙、通信を行うターゲットの選択、ターゲットに対する要求の発行（シグナル）、要求内容の保持や要求の実行に必要なデータ領域の確保等バッファ管理等の機能が必要となる。その一方、ある機器がターゲットとして動作可能なためには、イニシエータからの要求受付、指定されたバッファ領域からの要求内容やデータの取得、要求内容の実行、指定されたバッファ領域へのデータ転送等の機能が必要となる。
【００１３】
ところで、イニシエータからターゲットに対する動作要求は、ＯＲＢ（Ｏｐｅｒａｔｉｏｎ　Ｒｅｑｕｅｓｔ　Ｂｌｏｃｋ）とよばれるデータ構造をイニシエータのメモリ領域に確保し、その場所をターゲットに対してシグナルする（指定する）ことでなされる。ＯＲＢの場所をシグナルされたターゲットは、指定された場所から要求内容を示すＯＲＢを取得してそれによる動作を行う。ＯＲＢにはＭａｎａｇｅｍｅｎｔ　ＯＲＢと、Ｃｏｍｍａｎｄ　ｂｌｏｃｋ　ＯＲＢと、Ｄｕｍｍｙ　ＯＲＢの３つの種類がある。
Ｍａｎａｇｅｍｅｎｔ　ＯＲＢは通信接続の管理や実行される要求内容の管理などに用いられ、ＬＯＧＩＮ、ＱＵＥＲＹ　ＬＯＧＩＮ、ＲＥＣＯＮＮＥＣＴ、ＬＯＧＯＵＴ、ＡＢＯＲＴ　ＴＡＳＫ　ＳＥＴなどが有る。
Ｃｏｍｍａｎｄ　ｂｌｏｃｋ　ＯＲＢは機器の制御やデータ転送の要求を保持する。Ｄｕｍｍｙ　ＯＲＢは中身が空であり要求内容を何も持たない。
【００１４】
図３にはＳＢＰ−２での基本的な通信の手順が示されているが、この手順については後に詳しく説明する。
イニシエータは要求内容を元にＯＲＢを構築し、その要求内容がデータ転送を伴う場合には転送しようとするデータを格納するバッファを確保し、そのアドレスをＯＲＢ内に格納する。バッファのアドレス情報がＯＲＢ内に収まらない場合は、バッファのアドレス情報の一覧（ｐａｇｅ　ｔａｂｌｅ）を作成し、その一覧へのアドレスをＯＲＢに格納する場合もある。また、イニシエータからターゲットに対するデータ転送の場合は、転送するデータをイニシエータが確保したバッファに格納しておく。次に、イニシエータはアドレスをターゲットにシグナルする。ターゲットはシグナルされたＯＲＢを取得し、そのＯＲＢが保持している要求内容を実行する。このとき、データ転送が必要であれば、ＯＲＢ内又はＯＲＢ内に指定されたアドレス情報一覧のアドレスからバッファのアドレスを取得し、指定されたバッファのアドレスに対してデータ転送を行う。ターゲットは、必要であれば又はイニシエータから指定された場合、ＯＲＢの実行が終わるとイニシエータが指定したアドレスに対してその実行結果を書き込む。
【００１５】
図２は、データ転送装置２０１を用いた機器接続の一例を示す図である。図２では、データ転送装置２０１にＩＥＥＥ１３９４を介して２台のハードディスク２０２，２０３が接続されていて、マスターとなる一方のハードディスク２０２に記憶されている情報のすべての内容をもう一方のハードディスク２０３に転送して複製する。このような装置の接続は、例えばパソコン本体に内蔵されるハードディスクの初期状態を構成するために使用されている。この実施の形態において、ハードディスク２０２，２０３のデータ転送を司る手段はＩＥＥＥ１３９４バスに接続可能な一般的な機能しか保有していない。つまり、ＳＢＰ−２によるターゲットの機能しか有してなく、ターゲットとしてしか作動することができない。そこで、データ転送装置２０１にイニシエータ機能を実装してハードディスク２０２，２０３の間でのデータ転送を次のように仲介させている。
【００１６】
ここで、図２に示すデータ転送装置２０１の仲介によるハードディスク２０２，２０３の間でのデータ転送の手順について説明する。
以下の例では、Ｉ／Ｏパネル１０５にコピースイッチ（図示せず）が設けられていることを条件としている。つまり、そのコピースイッチが押された時点で、ハードディスク２０２，２０３より形式情報、容量等ハードディスクに付帯する情報を取得するようになっていて、これらの情報が合致しない場合は一方のハードディスクに記憶されている情報の複製は不可能であると判断され、データ転送は開始されない。
【００１７】
まず、処理開始後、データ転送に先立ち、取得された情報の合致を含む所定の条件が満たされているか否かを確認し、それが満たされていると判断された時点でデータ転送が開始される。このとき、データ転送の転送元となるハードディスクは、ＩＥＥＥ１３９４により自動的に振られるノード番号が０となったものとする。このとき、データ転送装置２０１を常にルートノードとなるように構成し、データ転送装置２０１の複数の１３９４ポート内で、ポート番号の一番若いものをデータ転送元、すなわちマスターハードディスクのみを接続するようにすることで、物理的にマスターハードディスクを指定することができる。
これに限らず、マスターハードディスクを決定する方法として、Ｉ／Ｏパネル１０５に設置された表示装置に接続する機器の一覧を表示し、ユーザがその機器の一覧からマスターハードディスクとするものを選ぶこと（ユーザに選択させること）をもって、なすこともできる。
【００１８】
以下の説明では、説明を簡略化するため、ハードディスク２０２がマスターハードディスクであるものとする。また、データの転送先となるハードディスクは残る一方、すなわち、ハードディスク２０３とする。これに限らず、データ転送先すなわちターゲットハードディスクを決定する方法として、マスターハードディスクの選択同様、Ｉ／Ｏパネル１０５に設置された表示装置に接続する機器の一覧を表示し、ユーザがその機器の一覧からターゲットハードディスクとするものを選ぶことをもって、なすことも出来る。こうすると、複数の機器が接続される環境下での転送元、転送先となる機器選択が行えるし、ユーザによる視覚的な選択が可能となり、システム構成や各機器の接続状態に柔軟性をもたせることができる。データ通信装置２０１は、こうして決定されたハードディスク２０２とハードディスク２０３との間でデータ転送を行わせる。
また、この実施の形態では、ターゲットハードディスク（ハードディスク２０３）は１台であるが、ターゲットハードディスクとなる機器が複数接続されていても良く、一つのマスターハードディスクから複数のターゲットハードディスクに対してデータ転送を行うように構成することも可能である。
【００１９】
一方のハードディスクの全領域に記憶されているデータを複製するためのデータ転送は、図３に示す部分的なデータ転送（部分データ転送）を繰り返し行うことによって実現される。以下、その一回の部分データ転送の手順について説明する。
まず、データ転送装置２０１はハードディスク２０２からデータを取得するために、ＣＰＵ１０１の指示により、取得データを格納するバッファ領域とＯＲＢを格納する領域、必要であればバッファのアドレス一覧の領域をＲＡＭ１０３上に確保（Ａｌｌｏｃａｔｉｏｎ）する（３０１）。また、ＣＰＵ１０１の指示により、確保されたＯＲＢの格納領域にデータ読み出しの要求内容を持つＯＲＢを作成（ｓｅｔｕｐ）し（３０２）、このＯＲＢをハードディスク２０２にシグナルする（３０３）。このとき、データ転送装置２０１はＯＲＢの実行が終了したとき、イニシエータ機能を実行するデータ転送装置２０１に対して、実行結果の告知を行うようにハードディスク２０２に指定しておく。ここで、データ読み出しの要求内容を持つＯＲＢの一例を図５に示す。
【００２０】
一方、ハードディスク２０２はデータ読み出し要求のＯＲＢをデータ転送装置２０１から取得し（３２１）、そのＯＲＢにより指定されているデータ領域の読み出しを記録メディアから読み出して、データ転送装置２０１が用意したバッファ領域に転送する（３２２）。このとき、バッファ領域がアドレス一覧の形式で指定された場合、その内容を読み出す動作も行うことは言うまでもない。そして、指定されたデータの読み出し及び転送が終了すると、ハードディスク２０２からデータ転送装置２０１に対して実行結果が告知される（３２３）。この実行結果の告知により、データ転送装置２０１はハードディスク２０２から自身が用意したバッファ領域に対するデータ転送が終了したことを認識（３０４）する。
【００２１】
次に、データ転送装置２０１は、データ転送終了を認識したときに実行結果が告知されたＯＲＢの読み出し要求を書き込み要求に書き換え（ｍｏｄｉｆｙ）して（３０５）データ転送要求の転送方向に依存する部分のみを変更し、その書き込み要求をハードディスク２０３にシグナルする（３０６）。データ読み出しの要求をデータ書き込み要求に書き換える際に変更しなければならない箇所は、図５の網掛け部分ａに示されている。すると、ハードディスク２０３はデータ転送装置２０１からデータ書き込み要求のＯＲＢを取得して（３３１）、そのＯＲＢに指定されているバッファ領域からデータを取得し（３３２）、ＯＲＢにより指定された記録メディアのデータ領域に対して書き込みを行う。このとき、バッファ領域がアドレス一覧の形式で指定された場合、その内容を読み出す動作も行うことは言うまでもない。指定されたデータの転送及び書き込みが終了すると、ハードディスク２０３からデータ転送装置２０１に対して実行結果が告知される（３３３）。この実行結果の告知により、データ転送装置２０１はバッファ領域からハードディスク２０３のデータ転送が終了したことを認識（３０７）し、使用済みとなったＯＲＢとバッファに使用された記憶領域を開放（ｆｒｅｅ）する（３０８）。
【００２２】
データ転送装置２０１と、ハードディスク２０２，２０３が以上の部分データ転送の手順を記録メディアの全領域に渡って繰り返すことにより、マスターハードディスク（ハードディスク２０２）に記憶されているすべての内容がターゲットハードディスク（ハードディスク２０３）に対して複製されることになる。
以上のようにして、データ転送装置２０１は、Ｉ／Ｆ１０４を介して接続されるハードディスク２０２，２０３がターゲット機能にしたがって作動することからイニシエータ機能による動作を実行して、ハードディスク２０２とハードディスク２０３の間のデータ転送を仲介しているから、非対称な通信プロトコルによるデータ転送機能の一方（ターゲット機能）しか持たない機器間のみでは不可能であったデータ転送を可能とする。
以上の構成に加え、記憶されているすべての内容の転送が終了した時点で、Ｉ／Ｏパネル１０５に設置された表示装置にデータ転送が終了したことを表示してそのことをユーザに告知するように構成してもよい。
【００２３】
上述した部分データ転送において、ハードディスク２０２，２０３で実行される手順は、それらがパソコン等に接続されて通常のハードディクスとして使用されているときとまったく同じ動作での手順であり、ハードディスク２０２，２０３からみれば、データの転送要求をデータ転送装置２０１がしているのか、そのパソコンがしているのかの区別はつかない。つまり、ハードディスク２０２，２０３のように、ＩＥＥＥ１３９４のバスに接続可能なハードディスクであれば、データ転送装置２０１を介在させることによって上述のように作動させることが可能である。また、ＩＥＥＥ１３９４のインターフェースを持たないハードディスク、例えばＡＴＡインターフェースにより接続するハードディスクでも、ＡＴＡ−１３９４変換アダプタ等の機器を介在させてＩＥＥＥ１３９４のバスに接続することで、同様の作用効果をなすことが可能である。
【００２４】
（第２の実施の形態）
図４は、データ転送装置２０１を用いた機器接続の別の例を示す図である。図４では、データ転送装置２０１が、Ｉ／Ｆ１０４を介してスキャナ４０２と、プリンタ４０３と、デジタルカメラ４０４と、ハードディスク４０５と、ファクシミリ装置４０６とが接続されている。この接続では、スキャナ４０２、デジタルカメラ４０４及びハードディスク４０５から取得されたデータをプリンタ４０３、ハードディスク４０５、ファクシミリ装置４０６に転送する場合を想定していて、例えばスキャナ４０２からプリンタ４０３にデータ転送することにより、スキャナ４０２により走査された画像データをプリンタ４０３で出力する場合などに使用される。以下、スキャナ４０２により走査された画像データをプリンタ４０３で出力する場合を例にとって説明する。
【００２５】
この実施の形態では、スキャナ４０２とプリンタ４０３はデータ転送を司る手段がそれぞれＩＥＥＥ１３９４のバスに接続可能な一般的スキャナ、プリンタの機能しか保有していない。つまりＳＢＰ−２のターゲットとしてしか作動することができない。そこで、データ転送装置２０１にイニシエータの機能を実装し、スキャナ４０２とプリンタ４０３との間でのデータ転送の次のように仲介をさせている。
以下の例でも、Ｉ／Ｏパネル１０５に設置されたコピースイッチ（図示せず）が設けられていることを条件としている。つまり、そのコピースイッチが押された時点で、スキャナ４０２より形式情報、画像密度、データ形式など、スキャナの提供するデータに付帯する情報を取得し、プリンタ４０３より形式情報、印字可能な紙サイズ、出力可能なデータ形式など、プリンタ４０３の提供するサービスに付帯する情報を取得するようになっている。これらの情報が合致しない場合は、スキャナ４０２による走査画像データの出力は不可能であると判断され、データ転送が開始されない。
【００２６】
さらに、データ転送元、この例ではスキャナ４０２を決定する方法として、Ｉ／Ｏパネル１０５に設置された表示装置に接続する機器の一覧を表示し、ユーザがその機器の一覧からデータ転送元とするもの（スキャナ４０２）を選ぶこと（ユーザに選択させること）をもってなすこともできる。ここで、スキャナ４０２はＩ／Ｆ１０４を介して接続する唯一のスキャナである必要はない。データ転送装置２０１に複数のスキャナが接続している場合には、それぞれのスキャナからいずれかを選択させるための選択肢をＩ／Ｏパネル１０５に設置された表示装置に表示して、その中からデータ転送元となるスキャナを選択させてもよい。
【００２７】
また、データ転送先、この例ではプリンタ４０３を決定する所定の方法として、Ｉ／Ｏパネル１０５に設置された表示装置に接続する機器の一覧を表示し、ユーザがその機器の一覧からデータ転送元とするもの（プリンタ４０３）を選ぶことをもってなすこともできる。ここで、プリンタ４０３はＩ／Ｆ１０４を介して接続する唯一のプリンタである必要はない。データ転送装置２０１に複数のプリンタが接続している場合には、それぞれのプリンタからいずれかを選択させるための選択肢を表示し、その中からデータ転送先となるプリンタを選択させてもよい。
さらに、転送先として複数の機器を選択させてスキャナ４０２からのデータを複数のプリンタで同時に出力するように構成してもよい。また、機器の特性として、例えばスキャナのようにデータ転送元としてだけ作動するもの、逆にプリンタのようにデータ転送先としてだけ作動するものがあるが、このような機器はデータ転送元、データ転送先のそれぞれをユーザが指定する際に、選択の候補として表示しない或いは表示を変える（例えば明るさを薄く表示する）ことによってユーザが選択できないことを表示することも可能である。
【００２８】
スキャナ４０２の走査した画像データをプリンタ４０３で出力するためのデータ転送は、図３に示す部分データ転送を繰り返し行う一連のデータ転送によって実現される。図４に示す機器接続の構成におけるその一回の部分データ転送の手順について図３を用いて説明する。なお、この一連のデータ転送に先立ち、スキャナ４０２に対して走査する画像の領域を指定し、プリンタ４０３に対して出力用紙サイズを指定するなど、画像の走査及び出力に必要な情報を予め個別に転送しておく。
まず、データ転送装置２０１はスキャナ４０２からデータを取得するために、ＣＰＵ１０１の指示により、取得データを格納するバッファ領域とＯＲＢを格納する領域、必要であればバッファのアドレス一覧の領域をＲＡＭ１０３上に確保（Ａｌｌｏｃａｔｉｏｎ）する（３０１）。また、ＣＰＵ１０１の指示により、確保されたＯＲＢの格納領域にデータ読み出しの要求内容を持つＯＲＢを作成（ｓｅｔｕｐ）し（３０２）、このＯＲＢをスキャナ４０２にシグナルする（３０３）。このとき、イニシエータ機能を有するデータ転送装置２０１に対して、ＯＲＢの実行終了時に実行結果の告知を行うようにスキャナ４０２に指定しておく。ここで、データ読み出しの要求内容を持つＯＲＢの一例を図６に示す。
【００２９】
一方、スキャナ４０２はデータ読み出し要求のＯＲＢをデータ転送装置２０１から取得し（３２１）、そのＯＲＢに指定されている走査領域の画像データを、データ転送装置２０１が用意したバッファ領域に転送する（３２２）。このとき、バッファの領域がアドレス一覧の形式で指定された場合、その内容を読み出す動作も行うことは言うまでもない。そして、指定されたデータの読み出し及び転送が終了すると、スキャナ４０２からデータ転送装置２０１に対して実行結果が告知される（３２３）。この実行結果の告知により、データ転送装置２０１はスキャナ４０２から自身が用意したバッファ領域に対するデータ転送が終了したことを認識（３０４）する。
【００３０】
次に、データ転送装置２０１は、データ転送終了を認識したときに実行結果が告知されたＯＲＢの読み出し要求を出力要求に書き換え（ｍｏｄｉｆｙ）し（３０５）、その書き込み要求をプリンタ４０３にシグナルする（３０６）。データ読み出しの要求内容をデータ出力要求に書き換える際に変更しなければならない箇所は図６の網掛け部分ｂに示されている。すると、プリンタ４０３はデータ転送装置２０１からデータ出力要求のＯＲＢを取得して（３３１）、そのＯＲＢに指定されているバッファ領域からデータを取得し（３３２）、ＯＲＢに指定された出力領域に対して印刷を行う。このとき、バッファ領域がアドレス一覧の形式で指定された場合、その内容を読み出す動作も行うことは言うまでもない。指定されたデータの転送及び書き込みが終了すると、プリンタ４０３からデータ転送装置２０１に対して実行結果が告知される（３３３）。この実行結果の告知により、データ転送装置２０１はバッファ領域からプリンタ４０３のデータ転送が終了したことを認識（３０７）し、使用済みとなったＯＲＢとバッファに使用された記憶領域を開放（ｆｒｅｅ）する（３０８）。
【００３１】
ここで、転送先として指定されたプリンタ４０３が複数の機器であり、各プリンタ４０３に対してデータ転送を行い並行して出力を行うような場合、使用済みとなったＯＲＢとバッファに使用された記憶領域を開放（３０８）するのは、転送先のすべてのプリンタ４０３よりデータ転送の実行結果が告知（３３３）されたときとする。
データ転送装置２０１と、スキャナ４０２、プリンタ４０３が以上の部分データ転送の手順を画像操作の全領域に渡って繰り返すことにより、スキャナ４０２が走査した画像データのすべての内容がプリンタ４０３に対して転送されて出力される。
以上の構成に加え、すべての内容の転送が終了した時点で、Ｉ／Ｏパネル１０５に設置された表示装置にデータ転送が終了したことを表示して、そのことをユーザに告知するように構成してもよい。
【００３２】
上述した部分データ転送において、スキャナ４０２、プリンタ４０３で実行される手順は、パソコン等に接続されて通常のスキャナやプリンタとして使用されているときとまったく同じ動作での手順であり、スキャナ４０２、プリンタ４０３からみれば、データの転送要求をデータ転送装置２０１がしているのか、そのパソコンがしているのかの区別はつかない。つまり、スキャナ４０２、プリンタ４０３のように、ＩＥＥＥＥ１３９４のバスで接続可能なスキャナやプリンタであれば、データ転送装置２０１を介在させることによって上述のように作動させることが可能である。
上述のように、ＳＢＰ−２のように非対称の通信モデルを採用する通信手順によりデータ転送を行う機器同士で、どちらか一方、この実施の形態ではＳＢＰ−２のターゲット機能しか保有しない機器同士も、データ転送装置２０１がスキャナ４０２、プリンタ４０３に応じてイニシエータ機能による動作を実行して、両者間のデータ転送を仲介しているから、データ転送装置２０１を介在させることでデータ転送を行えるようになる。
【００３３】
一方、この発明によるデータ転送装置とは異なる従来の一般的なデータ転送装置３００を使用して同じような通信を行う場合、そのデータ転送装置は、通信を行う一方の機器から一旦データを取得した後、もう一方の機器にデータを書き込むことになる。この時、データ転送に付随する情報はすべて消去されてしまう。具体的には、各機器に対して要求内容を伝えるＯＲＢはそれぞれの要求実行の段階で作成され、データ取得、データ書き込みのそれぞれが終わった時点で破棄されてしまうため、ＯＲＢの領域管理や内容の構成、破棄に伴うオーバヘッドが生じてしまう。また、図８に示すように、データフローの全体がＳＢＰ−２ドライバ３００ａと、ＩＥＥＥ１３９４デバイスドライバ３００ｂのほかの領域３００ｃを経由して流れることにより長くなるため、転送速度がどうしても低下してしまう。これに対して、この発明によるデータ転送装置２０１を介在させて機器同士で通信を行う場合、データフローは、図７に示すように、ＳＢＰ−２ドライバ２０１ａと、ＩＥＥＥ１３９４デバイスドライバ２０１ｂとを流れることにより短くなるため、転送速度が速くなる。また、ＯＲＢの作成及び削除の回数も減るため、効率的な転送が行えることになる。
【００３４】
上述の説明では、シリアルバスとして、ＩＥＥＥ１３９４を採用したＩＥＥＥ１３９４にしたがう通信インターフェースに基づいて説明した。これによれば、市販されている数多くの機器間でのデータ転送が可能となる。また、この発明はＵＳＢ（Ｕｎｉｖｅｒｓａｌ　Ｓｅｒｉａｌ　Ｂｕｓ）を用いた場合にも適用可能である。この場合も、市販されている数多くの機器間でのデータ転送が可能となる。ＵＳＢの規格自体が非対称な通信モデルであることから、この実施の形態で使用したＳＢＰ−２等のデータ転送手順によることなく、この発明による作用効果を享受することが可能となる。
【００３５】
【発明の効果】
以上説明してきたように、非対称な通信モデルによりデータ転送を行う機器同士でも、この発明によるデータ転送装置を介在させることにより、データ転送が可能になる。
【図面の簡単な説明】
【図１】この発明によるデータ転送装置内部の主要な構成を示すブロック図である。
【図２】この発明によるデータ転送装置を用いた機器接続の一例を示す図である。
【図３】図２又は図４に示す機器接続によるＳＢＰ−２での基本的な通信の手順を示す図である。
【図４】この発明によるデータ転送装置を用いた別の機器接続の一例を示す図である。
【図５】データ読み出しの要求内容を持つＯＲＢの一例を示す図である。
【図６】データ読み出しの要求内容を持つＯＲＢの一例を示す図である。
【図７】データ転送装置によるデータ転送時のデータフローを示す図である。
【図８】従来技術によるデータ転送時のデータフローを示す図である。
【符号の説明】
１０１：ＣＰＵ　　　　　　　１０２：ＲＯＭ
１０３：ＲＡＭ　　　　　　　１０４：Ｉ／Ｆ
１０５：Ｉ／Ｏパネル　　　　１０６：システムバス
２０１：データ転送装置
２０２，２０３：ハードディスク
２０１ａ：ＳＢＰ−２ドライバ
２０１ｂ：ＩＥＥＥ１３９４デバイスドライバ
４０２：スキャナ　　　　　　４０３：プリンタ
４０４：デジタルカメラ　　　４０５：ハードディスク
４０６：ファクシミリ装置
【図１】
2004013828.tif 000003
【図２】
2004013828.tif 000004
【図３】
2004013828.tif 000005
【図４】
2004013828.tif 000006
【図５】
2004013828.tif 000007
【図６】
2004013828.tif 000008
【図７】
2004013828.tif 000009
【図８】
2004013828.tif 000010