(57)【要約】【課題】ＵＳＢ接続される外部記憶機器に対してＵＳＢ接続されるホスト機器からのデータの読み書きを簡易な構成で可能にする。【解決手段】メモリーカードが挿入されたときには（Ｓ１１０）、ＵＳＢＤｅｖｉｃｅに対してカードの接続を有効なものとしてリムーバブルメディアが接続されたことを示す「Unit Attention」がホスト機器であるＰＣに送信されるよう設定してＰＣからのアクセスを許可し（Ｓ１３０，１５０，１６０）、ストレージ機器としてメモリーカードと同一のプロトコルを用いてアクセス可能なダイレクトアクセスデバイスが接続されたときには（Ｓ１２０）、ＵＳＢＤｅｖｉｃｅに対してストレージ機器の接続を有効なものとしてメモリーカード挿入時と共通の応答である「Unit Attention」がＰＣに送信されるよう設定してＰＣからのアクセスを許可する（Ｓ１４０〜１６０）。【選択図】図４
2011100311.tif 000002
【特許請求の範囲】
【請求項１】
記憶媒体が着脱可能な内部記憶機器を内蔵し、ＵＳＢマスストレージクラスに基づく通信が可能なＵＳＢのホスト機器に接続されると共にＵＳＢの外部記憶機器が接続されるＵＳＢ装置であって、
前記ホスト機器と通信が可能な第１のコントローラーと、
前記外部記憶機器と通信が可能な第２のコントローラーと、
前記記憶媒体と通信が可能な第３のコントローラーと、
前記内部記憶機器に前記記憶媒体が装着されたときにアクセス許可の通知が前記ホスト機器に送信されるよう前記第１のコントローラーに送信し該送信した以降に前記第１のコントローラーにより受信された前記ホスト機器からのデータの読み書きの要求を前記記憶媒体に対する要求として前記第３のコントローラーに転送し該転送した要求に対する応答を前記ホスト機器に対する応答として前記第１のコントローラーに転送する第１の転送制御と、前記外部記憶機器が接続されたときに前記アクセス許可の通知と共通の通知を前記第１のコントローラーに送信し該送信した以降の前記ホスト機器からのデータの読み書きの要求を前記外部記憶機器に対する要求として前記第２のコントローラーに転送し該転送した要求に対する応答を前記ホスト機器に対する応答として前記第１のコントローラーに転送する第２の転送制御と、を選択的に実行する転送制御手段と
を備えるＵＳＢ装置。
【請求項２】
前記転送制御手段は、前記記憶媒体が装着されて前記第１の転送制御を実行している最中に前記外部記憶機器が接続された場合には、前記第２の転送制御を実行することなく前記第１の転送制御を継続して実行する手段である請求項１記載のＵＳＢ装置。
【請求項３】
前記転送制御手段は、前記第１の転送制御を継続して実行している最中に前記記憶媒体が取り外された場合には、該第１の転送制御を中止して前記第２の転送制御を実行する手段である請求項２記載のＵＳＢ装置。
【請求項４】
請求項１ないし３いずれか１項に記載のＵＳＢ装置であって、
前記内部記憶機器としてＵＳＢマスストレージクラスにおけるダイレクトアクセスデバイスに対応した機器を内蔵し、
前記転送制御手段は、前記外部記憶機器としてダイレクトアクセスデバイスに対応した機器が接続されることを条件に前記第２の転送制御を実行する手段である
ＵＳＢ装置。
【請求項５】
前記ホスト機器としてＵＳＢプリンタークラスに基づく通信が可能な機器に接続され、前記第１のコントローラーが該ホスト機器から受信した印刷用データに基づいて印刷が可能な印刷装置として構成されてなる請求項１ないし４いずれか１項に記載のＵＳＢ装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ＵＳＢ装置に関し、詳しくは、記憶媒体が着脱可能な内部記憶機器を内蔵し、ＵＳＢマスストレージクラスに基づく通信が可能なＵＳＢのホスト機器に接続されると共にＵＳＢの外部記憶機器が接続されるＵＳＢ装置に関する。
【背景技術】
【０００２】
従来より、この種のＵＳＢ装置としては、カードスロットなどの内部記憶機器に挿入されたメモリーカードのデータからの印刷が可能で、パーソナルコンピューターなどのＵＳＢのホスト機器に接続されると共にハードディスクドライブなどのＵＳＢの外部記憶機器が接続されるプリンターが提案されている（例えば、特許文献１参照）。この装置は、ＵＳＢのホスト機器に対してはプリンターデバイスとストレージデバイスとからなるマルチインターフェースのデバイスとして機能して、ホスト機器から送信される印刷データに基づいて印刷したりホスト機器からの要求に基づいてメモリーカードへデータを読み書きしたりすることができる。また、ＵＳＢの外部記憶機器に対してはホストとして機能して、メモリーカードのデータを外部記憶機器にバックアップすることができる。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００８−１００５２７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
上述したようなＵＳＢ装置においては、マルチインターフェースのストレージデバイスとしてホスト機器から内部記憶機器へのアクセスを可能とするものの、通常はホスト機器から外部記憶機器に簡易な構成でアクセスすることはできない。
【０００５】
本発明のＵＳＢ装置は、ＵＳＢ接続される外部記憶機器に対しＵＳＢ接続されるホスト機器からのデータの読み書きを簡易な構成で可能にすることを主目的とする。
【課題を解決するための手段】
【０００６】
本発明のＵＳＢ装置は、上述の主目的を達成するために以下の手段を採った。
【０００７】
本発明のＵＳＢ装置は、
記憶媒体が着脱可能な内部記憶機器を内蔵し、ＵＳＢマスストレージクラスに基づく通信が可能なＵＳＢのホスト機器に接続されると共にＵＳＢの外部記憶機器が接続されるＵＳＢ装置であって、
前記ホスト機器と通信が可能な第１のコントローラーと、
前記外部記憶機器と通信が可能な第２のコントローラーと、
前記記憶媒体と通信が可能な第３のコントローラーと、
前記内部記憶機器に前記記憶媒体が装着されたときにアクセス許可の通知が前記ホスト機器に送信されるよう前記第１のコントローラーに送信し該送信した以降に前記第１のコントローラーにより受信された前記ホスト機器からのデータの読み書きの要求を前記記憶媒体に対する要求として前記第３のコントローラーに転送し該転送した要求に対する応答を前記ホスト機器に対する応答として前記第１のコントローラーに転送する第１の転送制御と、前記外部記憶機器が接続されたときに前記アクセス許可の通知と共通の通知を前記第１のコントローラーに送信し該送信した以降の前記ホスト機器からのデータの読み書きの要求を前記外部記憶機器に対する要求として前記第２のコントローラーに転送し該転送した要求に対する応答を前記ホスト機器に対する応答として前記第１のコントローラーに転送する第２の転送制御と、を選択的に実行する転送制御手段と
を備えることを要旨とする。
【０００８】
この本発明のＵＳＢ装置では、内蔵する内部記憶機器に記憶媒体が装着されたときにアクセス許可の通知がホスト機器に送信されるよう第１のコントローラーに送信し送信した以降に第１のコントローラーにより受信されたホスト機器からのデータの読み書きの要求を記憶媒体に対する要求として第３のコントローラーに転送し転送した要求に対する応答をホスト機器に対する応答として第１のコントローラーに転送する第１の転送制御と、外部記憶機器が接続されたときに記憶媒体が取り付けられたときのアクセス許可の通知と共通の通知を第１のコントローラーに送信し送信した以降のホスト機器からのデータの読み書きの要求を外部記憶機器に対する要求として第２のコントローラーに転送し転送した要求に対する応答をホスト機器に対する応答として第１のコントローラーに転送する第２の転送制御と、を選択的に実行する。これにより、外部記憶機器が接続された場合に、内部記憶機器に記憶媒体が装着されたときと同様にホスト機器に通知することができると共にホスト機器からのデータの読み書きの要求を外部記憶機器に対する要求として適切に対処することができる。この結果、ＵＳＢ接続される外部記憶機器に対しＵＳＢ接続されるホスト機器からのデータの読み書きを簡易な構成で可能にすることができる。
【０００９】
こうした本発明のＵＳＢ装置において、前記転送制御手段は、前記記憶媒体が装着されて前記第１の転送制御を実行している最中に前記外部記憶機器が接続された場合には、前記第２の転送制御を実行することなく前記第１の転送制御を継続して実行する手段であるものとすることもできる。こうすれば、第１の転送制御を実行している途中で第２の転送制御を割り込ませて実行するなどの煩雑な処理を行なう必要がない。この態様の本発明のＵＳＢ装置において、前記転送制御手段は、前記第１の転送制御を継続して実行している最中に前記記憶媒体が取り外された場合には、該第１の転送制御を中止して前記第２の転送制御を実行する手段であるものとすることもできる。
【００１０】
また、本発明のＵＳＢ装置において、前記内部記憶機器としてＵＳＢマスストレージクラスにおけるダイレクトアクセスデバイスに対応した機器を内蔵し、前記転送制御手段は、前記外部記憶機器としてダイレクトアクセスデバイスに対応した機器が接続されることを条件に前記第２の転送制御を実行する手段であるものとすることもできる。こうすれば、外部記憶機器に対する読み書きの処理を記憶媒体に対する読み書きの処理と共通のものとすることができる。
【００１１】
さらに、本発明のＵＳＢ装置において、前記ホスト機器としてＵＳＢプリンタークラスに基づく通信が可能な機器に接続され、前記第１のコントローラーが該ホスト機器から受信した印刷用データに基づいて印刷が可能な印刷装置として構成されてなるものとすることもできる。
【図面の簡単な説明】
【００１２】
【図１】通信システム１０の構成の概略を示す構成図。
【図２】ＰＣ２０のＵＳＢ通信に関する機能を示すブロック図。
【図３】プリンター３０のＵＳＢ通信に関する機能を示すブロック図。
【図４】通信処理の一例を示すフローチャート。
【図５】通信処理時の通信内容の一例を示す説明図。
【発明を実施するための形態】
【００１３】
次に、本発明の実施の形態を図面を用いて説明する。図１は、本発明の一実施形態であるＵＳＢのホスト機器としてのパーソナルコンピューター（以下、「ＰＣ」とする）２０とＵＳＢ装置としてのプリンター３０とを含む通信システム１０の構成の概略を示す構成図である。
【００１４】
ＰＣ２０は、各種制御を実行するＣＰＵ２２や各種制御プログラムを記憶するＲＯＭ２３，データを一時的に記憶するＲＡＭ２４などを備えたコントローラー２１と、各種アプリケーションプログラムや各種データファイルを記憶するハードディスクドライブ（以下、「ＨＤＤ」とする）２５と、キーボードやマウスからなる操作部２６と、ディスプレイとしての表示部２７と、ＵＳＢ接続されるプリンター３０とデータのやり取りを行なうＵＳＢコントローラー２８とを備え、これらがバス２９を介して互いに各種信号やデータのやり取りをすることができるよう接続された汎用のパーソナルコンピューターである。なお、図示は省略したが、プリンター３０をＵＳＢ接続するためのＵＳＢケーブルは、ＶＢＵＳラインとＧＮＤラインの２本の電源系ラインとＤ＋ラインとＤ−ラインの２本の信号系ラインとからなり、ＵＳＢコントローラー２８は、Ｄ＋ライン用の端子やＤ−ライン用の端子が所定の電位となったことによりプリンター３０の接続を検出することができる。また、ＰＣ２０にＵＳＢのストレージデバイスが接続されると、表示部２７の所定の画面には、ストレージデバイスがマウントされたことを示すリムーバブルディスクのアイコンが表示される。
【００１５】
プリンター３０は、各種制御を実行するＣＰＵ３２や各種制御プログラムを記憶するＲＯＭ３３，データを一時的に記憶するＲＡＭ３４などを備えたメインコントローラー３１と、印刷データに基づいてインクを記録紙に吐出することにより印刷を行なうインクジェット方式のプリンター機構としてのプリンターユニット３５と、原稿台に載置された原稿を光学的に読み取って画像データを生成するイメージスキャナーとしてのスキャナーユニット３６と、複数種のメモリーカードＭＣを挿入可能なカードスロット３７に挿入されたメモリーカードＭＣとの間で画像データの入出力を司るカードコントローラー３８と、電源ボタンや動作モードを選択するモード選択ボタン，動作の実行を開始するスタートボタンなどからなる操作部３９と、ＵＳＢ接続されるＰＣ２０とデータのやり取りを行なうＵＳＢデバイスコントローラーとしてのＵＳＢＤｅｖｉｃｅ４２と、ＵＳＢ接続されるＨＤＤやＵＳＢメモリー，ＣＤ／ＤＶＤドライブなどのストレージ機器８０とデータのやり取りを行なうＵＳＢホストコントローラーとしてのＵＳＢＨｏｓｔ４４とを備え、これらはバス４９を介して互いに各種信号やデータのやり取りをすることができるよう接続されている。カードコントローラー３８は、カードスロット３７へのメモリーカードＭＣの着脱を電気的な導通の有無や図示しない機械的な検出スイッチのオンオフなどにより検出し、検出信号としてメインコントローラー３１に送信する。また、ＵＳＢＨｏｓｔ４４は、ストレージ機器８０の接続を上述したＰＣ２０のＵＳＢコントローラー２８による接続の検出と同様に検出し、検出信号としてメインコントローラー３１に送信する。なお、モード選択ボタンにより選択可能な動作モードとしては、原稿台の原稿を読み取るスキャンモードや原稿台の画像を読み取って印刷を行なうコピーモード，メモリーカードＭＣに記憶されている画像データを入力して印刷を行なうメモリーカードモード，メモリーカードＭＣに記憶されている画像データを入力してストレージ機器８０にバックアップするバックアップモードなどがある。
【００１６】
ＵＳＢＤｅｖｉｃｅ４２は、ＵＳＢのコンポジットデバイスであり、プリンター３０はプリンタークラスとイメージクラスとマスストレージクラスとからなるマルチインターフェースのデバイスとして機能することができる。このため、ＰＣ２０からの印刷データを含む印刷要求に基づいてプリンターユニット３５で印刷を行なったり、スキャン要求に基づいてスキャナーユニット３６で生成された画像データをＰＣ２０に出力したりすることなどができる。なお、ＰＣ２０からの各種要求に基づく動作はいずれの動作モードであっても可能となっている。
【００１７】
こうして構成されたＰＣ２０とプリンター３０のＵＳＢ通信に関する機能について説明する。まず、ＰＣ２０について説明する。図２は、ＰＣ２０のＵＳＢ通信に関する機能を示すブロック図である。図示するように、ＰＣ２０は、各種アプリケーションプログラムからなるアプリケーション層５０と、各種デバイスの制御をしたりアプリケーション層５０で生成された各種要求などのデータを下位側ドライバーに適合した形式に変換して送信したりするデバイスマネージャー５１と、デバイスマネージャー５１から送信されたデータをＵＳＢの各デバイスクラスに従ったデータ形式に変換して送信するＵＳＢクラスドライバー５３と、データ通信を行なう物理層であるＵＳＢ（ＰＨＹ）５７と通信先のプリンター３０とのＵＳＢ接続の確立や切断を制御したりＵＳＢ（ＰＨＹ）５７からのデータの送受信を制御したりするＵＳＢデバイスドライバー５５とを備えている。
【００１８】
ＵＳＢクラスドライバー５３は、本実施形態では、デバイスクラスとしてプリンタークラスとイメージクラス，マスストレージクラスにそれぞれ対応したプロトコルを用いるドライバーからなる。例えば、マスストレージクラスのドライバーでは、ＳＣＳＩ（Small Computer System Interface）のプロトコルが用いられる。また、マスストレージクラスでは、デバイスタイプに応じてＳＣＳＩに代えてＡＴＡＰＩ（At Attachment Packet Interface）のプロトコルを用いる。具体的には、デバイスタイプがメモリーカードＭＣ用のカードスロットやＨＤＤ，ＵＳＢメモリーなどのダイレクトアクセスデバイスの場合にはＳＣＳＩを用い、デバイスタイプがＣＤ／ＤＶＤドライブなどのＯＤＤ（Optical Disk Device）の場合にはＡＴＡＰＩのプロトコルを用いる。
【００１９】
ＵＳＢデバイスドライバー５５は、プリンター３０の接続が検出されると、通信に使うアドレスの指定やコンフィギュレーションの設定、プリンター３０のベンダーＩＤやプロダクトＩＤ，デバイスクラスなどの機器情報の取得（「Get Descriptor」コマンドの送信）などを伴ってＵＳＢ接続を確立する。また、ＵＳＢ接続を確立すると、ポーリングとしてプリンター３０の状態の問い合わせ（「Test Unit Ready」コマンドの送信）などを行なう。なお、機器情報の取得によりマスストレージクラスが確認されると、ＵＳＢクラスドライバー５３によりマスストレージクラスのドライバーがロードされ、また、上述したように表示部２７の所定の画面にリムーバブルディスクのアイコンが表示される。
【００２０】
次に、プリンター３０の通信機能について説明する。図３は、プリンター３０のＵＳＢ通信に関する機能を示すブロック図である。図３では、ＵＳＢＤｅｖｉｃｅ４２側の機能を「ＵＳＢＤ」としＵＳＢＨｏｓｔ４４側の機能を「ＵＳＢＨ」として図示する。なお、ＰＣ２０の各機能と同様の機能については説明を省略する。図示するように、プリンター３０は、アプリケーション層６０と、デバイスマネージャー６１と、ＵＳＢＤｅｖｉｃｅ４２に対する有効なストレージデバイスを選択するストレージセレクター６２と、ＵＳＢＤｅｖｉｃｅ４２側のクラスドライバーとしてのＵＳＢＤクラスドライバー６３と、ＰＣ２０とデータ通信を行なう物理層であるＵＳＢＤ（ＰＨＹ）６７を制御するＵＳＢＤデバイスドライバー６５と、ＵＳＢＨｏｓｔ４４側のクラスドライバーとしてのＵＳＢＨクラスドライバー６４と、ストレージ機器８０とデータ通信を行なう物理層であるＵＳＢＨ（ＰＨＹ）６８を制御するＵＳＢＨデバイスドライバー６６と、カードスロット３７に挿入される複数種のメモリーカードＭＣのうち最も先に挿入されているものを有効なメモリーカードＭＣとして選択するカードセレクター７１と、データ通信を行なう物理層であるカードコントローラー（ＰＨＹ）７３とメモリーカードＭＣとの接続の確立や切断を制御したりメモリーカードＭＣの種類に応じてカードコントローラー（ＰＨＹ）７３からのデータの送受信を制御したりするカードドライバー７２とを備えている。
【００２１】
ストレージセレクター６２は、カードスロット２７に挿入されカードセレクター７１に選択されたメモリーカードＭＣかＵＳＢＨｏｓｔ４４に接続されたストレージ機器８０かのいずれかをＵＳＢＤｅｖｉｃｅ４２に対する有効なストレージデバイスとして選択する。上述したように、プリンター３０はストレージデバイスとして機能するが、ストレージセレクター６２により有効として選択された方をＰＣ２０に対するストレージデバイスとして、ＵＳＢＤｅｖｉｃｅ４２側との接続を有効とするのである。即ち、ストレージセレクター６２によりメモリーカードＭＣが有効とされると、ＵＳＢＤｅｖｉｃｅ４２側（ＵＳＢＤクラスドライバー６３，ＵＳＢＤデバイスドライバー６５，ＵＳＢＤ（ＰＨＹ）６７）とカードコントローラー３８側（カードセレクター７１，カードドライバー７２，カードコントローラー（ＰＨＹ）７３）とが通信可能となる。一方、ストレージセレクター６２によりストレージ機器８０が有効とされると、ＵＳＢＤｅｖｉｃｅ４２側とＵＳＢＨｏｓｔ４４側（ＵＳＢＨクラスドライバー６４，ＵＳＢＨデバイスドライバー６６，ＵＳＢＨ（ＰＨＹ）６８）とが通信可能となる。なお、ストレージセレクター６２による選択の詳細については後述する。
【００２２】
次に、こうして構成された本実施形態の通信システム１０の動作、特に、ストレージデバイスとしてのプリンター３０とＰＣ２０との通信動作について説明する。図４は、プリンター３０のメインコントローラー３１により実行される通信処理の一例を示すフローチャートである。この処理は、ＰＣ２０とのＵＳＢ接続が確立されたときに実行される。
【００２３】
通信処理が開始されると、メインコントローラー３１は、まず、ＰＣ２０から送信される「Test Unit Ready」コマンドに対する応答に「Nodisk」を設定する（ステップＳ１００）。次に、メモリーカードＭＣが挿入されたか否かを判定し（ステップＳ１１０）、メモリーカードＭＣが挿入されていないと判定したときには、ストレージ機器８０としてＨＤＤなどのダイレクトアクセスデバイスが接続されたか否かを判定する（ステップＳ１２０）。ここで、メモリーカードＭＣの挿入の判定はカードコントローラー３８から送信される検出信号により行ない、ダイレクトアクセスデバイスの接続の判定については後述する。なお、以下の説明では、説明の便宜上メモリーカードＭＣの「挿入」を「接続」ということがある。ステップＳ１２０でストレージ機器８０としてダイレクトアクセスデバイスが接続されていないと判定したときには、ステップＳ１００に戻り処理を繰り返す。なお、本処理は、ＰＣ２０とのＵＳＢ接続が解除されるまで行なわれる。
【００２４】
ステップＳ１１０でメモリーカードＭＣが挿入されたと判定したときには、ＵＳＢＤｅｖｉｃｅ４２に対してメモリーカードＭＣの接続を有効とする（ステップＳ１３０）。即ち、ストレージセレクター６２によりメモリーカードＭＣが有効なストレージとして選択され、ＰＣ２０に対するストレージデバイスとしてメモリーカードＭＣ（カードスロット２７）が機能することになる。次に、「Test Unit Ready」コマンドに対する応答にリムーバブルメディアが接続されたことを示す「Unit Attention」（Media may have change)を設定する（ステップＳ１５０）。「Unit Attention」を設定した以降は、ＰＣ２０からのアクセスを許可する（ステップＳ１６０）。アクセスを許可すると、例えば、ＰＣ２０からＳＣＳＩのプロトコルにおけるデータの読み込みを要求する「Read」コマンドが送信されたときには、メモリーカードＭＣに対する要求としてカードコントローラー２８に「Read」コマンドを転送し、カードコントローラー２８にメモリーカードＭＣからデータの読み出しを行なわせる。また、カードコントローラー２８を介してメモリーカードＭＣから読み出されたデータなどの応答をＵＳＢＤｅｖｉｃｅ４２に転送し、ＵＳＢＤｅｖｉｃｅ４２からＰＣ２０に対する応答としてＰＣ２０に送信する。なお、ＰＣ２０からデータの書き込みを要求する「Write」コマンドが送信されたときにも同様な処理が行なわれる。そして、有効なストレージの接続が解除されたと判定するまで（ステップＳ１７０）、この場合はメモリーカードＭＣが抜かれたと判定するまでＰＣ２０からのアクセスを許可し、有効なストレージの接続が解除されたと判定したときには、ステップＳ１００に戻り処理を繰り返す。
【００２５】
一方、ステップＳ１１０でメモリーカードＭＣが挿入されていないと判定し、続くステップＳ１２０でストレージ機器８０としてダイレクトアクセスデバイスが接続されたと判定したときには、ＵＳＢＤｅｖｉｃｅ４２に対してストレージ機器８０の接続を有効とする（ステップＳ１４０）。即ち、ストレージセレクター６２によりストレージ機器８０が有効なストレージとして選択され、ＰＣ２０に対するストレージデバイスとしてストレージ機器８０が機能することになる。ストレージ機器８０の接続を有効とすると、上述したステップＳ１５０以降の処理を行なう。ここで、ダイレクトアクセスデバイスが接続されたか否かの判定は、ＵＳＢＨｏｓｔ４４とストレージ機器８０との通信内容に基づいて行なわれる。図５は、図４の通信処理を実行する際の通信内容の一例を示す説明図である。以下、この通信内容について説明する。
【００２６】
図示するように、ＰＣ２０からＵＳＢＤｅｖｉｃｅ４２に「Test Unit Ready」コマンドが送信されると（ステップＳ２００）、ＵＳＢＤｅｖｉｃｅ４２は上述したステップＳ１００の処理で設定された「Nodisk」を応答として送信する（ステップＳ２１０）。なお、上述したステップＳ１５０の処理で「Unit Attention」が設定されるまで、ＰＣ２０から「Test Unit Ready」コマンドが送信されると（ステップＳ２２０）、ＵＳＢＤｅｖｉｃｅ４２は応答として繰り返し「Nodisk」を送信する（ステップＳ２３０）。
【００２７】
一方、プリンター３０にストレージ機器８０が接続され通信に使うアドレスの指定やコンフィギュレーションの設定などを行なうと、ＵＳＢＨｏｓｔ４４は、ストレージ機器８０に「Get Descriptor」コマンドを送信する（ステップＳ４００）。この応答としてストレージ機器８０からストレージデバイスである旨（「Device Class:マスストレージ」）やベンダーＩＤ，プロダクトＩＤなどの機能情報がＵＳＢＨｏｓｔ４４に送信される（ステップＳ４１０）。そして、マスストレージクラスの通信制御が開始されると、ＵＳＢＨｏｓｔ４４は、ストレージ機器８０に「Inquiry」コマンドを送信する（ステップＳ４３０）。ストレージ機器８０のデバイスタイプがダイレクトアクセスデバイスであれば、応答としてその旨（「Device Type:00」）などがＵＳＢＨｏｓｔ４４に送信され（ステップＳ４４０）、これにより、ダイレクトアクセスデバイスが接続されたことを認識することができる。なお、デバイスタイプがＯＤＤであれば、その旨（「Device Type:05」）が送信される。次に、ＵＳＢＨｏｓｔ４４は、ストレージ機器８０に「Test Unit Ready」コマンドを送信し（ステップＳ４５０）、ストレージ機器８０がアクセス可能な状態であれば応答としてストレージ機器８０から「Good Status」が送信される。この「Good Status」を受信したときに、メインコントローラー３１は上述したステップＳ１２０の処理でダイレクトアクセスデバイスが接続されたと判定する。即ち、本実施形態では、ストレージ機器８０としてダイレクトアクセスデバイスが接続されると共にそのストレージ機器８０へのアクセスが可能となったことをもってダイレクトアクセスデバイスが接続されたと判定するのである。
【００２８】
こうしてダイレクトアクセスデバイスが接続されたと判定すると、上述したステップＳ１５０の処理で「Unit Attention」（Media may have change)が設定されるから、次にＰＣ２０から「Test Unit Ready」コマンドが送信されたときに（ステップＳ２４０）、ＵＳＢＤｅｖｉｃｅ４２はメインコントローラー３１から転送された「Unit Attention」をＰＣ２０に送信する（ステップＳ２５０）。そして、上述したステップＳ１６０の処理でＰＣ２０からストレージ機器８０へのアクセスが許可される。ここで、「Unit Attention」（Media may have change)は、メモリーカードＭＣが挿入されたときと共通の応答であるため、この応答を受信したＰＣ２０は、メモリーカードＭＣが挿入された場合と共通の対処を行なうことになる。即ち、メモリーカードＭＣと同様にＳＣＳＩのプロトコルを用いてストレージ機器８０にアクセスすることになる。アクセスを許可している場合、ＰＣ２０から「Test Unit Ready」コマンドが送信されたときには（ステップＳ２６０）、ＵＳＢＤｅｖｉｃｅ４２は、応答として「Good Status」を送信して（ステップＳ２７０）、アクセス許可が継続される。また、ＰＣ２０からストレージ機器８０のデータの読み込みを要求する「Read」コマンドが送信されたときには（ステップＳ２８０）、ストレージ機器８０に対する要求としてＵＳＢＨｏｓｔ４４に転送され、ＵＳＢＨｏｓｔ４４は転送された「Read」コマンドをストレージ機器８０に送信し（ステップＳ４７０）、ストレージ機器８０から読み出されたデータなどの応答を受信したときには（ステップＳ４８０）、メインコントローラー３１によりその応答がＵＳＢＤｅｖｉｃｅ４２に転送される。そして、ＵＳＢＤｅｖｉｃｅ４２は転送された応答をＰＣ２０に対する応答として送信する（ステップＳ２９０）。なお、ＰＣ２０から「Write」コマンドが送信されたときも同様な処理が行なわれる。ここで、上述したように、ストレージ機器８０へのアクセスが可能となったことをもってダイレクトアクセスデバイスが接続されたと判定するから、アクセスを許可した以降はＰＣ２０からスムーズにストレージ機器８０にアクセスすることができる。
【００２９】
このようなＰＣ２０からのアクセスは、上述したステップＳ１７０で有効なストレージの接続が解除されたと判定するまで、この場合はストレージ機器８０の接続が解除されるまで許可され、接続が解除されたと判定したときにはステップＳ１００に戻り処理を繰り返す。ここで、メモリーカードＭＣの接続を有効としている最中にストレージ機器８０が接続された場合を考える。この場合、上述したステップＳ４００〜Ｓ４５０の処理により、ＵＳＢＨｏｓｔ４４からのストレージ機器８０へのアクセスは可能となる。ただし、メモリーカードＭＣが抜かれるまでステップＳ１７０で有効なストレージの接続が解除されたと判定することはないから、ステップＳ１２０でダイレクトアクセスデバイスが接続されたと判定することはない。即ち、メモリーカードＭＣの接続が先に有効とされているとストレージ機器８０の接続が有効とされることはなく、ＰＣ２０からストレージ機器８０にアクセスが可能となることはない。同様に、ストレージ機器８０の接続が先に有効とされているとＰＣ２０からメモリーカードＭＣにアクセスが可能となることはない。このため、メモリーカードＭＣへのアクセスを実行している途中でストレージ機器８０の接続を割り込ませて有効なものとするなどの煩雑な処理を行なう必要がない。また、ストレージ機器８０としてメモリーカードＭＣと同一のプロトコルを用いてアクセス可能なダイレクトアクセスデバイスが接続されたときには、ＵＳＢＤｅｖｉｃｅ４２に対してストレージ機器８０の接続を有効なものとしてメモリーカードＭＣが挿入されたときと共通の応答である「Unit Attention」をＰＣ２０に送信してＰＣ２０からストレージ機器８０へのアクセスを許可するから、ＰＣ２０は、ダイレクトアクセスデバイスが接続された場合もメモリーカードＭＣが挿入されたときと共通する処理を開始することになる。これにより、プリンター３０のストレージデバイスとしてリムーバブルメディアのアイコンをメモリーカードＭＣとダイレクトアクセスデバイスとの２つをマウントすることはなく、メモリーカードＭＣとダイレクトアクセスデバイスとに共通する１つだけマウントするものとすることができるから、ユーザーに対してシンプルな構成としてストレージデバイスの選択を容易な操作とすることができる。さらに、ＰＣ２０から複数のストレージデバイスに対してポーリングを行なう必要がないから、ＰＣ２０のリソースの消費を抑えることができる。なお、メモリーカードＭＣの接続を有効としている最中にストレージ機器８０が接続され、それ以降にメモリーカードＭＣが抜かれた場合には、ステップＳ１７０で有効なストレージの接続が解除されたと判定し、ステップＳ１２０でダイレクトアクセスデバイスが接続されたと判定するから、ＰＣ２０からストレージ機器８０へのアクセスが可能となる。
【００３０】
ここで、本実施形態の構成要素と本発明の構成要素との対応関係を明らかにする。本実施形態のＵＳＢデバイスコントローラーとしてのＵＳＢＤｅｖｉｃｅ４２が本発明の「第１のコントローラー」に相当し、ＵＳＢホストコントローラーとしてのＵＳＢＨｏｓｔ４４が「第２のコントローラー」に相当し、カードコントローラー３８が「第３のコントローラー」に相当し、図４の通信処理におけるステップＳ１１０，Ｓ１３０，Ｓ１５０，Ｓ１６０の処理（本発明の第１の転送制御に相当）を実行しステップＳ１２０，Ｓ１４０，Ｓ１５０，Ｓ１６０の処理（第２の転送制御に相当）を実行するメインコントローラー３１が「転送制御手段」に相当する。また、カードスロット３７が「内部記憶機器」に相当し、ストレージ機器８０が「外部記憶機器」に相当する。
【００３１】
以上詳述した本実施形態の通信システム１０によれば、プリンター３０のカードスロット３７にメモリーカードＭＣが挿入されたときには、ＵＳＢＤｅｖｉｃｅ４２に対してメモリーカードＭＣの接続を有効なものとしてリムーバブルメディアが接続されたことを示す「Unit Attention」をＰＣ２０に送信してＰＣ２０からメモリーカードＭＣへのアクセスを許可し、ストレージ機器８０としてメモリーカードと同一のプロトコルを用いてアクセス可能なダイレクトアクセスデバイスが接続されたときには、ＵＳＢＤｅｖｉｃｅ４２に対してストレージ機器８０の接続を有効なものとしてメモリーカードＭＣが挿入されたときと共通の応答である「Unit Attention」をＰＣ２０に送信してＰＣ２０からストレージ機器８０へのアクセスを許可するから、ストレージ機器８０が接続された場合に、メモリーカードＭＣが挿入された場合と同様にＰＣ２０からのアクセスを許可することができる。
【００３２】
なお、本発明は上述した実施態様に何ら限定されることはなく、本発明の技術的範囲に属する限り種々の態様で実施し得ることはいうまでもない。
【００３３】
上述した実施形態では、ストレージ機器８０としてダイレクトアクセスデバイスが接続されると共にストレージ機器８０へのアクセスが可能となったことをもってダイレクトアクセスデバイスが接続されたと判定するものとしたが、これに限られず、単にダイレクトアクセスデバイスが接続されたことをもって判定するものとしてもよい。また、ダイレクトアクセスデバイスを条件とするものに限られず、ＯＤＤも許容するものとしてもよい。ただし、デバイスタイプの相違によりメモリーカードＭＣと同様の対処ができず、処理が煩雑なものとなることがあるため、ダイレクトアクセスデバイスを条件とするものが好ましい。
【００３４】
上述した実施形態では、メモリーカードＭＣの接続が先に有効とされているとストレージ機器８０の接続が有効とされることはなくストレージ機器８０の接続が先に有効とされているとメモリーカードＭＣの接続が有効とされることはないものとしたが、これに限られず、後から接続されたものを有効とするものとしてもよい。例えば、ストレージ機器８０の接続を有効としている最中であってもメモリーカードＭＣが挿入されたときには、ストレージ機器８０の接続を無効にする処理を行なった後にメモリーカードＭＣの接続を有効とするものなどとしてもよい。
【００３５】
上述した実施形態では、ダイレクトアクセスデバイスではＳＣＳＩのプロトコルを用い、オプティカルデバイスではＡＴＡＰＩのプロトコルを用いるものとしたが、これに限られず、他のプロトコルを用いるものとしてもよい。
【００３６】
上述した実施形態では、ＵＳＢのホスト機器をＰＣ２０としＵＳＢ装置をプリンター３０として説明したが、これに限られず、ホスト機器としては例えばテレビジョンなど如何なるＵＳＢのホスト機器としてもよいし、ＵＳＢ装置としてはスキャナーユニット３６を備えないプリンターやＦＡＸ機能を備えるプリンター，単なるストレージ機器など如何なる装置としてもよい。
【符号の説明】
【００３７】
１０  通信システム、２０  パーソナルコンピューター（ＰＣ）、２１  コントローラー、２２  ＣＰＵ、２３  ＲＯＭ、２４  ＲＡＭ、２５  ＨＤＤ、２６  操作部、２７  表示部、２８  ＵＳＢコントローラー、２９  バス、３０  プリンター、３１  メインコントローラー、３２  ＣＰＵ、３３  ＲＯＭ、３４ ＲＡＭ、３５  プリンターユニット、３６  スキャナーユニット、３７  カードスロット、３８  カードコントローラー、３９  操作部、４２  ＵＳＢＤｅｖｉｃｅ（ＵＳＢデバイスコントローラー）、４４  ＵＳＢＨｏｓｔ（ＵＳＢホストコントローラー）、４９  バス、５０  アプリケーション層、５１  デバイスマネージャー、５３  ＵＳＢクラスドライバー、５５  ＵＳＢデバイスドライバー、５７  ＵＳＢ（ＰＨＹ）、６０  アプリケーション層、６１  デバイスマネージャー、６２  ストレージセレクター、６３  ＵＳＢＤクラスドライバー、６４  ＵＳＢＨクラスドライバー、６５  ＵＳＢＤデバイスドライバー、６６  ＵＳＢＨデバイスドライバー、６７  ＵＳＢＤ（ＰＨＹ）、６８  ＵＳＢＨ（ＰＨＹ）、７１  カードセレクター、７２  カードドライバー、７３  カードコントローラー（ＰＨＹ）、８０  ストレージ機器、ＭＣ  メモリーカード。
【図１】
2011100311.tif 000003
【図２】
2011100311.tif 000004
【図３】
2011100311.tif 000005
【図４】
2011100311.tif 000006
【図５】
2011100311.tif 000007