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