以下、本発明の各実施の形態について図面を参照しながら詳細に説明する。しかしながら、以下の各実施の形態に記載されている構成はあくまで例示に過ぎず、本発明の範囲は各実施の形態に記載されている構成によって限定されることはない。
以下の各実施形態におけるUSB3.1規格について説明する。USB3.1規格は、USB2.0、USB Power Delivery(以下、PDとする)やUSB Battery Chargingといった規格をサポートするUSB Type-Cについて規定している。USB3.1規格では、ディスプレイやオーディオデバイス等の電子機器に対して、規格に準拠した映像データや音声データ等を転送することを可能とするAlternate Mode(以下、Alt.modeとする)が策定されている。
USB3.1規格は、データの送受信において、電子機器は、ホスト機器とデバイス機器とのうち何れの機器の役割を果たすかを規定している。ホスト機器はDFP(Downstream Facing Port)機器であり、デバイス機器はUFP(Upstream Facing Port)機器である。また、USB3.1規格は、ホスト機器およびデバイス機器の両機能を備えるDRP(Dual Role Port)機器を規定している。USB3.1規格では、データだけでなく、電力も双方向で授受が可能であり、給電側がSource、受電側がSinkと規定される。また、USB3.1規格では、ケーブルの給電条件等のケーブル条件を記録するeMarkerに電源を供給するVconnについて規定されている。ケーブル条件は、ケーブルに供給可能な電流や電圧等を定めたケーブル定格である。eMarkerは、ケーブルに内蔵される通信制御手段(外部から供給された電力を用いて動作する通信制御手段)であり、例えば、チップが適用される。USB Type-Cのコネクタは、送信側および受信側で同じコネクタ形状をしており、上述の役割は、接続した機器間で、相互に変更することが可能である。
上述したように、DRP機器は、ホスト機器およびデバイス機器の両機能を備える。DRP機器は、接続相手の機器の状態に応じて、DFP機器かつSourceであるDFP/Sourceとして機能する状態であるか、UFP機器かつSinkであるUFP/Sinkとして機能する状態であるかを、一時的に決定する。
USB Type-Cコネクタの接続時に、DFP/Sourceとなった電子機器(給電側の電子機器:給電機器)は、Vconn_Sourceとなる。Vconn_Sourceとなった電子機器は、eMarkerに対して電源を供給することができるため、eMarkerからケーブル条件を取得できる。一方、USB Type-Cコネクタの接続時にUFP/Sinkとなった電子機器(受電側の電子機器:受電機器)は、Vconn_Sourceとならないため、eMarkerに対して電源を供給する権利がない。このため、UFP/Sinkとなった電子機器(受電機器)は、Vconn_Sourceとならない限り、eMarkerからケーブル条件を取得できない。
ここで、UFP/Sinkとなった電子機器は、DFP/Sourceとなった電子機器に対して、Vconn_SWAPを要求することができる。Vconn_SWAP要求は、Sourceとしての役割とSinkとしての役割とを交換する要求であり、電源を供給する権利を求める要求である。UFP/Sinkとなった電子機器は、DFP/Sourceとなった電子機器に対してVconn_SWAPを要求し、Vconn_SWAPが許可されれば、UFP/Sinkとなった電子機器は、Vconn_Sourceとなることができる。UFP/Sinkとなった電子機器は、Vconn_SWAPによりVconn_Sourceとなることができれば、eMarkerからケーブル条件を取得できる。以下、各実施形態について説明する。
<第1実施形態>
図面を参照して、第1実施形態について説明する。図1は、電子機器100と外部機器200とがケーブル300を介して接続されている図を示す。外部機器200は、電子機器100に接続される他の電子機器である。電子機器100および外部機器200には、任意の機器が適用可能である。例えば、電子機器100にはカメラ等の撮像装置が適用され、外部機器200にはディスプレイ等の表示装置が適用される。また、ケーブル300としては、USB Type-Cコネクタを有するUSBケーブルが適用されるものとする。ケーブル300は、eMarkerを内蔵する所定の種類のケーブルである。図1では、電子機器100および外部機器200の両者は、DRP機器であるとする。DRP機器がDFPとして機能する場合、当該機器は、デフォルトにおいてホスト機器として機能するとともにデバイス機器に電力を供給する。DPR機器がUFPとして機能する場合、UFPは、デフォルトにおいてデバイス機器として機能するとともにホスト機器から電力を受け取る。
ポートおよびコネクタについて説明する。電子機器100には、USB Type-C規格に準拠したポート150が備えられており、外部機器200には、USB Type-C規格に準拠したポート250が備えられている。ポート150およびポート250は、USB Type-C規格に準拠した電源や通信ラインを含む。ポート150は、電子機器100のシステム制御部110により制御され、ポート250は、外部機器200のシステム制御部210により制御される。電子機器100のポート150にはコネクタ101が設けられ、外部機器200のポート250にはコネクタ201が設けられる。コネクタ101および201は、何れもレセプタクルである。ケーブル300の一方の端部にはUSB Type-C規格に準拠したコネクタ303aが備えられており、ケーブル300の他方の端部にはUSB Type-C規格に準拠したコネクタ303bが備えられている。コネクタ303aおよびコネクタ303bは、何れもプラグである。電子機器100のポート150と外部機器200のポート250とは、ケーブル300を介して接続される。電子機器100のポート150と外部機器200のポート250との間では、ケーブル300を介して、データの送受信だけでなく、双方向に電力供給を行うことも可能である。
コネクタ101は、VBUS端子(電源端子)101a、CC端子101b、Vconn端子(Vconn電源端子)101cおよびGND端子(グラウンド端子)101dを有する接続手段である。電子機器100は、コネクタ101を介して、外部機器200と接続可能である。コネクタ201は、VBUS端子201a、CC端子201b、Vconn端子201cおよびGND端子201dを有する。
図1において、電子機器100は、プルアップ抵抗103、プルダウン抵抗104、スイッチ107、スイッチ制御部109、システム制御部110、タイマ部111、接続検出部112および通信部114を有する。外部機器200は、プルアップ抵抗203、プルダウン抵抗204、スイッチ207、スイッチ制御部209、システム制御部210、タイマ部211、接続検出部212および通信部214を有する。図1において、スイッチは「SW」と表記される。また、電子機器100は、VBUS端子へ電源を供給するVBUS_Source用のスイッチ117およびVBUS端子から供給される電力を機器で受電するVBUS_Sink用のスイッチ118を有する。外部機器200は、VBUS端子へ電源を供給するVBUS_Source用のスイッチ217およびVBUS端子から供給される電力を機器で受電するVBUS_Sink用のスイッチ218を有する。
プルアップ抵抗103および203は、定電圧電源VCCに接続されている。プルアップ抵抗103および203は、USB Type-C規格に規定された所定の定数(例えば、22kΩ)を持つ抵抗である。定電圧電源VCCの電圧値は、USB Type-C規格に規定された値であり、例えば、5ボルト(以下、ボルトをVとして示す)であるとする。プルダウン抵抗104および204は、GNDに接続されている。プルダウン抵抗104および204は、USB Type-C規格に規定された所定の定数(例えば、5.1kΩ)を持つ抵抗である。
スイッチ107は、スイッチ制御部109の制御に基づいて、CC端子101bの接続先を、プルアップ抵抗103またはプルダウン抵抗104の何れかに切り替える。スイッチ107の接続先が切り替わることで、プルアップ抵抗103およびプルダウン抵抗104は、CC端子101bに接続可能である。また、スイッチ制御部109は、スイッチ107を制御して、CC端子101bがプルアップ抵抗103とプルダウン抵抗104との何れにも接続されていない開放状態にすることもある。スイッチ207は、スイッチ制御部209の制御に基づいて、CC端子201bの接続先を、プルアップ抵抗203またはプルダウン抵抗204の何れかに切り替える。また、スイッチ制御部209は、スイッチ207を制御して、CC端子201bがプルアップ抵抗203とプルダウン抵抗204との何れにも接続されていない開放状態にすることもある。図1に示される状態では、電子機器100のCC端子101bがプルアップ抵抗103に接続され、外部機器200のCC端子201bがプルダウン抵抗204に接続されている。以下、プルアップ抵抗を「Rp」、プルダウン抵抗を「Rd」として示すことがある。
スイッチ制御部109は、スイッチ107を制御し、CC端子101bをプルアップ抵抗103に接続することで、電子機器100がホスト機器であることを、外部機器200に示す。また、スイッチ制御部109は、スイッチ107を制御し、CC端子101bをプルダウン抵抗104に接続することで、電子機器100がデバイス機器であることを、外部機器200に示す。さらに、スイッチ制御部109は、スイッチ107を制御して時分割で切り替えることで、電子機器100がホスト機器にもデバイス機器にもなれることを外部機器に示す。また、スイッチ制御部109は、スイッチ107を制御して、プルアップ抵抗103とプルダウン抵抗104との何れにも接続しない開放状態に制御することも可能である。スイッチ107およびスイッチ制御部109は、電子機器100と外部機器200とが接続されたことに応じて、電子機器100が給電機器であるか受電機器であるかを決定する決定手段である。
システム制御部110は、電子機器100の全体を制御し、外部機器200と通信する通信手段であるシステム制御部210は、外部機器200の全体を制御し、電子機器100と通信する通信手段である。タイマ部111は、システム制御部110と接続されており、スイッチ107を切り替えるタイミングなどの時間を計測する。タイマ部211は、システム制御部210と接続されており、スイッチ207を切り替えるタイミング等の時間を計測する。接続検出部112は、CC端子101bの電圧を検出することで、コネクタ101に機器が接続されたか否かを検出する接続検出手段である。接続検出部212は、コネクタ201のCC端子201bの電圧を検出することで、コネクタ201に機器が接続されたか否かを検出する接続検出手段である。通信部114は、システム制御部110の制御により、CC端子101bを介して外部機器200と通信を行う。通信部214は、システム制御部210の制御により、コネクタ201のCC端子を介して電子機器100と通信を行う。
接続検出部112は、CC端子101bの電圧を検出して、検出した電圧が所定の範囲内であるか否かによって、コネクタ101に外部機器200が接続されたか否かを判定する検出手段である。CC端子101bは、他の電子機器(外部機器200)が接続されたかの検出に用いられる端子である。所定の電圧範囲は、任意の範囲であってよいが、以下、USB Type-C規格に規定されている式1に記載された電圧範囲とする。
2V≦VSENSE<2.04V(式1)
VSENSEは、接続検出部112が検出した、CC端子101bの電圧(単位は[V])である。
接続検出部112は、CC端子101bの電圧が所定の範囲内でない場合、つまり、VSENSE電圧が式1の範囲外であった場合には、コネクタ101に外部機器200が接続されていることを検出しない。例えば、コネクタ101に外部機器200が接続されておらず、CC端子101bがプルアップ抵抗103に接続されている場合、CC端子101bの電圧は、定電圧電源VCCの電圧値となる。定電圧電源VCCの電圧値が5Vの場合、CC端子101bの電圧は、式1の範囲外となる。この場合、接続検出部112は、コネクタ101に外部機器200が接続されていることを検出しない。また、コネクタ101に外部機器200が接続されておらず、CC端子101bがプルダウン抵抗104に接続されている場合、CC端子101bの電圧は、GNDの電圧値となる。GNDの電圧値は0ボルトであるため、CC端子101bの電圧は式1の範囲外となる。この場合、接続検出部102は、コネクタ101に外部機器200が接続されていることを検出しない。接続検出部112は、CC端子101bの電圧が式1の範囲内にあるときに、コネクタ101に外部機器200が接続されたことを検出する。接続検出部112は、外部機器200の接続を検出した場合、システム制御部110に機器の接続を通知する。
システム制御部110は、スイッチ制御部109を制御して、スイッチ107の接続先を、プルアップ抵抗103とプルダウン抵抗104とに周期的に切り替え続ける。この際、システム制御部110は、CC端子101bの電圧が式1の範囲内に入るまで、トグリング(Toggling)を行うように、スイッチ制御部109を制御する。トグリングは、スイッチ107の接続先を、プルダウン抵抗とプルアップ抵抗とに周期的に切り替える動作である。
図2は、USB Type-Cコネクタのピン配置を示す図である。USB Type-Cコネクタ(コネクタ101および201)は、表裏が逆に挿入された場合であっても正常に動作するために、コネクタ中心を基準に点対称なピン配置となっている。ここで、唯一信号が一致しないのは、中央付近にあるCC端子である。CC端子は、2つの役割がある。図2に示されるように、USB Type-CコネクタのピンにはCC1とCC2とがあり、機器同士が接続されると、プラグの接続方向によって、CC1とCC2とのうち、何れかのCC端子は、機器との接続検出用としての役割を担う。ケーブル300が、eMarkerを有したElectrical Marked Cable Assembly(以下、EMCA)ケーブルの場合、もう一方のCC端子は、VconnとなってeMarkerに電力を供給する。EMCAは、認証付ケーブルであり、通電容量や対応プロトコルなどを機器に伝える機能を持つ。
TX端子(TX1+、TX1-、TX2+、TX2-)は信号送信用の端子であり、RX端子(RX1+、RX1-、RX2+、RX2-)は信号受信用の端子であり、これらは高速データ伝送に対応し得る。SBU端子(SBU1、SBU2)は、サイドバンド信号端子であり、各種の用途に適宜用い得る。D+端子及びD-端子は、USB2.0をサポートするために用いられる。ケーブル300には、図2に示す各々の端子に対応する電線が備えられている。
図3は、上述した非特許文献1に記載されているケーブル300の構成について示している。ケーブル300には、ケーブル条件が記録され、機器とCCラインを介して通信するeMarker302が組み込まれている。eMarker302は、Vconn_SourceからVconn電源を受電し、Vconn_Source側とCCラインを介して通信を行う。Vconnラインに接続されているダイオード301aおよびダイオード301bは、Vconn_Sourceから供給された電源が、相手側のVconn端子に供給されないようにするために設けられている。
以下、図4および図5のフローチャートを参照して、第1実施形態の処理の流れについて説明する。接続検出部112は、電子機器100と外部機器200とが接続されているか否かを判定する(ステップS401)。電子機器100と外部機器200とが接続されているか否かは、接続検出部112により検出される。接続検出部112は、CC端子101bの電位VSENSEが、上述した式(1)に示す範囲内である場合に、電子機器100と外部機器200とが接続されていることを検出する。一方、接続検出部112は、CC端子101bの電位VSENSEが、上述した式(1)に示す範囲外である場合に、電子機器100と外部機器200とが接続されていることを検出しない。電子機器100と外部機器200とが接続されていると接続検出部112が検出した場合(ステップS401においてYES)、フローはステップS403に移行する。電子機器100と外部機器200とが接続されていることを接続検出部112が検出しない場合(ステップS401においてNO)、ステップS401が繰り返される。
ステップS401の判定がYESの場合、システム制御部110は、規格電力で動作可能であるか否かを判定する(ステップS403)。この際、システム制御部110は、電子機器100の動作電力が所定電力以下であるかに基づいて、ステップS403の判定を行ってもよい。上記所定電力は、任意の電力であってよいが、例えば、非特許文献1に記載された電力が適用される。ステップS403の判定が行われる理由は、eMarkerを有していないケーブルの場合、通常、電圧が5Vおよび電流が500mA(ミリアンペア)までの電力の伝送が許容されているためである。電圧が5Vおよび電流が500mA以上の電力を伝送する場合、ケーブル条件を考慮した電力の伝送が必要となるため、ステップS403の判定が行われる。
ステップS403でYESと判定された場合、電子機器100の動作電力は所定電力以下であるため、機器同士の間で給電が行われる際に、ケーブル条件を考慮する必要はない。このため、システム制御部110は、USB Type-C Power Delivery(PD)規格に準拠したPD通信を行う(ステップS405)。このPD通信で、給電機器から受電機器に給電を行う際の電力供給量を取り決めるPower Contractが行われる。S405のPD通信では、上述の所定電力、すなわち、5V、500mA以下で電力供給量を取り決める。システム制御部110は、外部機器200との間で電力に関する電力情報を送受信するために、CC端子101bの電圧を制御し、CC端子101bのDCレベルを用いて、USB Type-C規格に準拠した通信を行う。システム制御部110は、外部機器200との間で接続が確立した後に、送受信の試行を行い、PD通信におけるメッセージ授受が成功したか否かを判定する。PD通信におけるメッセージ授受が成功した場合には、電子機器100と外部機器200との両者がPD規格に対応していると判定され、以後、PD通信を用いた制御が行われる。PD通信におけるメッセージ授受が成功しなかった場合には、電子機器100と外部機器200とのうち何れか一方または両方がPD規格に対応していないと判定される。電子機器100と外部機器200とのうちの少なくともいずれかがPD規格に対応していない場合には、DisplayPort又はHDMI(登録商標)通信をすることが可能なAlt.modeで動作できない。以下、電子機器100と外部機器200のいずれもがPD規格に対応しているものとする。この場合、給電機器から受電機器に対して、PD通信で決定された電力の給電が行われる(ステップS407)。ステップS407の処理は、ステップS403でYESと判定された場合に行われる。このため、ケーブル300のケーブル条件を満たした電力の給電が行われるため、ケーブル300の能力を超えた過剰な電力が伝送されることはない。
ステップS403でNOと判定された場合、システム制御部110は、CC端子101bがプルアップ抵抗103に接続されている否かを検出することで、電子機器100がDFP/Sourceになっているか否かを判定する(ステップS409)。CC端子101bがプルアップ抵抗103に接続されている場合(ステップS409においてYES)、システム制御部110は、電子機器100がDFP/Sourceになっていると判定する。この場合、電子機器100が、Vconn_Sourceとなっているため、Vconn_SWAP要求を出力する必要がない。従って、フローは、ステップS415に移行する。CC端子101bがプルダウン抵抗104に接続されている場合(ステップS409においてNO)、システム制御部110は、外部機器200がDFP/Sourceになっていると判定する。この場合、外部機器200が、Vconn_Sourceとなっている。従って、電子機器100は、外部機器200に対して、Vconn_SWAP要求を出力する(ステップS411)。
システム制御部110は、電子機器100が、Vconn_Sourceとなれたか否かを判定する(ステップS413)。外部機器200は、電子機器100からのVconn_SWAP要求を許可する場合もあり、拒否する場合もある。Vconn_SWAP要求が拒否された場合、電子機器100は、Vconn_Sourceとなることができず、ステップS413の判定はNOとなる。一方、外部機器200が、電子機器100からのVconn_SWAP要求を許可した場合、電子機器100は、Vconn_Sourceとなることができる。この場合、ステップS413の判定はYESとなる。ステップS413でNOと判定された場合、フローは「T1」に進む。「T1」以降のフローについては、後述する。
ステップS413でYESと判定された場合、システム制御部110は、Vconn端子101cからVconn電源をeMarker302に供給する。そして、システム制御部110は、通信部114を制御して、CC端子101bからeMarker302と通信を行う。通信部114がeMarker302と通信することにより、システム制御部110は、ケーブル300のケーブル条件を取得し、ケーブル条件(ケーブル素性)を確認する(ステップS415)。システム制御部110は、ケーブル条件を確認した後、ステップS405と同様のPD通信を行う(ステップS417)。ここで、図6を参照して、PD通信の流れについて説明する。
時刻t1で電子機器100と外部機器200とが接続されると、CC端子が0V~5Vの間の所定の電圧になる。CC端子が所定の電圧になると、DFP/SourceはVBUS 5Vを出力する(時刻t2)。時刻t3において、DFP/SourceはPD規格に則って、Source capabilitiesをUFP/Sinkに提示する。Source capabilitiesは、DFP/Sourceが供給できる電力供給能力のことである。時刻t4で、UFP/Sinkは、時刻t3において提示された電力の中から所望の電力を選択し、DFP/Sourceに対して電力を要求する。時刻t5でDFP/Sourceは、UFP/Sinkから要求された電力を供給可能な場合、AcceptをUFP/Sinkに返し、電力を供給する準備を開始する。時刻t6でDFP/Sourceは電力供給の準備ができると、PS RDY信号をUFP/Sinkに送り、供給する電力を変更し、UFP/SinkはPS RDY信号を受けるとDFP/Sourceから電力の需給を開始する。PD規格では、DFP/SourceはUFP/SinkとPD通信でAcceptした電力を供給し続ける必要があり、DFP/Sourceが供給電力を変更する場合は、PD通信を再度行う必要がある。PD通信は、電力に関する情報を示す電力情報の通信に対応する。具体的には、PD通信は、DFP/SourceからUFP/SinkにSource capabilitiesを提示する通信と、UFP/SinkからDFP/Sourceに要求する電力を提示する通信を含む。また、PD通信は、DFP/SourceからUFP/Sinkに要求に対するAcceptを提示する通信を含んでいてもよい。
図4に示されるように、ステップS417の後、システム制御部110は、DFP/Sourceとなった外部機器200が提示した電力から、ステップS415で取得されたケーブル条件を満たした電力を選択可能であるかを判定する(ステップS419)。例えば、ケーブル条件が20Vおよび3Aであり、外部機器200が提示した電力が9Vおよび3Aの場合、ケーブル条件を満たす。この場合、ケーブル条件を満たした電力を選択可能であるため、ステップS419の判定はYESとなる。例えば、ケーブル条件が20Vおよび3Aであり、外部機器200が提示した電力が20Vおよび5Aの場合は、ケーブル条件を満たさない。この場合、ステップS419の判定はNOとなる。
外部機器200は、複数の電力を提示することがある。例えば、外部機器200が提示した電力が、20Vおよび5Aの電力と、9Vおよび3Aの電力との2種類であったとする。ケーブル300のケーブル条件が、20Vおよび3Aの場合、外部機器200が提示した2種類の電力のうち1つは、選択可能である。この場合、ステップS419の判定はYESとなる。システム制御部110は、電子機器100は、自身が、提示された2種類の電力を何れも受電可能であっても、ケーブル条件を満たす9Vおよび3Aの電力を要求する。これにより、電子機器100が、ケーブル条件を満たさない電力を外部機器200に要求することがなくなる。
ステップS421の後、システム制御部110は、外部機器200がAlt.mode対応機器か否かを判定する(ステップS423)。ステップS423でYESと判定された場合、システム制御部110は、ディスプレイとして機能する外部機器200に対して表示制御を行うための通信を行い、外部機器200に映像表示を開始させる。ステップS423でNOと判定された場合、システム制御部110は、外部機器200がディスプレイ表示できないデバイスであることを報知する制御を行う(ステップS427)。システム制御部110は、電子機器100を制御して、視覚的な報知等を、電子機器100を操作するユーザに対して行ってよい。例えば、電子機器100が、画面を有するカメラである場合、カメラの画面に、上記の報知を示す警告を表示する制御を行ってもよい。これにより、カメラとしての電子機器100を操作するユーザは、外部機器200がディスプレイ表示できないデバイスであることを認識できる。ステップS419でNOと判定された場合も、ステップS427が実行される。ステップS419でNOと判定された場合、ケーブル条件を満たした電力を選択できない。この場合、システム制御部110は、電力の選択ができないことをユーザに報知する制御を行う。
上述したように、外部機器200がVconn_Sourceとなっている場合、UFP/Sinkとなった電子機器100は、ステップS411において、外部機器200に対して、Vconn_SWAP要求を出力する。この場合、電子機器100と外部機器200とは接続されており、且つ電子機器100は受電機器であると決定されている。外部機器200がVconn_SWAP要求を許可した場合、電子機器100は、外部機器200とPD通信(Power Contractを含む通信)を行う前に、ケーブル300のケーブル条件を確認する。電子機器100は、ケーブル条件を確認するために、eMarker302に電力を出力するための要求を外部機器200に出力する制御を行う。この場合、UFP/Sinkとなった電子機器100は、一時的に、Vconn_Sourceとなることができるため、eMarker302からケーブル300のケーブル条件を取得できる。電子機器100は、PD通信の前に、eMarker302からケーブル条件を取得するため、PD通信において、外部機器200に対して、ケーブル条件を満たさない電力を要求することがなくなる。これにより、USB Type-Cについて規定したUSB3.1規格に準拠した電子機器100と外部機器200との間で、ケーブル条件を満たさない電力授受が行われることがなくなる。
上記は、ステップS413でYESと判定された場合の例である。次に、ステップS413でNOと判定された場合について、図5のフローチャートを参照して、説明する。ステップS413でNOと判定されるケースは、外部機器200がVconn_SWAP要求を拒否した場合である。この場合、スイッチ制御部109はスイッチ107をプルダウン抵抗104とは一旦未接続にして開放状態にし(ステップS429)、タイマ部111は時間計測を開始する(ステップS431)。スイッチ107が開放状態になることにより、CC端子101bは、プルアップ抵抗103およびプルダウン抵抗104の何れにも接続されない状態になる。これにより、接続検出部112は、電子機器100と外部機器200との間の接続を検出しなくなり、電子機器100と外部機器200との間は疑似的に切断された状態になる。そして、スイッチ制御部109は、スイッチ107を制御して、上述したトグリングを再開する(ステップS433)。トグリングが行われる際、スイッチ制御部109は、最初に、スイッチ107の接続先をプルアップ抵抗103として、トグリングを再開することが好ましい。これにより、トグリングが行われる際に、最初に、CC端子101bとプルアップ抵抗103とが接続される。最初にCC端子101bとプルアップ抵抗103とが接続されることで、電子機器100が、Vconn_Sourceとなる可能性を高めることができる。接続検出部112が、外部機器200との接続を再び検出すると、システム制御部110は、スイッチ107がプルダウン抵抗104に接続されているかを検出する(ステップS435)。
ステップS435でYESと判定された場合、システム制御部110は、タイマ部111が計測している時間が所定時間を経過したかを判定する(ステップS437)。ステップS437でNOと判定された場合、フローは、S429に戻る。つまり、ステップS429からS435までのステップが繰り返し行われる。例えば、外部機器200がDFP/Sourceの役割のみを果たす場合、電子機器100と外部機器200との接続は確立しない。そのため、システム制御部110がタイマ部111の時間経過を確認し、所定時間を経過したかを判定する。ステップS437でYESと判定された場合、CC端子の開放およびトグリングが繰り返されたにもかかわらず、所定時間が経過したことになる。この場合、フローは「A」から図4のS427に進む。これにより、電子機器100を操作するユーザに、電子機器100と外部機器200との接続が確立しないことを報知できる。上記所定時間は、USB-typeC Cable and Connector Specification tDRPで規定された100msであってもよいが、それ以外の任意の時間に設定されてよい。
ステップS435でNOと判定された場合、スイッチ107は、プルアップ抵抗103に接続されているため、CC端子101bはプルアップ抵抗103と接続される。CC端子101bがプルアップ抵抗103に接続されると、電子機器100は、Vconn_Sourceとして機能することができる。これにより、電子機器100のVconn_SourceからeMarker302に電源を供給でき、通信部114は、eMarker302と通信を行うことが可能になる。従って、システム制御部110は、eMarker302からケーブル情報を取得することができる。この場合、システム制御部110は、外部機器200に対してPower Role Swapを要求する(ステップS439)。当該Power Role Swapにより、電子機器100にVconn_Sourceの役割を残したまま、給電側の役割を外部機器200に移譲することができる。従って、ステップS439が実行されると、電子機器100は、一時的にVconn_Sourceとなっているが、給電側の役割は、外部機器200が果たすことになる。ステップS439の後、フローは、図4のステップS415に進み、システム制御部110は、ケーブル300のケーブル条件を確認する。上述したように、電子機器100がVconn_Sourceとなっているため、システム制御部110は、eMarker302に電源を供給して、ケーブル条件を取得することができる。
従って、電子機器100がUFP/Sinkとなっている場合であり、且つDFP/Sourceとなっている外部機器200がVconnスワップ要求を拒否した場合であっても、電子機器100のシステム制御部110は、ケーブル情報を取得できる。そして、システム制御部110は、外部機器200との間でPD通信を行う前に、ケーブル条件を取得することで、ケーブル条件を満たす電力授受を行うことが可能になる。
なお、上述の実施形態の処理は、電子機器100が外部機器200と接続したことを検出したことに加えて、さらに、ケーブル300を介して電子機器100と外部機器200とが接続したことを検出したことに応じて、制御が実行されてもよい。具体的には、図4のS401とS403との間に、ケーブル300を介して電子機器100と外部機器200とが接続したか否かを判定する工程を加えてもよい。
<第2実施形態>
次に、第2実施形態について、説明する。電子機器100、外部機器200およびケーブル300の構成は、第1実施形態の図1~図3と同様であるため、説明を省略する。図7のフローチャートを参照して、第2実施形態の処理の流れについて説明する。
図7のフローチャートの「T1」以前の処理は、図4のフローチャートと同様である。「T1」以降の処理について、図7のフローチャートを参照して、説明する。スイッチ制御部109はスイッチ107をプルダウン抵抗104とは一旦未接続として開放状態にする(ステップS629)。そして、スイッチ制御部109は、スイッチ107の接続先をプルアップ抵抗103とすることで、CC端子101bがプルアップ抵抗103に接続される(ステップS631)。この際、スイッチ制御部109は、CC端子101bとプルアップ抵抗103との接続を固定し、トグリング制御は行わない。CC端子101bがプルアップ抵抗103に接続された状態が固定されることで、電子機器100は、Vconn_Sourceとなる。そして、タイマ部111は時間計測を開始する(ステップS633)。接続検出部112は、CC端子101bの電圧を検出し、検出した電圧が上述した式1の範囲内であるか否かに基づいて、外部機器200が接続されたか否かを判定する(ステップS635)。
ステップS635でNOと判定された場合、システム制御部110は、タイマ部111が計測している時間経過を確認し、所定時間を経過したかを判定する(ステップS637)。ステップS637でNOの場合、フローは、S635に戻る。第1実施形態で説明したように、外部機器200がDFP/Sourceの役割のみを果たす場合、電子機器100と外部機器200との接続が確立しない。そのため、システム制御部110がタイマ部111の時間経過を確認し、所定時間を経過したかを判定する。所定時間が経過した場合、フローは「A」から図7のS627に進む。これにより、電子機器100を操作するユーザに、電子機器100と外部機器200との接続が確立しないことを報知できる。
ステップS635でYESと判定された場合、システム制御部110は、外部機器200に対してPower Role Swapを行う(ステップS639)。当該Power Role Swapにより、外部機器200がPower Sourceとなる。ただし、Vconn_Sourceは、電子機器100となっている。ステップS639の後、フローは、図7のステップS615に進み、システム制御部110は、ケーブル300からケーブル条件を取得する。上述したように、電子機器100がVconn_Sourceとなっている。従って、外部機器200がPower Sourceになったとしても、システム制御部110は、eMarker302からケーブル情報を取得することができ、ケーブル条件を確認できる。
第1実施形態では、スイッチ制御部109がCC端子101bの開放およびトグリング制御を行い、システム制御部110は、スイッチ107がプルダウン抵抗104に接続されているかを検出する。第2実施形態では、スイッチ制御部109は、CC端子101bを開放した後、CC端子101bとプルアップ抵抗103との接続を固定する。これにより、電子機器100がUFP/Sinkとなっている場合であり、且つDFP/Sourceとなっている外部機器200がVconnスワップ要求を拒否した場合であっても、電子機器100のシステム制御部110は、ケーブル情報を取得できる。そして、システム制御部110は、外部機器200との間でPD通信を行う前に、ケーブル情報を取得することで、ケーブル条件を満たす電力授受を行うことが可能になる。
<第3実施形態>
次に、第3実施形態について、説明する。電子機器100、外部機器200およびケーブル300の構成は、第1実施形態の図1~図3と同様であるため、説明を省略する。図8のフローチャートを参照して、第3実施形態の処理の流れについて説明する。図8のフローチャートの「T1」以前の処理は、図4のフローチャートと同様である。「T1」以降の処理について、図8のフローチャートを参照して、説明する。図8のステップS729~S739は、図7のステップS629~S639と同様であるため、説明を省略する。ステップS737でNOと判定された場合、電子機器100と外部機器200との接続は確立していない。第2実施形態では、システム制御部110は、電子機器100と外部機器200との接続が確立していないことを報知していたが、第3実施形態のシステム制御部110は、ケーブル300のケーブル条件を取得し、確認する(ステップS741)。第3実施形態において、ステップS731で、CC端子101bは、プルアップ抵抗103に接続されている。従って、Vconn端子101cからのVconn電源が、eMarker302に供給されている。通信部114は、eMarker302と通信を行うことができるため、システム制御部110は、通信部114を介して、eMarker302からケーブル情報を取得することができる。システム制御部110がケーブル300のケーブル情報を確認した後、スイッチ制御部109は、スイッチ107の接続先をプルダウン抵抗104に切り替える。これにより、CC端子101bがプルダウン抵抗104に接続される(ステップS742)。そして、フローは、「E」から、図9のステップS717に進む。
第3実施形態では、外部機器200がVconnスワップ要求を拒否した場合であり、且つ電子機器100と外部機器200との接続が確立していない場合でも、電子機器100のシステム制御部110は、ケーブル情報を取得できる。そして、システム制御部110は、外部機器200との間でPD通信を行う前に、ケーブル情報を取得することで、ケーブル条件を満たす電力授受を行うことが可能になる。
<第4実施形態>
次に、第4実施形態について説明する。図9は、第4実施形態における電子機器100およびケーブル300の構成例である。図9の例では、ケーブル300に外部機器200が接続されていない。第4実施形態の電子機器100は、第1電源スイッチ401a、第2電源スイッチ401b、第1スイッチ107および第2スイッチ107bを有する。第1スイッチ107は、定電圧電源VCCに接続される第1プルアップ抵抗103と、GNDに接続される第1プルダウン抵抗104との何れかに接続先を切り替える。第2スイッチ107bは、定電圧電源VCCに接続される第2プルアップ抵抗103bと、GNDに接続される第2プルダウン抵抗104bとの何れかに接続先を切り替える。第1スイッチ107および第2スイッチ107bは、開放状態になることもある。
図10(A)は、第1電源スイッチ401aの接続状態を示し、図10(B)は、第2電源スイッチ401bの接続状態を示す。第1電源スイッチ401aは、1pinを第1スイッチ107、2pinを第1端子101b、3pinをVconn電源に接続している。1pinと2pinとを接続した状態を状態A、2pinと3pinとを接続した状態を状態Bとする。第1電源スイッチ401aの初期状態は、状態Aである。第2電源スイッチ401bは、1pinを第2スイッチ107b、2pinを第2端子101c、3pinをVconn電源に接続している。1pinと2pinとを接続した状態を状態C、2pinと3pinとを接続した状態を状態Dとする。第2電源スイッチ401bの初期状態は、状態Cである。
上述したように、USB Type-Cのコネクタ101は、表裏が逆に挿入された場合でも正常に動作するために、コネクタ中心を基準に点対称なピン配置となっている。従って、第1端子101bは、コネクタ101の挿入方向によっては、第1実施形態から第3実施形態で説明したCC端子としての役割を果たす場合もあり、Vconn端子の役割を果たす場合もある。同様に、第2端子101cも、コネクタ101の挿入方向によって、CC端子としての役割を果たす場合もあり、Vconn端子の役割を果たす場合もある。つまり、第1端子101bと第2端子101cとのうち、一方の端子はCC端子としての役割を果たし、他方の端子はVconn端子としての役割を果たす。
次に、図11を参照して、第4実施形態の処理の流れについて説明する。システム制御部110は、電子機器100にケーブル300が接続されたか否かを判定する(ステップS901)。ステップS901でNOと判定された場合、システム制御部110は、ケーブル300が電子機器100へ接続されるまで監視を続ける。この場合、ステップS901が繰り返される。ステップS901でYESと判定された場合、システム制御部110は、電子機器100に外部機器200が接続されたか否かを判定する(ステップS902)。ステップS902でYESと判定された場合、フローは、図9の「F」に進み、ステップS703の所定電力で動作可能であるか否かの判定からの処理が行われる。そして、システム制御部110は、スイッチ制御部109を制御して、各スイッチの接続制御を行う(ステップS903)。
図12は、各スイッチの状態を示す。図12の状態1は、電子機器100にケーブル300が接続されていない初期状態(ステップS901でNOとなっている状態)を示す。初期状態において、スイッチ制御部109は、第1電源スイッチ401aの1pinと2pinとを接続し、第2電源スイッチ401bの1pinと2pinとを接続する。この状態で、スイッチ制御部109は、第1スイッチ107および第2スイッチ107bに対してトグリング制御を行う。
スイッチ制御部109がトグリング制御を行っている際に、ケーブル300のプルダウン抵抗402と第1プルアップ抵抗103または第2プルアップ抵抗103bとが接続されると、端子の役割を決定するための論理が確定する。上述したように、コネクタ101の挿入方向によって、第1端子101bおよび第2端子101cは、それぞれCC端子またはVconn端子の何れの役割を果たすことができる。第1端子101bおよび第2端子101cの役割は、システム制御部110が、確定した論理に基づいて、決定する。
例えば、コネクタ101の挿入方向に応じて、接続検出部112が、第2プルアップ抵抗103bとケーブル300のプルダウン抵抗402とが接続されたことを検出したとする。これにより、プルダウン抵抗402と第2プルアップ抵抗103bとが接続されたことを示す論理が確定する。論理が確定すると、システム制御部110は、ケーブル300が接続されたと判定する。この場合、システム制御部110は、スイッチ制御部109を制御して、各スイッチの接続先を図12の状態2に切り替える。
スイッチ制御部109は、第1電源スイッチ401aは初期状態である状態A(1pinと2pinとが接続された状態)を維持する。また、スイッチ制御部109は、第1スイッチ107を制御して、接続先を第1プルアップ抵抗103に切り替えて、接続先を第1プルアップ抵抗103に固定する。これにより、CC端子として機能する第1端子101bは、第1プルアップ抵抗103に接続された状態が固定される。従って、ステップS903の時点で、ケーブル300の他端に外部機器200が接続されたとしても、電子機器100は、Vconn_Sourceとしての権利を維持することができる。また、スイッチ制御部109は、第2電源スイッチ401bを、2pinと3pinとが接続された状態に切り替える。これにより、第2端子101cは、第2電源スイッチ401bを介して、Vconn電源と接続される。この場合、第2端子101cからVconn電源をeMarker302に供給できるため、第2端子101cは、Vconn端子として機能する。
また、コネクタ101の挿入方向に応じて、接続検出部112が、ケーブル300のプルダウン抵抗402と第1プルアップ抵抗103とが接続したことを検出したとする。この場合のコネクタ101の挿入方向は、上述した挿入方向とは逆方向である。これにより、プルダウン抵抗402と第1プルアップ抵抗103とが接続されたことを示す論理が確定する。論理が確定すると、システム制御部110は、ケーブル300が接続されたと判定する。この場合、システム制御部110は、スイッチ制御部109を制御して、各スイッチの接続先を図12の状態3に切り替える。
スイッチ制御部109は、第2電源スイッチ401bは初期状態である状態C(1pinと2pinとが接続された状態)を維持する。また、スイッチ制御部109は、第2スイッチ107bを制御して、接続先を第2プルアップ抵抗103bに切り替えて、接続先を第2プルアップ抵抗103bに固定する。これにより、CC端子として機能する第2端子101cは、第2プルアップ抵抗103bに接続された状態が固定する。従って、ステップS903の時点で、ケーブル300の他端に外部機器200が接続されたとしても、電子機器100は、Vconn_Sourceとしての権利を維持することができる。また、スイッチ制御部109は、第1電源スイッチ401aを、2pinと3pinとが接続された状態に切り替える。これにより、第1端子101bは、第1電源スイッチ401aを介して、Vconn電源と接続される。この場合、第1端子101bからVconn電源をeMarker302に供給できるため、第1端子101bは、Vconn端子として機能する。
従って、システム制御部110は、ケーブル300が電子機器100に接続された際、コネクタ105の挿入方向によって、第1端子101bと第2端子101cとの役割を入れ替える。これにより、ケーブル300の接続時に、コネクタ105が表裏のどちらの方向から挿入されたとしても、第4実施形態を適用することができる。以下、コネクタ105の挿入方向に応じて、プルダウン抵抗402と第2プルアップ抵抗103bとが接続されたものとして説明する。この場合、第1端子101bはCC端子としての役割を果たし、第2端子101cはVconn端子の役割を果たす。
電子機器100に外部機器200は接続されていないため、電子機器100と外部機器200との接続は確立していないが、Vconn端子として機能する第2端子101cからVconn電源をeMarker302に供給することはできる。これにより、システム制御部110はeMarker302と通信を行うことができる。システム制御部110は、第1端子101bからeMarker302と通信を行い、ケーブル条件を取得して、取得したケーブル条件を確認する(ステップS904)。システム制御部110は、取得したケーブル情報を保持部101Aに保持させる。そして、スイッチ制御部109は、第1スイッチ107の接続先を第1プルダウン抵抗104に変更し、接続状態を固定する(ステップS905)。これにより、CC端子としての役割を果たす第1端子101bは、第1プルダウン抵抗104に接続されるため、第1端子101bは、電子機器100が受電側(デバイス側)であることを示す。スイッチ107の接続先が第1プルアップ抵抗103のままであると、第1端子101bは、電子機器100が給電側(ホスト側)であることを示し続ける。この場合、VBUS端子(電源端子)101aから電源の供給が行われるため、電源を消費する。ステップS905の処理は、電源の消費を回避するために実行される。ステップS905の処理が実行されると、第2電源スイッチ401bの接続先は、状態Dから、初期状態である状態Cへ遷移する。ステップS905の時点では、電子機器100のシステム制御部110は、ケーブル情報を取得済みのため、CC端子としての役割を果たす第1端子101bが第1プルアップ抵抗103に接続されている必要はない。
スイッチ制御部109は、第2スイッチ107bの接続先を第2プルアップ抵抗103bに変更し(ステップS907)、接続状態を固定する。この場合、第2端子101cは、第2プルアップ抵抗103bに接続され、第2端子101cは、ケーブル300のプルダウン抵抗402と接続される。このため、接続検出部112は、第2端子101cの電圧を検出することで、ケーブル300が接続されているか否かを検出できる。
システム制御部110は、接続検出部112が第2端子101cの電圧を検出することで、電子機器100からケーブル300が抜去されたか否かを判定する(ステップS908)。ステップ908でYESと判定された場合、システム制御部110は、保持部101Aが保持していたケーブル情報を消去する。そして、スイッチ制御部109は、第1スイッチ107および第2スイッチ107bのトグリング制御を再開する(ステップS910)。その後、フローは、ステップ901へ戻る。ステップ908でNOと判定された場合、つまりケーブル300が抜去されていないと判定された場合、システム制御部110は、外部機器200が、電子機器100と接続されたか否かを判定する(ステップS911)。ステップS911でNOと判定された場合、システム制御部110は、外部機器200が、電子機器100と接続されるまで状態を監視する。この場合、フローは、ステップS908に戻る。ステップS911でYESと判定された場合、つまり外部機器200が、電子機器100と接続されたと判定された場合、フローは、図4のステップS417に移行する。
第4実施形態では、電子機器100は、外部機器200が接続されていない場合でも、ケーブル300のケーブル条件を取得できる。システム制御部110がケーブル条件を保持することで、ケーブル300に外部機器200が接続された場合に、保持しているケーブル条件に基づいて、電子機器100は外部機器200と通信を行うことができる。一端が電子機器100に接続されたケーブル300の他端に、外部機器200が接続された際に、電子機器100がUFP/Sinkとなり、外部機器200がDFP/Sourceとなった場合、電子機器100と外部機器200との間でPD通信が行われる。この際、電子機器100は、ケーブル300のケーブル条件を保持しているため、外部機器200からケーブル条件を満たしていない電力が提示されたとしても、ケーブル条件を満たしていない電力を要求することがない。これにより、ケーブル300のケーブル条件を満たさない電力の伝送が行われることがなくなる。
以上、本発明の好ましい実施の形態について説明したが、本発明は上述した各実施の形態に限定されず、その要旨の範囲内で種々の変形及び変更が可能である。本発明は、上述の各実施の形態の1以上の機能を実現するプログラムをASIC等の回路が実行することによっても実現可能である。