(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2022-06-01
(45)【発行日】2022-06-09
(54)【発明の名称】コントローラ、制御方法、制御プログラム
(51)【国際特許分類】
H02J 7/00 20060101AFI20220602BHJP
G06F 1/26 20060101ALI20220602BHJP
【FI】
H02J7/00 H
G06F1/26
(21)【出願番号】P 2018158424
(22)【出願日】2018-08-27
【審査請求日】2021-01-04
(73)【特許権者】
【識別番号】302062931
【氏名又は名称】ルネサスエレクトロニクス株式会社
(74)【代理人】
【識別番号】110001195
【氏名又は名称】特許業務法人深見特許事務所
(72)【発明者】
【氏名】木下 優
【審査官】坂東 博司
(56)【参考文献】
【文献】特開2018-007451(JP,A)
【文献】米国特許出願公開第2018/0004696(US,A1)
【文献】米国特許出願公開第2015/0268688(US,A1)
【文献】米国特許出願公開第2016/0188514(US,A1)
【文献】特開2019-164777(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
H02J 7/00
G06F 1/26
(57)【特許請求の範囲】
【請求項1】
USB(Universal Serial Bus) Type-C規格に従って、給電側および受電側のいずれにもなり得るDRP(Dual Role Power)に対応したポートを提供するためのコントローラであって、
バッテリの充放電を制御するための電源管理部に結合されたステート管理部と、
前記ステート管理部からの指示に従って、USBケーブル内の通信ラインを介して接続先との間で信号を遣り取りする信号伝送モジュールとを備え、
前記信号伝送モジュールは、給電側を示す第1の抵抗または受電側を示す第2の抵抗を、前記通信ラインに選択的に接続することが可能であり、
前記ステート管理部は、
給電側を示す前記第1の抵抗を前記通信ラインに接続して、前記バッテリに蓄えられた電力を前記接続先へ供給中に、前記接続先への電力供給ができなくなると、前記第1の抵抗を前記通信ラインに接続した状態を維持したまま、前記接続先への電力供給を停止
し、
前記接続先との接続が切断されると、給電側を示す前記第1の抵抗に代えて、受電側を示す前記第2の抵抗を前記通信ラインに接続する、コントローラ。
【請求項2】
前記ステート管理部は、前記通信ラインがオープン状態になると、前記接続先との接続が切断されたと判断する、請求項
1に記載のコントローラ。
【請求項3】
前記ステート管理部は、自コントローラが給電側であり、かつ、前記接続先が受電側である場合に前記通信ラインに現れるべき電圧とは異なる電圧が、前記通信ラインに予め定められた時間を超えて継続すると、前記接続先との接続が切断されたと判断する、請求項
1に記載のコントローラ。
【請求項4】
前記予め定められた時間は、ErrorRecoveryステートにおいて前記通信ラインをオープンに維持する時間と、DRP Toggle動作に要する時間との合計以上となるように設定される、請求項
3に記載のコントローラ。
【請求項5】
前記ステート管理部は、前記バッテリが充電されることで、前記接続先への電力供給が可能な状態に回復すると、受電側としてのシーケンスに従って、前記接続先への電力供給を再開する、請求項1~
4のいずれか1項に記載のコントローラ。
【請求項6】
ポート毎に前記信号伝送モジュールが設けられる、請求項1~
4のいずれか1項に記載のコントローラ。
【請求項7】
前記ステート管理部は、プロセッサが制御プログラムを実行することで実現される、請求項1~
4のいずれか1項に記載のコントローラ。
【請求項8】
USB(Universal Serial Bus) Type-C規格に従って、給電側および受電側のいずれにもなり得るDRP(Dual Role Power)に対応したポートを提供するためのコントローラであって、
バッテリの充放電を制御するための電源管理部に結合されたステート管理部と、
前記ステート管理部からの指示に従って、USBケーブル内の通信ラインを介して接続先との間で信号を遣り取りする信号伝送モジュールとを備え、
前記信号伝送モジュールは、給電側を示す第1の抵抗または受電側を示す第2の抵抗を、前記通信ラインに選択的に接続することが可能であり、
前記ステート管理部は、
給電側を示す前記第1の抵抗を前記通信ラインに接続して、前記バッテリに蓄えられた電力を前記接続先へ供給中に、前記接続先への電力供給ができなくなると、前記第1の抵抗を前記通信ラインに接続した状態を維持したまま、前記接続先への電力供給を停止
し、
前記バッテリが充電されることで、前記接続先への電力供給が可能な状態に回復すると、受電側としてのシーケンスに従って、前記接続先への電力供給を再開する、コントローラ。
【請求項9】
USB(Universal Serial Bus) Type-C規格に従って、給電側および受電側のいずれにもなり得るDRP(Dual Role Power)に対応したポートを提供するためのコントローラを用いた制御方法であって、
前記コントローラは、USBケーブル内の通信ラインを介して接続先との間で信号を遣り取りする信号伝送モジュールを備え、
前記信号伝送モジュールは、給電側を示す第1の抵抗または受電側を示す第2の抵抗を、前記通信ラインに選択的に接続することが可能であり、
前記制御方法は、
給電側を示す前記第1の抵抗を前記通信ラインに接続して、バッテリに蓄えられた電力を前記接続先へ供給するステップと、
電力供給中に前記接続先への電力供給ができなくなると、前記第1の抵抗を前記通信ラインに接続した状態を維持したまま、前記接続先への電力供給を停止するステップと
、
前記接続先との接続が切断されると、給電側を示す前記第1の抵抗に代えて、受電側を示す前記第2の抵抗を前記通信ラインに接続するステップとを備える、制御方法。
【請求項10】
USB(Universal Serial Bus) Type-C規格に従って、給電側および受電側のいずれにもなり得るDRP(Dual Role Power)に対応したポートを提供するためのコントローラを用いた制御方法であって、
前記コントローラは、USBケーブル内の通信ラインを介して接続先との間で信号を遣り取りする信号伝送モジュールを備え、
前記信号伝送モジュールは、給電側を示す第1の抵抗または受電側を示す第2の抵抗を、前記通信ラインに選択的に接続することが可能であり、
前記制御方法は、
給電側を示す前記第1の抵抗を前記通信ラインに接続して、バッテリに蓄えられた電力を前記接続先へ供給するステップと、
電力供給中に前記接続先への電力供給ができなくなると、前記第1の抵抗を前記通信ラインに接続した状態を維持したまま、前記接続先への電力供給を停止するステップと
、
前記バッテリが充電されることで、前記接続先への電力供給が可能な状態に回復すると、受電側としてのシーケンスに従って、前記接続先への電力供給を再開するステップとを備える、制御方法。
【請求項11】
USB(Universal Serial Bus) Type-C規格に従って、給電側および受電側のいずれにもなり得るDRP(Dual Role Power)に対応したポートを提供するためのコントローラのプロセッサで実行される制御プログラムであって、
前記コントローラは、USBケーブル内の通信ラインを介して接続先との間で信号を遣り取りする信号伝送モジュールを備え、
前記信号伝送モジュールは、給電側を示す第1の抵抗または受電側を示す第2の抵抗を、前記通信ラインに選択的に接続することが可能であり、
前記制御プログラムは、前記プロセッサに、
給電側を示す前記第1の抵抗を前記通信ラインに接続して、バッテリに蓄えられた電力を前記接続先へ供給するステップと、
電力供給中に前記接続先への電力供給ができなくなると、前記第1の抵抗を前記通信ラインに接続した状態を維持したまま、前記接続先への電力供給を停止するステップと
、
前記接続先との接続が切断されると、給電側を示す前記第1の抵抗に代えて、受電側を示す前記第2の抵抗を前記通信ラインに接続するステップとを実行させる、制御プログラム。
【請求項12】
USB(Universal Serial Bus) Type-C規格に従って、給電側および受電側のいずれにもなり得るDRP(Dual Role Power)に対応したポートを提供するためのコントローラのプロセッサで実行される制御プログラムであって、
前記コントローラは、USBケーブル内の通信ラインを介して接続先との間で信号を遣り取りする信号伝送モジュールを備え、
前記信号伝送モジュールは、給電側を示す第1の抵抗または受電側を示す第2の抵抗を、前記通信ラインに選択的に接続することが可能であり、
前記制御プログラムは、前記プロセッサに、
給電側を示す前記第1の抵抗を前記通信ラインに接続して、バッテリに蓄えられた電力を前記接続先へ供給するステップと、
電力供給中に前記接続先への電力供給ができなくなると、前記第1の抵抗を前記通信ラインに接続した状態を維持したまま、前記接続先への電力供給を停止するステップと
、
前記バッテリが充電されることで、前記接続先への電力供給が可能な状態に回復すると、受電側としてのシーケンスに従って、前記接続先への電力供給を再開するステップとを実行させる、制御プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、コントローラに関し、例えば、USB(Universal Serial Bus)規格に従うシーケンスを実行して接続先との間で受給電動作を実行するために用いられる。
【背景技術】
【0002】
モバイルデバイスの普及に伴って、モバイルデバイスなどに電力を供給するモバイルバッテリなどが普及している(例えば、特許文献1など参照)。以下の説明においては、外部電源から供給される電力を蓄えるとともに、外部デバイスに対して蓄えている電力を供給する蓄電装置を「Power Bank」と称す。
【0003】
現在一般的に用いられているPower Bankは、外部デバイスに電力を供給するための出力(給電)ポート、および、外部電源から電力を受取るための入力(受電)ポートは、それぞれ別々に設けられている。例えば、給電ポートにはUSB Standard-A型インターフェースが用いられ、受電ポートにはUSB Micro-B型インターフェースが用いられる。このように給電ポートおよび受電ポートが機能別に独立に設けられているため、例えば、Power Bankへの充電が完了した後に、ケーブルを繋いだままにしておいても、蓄えた電力が逆流するようなことはない。
【0004】
より新しいUSB規格として、USB Type-C型インターフェースが普及しつつある(例えば、非特許文献1など参照)。USB Type-C型インターフェースによれば、給電および受電は同一形状のポートが用いられることになる。そのため、単一のポートで給電および受電の両方に対応することになる。
【0005】
USB Type-C規格においては、電力を供給するデバイス(給電側)を「Source」あるいは「SRC」と称し、電力を受電するデバイス(受電側)を「Sink」あるいは「SNK」と称する。さらに、給電および受電の両方に対応するデバイスを「DRP(Dual Role Power)」と称する。DRP機能を実装することで、従来では別々に2つ必要だったポートが一つで済み、コストおよびスペースを削減できる(例えば、特許文献2など参照)。
【0006】
このような利点により、Power Bankをはじめ、スマートフォン、タブレット、パーソナルコンピュータなどのモバイルデバイスにおいて、USB Type-C型インターフェースが採用される場合には、1つのポートで給電および受電の両方に対応できるように、DRP機能が実装されることが予想される。
【先行技術文献】
【特許文献】
【0007】
【文献】特開2017-138870号公報
【文献】特開2018-007451号公報
【非特許文献】
【0008】
【文献】"Universal Serial Bus Type-C Cable and Connector Specification", Release 1.3, July 14, 2017
【発明の概要】
【発明が解決しようとする課題】
【0009】
上述したようなUSB Type-C型インターフェースの単一のポートのみが設けられるとともに、DRP機能が実装されたPower Bankを用いて、外部デバイスに電力を供給する場合を想定する。本願発明者は、このような構成においては、給電ポートおよび充電ポートがそれぞれ別々に設けられたPower Bankを用いて電力を供給する場合には生じなかった、新たな課題が生じることを見出した。
【0010】
その他の課題と新規な特徴は、本明細書の記述および添付図面から明らかになるであろう。
【課題を解決するための手段】
【0011】
ある実施の形態に従えば、USB Type-C規格に従って、給電側および受電側のいずれにもなり得るDRPに対応したポートを提供するためのコントローラが提供される。コントローラは、バッテリの充放電を制御するための電源管理部に結合されたステート管理部と、ステート管理部からの指示に従って、USBケーブル内の通信ラインを介して接続先との間で信号を遣り取りする信号伝送モジュールとを含む。信号伝送モジュールは、給電側を示す第1の抵抗または受電側を示す第2の抵抗を、通信ラインに選択的に接続することが可能である。ステート管理部は、給電側を示す第1の抵抗を通信ラインに接続して、バッテリに蓄えられた電力を接続先へ供給中に、接続先への電力供給ができなくなると、第1の抵抗を通信ラインに接続した状態を維持したまま、接続先への電力供給を停止する。
【発明の効果】
【0012】
ある実施の形態によれば、DRP機能を実装したPower Bankについてのユーザの意図しない動作を回避できる。
【図面の簡単な説明】
【0013】
【
図1】DRP機能を搭載したPower Bankの給電動作に係る動作例を示す模式図である。
【
図2】USB Type-C規格に従うDRPのPort Roleを担当するデバイスのステート遷移の要部を示す図である。
【
図3】
図2に示すステート遷移に係るシーケンスを示すシーケンスチャートである。
【
図4】実施の形態1に従うPower Bankの装置構成の一例を示す模式図である。
【
図5】実施の形態1に従うコントローラの回路構成の一例を示す模式図である。
【
図6】実施の形態1に従うPower Bankのステート遷移の要部を示す図である。
【
図7】実施の形態1に従うPower BankとPCとの間で実行される受給電動作に係る処理シーケンスを示すシーケンスチャートである。
【
図8】実施の形態1に従うPower BankとPCとの間で実行される受給電動作の動作例を示す模式図である。
【
図9】実施の形態1に従うPower Bankの給電動作に係る処理手順を示すフローチャートである。
【
図10】実施の形態2に従うPower Bankのステート遷移の要部を示す図である。
【
図11】実施の形態1に従うPower BankとPCとの間で実行される受給電動作においてErrorRecoveryが発生した場合の処理シーケンスを示すシーケンスチャートである。
【
図12】実施の形態2に従うPower BankとPCとの間で実行される受給電動作に係る処理シーケンスを示すシーケンスチャートである。
【
図13】実施の形態2に従うPower BankとPCとの間で実行される受給電動作の動作例を示す模式図である。
【
図14】実施の形態2に従うPower Bankの給電動作に係る処理手順を示すフローチャートである。
【
図15】実施の形態3に従うPower Bankのステート遷移の要部を示す図である。
【
図16】実施の形態3に従うPower Bankの装置構成の一例を示す模式図である。
【
図17】実施の形態3に従うPower Bankの装置構成の一例を示す模式図である。
【
図18】実施の形態3に従う遷移条件を採用しないPower BankとPCとの間で実行される受給電動作に係る処理シーケンスを示すシーケンスチャートである。
【
図19】実施の形態3に従うPower BankとPCとの間で実行される受給電動作に係る処理シーケンスを示すシーケンスチャートである。
【
図20】実施の形態3に従うPower BankとPCとの間で実行される受給電動作の動作例を示す模式図である。
【
図21】実施の形態3に従うPower Bankの給電動作に係る処理手順を示すフローチャートである。
【発明を実施するための形態】
【0014】
いくつかの実施の形態について、図面を参照しながら詳細に説明する。なお、図中の同一または相当部分については、同一の参照符号を付してその説明は繰り返さない。
【0015】
[A.背景技術]
USB Type-C型インターフェースの単一のポートのみが設けられるとともに、DRP機能が実装されたPower Bankを用いて、外部デバイスに電力を供給する構成について説明する。このとき、Power Bankに接続される外部デバイスにおいても、USB Type-C型インターフェースおよびDRP機能が実装されているとする。以下の説明においては、DRP機能が実装されている外部デバイスを「DRPデバイス」とも称す。
【0016】
ここで、USB Type-C規格に従う電力供給に関するシーケンスについて説明する。上述したように、USB Type-C規格においては、Source(SRC)と、Sink(SNK)と、DRPという3つのモードが規定されている。このような各モードはPort Roleとも称される。以下では、主として、DRPのPort Roleを担当するデバイスについて説明する。
【0017】
図1は、DRP機能を搭載したPower Bank100の給電動作に係る動作例を示す模式図である。
図1においては、DRPデバイスとしてラップトップ型パーソナルコンピュータ(以下、「PC」と略称する。)200を想定する。当然のことながら、DRPデバイスとしては、ラップトップ型パーソナルコンピュータに限らず、蓄電機能を有している任意のデバイスを採用し得る。
【0018】
図1(a)を参照して、まず、給電する側のPower Bank100と受電を期待するPC200とをUSBケーブル2を介して接続する。すると、Power Bank100のPort RoleはSRC(具体的には、後述するようなAttached.SRC(給電側として接続(を認識)した状態)になっている)となり、PC200のPort RoleはSNK(具体的には、後述するようなAttached.SNK(受電側として接続(を認識)した状態)になっている)となる。その結果、Power Bank100からPC200への電力供給が開始される。
【0019】
図1(b)に示すように、Power Bank100からPC200への電力供給が継続され、最終的に、
図1(c)に示すように、Power Bank100が給電だけでなくシステムとして動作できない状態までバッテリの放電電圧が下がったとする。この状態は「Dead Battery」と称される。
【0020】
DRP機能は、システムによる制御により実現されるものであり、Dead Batteryにおいてはシステムとして動作できないので、DRP機能を維持できない。この状態においては、DRP Toggle動作ができないため、Power Bank100は、Dead Batteryが解消されるまで、SNKの接続待ち状態(後述するようなUnattached.SNK(受電側として接続(を認識)していない状態))にハードウェアとして固定される。
【0021】
一方、PC200は、DRP Toggle動作を行なうため、Power Bank100がSNKの接続待ち状態にあることを検出して、SRCとなる。そして、
図1(d)に示すように、PC200は、Power Bank100への電力供給を開始する。すなわち、Power Bank100は、せっかく給電したPC200から電力を奪うことになる。
【0022】
このように、USB Type-C規格に従ってDRP機能を実装した単一のポートで給電および受電の両方に対応すると、上述したような課題が生じ得る。すなわち、ユーザとしては、Power Bank100がDead Batteryになると、単にPC200(DRPデバイス)への給電が停止されることだけを期待するものの、受給電の役割が勝手に逆転してしまい、ユーザの期待する動作とはならない。
【0023】
ここで、上述したような課題としている動作に関するステート遷移について説明する。
図2は、USB Type-C規格に従うDRPのPort Roleを担当するデバイスのステート遷移の要部を示す図である。
【0024】
図2を参照して、DRP機能が実装された担当するデバイスは、Unattached.SRC(ST1)、AttachWait.SRC(ST2)、Attached.SRC(ST3)、Unattached.SNK(ST4)、AttachWait.SNK(ST5)、および、Attached.SNK(ST6)の6つのステートを有しており、各時点においていずれかのステートをとる。
【0025】
USBケーブル2が接続される前の状態においては、Power Bank100は、Unattached.SRC(ST1)とUnattached.SNK(ST4)との間でステート遷移が繰り返されている(DRP Toggle動作)。
【0026】
USBケーブル2が接続されると、「Connection Detected」の条件が満たされ、Power Bank100は、Unattached.SRC(ST1)からAttachWait.SRC(ST2)へ遷移する(シーケンスSQ1)。そして、Power Bank100とPC200との間の供給電圧などの条件が満たされると、Power Bank100は、AttachWait.SRC(ST2)からAttached.SRC(ST3)へ遷移する(シーケンスSQ2)。Attached.SRC(ST3)は、給電側のデバイスとしての接続が認識された状態を意味する。この状態において、Power Bank100からPC200への電力供給が開始される(シーケンスSQ3)。
【0027】
Power Bank100は、バッテリが十分な充電容量を有していれば、
図2に示すようなステート遷移を管理できるが、システムとして動作できない状態までバッテリの放電電圧が低下して、Dead Batteryになると、ステート遷移の管理ができなくなる。その結果、Unattached.SNK(ST4)に固定される(シーケンスSQ4)。Unattached.SNK(ST4)は、SNKとしての接続待ち状態を意味する。
【0028】
Power Bank100は、接続先のPC200(DRPデバイス)からの電力供給によってDead Batteryから回復すると、ステート遷移の管理を再開する。このとき、接続先のPC200はSRCであるので、「Source Detected」の条件が満たされ、Power Bank100は、Unattached.SNK(ST4)からAttachWait.SNK(ST5)へ遷移する(シーケンスSQ5)。そして、Power Bank100とPC200との間の供給電圧などの条件が満たされると、Attached.SNK(ST6)へ遷移する(シーケンスSQ6)。Attached.SNK(ST6)は、受電側のデバイスとしての接続が認識された状態を意味する。この状態において、PC200からPower Bank100への電力供給が開始される(シーケンスSQ7)。
【0029】
すなわち、
図1(d)に示すように、Power Bank100からPC200へ供給された電力が、今度は逆に、PC200からPower Bank100へ供給されることになる。
【0030】
図3は、
図2に示すステート遷移に係るシーケンスを示すシーケンスチャートである。
図3には、DRP機能を実装しているPower Bank100およびPC200の各々において実行される処理を示す。なお、
図3のいくつかのステップに示される「CC:」に続く値(「Rp」または「Rd」)は、USBケーブル2に含まれる通信ライン(CC1およびCC2)に現れる抵抗値(それぞれ、プルアップ抵抗およびプルダウン抵抗(後述の
図5参照))を意味し、「VBUS:」に続く値(「enable」または「disable」)は、USBケーブル2に含まれる電力ラインに規定電圧が供給されているか否かを意味する。
【0031】
典型的には、「enable」は、USB Type-C規格に従うvSafe5V以上の電圧が電力ラインに印加されている状態を意味し、「disable」は、USB Type-C規格に従うvSafe0Vが電力ラインに印加されている状態を意味する。
【0032】
図3を参照して、Power Bank100は、初期状態として、Unattached.SRCであるとする(ステップS1)。このとき、Power Bank100は、通信ラインに抵抗値Rpを見せるとともに、電力ラインには規定電圧を生じさせない。
【0033】
本明細書において、「通信ラインに抵抗値Rpを見せる」および「通信ラインに抵抗値Rdを見せる」は、それぞれ「プルアップ抵抗を通信ラインに接続する」および「プルダウン抵抗を通信ラインに接続する」ことを意味する。以下の説明においても同様である。
【0034】
一方、PC200は、初期状態として、Unattached.SNKであるとする(ステップS11)。このとき、PC200は、通信ラインに抵抗値Rdを見せるとともに、電力ラインには規定電圧を生じさせない。
【0035】
Power Bank100は、接続先のPC200の存在を検出することで、「Connection Detected」の条件が満たされていると判断し、Unattached.SRCからAttachWait.SRCへ遷移する(ステップS2)。さらに、Power Bank100は、接続先のPC200がSRCからの応答待ち状態であることを検出することで、「Sink Detected」の条件が満たされていると判断し、AttachWait.SRCからAttached.SRCへ遷移する(ステップS3)。Attached.SRCにおいては、Power Bank100は、電力ラインへの規定電圧の供給を開始する。
【0036】
一方、PC200は、接続先のPower Bank100の存在を検出することで、「Connection Detected」の条件が満たされていると判断し、Unattached.SNKからAttachWait.SNKへ遷移する(ステップS12)。さらに、PC200は、接続先のPower Bank100がSNKからの応答待ち状態であることを検出することで、「Source Detected」の条件が満たされていると判断し、AttachWait.SNKからAttached.SNKへ遷移する(ステップS13)。
【0037】
Power Bank100がAttached.SRCとなり、PC200がAttachWait.SNKとなることで、Power Bank100はPC200への電力供給を開始し(ステップS4)、PC200はPower Bank100からの電力の受取りを開始する(ステップS14)。
【0038】
その後、Power Bank100のバッテリの放電電圧がシステムとして動作できない状態まで下がると、Power Bank100は、システムをシャットダウンし、Dead Batteryになる。
【0039】
システムシャットダウンにより、Power Bank100は、Attach.SRCからUnattached.SNKへ遷移する(ステップS5)。このとき、Power Bank100は、システムシャットダウンにより、通信ラインに抵抗値Rdを見せるようになるとともに、電力ラインへの規定電圧の供給を停止する。
【0040】
一方、PC200は、Power Bank100のシステムシャットダウンにより、SRCであるPower Bank100との接続が切断されたことを検出すると、電力の受取りを停止する(ステップS15)。そして、PC200は、Attached.SNKからUnattachWait.SNKへ遷移する(ステップS16)。
【0041】
そして、PC200は、DRP Toggle動作によって、接続先のPower Bank100が、通信ラインに抵抗値Rdを見せており、かつ、電力ラインに規定電圧を生じさせていない状態を検出して、UnattachWait.SNKからUnattachWait.SRCへ遷移する(ステップS17)。すなわち、PC200は、SNKからSRCに切り替わる。
【0042】
そして、PC200は、接続先のPower Bank100の存在を検出することで、「Connection Detected」の条件が満たされていると判断し、Unattached.SRCからAttachWait.SRCへ遷移する(ステップS18)。
【0043】
さらに、PC200は、接続先のPower Bank100がSRCからの応答待ち状態であること(すなわち、CC:Rd,VBUS:disable)を検出することで、「Sink Detected」の条件が満たされていると判断し、AttachWait.SRCからAttached.SRCへ遷移する(ステップS19)。Attached.SRCにおいては、PC200は、電力ラインへの規定電圧の供給を開始する。すなわち、PC200は、Power Bank100への電力供給を開始し、これによって、Power Bank100はDead Batteryから回復することになる。
【0044】
すると、Power Bank100は、接続先のPC200の存在を検出することで、「Connection Detected」の条件が満たされていると判断し、Unattached.SNKからAttachWait.SNKへ遷移する(ステップS6)。さらに、Power Bank100は、「Source Detected」の条件が満たされていると判断し、AttachWait.SNKからAttached.SNKへ遷移する(ステップS7)。
【0045】
PC200がAttached.SRCとなり、Power Bank100がAttachWait.SNKとなることで、PC200はPower Bank100への電力供給を開始し(ステップS20)、Power Bank100はPC200からの電力の受取りを開始する(ステップS8)。
【0046】
本実施の形態においては、Power Bank100のステップS5以下の処理、ならびに、PC200のステップS15以下の処理を課題としている動作として、解決する。
【0047】
[B.課題および解決手段]
上述したように、Power Bank100と外部デバイスとがUSB Type-C型インターフェースを介して接続される場合において、両デバイスがDRP機能を実装している場合には、SRCとSNKとが交互に入れ替わるような動作が行なわれてしまう。
【0048】
本来、Power Bank100のバッテリが空になるまで外部デバイスを充電した後には、受給電動作はそこで停止すべきである。しかしながら、DRP機能を実装したデバイス間では、外部デバイスからPower Bank100へ電力が戻されることになり、ユーザが意図した受給電動作を実現できない。
【0049】
本実施の形態においては、上述したような新たな課題に対して、Power Bank100からDRPデバイスに対する充電動作が完了すると、DRPデバイスからの電力が自動的にはPower Bank100へ逆流しないようにする構成および処理を提供する。すなわち、単一のポートで受給電可能なUSB Type-C規格に対応したデバイスについて、両者とも受給電可能なDRP機能を実装している場合において、充電が終わってUSBケーブルを繋いだままにしておいても、電力供給方向が逆になっていつのまにか電力が戻りはじめることを防止できる仕組みを提供する。
【0050】
典型的には、本実施の形態に従うPower Bankは、給電側(SRC)としてバッテリに蓄えられていた電力を接続先への供給中に、当該接続先への電力供給ができなくなると、給電側(SRC)の状態を維持したまま、接続先への電力供給を停止する。
【0051】
このような構成を採用することで、供給元と供給先との間で、役割や入れ替わるような動作を回避できる。
【0052】
以下の説明において、接続先への電力供給ができなくなる一状態を「Low Battery」と称す。本明細書において、「Low Battery」とは、バッテリに蓄えられている電力が低下して、外部デバイスに電力を供給できなくなっているという点においては、USB規格において規定されている「Dead Battery」という状態と同じである。但し、「Low Battery」の状態においては、自デバイスのコントローラを駆動できる電力は残っているものとする。すなわち、「Low Battery」は、接続先への電力供給はできないものの、コントローラでの各種制御は可能な状態を意味する。
【0053】
[C.実施の形態1]
実施の形態1として、最も簡素化された形態について説明する。
【0054】
(c1:装置構成)
まず、実施の形態1に従うPower Bank100の装置構成の一例について説明する。
図4は、実施の形態1に従うPower Bank100の装置構成の一例を示す模式図である。
【0055】
図4を参照して、Power Bank100は、主たる構成要素として、コネクタ102と、電源管理部(Power Manager)104と、バッテリ106と、コントローラ(Controller)110とを含む。
【0056】
コネクタ102は、USB Type-C型インターフェースのポートを含む。
電源管理部104は、コントローラ110からの指示に従って、バッテリ106の充放電を制御する充放電制御回路に相当する。具体的には、電源管理部104は、外部電源から供給される電力をバッテリ106に蓄える第1充電動作、外部デバイスから供給される電力をバッテリ106に蓄える第2充電動作、および、バッテリ106に蓄えられた電力を外部デバイスへ供給する放電動作を選択的に実行可能になっている。
【0057】
バッテリ106は、充放電可能に構成された蓄電池であり、例えば、リチウムイオン二次電池、リチウムイオンポリマー二次電池、ニッケル・水素充電池などが用いられる。
【0058】
コントローラ110は、USB Type-C規格に従って、給電側(SRC)および受電側(SNK)のいずれにもなり得るDRPに対応したポートを提供する。すなわち、コントローラ110は、DRPとして機能し、USBケーブル2を介した接続先との通信および受給電動作を管理する。より具体的には、コントローラ110は、プロセッサ112と、信号伝送モジュール(PHY&LGC)116とを含む。プロセッサ112は、信号伝送モジュール116および電源管理部104に接続されている。
【0059】
プロセッサ112は、USB Type-C規格に従うシーケンスを実行するステート管理部に相当する。プロセッサ112は、制御プログラムの一例であるファームウェア114を実行することで、以下に示すような処理および機能を提供する。すなわち、ステート管理部は、プロセッサ112が制御プログラムの一例であるファームウェア114を実行することで実現されてもよい。プロセッサ112およびファームウェア114を用いて実装することで、シーケンスの修正やバージョンアップなどをより容易に実現できる。なお、プロセッサ112を用いるソフトウェア実装ではなく、後述するようなハードウェア実装を採用してもよい。
【0060】
信号伝送モジュール116は、ステート管理部に相当するプロセッサ112からの指示に従って、USBケーブル2内の通信ライン(第1通信ライン(CC1)21および第2通信ライン(CC2)22)を介して接続先との間で信号を遣り取りする。なお、第1通信ライン21および第2通信ライン22を、まとめて「通信ライン」と総称することもある。信号伝送モジュール116の詳細な構成については、後述する。
【0061】
ステート管理部に相当するプロセッサ112は、バッテリ106の充放電を制御するための電源管理部104に結合されている。プロセッサ112と電源管理部104との間には、任意の制御インターフェースを設けてもよい。このような制御インターフェースは、プロセッサ112から指示に従って、電源管理部104による充放電を制御するための制御指令の送信を仲介する。例えば、プロセッサ112と電源管理部104との間では、I2Cインターフェースに従って制御信号を遣り取りするようにしてもよい。
【0062】
バッテリ106と外部デバイスとの間の電力の遣り取りは、USBケーブル2内の電力ライン(VBUS)23を介して行なわれる。なお、USBケーブル2は、図示していないシールド線を含んでいてもよい。
【0063】
図5は、実施の形態1に従うコントローラ110の回路構成の一例を示す模式図である。
図5を参照して、コントローラ110の信号伝送モジュール116は、第1通信ライン21(CC1)および第2通信ライン22(CC2)を介して、各種制御信号を遣り取りする。
【0064】
より具体的には、信号伝送モジュール116は、第1通信制御ブロック(Comm. Block)1161および第2通信制御ブロック(Comm. Block)1162を有している。
【0065】
第1通信制御ブロック1161は、第1通信ライン21を介して受信したデータを、プロセッサ112へ出力し、プロセッサ112からのデータを、第1通信ライン21を介して送信する。同様に、第2通信制御ブロック1162は、第2通信ライン22を介して受信したデータを、プロセッサ112へ出力し、プロセッサ112からのデータを、第2通信ライン22を介して送信する。
【0066】
信号伝送モジュール116は、接続先との接続を検出するために、通信ライン(第1通信ライン21および第2通信ライン22)と電源電位Vsおよびグランド電位GNDとの間にそれぞれ接続された抵抗を有している。
【0067】
具体的には、第1通信ライン21には、電源電位Vsとの間に抵抗値Rpをもつプルアップ抵抗1165が接続されており、また、グランド電位GNDとの間に抵抗値Rdをもつプルダウン抵抗1166が接続されている。同様に、第2通信ライン22には、電源電位Vsとの間に抵抗値Rpをもつプルアップ抵抗1167が接続されており、また、グランド電位GNDとの間に抵抗値Rdをもつプルダウン抵抗1168が接続されている。
【0068】
スイッチ1163,1164は、通信ライン(第1通信ライン21および第2通信ライン22)から電源電位Vsおよびグランド電位GNDへ繋がる経路を電気的に接続/遮断する。より具体的には、スイッチ1163は、プロセッサ112からの制御信号に従って、プルアップ抵抗1165またはプルダウン抵抗1166と第1通信ライン21とを電気的に接続/遮断する。同様に、スイッチ1164は、プロセッサ112からの制御信号に従って、プルアップ抵抗1167またはプルダウン抵抗1168と第2通信ライン22とを電気的に接続/遮断する。
【0069】
第1通信ライン21および第2通信ライン22に生じる抵抗値Rp,Rdに応じた電圧をそれぞれ検出することで、PowerBnak100と接続先との接続が確立される。
【0070】
このように、信号伝送モジュール116は、SRC(給電側)を示すプルアップ抵抗1165,1167(第1の抵抗)、または、SNK(受電側)を示すプルダウン抵抗1166,1168(第2の抵抗)を、通信ライン(第1通信ライン21および第2通信ライン22)に選択的に接続することが可能になっている。
【0071】
(c2:ステート遷移)
次に、実施の形態1に従うPower Bank100のステート遷移について説明する。
図6は、実施の形態1に従うPower Bank100のステート遷移の要部を示す図である。
図6に示すステート遷移は、
図2に示すUSB Type-C規格に従うDRPのPort Roleを担当するデバイスのステート遷移に比較して、UnattachWait_LB.SRC(ST7)が追加されている点が異なっている。
図6において、
図2に示すステートと実質的に同一のステートについては、同一の参照符号を付している。また、
図2を参照して説明したステートについては、その説明は繰り返さない。
【0072】
UnattachWait_LB.SRC(ST7)への遷移は、Attached.SRC(ST3)において、Power Bank100がLow Batteryになることを条件としている。
【0073】
Attached.SRC(ST3)において、Power Bank100は、DRPデバイスへの電力供給を行なっている。この状態において、Power Bank100のバッテリ106が、コントローラ110は動作できるが、DRPデバイスへの給電には不十分な電圧まで低下したこと(Low Battery)をエントリ条件として、Power Bank100は、Dead Batteryになる前に、UnattachWait_LB.SRC(ST7)へ遷移する。
【0074】
UnattachWait_LB.SRC(ST7)において、Power Bank100は、通信ラインに見せる抵抗値Rpを維持する一方で、電力ラインには規定電圧を生じさせない。
【0075】
このように、ステート管理部に相当するプロセッサ112は、SRC(給電側)を示すプルアップ抵抗1165,1167(第1の抵抗)を通信ラインに接続して、バッテリ106に蓄えられた電力を接続先であるDRPデバイスへ供給中に、当該接続先への電力供給ができなくなると、プルアップ抵抗1165,1167(第1の抵抗)を通信ラインに接続した状態を維持したまま、接続先への電力供給を停止する。このような構成を採用することで、関連技術として説明したような、SNKの接続待ち状態(Unattached.SNK)にハードウェアとして固定されることがない。その結果、デバイス間でSRCとSNKとが交互に入れ替わるような動作の発生を回避できる。
【0076】
次に、UnattachWait_LB.SRC(ST7)にある場合に、接続先であるDRPデバイスとの接続が物理的に切断されると、別のステートへ遷移する。より具体的には、UnattachWait_LB.SRC(ST7)からの遷移条件の一つとして、通信ラインがオープン状態になること(以下、「第1の遷移条件」とも称す。)を規定する。すなわち、Attached.SRC(ST3)からの遷移条件と同様に、Power Bank100は、通信ラインの状態がSRC.Openになると、UnattachWait_LB.SRC(ST7)からUnattached.SNK(ST4)へ遷移する。SRC.Openとは、通信ラインがオープン状態であり、通信ラインに無限大の抵抗値が現れている状態を意味する。このように、ステート管理部に相当するプロセッサ112は、通信ラインがオープン状態になると、接続先との接続が切断されたと判断する。
【0077】
Unattached.SNK(ST4)において、Power Bank100は、通信ラインに抵抗値Rpを見せる。すなわち、ステート管理部に相当するプロセッサ112は、接続先との接続が切断されると、SRC(給電側)を示すプルアップ抵抗1165,1167(第1の抵抗)に代えて、SNK(受電側)を示すプルダウン抵抗1166,1168(第2の抵抗)を、通信ライン(第1通信ライン21および第2通信ライン22)に接続する。
【0078】
このように、実施の形態1に従うPower Bank100は、バッテリ106の残容量が少なくなり、Low Batteryになると、通信ラインに見せる抵抗値Rpを維持する一方で、電力ラインへの規定電圧の供給を停止する。Power Bank100は、DRPデバイスとの接続が物理的に切断されるまで、その状態を維持する。その後、Power Bank100は、DRPデバイスとの接続が物理的に切断されると、通信ラインに抵抗値Rdを見せるようにステートを遷移させる。
【0079】
このような新たなステートであるUnattachWait_LB.SRC(ST7)を追加することで、Power Bank100からDRPデバイスへの電力供給ができなくなったとしても、Power Bank100がSNKの接続待ち状態(Unattached.SNK(ST4))に固定されないので、DRPデバイス側がSNKからSRCに切り替わることがなく、先に充電されたDRPデバイスから電力を奪うといった動作の発生を回避できる。
【0080】
具体的なシーケンスとしては、Power Bank100からPC200への電力供給が開始された後、Power Bank100がLow Batteryになると、Power Bank100は、Attached.SRC(ST3)からUnattachWait_LB.SRC(ST7)へ遷移する(シーケンスSQ41)。
【0081】
この状態において、Power Bank100は、DRPデバイスとの接続が物理的に切断されるまでその状態を維持する(シーケンスSQ42)。そして、DRPデバイスとの接続が物理的に切断されたと判断すると、Power Bank100は、UnattachWait_LB.SRC(ST7)からUnattached.SNK(ST4)へ遷移する(シーケンスSQ43)。それ以降の処理は、
図2に示すステート遷移と同様である。
【0082】
(c3:処理シーケンス)
次に、実施の形態1に従うPower Bank100とDRPデバイスの一例であるPC200との間で実行される受給電動作の処理シーケンスの一例について説明する。
【0083】
図7は、実施の形態1に従うPower Bank100とPC200との間で実行される受給電動作に係る処理シーケンスを示すシーケンスチャートである。
図7に示すシーケンスチャートにおいて、
図3に示すシーケンスチャートと実質的に同一の処理については、同一の参照符号を付している。また、
図3を参照して説明した処理については、その説明は繰り返さない。
【0084】
図7には、
図3と同様に、Power Bank100からPC200に電力を供給する場合の処理シーケンスを示す。具体的には、Power Bank100は、Unattached.SRCからAttachWait.SRCを経てAttach.SRCへ遷移し(ステップS1,S2,S3)、PC200への電力供給を開始する(ステップS4)。
【0085】
一方、PC200は、Unattached.SNKからAttachWait.SNKを経てAttach.SNKへ遷移し(ステップS11,S12,S13)、Power Bank100からの電力の受取りを開始する(ステップS14)。
【0086】
このように、Power Bank100のコントローラ110は、SRC(給電側)を示すプルアップ抵抗1165,1167(第1の抵抗;抵抗値Rp)を通信ラインに接続して、バッテリ106に蓄えられた電力を接続先へ供給する。
【0087】
その後、Power Bank100のバッテリ106の放電電圧が予め定められた値まで低下すると、Power Bank100は、Low Batteryとなり、Attach.SRCからUnattachWait_LB.SRCへ遷移する(ステップS21)。この状態において、Power Bank100からPC200への電力供給は停止される。但し、Power Bank100は、SRCの状態を維持する。
【0088】
一方、PC200は、Power Bank100からの電力供給が停止されることで、電力の受取りを停止する(ステップS15)。そして、PC200は、Attached.SNKからUnattachWait.SNKへ遷移する(ステップS16)。
【0089】
このように、Power Bank100のコントローラ110は、電力供給中に接続先への電力供給ができなくなると、SRC(給電側)を示すプルアップ抵抗1165,1167(第1の抵抗;抵抗値Rp)を通信ラインに接続した状態を維持したまま、接続先への電力供給を停止する。
【0090】
さらに、PC200は、接続先のPower Bank100の存在を検出することで、「Connection Detected」の条件が満たされていると判断し、Unattached.SNKからAttachWait.SNKへ遷移する(ステップS31)。
【0091】
Power Bank100とPC200との接続が物理的に切断されるまで、Power Bank100はUnattachWait_LB.SRCを維持するとともに、PC200はAttachWait.SNKを維持する。
【0092】
Power Bank100とPC200との接続が物理的に切断されたと判断すると(ステップS32)、Power Bank100は、接続先のPC200が存在しなくなったことを検出することで、「Disconnection Detected」の条件が満たされていると判断し、UnattachWait_LB.SRCからUnattached.SNKへ遷移する(ステップS22)。
【0093】
実施の形態1によれば、上述のような処理シーケンスによって、Power Bank100がPC200から電力を奪うといった事態を回避できる。すなわち、実施の形態1によれば、Power Bank100のステップS21以下の処理、ならびに、PC200のステップS15以下の処理を適正化することで、上述したような課題を解決する。
【0094】
(c4:動作例)
次に、実施の形態1に従うPower Bank100とDRPデバイスの一例であるPC200との間で実行される受給電動作の動作例について説明する。
【0095】
図8は、実施の形態1に従うPower Bank100とPC200との間で実行される受給電動作の動作例を示す模式図である。
図8には、
図1と同様に、Power Bank100からPC200に電力を供給する場合の動作例を示す。
【0096】
図8(a)を参照して、Power Bank100からPC200への電力供給が開始される。その後、
図8(b)に示すように、Power Bank100がLow Batteryになると、Power Bank100からPC200への電力供給は停止される(VBUSをdisableにする)ものの、Power Bank100はSRCの状態を維持する。Power Bank100とDRPデバイスとの接続が物理的に切断されるまで、Power Bank100はSRCの状態を維持する。
【0097】
図8(c)に示すように、Power Bank100とPC200(DRPデバイス)との接続が物理的に切断されたと判断すると、Power Bank100はSRCからSNKに切り替わる。
【0098】
SNKに切り替わることで、
図8(d)に示すように、Power Bank100は、例えば、電源アダプタ300などの外部電源からの電力供給を受けてバッテリ106の充電が可能となる。
【0099】
このように、実施の形態1に従うPower Bank100は、Low Batteryになると、UnattachWait_LB.SRCへ遷移し、通信ラインの抵抗値を抵抗値Rpに維持したまま、VBUSをdisableにすることで、給電対象であったDRPデバイス(PC200)から電力を奪うことなく状態を維持するとともに、DRPデバイスとの接続が物理的に切断されたと判断した後には、外部電源から供給される電力を受取ることができる。
【0100】
(c5:処理手順)
図9は、実施の形態1に従うPower Bank100の給電動作に係る処理手順を示すフローチャートである。
図9に示すPower Bank100の各ステップは、典型的には、コントローラ110のプロセッサ112が制御プログラムであるファームウェア114を実行することで実現される。したがって、
図9に示す各ステップの実行主体は、典型的には、プロセッサ112となる。
【0101】
図9を参照して、プロセッサ112は、Attached.SRCにおけるDRPデバイスへの電力供給中において、バッテリ106の放電電圧が予め定められた値まで低下したか否かを判断する(ステップS100)。バッテリ106の放電電圧が予め定められた値まで低下していなければ(ステップS100においてNO)、プロセッサ112は、ステップS100の処理を繰り返す。
【0102】
バッテリ106の放電電圧が予め定められた値まで低下していれば(ステップS100においてYES)、プロセッサ112は、通信ライン(第1通信ライン21および第2通信ライン22)に抵抗値Rpを見せる状態を維持しつつ、電力ラインを介したDRPデバイスへの電力供給を停止する(ステップS102)。
【0103】
そして、プロセッサ112は、通信ライン(第1通信ライン21および第2通信ライン22)がオープン状態になったか否かを判断する(ステップS104)。通信ラインがオープン状態になっていなければ(ステップS104においてNO)、プロセッサ112は、ステップS104の処理を繰り返す。
【0104】
通信ラインがオープン状態になっていれば(ステップS104においてYES)、プロセッサ112は、通信ライン(第1通信ライン21および第2通信ライン22)に見せる抵抗値をRpからRdに変更し(ステップS106)、DRPデバイスへの給電動作を終了する。
【0105】
(c6:利点)
実施の形態1に従うPower Bank100は、システムとして動作できない状態までバッテリ106の放電電圧が下がった状態(Dead Battery)になる前に、Low Batteryの状態を検出し、DRPデバイスへの電力供給を停止するとともに、通信ラインに抵抗値Rpを見せて、Source(SRC)の状態を維持する。これによって、電力供給を受けていたDRPデバイスがSource(SRC)に切り替わることを防止できる。DRPデバイスがSource(SRC)に切り替わらないので、Power Bank100が先に充電されたDRPデバイスから電力を奪うといった動作の発生を回避できる。
【0106】
また、実施の形態1に従うPower Bank100は、DRPデバイスとの接続が物理的に切断されたと判断すると、Source(SRC)からSink(SNK)に切り替わるので、USB Type-C規格に従って、電源アダプタ300などの外部電源からの電力供給を受けてバッテリ106の充電が可能となる。
【0107】
[D.実施の形態2]
次に、実施の形態2として、上述の実施の形態1において採用したUnattachWait_LB.SRC(ST7)からの遷移条件を異ならせた形態について説明する。UnattachWait_LB.SRC(ST7)からの遷移条件を除いた構成および処理については、上述の実施の形態1と同様であるので、詳細な説明は繰り返さない。
【0108】
(d1:ステート遷移)
実施の形態2に従うPower Bank100のステート遷移について説明する。
図10は、実施の形態2に従うPower Bank100のステート遷移の要部を示す図である。
図10に示すステート遷移は、
図6に示す実施の形態1に従うPower Bank100のステート遷移に比較して、ErrorRecovery(ST8)のステートが考慮されている点が異なっている。
図10において、
図6に示すステートと実質的に同一のステートについては、同一の参照符号を付している。また、
図6を参照して説明したステートについては、その説明は繰り返さない。
【0109】
ErrorRecovery(ST8)は、任意の条件が満たされると遷移するステートであり、何らかの異常が発生したと判断された場合の回復処理を実行する。具体的には、ErrorRecovery(ST8)においては、予め定められた時間(tErrorRecovery)の間、通信ラインをオープン状態に維持した後に、Unattached.SNK(ST4)、または、Unattached.SRC(ST1)へ遷移する。このとき、Unattached.SNK(ST4)とUnattached.SRC(ST1)との間でステート遷移するDRP Toggle動作も実行される。
【0110】
ここで、Power Bank100に接続されているDRPデバイスが、何らかの条件が満たされることによって、ErrorRecovery(ST8)へ遷移したとすると、接続先のDRPデバイスの通信ラインはオープン状態になる。すなわち、Power Bank100から見れば、接続先の通信ラインの状態がSRC.Openになったと判断される。
【0111】
Power Bank100がUnattachWait_LB.SRC(ST7)にある場合に、接続先のDRPデバイスがErrorRecovery(ST8)へ遷移すると、Power Bank100は、DRPデバイスとの接続が物理的に切断されたと(誤って)判断するので、Unattached.SNK(ST4)へ遷移して、SRCからSNKに切り替わる。
【0112】
そこで、実施の形態2においては、Power Bank100とDRPデバイスとを接続するUSBケーブル2が物理的に引き抜かれたと判断した場合に限って、Power Bank100は、UnattachWait_LB.SRC(ST7)からUnattached.SNK(ST4)へ遷移する(シーケンスSQ44)。
【0113】
すなわち、実施の形態2においては、上述の実施の形態1において採用したUnattachWait_LB.SRC(ST7)からの遷移条件(第1の遷移条件)とは別の遷移条件を採用して、誤ったステート遷移を生じないようにする。
【0114】
このように、実施の形態1において採用した遷移条件では、ErrorRecovery(ST8)への遷移、あるいは、DRP Toggle動作によって、Power Bank100とDRPデバイスとを接続するUSBケーブル2が実際に物理的に引き抜かれていなくても、接続が切断されたと判断されるため、実際に物理的に引き抜かれたことを確実に判断するために、以下のような遷移条件(以下、「第2の遷移条件」とも称す。)を採用する。
【0115】
第2の遷移条件:(CC1に現れる電圧≠vRdかつCC2に現れる電圧≠vRd)の状態が(tErrorRecovery+tDRP)の時間を超えて継続される
但し、tErrorRecoveryは、ErrorRecovery(ST8)において、通信ラインをオープン状態に維持する時間を意味する。tDRPは、DRP Toggle動作を1回実行に要する時間を意味する。USB Type-C規格によれば、一例として、tErrorRecoveryは240msに設定され、tDRPは100msに設定されるとされている。
【0116】
また、vRdは、自デバイスがSource(SRC)であり、接続先のDRPデバイスがSink(SNK)である場合に通信ラインに現れる電圧を意味する。
【0117】
すなわち、ステート管理部に相当するプロセッサ112は、自コントローラがSRC(給電側)であり、かつ、接続先がSNK(受電側)である場合に、通信ラインに現れるべき電圧とは異なる電圧が、通信ラインに予め定められた時間を超えて継続すると、接続先との接続が切断されたと判断する。ここで、予め定められた時間は、ErrorRecoveryステートにおいて通信ラインをオープンに維持する時間と、DRP Toggle動作に要する時間との合計以上となるように設定されてもよい。
【0118】
言い換えれば、第2の遷移条件は、Power Bank100から見た場合に、接続先のDRPデバイスの状態に対応して通信ラインに現れる電圧(vRd)とは異なる電圧が、ErrorRecovery(ST8)への遷移、あるいは、DRP Toggle動作に要する時間を超えて継続されることを意味する。
【0119】
実施の形態2に従うPower Bank100は、UnattachWait_LB.SRC(ST7)において、上述の第2の遷移条件が満たされた場合に限って、Unattached.SNK(ST4)へ遷移する(シーケンスSQ44)。
【0120】
上述したような第2の遷移条件を採用することで、接続先のDRPデバイスにおいて、ErrorRecovery(ST8)への遷移、または、DRP Toggle動作が生じたとしても、Power Bank100は、DRPデバイスとの接続が物理的に切断されたと誤って判断することがない。
【0121】
(d2:処理シーケンス)
次に、実施の形態2に従うPower Bank100とDRPデバイスの一例であるPC200との間で実行される受給電動作の処理シーケンスの一例について説明する。
【0122】
図11は、実施の形態1に従うPower Bank100とPC200との間で実行される受給電動作においてErrorRecoveryが発生した場合の処理シーケンスを示すシーケンスチャートである。
図11に示すシーケンスチャートにおいて、
図3または
図7に示すシーケンスチャートと実質的に同一の処理については、同一の参照符号を付している。また、
図3または
図7を参照して説明した処理については、その説明は繰り返さない。
【0123】
図11には、
図7と同様に、Power Bank100からPC200に電力を供給する場合の処理シーケンスを示す。具体的には、Power Bank100は、Unattached.SRCからAttachWait.SRCを経てAttach.SRCへ遷移し(ステップS1,S2,S3)、PC200への電力供給を開始する(ステップS4)。
【0124】
一方、PC200は、Unattached.SNKからAttachWait.SNKを経てAttach.SNKへ遷移し(ステップS11,S12,S13)、Power Bank100からの電力の受取りを開始する(ステップS14)。
【0125】
その後、Power Bank100のバッテリ106の放電電圧が予め定められた値まで低下すると、Power Bank100は、Low Batteryとなり、Attach.SRCからUnattachWait_LB.SRCへ遷移する(ステップS21)。この状態において、Power Bank100からPC200への電力供給は停止される。但し、Power Bank100は、SRCの状態を維持する。
【0126】
一方、PC200は、Power Bank100からの電力供給が停止されることで、電力の受取りを停止する(ステップS15)。そして、PC200は、Attached.SNKからUnattachWait.SNKへ遷移する(ステップS16)。さらに、PC200は、接続先のPower Bank100の存在を検出することで、「Connection Detected」の条件が満たされていると判断し、Unattached.SNKからAttachWait.SNKへ遷移する(ステップS31)。
【0127】
この状態において、PC200がErrorRecoveryへ遷移したとする。すなわち、PC200は、何らかの条件が満たされることで、ErrorRecoveryへ遷移する(ステップS33)。ErrorRecoveryにおいて、PC200の通信ラインの状態は、SRC.Openになる。
【0128】
一方、PC200の通信ラインの状態がSRC.Openになることによって、Power Bank100は、「Disconnection Detected」の条件が満たされていると判断し、UnattachWait_LB.SRCからUnattached.SNKへ遷移する(ステップS22)。
【0129】
PC200は、tErrorRecoveryの経過後、Unattached.SRCへ遷移する(ステップS34)。すなわち、PC200は、SNKからSRCに切り替わる。
【0130】
そして、PC200は、接続先のPower Bank100の存在を検出することで、「Connection Detected」の条件が満たされていると判断し、Unattached.SRCからAttachWait.SRCへ遷移する(ステップS18)。さらに、PC200は、接続先のPower Bank100がSRCからの応答待ち状態であること(すなわち、CC:Rd,VBUS:disable)を検出することで、「Sink Detected」の条件が満たされていると判断し、AttachWait.SRCからAttached.SRCへ遷移する(ステップS19)。
【0131】
一方、Power Bank100は、「Source Detected」の条件が満たされていると判断し、AttachWait.SNKからAttached.SNKへ遷移する(ステップS7)。
【0132】
PC200がAttached.SRCとなり、Power Bank100がAttachWait.SNKとなることで、PC200はPower Bank100への電力供給を開始し(ステップS20)、Power Bank100はPC200からの電力の受取りを開始する(ステップS8)。
【0133】
上述したように、Power Bank100がUnattachWait_LB.SRCである場合に、接続先のDRPデバイスが何らかの理由でErrorRecoveryへ遷移すると、Power Bank100は、DRPデバイスとの接続が物理的に切断されたと誤って判断して、Unattached.SNKへ遷移する可能性がある。このような状態になると、DRPデバイスは、Unattached.SRCを経てAttach.SRCへ遷移してしまい、受給電の役割が意図せず逆転してしまう。
【0134】
実施の形態2においては、上述したような第2の遷移条件を採用することで、接続先のDRPデバイスがErrorRecoveryへ遷移したとしても、接続が物理的に切断されたと誤って判断することを回避できる。
【0135】
図12は、実施の形態2に従うPower Bank100とPC200との間で実行される受給電動作に係る処理シーケンスを示すシーケンスチャートである。
図12に示すシーケンスチャートにおいて、
図3、
図7または
図11に示すシーケンスチャートと実質的に同一の処理については、同一の参照符号を付している。また、
図3、
図7または
図11を参照して説明した処理については、その説明は繰り返さない。
【0136】
図12には、
図11と同様に、Power Bank100からPC200に電力を供給する場合の処理シーケンスを示す。具体的には、Power Bank100は、Unattached.SRCからAttachWait.SRCを経てAttach.SRCへ遷移し(ステップS1,S2,S3)、PC200への電力供給を開始する(ステップS4)。
【0137】
一方、PC200は、Unattached.SNKからAttachWait.SNKを経てAttach.SNKへ遷移し(ステップS11,S12,S13)、Power Bank100からの電力の受取りを開始する(ステップS14)。
【0138】
このように、Power Bank100のコントローラ110は、SRC(給電側)を示すプルアップ抵抗1165,1167(第1の抵抗;抵抗値Rp)を通信ラインに接続して、バッテリ106に蓄えられた電力を接続先へ供給する。
【0139】
その後、Power Bank100のバッテリ106の放電電圧が予め定められた値まで低下すると、Power Bank100は、Low Batteryとなり、Attach.SRCからUnattachWait_LB.SRCへ遷移する(ステップS21)。この状態において、Power Bank100からPC200への電力供給は停止される。但し、Power Bank100は、SRCの状態を維持する。
【0140】
一方、PC200は、Power Bank100からの電力供給が停止されることで、電力の受取りを停止する(ステップS15)。そして、PC200は、Attached.SNKからUnattachWait.SNKへ遷移する(ステップS16)。
【0141】
このように、Power Bank100のコントローラ110は、SRC(給電側)を示すプルアップ抵抗1165,1167(第1の抵抗;抵抗値Rp)を通信ラインに接続して、バッテリ106に蓄えられた電力を接続先へ供給する。
【0142】
この状態において、PC200がErrorRecoveryへ遷移したとする。すなわち、PC200は、何らかの条件が満たされることで、ErrorRecoveryへ遷移する(ステップS33)。ErrorRecoveryにおいて、PC200の通信ラインの状態は、SRC.Openになる。そして、PC200は、tErrorRecoveryの経過後、Unattached.SRCへ遷移する(ステップS34)。さらに、PC200は、DRP Toggle動作によって、UnattachWait.SRCからUnattachWait.SNKへ遷移する(ステップS16)。このとき、PC200は、通信ラインに抵抗値Rdを見せるとともに、電力ラインには規定電圧を生じさせない。
【0143】
ErrorRecoveryに関して、ErrorRecovery(ステップS33)からUnattached.SRC(ステップS34)への遷移に要する時間は、tErrorRecoveryであり、Unattached.SRC(ステップS34)からUnattachWait.SNK(ステップS16)への遷移に要する時間は、tDRPである。すなわち、ErrorRecoveryへの移行によって、PC200の通信ラインの状態はSRC.Openになるものの、(tErrorRecovery+tDRP)の経過後には、通信ラインに抵抗値Rdを見せるようになる。すなわち、通信ラインにはvRdの電圧が現れることになる。
【0144】
よって、(CC1に現れる電圧≠vRdかつCC2に現れる電圧≠vRd)の状態が(tErrorRecovery+tDRP)の時間を超えて継続されることはなく、遷移条件は満たされない。その結果、Power Bank100は、DRPデバイスとの接続が物理的に切断されたと誤って判断することはなく、UnattachWait_LB.SRCを維持する。
【0145】
一方、PC200は、接続先のPower Bank100の存在を検出することで、「Connection Detected」の条件が満たされていると判断し、Unattached.SNKからAttachWait.SNKへ遷移する(ステップS31)。
【0146】
最終的に、Power Bank100とPC200との接続が実際に物理的に切断されると(ステップS32)、Power Bank100は、実施の形態2に従う遷移条件が満たされたと判断し、UnattachWait_LB.SRCからUnattached.SNKへ遷移する(ステップS22)。
【0147】
上述したように、Power Bank100がUnattachWait_LB.SRCである場合に、接続先のDRPデバイスが何らかの理由でErrorRecoveryへ遷移し、それに続くUnattached.SRCへの遷移が生じたとしても、Power Bank100は、UnattachWait_LB.SRCに維持される。これにより、DRPデバイスも最終的にAttachWait.SNKに遷移して維持されるため、受給電の役割が意図せず逆転してしまうことを防止できる。
【0148】
(d3:動作例)
次に、実施の形態2に従うPower Bank100とDRPデバイスの一例であるPC200との間で実行される受給電動作の動作例について説明する。
【0149】
図13は、実施の形態2に従うPower Bank100とPC200との間で実行される受給電動作の動作例を示す模式図である。
図13(a)には、比較例として、実施の形態1に従うPower Bank100とPC200との間で実行される受給電動作においてErrorRecoveryが発生した場合の動作例を示し、
図13(b)には、実施の形態1に従うPower Bank100とPC200との間で実行される受給電動作においてErrorRecoveryが発生した場合の動作例を示す。
【0150】
図13(a)を参照して、実施の形態1に従うPower Bank100からPC200への電力供給中に、Power Bank100がLow Batteryになると、Power Bank100からPC200への電力供給は停止される。ここで、PC200(DRPデバイス)がErrorRecoveryへ遷移すると、通信ラインの状態がSRC.Openになる。これにより、実施の形態1において採用される遷移条件が満たされたと判断されるので、Power Bank100とPC200との間で、受給電の役割が意図せず逆転してしまう。
【0151】
これに対して、
図13(b)を参照して、実施の形態2に従うPower Bank100からPC200への電力供給中に、Power Bank100がLow Batteryになると、Power Bank100からPC200への電力供給は停止される。ここで、PC200(DRPデバイス)がErrorRecoveryへ遷移したとしても、実施の形態2において採用される遷移条件は満たされないので、Power Bank100とPC200との間で、受給電の役割が意図せず逆転してしまう事態を回避できる。
【0152】
(d4:処理手順)
図14は、実施の形態2に従うPower Bank100の給電動作に係る処理手順を示すフローチャートである。
図14に示すPower Bank100の各ステップは、典型的には、コントローラ110のプロセッサ112が制御プログラムであるファームウェア114を実行することで実現される。したがって、
図14に示す各ステップの実行主体は、典型的には、プロセッサ112となる。
【0153】
図14を参照して、プロセッサ112は、Attached.SRCにおけるDRPデバイスへの電力供給中において、バッテリ106の放電電圧が予め定められた値まで低下したか否かを判断する(ステップS200)。バッテリ106の放電電圧が予め定められた値まで低下していなければ(ステップS200においてNO)、プロセッサ112は、ステップS200の処理を繰り返す。
【0154】
バッテリ106の放電電圧が予め定められた値まで低下していれば(ステップS200においてYES)、プロセッサ112は、通信ライン(第1通信ライン21および第2通信ライン22)に抵抗値Rpを見せる状態を維持しつつ、電力ラインを介したDRPデバイスへの電力供給を停止する(ステップS202)。
【0155】
そして、プロセッサ112は、通信ライン(第1通信ライン21および第2通信ライン22)に現れる電圧がvRdとは異なっているか否かを判断する(ステップS204)。通信ライン(第1通信ライン21および第2通信ライン22)に現れる電圧がvRdと実質的に一致していれば(ステップS204においてNO)、プロセッサ112は、ステップS204の処理を繰り返す。
【0156】
通信ライン(第1通信ライン21および第2通信ライン22)に現れる電圧がvRdとは異なっていれば(ステップS204においてYES)、プロセッサ112は、通信ラインの状態が(tErrorRecovery+tDRP)の時間を超えて継続しているか否かを判断する(ステップS206)。
【0157】
通信ラインの状態が(tErrorRecovery+tDRP)の時間を超えて継続していなければ(ステップS206においてNO)、プロセッサ112は、ステップS204の処理を繰り返す。
【0158】
通信ラインの状態が(tErrorRecovery+tDRP)の時間を超えて継続していれば(ステップS206においてYES)、プロセッサ112は、通信ライン(第1通信ライン21および第2通信ライン22)に見せる抵抗値をRpからRdに変更し(ステップS208)、DRPデバイスへの給電動作を終了する。
【0159】
(d5:利点)
USB Type-C規格によれば、任意のタイミングでErrorRecoveryへ遷移して、デバイス間の接続をリセットすることが許容されている。実施の形態2によれば、Power Bank100がUnattachWait_LB.SRCにある場合に、仮にErrorRecoveryが発生したとしても、DRPデバイスとの接続が物理的に切断されたと誤って判断されることがないので、受給電の役割が意図せず逆転してしまう事態を回避できる。
【0160】
上述した以外の構成および処理などは、上述の実施の形態1と同様であるので、ここでは、詳細な説明は繰り返さない。
【0161】
[E.実施の形態3]
上述の実施の形態1および2においては、給電および受電の両方に対応する単一のポートを採用したPower Bank100における給電動作について説明した。実施の形態3においては、給電および受電の両方に対応するポートを複数採用した構成、あるいは、受電用のポートを追加で採用した構成に適した受給電動作について説明する。
【0162】
以下に説明する構成および処理を除いて、実施の形態3の構成および処理は、上述の実施の形態1または2と同様であるので、詳細な説明は繰り返さない。
【0163】
(e1:ステート遷移)
まず、実施の形態3に従うPower Bank100のステート遷移について説明する。
図15は、実施の形態3に従うPower Bank100のステート遷移の要部を示す図である。
図15に示すステート遷移は、
図6に示す実施の形態1に従うPower Bank100のステート遷移に比較して、UnattachWait_LB.SRC(ST7)からAttachWait.SRC(ST2)への遷移が追加されている点が異なっている。
図15において、
図6に示すステートと実質的に同一のステートについては、同一の参照符号を付している。また、
図6を参照して説明したステートについては、その説明は繰り返さない。
【0164】
給電および受電の両方に対応するポートを複数採用した構成、あるいは、受電用のポートを追加で採用した構成を採用した場合には、DRPデバイスと接続された状態で、別のポートを介してバッテリを充電できる。そこで、Power Bank100がLow Batteryになり、UnattachWait_LB.SRC(ST7)へ遷移した後に、当該別のポートを介して受取った電力によってLow Batteryが解消されると、AttachWait.SRC(ST2)へ遷移する(シーケンスSQ45)。AttachWait.SRC(ST2)への遷移によって、DRPデバイスとの接続が物理的に切断されるか否かの検出処理を終了する。
【0165】
UnattachWait_LB.SRC(ST7)からAttachWait.SRC(ST2)への遷移を用意することによって、Power Bank100は、別のポートを介して受取った電力を利用して、そのままDRPデバイスに電力を供給できる。
【0166】
このように、実施の形態3においては、UnattachWait_LB.SRC(ST7)からの遷移条件として、バッテリの充電によるLow Batteryから回復したという条件を採用する(以下、「第3の遷移条件」とも称す。)。すなわち、ステート管理部に相当するプロセッサ112は、バッテリ106が充電されることで、接続先への電力供給が可能な状態に回復すると、SRC(受電側)としてのシーケンスに従って、接続先への電力供給を再開する。
【0167】
このように、実施の形態3においては、複数のポートを有しているPower Bank100に適した第3の遷移条件を採用することで、より適切な受給電動作を実現する。
【0168】
(e2:装置構成)
次に、実施の形態3に従うPower Bank100の装置構成の一例について説明する。
図16および
図17は、実施の形態3に従うPower Bank100の装置構成の一例を示す模式図である。
図16および
図17には、USB Type-C型インターフェースのポートを複数有している装置構成を示す。
図16および
図17に示す装置構成において、
図4に示す装置構成と同一の部材については、同一の参照符号を付している。
【0169】
図16を参照して、実施の形態3に従うPower Bank100は、主たる構成要素として、コネクタ102A,102Bと、電源管理部(Power Manager)104A,104Bと、バッテリ106と、コントローラ(Controller)110とを含む。
【0170】
コネクタ102A,102Bは、USB Type-C型インターフェースのポートを含む。
【0171】
電源管理部104A,104Bは、コントローラ110からの指示に従って、バッテリ106の充放電を制御する充放電制御回路に相当する。
【0172】
コントローラ110は、プロセッサ112と、コネクタ102Aに接続される信号伝送モジュール(PHY&LGC)116Aと、コネクタ102Bに接続される信号伝送モジュール(PHY&LGC)116Bと、プロセッサ112とを含む。プロセッサ112は、信号伝送モジュール116A,116Bおよび電源管理部104A,104Bに接続されている。
【0173】
プロセッサ112は、USB Type-C規格に従うシーケンスを実行するステート管理部に相当する。プロセッサ112は、制御プログラムの一例であるファームウェア114を実行することで、コネクタ102Aおよびコネクタ102Bのそれぞれを介して実行されるシーケンスを制御する。
【0174】
図17を参照して、実施の形態3に従う別のPower Bank100は、主たる構成要素として、コネクタ102A,102Bと、電源管理部(Power Manager)104A,104Bと、バッテリ106と、コントローラ(Controller)110とを含む。
【0175】
コントローラ110は、プロセッサ112A,112Bと、コネクタ102Aに接続される信号伝送モジュール(PHY&LGC)116Aと、コネクタ102Bに接続される信号伝送モジュール(PHY&LGC)116Bと、プロセッサ112とを含む。ポート毎に信号伝送モジュール116A,116Bが設けられる。
【0176】
プロセッサ112Aは、信号伝送モジュール116Aおよび電源管理部104Aに接続されている。また、プロセッサ112Bは、信号伝送モジュール116Bおよび電源管理部104Bに接続されている。さらに、プロセッサ112Aとプロセッサ112Bとの間も接続されている。
【0177】
プロセッサ112Aは、制御プログラムの一例であるファームウェア114Aを実行することで、コネクタ102Aを介して実行されるシーケンスを制御する。また、プロセッサ112Bは、制御プログラムの一例であるファームウェア114Bを実行することで、コネクタ102Bを介して実行されるシーケンスを制御する。
【0178】
図16および
図17に示すPower Bank100のその他の構成については、
図4に示すPower Bank100の対応する構成と同様であるので、詳細な説明は繰り返さない。
【0179】
(e3:処理シーケンス)
次に、実施の形態3に従うPower Bank100とDRPデバイスの一例であるPC200との間で実行される受給電動作の処理シーケンスの一例について説明する。
【0180】
図18は、実施の形態3に従う遷移条件を採用しないPower Bank100とPC200との間で実行される受給電動作に係る処理シーケンスを示すシーケンスチャートである。
図18に示すシーケンスチャートにおいて、先に説明したいずれかのシーケンスチャートと実質的に同一の処理については、同一の参照符号を付している。また、先に説明した処理については、その説明は繰り返さない。
【0181】
図18を参照して、Power Bank100は、Unattached.SRCからAttachWait.SRCを経てAttach.SRCへ遷移し(ステップS1,S2,S3)、PC200への電力供給を開始する(ステップS4)。
【0182】
一方、PC200は、Unattached.SNKからAttachWait.SNKを経てAttach.SNKへ遷移し(ステップS11,S12,S13)、Power Bank100からの電力の受取りを開始する(ステップS14)。
【0183】
その後、Power Bank100のバッテリ106の放電電圧が予め定められた値まで低下すると、Power Bank100は、Low Batteryとなり、Attach.SRCからUnattachWait_LB.SRCへ遷移する(ステップS21)。この状態において、Power Bank100からPC200への電力供給は停止される。但し、Power Bank100は、SRCの状態を維持する。
【0184】
一方、PC200は、Power Bank100からの電力供給が停止されることで、電力の受取りを停止する(ステップS15)。そして、PC200は、Attached.SNKからUnattachWait.SNKへ遷移する(ステップS16)。さらに、PC200は、接続先のPower Bank100の存在を検出することで、「Connection Detected」の条件が満たされていると判断し、Unattached.SNKからAttachWait.SNKへ遷移する(ステップS31)。
【0185】
この状態において、Power Bank100は、PC200と接続されているポートとは別のポートを介して電力を受取るとする。すなわち、Power Bank100は、外部電源からの電力の受取りを開始する(ステップS24)。例えば、Power Bank100は、電源アダプタ300などの外部電源からの電力供給を受ける。この別のポートを介した電力供給によって、バッテリ106が充電され、Low Batteryが解消されたとする。
【0186】
このようにPower Bank100のLow Batteryが解消されてDRPデバイスへ給電可能な状態となっても、DRPデバイスとの接続が切断されたことが検出されないので、UnattachWait_LB.SRCに維持されて、給電を開始できない。
【0187】
このように、実施の形態3に従う第3の遷移条件ではなく、上述の実施の形態1に従う第1の遷移条件または実施の形態2に従う第2の遷移条件を採用した場合には、Power Bank100がUnattachWait_LB.SRCにある場合に、別のポートを介した給電によりLow Batteryが解消されても、ステート遷移は生じず、UnattachWait_LB.SRCに留まることになる。その結果、VBUSはenableにならないので、DRPデバイスへの電力供給は再開されない。
【0188】
すなわち、Power Bank100とDRPデバイスとの間の接続を物理的に切断しなければ、DRPデバイスを再充電することはできない。
【0189】
実施の形態3においては、上述したような、Power Bank100がUnattachWait_LB.SRCにある場合に、別のポートを介した電力供給によってバッテリ106が充電されてLow Batteryが解消したことを、UnattachWait_LB.SRC(ST7)からの遷移条件として採用する。このような第3の遷移条件を採用することで、Power Bank100とDRPデバイスとの間の接続を物理的に切断しなくとも、外部電源からの電力供給の状態またはバッテリ106の充電状態に応じて、DRPデバイスへの電力供給を再開できる。
【0190】
図19は、実施の形態3に従うPower Bank100とPC200との間で実行される受給電動作に係る処理シーケンスを示すシーケンスチャートである。
図19に示すシーケンスチャートにおいて、先に説明したいずれかのシーケンスチャートと実質的に同一の処理については、同一の参照符号を付している。また、先に説明した処理については、その説明は繰り返さない。
【0191】
図19を参照して、Power Bank100は、Unattached.SRCからAttachWait.SRCを経てAttach.SRCへ遷移し(ステップS1,S2,S3)、PC200への電力供給を開始する(ステップS4)。
【0192】
一方、PC200は、Unattached.SNKからAttachWait.SNKを経てAttach.SNKへ遷移し(ステップS11,S12,S13)、Power Bank100からの電力の受取りを開始する(ステップS14)。
【0193】
このように、Power Bank100のコントローラ110は、SRC(給電側)を示すプルアップ抵抗1165,1167(第1の抵抗;抵抗値Rp)を通信ラインに接続して、バッテリ106に蓄えられた電力を接続先へ供給する。
【0194】
その後、Power Bank100のバッテリ106の放電電圧が予め定められた値まで低下すると、Power Bank100は、Low Batteryとなり、Attach.SRCからUnattachWait_LB.SRCへ遷移する(ステップS21)。この状態において、Power Bank100からPC200への電力供給は停止される。但し、Power Bank100は、SRCの状態を維持する。
【0195】
一方、PC200は、Power Bank100からの電力供給が停止されることで、電力の受取りを停止する(ステップS15)。そして、PC200は、Attached.SNKからUnattachWait.SNKへ遷移する(ステップS16)。
【0196】
このように、Power Bank100のコントローラ110は、SRC(給電側)を示すプルアップ抵抗1165,1167(第1の抵抗;抵抗値Rp)を通信ラインに接続して、バッテリ106に蓄えられた電力を接続先へ供給する。
【0197】
さらに、PC200は、接続先のPower Bank100の存在を検出することで、「Connection Detected」の条件が満たされていると判断し、Unattached.SNKからAttachWait.SNKへ遷移する(ステップS31)。
【0198】
この状態において、Power Bank100は、PC200と接続されているポートとは別のポートを介して電力を受取るとする。すなわち、Power Bank100は、外部電源からの電力の受取りを開始する(ステップS24)。例えば、Power Bank100は、電源アダプタ300などの外部電源からの電力供給を受ける。この別のポートを介した電力供給によって、バッテリ106が充電され、Low Batteryが解消されたとする。
【0199】
Low Batteryが解消されることにより、Powe rBank100は、UnattachWait_LB.SRCからの遷移条件が満たされたと判断し、UnattachWait_LB.SRCからUnattachWait.SRCへ遷移する(ステップS25)。すなわち、Power Bank100は、SNKとなるデバイスの接続待ち状態となる。このとき、Power Bank100は、接続先のPC200がSRCからの応答待ち状態であることを検出することで、「Sink Detected」の条件が満たされていると判断し、AttachWait.SRCからAttached.SRCへ遷移する(ステップS26)。Attached.SRCにおいては、Power Bank100は、電力ラインへの規定電圧の供給を開始する。
【0200】
一方、PC200は、接続先のPower Bank100がSNKからの応答待ち状態であることを検出することで、「Source Detected」の条件が満たされていると判断し、AttachWait.SNKからAttached.SNKへ遷移する(ステップS35)。
【0201】
Power Bank100がAttached.SRCとなり、PC200がAttachWait.SNKとなることで、Power Bank100はPC200への電力供給を開始し(ステップS27)、PC200はPower Bank100からの電力の受取りを開始する(ステップS26)。
【0202】
上述したように、Power Bank100がUnattachWait_LB.SRCである場合に、別のポートを介して電力を受取ることで、Low Batteryが解消すると、UnattachWait_LB.SRCからAttachWait.SRCへ遷移することができる。AttachWait.SRCへの遷移によって、DRPデバイスが再検出されるとともに、VBUSがenableになる。その結果、DRPデバイスは、AttachWait.SNKからAttached.SNKへ遷移して、Power Bank100から再充電されるようになる。
【0203】
このように、Power Bank100とDRPデバイスとの接続を物理的に切断することなく、Power Bank100が再充電可能な状態になると、Power Bank100からDRPデバイスへ電力の供給が再開される。
【0204】
(e4:動作例)
次に、実施の形態3に従うPower Bank100とDRPデバイスの一例であるPC200との間で実行される受給電動作の動作例について説明する。
【0205】
図20は、実施の形態3に従うPower Bank100とPC200との間で実行される受給電動作の動作例を示す模式図である。
図20(a)には、比較例として、実施の形態3に従う遷移条件を採用しないPower Bank100の受給電動作において外部電源による充電が行なわれた場合の動作例を示し、
図20(b)には、実施の形態3に従う遷移条件を採用したPower Bank100の受給電動作において外部電源による充電が行なわれた場合の動作例を示す。
【0206】
USB Type-C規格においては、ポート毎にステートマシンが制御されるため、複数のポートを有しているデバイスの場合、ポート毎にSRCまたはSNKとして個別に動作させることができる。
【0207】
図20(a)を参照して、実施の形態3に従う遷移条件を採用しないPower Bank100からPC200への電力供給中に、Power Bank100がLow Batteryになると、Power Bank100からPC200への電力供給は停止される。ここで、別のポートを介して電力を受取り、Low Batteryが解消したとしても、Power Bank100は、UnattachWait_LB.SRCに留まるため、PC200を再充電することはできない。
【0208】
これに対して、
図20(b)を参照して、実施の形態3に従うPower Bank100からPC200への電力供給中に、Power Bank100がLow Batteryになると、Power Bank100からPC200への電力供給は停止される。ここで、別のポートを介して電力を受取り、Low Batteryが解消すると、Power Bank100は、Unattached.SNK(ST4)へ遷移する。そして、所定のシーケンスを実行することで、Power Bank100は、PC200との物理的な接続を切断することなく、PC200を再充電できる。
【0209】
なお、Power Bank100が複数のポートを有している場合において、給電および受電が同時に発生すると、受電している電力が給電している電力より大きい場合、給電に用いられる電力は受電している電力から賄われ、余りがバッテリ106に蓄えられる。一方、受電している電力が給電している電力より小さい場合、給電に用いられる電力は、受電している電力およびバッテリ106から放電される電力により賄われる。
【0210】
このように、DRPデバイスへの給電に用いられるポート以外に、外部電源からの受電が可能なポートを有しているPower Bank100の場合には、実施の形態3に従う遷移条件を採用することで、DRPデバイスへの再充電を容易に行なうことができる。すなわち、Power Bank100がDRPデバイスに給電したことでLow Batteryになった後、別のポートを介して受取った電力によってLow Batteryが解消されると、Power Bank100とDRPデバイスとを物理的に切断しなくても、Power Bank100からDRPデバイスへの給電を再開できる。
【0211】
(e5:処理手順)
次に、実施の形態3に従うPower Bank100とDRPデバイスの一例であるPC200との間で実行される受給電動作の処理シーケンスについて説明する。
【0212】
図21は、実施の形態3に従うPower Bank100の給電動作に係る処理手順を示すフローチャートである。
図21に示すPower Bank100の各ステップは、典型的には、コントローラ110のプロセッサ112が制御プログラムであるファームウェア114を実行することで実現される。したがって、
図21に示す各ステップの実行主体は、典型的には、プロセッサ112となる。
【0213】
図21を参照して、プロセッサ112は、Attached.SRCにおけるDRPデバイスへの電力供給中において、バッテリ106の放電電圧が予め定められた値まで低下したか否かを判断する(ステップS300)。バッテリ106の放電電圧が予め定められた値まで低下していなければ(ステップS300においてNO)、プロセッサ112は、ステップS300の処理を繰り返す。
【0214】
バッテリ106の放電電圧が予め定められた値まで低下していれば(ステップS300においてYES)、プロセッサ112は、通信ライン(第1通信ライン21および第2通信ライン22)に抵抗値Rpを見せる状態を維持しつつ、電力ラインを介したDRPデバイスへの電力供給を停止する(ステップS302)。
【0215】
そして、プロセッサ112は、通信ライン(第1通信ライン21および第2通信ライン22)がオープン状態になったか否かを判断する(ステップS304)。
【0216】
通信ラインがオープン状態になっていれば(ステップS304においてYES)、プロセッサ112は、通信ライン(第1通信ライン21および第2通信ライン22)に見せる抵抗値をRpからRdに変更し(ステップS306)、DRPデバイスへの給電動作を終了する。
【0217】
通信ラインがオープン状態になっていなければ(ステップS304においてNO)、プロセッサ112は、バッテリ106の放電電圧が予め定められた値を超えるまで回復しているか否かを判断する(ステップS308)。バッテリ106の放電電圧が予め定められた値を超えるまで回復していなければ(ステップS308においてNO)、プロセッサ112は、ステップS304以下の処理を繰り返す。
【0218】
バッテリ106の放電電圧が予め定められた値を超えるまで回復していれば(ステップS308においてYES)、プロセッサ112は、電力ラインを介したDRPデバイスへの電力供給を再開する(ステップS310)。そして、プロセッサ112は、ステップS300以下の処理を繰り返す。
【0219】
なお、ステップS300において、バッテリ106の放電電圧の比較(Low Batteryの判断)に用いられるしきい値と、ステップS308において、バッテリ106の放電電圧の比較(Low Batteryからの回復の判断)に用いられるしきい値とは異なる値が用いられてもよい。通常、ハンチングが発生しないように、ステップS308において用いられるしきい値は、ステップS300において用いられるしきい値より高い値に設定される。
【0220】
(e6:利点)
給電および受電の両方に対応するポートを複数採用したPower Bank100、あるいは、受電用のポートを追加で採用したPower Bank100においては、給電先のDRPデバイスを接続したまま、別のポートからPower Bank100のバッテリを充電可能である。このような構成において、Power Bank100がLow Batteryになり、UnattachWait_LB.SRCへ遷移した後、別のポートを介して受取った電力によりLow Batteryが解消されると、AttachWait.SRCへ遷移する。
【0221】
AttachWait.SRCへの遷移によって、Power Bank100は、DRPデバイスとの物理的な接続を切断することなく、当該別のポートを介して受取った電力、および/または、バッテリ106に蓄えられている電力を用いて、DRPデバイスに再給電できる。
【0222】
[F.実施の形態4]
上述の実施の形態1~3については、互いに適宜組合せることもできるし、任意の変形を加えることもできる。
【0223】
例えば、上述の実施の形態1において採用した第1の遷移条件、または、実施の形態2において採用した第2の遷移条件と、実施の形態3において採用した第3の遷移条件とを組合せた構成を採用してもよい。
【0224】
また、実施の形態1において採用した第1の遷移条件、および、実施の形態2において採用した第2の遷移条件のいずれについても実現可能なロジックを実装するとともに、状況に応じて、いずれか一方の遷移条件を有効化するようにしてもよい。具体的には、Power Bank100と接続される外部デバイスの形式あるいはシリアル番号などに応じて、いずれの遷移条件を有効化すべきかを選択するようにしてもよい。この場合、実施の形態3において採用した第3の遷移条件をさらに組合せてもよい。
【0225】
さらに、第2の遷移条件として、(CC1に現れる電圧≠vRdかつCC2に現れる電圧≠vRd)の状態が(tErrorRecovery+tDRP)の時間を超えて継続されることを例示したが、継続判断に用いる時間をより長くして、誤判断を防止するようにしてもよい。
【0226】
さらに、USB Type-C規格においては、USBケーブルを利用して電力の遣り取りを実現する給電規格である、USB Power Deliveryを利用できる。実施の形態1~3に従う構成は、USB Power Deliveryを利用する場合にも適用可能である。
【0227】
[G.実施の形態5]
上述の実施の形態1~4においては、プロセッサ112がファームウェア114を実行することで、上述したようなコントローラ110に係る処理の実行および機能の提供を実現する。
【0228】
プロセッサ112が実行するファームウェア114は、制御プログラムであり、外部からインストールまたは更新が可能になっている。ファームウェア114は、例えば、非一時的(non-transitory)な記録媒体に格納された状態で流通し、コントローラ110内の記憶領域にインストールまたは更新(アップデート)されてもよい。非一時的な記録媒体としては、光学ディスクなどの光学記録媒体、フラッシュメモリなどの半導体記録媒体、ハードディスクまたはストレージテープなどの磁気記録媒体、MO(Magneto-Optical disk)などの光磁気記録媒体を用いてもよい。すなわち、本実施の形態は、上述したような処理および機能を実現するためのコンピュータ読取可能な制御プログラム、および、当該制御プログラムを格納した記録媒体も含み得る。
【0229】
別の形態として、インターネットまたはイントラネットを介してサーバ装置からファームウェア114をダウンロードするようにしてもよい。
【0230】
当業者であれば、本実施の形態が実装される時代に応じた技術を適宜用いて、本実施の形態に従うコントローラおよびコントローラを含むデバイスを設計するであろう。
【0231】
[H.実施の形態6]
上述の実施の形態1~5においては、プロセッサ112がファームウェア114を実行することで、上述したようなコントローラ110に係る処理の実行および機能の提供を実現する。但し、このようなソフトウェア実装ではなく、一部または全部をハードウェア実装としてもよい。ハードウェア実装とする場合には、例えば、ASIC(Application Specific Integrated Circuit)やFPGA(Field-Programmable Gate Array)といったハードワイヤードなデバイスを採用してもよい。
【0232】
当業者であれば、本実施の形態が実装される時代に応じた技術を適宜用いて、本実施の形態に従うコントローラおよびコントローラを含むデバイスを設計するであろう。
【0233】
[I.まとめ]
本実施の形態によれば、給電側から外部デバイスへの給電を一旦開始すると、その後に給電側のバッテリに蓄電されていた電力が低下してLow Batteryとなり、そのままUSBケーブルを繋いだままにしておいても、受給電の役割が入れ替わることがない。そのため、当初は受電側であった外部デバイスのバッテリから当初は給電側であったバッテリに電力が戻ってくるような事象が生じない。
【0234】
以上、本発明者によってなされた発明を実施の形態に基づき具体的に説明したが、本発明は上記実施の形態に限定されるものではなく、その要旨を逸脱しない範囲で種々変更可能であることは言うまでもない。
【符号の説明】
【0235】
2 USBケーブル、21 第1通信ライン、22 第2通信ライン、100 Power Bank、102,102A,102B コネクタ、104,104A,104B 電源管理部、106 バッテリ、110 コントローラ、112,112A,112B プロセッサ、114,114A,114B ファームウェア、116,116A,116B 信号伝送モジュール、200 PC、300 電源アダプタ、1161 第1通信制御ブロック、1162 第2通信制御ブロック、1163,1164 スイッチ、1165,1167 プルアップ抵抗、1166,1168 プルダウン抵抗、GND グランド電位、Rd,Rp 抵抗値、Vs 電源電位。