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