(57)【要約】    【構成】  周辺機器であるディジタルカメラ３０に別の周辺機器であるカメラ付携帯電話６０を制御するコマンドが入力されると、ディジタルカメラ３０では、カメラ付携帯電話６０へのコマンドの送信を要求する要求信号が生成される。ＵＳＢホスト１０は、ディジタルカメラ３０から要求信号をインタラプト転送方式で受け付け、要求信号を受け付けたときディジタルカメラ３０からバルク転送方式でコマンドを取得して、取得されたコマンドをバルク転送方式でカメラ付携帯電話６０に通知する。コマンドの通知を受けたカメラ付携帯電話６０では、コマンドが実行され、さらにその実行結果が生成される。ＵＳＢホスト１０は、カメラ付携帯電話６０から実行結果をバルク転送方式で受信して、受信された実行結果をディジタルカメラ３０にバルク転送方式で送信する。    【効果】  ＵＳＢ方式を利用して第１周辺機器の操作で第２周辺機器を制御できる。【選択図】  図１
2005332308.tif 000002
【特許請求の範囲】
【請求項１】
第１周辺機器および第２周辺機器の各々とＵＳＢ方式で通信を行うホストコントローラにおいて、
前記第２周辺機器へのコマンドの送信を要求する要求信号をインタラプト転送方式で前記第１周辺機器から受け付ける受付手段、
前記受付手段によって要求信号を受け付けたとき前記第１周辺機器からバルク転送方式およびアイソクロナス転送方式の一方でコマンドを取得する取得手段、
前記取得手段によって取得されたコマンドを前記バルク転送方式および前記アイソクロナス転送方式の一方で前記第２周辺機器に通知する通知手段、
前記通知手段によって通知されたコマンドの実行結果を前記バルク転送方式および前記アイソクロナス転送方式の一方で前記第２周辺機器から受信する受信手段、および
前記受信手段によって受信された実行結果を前記バルク転送方式および前記アイソクロナス転送方式の一方で前記第１周辺機器に送信する送信手段を備えることを特徴とする、ホストコントローラ。
【請求項２】
前記第２周辺機器はカメラであり、前記コマンドは撮影要求であり、そして前記実行結果は撮影処理の成功／失敗を示す、請求項１記載のホストコントローラ。
【請求項３】
前記第２周辺機器はコンテンツ記録装置であり、前記コマンドはコンテンツ記録要求であり、そして前記実行結果はコンテンツ記録処理の成功／失敗を示す、請求項１記載のホストコントローラ。
【請求項４】
前記第２周辺機器はコンテンツ記録装置であり、前記コマンドはコンテンツ読み出し要求であり、そして前記実行結果はコンテンツである、請求項１記載のホストコントローラ。
【請求項５】
第１周辺機器および第２周辺機器の各々とＵＳＢ方式で通信を行うホストコントローラのプロセサによって実行される通信制御プログラムであって、
前記第２周辺機器へのコマンドの送信を要求する要求信号をインタラプト転送方式で前記第１周辺機器から受け付ける受付ステップ、
前記受付ステップによって要求信号を受け付けたとき前記第１周辺機器からバルク転送方式およびアイソクロナス転送方式の一方でコマンドを取得する取得ステップ、
前記取得ステップによって取得されたコマンドを前記バルク転送方式および前記アイソクロナス転送方式の一方で前記第２周辺機器に通知する通知ステップ、
前記通知ステップによって通知されたコマンドの実行結果を前記バルク転送方式および前記アイソクロナス転送方式の一方で前記第２周辺機器から受信する受信ステップ、および
前記受信ステップによって受信された実行結果を前記バルク転送方式および前記アイソクロナス転送方式の一方で前記第１周辺機器に送信する送信ステップを備える、通信制御プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、ホストコントローラに関し、特にたとえば、第１周辺機器および第２周辺機器の各々とＵＳＢ方式で通信を行う、ホストコントローラに関する。
【背景技術】
【０００２】
周知の如く、ＵＳＢ方式には、コントロール転送，インタラプト転送，バルク転送およびアイソクロナス転送の４つの転送方式が含まれる。コントロール転送方式は主として初期設定時に利用され、初期設定後の通信には、インタラプト転送，バルク転送およびアイソクロナス転送のいずれかの方式が用いられる。後の３つの転送方式には方向性があり、周辺機器はホスト側からの要求に対する応答としてしかデータを送信することができない。このため、ＵＳＢ方式を用いる場合、基本的には、ホスト機器の操作で周辺機器を制御する。
【０００３】
さて、従来、ＵＳＢ方式を用いて周辺機器の操作でホスト機器を制御するための方法として、“ＰｉｃｔＢｒｉｄｇｅ”と呼ばれるプロトコルが知られている。このプロトコルによれば、ホスト機器であるプリンタが、プリンタ自身へのコマンドの送信を要求する要求信号をインタラプト転送方式で周辺機器であるディジタルカメラから受け付ける。すなわち、プリンタがディジタルカメラにコマンドの有無を周期的に問い合わせ、ディジタルカメラは、問い合わせを受けたときコマンドがなければＮａｋを返信し、コマンドがあれば要求信号を返信する。
【０００４】
プリンタは、要求信号を受け付けたときディジタルカメラからバルク転送方式でコマンドおよび画像データを取得する。すなわち、プリンタがディジタルカメラにコマンドおよび画像データの送信を周期的に要求し、ディジタルカメラは、要求を受けたとき送信準備が未だ完了していなければＮａｋを返信し、完了していればコマンドおよび画像データを返信する。
【０００５】
コマンドおよび画像データの取得後、プリンタは、コマンドを実行する、つまり画像データに従って印刷を行う。そして、実行結果つまり印刷の成否をバルク転送方式でディジタルカメラに送信する。
【発明の開示】
【発明が解決しようとする課題】
【０００６】
しかし、従来技術では、周辺機器の操作で制御できる対象は、ホスト機能を持つ機器に限られる。
【０００７】
それゆえに、この発明の主たる目的は、ＵＳＢ方式を利用して第１周辺機器の操作で第２周辺機器を制御できるようにする、ホストコントローラを提供することである。
【課題を解決するための手段】
【０００８】
請求項１の発明に従うホストコントローラは、第１周辺機器および第２周辺機器の各々とＵＳＢ方式で通信を行うホストコントローラにおいて、第２周辺機器へのコマンドの送信を要求する要求信号をインタラプト転送方式で第１周辺機器から受け付ける受付手段、受付手段によって要求信号を受け付けたとき第１周辺機器からバルク転送方式およびアイソクロナス転送方式の一方でコマンドを取得する取得手段、取得手段によって取得されたコマンドをバルク転送方式およびアイソクロナス転送方式の一方で第２周辺機器に通知する通知手段、通知手段によって通知されたコマンドの実行結果をバルク転送方式およびアイソクロナス転送方式の一方で第２周辺機器から受信する受信手段、および受信手段によって受信された実行結果をバルク転送方式およびアイソクロナス転送方式の一方で第１周辺機器に送信する送信手段を備えることを特徴とする。
【０００９】
第２周辺機器へのコマンドの送信を要求する要求信号を受付手段がインタラプト転送方式で第１周辺機器から受け付ける。要求信号を受け付けたとき取得手段は第１周辺機器からバルク転送方式またはアイソクロナス転送方式でコマンドを取得し、通知手段は取得手段によって取得されたコマンドをバルク転送方式またはアイソクロナス転送方式で第２周辺機器に通知する。さらに、受信手段は通知手段によって通知されたコマンドの実行結果をバルク転送方式またはアイソクロナス転送方式で第２周辺機器から受信し、送信手段は受信手段によって受信された実行結果をバルク転送方式またはアイソクロナス転送方式で第１周辺機器に送信する。これにより、ＵＳＢ方式を利用して第１周辺機器の操作で第２周辺機器を制御できる。
【００１０】
請求項２の発明に従うホストコントローラは、請求項１に従属し、第２周辺機器はカメラであり、コマンドは撮影要求であり、そして実行結果は撮影処理の成功／失敗を示す。これにより、ＵＳＢ方式を利用して第１周辺機器の操作でカメラに撮影を行わせることができる。
【００１１】
請求項３の発明に従うホストコントローラは、請求項１に従属し、第２周辺機器はコンテンツ記録装置であり、コマンドはコンテンツ記録要求であり、そして実行結果はコンテンツ記録処理の成功／失敗を示す。これにより、ＵＳＢ方式を利用して第１周辺機器の操作でコンテンツ記録装置にコンテンツの記録を行わせることができる。
【００１２】
請求項４の発明に従うホストコントローラは、請求項１に従属し、第２周辺機器はカメラであり、コマンドはコンテンツ読み出し要求であり、そして実行結果はコンテンツである。これにより、ＵＳＢ方式を利用して第１周辺機器の操作でコンテンツ記録装置にコンテンツの読み出しを行わせることができる。
【００１３】
請求項５の発明に従う通信制御プログラムは、第１周辺機器および第２周辺機器の各々とＵＳＢ方式で通信を行うホストコントローラのプロセサによって実行される通信制御プログラムであって、第２周辺機器へのコマンドの送信を要求する要求信号をインタラプト転送方式で第１周辺機器から受け付ける受付ステップ、受付ステップによって要求信号を受け付けたとき第１周辺機器からバルク転送方式およびアイソクロナス転送方式の一方でコマンドを取得する取得ステップ、取得ステップによって取得されたコマンドをバルク転送方式およびアイソクロナス転送方式の一方で第２周辺機器に通知する通知ステップ、通知ステップによって通知されたコマンドの実行結果をバルク転送方式およびアイソクロナス転送方式の一方で第２周辺機器から受信する受信ステップ、および受信ステップによって受信された実行結果をバルク転送方式およびアイソクロナス転送方式の一方で第１周辺機器に送信する送信ステップを備える。
【発明の効果】
【００１４】
この発明によれば、ＵＳＢ方式を利用して、あたかも第１周辺機器がクライアント、第２周辺機器がサーバであるかのように、第１周辺機器の操作で第２周辺機器を制御することができる。
【００１５】
この発明の上述の目的，その他の目的，特徴および利点は、図面を参照して行う以下の実施例の詳細な説明から一層明らかとなろう。
【発明を実施するための最良の形態】
【００１６】
図１を参照して、この実施例のＵＳＢホスト１０は、ＣＰＵ１４とＵＳＢコントローラ１８とを含む。ＵＳＢコントローラ１８には、複数のＵＳＢデバイス、例えばディジタルカメラ３０およびカメラ付携帯電話６０が接続される。
【００１７】
ＣＰＵ１４は、ＵＳＢコントローラ１８に接続されている全てのＵＳＢデバイスつまりディジタルカメラ３０およびカメラ付携帯電話６０の各々のデバイス情報を記憶している。デバイス情報は、デバイスＩＤ，デバイス名称，コンテンツ情報などを含む。コンテンツ情報には、デバイスが保有しているコンテンツ例えば画像ファイルの識別子が記述される。
【００１８】
図２を参照して、ディジタルカメラ３０は、ＣＰＵ３８，ＲＯＭ３６および記録媒体４６を含む。記録媒体４６には、１以上の画像ファイル例えば“ｉｍａｇｅ０１．ｊｐｇ”，“ｉｍａｇｅ０２．ｊｐｇ”…が格納されている。ＲＯＭ３６には、ディジタルカメラ３０自身のデバイス情報が記憶されている。
【００１９】
ＣＰＵ３８は、ディジタルカメラ３０自身のデバイスＩＤ（＝１）およびコンテンツ情報を記憶する。ＣＰＵ３８はまた、ＵＳＢコントローラ１８に接続されている自分以外のＵＳＢデバイスつまりカメラ付携帯電話６０に関するデバイス情報を記憶する。
【００２０】
図３を参照して、カメラ付携帯電話６０は、ＣＰＵ６８，ＲＯＭ６６および記録媒体７６を含む。記録媒体７６には、１以上の画像ファイル例えば“ｉｍａｇｅＡ．ｊｐｇ”，“ｉｍａｇｅＢ．ｊｐｇ”…が格納されている。ＲＯＭ６６には、カメラ付携帯電話６０自身のデバイス情報が記憶されている。
【００２１】
ＣＰＵ６８は、カメラ付携帯電話６０自身に関するデバイスＩＤ（＝２）およびコンテンツ情報を記憶する。ＣＰＵ６８はまた、ＵＳＢコントローラ１８に接続されている自分以外のＵＳＢデバイスつまりディジタルカメラ３０に関するデバイス情報を記憶する。
【００２２】
以上のように構成されたＵＳＢホスト１０，ディジタルカメラ３０およびカメラ付携帯電話６０の動作を以下に説明する。ディジタルカメラ３０およびカメラ付携帯電話６０がＵＳＢホスト１０に接続されたとき、ＵＳＢホスト１０は、次のような初期処理を行う。初期処理では、最初、ディジタルカメラ３０およびカメラ付携帯電話６０の各々からコントロール転送方式でデバイス情報を取得する。次に、ディジタルカメラ３０およびカメラ付携帯電話６０の各々からインタラプト転送方式で他デバイス情報の問い合わせを受け付ける。そして、問い合わせを受け付けたとき、カメラ付携帯電話６０のデバイス情報をディジタルカメラ３０にコントロール転送方式で送信し、かつディジタルカメラ３０のデバイス情報をカメラ付携帯電話６０にコントロール転送方式で送信する。
【００２３】
このような初期処理によって、ＵＳＢホスト１０にはディジタルカメラ３０およびカメラ付携帯電話６０の各々のデバイス情報が記憶され、ディジタルカメラ３０にはカメラ付携帯電話６０のデバイス情報が記憶され、カメラ付携帯電話６０にはディジタルカメラ３０のデバイス情報が記憶される。
【００２４】
初期設定の完了以降、ディジタルカメラ３０は、カメラ付携帯電話６０へのコマンドを任意のタイミングで受け付ける。具体的には、操作キー４２の操作によってコマンドが生成され、生成されたコマンドがシステムコントローラ４０を介してＣＰＵ３８に入力される。カメラ付携帯電話６０も同様に、ディジタルカメラ３０へのコマンドを任意のタイミングで受け付ける。ディジタルカメラ３０およびカメラ付携帯電話６０の各々は、コマンドを受け付けたとき“コマンド有り”通知を生成する。
【００２５】
このときＵＳＢホスト１０は、次のような仲介処理を行う。仲介処理では、ディジタルカメラ３０およびカメラ付携帯電話６０の各々から“コマンド有り”通知をインタラプト転送方式で受け付ける。“コマンド有り”通知を受け付けたとき、通知元デバイスからバルク転送方式でコマンドを取得し、取得したコマンドを対象デバイスに送信する。その後、コマンドの実行結果を対象デバイスから受信し、受信した実行結果を通知元デバイスに送信する。これにより、ＵＳＢ方式を利用して、ディジタルカメラ３０の操作でカメラ付携帯電話６０を制御でき、かつカメラ付携帯電話６０の操作でディジタルカメラ３０を制御できる。
【００２６】
例えば、ディジタルカメラ３０の操作で、カメラ付携帯電話６０にディジタルカメラ３０内の画像ファイルを取り込ませることができる。また、カメラ付携帯電話６０の操作でディジタルカメラ３０に撮影を行わせることもできる。そして、この撮影によってディジタルカメラ３０内に生成された画像ファイルを、さらにカメラ付携帯電話６０の操作でカメラ付携帯電話６０内に取り込むことも可能である。これら３つの制御は、図４〜図６のプロトコルに従う通信によってそれぞれ実現される。
【００２７】
図４を参照して、ＵＳＢホスト１０は、ディジタルカメラ３０およびカメラ付携帯電話６０の各々に対し、インタラプト・イン転送方式に従う要求信号（以下インタラプト・イン要求）を周期的に送信する。インタラプト・イン要求を受信したディジタルカメラ３０およびカメラ付携帯電話６０の各々は、通知すべきコマンドまたはデータがない場合、ＵＳＢホスト１０にＮａｋを返信する。
【００２８】
この後、カメラ付携帯電話６０に画像記録を行わせるためのコマンドが、ディジタルカメラ３０に入力されたとする。コマンド入力操作を受け付けたディジタルカメラ３０は、この直後のインタラプト・イン要求に対し“コマンド有り”通知を応答する。
【００２９】
ディジタルカメラ３０からインタラプト・イン応答として“コマンド有り”通知を受けたＵＳＢホスト１０は、ディジタルカメラ３０に向けてバルク・アウト転送方式でコマンド要求を送信する。コマンド要求を受信したディジタルカメラ３０は、ＵＳＢホスト１０にＡｃｋを返信する。Ａｃｋを受信したＵＳＢホスト１０は、ディジタルカメラ３０に対し、バルク・イン転送方式に従う要求信号（以下バルク・イン要求）を周期的に送信する。
【００３０】
バルク・イン要求を受信したディジタルカメラ３０は、まだコマンドの送信準備が完了していなければＮａｋを応答し、完了していればコマンドを応答する。応答されるコマンドには、図５（Ａ）のように、“画像記録”が記述され、かつ画像データが添付される。ディジタルカメラ３０からバルク・イン応答としてコマンドを受信したＵＳＢホスト１０は、受信したコマンドをバルク・アウト転送方式でカメラ付携帯電話６０に送信する。
【００３１】
コマンドを受信したカメラ付携帯電話６０は、ＵＳＢホスト１０にＡｃｋを返信する一方、コマンドを実行する、すなわちコマンドに添付された画像データを記録媒体７６に記録する。
【００３２】
Ａｃｋを受信したＵＳＢホスト１０は、ディジタルカメラ３０に対しバルク・イン要求を周期的に送信する。バルク・イン要求を受信したディジタルカメラ３０は、まだコマンドの実行および実行結果の送信準備が完了していなければＮａｋを応答し、完了していれば実行結果を応答する。応答される実行結果には、図５（Ｂ）のように、“成功”または“失敗”が記述される。
【００３３】
カメラ付携帯電話６０からバルク・イン応答として実行結果を受信したＵＳＢホスト１０は、受信した実行結果をバルク・アウト転送方式でディジタルカメラ３０に送信する。実行結果を受信したディジタルカメラ３０は、ＵＳＢホスト１０にＡｃｋを返信する。
【００３４】
図６を参照して、ＵＳＢホスト１０は、ディジタルカメラ３０およびカメラ付携帯電話６０の各々に対しインタラプト・イン要求を周期的に送信する。インタラプト・イン要求を受信したディジタルカメラ３０およびカメラ付携帯電話６０の各々は、通知すべきコマンドまたはデータがない場合、ＵＳＢホスト１０にＮａｋを返信する。
【００３５】
この後、ディジタルカメラ３０に撮影を行わせるためのコマンドが、カメラ付携帯電話６０に入力されたとする。コマンド入力操作を受け付けたカメラ付携帯電話６０は、この直後のインタラプト・イン要求に対し“コマンド有り”通知を応答する。
【００３６】
カメラ付携帯電話６０からインタラプト・イン応答として“コマンド有り”通知を受けたＵＳＢホスト１０は、カメラ付携帯電話６０に向けてバルク・アウト転送方式でコマンド要求を送信する。コマンド要求を受信したカメラ付携帯電話６０は、ＵＳＢホスト１０にＡｃｋを返信する。Ａｃｋを受信したＵＳＢホスト１０は、カメラ付携帯電話６０に対しバルク・イン要求を周期的に送信する。
【００３７】
バルク・イン要求を受信したカメラ付携帯電話６０は、まだコマンドの送信準備が完了していなければＮａｋを応答し、完了していればコマンドを応答する。応答されるコマンドには、図７（Ａ）のように、“撮影”が記述される。カメラ付携帯電話６０からバルク・イン応答としてコマンドを受信したＵＳＢホスト１０は、受信したコマンドをバルク・アウト転送方式でディジタルカメラ３０に送信する。
【００３８】
コマンドを受信したディジタルカメラ３０は、ＵＳＢホスト１０にＡｃｋを返信する一方、コマンドを実行する、すなわち撮影を行う。撮影処理では、イメージセンサ３２が露光を受け、これにより生成された画像信号がイメージセンサ３２から出力される。出力された画像信号は、信号処理回路３４に与えられ、画像データに変換される。変換された画像データは、いったんＳＤＲＡＭ４４に書き込まれ、その後ＳＤＲＡＭ４４から読み出される。そして、読み出された画像データを含む画像ファイルが記録媒体４６に記録される。
【００３９】
Ａｃｋを受信したＵＳＢホスト１０は、カメラ付携帯電話６０に対しバルク・イン要求を周期的に送信する。バルク・イン要求を受信したカメラ付携帯電話６０は、まだコマンドの実行と実行結果の送信準備とが完了していなければＮａｋを応答し、完了していれば実行結果を応答する。応答される実行結果には、図７（Ｂ）のように、“成功”または“失敗”が記述される。
【００４０】
ディジタルカメラ３０からバルク・イン応答として実行結果を受信したＵＳＢホスト１０は、受信した実行結果をバルク・アウト転送方式でカメラ付携帯電話６０に送信する。実行結果を受信したカメラ付携帯電話６０は、ＵＳＢホスト１０にＡｃｋを返信する。
【００４１】
図９を参照して、ＵＳＢホスト１０は、ディジタルカメラ３０およびカメラ付携帯電話６０の各々に対しインタラプト・イン要求を周期的に送信する。インタラプト・イン要求を受信したディジタルカメラ３０およびカメラ付携帯電話６０の各々は、通知すべきコマンドまたはデータがない場合、ＵＳＢホスト１０にＮａｋを返信する。
【００４２】
この後、ディジタルカメラ３０に画像の読み出しを行わせるためのコマンドがカメラ付携帯電話６０に入力されたとする。コマンド入力操作を受け付けたカメラ付携帯電話６０は、この直後のインタラプト・イン要求に対し“コマンド有り”通知を応答する。
【００４３】
カメラ付携帯電話６０からインタラプト・イン応答として“コマンド有り”通知を受けたＵＳＢホスト１０は、カメラ付携帯電話６０に向けてバルク・アウト転送方式でコマンド要求を送信する。コマンド要求を受信したカメラ付携帯電話６０は、ＵＳＢホスト１０にＡｃｋを返信する。Ａｃｋを受信したＵＳＢホスト１０は、カメラ付携帯電話６０に対しバルク・イン要求を周期的に送信する。
【００４４】
バルク・イン要求を受信したカメラ付携帯電話６０は、まだコマンドの送信準備が完了していなければＮａｋを応答し、完了していればコマンドを応答する。応答されるコマンドには、図９（Ａ）のように、“画像読み出し”が記述され、かつ画像ファイルの識別子例えば“ｉｍａｇｅ０１．ｊｐｇ”が添付される。カメラ付携帯電話６０からバルク・イン応答としてコマンドを受信したＵＳＢホスト１０は、受信したコマンドをバルク・アウト転送方式でディジタルカメラ３０に送信する。
【００４５】
コマンドを受信したディジタルカメラ３０は、ＵＳＢホスト１０にＡｃｋを返信する一方、コマンドを実行する、すなわちコマンドに添付された識別子に対応する画像ファイルを記録媒体４６から読み出す。
【００４６】
Ａｃｋを受信したＵＳＢホスト１０は、カメラ付携帯電話６０に対しバルク・イン転送要求を周期的に送信する。バルク・イン要求を受信したカメラ付携帯電話６０は、まだコマンドの実行と実行結果の送信準備とが完了していなければＮａｋを応答し、完了していれば実行結果を応答する。応答される実行結果には、図９（Ｂ）のように、読み出された画像データが含められる。
【００４７】
ディジタルカメラ３０からバルク・イン応答として実行結果を受信したＵＳＢホスト１０は、受信した実行結果をバルク・アウト転送方式でカメラ付携帯電話６０に送信する。実行結果を受信したカメラ付携帯電話６０は、ＵＳＢホスト１０にＡｃｋを送信する一方、受信した実行結果すなわち画像ファイルを記録媒体７６に記録する。
【００４８】
上記のような仲介処理を行うとき、ＵＳＢホスト１０のＣＰＵ１４は、具体的には図１０および図１１のフロー図に従う処理を実行する。なお、これらのフロー図に対応するプログラムは、ＲＯＭ１２に格納されている。
【００４９】
まず図１０を参照して、ステップＳ１で所定時間が経過したか否かを判別する。所定時間が経過するとステップＳ３に移り、各デバイスつまりディジタルカメラ３０およびカメラ付携帯電話６０の各々にインタラプト・イン要求を送信する。次のステップＳ５では、“コマンド有り”通知が受信されたか否かを判別し、受信されなければステップＳ１に戻る。“コマンド有り”が受信されると、ステップＳ７に移る。
【００５０】
ステップＳ７では、“コマンド有り”通知の通知元つまりクライアントとなったデバイス（以下クライアント）にバルク・アウト転送方式でコマンド要求を送信する。次のステップＳ９では、Ａｃｋが受信されたか否かを判別し、受信されるとステップＳ１１に移って、クライアントにバルク・イン要求を送信する。そして、ステップＳ１３およびＳ１５のループに入る。
【００５１】
ステップＳ１３ではバルク・イン応答としてコマンドが受信されたか否かを判別し、ステップＳ１５では所定時間が経過したか否かを判別する。所定時間が経過してもコマンドが受信されなければ、ループを抜けてステップＳ１１に戻る。コマンドが受信されるとステップＳ１７に移り、制御対象つまりサーバとなったデバイス（以下サーバ）に同じコマンドをバルク・アウト転送方式で送信する。そして、ステップＳ１９に進む。
【００５２】
図１１を参照して、ステップＳ１９ではＡｃｋが受信されたか否かを判別し、受信されるとステップＳ２１に移って、バルク・イン転送方式でサーバに要求信号を送信する。そして、ステップＳ２３およびＳ２５のループに入る。
【００５３】
ステップＳ２３では、バルク・イン応答として実行結果が受信されたか否かを判別し、ステップＳ２５では所定時間が経過したか否かを判別する。所定時間が経過しても実行結果が受信されなければ、ループを抜けてステップＳ２１に戻る。
【００５４】
実行結果が受信されるとステップＳ２７に移り、同じ実行結果をクライアントにバルク・アウト転送方式で送信する。そして、ステップＳ２９でＡｃｋが受信されたか否かを判別し、Ａｃｋが受信されるとステップＳ１に戻る。
【００５５】
ＵＳＢホスト１０に接続されたデバイスのＣＰＵつまりディジタルカメラ３０のＣＰＵ３８およびカメラ付携帯電話６０のＣＰＵ６８は、図１２のフロー図に従う処理をそれぞれ実行する。なお、これらのフロー図に対応するプログラムは、ＲＯＭ３６および６６にそれぞれ格納されている。
【００５６】
図１２を参照して、最初、ステップＳ７１〜Ｓ７５のイベント待ちループに入る。ステップＳ７１ではインタラプト・イン要求が受信されたか否かが判別され、ステップＳ７３ではコマンド入力操作が受け付けられたか否かが判別され、ステップＳ７５ではバルク・アウト転送方式に従うコマンドが受信されたか否かが判別される。
【００５７】
インタラプト・イン要求が受信されると、ステップＳ７７に移ってＮａｋを送信し、その後、再びイベント待ちループに入る。コマンド入力操作が受け付けられると、ステップＳ７９に移ってクライアント処理（後述）を実行し、その後、再びイベント待ちループに入る。
【００５８】
コマンドが受信されると、ステップＳ８１に移ってＡｃｋを送信し、その後、ステップＳ８３でコマンドの実行命令および実行結果の送信準備命令を発行する。そして、ステップＳ８５でコマンドの実行および実行結果の送信準備が完了するのを待ち、完了するとステップＳ８７に移る。
【００５９】
ステップＳ８７では、バルク・イン要求が受信されたか否かの判別を行う。バルク・イン要求が受信されるとステップＳ８９に移り、実行結果をバルク・イン応答として送信する。その後、再びイベント待ちループに入る。
【００６０】
図１３を参照して、クライアント処理では、ステップＳ１０１でインタラプト・イン要求が受信されたか否かを判別する。インタラプト・イン要求が受信されると、ステップＳ１０３でインタラプト・イン応答として“コマンド有り”通知を送信する。次のステップＳ１０５では、バルク・アウト転送方式に従うコマンド要求が受信されたか否かを判別し、受信されるとステップＳ１０７に移ってＡｃｋを送信する。そして、ステップＳ１０９でコマンド送信の準備命令を発行し、ステップＳ１１１で送信準備が完了した否かを判別する。
【００６１】
コマンドの送信準備が完了するとステップＳ１１３に移り、バルク・イン要求が受信されたか否かの判別を行う。バルク・イン要求が受信されるとステップＳ１１５に移り、バルク・イン応答としてコマンドを送信する。そして、ステップＳ１１７でバルク・アウト転送方式に従う実行結果が受信されるまで待ち、受信されるとステップＳ１１９に移ってＡｃｋを送信する。その後、上位層のルーチンに復帰する。
【００６２】
以上から明らかなように、この実施例では、ディジタルカメラ３０およびカメラ付携帯電話６０の一方に他方を制御するコマンドが入力される。コマンドの入力を受けた方のデバイス（以下第１デバイス）では、制御対象であるデバイス（以下第２デバイス）へのコマンドの送信を要求する要求信号が生成される。ＵＳＢホスト１０は、第１デバイスから要求信号をインタラプト転送方式で受け付け、要求信号を受け付けたとき第１デバイスからバルク転送方式でコマンドを取得する。そして、取得されたコマンドをバルク転送方式で第２デバイスに通知する。
【００６３】
コマンドの通知を受けた第２デバイスでは、コマンドが実行され、さらにコマンドの実行結果が生成される。ＵＳＢホスト１０は、第２デバイスから実行結果をバルク転送方式で受信し、そして、受信された実行結果を第１デバイスにバルク転送方式で送信する。これにより、ＵＳＢ方式を利用して、あたかも第１デバイスがクライアント、第２デバイスがサーバであるかのように、第１デバイスの操作で第２デバイスを制御することができる。
【００６４】
なお、この実施例でＵＳＢホスト１０は、第１デバイスからのコマンドの取得，第２デバイスへのコマンドの通知，第２デバイスからの実行結果の受信，および第１デバイスへの実行結果の送信をバルク転送方式で行ったが、アイソクロナス転送方式で行うこともできる。この場合の通信プロトコルが、図１４，図１６および図１８に示されている。図１４，図１６および図１８は、図４，図６および図８にそれぞれ対応している。
【００６５】
図１４，図１６および図１８の通信プロトコルが図４，図６および図８のそれと異なるのは、第１デバイスからのコマンドの取得，第２デバイスへのコマンドの通知，第２デバイスからの実行結果の受信，および第１デバイスへの実行結果の送信をバルク転送方式ではなくアイソクロナス転送方式で行う点だけである。
【００６６】
バルク転送方式では、各デバイスはＵＳＢホスト１０からコマンド要求，コマンドまたは実行結果を受信したときＡｃｋを返送するが、アイソクロナス転送方式ではＡｃｋの返送は行わない。また、バルク転送方式では、各デバイスはアイソクロナス・イン要求を受信したとき送信準備が完了していなければＮａｋを返すが、アイソクロナス転送方式ではＮｕｌｌパケットを返送する。
【００６７】
この他、第１デバイスからのコマンドの取得および第２デバイスへのコマンドの通知をバルク転送方式で行い、第２デバイスからの実行結果の受信および第１デバイスへの実行結果の送信をアイソクロナス転送方式で行うなど、両方式を組み合わせて使用することもできる。この場合、取得，通知，受信および送信の各々をどちらの転送方式で行うかは、転送するデータの性質、例えばリアルタイム性の有無，誤り訂正の要否などに基づいて決められる。
【図面の簡単な説明】
【００６８】
【図１】この発明の一実施例であるＵＳＢホストの構成を示すブロック図である。
【図２】ＵＳＢホストに接続されるデバイスの一例であるディジタルカメラの構成を示すブロック図である。
【図３】ＵＳＢホストに接続されるデバイスの他の一例であるカメラ付携帯電話の構成を示すブロック図である。
【図４】ホスト−デバイス間の通信プロトコルの一例を示すシーケンス図である。
【図５】（Ａ）はコマンドの一例を示すブロック図、（Ｂ）は実行結果の一例を示すブロック図である。
【図６】ホスト−デバイス間の通信プロトコルの他の一例を示すシーケンス図である。
【図７】（Ａ）はコマンドの他の一例を示すブロック図、（Ｂ）は実行結果の他の一例を示すブロック図である。
【図８】ホスト−デバイス間の通信プロトコルのその他の一例を示すシーケンス図である。
【図９】（Ａ）はコマンドのその他の一例を示すブロック図、（Ｂ）は実行結果のその他の一例を示すブロック図である。
【図１０】ホストＣＰＵの動作の一部を示すフロー図である。
【図１１】ホストＣＰＵの動作の他の一部を示すフロー図である。
【図１２】デバイスＣＰＵの動作の一部を示すブロック図である。
【図１３】デバイスＣＰＵの動作の他の一部を示すブロック図である。
【図１４】ホスト−デバイス間の通信プロトコルの他の一例を示すシーケンス図である。
【図１５】（Ａ）はコマンドの他の一例を示すブロック図、（Ｂ）は実行結果の他の一例を示すブロック図である。
【図１６】ホスト−デバイス間の通信プロトコルのその他の一例を示すシーケンス図である。
【図１７】（Ａ）はコマンドのその他の一例を示すブロック図、（Ｂ）は実行結果のその他の一例を示すブロック図である。
【図１８】ホスト−デバイス間の通信プロトコルのさらにその他の一例を示すシーケンス図である。
【図１９】（Ａ）はコマンドのさらにその他の一例を示すブロック図、（Ｂ）は実行結果のさらにその他の一例を示すブロック図である。
【符号の説明】
【００６９】
１０…ＵＳＢホスト
１４，３８，６８…ＣＰＵ
１８，４８，７８…ＵＳＢコントローラ
３０…ディジタルカメラ
６０…カメラ付携帯電話
【図１】
2005332308.tif 000003
【図２】
2005332308.tif 000004
【図３】
2005332308.tif 000005
【図４】
2005332308.tif 000006
【図５】
2005332308.tif 000007
【図６】
2005332308.tif 000008
【図７】
2005332308.tif 000009
【図８】
2005332308.tif 000010
【図９】
2005332308.tif 000011
【図１０】
2005332308.tif 000012
【図１１】
2005332308.tif 000013
【図１２】
2005332308.tif 000014
【図１３】
2005332308.tif 000015
【図１４】
2005332308.tif 000016
【図１５】
2005332308.tif 000017
【図１６】
2005332308.tif 000018
【図１７】
2005332308.tif 000019
【図１８】
2005332308.tif 000020
【図１９】
2005332308.tif 000021