(57)【要約】【課題】複数の外部機器を接続された場合に、電力を受電する上で適切な外部機器を選択し電力要求を送信できる情報処理装置、情報処理装置の制御方法、及びプログラムを提供すること。【解決手段】プリンタ１のＣＰＵ１２は、レセプタクル５１に接続された第１及び第２外部機器６１，６２の電源情報を受け付ける（Ｓ１３）。ＣＰＵ１２は、電源情報に基づき、第１及び第２外部機器６１，６２のうち、電力要求を送信する外部機器を選択する選択処理を実行する（Ｓ１５）。ＣＰＵ１２は、Ｓ１５の選択処理の結果に基づき、選択した外部機器へ電力要求を送信する（Ｓ２１，Ｓ３３）。【選択図】図２
2020124035.tif 000002
【特許請求の範囲】
【請求項１】
第１インタフェースと、
第２インタフェースと、
制御部と、
を備え、
前記制御部は、
前記第１インタフェースに接続された第１外部機器の電源に係る第１電源情報を受け付ける第１受付処理と、
前記第２インタフェースに接続された第２外部機器の電源に係る第２電源情報を受け付ける第２受付処理と、
前記第１電源情報及び前記第２電源情報に基づき、前記第１外部機器及び前記第２外部機器のうち、電力要求を送信する外部機器を選択する選択処理と、
前記選択処理の結果に基づき、選択した前記外部機器へ電力要求を送信する送信処理と、
を実行する、情報処理装置。
【請求項２】
前記制御部は、
前記第１電源情報及び前記第２電源情報に基づき、前記第１外部機器及び前記第２外部機器の両方が外部電源に接続されているか否かを判断する第１判断処理と、
前記第１電源情報及び前記第２電源情報に基づき、前記第１外部機器及び前記第２外部機器の両方が前記外部電源に接続されていないか否かを判断する第２判断処理と、
を実行し、
前記第１判断処理で否定判断し、且つ、前記第２判断処理で否定判断した場合、前記選択処理において前記電力要求を送信する前記外部機器として前記外部電源に接続された前記外部機器を選択する、請求項１に記載の情報処理装置。
【請求項３】
前記外部電源に接続された前記外部機器は、
前記外部電源に直接接続され前記外部電源から電力を受電する、請求項２に記載の情報処理装置。
【請求項４】
前記外部電源に接続された前記外部機器は、
前記外部電源に直接接続された他の外部機器から、前記情報処理装置を介さない経路で電力を受電する、請求項２に記載の情報処理装置。
【請求項５】
前記外部電源は、
ＡＣ電源である、請求項２乃至請求項４の何れか１項に記載の情報処理装置。
【請求項６】
前記制御部は、
前記第１外部機器から前記電力要求を拒否されたと判断した場合、前記第２外部機器へ前記電力要求を送信する、請求項１乃至請求項５の何れか１項に記載の情報処理装置。
【請求項７】
前記制御部は、
前記第１外部機器が前記第１インタフェースから切断された頻度を示す第１挿抜頻度を前記第１電源情報により受け付け、前記第２外部機器が前記第２インタフェースから切断された頻度を示す第２挿抜頻度を前記第２電源情報により受け付け、前記第１挿抜頻度が前記第２挿抜頻度に比べて少ないことに応じて、前記選択処理において前記電力要求を送信する前記外部機器として前記第１外部機器を選択する、請求項１乃至請求項６の何れか１項に記載の情報処理装置。
【請求項８】
前記制御部は、
前記第１外部機器から外部電源が切断された頻度を示す第３挿抜頻度を前記第１電源情報により受け付け、前記第２外部機器から前記外部電源が切断された頻度を示す第４挿抜頻度を前記第２電源情報により受け付け、前記第３挿抜頻度が前記第４挿抜頻度に比べて少ないことに応じて、前記選択処理において前記電力要求を送信する前記外部機器として前記第１外部機器を選択する、請求項１乃至請求項７の何れか１項に記載の情報処理装置。
【請求項９】
前記制御部は、
前記第１電源情報及び前記第２電源情報に基づいて、前記第１外部機器及び前記第２外部機器の両方がバッテリを有しているか否かを判断する第３判断処理を実行し、
前記第３判断処理において否定判断した場合、前記選択処理において前記電力要求を送信する前記外部機器として前記バッテリを有する前記外部機器を選択する、請求項１乃至請求項８の何れか１項に記載の情報処理装置。
【請求項１０】
前記制御部は、
前記第３判断処理において肯定判断した場合、前記第１外部機器の前記バッテリの残量が、前記第２外部機器の前記バッテリの残量に比べて多いか否かを判断する第４判断処理を実行し、
前記第４判断処理において肯定判断した場合、前記選択処理において前記電力要求を送信する前記外部機器として前記第１外部機器を選択する、請求項９に記載の情報処理装置。
【請求項１１】
前記第１インタフェースは、第１ＵＳＢ（Ｕｎｉｖｅｒｓａｌ  Ｓｅｒｉａｌ  Ｂｕｓ）インタフェースであり、
前記第２インタフェースは、第２ＵＳＢ（Ｕｎｉｖｅｒｓａｌ  Ｓｅｒｉａｌ  Ｂｕｓ）インタフェースである、請求項１乃至請求項１０の何れか１項に記載の情報処理装置。
【請求項１２】
第１インタフェースと、第２インタフェースと、を備える情報処理装置の制御方法であって、
前記第１インタフェースに接続された第１外部機器の電源に係る第１電源情報を受け付ける第１受付工程と、
前記第２インタフェースに接続された第２外部機器の電源に係る第２電源情報を受け付ける第２受付工程と、
前記第１電源情報及び前記第２電源情報に基づき、前記第１外部機器及び前記第２外部機器のうち、電力要求を送信する外部機器を選択する選択工程と、
前記選択工程の結果に基づき、選択した前記外部機器へ電力要求を送信する送信工程と、
を含む、情報処理装置の制御方法。
【請求項１３】
第１インタフェースと、第２インタフェースと、を備える情報処理装置の制御をコンピュータに実行させるプログラムであって、
前記コンピュータに、
前記第１インタフェースに接続された第１外部機器の電源に係る第１電源情報を受け付ける第１受付処理と、
前記第２インタフェースに接続された第２外部機器の電源に係る第２電源情報を受け付ける第２受付処理と、
前記第１電源情報及び前記第２電源情報に基づき、前記第１外部機器及び前記第２外部機器のうち、電力要求を送信する外部機器を選択する選択処理と、
前記選択処理の結果に基づき、選択した前記外部機器へ電力要求を送信する送信処理と、
を実行させる、プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、外部機器から電力を受電する情報処理装置、情報処理装置の制御方法、及びプログラムに関するものである。
【背景技術】
【０００２】
従来、例えば、ＵＳＢ  ＰＤ（ＵＳＢ Ｐｏｗｅｒ Ｄｅｌｉｖｅｒｙ）規格に準じた方式により給電装置から電力を受電する受電装置がある（例えば、特許文献１など）。特許文献１に開示される受電装置は、電力シンクとして機能し、ＡＣ電源に接続されたプリンタから電力を受電している。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１５−１７６４４３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
上記した受電装置は、プリンタなどの電力を供給可能な外部機器を複数接続された場合、複数の外部機器から電力を受電する外部機器を選択し電力を要求する必要がある。外部機器の電源構成等は異なるため、複数の外部機器からより適切な外部機器を選択することが好ましい。
【０００５】
本願は、上記の課題に鑑み提案されたものであって、複数の外部機器を接続された場合に、電力を受電する上で適切な外部機器を選択し電力要求を送信できる情報処理装置、情報処理装置の制御方法、及びプログラムを提供することを目的とする。
【課題を解決するための手段】
【０００６】
本願に係る情報処理装置は、第１インタフェースと、第２インタフェースと、制御部と、を備え、前記制御部は、前記第１インタフェースに接続された第１外部機器の電源に係る第１電源情報を受け付ける第１受付処理と、前記第２インタフェースに接続された第２外部機器の電源に係る第２電源情報を受け付ける第２受付処理と、前記第１電源情報及び前記第２電源情報に基づき、前記第１外部機器及び前記第２外部機器のうち、電力要求を送信する外部機器を選択する選択処理と、前記選択処理の結果に基づき、選択した前記外部機器へ電力要求を送信する送信処理と、を実行する。
また、本願に開示の内容は、情報処理装置としての実施だけでなく、情報処理装置を制御する制御方法、情報処理装置を制御するコンピュータで実行するプログラムとしても実施し得るものである。
【発明の効果】
【０００７】
本願に係る情報処理装置置等によれば、受け付けた第１及び第２電源情報に基づいて、第１及び第２外部機器のうち、電力を要求すべき外部機器を選択する。これにより、電力を受電する上でより適切な外部機器を選択し電力要求を送信できる。
【図面の簡単な説明】
【０００８】
【図１】本実施形態に係るプリンタの電気的構成を示すブロック図である。
【図２】電力ソースを決定する制御の内容を示すフローチャートである。
【図３】選択処理の内容を示すフローチャートである。
【図４】選択処理の内容を示すフローチャートである。
【図５】接続形態の一例を示す図である。
【図６】接続形態の一例を示す図である。
【図７】接続形態の一例を示す図である。
【図８】履歴情報の内容を示す図である。
【図９】外部機器を後から接続される接続形態の一例を示す図である。
【図１０】外部機器を後から接続される接続形態の一例を示す図である。
【図１１】外部機器を後から接続される接続形態の一例を示す図である。
【発明を実施するための形態】
【０００９】
以下、本願の情報処理装置を具体化した一実施形態である携帯型のプリンタ１について図１を参照しつつ説明する。
【００１０】
（１．携帯型のプリンタの構成）
図１は、本実施形態の携帯型のプリンタ１の電気的構成を示している。プリンタ１は、例えば、持ち運び可能な携帯型の印刷装置であり、ＰＣやスマートフォン等との間で有線通信又は無線通信を介して受信した印刷ジョブの画像データを所定のシート（感熱紙など）に印刷する。プリンタ１は、ＣＰＵ１２、ＲＡＭ１３、ＲＯＭ１４、ＮＶＲＡＭ１５、画像形成部１６、ＵＳＢ接続部１９、ユーザインタフェース２０、通信部２４、電力コントローラ２５、電源部２７などを備えている。これらのＣＰＵ１２等は、バス１１で互いに接続されている。
【００１１】
ＲＯＭ１４は、例えば、フラッシュメモリなどの不揮発性メモリであり、制御プログラム４１などの各種プログラムを記憶している。例えば、ＣＰＵ１２は、ＲＯＭ１４から読み出した制御プログラム４１を実行して、プリンタ１のシステムを起動する。ＮＶＲＡＭ１５は、不揮発性のメモリである。ＮＶＲＡＭ１５は、履歴情報４３及び画像データ４５を記憶する。なお、上記したデータの記憶先は一例である。例えば、制御プログラム４１を、ＮＶＲＡＭ１５に記憶しても良い。また、履歴情報４３をＲＯＭ１４に記憶しても良い。また、制御プログラム４１を記憶する記憶部は、コンピュータが読み取り可能なストレージ媒体であってもよい。コンピュータが読み取り可能なストレージ媒体としては、上記の例の他に、ＣＤ−ＲＯＭ、ＤＶＤ−ＲＯＭ等の記録媒体を採用しても良い。
【００１２】
制御プログラム４１は、例えば、プリンタ１の各部を統括的に制御するファームウェアである。ＣＰＵ１２は、制御プログラム４１を実行し、実行した処理結果をＲＡＭ１３に一時的に記憶させながら、バス１１で接続された各部を制御する。履歴情報４３は、後述するように、ＵＳＢ接続部１９に対する外部機器の切断回数を記憶した情報である（図８参照）。画像データ４５は、例えば、ＰＣやスマートフォン等との間で有線通信又は無線通信を介して受信した印刷ジョブの画像データである。
【００１３】
画像形成部１６は、例えば、ライン型のサーマルヘッド４７を備え、ＣＰＵ１２の制御に基づいて、ダイレクトサーマル方式によりシートに画像を印刷する。画像形成部１６は、サーマルヘッド４７に対向して設けられたプラテンローラ４８を回転させシートを搬送する。例えば、印刷を開始する際に、プリンタ１の挿入口にシートが挿入されると、挿入されたシートは、プラテンローラ４８とサーマルヘッド４７との対向部分に案内され、印刷完了後に排出口より排出される。
【００１４】
また、ＵＳＢ接続部１９は、例えば、ＵＳＢ  ＰＤ（ＵＳＢ Ｐｏｗｅｒ Ｄｅｌｉｖｅｒｙ）規格に準拠した通信や電力授受を行うインタフェースである。ＵＳＢ接続部１９は、例えば、コネクタとして３つのレセプタクル５１を備える。ＵＳＢ接続部１９は、レセプタクル５１に接続された様々な外部機器との間で、データ通信や電力授受を行う。接続される外部機器としては、例えば、スマートフォン、パーソナルコンピュータ、ノートパソコン、外付けハードディスク、ＵＳＢメモリ、カードリーダーなど、ＵＳＢ規格で接続可能な様々な機器を採用できる。
【００１５】
レセプタクル５１は、例えば、ＵＳＢ  Ｔｙｐｅ−Ｃ規格に準拠したコネクタである。各レセプタクル５１は、データ通信や電力授受を行うための複数のピンを備える。例えば、レセプタクル５１は、複数のピンとして、ＵＳＢ  Ｔｙｐｅ−Ｃ規格のコネクタにおけるＴＸピン、ＲＸピン、Ｄピン、Ｖｂｕｓ、ＣＣピン、グランドピンなどを備える。なお、ピンとは、信号線とも言い得る。レセプタクル５１は、例えば、ＴＸピン、ＲＸピン、Ｄピンのいずれかを用いてデータ通信を行う。Ｄピンとは、例えば、Ｄａｔａピンであり、Ｄ＋／Ｄ−を指す。また、レセプタクル５１は、Ｖｂｕｓピンを用いて電力の供給、電力の受電を行う。
【００１６】
また、ＣＣピンは、例えば、電力ロールを決定するために用いられるピンであり、レセプタクル５１に接続するプラグの表裏に対応してＣＣ１ピン、ＣＣ２ピンを備えている。各レセプタクル５１は、電力を供給する電力ロールである電力ソース、又は電力を受電する電力ロールである電力シンクに切り替え可能なデュアル・ロール・パワー（ＤＲＰ）機能を有している。
【００１７】
電力コントローラ２５は、ＵＳＢ接続部１９を介した電力の授受及びデータの送受信を制御する。電力コントローラ２５は、各レセプタクル５１に外部機器を接続された際のＣＣピンの接続状態に基づいて電力ロールを決定し、電力授受のネゴシエーションを実行する。ここでいうネゴシエーションとは、例えば、電力ソース又は電力シンクの設定、授受する電力量の設定などを行う処理である。具体的には、ＣＣピンのＣＣ１ピン及びＣＣ２ピンは、レセプタクル５１に接続するＵＳＢケーブルのプラグの表裏に応じて、一方がコンフィグレーションチャンネル（ＣＣ）として用いられ、他方がＶＣＯＮＮの伝送に用いられる。ＣＣ１ピン及びＣＣ２ピンは、スイッチを介してプルアップ抵抗（電源）と、プルダウン抵抗（グランド）とに接続されている。ＣＣ１ピン及びＣＣ２ピンは、スイッチの切り替えによって、電源に接続されるプルアップ状態と、グランドに接続されるプルダウン状態とに切り替えられる。
【００１８】
電力コントローラ２５は、例えば、レセプタクル５１へ外部機器を接続された際に、ＣＣピン（ＣＣ１，ＣＣ２のうちＣＣとして機能するピン）の電位がプルアップ状態の電位であることを検出すると、そのレセプタクル５１を電力ソースとして機能させる。電力コントローラ２５は、レセプタクル５１のＶｂｕｓピンを介した電力の供給について、供給する電力量の設定などのネゴシエーションを実行する。同様に、電力コントローラ２５は、レセプタクル５１へ外部機器を接続された際に、ＣＣピンの電位がプルダウン状態の電位であることを検出すると、そのレセプタクル５１を電力シンクとして機能させる。電力コントローラ２５は、レセプタクル５１を介した電力の受電についてネゴシエーションを実行する。
【００１９】
上記したように、レセプタクル５１は、スイッチを周期的に切り替えることよって、各レセプタクル５１を電力ホスト及び電力シンクのいずれにも機能させることができる。また、電力コントローラ２５は、接続された際のＣＣピンの電位に基づいて電力ロールを決定する。このため、本実施形態のプリンタ１において、外部機器を接続された初期状態では、各レセプタクル５１の電力ロールがランダムで決定される。
【００２０】
また、図１に示すように、電力コントローラ２５は、メモリ２６を備えている。メモリ２６には、プログラムＰＧが記憶されている。電力コントローラ２５は、ＣＰＵなどの処理回路を備え、処理回路でプログラムＰＧを実行することで、電源部２７の制御等を実行する。メモリ２６は、例えば、ＲＡＭ、ＲＯＭ、フラッシュメモリなどが組み合わされて構成されている。
【００２１】
電源部２７は、プリンタ１内の各装置の電源として機能し、各装置へ電力を供給する。電源部２７は、例えば、電源コード２８、ＡＣ／ＤＣ回路２９、ＤＣ／ＤＣ回路３０、バッテリ３１などを備えている。ＡＣ／ＤＣ回路２９は、電源コード２８を介してＡＣ電源から受電した交流電圧を直流電圧に変換する。ＤＣ／ＤＣ回路３０は、ＡＣ／ＤＣ回路２９やバッテリ３１から供給される直流電圧を所望の電圧値の直流電圧に変圧し、プリンタ１内の各装置へ電力を供給可能となっている。従って、プリンタ１は、ＡＣ電源を接続されていない場合でも、バッテリ３１によって駆動可能となっている。また、電源部２７は、ＡＣ／ＤＣ回路２９で生成した電力や、ＵＳＢ接続部１９を介して外部機器から受電した電力によりバッテリ３１を充電可能となっている。また、電源部２７は、ＵＳＢ接続部１９を介して外部機器へ電力を供給する。
【００２２】
電源部２７は、例えば、電力コントローラ２５の制御に基づいて、ＡＣ／ＤＣ回路２９、ＤＣ／ＤＣ回路３０、バッテリ３１等を接続する電源経路を切り替え可能となっている。電力コントローラ２５は、電源部２７を制御して、プリンタ１内の各装置へ電力を供給する電源装置、バッテリ３１へ充電電力を供給する電源装置、ＵＳＢ接続部１９を介して外部機器へ電力を供給する電源装置を切り替える。なお、電源部２７を制御する主体は、電力コントローラ２５に限らず、ＣＰＵ１２でも良い。
【００２３】
ユーザインタフェース２０は、例えば、タッチパネルであり、液晶パネル、液晶パネルの背面側から光を照射するＬＥＤ等の光源、液晶パネルの表面に貼り合わされた接触感知膜等を備えている。ユーザインタフェース２０は、プリンタ１に対する操作を受け付け、操作入力に応じた信号をＣＰＵ１２へ出力する。また、ユーザインタフェース２０は、プリンタ１に係わる情報の表示を行う。ユーザインタフェース２０は、ＣＰＵ１２の制御に基づいて液晶パネルの表示内容を変更する。
【００２４】
通信部２４は、有線通信や無線通信が可能となっている。プリンタ１は、通信部２４により有線ＬＡＮや無線通信を介して印刷ジョブを受け付ける。ＣＰＵ１２は、通信部２４を制御し、有線通信や無線通信を介して印刷ジョブ（画像データ４５など）を受信する。また、プリンタ１は、ＵＳＢ接続部１９のデータ通信により印刷ジョブを受信することができる。ＣＰＵ１２は、受信した印刷ジョブに基づいて画像形成部１６による印刷を実行する。
【００２５】
（２．電力ソースを決定する制御）
次に、本実施形態のプリンタ１による電力ソースを決定する制御について、図２〜図４を参照しつつ、説明する。ＣＰＵ１２は、例えば、プリンタ１の電源を投入されると、ＲＯＭ１４に記憶された制御プログラム４１を実行し、プリンタ１のシステムを起動した後、図２〜図４に示す電力ソースを決定する制御を開始する。なお、以下の説明では、制御プログラム４１を実行するＣＰＵ１２のことを、単にＣＰＵ１２として記載する場合がある。例えば、「ＣＰＵ１２が」という記載は、「制御プログラム４１を実行するＣＰＵ１２が」ということを意味する場合がある。また、本明細書のフローチャートは、基本的に、プログラムに記述された命令に従ったＣＰＵ１２の処理を示す。即ち、以下の説明における「判断」、「設定」、「開始」等の処理は、ＣＰＵ１２の処理を表している。ＣＰＵ１２による処理は、ハードウェア制御も含む。また、図２〜図４に示す制御を、ＣＰＵ１２以外の装置が実行しても良い。例えば、電力コントローラ２５が、プログラムＰＧを実行することで、図２〜図４に示す制御を実行しても良い。
【００２６】
ここで、プリンタ１は、上記したように、ＵＳＢ接続部１９に接続された外部機器から電力を受電することができる。このため、プリンタ１は、電力を供給可能な複数の外部機器を接続された場合、複数の外部機器の中から、電力ソースとして適した外部機器を設定し、その外部機器との間で電力を受電するネゴシエーションを実行することが好ましい。これに対し、本実施形態のＣＰＵ１２は、図２〜図４に示す制御を実行することで、複数の外部機器の中から、電力ソースとして適切な外部機器を設定しネゴシエーションを実行する。
【００２７】
以下の説明では、一例として、図５に示すように、第１外部機器６１と、第２外部機器６２との２台の外部機器を接続された場合を説明する。図５に示すように、第１外部機器６１は、ＡＣ電源に接続されている。第１外部機器６１は、例えば、パーソナルコンピュータである。また、第２外部機器６２は、ＡＣ電源に接続されていないが、バッテリ６２Ａを備えている。第２外部機器６２は、例えば、携帯端末である。なお、以下の説明では、第１及び第２外部機器６１，６２を含む外部機器を総称して説明する場合には、外部機器と記載する。
【００２８】
まず、図２のステップ（以下、単に「Ｓ」と記載する）１１において、プリンタ１のＣＰＵ１２は、ＵＳＢ接続部１９のレセプタクル５１に対する外部機器の新たな接続を検出したか否かを判断する。ＣＰＵ１２は、新たな接続を検出するまでの間（Ｓ１１：ＮＯ）、Ｓ１１の判断処理を繰り返し実行する。例えば、図５に示す第１外部機器６１と第２外部機器６２とが接続された状態でプリンタ１の電源を投入されたとする。ＣＰＵ１２は、起動時から接続された状態の第１及び第２外部機器６１，６２の接続を、新たな接続として検出する。即ち、ＣＰＵ１２は、２つの外部機器の接続を新たな接続として検出する。ＣＰＵ１２は、レセプタクル５１に対する外部機器の新たな接続を検出したと判断し（Ｓ１１：ＹＥＳ）、Ｓ１３を実行する。なお、１つの外部機器を接続された状態で、後から別の外部機器が接続された場合については後述する（図９〜図１１参照）。
【００２９】
Ｓ１３において、ＣＰＵ１２は、接続を検出した外部機器から電力情報を受け付ける。この電力情報は、外部機器の電源の情報であって、後述する選択処理（Ｓ１５）において必要となる情報である。例えば、ＣＰＵ１２は、ＵＳＢ  ＰＤ規格で規定されたＧｅｔ＿Ｓｏｕｒｃｅ＿Ｃａｐメッセージを第１及び第２外部機器６１，６２の各々へ送信する。第１及び第２外部機器６１，６２の各々は、Ｇｅｔ＿Ｓｏｕｒｃｅ＿Ｃａｐメッセージを受信すると、電源情報を示すＳｏｕｒｃｅ＿Ｃａｐａｂｉｌｉｔｉｅｓメッセージを返信する。
【００３０】
Ｓｏｕｒｃｅ＿Ｃａｐａｂｉｌｉｔｉｅｓメッセージには、例えば、電力リストを示す電源情報が含まれている。ここでいう電力リストとは、外部機器が電力ソースとして供給可能な電圧値と電流値の組み合わせを示す情報である。例えば、ＵＳＢ  ＰＤ規格に準じた方式の電力授受では、２．５Ｗ（５Ｖ、０．５Ａ）〜１００Ｗ（２０Ｖ、５Ａ）までの電力量の範囲で、電力ソースから電力を供給できる。電力リストは、この電力量の範囲内のうち、第１及び第２外部機器６１，６２の各々が供給可能な電圧値及び電流値の組み合わせを示す情報である。
【００３１】
また、Ｓｏｕｒｃｅ＿Ｃａｐａｂｉｌｉｔｉｅｓメッセージには、例えば、外部機器がＡＣ電源などの外部電源に接続されているか否かの電源情報が含まれている。ここでいう外部電源とは、例えば、ＡＣ電源などの外部からプリンタ１へ電力を供給する装置である。また、後述する図６に示すように、ＡＣ電源と直接接続されていない場合であっても、間接的に外部電源に接続されている外部機器は、Ｓｏｕｒｃｅ＿Ｃａｐａｂｉｌｉｔｉｅｓメッセージの電源情報として、外部電源に接続されていることを示す情報を返信する。また、Ｓｏｕｒｃｅ＿Ｃａｐａｂｉｌｉｔｉｅｓメッセージには、例えば、外部機器がバッテリなどの内部電源を有しているか否かの電源情報が含まれている。
【００３２】
なお、電力情報を受け付ける方法は、Ｇｅｔ＿Ｓｏｕｒｃｅ＿Ｃａｐメッセージ（Ｓｏｕｒｃｅ＿Ｃａｐａｂｉｌｉｔｉｅｓメッセージ）を送受信する方法に限らない。他のメッセージ、例えば、Ｓｏｕｒｃｅ＿Ｃａｐａｂｉｌｉｔｉｅｓ＿ＥｘｔｅｎｄｅｄメッセージやＳｔａｔｕｓメッセージなどにより電源情報を受け付けても良い。あるいは、ＵＳＢ  ＰＤ規格に準じた通信以外、例えば、外部機器側で動作するプリンタドライバとの通信により電源情報を受け付けても良い。また、上記したように、本実施形態のプリンタ１は、外部機器を接続された初期状態では、各レセプタクル５１の電力ロールがランダムで決定される。このため、電力情報を受け付けるメッセージを受信するために、電力シンクとなる必要がる場合、ＣＰＵ１２は、電源情報を受け付ける処理を開始する前に、外部電源との間で電力ロールを切り替えるロールスワップを実行しても良い。例えば、ＣＰＵ１２は、自身装置が電力ソースに設定された場合、外部電源へスワップ要求を送信し、自装置と外部電源との電力ロールを入れ替えても良い。
【００３３】
ＣＰＵ１２は、Ｓ１３で電源情報を受け付けると、Ｓ１５の選択処理を実行する。ＣＰＵ１２は、選択処理において、Ｓ１３で受け付けた電源情報に基づいて、第１及び第２外部機器６１，６２のうち、電力要求を送信する送信先、即ち、電力を受電するためのネゴシエーションを実行する外部機器を設定する。図３及び図４は、選択処理の内容を示している。ＣＰＵ１２は、選択処理を開始すると、まず、図３のＳ４１において、Ｓ１３で受け付けた第１及び第２外部機器６１，６２の各々の電力リストが、自装置の要求する電力の組み合わせの条件に適合するか否かを判断する。プリンタ１は、外部機器から受電した電力を、電源部２７により変圧等して自装置の電力として利用する。このため、外部機器から受電する電力（電圧値や電流値）は、自装置の電源部２７で使用可能な大きさである必要がある。ＣＰＵ１２は、Ｓ４１において、第１外部機器６１の電力リスト内に、自装置が使用可能な電圧値及び電流値の組み合わせがあるか否かを判断する。また、ＣＰＵ１２は、Ｓ４１において、第２外部機器６２の電力リスト内に、自装置が使用可能な電圧値及び電流値の組み合わせがあるか否かを判断する。
【００３４】
ＣＰＵ１２は、例えば、第１及び第２外部機器６１，６２の両方の電力リストに、使用可能な電圧値及び電流値の組み合わせがある場合、Ｓ４１において肯定判断し（Ｓ４１：ＹＥＳ）、Ｓ４３を実行する。一方、ＣＰＵ１２は、第１及び第２外部機器６１，６２のうち、少なくとも一方の電力リストに、使用可能な電圧値及び電流値の組み合わせがないと判断すると（Ｓ４１：ＮＯ）、Ｓ４５を実行する。
【００３５】
Ｓ４５において、ＣＰＵ１２は、第１及び第２外部機器６１，６２のうち、電力リストが条件に適合する方の外部機器を、ネゴシエーションを実行する外部機器として設定する。これにより、仮に、２つの外部機器の一方が使用可能な電圧値や電流値を供給できない場合、供給可能な外部機器をネゴシエーション先として設定できる。また、Ｓ４５において、ＣＰＵ１２は、第１及び第２外部機器６１，６２の両方とも電力リストが条件に適合しない場合、ネゴシエーション先の外部機器として、該当するものがないと判断する。ＣＰＵ１２は、Ｓ４５を実行すると、図３及び図４に示す選択処理を終了する。
【００３６】
また、Ｓ４３において、ＣＰＵ１２は、Ｓ１３で受け付けた電力情報に基づいて、第１及び第２外部機器６１，６２の両方が外部電源に接続されているか否かを判断する。ＣＰＵ１２は、第１及び第２外部機器６１，６２の両方が外部電源に接続されていると判断すると（Ｓ４３：ＹＥＳ）、図４のＳ５７を実行する。また、ＣＰＵ１２は、第１及び第２外部機器６１，６２のうち、少なくとも一方が外部電源に接続されていないと判断すると（Ｓ４３：ＮＯ）、Ｓ４７を実行する。
【００３７】
Ｓ４７において、ＣＰＵ１２は、第１及び第２外部機器６１，６２の両方が外部電源に接続されていないか否かを判断する。即ち、ＣＰＵ１２は、２つの外部機器が両方とも外部電源に接続されていないか判断する。ＣＰＵ１２は、第１及び第２外部機器６１，６２の両方が外部電源に接続されていないと判断すると（Ｓ４７：ＹＥＳ）、Ｓ４８を実行する。また、ＣＰＵ１２は、第１及び第２外部機器６１，６２のうち、一方が外部電源に接続されていない、換言すれば一方が外部電源に接続されていると判断すると（Ｓ４７：ＮＯ）、Ｓ４９を実行する。Ｓ４９において、ＣＰＵ１２は、第１及び第２外部機器６１，６２のうち、外部電源に接続されている方の外部機器を、ネゴシエーション先として設定する。これにより、外部電源に接続され電力供給が安定している外部機器を、ネゴシエーション先として設定できる。図５に示す例では、第１外部機器６１のみがＡＣ電源（外部電源）に接続されている。この場合、ＣＰＵ１２は、Ｓ４７で否定判断し、Ｓ４９において、第１外部機器６１をネゴシエーション先として設定する。ＣＰＵ１２は、Ｓ４９を実行すると、選択処理を終了する。
【００３８】
また、Ｓ４８において、ＣＰＵ１２は、第１及び第２外部機器６１，６２の両方がバッテリを有していないか否かを判断する。ＣＰＵ１２は、第１及び第２外部機器６１，６２の両方がバッテリを有していないと判断すると（Ｓ４８：ＹＥＳ）、ネゴシエーション先の外部機器として、該当するものがないと判断し（Ｓ５０）、選択処理を終了する。従って、ＣＰＵ１２は、第１及び第２外部機器６１，６２の両方が、外部電源と接続されておらず、且つバッテリを有していない場合、ネゴシエーション先を設定しない。
【００３９】
また、ＣＰＵ１２は、第１及び第２外部機器６１，６２のうち、少なくとも一方がバッテリを有していると判断すると（Ｓ４８：ＮＯ）、Ｓ５１を実行する。Ｓ５１において、ＣＰＵ１２は、第１及び第２外部機器６１，６２の両方がバッテリを有しているか否かを判断する。ＣＰＵ１２は、第１及び第２外部機器６１，６２の両方がバッテリを有していると判断すると（Ｓ５１：ＹＥＳ）、Ｓ５２を実行する。また、ＣＰＵ１２は、第１及び第２外部機器６１，６２のうち、一方がバッテリを有していると判断すると（Ｓ５１：ＮＯ）、Ｓ５３を実行する。
【００４０】
Ｓ５３において、ＣＰＵ１２は、第１及び第２外部機器６１，６２のうち、バッテリを有している外部機器を、ネゴシエーション先に設定する。これにより、仮に、２つの外部機器うち、一方の外部機器が外部電源に接続されておらず、且つバッテリも有していない場合、外部電源には接続されていないもののバッテリを有する他方の外部機器をネゴシエーション先に設定できる。ＣＰＵ１２は、Ｓ５３を実行すると、選択処理を終了する。
【００４１】
また、Ｓ５２を実行する場合、第１及び第２外部機器６１，６２の両方がバッテリを有している場合となる。ＣＰＵ１２は、第１外部機器６１のバッテリの残量が、第２外部機器６２のバッテリの残量より多いか否を判断する（Ｓ５２）。ＣＰＵ１２は、例えば、Ｇｅｔ＿Ｂａｔｔｅｒｙ＿Ｓｔａｔｕｓメッセージを第１及び第２外部機器６１，６２の両方に送信し、Ｂａｔｔｅｒｙ＿Ｓｔａｔｕｓメッセージを受信することで、第１及び第２外部機器６１，６２の各々のバッテリ残量を検出できる。
【００４２】
ＣＰＵ１２は、第１外部機器６１のバッテリ残量が、第２外部機器６２のバッテリ残量に比べて多いと判断すると（Ｓ５２：ＹＥＳ）、第１外部機器６１をネゴシエーション先に設定する（Ｓ５４）。また、ＣＰＵ１２は、Ｓ５２で否定判断した場合（Ｓ５２：ＮＯ）、第２外部機器６２をネゴシエーションに設定する（Ｓ５５）。従って、ＣＰＵ１２は、バッテリ残量のより多い外部機器をネゴシエーション先に設定する。これにより、より安定した電力供給を行える外部機器をネゴシエーション先に設定できる。ＣＰＵ１２は、Ｓ５４又はＳ５５を実行すると、選択処理を終了する。
【００４３】
なお、ＣＰＵ１２は、バッテリ残量以外の条件でネゴシエーション先を設定しても良い。例えば、ＣＰＵ１２は、第１及び第２外部機器６１，６２の両方が外部電源と接続されていない場合、第１及び第２外部機器６１，６２のうち、レセプタクル５１に対する接続を先に検出した外部機器を、ネゴシエーション先に設定しても良い。あるいは、ＣＰＵ１２は、後述するＳ５８（図４参照）のように切断回数のより少ない外部機器をネゴシエーション先に設定しても良い。
【００４４】
次に、図４のＳ５７において、ＣＰＵ１２は、第１及び第２外部機器６１，６２の両方の情報が履歴情報４３に記憶されているか否かを判断する。図８は、履歴情報４３の内容を示している。図８に示すように、履歴情報４３には、ベンダーＩＤ、プロダクトＩＤ、ＵＳＢ接続の切断回数、外部電源の切断回数が関連付けて記憶されている。例えば、ＣＰＵ１２は、レセプタクル５１に新たな外部機器が接続されると、プラグアンドプレイ（ＰｎＰ）機能により、新たに接続された外部機器に対してデバイス情報を要求する。このデバイス情報には、外部機器の製造元のベンダーＩＤ、プロダクトＩＤなどの情報が含まれる。ＣＰＵ１２は、受け付けたベンダーＩＤ及びプロダクトＩＤを履歴情報４３に記憶する。また、ＣＰＵ１２は、レセプタクル５１から外部機器が切断されたことを検出すると、その外部機器のベンダーＩＤ及びプロダクトＩＤに対応するＵＳＢ接続の切断回数を、１つ増加させる。これにより、ＣＰＵ１２は、各外部機器におけるＵＳＢ接続の切断回数を履歴情報４３に記憶できる。
【００４５】
なお、ＣＰＵ１２は、プリンタ１の電源を切られた場合や、ＵＳＢ接続部１９の接続を切断するモードへ移行した場合など、プリンタ１の状態変化によって外部機器との接続を切断する場合、ＵＳＢ接続の切断が発生しても切断回数を増加させないことが好ましい。このような切断は、外部機器からの要求等に応じて切断を実行するのではなく、プリンタ１側の都合で切断を実行するため、外部機器の電力供給の安定度を適切に判断する上で、切断回数に含めないことが好ましい。また、ＣＰＵ１２は、所定期間ごとに履歴情報４３の情報を初期化しても良い。この所定期間は、ユーザ等からの操作入力に基づいて変更しても良い。
【００４６】
また、ＵＳＢ  ＰＤ規格では、外部機器から外部電源が切断された場合に、その外部機器に対して、外部電源が切断されたことを示す情報を、通信先へ送信させることができる。このため、ＣＰＵ１２は、この外部電源を切断された情報を外部機器から受信した場合に、該当する外部機器のプロダクトＩＤ等に対応付けられた外部電源の切断回数を増加させることで、その外部機器における外部電源の切断回数を履歴情報４３に記憶できる。なお、外部電源の切断回数の監視方法は、上記した切断を示す情報を受信する方法に限らない。例えば、ＣＰＵ１２は、接続中の外部機器の電源情報を定期的に受け付け、受け付けた電源情報に基づいて外部電源の切断を検出した場合、履歴情報４３の外部電源の切断回数を増加させても良い。
【００４７】
ＣＰＵ１２は、図４のＳ５７において、第１及び第２外部機器６１，６２の両方の情報が履歴情報４３に記憶されていると判断すると（Ｓ５７：ＹＥＳ）、Ｓ５８を実行する。即ち、第１及び第２外部機器６１，６２の両方が過去に一度接続されその後切断されたことがあり、履歴情報４３が残っている場合、ＣＰＵ１２は、Ｓ５８を実行する。Ｓ５８において、履歴情報４３に基づいて切断回数を判断し、切断回数の少ない外部機器をネゴシエーション先として設定する。ＣＰＵ１２は、例えば、ＵＳＢ接続の切断回数と外部電源の切断回数とを加算した合計の切断回数が少ない外部機器を、ネゴシエーション先に設定する。図８に示す例では、ベンダーＩＤ「０００３」の外部機器の切断回数（１１回＝５＋６）が、ベンダーＩＤ「０００１」の外部機器の切断回数（１３回＝１０＋３）に比べて少ない。このため、ＣＰＵ１２は、切断回数の少ないベンダーＩＤ「０００３」の外部機器をネゴシエーション先に設定する。なお、ＣＰＵ１２は、ＵＳＢ接続の切断回数及び外部電源の切断回数のうち、どちらか一方の情報に基づいてネゴシエーション先を設定しても良い。
【００４８】
ここで、切断回数が少ない外部機器は、プリンタ１との接続状態、あるいは外部電源との接続状態がより安定している。このため、ＣＰＵ１２は、切断回数のより少ない外部機器をネゴシエーション先として設定することで、電力供給の安定した外部機器をネゴシエーション先として設定できる。ＣＰＵ１２は、Ｓ５８を実行した後、選択処理を終了する。
【００４９】
また、ＣＰＵ１２は、Ｓ５７において、第１及び第２外部機器６１，６２のうち、少なくとも一方の情報が履歴情報４３に記憶されていないと判断すると（Ｓ５７：ＮＯ）、Ｓ６１を実行する。例えば、第１及び第２外部機器６１，６２の一方が過去に接続されたことがない場合、ＣＰＵ１２は、Ｓ６１を実行する。Ｓ６１において、ＣＰＵ１２は、第１及び第２外部機器６１，６２の両方がバッテリを有しているか否かを判断する。ＣＰＵ１２は、第１及び第２外部機器６１，６２の両方がバッテリを有していると判断すると（Ｓ６１：ＹＥＳ）、Ｓ６３を実行する。
【００５０】
ＣＰＵ１２は、Ｓ６３において、図３のＳ５２と同様に、第１外部機器６１のバッテリの残量が、第２外部機器６２のバッテリの残量より多いか否を判断する。ＣＰＵ１２は、Ｓ６３で肯定判断した場合（Ｓ６３：ＹＥＳ）、第１外部機器６１をネゴシエーション先として設定し（Ｓ６４）、Ｓ６３で否定判断した場合（Ｓ６３：ＮＯ）、第２外部機器６２をネゴシエーション先として設定する（Ｓ６５）。即ち、ＣＰＵ１２は、バッテリ残量の多い外部機器を、ネゴシエーション先に設定する。ＣＰＵ１２は、Ｓ６４又はＳ６５を実行すると、選択処理を終了する。なお、Ｓ６３の判断基準は、図３のＳ５２と同様にバッテリ残量に限らない。例えば、ＣＰＵ１２は、ＵＳＢ接続部１９に対する接続を先に検出した外部機器や、あるいは切断回数のより少ない外部機器を、ネゴシエーション先に設定しても良い。
【００５１】
また、ＣＰＵ１２は、第１及び第２外部機器６１，６２のうち、少なくとも一方がバッテリを有していないと判断すると（Ｓ６１：ＮＯ）、Ｓ６７を実行する。ＣＰＵ１２は、バッテリを有している外部機器を、ネゴシエーション先として設定する（Ｓ６７）。また、ＣＰＵ１２は、第１及び第２外部機器６１，６２の両方がバッテリを有していない場合、所定条件に基づきネゴシエーション先の外部機器を設定する。ＣＰＵ１２は、所定条件として、例えば、先に接続を検出した外部機器を、ネゴシエーション先として設定しても良い（Ｓ６７）。ＣＰＵ１２は、Ｓ６７を実行すると、選択処理を終了する。
【００５２】
図２に示すように、ＣＰＵ１２は、Ｓ１５の選択処理を終了すると、Ｓ１７以降の処理を実行し、Ｓ１５で設定したネゴシエーション先の外部機器へネゴシエーションを実行する。Ｓ１７において、ＣＰＵ１２は、Ｓ１５の選択処理でネゴシエーション先として第１外部機器６１を設定したか否かを判断する。ＣＰＵ１２は、第１外部機器６１を設定したと判断すると（Ｓ１７：ＹＥＳ）、Ｓ１９を実行し、第１外部機器６１を設定していないと判断すると（Ｓ１７：ＮＯ）、Ｓ２９を実行する。
【００５３】
ＣＰＵ１２は、Ｓ１９において、Ｓ１３の処理を実行した後にＳ１９の処理を実行するのが１回目であるか否かを判断する。また、ＣＰＵ１２は、Ｓ１９において、ネゴシエーション先の第１外部機器６１が新たなネゴシエーション先（電力要求先）であるか否かを判断する。上記したように、図５に示す例は、プリンタ１の電源投入時に第１及び第２外部機器６１，６２の両方が接続されている場合である。しかしながら、プリンタ１は、例えば、第１外部機器６１を先に接続され、第２外部機器６２を後から接続される可能性もある。この場合、プリンタ１は、先に接続された第１外部機器６１から電力を受電している可能性がある。即ち、第１外部機器６１は、ネゴシエーションが完了しており、ネゴシエーションを実行する新たな外部機器に該当しない可能性がある。この場合、ＣＰＵ１２は、Ｓ１９において、第１外部機器６１が新たなネゴシエーション先でないと判断する（Ｓ１９：ＮＯ）。なお、外部機器を後から接続される例についは、図９〜図１１を用いて後述する。
【００５４】
ＣＰＵ１２は、Ｓ１９において、１回目の実行であり、且つ第１外部機器６１が新たなネゴシエーションの要求先であると判断した場合（Ｓ１９：ＹＥＳ）、第１外部機器６１へ電力を要求するネゴシエーションを開始する（Ｓ２１）。ＣＰＵ１２は、電力コントローラ２５を制御して、必要な電圧値及び電流値の電力を要求する電力要求を、第１外部機器６１へ送信する。この電圧値及び電流値は、図３のＳ４１で適合性が判断された組み合わせである。なお、電力要求を送信する際にプリンタ１側が電力ソースとして設定されていた場合、ＣＰＵ１２は、第１外部機器６１との間で電力ロールを切り替えるロールスワップを実行し、自装置を電力シンクにしてから電力要求を送信する。
【００５５】
次に、ＣＰＵ１２は、Ｓ２３において、Ｓ２１で開始した第１外部機器６１とのネゴシエーションに成功したか否かを判断する。ＣＰＵ１２は、ネゴシエーションに成功したと判断すると（Ｓ２３：ＹＥＳ）、第１外部機器６１から必要な電力の受電を開始する（Ｓ２５）。これにより、外部電源に接続されるなどして電力供給が安定した外部機器から電力を受電することができる。ＣＰＵ１２は、Ｓ２５を実行した後、Ｓ１１からの処理を再度実行する。これにより、新たな外部機器の接続を検出するごとに、適切なネゴシエーション先を設定し、電力要求を送信できる。
【００５６】
また、ＣＰＵ１２は、要求した電力が第１外部機器６１から供給されない場合や、第１外部機器６１が電力ソースとなるロールスワップに応じない場合など、ネゴシエーションに失敗したと判断し（Ｓ２３：ＮＯ）、Ｓ３１を実行する。これにより、ＣＰＵ１２は、第１外部機器６１とのネゴシエーションに失敗した場合に、他の外部機器である第２外部機器６２とのネゴシエーションを実行できる。
【００５７】
また、ＣＰＵ１２は、Ｓ２９において、Ｓ１５の選択処理でネゴシエーション先として第２外部機器６２を設定したか否かを判断する。ＣＰＵ１２は、第２外部機器６２を設定したと判断すると（Ｓ２９：ＹＥＳ）、Ｓ３１を実行する。また、ＣＰＵ１２は、第２外部機器６２を設定していない、即ち、ネゴシエーション先として該当なしと設定した場合（Ｓ２９：ＮＯ）、Ｓ１３からの処理を再度実行する。これにより、ＣＰＵ１２は、電力ソースとして適切な外部機器が存在しない場合、Ｓ１３からの処理を再度実行する。そして、例えば、第１及び第２外部機器６１，６２の電源構成が変更され電源情報が更新された場合、変更された外部機器とネゴシエーションを実行できる。例えば、外部機器が後から外部電源に接続された場合など、図３及び図４の選択処理の条件を満たす外部機器が現れた場合に、その外部機器とネゴシエーションを実行することができる。
【００５８】
また、Ｓ３１において、ＣＰＵ１２は、Ｓ１９と同様に、Ｓ１３の処理を実行した後にＳ３１の処理を実行するのが１回目であり、且つ第２外部機器６２が新たなネゴシエーション先である（既にネゴシエーション済みでない）か否かを判断する。ＣＰＵ１２は、Ｓ３１において、１回目の実行であり、且つ第２外部機器６２が新たなネゴシエーション先であると判断した場合（Ｓ３１：ＹＥＳ）、Ｓ２１〜Ｓ２５と同様に、第２外部機器６２へ電力要求を送信し（Ｓ３３）、ネゴシエーションに成功すると（Ｓ３５：ＹＥＳ）、第２外部機器６２から電力を受電する（Ｓ３７）。これにより、より適切な外部機器から電力を受電することができる。
【００５９】
また、ＣＰＵ１２は、第２外部機器６２とのネゴシエーションに失敗した場合（Ｓ３５：ＮＯ）、Ｓ１９を実行し、第１外部機器６１とのネゴシエーションを実行する。一方で、Ｓ１９で否定判断した場合（Ｓ１９：ＮＯ）やＳ３１で否定判断した場合（Ｓ３１：ＮＯ）、ＣＰＵ１２は、Ｓ１３からの処理を再度実行する。この場合は、ＣＰＵ１２は、第１及び第２外部機器６１，６２の両方とネゴシエーションに失敗した状態となる。この場合、ＣＰＵ１２は、Ｓ１３からの処理を再度実行することで、第１及び第２外部機器６１，６２の電源構成が変更され電源情報が更新された場合に、変更された外部機器とネゴシエーションを実行できる。このようにして本実施形態のＣＰＵ１２は、電源情報に基づいて適切なネゴシエーション先を設定し、電力を要求できる。
【００６０】
なお、ＣＰＵ１２は、再度Ｓ１３を実行した場合、Ｓ１９とＳ３１を実行した回数をゼロにリセットする。これにより、ＣＰＵ１２は、第１及び第２外部機器６１，６２へのネゴシエーションを再度実行する。また、ＣＰＵ１２は、Ｓ１３以降の処理を所定回数以上繰り返した場合、即ち、電源情報に基づいて何度も選択処理（Ｓ１５）等を実行した場合、図２〜図４に示す制御を一旦終了し、Ｓ１１から改めて実行しても良い。これにより、ＣＰＵ１２は、新たに接続された外部機器に対する判断処理等を実行できる。
【００６１】
次に、図５〜図７の各接続構成の場合に、ＣＰＵ１２がどのようなネゴシエーションを実行するのかを説明する。図５に示す場合では、上記したように、ＣＰＵ１２は、第１外部機器６１のみが外部電源（ＡＣ電源）に接続されていると判断し（Ｓ４７：ＮＯ）、第１外部機器６１とのネゴシエーションを実行する。この場合、ＣＰＵ１２は、バッテリ６２Ａを有する第２外部機器６２よりも、ＡＣ電源に接続された第１外部機器６１とのネゴシエーションを優先する。
【００６２】
図６に示す例では、第１及び第２外部機器６１，６２の両方は、ＡＣ電源と直接接続されておらず、且つバッテリも有していない。しかし、第１外部機器６１は、ＡＣ電源に接続された第３外部機器６３と接続されており、第３外部機器６３からＵＳＢ  ＰＤ接続により電力を受電可能である。また、第２外部機器６２は、バッテリ６４Ａを有する第４外部機器６４と接続されており、第４外部機器６４からＵＳＢ  ＰＤ接続により電力を受電可能である。
【００６３】
第１外部機器６１は、自装置がＡＣ電源と直接接続されていない場合であっても、第３外部機器６３を介して外部電源と間接的に接続されている場合、外部電源に接続されていることを示す情報を設定したＳｏｕｒｃｅ＿Ｃａｐａｂｉｌｉｔｉｅｓメッセージを返信する。また、第２外部機器６２は、自装置がバッテリを有していない場合であっても、第４外部機器６４を介してバッテリ６４Ａと間接的に接続されている場合、バッテリを有することを示す情報を設定したＳｏｕｒｃｅ＿Ｃａｐａｂｉｌｉｔｉｅｓメッセージを返信する。従って、ＣＰＵ１２は、このような間接的に接続されている接続構成であっても、第１及び第２外部機器６１，６２から受け付けた電源情報に基づいて、図５の接続構成と同様に、ＡＣ電源に間接的に接続された第１外部機器６１をネゴシエーション先として設定できる。従って、本実施形態のＣＰＵ１２は、外部電源に直接接続された場合や、内部電源を内蔵している場合だけでなく、外部電源や内部電源と間接的に接続されている場合にも、ネゴシエーション先を適切に判断できる。
【００６４】
この間接的に接続される経路は、Ｇｅｔ＿Ｓｏｕｒｃｅ＿Ｃａｐメッセージを送信した送信元のプリンタ１を介さない経路である。従って、Ｓｏｕｒｃｅ＿Ｃａｐａｂｉｌｉｔｉｅｓメッセージは、Ｇｅｔ＿Ｓｏｕｒｃｅ＿Ｃａｐメッセージの送信元に対して自装置側に外部電源が存在するか、あるいは内部電源が存在するかを示す情報が設定される。このため、例えば、第２外部機器６２は、仮に、プリンタ１（送信元）、第１外部機器６１、第３外部機器６３を介してＡＣ電源に接続されていても、外部電源と接続されていないことを示すＳｏｕｒｃｅ＿Ｃａｐａｂｉｌｉｔｉｅｓメッセージを返信する。そして、ＣＰＵ１２は、間接的に電源に接続された場合でも、Ｓｏｕｒｃｅ＿Ｃａｐａｂｉｌｉｔｉｅｓメッセージに基づいて、適切な外部機器を選択できる。
【００６５】
また、図７に示す例では、第１外部機器６１は、ＡＣ電源に接続されている。第２外部機器６２は、ＡＣ電源に接続され、且つバッテリ６２Ａを有している。この場合、ＣＰＵ１２は、第１及び第２外部機器６１，６２の両方とも外部電源に接続されていると判断し（Ｓ４３：ＹＥＳ）、履歴情報４３の切断回数でネゴシエーション先を設定する（図４のＳ５８）。また、履歴情報４３に情報がない場合、ＣＰＵ１２は、バッテリ６２Ａを有する第２外部機器６２をネゴシエーション先として設定する（Ｓ６７）。これにより、２つの外部機器が両方とも外部電源に接続されている場合であっても、バッテリ６２Ａを備えより電力供給の安定している第２外部機器６２をネゴシエーション先として設定できる。
【００６６】
上記した説明では、一例として、プリンタ１の電源起動時に第１及び第２外部機器６１，６２の両方が接続され、両方の接続が検出された場合について説明した。しかしながら、第１及び第２外部機器６１，６２のうち、一方の外部機器が後から接続された場合、ＣＰＵ１２は、適切な外部機器とネゴシエーションを実行することができる。また、第１及び第２外部機器６１，６２の両方とも接続されているものの一方の外部機器に新たな接続があった場合にも、ＣＰＵ１２は、適切な外部機器とネゴシエーションを実行することができる。
【００６７】
図９は、ＡＣ電源に接続された第１外部機器６１から電力を受電しているプリンタ１へ、バッテリ６２Ａを有する第２外部機器６２を新たに接続した場合を示している。この場合、ＣＰＵ１２は、図２のＳ１１で肯定判断し、Ｓ１５でネゴシエーション先として、外部電源に接続された第１外部機器６１を設定する（Ｓ４９）。そして、ＣＰＵ１２は、Ｓ１９において、第１外部機器６１が新たなネゴシエーション先でないと判断し（Ｓ１９：ＮＯ）、Ｓ１３からの処理を実行する。これにより、ＣＰＵ１２は、後から外部機器を接続された場合でも、電源情報に基づいて適切なネゴシエーション先を設定できる。なお、ＣＰＵ１２は、Ｓ１３以降の処理を、所定回数以上繰り返して実行した場合、図２〜図４の処理を終了し、Ｓ１１から再度実行しても良い。
【００６８】
また、図１０は、バッテリ６２Ａを有する第２外部機器６２から電力を受電しているプリンタ１へ、ＡＣ電源が接続された第１外部機器６１を新たに接続した場合を示している。この場合、ＣＰＵ１２は、Ｓ１５でネゴシエーション先として、外部電源に接続された第１外部機器６１を設定する（Ｓ４９）。そして、ＣＰＵ１２は、Ｓ１９において、第１外部機器６１が新たなネゴシエーション先であると判断し（Ｓ１９：ＹＥＳ）、第１外部機器６１とのネゴシエーションを実行する（Ｓ２１〜Ｓ２５）。これにより、ＣＰＵ１２は、後から外部機器を接続された場合でも、電源情報に基づいて適切なネゴシエーション先を設定できる。
【００６９】
また、図１１は、バッテリ６１Ａを有する第１外部機器６１と、バッテリ６２Ａを有する第２外部機器６２とが、プリンタ１に接続されている。第１外部機器６１のバッテリ６１Ａのバッテリ残量は、第２外部機器６２のバッテリ６２Ａのバッテリ残量に比べて多い。このため、ＣＰＵ１２は、図３のＳ５４において、バッテリ残量の多い第１外部機器６１をネゴシエーション先として設定する。プリンタ１は、第１外部機器６１から電力を受電する状態となる。この状態で、第２外部機器６２に、ＡＣ電源に接続された第３外部機器６３が新たに接続される。
【００７０】
この場合、第２外部機器６２は、第３外部機器６３を介して間接的に外部電源に接続される。従って、第２外部機器６２は、自装置の電源情報に変更が発生したため、例えば、外部電源に接続されたことを示す情報を、Ｓｏｕｒｃｅ＿Ｃａｐａｂｉｌｉｔｉｅｓメッセージをプリンタ１へ送信する。
【００７１】
ＣＰＵ１２は、例えば、接続中の第２外部機器６２からＳｏｕｒｃｅ＿Ｃａｐａｂｉｌｉｔｉｅｓメッセージを受信したことに応じて、図２のＳ１３以降の処理を実行しても良い。例えば、図２のＳ１１の判断条件を、新たな接続の検出だけでなく、接続中の外部機器における電源情報の変更を検出した条件を加えても良い。あるいは、Ｓ１１の判断条件は、電源情報の変更を検出した条件だけでも良い。この場合、ＣＰＵ１２は、第２外部機器６２からＳｏｕｒｃｅ＿Ｃａｐａｂｉｌｉｔｉｅｓメッセージを受信し、第２外部機器６２の電源情報に変更があったことを検出すると（Ｓ１１：ＹＥＳ）、Ｓ１３以降の処理をする。Ｓ１３において、ＣＰＵ１２は、第１外部機器６１についても、電源情報を受け付ける。そして、ＣＰＵ１２は、Ｓ１５において、外部電源に接続された第２外部機器６２をネゴシエーション先として設定する（Ｓ４９）。これにより、外部電源やバッテリとの間接的で且つ新たな接続があった場合にも、適切なネゴシエーション先を設定できる。
【００７２】
なお、上記した説明では、２台の外部機器を接続された場合について説明したが、３台以上の複数台の外部機器を接続された場合にも、ＣＰＵ１２は、図２〜図４と同様の制御を実行することで、ネゴシエーション先の外部機器を適切に設定できる。例えば、ＣＰＵ１２は、３台の外部機器を接続される場合、３台の外部機器のうち、２台の外部機器を対象に図２〜図４の制御を実行しネゴシエーション先の外部機器を設定した後、ネゴシエーション先に設定した外部機器と残りの外部機器とを対象に図２〜図４の制御を再度実行する。これにより、３台の外部機器の中からネゴシエーション先として適切な外部機器を設定することができる。
【００７３】
因みに、プリンタ１は、情報処理装置の一例である。履歴情報４３は、第１及び第２電源情報の一例である。レセプタクル５１は、第１インタフェース、第２インタフェースの一例である。Ｓ１３は、第１受付工程、第２受付工程の一例である。Ｓ１５は、選択工程の一例である。Ｓ２１，Ｓ３３は、送信工程の一例である。
【００７４】
（３．効果）
以上、上記した実施形態によれば、以下の効果を奏する。
（１）本実施形態のプリンタ１のＣＰＵ１２は、レセプタクル５１に接続された第１外部機器６１の電源に係る電源情報（第１電源情報の一例）を受け付けるＳ１３の処理（第１受付処理の一例）と、レセプタクル５１に接続された第２外部機器６２の電源情報（第２電源情報の一例）を受け付けるＳ１３の処理（第２受付処理の一例）と、電源情報に基づき、第１及び第２外部機器６１，６２のうち、電力要求を送信する外部機器を選択するＳ１５の処理（選択処理の一例）と、Ｓ１５の処理の結果に基づき、選択した外部機器へ電力要求を送信するＳ２１，Ｓ３３の処理（送信処理の一例）と、を実行する。
【００７５】
これによれば、ＣＰＵ１２は、接続された第１及び第２外部機器６１，６２の各々について電源情報を受け付ける。そして、ＣＰＵ１２は、受け付けた電源情報に基づいて、第１及び第２外部機器６１，６２のうち、電力を要求すべき外部機器を選択する。これにより、電力を受電する上でより適切な外部機器を選択し電力要求を送信できる。
【００７６】
（２）また、ＣＰＵ１２は、電源情報に基づき、第１及び第２外部機器６１，６２の両方が外部電源に接続されているか否かを判断するＳ４３の処理（第１判断処理の一例）と、電源情報に基づき、第１及び第２外部機器６１，６２の両方が外部電源に接続されていないか否かを判断するＳ４７の処理（第２判断処理の一例）と、を実行する。ＣＰＵ１２は、Ｓ４３で否定判断し、且つ、Ｓ４７で否定判断した場合、電力要求を送信する外部機器として外部電源に接続された外部機器を選択する（Ｓ４９）。
【００７７】
これによれば、ＡＣ電源やＤＣ電源などの外部電源に接続されている外部機器に対して電力要求を送信する。これにより、より安定した電力供給を行える外部機器から電力を受電することができる。
【００７８】
（３）また、本実施形態の第１外部機器６１は、外部電源に直接接続され外部電源から電力を受電しても良い（図５、図７、図９、図１０）。これによれば、外部電源と直接接続された第１外部機器６１から電力を安定的に受電することができる。
【００７９】
（４）また、第１外部機器６１は、外部電源に直接接続された第３外部機器６３（他の外部機器の一例）から、プリンタ１（情報処理装置の一例）を介さない経路で電力を受電しても良い（図６）。これによれば、第１外部機器６１は、他の外部機器を介して外部電源と間接的に接続される。これにより、外部電源と間接的に接続された第１外部機器６１から電力を安定的に受電することができる。
【００８０】
（５）また、本実施形態の外部電源は、例えば、ＡＣ電源である。これによれば、ＡＣ電源に接続されることでより安定した電力を供給できる第１外部機器６１から電力を受電することができる。
【００８１】
（６）また、ＣＰＵ１２は、第１外部機器６１から電力要求を拒否されたと判断した場合（Ｓ２３：ＮＯ）、第２外部機器６２へ電力要求を送信する（Ｓ３３）。これによれば、第１外部機器６１から電力の供給を拒否されると、他方の第２外部機器６２へ電力要求を送信して電力を確保することができる。
【００８２】
（７）また、ＣＰＵ１２は、第１及び第２外部機器６１，６２の各々がレセプタクル５１から切断された頻度を示す切断回数（第１挿抜頻度、第２挿抜頻度の一例）を履歴情報４３（第１及び第２電源情報の一例）により受け付け、第１外部機器６１の切断回数が第２外部機器６２の切断回数に比べて少ないことに応じて、電力要求を送信する外部機器として第１外部機器６１を選択する（Ｓ５８）。
【００８３】
ＵＳＢ接続の切断回数が多い外部機器の電力供給は、安定しない可能性が高い。このため、ＵＳＢ接続の切断回数がより少ない第１外部機器６１を選択し電力要求を送信する。これにより、より安定して電力を供給可能な第１外部機器６１から電力を受電できる。
【００８４】
（８）また、ＣＰＵ１２は、第１及び第２外部機器６１，６２の各々から外部電源が切断された頻度を示す外部電源の切断回数（第３挿抜頻度、第４挿抜頻度の一例）を履歴情報４３（第１及び第２電源情報の一例）により受け付け、第１外部機器６１に対する外部電源の切断回数が第２外部機器６２に対する外部電源の切断回数に比べて少ないことに応じて、電力要求を送信する外部機器として第１外部機器６１を選択しても良い（Ｓ５８）。
【００８５】
外部電源の切断回数が多い外部機器の電力供給は、安定しない可能性が高い。このため、外部電源の切断回数がより少ない第１外部機器６１を選択し電力要求を送信する。これにより、より安定して電力を供給可能な第１外部機器６１から電力を受電できる。
【００８６】
（９）また、ＣＰＵ１２は、電源情報に基づいて、第１及び第２外部機器６１，６２の両方がバッテリ６１Ａ，６２Ａを有しているか否かを判断するＳ５１、Ｓ６１の処理（第３判断処理の一例）を実行する。ＣＰＵ１２は、Ｓ５１又はＳ６１の処理において否定判断した場合、電力要求を送信する外部機器としてバッテリ６１Ａ，６２Ａを有する外部機器を選択する（Ｓ５４，Ｓ５５，Ｓ６４，Ｓ６５）。これによれば、バッテリ６１Ａ，６２Ａを有しており電力供給がより安定している外部機器を、電力ソースとして選択できる。
【００８７】
（１０）また、ＣＰＵ１２は、Ｓ５１又はＳ６１の処理において肯定判断した場合、第１外部機器６１のバッテリ６１Ａの残量が、第２外部機器６２のバッテリ６２Ａの残量に比べて多いか否かを判断するＳ５２、Ｓ６３の処理（第４判断処理の一例）を実行する。ＣＰＵ１２は、Ｓ５２又はＳ６３の処理において肯定判断した場合、電力要求を送信する外部機器として第１外部機器６１を選択する（Ｓ５４，Ｓ６４）。これによれば、第１及び第２外部機器６１，６２の両方がバッテリ６１Ａ，６２Ａを有している場合、バッテリ残量がより多い第１外部機器６１を選択することで、電力供給がより安定している外部機器を、電力ソースとして選択できる。
【００８８】
（１１）また、レセプタクル５１は、ＵＳＢ（Ｕｎｉｖｅｒｓａｌ  Ｓｅｒｉａｌ  Ｂｕｓ）規格に準拠した通信を行うインタフェース（第１及び第２ＵＳＢインタフェースの一例）である。電力の授受が可能な２つのＵＳＢインタフェースを備えるプリンタ１では、複数の外部機器を接続された場合に、電力を受電する上で適切な外部機器を選択し電力要求を送信する必要がある。このため、２つのＵＳＢインタフェースを備えるプリンタ１において、電源情報に基づいて、電力を要求すべき外部機器を選択することは極めて有効である。
【００８９】
（４．変形例）
尚、本願は上記実施形態に限定されるものではなく、本開示の趣旨を逸脱しない範囲内での種々の改良、変更が可能であることは言うまでもない。
例えば、上記実施形態では、図２〜図４に示す制御を、ＣＰＵ１２により実行したが、他の装置が実行しても良い。例えば、電力コントローラ２５が、メモリ２６のプログラムＰＧを実行することで、図２〜図４に示す制御を実行しても良い。この場合、電力コントローラ２５は、本開示の制御部の一例である。プログラムＰＧは、本開示のプログラムの一例である。
また、履歴情報４３を記憶する記憶部を、プリンタ１内に設けなくとも良い。例えば、ＣＰＵ１２は、履歴情報４３をサーバ等の外部装置に記憶しても良い。
また、本願における第１及び第２インタフェースの通信規格は、ＵＳＢ  ＰＤ規格の通信規格に限らず、電力の授受が可能な他の通信規格でもよい。
【００９０】
また、図２〜図４に示す制御内容は、一例であり、各ステップの内容、順番等は適宜変更可能である。例えば、ＣＰＵ１２は、Ｓ４３において、第１及び第２外部機器６１，６２の両方が外部電源に接続されているかを判断し、Ｓ４７において、第１及び第２外部機器６１，６２の両方が外部電源に接続されていないかを判断することで、外部電源に接続されている外部機器を特定した。即ち、ＣＰＵ１２は、２つの外部機器をまとめて判断した。しかしながら、ＣＰＵ１２は、例えば、第１外部機器６１が外部電源に接続されているか否かを判断する処理と、第２外部機器６２が外部電源に接続されているか否かを判断する処理を個別に実行しても良い。また、ＣＰＵ１２は、Ｓ４８、Ｓ５１、Ｓ６１についても、同様に、バッテリの有無を、第１及び第２外部機器６１，６２の各々について個別に判断しても良い。
【００９１】
また、上記実施形態では、本願の制御部として、ＣＰＵ１２を採用したが、これに限らない。例えば、制御部の少なくとも一部を、ＡＳＩＣ（Ａｐｐｌｉｃａｔｉｏｎ  Ｓｐｅｃｉｆｉｃ  Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ）などの専用のハードウェアで構成してもよい。また、制御部は、例えばソフトウェアによる処理と、ハードウェアによる処理とを併用して動作する構成でもよい。
また、上記実施形態では、本願の情報処理装置として携帯型のプリンタ１を採用したが、これに限らない。本願の情報処理装置は、携帯型でない据え置き型のプリンタでも良く、プリンタに限らず、コピー装置、ファックス装置、スキャナ装置、カメラでも良い。また、本願の情報処理装置は、複数の機能を有する複合機でもよい。
【符号の説明】
【００９２】
１  プリンタ（情報処理装置）、１２  ＣＰＵ（制御部）、４３  履歴情報（電源情報）、５１  レセプタクル（第１インタフェース、第２インタフェース）、６１  第１外部機器、６２  第２外部機器、６１Ａ，６２Ａ  バッテリ。
【図１】
2020124035.tif 000003
【図２】
2020124035.tif 000004
【図３】
2020124035.tif 000005
【図４】
2020124035.tif 000006
【図５】
2020124035.tif 000007
【図６】
2020124035.tif 000008
【図７】
2020124035.tif 000009
【図８】
2020124035.tif 000010
【図９】
2020124035.tif 000011
【図１０】
2020124035.tif 000012
【図１１】
2020124035.tif 000013