(57)【要約】【課題】ＵＳＢポートに対する接続処理における処理時間を削減することが可能な半導体システムを提供する。【解決手段】半導体システム１は、ＴＣＰＭ１０と、ＴＣＰＣ１００とを有する。ＴＣＰＭ１０及びＴＣＰＣ１００は、Ｉ２Ｃバス２を介して通信可能に接続されている。ＴＣＰＭ１０は、接続検出部１４を有する。ＴＣＰＣ１００は、ＣＣロジック１０２と、制御部１１０とを有する。ＣＣロジック１０２は、ステートマシンを実現する。制御部１１０は、ステートマシンにおける遷移を制御する。そして、制御部１１０は、この接続状態が接続済み状態に遷移したときに、接続済み状態遷移通知を出力する。接続検出部１４は、接続済み状態遷移通知を受信して、ＵＳＢポートの接続を検出する。ＴＣＰＭ１０は、接続検出部１４によって検出された接続に応じた処理を行う。【選択図】図１
2020194384.tif 000002
【特許請求の範囲】
【請求項１】
ＵＳＢ（Ｕｎｉｖｅｒｓａｌ  Ｓｅｒｉａｌ  Ｂｕｓ）ポートを制御するポートコントローラと、
前記ポートコントローラとＩ２Ｃ（Ｉｎｔｅｒ−Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ）バスを介して接続され前記ポートコントローラを制御するポートマネージャと
を有し、
前記ポートコントローラは、
前記ＵＳＢポートにおける接続状態の遷移を実現するステートマシンと、
前記ステートマシンにおける遷移を制御し、前記接続状態が電気的に安定して接続された状態である接続済み状態に遷移したときに接続済み状態遷移通知を出力する制御部と
を有し、
前記ポートマネージャは、前記接続済み状態遷移通知を受信して前記ＵＳＢポートの接続を検出する接続検出部を有し、
前記ポートマネージャは、前記接続検出部によって検出された接続に応じた処理を行う
半導体システム。
【請求項２】
前記制御部は、タイマを有し、
前記制御部は、前記タイマを使用して、前記ＵＳＢポートに対する接続がなされた状態である接続確認状態の継続時間を計測し、前記継続時間が予め定められた第１の時間を経過した場合に、前記接続状態を接続済み状態に遷移させる
請求項１に記載の半導体システム。
【請求項３】
前記制御部は、前記接続確認状態の継続時間が前記第１の時間を経過する前に前記ＵＳＢポートに対する接続が解除された場合に、前記接続状態を、前記ＵＳＢポートに対する接続がなされていない状態である未接続状態に遷移させる
請求項２に記載の半導体システム。
【請求項４】
前記制御部は、
前記接続確認状態の継続時間を計測し、前記継続時間が前記第１の時間を経過した場合に、前記接続状態を、前記ＵＳＢポートに対して接続がなされた対向機器が予め定められた第１の機能を有するか否かを確認する対向機器確認状態に遷移させ、
前記対向機器確認状態が予め定められた第２の時間継続したときに、前記接続状態を前記接続済み状態に遷移させる
請求項２に記載の半導体システム。
【請求項５】
前記制御部は、前記接続状態が接続済み状態に遷移したときに、受電及び給電の少なくとも一方を行う電源回路を制御する
請求項１に記載の半導体システム。
【請求項６】
前記制御部は、
前記接続状態が予め設定された第１の状態に遷移したときに、前記ステートマシンを停止させ、
前記ステートマシンを停止させたことの通知を外部に送信する
請求項１に記載の半導体システム。
【請求項７】
前記制御部は、前記通知を外部に送信した後、前記ポートマネージャによって制御された接続状態の遷移先の接続状態、又は前記ポートマネージャによって制御された遷移条件の遷移先の接続状態から、前記ステートマシンを再開させる
請求項６に記載の半導体システム。
【請求項８】
前記制御部は、前記第１の状態を設定するレジスタをさらに有する
請求項６に記載の半導体システム。
【請求項９】
ＵＳＢ（Ｕｎｉｖｅｒｓａｌ  Ｓｅｒｉａｌ  Ｂｕｓ）ポートにおける接続状態の遷移を実現するステートマシンと、
前記ステートマシンにおける遷移を制御し、前記接続状態が電気的に安定して接続された状態である接続済み状態に遷移したときに接続済み状態遷移通知を出力する制御部と
を有する半導体装置。
【請求項１０】
前記制御部は、タイマを有し、
前記制御部は、前記タイマを使用して、前記ＵＳＢポートに対する接続がなされた状態である接続確認状態の継続時間を計測し、前記継続時間が予め定められた第１の時間を経過した場合に、前記接続状態を接続済み状態に遷移させる
請求項９に記載の半導体装置。
【請求項１１】
前記制御部は、前記接続確認状態の継続時間が前記第１の時間を経過する前に前記ＵＳＢポートに対する接続が解除された場合に、前記接続状態を、前記ＵＳＢポートに対する接続がなされていない状態である未接続状態に遷移させる
請求項１０に記載の半導体装置。
【請求項１２】
前記制御部は、
前記接続確認状態の継続時間を計測し、前記継続時間が前記第１の時間を経過した場合に、前記接続状態を、前記ＵＳＢポートに対して接続がなされた対向機器が予め定められた第１の機能を有するか否かを確認する対向機器確認状態に遷移させ、
前記対向機器確認状態が予め定められた第２の時間継続したときに、前記接続状態を前記接続済み状態に遷移させる
請求項１０に記載の半導体装置。
【請求項１３】
前記制御部は、前記接続状態が接続済み状態に遷移したときに、受電及び給電の少なくとも一方を行う電源回路を制御する
請求項９に記載の半導体装置。
【請求項１４】
前記制御部は、
前記接続状態が予め設定された第１の状態に遷移したときに、前記ステートマシンを停止させ、
前記ステートマシンを停止させたことの通知を外部に送信する
請求項９に記載の半導体装置。
【請求項１５】
前記制御部は、前記通知を外部に送信した後、当該半導体装置とＩ２Ｃ（Ｉｎｔｅｒ−Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ）バスを介して接続されたポートマネージャによって制御された接続状態の遷移先の接続状態、又は前記ポートマネージャによって制御された遷移条件の遷移先の状態から、前記ステートマシンを再開させる
請求項１４に記載の半導体装置。
【請求項１６】
前記制御部は、前記第１の状態を設定するレジスタをさらに有する
請求項１４に記載の半導体装置。
【請求項１７】
ＵＳＢ（Ｕｎｉｖｅｒｓａｌ  Ｓｅｒｉａｌ  Ｂｕｓ）ポートを制御するポートコントローラとＩ２Ｃ（Ｉｎｔｅｒ−Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ）バスを介して接続されたインタフェースと、
ポートコントローラから送信された通知を受信して、前記ＵＳＢポートの接続を検出する接続検出部と
を有し、
前記接続検出部によって検出された接続に応じた処理を行う
半導体装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は半導体システム及び半導体装置に関し、例えばＵＳＢ（Ｕｎｉｖｅｒｓａｌ  Ｓｅｒｉａｌ  Ｂｕｓ）ポートを制御する半導体システム及び半導体装置に関する。
【背景技術】
【０００２】
近年、ＵＳＢ  Ｔｙｐｅ−Ｃ（登録商標）仕様（非特許文献１）に準拠したＵＳＢポートが採用されている。ここで、非特許文献１にかかる仕様では、電力供給のコントローラ（Ｐｏｗｅｒ  Ｄｅｌｉｖｅｒｙ  Ｃｏｎｔｒｏｌｌｅｒ）がポートごとに１つ必要である。
【０００３】
ここで、Ｔｙｐｅ−Ｃにかかるコントローラの仕様として、Ｔｙｐｅ−Ｃ  Ｐｏｒｔ  Ｃｏｎｔｒｏｌｌｅｒ  Ｉｎｔｅｒｆａｃｅ（ＴＣＰＣＩ）仕様（非特許文献２）がある。非特許文献２にかかる仕様では、ポートマネージャ（Ｔｙｐｅ−Ｃ  Ｐｏｒｔ  Ｍａｎａｇｅｒ；ＴＣＰＭ）及びポートコントローラ（Ｔｙｐｅ−Ｃ  Ｐｏｒｔ  Ｃｏｎｔｒｏｌｌｅｒ；ＴＣＰＣ）が規定されている。そして、非特許文献２にかかる仕様では、１つのポートマネージャと、ポートごとに設けられた１つ以上のポートコントローラとによって、システムを構築できる。
【先行技術文献】
【非特許文献】
【０００４】
【非特許文献１】「Ｕｎｉｖｅｒｓａｌ  Ｓｅｒｉａｌ  Ｂｕｓ  Ｔｙｐｅ−Ｃ  Ｃａｂｌｅ  ａｎｄ  Ｃｏｎｎｅｃｔｏｒ  Ｓｐｅｃｉｆｉｃａｔｉｏｎ」、Ｒｅｌｅａｓｅ  １．４、Ｍａｒｃｈ  ２９，  ２０１９
【非特許文献２】「Ｕｎｉｖｅｒｓａｌ  Ｓｅｒｉａｌ  Ｂｕｓ  Ｔｙｐｅ−ＣＴＭ  Ｐｏｒｔ  Ｃｏｎｔｒｏｌｌｅｒ  Ｉｎｔｅｒｆａｃｅ  Ｓｐｅｃｉｆｉｃａｔｉｏｎ」、Ｒｅｖｉｓｉｏｎ  ２．０，  Ｖｅｒｓｉｏｎ  １．０、Ｏｃｔｏｂｅｒ  ２０１７
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかし、非特許文献２にかかる技術では、以下に説明するように、ＵＳＢポートに対する接続処理における処理時間が増大するおそれがある。非特許文献２にかかる上述したシステムでは、ポートマネージャとポートコントローラとは、Ｉ２Ｃ（Ｉｎｔｅｒ−Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ）バスで接続されている。ここで、非特許文献２にかかるシステムでは、ＵＳＢポートに対する接続処理において、ポートマネージャとポートコントローラとが通信を行う。したがって、ＵＳＢポートに対する接続処理において、Ｉ２Ｃバスを介してポートマネージャとポートコントローラとの間で行われる通信の時間がボトルネックとなるおそれがある。したがって、ポート数が増加すると、通信時間が増大するおそれがある。
【０００６】
その他の課題と新規な特徴は、本明細書の記述および添付図面から明らかになるであろう。
【課題を解決するための手段】
【０００７】
一実施の形態によれば、半導体システムは、ＵＳＢポートを制御するポートコントローラと、前記ポートコントローラとＩ２Ｃバスを介して接続され前記ポートコントローラを制御するポートマネージャとを有し、前記ポートコントローラは、前記ＵＳＢポートにおける接続状態の遷移を実現するステートマシンと、前記ステートマシンにおける遷移を制御し、前記接続状態が電気的に安定して接続された状態である接続済み状態に遷移したときに接続済み状態遷移通知を出力する制御部とを有し、前記ポートマネージャは、前記接続済み状態遷移通知を受信して前記ＵＳＢポートの接続を検出する接続検出部を有し、前記ポートマネージャは、前記接続検出部によって検出された接続に応じた処理を行う半導体システムである。
【０００８】
また、一実施の形態によれば、半導体装置は、ＵＳＢポートにおける接続状態の遷移を実現するステートマシンと、前記ステートマシンにおける遷移を制御し、前記接続状態が電気的に安定して接続された状態である接続済み状態に遷移したときに接続済み状態遷移通知を出力する制御部とを有する半導体装置である。
【０００９】
また、一実施の形態によれば、半導体装置は、ＵＳＢポートを制御するポートコントローラとＩ２Ｃバスを介して接続されたインタフェースと、ポートコントローラから送信された通知を受信して、前記ＵＳＢポートの接続を検出する接続検出部とを有し、前記接続検出部によって検出された接続に応じた処理を行う半導体装置である。
【発明の効果】
【００１０】
前記一実施の形態によれば、ＵＳＢポートに対する接続処理における処理時間を削減することが可能な半導体システム及び半導体装置を提供できる。
【図面の簡単な説明】
【００１１】
【図１】実施の形態１にかかる半導体システムの構成を示す図である。
【図２】実施の形態１にかかる半導体システムで実現される状態遷移図を例示する図である。
【図３】実施の形態１にかかる半導体システムで実現される状態遷移図を例示する図である。
【図４】実施の形態１にかかる半導体システムによって実行される処理を示すシーケンス図である。
【図５】実施の形態１にかかる半導体システムによって実行される処理を示すシーケンス図である。
【図６】比較例にかかる半導体システムの構成を示す図である。
【図７】比較例にかかる半導体システムによって実行される処理を示すシーケンス図である。
【図８】比較例にかかる半導体システムによって実行される処理を示すシーケンス図である。
【図９】実施の形態１にかかる半導体システムで実現される状態遷移図の他の例を示す図である。
【図１０】実施の形態１にかかる半導体システムで実現される状態遷移図の他の例を示す図である。
【図１１】実施の形態１にかかる半導体システムで実現される状態遷移図の他の例を示す図である。
【図１２】実施の形態１にかかる半導体システムで実現される状態遷移図の他の例を示す図である。
【図１３】実施の形態２にかかる半導体システムの構成を示す図である。
【図１４】実施の形態３にかかる半導体システムの構成を示す図である。
【図１５】実施の形態３にかかる制御部によって実行される制御方法を示すフローチャートである。
【発明を実施するための形態】
【００１２】
以下、実施形態について、図面を参照しながら説明する。説明の明確化のため、以下の記載及び図面は、適宜、省略、及び簡略化がなされている。なお、各図面において、同一の要素には同一の符号が付されており、必要に応じて重複説明は省略されている。
【００１３】
以下の実施の形態においては便宜上その必要があるときは、複数のセクションまたは実施の形態に分割して説明する。しかしながら、特に明示した場合を除き、それらはお互いに無関係なものではなく、一方は他方の一部または全部の変形例、応用例、詳細説明、補足説明等の関係にある。また、以下の実施の形態において、要素の数等（個数、数値、量、範囲等を含む）に言及する場合、特に明示した場合および原理的に明らかに特定の数に限定される場合等を除き、その特定の数に限定されるものではない。つまり、要素の数は、特定の数以上でも以下でもよい。
【００１４】
さらに、以下の実施の形態において、その構成要素（動作ステップ等も含む）は、特に明示した場合および原理的に明らかに必須であると考えられる場合等を除き、必ずしも必須のものではない。同様に、以下の実施の形態において、構成要素等の形状、位置関係等に言及するときは、特に明示した場合および原理的に明らかにそうでないと考えられる場合等を除き、実質的にその形状等に近似または類似するもの等を含むものとする。このことは、上記数等（個数、数値、量、範囲等を含む）についても同様である。
【００１５】
また、様々な処理を行う機能ブロックとして図面に記載される各要素は、ハードウェア的には、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）、メモリ、その他の回路で構成することができる。また、上記の各要素は、ソフトウェア的には、メモリにロードされたプログラムなどによって実現される。したがって、これらの機能ブロックがハードウェアのみ、ソフトウェアのみ、またはそれらの組合せによっていろいろな形で実現できることは当業者には理解されるところであり、いずれかに限定されるものではない。
【００１６】
また、上述したプログラムは、様々なタイプの非一時的なコンピュータ可読媒体を用いて格納され、コンピュータに供給することができる。非一時的なコンピュータ可読媒体は、様々なタイプの実体のある記録媒体を含む。非一時的なコンピュータ可読媒体の例は、磁気記録媒体（例えばフレキシブルディスク、磁気テープ、ハードディスクドライブ）、光磁気記録媒体（例えば光磁気ディスク）、ＣＤ−ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）、ＣＤ−Ｒ、ＣＤ−Ｒ／Ｗ、半導体メモリ（例えば、マスクＲＯＭ、ＰＲＯＭ（Ｐｒｏｇｒａｍｍａｂｌｅ  ＲＯＭ）、ＥＰＲＯＭ（Ｅｒａｓａｂｌｅ  ＰＲＯＭ）、フラッシュＲＯＭ、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ））を含む。また、プログラムは、様々なタイプの一時的なコンピュータ可読媒体によってコンピュータに供給されてもよい。一時的なコンピュータ可読媒体の例は、電気信号、光信号、及び電磁波を含む。一時的なコンピュータ可読媒体は、電線及び光ファイバ等の有線通信路、又は無線通信路を介して、プログラムをコンピュータに供給できる。
【００１７】
（実施の形態１）
図１は、実施の形態１にかかる半導体システム１の構成を示す図である。半導体システム１は、パーソナルコンピュータ及びスマートフォン等の、ＵＳＢポートを有するデバイスに搭載されている。実施の形態１にかかる半導体システム１は、ＴＣＰＭ１０（ポートマネージャ）と、ＴＣＰＣ１００（ポートコントローラ）とを有する。ＴＣＰＭ１０及びＴＣＰＣ１００は、Ｉ２Ｃバス２（Ｉｎｔｅｒ−Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔバス）を介して通信可能に接続されている。ＴＣＰＭ１０は、例えばマイクロコンピュータで実現され得る。ＴＣＰＣ１００は、ＴＣＰＭ１０とは別のＩＣ（Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ）に搭載され得る。つまり、ＴＣＰＭ１０及びＴＣＰＣ１００は、半導体装置である。ＴＣＰＣ１００は、ＵＳＢポートを制御する。ＴＣＰＭ１０は、ＴＣＰＣ１００を制御する。
【００１８】
ＴＣＰＣ１００は、図示しないＵＳＢポート（Ｔｙｐｅ−Ｃコネクタ）に接続されている。ここで、ＴＣＰＣ１００は、ＵＳＢポートごとに設けられている。したがって、例えば、ＵＳＢポートが２つある場合は、ＴＣＰＣ１００は、半導体システム１に２つ設けられ得る。つまり、図１では、半導体システム１は１つのＴＣＰＣ１００を有しているが、ＴＣＰＣ１００の数は１つに限られない。一方、ＴＣＰＭ１０は、半導体システム１に１つ設けられ得る。なお、デバイスが多数のＵＳＢポート（例えば１０ポート）を有する場合、デバイスの場合、ＴＣＰＭ１０は、２つ以上設けられてもよい
【００１９】
ＴＣＰＭ１０は、インタフェース１２と、接続検出部１４とを有する。ＴＣＰＣ１００は、ＣＣロジック１０２と、ＶＢＵＳ電圧検出器１０４と、インタフェース１０６と、制御部１１０とを有する。制御部１１０は、タイマ１１２を有する。なお、ＴＣＰＭ１０は、電源供給（Ｐｏｗｅｒ  Ｄｅｌｉｖｅｒｙ；ＰＤ）に関する構成要素（例えばＰｏｌｉｃｙ  Ｅｎｇｉｎｅ等）を有してもよい。同様に、ＴＣＰＣ１００は、電源供給に関する構成要素（例えばＰｈｙｓｉｃａｌ  Ｌａｙｅｒ等）を有してもよい。また、本実施の形態にかかる半導体システム１において、インタフェース１２、ＣＣロジック１０２、ＶＢＵＳ電圧検出器１０４及びインタフェース１０６は、必須の構成要素ではない。
【００２０】
インタフェース１２は、Ｉ２Ｃマスタとして機能する。インタフェース１０６は、Ｉ２Ｃスレーブとして機能する。ＶＢＵＳ電圧検出器１０４は、対応するＵＳＢポートのＶＢＵＳライン（バス電圧ライン）の電圧を検出する。ＶＢＵＳ電圧検出器１０４は、ＶＢＵＳラインの電圧を検出すると、制御部１１０に対し、電圧検出信号を出力する。
【００２１】
ＣＣロジック１０２は、ＴＣＰＣＩ仕様（非特許文献２）におけるＴｙｐｅ−Ｃ  ＣＣ  ｌｏｇｉｃに対応する。ＣＣロジック１０２は、ステートマシンを実現する。ここで、ステートマシンは、ＵＳＢポートにおける状態（接続状態）の遷移を行う。具体的には、本実施の形態にかかるＣＣロジック１０２は、少なくとも、「未接続状態」、「接続確認状態」及び「接続済み状態」の遷移を行うための処理を行う。
【００２２】
ここで、「未接続状態」とは、ＵＳＢポートに対して対向機器との（Ｔｙｐｅ−Ｃケーブルを介した）接続がない状態である。「接続確認状態」とは、ＵＳＢポートに対して対向機器と電気的に安定した接続が確実になされたかの確認がなされている状態である。また、「接続済み状態」とは、ＵＳＢポートに対して電気的に安定した接続がなされた状態である。また、Ｔｙｐｅ−Ｃ仕様に示されているように、ＵＳＢポートは、対向機器に応じて、シンク（ｓｉｎｋ；ＳＮＫ）として機能するか、又は、ソース（ｓｏｕｒｃｅ；ＳＲＣ）として機能する。そして、各接続状態には、ＵＳＢポートがシンクとして機能するか、又はソースとして機能するかに応じて、別の状態がある。
【００２３】
なお、「未接続状態」は、Ｔｙｐｅ−Ｃ仕様（非特許文献１）における「Ｕｎａｔｔａｃｈｅｄ」ステート（「Ｕｎａｔｔａｃｈｅｄ．ＳＮＫ」ステート及び「Ｕｎａｔｔａｃｈｅｄ．ＳＲＣ」ステート）に対応し得る。また、「未接続状態」は、ＴＣＰＣＩ仕様における「Ａｐｐｌｙ  Ｒｄ」ステート及び「Ａｐｐｌｙ  Ｒｐ」ステートに対応し得る。なお、以後、「Ａｐｐｌｙ  Ｒｄ」ステート及び「Ａｐｐｌｙ  Ｒｐ」ステートを「Ａｐｐｌｙ」ステートと総称することがある。
【００２４】
また、「接続確認状態」は、Ｔｙｐｅ−Ｃ仕様における「ＡｔｔａｃｈＷａｉｔ」ステート（「ＡｔｔａｃｈＷａｉｔ．ＳＮＫ」）ステート及び「ＡｔｔａｃｈＷａｉｔ．ＳＲＣ」ステート）に対応し得る。また、「接続確認状態」は、ＴＣＰＣＩ仕様における「Ｐｏｔｅｎｔｉａｌ＿Ｃｏｎｎｅｃｔ＿Ａｓ＿Ｓｎｋ」ステート及び「Ｐｏｔｅｎｔｉａｌ＿Ｃｏｎｎｅｃｔ＿Ａｓ＿Ｓｒｃ」ステートに対応し得る。なお、以後、「Ｐｏｔｅｎｔｉａｌ＿Ｃｏｎｎｅｃｔ＿Ａｓ＿Ｓｎｋ」ステート及び「Ｐｏｔｅｎｔｉａｌ＿Ｃｏｎｎｅｃｔ＿Ａｓ＿Ｓｒｃ」ステートを「Ｐｏｔｅｎｔｉａｌ＿Ｃｏｎｎｅｃｔ」ステートと総称することがある。
【００２５】
また、「接続済み状態」は、Ｔｙｐｅ−Ｃ仕様における「Ａｔｔａｃｈｅｄ」ステート（「Ａｔｔａｃｈｅｄ．ＳＮＫ」ステート及び「Ａｔｔａｃｈｅｄ．ＳＲＣ」ステート）に対応し得る。また、「接続済み状態」は、ＴＣＰＣＩ仕様における「Ａｔｔａｃｈｅｄ」ステート（「Ａｔｔａｃｈｅｄ．Ｓｎｋ」ステート及び「Ａｔｔａｃｈｅｄ．Ｓｒｃ」ステート）に対応し得る。
【００２６】
さらに具体的には、ＣＣロジック１０２は、Ｔｙｐｅ−Ｃ仕様に準拠して、Ｔｙｐｅ−Ｃコネクタ（ＵＳＢポート）のＣＣ（Ｃｏｎｆｉｇｕｒａｔｉｏｎ  Ｃｈａｎｎｅｌ）信号を制御する。そして、ＣＣロジック１０２は、ＵＳＢポートの状態（接続状態）を検出する。Ｔｙｐｅ−Ｃ仕様によれば、ＣＣロジック１０２は、２つのＣＣ信号（ＣＣ１信号及びＣＣ２信号）を、Ｒｐ（Ｐｕｌｌｕｐ抵抗）接続又はＲｄ（Ｐｕｌｌｄｏｗｎ抵抗）接続に制御する。
【００２７】
このとき、シンク機能を有する対向機器（コンシューマ）がＣＣ信号をＲｄ接続（つまりシンク側）に制御していたとする。この場合、ＣＣロジック１０２がＣＣ信号をＲｄ接続に制御すると、抵抗Ｒｄの電圧はグランドレベルに落ち、抵抗Ｒｐと抵抗Ｒｄとで分圧されていない状態となる。このとき、ＣＣロジック１０２は、対向機器が接続されたことを検出しない。一方、ＣＣロジック１０２がＣＣ信号をＲｐ接続に制御すると、ＣＣ信号における電位は抵抗Ｒｐと抵抗Ｒｄとで分圧された状態となる。このとき、ＣＣロジック１０２は、対向機器が接続されたことを検出する。つまり、ＵＳＢポートの接続状態は、「未接続状態」から「接続確認状態」に遷移する。そして、ＣＣロジック１０２は、対向機器が接続された状態であること、つまり「接続確認状態」を検出した旨を示す状態検出信号を、制御部１１０に出力する。
【００２８】
また、ソース機能を有する対向機器（プロバイダ）がＣＣ信号をＲｐ接続（つまりソース側）に制御していたとする。この場合、ＣＣロジック１０２がＣＣ信号をＲｐ接続に制御すると、抵抗Ｒｐの電圧は高い状態となり、抵抗Ｒｐと抵抗Ｒｄとで分圧されていない状態となる。このとき、ＣＣロジック１０２は、対向機器が接続されたことを検出しない。一方、ＣＣロジック１０２がＣＣ信号をＲｄ接続に制御すると、ＣＣ信号における電位は抵抗Ｒｐと抵抗Ｒｄで分圧された状態となる。このとき、ＣＣロジック１０２は、対向機器が接続されたことを検出する。つまり、ＵＳＢポートの接続状態は、「未接続状態」から「接続確認状態」に遷移する。そして、ＣＣロジック１０２は、対向機器が接続された状態であること、つまり「接続確認状態」を検出した旨を示す状態検出信号を、制御部１１０に出力する。
【００２９】
制御部１１０は、ＵＳＢポートにおける接続状態の遷移を制御する。つまり、制御部１１０は、ステートマシンにおける遷移を制御する。そして、制御部１１０は、この接続状態が接続済み状態（Ａｔｔａｃｈｅｄステート）に遷移したときに、接続済み状態遷移通知（Ａｔｔａｃｈｅｄステート遷移通知）を出力する。この接続済み状態遷移通知は、インタフェース１０６、Ｉ２Ｃバス２及びインタフェース１２を介して、接続検出部１４に送信される。なお、接続済み状態遷移通知は、ＵＳＢポートがシンクとして機能するか、ソースとして機能するかを示し得る。
【００３０】
具体的には、制御部１１０は、「接続確認状態」を検出した旨を示す状態検出信号をＣＣロジック１０２から受信すると、タイマ１１２を使用して、接続確認状態の継続時間を計測する。つまり、タイマ１１２は、接続状態が未接続状態から接続確認状態へ遷移したときからの時間を計測する。そして、制御部１１０は、接続確認状態の継続時間が予め定められた時間（第１の時間）を経過した場合に、接続状態を接続済み状態に遷移させる。このとき、制御部１１０は、接続済み状態遷移通知を出力する。なお、制御部１１０は、接続確認状態の継続時間が第１の時間を経過し、さらに、電圧検出信号を受信した場合、に、接続状態を接続済み状態に遷移させてもよい。一方、制御部１１０は、接続確認状態の継続時間が予め定められた時間（第１の時間）を経過する前にＵＳＢポートに対する接続が解除された場合に、接続状態を未接続状態に遷移させる。
【００３１】
接続検出部１４は、接続済み状態遷移通知を受信して、ＵＳＢポートの接続を検出する。つまり、接続検出部１４は、ＵＳＢポートと対向機器とが電気的に安定して接続された状態となったことを検出する。さらに、接続検出部１４は、ＵＳＢポートがシンクとして機能するのか、又はソースとして機能するのかを検出する。このとき、ＴＣＰＭ１０は、接続検出部１４によって検出された接続に応じた処理（例えば受電及び給電の少なくとも一方に関する処理）を行う。具体的には、ＴＣＰＭ１０は、電源回路を制御するか、又は、ＰＤ（Ｐｏｗｅｒ  Ｄｅｌｉｖｅｒｙ）処理を行う。これにより、ＵＳＢポートがシンクとして機能する場合は、ＵＳＢポートを介して、半導体システム１が搭載されたデバイスに電力が供給される。また、ＵＳＢポートがソースとして機能する場合は、半導体システム１が搭載されたデバイスは、ＵＳＢポートに接続された対向機器に電力を供給する。
【００３２】
図２及び図３は、実施の形態１にかかる半導体システム１で実現される状態遷移図を例示する図である。図２及び図３は、ＴＣＰＣＩ仕様に準拠したＤＲＰ（Ｄｕａｌ  Ｒｏｌｅ  Ｐｏｗｅｒ）デバイスに関する状態遷移図を例示している。なお、図２及び図３に示した状態遷移図において、本実施の形態と関係のないステート及び遷移については、適宜、説明を省略する。
【００３３】
図２は、接続状態が接続済み状態に遷移するまでの状態遷移図を示している。まず、ステートマシン（接続状態）は、一定時間おきに、「Ａｐｐｌｙ  Ｒｄ」ステートＳｔ１０１（未接続状態）と「Ａｐｐｌｙ  Ｒｐ」ステートＳｔ１０２（未接続状態）との間で交互に遷移する。つまり、ステートマシンは、一定時間おきに、「Ａｐｐｌｙ  Ｒｄ」ステートＳｔ１０１と「Ａｐｐｌｙ  Ｒｐ」ステートＳｔ１０２との間で状態をトグルする。なお、「Ａｐｐｌｙ  Ｒｄ」ステートＳｔ１０１は、自身のＣＣ信号がＲｄ接続に制御された状態である。また、「Ａｐｐｌｙ  Ｒｐ」ステートＳｔ１０２は、自身のＣＣ信号がＲｐ接続に制御された状態である。
【００３４】
ステートマシンが「Ａｐｐｌｙ  Ｒｄ」ステートＳｔ１０１であるときに、ソース機能を有する対向機器がＵＳＢポートに接続され、上述したようなＣＣ信号における電位が分圧された状態になるとする。この場合、上述したように、ステートマシンは、「Ｐｏｔｅｎｔｉａｌ＿Ｃｏｎｎｅｃｔ＿Ａｓ＿Ｓｎｋ」ステートＳｔ１１１に遷移する。この状態でソース機能を有する対向機器がＵＳＢポートから取り外されると、ステートマシンは、「Ａｐｐｌｙ  Ｒｐ」ステートＳｔ１０２に遷移する。一方、ＣＣ信号における電位が分圧された状態が第１の時間（ｔＣＣＤｅｂｏｕｎｃｅ）継続し、ＶＢＵＳラインの電圧が検出されると、ステートマシンは、「Ａｔｔａｃｈｅｄ．Ｓｎｋ」ステートＳｔ１２１に遷移する。
【００３５】
一方、ステートマシンが「Ａｐｐｌｙ  Ｒｐ」ステートＳｔ１０２であるときに、シンク機能を有する対向機器がＵＳＢポートに接続され、上述したようなＣＣ信号における電位が分圧された状態になるとする。この場合、上述したように、ステートマシンは、「Ｐｏｔｅｎｔｉａｌ＿Ｃｏｎｎｅｃｔ＿Ａｓ＿Ｓｒｃ」ステートＳｔ１１２に遷移する。この状態でシンク機能を有する対向機器がＵＳＢポートから取り外されると、ステートマシンは、「Ａｐｐｌｙ  Ｒｄ」ステートＳｔ１０１に遷移する。一方、ＣＣ信号における電位が分圧された状態が第１の時間（ｔＣＣＤｅｂｏｕｎｃｅ）継続し、ＶＢＵＳラインの電圧がｖＳａｆｅ０Ｖであると、ステートマシンは、「Ａｔｔａｃｈｅｄ．Ｓｒｃ」ステートＳｔ１２２に遷移する。
【００３６】
図３は、接続状態が接続済み状態から未接続状態に遷移するまでの状態遷移図を示している。ステートマシンが「Ａｔｔａｃｈｅｄ．Ｓｎｋ」ステートＳｔ１２１であるときに、ＶＢＵＳラインの電圧が検出されなくなりソース機能を有する対向機器との接続の解除が検出されたとする。この場合、ステートマシンは、「Ｄｉｓｃｏｎｎｅｃｔｅｄ＿Ａｓ＿Ｓｎｋ」ステートＳｔ１３１に遷移する。そして、無条件に、ステートマシンは、「Ａｐｐｌｙ  Ｒｄ」ステートＳｔ１０１に遷移する。
【００３７】
また、ステートマシンが「Ａｔｔａｃｈｅｄ．Ｓｒｃ」ステートＳｔ１２２であるときに、ＣＣ信号のステータスの変化が検出されてシンク機能を有する対向機器との接続の解除が検出されたとする。この場合、ステートマシンは、「Ｄｉｓｃｏｎｎｅｃｔｅｄ＿Ａｓ＿Ｓｒｃ」ステートＳｔ１３２に遷移する。そして、無条件に、ステートマシンは、「Ａｐｐｌｙ  Ｒｄ」ステートＳｔ１０１に遷移する。
【００３８】
図４及び図５は、実施の形態１にかかる半導体システム１によって実行される処理を示すシーケンス図である。まず、ＴＣＰＭ１０が初期設定を行ってステートマシンが開始する（ステップＳ１０２）。これにより、ステートマシンは、「Ａｐｐｌｙ  Ｒｐ」ステートと「Ａｐｐｌｙ  Ｒｄ」ステートとの間でトグル状態となる。
【００３９】
そして、ＵＳＢポートに対向機器が接続すると、ステートマシンは、「Ｐｏｔｅｎｔｉａｌ＿Ｃｏｎｎｅｃｔ＿Ａｓ＿Ｓｎｋ」ステート又は「Ｐｏｔｅｎｔｉａｌ＿Ｃｏｎｎｅｃｔ＿Ａｓ＿Ｓｒｃ」ステートに遷移する。このとき、ＴＣＰＣ１００の制御部１１０は、この接続確認状態が第１の時間継続したか否かを判定する（ステップＳ１０４）。接続確認状態が第１の時間継続しなかった場合（Ｓ１０４のＮＯ）、制御部１１０は、「Ａｐｐｌｙ  Ｒｐ」ステート又は「Ａｐｐｌｙ  Ｒｄ」ステートへ遷移するように、ステートマシンを制御する（ステップＳ１０５）。
【００４０】
一方、接続確認状態が第１の時間継続した場合（Ｓ１０４のＹＥＳ）、制御部１１０は、接続済み状態へ遷移するように、ステートマシンを制御する。これにより、ステートマシンは、「Ａｔｔａｃｈｅｄ．Ｓｎｋ」ステート又は「Ａｔｔａｃｈｅｄ．Ｓｒｃ」ステートに遷移する。そして、制御部１１０は、ＴＣＰＭ１０に対し、接続状態が接続済み状態に遷移した旨の通知を送信する（ステップＳ１０６）。接続検出部１４がこの通知を受信すると、ＴＣＰＭ１０は、「Ａｔｔａｃｈｅｄ．Ｓｎｋ」ステート又は「Ａｔｔａｃｈｅｄ．Ｓｒｃ」ステートにおける処理を実行する（ステップＳ１０８）。
【００４１】
ステートマシンが「Ａｔｔａｃｈｅｄ．Ｓｎｋ」ステート又は「Ａｔｔａｃｈｅｄ．Ｓｒｃ」ステートである場合に、ＵＳＢポートと対向機器との接続が解除されたとする。この場合、ステートマシンは、「Ｄｉｓｃｏｎｎｅｃｔｅｄ＿Ａｓ＿Ｓｎｋ」ステート又は「Ｄｉｓｃｏｎｎｅｃｔｅｄ＿Ａｓ＿Ｓｒｃ」ステートに遷移する。このとき、ＴＣＰＣ１００は、ＶｂｕｓＳｉｎｋＤｉｓｃｏｎｎｅｃｔｅｄの検出又はＣＣ信号のステータスの変化を、ＴＣＰＭ１０に通知する（ステップＳ１１２）。そして、ＴＣＰＣ１００は、ＶＢＵＳのスイッチをオフし、ＶＢＵＳをディスチャージする（ステップＳ１１４）。そして、ステートマシンは、「Ａｐｐｌｙ  Ｒｄ」ステートに遷移し、その後、「Ａｐｐｌｙ  Ｒｐ」ステートと「Ａｐｐｌｙ  Ｒｄ」ステートとの間でトグル状態となる。
【００４２】
（比較例）
以下、本実施の形態を比較例と比較することで、本実施の形態の効果を説明する。
図６は、比較例にかかる半導体システム８０の構成を示す図である。半導体システム８０は、ＴＣＰＭ９０（ポートマネージャ）と、ＴＣＰＣ８２（ポートコントローラ）とを有する。ＴＣＰＭ９０及びＴＣＰＣ８２は、Ｉ２Ｃバス２を介して通信可能に接続されている。なお、比較例は、ＴＣＰＣＩ仕様に準拠したシステムに対応している。
【００４３】
ＴＣＰＭ９０は、インタフェース１２と、ＴＣＰＣステート制御部９２とを有する。ＴＣＰＣ８２は、ＣＣロジック１０２と、ＶＢＵＳ電圧検出器１０４と、インタフェース１０６とを有する。比較例にかかるＴＣＰＣ８２は、制御部１１０を有しない点で、実施の形態１にかかるＴＣＰＣ１００と異なる。また、比較例にかかるＴＣＰＭ９０は、接続検出部１４を有さず、ＴＣＰＣステート制御部９２を有する点で、実施の形態１にかかるＴＣＰＭ１０と異なる。その他の構成要素については、実質的に、実施の形態１にかかる構成要素と同様である。
【００４４】
図７及び図８は、比較例にかかる半導体システム８０によって実行される処理を示すシーケンス図である。まず、ＴＣＰＭ９０が初期設定を行ってステートマシンが開始する（ステップＳ９０２）。これにより、ステートマシンは、「Ａｐｐｌｙ  Ｒｐ」ステートと「Ａｐｐｌｙ  Ｒｄ」ステートとの間でトグル状態となる。
【００４５】
そして、ＵＳＢポートに対向機器が接続すると、ステートマシンは、「Ｐｏｔｅｎｔｉａｌ＿Ｃｏｎｎｅｃｔ＿Ａｓ＿Ｓｎｋ」ステート又は「Ｐｏｔｅｎｔｉａｌ＿Ｃｏｎｎｅｃｔ＿Ａｓ＿Ｓｒｃ」ステートに遷移する。このとき、ＴＣＰＣ８２は、ＣＣ信号のステータス（ＣＣステータス）の変化を、ＴＣＰＭ９０に通知する（ステップＳ９０４）。このとき、ＴＣＰＭ９０のＴＣＰＣステート制御部９２は、Ｉ２Ｃバス２を介して、ｔＣＣＤｅｂｏｕｎｃｅ期間、ＣＣステータスをリードする（ステップＳ９０６）。具体的には、ＴＣＰＣステート制御部９２は、ＴＣＰＣ８２のＣＣステータスレジスタにアクセスして、ＣＣステータスを読み出す。
【００４６】
そして、ＴＣＰＣステート制御部９２は、接続確認状態がｔＣＣＤｅｂｏｕｎｃｅ期間継続したか否かを判定する（ステップＳ９０８）。接続確認状態がｔＣＣＤｅｂｏｕｎｃｅ期間継続しなかった場合（Ｓ９０８のＮＯ）、ＴＣＰＣステート制御部９２は、「Ａｐｐｌｙ  Ｒｐ」ステート又は「Ａｐｐｌｙ  Ｒｄ」ステートへ遷移する旨の指示を、ＴＣＰＣ８２に送信する（ステップＳ９０９）。これにより、ステートマシンは、「ＭＡＩＮＴＡＩＮ＿ＳＴＡＴＥ」（図３）を経由して、「Ａｐｐｌｙ  Ｒｐ」ステート又は「Ａｐｐｌｙ  Ｒｄ」ステートに遷移する。一方、接続確認状態がｔＣＣＤｅｂｏｕｎｃｅ期間継続した場合（Ｓ９０８のＹＥＳ）、ＴＣＰＣステート制御部９２は、接続済み状態へ遷移する旨の指示を、ＴＣＰＣ８２に送信する（ステップＳ９１０）。具体的には、ＴＣＰＣステート制御部９２は、ＴＣＰＣ８２のＣＣステータスレジスタにアクセスして、制御内容を書き込む。これにより、ステートマシンは、「ＭＡＩＮＴＡＩＮ＿ＳＴＡＴＥ」（図３）を経由して、「Ａｔｔａｃｈｅｄ．Ｓｎｋ」ステート又は「Ａｔｔａｃｈｅｄ．Ｓｒｃ」ステートに遷移する。ＴＣＰＭ９０は、「Ａｔｔａｃｈｅｄ．Ｓｎｋ」ステート又は「Ａｔｔａｃｈｅｄ．Ｓｒｃ」ステートにおける処理を実行する（ステップＳ９１２）。
【００４７】
ステートマシンが「Ａｔｔａｃｈｅｄ．Ｓｎｋ」ステート又は「Ａｔｔａｃｈｅｄ．Ｓｒｃ」ステートである場合に、ＵＳＢポートと対向機器との接続が解除されたとする。この場合、ステートマシンは、「Ｄｉｓｃｏｎｎｅｃｔｅｄ＿Ａｓ＿Ｓｎｋ」ステート又は「Ｄｉｓｃｏｎｎｅｃｔｅｄ＿Ａｓ＿Ｓｒｃ」ステートに遷移する。このとき、ＴＣＰＣ８２は、ＶｂｕｓＳｉｎｋＤｉｓｃｏｎｎｅｃｔｅｄの検出又はＣＣ信号のステータスの変化を、ＴＣＰＭ９０に通知する（ステップＳ９１４）。そして、ＴＣＰＣ８２は、ＶＢＵＳのスイッチをオフし、ＶＢＵＳをディスチャージする（ステップＳ９１６）。通知を受けたＴＣＰＭ９０（ＴＣＰＣステート制御部９２）は、「Ａｐｐｌｙ  Ｒｄ」ステートに遷移する旨の指示を、ＴＣＰＣ８２に送信する（ステップＳ９１８）。これにより、ステートマシンは、「ＭＡＩＮＴＡＩＮ＿ＳＴＡＴＥ」（図３）を経由して、「Ａｐｐｌｙ  Ｒｄ」ステートに遷移する。その後、ステートマシンは、「Ａｐｐｌｙ  Ｒｐ」ステートと「Ａｐｐｌｙ  Ｒｄ」ステートとの間でトグル状態となる。
【００４８】
上述した比較例のように、ＴＣＰＣＩ仕様では、ＴＣＰＭ９０（ＴＣＰＣステート制御部９２）が、Ｉ２Ｃバス２を介してＴＣＰＣ８２のレジスタにアクセスすることで、ステートマシンを接続済み状態に遷移させる。このとき、Ｉ２Ｃバス２を介してＴＣＰＣ８２とＴＣＰＭ９０とが通信を行うことにより、通信時間が増大するおそれがある。したがって、ポート数が増加すると通信時間がさらに増大するため、比較例にかかるシステムでは、ポート数を増加させることは困難である。一方で、Ｔｙｐｅ−ＡコネクタにかかるＡＣアダプタでは、４ポート超の製品も多数存在する。したがって、Ｔｙｐｅ−Ｃ製品においても、ポート数を増加させることが望まれる。
【００４９】
これに対し、本実施の形態では、上記のように構成されていることで、ＵＳＢポートにおける接続処理において、ＴＣＰＣ１００が、ステートマシンを接続済み状態に遷移させることが可能である。言い換えると、本実施の形態では、ＵＳＢポートにおける接続処理において、ＴＣＰＭ１０が関与することなく、ステートマシンを接続済み状態に遷移させることが可能である。これにより、Ｉ２Ｃバス２を介した通信時間を削減させることができる。したがって、本実施の形態では、ＵＳＢポートに対する接続処理において、ＵＳＢポートに対する接続処理における処理時間を削減することが可能である。これにより、ポート数を増加させても、処理時間が増大することを抑制できる。
【００５０】
また、実施の形態１にかかる制御部１１０は、タイマ１１２を使用して、ＵＳＢポートに対する接続がなされた接続確認状態の継続時間を計測する。そして、制御部１１０は、継続時間が予め定められた第１の時間（ｔＣＣＤｅｂｏｕｎｃｅ期間）を経過した場合に、接続状態を接続済み状態に遷移させる。これにより、ＴＣＰＣ１００が、ＴＣＰＭ１０の関与なしに、効率的にステートマシンを接続済み状態に遷移させることが可能となる。
【００５１】
また、実施の形態１にかかる制御部１１０は、接続確認状態の継続時間が第１の時間を経過する前にＵＳＢポートに対する接続が解除された場合に、接続状態を未接続状態に遷移させる。これにより、ＴＣＰＭ１０の関与なしに、ステートマシンを未接続状態に遷移させることが可能である。したがって、ステートマシンを未接続状態に遷移させる場合においても、Ｉ２Ｃバス２を介した通信時間を削減させることができる。
【００５２】
（本実施の形態にかかるステートマシンの他の例）
図９〜図１２は、実施の形態１にかかる半導体システム１で実現される状態遷移図の他の例を示す図である。なお、図９〜図１２に例示する状態遷移図について、本実施の形態と関係のないステート及び遷移については、適宜、説明を省略する。
【００５３】
図９は、Ｔｙｐｅ−Ｃ仕様に準拠したＤＲＰデバイスに関する状態遷移図を例示している。ステートマシン（接続状態）は、一定時間おきに、「Ｕｎａｔｔａｃｈｅｄ．ＳＮＫ」ステートＳｔ２０１と「Ｕｎａｔｔａｃｈｅｄ．ＳＲＣ」ステートＳｔ２０２との間で交互に遷移する。つまり、ステートマシンは、一定時間おきに、「Ｕｎａｔｔａｃｈｅｄ．ＳＮＫ」ステートＳｔ２０１と「Ｕｎａｔｔａｃｈｅｄ．ＳＲＣ」ステートＳｔ２０２との間で状態をトグルする。なお、「Ｕｎａｔｔａｃｈｅｄ．ＳＮＫ」ステート及び「Ｕｎａｔｔａｃｈｅｄ．ＳＲＣ」ステートは、上述した「未接続状態」に対応する。また、「Ｕｎａｔｔａｃｈｅｄ．ＳＮＫ」ステートＳｔ２０１は、自身のＣＣ信号がＲｄ接続に制御された状態である。また、「Ｕｎａｔｔａｃｈｅｄ．ＳＲＣ」ステートＳｔ２０２は、自身のＣＣ信号がＲｐ接続に制御された状態である。
【００５４】
ステートマシンが「Ｕｎａｔｔａｃｈｅｄ．ＳＮＫ」ステートＳｔ２０１であるときに、ソース機能を有する対向機器がＵＳＢポートに接続され、上述したようなＣＣ信号における電位が分圧された状態になるとする。この場合、上述したように、ステートマシンは、「ＡｔｔａｃｈＷａｉｔ．ＳＮＫ」ステートＳｔ２１１に遷移する。なお、「ＡｔｔａｃｈＷａｉｔ．ＳＮＫ」ステートは、上述した「接続確認状態」に対応する。このとき、上述したように、制御部１１０は、タイマ１１２を用いて、「ＡｔｔａｃｈＷａｉｔ．ＳＮＫ」ステートＳｔ２１１に遷移してからの時間を計測する。この状態でソース機能を有する対向機器がＵＳＢポートから取り外されると、制御部１１０による制御によって、ステートマシンは、「Ｕｎａｔｔａｃｈｅｄ．ＳＲＣ」ステートＳｔ２０２に遷移する。一方、ＣＣ信号における電位が分圧された状態が第１の時間（ｔＣＣＤｅｂｏｕｎｃｅ）継続し、ＶＢＵＳラインの電圧が検出されたとする。この場合、制御部１１０による制御によって、ステートマシンは、「Ａｔｔａｃｈｅｄ．ＳＮＫ」ステートＳｔ２２１に遷移する。なお、「Ａｔｔａｃｈｅｄ．ＳＮＫ」ステートは、上述した「接続済み状態」に対応する。また、この状態で、ＶＢＵＳラインの電圧が検出されなくなりソース機能を有する対向機器との接続の解除が検出されると、ステートマシンは、「Ｕｎａｔｔａｃｈｅｄ．ＳＮＫ」ステートＳｔ２０１に遷移する。
【００５５】
一方、ステートマシンが「Ｕｎａｔｔａｃｈｅｄ．ＳＲＣ」ステートＳｔ２０２であるときに、シンク機能を有する対向機器がＵＳＢポートに接続され、上述したようなＣＣ信号における電位が分圧された状態になるとする。この場合、上述したように、ステートマシンは、「ＡｔｔａｃｈＷａｉｔ．ＳＲＣ」ステートＳｔ２１２に遷移する。なお、「ＡｔｔａｃｈＷａｉｔ．ＳＲＣ」ステートは、上述した「接続確認状態」に対応する。このとき、上述したように、制御部１１０は、タイマ１１２を用いて、「ＡｔｔａｃｈＷａｉｔ．ＳＮＫ」ステートＳｔ２１１に遷移してからの時間を計測する。この状態でシンク機能を有する対向機器がＵＳＢポートから取り外されると、制御部１１０による制御によって、ステートマシンは、「Ｕｎａｔｔａｃｈｅｄ．ＳＮＫ」ステートＳｔ２０１に遷移する。一方、ＣＣ信号における電位が分圧された状態が第１の時間（ｔＣＣＤｅｂｏｕｎｃｅ）継続し、ＶＢＵＳラインの電圧がｖＳａｆｅ０Ｖであったとする。この場合、制御部１１０による制御によって、ステートマシンは、「Ａｔｔａｃｈｅｄ．ＳＲＣ」ステートＳｔ２２２に遷移する。なお、「Ａｔｔａｃｈｅｄ．ＳＲＣ」ステートは、上述した「接続済み状態」に対応する。また、この状態で、シンク機能を有する対向機器との接続の解除が検出されると、ステートマシンは、「Ｕｎａｔｔａｃｈｅｄ．ＳＮＫ」ステートＳｔ２０１に遷移する。
【００５６】
図１０及び図１１は、ＴＣＰＣＩ仕様に対応したＴｒｙ．ＳＲＣデバイスに関する状態遷移図を例示している。図１０は、接続状態が接続済み状態に遷移するまでの状態遷移図を示している。ここで、Ｔｒｙ．ＳＲＣデバイスは、他のＤＲＰデバイスと接続するときに、ソースとして機能するＤＲＰデバイスである。なお、図１０及び図１１には、Ｔｒｙ．ＳＲＣデバイスについての例を示したが、Ｔｒｙ．ＳＮＫデバイスについても同様である。ここで、Ｔｒｙ．ＳＮＫデバイスは、他のＤＲＰデバイスと接続するときに、シンクとして機能するＤＲＰデバイスである。
【００５７】
なお、図１０に示した「Ａｐｐｌｙ  Ｒｄ」ステートＳｔ３０１及び「Ａｐｐｌｙ  Ｒｐ」ステートＳｔ３０２は、それぞれ、図２に示したＳｔ１０１及びＳｔ１０２と実質的に同様である。また、図１０に示した「Ｐｏｔｅｎｔｉａｌ＿Ｃｏｎｎｅｃｔ＿Ａｓ＿Ｓｎｋ」ステートＳｔ３１１は、図２に示したＳｔ１１１と実質的に同様である。また、図１０に示した「Ｐｏｔｅｎｔｉａｌ＿Ｃｏｎｎｅｃｔ＿Ａｓ＿Ｓｒｃ」ステートＳｔ３１２は、図２に示したＳｔ１１２と実質的に同様である。また、図１０に示した「Ａｔｔａｃｈｅｄ．Ｓｎｋ」ステートＳｔ３２１は、図２に示したＳｔ１２１と実質的に同様である。また、図１０に示した「Ａｔｔａｃｈｅｄ．Ｓｒｃ」ステートＳｔ３２２は、図２に示したＳｔ１２２と実質的に同様である。
【００５８】
また、図１０に示したＳｔ３０１とＳｔ３０２との間の遷移は、図２に示したＳｔ１０１とＳｔ１０２との間の遷移と実質的に同様である。また、図１０に示したＳｔ３０１からＳｔ３１１への遷移は、図２に示したＳｔ１０１からＳｔ１１１への遷移と実質的に同様である。また、図１０に示したＳｔ３０２からＳｔ３１２への遷移は、図２に示したＳｔ１０２からＳｔ１１２への遷移と実質的に同様である。
【００５９】
また、図１０に示したＳｔ３１１からＳｔ３０２への遷移は、図２に示したＳｔ１１１からＳｔ１０２への遷移と実質的に同様である。また、図１０に示したＳｔ３１２からＳｔ３０１への遷移は、図２に示したＳｔ１１２からＳｔ１０１への遷移と実質的に同様である。また、図１０に示したＳｔ３１２からＳｔ３２２への遷移は、図２に示したＳｔ１１２からＳｔ１２２への遷移と実質的に同様である。
【００６０】
ステートマシンが「Ｐｏｔｅｎｔｉａｌ＿Ｃｏｎｎｅｃｔ＿Ａｓ＿Ｓｎｋ」ステートＳｔ３１１であるときに、ＣＣ信号における電位が分圧された状態がｔＣＣＤｅｂｏｕｎｃｅ期間継続し、ＶＢＵＳラインの電圧が検出されたとする。このとき、制御部１１０による制御によって、ステートマシンは、「Ｔｒｙ．ＳＲＣ」ステートＳｔ３１６に遷移する。このＳｔ３１６で、ＴＣＰＣ１００は、ＵＳＢポートに接続された対向機器がシンク機能を有しているか否かを確認する。また、このＳｔ３１６のとき、デバイスは、ＣＣ信号に抵抗Ｒｐを接続し、ステートマシンは、対抗機器がＲｄ接続を行うか否かを確認する。つまり、制御部１１０は、Ｓｔ３１１である場合に、ＣＣ信号における電位が分圧された状態がｔＣＣＤｅｂｏｕｎｃｅ期間継続し、ＶＢＵＳラインの電圧が検出されたか否かを判定する。そして、ＣＣ信号における電位が分圧された状態がｔＣＣＤｅｂｏｕｎｃｅ期間継続し、ＶＢＵＳラインの電圧が検出されたときに、制御部１１０は、接続状態を「対向機器確認状態」（Ｓｔ３１６）に遷移させる。
【００６１】
ステートマシンが「Ｔｒｙ．ＳＲＣ」ステートＳｔ３１６であるときに、ｔＴｒｙＣＣＤｅｂｏｕｎｃｅ期間で対向機器側のＣＣ信号がＲｄ接続されて電位が分圧され、シンクが検出されたとする。このとき、制御部１１０による制御によって、ステートマシンは、「Ａｔｔａｃｈｅｄ．Ｓｒｃ」ステートＳｔ３２２に遷移する。つまり、制御部１１０は、Ｓｔ３１６である場合に、対向機器が受電機能（特定機能；第１の機能）を有していることを検出している状態がｔＴｒｙＣＣＤｅｂｏｕｎｃｅ期間（第２の時間）継続したときに、接続状態を接続済み状態に遷移させる。
【００６２】
一方、ステートマシンが「Ｔｒｙ．ＳＲＣ」ステートＳｔ３１６であるときに、ｔＤＲＰＴｒｙ時間経過後にシンクが検出されず、ＶＢＵＳラインの電圧がｖＳａｆｅ０Ｖであるとする。このとき、制御部１１０による制御によって、ステートマシンは、「ＴｒｙＷａｉｔ．ＳＮＫ」ステートＳｔ３１８に遷移する。このＳｔ３１８で、ステートマシンは、ＵＳＢポートがシンクとして接続されるように待機する。つまり、制御部１１０は、Ｓｔ３１６である場合に、ｔＤＲＰＴｒｙ時間（第３の時間）経過後に対向機器側が受電機能を有していることが検出されないときに、接続状態を「ＴｒｙＷａｉｔ．ＳＮＫ」に遷移させる。言い換えると、制御部１１０は、Ｓｔ３１６である場合に、第３の時間経過後に、対向機器側が特定機能を有していることを検出していないときに、接続状態を「特定機能待機状態」に遷移させる。「特定機能待機状態」は、ＵＳＢポートが特定機能を有するように待機している状態である。
【００６３】
また、このＳｔ３１８のとき、デバイスは、ＣＣ信号を抵抗Ｒｄに接続し、ステートマシンは、対抗機器がＲｐ接続を行うか否かを確認する。このＳｔ３１８において、ｔＣＣＤｅｂｏｕｎｃｅ期間で、対向機器側のＣＣ信号がＲｐ接続されて電位が分圧された状態が継続してソースが検出され、ＶＢＵＳラインの電圧が検出されたとする。このとき、制御部１１０による制御によって、ステートマシンは、「Ａｔｔａｃｈｅｄ．Ｓｎｋ」ステートＳｔ３２１に遷移する。一方、Ｓｔ３１８において、ｔＰＤＤｅｂｏｕｎｃｅ期間で、ソースが検出されなかった場合、制御部１１０による制御によって、ステートマシンは、「Ａｐｐｌｙ  Ｒｄ」ステートＳｔ３０１に遷移する。つまり、制御部１１０は、Ｓｔ３１８である場合に、対向機器側が給電機能を有していることを検出している状態がｔＣＣＤｅｂｏｕｎｃｅ期間継続したときに、接続状態を「接続済み状態」に遷移させる。一方、制御部１１０は、Ｓｔ３１８である場合に、対向機器側が給電機能を有していることを検出していない状態がｔＰＤＤｅｂｏｕｎｃｅ期間（第４の時間）継続したときに、接続状態を「未接続状態」に遷移させる。
【００６４】
図１１は、接続状態が接続済み状態から未接続状態に遷移するまでの状態遷移図を示している。図１１に示した「Ｄｉｓｃｏｎｎｅｃｔｅｄ＿Ａｓ＿Ｓｎｋ」ステートＳｔ３３１は、図３に示したＳｔ１３１と実質的に同様である。図１１に示した「Ｄｉｓｃｏｎｎｅｃｔｅｄ＿Ａｓ＿Ｓｒｃ」ステートＳｔ３３２は、図３に示したＳｔ１３２と実質的に同様である。
【００６５】
また、図１１に示したＳｔ３２１からＳｔ３３１への遷移は、図２に示したＳｔ１２１からＳｔ１３１への遷移と実質的に同様である。また、図１１に示したＳｔ３２２からＳｔ３３２への遷移は、図２に示したＳｔ１２２からＳｔ１３２への遷移と実質的に同様である。また、図１１に示したＳｔ３３１からＳｔ３０１への遷移は、図２に示したＳｔ１３１からＳｔ１０１への遷移と実質的に同様である。なお、ステートマシンは、「Ｄｉｓｃｏｎｎｅｃｔｅｄ＿Ａｓ＿Ｓｒｃ」ステートＳｔ３３２に遷移すると、無条件に、ＴｒｙＷａｉｔ．ＳＮＫ」ステートＳｔ３１８に遷移する。
【００６６】
図１２は、Ｔｙｐｅ−Ｃ仕様に対応するＴｒｙ．ＳＲＣデバイスに関する状態遷移図を例示している。なお、図１２に示した「Ｕｎａｔｔａｃｈｅｄ．ＳＮＫ」ステートＳｔ４０１及び「Ｕｎａｔｔａｃｈｅｄ．ＳＲＣ」ステートＳｔ４０２は、それぞれ、図９に示したＳｔ２０１及びＳｔ２０２と実質的に同様である。また、図１２に示した「ＡｔｔａｃｈＷａｉｔ．ＳＮＫ」ステートＳｔ４１１は、図９に示したＳｔ２１１と実質的に同様である。また、図１２に示した「ＡｔｔａｃｈＷａｉｔ．ＳＲＣ」ステートＳｔ４１２は、図９に示したＳｔ２１２と実質的に同様である。また、図１２に示した「Ａｔｔａｃｈｅｄ．ＳＮＫ」ステートＳｔ４２１は、図９に示したＳｔ２２１と実質的に同様である。また、図１２に示した「Ａｔｔａｃｈｅｄ．ＳＲＣ」ステートＳｔ４２２は、図９に示したＳｔ２２２と実質的に同様である。
【００６７】
また、図１２に示したＳｔ４０１とＳｔ４０２との間の遷移は、図９に示したＳｔ２１０１とＳｔ２０２との間の遷移と実質的に同様である。また、図１２に示したＳｔ４０１からＳｔ４１１への遷移は、図９に示したＳｔ２０１からＳｔ２１１への遷移と実質的に同様である。また、図１２に示したＳｔ４０２からＳｔ４１２への遷移は、図９に示したＳｔ２０２からＳｔ２１２への遷移と実質的に同様である。
【００６８】
また、図１２に示したＳｔ４１１からＳｔ４０２への遷移は、図９に示したＳｔ２１１からＳｔ２０２への遷移と実質的に同様である。また、図１２に示したＳｔ４１２からＳｔ４０１への遷移は、図９に示したＳｔ２１２からＳｔ２０１への遷移と実質的に同様である。また、図１２に示したＳｔ４１２からＳｔ４２２への遷移は、図９に示したＳｔ２１２からＳｔ２２２への遷移と実質的に同様である。また、図１２に示したＳｔ４２１からＳｔ４０１への遷移は、図９に示したＳｔ２２１からＳｔ２０１への遷移と実質的に同様である。
【００６９】
ステートマシンが「ＡｔｔａｃｈＷａｉｔ．ＳＮＫ」ステートＳｔ４１１であるときに、ＣＣ信号における電位が分圧された状態がｔＣＣＤｅｂｏｕｎｃｅ期間継続し、ＶＢＵＳラインの電圧が検出されたとする。このとき、制御部１１０による制御によって、ステートマシンは、「Ｔｒｙ．ＳＲＣ」ステートＳｔ４１６に遷移する。このＳｔ４１６で、ＴＣＰＣ１００は、ＵＳＢポートに接続された対向機器がシンク機能を有しているか否かを確認する。
【００７０】
ステートマシンが「Ｔｒｙ．ＳＲＣ」ステートＳｔ４１６であるときに、ｔＴｒｙＣＣＤｅｂｏｕｎｃｅ期間で対向機器側のＣＣ信号がＲｄ接続されて電位が分圧され、シンクが検出されたとする。このとき、制御部１１０による制御によって、ステートマシンは、「Ａｔｔａｃｈｅｄ．ＳＲＣ」ステートＳｔ４２２に遷移する。
【００７１】
一方、ステートマシンが「Ｔｒｙ．ＳＲＣ」ステートＳｔ４１６であるときに、ｔＤＲＰＴｒｙ期間でシンクが検出されず、ＶＢＵＳラインの電圧がｖＳａｆｅ０Ｖであるとする。このとき、制御部１１０による制御によって、ステートマシンは、「ＴｒｙＷａｉｔ．ＳＮＫ」ステートＳｔ４１８に遷移する。このＳｔ４１８で、ステートマシンは、ＵＳＢポートがシンクとして接続されるように待機する。
【００７２】
このＳｔ４１８において、ｔＣＣＤｅｂｏｕｎｃｅ期間で、対向機器側のＣＣ信号がＲｐ接続されて電位が分圧された状態が継続してソースが検出され、ＶＢＵＳラインの電圧が検出されたとする。このとき、制御部１１０による制御によって、ステートマシンは、「Ａｔｔａｃｈｅｄ．ＳＮＫ」ステートＳｔ４２１に遷移する。一方、Ｓｔ４１８において、ｔＰＤＤｅｂｏｕｎｃｅ期間で、ソースが検出されなかった場合、制御部１１０による制御によって、ステートマシンは、「Ｕｎａｔｔａｃｈｅｄ．ＳＮＫ」ステートＳｔ４０１に遷移する。
【００７３】
このように、ＴＣＰＣ１００に制御部１１０を設けることによって、任意のステートマシンにおける状態遷移を、ＴＣＰＭ１０の関与なしに、ＴＣＰＣ１００によって実行することが可能となる。これにより、Ｉ２Ｃバス２を介した通信時間を削減させることができる。したがって、本実施の形態では、任意のステートマシンに関する半導体システム１について、ＵＳＢポートに対する接続処理において、ＵＳＢポートに対する接続処理における処理時間を削減することが可能である。これにより、ポート数を増加させても、処理時間が像対することを抑制できる。
【００７４】
なお、Ｔｒｙ．ＳＮＫデバイスの場合、上述した特定機能（第１の機能）は、給電機能であり得る。そして、制御部１１０は、上述した「Ｔｒｙ．ＳＲＣ」ステートについての処理の代わりに、「Ｔｒｙ．ＳＮＫ」ステートについての処理を行う。同様に、制御部１１０は、上述した「ＴｒｙＷａｉｔ．ＳＮＫ」ステートについての処理の代わりに、「ＴｒｙＷａｉｔ．ＳＲＣ」ステートについての処理を行う。
【００７５】
（実施の形態２）
次に、実施の形態２について説明する。実施の形態２にかかる半導体システムは、ＴＣＰＣ１００が電源回路を制御する点で、実施の形態１にかかる半導体システムと異なる。その他の構成については、実施の形態１にかかる構成と実質的に同様である。
【００７６】
図１３は、実施の形態２にかかる半導体システム１の構成を示す図である。実施の形態２にかかる半導体システム１は、ＴＣＰＭ１０と、ポートＩＣ２０とを有する。ＴＣＰＭ１０及びポートＩＣ２０は、Ｉ２Ｃバス２を介して通信可能に接続されている。実施の形態２にかかるＴＣＰＭ１０の構成は、実施の形態１にかかるＴＣＰＭ１０の構成と実質的に同様である。ポートＩＣ２０は、ＵＳＢポートごとに設けられている。ポートＩＣ２０は、対応するＵＳＢポートに関する処理を行う。
【００７７】
ポートＩＣ２０は、ＴＣＰＣ１００と、電源回路２２とを有する。実施の形態２にかかるＴＣＰＣ１００の構成は、実施の形態１にかかるＴＣＰＣ１００の構成と実質的に同様である。電源回路２２は、受電及び給電の少なくとも一方を行う。ＴＣＰＣ１００の制御部１１０は、接続状態が接続済み状態に遷移したときに、電源回路２２を制御する。つまり、本実施の形態では、制御部１１０が接続状態を接続済み状態に遷移させるので、ＴＣＰＭ１０ではなく、制御部１１０が、直接、電源回路２２を制御することができる。
【００７８】
具体的には、接続状態が「Ａｔｔａｃｈｅｄ．ＳＮＫ」ステートに遷移した場合、制御部１１０は、電源回路２２に受電処理をさせるように、電源回路２２を制御する。この場合、制御部１１０の制御によって、電源回路２２は、ＶＢＵＳ受電回路のスイッチをオンして、ＶＢＵＳ受電回路を有効にする。これにより、半導体システム１が搭載されたデバイスに、対向機器から電力が供給される。
【００７９】
また、接続状態が「Ａｔｔａｃｈｅｄ．ＳＲＣ」ステートに遷移した場合、制御部１１０は、電源回路２２に給電処理をさせるように、電源回路２２を制御する。この場合、制御部１１０の制御によって、電源回路２２は、対向機器に対してＶＢＵＳを出力する。さらに、ＶＣＯＮＮがサポートされているときは、電源回路２２は、ケーブルに対してＶＣＯＮＮを出力する。
【００８０】
なお、図１３には、ポートＩＣ２０に電源回路２２が内蔵されている例が示されているが、本実施の形態は、このような構成に限らない。電源回路２２は、ポートＩＣ２０に内蔵されていなくてもよく、ポートＩＣ２０の外部にあってもよい。この場合、電源回路２２は、ポートＩＣ２０（ＴＣＰＣ１００）と、ゲート制御信号線等を介して接続され得る。制御部１１０は、接続状態が接続済み状態に遷移したときに、バスを介して、電源回路２２に制御信号を送信する。電源回路２２は、制御信号を受信して、その制御信号に応じた受電処理又は給電処理を行う。
【００８１】
実施の形態２にかかる半導体システム１は、実施の形態１にかかる半導体システム１と同様に、ＵＳＢポートにおける接続処理において、ＴＣＰＭ１０が関与することなく、ステートマシンを接続済み状態に遷移させることが可能である。これにより、Ｉ２Ｃバス２を介した通信時間を削減させることができる。したがって、実施の形態２にかかる半導体システム１は、実施の形態１にかかる効果と実質的に同様の効果を奏しうる。
【００８２】
また、実施の形態２にかかる半導体システム１は、上述したように、ＴＣＰＣ１００に設けられた制御部１１０が、電源回路２２を制御する。つまり、実施の形態２にかかる半導体システム１は、ＴＣＰＭ１０の関与なしに、ＴＣＰＣ１００が、直接、電源回路２２を制御することができる。したがって、ＴＣＰＭ１０が電源回路２２を制御する場合と比較して、効率的に、電源回路２２を制御することができる。言い換えると、ＴＣＰＭ１０が電源回路２２を制御する場合と比較して、効率的に、受電処理又は給電処理を行うことが可能となる。
【００８３】
（実施の形態３）
次に、実施の形態３について説明する。実施の形態３は、Ｔｙｐｅ−Ｃ仕様又はＴＣＰＣＩ仕様（以下、「Ｔｙｐｅ−Ｃ仕様等」）が更新されることが考慮されている点で、他の実施の形態と異なる。すなわち、本実施の形態にかかる半導体システム１がデバイスに実装された後で、Ｔｙｐｅ−Ｃ仕様等が更新されることがあり得る。この場合、ステートマシンにおけるステート追加及び遷移条件の変更等がなされ得る。実施の形態３にかかる半導体システム１は、このようなケースに対応可能に構成されている。
【００８４】
図１４は、実施の形態３にかかる半導体システム１の構成を示す図である。実施の形態１にかかる半導体システム１と同様に、実施の形態３にかかる半導体システム１は、ＴＣＰＭ１０と、ＴＣＰＣ１００とを有する。ＴＣＰＭ１０は、インタフェース１２と、接続検出部１４と、ステート制御部１６とを有する。実施の形態３にかかるＴＣＰＭ１０は、ステート制御部１６を有する点で、他の実施の形態にかかるＴＣＰＭ１０と異なる。実施の形態３にかかるＴＣＰＭ１０のその他の構成については、他の実施の形態にかかるＴＣＰＭ１０の構成と実質的に同様である。ステート制御部１６は、ＴＣＰＣ１００からの通知を受信した場合に、ＴＣＰＣステート制御部９２と実質的に同様の処理を行う。詳しくは後述する。
【００８５】
ＴＣＰＣ１００は、ＣＣロジック１０２と、ＶＢＵＳ電圧検出器１０４と、インタフェース１０６と、制御部１１０とを有する。制御部１１０は、タイマ１１２と、レジスタ１１４とを有する。実施の形態３にかかるＴＣＰＣ１００は、制御部１１０がレジスタ１１４を有する点で、他の実施の形態にかかるＴＣＰＣ１００と異なる。実施の形態３にかかるＴＣＰＣ１００のその他の構成については、他の実施の形態にかかるＴＣＰＣ１００の構成と実質的に同様である。レジスタ１１４は、ステートマシンにおける予め定められた状態（第１の状態）を設定する。このレジスタ１１４に設定された第１の状態（設定ステート）は、Ｔｙｐｅ−Ｃ仕様等が更新された場合に、ステートマシンにおいて変更されたステート又は遷移条件に関するステートに対応する。詳しくは後述する。
【００８６】
図１５は、実施の形態３にかかる制御部１１０によって実行される制御方法を示すフローチャートである。制御部１１０は、レジスタ１１４に、予め定められたステートを設定する（ステップＳ３００）。ここで、ステートマシンにおいて、あるステートが追加された場合、設定ステートは、その追加されたステートの遷移元となるステートであり得る。また、ステートマシンにおいて、あるステートから別のステートへの遷移条件が変更された場合、設定状態は、その変更された遷移条件の遷移元となるステートであり得る。
【００８７】
制御部１１０は、接続状態（ステートマシン）が設定ステートに遷移したか否かを判定する（ステップＳ３０２）。設定ステートに遷移した場合（Ｓ３０２のＹＥＳ）、制御部１１０は、ステートマシンを停止させる（ステップＳ３０４）。つまり、制御部１１０は、接続状態が設定ステート（第１の状態）に遷移したとき、ステートマシンを停止させる機能を有する。
【００８８】
そして、制御部１１０は、ステートマシンを停止させたことの通知を外部に送信する（ステップＳ３０６）。つまり、制御部１１０は、ステートマシンを停止させたことを外部に通知する機能を有する。ＴＣＰＭ１０がＩ２Ｃバス２を介してこの通知を受信すると、ＴＣＰＭ１０における処理が開始する。具体的には、ステート制御部１６は、更新されたＴｙｐｅ−Ｃ仕様等において変更されたステート又は遷移条件に関する制御を行う。
【００８９】
制御部１１０は、上述したＴＣＰＭ１０における処理が終了したか否かを判定する（ステップＳ３０８）。ＴＣＰＭ１０における処理が終了した場合（Ｓ３０８のＹＥＳ）、制御部１１０は、ステート制御部１６によって制御されたステート又は遷移条件の遷移先のステートからステートマシンを再開する（ステップＳ３１０）。これにより、制御部１１０は、変更がなされていないステート又は遷移条件に関する制御を、上述した実施の形態と同様に行うことができる。
【００９０】
具体例を挙げて説明する。例えば、図１０に示した状態遷移図（ステートマシン）で、「Ｔｒｙ．ＳＲＣ」ステートＳｔ３１６と「ＴｒｙＷａｉｔ．ＳＮＫ」ステートＳｔ３１８との間にステートが新たに追加されたとする。この場合、制御部１１０は、設定ステートとして、「Ｔｒｙ．ＳＲＣ」ステートＳｔ３１６をレジスタ１１４に設定する（Ｓ３００）。そして、接続状態が「Ｔｒｙ．ＳＲＣ」ステートＳｔ３１６に遷移した場合（Ｓ３０２のＹＥＳ）、制御部１１０は、ステートマシンを停止させる（Ｓ３０４）。この場合、Ｓ３０６において制御部１１０から送信された通知をＴＣＰＭ１０が受信すると、ステート制御部１６は、新たに追加されたステートに関する制御を行う。そして、ＴＣＰＭ１０における処理が終了した場合（Ｓ３０８のＹＥＳ）、制御部１１０は、追加されたステートの遷移先のステートからステートマシンを再開する（Ｓ３１０）。つまり、制御部１１０は、「ＴｒｙＷａｉｔ．ＳＮＫ」ステートＳｔ３１８からステートマシンを再開する。
【００９１】
また、例えば、図１０に示した状態遷移図（ステートマシン）で、「ＴｒｙＷａｉｔ．ＳＮＫ」ステートＳｔ３１８から「Ａｐｐｌｙ  Ｒｄ」ステートＳｔ３０１に遷移する遷移条件が変更されたとする。この場合、制御部１１０は、設定ステートとして、「ＴｒｙＷａｉｔ．ＳＮＫ」ステートＳｔ３１８をレジスタ１１４に設定する（Ｓ３００）。そして、接続状態が「ＴｒｙＷａｉｔ．ＳＮＫ」ステートＳｔ３１８に遷移した場合（Ｓ３０２のＹＥＳ）、制御部１１０は、ステートマシンを停止させる（Ｓ３０４）。この場合、Ｓ３０６において制御部１１０から送信された通知をＴＣＰＭ１０が受信すると、ステート制御部１６は、変更された遷移条件の判定処理を行う。そして、ＴＣＰＭ１０における処理が終了した場合（Ｓ３０８のＹＥＳ）、制御部１１０は、変更された遷移条件の遷移先のステートからステートマシンを再開する（Ｓ３１０）。つまり、制御部１１０は、「Ａｐｐｌｙ  Ｒｄ」ステートＳｔ３０１からステートマシンを再開する。
【００９２】
実施の形態３にかかる半導体システム１は、実施の形態１にかかる半導体システム１と同様に、ＵＳＢポートにおける接続処理において、ＴＣＰＭ１０が関与することなく、ステートマシンを接続済み状態に遷移させることが可能である。これにより、Ｉ２Ｃバス２を介した通信時間を削減させることができる。したがって、実施の形態３にかかる半導体システム１は、実施の形態１にかかる効果と実質的に同様の効果を奏しうる。
【００９３】
また、上述したように、実施の形態３では、接続状態が設定ステート（第１の状態）に遷移したとき、制御部１１０が、ステートマシンを停止させ、ステートマシンを停止させたことの通知を外部に送信する。これにより、Ｔｙｐｅ−Ｃ仕様等が更新された場合に、変更されたステート又は遷移条件に関する制御をＴＣＰＭ１０が行うことができる。これにより、Ｔｙｐｅ−Ｃ仕様等が更新された場合であっても、ＴＣＰＣ１００に実装されたハードウェアの制御部１１０を実装し直すことが不要となる。
【００９４】
また、上述したように、実施の形態３では、ＴＣＰＭ１０における処理が終了した場合、制御部１１０は、ステート制御部１６によって制御されたステート（接続状態）又は遷移条件の遷移先のステートからステートマシンを再開する。これにより、変更されていないステート又は遷移条件については、ＴＣＰＣ１００側で処理を継続することができる。したがって、実施の形態３にかかる半導体システム１は、Ｔｙｐｅ−Ｃ仕様等が更新された場合であっても、実施の形態１にかかる効果を奏することができる。
【００９５】
また、上述したように、実施の形態３にかかる制御部１１０は、設定ステート（第１の状態）を設定するレジスタ１１４を有する。これにより、Ｔｙｐｅ−Ｃ仕様等が更新された場合に、変更された箇所の遷移元のステートを任意に設定できる。したがって、Ｔｙｐｅ−Ｃ仕様等の任意の更新に対して、本実施の形態にかかる半導体システム１を柔軟に適用できる。
【００９６】
（変形例）
なお、本実施の形態は上記実施の形態に限られたものではなく、趣旨を逸脱しない範囲で適宜変更することが可能である。例えば、本実施の形態にかかるＴＣＰＣ１００で実現されるステートマシンの例を、図２，図３，図９〜図１２に記載した。しかしながら、本実施の形態にかかるＴＣＰＣ１００で実現されるステートマシンは、図２，図３，図９〜図１２に例示したステートマシンに限られない。
【００９７】
以上、本発明者によってなされた発明を実施の形態に基づき具体的に説明したが、本発明は既に述べた実施の形態に限定されるものではなく、その要旨を逸脱しない範囲において種々の変更が可能であることはいうまでもない。
【符号の説明】
【００９８】
１  半導体システム
２  Ｉ２Ｃバス
１０  ＴＣＰＭ
１２  インタフェース
１４  接続検出部
１６  ステート制御部
２０  ポートＩＣ
２２  電源回路
８０  半導体システム
８２  ＴＣＰＣ
９０  ＴＣＰＭ
９２  ＴＣＰＣステート制御部
１００  ＴＣＰＣ
１０２  ＣＣロジック
１０４  ＶＢＵＳ電圧検出器
１０６  インタフェース
１１０  制御部
１１２  タイマ
１１４  レジスタ
【図１】
2020194384.tif 000003
【図２】
2020194384.tif 000004
【図３】
2020194384.tif 000005
【図４】
2020194384.tif 000006
【図５】
2020194384.tif 000007
【図６】
2020194384.tif 000008
【図７】
2020194384.tif 000009
【図８】
2020194384.tif 000010
【図９】
2020194384.tif 000011
【図１０】
2020194384.tif 000012
【図１１】
2020194384.tif 000013
【図１２】
2020194384.tif 000014
【図１３】
2020194384.tif 000015
【図１４】
2020194384.tif 000016
【図１５】
2020194384.tif 000017