(57)【特許請求の範囲】
【請求項１】
集積回路デバイス内の構成を制御するための方法であって、前記集積回路デバイスは、それぞれ、前記集積回路デバイスの外部ピンと接続される、データ出力ドライバ、データ入力ドライバ、制御可能プルアップ抵抗器、制御可能プルダウン抵抗器を有する、少なくとも１つの制御可能入出力ポートを備え、前記方法は、
前記制御可能プルアップ抵抗器のみを有効にし、第１のビットとして前記データ入力ドライバを通して関連入力を読み取ることと、
前記制御可能プルダウン抵抗器のみを有効にし、第２のビットとして前記データ入力ドライバを通して関連入力を読み取ることと、
前記少なくとも１つの制御可能入出力ポートをトライステートし、別のビットとして前記データ入力ドライバを通して関連入力を読み取ることと、
前記読み取られたビットから値を符号化することと、
前記符号化された値からファームウェア動作を判定することと
を含む、方法。
【請求項２】
前記制御可能プルアップおよび制御可能プルダウン抵抗器を無効にすることと、
論理‘０’で前記少なくとも１つの制御可能入出力ポートを駆動し、第３のビットとして前記データ入力ドライバを通して関連入力を読み取ることと、
論理‘１’で前記少なくとも１つの制御可能入出力ポートを駆動し、第４のビットとして前記データ入力ドライバを通して関連入力を読み取ることと
をさらに含む、請求項１に記載の方法。
【請求項３】
その存在を検証するように、前記少なくとも１つの制御可能入出力ポートと接続される外部周辺デバイスにアクセスすることをさらに含む、請求項１に記載の方法。
【請求項４】
その存在を検証するように、前記少なくとも１つの制御可能入出力ポートと接続される外部周辺デバイスにアクセスすることをさらに含む、請求項２に記載の方法。
【請求項５】
外部プルアップ抵抗器が、前記外部ピンと接続される、請求項１に記載の方法。
【請求項６】
外部プルダウン抵抗器が、前記外部ピンと接続される、請求項１に記載の方法。
【請求項７】
外部プルアップ抵抗器が、前記外部ピンと接続される、請求項２に記載の方法。
【請求項８】
外部プルダウン抵抗器が、前記外部ピンと接続される、請求項２に記載の方法。
【請求項９】
前記集積回路デバイスは、複数の制御可能入出力ポートを備え、前記ステップは、前記複数の制御可能入出力ポートの各々に対して繰り返される、請求項１に記載の方法。
【請求項１０】
前記集積回路デバイスは、複数の制御可能入出力ポートを備え、前記ステップは、前記複数の制御可能入出力ポートの各々に対して繰り返される、請求項２に記載の方法。
【請求項１１】
６つの値を符号化するために、前記外部ピンは、２００ｋオームプルダウンまたはプルアップ抵抗器、１０ｋオームプルダウンまたはプルアップ抵抗器、１０オームもしくは１００オームプルアップまたはプルダウン抵抗器のうちの１つと接続される、請求項２に記載の方法。
【請求項１２】
集積回路デバイスであって、前記集積回路デバイスは、
それぞれ、前記集積回路デバイスの外部ピンと接続される、データ出力ドライバ、データ入力ドライバ、制御可能プルアップ抵抗器、制御可能プルダウン抵抗器を有する、少なくとも１つの制御可能入出力ポートと、
前記少なくとも１つの制御可能入出力ポートと連結されたデジタルプロセッサと
を備え、前記デジタルプロセッサは、
前記制御可能プルアップ抵抗器のみを有効にし、第１のビットとして前記データ入力ドライバを通して関連入力を読み取ることと、
前記制御可能プルダウン抵抗器のみを有効にし、第２のビットとして前記データ入力ドライバを通して関連入力を読み取ることと、
前記少なくとも１つの制御可能入出力ポートをトライステートし、別のビットとして前記データ入力ドライバを通して関連入力を読み取ることと、
前記読み取られたビットから値を符号化することと、
前記符号化された値からファームウェア動作を判定することと
を行うように構成される、集積回路デバイス。
【請求項１３】
前記デジタルプロセッサはさらに、
前記制御可能プルアップおよび制御可能プルダウン抵抗器を無効にすることと、
論理‘０’で前記少なくとも１つの制御可能入出力ポートを駆動し、第３のビットとして前記データ入力ドライバを通して関連入力を読み取ることと、
論理‘１’で前記少なくとも１つの制御可能入出力ポートを駆動し、第４のビットとして前記データ入力ドライバを通して関連入力を読み取ることと
を行うように構成される、請求項１２に記載の集積回路デバイス。
【請求項１４】
前記少なくとも１つの制御可能入出力ポートと接続される外部周辺デバイスをさらに備え、前記デジタルプロセッサは、その存在を検証するように、前記少なくとも１つの制御可能入出力ポートと接続される前記外部周辺デバイスにアクセスするように構成される、請求項１２に記載の集積回路デバイスを備えるシステム。
【請求項１５】
前記少なくとも１つの制御可能入出力ポートと接続される外部周辺デバイスをさらに備え、前記デジタルプロセッサは、その存在を検証するように、前記少なくとも１つの制御可能入出力ポートと接続される前記外部周辺デバイスにアクセスするように構成される、請求項１３に記載の集積回路デバイスを備えるシステム。
【請求項１６】
前記外部ピンと接続される外部プルアップ抵抗器をさらに備える、請求項１２に記載の集積回路デバイスを備えるシステム。
【請求項１７】
前記外部ピンと接続される外部プルダウン抵抗器をさらに備える、請求項１２に記載の集積回路デバイスを備えるシステム。
【請求項１８】
前記外部ピンと接続される外部プルアップ抵抗器をさらに備える、請求項１３に記載の集積回路デバイスを備えるシステム。
【請求項１９】
前記外部ピンと接続される外部プルダウン抵抗器をさらに備える、請求項１３に記載の集積回路デバイスを備えるシステム。
【請求項２０】
前記少なくとも１つの制御可能入出力ポートは、複数の制御可能入出力ポートを含み、デジタルプロセッサは、前記複数の制御可能入出力ポートに対して構成を繰り返す、請求項１２に記載の集積回路デバイス。
【請求項２１】
前記少なくとも１つの制御可能入出力ポートは、複数の制御可能入出力ポートを含み、前記デジタルプロセッサは、前記複数の制御可能入出力ポートに対して構成を繰り返す、請求項１３に記載の集積回路デバイス。
【請求項２２】
６つの値を符号化するために、前記外部ピンは、２００ｋオームプルダウンまたはプルアップ抵抗器、１０ｋオームプルダウンまたはプルアップ抵抗器、１０オームもしくは１００オームプルアップまたはプルダウン抵抗器のうちの１つと接続される、請求項１３に記載の集積回路デバイスを備えるシステム。
【請求項２３】
前記集積回路デバイスは、マイクロコントローラである、請求項１２に記載の集積回路デバイス。
【請求項２４】
それぞれ、複数の機能のうちの１つをサポートするように構成可能である、複数の入出力ポートをさらに備える、請求項２３に記載のマイクロコントローラを備えるユニバーサルシリアルバス（ＵＳＢ）ハブ。
【請求項２５】
それぞれ、前記複数の入出力ポートのうちの１つと直接接続される、少なくとも１つの電力ポートスイッチを備え、前記接続は、プルアップおよびプルダウン抵抗器を含まない、請求項２４に記載のＵＳＢハブ。
【請求項２６】
前記マイクロコントローラの前記複数の入出力ポートと接続されるシリアルインターフェースを備える少なくとも１つの周辺デバイスを備え、各接続は、プルアップ抵抗器を備える、請求項２４に記載のＵＳＢハブ。
【請求項２７】
電力供給部と前記ＵＳＢハブの電力出力との間に連結される、少なくとも１つのヒューズと、前記電力出力と接地との間に連結される、前記少なくとも１つのヒューズと関連付けられる分圧器とを備え、前記分圧器の分圧ノードは、前記マイクロコントローラの前記少なくとも１つの制御可能入出力ポートと接続される、請求項２４に記載のＵＳＢハブ。
【発明の詳細な説明】
【技術分野】
【０００１】
（関連出願の引用）
本願は、２０１３年１０月７日に出願された、米国仮出願第６１／８８７，６７２号の利益を主張するものであり、該仮出願の全体は、参照により本明細書中に援用される。
【０００２】
本開示は、集積回路デバイスを構成するための方法およびデバイスに関する。
【背景技術】
【０００３】
集積回路デバイスは、多くの場合、動作を可能にするように構成される必要がある。構成が限定される、例えば、２つの動作モードのうちの１つが選択される必要がある場合、構成を選択するように、外部ピンが、接地または供給電圧のいずれかと接続されてもよい。しかしながら、可能な構成の数がより大きい場合、適正な構成を可能にするために利用可能である十分なピンがない場合がある。したがって、多くの場合、それを用いてデバイスが構成される、シリアルインターフェースが必要とされ、これは、費用を増加させるだけではなく、デバイスを使用することができるようになる前に付加的なステップが行われることも要求する。
【発明の概要】
【課題を解決するための手段】
【０００４】
したがって、集積回路デバイス、具体的には、多機能ピンを伴うマイクロコントローラのための構成を自動的に検出する手段の必要性がある。
【０００５】
実施形態によると、それぞれ、集積回路デバイスの外部ピンと接続される、データ出力ドライバ、データ入力ドライバ、制御可能プルアップ抵抗器、制御可能プルダウン抵抗器を有する、少なくとも１つの制御可能入出力ポートを備える、集積回路デバイス内の構成を制御するための方法は、プルアップ抵抗器のみを有効にし、第１のビットとしてデータ入力ドライバを通して関連入力を読み取るステップと、プルダウン抵抗器のみを有効にし、第２のビットとしてデータ入力ドライバを通して関連入力を読み取るステップと、第１のポートをトライステートし、別のビットとしてデータ入力ドライバを通して関連入力を読み取るステップと、読み取られたビットから値を符号化するステップと、符号化された値からファームウェア動作を判定するステップとを含んでもよい。
【０００６】
さらなる実施形態によると、本方法はさらに、プルアップおよびプルダウン抵抗器を無効にするステップと、論理‘０’で第１のポートを駆動し、第３のビットとしてデータ入力ドライバを通して関連入力を読み取るステップと、論理‘１’で第１のポートを駆動し、第４のビットとしてデータ入力ドライバを通して関連入力を読み取るステップとを含んでもよい。
【０００７】
さらなる実施形態によると、本方法はさらに、その存在を検証するように、少なくとも１つの制御可能入出力ポートと接続される外部周辺デバイスにアクセスするステップを含んでもよい。さらなる実施形態によると、外部プルアップ抵抗器が、外部ピンと接続されてもよい。さらなる実施形態によると、外部プルダウン抵抗器が、外部ピンと接続されてもよい。さらなる実施形態によると、ステップは、各ポートのために繰り返すことができる。さらなる実施形態によると、６つの値を符号化するために、外部ピンは、２００ｋオームプルダウンまたはプルアップ抵抗器、１０ｋオームプルダウンまたはプルアップ抵抗器、１０オームもしくは１００オームプルアップまたはプルダウン抵抗器のうちの１つと接続することができる。
【０００８】
別の実施形態によると、集積回路デバイスは、それぞれ、集積回路デバイスの外部ピンと接続される、データ出力ドライバ、データ入力ドライバ、制御可能プルアップ抵抗器、制御可能プルダウン抵抗器を有する、少なくとも１つの制御可能入出力ポートと、少なくとも１つの制御可能入出力ポートと連結されたデジタルプロセッサであって、プルアップ抵抗器のみを有効にし、第１のビットとしてデータ入力ドライバを通して関連入力を読み取ることと、プルダウン抵抗器のみを有効にし、第２のビットとしてデータ入力ドライバを通して関連入力を読み取ることと、第１のポートをトライステートし、別のビットとしてデータ入力ドライバを通して関連入力を読み取ることと、読み取られたビットから値を符号化することと、符号化された値からファームウェア動作を判定することとを行うように構成される、デジタルプロセッサとを備えてもよい。
【０００９】
集積回路デバイスのさらなる実施形態によると、デジタルプロセッサはさらに、プルアップおよびプルダウン抵抗器を無効にし、論理‘０’で第１のポートを駆動し、第３のビットとしてデータ入力ドライバを通して関連入力を読み取ることと、論理‘１’で第１のポートを駆動し、第４のビットとしてデータ入力ドライバを通して関連入力を読み取ることとを行うように構成されてもよい。
【００１０】
別の実施形態によると、システムは、そのような集積回路を備え、さらに、入出力ポートと接続される外部周辺機器を備えてもよく、デジタルプロセッサは、その存在を検証するように、少なくとも１つの制御可能入出力ポートと接続される外部周辺デバイスにアクセスするように構成される。さらなる実施形態によると、そのようなシステムはさらに、入出力ポートと接続される外部周辺機器を備えてもよく、デジタルプロセッサは、その存在を検証するように、少なくとも１つの制御可能入出力ポートと接続される外部周辺デバイスにアクセスするように構成される。さらなる実施形態によると、そのようなシステムはさらに、外部ピンと接続される外部プルアップ抵抗器を備えてもよい。さらなる実施形態によると、そのようなシステムはさらに、外部ピンと接続される外部プルダウン抵抗器を備えてもよい。
【００１１】
集積回路デバイスのさらなる実施形態によると、デジタルプロセッサは、複数の外部入出力ポートのための構成を繰り返してもよい。
【００１２】
さらに別の実施形態によると、システムは、上記のような集積回路デバイスを備えてもよく、６つの値を符号化するために、外部ピンは、２００ｋオームプルダウンまたはプルアップ抵抗器、１０ｋオームプルダウンまたはプルアップ抵抗器、１０オームもしくは１００オームプルアップまたはプルダウン抵抗器のうちの１つと接続される。
【００１３】
集積回路デバイスのさらなる実施形態によると、集積回路デバイスは、マイクロコントローラであり得る。
【００１４】
さらに別の実施形態によると、ユニバーサルシリアルバス（ＵＳＢ）ハブは、上記のようなマイクロコントローラを備え、さらに、それぞれ、複数の機能のうちの１つをサポートするように構成可能である、複数の入出力ピンを備えてもよい。
【００１５】
さらなる実施形態によると、ＵＳＢハブはさらに、複数の入出力ピンのうちの１つと直接接続される、少なくとも１つの電力ポートスイッチを備えてもよく、接続は、プルアップおよびプルダウン抵抗器を含まない。さらなる実施形態によると、ＵＳＢハブはさらに、マイクロコントローラの構成可能関連入出力ポートと接続されるシリアルインターフェースを備える、少なくとも１つの周辺デバイスを備えてもよく、各接続は、プルアップ抵抗器を備える。さらなる実施形態によると、ＵＳＢハブはさらに、電力供給部とＵＳＢハブの電力出力との間に連結される、少なくとも１つのヒューズと、電力出力と接地との間に連結される、少なくとも１つのヒューズと関連付けられる分圧器とを備えてもよく、分圧器の分圧ノードは、マイクロコントローラの１つの入出力ポートと接続される。
本明細書は、例えば、以下の項目も提供する。
（項目１）
それぞれ、集積回路デバイスの外部ピンと接続される、データ出力ドライバ、データ入力ドライバ、制御可能プルアップ抵抗器、制御可能プルダウン抵抗器を有する、少なくとも１つの制御可能入出力ポートを備える、前記集積回路デバイス内の構成を制御するための方法であって、
前記プルアップ抵抗器のみを有効にし、第１のビットとして前記データ入力ドライバを通して関連入力を読み取るステップと、
前記プルダウン抵抗器のみを有効にし、第２のビットとして前記データ入力ドライバを通して関連入力を読み取るステップと、
第１のポートをトライステートし、別のビットとして前記データ入力ドライバを通して関連入力を読み取るステップと、
前記読み取られたビットから値を符号化するステップと、
前記符号化された値からファームウェア動作を判定するステップと、
を含む、方法。
（項目２）
前記プルアップおよびプルダウン抵抗器を無効にするステップと、
論理‘０’で前記第１のポートを駆動し、第３のビットとして前記データ入力ドライバを通して関連入力を読み取るステップと、
論理‘１’で前記第１のポートを駆動し、第４のビットとして前記データ入力ドライバを通して関連入力を読み取るステップと、
をさらに含む、項目１に記載の方法。
（項目３）
その存在を検証するように、前記少なくとも１つの制御可能入出力ポートと接続される外部周辺デバイスにアクセスするステップをさらに含む、項目１に記載の方法。
（項目４）
その存在を検証するように、前記少なくとも１つの制御可能入出力ポートと接続される外部周辺デバイスにアクセスするステップをさらに含む、項目２に記載の方法。
（項目５）
外部プルアップ抵抗器が、前記外部ピンと接続される、項目１に記載の方法。
（項目６）
外部プルダウン抵抗器が、前記外部ピンと接続される、項目１に記載の方法。
（項目７）
外部プルアップ抵抗器が、前記外部ピンと接続される、項目２に記載の方法。
（項目８）
外部プルダウン抵抗器が、前記外部ピンと接続される、項目２に記載の方法。
（項目９）
前記ステップは、各ポートのために繰り返される、項目１に記載の方法。
（項目１０）
前記ステップは、各ポートのために繰り返される、項目２に記載の方法。
（項目１１）
６つの値を符号化するために、前記外部ピンは、２００ｋオームプルダウンまたはプルアップ抵抗器、１０ｋオームプルダウンまたはプルアップ抵抗器、１０オームもしくは１００オームプルアップまたはプルダウン抵抗器のうちの１つと接続される、項目２に記載の方法。
（項目１２）
それぞれ、集積回路デバイスの外部ピンと接続される、データ出力ドライバ、データ入力ドライバ、制御可能プルアップ抵抗器、制御可能プルダウン抵抗器を有する、少なくとも１つの制御可能入出力ポートと、
前記少なくとも１つの制御可能入出力ポートと連結されたデジタルプロセッサであって、
前記プルアップ抵抗器のみを有効にし、第１のビットとして前記データ入力ドライバを通して関連入力を読み取ることと、
前記プルダウン抵抗器のみを有効にし、第２のビットとして前記データ入力ドライバを通して関連入力を読み取ることと、
第１のポートをトライステートし、別のビットとして前記データ入力ドライバを通して関連入力を読み取ることと、
前記読み取られたビットから値を符号化することと、
前記符号化された値からファームウェア動作を判定することと
を行うように構成される、デジタルプロセッサと
を備える、集積回路デバイス。
（項目１３）
前記デジタルプロセッサはさらに、
前記プルアップおよびプルダウン抵抗器を無効にすることと、
論理‘０’で前記第１のポートを駆動し、第３のビットとして前記データ入力ドライバを通して関連入力を読み取ることと、
論理‘１’で前記第１のポートを駆動し、第４のビットとして前記データ入力ドライバを通して関連入力を読み取ることと
を行うように構成される、項目１２に記載の集積回路デバイス。
（項目１４）
入出力ポートと接続される外部周辺機器をさらに備え、前記デジタルプロセッサは、その存在を検証するように、前記少なくとも１つの制御可能入出力ポートと接続される外部周辺デバイスにアクセスするように構成される、項目１２に記載の集積回路デバイスを備える、システム。
（項目１５）
入出力ポートと接続される外部周辺機器をさらに備え、前記デジタルプロセッサは、その存在を検証するように、前記少なくとも１つの制御可能入出力ポートと接続される外部周辺デバイスにアクセスするように構成される、項目１３に記載の集積回路デバイスを備える、システム。
（項目１６）
前記外部ピンと接続される外部プルアップ抵抗器をさらに備える、項目１２に記載の集積回路デバイスを備える、システム。
（項目１７）
前記外部ピンと接続される外部プルダウン抵抗器をさらに備える、項目１２に記載の集積回路デバイスを備える、システム。
（項目１８）
前記外部ピンと接続される外部プルアップ抵抗器をさらに備える、項目１３に記載の集積回路デバイスを備える、システム。
（項目１９）
前記外部ピンと接続される外部プルダウン抵抗器をさらに備える、項目１３に記載の集積回路デバイスを備える、システム。
（項目２０）
前記デジタルプロセッサは、複数の外部入出力ポートのための構成を繰り返す、項目１２に記載の集積回路デバイス。
（項目２１）
前記デジタルプロセッサは、複数の外部入出力ポートのための構成を繰り返す、項目１３に記載の集積回路デバイス。
（項目２２）
６つの値を符号化するために、前記外部ピンは、２００ｋオームプルダウンまたはプルアップ抵抗器、１０ｋオームプルダウンまたはプルアップ抵抗器、１０オームもしくは１００オームプルアップまたはプルダウン抵抗器のうちの１つと接続される、項目１３に記載の集積回路デバイスを備える、システム。
（項目２３）
前記集積回路デバイスは、マイクロコントローラである、項目１２に記載の集積回路デバイス。
（項目２４）
それぞれ、複数の機能のうちの１つをサポートするように構成可能である、複数の入出力ピンをさらに備える、項目２３に記載のマイクロコントローラを備える、ユニバーサルシリアルバス（ＵＳＢ）ハブ。
（項目２５）
それぞれ、前記複数の入出力ピンのうちの１つと直接接続される、少なくとも１つの電力ポートスイッチを備え、前記接続は、プルアップおよびプルダウン抵抗器を含まない、項目２４に記載のＵＳＢハブ。
（項目２６）
前記マイクロコントローラの構成可能関連入出力ポートと接続されるシリアルインターフェースを備える、少なくとも１つの周辺デバイスを備え、各接続は、プルアップ抵抗器を備える、項目２４に記載のＵＳＢハブ。
（項目２７）
電力供給部と前記ＵＳＢハブの電力出力との間に連結される、少なくとも１つのヒューズと、前記電力出力と接地との間に連結される、前記少なくとも１つのヒューズと関連付けられる分圧器とを備え、前記分圧器の分圧ノードは、前記マイクロコントローラの１つの入出力ポートと接続される、項目２４に記載のＵＳＢハブ。
【図面の簡単な説明】
【００１６】
【図１】図１は、典型的なＩ／Ｏポートおよび関連外部ピンならびに外部から適用されたプルアップおよびプルダウン抵抗器のブロック図を示す。
【図２】図２は、第１の構成におけるＵＳＢハブのブロック図を示す。
【図３】図３は、第２の構成におけるＵＳＢハブのブロック図を示す。
【図４】図４は、第３の構成におけるＵＳＢハブのブロック図を示す。
【図５】図５は、第４の構成におけるＵＳＢハブのブロック図を示す。
【図６】図６は、第５の構成におけるＵＳＢハブのブロック図を示す。
【図７】図７は、第６の構成におけるＵＳＢハブのブロック図を示す。
【図８】図８は、第７の構成におけるＵＳＢハブのブロック図を示す。
【発明を実施するための形態】
【００１７】
ポートタイプ検出
以下は、いくつかの実施形態では、ユニバーサルシリアルバス（ＵＳＢ）ハブの構成を説明する。しかしながら、構成のための方法およびシステムは、他の集積回路デバイス、具体的には、多機能ピンを伴うマイクロコントローラに適用されてもよい。
【００１８】
ＵＳＢハブは、例えば、外部ポート電力コントローラを使用して、その下流ポートのそれぞれのための電力を制御するように構成される必要がある、マイクロコントローラを備えてもよい。そのような電力コントローラの３つの基本的なタイプがある。１つは、基本的にはサーミスタである、単純なポリヒューズである。第２のタイプは、有効化ピン入力と、過電流検出出力とを有する、標準ポート電力コントローラである。第３のタイプは、シリアルバス、例えば、Ｉ２Ｃメッセージを通して制御されるＩ２Ｃ制御デバイスを通して、制御される。そのようなシリアルバスの一実施例は、本明細書の以下で説明される「ＬＩＮＸ」デバイスで使用され、専用メッセージとともに、外部ＡＬＥＲＴピンを伴うＩ２Ｃ物理的バスを備える、専用デバイスを使用する。したがって、ＬＩＮＸバスは、データＩ／Ｏラインと、クロックラインと、アラートラインとを備える。しかしながら、このタイプの通信インターフェースは、一実施例にすぎず、他の実施形態によると、ＵＳＢハブ等のデバイスがシリアル通信ポートを備えるときは常時、本方式を任意のＩ２Ｃデバイスまたは他のシリアル通信バスに拡張することができる。通常、ポートタイプは、プログラム可能な設定でハブにプログラムされるか、またはストラップを通して制御されなければならない。以下で概説されるような種々の実施形態によると、ハブ下流ポートにアタッチされたコントローラタイプが自動的に検出されることが可能となるであろう。上記のように、以下の原理が、構成を必要とする他の集積回路デバイスに使用されてもよい。
【００１９】
種々の実施形態による自動検出は、それにアタッチされたポートデバイスのタイプでデバイスを事前にプログラムする必要性を軽減する。これはまた、ユーザのためのステップも軽減する。上記のように、そのような自動検出を他の構成目的で使用することもできる。
【００２０】
実施形態によると、順列の数は、例えば、４つのＵＳＢポートを伴うＵＳＢハブの場合に、以下に制限され得る。
１．１つのポートにつき１つのポリヒューズ
２．１つのシステムにつき１つのポリヒューズ（ここでは簡潔にのみ説明される）
３．１つの下流ポートにつき１つのポート電力コントローラ
４．１〜３個のＩ２Ｃ  ＬＩＮＸポート。残りのポートは、連動ポリヒューズを使用した。
５．１〜３個のＩ２Ｃ  ＬＩＮＸポート。残りのポートは、連動ポート電力スイッチを使用した。
６．４個のＩ２Ｃ  ＬＩＮＸポート
【００２１】
ポートがバッテリ充電サポートを有するかどうかは、いわゆるＢＣ＿ＥＮストラップによって判定されてもよい。例えば、バッテリ充電は、ポリヒューズを有するポートのためにサポートされなくてもよい。バッテリ充電は、ポート電力スイッチまたはＩ２Ｃ  ＬＩＮＸポートのいずれかを有する、ポート上のみでサポートされてもよい。
【００２２】
システム設計者は、ポートを有効にする前に、正しいサイズのポート電力コントローラを使用するように要求される。
【００２３】
ポートタイプを識別する
ポートの識別は、図１に示されるように、周辺入出力ポート１２０内の周辺入出力（ＰＩＯ）モードで利用可能な内部プルダウン抵抗器１２７を利用する。そのようなポート１２０は、マイクロコントローラまたは集積回路デバイスの典型的な入出力（Ｉ／Ｏ）ポートであり、概して、８ビットまたは１６ビット幅であるように組織化される。しかしながら、より多いまたは少ないビットが、Ｉ／Ｏポートのために提供されてもよい。プルダウン抵抗器１２７の抵抗値は、概して、３０Ｋ〜８０Ｋの間で変動する。具体的実施形態によると、ポート電力スイッチは、外部ピン１１０にアタッチされた抵抗器を有さないであろう。ＬＩＮＸポートは、上記で議論されるように、ポート１１０に接続されたＩ２Ｃのために必要に応じて１０Ｋプルアップ抵抗器１３０を有するであろう。ポリヒューズは、５ボルトＶＢＵＳを３．３Ｖレベルまで引き下げるように、ポート１１０に接続された抵抗分割器１３０／１４０を有するであろう。本ポートに必要とされるであろう抵抗分割器は、１０Ｋプルダウン抵抗器１４０を伴う１０Ｋプルアップ抵抗器１３０であり得る。
【００２４】
内部の弱いプルダウン抵抗器１２７がピン１１０をプルダウンできない場合には、プルダウン抵抗器１２７よりはるかに強い外部プルアップ抵抗器１３０が存在する。プルアップが検出される場合には、例えば、同一のプルダウンまたはプルアップ抵抗器を使用しなければならないポート構成を区別するように、接続されたデバイスへのアクセスが行われてもよい。例えば、ポリヒューズとＬＩＮＸインターフェースとを区別するように、ＬＩＮＸデバイスへのアクセスが行われてもよい。
【００２５】
種々の実施形態によると、例えば、４ポートＵＳＢハブの場合に、構成を識別するために、４つのポートは、非複合モードにされる。図１は、出力有効化機能を伴うデータ出力ドライバ１２１と、有効化機能を伴うデータ入力ドライバ１２３とを有する、典型的なマイクロコントローラＩ／Ｏポート１２０を示す。加えて、それぞれの制御信号を通して、プルアップ抵抗器１２５またはプルダウン抵抗器１２７を起動することができる。
【００２６】
プルダウン抵抗器１２７は、対応するＰＩＯ１２０のプルダウン有効化制御信号「プルダウン有効化」を使用して、関連ポートピン１１０に適用される。次いで、それぞれのポート１１０のピン入力が、有効にされた入力ドライバ１２３からそれぞれの値を読み取ることによって判定される。これによって、どのピンがプルアップを有し、どれが有していないかを識別することができる。
【００２７】
種々の実施形態によると、集積回路デバイスの外部ピンが、構成に使用されてもよく、例えば、６つの値のうちの１つに外部から符号化することができる。値は、図１に示されるような外部抵抗器１３０および１４０によって判定される。
【００２８】
実施形態によると、抵抗器オプションは、２００ＫΩプルダウン、２００ＫΩプルアップ、１０ＫΩプルダウン、１０ＫΩプルアップ、１００Ωプルダウン、１００Ωプルアップである。内部プルダウンおよびプルアップは、例えば、５０ＫΩの公称値を有する。しかしながら、他の値が適用されてもよく、外部抵抗器は、最適化された動作のために異なる値を有してもよい。例えば、最小抵抗は、一実施形態によると、それぞれのドライバが１００Ω抵抗器より優先することができないドライバ強度を有する場合に、１０Ωの公称値を有してもよい。他の実施形態は、それぞれの内部ドライバならびに内部プルアップおよびプルダウン抵抗器に適合される、異なる値を使用してもよい。
【００２９】
次いで、ファームウェアは、入力値を監視し、順番に、内部プルダウン抵抗器、次いで、内部プルアップ抵抗器を適用し、次いで、０を駆動し、次いで、１を駆動し、最終的に、トライステートを出力することによって、外部抵抗器の値を判定する。いずれの場合も、入力値が記録される。次いで、判定された入力値を使用して、ベクトルを作成することができる。実施形態によると、これは、６つの異なるベクトルまたは符号化値をもたらし得る。次いで、ベクトルは、特定の構成を指し示す際に使用することができる。表１は、ピンに適用される異なるプルアップまたはプルダウン抵抗器の値を読み出すことの実施例を示す。それぞれのピンの特定の機能のために選択される、それぞれの抵抗値は、値がその機能の最適な性能を可能にするように選択されてもよい。各ビット／ステップ「ＰＵＬＬ  ＤＯＷＮ」、「ＰＵＬＬ  ＵＰ」、「ＤＲＩＶＥ  ０」、「ＤＲＩＶＥ  １」、および「ＴＲＩ＿ＳＴＡＴＥ」の判定は、任意の順序で行われてもよい。いくつの異なるベクトル／符号化値が必要とされるかに応じて、ビット／ステップの全てが使用されなくてもよい。
【表１】
0006504715.tif 000002
【００３０】
したがって、機能性がそれぞれのプルアップまたはプルダウン抵抗器による影響を受けない、または有意に改変されない場合がある、単一のデジタルポートを用いて、複数の異なる構成値を選択することができる。それに応じて、それぞれのプルアップまたはプルダウン値を選択することができる。以下で議論されるようなマイクロコントローラは、そのようなポートを有してもよく、複数のそのようなポートは、所望の機能に従って、具体的には、接続されたデバイスに従って、構成を必要とする外部多機能ピンと接続される。
【００３１】
以下は、ＣＰＵ２３０および関連メモリ２４０ならびに複数の統合周辺デバイス２５０、２６０を備える、ＵＳＢハブコントローラ２１０の具体的実施例について議論する。コントローラ２１０は、本開示の種々の実施形態による、そのポートの構成を必要とするファームウェアを伴うマイクロコントローラであり得る。デジタルプロセッサ２３０は、それぞれのそのポートと連結され、プルアップまたはプルダウン機能、データ方向、トライステート、シリアルインターフェース、タイマ、アナログ・デジタル変換器等の他の周辺デバイスへの接続を有効にすること等のある機能性を設定するために、１つまたはそれを上回るビットを使用し得る、特殊機能レジスタを使用して、各ポートを構成するように動作可能であり、特殊機能レジスタは、デジタルプロセッサ２３０への容易なアクセスを提供するように、メモリ２４０にメモリマップすることができる。
【００３２】
一実施形態によると、プルアップを有することは、ポートが、例えば、ＬＩＮＸインターフェースの場合のように、ピン１１０に接続されたプルアップ抵抗器を有するか、またはポリヒューズ用のプルアップを有するかのいずれかであることを意味する。実施形態によると、例えば、４つのポートを伴うＵＳＢハブでは、３つだけの有効な組み合わせがあり得る。例えば、全てのポートがプルアップを有する、またはいかなるポートもプルアップを有していない、またはポート１から３がプルアップを有し、ポート４が有していない。次いで、全ての他の組み合わせは、初期設定で４つのポリヒューズを伴う構成になる。
【００３３】
実施形態によると、再度、４つのポートを伴うＵＳＢハブの場合、コントローラの個別ＰＩＯをそれぞれのＵＳＢポートにマップするために、以下に示されるように表２を使用することができる。示されたＰＩＯは、利用可能なポートの実施例にすぎない。他のポートも、他の目的で提供されて使用されてもよい。コントローラ内のファームウェアは、本明細書で開示される種々の実施形態によると、必要に応じて各ポートを自動的に構成するように設計されてもよい。
【表２】
0006504715.tif 000003
【００３４】
１つのシステムにつき１つのポリヒューズは、ここでは議論されない。１つだけのポリヒューズを使用するシステムについては、ポリヒューズは、上流ポートにアタッチされてもよい。発生する任意の過電流感知（ＯＣＳ）事象は、システム全体をリセットし、ハブが行ういかなることとも無関係である。ＯＣＳ事象後に、ハブ全体は、列挙サイクルを経る。表３は、４つのポートを伴うＵＳＢハブ用のプルアップ抵抗器を使用する、可能な符号化を示す。本実施形態では、限定数の構成は、プルアップ抵抗器、具体的には、同一の値を伴うプルアップ抵抗器のみを使用することを可能にする。
【表３】
0006504715.tif 000004
【００３５】
ポート電力スイッチのみのポート制御
ポートのうちのいずれかの上にプルアップがない場合には、ポートは、１つのポートにつき１つのポート電力スイッチがある。この状況では、全てのポートが複合モードにされる。図２は、ポートスイッチのみを使用するポート電力制御システム２００を示す。ＵＳＢコントローラ２１０は、図１に示されるように、それぞれのＩ／Ｏポート１２０と連結される、４つの外部多機能ピン２０５ａ．．ｄを有する。多機能ピン２０５ａ．．ｄは、図２に示されるように３つの機能のうちの１つであり得る。例えば、ピン２０５ａは、ポート制御機能、過電流感知機能、またはＬＩＮＸインターフェースのデータラインをサポートする。ピン２０５ｂは、ポート制御機能、過電流感知機能、またはＬＩＮＸインターフェースのクロックラインをサポートする。ピン２０５ｃは、ポート制御機能、過電流感知機能、またはＬＩＮＸインターフェースの信号内アラート機能をサポートする。ピン２０５ｄは、ポート制御機能、過電流感知機能、または連動電力制御機能をサポートする。しかしながら、他の実施形態によると、より多いまたは少ない機能が適用されてもよい。本実施例では、本構成を画定するように、いかなる抵抗器もポートに接続されない。
【００３６】
ポリヒューズを伴うＬＩＮＸポート
ポート１、２、３、および４が全てプルアップ抵抗器を有する場合、２つの可能性がある。すなわち、ラインのうちの３つの上のＬＩＮＸポートおよび第４のライン上のポリヒューズがあるか、または４つのポリヒューズのみがある。ＬＩＮＸインターフェース上の検出が行われる。アドレス０ｘ３０、または０ｘ３１、または０ｘ３２、または０ｘ３３で応答がある場合には、ＬＩＮＸデバイスが存在している。ポート１＝０ｘ３０、ポート２＝０ｘ３１、ポート３＝０ｘ３３である。１〜４個のＬＩＮＸデバイスが存在し得る。それらは、順次的である必要はない。ＬＩＮＸデバイスを有していない全てのポートは、連動モードにされなければならない。例えば、ポート２および４がＬＩＮＸデバイスを有してない場合には、ＰＯＲＴ＿ＣＦＧ＿ＳＥＬ＿２およびＰＯＲＴ＿ＣＦＧ＿ＳＥＬ＿４の両方が、ＧＡＮＧ＿ＰＩＮセットを有していなければならない。ＣＯＭＢＩＮＥＤ＿ＭＯＤＥが、ポリヒューズにより解除される。図３は、２つのＬＩＮＸポート３１０、３２０およびポリヒューズ３３０を使用する、ポート電力制御システム３００を示す。抵抗器３４０、３５０、および３６０が、示されるようなそれぞれのコントローラポートをプルアップするために使用される。抵抗分割器３７０および３８０が、４つのポートをポリヒューズとして構成するために使用される。図４は、３つのＬＩＮＸポート３１０、３２０、および４１０、ならびに１つのポリヒューズ３３０を使用する、ポート電力制御システム４００を示す。
【００３７】
ポリヒューズのみのポート電力制御
ポート１、２、３、および４が全てプルアップ抵抗器を有し、ＬＩＮＸデバイスが検出されなかった場合には、全てのポートは、ポリヒューズ５１０、５４０、５７０、および３３０のみを使用するポート電力制御システム５００を示す、図５に示されるように、ポリヒューズを有する。各ポートは、抵抗分割器５２０／５３０、５５０／５６０、５８０／５９０、および３７０／３８０と接続される。以下が行われてもよい。
１．Ｉ２Ｃインターフェースを無効にする。
２．全てのポートを非複合モードに設定する。全てのポートを非複合モードに設定することによって、ポート電力出力が無視され、ピンがＯＣＳのみになる。
３．ＧＡＮＧ＿ＰＩＮが全てのレジスタで解除される。
本構成では、全てのピンが過電流感知ピンとして使用される。
【００３８】
ポート電力スイッチを伴うＬＩＮＸポート
ポート１、２、および３が全てプルアップ抵抗器を有し、ポート４が有していない場合、ＬＩＮＸインターフェースがあり、残りのポートがポート電力スイッチを使用することを意味する。ＬＩＮＸインターフェース上で検出を行う。アドレス０ｘ３０、または０ｘ３１、または０ｘ３２、または０ｘ３３で応答がある場合には、現在、ＬＩＮＸデバイスがある。ポート１＝０ｘ３０、ポート２＝０ｘ３１、ポート３＝０ｘ３３である。１〜４個のＬＩＮＸデバイスが存在し得る。それらは、順次的である必要はない。ＬＩＮＸデバイスを有していない全てのポートは、連動モードにされなければならない。例えば、ポート１が唯一のＬＩＮＸデバイスである場合には、ＰＯＲＴ＿ＣＦＧ＿ＳＥＬ＿２、ＰＯＲＴ＿ＣＦＧ＿ＳＥＬ＿３、およびＰＯＲＴ＿ＣＦＧ＿ＳＥＬ＿４の両方が、ＧＡＮＧ＿ＰＩＮセットを有していなければならない。ＣＯＭＢＩＮＥＤ＿ＭＯＤＥが、ポート電力スイッチの存在により、設定されなければならない。
【００３９】
図６は、２つのＬＩＮＸデバイスおよびポート電力コントローラの実施例として、２つのＬＩＮＸポート３１０、３２０およびポート電力スイッチ６１０を伴うシステム６００を示す。図７は、１つのＬＩＮＸポート３１０および１つのポート電力スイッチ６１０を伴うシステム７００を示す。
【００４０】
ＬＩＮＸのみのポート構成
ＬＩＮＸデバイスがアタッチされる場合には、ポート１、２、および３は全てプルアップ抵抗器を有していなければならない。アタッチされた４つのＬＩＮＸデバイスがある場合には、ポート４は使用されないであろう。これは、完全ＬＩＮＸシステムであり、ポート４上の抵抗器の存在は、重要ではない。完全ＬＩＮＸシステムについては、ＣＯＭＢＩＮＥＤ＿ＭＯＤＥの状態、種々のレジスタ用のＧＡＮＧ＿ＰＩＮは、違いを生じさせない。全てがＬＩＮＸインターフェースを通して行われる。ファームウェアは、ポートをオンおよびオフにすることと、ＯＣＳ事象を管理することとに責任を負う。４つ未満のＬＩＮＸデバイスがアタッチされている場合、残りの非ＬＩＮＸデバイスは、ポート４を使用して連動モードでアタッチされる。ポート４上に抵抗器がある場合には、非ＬＩＮＸデバイスは、ポリヒューズデバイスとアタッチされると仮定され、ＣＯＭＢＩＮＥＤ＿ＭＯＤＥで使用されなければならない。ポート４上に抵抗器がない場合には、非ＬＩＮＸデバイスは、ポート電力コントローラとアタッチされると仮定される。ＣＯＭＢＩＮＥＤ＿ＭＯＤＥが使用されなければならない。図８は、４つのＬＩＮＸポート３１０、３２０、７１０、および７２０のみを伴うシステム８００を示す。
【図１】
0006504715.tif 000005
【図２】
0006504715.tif 000006
【図３】
0006504715.tif 000007
【図４】
0006504715.tif 000008
【図５】
0006504715.tif 000009
【図６】
0006504715.tif 000010
【図７】
0006504715.tif 000011
【図８】
0006504715.tif 000012