(57)【要約】【課題】ＤＲＰ機能を実装したＰｏｗｅｒＢａｎｋについてのユーザの意図しない動作を回避できる。【解決手段】ＵＳＢ  Ｔｙｐｅ−Ｃ規格および／またはＵＳＢ  Ｐｏｗｅｒ  Ｄｅｌｉｖｅｒｙ規格に従って、給電側および受電側のいずれにもなり得るＤＲＰに対応したポートを提供するためのコントローラが提供される。コントローラは、二次電池の充放電を制御する電源管理部を制御するための制御インターフェースと、ＵＳＢケーブル内の通信ラインを介して接続先との間で信号を遣り取りする信号伝送モジュールと、シーケンス実行部とを含む。シーケンス実行部は、給電側として二次電池に蓄電されていた電力の接続先への供給中に、二次電池からの電力供給が不可能になると、予め定められた条件が満たされない限り、受電側としてのシーケンスの実質的な実行を停止する。【選択図】図５
2019213325.tif 000002
【特許請求の範囲】
【請求項１】
ＵＳＢ（Universal Serial Bus）  Ｔｙｐｅ−Ｃ規格および／またはＵＳＢ  Ｐｏｗｅｒ  Ｄｅｌｉｖｅｒｙ規格に従って、給電側および受電側のいずれにもなり得るＤＲＰ（Dual Role Power）に対応したポートを提供するためのコントローラであって、
二次電池の充放電を制御する電源管理部を制御するための制御インターフェースと、
ＵＳＢケーブル内の通信ラインを介して接続先との間で信号を遣り取りする信号伝送モジュールと、
前記制御インターフェースおよび前記信号伝送モジュールに結合されたシーケンス実行部とを備え、
前記シーケンス実行部は、給電側として前記二次電池に蓄電されていた電力の前記接続先への供給中に、前記二次電池からの電力供給が不可能になると、予め定められた条件が満たされない限り、受電側としてのシーケンスの実質的な実行を停止する、コントローラ。
【請求項２】
前記シーケンス実行部は、ユーザ操作を示す信号に応答して、前記予め定められた条件が満たされたと判断して、前記受電側としてのシーケンスを実行する、請求項１に記載のコントローラ。
【請求項３】
前記ユーザ操作を示す信号は、前記コントローラが格納される筐体に設けられたボタンからの信号である、請求項２に記載のコントローラ。
【請求項４】
前記信号伝送モジュールは、前記通信ラインと電源電位およびグランド電位との間にそれぞれ接続された抵抗と、前記通信ラインから前記電源電位および前記グランド電位へ繋がる経路を電気的に接続／遮断するスイッチとを含み、
前記シーケンス実行部は、給電側として前記二次電池に蓄電されていた電力の前記接続先への供給中に、前記二次電池からの電力供給が不可能になると、前記信号伝送モジュールの前記スイッチに制御信号を与えて、前記通信ラインから前記電源電位および前記グランド電位へ繋がる経路を電気的に遮断する、請求項１〜３のいずれか１項に記載のコントローラ。
【請求項５】
前記受電側としてのシーケンスは、接続先に関する情報を受け取る処理を含み、
前記予め定められた条件は、前記接続先に関する情報の少なくとも一部を含む、請求項１に記載のコントローラ。
【請求項６】
前記予め定められた条件は、前記接続先が給電側および受電側のいずれにもなり得るＤＲＰではないことを含む、請求項５に記載のコントローラ。
【請求項７】
前記予め定められた条件は、前記接続先が供給する予定の電力に制約が存在しないことを含む、請求項５または６に記載のコントローラ。
【請求項８】
前記シーケンス実行部は、プロセッサが制御プログラムを実行することで実現される、請求項１〜７のいずれか１項に記載のコントローラ。
【請求項９】
ＵＳＢ（Universal Serial Bus）  Ｔｙｐｅ−Ｃ規格および／またはＵＳＢ  Ｐｏｗｅｒ  Ｄｅｌｉｖｅｒｙ規格に従って、給電側および受電側のいずれにもなり得るＤＲＰ（Dual Role Power）に対応したポートを提供するためのコントローラを用いた制御方法であって、
前記コントローラは、
二次電池の充放電を制御する電源管理部を制御するための制御インターフェースと、
ＵＳＢケーブル内の通信ラインを介して接続先との間で信号を遣り取りする信号伝送モジュールとを備え、
前記制御方法は、
給電側として前記二次電池に蓄電されていた電力を前記接続先へ供給するステップと、
前記接続先への電力の供給中に、前記二次電池からの電力供給が不可能になると、予め定められた条件が満たされない限り、受電側としてのシーケンスの実質的な実行を停止するステップとを備える、制御方法。
【請求項１０】
ＵＳＢ（Universal Serial Bus）  Ｔｙｐｅ−Ｃ規格および／またはＵＳＢ  Ｐｏｗｅｒ  Ｄｅｌｉｖｅｒｙ規格に従って、給電側および受電側のいずれにもなり得るＤＲＰ（Dual Role Power）に対応したポートを提供するためのコントローラのプロセッサで実行される制御プログラムであって、
前記コントローラは、
二次電池の充放電を制御する電源管理部を制御するための制御インターフェースと、
ＵＳＢケーブル内の通信ラインを介して接続先との間で信号を遣り取りする信号伝送モジュールとを備え、
前記制御プログラムは、前記プロセッサに、
給電側として前記二次電池に蓄電されていた電力を前記接続先へ供給するステップと、
前記接続先への電力の供給中に、前記二次電池からの電力供給が不可能になると、予め定められた条件が満たされない限り、受電側としてのシーケンスの実質的な実行を停止するステップとを実行させる、制御プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、コントローラに関し、例えば、ＵＳＢ（Universal Serial Bus）規格に従うシーケンスを実行して接続先との間で受給電動作を実行するために用いられる。
【背景技術】
【０００２】
モバイルデバイスの普及に伴って、モバイルデバイスなどに電力を供給するモバイルバッテリなどが普及している（例えば、特許文献１など参照）。以下の説明においては、外部電源から供給される電力を蓄えるとともに、外部デバイスに対して蓄えている電力を供給する蓄電装置を「ＰｏｗｅｒＢａｎｋ」と称す。
【０００３】
現在一般的に用いられているＰｏｗｅｒＢａｎｋは、外部デバイスへ電力を供給するための出力（給電）ポート、および、外部電源から電力を受け取るための入力（受電）ポートは、それぞれ別々に設けられている。例えば、給電ポートにはＵＳＢ  Ｓｔａｎｄａｒｄ−Ａ型インターフェースが用いられ、受電ポートにはＵＳＢ  Ｍｉｃｒｏ−Ｂ型インターフェースが用いられる。このように給電ポートおよび受電ポートが機能別に独立に設けられているため、例えば、ＰｏｗｅｒＢａｎｋへの充電が完了した後に、ケーブルを繋いだままにしておいても、蓄えた電力が逆流するようなことはない。
【０００４】
より新しいＵＳＢ規格として、ＵＳＢ  Ｔｙｐｅ−Ｃ型インターフェースが普及しつつある。ＵＳＢ  Ｔｙｐｅ−Ｃ型インターフェースによれば、給電および受電は同一形状のポートが用いられることになる。そのため、単一のポートで給電および受電の両方に対応することになる。
【０００５】
ＵＳＢ  Ｔｙｐｅ−Ｃ規格においては、電力を供給するデバイスを「Ｓｏｕｒｃｅ」あるいは「ＳＲＣ」と称し、電力を受電するデバイスを「Ｓｉｎｋ」あるいは「ＳＮＫ」と称する。さらに、給電および受電の両方に対応するデバイスを「ＤＲＰ：Ｄｕａｌ  Ｒｏｌｅ  Ｐｏｗｅｒ」と称する。ＤＲＰ機能を実装することで、従来では別々に２つ必要だったポートが一つで済み、コストおよびスペースを削減できる。
【０００６】
このような利点により、ＰｏｗｅｒＢａｎｋをはじめ、スマートフォン、タブレット、パーソナルコンピュータなどのモバイルデバイスにおいて、ＵＳＢ  Ｔｙｐｅ−Ｃ型インターフェースが採用される場合には、１つのポートで給電および受電の両方に対応できるように、ＤＲＰ機能が実装されることが予想される。
【０００７】
さらに、ＵＳＢ  Ｔｙｐｅ−Ｃ規格においては、ＵＳＢケーブルを利用して電力の遣り取りを実現する給電規格である、ＵＳＢ  Ｐｏｗｅｒ  Ｄｅｌｉｖｅｒｙ（以下、単に「ＰＤ」とも称す。）を利用できる。ＵＳＢ  ＰＤによれば、より大きな電圧および電流を遣り取りできるので、より短時間の充電を実現できる。ＵＳＢ  Ｔｙｐｅ−Ｃ型インターフェースと併せて、ＵＳＢ  ＰＤ機能も普及するものと想定される。
【先行技術文献】
【特許文献】
【０００８】
【特許文献１】特開２０１７−１３８８７０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００９】
上述したようなＵＳＢ  Ｔｙｐｅ−Ｃ型インターフェースの単一のポートのみが設けられるとともに、ＤＲＰ機能が実装されたＰｏｗｅｒＢａｎｋを用いて、外部デバイスに電力を供給する場合を想定する。本願発明者は、このような構成においては、給電ポートおよび充電ポートがそれぞれ別々に設けられたＰｏｗｅｒＢａｎｋを用いて電力を供給する場合には生じなかった、新たな課題が生じることを見出した。
【００１０】
その他の課題と新規な特徴は、本明細書の記述および添付図面から明らかになるであろう。
【課題を解決するための手段】
【００１１】
ある実施の形態に従えば、ＵＳＢ（Universal Serial Bus）  Ｔｙｐｅ−Ｃ規格および／またはＵＳＢ  Ｐｏｗｅｒ  Ｄｅｌｉｖｅｒｙ規格に従って、給電側および受電側のいずれにもなり得るＤＲＰ（Dual Role Power）に対応したポートを提供するためのコントローラが提供される。コントローラは、二次電池の充放電を制御する電源管理部を制御するための制御インターフェースと、ＵＳＢケーブル内の通信ラインを介して接続先との間で信号を遣り取りする信号伝送モジュールと、制御インターフェースおよび信号伝送モジュールに結合されたシーケンス実行部とを含む。シーケンス実行部は、給電側として二次電池に蓄電されていた電力の接続先への供給中に、二次電池からの電力供給が不可能になると、予め定められた条件が満たされない限り、受電側としてのシーケンスの実質的な実行を停止する。
【発明の効果】
【００１２】
ある実施の形態によれば、ＤＲＰ機能を実装したＰｏｗｅｒＢａｎｋについてのユーザの意図しない動作を回避できる。
【図面の簡単な説明】
【００１３】
【図１】ＵＳＢ  Ｔｙｐｅ−Ｃ規格に従うＤＲＰのＰｏｒｔ  Ｒｏｌｅを担当するデバイスのステート遷移の要部を示す図である。
【図２】ＤＲＰ機能を搭載したＰｏｗｅｒＢａｎｋからＤＲＰ機能を搭載した外部デバイスへの電力供給時の動作を説明するための図である。
【図３】図１に示すステート遷移に係る処理手順を示すフローチャートである。
【図４】実施の形態１に従うＰｏｗｅｒＢａｎｋの装置構成の一例を示す模式図である。
【図５】実施の形態１に従うＰｏｗｅｒＢａｎｋのステート遷移の要部を示す図である。
【図６】実施の形態１に従うＰｏｗｅｒＢａｎｋの受給電動作に係る処理手順を示すフローチャートである。
【図７】実施の形態１に従うＰｏｗｅｒＢａｎｋの動作例を示す模式図である。
【図８】実施の形態１に従うＰｏｗｅｒＢａｎｋの別の動作例を示す模式図である。
【図９】実施の形態２に従うＰＤコントローラの回路構成の一例を示す模式図である。
【図１０】実施の形態２に従うＰｏｗｅｒＢａｎｋの受給電動作に係る処理手順の要部を示すフローチャートである。
【図１１】実施の形態４に従うＰｏｗｅｒＢａｎｋのステート遷移の要部を示す図である。
【図１２】実施の形態４に従うＰｏｗｅｒＢａｎｋの受給電動作に係る処理手順を示すフローチャートである。
【図１３】実施の形態４に従うＰｏｗｅｒＢａｎｋの動作例を示す模式図である。
【図１４】実施の形態４に従うＰｏｗｅｒＢａｎｋの別の動作例を示す模式図である。
【発明を実施するための形態】
【００１４】
いくつかの実施の形態について、図面を参照しながら詳細に説明する。なお、図中の同一または相当部分については、同一符号を付してその説明は繰り返さない。
【００１５】
［Ａ．背景技術］
ＵＳＢ  Ｔｙｐｅ−Ｃ型インターフェースの単一のポートのみが設けられるとともに、ＤＲＰ機能が実装されたＰｏｗｅｒＢａｎｋを用いて、外部デバイスに電力を供給する構成について説明する。このとき、ＰｏｗｅｒＢａｎｋに接続される外部デバイスにおいても、ＵＳＢ  Ｔｙｐｅ−Ｃ型インターフェースおよびＤＲＰ機能が実装されているとする。
【００１６】
ここで、ＵＳＢ  Ｔｙｐｅ−Ｃ規格およびＵＳＢ  ＰＤ規格に従う電力供給に関する手続きについて説明する。上述したように、ＵＳＢ  Ｔｙｐｅ−Ｃ規格においては、Ｓｏｕｒｃｅ（ＳＲＣ）と、Ｓｉｎｋ（ＳＮＫ）と、ＤＲＰという３つの状態が規定されている。このような各状態はＰｏｒｔ  Ｒｏｌｅとも称される。以下では、主として、ＤＲＰのＰｏｒｔ  Ｒｏｌｅを担当するデバイスについて説明する。
【００１７】
図１は、ＵＳＢ  Ｔｙｐｅ−Ｃ規格に従うＤＲＰのＰｏｒｔ  Ｒｏｌｅを担当するデバイスのステート遷移の要部を示す図である。図１を参照して、ＤＲＰのＰｏｒｔ  Ｒｏｌｅをデバイスは、Ｕｎａｔｔａｃｈｅｄ．ＳＲＣステート（ＳＴ１）、ＡｔｔａｃｈＷａｉｔ．ＳＲＣステート（ＳＴ２）、Ａｔｔａｃｈｅｄ．ＳＲＣステート（ＳＴ３）、Ｕｎａｔｔａｃｈｅｄ．ＳＮＫステート（ＳＴ４）、ＡｔｔａｃｈＷａｉｔ．ＳＮＫステート（ＳＴ５）、および、Ａｔｔａｃｈｅｄ．ＳＮＫステート（ＳＴ６）のうちいずれかとなる。
【００１８】
図２は、ＤＲＰ機能を搭載したＰｏｗｅｒＢａｎｋ１００からＤＲＰ機能を搭載した外部デバイスへの電力供給時の動作を説明するための図である。図２においては、外部デバイスとしてラップトップ型パーソナルコンピュータ（以下、「ＰＣ」と略称する。）２００を想定する。
【００１９】
図２（Ａ）を参照して、まず、給電側のＰｏｗｅｒＢａｎｋ１００と受電を期待するＰＣ２００とを接続する。すると、ＰｏｗｅｒＢａｎｋ１００のＰｏｒｔ  ＲｏｌｅはＳｏｕｒｃｅとなり、ＰｏｗｅｒＢａｎｋ１００からＰＣ２００への電力供給が開始される。
【００２０】
再度図１を参照して、このような電力供給の開始に係るステート遷移について説明する。ＵＳＢケーブル２が接続される前の状態においては、ＰｏｗｅｒＢａｎｋ１００では、Ｕｎａｔｔａｃｈｅｄ．ＳＲＣステート（ＳＴ１）とＵｎａｔｔａｃｈｅｄ．ＳＮＫステート（ＳＴ４）との間でステート遷移が繰り返されている。ＵＳＢケーブル２が接続されると、「Ｃｏｎｎｅｃｔｉｏｎ  Ｄｅｔｅｃｔｅｄ」の条件が満たされ、Ｕｎａｔｔａｃｈｅｄ．ＳＲＣステート（ＳＴ１）からＡｔｔａｃｈＷａｉｔ．ＳＲＣステート（ＳＴ２）へ遷移する（シーケンスＳＱ１）。そして、ＰｏｗｅｒＢａｎｋ１００とＰＣ２００との間の供給電圧などの条件が満たされると、Ａｔｔａｃｈｅｄ．ＳＲＣステート（ＳＴ３）へ遷移する（シーケンスＳＱ２）。Ａｔｔａｃｈｅｄ．ＳＲＣステート（ＳＴ３）は、給電側のデバイスとしての接続が認識された状態を意味する。この状態において、ＰｏｗｅｒＢａｎｋ１００からＰＣ２００への電力供給が開始される（シーケンスＳＱ３）。
【００２１】
その後、ＰｏｗｅｒＢａｎｋ１００からＰＣ２００への電力供給が継続され、最終的に、ＰｏｗｅｒＢａｎｋ１００の二次電池の放電電圧が予め定められた値まで低下すると、図２（Ｂ）に示すように、電力供給が停止される。この電力供給の停止まで二次電池の放電電圧が低下した場合には、「Ｌｏｗ  Ｂａｔｔｅｒｙ」という状態になる。ここで、「Ｌｏｗ  Ｂａｔｔｅｒｙ」は、バッテリに蓄えられている電力が低下して、外部デバイスに電力を供給できなくなっているという点においては、ＵＳＢ規格において規定されている「Ｄｅａｄ  Ｂａｔｔｅｒｙ」という状態と同じである。但し、「Ｌｏｗ  Ｂａｔｔｅｒｙ」の状態においては、自装置のコントローラを駆動できる電力は残っているものとする。すなわち、「Ｌｏｗ  Ｂａｔｔｅｒｙ」の状態においては、後述するような各種制御が可能になっている。
【００２２】
給電および受電が可能なＤＲＰであるＰｏｗｅｒＢａｎｋ１００のポートは、Ｌｏｗ  Ｂａｔｔｅｒｙ状態になると、今後は、受電側のデバイスを意味するＳｉｎｋに変化する。
【００２３】
図１に示すように、この状態においては、ＰｏｗｅｒＢａｎｋ１００は、Ａｔｔａｃｈｅｄ．ＳＲＣステート（ＳＴ３）から、Ｌｏｗ  Ｂａｔｔｅｒｙ状態を経て、Ｕｎａｔｔａｃｈｅｄ．ＳＮＫステート（ＳＴ４）へ遷移する（シーケンスＳＱ４）。Ｕｎａｔｔａｃｈｅｄ．ＳＮＫステート（ＳＴ４）は、受電側のデバイスとしての接続が認識された状態を意味する。この状態において、ＰｏｗｅｒＢａｎｋ１００は、接続先との再接続を試みることになる。
【００２４】
ＰＣ２００にもＤＲＰ機能が実装されている場合には、ＳｉｎｋのＰｏｗｅｒＢａｎｋ１００に接続されていると、ＰＣ２００のポートは、給電側のデバイスを意味するＳｏｕｒｃｅに変化する。すなわち、図２（Ｃ）に示すように、ＵＳＢ  Ｔｙｐｅ−Ｃ規格に従って、ＰｏｗｅｒＢａｎｋ１００のＰｏｒｔ  ＲｏｌｅはＳｏｕｒｃｅからＳｉｎｋに変更され、ＰＣ２００のＰｏｒｔ  ＲｏｌｅはＳｉｎｋからＳｏｕｒｃｅに変更される。
【００２５】
ＰｏｗｅｒＢａｎｋ１００とＰＣ２００との間のＵＳＢケーブル２を繋いだままにしておくと、ＰｏｗｅｒＢａｎｋ１００とＰＣ２００とは、ＵＳＢ  Ｔｙｐｅ−Ｃ規格に従って再度接続される。
【００２６】
すなわち、図１に示すように、「Ｓｏｕｒｃｅ  Ｄｅｔｅｃｔｅｄ」の条件が満たされ、Ｕｎａｔｔａｃｈｅｄ．ＳＮＫステート（ＳＴ４）からＡｔｔａｃｈＷａｉｔ．ＳＮＫステート（ＳＴ５）へ遷移する（シーケンスＳＱ５）。そして、ＰｏｗｅｒＢａｎｋ１００とＰＣ２００との間の供給電圧などの条件が満たされると、Ａｔｔａｃｈｅｄ．ＳＮＫステート（ＳＴ６）へ遷移する（シーケンスＳＱ６）。Ａｔｔａｃｈｅｄ．ＳＮＫステート（ＳＴ６）は、受電側のデバイスとしての接続が認識された状態を意味する。この状態において、ＰＣ２００からＰｏｗｅｒＢａｎｋ１００への電力供給が開始される（シーケンスＳＱ７）。
【００２７】
すなわち、図２（Ｄ）に示すように、ＰｏｗｅｒＢａｎｋ１００からＰＣ２００へ供給された電力が、今度は逆に、ＰＣ２００からＰｏｗｅｒＢａｎｋ１００へ供給されることになる。
【００２８】
図３は、図１に示すステート遷移に係る処理手順を示すフローチャートである。図３に示す各ステップは、ＤＲＰ機能を実装しているデバイスの各々で実行される。説明の便宜上、ＰｏｗｅｒＢａｎｋ１００が実行する処理として説明するが、ＰＣ２００においても同様の処理が実行されることになる。
【００２９】
図３を参照して、ＰｏｗｅｒＢａｎｋ１００は、初期状態として、Ｕｎａｔｔａｃｈｅｄ．ＳＲＣステートであるとする（ステップＳ１）。続いて、ＰｏｗｅｒＢａｎｋ１００は、Ｔｏｇｇｌｅ条件が満たされているか否かを判断する（ステップＳ２）。Ｔｏｇｇｌｅ条件が満たされると（ステップＳ２においてＹＥＳ）、ＰｏｗｅｒＢａｎｋ１００は、Ｕｎａｔｔａｃｈｅｄ．ＳＮＫステートへ遷移する（ステップＳ１１）。
【００３０】
Ｔｏｇｇｌｅ条件が満たされていなければ（ステップＳ２においてＮＯ）、ＰｏｗｅｒＢａｎｋ１００は、接続先との接続が検出されたか否かを判断する（ステップＳ３）。接続先との接続が検出されなければ（ステップＳ３においてＮＯ）、ＰｏｗｅｒＢａｎｋ１００は、Ｕｎａｔｔａｃｈｅｄ．ＳＮＫステートへ遷移する（ステップＳ１１）。
【００３１】
接続先との接続が検出されると（ステップＳ３においてＹＥＳ）、ＰｏｗｅｒＢａｎｋ１００は、ＡｔｔａｃｈＷａｉｔ．ＳＲＣステートへ遷移する（ステップＳ４）。続いて、ＰｏｗｅｒＢａｎｋ１００は、接続先との接続が切断されたか否かを判断する（ステップＳ５）。
【００３２】
接続先との接続が切断されると（ステップＳ５においてＹＥＳ）、ＰｏｗｅｒＢａｎｋ１００は、Ｕｎａｔｔａｃｈｅｄ．ＳＮＫステートへ遷移する（ステップＳ１１）。
【００３３】
接続先との接続が切断されていなければ（ステップＳ５においてＮＯ）、ＰｏｗｅｒＢａｎｋ１００は、Ａｔｔａｃｈｅｄ．ＳＲＣステートへ遷移する（ステップＳ６）。続いて、ＰｏｗｅｒＢａｎｋ１００は、ＵＳＢ  ＰＤ規格に従う通信（ＰＤ  ｃｏｍｍｕｎｉｃａｔｉｏｎ）を実行する（ステップＳ７）。そして、Ｓｉｎｋのデバイスに対する電力供給を開始する（ステップＳ８）。
【００３４】
電力供給中において、ＰｏｗｅｒＢａｎｋ１００は、Ｓｉｎｋのデバイスが切断されたか否かを判断する（ステップＳ９）。Ｓｉｎｋのデバイスが切断されると（ステップＳ９においてＹＥＳ）、ＰｏｗｅｒＢａｎｋ１００は、Ｕｎａｔｔａｃｈｅｄ．ＳＮＫステートへ遷移する（ステップＳ１１）。
【００３５】
Ｓｉｎｋのデバイスが切断されていなければ（ステップＳ９においてＮＯ）、ＰｏｗｅｒＢａｎｋ１００は、二次電池の放電電圧が予め定められた値まで低下して、Ｌｏｗ  Ｂａｔｔｅｒｙ状態になっているか否かを判断する（ステップＳ１０）。Ｌｏｗ  Ｂａｔｔｅｒｙ状態になると（ステップＳ１０においてＹＥＳ）、ＰｏｗｅｒＢａｎｋ１００は、Ｕｎａｔｔａｃｈｅｄ．ＳＮＫステートへ遷移する（ステップＳ１１）。
【００３６】
Ｌｏｗ  Ｂａｔｔｅｒｙ状態になっていなければ（ステップＳ１０においてＮＯ）、ステップＳ８以下の処理が繰り返される。
【００３７】
一方、ステップＳ１１に示される、Ｕｎａｔｔａｃｈｅｄ．ＳＮＫステートにおいて、ＰｏｗｅｒＢａｎｋ１００は、Ｔｏｇｇｌｅ条件が満たされている否かを判断する（ステップＳ１１）。Ｔｏｇｇｌｅ条件が満たされると（ステップＳ１２においてＹＥＳ）、ＰｏｗｅｒＢａｎｋ１００は、Ｕｎａｔｔａｃｈｅｄ．ＳＲＣステートへ遷移する（ステップＳ１）。
【００３８】
Ｔｏｇｇｌｅ条件が満たされていなければ（ステップＳ１２においてＮＯ）、ＰｏｗｅｒＢａｎｋ１００は、Ｓｏｕｒｃｅのデバイスとの接続が検出されたか否かを判断する（ステップＳ１３）。Ｓｏｕｒｃｅのデバイスとの接続が検出されなければ（ステップＳ１３においてＮＯ）、ＰｏｗｅｒＢａｎｋ１００は、Ｕｎａｔｔａｃｈｅｄ．ＳＲＣステートへ遷移する（ステップＳ１）。
【００３９】
Ｓｏｕｒｃｅのデバイスとの接続が検出されると（ステップＳ１３においてＹＥＳ）、ＰｏｗｅｒＢａｎｋ１００は、ＡｔｔａｃｈＷａｉｔ．ＳＮＫステートへ遷移する（ステップＳ１４）。続いて、ＰｏｗｅｒＢａｎｋ１００は、Ｓｏｕｒｃｅのデバイスとの接続が切断されたか否かを判断する（ステップＳ１５）。
【００４０】
Ｓｏｕｒｃｅのデバイスとの接続が切断されると（ステップＳ１５においてＹＥＳ）、ＰｏｗｅｒＢａｎｋ１００は、Ｕｎａｔｔａｃｈｅｄ．ＳＲＣステートへ遷移する（ステップＳ１）。
【００４１】
Ｓｏｕｒｃｅのデバイスとの接続が切断されていなければ（ステップＳ１５においてＮＯ）、ＰｏｗｅｒＢａｎｋ１００は、Ａｔｔａｃｈｅｄ．ＳＮＫステートへ遷移する（ステップＳ１６）。続いて、ＰｏｗｅｒＢａｎｋ１００は、ＵＳＢ  ＰＤ規格に従う通信（ＰＤ  ｃｏｍｍｕｎｉｃａｔｉｏｎ）を実行する（ステップＳ１７）。ステップＳ１７において実行されるＰＤ  ｃｏｍｍｕｎｉｃａｔｉｏｎによって、供給される電圧および電流の大きさなどが決定される。そして、Ｓｏｕｒｃｅのデバイスからの電力の受け取りを開始する（ステップＳ１８）。
【００４２】
電力供給中において、ＰｏｗｅｒＢａｎｋ１００は、ＵＳＢケーブル２内の電力ラインであるＶｂｕｓが切断されたか否かを判断する（ステップＳ１９）。Ｖｂｕｓが切断されると（ステップＳ１９においてＹＥＳ）、ＰｏｗｅｒＢａｎｋ１００は、Ｕｎａｔｔａｃｈｅｄ．ＳＲＣステートへ遷移する（ステップＳ１）。
【００４３】
Ｖｂｕｓが切断されていなければ（ステップＳ１９においてＮＯ）、ステップＳ１８以下の処理が繰り返される。
【００４４】
なお、図３のステップＳ７およびＳ１７において実行されるＵＳＢ  ＰＤ規格に従う通信（ＰＤ  ｃｏｍｍｕｎｉｃａｔｉｏｎ）においては、Ｓｏｕｒｃｅ側において供給可能な電圧および電流の情報を含むＳｏｕｒｃｅ側の情報（ＰＤＯ：Ｐｏｗｅｒ  Ｄａｔａ  Ｏｂｊｅｃｔ）が、最大７つＳｉｎｋ側に提示される。Ｓｉｎｋ側では、提示されたＰＤＯ情報のうち一つをリクエストする。Ｓｏｕｒｃｅ側は、Ｓｉｎｋ側からのリクエストに従って、自デバイスの出力状態を変更し、Ｓｉｎｋ側とＳｉｎｋ側との間で電力の遣り取りが開始される。このように、ＰＤ  ｃｏｍｍｕｎｉｃａｔｉｏｎによって、対象のデバイス間の仕様などに応じて、供給される電圧および電流の大きさを最適化できる。
【００４５】
このように、ＵＳＢ  ＰＤ規格に従って、ＳｏｕｒｃｅのデバイスとＳｉｎｋのデバイスとがＡｔｔａｃｈすると、ＰＤ  ｃｏｍｍｕｎｉｃａｔｉｏｎを実行することで、両デバイス間で調整した上で、電力の遣り取りが開始される。そのため、Ｓｏｕｒｃｅ側が給電しない、あるいは、Ｓｉｎｋ側が受電しないという状況を回避できる。
【００４６】
［Ｂ．課題および解決手段］
上述したように、ＰｏｗｅｒＢａｎｋ１００と外部デバイスとがＵＳＢ  Ｔｙｐｅ−Ｃ型インターフェースを介して接続される場合において、両デバイスがＤＲＰ機能を実装している場合には、Ｓｏｕｒｃｅ側とＳｉｎｋ側とが交互に入れ替わるような動作が行なわれてしまう。
【００４７】
本来、ＰｏｗｅｒＢａｎｋ１００の二次電池が空になるまで外部デバイスを充電した後には、受給電動作はそこで停止すべきである。しかしながら、ＤＲＰ機能を実装したデバイス間では、外部デバイスからＰｏｗｅｒＢａｎｋ１００へ電力が戻されることになり、ユーザが意図した受給電動作を実現できない。
【００４８】
本実施の形態においては、上述したような新たな課題に対して、ＰｏｗｅｒＢａｎｋ１００から外部デバイスに対する充電動作が完了すると、外部デバイスからの電力が自動的にはＰｏｗｅｒＢａｎｋ１００へ逆流しないようにする構成および処理を提供する。
【００４９】
すなわち、単一のポートで受給電可能なＵＳＢ  Ｔｙｐｅ−Ｃ規格およびＵＳＢ  Ｐｏｗｅｒ  Ｄｅｌｉｖｅｒｙ規格に対応したデバイスについて、両者とも受給電可能なＤＲＰ機能を実装している場合において、充電が終わってＵＳＢケーブルを繋いだままにしておいても、電力供給方向が逆になっていつのまにか電力が戻りはじめることを防止できる仕組みを提供する。
【００５０】
より具体的には、本実施の形態に従うＰｏｗｅｒＢａｎｋは、給電側（Ｓｏｕｒｃｅ）として二次電池に蓄電されていた電力の接続先への供給中に、二次電池からの電力供給が不可能になると、予め定められた条件が満たされない限り、受電側（Ｓｉｎｋ）としてのシーケンスの実質的な実行を停止する。このような解決手段を採用することで、上述したような課題を解決する。
【００５１】
以下、このような解決手段を具現化した、いくつかの実施の形態について説明する。本実施の形態においては、ＵＳＢ  Ｔｙｐｅ−Ｃ規格の範囲で実現できる処理、ＵＳＢ  Ｐｏｗｅｒ  Ｄｅｌｉｖｅｒｙ規格の範囲で実現できる処理、ならびに、ＵＳＢ  Ｔｙｐｅ−Ｃ規格およびＵＳＢ  Ｐｏｗｅｒ  Ｄｅｌｉｖｅｒｙ規格の両方の範囲で実現できる処理などを適宜利用することになる。したがって、本実施の形態において利用されるコントローラは、ＵＳＢ  Ｔｙｐｅ−Ｃ規格およびＵＳＢ  Ｐｏｗｅｒ  Ｄｅｌｉｖｅｒｙ規格の少なくとも一方に従って、受給電に係る処理を実行することになる。
【００５２】
［Ｃ．実施の形態１］
（ｃ１：装置構成）
まず、実施の形態１に従うＰｏｗｅｒＢａｎｋ１００の装置構成の一例について説明する。図４は、実施の形態１に従うＰｏｗｅｒＢａｎｋ１００の装置構成の一例を示す模式図である。
【００５３】
図４を参照して、ＰｏｗｅｒＢａｎｋ１００は、主たる構成要素として、コネクタ１０２と、電源管理部（Ｐｏｗｅｒ  Ｍａｎａｇｅｒ）１０４と、バッテリ１０６と、ＰＤコントローラ（ＰＤ  Ｃｏｎｔｒｏｌｌｅｒ）１１０と、ボタン１３０とを含む。
【００５４】
コネクタ１０２は、ＵＳＢ  Ｔｙｐｅ−Ｃ型インターフェースのポートを含む。
電源管理部１０４は、ＰＤコントローラ１１０からの指示に従って、バッテリ１０６の充放電を制御する充放電制御回路に相当する。具体的には、電源管理部１０４は、外部電源から供給される電力をバッテリ１０６に蓄える第１充電動作、外部デバイスから供給される電力をバッテリ１０６に蓄える第２充電動作、および、バッテリ１０６に蓄えられた電力を外部デバイスへ供給する放電動作を選択的に実行可能になっている。
【００５５】
バッテリ１０６は、二次電池の典型例であり、リチウムイオン二次電池、リチウムイオンポリマー二次電池、ニッケル・水素充電池などが用いられる。
【００５６】
ボタン１３０は、ユーザ操作を受付ける入力部の一例であり、典型的には、ＰＤコントローラ１１０が格納される筐体に設けられる。ボタン１３０は、ユーザがボタン１３０を操作すると、その操作内容がＰＤコントローラ１１０へ与えられる。ボタン１３０としては、ＰｏｗｅｒＢａｎｋ１００の筐体に露出して配置される押しボタンなどが想定される。
【００５７】
本実施の形態に従うＰＤコントローラ１１０は、ＵＳＢ  Ｔｙｐｅ−Ｃ規格に従って、給電側（Ｓｏｕｒｃｅ）および受電側（Ｓｉｎｋ）のいずれにもなり得るＤＲＰに対応したポートを提供する。すなわち、ＰＤコントローラ１１０は、ＤＲＰとして機能し、ＵＳＢケーブル２を介した接続先との通信および受給電動作を管理する。より具体的には、ＰＤコントローラ１１０は、プロセッサ１１２と、信号伝送モジュール（ＰＨＹ＆ＬＧＣ）１１６と、制御インターフェース（Ｃｏｎｔ．  Ｉ／Ｆ）１１８とを含む。プロセッサ１１２には、信号伝送モジュール１１６および制御インターフェース１１８に結合されている。
【００５８】
プロセッサ１１２は、ＵＳＢ  Ｔｙｐｅ−Ｃ規格およびＵＳＢ  ＰＤ規格に従うシーケンスを実行するシーケンス実行部に相当する。プロセッサ１１２は、制御プログラムの一例であるファームウェア１１４を実行することで、以下に示すような処理および機能を提供する。プロセッサ１１２およびファームウェア１１４を用いて実装することで、シーケンスの修正やバージョンアップなどをより容易に実現できる。
【００５９】
信号伝送モジュール１１６は、ＵＳＢケーブル２内の通信ライン（第１通信ライン（ＣＣ１）２１および第２通信ライン（ＣＣ２）２２）を介して接続先との間で信号を遣り取りする。なお、第１通信ライン２１および第２通信ライン２２を、まとめて「通信ライン」と総称することもある。
【００６０】
制御インターフェース１１８は、バッテリ１０６（二次電池）の充放電を制御する電源管理部１０４を制御する。より具体的には、制御インターフェース１１８は、プロセッサ１１２から指示に従って、電源管理部１０４での充放電動作を制御するための制御指示を与える。例えば、制御インターフェース１１８は、Ｉ２Ｃインターフェースに従って、電源管理部１０４との間で制御信号を遣り取りするようにしてもよい。
【００６１】
バッテリ１０６と外部デバイスとの間の電力の遣り取りは、ＵＳＢケーブル２内の電力ライン（ＶＢＵＳ）２３を介して行なわれる。なお、ＵＳＢケーブル２は、図示していないシールド線を含む。
【００６２】
（ｃ２：ステート遷移）
次に、実施の形態１に従うＰｏｗｅｒＢａｎｋ１００のステート遷移について説明する。図５は、実施の形態１に従うＰｏｗｅｒＢａｎｋ１００のステート遷移の要部を示す図である。図５に示すステート遷移は、図１に示すＵＳＢ  Ｔｙｐｅ−Ｃ規格に従うＤＲＰのＰｏｒｔ  Ｒｏｌｅを担当するデバイスのステート遷移に比較して、Ｂａｔ．Ｅｍｐｔｙステート（ＳＴ７）が追加されている点が異なっている。図５において、図１に示すステートと実質的に同一のステートについては、同一の参照符号を付している。また、図１を参照して説明したステートについては、その説明は繰り返さない。
【００６３】
ＰｏｗｅｒＢａｎｋ１００は、Ａｔｔａｃｈｅｄ．ＳＲＣステート（ＳＴ３）において、外部デバイスに電力を供給するが、バッテリ１０６（二次電池）の放電電圧が予め定められた値まで低下すると、Ｌｏｗ  Ｂａｔｔｅｒｙ状態になり、Ｂａｔ．Ｅｍｐｔｙステート（ＳＴ７）へ遷移する。Ｂａｔ．Ｅｍｐｔｙステート（ＳＴ７）においては、所定のユーザ操作を受付けることが遷移条件となっており、所定のユーザ操作を受付けるまで、Ｂａｔ．Ｅｍｐｔｙステート（ＳＴ７）が維持される。
【００６４】
Ｂａｔ．Ｅｍｐｔｙステート（ＳＴ７）において、所定のユーザ操作を受付けると、Ｕｎａｔｔａｃｈｅｄ．ＳＮＫステート（ＳＴ４）へ遷移する。所定のユーザ操作としては、例えば、ＰｏｗｅｒＢａｎｋ１００のボタン１３０（図４）の押下などが想定される。
【００６５】
すなわち、実施の形態１においては、Ａｔｔａｃｈｅｄ．ＳＲＣステート（ＳＴ３）において電力の供給中に、Ｌｏｗ  Ｂａｔｔｅｒｙ状態になると、Ｕｎａｔｔａｃｈｅｄ．ＳＮＫステート（ＳＴ４）へそのまま遷移するのではなく、Ｂａｔ．Ｅｍｐｔｙステート（ＳＴ７）へ一旦遷移し、それから、所定のユーザ操作を受けて、Ｕｎａｔｔａｃｈｅｄ．ＳＮＫステート（ＳＴ４）へ遷移する。
【００６６】
このように、ＰＤコントローラ１１０のプロセッサ１１２は、まず、給電側（Ｓｏｕｒｃｅ）としてバッテリ１０６（二次電池）に蓄電されていた電力を接続先へ供給する。そして、ＰＤコントローラ１１０のプロセッサ１１２は、接続先への電力の供給中に、バッテリ１０６（二次電池）からの電力供給が不可能になると、予め定められた条件が満たされない限り、Ｂａｔ．Ｅｍｐｔｙステート（ＳＴ７）にステートを維持させて、受電側（Ｓｉｎｋ）としてのシーケンスの実質的な実行を停止する。
【００６７】
さらに、ＰＤコントローラ１１０のプロセッサ１１２は、ユーザ操作を示す信号に応答して、予め定められた条件が満たされたと判断して、受電側（Ｓｉｎｋ）としてのシーケンスの実質的な実行をする。このユーザ操作を示す信号は、ボタン１３０からの信号である。
【００６８】
すなわち、実施の形態１においては、Ｌｏｗ  Ｂａｔｔｅｒｙ状態になると、Ｂａｔ．Ｅｍｐｔｙステートへ遷移し、Ｂａｔ．Ｅｍｐｔｙステートからの復帰に、所定のユーザ操作の条件（受電側としてのシーケンスを実行させるための予め定められた条件に相当）が課される。このような構成を採用することで、ユーザの関与なく、ＰｏｗｅｒＢａｎｋ１００による電力の供給後に、ＰｏｗｅｒＢａｎｋ１００が自動的に受電側に変化して、外部デバイスから電力を受け取るような状態には至らせない仕組みを提供する。
【００６９】
（ｃ３：処理手順）
次に、実施の形態１に従うＰｏｗｅｒＢａｎｋ１００で実行される処理手順について説明する。図６は、実施の形態１に従うＰｏｗｅｒＢａｎｋ１００の受給電動作に係る処理手順を示すフローチャートである。図６に示す各ステップは、典型的には、ＰＤコントローラ１１０のプロセッサ１１２が制御プログラムであるファームウェア１１４を実行することで実現される。したがって、図６に示す各ステップの実行主体は、典型的には、プロセッサ１１２となる。
【００７０】
図６に示すフローチャートは、図３に示すフローチャートに比較して、ステップＳ２０およびＳ２１の処理が追加されている点が異なっている。図６において、図３に示す処理と実質的に同一の処理については、同一の参照符号を付している。また、図３を参照して説明した処理については、その説明は繰り返さない。
【００７１】
図６を参照して、Ｕｎａｔｔａｃｈｅｄ．ＳＮＫステートにおいて、ＰｏｗｅｒＢａｎｋ１００は、バッテリ１０６（二次電池）の放電電圧が予め定められた値まで低下して、Ｌｏｗ  Ｂａｔｔｅｒｙ状態になっているか否かを判断する（ステップＳ１０）。Ｌｏｗ  Ｂａｔｔｅｒｙ状態になっていなければ（ステップＳ１０においてＮＯ）、ステップＳ８以下の処理が繰り返される。
【００７２】
一方、Ｌｏｗ  Ｂａｔｔｅｒｙ状態になると（ステップＳ１０においてＹＥＳ）、ＰｏｗｅｒＢａｎｋ１００は、Ｂａｔ．Ｅｍｐｔｙステートへ遷移する（ステップＳ２０）。そして、Ｂａｔ．Ｅｍｐｔｙステートにおいて、ＰｏｗｅｒＢａｎｋ１００は、所定のユーザ操作を受付けたか否かを判断する（ステップＳ２１）。所定のユーザ操作を受付けなければ（ステップＳ２１においてＮＯ）、ステップＳ２０以下の処理が繰り返される。
【００７３】
一方、所定のユーザ操作が受付けられると（ステップＳ２１においてＹＥＳ）、ＰｏｗｅｒＢａｎｋ１００は、Ｕｎａｔｔａｃｈｅｄ．ＳＮＫステート（ＳＴ４）へ遷移する。
【００７４】
このように、給電側のＰｏｗｅｒＢａｎｋ１００が一旦Ｌｏｗ  Ｂａｔｔｅｒｙ状態になると、実施の形態１において導入されたＢａｔ．Ｅｍｐｔｙステートを含む処理ルーチン処理（ステップＳ２０，Ｓ２１）に入り、ユーザによって明示的に操作がなされるまで、この状態から抜け出せないことになる。
【００７５】
（ｃ４：動作例）
次に、実施の形態１に従うＰｏｗｅｒＢａｎｋ１００のいくつかの動作例について説明する。
【００７６】
図７は、実施の形態１に従うＰｏｗｅｒＢａｎｋ１００の動作例を示す模式図である。図７には、ＰｏｗｅｒＢａｎｋ１００からＰＣ２００への電力供給時の動作を示す。
【００７７】
図７（Ａ）を参照して、まず、給電側のＰｏｗｅｒＢａｎｋ１００と受電を期待するＰＣ２００とを接続する。すると、ＰｏｗｅｒＢａｎｋ１００のＰｏｒｔ  ＲｏｌｅはＳｏｕｒｃｅとなり、ＰｏｗｅｒＢａｎｋ１００からＰＣ２００への電力供給が開始される（図５に示すシーケンスＳＱ１〜ＳＱ３のステート遷移に相当）。
【００７８】
その後、ＰｏｗｅｒＢａｎｋ１００からＰＣ２００への電力供給が継続され、最終的に、ＰｏｗｅｒＢａｎｋ１００の二次電池の放電電圧が予め定められた値まで低下すると、図７（Ｂ）に示すように、ＰｏｗｅｒＢａｎｋ１００はＬｏｗ  Ｂａｔｔｅｒｙ状態となり、ＰｏｗｅｒＢａｎｋ１００からＰＣ２００への電力供給が停止される。Ｌｏｗ  Ｂａｔｔｅｒｙ状態になることで、ＰｏｗｅｒＢａｎｋ１００は、Ｂａｔ．Ｅｍｐｔｙステート（図５のＳＴ７）になる（図５に示すシーケンスＳＱ４のステート遷移に相当）。
【００７９】
図７（Ｃ）に示すように、Ｂａｔ．Ｅｍｐｔｙステートにおいては、受給電動作は行なわれず、所定のユーザ操作がなされるまで、そのままの状態が維持される（図５に示すシーケンスＳＱ４Ａに相当）。
【００８０】
そして、所定のユーザ操作（実施の形態１においては、ユーザによるボタン１３０（図４）の押下）がなされることで、ＰｏｗｅｒＢａｎｋ１００は、Ａｔｔａｃｈｅｄ．ＳＲＣステート（ＳＴ３）からＵｎａｔｔａｃｈｅｄ．ＳＮＫステート（ＳＴ４）へ遷移する（図５に示すシーケンスＳＱ４Ｂのステート遷移に相当）。
【００８１】
すると、図７（Ｄ）に示すように、ＰｏｗｅｒＢａｎｋ１００のＰｏｒｔ  ＲｏｌｅはＳｏｕｒｃｅからＳｉｎｋに変更され、ＰＣ２００のＰｏｒｔ  ＲｏｌｅはＳｉｎｋからＳｏｕｒｃｅに変更される。
【００８２】
そして、ＰｏｗｅｒＢａｎｋ１００とＰＣ２００との間で、ＵＳＢ  ＰＤ規格に従う通信などによって、遣り取りされる電圧および電流が決定され、図７（Ｅ）に示すように、ＰＣ２００からＰｏｗｅｒＢａｎｋ１００へ電力供給が開始される（図５に示すシーケンスＳＱ４〜ＳＱ６のステート遷移に相当）。
【００８３】
なお、図７（Ｅ）に示す受給電動作においては、ＰＣ２００に外部電源である電源アダプタ２０２を接続して、ＰＣ２００に内蔵された二次電池からではなく、外部電源からＰｏｗｅｒＢａｎｋ１００へ電力を供給するようにしてもよい。これによって、ＰＣ２００からＰｏｗｅｒＢａｎｋ１００へ電力が単に戻されるのではなく、ＰｏｗｅｒＢａｎｋ１００を外部電源で再充電することができる。
【００８４】
なお、Ｌｏｗ  Ｂａｔｔｅｒｙ状態になったＰｏｗｅｒＢａｎｋ１００を充電器で再充電するようにしてもよい。
【００８５】
図８は、実施の形態１に従うＰｏｗｅｒＢａｎｋ１００の別の動作例を示す模式図である。
【００８６】
図８（Ａ）を参照して、まず、給電側のＰｏｗｅｒＢａｎｋ１００と受電を期待するＰＣ２００とを接続する。すると、ＰｏｗｅｒＢａｎｋ１００のＰｏｒｔ  ＲｏｌｅはＳｏｕｒｃｅとなり、ＰｏｗｅｒＢａｎｋ１００からＰＣ２００への電力供給が開始される。
【００８７】
その後、ＰｏｗｅｒＢａｎｋ１００からＰＣ２００への電力供給が継続され、最終的に、ＰｏｗｅｒＢａｎｋ１００の二次電池の放電電圧が予め定められた値まで低下すると、図８（Ｂ）に示すように、ＰｏｗｅｒＢａｎｋ１００はＬｏｗ  Ｂａｔｔｅｒｙ状態となり、ＰｏｗｅｒＢａｎｋ１００からＰＣ２００への電力供給が停止される。Ｌｏｗ  Ｂａｔｔｅｒｙ状態になることで、ＰｏｗｅｒＢａｎｋ１００は、Ｂａｔ．Ｅｍｐｔｙステート（図５のＳＴ７）になる。
【００８８】
続いて、図８（Ｃ）に示すように、ＰｏｗｅｒＢａｎｋ１００がＢａｔ．Ｅｍｐｔｙステートにある状態で、ユーザは、ＰｏｗｅｒＢａｎｋ１００とＰＣ２００とを接続するＵＳＢケーブル２を取り外すとともに、充電器（Ｃｈａｒｇｅｒ）３００を準備する。
【００８９】
続いて、所定のユーザ操作（実施の形態１においては、ユーザによるボタン１３０（図４）の押下）がなされることで、ＰｏｗｅｒＢａｎｋ１００は、Ａｔｔａｃｈｅｄ．ＳＲＣステート（ＳＴ３）からＵｎａｔｔａｃｈｅｄ．ＳＮＫステート（ＳＴ４）へ遷移する。すると、図８（Ｄ）に示すように、ＰｏｗｅｒＢａｎｋ１００のＰｏｒｔ  ＲｏｌｅはＳｏｕｒｃｅからＳｉｎｋに変更される。なお、充電器３００のＰｏｒｔ  ＲｏｌｅはＳｏｕｒｃｅ固定である。
【００９０】
さらに、図８（Ｅ）に示すように、ＰｏｗｅｒＢａｎｋ１００と充電器３００とをＵＳＢケーブル２で接続すると、ＰｏｗｅｒＢａｎｋ１００と充電器３００との間で、ＵＳＢ  ＰＤ規格に従う通信などによって、遣り取りされる電圧および電流が決定され、充電器３００からＰｏｗｅｒＢａｎｋ１００へ電力供給が開始される。
【００９１】
このような一連の動作によって、ＰｏｗｅｒＢａｎｋ１００からＰＣ２００への電力供給後、ＰｏｗｅｒＢａｎｋ１００を外部電源によって再充電できる。
【００９２】
（ｃ５：利点）
実施の形態１においては、ＤＲＰ機能が実装されたＰｏｗｅｒＢａｎｋ１００がＬｏｗ  Ｂａｔｔｅｒｙ状態になると、ユーザが明示的な操作（例えば、ボタン１３０の押下）を行なった場合にのみ、規格（ＵＳＢ  Ｔｙｐｅ−Ｃ規格およびＵＳＢ  ＰＤ規格）に従うシーケンスが継続される。
【００９３】
このようなユーザの明示的な操作によって、上述の図７に示すように、ＰｏｗｅｒＢａｎｋ１００とＰＣ２００とを繋いだままにしておき、ＰＣ２００からＰｏｗｅｒＢａｎｋ１００へ電力が戻ることを許容する動作をユーザの判断で行なってもよい。なお、ＰＣ２００に電源アダプタ２０２を接続するか否かは、あくまでもユーザの判断とすることができる。
【００９４】
あるいは、上述の図８に示すように、ＰｏｗｅｒＢａｎｋ１００を再充電する目的で、まず接続先をＰＣ２００から充電器３００に変更した上で、ＰｏｗｅｒＢａｎｋ１００に対して明示的な操作を与えるようにしてもよい。
【００９５】
実施の形態１においては、ＰｏｗｅｒＢａｎｋ１００から外部デバイスに対して電力を供給し続けていたつもりが、ユーザが関与することなく、いつのまにか外部デバイスからＰｏｗｅｒＢａｎｋ１００へ電力が戻されるといった事態を回避できる。
【００９６】
［Ｄ．実施の形態２］
上述の実施の形態１に従うＰＤコントローラ１１０において採用されるＢａｔ．Ｅｍｐｔｙステート（図５のＳＴ７）は、標準的なシーケンスを実行するファームウェアを変更したファームウェア１１４を用意することで実現可能である。それに代えて、ハードウェアを利用して、実質的にＢａｔ．Ｅｍｐｔｙステートを実現してもよい。以下、ハードウェアを利用してＢａｔ．Ｅｍｐｔｙステートを実現する回路構成の一例について説明する。
【００９７】
図９は、実施の形態２に従うＰＤコントローラ１１０の回路構成の一例を示す模式図である。図９を参照して、ＰＤコントローラ１１０の信号伝送モジュール１１６は、第１通信ライン（ＣＣ１）２１および第２通信ライン（ＣＣ２）２２を介して、ＰＤ  ｃｏｍｍｕｎｉｃａｔｉｏｎに係るＰＤＯ情報を遣り取りする。
【００９８】
より具体的には、信号伝送モジュール１１６は、第１通信制御ブロック（Ｃｏｍｍ．  Ｂｌｏｃｋ）１１６１および第２通信制御ブロック（Ｃｏｍｍ．  Ｂｌｏｃｋ）１１６２を有している。
【００９９】
第１通信制御ブロック１１６１は、第１通信ライン２１を介して受信したデータを、プロセッサ１１２へ出力し、プロセッサ１１２からのデータを、第１通信ライン２１を介して送信する。同様に、第２通信制御ブロック１１６２は、第２通信ライン２２を介して受信したデータを、プロセッサ１１２へ出力し、プロセッサ１１２からのデータを、第２通信ライン２２を介して送信する。
【０１００】
信号伝送モジュール１１６は、接続先との接続を検出するために、通信ライン（第１通信ライン２１および第２通信ライン２２）と電源電位Ｖｓおよびグランド電位ＧＮＤとの間にそれぞれ接続された抵抗を有している。
【０１０１】
具体的には、第１通信ライン２１には、電源電位Ｖｓとの間に抵抗値Ｒｐをもつプルアップ抵抗１１６５が接続されており、グランド電位ＧＮＤとの間に抵抗値Ｒｄをもつプルダウン抵抗１１６６が接続されている。同様に、第２通信ライン２２には、電源電位Ｖｓとの間に抵抗値Ｒｐをもつプルアップ抵抗１１６７が接続されており、グランド電位ＧＮＤとの間に抵抗値Ｒｄをもつプルダウン抵抗１１６８が接続されている。
【０１０２】
第１通信ライン２１および第２通信ライン２２に存在する抵抗値Ｒｐ，Ｒｄを互いに検出することで、ＰｏｗｅｒＢｎａｋ１００と接続先との間の接続が検出される。
【０１０３】
このような接続を検出する仕組みを利用すれば、プルアップ抵抗１１６５，１１６７およびプルダウン抵抗１１６６，１１６８を通信ライン（第１通信ライン２１および第２通信ライン２２）と電気的に遮断することで、接続先との接続の検出を無効化できる。このような目的で、信号伝送モジュール１１６は、スイッチ１１６３，１１６４を有している。
【０１０４】
すなわち、スイッチ１１６３，１１６４は、通信ライン（第１通信ライン２１および第２通信ライン２２）から電源電位Ｖｓおよびグランド電位ＧＮＤへ繋がる経路を電気的に接続／遮断する。より具体的には、スイッチ１１６３は、プロセッサ１１２からの制御信号に従って、プルアップ抵抗１１６５およびプルダウン抵抗１１６６と第１通信ライン２１とを電気的に接続／遮断する。同様に、スイッチ１１６４は、プロセッサ１１２からの制御信号に従って、プルアップ抵抗１１６７およびプルダウン抵抗１１６８と第２通信ライン２２とを電気的に接続／遮断する。
【０１０５】
プロセッサ１１２は、Ｌｏｗ  Ｂａｔｔｅｒｙ状態になると、スイッチ１１６３，１１６４に対して遮断指令を与える。すると、プルアップ抵抗１１６５およびプルダウン抵抗１１６６は、第１通信ライン２１から切り離され、プルアップ抵抗１１６７およびプルダウン抵抗１１６８は、第２通信ライン２２から切り離される。そして、この切り離された状態が維持される。この結果、ＰｏｗｅｒＢａｎｋ１００のＰｏｒｔ  Ｒｏｌｅは、ＳｏｕｒｃｅおよびＳｉｎｋのいずれにもなることがなく、受給電動作を行なうためのステートに遷移できない。したがって、Ｂａｔ．Ｅｍｐｔｙステート（図５のＳＴ７）に維持されることになる。
【０１０６】
このように、ＰＤコントローラ１１０のプロセッサ１１２は、給電側（Ｓｏｕｒｃｅ）としてバッテリ１０６（二次電池）に蓄電されていた電力の接続先への供給中に、バッテリ１０６からの電力供給が不可能になると、信号伝送モジュール１１６のスイッチ１１６３，１１６４に制御信号を与えて、通信ラインから電源電位Ｖｓおよびグランド電位ＧＮＤへ繋がる経路を電気的に遮断する。
【０１０７】
その後、所定のユーザ操作（実施の形態２においては、ユーザによるボタン１３０（図４）の押下）を受けて、プロセッサ１１２は、スイッチ１１６３，１１６４に対して接続指令を与える。すると、プルアップ抵抗１１６５およびプルダウン抵抗１１６６は、第１通信ライン２１と電気的に接続されるともに、プルアップ抵抗１１６７およびプルダウン抵抗１１６８は、第２通信ライン２２と電気的に接続される。
【０１０８】
このように、受給電動作を再開させるためのユーザの意図的な関与を受けて、プルアップ抵抗１１６５，１１６７およびプルダウン抵抗１１６６，１１６８が通信ラインと電気的に接続される。
【０１０９】
図１０は、実施の形態２に従うＰｏｗｅｒＢａｎｋ１００の受給電動作に係る処理手順の要部を示すフローチャートである。図１０に示す各ステップは、典型的には、ＰＤコントローラ１１０のプロセッサ１１２が制御プログラムであるファームウェア１１４を実行することで実現される。したがって、図１０に示す各ステップの実行主体は、典型的には、プロセッサ１１２となる。
【０１１０】
図１０を参照して、プロセッサ１１２は、Ａｔｔａｃｈｅｄ．ＳＲＣステートにおいて、外部デバイスへの電力供給中において、バッテリ１０６の放電電圧が予め定められた値まで低下したか否かを判断する（ステップＳ１０１）。バッテリ１０６の放電電圧が予め定められた値まで低下していなければ（ステップＳ１０１においてＮＯ）、ステップＳ１０１の処理が繰り返される。
【０１１１】
バッテリ１０６の放電電圧が予め定められた値まで低下していれば（ステップＳ１０１においてＹＥＳ）、プロセッサ１１２は、スイッチ１１６３，１１６４に制御指令を与えて、プルアップ抵抗１１６５，１１６７およびプルダウン抵抗１１６６，１１６８を通信ライン（第１通信ライン２１および第２通信ライン２２）から切り離す（ステップＳ２０１）。
【０１１２】
そして、プロセッサ１１２は、所定のユーザ操作を受付けたか否かを判断する（ステップＳ２１１）。所定のユーザ操作を受付けなければ（ステップＳ２１１においてＮＯ）、ステップＳ２１１の判断が繰り返される。
【０１１３】
一方、所定のユーザ操作が受付けられると（ステップＳ２１１においてＹＥＳ）、プロセッサ１１２は、スイッチ１１６３，１１６４に制御指令を与えて、プルアップ抵抗１１６５，１１６７あるいはプルダウン抵抗１１６６，１１６８を通信ライン（第１通信ライン２１および第２通信ライン２２）と電気的に接続する（ステップＳ２１２）。これにより、Ｌｏｗ  Ｂａｔｔｅｒｙ状態での処理は終了する。
【０１１４】
上述した以外の構成および処理などは、上述の実施の形態１と同様であるので、ここでは、詳細な説明は繰り返さない。
【０１１５】
実施の形態２によれば、ＵＳＢ  Ｔｙｐｅ−Ｃ規格およびＵＳＢ  ＰＤ規格に従う標準的なＰＤコントローラに対して、僅かな変更を加えるだけで、上述したような課題を解決できるＰＤコントローラを実現できる。
【０１１６】
［Ｅ．実施の形態３］
上述の実施の形態１および２においては、ユーザの意図的な関与を示すユーザ操作として、ボタン１３０の操作を例示したが、これに限らず、任意のユーザ操作を受付ける入力デバイスを用いることができる。例えば、タッチパネル、画像入力（例えば、画像認識を用いたジェスチャ入力）、音声入力（例えば、ユーザの発話による指示）などのデバイスを用いてもよい。
【０１１７】
すなわち、ＰＤコントローラ１１０のプロセッサ１１２は、任意のユーザ操作を示す信号に応答して、予め定められた条件が満たされたと判断して、受電側（Ｓｉｎｋ）としてのシーケンスを実行するようにしてもよい。
【０１１８】
さらに、ユーザによる明示的な操作だけではなく、周囲環境などの情報に基づいて、ユーザの意図を暗示的に検出するようにしてもよい。
【０１１９】
例えば、光センサなどを用いて、一定の明るさまで明るくなったら、Ｂａｔ．Ｅｍｐｔｙステート（ＳＴ７）からの遷移を許容するようにしてもよい。これは、典型的には、夜中のうちにＰｏｗｅｒＢａｎｋ１００から外部デバイスへの電力の供給（充電動作）を行ない、朝になると、ＰｏｗｅｒＢａｎｋ１００の再充電を行なうようなシーンを想定している。
【０１２０】
あるいは、温度センサを用いて、周囲温度が所定値まで上昇したことを検知すると、Ｂａｔ．Ｅｍｐｔｙステート（ＳＴ７）からの遷移を許容するようにしてもよい。上述の光センサと同様に、例えば、夜中のうちにＰｏｗｅｒＢａｎｋ１００から外部デバイスへの電力の供給（充電動作）を行ない、朝になると、ＰｏｗｅｒＢａｎｋ１００の再充電を行なうようなシーンを想定している。
【０１２１】
実施の形態３によれば、各ユーザのＰｏｗｅｒＢａｎｋ１００の利用形態に応じて、任意の入力デバイスあるいはセンサなどを用いて、ユーザの意図を明示的または暗示的に検出して、受給電動作の中断あるいは続行を判断できる。これによって、ユーザの意図しない受給電動作が自動的に実行される事態を回避できる。
【０１２２】
［Ｆ．実施の形態４］
上述の実施の形態１〜３においては、ステート遷移の保留および再開をボタンなどのハードウェアを用いて実現しているが、実施の形態４においては、ソフトウェア処理により実現する構成例を説明する。
【０１２３】
（ｆ１：概要）
実施の形態４においては、Ｓｏｕｒｃｅとして機能するデバイスとＳｉｎｋとして機能するデバイスが結合（Ａｔｔａｃｈ）した後に実行されるＵＳＢ  ＰＤ規格に従う通信（ＰＤ  ｃｏｍｍｕｎｉｃａｔｉｏｎ）により遣り取りされるＰＤＯ情報を動作続行条件に用いる。ＰＤＯ情報が予め定められた動作続行条件が満たされない限りは、受給電動作を自動的には開始させないように制御する。言い換えれば、動作続行条件が満たされることを条件にして、受電側のシーケンスが実行される。
【０１２４】
ＰｏｗｅｒＢａｎｋ１００がＬｏｗ  Ｂａｔｔｅｒｙ状態になった後、Ｓｏｕｒｃｅのデバイスと結合されると、当該Ｓｏｕｒｃｅのデバイスからの電力供給を自動的に受けることになる。実施の形態４においては、予め定められた動作続行条件（Ｌｏｗ  Ｂａｔｔｅｒｙ状態であって、かつ、接続先からの電力を受けることが予定されている状態）が満たされていない場合には、接続先との接続確認のステートまで一旦戻るという新たな遷移フローが追加される。
【０１２５】
このように、実施の形態４においては、ＰＤコントローラ１１０のプロセッサ１１２は、給電側（Ｓｏｕｒｃｅ）としてバッテリ１０６（二次電池）に蓄電されていた電力の接続先への供給中に、バッテリ１０６からの電力供給が不可能になると、予め定められた動作続行条件が満たされない限り、受電側（Ｓｉｎｋ）としてのシーケンスの実質的な実行を停止する。
【０１２６】
（ｆ２：ステート遷移）
次に、実施の形態４に従うＰｏｗｅｒＢａｎｋ１００のステート遷移について説明する。図１１は、実施の形態４に従うＰｏｗｅｒＢａｎｋ１００のステート遷移の要部を示す図である。図１１に示すステート遷移は、図１に示すＵＳＢ  Ｔｙｐｅ−Ｃ規格に従うＤＲＰのＰｏｒｔ  Ｒｏｌｅを担当するデバイスのステート遷移に比較して、Ａｔｔａｃｈｅｄ．ＳＮＫステート（ＳＴ６）からＵｎａｔｔａｃｈｅｄ．ＳＮＫステート（ＳＴ４）へ遷移する遷移フローが追加されている点が異なっている。図１１において、図１に示すステートと実質的に同一のステートについては、同一の参照符号を付している。また、図１を参照して説明したステートについては、その説明は繰り返さない。
【０１２７】
図１１を参照して、ＰｏｗｅｒＢａｎｋ１００は、Ａｔｔａｃｈｅｄ．ＳＲＣステート（ＳＴ３）において、外部デバイスに電力を供給するが、バッテリ１０６（二次電池）の放電電圧が予め定められた値まで低下すると、Ｌｏｗ  Ｂａｔｔｅｒｙ状態を経て、Ｕｎａｔｔａｃｈｅｄ．ＳＮＫステート（ＳＴ４）へ遷移する。このステート遷移に伴って、ＰｏｗｅｒＢａｎｋ１００のＰｏｒｔ  ＲｏｌｅはＳｏｕｒｃｅからＳｉｎｋに変更され、ＰＣ２００のＰｏｒｔ  ＲｏｌｅはＳｉｎｋからＳｏｕｒｃｅに変更される。
【０１２８】
そして、ＰｏｗｅｒＢａｎｋ１００とＰＣ２００とは、ＵＳＢ  Ｔｙｐｅ−Ｃ規格に従って再度接続される。この再接続にあたって、ＰｏｗｅｒＢａｎｋ１００は、ＵＳＢ  ＰＤ規格に従う通信（ＰＤ  ｃｏｍｍｕｎｉｃａｔｉｏｎ）を実行して、供給される電圧および電流の大きさなどが決定される。すなわち、受電側（Ｓｉｎｋ）としてのシーケンスは、接続先に関する情報であるＰＤＯ情報を受け取る処理を含む。ＰＤ  ｃｏｍｍｕｎｉｃａｔｉｏｎにおいて遣り取りされるＰＤＯ情報は、Ｓｏｕｒｃｅのデバイスに関する情報が含まれている。実施の形態４において用いられる動作続行条件は、接続先に関する情報であるＰＤＯ情報の少なくとも一部を含む。そして、ＰＤＯ情報を利用した動作続行条件が満たされていない場合には、一旦、Ｕｎａｔｔａｃｈｅｄ．ＳＮＫステート（ＳＴ４）へ遷移する。
【０１２９】
一方、動作続行条件が満たされている場合には、ＵＳＢ  Ｔｙｐｅ−Ｃ規格およびＵＳＢ  ＰＤ規格に従うシーケンスに従って、Ｓｏｕｒｃｅからの電力供給が開始される。
【０１３０】
このように、実施の形態４においては、Ｌｏｗ  Ｂａｔｔｅｒｙ状態になった後、Ｐｏｒｔ  ＲｏｌｅをＳｏｕｒｃｅからＳｉｎｋに変更して受給電動作を開始する前に、ＳｏｕｒｃｅからのＰＤＯ情報を用いた動作続行条件を判断する。これによって、ユーザが意図しない受給電動作を回避できる。
【０１３１】
（ｆ３：ＰＤＯ情報および動作継続条件）
まず、ＰＤ  ｃｏｍｍｕｎｉｃａｔｉｏｎによって遣り取りされるＰＤＯ情報の詳細について説明する。ＵＳＢ  ＰＤ規格によれば、ＰＤＯ情報は以下のような情報を含む。
【０１３２】
（１）Ｆｉｘ  ｓｕｐｐｌｙ  ｏｒ  ｎｏｔ
（２）ＤＲＰ（Ｄｕａｌ  Ｒｏｌｅ  Ｐｏｗｅｒ）  ｏｒ  ｎｏｔ
（３）ＵＳＢ  Ｓｕｓｐｅｎｄｅｄ  Ｓｕｐｐｏｒｔｅｄ  ｏｒ  ｎｏｔ
（４）Ｕｎｃｏｎｓｔｒａｉｎｅｄ  Ｐｏｗｅｒ  ｏｒ  ｎｏｔ
（５）ＵＳＢ  Ｃｏｍｍｕｎｉｃａｔｉｏｎ  Ｃａｐａｌｅ（ｙｅｓ  ｏｒ  ｎｏ）
（６）Ｄｕａｌ  Ｒｏｌｅ  Ｄａｔａ  ｏｒ  ｎｏｔ
（７）Ｕｎｃｈｕｎｋｅｄ  Ｅｘｔｅｎｄｅｄ  Ｍｅｓｓａｇｅｓ  Ｓｕｐｐｏｒｔｅｄ  ｏｒ  ｎｏｔ
（８）Ｐｅａｋ  Ｃｕｒｒｅｎｔ
（９）Ｖｏｌｔａｇｅ（ｉｎ  ５０ｍＶ  ｕｎｉｔｓ）
（１０）Ｍａｘｉｍｕｍ  Ｃｕｒｒｅｎｔ（ｉｎ  １０ｍＡ  ｕｎｉｔｓ）
上述したようなＰＤＯ情報は、供給可能な電圧および電流の情報以外にも、各種情報を含む。ＰｏｗｅｒＢａｎｋ１００のＰｏｒｔ  ＲｏｌｅがＳｉｎｋとなり、外部デバイスから電力の供給を受ける受給電動作を続行させるべき条件（動作続行条件）として、接続先のＳｏｕｒｃｅにＤＲＰ機能が実装されているか否か（上述の（２）ＤＲＰ（Ｄｕａｌ  Ｒｏｌｅ  Ｐｏｗｅｒ）  ｏｒ  ｎｏｔ）という情報を用いることが好ましい。上述したように、本実施の形態は、２つのデバイス双方にＤＲＰ機能が実装されている場合に生じる課題を解決することを目的としているからである。
【０１３３】
より具体的には、動作続行条件は、「（２）ＤＲＰ（Ｄｕａｌ  Ｒｏｌｅ  Ｐｏｗｅｒ）」が「Ｆａｌｓｅ」であることを含む。逆に言えば、Ｌｏｗ  Ｂａｔｔｅｒｙ状態になった後、受電側（Ｓｉｎｋ）としてのシーケンスを実行するための条件としては、接続先が給電側（Ｓｏｕｒｃｅ）および受電側（Ｓｉｎｋ）のいずれにもなり得るＤＲＰではないことを含む。
【０１３４】
さらに、動作続行条件としては、「（４）Ｕｎｃｏｎｓｔｒａｉｎｅｄ  Ｐｏｗｅｒ」が「Ｔｒｕｅ」（すなわち、Ｓｏｕｒｃｅから供給される電力に制約が存在しない）であることを含めてもよい。Ｓｏｕｒｃｅから供給される電力に制約が存在しないとは、Ｓｏｕｒｃｅのデバイスに対して電源アダプタなどが接続されており、供給可能な電力が制限されていないことを意味する。逆に言えば、Ｌｏｗ  Ｂａｔｔｅｒｙ状態になった後、受電側（Ｓｉｎｋ）としてのシーケンスを中断するための条件としては、接続先が供給する予定の電力に制約が存在することを含む。
【０１３５】
本実施の形態において用いられる動作続行条件は、接続先のＳｏｕｒｃｅにＤＲＰ機能が実装されていないことを含み、さらに好ましくは、接続先のＳｏｕｒｃｅから供給される電力に制約が存在しないことを含むようにしてもよい。これら２つの条件を動作続行条件として用いる場合には、両条件の論理和が用いられる。すなわち、接続先のＳｏｕｒｃｅにＤＲＰ機能が実装されていないこと、および、接続先のＳｏｕｒｃｅから供給される電力に制約が存在しないことのうち、いずれか一方に該当すると、動作続行条件が満たされることになり、受電側（Ｓｉｎｋ）としてのシーケンスが実行されることになる。
【０１３６】
例えば、ＰｏｗｅｒＢａｎｋ１００から、電源アダプタが接続されていないＰＣ２００に電力を供給している途中でＬｏｗ  Ｂａｔｔｅｒｙ状態になった場合を想定する。ＰｏｗｅｒＢａｎｋ１００とＰＣ２００との間のＵＳＢケーブル２を繋いだままにしておくと、ＰｏｗｅｒＢａｎｋ１００は、ＰＣ２００からのＰＤＯ情報に基づいて、「接続先はＤＲＰ機能を実装しており、また、電源アダプタなどにも接続されていない」と認識する。そして、ＰｏｗｅｒＢａｎｋ１００は、受電動作を開始せずに、接続先との接続確認のステートであるＵｎａｔｔａｃｈｅｄ．ＳＮＫステート（図１１のＳＴ４）まで一旦戻ることになる。その後、Ｕｎａｔｔａｃｈｅｄ．ＳＮＫ（図１１のＳＴ４）、ＡｔｔａｃｈＷａｉｔ．ＳＮＫ（図１１のＳＴ５）、および、Ａｔｔａｃｈｅｄ．ＳＮＫ（図１１のＳＴ６）の順でステート遷移して、再度、ＰＤ  ｃｏｍｍｕｎｉｃａｔｉｏｎが実行される。ＰＣ２００の状態が変化しない限り、動作続行条件が満たされないので、Ａｔｔａｃｈｅｄ．ＳＮＫからＵｎａｔｔａｃｈｅｄ．ＳＮＫに戻るステート遷移が繰り返されることになる。すなわち、ＰＣ２００の状態が変化しない限り、ＰｏｗｅｒＢａｎｋ１００は受電動作を開始することはない。
【０１３７】
上述したような動作続行条件を採用することで、ＰｏｗｅｒＢａｎｋ１００から外部デバイスに対して電力を供給し続けていたつもりが、ユーザが関与することなく、いつのまにか外部デバイスからＰｏｗｅｒＢａｎｋ１００へ電力が戻されるといった事態を回避できる。
【０１３８】
（ｆ４：処理手順）
次に、実施の形態４に従うＰｏｗｅｒＢａｎｋ１００で実行される処理手順について説明する。図１２は、実施の形態４に従うＰｏｗｅｒＢａｎｋ１００の受給電動作に係る処理手順を示すフローチャートである。図１２に示す各ステップは、典型的には、ＰＤコントローラ１１０のプロセッサ１１２が制御プログラムであるファームウェア１１４を実行することで実現される。したがって、図１２に示す各ステップの実行主体は、典型的には、プロセッサ１１２となる。
【０１３９】
図１２に示すフローチャートは、図３に示すフローチャートに比較して、ステップＳ３０の処理が追加されている点が異なっている。図１２において、図３に示す処理と実質的に同一の処理については、同一の参照符号を付している。また、図３を参照して説明した処理については、その説明は繰り返さない。
【０１４０】
図１２を参照して、Ｕｎａｔｔａｃｈｅｄ．ＳＮＫステートにおいて、ＰｏｗｅｒＢａｎｋ１００は、バッテリ１０６（二次電池）の放電電圧が予め定められた値まで低下して、Ｌｏｗ  Ｂａｔｔｅｒｙ状態になっているか否かを判断する（ステップＳ１０）。Ｌｏｗ  Ｂａｔｔｅｒｙ状態になっていなければ（ステップＳ１０においてＮＯ）、ステップＳ８以下の処理が繰り返される。
【０１４１】
一方、Ｌｏｗ  Ｂａｔｔｅｒｙ状態になると（ステップＳ１０においてＹＥＳ）、ＰｏｗｅｒＢａｎｋ１００は、Ｕｎａｔｔａｃｈｅｄ．ＳＮＫステートへ遷移する（ステップＳ１１）。そして、ＰｏｗｅｒＢａｎｋ１００は、所定の条件が満たされると、ＡｔｔａｃｈＷａｉｔ．ＳＮＫステートへの遷移（ステップＳ１４）、および、Ａｔｔａｃｈｅｄ．ＳＮＫステートへの遷移（ステップＳ１６）を経て、ＰＤ  ｃｏｍｍｕｎｉｃａｔｉｏｎを実行する（ステップＳ１７）。
【０１４２】
このとき、ＰｏｗｅｒＢａｎｋ１００は、ＰＤ  ｃｏｍｍｕｎｉｃａｔｉｏｎによって取得されるＰＤＯ情報に基づいて、動作続行条件（「Ｃｏｎｔｉｎｕａｔｉｏｎ  Ｃｏｎｄｉｔｉｏｎ」と表記する。）が満たされているか否かを判断する（ステップＳ３０）。動作続行条件が満たされていなければ（ステップＳ３０においてＮＯ）、ＰｏｗｅｒＢａｎｋ１００は、Ｕｎａｔｔａｃｈｅｄ．ＳＮＫステートへ遷移する。
【０１４３】
これに対して、動作続行条件が満たされていなければ（ステップＳ３０においてＹＥＳ）、ＰｏｗｅｒＢａｎｋ１００は、Ｓｏｕｒｃｅのデバイスからの電力の受け取りを開始する（ステップＳ１８）。
【０１４４】
このように、ＳｏｕｒｃｅからのＰＤＯ情報に基づく動作続行条件が満たされない限りにおいては、ＰｏｗｅｒＢａｎｋ１００の受電動作は開始されないことになる。
【０１４５】
（ｆ５：動作例）
次に、実施の形態４に従うＰｏｗｅｒＢａｎｋ１００のいくつかの動作例について説明する。
【０１４６】
図１３は、実施の形態４に従うＰｏｗｅｒＢａｎｋ１００の動作例を示す模式図である。図１３には、ＰｏｗｅｒＢａｎｋ１００からＰＣ２００への電力供給時の動作を示す。
【０１４７】
図１３（Ａ）を参照して、まず、給電側のＰｏｗｅｒＢａｎｋ１００と受電を期待するＰＣ２００とを接続する。すると、ＰｏｗｅｒＢａｎｋ１００のＰｏｒｔ  ＲｏｌｅはＳｏｕｒｃｅとなり、ＰｏｗｅｒＢａｎｋ１００からＰＣ２００への電力供給が開始される（図１１に示すシーケンスＳＱ１〜ＳＱ３のステート遷移に相当）。
【０１４８】
その後、ＰｏｗｅｒＢａｎｋ１００からＰＣ２００への電力供給が継続され、最終的に、ＰｏｗｅｒＢａｎｋ１００の二次電池の放電電圧が予め定められた値まで低下すると、図１３（Ｂ）に示すように、ＰｏｗｅｒＢａｎｋ１００はＬｏｗ  Ｂａｔｔｅｒｙ状態となり、ＰｏｗｅｒＢａｎｋ１００からＰＣ２００への電力供給が停止される。
【０１４９】
図１３（Ｃ）に示すように、ＰｏｗｅｒＢａｎｋ１００とＰＣ２００との間のＵＳＢケーブル２を繋いだままにしておくと、ＰＣ２００にもＤＲＰ機能が実装されている場合には、ＰｏｗｅｒＢａｎｋ１００のＰｏｒｔ  ＲｏｌｅはＳｏｕｒｃｅからＳｉｎｋに変更され、ＰＣ２００のＰｏｒｔ  ＲｏｌｅはＳｉｎｋからＳｏｕｒｃｅに変更される（図１１に示すシーケンスＳＱ５，ＳＱ６のステート遷移に相当）。そして、ＰｏｗｅｒＢａｎｋ１００とＰＣ２００との間で、ＰＤ  ｃｏｍｍｕｎｉｃａｔｉｏｎが実行される。
【０１５０】
図１３（Ｄ）に示すように、ＰＣ２００に電源アダプタ２０２が接続されていない状態においては、「Ｕｎｃｏｎｓｔｒａｉｎｅｄ  Ｐｏｗｅｒ」＝「Ｆａｌｓｅ」である。また、ＰＣ２００にはＤＲＰ機能が実装されているので、「ＤＲＰ」＝「Ｔｒｕｅ」である。ＰｏｗｅｒＢａｎｋ１００は、ＰＤ  ｃｏｍｍｕｎｉｃａｔｉｏｎ中に、これらのＰＤＯ情報に基づいて、動作続行条件に該当すると判断し、受給電動作を中断する。すなわち、ＰｏｗｅｒＢａｎｋ１００とＰＣ２００との間では、供給される電圧および電流の大きさなどが決定されず、受給電動作が開始されない（図１１に示すシーケンスＳＱ７ＡならびにシーケンスＳＱ５，ＳＱ６に相当）。
【０１５１】
一方、図１３（Ｅ）に示すように、ＰＣ２００に電源アダプタ２０２が接続されている状態においては、「Ｕｎｃｏｎｓｔｒａｉｎｅｄ  Ｐｏｗｅｒ」＝「Ｔｒｕｅ」となるので、ＰｏｗｅｒＢａｎｋ１００は、ＰＤ  ｃｏｍｍｕｎｉｃａｔｉｏｎ中に、これらのＰＤＯ情報に基づいて、動作続行条件が満たされていると判断し、受給電動作を継続する。すなわち、ＰｏｗｅｒＢａｎｋ１００とＰＣ２００との間で、供給される電圧および電流の大きさなどが決定され、受給電動作が開始される（図１１に示すシーケンスＳＱ７に相当）。
【０１５２】
上述したように、動作続行条件が満たされていない場合には、Ｕｎａｔｔａｃｈｅｄ．ＳＮＫステート（ＳＴ４）、ＡｔｔａｃｈＷａｉｔ．ＳＮＫステート（ＳＴ５）、Ａｔｔａｃｈｅｄ．ＳＮＫステート（ＳＴ６）の順でステート遷移が繰り返される。このようなステート遷移のループから抜け出すためには、ユーザの明示的な操作が必要となっている。図１３に示す例では、ユーザの明示的な操作は、ＰＣ２００に電源アダプタ２０２を接続することに相当する。電源アダプタ２０２を接続することによって、「Ｕｎｃｏｎｓｔｒａｉｎｅｄ  Ｐｏｗｅｒ」＝「Ｆａｌｓｅ」の条件が成立しなくなる（すなわち、「Ｕｎｃｏｎｓｔｒａｉｎｅｄ  Ｐｏｗｅｒ」＝「Ｔｒｕｅ」となる。）。これによって、動作続行条件が満たされるため、ＰｏｗｅｒＢａｎｋ１００は、受給電動作を継続し、ＰＣ２００からの電力の供給を受けることになる。
【０１５３】
ユーザの明示的な別の操作として、Ｌｏｗ  Ｂａｔｔｅｒｙ状態になったＰｏｗｅｒＢａｎｋ１００を充電器で再充電するようにしてもよい。
【０１５４】
図１４は、実施の形態４に従うＰｏｗｅｒＢａｎｋ１００の別の動作例を示す模式図である。
【０１５５】
図１４（Ａ）を参照して、まず、給電側のＰｏｗｅｒＢａｎｋ１００と受電を期待するＰＣ２００とを接続する。すると、ＰｏｗｅｒＢａｎｋ１００のＰｏｒｔ  ＲｏｌｅはＳｏｕｒｃｅとなり、ＰｏｗｅｒＢａｎｋ１００からＰＣ２００への電力供給が開始される。
【０１５６】
その後、ＰｏｗｅｒＢａｎｋ１００からＰＣ２００への電力供給が継続され、最終的に、ＰｏｗｅｒＢａｎｋ１００の二次電池の放電電圧が予め定められた値まで低下すると、図１４（Ｂ）に示すように、ＰｏｗｅｒＢａｎｋ１００はＬｏｗ  Ｂａｔｔｅｒｙ状態となり、ＰｏｗｅｒＢａｎｋ１００からＰＣ２００への電力供給が停止される。
【０１５７】
ＰｏｗｅｒＢａｎｋ１００とＰＣ２００との間のＵＳＢケーブル２を繋いだままにしておくと、ＰＣ２００にもＤＲＰ機能が実装されている場合には、ＰｏｗｅｒＢａｎｋ１００のＰｏｒｔ  ＲｏｌｅはＳｏｕｒｃｅからＳｉｎｋに変更され、ＰＣ２００のＰｏｒｔ  ＲｏｌｅはＳｉｎｋからＳｏｕｒｃｅに変更される。そして、ＰｏｗｅｒＢａｎｋ１００とＰＣ２００との間で、ＰＤ  ｃｏｍｍｕｎｉｃａｔｉｏｎが実行される。
【０１５８】
図１４（Ｃ）に示すように、ＰＣ２００に電源アダプタ２０２が接続されていない状態においては、「Ｕｎｃｏｎｓｔｒａｉｎｅｄ  Ｐｏｗｅｒ」＝「Ｆａｌｓｅ」である。また、ＰＣ２００にはＤＲＰ機能が実装されているので、「ＤＲＰ」＝「Ｔｒｕｅ」である。ＰｏｗｅｒＢａｎｋ１００は、ＰＤ  ｃｏｍｍｕｎｉｃａｔｉｏｎ中に、これらのＰＤＯ情報に基づいて、動作続行条件が満たされていないと判断し、受給電動作を中断する。すなわち、ＰｏｗｅｒＢａｎｋ１００とＰＣ２００との間では、供給される電圧および電流の大きさなどが決定されず、受給電動作が開始されない。
【０１５９】
このような状態において、図１４（Ｄ）に示すように、ユーザは、ＰｏｗｅｒＢａｎｋ１００とＰＣ２００とを接続するＵＳＢケーブル２を取り外すとともに、充電器（Ｃｈａｒｇｅｒ）３００を準備する。
【０１６０】
続いて、図１４（Ｅ）に示すように、ＰｏｗｅｒＢａｎｋ１００と充電器３００とをＵＳＢケーブル２で接続すると、ＰｏｗｅｒＢａｎｋ１００と充電器３００との間で、ＰＤ  ｃｏｍｍｕｎｉｃａｔｉｏｎが実行される。ここで、充電器３００のＰｏｒｔ  ＲｏｌｅはＳｏｕｒｃｅ固定であり、ＰｏｗｅｒＢａｎｋ１００のＰｏｒｔ  ＲｏｌｅはＳｏｕｒｃｅからＳｉｎｋに固定される。充電器３００から送信されるＰＤＯ情報において、「ＤＲＰ」＝「Ｆａｌｓｅ」であり、「Ｕｎｃｏｎｓｔｒａｉｎｅｄ  Ｐｏｗｅｒ」＝「Ｔｒｕｅ」である。ＰｏｗｅｒＢａｎｋ１００は、ＰＤ  ｃｏｍｍｕｎｉｃａｔｉｏｎ中に、これらのＰＤＯ情報に基づいて、動作続行条件が満たされていると判断し、受給電動作を継続する。すなわち、ＰｏｗｅｒＢａｎｋ１００と充電器３００との間で、供給される電圧および電流の大きさなどが決定され、充電器３００からＰｏｗｅｒＢａｎｋ１００へ電力供給が開始される。
【０１６１】
このような一連の動作によって、ＰｏｗｅｒＢａｎｋ１００からＰＣ２００への電力供給後、ＰｏｗｅｒＢａｎｋ１００を充電器３００によって再充電できる。
【０１６２】
上述したように、動作続行条件が満たされない限り、Ｕｎａｔｔａｃｈｅｄ．ＳＮＫステート（ＳＴ４）、ＡｔｔａｃｈＷａｉｔ．ＳＮＫステート（ＳＴ５）、Ａｔｔａｃｈｅｄ．ＳＮＫステート（ＳＴ６）の順でステート遷移が繰り返される。このようなステート遷移のループから抜け出すためには、ユーザの明示的な操作が必要となっている。図１４に示す例では、ユーザの明示的な操作は、ＰｏｗｅｒＢａｎｋ１００に接続されていたＰＣ２００を取り外して、充電器３００を新たに接続することに相当する。ＰｏｗｅｒＢａｎｋ１００に充電器３００を接続することによって、「ＤＲＰ」＝「Ｔｒｕｅ」の条件、および、「Ｕｎｃｏｎｓｔｒａｉｎｅｄ  Ｐｏｗｅｒ」＝「Ｆａｌｓｅ」の条件がいずれも成立しなくなる。これによって、動作続行条件が満たされるようになり、ＰｏｗｅｒＢａｎｋ１００は、受給電動作を継続し、充電器３００からの電力の供給を受けることになる。
【０１６３】
なお、図１４においては、ＰｏｗｅｒＢａｎｋ１００に充電器３００を接続して、再充電する動作例を示したが、給電ポートおよび受電ポートをそれぞれ有しているＰｏｗｅｒＢａｎｋを用いて再充電することもできる。例えば、ユーザは、別のＰｏｗｅｒＢａｎｋでＰｏｗｅｒＢａｎｋ１００を充電することを期待して、Ｌｏｗ  Ｂａｔｔｅｒｙ状態のＰｏｗｅｒＢａｎｋ１００と、別のＰｏｗｅｒＢａｎｋの充電ポートとを接続する。
【０１６４】
この場合、別のＰｏｗｅｒＢａｎｋの給電ポートについてのＰｏｒｔ  ＲｏｌｅはＳｉｎｋ固定であり、充電ポートについてのＰｏｒｔ  ＲｏｌｅはＳｏｕｒｃｅ固定である。そのため、別のＰｏｗｅｒＢａｎｋから送信されるＰＤＯ情報において、「ＤＲＰ」＝「Ｆａｌｓｅ」である。したがって、ＰｏｗｅｒＢａｎｋ１００と別のＰｏｗｅｒＢａｎｋの充電ポートとを接続した場合には、上述したようなステート遷移のループから抜け出して、受給電動作が実行されることになる。
【０１６５】
（ｆ６：利点）
実施の形態４においては、ＤＲＰ機能が実装されたＰｏｗｅｒＢａｎｋ１００がＬｏｗ  Ｂａｔｔｅｒｙ状態になると、ユーザの明示的な操作（例えば、接続先の状態を変更する）を行なった場合にのみ、規格（ＵＳＢ  Ｔｙｐｅ−Ｃ規格およびＵＳＢ  ＰＤ規格）に従うシーケンスが継続される。
【０１６６】
上述の図１３に示すように、ＰｏｗｅｒＢａｎｋ１００とＰＣ２００とを繋いだままにしておき、ＰＣ２００に電源アダプタ２０２を接続するなどの、ＰＣ２００からＰｏｗｅｒＢａｎｋ１００へ電力が戻ることが許容できる状態に変更することで、受給電動作を継続させるようにできる。
【０１６７】
あるいは、上述の図１４に示すように、ＰｏｗｅｒＢａｎｋ１００を再充電する目的で、まず接続先をＰＣ２００から充電器３００に変更した上で、受給電動作を継続させてもよい。
【０１６８】
実施の形態４においては、ＰｏｗｅｒＢａｎｋ１００から外部デバイスに対して電力を供給し続けていたつもりが、ユーザが関与することなく、いつのまにか外部デバイスからＰｏｗｅｒＢａｎｋ１００へ電力が戻されるといった事態を回避できる。
【０１６９】
［Ｇ．実施の形態５］
上述の実施の形態１〜４においては、プロセッサ１１２がファームウェア１１４を実行することで、上述したようなＰＤコントローラ１１０に係る処理の実行および機能の提供を実現する。
【０１７０】
プロセッサ１１２が実行するファームウェア１１４は、制御プログラムであり、外部からインストールまたは更新が可能になっている。ファームウェア１１４は、例えば、非一時的（non-transitory）な記録媒体に格納された状態で流通し、ＰＤコントローラ１１０内の記憶領域にインストールまたは更新（アップデート）されてもよい。非一時的な記録媒体としては、光学ディスクなどの光学記録媒体、フラッシュメモリなどの半導体記録媒体、ハードディスクまたはストレージテープなどの磁気記録媒体、ＭＯ（Magneto-Optical disk）などの光磁気記録媒体を用いてもよい。すなわち、本実施の形態は、上述したような処理および機能を実現するためのコンピュータ読取可能な制御プログラム、および、当該制御プログラムを格納した記録媒体も含み得る。
【０１７１】
別の形態として、インターネットまたはイントラネットを介してサーバ装置からファームウェア１１４をダウンロードするようにしてもよい。
【０１７２】
当業者であれば、本実施の形態が実装される時代に応じた技術を適宜用いて、本実施の形態に従うＰＤコントローラおよびＰＤコントローラを含むデバイスを設計するであろう。
【０１７３】
［Ｈ．実施の形態６］
上述の実施の形態１〜５においては、プロセッサ１１２がファームウェア１１４を実行することで、上述したようなＰＤコントローラ１１０に係る処理の実行および機能の提供を実現する。但し、このようなソフトウェア実装ではなく、一部または全部をハードウェア実装としてもよい。ハードウェア実装とする場合には、例えば、ＡＳＩＣ（Application Specific Integrated Circuit）やＦＰＧＡ（Field-Programmable Gate Array）といったハードワイヤードなデバイスを採用してもよい。
【０１７４】
当業者であれば、本実施の形態が実装される時代に応じた技術を適宜用いて、本実施の形態に従うＰＤコントローラおよびＰＤコントローラを含むデバイスを設計するであろう。
【０１７５】
［Ｉ．まとめ］
本実施の形態によれば、給電側から外部デバイスへの給電を一旦開始すると、その後に給電側の二次電池に蓄電されていた電力がなくなりＬｏｗ  Ｂａｔｔｅｒｙ状態となり、そのままＵＳＢケーブルを繋いだままにしておいても、受給電の役割が入れ替わることがない。そのため、当初は受電側であった外部デバイスの二次電池から当初は給電側であった二次電池に電力が戻ってくるような事象が生じない。
【０１７６】
このように、両者がＤＲＰに対応したデバイス間で、一方から他方への給電中に給電側がＬｏｗ  Ｂａｔｔｅｒｙ状態になり、そのまま放っておいても、ユーザの関与がなければ、当初の受電側から当初の給電側に電力が戻るような事態を回避できる。
【０１７７】
ユーザの関与としては、ユーザによる明示的なボタン操作、受電側への電源アダプタの接続、受電側の充電器への変更、などが挙げられる。
【０１７８】
以上、本発明者によってなされた発明を実施の形態に基づき具体的に説明したが、本発明は上記実施の形態に限定されるものではなく、その要旨を逸脱しない範囲で種々変更可能であることは言うまでもない。
【符号の説明】
【０１７９】
２  ＵＳＢケーブル、２１  第１通信ライン、２２  第２通信ライン、１００  ＰｏｗｅｒＢａｎｋ、１０２  コネクタ、１０４  電源管理部、１０６  バッテリ、１１０  ＰＤコントローラ、１１２  プロセッサ、１１４  ファームウェア、１１６  信号伝送モジュール、１１８  制御インターフェース、１３０  ボタン、２００  ＰＣ、２０２  電源アダプタ、３００  充電器、１１６１  第１通信制御ブロック、１１６２  第２通信制御ブロック、１１６３，１１６４  スイッチ、１１６５，１１６７  プルアップ抵抗、１１６６，１１６８  プルダウン抵抗、ＧＮＤ  グランド電位、Ｖｓ  電源電位。
【図１】
2019213325.tif 000003
【図２】
2019213325.tif 000004
【図３】
2019213325.tif 000005
【図４】
2019213325.tif 000006
【図５】
2019213325.tif 000007
【図６】
2019213325.tif 000008
【図７】
2019213325.tif 000009
【図８】
2019213325.tif 000010
【図９】
2019213325.tif 000011
【図１０】
2019213325.tif 000012
【図１１】
2019213325.tif 000013
【図１２】
2019213325.tif 000014
【図１３】
2019213325.tif 000015
【図１４】
2019213325.tif 000016