(57)【要約】      （修正有）【課題】構成の複雑化を抑制しつつ、通信装置のダウンストリームポートに接続されたデバイスを、ホスト回路、又はアップストリームポートに接続されたホストに選択的に接続可能にする。【解決手段】外部ホスト機器を接続する第１外部インタフェース（ＩＦ）と、外部デバイス機器を接続するＮ個（Ｎは２以上の整数）の第２外部ＩＦと、ハブ回路と、接続制御部と、を備え、前記ハブ回路は、第１アップストリームインタフェース（ＵＳＩ）と、第２ＵＳＩと、前記Ｎ個の第２外部ＩＦの各々と１対１に接続したＮ個の第１ダウンストリームインタフェース（ＤＳＩ）と、前記デバイスコントローラと接続した第２ＤＳＩと、前記Ｎ個の第１ＤＳＩ及び前記第２ＤＳＩの各々を、前記第１ＵＳＩ及び前記第２ＵＳＩのいずれかに接続させる接続回路と、を備え、前記外部ホスト機器又は前記外部デバイス機器からの指示に応えて接続形態を決定する。【選択図】図３
2010226394.tif 000002
【特許請求の範囲】
【請求項１】
通信装置であって、
外部ホスト機器を接続する第１外部インタフェースと、
外部デバイス機器を接続するＮ個（Ｎは２以上の整数）の第２外部インタフェースと、
前記通信装置を前記外部ホスト機器に対するデバイス機器として動作させるデバイスコントローラと、
前記通信装置を前記外部デバイス機器に対してホスト機器として動作させるホストコントローラと、
ハブ回路と、
接続制御部と、
を備え、
前記ハブ回路は、
前記第１外部インタフェースと接続した第１アップストリームインタフェースと、
前記ホストコントローラと接続した第２アップストリームインタフェースと、
前記Ｎ個の第２外部インタフェースの各々と１対１に接続したＮ個の第１ダウンストリームインタフェースと、
前記デバイスコントローラと接続した第２ダウンストリームインタフェースと、
前記Ｎ個の第１ダウンストリームインタフェース及び前記第２ダウンストリームインタフェースの各々を、前記第１アップストリームインタフェース及び前記第２アップストリームインタフェースのいずれかに接続させる接続回路と、
を備え、
前記接続制御部は、前記外部ホスト機器又は前記外部デバイス機器からの指示に応えて、前記接続回路による接続形態を決定する
ことを特徴とする通信装置。
【請求項２】
前記接続制御部は、前記指示に応えて前記通信装置の動作状態を判断し、当該動作状態に基づいて前記接続形態を決定する
ことを特徴とする請求項１に記載の通信装置。
【請求項３】
前記動作状態は、前記ホストコントローラ及び前記デバイスコントローラに電力が供給されているか否かを含む
ことを特徴とする請求項２に記載の通信装置。
【請求項４】
前記外部デバイス機器から供給された画像データに基づいて印刷を行う印刷手段を更に備え、
前記動作状態は、前記印刷手段が印刷を実行中であるか否かを含む
ことを特徴とする請求項２又は３に記載の通信装置。
【請求項５】
前記Ｎ個の第２外部インタフェースのうちの少なくとも１つは無線インタフェースであり、
前記無線インタフェースは、前記無線インタフェースの通信プロトコルと前記第１ダウンストリームインタフェースの通信プロトコルとを相互に変換する変換アダプタを介して前記第１ダウンストリームインタフェースと接続している
ことを特徴とする請求項１乃至４のいずれか１項に記載の通信装置。
【請求項６】
通信装置の制御方法であって、前記通信装置は、
外部ホスト機器を接続する第１外部インタフェースと、
外部デバイス機器を接続するＮ個（Ｎは２以上の整数）の第２外部インタフェースと、
前記通信装置を前記外部ホスト機器に対するデバイス機器として動作させるデバイスコントローラと、
前記通信装置を前記外部デバイス機器に対してホスト機器として動作させるホストコントローラと、
ハブ回路と、
接続制御部と、
を備え、
前記ハブ回路は、
前記第１外部インタフェースと接続した第１アップストリームインタフェースと、
前記ホストコントローラと接続した第２アップストリームインタフェースと、
前記Ｎ個の第２外部インタフェースの各々と１対１に接続したＮ個の第１ダウンストリームインタフェースと、
前記デバイスコントローラと接続した第２ダウンストリームインタフェースと、
前記Ｎ個の第１ダウンストリームインタフェース及び前記第２ダウンストリームインタフェースの各々を、前記第１アップストリームインタフェース及び前記第２アップストリームインタフェースのいずれかに接続させる接続回路と、
を備え、
前記制御方法は、前記接続制御部が、前記外部ホスト機器又は前記外部デバイス機器からの指示に応えて、前記接続回路による接続形態を決定する決定工程を備える
ことを特徴とする制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、通信装置、及びその制御方法に関する。
【背景技術】
【０００２】
近年、撮影した画像をデジタル画像データに変換できるデジタルカメラ（撮像装置）が広く使用されるようになってきている。デジタルカメラで撮影した画像を印刷して写真として使用する場合には、一般的に、撮影された画像データを、デジタルカメラからＰＣ（パーソナルコンピュータ）に取り込む必要がある。そして、画像データに対してＰＣで画像処理を行った後、ＰＣからプリンタに出力して印刷する。
【０００３】
これに対して最近は、ＰＣを介することなく、直接デジタルカメラからプリンタにデジタル画像データを伝送して印刷できるプリントシステム（「ダイレクトプリント」と呼ばれる）が開発されている。また、デジタルカメラで撮影された画像データを記憶しているメモリカードを、直接プリンタに装着し画像データを印刷できる、所謂フォトダイレクト（ＰＤ）プリンタ等も開発されている(特許文献１、２参照)。
【０００４】
このようなダイレクトプリントは、元々、同一メーカのカメラとプリンタとの間でのみ実現できる機種限定の印刷機能であったが、近年、業界での標準化が進んでいる。その結果、異なるメーカのカメラとプリンタとを接続してダイレクトプリントが行える環境が整ってきた。例えば、ＣＩＰＡから正式に公開されているＰｉｃｔＢｒｉｄｇｅ（ＤＰＳ）と呼ばれる規格は、異なるメーカのカメラとプリンタ同士の接続の場合でもダイレクトプリントが行える代表的なものである。
【０００５】
ＰｉｃｔＢｒｉｄｇｅに対応したプリンタは通常、ＰＣなどのホスト機器に接続するためのアップストリームポートと、デジタルカメラなどのデバイス機器を接続するためのダウンストリームポートとを備える。そして、ＰＣなどのホスト機器に接続する場合には、プリンタはデバイス機器として動作して、ホスト機器から伝送される画像データを受信して印刷する。また、デジタルカメラなどのデバイス機器と接続する場合には、プリンタはホスト機器として動作して、デジタルカメラから伝送される画像データを受信して印刷する。
【０００６】
ところで、ユーザの利便性を向上させる目的で、プリンタにＵＳＢハブ機能を持たせ、ダウンストリームポートに接続されたデバイス機器に応じて、ＵＳＢホスト機能とＵＳＢハブ機能とを自動的に切り替える技術が提案されている（特許文献２参照）。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開２００４−２８７９６０号公報
【特許文献２】特開２００５−３３９１４６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
特許文献２のプリンタは、デバイス機器の接続先を切り替えるために、デバイス機器からのＵＳＢ接続ラインをＵＳＢホスト回路、又はＵＳＢハブ回路に選択的に接続させる接続切替回路を備える。接続切替回路の詳細な構成は開示されていないが、接続切替回路内に、ＵＳＢ接続ラインであるＤ＋及びＤ−線上で伝送されるＵＳＢ差動信号をデコードするための差動レシーバ回路や、ＵＳＢ差動信号を生成するためのドライバ回路などが必要であると思われる。また、ダウンストリームポートを複数備えた場合、ＵＳＢハブ回路とＵＳＢホスト回路にもダウンストリームポートの数と同数のポートがそれぞれ必要である。従って、従来の技術ではプリンタの構成が複雑化するという問題があった。
【０００９】
本発明はこのような状況に鑑みてなされたものである。本発明は、構成の複雑化を抑制しつつ、ホスト回路を備える通信装置のダウンストリームポートに接続されたデバイス機器を、このホスト回路、又はアップストリームポートに接続されたホスト機器に選択的に接続可能にする技術を提供することを目的とする。ここで、通信装置とは、例えばプリンタである。
【課題を解決するための手段】
【００１０】
上記課題を解決するために、第１の本発明は、通信装置であって、外部ホスト機器を接続する第１外部インタフェースと、外部デバイス機器を接続するＮ個（Ｎは２以上の整数）の第２外部インタフェースと、前記通信装置を前記外部ホスト機器に対するデバイス機器として動作させるデバイスコントローラと、前記通信装置を前記外部デバイス機器に対してホスト機器として動作させるホストコントローラと、ハブ回路と、接続制御部と、を備え、前記ハブ回路は、前記第１外部インタフェースと接続した第１アップストリームインタフェースと、前記ホストコントローラと接続した第２アップストリームインタフェースと、前記Ｎ個の第２外部インタフェースの各々と１対１に接続したＮ個の第１ダウンストリームインタフェースと、前記デバイスコントローラと接続した第２ダウンストリームインタフェースと、前記Ｎ個の第１ダウンストリームインタフェース及び前記第２ダウンストリームインタフェースの各々を、前記第１アップストリームインタフェース及び前記第２アップストリームインタフェースのいずれかに接続させる接続回路と、を備え、前記接続制御部は、前記外部ホスト機器又は前記外部デバイス機器からの指示に応えて、前記接続回路による接続形態を決定することを特徴とする通信装置を提供する。
【００１１】
また、第２の本発明は、通信装置の制御方法であって、前記通信装置は、外部ホスト機器を接続する第１外部インタフェースと、外部デバイス機器を接続するＮ個（Ｎは２以上の整数）の第２外部インタフェースと、前記通信装置を前記外部ホスト機器に対するデバイス機器として動作させるデバイスコントローラと、前記通信装置を前記外部デバイス機器に対してホスト機器として動作させるホストコントローラと、ハブ回路と、接続制御部と、を備え、前記ハブ回路は、前記第１外部インタフェースと接続した第１アップストリームインタフェースと、前記ホストコントローラと接続した第２アップストリームインタフェースと、前記Ｎ個の第２外部インタフェースの各々と１対１に接続したＮ個の第１ダウンストリームインタフェースと、前記デバイスコントローラと接続した第２ダウンストリームインタフェースと、前記Ｎ個の第１ダウンストリームインタフェース及び前記第２ダウンストリームインタフェースの各々を、前記第１アップストリームインタフェース及び前記第２アップストリームインタフェースのいずれかに接続させる接続回路と、を備え、前記制御方法は、前記接続制御部が、前記外部ホスト機器又は前記外部デバイス機器からの指示に応えて、前記接続回路による接続形態を決定する決定工程を備えることを特徴とする制御方法を提供する。
【００１２】
なお、その他の本発明の特徴は、添付図面及び以下の発明を実施するための形態における記載によって更に明らかになるものである。
【発明の効果】
【００１３】
以上の構成により、構成の複雑化を抑制しつつ、ホスト回路を備える通信装置のダウンストリームポートに接続されたデバイス機器を、このホスト回路、又はアップストリームポートに接続されたホスト機器に選択的に接続可能にすることができる。
【図面の簡単な説明】
【００１４】
【図１】本発明の実施例１に係るフォトダイレクトプリンタ（ＰＤプリンタ）１０００の外観図である。
【図２】ＰＤプリンタ１０００に対するデジタルカメラ（ＤＳＣ）３０１２及びデジタルテレビ（ＤＴＶ）５００７の接続形態を説明する図である。
【図３】ＰＤプリンタ１０００の内部構成を示すブロック図である。
【図４】ＤＳＣ３０１２の内部構成を示すブロック図である。
【図５】ＤＴＶ５００７の内部構成を示すブロック図である。
【図６】ＰＴＰ（Ｐｉｃｔｕｒｅ  Ｔｒａｎｓｆｅｒ  Ｐｒｏｔｏｃｏｌ）による一般的な通信手順を示すシーケンス図である。
【図７】ＰＤプリンタ１０００とＤＴＶ５００７とをＵＳＢ接続した場合のＵＳＢ上のバストポロジを示す図である。
【図８】ＤＴＶ５００７とＰＤプリンタ１０００のＨＵＢ回路２３との接続が確立されるまでの通信手順を示すシーケンス図である。
【図９】ＰＤプリンタ１０００とＤＴＶ５００７との間でダイレクトプリントの接続が確立されるまでの通信手順を示したシーケンス図である。
【図１０】ＰＤプリンタ１０００が実行する処理の流れを示すフローチャートである。
【図１１】図１０のＳ１７１５における、ＵＳＢ上のバストポロジを示す図である。
【図１２】図１１の状態でＵＳＢコネクタ１０１２にＤＳＣ３０１２が接続された場合の、ＵＳＢ上のバストポロジを示す図である。
【図１３】図１０のＳ１７１１における、ＵＳＢ上のバストポロジを示す図である。
【図１４】図１０のＳ１７０４における処理の詳細を示すフローチャートである。
【図１５】図１４のＳ２１２８における、ＵＳＢ上のバストポロジを示す図である。
【図１６】図１４のＳ２１０７における処理の詳細を示すフローチャートである。
【図１７】ＰＤプリンタ１０００のメイン電源をオン状態にして、ＤＴＶ５００７をＵＳＢコネクタ２０に接続し、ＤＳＣ３０１２をＵＳＢコネクタ１０１２に接続した場合の、機器間の通信状態を示したシーケンス図である。
【図１８】図１４のＳ２１０９における、ＵＳＢ上のバストポロジを示す図である。
【図１９】ＰＤプリンタ２７００に対するＤＳＣ２０００及びＤＴＶ５００７の接続形態を説明する図である。
【図２０】ＰＤプリンタ２７００の内部構成を示すブロック図である。
【図２１】ＰＤプリンタ２７００が実行する処理の流れを示すフローチャートである。
【図２２】図２１のＳ２８０１における、ＵＳＢ上のバストポロジを示す図である。
【図２３】図２２の状態の際にＷＵＳＢ  ＨＷＡコントローラ２７０１にＤＳＣ２０００が接続された場合を説明する図である。
【図２４】図２１のＳ２８０４における、ＵＳＢ上のバストポロジを示す図である。
【図２５】図２１のＳ２８０６における処理の詳細を示すフローチャートである。
【図２６】図２５のＳ２１２７における、ＵＳＢ上のバストポロジを示す図である。
【図２７】図２５のＳ２９０２における、ＵＳＢ上のバストポロジを示す図である。
【発明を実施するための形態】
【００１５】
以下、添付図面を参照して、本発明の実施例を説明する。以下で説明される個別の実施例は、本発明の上位概念から下位概念までの種々の概念を理解するために役立つであろう。
【００１６】
なお、本発明の技術的範囲は、特許請求の範囲によって確定されるのであって、以下の個別の実施例によって限定されるわけではない。また、実施例の中で説明されている特徴の組み合わせすべてが、本発明に必須とは限らない。
【００１７】
以下の各実施例では、通信装置の一例としてプリンタを用いて説明を行うが、本発明はこれに限定されず、例えばスキャナも本発明の通信装置に含まれる。また、通信規格として、ＵＳＢ規格を用いて説明を行うが、本発明はこれに限定されず、例えばＩＥＥＥ１３９４規格も本発明の通信規格に含まれる。以下の各実施例においてプリンタやＵＳＢ規格に特有の用語は、実際に使用する通信装置や通信規格の種類に応じて適宜読み替えればよい。
【００１８】
また、以下の各実施例において、プリンタがデジタルカメラ（ＤＳＣ）などの他の機器と直接通信可能な環境において、ＤＳＣ内の記憶媒体に記憶された画像を直接通信により印刷する方式を、ダイレクトプリントと呼ぶ。
【実施例１】
【００１９】
＜フォトダイレクトプリンタ（ＰＤプリンタ）１０００の構成＞
図１は、本発明の実施例１に係るＰＤプリンタ１０００の外観図である。ＰＤプリンタ１０００は、ホストコンピュータ（ＰＣ）からデータを受信して印刷する通常のＰＣプリンタとしての機能と、メモリカードなどの記憶媒体に記憶されている画像データを直接読み取って印刷する機能とを備える。また、ＰＤプリンタ１０００は、以下に説明するようにＤＳＣと直接通信することで、ＤＳＣからの画像データを受信して印刷する機能を備えている。
【００２０】
ＰＤプリンタ１０００の外殻をなす本体は、下ケース１００１、上ケース１００２、アクセスカバー１００３、及び排出トレイ１００４という、外装部材を有している。また、下ケース１００１は、ＰＤプリンタ１０００の略下半部を、上ケース１００２は本体の略上半部をそれぞれ形成しており、両ケースの組み合わせによって内部に後述の各機構を収納する収納空間を有する中空体構造を形成している。その上面部及び前面部にはそれぞれ開口部が形成されている。更に、排出トレイ１００４は、その一端部が下ケース１００１に回転自在に保持され、その回転によって下ケース１００１の前面部に形成される開口部を開閉させ得るようになっている。このため、記録動作を実行させる際には、排出トレイ１００４を前面側へと回転させて開口部を開くことにより、ここから記録シートが排出可能となると共に、排出された記録シートを順次積載し得るようになっている。また、排出トレイ１００４には、２枚の補助トレイ１００４ａ，１００４ｂが収納されており、必要に応じて各トレイを手前に引き出すことにより、用紙の支持面積を３段階に拡大、縮小させ得るようになっている。
【００２１】
アクセスカバー１００３は、その一端部が上ケース１００２に回転自在に保持され、上面に形成される開口部を開閉し得るようになっている。このアクセスカバー１００３を開くことによって本体内部に収納されている記録ヘッドカートリッジ（不図示）あるいはインクタンク（不図示）等の交換が可能となる。なお、ここでは図示しないが、アクセスカバー１００３を開閉させると、その裏面に形成された突起がカバー開閉レバーを回転させるようになっており、そのレバーの回転位置をマイクロスイッチなどで検出することにより、アクセスカバーの開閉状態を検出し得るようになっている。
【００２２】
また、上ケース１００２の上面には、電源キー１００５が押下可能に設けられている。また、上ケース１００２には、液晶ディスプレイ１００６や各種キースイッチ等を備える操作パネル１０１０が設けられている。自動給送部１００７は、記録シートを装置本体内へと自動的に給送する。紙間選択レバー１００８は、プリントヘッドと記録シートとの間隔を調整するためのレバーである。
【００２３】
カードスロット１００９の内部には、メモリカードを装着可能なアダプタが挿入される。メモリカードとしては、例えばコンパクトフラッシュ（登録商標）、ＳＤ（登録商標）カード、メモリスティック（登録商標）等がある。ＤＳＣからメモリカードを取り出し、それをカードスロット１００９にセットすることで、ＤＰＯＦによる印刷機能を実行することができる。
【００２４】
ＵＳＢコネクタ１０１２は、後述するＤＳＣを接続するための端子である。通常、ＤＳＣはＰＣと接続するための通信規格として、ＵＳＢ（Ｕｎｉｖｅｒｓａｌ  Ｓｅｒｉａｌ  Ｂｕｓ）を使用することが多いので、本実施例でも端子としてＵＳＢコネクタ１０１２を採用した。しかし、これ以外の通信規格を用いても構わない。
【００２５】
また、ＰＤプリンタ１０００は、ＰＣからの印刷を実現するためのインタフェースを備える。通常、プリンタがＰＣに一旦接続されると、格別な事情がない限りは接続状態が維持されたままであるので、ＰＣのための端子はＰＤプリンタ１０００の背面に設けられる（不図示）。ＰＣとの接続のためのインタフェースもＵＳＢ規格に準拠したものである。
【００２６】
＜接続形態＞
図２は、ＰＤプリンタ１０００に対するＤＳＣ３０１２（外部デバイス機器）及びデジタルテレビ（ＤＴＶ）５００７（外部ホスト機器）の接続形態を説明する図である。本実施例では、ホスト機器として、ＰＣではなくＤＴＶを使用する。
【００２７】
図２において、ＵＳＢケーブル５０００は、ＰＤプリンタ１０００のＵＳＢコネクタ１０１２に接続するためのＵＳＢコネクタ５００１と、ＤＳＣ３０１２のＵＳＢコネクタ５００３に接続するためのＵＳＢコネクタ５００２とを備えている。なお、ＤＳＣ３０１２をＰＣに接続する場合には、ＰＣが有するＵＳＢコネクタに、ＵＳＢコネクタ５００１を接続すればよい。これにより、撮像した画像をＰＣに転送することができる。
【００２８】
ＤＳＣ３０１２はＵＳＢのスレーブ機能を備えており、ＵＳＢコネクタ５００３はＵＳＢ規格で定められているｍｉｎｉ−Ｂレセプタクルで実現される。一方、ＤＳＣ３０１２とＵＳＢ接続して通信するために、ＰＤプリンタ１０００はＵＳＢホスト機能を備えている。ＵＳＢコネクタ１０１２はＵＳＢ規格で定められているＡレセプタクルで実現される。
【００２９】
また、ＤＳＣ３０１２は、内部のメモリに保存している画像データを、ＵＳＢコネクタ５００３を介して出力可能に構成されている。なお、ＤＳＣ３０１２の構成としては、内部に記憶手段としてのメモリを備えるものや、取外し可能なメモリを装着するためのスロットを備えたものなど、種々の構成を採用することができる。このように、図２に示すＵＳＢケーブル５０００を介してＰＤプリンタ１０００とＤＳＣ３０１２とを接続することにより、ＤＳＣ３０１２からの画像データを直接ＰＤプリンタ１０００で印刷することができる。
【００３０】
ＰＤプリンタ１０００はまた、ＵＳＢケーブル５００４を介してＤＴＶ５００７と接続可能である。ＤＴＶ５００７は、ディスプレイ５００８を備える。
【００３１】
図２において、ＵＳＢケーブル５００４は、ＰＤプリンタ１０００のＵＳＢコネクタ（不図示）に接続するためのＵＳＢコネクタ（不図示）と、ＤＴＶ５００７のＵＳＢコネクタ５００６と接続するためのＵＳＢコネクタ５００５とを備えている。ＰＤプリンタ１０００とＤＴＶ５００７をＵＳＢで接続する際には、ＰＤプリンタ１０００をＰＣにＵＳＢで接続するときに使用するＰＤプリンタのＵＳＢコネクタ（不図示）に、ＵＳＢケーブル５００４の一方のＵＳＢコネクタ（不図示）を挿入する。ＰＤプリンタ１０００はＵＳＢのスレーブ機能を備えており、ＰＤプリンタ１０００の背面のＵＳＢコネクタ（不図示）はＵＳＢ規格で定められているＢレセプタクルで実現される。一方、ＤＴＶ５００７はＵＳＢホスト機能を備えており、ＵＳＢコネクタ５００６はＵＳＢ規格で定められているＡレセプタクルで実現される。
【００３２】
＜ＰＤプリンタ１０００の内部構成＞
図３は、ＰＤプリンタ１０００の内部構成を示すブロック図である。図３において、１０はＰＤプリンタ１０００全体の制御を司るＣＰＵであり、１１はＣＰＵ１０の動作処理手順（プログラム）やフォントを記憶しているＲＯＭである。ＲＯＭ１１はダイレクトプリントのためのスクリプトデータ２１（後述）も記憶している。１２はＣＰＵ１０のワークエリアとして使用されるＲＡＭである。１３は操作パネル（図１における操作パネル１０１０に対応）である。
【００３３】
１６はＵＳＢのスレーブ側としてＰＣやＤＴＶ５００７との通信を行うためのＵＳＢデバイスコントローラであり、３４はアップストリーム側のＰＨＹ回路（物理回路）である。２０はＢレセプタクルで構成されるＵＳＢコネクタ（第１外部インタフェース）である。
【００３４】
１５はＵＳＢのホスト側としてＤＳＣ３０１２との通信を行うためのＵＳＢホストコントローラであり、３５はダウンストリーム側のＰＨＹ回路である。１０１２，１０１３はＡレセプタクルで構成されるＵＳＢコネクタ（第２外部インタフェース）である。図３では、２つのＵＳＢコネクタ１０１２，１０１３が示されているが、一般化するとＮ個（Ｎは２以上の整数）のＵＳＢコネクタが存在する。
【００３５】
１７はストレージデバイス（例えば、ハードディスクドライブ）である。１８はメモリカードなどの記憶メディア１９を接続可能なカードインタフェースである。カードインタフェース１８は、ＤＳＣ３０１２で撮影され、記憶されたメモリカード内の印刷指示に関する記述ファイル（ＤＰＯＦファイル）をＰＤプリンタ１０００が記憶メディア１９から読み取って、それに従って印刷する際に利用される。１４はプリンタエンジンであり、例えば、熱エネルギーを利用してインク液を吐出するプリントエンジンであるが、記録方式はこれにより限定されるものではない。
【００３６】
２３はＵＳＢのＨＵＢ回路（ハブ回路）であり、以下の要素から構成されている。即ち、２５，２８はアップストリーム側のＰＨＹ回路（第１アップストリームインタフェース，第２アップストリームインタフェース）である。２６，２９はＨＵＢリピータ回路であり、２７，３０はルーティングロジック回路であり、３１はマルチプレクサ（ＭＵＸ）回路（接続回路）である。３２，３６はダウンストリーム側のＰＨＹ回路（第１ダウンストリームインタフェース）である。３２，３６，３３はダウンストリーム側のＰＨＹ回路（第２ダウンストリームインタフェース）である。ダウンストリーム側のＰＨＹ回路３２，３６の各々は、ＵＳＢコネクタ１０１２，１０１３に１対１に接続している。
【００３７】
ＰＨＹ回路はＵＳＢ規格で規定されたＤ＋及びＤ−信号線で伝送される差動形式の信号をシングルエンド形式の信号に変換するための差動レシーバ回路や、その逆にシングルエンド形式の信号から差動形式の信号を生成するためのドライバ回路を含む。
【００３８】
アップストリーム側のＰＨＹ回路２５はＵＳＢコネクタ２０に接続されている。アップストリーム側のＰＨＹ回路２８はダウンストリーム側のＰＨＹ回路３５に接続されている。ダウンストリーム側のＰＨＹ回路３２はＵＳＢコネクタ１０１２に接続されている。ダウンストリーム側のＰＨＹ回路３６はＵＳＢコネクタ１０１３に接続されている。ダウンストリーム側のＰＨＹ回路３３はアップストリーム側のＰＨＹ回路３４に接続されている。
【００３９】
ＨＵＢリピータ回路２６，２９は、アップストリームポートとダウンストリームポートの接続を管理する。ルーティングロジック回路２７，３０は、アップストリームポートからの信号をイネーブル状態のダウンストリームポートに伝送し、ダウンストリームポートからの信号をアップストリームポートに伝送する。
【００４０】
ＭＵＸ回路３１は、ダウンストリーム側のＰＨＹ回路３２，３６，３３を、アップストリーム側のＰＨＹ回路２５，２８のどちらに接続するかを選択的に切り替える。例えば、ダウンストリーム側のＰＨＹ回路３２をアップストリーム側のＰＨＹ回路２８に接続すると、ＵＳＢホストコントローラ１５と、ＵＳＢコネクタ１０１２に接続されたデバイスとが、ＨＵＢ回路２３を介してＵＳＢのホストとスレーブの関係で接続される。また、ダウンストリーム側のＰＨＹ回路３３をアップストリーム側のＰＨＹ回路２５に接続すると、ＵＳＢコネクタ２０に接続されたホスト機器と、ＵＳＢデバイスコントローラ１６とが、ＨＵＢ回路２３を介してＵＳＢのホストとスレーブの関係で接続される。
【００４１】
ダウンストリーム側のＰＨＹ回路を、アップストリーム側のＰＨＹ回路に接続する際には、切替判断部２４（接続制御部）によって、どのアップストリーム側のＰＨＹ回路に接続するかについての判断動作、及び切替動作が行われる。
【００４２】
ＨＵＢ回路２３には、図示された構成要素以外にも、ＵＳＢシリアル信号をパラレル信号に変換、もしくはその逆変換するＳＩＥ回路や、ＨＵＢコントローラ回路などが含まれる。ＨＵＢコントローラ回路の動作によって、ＨＵＢ回路２３は、ＵＳＢホストコントローラ１５、及びＵＳＢコネクタ２０に接続されたＵＳＢホスト機器から、ＵＳＢ  ＨＵＢデバイスとして認識される。
【００４３】
＜ＤＳＣ３０１２の内部構成＞
図４は、ＤＳＣ３０１２の内部構成を示すブロック図である。図４において、４８はＤＳＣ３０１２全体の制御を司るＣＰＵであり、４９はＣＰＵ４８の動作処理手順（プログラム）を記憶しているＦＬＡＳＨ  ＲＯＭである。４１はＣＰＵ４８のワークエリアとして使用されるＲＡＭであり、５１は各種操作を行うためのスイッチ群を含んだ操作部材である。５０は操作部材５１の制御を行うＳＷ制御部である。４６はＬＣＤモニタであり、４５はＬＣＤモニタ４６に表示する表示データを作成するためのワークエリアであるＶＲＡＭであり、撮像した画像を確認したり、各種設定を行う際のメニューを表示したりするために使用される。
【００４４】
４０はレンズ及びその駆動系で構成される光学ユニット、ＣＣＤ素子などで主として構成される撮像部である。４４は記憶メディア４３（コンパクトフラッシュ（登録商標）、ＳＤ（登録商標）カード等）を接続するためのコネクタである。４２はＰＣ或いはＰＤプリンタ１０００と接続するためのＵＳＢデバイスコントローラであり、５００３はｍｉｎｉ−Ｂレセプタクルで構成されるＵＳＢコネクタである。４７は撮像部４０が取得した画像信号を処理する信号処理部である。
【００４５】
＜ＤＴＶ５００７の内部構成＞
図５は、ＤＴＶ５００７の内部構成を示すブロック図である。ＤＴＶ５００７は、システムコントローラ６８を備えている。システムコントローラ６８は、ＤＴＶ５００７を制御するためのプログラム、画像データ、その他の必要なデータ等を記憶するための記憶装置７４を備えている。
【００４６】
放送波は、アンテナ６０を介してチューナ６１に送られ、高周波処理及び復調が行われる。チューナ６１からの出力はＤＥＭＵＸ回路６２に送られ、パケットの復号が行われる。
【００４７】
ＤＥＭＵＸ回路６２において、パケットは、ＭＰＥＧデータと番組情報等の付属情報とに分別される。ＤＥＭＵＸ回路６２によって分別されたＭＰＥＧデータは、ＡＶデコーダ６３に送られる。ＤＥＭＵＸ回路６２によって分別された付属情報は、システムコントローラ６８に送られる。
【００４８】
システムコントローラ６８は、ＤＥＭＵＸ回路６２から送られてきた付属情報を、記憶装置７４に格納する。システムコントローラ６８には、リモコン送信機（不図示）からのリモコン信号がリモコン受信機６７を介して入力される。リモコン送信機には、上下左右カーソルキー、決定キーを含む複数のキーが設けられている。
【００４９】
システムコントローラ６８は、チューナ６１及びＤＥＭＵＸ回路６２に選局のための情報等を送る。また、システムコントローラ６８は、各種操作画面をディスプレイ５００８にオンスクリーン表示させるためのＯＳＤ制御信号を、ＯＳＤ表示回路６９に送る。ＯＳＤ表示回路６９は、電子番組ガイド、メニュー等の表示データを生成して、ＯＳＤ信号としてマルチプレクサ（合成回路）７１に送る。
【００５０】
ＡＶデコーダ６３は、ＤＥＭＵＸ回路６２から送られてきたＭＰＥＧデータを復調する。ＡＶデコーダ６３によって得られた映像信号は、映像処理回路７０を介してマルチプレクサ７１に送られる。マルチプレクサ７１は、映像処理回路７０から出力された映像データにＯＳＤ表示回路６９から送られてきた表示データをスーパーインポーズ処理して、映像出力回路７２に送る。映像出力回路７２から出力された映像信号は、ディスプレイ５００８に送られる。ＡＶデコーダ６３によって得られた音声信号は、音声処理回路６４及び音声出力回路６５を介してスピーカ６６に送られる。
【００５１】
７５は、ＰＤプリンタ１０００やＤＳＣ３０１２と接続するためのＵＳＢホストコントローラであり、５００６はＡレセプタクルで構成されるＵＳＢコネクタである。ＤＴＶ５００７とＤＳＣ３０１２とをＵＳＢで接続する場合、ＤＴＶ５００７がＵＳＢホストになり、ＵＳＢスレーブであるＤＳＣ３０１２から画像データを受信することが可能である。受信した画像データは記憶装置７４に格納される。また、受信した画像データをシステムコントローラ６８からＡＶデコーダ６３に渡して、ＡＶデコーダ６３が画像データを復調して表示用の表示イメージに変換する。その後ＭＰＥＧデータと同様に映像処理回路７０を介してマルチプレクサ７１に送られ、最終的に映像信号としてディスプレイ５００８に送られる。
【００５２】
ＤＴＶ５００７とＰＤプリンタ１０００とをＵＳＢで接続する場合、ＤＴＶ５００７がＵＳＢホストになり、ＰＤプリンタ１０００がＵＳＢスレーブとなる。即ち、ＤＴＶ５００７のＵＳＢコネクタ５００６と、ＰＤプリンタ１０００のＵＳＢコネクタ２０とをＵＳＢケーブル５００４で接続する。ＤＴＶ５００７はＵＳＢ接続を介してＰＤプリンタ１０００から画像データを受信することが可能である。受信した画像データは記憶装置７４に格納される。また、受信した画像データをシステムコントローラ６８からＡＶデコーダ６３に渡して、ＡＶデコーダ６３が画像データを復調して表示用の表示イメージに変換する。その後ＭＰＥＧデータと同様に映像処理回路７０を介してマルチプレクサ７１に送られ、最終的に映像信号としてディスプレイ５００８に送られる。
【００５３】
また、ＤＴＶ５００７の記憶装置７４に記憶された画像データをＰＤプリンタ１０００で印刷することも可能である。
【００５４】
更には、図２に示したＤＳＣ３０１２とＰＤプリンタ１０００とをＵＳＢ接続して、同時にＰＤプリンタ１０００とＤＴＶ５００７とをＵＳＢ接続することもできる。この場合、ＰＤプリンタ１０００を介してＤＳＣ３０１２の記憶メディア４３に保持されている画像データをＤＴＶ５００７が受信することができる。また、ＤＴＶ５００７の制御により、ＤＳＣ３０１２の記憶メディア４３に保持されている画像データや、ＰＤプリンタ１０００の記憶メディア１９に保持されている画像データをＰＤプリンタ１０００で印刷するといった、多種多様な使い方が可能である。ＤＴＶ５００７がＤＳＣ３０１２の記憶メディア４３に保持されている画像データを受信する際には、ＰＤプリンタ１０００のＨＵＢ回路２３を介して、ＤＴＶ５００７がＵＳＢのホスト、ＤＳＣ３０１２がＵＳＢのスレーブの関係で接続される。
【００５５】
＜ＰＴＰの概要＞
本実施例では、ＤＴＶ５００７とＰＤプリンタ１０００との間、及びＰＤプリンタ１０００とＤＳＣ３０１２との間で画像データの送信を行う際には、既知のＰＴＰ（Ｐｉｃｔｕｒｅ  Ｔｒａｎｓｆｅｒ  Ｐｒｏｔｏｃｏｌ）が用いられる。また、ダイレクトプリントのプロトコルで定義されているスクリプトの送受信を行う際にもＰＴＰが利用される。
【００５６】
図６は、ＰＴＰによる一般的な通信手順を示すシーケンス図である。本実施例のＰＤプリンタ１０００−ＤＳＣ３０１２間の接続の場合にはＵＳＢホストがＰＤプリンタ１０００、ＤＳＣ３０１２がＵＳＢスレーブであるので、理解を容易にするため、図６においても同じ関係を用いて説明を行う。
【００５７】
まずＳ１４００で、ＰＤプリンタ１０００からＤＳＣ３０１２に対してＰＴＰコマンドＧｅｔＤｅｖｉｃｅＩｎｆｏが送信される。これは、この段階では、ＰＤプリンタ１０００は、接続されているデバイスが不明であるので、それを問い合わせるものであると解釈してもよい。これに対してＤＳＣ３０１２は、Ｓ１４０１で、ＤｅｖｉｃｅＩｎｆｏ  Ｄａｔａｓｅｔにより、ＤＳＣ３０１２に関する情報をＰＤプリンタ１０００に送信（通知）する。
【００５８】
次にＳ１４０２で、ＰＤプリンタ１０００はＰＴＰコマンドのＯｐｅｎＳｅｓｓｉｏｎにより、ＤＳＣ３０１２をリソースとして割り当て、必要に応じてデータオブジェクトにハンドルをアサインしたり、特別な初期化を行ったりするための手順を開始する。
【００５９】
Ｓ１４０３では、ＰＤプリンタ１０００は、ＤＳＣ３０１２に対してハンドルを要求する。これは、ＰＤプリンタ１０００にとっては、ＤＳＣ３０１２が有する未知のオブジェクト（撮影画像データやスクリプト等である）を特定するため、ＤＳＣ３０１２が所有するオブジェクトにユニークに付けられた番号を要求するものである。この要求により、Ｓ１４０４で、ＤＳＣ３０１２に保持されているハンドルリストが返送される。
【００６０】
以上の結果、ＰＤプリンタ１０００は、ＤＳＣ３０１２が幾つのオブジェクトを保持しているのかを知ることができる。
【００６１】
この後、ＰＤプリンタ１０００がｉ番目のオブジェクトが何であるのかを問い合わせる場合には、ｉ番目のオブジェクトに関する属性情報をＧｅｔＯｂｊｅｃｔＩｎｆｏ（ｉ）で要求する。その結果はＯｂｊｅｃｔＩｎｆｏ  ｉ  Ｄａｔａｓｅｔとして受信される（Ｓ１４０５）。なお、「属性情報」は、オブジェクトが画像であるのか、スクリプト等のテキストであるのか等を示す。
【００６２】
この手順を繰り返すことで、ＰＤプリンタ１０００は、ＤＳＣ３０１２が所有している全てのオブジェクトの属性を知ることができる。
【００６３】
また、属性が画像データである場合には、その画像データを示すハンドル番号を用いて、ＧｅｔＯｂｊｅｃｔをＰＤプリンタ１０００が発行し、その結果、Ｏｂｊｅｃｔ  ｉ  Ｄａｔａとして受信することで画像データを得ることができる（Ｓ１４０６）。
【００６４】
＜ＰＤプリンタ１０００とＤＴＶ５００７との接続＞
図７は、ＰＤプリンタ１０００とＤＴＶ５００７とをＵＳＢ接続した場合のＵＳＢ上のバストポロジを示す図である。この場合、ＤＴＶ５００７のＵＳＢコネクタ５００６と、ＰＤプリンタ１０００のＵＳＢコネクタ２０とがＵＳＢケーブル５００４で接続される。従って、ＤＴＶ５００７が示されるＵＳＢホスト１８０１として機能し、ＵＳＢコネクタ２０に内部的に接続されているＰＤプリンタ１０００のＨＵＢ回路２３がＵＳＢ  ＨＵＢ１８０２として機能する。ＨＵＢ回路２３のＭＵＸ回路３１は、ダウンストリーム側のＰＨＹ回路３３をアップストリーム側のＰＨＹ回路２５に接続するよう制御する。これにより、ＵＳＢ  ＨＵＢ１８０２に対して、ＰＤプリンタ１０００のＵＳＢデバイスコントローラ１６がＳｔｉｌｌ  Ｉｍａｇｅ  Ｃｌａｓｓのデバイス２００８として接続される。
【００６５】
図８は、ＤＴＶ５００７とＰＤプリンタ１０００のＨＵＢ回路２３との接続が確立されるまでの通信手順を示すシーケンス図である。
【００６６】
まず、Ｓ１６００で、ＵＳＢのＳｅｔＡｄｄｒｅｓｓ標準リクエストにより、ＰＤプリンタ１０００のＨＵＢ回路２３にＵＳＢデバイスアドレスが割り振られる。これ以降、ＰＤプリンタ１０００のＨＵＢ回路２３は、このＵＳＢデバイスアドレスで送られてくるＵＳＢパケットに応答する。次にＳ１６０１でＧｅｔＤｅｓｃｒｉｐｔｏｒ標準リクエストにより、ＵＳＢホスト機器であるＤＴＶ５００７がデバイス情報、インタフェース情報などを要求する。Ｓ１６０２で、要求された情報がＨＵＢ回路２３からＤＴＶ５００７に送信される。ＧｅｔＤｅｓｃｒｉｐｔｏｒ標準リクエストにより取得できる情報から、ＵＳＢホストであるＤＴＶ５００７はＵＳＢで接続されている機器がＨＵＢクラスのデバイスであることを認識する。
【００６７】
次に、Ｓ１６０３で、ＳｅｔＣｏｎｆｉｇｕｒａｔｉｏｎ標準リクエストにより、ＤＴＶ５００７はＨＵＢ回路２３に対して、ＵＳＢ機器としてのコンフィグレーションを設定する。Ｓ１６０４で、ＨＵＢ回路２３は肯定応答であるＯＫを返す。
【００６８】
Ｓ１６０５で、ＰＤプリンタ１０００は、ＨＵＢクラスのリクエストでＳｅｔＦｅａｔｕｒｅコマンドを送信してＰＯＲＴに電源供給を開始する。それに対してＨＵＢ回路２３はＳ１６０６で、肯定応答であるＯＫを返す。その後、Ｓ１６０７で、ダウンストリーム側のＰＨＹ回路３３にＵＳＢデバイスコントローラ１６が接続されているので、Ｈｕｂ  Ｓｔａｔｕｓ  Ｃｈａｎｇｅのイベントが送信される。これにより、図９を参照して以下に説明するように、ＵＳＢホストであるＤＴＶ５００７とＵＳＢスレーブであるＰＤプリンタ１０００のＵＳＢデバイスコントローラ１６との接続処理が開始される。
【００６９】
図９は、ＰＤプリンタ１０００とＤＴＶ５００７との間でダイレクトプリントの接続が確立されるまでの通信手順を示したシーケンス図である。
【００７０】
まず、Ｓ８００で、ＵＳＢのＳｅｔＡｄｄｒｅｓｓ標準リクエストにより、ＰＤプリンタ１０００のＵＳＢデバイスコントローラ１６にＵＳＢデバイスアドレスが割り振られる。これ以降、ＵＳＢスレーブであるＵＳＢデバイスコントローラ１６は、このＵＳＢデバイスアドレスで送られてくるＵＳＢパケットに応答する。次にＳ８０１で、ＧｅｔＤｅｓｃｒｉｐｔｏｒ標準リクエストにより、ＵＳＢホスト機器であるＤＴＶ５００７がデバイス情報、インタフェース情報などを要求する。Ｓ８０２で、要求された情報がＵＳＢデバイスコントローラ１６からＤＴＶ５００７に送信される。本実施例のＰＤプリンタ１０００は、通常のＰＣプリンタとして動作すると共に、ＰＴＰのＲｅｓｐｏｎｄｅｒとしても動作する。そのため、ＵＳＢのプリンタクラスのコンフィグレーションと、ＵＳＢのＰＴＰプロトコル（Ｓｔｉｌｌ  Ｉｍａｇｅ  Ｃｌａｓｓ）のコンフィグレーションとを備えている構成となっている。従って、一般的なＰＣと接続した場合、ＰＣはプリンタクラスとしてコンフィグレーション設定することが可能である。一方、ダイレクトプリント機能に対応したＵＳＢホスト機器と接続した場合、ＰＣはＳｔｉｌｌ  Ｉｍａｇｅ  Ｃｌａｓｓとしてコンフィギュレーション設定することが可能である。
【００７１】
ＧｅｔＤｅｓｃｒｉｐｔｏｒ標準リクエストにより取得できる情報から、ＵＳＢホストであるＤＴＶ５００７はＵＳＢで接続されている機器がＰＴＰプロトコルを実装したデバイスであることを認識する。次に、Ｓ８０３のＳｅｔＣｏｎｆｉｇｕｒａｔｉｏｎ標準リクエストにより、ＵＳＢホストであるＤＴＶ５００７はＵＳＢスレーブであるＵＳＢデバイスコントローラ１６に対して、Ｓｔｉｌｌ  Ｉｍａｇｅ  Ｃｌａｓｓのコンフィグレーション設定を行う。Ｓ８０４で、ＵＳＢデバイスコントローラ１６は肯定応答であるＯＫを返す。次にＳ８０５で、ＤＴＶ５００７はＰＴＰコマンドのＧｅｔＤｅｖｉｃｅＩｎｆｏを送信する。これは、この段階では、ＤＴＶ５００７は、接続されているデバイスがＰＴＰであることは認識しているが、使用可能なＰＴＰコマンドなどのＰＴＰデバイスとしての属性情報が不明であるので、それを問い合わせるものであると解釈してもよい。これに対してＵＳＢデバイスコントローラ１６は、Ｓ８０６で、ＤｅｖｉｃｅＩｎｆｏ  Ｄａｔａｓｅｔにより、ＰＤプリンタ１０００に関する情報をＤＴＶ５００７に送信（通知）する。
【００７２】
次にＳ８０７で、ＰＴＰコマンドのＯｐｅｎＳｅｓｓｉｏｎにより、ＰＤプリンタ１０００をリソースとして割り当て、必要に応じてデータオブジェクトにハンドルをアサインしたり、特別な初期化を行ったりするための手順が開始される。そして、Ｓ８０８でＯＫが返される。
【００７３】
Ｓ８０９で、ＤＴＶ５００７は、ＰＤプリンタ１０００に対してハンドルを要求する。これは、ＤＴＶ５００７が、ＰＤプリンタ１０００が有するスクリプトオブジェクトを特定する目的のための通信であり、ＰＤプリンタ１０００が所有するオブジェクトにユニークに付けられた番号を要求するものである。この要求により、Ｓ８１０で、ＰＤプリンタ１０００に保持されているスクリプトのハンドルリストが返送される。
【００７４】
以上の結果、ＤＴＶ５００７は、ＰＤプリンタ１０００が幾つのスクリプトを保持しているのかを知ることができる。
【００７５】
ネゴシエーションでは、双方がダイレクトプリント機能を有するものであるのか否かを判定することが重要である。そして、この判定はあらかじめ決められたスクリプトを投げかけ、双方が、相手より意図した結果が返ってきた場合に、ダイレクトプリントモードに移行する。
【００７６】
従って、上記のようにして、ＤＴＶ５００７としては、ＰＤプリンタ１０００が保持しているオブジェクトの中で、その属性がスクリプトである属性を有するオブジェクトを探し出す必要がある。
【００７７】
このため、ＤＴＶ５００７は、ハンドル“ｉ”についてのオブジェクトについてその属性が何であるのかを問い合わせるためのＰＴＰコマンドＧｅｔＯｂｊｅｃｔＩｎｆｏ（Ｈａｎｄｌｅ  ｉ）をＰＤプリンタ１０００に送信する。そして、返送されてくるｉ番目の属性（ＯｂｊｅｃｔＩｎｆｏ  ｉ  Ｄａｔａｓｅｔ）を受信することをｉを順番に指定しながら繰り返す（Ｓ８２０）。
【００７８】
更に、ＤＴＶ５００７は、ハンドル“ｉ”についてのオブジェクトについてそのオブジェクト自身を取得するためのＰＴＰコマンドＧｅｔＯｂｊｅｃｔ（Ｈａｎｄｌｅ  ｉ）をＰＤプリンタ１０００に送信する。そして、返送されてくるｉ番目のＯｂｊｅｃｔデータ（Ｏｂｊｅｃｔ  ｉ  Ｄａｔａｓｅｔ）を受信することをｉを順番に指定しながら繰り返す（Ｓ８２１）。
【００７９】
以上の手順により、ダイレクトプリント機能を有することを示すスクリプトが見つかると、ＤＴＶ５００７は接続された機器がダイレクトプリントに対応していることを知ることができる。
【００８０】
そこで今度は、ＤＴＶ５００７がダイレクトプリント機能を有することを示すスクリプトを通知することになる。但しその前に、Ｓ８１１及びＳ８１２で、ＤＴＶ５００７は、送信するスクリプトオブジェクトの属性情報をＰＴＰコマンドＳｅｎｄＯｂｊｅｃｔＩｎｆｏによって送信する。続いて、Ｓ８１３及びＳ８１４で、ＤＴＶ５００７は、送信するスクリプトオブジェクトをＰＴＰコマンドＳｅｎｄＯｂｊｅｃｔによって送信する。
【００８１】
以上の手順の結果、双方ともダイレクトプリントに対応するデバイスであることがわかり、ＤＴＶ５００７とＰＤプリンタ１０００との間でダイレクトプリントの接続が確立される。
【００８２】
＜ＨＵＢ回路２３の切替処理＞
ＰＤプリンタ１０００は、ＵＳＢコネクタ２０にＤＴＶ５００７が接続されていない場合にＵＳＢコネクタ１０１２にＤＳＣ３０１２が接続されると、自動的にＨＵＢ回路２３を介してＵＳＢホストコントローラ１５とＤＳＣ３０１２とをＵＳＢ接続する。また、ＰＤプリンタ１０００は、ＵＳＢコネクタ２０にＤＴＶ５００７が接続されていて、ＰＤプリンタ１０００のメイン電源がオンされていない場合、自動的にＨＵＢ回路２３を介してＤＴＶ５００７とＤＳＣ３０１２とをＵＳＢ接続する。
【００８３】
また、ＰＤプリンタ１０００のメイン電源がオンである場合、ＰＤプリンタ１０００は、ＵＳＢコネクタ２０に接続されたＤＳＣ３０１２から接続先に関する情報を取得する。そして、取得した情報に応じて、ＤＳＣ３０１２をＤＴＶ５００７に接続するか、或いはＵＳＢホストコントローラ１５に接続するかを自動的に切り替える。
【００８４】
更に、ＤＳＣ３０１２がＵＳＢコネクタ１０１２に接続され、ＰＤプリンタ１０００との間でダイレクトプリント方式による印刷を行っている状態（動作状態）で、ＤＴＶ５００７が接続される場合もある。この場合に、ＤＴＶ５００７からＤＳＣ３０１２に対して接続要求があると、ＰＤプリンタ１０００は、印刷を完了してから自動的にＨＵＢ回路２３を介してＤＴＶ５００７とＤＳＣ３０１２とをＵＳＢ接続する。
【００８５】
図１０は、ＰＤプリンタ１０００が実行する処理の流れを示すフローチャートである。本フローチャートの各ステップの処理は、特に断らない限り、切替判断部２４によって制御される（以下の各フローチャートにおいても同様）。
【００８６】
Ｓ１７０１でメイン電源状態を調べる。本実施例では、「メイン電源がオフ」とはＵＳＢホストコントローラ１５及びＵＳＢデバイスコントローラ１６に電力が供給されていない状態を意味する。メイン電源がオフであっても、切替判断部２４には電力が供給されており、ＭＵＸ回路３１の接続切替を行うことができる。
【００８７】
メイン電源がオフされている場合、Ｓ１７０５でアップストリーム側のＰＨＹ回路２５のＶ−ＢＵＳ信号線の状態を調べる。Ｖ−ＢＵＳ信号線がオフの場合はＳ１７０１に戻る。ＵＳＢコネクタ２０にＤＴＶ５００７が接続されている場合はＶ−ＢＵＳ信号線がオン状態になる。Ｖ−ＢＵＳ信号線がオン状態の場合、Ｓ１７０６でＭＵＸ回路３１を制御してダウンストリーム側のＰＨＹ回路３２をアップストリーム側のＰＨＹ回路２５に接続する。更にＳ１７０７でＭＵＸ回路３１を制御してダウンストリーム側のＰＨＹ回路３３をアップストリーム側のＰＨＹ回路２５に接続する。
【００８８】
その後Ｓ１７０８で再度アップストリーム側のＰＨＹ回路２５のＶ−ＢＵＳ信号線の状態を確認する。オン状態の場合はＳ１７１４でアップストリーム側のＰＨＹ回路２５のＤ＋信号線を３．３Ｖにプルアップすることにより、ＵＳＢホストであるＤＴＶ５００７に対してＵＳＢスレーブであるＨＵＢ回路２３を検知可能にする。ＤＴＶ５００７がＨＵＢ回路２３に対してＵＳＢ機器としてのコンフィグレーションを設定することにより、Ｓ１７１５でＤＴＶ５００７−ＨＵＢ回路２３間のＵＳＢ接続が確立する。
【００８９】
図１１は、図１０のＳ１７１５における、ＵＳＢ上のバストポロジを示す図である。ＤＴＶ５００７がＵＳＢホスト１８０１となり、ＰＤプリンタ１０００のＨＵＢ回路２３がＵＳＢ  ＨＵＢ１８０２としてここに接続されている。この状態で、ＵＳＢコネクタ１０１２にＤＳＣ３０１２が接続されると、ＨＵＢ回路２３を介してＤＴＶ５００７とＤＳＣ３０１２がＵＳＢ接続される。図１２はそのときのＵＳＢ上のバストポロジを示している。即ち、ＤＴＶ５００７がＵＳＢホスト１８０１となり、ＰＤプリンタ１０００のＨＵＢ回路２３がＵＳＢ  ＨＵＢ１８０２として接続されている。更に、ＤＳＣ３０１２がＳｔｉｌｌ  Ｉｍａｇｅ  Ｃｌａｓｓのデバイス２３０３としてその先に接続されている。
【００９０】
この状態では、ＰＤプリンタ１０００のメイン電源がオフされているため、ＰＤプリンタ１０００がＤＳＣ３０１２と接続されても、ユーザはダイレクトプリント方式による印刷を行う意図がないと判断することが適当である。そこで、ＰＤプリンタのＵＳＢコネクタ２０にＤＴＶ５００７が接続され、かつＵＳＢコネクタ１０１２にＤＳＣ３０１２が接続された場合に、ユーザがＤＴＶ５００７からＤＳＣ３０１２を操作可能となるよう制御することが適当である。従って、ＰＤプリンタ１０００が自動的に、ＨＵＢ回路２３を介してＤＴＶ５００７とＤＳＣ３０１２をＵＳＢ接続することによってユーザの利便性が高まる。
【００９１】
図１０に戻ると、Ｓ１７１５に続いてＳ１７０９でＰＤプリンタ１０００のメイン電源状態を調べる。メイン電源がオフされている場合、Ｓ１７０８に戻りアップストリーム側のＰＨＹ回路２５のＶ−ＢＵＳ信号線の状態を調べる。Ｖ−ＢＵＳ信号線がオフの場合は、ＤＴＶ５００７が切断されたと判断して、アップストリーム側のＰＨＹ回路２５のＤ＋信号線のプルアップを解除し（不図示）、Ｓ１７０１に戻る。
【００９２】
Ｓ１７０９でメイン電源がオンされたと判断された場合、Ｓ１７１０でアップストリーム側もＰＨＹ回路３４のＤ＋信号線を３．３Ｖにプルアップする。これにより、ＵＳＢホストであるＤＴＶ５００７に対してＵＳＢスレーブであるＵＳＢデバイスコントローラ１６を検知可能にする。ＤＴＶ５００７がＵＳＢ機器としてのコンフィグレーションを設定することにより、Ｓ１７１１でＤＴＶ５００７−ＰＤプリンタ１０００間のダイレクトプリント接続が確立する。図１３はそのときのＵＳＢ上のバストポロジの一例を示している。即ちＤＴＶ５００７がＵＳＢホスト１８０１となり、ＰＤプリンタ１０００のＨＵＢ回路２３がＵＳＢ  ＨＵＢ１８０２としてここに接続されている。更に、ＰＤプリンタ１０００のＵＳＢデバイスコントローラ１６がＳｔｉｌｌ  Ｉｍａｇｅ  Ｃｌａｓｓのデバイス２００８としてその先に接続されている。また、ＤＳＣ３０１２がＳｔｉｌｌ  Ｉｍａｇｅ  Ｃｌａｓｓのデバイス２３０３としてその先に接続されている。
【００９３】
その後Ｓ１７１２で、ＰＤプリンタ１０００からＤＴＶ５００７に対して、ＵＳＢ接続状態の切替要求のイベントを送信する。Ｓ１７１３でＤＴＶ５００７から切替許可の通知を受信すると、Ｓ１７０２に進む。これは、図１３に示したようにＤＴＶ５００７とＤＳＣ３０１２とがＨＵＢ回路２３を介して接続され、ＤＴＶ５００７からＤＳＣ３０１２を操作している場合に、ＤＴＶ５００７からの操作が完了して、切替が可能な状態になるのを待ってからＭＵＸ回路３１を制御してＵＳＢの接続状態を切り替えるようにするためである。なお、Ｓ１７０１でメイン電源状態を調べ、メイン電源がオンされている場合もＳ１７０２に進む。
【００９４】
Ｓ１７０２では、ＭＵＸ回路３１を制御してダウンストリーム側のＰＨＹ回路３２をアップストリーム側のＰＨＹ回路２８に接続する。更にＳ１７０３でＭＵＸ回路３１を制御してダウンストリーム側のＰＨＹ回路３３をアップストリーム側のＰＨＹ回路２５に接続する。その後Ｓ１７０４の電源オン時の処理に移る。
【００９５】
図１４は、図１０のＳ１７０４における処理の詳細を示すフローチャートである。
【００９６】
Ｓ２１０１でダウンストリーム側のＰＨＹ回路３２の状態を調べる。ダウンストリーム側のＰＨＹ回路３２にＤＳＣ３０１２が接続されている場合、Ｓ２１０２でアップストリーム側のＰＨＹ回路２５にＤＴＶ５００７が接続されているか調べる。
【００９７】
アップストリーム側のＰＨＹ回路２５にＤＴＶ５００７が接続されている場合、Ｓ２１０３でアップストリーム側のＰＨＹ回路２５のＤ＋信号線を３．３Ｖにプルアップする。これにより、ＵＳＢホストであるＤＴＶ５００７に対してＵＳＢスレーブであるＨＵＢ回路２３を検知可能にする。ＤＴＶ５００７がＨＵＢ回路２３に対してＵＳＢ機器としてのコンフィグレーションを設定することにより、Ｓ２１０４でＤＴＶ５００７−ＨＵＢ回路２３間のＵＳＢ接続が確立する。このとき図１１で示したＵＳＢ上のバストポロジが構成される。
【００９８】
次にＳ２１２６でアップストリーム側のＰＨＹ回路３４のＤ＋信号線を３．３Ｖにプルアップすることにより、ＵＳＢホストであるＤＴＶ５００７に対してＵＳＢスレーブであるＵＳＢデバイスコントローラ１６を検知可能にする。ＤＴＶ５００７がＵＳＢ機器としてのコンフィグレーションを設定することにより、Ｓ２１２７でＤＴＶ５００７−ＰＤプリンタ１０００間のダイレクトプリント接続が確立する。このとき図７で示したＵＳＢ上のバストポロジが構成される。
【００９９】
次にＳ２１２８でＵＳＢホストコントローラ１５がＤＳＣ３０１２に対してＵＳＢ機器としてのコンフィグレーションを設定することにより、ＰＤプリンタ１０００−ＤＳＣ３０１２間のＵＳＢ接続が確立する。図１５はそのときのＵＳＢ上のバストポロジの一例を示している。即ちＤＴＶ５００７がＵＳＢホスト１８０１となり、ＰＤプリンタ１０００のＨＵＢ回路２３がＵＳＢ  ＨＵＢ１８０２としてここに接続されている。更に、ＰＤプリンタ１０００のＵＳＢデバイスコントローラ１６がＳｔｉｌｌ  Ｉｍａｇｅ  Ｃｌａｓｓのデバイス２００８としてその先に接続されている。また、ＰＤプリンタ１０００のＵＳＢホストコントローラ１５がＵＳＢホスト２４０４となり、ＨＵＢ回路２３がＵＳＢ  ＨＵＢ２４０５としてここに接続されている。更にＤＳＣ３０１２がＳｔｉｌｌ  Ｉｍａｇｅ  Ｃｌａｓｓのデバイス２３０３としてその先に接続されている。
【０１００】
次にＳ２１０５でＤＳＣ３０１２から接続先の機器に関する情報を取得する。例えば、ＤＳＣ３０１２が撮影した画像データを閲覧する「再生モード」に設定されている状態で、ＰＤプリンタ１０００のＵＳＢコネクタ１０１２に接続された場合には、接続先をＤＴＶ５００７として指定する。一方、ＤＳＣ３０１２が画像データを印刷する「印刷モード」に設定されている状態で、ＰＤプリンタ１０００のＵＳＢコネクタ１０１２に接続された場合には、接続先をＰＤプリンタ１０００として指定する。ＤＳＣ３０１２はこのように動作してもよい。
【０１０１】
Ｓ２１０６で接続先の機器がＤＴＶ５００７と指定された場合、Ｓ２１０７でダウンストリーム側のＰＨＹ回路の接続切替処理を実行する。これにより、Ｓ２１０８でＤＴＶ５００７がＵＳＢホスト、ＤＳＣ３０１２がＵＳＢスレーブの関係で接続状態となる。このとき図１３に示したＵＳＢ上のバストポロジが構成される。
【０１０２】
Ｓ２１０７におけるＰＨＹ回路の接続切替処理を図１６で詳細に説明する。
【０１０３】
まずＳ２５０２でダウンストリーム側のＰＨＹ回路３２でＵＳＢ  Ｂｕｓ  Ｒｅｓｅｔイベントの送信を開始する。その後Ｓ２５０３でダウンストリーム側のＰＨＹ回路３２をアップストリーム側のＰＨＹ回路２５に接続する。その後ダウンストリーム側のＰＨＹ回路３２でのＵＳＢ  Ｂｕｓ  Ｒｅｓｅｔイベントの送信を停止する。その後Ｓ２５０５でデバイスが接続されたことをＵＳＢ  ＨＵＢクラスのイベント送信の仕組みを使って、アップストリーム側のＰＨＹ回路２５に接続されているＤＴＶ５００７に送信する。
【０１０４】
図１７は、ＰＤプリンタ１０００のメイン電源をオン状態にして、ＤＴＶ５００７をＵＳＢコネクタ２０に接続し、ＤＳＣ３０１２をＵＳＢコネクタ１０１２に接続した場合の、機器間の通信状態を示したシーケンス図である。図１７は更に、ＤＳＣ３０１２の接続先をＰＤプリンタ１０００のＵＳＢホストコントローラ１５からＤＴＶ５００７に切り替える切替処理も示す。
【０１０５】
まず、Ｓ２６０１でＤＴＶ５００７とＰＤプリンタ１０００とをＵＳＢ接続し、Ｓ２６０２でＰＤプリンタ１０００とＤＳＣ３０１２とをＵＳＢ接続する。次にＳ２１０３（図１４参照）でアップストリーム側のＰＨＹ回路２５のＤ＋信号線を３．３Ｖにプルアップする。これにより、Ｓ２６０３でＤＴＶ５００７がＰＤプリンタ１０００のＨＵＢ回路２３に対してＵＳＢ機器としてのコンフィグレーションを設定する。Ｓ２６０４で、ＰＤプリンタ１０００は成功を意味するＯＫを返答する。その結果Ｓ２６０５でＰＤプリンタ１０００のＨＵＢ回路２３はＨＵＢ  ＣｌａｓｓのＵＳＢスレーブとして構成される。
【０１０６】
その後、Ｓ２１２６（図１４参照）でアップストリーム側のＰＨＹ回路３４のＤ＋信号線を３．３Ｖにプルアップする。これにより、Ｓ２６０６でＤＴＶ５００７がＰＤプリンタ１０００のＵＳＢデバイスコントローラ１６に対してＵＳＢ機器としてのコンフィグレーションを設定する。Ｓ２６０７で、ＰＤプリンタ１０００は成功を意味するＯＫを返答する。その結果、Ｓ２６０８でＰＤプリンタ１０００のＵＳＢデバイスコントローラ１６はＳｔｉｌｌ  Ｉｍａｇｅ  ＣｌａｓｓのＵＳＢスレーブとして構成される。その後Ｓ２６１１でＤＴＶ５００７−ＰＤプリンタ１０００間のダイレクトプリント接続が確立される。
【０１０７】
次にＳ２６０９でＰＤプリンタ１０００がＤＳＣ３０１２に対してＵＳＢ機器としてのコンフィグレーションを設定する。Ｓ２６１０で、ＤＳＣ３０１２が成功を意味するＯＫを返答する。その結果、Ｓ２６１２でＤＳＣ３０１２がＳｔｉｌｌ  Ｉｍａｇｅ  ＣｌａｓｓのＵＳＢスレーブとして構成される。その後、Ｓ２６１３でＰＤプリンタ１０００はＤＳＣ３０１２に対して接続先の機器に関する情報を要求する。ＤＳＣ３０１２から接続先をＤＴＶ５００７として指定されると（Ｓ２６１４）、Ｓ２６１５でＰＤプリンタ１０００はＵＳＢ  Ｂｕｓ  Ｒｅｓｅｔイベントの送信を開始する。その後Ｓ２５０３でダウンストリーム側のＰＨＹ回路３２をアップストリーム側のＰＨＹ回路２５に接続する。Ｓ２６１６で、ＰＤプリンタ１０００はＵＳＢ  Ｂｕｓ  Ｒｅｓｅｔイベントの送信を停止する。その結果、ＤＳＣ３０１２はＵＳＢプロトコル上のＤｅｆａｌｔアドレスの通信に対して応答をするＤｅｆａｕｌｔ状態に設定される（Ｓ２６１６ｂ）。
【０１０８】
Ｓ２６１７でＰＤプリンタ１０００からＤＴＶ５００７に対してＵＳＢ  ＨＵＢクラスのイベント送信の仕組みを使ってＨｕｂ  Ｓｔａｔｕｓ  Ｃｈａｎｇｅのイベントを送信する。その結果、Ｓ２６１８でＤＴＶ５００７がＤＳＣ３０１２に対してＵＳＢ機器としてのコンフィグレーションを設定する。Ｓ２６１９で、ＤＳＣ３０１２が成功を意味するＯＫを返答する。それによって、ＤＴＶ５００７がＵＳＢホスト、ＤＳＣ３０１２がＳｔｉｌｌ  Ｉｍａｇｅ  ＣｌａｓｓのＵＳＢスレーブとして構成される（Ｓ２６２０）。
【０１０９】
再度、図１４の説明に戻る。Ｓ２１０６で接続先の機器がＰＤプリンタ１０００と指定された場合、Ｓ２１１２でＰＤプリンタ１０００−ＤＳＣ３０１２間のダイレクトプリント接続が確立する。その後Ｓ２１１３でＳｔｉｌｌ  Ｉｍａｇｅ  Ｃｌａｓｓのプロトコルを使ってＤＴＶ５００７に対してＰＤプリンタ１０００に接続されているＵＳＢデバイスに関する情報を送信する。本実施例の場合、ＤＳＣ３０１２が接続されていることを通知する。その結果、例えばＤＴＶ５００７がＤＳＣ３０１２と接続して、ディスプレイ５００８上に表示するアプリケーションを実行しようとする場合には、ＤＴＶ５００７からＵＳＢ接続状態の切替要求を送信するものとする。
【０１１０】
Ｓ２１１５ではＤＴＶ５００７から接続切替要求を受信したかどうかを調べる。接続切替要求があった場合、Ｓ２１１６に進み、ＰＤプリンタ１０００−ＤＳＣ３０１２間でダイレクトプリント方式による印刷を実行中か否かを調べる。印刷を実行中の場合は、印刷が完了するまでＳ２１１６で待ち合わせを行う。印刷が完了すると、Ｓ２１１７でＰＤプリンタ１０００からＤＳＣ３０１２に対してＵＳＢ接続状態の切替要求を送信する。ＤＳＣ３０１２から接続切替許可の返答がない場合は（Ｓ２１１８のＮｏ）、Ｓ２１１９でＤＴＶ５００７に対してＵＳＢ接続の切替に失敗したことを通知した後、Ｓ２１１５に戻る。ＤＳＣ３０１２から接続切替許可の返答を受信した場合、Ｓ２１０７に進んでダウンストリーム側のＰＨＹ回路の接続切替処理を実行する。
【０１１１】
図１４のＳ２１０２でアップストリーム側のＰＨＹ回路２５にＤＴＶ５００７が接続されていない場合、Ｓ２１０９でＰＤプリンタ１０００−ＤＳＣ３０１２間のダイレクトプリント接続を確立する。図１８はそのときのＵＳＢ上のバストポロジを示している。即ちＰＤプリンタ１０００のＵＳＢホストコントローラ１５がＵＳＢホスト２４０４となり、ＨＵＢ回路２３がＵＳＢ  ＨＵＢ２４０５としてここに接続されている。更にＤＳＣ３０１２がＳｔｉｌｌ  Ｉｍａｇｅ  Ｃｌａｓｓのデバイス２３０３としてその先に接続されている。
【０１１２】
Ｓ２１１０ではアップストリーム側のＰＨＹ回路２５にＤＴＶ５００７が接続されていないかを調べる。ＤＴＶ５００７が接続されると、Ｓ２１１３に進む。
【０１１３】
Ｓ２１０１でダウンストリーム側のＰＨＹ回路３２にＤＳＣ３０１２が接続されていない場合、Ｓ２１２０でアップストリーム側のＰＨＹ回路２５にＤＴＶ５００７が接続されていないかを調べる。接続されていない場合はＳ２１０１に戻り、接続されている場合はＳ２１２１に進む。Ｓ２１２１で、アップストリーム側のＰＨＹ回路２５のＤ＋信号線を３．３Ｖにプルアップすることによって、ＵＳＢホストであるＤＴＶ５００７に対してＵＳＢスレーブであるＨＵＢ回路２３を検知可能にする。ＤＴＶ５００７がＨＵＢ回路２３に対してＵＳＢ機器としてのコンフィグレーションを設定することにより、Ｓ２１２２でＤＴＶ５００７−ＨＵＢ回路２３間のＵＳＢ接続が確立する。このとき図１１で示したＵＳＢ上のバストポロジが構成される。
【０１１４】
次にＳ２１２３でアップストリーム側のＰＨＹ回路３４のＤ＋信号線を３．３Ｖにプルアップすることにより、ＵＳＢホストであるＤＴＶ５００７に対してＵＳＢスレーブであるＵＳＢデバイスコントローラ１６を検知可能にする。ＤＴＶ５００７がＵＳＢ機器としてのコンフィグレーションを設定することにより、Ｓ２１２４でＤＴＶ５００７−ＰＤプリンタ１０００間のダイレクトプリント接続が確立する。このとき図７で示したＵＳＢ上のバストポロジが構成される。
【０１１５】
更にＳ２１２５でダウンストリーム側のＰＨＹ回路３２の状態を調べ、ＤＳＣ３０１２が接続するのを待ち合わせる。ＤＳＣ３０１２が接続されると、Ｓ２１２８に進む。
【０１１６】
以上説明したように、本実施例のＰＤプリンタ１０００は、接続されたＤＳＣ３０１２から接続先に関する情報を取得する。そして、取得した情報に応じてＤＳＣ３０１２をＤＴＶ５００７に接続するか、あるいはＵＳＢホストコントローラ１５に接続するかを自動的に切り替えることができる。そのため、ＰＤプリンタ１０００を操作してＤＳＣ３０１２の接続先を指定するなどのわずらわしさがない。ＰＤプリンタ１０００は、ボタンなどの操作部材を十分に備えていなかったり、液晶モニタを備えていなかったりする場合がある。そのような場合でも、ＤＳＣ３０１２側から接続先を切り替えることができるため利便性がよい。
【０１１７】
また、ＤＳＣ３０１２がＰＤプリンタ１０００のＵＳＢコネクタ１０１２に接続され、ＰＤプリンタ１０００との間でダイレクトプリント方式による印刷を行っている状態で、ＤＴＶ５００７が接続された場合を考える。この場合にＤＴＶ５００７からＤＳＣ３０１２に対して接続要求があると、本実施例のＰＤプリンタ１０００は、印刷を完了してからＨＵＢ回路２３を介してＤＴＶ５００７とＤＳＣ３０１２とをＵＳＢ接続する。そのため、ＤＴＶ５００７側から接続先を切り替えることができる。また、印刷の実行中に接続を切り替えてしまうようなことがない。
【０１１８】
また、本実施例のＰＤプリンタ１０００は、ＰＤプリンタ１０００−ＤＳＣ３０１２間のダイレクトプリント接続を確立する前に、接続先の機器に関する情報を取得する。そのため、ダイレクトプリント接続を確立した後に、ＤＳＣ３０１２の接続先をＤＴＶ５００７に切り替える場合に比べて、ＤＳＣ３０１２のＬＣＤモニタ４６にダイレクトプリント用の画面が一旦表示されてしまう、といった不都合を回避することができる。
【０１１９】
また、本実施例のＰＤプリンタ１０００によれば、Ｓ２１０７において、ＵＳＢ  Ｂｕｓ  Ｒｅｓｅｔイベントの間にダウンストリーム側のＰＨＹ回路の接続切替処理を行う。このため、Ｖ−ＢＵＳ信号線を一旦オフ状態にして、時間を置いてからオン状態に戻す場合に比べて接続切替にかかる時間を短くすることができる。
【０１２０】
ところで、本実施例のＰＤプリンタ１０００において、例えばアップストリーム側のＰＨＹ回路２８とダウンストリーム側のＰＨＹ回路３５や、アップストリーム側のＰＨＹ回路３４とダウンストリーム側のＰＨＹ回路３３の間の接続は、Ｄ＋信号とＤ−信号のように差動信号を伝送するように構成してもよいし、ＵＬＰＩ（ＵＴＭＩ＋  Ｌｏｗ  Ｐｉｎ  Ｉｎｔｅｒｆａｃｅ）などのデジタル信号で接続してもよい。いずれの場合でも、ＨＵＢ回路２３の内部ではアップストリーム側のＰＨＹ回路とダウンストリーム側のＰＨＹ回路との間はデジタル信号で接続するよう構成されている。従って、アップストリーム側のＰＨＹ回路とダウンストリーム側のＰＨＹ回路の接続を切り替えるＭＵＸ回路３１は単純なセレクタ回路で構成できる。
【０１２１】
また、図３に示したように、ＰＤプリンタ１０００は外部スレーブ機器を接続可能なＵＳＢコネクタ１０１２のほかに同様のＵＳＢコネクタ１０１３を備えている。この場合、ＨＵＢ回路２３がダウンストリーム側のＰＨＹ回路３６を備えることによって、ＵＳＢホストコントローラ１５はＨＵＢ回路２３を介して外部スレーブ機器と接続する。そのため、ダウンストリームポートを１つ備えていれば、ＰＤプリンタ１０００のＵＳＢコネクタに接続される複数の外部スレーブ機器を同時に制御可能である。
【０１２２】
また、本実施例ではＰＤプリンタ１０００のメイン電源がオフの場合、ＵＳＢコネクタ１０１２にＤＳＣ３０１２が接続されると、自動的にＨＵＢ回路２３を介してＤＴＶ５００７とＤＳＣ３０１２とをＵＳＢ接続していた。しかし、例えば排出トレイが本体に格納されていたり、インクが装着されていないなどの理由でプリント機能が無効であると判断された場合にも、同様にＤＴＶ５００７とＤＳＣ３０１２とをＵＳＢ接続するように動作してもよい。
【実施例２】
【０１２３】
本実施例におけるＰＤプリンタ２７００は、Ｗｉｒｅｌｅｓｓ  ＵＳＢ（ＷＵＳＢ）規格で定められたプロトコルに従って動作するＷＵＳＢホスト機能を備える。そして、本実施例では、ＰＤプリンタ２７００とＤＴＶ５００７とをＵＳＢ接続し、ＰＤプリンタ２７００とＤＳＣ２０００（図１９参照）との間をＷＵＳＢで接続する。
【０１２４】
図１９は、ＰＤプリンタ２７００に対するＤＳＣ２０００及びＤＴＶ５００７の接続形態を説明する図である。なお、本実施例に係るＤＴＶ５００７の構成は実施例１で説明したものと同じである。また、本実施例に係るＤＳＣ２０００の構成は実施例１に係るＤＳＣ３０１２に対して、ＷＵＳＢのスレーブ機能を備たこと以外は同様である。従って、以下では、実施例１と異なる部分を中心に説明し、同様の部分に関しては説明を省略する。
【０１２５】
図２０は、ＰＤプリンタ２７００の内部構成を示すブロック図である。実施例１に係るＰＤプリンタ１０００に対して、以下の部分が異なっている。即ち、ダウンストリーム側のＰＨＹ回路３２はＷＵＳＢ  ＨＷＡコントローラ２７０１と接続されている。ＨＷＡはホスト・ワイヤ・アダプタを示し、既存のＵＳＢホストと接続されて通信プロトコルを相互に変換するＷＵＳＢの変換アダプタである。ＷＵＳＢ  ＨＷＡコントローラ２７０１にはＵＷＢ（Ｕｌｔｒａ  Ｗｉｄｅ  Ｂａｎｄ）  ＰＨＹ回路２７０２（無線インタフェース）が接続される。２７０３はＵＷＢのアンテナである。
【０１２６】
本実施例のＰＤプリンタ２７００とＤＳＣ２０００とは、ＰＤプリンタ２７００がＷＵＳＢホスト、ＤＳＣ２０００がＷＵＳＢスレーブの関係で接続される。更に、ＨＵＢ回路２３のダウンストリーム側のＰＨＹ回路３２をアップストリーム側のＰＨＹ回路２５に接続するようＭＵＸ回路３１を制御することができる。これにより、ＰＤプリンタ２７００のＨＵＢ回路２３、及びＷＵＳＢ  ＨＷＡコントローラ２７０１を介して、ＤＴＶ５００７がＷＵＳＢホスト、ＤＳＣ２０００がＷＵＳＢスレーブの関係で接続することができる。
【０１２７】
本実施例のＰＤプリンタ２７００において、ＵＳＢコネクタ２０にＤＴＶ５００７が接続されていない場合を考える。この場合にＤＳＣ２０００がＷＵＳＢ接続されると、自動的にＨＵＢ回路２３、及びＷＵＳＢ  ＨＷＡコントローラ２７０１を介してＵＳＢホストコントローラ１５とＤＳＣ２０００とがＷＵＳＢ接続される。
【０１２８】
また、ＵＳＢコネクタ２０にＤＴＶ５００７が接続されていて、ＰＤプリンタ２７００のメイン電源がオンされていない場合を考える。この場合にＤＳＣ２０００がＷＵＳＢ接続されると、自動的にＨＵＢ回路２３、及びＷＵＳＢ  ＨＷＡコントローラ２７０１を介してＤＴＶ５００７とＤＳＣ２０００とがＷＵＳＢ接続される。
【０１２９】
また、ＰＤプリンタ２７００は、ＷＵＳＢ接続されたＤＳＣ２０００から接続先に関する情報を取得する。そして、取得した情報に応じてＤＳＣ２０００をＤＴＶ５００７に接続するか、或いはＵＳＢホストコントローラ１５に接続するかを自動的に切り替える。
【０１３０】
また、ＤＳＣ２０００がＷＵＳＢ接続され、ＰＤプリンタ２７００との間でダイレクトプリント方式による印刷を行っている状態を考える。この状態でＤＴＶ５００７が接続された場合、ＤＴＶ５００７からＤＳＣ２０００に対して接続要求があると、印刷を完了してから自動的にＨＵＢ回路２３、ＷＵＳＢ  ＨＷＡコントローラ２７０１を介してＤＴＶ５００７とＤＳＣ２０００がＷＵＳＢ接続される。
【０１３１】
図２１は、ＰＤプリンタ２７００が実行する処理の流れを示すフローチャートである。実施例１のＰＤプリンタ１０００の動作と同等の場合は同じステップ番号で示し、説明を省略する（図１０参照）。
【０１３２】
Ｓ１７１５の後、Ｓ２８００でＷＵＳＢ  ＨＷＡコントローラ２７０１を起動してイネーブルして、ＵＳＢホストであるＤＴＶ５００７からＵＳＢスレーブであるＷＵＳＢ  ＨＷＡコントローラ２７０１を検知可能にする。ＤＴＶ５００７がＷＵＳＢ  ＨＷＡコントローラ２７０１に対してＵＳＢ機器としてのコンフィグレーションを設定することにより、Ｓ２８０１でＤＴＶ５００７−ＷＵＳＢ  ＨＷＡコントローラ２７０１間のＵＳＢ接続が確立する。
【０１３３】
図２２は、図２１のＳ２８０１における、ＵＳＢ上のバストポロジを示す図である。ＤＴＶ５００７がＵＳＢホスト１８０１となり、ＰＤプリンタ２７００のＨＵＢ回路２３がＵＳＢ  ＨＵＢ１８０２としてここに接続されている。更に、ＷＵＳＢ  ＨＷＡコントローラ２７０１がＷＵＳＢ  ＨＷＡ  Ｃｌａｓｓのデバイス３００３として接続されている。この状態で、ＤＳＣ２０００がＷＵＷＢ接続されると、ＨＵＢ回路２３、ＷＵＳＢ  ＨＷＡコントローラ２７０１を介してＤＴＶ５００７とＤＳＣ２０００とがＷＵＳＢ接続される。図２３はそのときのＵＳＢ上のバストポロジを示している。即ちＤＴＶ５００７がＵＳＢホスト１８０１となり、ＰＤプリンタ２７００のＨＵＢ回路２３がＵＳＢ  ＨＵＢ１８０２としてここに接続される。そして、ＷＵＳＢ  ＨＷＡコントローラ２７０１がＷＵＳＢ  ＨＷＡ  Ｃｌａｓｓのデバイス３３０３として接続している。更に、ＤＳＣ２０００がＳｔｉｌｌ  Ｉｍａｇｅ  Ｃｌａｓｓのデバイス３３０４としてその先に接続されている。
【０１３４】
この状態では、ＰＤプリンタ２７００のメイン電源がオフされている。そのため、ＰＤプリンタ２７００に内蔵されているＷＵＳＢ  ＨＷＡコントローラにＤＳＣ２０００がＷＵＳＢ接続されても、ユーザはダイレクトプリント方式による印刷を行う意図がないと判断することが適当である。そこで、ＰＤプリンタ２７００のＵＳＢコネクタ２０にＤＴＶ５００７が接続され、かつＰＤプリンタ２７００のＷＵＳＢ  ＨＷＡコントローラ２７０１にＤＳＣ２０００がＷＵＳＢ接続した場合、ユーザがＤＴＶ５００７からＤＳＣ２０００を操作可能となるよう制御することが適当である。従って、ＰＤプリンタ２７００が自動的に、ＨＵＢ回路２３、ＷＵＳＢ  ＨＷＡコントローラ２７０１を介してＤＴＶ５００７とＤＳＣ２０００とをＷＵＳＢ接続することによってユーザの利便性が高まる。
【０１３５】
Ｓ１７１３でＤＴＶ５００７から切替許可の通知を受信すると、Ｓ２８０２でＷＵＳＢ  ＨＷＡコントローラ２７０１を停止させてＳ１７０２に進む。
【０１３６】
Ｓ１７０３の後、Ｓ２８０３でＷＵＳＢ  ＨＷＡコントローラ２７０１を起動した後イネーブルして、ＵＳＢホストコントローラ１５からＵＳＢスレーブであるＷＵＳＢ  ＨＷＡコントローラ２７０１を検知可能にする。ＵＳＢホストコントローラ１５がＷＵＳＢ  ＨＷＡコントローラ２７０１に対してＵＳＢ機器としてのコンフィグレーションを設定することにより、Ｓ２８０４でＵＳＢホストコントローラ１５−ＷＵＳＢ  ＨＷＡコントローラ２７０１間のＵＳＢ接続が確立する。
【０１３７】
図２４はそのときのＵＳＢ上のバストポロジを示している。即ちＰＤプリンタ２７００のＵＳＢホストコントローラ１５がＵＳＢホスト１８０１となり、ＨＵＢ回路２３がＵＳＢ  ＨＵＢ１８０２としてここに接続されている。その先にＷＵＳＢ  ＨＷＡコントローラ２７０１がＷＵＳＢ  ＨＷＡ  Ｃｌａｓｓのデバイス３００３として接続されている。
【０１３８】
その後、Ｓ２８０５でＷＵＳＢスレーブからの接続待ちのシーケンスを開始し、Ｓ２８０６で電源オン時の処理を実行する。
【０１３９】
図２５は、図２１のＳ２８０６における処理の詳細を示すフローチャートである。実施例１のＰＤプリンタ１０００の動作と同等の場合は同じステップ番号で示し、説明を省略する（図１４参照）。
【０１４０】
Ｓ２９０１で、ＷＵＳＢスレーブからの接続要求があるかどうかを調べる。ＷＵＳＢスレーブであるＤＳＣ２０００からの接続要求があった場合、Ｓ２１０２に進む。Ｓ２１０２からＳ２１０３に進んだ場合、Ｓ２１２７でＤＴＶ５００７−ＰＤプリンタ２７００間のダイレクトプリント接続が確立する。
【０１４１】
図２６はそのときのＵＳＢ上のバストポロジを示している。即ちＤＴＶ５００７がＵＳＢホスト１８０１となり、ＰＤプリンタ２７００のＨＵＢ回路２３がＵＳＢ  ＨＵＢ１８０２としてここに接続される。そして、ＵＳＢデバイスコントローラ１６がＳｔｉｌｌ  Ｉｍａｇｅ  Ｃｌａｓｓのデバイス２００８としてその先に接続されている。また、ＰＤプリンタ２７００のＵＳＢホストコントローラ１５がＵＳＢホスト２４０４となり、ＨＵＢ回路２３がＵＳＢ  ＨＵＢ２４０５としてここに接続されている。その先にＷＵＳＢ  ＨＷＡコントローラ２７０１がＷＵＳＢ  ＨＷＡ  Ｃｌａｓｓのデバイス３００３として接続されている。
【０１４２】
図２５に戻り、Ｓ２９０２でＵＳＢホストコントローラ１５がＤＳＣ２０００に対してＵＳＢ機器としてのコンフィグレーションを設定することにより、ＰＤプリンタ２７００−ＤＳＣ２０００間のＷＵＳＢ接続が確立する。図２７はそのときのＵＳＢ上のバストポロジの一例を示している。図２６の状態に加えて、ＤＳＣ２０００がＳｔｉｌｌ  Ｉｍａｇｅ  Ｃｌａｓｓのデバイス２３０３としてＷＵＳＢ  ＨＷＡ  Ｃｌａｓｓのデバイス３００３に接続されている。
【０１４３】
Ｓ２９０３では、ＨＵＢ回路２３、ＷＵＳＢ  ＨＷＡコントローラ２７０１を介してＤＴＶ５００７とＤＳＣ２０００とがＷＵＳＢ接続される。このとき図２３に示したＵＳＢ上のバストポロジが構成される。
【０１４４】
なお、Ｓ２１０７におけるＰＨＹ回路の接続切替処理では、ＵＳＢ  Ｂｕｓ  Ｒｅｓｅｔの間にダウンストリーム側のＰＨＹ回路３２の接続先を切り替えるものとして説明した。しかしながら、代わりに、Ｖ−ＢＵＳ信号線を一旦オフ状態にした後に、ダウンストリーム側のＰＨＹ回路３２の接続先を切り替え、その後Ｖ−ＢＵＳ信号線をオン状態に戻すようにしてもよい。
【０１４５】
Ｓ２９０１でＷＵＳＢスレーブからの接続要求がない場合は、Ｓ２１２０に進む。そして、Ｓ２１２０からＳ２１２１に進んだ場合、Ｓ２１２４でＤＴＶ５００７−ＰＤプリンタ２７００間のダイレクトプリント接続が確立する。このとき図２６で示したＵＳＢ上のバストポロジが構成される。
【０１４６】
更にＳ２９０４でＷＵＳＢスレーブからの接続要求があるかどうかを調べる。ＷＵＳＢスレーブであるＤＳＣ２０００からの接続要求があった場合、Ｓ２９０２に進む。
【０１４７】
以上説明したように、本実施例のＰＤプリンタ２７００によれば、ＵＳＢコネクタ２０にＤＴＶ５００７が接続されている場合に、ＷＵＳＢ  ＨＷＡの機能をＤＴＶ５００７から利用することができる。従って、ＤＴＶ５００７にＷＵＳＢの機能がない場合でも、本実施例のＰＤプリンタ２７００とＵＳＢ接続することによって、ＷＵＳＢスレーブ機能を持ったＤＳＣ２０００と接続することができる。
【０１４８】
また、ＰＤプリンタ２７００のメイン電源がオフされている場合には、自動的にＷＵＳＢのホスト機能をＤＴＶ５００７から利用可能となるよう制御するため、利便性がよい。
【０１４９】
また、接続されたＤＳＣ２０００から接続先に関する情報を取得して、取得した情報に応じてＤＳＣ２０００をＤＴＶ５００７に接続するか、あるいはＵＳＢホストコントローラ１５に接続するかを自動的に切り替えることができる。そのため、ＰＤプリンタ２７００を操作してＤＳＣ２０００の接続先を指定するなどのわずらわしさがない。ＰＤプリンタ２７００は、ボタンなどの操作部材を十分に備えていなかったり、液晶モニタを備えていなかったりする場合がある。そのような場合でも、ＤＳＣ２０００側から接続先を切り替えることができるため利便性がよい。
【０１５０】
また、ＤＳＣ２０００がＰＤプリンタ２７００にＷＵＳＢ接続され、ＰＤプリンタ２７００との間でダイレクトプリント方式による印刷を行っている状態を考える。この状態でＤＴＶ５００７が接続された場合に、ＤＴＶ５００７からＤＳＣ２０００に対して接続要求があると、ＰＤプリンタ２７００は、印刷を完了してから自動的にＨＵＢ回路２３、ＵＷＳＢ  ＨＷＡコントローラ２７０１を介してＤＴＶ５００７とＤＳＣ２０００とをＷＵＳＢ接続する。そのため、ＤＴＶ５００７側から接続先を切り替えることができる。また、印刷の実行中に接続を切り替えてしまうようなことがない。
【０１５１】
また、図２０に示したように、ＰＤプリンタ２７００はＷＵＳＢ  ＨＷＡコントローラ２７０１が接続されているダウンストリーム側のＰＨＹ回路３２のほかに、外部スレーブ機器を接続可能なＵＳＢコネクタ１０１３を備えている。この場合、ＨＵＢ回路２３がダウンストリーム側のＰＨＹ回路３６を備えることによって、ＵＳＢホストコントローラ１５はＨＵＢ回路２３を介して外部スレーブ機器と接続する。そのため、ダウンストリームポートを１つ備えていれば、ＰＤプリンタ２７００のＵＳＢコネクタに接続される外部スレーブ機器を制御可能である。
【０１５２】
また、ＰＤプリンタ２７００−ＤＳＣ２０００間のダイレクトプリント接続を確立する前に、接続先の機器に関する情報を取得する。そのため、ダイレクトプリント接続を確立した後に、ＤＳＣ２０００の接続先をＤＴＶ５００７に切り替える場合に比べて、ＤＳＣ２０００のＬＣＤパネルにダイレクトプリント用の画面が一旦表示されてしまう、といった不都合を回避することができる。
【０１５３】
ところで、本実施例では、ＰＤプリンタ２７００がＷＵＳＢ  ＨＷＡコントローラ２７０１とＵＷＢ  ＰＨＹ回路２７０２とを備えている構成であった。しかしながら、実施例１の図３で示した構成を基に、ＵＳＢコネクタ１０１２の先にＷＵＳＢ  ＨＷＡ機器をＵＳＢ接続するようにしても構わない。
【０１５４】
［その他の実施例］
上述した各実施例の機能を実現するためには、各機能を具現化したソフトウェアのプログラムコードを記録した記録媒体をシステム或は装置に提供してもよい。そして、そのシステム或は装置のコンピュータ（又はＣＰＵやＭＰＵ）が記録媒体に格納されたプログラムコードを読み出し実行することによって、上述した各実施例の機能が実現される。この場合、記録媒体から読み出されたプログラムコード自体が上述した各実施例の機能を実現することになり、そのプログラムコードを記録した記録媒体は本発明を構成することになる。このようなプログラムコードを供給するための記録媒体としては、例えば、フロッピィ（登録商標）ディスク、ハードディスク、光ディスク、光磁気ディスクなどを用いることができる。或いは、ＣＤ−ＲＯＭ、ＣＤ−Ｒ、磁気テープ、不揮発性のメモリカード、ＲＯＭなどを用いることもできる。
【０１５５】
また、上述した各実施例の機能を実現するための構成は、コンピュータが読み出したプログラムコードを実行することだけには限られない。そのプログラムコードの指示に基づき、コンピュータ上で稼動しているＯＳ（オペレーティングシステム）などが実際の処理の一部又は全部を行い、その処理によって上述した各実施例の機能が実現される場合も含まれている。
【０１５６】
更に、記録媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書きこまれてもよい。その後、そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるＣＰＵなどが実際の処理の一部又は全部を行い、その処理によって上述した各実施例の機能が実現される場合も含むものである。
【図１】
2010226394.tif 000003
【図２】
2010226394.tif 000004
【図３】
2010226394.tif 000005
【図４】
2010226394.tif 000006
【図５】
2010226394.tif 000007
【図６】
2010226394.tif 000008
【図７】
2010226394.tif 000009
【図８】
2010226394.tif 000010
【図９】
2010226394.tif 000011
【図１０】
2010226394.tif 000012
【図１１】
2010226394.tif 000013
【図１２】
2010226394.tif 000014
【図１３】
2010226394.tif 000015
【図１４】
2010226394.tif 000016
【図１５】
2010226394.tif 000017
【図１６】
2010226394.tif 000018
【図１７】
2010226394.tif 000019
【図１８】
2010226394.tif 000020
【図１９】
2010226394.tif 000021
【図２０】
2010226394.tif 000022
【図２１】
2010226394.tif 000023
【図２２】
2010226394.tif 000024
【図２３】
2010226394.tif 000025
【図２４】
2010226394.tif 000026
【図２５】
2010226394.tif 000027
【図２６】
2010226394.tif 000028
【図２７】
2010226394.tif 000029