(57)【要約】【課題】USBを介して、USBストレージクラスデバイスのデジタルカメラと、USBホストのプリンタを直接接続した場合、カメラでのボタン操作でプリンタを制御する。【解決手段】プリンタ２０はカメラ１０に対し、リクエスト問合せコマンド「Interrupt In」を高速レートで周期的に送る。カメラ１０は、プリンタステータス要求や印刷要求や印刷中止要求などを、「Interrupt In」に対するリプライとしてプリンタ２０に返送する。以上の動作以外は、カメラ１０はプリンタ２０に対し、通常のストレージクラスのUSBデバイスとして動作する。よって、プリンタ２０は、カメラ１０内のディレクトリを探索して、印刷に必要な画像ファイルや印刷ページレイアウトファイルなどを勝手に読み込む。【選択図】          図４
2006114031.tif 000002
【特許請求の範囲】
【請求項１】
ＵＳＢホストコントローラを有する印刷装置とＵＳＢインタフェースを介して接続されることで印刷システムを構成することができる画像ソース装置において、
ユーザによって操作される操作装置と、
ユーザによる前記操作装置の印刷指示操作に応えて、ユーザ所望の印刷条件設定に従う印刷動作をリクエストするための印刷リクエストコマンドを生成するリクエストコマンド生成手段と、
前記ユーザ所望の印刷条件設定に従う印刷動作を前記印刷装置が実行するときに必要となる画像ファイルを含む各種リソースファイルを記録したデータストレージと、
前記リクエストコマンド生成手段により生成されたリクエストコマンドを前記印刷装置へ送るとともに、前記印刷装置によって従属的に制御されることにより、前記印刷装置をして主体的に前記データストレージ内の所望のリソースファイルにアクセスすることを可能ならしめるＵＳＢデバイスコントローラと、を備え、
前記ＵＳＢデバイスコントローラは、
前記印刷装置とのＵＳＢの通信接続が確立されると、「InterruptIn」エンドポイントが記述されているディスクリプタを前記印刷装置に取得させるとともに、
前記「InterruptIn」エンドポイントを使用したインタラプトパイプを通じて前記印刷装置から受信した「InterruptIn」コマンドに基づいて、前記印刷リクエストコマンドを前記印刷装置に送信する画像ソース装置。
【請求項２】
前記リクエストコマンド生成手段は、ユーザによる前記操作装置の印刷中止操作に応えて、印刷中止を要求するための印刷中止リクエストコマンドを、さらに生成することを特徴とする請求項１記載の画像ソース装置。
【請求項３】
前記ＵＳＢデバイスコントローラは、前記印刷装置から「InterruptIn」コマンドを受けたとき印刷中止リクエストコマンドが生成されていたならば、前記印刷中止リクエストコマンドを前記印刷装置に送信する、請求項２記載の画像ソース装置。
【請求項４】
前記印刷リクエストコマンドには、印刷したい画像ファイルの指定を含む前記印刷条件設定が記述されている請求項１〜３のいずれか一項に記載の画像ソース装置。
【請求項５】
前記印刷条件設定には、印刷したい画像ファイルの選択、印刷したいページの枚数の指定、印刷したいページのレイアウトの指定、及び印刷したいページのサイズの指定を含む複数項目の設定が含まれており、
前記印刷リクエストコマンドに前記印刷条件設定が記述されている、請求項１〜３のいずれか一項に記載の画像ソース装置。
【請求項６】
前記印刷リクエストコマンドを受け入れた前記印刷装置から、当該印刷リクエストコマンドを受け入れた旨のメッセージを受信する請求項１〜５のいずれか一項に記載の画像ソース装置。
【請求項７】
ユーザによる前記操作装置の印刷条件設定に応えて、カラー表示パネル上にユーザが設定した印刷条件設定を表示する手段をさらに備えた請求項１〜６のいずれか一項に記載の画像ソース装置。
【請求項８】
前記画像ソース装置はストレージクラスのＵＳＢデバイスであることを特徴とする請求項１〜７のいずれか一項に記載の画像ソース装置。
【請求項９】
前記印刷装置での印刷動作が完了すると、新しいリクエストコマンドを発行できるように自身の動作を制御する請求項１〜８のいずれか一項に記載の画像ソース装置。
【請求項１０】
画像ファイルを含む各種リソースファイルを記録したデータストレージと、ＵＳＢデバイスコントローラとを備えるＵＳＢデバイスたる画像ソース装置とＵＳＢインタフェースを介して接続されるＵＳＢホストたる印刷装置において、
前記画像ソース装置から前記ＵＳＢインタフェースを通じて、ユーザ所望の印刷条件設定に従う印刷動作をリクエストするための印刷リクエストコマンドを受信するとともに、前記画像ソース装置を制御することにより、前記印刷条件設定に従う印刷動作を実行するために必要とする所望のリソースファイルを、前記画像ソース装置のデータストレージから読み込むＵＳＢホストコントローラと、
受信された前記印刷リクエストコマンドに応えて、前記リソースファイルを用いてリクエストされた印刷条件に従う印刷動作を実行する印刷手段とを備え、
前記ＵＳＢホストコントローラは、
前記画像ソース装置とのＵＳＢの通信接続が確立されると、「InterruptIn」エンドポイントが記述されているディスクリプタを前記画像ソース装置のＵＳＢデバイスコントローラから取得し、
前記「InterruptIn」エンドポイントを使用したインタラプトパイプを通じて、「InterruptIn」コマンドを前記画像ソース装置へ送ることにより、前記ＵＳＢデバイスコントローラに前記印刷リクエストコマンドを送信させ、前記画像ソース装置から当該印刷リクエストコマンドを受信する印刷装置。
【請求項１１】
前記画像ソース装置のＵＳＢデバイスコントローラが前記「InterruptIn」コマンドを受信したときに印刷中止リクエストコマンドが生成されていたならば、前記ＵＳＢホストコントローラは前記印刷中止リクエストコマンドを受信し、
前記印刷手段は、前記ＵＳＢホストコントローラが前記印刷中止リクエストコマンドを受信すると、印刷動作を中止する請求項１０記載の印刷装置。
【請求項１２】
前記印刷リクエストコマンドには、印刷したい画像ファイルの指定を含む前記印刷条件設定が記述されている、請求項１０または１１に記載の印刷装置。
【請求項１３】
前記印刷リクエストコマンドを受け入れると、当該印刷リクエストコマンドを受け入れた旨のメッセージを前記画像ソース装置へ送信する請求項１０〜１２の何れか一項に記載の印刷装置。
【請求項１４】
前記画像ソース装置のデータストレージに記録されている前記画像ファイルはJPEG又はその他の汎用形式であり、
前記ＵＳＢホストコントローラは、前記JPEG又はその他の汎用形式の画像ファイルを印刷に適した当該印刷装置に依存した形式のデータに変換する手段をさらに有する、請求項１０〜１３記載の印刷装置。
【請求項１５】
前記ＵＳＢホストコントローラは、当該ＵＳＢホストコントローラが必要とする複数のリソースファイルを、当該ＵＳＢホストコントローラの都合に合わせて必要が生じた都度に前記データストレージから読み込む、請求項１０〜１４記載の印刷装置。
【請求項１６】
前記ＵＳＢホストコントローラは、さらに、前記画像ソース装置からステータス要求コマンドを受信すると、前記印刷装置のステータスを前記画像ソース装置へ送る請求項１０〜１５のいずれか一項に記載の印刷装置。
【請求項１７】
前記画像ソース装置のＵＳＢデバイスコントローラが前記「InterruptIn」コマンドを受信したときにステータス要求コマンドが生成されていたならば、前記ＵＳＢホストコントローラは前記ステータス要求コマンドを受信する、請求項１０〜１６のいずれか一項に記載の印刷装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、例えばデジタルカメラとデジタルプリンタとをUSBのような主従関係をもつ通信インタフェースで接続した印刷システムなどに好適な、装置間の通信制御の方法の改良に関する。
【背景技術】
【０００２】
主従関係をもつ通信インタフェースの一つとして、USBが知られている。すなわち、USBで相互接続された2つの装置のうち、一方の装置は、通信の主導権を握る「USBホスト」であり、他方の装置は、USBホストからの制御コマンドに応答して従属的に動作する「USBデバイス」である。
【０００３】
USBは、パーソナルコンピュータと周辺機器間の通信インタフェースとして広く普及している。USBをサポートする一般のパーソナルコンピュータ用オペレーティングシステム（OS）は、USBホストとしてのUSBコントローラを標準装備している。当然、USBをサポートする周辺機器は、USBデバイスとしてのUSBコントローラを装備することになる。
【０００４】
USBデバイスには、通信制御方法において異なる複数のクラス（種類）がある。USBの規格に定められたデバイスクラスとして、ストレージクラス、HIDクラス、STIクラス及びプリンタクラスなどがある。規格で定められたいずれかのデバイスクラスのUSBデバイスして周辺機器が機能する限り、パーソナルコンピュータ用OSに標準装備されたUSBコントローラは、その周辺機器と正常に通信可能である。しかし、もし、周辺機器が規格外のデバイスクラス（例えば、周辺機器メーカがオリジナルに定めたクラス）として動作する場合には、パーソナルコンピュータ用OSに標準装備のUSBコントローラがその周辺機器と正常に通信できる保証は無い。
【０００５】
さて、パーソナルコンピュータの周辺機器の一つに、デジタルカメラがある。上述したようなUSBの普及により、デジタルカメラにおいても、USBデバイスとしての機能を備えた機種が主流になっている。デジタルカメラの場合、その望ましいデバイスクラスは「ストレージクラス」であると考えられる。何故なら、そうすると、パーソナルコンピュータは、デジタルカメラをデータストレージとして扱って、デジタルカメラ内のディレクトリを自由に探索して所望の画像ファイルを自由に読み書きできるからである。
【発明の開示】
【発明が解決しようとする課題】
【０００６】
ところで、インクジェットプリンタやレーザプリンタなどのデジタルプリンタにおいて、パーソナルコンピュータの仲介なしに直接的にデジタルカメラと接続して、デジタルカメラから直接的に画像データを読み込んで印刷することができる、直接接続式のデジタルプリンタが知られている。この直接接続式のプリンタにおいても、デジタルカメラとの通信インタフェースとして、USBが好まれている。その場合、プリンタがUSBホストとして機能し、デジタルカメラがストレージクラスのUSBデバイスとして機能することが好ましいと考えられる。何故なら、そうすれば、デジタルカメラは、ストレージクラスのUSBデバイスとして機能可能でありさえすれば、パーソナルコンピュータにも接続可能であるし、且つ、直接接続式プリンタにも接続可能だからである。
【０００７】
このようにプリンタがUSBホストとして、デジタルカメラがストレージクラスのUSBデバイスとして動作する直接接続式の印刷システムでは、プリンタは、デジタルカメラを、単なるデータストレージとして取り扱うことになる。この場合、USBの規格によれば、USBホストたるプリンタの方から主体的に制御コマンドをUSBデバイスたるデジタルカメラに送るための手段は提供されているのであるが、その逆に、USBデバイスたるデジタルカメラの方から主体的に制御コマンドをUSBホストたるプリンタに送るための手段は提供されていない（つまり、規格では定義されていない）。その結果、USBの規格にそのまま従うだけでは、次のような問題が生じる。
【０００８】
すなわち、上記のような直接接続式の印刷システムにおいて、印刷対象画像の選択、印刷条件の設定、及び印刷要求などのユーザ操作を、プリンタを使って行なうことは可能であるが、逆に、デジタルカメラを使って行なうことが困難である。しかし、ユーザにとっては、プリンタのよりむしろデジタルカメラを使って上記操作が行なえる方が、使い易いに違いない。何故なら、デジタルカメラは片手で持って手軽に操作できるし、デジタルカメラの高精細なカラー液晶表示パネル上で画像を参照し選択できるからである。
【０００９】
類似の問題は、上述した直接接続式の印刷システムだけに限らず、主従関係をもった通信インタフェースを使用する他の種類のシステムにおいても、存在する可能性がある。
【００１０】
従って、本発明の目的は、USBのような主従関係を有する通信インタフェースを介して、デジタルプリンタのような画像出力装置と、デジタルカメラのような画像ソース装置とを接続した場合に、通信制御上従属的な立場にある画像ソース装置側でのボタン操作によって、画像出力装置の制御が行なえるようにすることにある。
【課題を解決するための手段】
【００１１】
本発明の一つの観点に従う画像ソース装置は、ＵＳＢホストコントローラを有する印刷装置とＵＳＢインタフェースを介して接続されることで印刷システムを構成することができ、ユーザによって操作される操作装置と、ユーザによる前記操作装置の印刷指示操作に応えて、ユーザ所望の印刷条件設定に従う印刷動作をリクエストするための印刷リクエストコマンドを生成するリクエストコマンド生成手段と、前記ユーザ所望の印刷条件設定に従う印刷動作を前記印刷装置が実行するときに必要となる画像ファイルを含む各種リソースファイルを記録したデータストレージと、前記リクエストコマンド生成手段により生成されたリクエストコマンドを前記印刷装置へ送るとともに、前記印刷装置によって従属的に制御されることにより、前記印刷装置をして主体的に前記データストレージ内の所望のリソースファイルにアクセスすることを可能ならしめるＵＳＢデバイスコントローラと、を備える。そして、前記ＵＳＢデバイスコントローラは、前記印刷装置とのＵＳＢの通信接続が確立されると、「InterruptIn」エンドポイントが記述されているディスクリプタを前記印刷装置に取得させるとともに、前記「InterruptIn」エンドポイントを使用したインタラプトパイプを通じて前記印刷装置から受信した「InterruptIn」コマンドに基づいて、前記印刷リクエストコマンドを前記印刷装置に送信する。
【００１２】
好適な実施形態では、前記リクエストコマンド生成手段は、ユーザによる前記操作装置の印刷中止操作に応えて、印刷中止を要求するための印刷中止リクエストコマンドを、さらに生成することができる。
【００１３】
好適な実施形態では、前記ＵＳＢデバイスコントローラは、前記印刷装置から「InterruptIn」コマンドを受けたとき印刷中止リクエストコマンドが生成されていたならば、前記印刷中止リクエストコマンドを前記印刷装置に送信することができる。
【００１４】
さらに、前記印刷リクエストコマンドには、印刷したい画像ファイルの指定を含む前記印刷条件設定が記述されていてもよい。
【００１５】
好適な実施形態では、前記印刷条件設定には、印刷したい画像ファイルの選択、印刷したいページの枚数の指定、印刷したいページのレイアウトの指定、及び印刷したいページのサイズの指定を含む複数項目の設定が含まれており、前記印刷リクエストコマンドに前記印刷条件設定が記述されていてもよい。
【００１６】
さらに、前記印刷リクエストコマンドを受け入れた前記印刷装置から、当該印刷リクエストコマンドを受け入れた旨のメッセージを受信するようにしてもよい。
【００１７】
また、ユーザによる前記操作装置の印刷条件設定に応えて、カラー表示パネル上にユーザが設定した印刷条件設定を表示する手段をさらに備えてもよい。
【００１８】
前記画像ソース装置はストレージクラスのＵＳＢデバイスであってもよい。
【００１９】
さらに、前記印刷装置での印刷動作が完了すると、新しいリクエストコマンドを発行できるように自身の動作を制御することもできる。
【００２０】
本発明の別の観点に従う印刷装置は、画像ファイルを含む各種リソースファイルを記録したデータストレージと、ＵＳＢデバイスコントローラとを備えるＵＳＢデバイスたる画像ソース装置とＵＳＢインタフェースを介して接続されるＵＳＢホストたる印刷装置において、前記画像ソース装置から前記ＵＳＢインタフェースを通じて、ユーザ所望の印刷条件設定に従う印刷動作をリクエストするための印刷リクエストコマンドを受信するとともに、前記画像ソース装置を制御することにより、前記印刷条件設定に従う印刷動作を実行するために必要とする所望のリソースファイルを、前記画像ソース装置のデータストレージから読み込むＵＳＢホストコントローラと、受信された前記印刷リクエストコマンドに応えて、前記リソースファイルを用いてリクエストされた印刷条件に従う印刷動作を実行する印刷手段とを備える。さらに、前記ＵＳＢホストコントローラは、前記画像ソース装置とのＵＳＢの通信接続が確立されると、「InterruptIn」エンドポイントが記述されているディスクリプタを前記画像ソース装置のＵＳＢデバイスコントローラから取得し、前記「InterruptIn」エンドポイントを使用したインタラプトパイプを通じて、「InterruptIn」コマンドを前記画像ソース装置へ送ることにより、前記ＵＳＢデバイスコントローラに前記印刷リクエストコマンドを送信させ、前記画像ソース装置から当該印刷リクエストコマンドを受信する。
【００２１】
好適な実施形態では、前記画像ソース装置のＵＳＢデバイスコントローラが前記「InterruptIn」コマンドを受信したときに印刷中止リクエストコマンドが生成されていたならば、前記ＵＳＢホストコントローラは前記印刷中止リクエストコマンドを受信し、前記印刷手段は、前記ＵＳＢホストコントローラが前記印刷中止リクエストコマンドを受信すると、印刷動作を中止することもできる。
【００２２】
ここで、前記印刷リクエストコマンドには、印刷したい画像ファイルの指定を含む前記印刷条件設定が記述されていてもよい。
【００２３】
さらに、前記印刷リクエストコマンドを受け入れると、当該印刷リクエストコマンドを受け入れた旨のメッセージを前記画像ソース装置へ送信するようにしてもよい。
【００２４】
好適な実施形態では、前記画像ソース装置のデータストレージに記録されている前記画像ファイルはJPEG又はその他の汎用形式であり、前記ＵＳＢホストコントローラは、前記JPEG又はその他の汎用形式の画像ファイルを印刷に適した当該印刷装置に依存した形式のデータに変換する手段をさらに有していてもよい。
【００２５】
好適な実施形態では、前記ＵＳＢホストコントローラは、当該ＵＳＢホストコントローラが必要とする複数のリソースファイルを、当該ＵＳＢホストコントローラの都合に合わせて必要が生じた都度に前記データストレージから読み込むようにしてもよい。
【００２６】
好適な実施形態では、前記ＵＳＢホストコントローラは、さらに、前記画像ソース装置からステータス要求コマンドを受信すると、前記印刷装置のステータスを前記画像ソース装置へ送ることもできる。
【００２７】
好適な実施形態では、前記画像ソース装置のＵＳＢデバイスコントローラが前記「InterruptIn」コマンドを受信したときにステータス要求コマンドが生成されていたならば、前記ＵＳＢホストコントローラは前記ステータス要求コマンドを受信するようにしてもよい。
【発明を実施するための最良の形態】
【００２８】
図１は、本発明に従う直接接続式の印刷システムの一実施形態の全体構成を示す。
【００２９】
図１に示すように、デジタルカメラ（DSC：Digital Still Camera）１０と、カラーインクジェットプリンタやカラーレーザプリンタのようなデジタルプリンタ２０とが、USB通信インタフェースケーブル３０を介して直接接続されている。デジタルカメラ１０は、写真の画像ファイル（例えば、JPEGファイル又はその他の汎用形式ファイル）を保存するためのメモリ１１と、写真を撮影して電気信号に変換するための撮影装置１３と、このカメラ１０の各部の動作を制御するためのカメラコントローラ１５と、デジタルプリンタ２０のようなUSBホストと通信するためのUSBデバイスコントローラ１７とを備えている。
【００３０】
カメラコントローラ１５は、図示しないが、シャッターボタンを始めとする各種の操作ボタン及びカラー液晶表示パネルなどを備えている。そして、カメラコントローラ１５は、シャッターボタン操作に応答して撮影装置１３を駆動して写真を撮影させたり、撮影された写真の電気信号を撮影装置１３から受けて画像ファイルを作成してメモリ１１に書き込んだり、所定の画像参照ボタン操作に応答してメモリ１１から所望の画像を読み出してカラー液晶表示パネルに表示したりする。さらに、カメラコントローラ１５は、定期的にプリンタステータスの取得を要求する制御コマンド（プリンタステータス要求）を生成したり、ユーザの画像選択ボタン操作に応答して印刷対象の画像ファイルをメモリ１１内から選択したり、ユーザの印刷設定ボタン操作に応答して印刷条件（例えば、印刷枚数、用紙種類、用紙サイズ、印刷品質、画像補正、印刷レイアウト、印刷対象画像など）の設定を表した印刷設定データを生成したり、上記画像選択ボタン操作に引き続くユーザの印刷要求ボタン操作に応答して上記印刷設定データを含んだ印刷実行を要求する制御コマンド（印刷要求）を生成したり、ユーザの印刷中止ボタン操作に応答して印刷中止を要求する制御コマンド（印刷中止要求）を生成したりする。
【００３１】
USBデバイスコントローラ１７は、USBのストレージクラスのデバイスとしてUSBの規格に従いUSBホストと通信する機能をもち、よって、USBホストをして、メモリ１１内の様々なディレクトリを探索し所望の画像ファイルを自由に読み書きすることを可能ならしめる。さらに、USBデバイスコントローラ１７は、本発明の原理に従がった追加の機能をもつ。すなわち、この追加の機能により、USBデバイスコントローラ１７は、上述したカメラコントローラ１５が生成したプリンタステータス要求や印刷要求や印刷中止要求などの制御コマンドを、後述する方法によって、デジタルカメラ１０の方から主体的に送信するのと実質的に同等の態様で（つまり、それらの制御コマンドが生成された時に実質的に遅滞無く直ちに）、デジタルプリンタ２０に送信することができる。
【００３２】
デジタルプリンタ２０は、デジタルカメラ１０からのプリンタステータス要求や印刷要求や印刷中止要求などに応答してプリンタステータスの返信や印刷対象画像のメモリ１１からの読み込みや印刷画像のレンダリングやその他の各種の制御を行なう印刷コントローラ２１と、USBホストとしてUSBデバイスと通信するためのUSBホストコントローラ２５と、印刷コントローラ２１の制御下でプリントアウトを出力する印刷エンジン２３などを備える。
【００３３】
印刷コントローラ２１は、JPEGファイル又はその他の汎用形式ファイルのような汎用圧縮フォーマットの画像ファイルをデジタルカメラ１０から受信して、それを伸張してビットマップ画像データにする機能と、そのビットマップ画像データのRGB画素値をCMYK画素値へ変換する色変換機能と、そのビットマップ画像データの多階調の画素値をドットと空白を表すような面積階調の画素値に変換するハーフトーニング機能とを備えている。そのため、デジタルカメラ１０は、メモリ１１内にあるJPEGファイルのような印刷対象の画像ファイルを伸張したり色変換したりハーフトーニングしたりする機能を具備する必要は無く、その画像ファイルをそのままデジタルプリンタ２０に提供すればよい。その結果、デジタルカメラ１０の構成は、デジタルプリンタ２０の機種毎にカスタマイズする必要がなく、汎用的なもので良いというメリットが得られる。
【００３４】
USBホストコントローラ２５は、ストレージクラスのUSBデバイスとして機能するデジタルカメラ１０内のメモリ１１に、USBの規格に従ってアクセスすることで、所望のディレクトリの所望のデータを読み書きする機能をもつ。さらに、USBホストコントローラ２５は、本発明の原理に従う追加の機能を有する。すなわち、この追加の機能によって、USBホストコントローラ２５は、デジタルカメラ１０から、上述のプリンタステータス要求や印刷要求や印刷中止要求などを、後述する方法によって、デジタルカメラ１０の方から主体的に送信されたのと実質的に同等の態様で（つまり、それらの制御コマンドが生成された時に実質的に遅滞無く直ちに）、デジタルカメラ１０から受信することができる。
【００３５】
このように、デジタルカメラ１０のUSBデバイスコントローラ１７とデジタルプリンタ２０のUSBデバイスコントローラ２５がもつ本発明の原理に従う追加の機能によって、デジタルカメラ１０の方から実質的に主体的に印刷条件設定や印刷要求などの制御又は働きかけをデジタルプリンタ２０に対して行なうことができる。ここで注目すべきことは、後述の説明から理解されるように、この追加の機能は、USBの規格で定められたUSBホストとUSBストレージクラスデバイス間の通信機能を全く阻害していない（つまり、それを有効に生かしたままである）点である。従って、デジタルカメラ１０をUSBを介してパーソナルコンピュータに接続した場合、そのパーソナルコンピュータのOSに標準装備のUSBホストコントローラが、デジタルカメラ１０をUSBストレージクラスデバイスとして認識して正常に通信することができるのである（勿論、上記追加の機能はパーソナルコンピュータに無視されることなるが）。このことは、デジタルカメラ１０をパーソナルコンピュータにUSBで接続する場合に、デジタルカメラ１０専用の特別のUSBコントローラをパーソナルコンピュータにインストールする必要が無いことを意味し、これはユーザにとって大きなメリットである。
【００３６】
以下、上記の追加の機能について詳細に説明する。
【００３７】
図２は、デジタルカメラ１０のUSBデバイスコントローラ１７とデジタルプリンタ２０のUSBホストコントローラ２５が通信するときに使用する論理的なパイプ（論理的な通信チャネル）を示す。
【００３８】
図２に示すように、USBデバイスコントローラ１７とUSBホストコントローラ２５との間では、コントロールパイプ４１、バルクパイプ４３及びインタラプトパイプ４５という３種類の通信パイプが使用される。ここで、コントロールパイプ４１は、デジタルカメラ１０からデジタルプリンタ２０へ及びその逆方向への各種制御コマンドの伝送に使用される。バルクパイプ４３は、デジタルカメラ１０からデジタルプリンタ２０への画像ファイルの伝送や、デジタルプリンタ２０からデジタルカメラ１０へのプリンタステータスデータの伝送のようなデータ伝送に使用される。また、インタラプトパイプ４５は、デジタルプリンタ２０からデジタルカメラ１０への「Interrupt In」というリクエスト問合せコマンドの伝送に使用される。
【００３９】
上述の3種類のパイプは、いずれもUSBの規格で定義されている。しかし、USB規格では、USBストレージデバイスの通信に関しては、インタラプトパイプ４５の使用に関して何の規定も無い。この実施形態では、インタラプトパイプ４５を有効活用することで、USBストレージタイプデバイスたるデジタルカメラ１０から実質的に主体的に、各種の制御コマンドをUSBホストたるデジタルプリンタ２０へ送ることができる。すなわち、デジタルプリンタ２０は、デジタルカメラ１０とUSBで接続されている間、例えば１ｍ秒に最低1回というようなユーザから見て非常に高速な速度で周期的に、「Interrupt In」コマンドをインタラプトパイプ４５を通じてデジタルカメラ１０に送る。デジタルカメラ１０は、「Interrupt In」コマンドを受ける都度、それに対する応答を、コントロールパイプ４１を通じてデジタルプリンタ２０を返すことなる。その場合、「Interrupt In」コマンドを受けた時点で上述したプリンタステータス要求、印刷要求或るいは印刷中止要求等の制御コマンドがデジタルカメラ１０内で発生してしたならば、デジタルカメラ１０は、その制御コマンドを、上記「Interrupt In」コマンドに対する応答として、デジタルプリンタ２０を返す。デジタルプリンタ２０は、その返送された制御コマンドを解釈して、デジタルカメラ１０の要求する動作（例えば、プリンタステータスの返送、印刷の実行、或るいは印刷の中止など）を実行することになる。その結果、デジタルカメラ１０による実質的に自主的な制御でデジタルプリンタ２０を動作させることが可能になる。
【００４０】
なお、デジタルプリンタ２０は、上記の印刷要求に応答して印刷を実行する際、デジタルカメラ１０がストレージクラスであるということを利用して、印刷に必要な各種のデータリソース（例えば、印刷対象の画像ファイルや印刷ページレイアウトの定義ファイルなど）を勝手にデジタルカメラ１０から読み込む。そのため、デジタルカメラ１０は、上述した印刷に必要なデータリソースに関しては、それを自分のメモリ１１内に記録しておいて、デジタルプリンタ２０からの読出し要求に応答してそれを読み出すという、ストレージクラスとしての動作を行なえばよいことになる。
【００４１】
以下、より具体的に説明する。
【００４２】
図３、図４及び図５は、デジタルプリンタ２０とデジタルカメラ１０間のUSBによる通信の流れの一例を示す。
【００４３】
図３は、デジタルプリンタ２０とデジタルカメラ１０間のUSBによる通信接続が確立された当初に行なわれる初期的な通信の流れの例を示す。
【００４４】
デジタルプリンタ２０とデジタルカメラ１０に既に電源が入っている状態で両者がUSB通信ケーブルで接続されたとき、又は、デジタルプリンタ２０とデジタルカメラ１０が既にUSB通信ケーブルで接続されている状態で両者が共に電源の入った状態になったとき、両者間にUSBの通信接続が確立される。USBの通信接続が確立されると、デジタルプリンタ２０のUSBホストコントローラ２５が、デジタルカメラ１０のUSBデバイスコントローラ１７から、そのUSBデバイスとしての構成を記述した「デバイスディスクリプタ」を取得する(ステップS1)。デジタルカメラ１０からのデバイスディスクリプタには、デジタルカメラ１０がストレージクラスのデバイスであることを記述した「インタフェースディスクリプタ」が含まれている。そして、そのインタフェースディスクリプタには、デジタルカメラ１０が使用するUSBの複数のエンドポイント（図２に示した3種類のパイプ４１，４３，４５の何れかを使ってパケットを送信又は受信するエンドポイント）を列挙した「ストリングディスクリプタ」が含まれている。このストリングディスクリプタには、具体的には、USB規格で定まったストレージクラスのデバイスが持つべきエンドポイント(例えば、「Bulk Out（バルクアウト）」エンドポイントや「Bulk In (バルクイン)」エンドポイント)に加えて、本発明の原理に従った追加のエンドポイントである「Interrupt In」エンドポイントが記述されている。従って、デジタルプリンタ２０のUSBホストコントローラ２５は、そのインタフェースディスクリプタ及びそのストリングディスクリプタから、デジタルカメラ１０がストレージクラスのデバイスであって、かつ、「Interrupt In」コマンド（USBデバイス側のリクエストを問い合わせるコマンド）を使用するデバイスであることを認識する。
【００４５】
因みに、デジタルプリンタ２０をパーソナルコンピュータのUSBポートに接続した場合、上記と同内容のデバイスディスクリプタがパーソナルコンピュータに送られるが、しかし、パーソナルコンピュータのOSに標準装備のUSBホストコントローラは、上述した追加の「Interrupt In」エンドポイントを無視することになる。従って、デジタルプリンタ２０は、パーソナルコンピュータに対しては、「Interrupt In」は使用しない通常のストレージクラスのデバイスとして動作することになる。
【００４６】
さて、デジタルカメラ１０のデバイススプリプタを取得したプリンタ２０は、その時点から所定の短い時間以内（例えば、１秒以内）に、コントロールパイプ４１を通じてデジタルカメラ１０に「プリンタプロトコル確認コマンド」を送り（S4）、それにより、プリンタ２０が使用する通信プロトコルのタイプ（すなわち、「Interrupt In」コマンドを使用するタイプであること）やプロトコルバージョンなどを通知する。
【００４７】
通信接続が確立した後、プリンタ２０は、例えば1ｍ秒以内に1回というような高速なレートで周期的に、「Interrupt In」コマンドを、インタラプトパイプ４５を通じてデジタルカメラ１０に送信する（S2,S5など）。デジタルカメラ１０は、「Interrupt In」コマンドを受信する都度、その時点で何らかの制御コマンドがデジタルカメラ１０内で発生しているか否かを調べ、何の制御コマンドも無ければ、要求なしを意味する「Nak」メッセージを、「Interrupt In」コマンドに対するリプライとしてコントロールパイプ４１を通じてプリンタ２０に返す（S3など）。一方、「Interrupt In」コマンドを受信した時点でデジタルカメラ１０内に何らかの制御コマンドが発生していれば、デジタルカメラ１０は、その制御コマンドを、「Interrupt In」コマンドに対するリプライとしてコントロールパイプ４１を通じてプリンタ２０に返す（S6など）。
【００４８】
そのような制御コマンドには、既に説明したように、プリンタステータス要求、印刷要求及び印刷中止要求などがある。例えば、図３のステップS6では、プリンタステータス要求が、ステップS5の「Interrupt In」コマンドに対するリプライとしてプリンタ２０に返されている。プリンタステータス要求を受けたプリンタ２０は、最新のプリンタステータスを調べ、そのプリンタステータスを示したデータを、バルクパイプ４５を通じてデジタルカメラ１０のメモリ１１内の所定ディレクトに書き込み（S7）、それにより、デジタルカメラ１０は最新のプリンタステータスを知る（そして、図示してないが、そのプリンタステータスを液晶表示パネルなどに表示する）。
【００４９】
プリンタ２０は、また、通信接続が確立した後、印刷要求を受け入れることが可能な状態になると、その状態になってから最初にプリンタステータス要求を受けたときに（S6）、デジタルカメラ１０にプリンタステータスデータを通知する（S7）だけでなく、印刷要求が受け入れ可能であることを通知するためのメッセージを、コントロールパイプ４１を通じてデジタルカメラ１０に送信する（S8）。
【００５０】
なお、プリンタステーをタス要求がデジタルカメラ１０で発生する時期は、デジタルカメラ１０の設計次第で如何様にもなるが、例えば、プリンタ２０に印刷要求を発してから印刷が完了するまでの間や、プリンタ２０に印刷中止要求を発してから印刷が中止されるまでの間などにおいて、例えば5秒間隔や１秒間隔などの定期的な時期とすることができる。
【００５１】
図４は、デジタルカメラ１０から印刷要求が発されてプリンタ２０で印刷が実行される場合の通信手順の例を示す。
【００５２】
図４に示すように、プリンタ２０は、既に説明したように、デジタルカメラ１０と接続されている間、高速なレートで周期的に「Interrupt In」コマンドをデジタルカメラ１０に送り続ける（S11,S13,S17,S21,S25）。ステップS13のように或る「Interrupt In」コマンドを受けたとき、印刷要求が発生していれば、デジタルカメラ１０は、ステップS14に示すように、その印刷要求を「Interrupt In」コマンドに対するリプライとして、コントロールパイプ４１を通じてプリンタ２０に返送する。この印刷要求には、ユーザの指定した印刷条件を示した印刷設定データが含まれている。この印刷設定データには、印刷枚数、用紙サイズ、印刷品質、画像補正方法などの一般的な印刷条件の他、印刷対象の画像ファイルのメモリ１１内でのパス名とファイル名や、さらに、所定の印刷ページレイアウト（1ページ内に印刷する１又は複数の画像の配置や寸法、写真フレームや挿入文字や挿入図画などの修飾の配置や寸法やパス名・ファイル名など）を使用して印刷する場合には、その印刷ページレイアウトを定義したレイアウトファイルのメモリ１１内でのパス名とファイル名などが記述されている。
【００５３】
上記のような印刷要求を受けたプリンタ２０は、ステップS15で、その印刷要求によって要求された印刷に必要なリソースファイルをデジタルカメラ１０のメモリ１１から読み込むためのコマンド(リソースファイル要求コマンド)をデジタルカメラ１０に送り、それに応答したデジタルカメラ１０のストレージクラスUSBデバイスコントローラ１７の仲介により、ステップS16で、その印刷に必要なリソースファイルをデジタルカメラ１０のメモリ１１から主体的に読み込み、そして、読み込んだリソースファイル使って印刷を実行する。ここで、印刷に必要なリソースファイルとは、例えば、印刷対象の画像ファイル（そのパス名やファイル名は印刷要求に書かれている）や、所定の印刷ページレイアウトを使用する場合には、その印刷ページレイアウトを定義したレイアウトファイル（そのパス名やファイル名は印刷要求に書かれている）や、印刷ページレイアウトで使用される写真フレームや挿入文字や挿入図画などのファイル（そのパス名やファイル名はレイアウトファイルに書かれている）などである。これらのリソースファイルは、プリンタ２０が勝手にデジタルカメラ１０のメモリ１１から読み込んで、伸張や色変換やハーフトーニングなどの処理を施すので、デジタルカメラ１０としては、特別に複雑な処理を行なう必要はない。
【００５４】
さて、印刷要求を受け入れた後も、プリンタ２０は、高速レートで周期的に「Interrupt In」コマンドをデジタルカメラ１０に送り続ける。そして、印刷要求を受け入れた後の「Interrupt In」コマンドに対して、デジタルカメラ１０からステップS18のように、プリンタステータス要求が最初に返送されたとき、プリンタ２０は、プリンタステータスを通知する（S19）とともに、印刷要求を受け入れた旨のメッセージを、コントロールパイプ４１を通じてデジタルカメラ１０に送る（S20）。この印刷要求受入メッセージには、その印刷ジョブをデジタルカメラ１０の側で識別するためのid番号（図の例では「01」）が記述されている。それにより、デジタルカメラ１０は、先ほど送出したid番号「01」の印刷ジョブの印刷要求がプリンタ２０に受け入れられて、その印刷処理が開始されたことを認識する。デジタルカメラ１０は、以後、そのid番号「01」の印刷ジョブに関して印刷完了の通知をプリンタ２０から受けるまで、新しい印刷ジョブの印刷要求を発しないよう、デジタルカメラ１０自身の動作を制御することができる。
【００５５】
印刷を行なっている間、プリンタ２０は、「Interrupt In」コマンドに対するリプライとしてプリンタステータス要求を受ける（S22）都度、プリンタステータスを通知する（S23）だけでなく、最新の印刷状態（例えば、印刷未完了の残り枚数又は印刷完了枚数）を調べて、それを示すメッセージを、コントロールパイプ４１を通じてデジタルカメラ１０に送信する（S24）。
【００５６】
また、印刷が完了すると、プリンタ２０は、完了後に最初に「Interrupt In」コマンドに対するリプライとしてプリンタステータス要求を受けたとき（S26）、プリンタステータスを通知する（S27）だけでなく、印刷が完了した旨のメッセージを、コントロールパイプ４１を通じてデジタルカメラ１０に送信する（S28）。この印刷完了メッセージには、完了した印刷ジョブのid番号が含まれているので、デジタルカメラ１０は、そのid番号からどの印刷ジョブが完了したかを認識できる。印刷ジョブが完了すると、デジタルカメラ１０は、新しい印刷ジョブの印刷要求を発行できるように、デジタルカメラ１０自身の動作を制御することができる。
【００５７】
図５は、デジタルカメラ１０から印刷要求が発された後に印刷中止要求が発された場合の通信手順の例を示す。
【００５８】
図５において、印刷要求が発されて印刷が実行されるステップS13〜S24の手順は、既に説明した図４のステップS13〜S24の手順と同様である。その後、印刷が完了しないうちに、デジタルカメラ１０で印刷中止要求が発生すると、その直後の「Interrupt In」コマンド（S25）に対するリプライとして、その印刷中止要求がデジタルカメラ１０からコントロールパイプ４１を通じてプリンタ２０に送られる（S31）。印刷中止要求には、中止したい印刷ジョブのid番号が含まれている。
【００５９】
印刷中止要求を受けたプリンタ２０は、そのid番号の印刷ジョブの実行を中止する。そして、プリンタ２０は、印刷を中止した後、最初に「Interrupt In」コマンドに対するリプライとしてプリンタステータス要求を受けたとき（S33）、プリンタステータスを通知する（S34）だけでなく、印刷を中止した旨のメッセージを、コントロールパイプ４１を通じてデジタルカメラ１０に送信する（S35）。この印刷中止メッセージには、中止した印刷ジョブのid番号が含まれているので、デジタルカメラ１０は、そのid番号からどの印刷ジョブが中止されたかを認識できる。
【００６０】
以上のようにして、デジタルカメラ１０は、プリンタ２０に対してストレージクラスのUSBデバイスとして動作しつつ、プリンタ２０から頻繁に来る「Interrupt In」コマンド（リクエスト問合せ）に対するリプライとして、デジタルカメラ１０内で発生した各種の要求（制御コマンド）をプリンタ２０に返送することによって、実質的にデジタルカメラ１０からの主体的な制御でプリンタ２０を動作させることができる。
【００６１】
図６及び図７は、本発明の別の実施形態にかかる直接接続式の印刷システムの通信手順の例を示す。
【００６２】
この実施形態では、上述した「Interrupt In」コマンドを使用する追加の機能は使われず、
デジタルカメラ１０は全く通常のストレージクラスのUSBデバイスとして動作する。デジタルカメラ１０で発生したプリンタステータス要求や印刷要求や印刷中止などのあらゆる制御コマンドは、どのようなコマンドであるかを示す特定のファイル名又は特定の識別子の付いたファイル（例えばテキストファイルであり、以下、「コマンドファイル」という）の形でメモリ１１内の所定のディレクトリに書き込まれる。プリンタ２０は、例えば１ｍ秒に最低1回というようなユーザにとっては非常に高速のレートで周期的に、メモリ１１内の上記所定ディレクトリにコマンドファイルが在るか否かチェックし、有れば、そのコマンドファイルを読み込むことで、デジタルカメラ１０からの制御コマンドを認識する。これにより、実質的にデジタルカメラ１０からの主体的な制御でプリンタ２０を動作させることができる。
【００６３】
以下、具体的な通信手順の例を説明する。
【００６４】
図６のステップS51に示すように、デジタルカメラ１０内のメモリ１１には、例えば「\printjob」、「\printsts」及び「\imgdata」というような名称の3種類のディレクトリが予め設けられている。「\printjob」ディレクトリには、デジタルカメラ１０の印刷要求に相当するファイル（以下、「印刷要求ファイル」という）が格納される。ここで、１つの印刷ジョブに係る「印刷要求ファイル」は、この実施形態では後述するように、2種類のファイルのセットから成る。以下の説明では、その2種類のファイルを纏めて呼ぶとき「印刷要求ファイル」という。「\printsts」ディレクトリには、プリンタ２０からの印刷ジョブの状態を示すメッセージ（例えば、前述の実施形態で説明した印刷要求受入メッセージや印刷状態メッセージなど）に相当する何種類かのファイルが格納される。また、「\imgdata」ディレクトリには、印刷で使用される様々な種類のリソースファイル、例えば、撮影された写真の画像ファイルや、特定の印刷ページレイアウトを定義したレイアウトファイルや、その特定の印刷ページレイアウトで使用される写真フレームや挿入文字や挿入図画などの画像ファイルや文字ファイルなどが格納される。なお、図６では、「\imgdata」ディレクトリに１つの画像ファイルと１つのレイアウトファイルしか存在しないが、実際には、複数の画像ファイルと複数のレイアウトファイルが存在するのが通常である。
【００６５】
デジタルカメラ１０だけでなく、デジタルプリンタ２０も、上述したメモリ１１内の3種類のディレクトリと、それが何の用途に用いられ、そこに書かれるファイルのファイル前いや識別子が何を意味しているかについての知識を、予め有している。この知識は、デジタルプリンタ２０に予め固定的にプログラムされていてもよいし、或るいは、そうではなく、デジタルカメラ１０とデジタルプリンタ２０との間のUSB通信接続が確立されたときに、デジタルカメラ１０からのデバイスデスクリプタ又は別の特別な宣言文によって、デジタルプリンタ２０に通知されるようになっていてもよい。
【００６６】
図６のステップS41で、ユーザがデジタルカメラ１０を用いて、印刷対象の画像を選択し、使用したい印刷ページレイアウトを指定し、そして印刷条件を設定する等の印刷準備ためのボタン操作を行なった上で印刷実行を命じるボタン操作を行なったとする。すると、ステップS42で、デジタルカメラ１０はそのボタン操作に応答して、印刷対象の画像及び使用する印刷ページレイアウトを指定した（例えば、その画像ファイルのパス名とファイル名、及びそのレイアウトファイルのパス名とファイル名等を指定した）「画像・レイアウト指定ファイル」と、使用する印刷条件の設定を記述した「印刷設定ファイル」とを作成して、その２つのファイルのセット（つまり、上述した「印刷要求ファイル」）を、メモリ１１の「\printjob」ディレクトリに書き込む。
【００６７】
一方、プリンタ２０は、ステップS61,S62,S63などに示すように、例えば１ｍ秒に最低1回というような高速レートで周期的に、メモリ１１の「\printjob」ディレクトリをチェックする。ステップS561のように、「\printjob」ディレクトリに印刷要求ファイが存在しなければ、プリンタ２０は何もしない。しかし、ステップS62のように、「\printjob」ディレクトリに印刷要求ファイル（すなわち、画像・レイアウト指定ファイルと印刷設定ファイル）が存在すれば、プリンタ２０はその印刷要求ファイルを読み込む。そして、プリンタ２０は、その印刷要求ファイルに記述されている印刷対象の画像ファイルのパス名とファイル名及びそのレイアウトファイルのパス名とファイル名を把握して、メモリ１１の「\imgdata」ディレクトリから、その画像ファイルとレイアウトファイルを読み込む。さらに、プリンタ２０は、図示してないが、レイアウトファイルに記述されている写真フレーム、挿入文字又は挿入図画などの画像ファイル又は文字ファイルのパス名とファイル名を把握して、メモリ１１の「\imgdata」ディレクトリから、その写真フレーム、挿入文字又は挿入図画などの画像ファイル又は文字ファイを読み込む。そして、プリンタ２０は、それら読み込んだリソースファイルを用いて、上述の印刷要求ファイル（特に印刷設定ファイル）に記述されていた印刷条件設定に従って、印刷処理を開始する。同時に、プリンタ２０は、印刷要求を受け入れたことを示す「印刷要求受入ファイル」（そこには、対応する印刷ジョブのid番号が書かれている）を、メモリ１１の「\printsts」ディレクトリに書き込む。
【００６８】
また、プリンタ２０は、ステップS63に示すように、周期的チェックの結果、「\printjob」ディレクトリに既に読み込んだものと同じ印刷要求ファイルしか存在しない場合には、その既に読み込んだ印刷要求ファイルに基づく印刷処理を続行する。
【００６９】
また、プリンタ２０は、ステップS64に示すように、印刷処理を開始した後、周期的に又は印刷状態が変化した都度、最新の印刷状態(例えば、未印刷の残り枚数又は印刷完了枚数)が記述された印刷状態ファイルを、メモリ１１の「\printsts」ディレクトリに書き込む。印刷状態ファイルの書き込み方法としては、この実施形態では「上書き」（すなわち、前の印刷要求受入ファイル又は印刷状態ファイルを消去して、新しい印刷状態ファイルを書き込む方法）を採用するが、必ずしもそうである必要は無く、「追記」（すなわち、前の印刷要求受入ファイル又は印刷状態ファイルを消去せずに、新しい印刷状態ファイルを書き込む方法）であってもよい。
【００７０】
一方、デジタルカメラ１０は、ステップS42で印刷要求を発した後、ステップS43,S44などに示すように、周期的に(望ましくは、プリンタ２０と同様の高速レートで)、メモリ１１の「\printjob」及び「\printsts」ディレクトリをチェックする。その結果、ステップS43のように、「\printsts」ディレクトリにプリンタ２０からの印刷要求受入ファイルが存在すれば、デジタルカメラ１０は、その印刷要求受入ファイルを読むことで、先刻発した印刷要求がプリンタ２０に受け入れられたことを確認する。ステップS44に示すように、「\printsts」ディレクトリに印刷状態ファイルが存在すれば、デジタルカメラ１０は、その印刷状態ファイルを読むことで、最新の印刷状態を確認する。
【００７１】
以上に後続する通信手順は図７に示されている。
【００７２】
図７のステップS65に示すように、プリンタ２０は、印刷が完了すると、メモリ１１の「\printjob」ディレクトリから完了した印刷ジョブの印刷要求ファイルを消去し、そして、メモリ１１の「\printsts」ディレクトリに、印刷が完了したことを示す「印刷完了ファイル」（完了した印刷ジョブのid番号が書かれている）を書き込む。すると、ステップS45に示すように、デジタルカメラ１０は、周期チェックの際に、「\printsts」ディレクトリ内の印刷完了ファイルを見つけ、それを読むことで、どの印刷ジョブが完了したかを確認する。
【００７３】
その後、ステップS46に示すように、デジタルカメラ１０は、周期チェックの際に、「\printjob」ディレクトリに印刷要求ファイルが存在しないことを確認すると、新たな印刷要求を発することが可能な状態になる。そして、ステップS47に示すように、ユーザが新たな印刷要求のためのボタン操作を行なうと、デジタルカメラ１０は、ステップS48に示すように、既に説明したと同じ手順で新たな印刷要求ファイルを作成して「\printsts」ディレクトリに書き込む。以後、既に説明したと同様な手順で、その新たな印刷要求がプリンタ２０に読み込まれて（S67）、それに従った印刷処理が行なわれる。
【００７４】
以上のようにして、デジタルカメラ１０は制御コマンドをファイルの形でメモリ１１内の所定ディレクトリに書き込み、プリンタ２０は頻繁にそのディレクトリを監視して、コマンドファイルが書き込まれば直ちに読み込むことによって、デジタルカメラ１０はプリンタ２０に対して通常のストレージとして機能するだけであっても、実質的にデジタルカメラ１０から主体的にプリンタ２０を制御することが可能である。
【００７５】
以上、本発明の実施形態を説明したが、これは本発明の説明のための例示であり、この実施形態のみに本発明の範囲を限定する趣旨ではない。従って、本発明は、その要旨を逸脱することなく、他の様々な形態で実施することが可能である。
【図面の簡単な説明】
【００７６】
【図１】本発明の一実施形態にかかる直接接続式の印刷システムの全体構成を示すブロック図。
【図２】デジタルカメラ１０のUSBデバイスコントローラ１７とデジタルプリンタ２０のUSBデバイスコントローラ２５が通信するときに使用する論理的なパイプ（論理的な通信チャネル）を示すブロック図。
【図３】デジタルプリンタ２０とデジタルカメラ１０間のUSBによる通信接続が確立された直後の初期的な通信手順の例を示すシーケンス図。
【図４】デジタルカメラ１０から印刷要求が発されてプリンタ２０で印刷が実行される場合の通信手順の例を示すシーケンス図。
【図５】デジタルカメラ１０から印刷要求が発された後に印刷中止要求が発された場合の通信手順の例を示すシーケンス図。
【図６】本発明の別の実施形態にかかる直接接続式の印刷システムの通信手順の例を示すシーケンス図。
【図７】図６から続く通信手順のシーケンス図。
【符号の説明】
【００７７】
１０  デジタルカメラ
１１  メモリ
１５  カメラコントローラ
１７  ストレージクラスのUSBデバイスコントローラ
２０  デジタルプリンタ
２１  印刷コントローラ
２５  USBホストコントローラ
４１  コントロールパイプ
４３  バルクパイプ
４５  インタラプトパイプ
【図１】
2006114031.tif 000003
【図２】
2006114031.tif 000004
【図３】
2006114031.tif 000005
【図４】
2006114031.tif 000006
【図５】
2006114031.tif 000007
【図６】
2006114031.tif 000008
【図７】
2006114031.tif 000009