説明

通信装置

【課題】外部記憶機器に対しホスト機器からのデータ処理を簡易な構成で可能にする。
【解決手段】プリンターにストレージ機器としてODD(Optical Disk Device)が接続されたか否かに拘わらずODDのストレージである旨の情報をPCに送信し、ストレージ機器情報の取得を要求する「Inquiry」応答用のデータをプリンターの機器情報を用いた仮の情報に初期化し(S110)、PCからの機器情報の取得要求に対して初期化した仮の情報を送信し、ODDが接続されたときに「Inquiry」応答用のデータをODDの機器情報を用いて更新し(S120,130)、PCからの機器情報の取得要求に対して正式な情報を送信可能とした上でPCからのアクセスを許可するから(S150)、プリンターをODDとしてPCに認識させてデータ処理の要求に適切に対処することができる。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、通信装置に関し、詳しくは、ストレージ機器の機器情報に基づいて異なる対処を伴って前記ストレージ機器にデータ処理を行なわせることが可能なホスト機器と通信が可能であると共に前記ストレージ機器としてデータ処理を行なう外部ストレージ機器と通信が可能である通信装置に関する。
【背景技術】
【0002】
従来より、この種の通信装置としては、カードスロットなどの内部記憶機器に挿入されたメモリーカードのデータからの印刷が可能で、パーソナルコンピューターなどのホスト機器に接続されると共にCDドライブなどの外部記憶機器が接続されるプリンターが提案されている(例えば、特許文献1参照)。この装置は、ホスト機器に対してはプリンターデバイスとストレージデバイスとからなるマルチインターフェースのデバイスとして機能して、ホスト機器から送信される印刷データに基づいて印刷したりホスト機器からの要求に基づいてメモリーカードへデータを読み書きしたりすることができる。また、外部記憶機器に対してはホストとして機能して、メモリーカードのデータを外部記憶機器にバックアップすることができる。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特開2008−100527号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
上述したような通信装置においては、マルチインターフェースのストレージデバイスとしてホスト機器から内部記憶機器へのアクセスを可能とするものの、通常はホスト機器から外部記憶機器に簡易な構成でアクセスすることはできない。
【0005】
本発明の通信装置は、外部ストレージ機器に対しホスト機器からのデータ処理を簡易な構成で可能にすることを主目的とする。
【課題を解決するための手段】
【0006】
本発明の通信装置は、上述の主目的を達成するために以下の手段を採った。
【0007】
本発明の通信装置は、
ストレージ機器の機器情報に基づいて異なる対処を伴って前記ストレージ機器にデータ処理を行なわせることが可能なホスト機器と通信が可能であると共に前記ストレージ機器としてデータ処理を行なう外部ストレージ機器と通信が可能である通信装置であって、
前記ホスト機器と通信が可能なホスト側通信手段と、
前記外部ストレージ機器と該外部ストレージ機器の機器情報の取得を含む通信が可能なストレージ側通信手段と、
前記外部ストレージ機器との通信の可否に拘わらずストレージ機能を有する旨の情報を前記ホスト側通信手段に送信させる機能情報送信手段と、
前記外部ストレージ機器と通信可能である場合には前記ストレージ側通信手段により取得された前記外部ストレージ機器の機器情報を前記ホスト側通信手段に送信させ、前記外部ストレージ機器と通信不可能である場合には仮の機器情報を前記ホスト側通信手段に送信させる機器情報送信手段と、
前記外部ストレージ機器と通信可能である場合には前記ホスト側通信手段が受信した前記ホスト機器からのデータ処理を含むアクセス要求を前記ストレージ側通信手段に送信させ該送信させた要求に対する前記外部ストレージ機器の応答を前記ホスト機器に対する応答として前記ホスト側通信手段に送信させ、前記外部ストレージ機器と通信不可能である場合には前記アクセス要求に対して前記データ処理が不可能であることを示す通知を前記ホスト側通信手段に送信させるアクセス要求対応手段と
を備えることを要旨とする。
【0008】
この本発明の通信装置では、外部ストレージ機器との通信の可否に拘わらずストレージ機能を有する旨の情報をホスト機器と通信が可能なホスト側通信手段に送信させ、外部ストレージ機器と通信可能である場合にはストレージ側通信手段により取得された外部ストレージ機器の機器情報をホスト側通信手段に送信させ、外部ストレージ機器と通信不可能である場合には仮の機器情報をホスト側通信手段に送信させ、外部ストレージ機器と通信可能である場合にはホスト側通信手段が受信したホスト機器からのデータ処理を含むアクセス要求をストレージ側通信手段に送信させ送信させた要求に対する外部ストレージ機器の応答をホスト機器に対する応答としてホスト側通信手段に送信させ、外部ストレージ機器と通信不可能である場合にはアクセス要求に対してデータ処理が不可能であることを示す通知をホスト側通信手段に送信させる。これにより、通信装置を外部ストレージ機器としてホスト機器に認識させて、ホスト機器からのデータ処理を含むアクセス要求に適切に対処することができる。この結果、外部ストレージ機器に対しホスト機器からのデータ処理を簡易な構成で可能にすることができる。なお、データ処理を含むアクセス要求には、データの読み書きの要求やデータを読み書きするために外部ストレージ機器の状態を問い合わせる要求などを含む。
【0009】
こうした本発明の通信装置において、前記外部ストレージ機器として着脱可能な記憶媒体を用いる機器と通信が可能であり、前記アクセス要求対応手段は、前記データ処理が不可能であることを示す通知として前記外部ストレージ機器に前記記憶媒体が未装着である旨の通知を送信させる手段であるものとすることもできる。
【0010】
また、前記ホスト機器および前記外部ストレージ機器とそれぞれUSB規格に従って通信を行なう本発明の通信装置において、前記外部ストレージ機器としてUSBマスストレージクラスにおけるオプティカルデバイスと通信が可能であって、前記機器情報は、前記外部ストレージ機器のベンダー情報を含む情報であるものとすることもできる。ここで、CD/DVDドライブなどのオプティカルデバイスにおいては、ハードディスクドライブなどのダイレクトアクセスデバイスに比して、特にデータの書き込み時に機器特性に応じた対処が必要となることが多い。また、そのような機器特性は、ストレージ機器のベンダーに依存するところが大きい。このため、機器情報にベンダー情報を含むものとすることにより、外部ストレージ機器に対するホスト機器からのデータの書き込みをよりスムーズなものとすることができる。
【0011】
さらに、本発明の通信装置において、前記外部ストレージ機器を含む複数のストレージ機器を利用可能に構成され、前記機能情報送信手段は、前記利用可能な複数のストレージ機器と該複数のストレージ機器の各々に割り当てられた識別管理番号とを前記ストレージ機能を有する旨の情報に含めて送信する手段であり、前記機器情報送信手段と前記アクセス要求対応手段とは、前記ホスト機器からの前記各要求として前記識別管理番号の指定を伴った要求を前記ホスト側通信手段が受信したときには、前記利用可能な複数のストレージ機器のうち前記指定された識別管理番号に該当するストレージ機器に関する要求として対応する手段であるものとすることもできる。こうすれば、外部ストレージ機器以外のストレージ機器が利用可能な通信装置においても、ホスト機器からの外部ストレージ機器に対するデータ処理の要求に適切に対処することができる。
【0012】
そして、本発明の通信装置において、前記機器情報送信手段は、前記仮の機器情報として前記通信装置に関する機器情報を送信させる手段であるものとすることもできる。
【0013】
そして、本発明の通信装置において、前記ホスト機器から前記ホスト側通信手段が受信した印刷用データに基づいて印刷が可能な印刷装置として構成されてなるものとすることもできる。
【図面の簡単な説明】
【0014】
【図1】通信システム10の構成の概略を示す構成図。
【図2】PC20のUSB通信に関する機能を示すブロック図。
【図3】プリンター30のUSB通信に関する機能を示すブロック図。
【図4】通信処理の一例を示すフローチャート。
【図5】通信処理時の通信内容の一例を示す説明図。
【発明を実施するための形態】
【0015】
次に、本発明の実施の形態を図面を用いて説明する。図1は、本発明の一実施形態であるホスト機器としてのパーソナルコンピューター(以下、「PC」とする)20と通信装置としてのプリンター30とを含む通信システム10の構成の概略を示す構成図である。
【0016】
PC20は、装置全体を制御するコントローラー21と、各種アプリケーションプログラムや各種データファイルを記憶するハードディスクドライブ(以下、「HDD」とする)25と、キーボードやマウスからなる操作部26と、ディスプレイとしての表示部27と、USB接続されるプリンター30とデータのやり取りを行なうUSBコントローラー28とを備え、これらがバス29を介して互いに各種信号やデータのやり取りをすることができるよう接続された汎用のパーソナルコンピューターである。コントローラー21は、各種制御を実行するCPU22や各種制御プログラムを記憶するROM23,データを一時的に記憶するRAM24などを備えている。なお、図示は省略したが、プリンター30をUSB接続するためのUSBケーブルは、VBUSラインとGNDラインの2本の電源系ラインとD+ラインとD−ラインの2本の信号系ラインとからなる。このため、USBコントローラー28は、D+ライン用の端子やD−ライン用の端子が所定の電位となったことによりプリンター30の接続を検出することができる。また、コントローラー21は、接続を検出したUSBのデバイスがストレージデバイスであることを認識すると、表示部27の所定の画面にストレージデバイスがマウントされたことを示すアイコンを表示する。このとき、ストレージデバイスのデバイスタイプがメモリーカードMC用のカードスロットやHDD,USBメモリーなどのダイレクトアクセスデバイスと、デバイスタイプがCD/DVDドライブなどのオプティカルディスクデバイス(Optical Disk Device、以下、「ODD」とする)とで、それぞれ異なるアイコンが表示される。
【0017】
プリンター30は、装置全体を制御するメインコントローラー31と、印刷データに基づいてインクを記録紙に吐出することにより印刷を行なうインクジェット方式のプリンター機構としてのプリンターユニット35と、原稿台に載置された原稿を光学的に読み取って画像データを生成するイメージスキャナーとしてのスキャナーユニット36と、複数種のメモリーカードMCを挿入可能なカードスロット37に挿入されたメモリーカードMCとの間で画像データの入出力を司るカードコントローラー38と、電源ボタンや動作モードを選択するモード選択ボタン,動作の実行を開始するスタートボタンなどからなる操作部39と、USB接続されるPC20とデータのやり取りを行なうUSBデバイスコントローラーとしてのUSBDevice42と、USB接続されるストレージ機器80とデータのやり取りを行なうUSBホストコントローラーとしてのUSBHost44とを備え、これらはバス49を介して互いに各種信号やデータのやり取りをすることができるよう接続されている。メインコントローラー31は、各種制御を実行するCPU32や各種制御プログラムを記憶するROM33,データを一時的に記憶するRAM34などを備えている。カードコントローラー38は、カードスロット37へのメモリーカードMCの着脱を電気的な導通の有無や図示しない機械的な検出スイッチのオンオフなどにより検出し、検出信号としてメインコントローラー31に送信する。また、USBHost44は、ストレージ機器80の接続を上述したPC20のUSBコントローラー28による接続の検出と同様に検出し、検出信号としてメインコントローラー31に送信する。なお、モード選択ボタンにより選択可能な動作モードとしては、原稿台の原稿を読み取るスキャンモードや原稿台の画像を読み取って印刷を行なうコピーモード,メモリーカードMCに記憶されている画像データを入力して印刷を行なうメモリーカードモード,メモリーカードMCに記憶されている画像データを入力してストレージ機器80にバックアップするバックアップモードなどがある。なお、ストレージ機器80としては、HDDやUSBメモリーなどのダイレクトアクセスデバイスやCD/DVDドライブなどのODDが接続される。
【0018】
USBDevice42は、USBのコンポジットデバイスであり、プリンター30はプリンタークラスとイメージクラスとマスストレージクラスとからなるマルチインターフェースのデバイスとして機能することができる。このため、PC20からの印刷データを含む印刷要求に基づいてプリンターユニット35で印刷を行なったり、スキャン要求に基づいてスキャナーユニット36で生成された画像データをPC20に出力したりすることなどができる。なお、PC20からの各種要求に基づく動作はいずれの動作モードであっても可能となっている。
【0019】
こうして構成されたPC20とプリンター30のUSB通信に関する機能について説明する。まず、PC20について説明する。図2は、PC20のUSB通信に関する機能を示すブロック図である。図示するように、PC20は、各種アプリケーションプログラムからなるアプリケーション層50と、各種デバイスの制御をしたりアプリケーション層50で生成された各種要求などのデータを下位側ドライバーに適合した形式に変換して送信したりするデバイスマネージャー51と、デバイスマネージャー51から送信されたデータをUSBの各デバイスクラスに従ったデータ形式に変換して送信するUSBクラスドライバー53と、データ通信を行なう物理層であるUSB(PHY)57と通信先のプリンター30とのUSB接続の確立や切断を制御したりUSB(PHY)57からのデータの送受信を制御したりするUSBデバイスドライバー55とを備えている。なお、アプリケーション層50のアプリケーションプログラムとして、CD/DVDドライブ用のライターソフトなどが登録されている。
【0020】
USBクラスドライバー53は、本実施形態では、デバイスクラスとしてプリンタークラスとイメージクラス,マスストレージクラスにそれぞれ対応したプロトコルを用いるドライバーからなる。例えば、マスストレージクラスのドライバーでは、SCSI(Small Computer System Interface)のプロトコルが用いられる。また、マスストレージクラスでは、デバイスタイプに応じてSCSIに代えてATAPI(At Attachment Packet Interface)のプロトコルを用いる。具体的には、デバイスタイプがダイレクトアクセスデバイスの場合にはSCSIを用い、デバイスタイプがODDの場合にはATAPIのプロトコルを用いる。
【0021】
USBデバイスドライバー55は、プリンター30の接続が検出されると、通信に使うアドレスの指定やコンフィギュレーションの設定、プリンター30のデバイスクラスなどの機能情報の取得(「Get Descriptor」コマンドの送信)などを伴ってUSB接続を確立する。また、USB接続を確立すると、ポーリングとしてプリンター30の状態の問い合わせ(「Test Unit Ready」コマンドの送信)などを行なう。なお、機能情報の取得によりマスストレージクラスが確認されると、USBクラスドライバー53によりマスストレージクラスのドライバーがロードされる。
【0022】
次に、プリンター30の通信機能について説明する。図3は、プリンター30のUSB通信に関する機能を示すブロック図である。図3では、USBDevice42側の機能を「USBD」としUSBHost44側の機能を「USBH」として図示する。なお、PC20の各機能と同様の機能については説明を省略する。図示するように、プリンター30は、アプリケーション層60と、デバイスマネージャー61と、利用可能なストレージ機器毎に論理ユニット番号(Logical Unit Number、以下、「LUN」とする)を割り当てると共にPC20からの各種要求で指定されるLUNに応じてデータの送信先を振り分けるLUN選択管理部62と、USBDevice42側のクラスドライバーとしてのUSBDクラスドライバー63と、PC20とデータ通信を行なう物理層であるUSBD(PHY)67を制御するUSBDデバイスドライバー65と、USBHost44側のクラスドライバーとしてのUSBHクラスドライバー64と、ストレージ機器80とデータ通信を行なう物理層であるUSBH(PHY)68を制御するUSBHデバイスドライバー66と、カードスロット37に挿入される複数種のメモリーカードMCのうち最も先に挿入されているものを有効なメモリーカードMCとして選択するカードセレクター71と、データ通信を行なう物理層であるカードコントローラー(PHY)73とメモリーカードMCとの接続の確立や切断を制御したりメモリーカードMCの種類に応じてカードコントローラー(PHY)73からのデータの送受信を制御したりするカードドライバー72とを備えている。なお、LUNとしては、プリンター30が内蔵するカードスロット27に値1(以下、「LUN1」とする)が割り当てられ、USBHost44に接続されるODDとしてのストレージ機器80に値0(以下、「LUN0」とする)が割り当てられる。これらのPC20への通知やLUN選択管理部62のLUNの選択管理については後述する。
【0023】
次に、こうして構成された本実施形態の通信システム10の動作、特に、ストレージデバイスとしてのプリンター30とPC20との通信動作について説明する。図4は、プリンター30のメインコントローラー31により実行される通信処理の一例を示すフローチャートであり、図5は、通信処理時の通信内容の一例を示す説明図である。まず、図4に基づいてプリンター30側の通信処理を説明した後に、図5に基づいてPC20とプリンター30,ストレージ機器80の各通信内容を説明する。なお、図4の処理は、PC20とプリンター30とのUSB接続が確立された後に実行される。ただし、プリンター30とストレージ機器80とはUSB接続されていないものとする。また、以下の処理では、PC20からの要求にLUN0の指定即ちストレージ機器80(ODD)が指定される場合を中心に説明し、便宜上各コマンドの後にLUN0を付すものとした。
【0024】
通信処理において、メインコントローラー31は、まず、PC20から送信される「Test Unit Ready(LUN0)」コマンドなどに対する応答に「Nodisk」を設定する(ステップS100)。ここで、「Nodisk」とは、ODDにメディアとしての光ディスクが装着されていないことを示すコマンドである。次に、PC20から送信される「Inquiry(LUN0)」コマンドに対する応答用のデータを初期化する(ステップS110)。ここで、「Inquiry(LUN0)」コマンドに対する応答は、ストレージ機器80の機器情報として、ODDのベンダーIDやプロダクトIDを送信する必要があるが、データの初期化は、ストレージ機器80の機器情報のうちベンダーIDにプリンターのベンダーIDを設定すると共にプロダクトIDにプリンターの製品IDを設定することにより行なう。この理由については後述する。そして、ストレージ機器80としてODDが接続されたと判定すると(ステップS120)、「Inquiry(LUN0)」コマンドに対する応答用のデータを更新する(ステップS130)。データの更新は、ストレージ機器80(ODD)の接続時にストレージ機器80(ODD)から取得されるODDのベンダーIDと製品IDとをそれぞれストレージ機器80の機器情報のベンダーIDとプロダクトIDとに設定することにより行なう。応答用のデータを更新すると、ステップS100で応答に設定した「Nodisk」を解除して(ステップS140)、PC20からストレージ機器80(ODD)へのアクセスを許可する(ステップS150)。なお、PC20からのアクセスは、ストレージ機器80(ODD)の接続が解除されるまで(ステップS160)、許可される。ステップS160で接続が解除されたと判定すると、ステップS100に戻り処理を繰り返す。なお、本処理は、プリンター30とPC20とのUSB接続が解除されるまで行なわれる。以下、図5の通信内容について説明する。なお、図5は、プリンター30がPC20に接続されPC20により通信に使うアドレスの指定やコンフィギュレーションの設定などが行なわれた以降の通信内容を示し、ストレージ機器80はまだ接続されていないものとする。
【0025】
図示するように、PC20からプリンター30の機能情報を要求する「Get Descriptor」コマンドが送信されると(ステップS200)、この応答としてプリンターのベンダーIDやプリンターの製品ID,デバイスクラス(Device Class:プリンター,イメージ,マスストレージ),LUN(「LUN0:ODD」,「LUN1:Direct Access Device」)などのプリンター30の機能情報をUSBDevice42が取得し、この機能情報をUSBDevice42がPC20に送信する(ステップS210)。このとき、プリンター30にストレージ機器80が接続されているか否かに拘わらず、また、ストレージ機器80が接続されていてもODDであるか否かに拘わらず、LUN0を含めて送信する。即ち、ストレージデバイスとして、ストレージ機器80(ODD)とカードスロット27(Direct Access Device)の2つの構成を有する旨の情報を送信する。これにより、PC20は、論理的に2種類のストレージデバイスが接続されたことを認識して、表示部27の所定の画面にダイレクトアクセスデバイスのアイコン(リムーバブルメディアのアイコン)とODDのアイコンとを表示する。
【0026】
そして、マスストレージクラスの通信制御が開始されたPC20からストレージ機器80のストレージ機器情報を要求する「Inquiry(LUN0)」コマンドが送信される(ステップS220)。なお、同様に「Inquiry(LUN1)」コマンドも送信されるが、上述したように、LUN0の要求を中心に説明し、LUN1の要求の説明は省略する。既にストレージ機器80としてODDが接続されていれば「Inquiry(LUN0)」コマンドの応答としてODDのストレージ機器情報を送信することもできる。しかし、いま、ストレージ機器80がまだ接続されていない場合を考えているから、本来応答すべきODDのストレージ機器情報を送信することはできない。このため、仮のストレージ機器情報としてステップS110の処理で初期化した応答用のデータ(プリンターのベンダーIDとプリンターの製品ID)をUSBDevice42に送信し、そのデータをUSBDevice42が応答としてPC20に送信する(ステップS230)。ここで、ステップS210の処理でODDの接続の有無に拘わらずLUN0を送信した以上、PC20からのストレージ機器情報の要求に対して何らかの情報を返す必要がある。このため、ODDがまだ接続されていない場合には、仮のストレージ機器情報を送信するのである。これにより、ODDの接続の有無に拘わらずLUN0を送信することにより通信上の不都合が生じるのを防止することができる。ステップS110の処理で「Inquiry(LUN0)」コマンドの応答用のデータをプリンター30の機器情報を用いて初期化するのは、こうした理由による。また、図示は省略したが、仮の機器情報を送信した以降にPC20から「Test Unit Ready(LUN0)」コマンドなどODDの状態を問い合わせるコマンドが送信される場合がある。この場合も何らかのODDの状態を応答として送信する必要がある。このため、この場合には、上述したステップS100の処理で設定した「Nodisk」を応答として送信することにより、通信上の不都合が生じるのを防止する。なお、「Nodisk」は、ODDに光ディスクが装着されていないことを示すコマンドであるため、このコマンドを受信したPC20からデータの読み書きの要求がなされることはない。このように、ステップS100やステップS110の処理で各応答や応答用のデータを予め設定しておくことにより、ストレージ機器80(ODD)が接続されていない場合であってもPC20からストレージ機器80(ODD)に対する要求に対して適切に処理することができる。
【0027】
一方、プリンター30にストレージ機器80が接続されプリンター30とストレージ機器80との間で通信に使うアドレスの指定やコンフィギュレーションの設定などを行なうと、USBHost44は、ストレージ機器80に「Get Descriptor」コマンドを送信する(ステップS400)。この応答としてストレージ機器80からストレージデバイスである旨(Device Class:マスストレージ)やベンダーID,プロダクトIDなどの情報がUSBHost44に送信される(ステップS410)。そして、マスストレージクラスの通信制御が開始されると、USBHost44は、ストレージ機器80に「Inquiry」コマンドを送信する(ステップS420)。ストレージ機器80のデバイスタイプがODDであれば、応答としてその旨(「Device Type:05」)と共にODDのベンダーIDやODDの製品IDが送信され(ステップS430)、これにより、ODDが接続されたことを認識することができる。なお、ステップS410,S430で送信されるベンダーIDやプロダクトIDは同一のものである。また、デバイスタイプがダイレクトアクセスデバイスであれば、ステップS430ではその旨(「Device Type:00」)などが送信される。以下、デバイスタイプがODDのストレージ機器80が接続されたものとして説明する。次に、USBHost44は、ODDに「Test Unit Ready」コマンドを送信し(ステップS440)、ODDがアクセス可能な状態であれば応答としてODDから「Good Status」が送信される(ステップS450)。この「Good Status」を受信したときに、メインコントローラー31は上述したステップS120の処理でODDが接続されたと判定する。即ち、本実施形態では、ストレージ機器80としてODDが接続されると共にそのODDへのアクセスが可能となったことをもってODDが接続されたと判定するのである。ODDが接続されたと判定すると続くステップS130の処理で「Inquiry(LUN0)」コマンドの応答用のデータを更新する。この場合、ステップS430で取得したODDのベンダーIDとプロダクトIDとを更新用のデータとして用いて更新する。なお、ステップS410で取得したベンダーIDとプロダクトIDとを用いてもよい。
【0028】
「Inquiry(LUN0)」コマンドの応答用のデータを更新した以降は、ステップS150の処理でPC20からのアクセスを許可する。この場合、例えば、PC20からODDのデータの読み込みを要求する「Read(LUN0)」コマンドが送信されたときには(ステップS240)、LUN0に基づいてLUN選択管理部62によりUSBHost44側の要求として振り分けてUSBHost44に転送し、USBHost44が「Read」コマンドをODDに送信する(ステップS460)。また、ODDから読み出されたデータなどの応答を受信したときには(ステップS470)、その応答をUSBDevice42に転送して、USBDevice42が転送された応答をPC20に送信する(ステップS250)。なお、図示は省略したが、PC20から「Test Unit Ready(LUN0)」コマンドが送信されることがある。このとき、ステップS140の処理で「Nodisk」の設定が解除されているから、実際にODDの状態を確認して応答を送信することになる。なお、このときの通信内容は「Read」コマンドと同様であるため、説明を省略する。
【0029】
そして、ODDにデータの書き込みを行うためにPC20のライターソフトが起動されると、ライターソフトの通信制御が開始され、PC20から「Inquiry(LUN0)」コマンドが送信される(ステップS260)。このとき既に「Inquiry(LUN0)」応答用のデータはODDのベンダーIDと製品IDとに更新されているから、ストレージ機器情報としてODDの正式な情報をUSBDevice42に送信して、USBDevice42からODDのストレージ機器情報をPC20に送信することができる(ステップS270)。これにより、PC20は受信したストレージ機器情報に基づいてライターソフトに適合したODDであることを確認した上でデータの書き込み処理を開始することができる。そして、PC20からデータの書き込みを要求する「Write(LUN0)」コマンドが送信されたときには(ステップS280)、LUN0に基づいてLUN選択管理部62によりUSBHost44側の要求として振り分けてUSBHost44に転送し、USBHost44が「Write」コマンドをODDに送信する(ステップS480)。また、「Write」コマンドに対するODDからの応答を受信したときには(ステップS490)、その応答をUSBDevice42に転送して、USBDevice42が転送された応答をPC20に送信する(ステップS290)。ここで、CD/DVDドライブなどのODDにおいては、ステップS490の「Write」コマンドに対する応答にドライブ固有の応答が送信されることがある。そのようなドライブ固有の応答は、ドライブのベンダーに依存するところが大きく、ベンダー情報に基づいて正しい解釈がなされない場合には適切な対処をすることができないことがある。このため、ODDに適合したライターソフトで書き込み処理を行なう必要がある。本実施形態では、PC20でライターソフトとODDの適合を確認した上で書き込み処理を開始しているから、ドライブ固有の応答を誤って解釈することがなく、書き込みエラーなどのトラブルが生じることはない。上述したステップ130の処理で「Inquiry(LUN0)」コマンドの応答用のデータを更新しておき、その後の「Inquiry(LUN0)」コマンドに対してODDの正式なストレージ機器情報を送信するのはこうした理由による。なお、データの読み込み処理時においては、そのようなドライブ固有の応答が送信されることはないためドライブ固有の解釈が問題となることはない。
【0030】
ここで、ストレージ機器80として、HDDなどのダイレクトアクセスデバイスが接続された場合について説明する。この場合、USBHost44からストレージ機器80(HDD)へのアクセスは可能となるが、ステップS120の処理でODDが接続されたと判定することはないため、PC20からHDDへアクセスが可能となることはない。また、PC20から「Test Unit Ready(LUN0)」コマンドや「Read(LUN0)」コマンドが送信されたときには、応答として「Nodisk」を送信するから、この場合も通信上の不都合が生じることはない。
【0031】
ここで、本実施形態の構成要素と本発明の構成要素との対応関係を明らかにする。本実施形態のUSBデバイスコントローラーとしてのUSBDevice42が本発明の「ホスト側通信手段」に相当し、USBホストコントローラーとしてのUSBHost44が「ストレージ側通信手段」に相当し、図5の通信内容のステップS210におけるDescriptor応答の内容をUSBDevice42に送信するメインコントローラー31が「機能情報送信手段」に相当し、図4の通信処理におけるステップS110,S130の処理を実行すると共に図5の通信内容のステップS230,S270におけるInquiry応答のストレージ機器情報の内容をUSBDevice42に送信するメインコントローラー31が「機器情報送信手段」に相当し、図4の通信処理におけるステップS100,S150の処理を実行するメインコントローラー31が「アクセス要求対応手段」に相当する。また、ストレージ機器80が「外部ストレージ機器」に相当する。
【0032】
以上詳述した本実施形態の通信システム10によれば、プリンター30にストレージ機器80としてODDが接続されたか否かに拘わらずODDのストレージである旨の情報をPC20に送信し、ストレージ機器情報の取得を要求する「Inquiry」応答用のデータをプリンター30の機器情報を用いた仮のストレージ機器情報に初期化し、PC20からのストレージ機器情報の取得要求に対して仮のストレージ機器情報を送信し、ストレージ機器80としてODDが接続されたときに「Inquiry」応答用のデータをODDのストレージ機器情報を用いて更新し、PC20からのストレージ機器情報の取得要求に対してODDの正式なストレージ機器情報を送信可能とした上でPC20からのアクセスを許可するから、プリンター30をODDとしてPC20認識させることができると共にデータの読み書きの要求に適切に対処することができる。また、PC20からの「Test Unit Ready」などODDの状態を問い合わせるコマンドの応答に光ディスクが装着されていないことを示す「Nodisk」を設定することにより、通信上の不都合が生じるのを防止することができる。
【0033】
なお、本発明は上述した実施態様に何ら限定されることはなく、本発明の技術的範囲に属する限り種々の態様で実施し得ることはいうまでもない。
【0034】
上述した実施形態では、ストレージ機器80としてODDが接続されると共にODDへのアクセスが可能となったことをもってODDが接続されたと判定するものとしたが、これに限られず、単にODDが接続されたことをもって判定するものとしてもよい。また、ODDを条件とするものに限られず、ダイレクトアクセスデバイスも許容するものとしてもよい。
【0035】
上述した実施形態では、仮のストレージ機器情報としてプリンター30の情報を送信するものとしたが、これに限られず、どのような情報を送信するものとしてもよい。
【0036】
上述した実施形態では、ダイレクトアクセスデバイスではSCSIのプロトコルを用い、オプティカルデバイスではATAPIのプロトコルを用いるものとしたが、これに限られず、他のプロトコルを用いるものとしてもよい。
【0037】
上述した実施形態では、ホスト機器をPC20とし通信装置をプリンター30として説明したが、これに限られず、ホスト機器としては例えばテレビジョンなど如何なるホスト機器としてもよいし、通信装置としてはスキャナーユニット36を備えないプリンターやカードスロット37を備えないプリンターとしてもよいし、FAX機能を備えるプリンターとしてもよいし、プリンターに限られず単なるストレージ機器など如何なる装置としてもよい。また、通信規格もUSBに限られず、その他の通信規格であってもよい。なお、カードスロット37を備えないプリンターとした場合には、LUNを割り当てないものとしてもよい。
【符号の説明】
【0038】
10 通信システム、20 パーソナルコンピューター(PC)、21 コントローラー、22 CPU、23 ROM、24 RAM、25 ハードディスクドライブ(HDD)、26 操作部、27 表示部、28 USBコントローラー、29 バス、30 プリンター、31 メインコントローラー、32 CPU、33 ROM、34 RAM、35 プリンターユニット、36 スキャナーユニット、37 カードスロット、38 カードコントローラー、39 操作部、42 USBDevice(USBデバイスコントローラー)、44 USBHost(USBホストコントローラー)、49 バス、50 アプリケーション層、51 デバイスマネージャー、53 USBクラスドライバー、55 USBデバイスドライバー、57 USB(PHY)、60 アプリケーション層、61 デバイスマネージャー、62 LUN選択管理部、63 USBDクラスドライバー、64 USBHクラスドライバー、65 USBDデバイスドライバー、66 USBHデバイスドライバー、67 USBD(PHY)、68 USBH(PHY)、71 カードセレクター、72 カードドライバー、73 カードコントローラー(PHY)、80 ストレージ機器、MC メモリーカード。

【特許請求の範囲】
【請求項1】
ストレージ機器の機器情報に基づいて異なる対処を伴って前記ストレージ機器にデータ処理を行なわせることが可能なホスト機器と通信が可能であると共に前記ストレージ機器としてデータ処理を行なう外部ストレージ機器と通信が可能である通信装置であって、
前記ホスト機器と通信が可能なホスト側通信手段と、
前記外部ストレージ機器と該外部ストレージ機器の機器情報の取得を含む通信が可能なストレージ側通信手段と、
前記外部ストレージ機器との通信の可否に拘わらずストレージ機能を有する旨の情報を前記ホスト側通信手段に送信させる機能情報送信手段と、
前記外部ストレージ機器と通信可能である場合には前記ストレージ側通信手段により取得された前記外部ストレージ機器の機器情報を前記ホスト側通信手段に送信させ、前記外部ストレージ機器と通信不可能である場合には仮の機器情報を前記ホスト側通信手段に送信させる機器情報送信手段と、
前記外部ストレージ機器と通信可能である場合には前記ホスト側通信手段が受信した前記ホスト機器からのデータ処理を含むアクセス要求を前記ストレージ側通信手段に送信させ該送信させた要求に対する前記外部ストレージ機器の応答を前記ホスト機器に対する応答として前記ホスト側通信手段に送信させ、前記外部ストレージ機器と通信不可能である場合には前記アクセス要求に対して前記データ処理が不可能であることを示す通知を前記ホスト側通信手段に送信させるアクセス要求対応手段と
を備える通信装置。
【請求項2】
請求項1記載の通信装置であって、
前記外部ストレージ機器として着脱可能な記憶媒体を用いる機器と通信が可能であり、
前記アクセス要求対応手段は、前記データ処理が不可能であることを示す通知として前記外部ストレージ機器に前記記憶媒体が未装着である旨の通知を送信させる手段である
通信装置。
【請求項3】
前記ホスト機器および前記外部ストレージ機器とそれぞれUSB規格に従って通信を行なう請求項1または2記載の通信装置であって、
前記外部ストレージ機器としてUSBマスストレージクラスにおけるオプティカルデバイスと通信が可能であって、
前記機器情報は、前記外部ストレージ機器のベンダー情報を含む情報である
通信装置。
【請求項4】
請求項1ないし3いずれか1項に記載の通信装置であって、
前記外部ストレージ機器を含む複数のストレージ機器を利用可能に構成され、
前記機能情報送信手段は、前記利用可能な複数のストレージ機器と該複数のストレージ機器の各々に割り当てられた識別管理番号とを前記ストレージ機能を有する旨の情報に含めて送信する手段であり、
前記機器情報送信手段と前記アクセス要求対応手段とは、前記ホスト機器からの前記各要求として前記識別管理番号の指定を伴った要求を前記ホスト側通信手段が受信したときには、前記利用可能な複数のストレージ機器のうち前記指定された識別管理番号に該当するストレージ機器に関する要求として対応する手段である
通信装置。
【請求項5】
前記機器情報送信手段は、前記仮の機器情報として前記通信装置に関する機器情報を送信させる手段である請求項1ないし4いずれか1項に記載の通信装置。
【請求項6】
前記ホスト機器から前記ホスト側通信手段が受信した印刷用データに基づいて印刷が可能な印刷装置として構成されてなる請求項1ないし5いずれか1項に記載の通信装置。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate


【公開番号】特開2011−103090(P2011−103090A)
【公開日】平成23年5月26日(2011.5.26)
【国際特許分類】
【出願番号】特願2009−258383(P2009−258383)
【出願日】平成21年11月11日(2009.11.11)
【出願人】(000002369)セイコーエプソン株式会社 (51,324)
【Fターム(参考)】