(57)【要約】  コントロールユニット（１１）と、サブモジュール（１２、１３）を取り付け／接続するための複数のスロット（１５）と、コントロールユニット（１１）を、スロット（１５）に取り付け／接続されたサブモジュール（１２、１３）と相互接続するための  手段（１５、１６、１７）と、を備える電子装置（１０）である。コントロールユニット（１１）は、サブモジュール（１２、１３）をバイパスモードにし、サブモジュール（１２、１３）から識別情報を読み込み、少なくとも１つの前記サブモジュール（１２、１３）へ、パラメータを書き込み、および／または、少なくとも１つの前記サブモジュール（１２、１３）から、パラメータを読み込み、電子装置（１０）のコンフィギュレーションが、サブモジュール（１２、１３）の追加または取り外しにより、変更されているかどうかを再チェックする、ためのコマンドを発行することができる。【特許請求の範囲】
【請求項１】
コントロールユニットと、サブモジュールを取り付け／接続するための複数のスロットとを備える電子装置の自動コンフィギュレーションのための方法であって、
ａ）ＪＴＡＧコマンドを、前記コントロールユニットから前記サブモジュールへ、与えることにより、前記サブモジュールから識別情報を読み込み、
ｂ）ＪＴＡＧコマンドを、前記コントロールユニットから前記サブモジュールへ、与えることにより、１つ以上の前記サブモジュールに、パラメータを書き込みおよび／または読み込み、
ｃ）前記電子装置のコンフィギュレーションを定期的に再チェックして、前記コンフィギュレーションが変更されたかどうかを検出し、
ｄ）コンフィギュレーションの変更が検出された場合に、上述のステップのいくつかまたはすべてを繰り返す、
ステップを含むことを特徴とする方法。
【請求項２】
前記ステップａ）は、
前記コントロールユニットから、ＪＴＡＧコマンドを、第１サブモジュールへ送信して、前記第１サブモジュールをバイパスモードにし、
先のステップを、１つを除くすべてのサブモジュールがバイパスモードになるまで繰り返し、
識別情報を、バイパスモードでない１つの前記サブモジュールから、読み込み、
前記コントロールユニットから、ＪＴＡＧコマンドを、バイパスモードでない１つの前記サブモジュールへ送信して、これをバイパスモードにし、
前記コントロールユニットから、ＪＴＡＧコマンドを、他のサブモジュールへ送信して、バイパスモードを解除し、
識別情報を、バイパスモードでない他の前記サブモジュールから、読み込み、
先のステップを、すべてのサブモジュールの前記識別情報が識別されるまで、繰り返す、
ことにより実行される、ことを特徴とする請求項１に記載の方法。
【請求項３】
前記コンフィギュレーションの前記再チェックは、前記パラメータを１つ以上の前記サブモジュールに書き込んだ後に、前記パラメータを読み込むことによって行われる、ことを特徴とする請求項１または２に記載の方法。
【請求項４】
前記ＪＴＡＧコマンドは、前記コントロールユニットによって、前記サブモジュールをコントロールするために用いられる、ことを特徴とする請求項１、２、または３に記載の方法。
【請求項５】
ＪＴＡＧ  ＢＹＰＡＳＳコマンドが、前記コントロールユニットにより発行されて、前記サブモジュールを前記バイパスモードにする、ことを特徴とする請求項２との組み合わせにおける請求項４に記載の方法。
【請求項６】
ＪＴＡＧ  ＩＤＣＯＤＥコマンドが、前記コントロールユニットにより発行されて、前記識別情報を、前記バイパスモードでないサブモジュールから読み込む、ことを特徴とする請求項２との組み合わせにおける請求項３に記載の方法。
【請求項７】
いずれのＪＴＡＧ命令も、いくつかまたはすべてのサブモジュールによって並列に実行可能であることを特徴とする請求項１、２、３または４に記載の方法。
【請求項８】
電子装置であって、
コントロールユニットと、
サブモジュールを取り付け／接続するための、複数のスロットと、
前記コントロールユニットを、前記スロットに取り付け／接続されたサブモジュールに相互接続するための手段と、
を備え、
前記コントロールユニットは、
前記サブモジュールを、バイパスモードにし、
識別情報を、サブモジュールから読み込み、
少なくとも１つの前記サブモジュールに、パラメータを書き込み、および／または、少なくとも１つの前記サブモジュールから、パラメータを読み込み、
当該電子装置の前記コンフィギュレーションが、サブモジュールの追加または取り外しにより変更されているかどうかを再チェックする、
ためのコマンドを発行することができる、ことを特徴とする電子装置。
【請求項９】
前記電子装置は、少なくとも１つのサブモジュールをさらに備えることを特徴とする請求項８に記載の電子装置。
【請求項１０】
前記サブモジュールは、前記コントロールユニットによりコントロール可能なスレーブコントローラを備え、前記スレーブコントローラは、好ましくは標準ＪＴＡＧ状態マシンを備える、ことを特徴とする請求項９に記載の電子装置。
【請求項１１】
前記コントロールユニットは、マスタコントロールプロセッサを備えることを特徴とする請求項８に記載の電子装置。
【請求項１２】
前記マスタコントロールプロセッサは、状態マシンを備えることを特徴とする請求項１１に記載の電子装置。
【請求項１３】
前記スロットは、テストアクセスポート（ＴＡＰ）コネクタを備えることを特徴とする請求項８乃至１２のいずれかに記載の電子装置。
【請求項１４】
前記スロットは、各前記スロットにサブモジュールが取り付けられていない時に、直列に接続可能な、入力ピンおよび出力ピンを有するコネクタを備えることを特徴とする請求項８乃至１２のいずれかに記載の電子装置。
【請求項１５】
前記コントロールユニットは、ソフトウェア、ハードウェア、またはソフトウェアとハードウェアの組み合わせ、において実行されることを特徴とする請求項８に記載の電子装置。
【請求項１６】
個人用携帯型情報端末（ＰＤＡ）、または携帯電話、またはコンピュータ端末、またはハンドヘルドコンピュータ、またはカメラ、またはマルチメディア機器、または家電機器、またはＤＥＣＴ装置、として機能することを特徴とする請求項８乃至１５のいずれかに記載の電子装置。
【請求項１７】
前記サブモジュールは、ＧＳＭ／ＵＭＴＳモデム、またはＭＰ３プレイヤー、またはＦＭラジオ、またはＰＤＡ、またはカラーディスプレイ、またはキーボード、であることを特徴とする請求項１６に記載の電子装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、サブモジュールを取り付けることによって拡張または変更可能な電子装置の、自動コンフィギュレーションに関する。本発明は特に、携帯型電子装置に関する。
【背景技術】
【０００２】
サブモジュールを取り付けることにより、必要に応じて拡張、変更、または適合が可能な、数多くの電子装置が存在する。特に、ハンドヘルド装置および家電機器は、基本システムを拡張するオプションが提示される場合、または、基本コンフィギュレーションの装置が提示する以上の機能を、ユーザが追加可能な場合、より魅力的なものとすることができる。
【０００３】
ハンドヘルド電話、例えば、ＧＳＭ電話は、２つ例を挙げると、ＭＰ３機能またはラジオチューナを追加することにより、変更することが可能である。ほとんどの個人用携帯型情報端末（PDA: personal digital assistant）は、非常に小さいキーボードを有する。必要なときに、より大きなキーボードの取り付けが可能であれば、ＰＤＡは、ほとんど通常のパーソナルコンピュータ並に使用することができる。同様に、例えば、カメラやいくつかのスピーカを取り付けることにより、マルチメディア機能を追加することができる。
【０００４】
重要な課題は、サブモジュールの差し込みまたは取り外しの度に必要となる、再コンフィギュレーションである。再コンフィギュレーションは、ユーザが最初にマニュアルを読まずとも実行できるような、分かりやすくて信頼性の高いものでなければならない。いくつかのパーソナルコンピュータおよび同様のシステムは、プラグアンドプレイ（plug-and-play）と呼ばれる機能を有する。プラグアンドプレイは、基本的に、モジュール（例えば、ＰＣＩアダプタカード、周辺機器等）を、ハードウェアおよびソフトウェアコンフィギュレーションの問題について心配せずに、差し込むことが可能であることを意味する。コンピュータは、新しいモジュールを検出し、所与の環境に自動的に組み込むことができる。
【０００５】
ＪＴＡＧは、集積回路（ＩＣ）またはボードテストのために特別に設計され、使用されているプロトコルである。ＪＴＡＧの詳細は、ＩＥＥＥ規格１１４９．１−１９９０において定義されている。基本的に、ＪＴＡＧの実施は、ＪＴＡＧマスタ（ＪＴＡＧコントローラとも呼ばれる）と、少なくとも１つのＪＴＡＧスレーブからなる。ＪＴＡＧマスタは、ＪＴＡＧスレーブをコントロールおよびテストするためのＪＴＡＧ命令を発行する。
【０００６】
我々の知る限りでは、挿入可能または取り外し可能なサブモジュールを有する電子装置の自動コンフィギュレーションのためのプロトコルは、現在、存在しない。
【発明の開示】
【発明が解決しようとする課題】
【０００７】
本発明の目的は、従って、コンフィギュレーションが自動的に実行される、サブモジュールの取り付けによって拡張／変更可能な電子装置を提供することである。
【０００８】
本発明の目的は、従って、サブモジュールの取り付けまたは取り外し後の、電子装置の自動コンフィギュレーションのための方法を提供することである。
【課題を解決するための手段】
【０００９】
本発明に係る方法は、請求項１に請求されている。
【００１０】
さまざまな有益な方法が、請求項２から７に請求されている。
【００１１】
本発明に係る装置は、請求項８に請求されており、さまざまな有益な実施形態が、請求項９から１７に請求されている。
【００１２】
本発明によると、標準ＪＴＡＧプロトコル（ＩＣまたはボードテストのために設計されたプロトコル）が、コンフィギュレーション目的のために使用される。ＪＴＡＧプロトコルは、コントロールユニットと、サブモジュールを取り付け／接続するための複数のスロットとを備える電子装置の自動コンフィギュレーションのために用いられる。コンフィギュレーションは、サブモジュールからの識別情報の読み込み、１つ以上のサブモジュールへの、パラメータの書き込みおよび／または読み込み、電子装置のコンフィギュレーションの定期的な再チェックによる、コンフィギュレーションが変更されたかどうかの検出、コンフィギュレーションの変更が検出された場合に、これらのステップのいくつかまたはすべてを繰り返す、ことにより実行することができる。
【００１３】
本発明に係る装置は、コントロールユニットと、サブモジュールを取り付け／接続するための複数のスロットと、コントロールユニットを、スロットに取り付け／接続されたサブモジュールに相互接続するための手段とを備える。コントロールユニットは、サブモジュールをバイパスモードにし、サブモジュールから識別情報を読み込み、少なくとも１つのサブモジュールへパラメータを書き込み、および／または、少なくとも１つのサブモジュールからパラメータを読み込み、電子装置のコンフィギュレーションが、サブモジュールの追加または取り外しにより変更されているかどうかの再チェックする、ためのコマンドを発行することができる。
【発明を実施するための最良の形態】
【００１４】
本発明の他の利点を、詳細な実施形態と関連させて説明する。
【００１５】
本発明のさらに完全な説明、および、さらなる目的と利点のために、付属の図面と併せて、以下の説明を参照する。
【００１６】
本文脈において、電子装置という表現は、個人用携帯型情報端末（ＰＤＡ）、携帯電話、コンピュータ端末、ハンドヘルドコンピュータ、カメラ、マルチメディア機器、家電機器、ＤＥＣＴ装置、等を表わす。また、この列記は、完全なものではない。
【００１７】
サブモジュールの例としては、ＧＳＭ／ＵＭＴＳモデム、ＭＰ３プレイヤー、ＦＭラジオ、ＰＤＡ、カラーディスプレイ、キーボード、等が挙げられる。また、この列記は、完全なものではない。
【００１８】
本発明に従う電子装置１０は、図１および２に示すように、メインコントロールプロセッサ１１と、いくつかの取り付け／取り外し可能なサブモジュール１２、１３とを備える。電子装置１０のメインボード１４は、サブモジュール１２、１３の取り付けおよび取り外しを可能にするコネクタ１５等を備える。バス構造、および、いくつかの相互接続が、コネクタ１５をコントロールプロセッサ１１に相互接続する。本実施形態においては、ループ相互接続１６が、ＪＴＡＧ規格により規定されているように、ＴＤＩおよびＴＤＯデータピンを直列接続する閉ループを形成する。空きスロット（サブモジュールが差し込まれていないスロット）がある場合、ループは、ＴＤＩデータピンおよびＴＤＯデータピンを接続することにより、閉じられる。これら２つのピンに加えて、コネクタ１５は、電子装置１０で実行されるアプリケーションにより使用されるピン（アプリケーション接続１７と呼ばれる）を備えることができ、また、ＪＴＡＧ規格により定義されている、ＴＡＰピンおよびＴＡＰ接続１８を備えることができる。
【００１９】
システムハードウェアコンフィギュレーションは、所望のアプリケーションに応じて、電源を入れる前、またはアプリケーションの実行中に、新しいサブモジュールを挿入することにより、ユーザによって変更が可能である。図１では、電子装置１０は、１つのサブモジュール１２のみを備えたコンフィギュレーションで示されている。２つの空きスロットがあり、ＴＤＯおよびＴＤＩピンが直列接続されている。図２では、同一の装置１０が示されている。第２サブモジュール１３が、取り付けられている。電子装置１０のメインアプリケーションを実行しているコントロールプロセッサ１１は、このシステムコンフィギュレーションの変更を、オンザフライで検出することができる。サブモジュールを、コネクタに挿入して、システムのコンフィギュレーションを変更できる。コントロールプロセッサ１１は、例えば、電話アプリケーションまたはＰＤＡアプリケーションといった、メインアプリケーションハードウェアおよびソフトウェアをサポートできる。コントロールプロセッサ１１は、各サブモジュール１２、１３のスレーブＪＴＡＧ２０を直列にアクセスできる、マスタＪＴＡＧコントローラ１９の機能を備える。これは、接続されたサブモジュール１２、１３の存在およびタイプを検出し、適宜に、アプリケーションソフトウェアを適合させる。サブモジュール１２、１３は、スレーブＪＴＡＧコントローラ２０に加えて、アプリケーションに特定のハードウェアおよびソフトウェア（図１および２には図示せず）を備える。
【００２０】
本発明によると、標準ＪＴＡＧプロトコルを用いて、サブモジュール１２、１３の接続および取り外しのリアルタイムでの検出、ならびに、各サブモジュール１２、１３へのいくつかのパラメータの読み込みおよび書き込みを行う。
【００２１】
本実施形態においては、コネクタ１５は、少なくとも４つのピンを備えたＪＴＡＧコネクタであり、これらのピンは、ＴＭＳ、ＴＤＩ、ＴＤＯ、ＴＣＬＫ、および、任意のピンとしてＴＲＳＴ＿Ｎ、のテストアクセスポート（Test Access Port: TAP）ピンと互換性がある。他のピンは、例えば、メモリまたはデータ用のデータおよびアドレスバス、および、キーボード用のコントロールバスとして、アプリケーションにより使用可能である。ＪＴＡＧコネクタ１５は、メインボード１４上で直列にリンクされている。コネクタ１５が使われていない場合、ピンＴＤＩおよびＴＤＯは、機械的または電気的にショートされる。サブモジュールが挿入されると、ピンＴＤＩ、ＴＤＯは、スレーブＪＴＡＧコントローラ２０の各ピンに接続される。ラインＴＣＫ、ＴＭＳ、ＴＲＳＴ＿Ｎは、すべてのサブモジュール１２、１３に対して共通である。ＪＴＡＧ規格は、スレーブＪＴＡＧコントローラ２０をリセットする他の方法をサポートしているため、ＴＲＳＴ＿Ｎピンは、取り除くことができる。
【００２２】
サブモジュール１２の例を、図３に示す。各サブモジュールは、データレジスタ２１に格納される、特定の（好ましくは固有の）識別子ＩＤＣＯＤＥを有する。この、３２ビットでコード化された識別子は、ＪＴＡＧ規格と互換性を持つことができる。これは、バージョンナンバや、アプリケーションに使用される他のパラメータを含むことができ、これらは、ＴＡＰコネクタ１５を通して読み込むことができる。この方法では、コントロールプロセッサ１１は、どのサブモジュールが電子装置１０に接続されているかを、既知の識別子ＩＤＣＯＤＥが検出されるまで、必要なだけ多くのビットをスキャンインすることにより、検出できる。通常、同一の概念が、すべてのコンポーネントが存在し、かつ、正しいタイプであるかどうかをチェックする際の、外部のテスト機器によるボードテストにも適用される。
【００２３】
サブモジュールは、標準ＪＴＡＧコントローラ２０を備え、この標準ＪＴＡＧコントローラ２０は、サブモジュール１２上のスタンドアロンチップとして、または、サブモジュール１２のチップ内に統合して、実現される。
【００２４】
スレーブＪＴＡＧコントローラ２０は、ＪＴＡＧ（Join Test Action Group）規格に基づいている。ＪＴＡＧ規格の詳細な説明は、ＩＥＥＥ標準テストアクセスポートおよびバウンダリスキャンアーキテクチャ（IEEE Standard Test Access Port and Boundary-Scan Architecture）、ＩＥＥＥ規格１１４９．１−１９９０に記載されている。ＪＴＡＧハードウェアは、テストアクセスポート（ＴＡＰ）２２、ＪＴＡＧサブモジュール１２に送られるコマンドを解釈するＴＡＰコントローラ（ＴＡＰＣ）２３、命令レジスタ（ＩＲ）２４、およびテストデータレジスタ（ＴＤＲ）２５のグループ、を備える。ＩＤＣＯＤＥは、ＴＤＲ２５の１つ、すなわちレジスタ２１に格納される。すべてのレジスタは、シフトレジスタにキャプチャすることができ、ＴＤＯポート２６へシフトアウトするか、またはＴＤＩポート２７よりシフトインされた値からアップデートされる。
【００２５】
本実施形態においては、ＴＡＰ２２は、次のピンを備える。
【００２６】
ＴＣＫ（Test clock）：２０ＭＨｚの範囲で動作し、アプリケーションクロックから独立したＪＴＡＧクロックである。
【００２７】
ＴＤＩ（Test Data Input）２７：ＪＴＡＧコントローラ２０内のシリアル入力であり、ＴＣＫの立ち上がりエッジにおいてサンプルされる。
【００２８】
ＴＤＯ（Test Data Output）２６：ＪＴＡＧコントローラ２０のシリアル出力であり、ＴＣＫの立ち下がりエッジにおいてサンプルされる。
【００２９】
ＴＭＳ（Test Mode Select）２８：ＴＡＰＣ２３のコントロールに使用され、ＴＣＫの立ち上がりエッジにおいてサンプルされる。
【００３０】
ＴＲＳＴ＿Ｎ（Test Reset）：ＴＡＰＣ２３の任意の非同期リセットである。
【００３１】
好ましくは、ＴＡＰコントローラ２３は、図４に示す次の有限状態マシン（Finite State Machine: FSM）の動作に従い、すべてのトランザクションがＴＭＳ入力２８の状態によってコントロールされる。図４では、以下の表現が使用される。
【００３２】
キャプチャ：レジスタをシフトレジスタにおいてコピーする。
【００３３】
アップデート：シフトレジスタをレジスタにコピーする。
【００３４】
Ｕｐｄａｔｅ＿ＩＲ状態に再度到達するまで、命令はアクティブのままである。
【００３５】
状態マシンのさらに詳細な説明は、上述のＩＥＥＥ規格、および、米国特許６，０００，０５１に記載されており、両者は参考のために引用される。
【００３６】
ＴＡＰコントローラ２３は、命令レジスタＩＲ２４をアップデートする。次に、各命令が実行され、標準テスト手順を初期化、または、いくつかのデータレジスタＴＤＲ２５を、ＴＤＩ入力２７とＴＤＯ出力２６の間で接続することができ、これらを、ループ１６およびコントロールプロセッサ１１を介してスキャンインまたはスキャンアウトする。
【００３７】
標準ＪＴＡＧ命令は、次の通りである。
【００３８】
ＩＮＴＥＳＴ：テストに使用される。
【００３９】
ＥＸＴＥＳＴ：テストに使用される。
【００４０】
ＳＡＭＰＬＥ／ＰＲＥＬＯＡＤ：テストに使用される。
【００４１】
ＢＹＰＡＳＳ（ロジック“１”へのすべてのセットにおけるＩＲレジスタ２４）：この命令は、ＢＹＰＡＳＳレジスタ２８を、ＴＤＩ２７とＴＤＯ２６の間で接続する。
【００４２】
ＩＤＣＯＤＥ：この命令は、サブモジュール１２の識別コードを、ＴＤＩ２６とＴＤＯ２７の間で接続する。
【００４３】
実行を簡易化するために、次の制限を持つことが好ましい。すべてのサブモジュールＪＴＡＧ命令レジスタは、Ｎｉｎｓｔｒ＿ｌｅｎｇｔｈビット（例えば、６ビット）と同一の長さを持ち、これにより、Ｎｉｎｓｔｒ＿ｌｅｎｇｔｈを、パワー２の命令にコード化することができる。シンプルなスキームでは、各命令（標準の命令を除く）は、各サブモジュール１２、１３に含まれる特別なＴＤＲレジスタ２５の１つを、アドレスすることができる。異なる長さの命令レジスタを有するスキームが開発可能であるが、これは、コンフィギュレーション検出をより複雑にする。本発明の本実施形態のために、いくつかのアプリケーションデータレジスタＴＤＲ２５が、リセット時、または、サブモジュール１２、１３のパラメータによる動作中に初期化され、コントロールプロセッサ１１によって読み込まれる。同一または他のレジスタを書き込んで、サブモジュール１２、１３のコンフィギュレーションパラメータを設定することができる。これらのデータレジスタ２５にアクセスするために、新しいアプリケーション特定命令が、例えば次のように、標準の命令に追加される。
【００４４】
ＣＯＮＦＩＧ＿ＲＥＧｘ：ＴＤＩ２７とＴＤＯ２６の間の現在のサブモジュールのレジスタＲＥＧｘを接続する。キャプチャ、シフト、およびアップデートのアクションが実行可能である。
【００４５】
本発明によると、コントロールプロセッサ１１は、図５に示すように、特定のマスタＪＴＡＧコントローラ１９を備え、これは、サブモジュール１２、１３のスレーブＪＴＡＧコントローラ２０を監視する。標準のＪＴＡＧテスト環境（ＩＥＥＥ規格により指定されているような）においては、この機能は、テスト機器により行われる。マスタＪＴＡＧコントローラ１９は、以下に説明するように、マイクロプロセッサで実行しているソフトウェアにおいて、または、ハードウェアにおいて実行できる。
【００４６】
図５において、マスタＪＴＡＧコントローラ１９のマイクロプロセッサ実行が示される。マスタＪＴＡＧコントローラ１９は、マイクロプロセッサ２９で実行中のソフトウェアによって完全に実行される。マイクロプロセッサ２９は、ＴＤＯ、ＴＭＳ、ＴＲＳＴ＿Ｎのドライブ、および、ＴＤＩ入力の入力、が可能なパラレルポート３０を備える。マイクロプロセッサ２９は、電子装置１０のメインアプリケーション３１、例えば、携帯電話用の電話アプリケーションの実行に用いられるマイクロプロセッサと同一としてもよい。
【００４７】
マイクロプロセッサ２９で実行中のソフトウェアは、メインアプリケーション３１からパラメータ付きのコマンドを受信し、サブモジュール１２、１３からのパラメータ付きのシステムコンフィギュレーションを返す。この動作の詳細な説明は、次章で述べる。次のように、マイクロプロセッサ２９は、信号ＴＣＫ、ＴＭＳ、ＴＤＯ、ＴＲＳＴ＿Ｎのすべての波形を生成し、マスタ用のＪＴＡＧプロトコル（スレーブと比較して、逆のバイナリ極性）に従って、入力ＴＤＩの状態をサンプリングする。
【００４８】
ＴＤＯは、ＴＣＫの立ち下がりエッジにてトリガされる。
【００４９】
ＴＭＳは、ＴＣＫの立ち下がりエッジにてトリガされる。
【００５０】
ＴＤＩは、ＴＣＫの立ち上がりエッジにてトリガされる。
【００５１】
代わりに、ＪＴＡＧマスタコントローラ１９は、図６に示すように、完全にハードウェア内で実行可能である。このようなハードウェア実行の１つの実現可能なブロック図を、図６に示す。ＪＴＡＧマスタコントローラ１９は、以下を備える。
【００５２】
中央有限状態マシン（Finite State Machine: FSM）３２：アプリケーション３１からコマンドを受信し、ＪＴＡＧラインをコントロールする。状態ワードを、アプリケーション３１に、状態レジスタ３３を通して返す。これは、ソフトウェアまたはインタラプトの有効化によってポールすることができる。
【００５３】
アプリケーションインタフェース３４：アプリケーション３１による、ＦＳＭ３２のコントロール、および、パラレルバス３５を通した入力、出力レジスタの読み込み／書き込み、を可能にする。ビットＮｒの数は、好ましくは、マイクロプロセッサ３６のワード長と同一であり、例えば、ＩＤＣＯＤＥ長のように３２ビットである。また、例えば、フィリップスＩＩＣインタフェース、ＵＡＲＴまたは他の任意の標準シリアルインタフェースによる、シリアルアクセスも可能である。マイクロプロセッサ３６は、ＣＰＵ（例えば、電子装置１０の中央処理装置）としてもよい。
【００５４】
出力およびシフトレジスタ３７：アプリケーション３１は、出力レジスタ３７にワードをロードし、このワードは、ＦＳＭ３２のコントロール下で、ＴＤＯピン３８にシフトアウトされる。データは、ＴＤＯピン３８を介して、ＪＴＡＧスレーブ２０内にシフトアウトされる。
【００５５】
入力およびシフトレジスタ３９：アプリケーション３１は、ＦＳＭ３２のコントロール下で、ＴＤＩピン４０からシフトインされたワードを読み込むことができる。すなわち、ＪＴＡＧスレーブ２０からのデータが、ＴＤＩピン４０を介して受信される。データは、状態マシン３２によって直接読み込む（これは、相互接続４２を介して行われる）か、または、データは、シフトレジスタ３９を介して読み込むことができる。
【００５６】
すべてのブロックは、イベントがトリガされ、ＴＣＫの両方のエッジにおいて、他がサンプリングされるにつれて、ＴＣＫと比較した二重周波数のクロックによって、クロックされる。ＪＴＡＧピンのタイミングは、上述の引用文献において説明されている、マスタ用のＪＴＡＧプロトコルに従う。
【００５７】
以下のセクションでは、マスタ１９およびスレーブＪＴＡＧコントローラ２０の動作を説明する。このセクションは、これらのコントローラ１９および２０の動作に関する、より詳細な情報を提供する。
【００５８】
マスタＪＴＡＧコントローラ１９により行われる動作は、以下の通りである。
【００５９】
スレーブＪＴＡＧコントローラ２０のリセット：パワーアップの際、および、アプリケーションの実行中に、スレーブＪＴＡＧコントローラ２０がリセットされる。すべてのスレーブのリセットは、ピンＴＲＳＴ＿Ｎを有効化する、または、ＴＭＳを常にハイにし、ＪＴＡＧプロトコルに従ってＴＣＫをクロッキングすることのいずれかで、行うことができる。動作中に、システムコンフィギュレーションが定義されなければ、スレーブのリセットを行う必要がある。このリセットは、アプリケーション特定のデータレジスタに影響を与えない。
【００６０】
システムコンフィギュレーションのチェック：マスタコントローラ１９が、ＪＴＡＧコマンドをスキャンアウトし、接続されたサブモジュール１２、１３の数を検出するとともに、これらサブモジュール１２、１３の識別コード（識別情報）を探し出す。コンフィギュレーションは、例えば、パラメータのリストとして、メインアプリケーション３１へ返される。また、マスタコントローラ１９は、どのコネクタに、どのサブモジュール１２、１３が接続されているかについて学習する。チェックを、少なくとも２回繰り返し、サブモジュール１２、１３の差し込み、取り外しによる一時的な値が記録されていないことを確かめる。この動作を、アプリケーション３１の実行中に、好ましくは一定間隔（例えば２秒）で連続的に繰り返して、コンフィギュレーションの変更（サブモジュールの取り外し、サブモジュールの追加）を検出する。ＪＴＡＧプロトコルに従って、リセット後に、各スレーブのＩＤＣＯＤＥを、これらスレーブの命令レジスタ２４にロードする。Ｓｈｉｆｔ＿ＩＲ状態にあるすべてのスレーブＴＡＰＣコントローラ２０をドライブすることによって、マスタコントローラ１９内に、すべてのサブモジュール１２、１３のＩＤＣＯＤＥをスキャンインすることが可能である。ＳＴＡＲＴと呼ばれる特定のバイナリパターンを、マスタ１９からシフトアウトすることができる。シフト動作は、ＳＴＡＲＴパターンが、マスタ入力シフトレジスタ３９にて検出されるまで繰り返される。サブモジュール（Nmodules）の数、および、これらサブモジュールの、スキャンチェーンに沿った位置を、決定することが可能である。
【００６１】
サブモジュールのパラメータの読み込みまたは書き込み：マスタＪＴＡＧコントローラ１９が、専用のＪＴＡＧ命令により、定義されたサブモジュール１２または１３のＴＤＲにアクセスする。特定のサブモジュール１２のデータレジスタ２５を読み込むには、他のサブモジュール１３を、バイパス命令によってバイパスモードにし、このレジスタの読み込み命令によって、特定のモジュール１２をロードすれば十分である。次に、マスタＪＴＡＧコントローラ１９は、すべてのスレーブコントローラ２０を、状態Ｓｈｉｆｔ＿ＤＲにドライブし、データレジスタをシフトアウトする。シーケンスの長さは、各バイパスレジスタが、１ビットのみとして知られ、ＤＲレジスタの長さが、ＩＤＣＯＤＥ情報から推論される。いくつかのモジュールパラメータは、同一のシフトシーケンスで読み込むことができる。書き込み動作は、シーケンスをシフトインし、スレーブをＵｐｄａｔｅ＿ＤＲ状態にドライブすることによって行われる。この場合はまた、異なるモジュール内のいくつかのパラメータを、同一のシフトシーケンスで書き込むことができる。また、読み込みおよび書き込み動作も、同一のシフトシーケンスで行うことができ、まず、スレーブＦＳＭがＣａｐｔｕｒｅ＿ＤＲに行き、シフトが発生し、次にＵｐｄａｔｅ＿ＤＲが実行される。
【００６２】
サブモジュールの書き込み動作チェック：サブモジュール１２または１３に書き込みした後に、一方で、サブモジュール１２または１３が取り外されていないことをチェックすることが重要である。これを行うには、例えば、チェックコンフィギュレーションを再スタートするか、または、同一レジスタへの読み込みを実行する。
【００６３】
コントロールプロセッサ１１は、新しいサブモジュール１２または１３の挿入を検出すると、アプリケーションソフトウェア３１のパラメータを動的に変更する。例えば、キーボードが接続されると、電子メールは、電話キーボードでなく、このキーボードを通して入力される。大きなカラーディスプレイが差し込まれると、グラフィックがこのディスプレイへ転送され、画像解像度を調整する。これらすべてのコンフィギュレーション変更は、ユーザに対して透過であり、キーボードを通したサブモジュールタイプの宣言や、電子装置１０の再起動は、必要とされない。
【００６４】
ＪＴＡＧによる自動オンザフライコンフィギュレーションの１つの方法を、図７Ａおよび７Ｂとともに説明する。第１ステップにおいて、コントロールユニット１１が、ＪＴＡＧコマンドを第１サブモジュール１３に送信し、第１サブモジュール１３をバイパスモードにする。バイパスモードでは、参照番号４１で示すように、各サブモジュールのＴＤＩピンおよびＴＤＯピンが相互接続される。このステップは、１つのサブモジュール（図７Ａでは、サブモジュール１２）を除いて、他のすべてのサブモジュール（この場合、１つの他のサブモジュール１２のみ）が、バイパスモードになるまで繰り返される。すなわち、コントロールユニット１１は、１つを除くすべてのサブモジュールをバイパスモードにするために、ＪＴＡＧコマンドを、１つを除くすべてのサブモジュールに送信する。次に、識別情報が、バイパスモードでない１つのサブモジュール１２から読み込まれる（図７Ａを参照）。続くステップでは、コントロールユニット１１は、ＪＴＡＧコマンドを、バイパスモードでない１つのサブモジュール１２に送信し、これをバイパスモードにする。それから、コントロールユニット１１は、他のサブモジュールのうちの１つのバイパスモードを解除するための、ＪＴＡＧコマンドを発行する。この例では、サブモジュール１３のバイパスモードが、ここで解除される（図７Ｂを参照）。コントロールユニット１１は、サブモジュール１３から、識別情報を読み込む。２つ以上のサブモジュールがある場合、すべてのサブモジュールの識別情報が読み込まれるまで、上述のステップが繰り返される。コントロールユニットは、１つ以上のサブモジュール１２、１３にパラメータを書き込むことができ、および／または、コントロールユニットは、１つ以上のサブモジュール１２、１３からパラメータを読み込むことができる。これが必要であるかどうかは、サブモジュールの種類による。コンフィギュレーションが変更されたかどうかを検出可能にするために、コンフィギュレーションは定期的に再チェックされる。コンフィギュレーションが変更された場合は、上述のステップを繰り返すことができる。他の実施形態では、上述のステップは、特定の時間間隔で自動的に繰り返される。これはまた、コンフィギュレーション変更の検出および対処を確実に行わせる。
【００６５】
本発明の一実施形態によれば、第１ステップにおけるＪＴＡＧマスタコントローラ１９は、サブモジュールが存在するかどうかを判断し、存在する場合は、いくつのサブモジュールが存在するかを判断する。それから、１つのサブモジュールから他のサブモジュールへ、順次、識別情報を読み込み、どのサブモジュールがあるのかを学習する。必要であれば、ＪＴＡＧマスタコントローラ１９は、１つ以上のサブモジュールにパラメータを書き込み、電子装置１０との適切な相互動作を確実に行わせる。
【００６６】
本発明の他の実施形態においては、１つの特定のサブモジュールをＩＤＣＯＤＥモードにし、かつ、他をバイパスモードにすることなしに、ＩＤＣＯＤＥを読み取ることができる。すべてのサブモジュールは、ＪＴＡＧマスタからＩＤＣＯＤＥ命令を受信することができ、データシフトが、すべての存在するＩＤＣＯＤＥを、同一のシーケンスで読み込む。
【００６７】
サブモジュールへのパラメータの書き込み、または、サブモジュールからのパラメータの読み込みに、同様の原則を適用することができる。すなわち、同一の命令を、すべてのサブモジュールに送り、パラメータを読み込みまたは書き込みすることができる。
【００６８】
他の実施形態では、各サブモジュールを、１つずつアドレスし、他のすべてのサブモジュールをバイパスモードにする。
【００６９】
１つの特定の実施形態では、空きスロットまたはベイは、サブモジュールが差し込まれていない場合は、単純にＴＤＩおよびＴＤＯピンを接続する、スイッチまたは同様の手段を備える。同様に、サブモジュールの取り外し後に、手動で設定が可能なジャンパを、使用することができる。このジャンパは、ＴＤＩおよびＴＤＯピンを接続する。
【００７０】
個別の実施形態の文脈において説明された、本発明のさまざまな機能は、明確さの観点から、単一の実施形態において、コンビネーションとして提供することもできる、と認識される。逆に、単一の実施形態の文脈において説明された、本発明のさまざまな機能は、簡潔さの観点から、個別に、または、いずれかの適切なサブコンビネーションにおいて、提供することもできる。
【００７１】
図面および明細書において、本発明の好適な実施形態を述べたが、特定の用語が使用されているにもかかわらず、このように提供された説明では、一般的かつ描写的な意味の用語法のみを用いるものであり、これは、限定を目的とするものではない。
【図面の簡単な説明】
【００７２】
【図１】図１は、１つのサブモジュールおよび２つの空きスロットを備える、本発明に係る電子装置の概略図である。
【図２】図２は、２つのサブモジュールおよび１つの空きスロットを備える、本発明に係る電子装置の概略図である。
【図３】図３は、本発明に係る、サブモジュールで使用されるＪＴＡＧスレーブの概略ブロック図である。
【図４】図４は、本発明に係る、スレーブプロセッサのコントロールプロセッサにおいて使用される状態マシンの概略表現である。
【図５】図５は、本発明に係る、マイクロプロセッサとともに実施されるコントロールプロセッサの概略ブロック図である。
【図６】図６は、本発明に係る、専用ハードウェアとともに実施されるコントロールプロセッサの概略ブロック図である。
【図７Ａ】図７Ａは、本発明に係る、２つのステップの概略描写である。
【図７Ｂ】図７Ｂは、本発明に係る、２つのステップの概略描写である。
【図１】
2005510781.tif 000002
【図２】
2005510781.tif 000003
【図３】
2005510781.tif 000004
【図４】
2005510781.tif 000005
【図５】
2005510781.tif 000006
【図６】
2005510781.tif 000007
【図７Ａ】
2005510781.tif 000008
【図７Ｂ】
2005510781.tif 000009
【国際調査報告】
2005510781.tif 000010
2005510781.tif 000011
2005510781.tif 000012