(57)【要約】  マイクロコントローラ（８）のプログラミング及びテストのためのコンピュータシステム（１）を説明する。コンピュータシステム（１）は、構成モジュール（２２）、アセンブラ（２４）、コンパイラ（２６）及びデバッガ（２８）を含む対話型設計環境（２０）を備える。コンパイラ（２６）、アセンブラ（２４）及びデバッガ（２８）のすべてを用いると、高水準プログラムデータ（３０）を、バイナリコードに変換してプログラムストア内に記憶し、マイクロコントローラ（８）内に含まれるＣＰＵの機能を制御することが可能となる。構成モジュール（２２）により、ユーザは、マイクロコントローラ（８）の内蔵周辺機器の設定と、周辺機器に対する信号の入出力のルーティングとを制御する値をレジスタに記憶するための構成プログラム（３０）を生成することができる。信号のルーティングに関するレジスタ値は、２段階のプロセスにより、識別される。まず、ユーザは、構成モジュール（２２）を用いて、有効にすべき周辺機器を識別する。次いで、ユーザインターフェースが生成され、識別した周辺機器のセットに必要な信号をルーティングする可能な構成が示される。次いで、ユーザは、識別した構成データのセットのうちのどのセットを使用して、構成プログラム（２０）を生成するべきかを選択することができる。
2007527063.tif 000002
【特許請求の範囲】
【請求項１】
複数の周辺機器を含むマイクロコントローラのレジスタ内に記憶するレジスタ値のセットを識別するよう動作可能なマイクロコントローラ構成装置であって、前記マイクロコントローラは、前記レジスタに記憶された前記レジスタ値に基づいて、ポートのセットを介して前記周辺機器に対して入出力される各種の選択した信号をルーティングするよう動作可能であり、
前記マイクロコントローラ構成装置は、
ユーザが、前記マイクロコントローラに含まれる前記複数の周辺機器から選択した周辺機器を識別するデータを入力できるよう動作可能な第１のユーザ入力インターフェースと、
選択した周辺機器を識別する入力データに関して、前記周辺機器の各々が機能できるよう前記選択した周辺機器に対する入出力をルーティングするために必要な信号のセットを判定するよう動作可能な判定モジュールであって、マイクロコントローラのレジスタ内に記憶されるときに、前記判定した信号すべてを前記マイクロコントローラのポートを介してルーティングすることを可能にする複数のレジスタ値の組合せを識別するようさらに動作可能な判定モジュールと、
ユーザが、前記判定モジュールが識別した前記複数のレジスタ値の組合せのうち１つを選択できるよう動作可能な第２のユーザ入力インターフェースと、
選択したレジスタ値の組合せに対応するレジスタ値を含むマイクロコントローラのレジスタ内に記憶されるレジスタ値のセットを識別するデータを出力するよう動作可能な出力モジュールと
を備えたことを特徴とするマイクロコントローラ構成装置。
【請求項２】
前記判定モジュールは、
マイクロコントローラのポートに関して、前記ポートに関連付けられたレジスタがデフォルト値に設定されるとき、各構成テーブルが、前記ポートに関連付けられた１つ又は複数のピンを介して受信又は出力すべき信号を識別する複数の構成テーブルと、
前記複数の周辺機器の各々ごとに、前記周辺機器の各々が機能できるよう前記選択した周辺機器に対する入出力をルーティングするために必要な前記信号を識別するデータを記憶するよう構成された周辺機器データベースと、
マイクロコントローラのレジスタ内に記憶されるとき、識別した選択した周辺機器が必要とする信号すべてを前記マイクロコントローラの前記ポートを介してルーティングすることを可能にするレジスタ値の組合せを、前記構成テーブル及び前記周辺機器データベースを利用して識別するよう動作可能な構成チェックモジュールと
を含むことを特徴とする請求項１に記載のマイクロコントローラ構成装置。
【請求項３】
前記判定モジュールは、いずれかのレジスタ値の組合せが、マイクロコントローラのレジスタ内に記憶されるとき、識別した選択した周辺機器が必要とする信号すべてを前記マイクロコントローラの前記ポートを介してルーティングすることを可能にするか否かを判定するよう動作可能であり、かつ、識別した選択した周辺機器が必要とする信号すべてを前記マイクロコントローラの前記ポートを介してルーティングすることを可能にするレジスタ値の組合せがない場合、警告データを出力するよう動作可能であることを特徴とする請求項１に記載のマイクロコントローラ構成装置。
【請求項４】
前記警告データは、識別した選択した周辺機器のうち、前記識別した選択した周辺機器が必要とする信号すべてを前記マイクロコントローラの前記ポートを介してルーティングすることを可能にするために、適合しないレジスタ値をマイクロコントローラのレジスタ内に記憶することを必要とする周辺機器を識別するデータを含むことを特徴とする請求項３に記載のマイクロコントローラ構成装置。
【請求項５】
前記警告データは、前記識別した周辺機器のセットを含む代替マイクロコントローラを識別するデータを含み、前記代替マイクロコントローラは、前記識別した選択した周辺機器が必要とする信号すべてを前記代替マイクロコントローラのポートを介してルーティングすることを可能にするレジスタ値のセットを記憶することができることを特徴とする請求項３に記載のマイクロコントローラ構成装置。
【請求項６】
前記第２のユーザ入力インターフェースは、前記レジスタ値の組合せに対応するレジスタ値を含むレジスタ値が前記マイクロコントローラの前記レジスタ内に記憶されるとき、識別した選択した周辺機器に対する信号の入出力をルーティングするのに利用される前記マイクロコントローラのピンの物理的相対位置を示す前記マイクロコントローラの略図表示を生成するよう動作可能であることを特徴とする請求項１に記載のマイクロコントローラ構成装置。
【請求項７】
前記第２のユーザ入力インターフェースは、前記複数のレジスタ値の組合せを順序付けて、前記順序付けた選択した組合せのなかからユーザが選択した組合せに基づいて、前記略図表示を生成するよう動作可能であることを特徴とする請求項６に記載のマイクロコントローラ構成装置。
【請求項８】
前記第２のユーザ入力インターフェースは、前記レジスタ値の組合せが前記マイクロコントローラの前記レジスタ内に記憶されるとき、汎用入出力用信号のルーティングに専用の前記マイクロコントローラの前記ピンの番号に基づいて、前記複数のレジスタ値の組合せを順序付けるよう動作可能であることを特徴とする請求項７に記載のマイクロコントローラ構成装置。
【請求項９】
前記第２のユーザ入力インターフェースは、前記レジスタ値の組合せが前記マイクロコントローラの前記レジスタ内に記憶されるとき、ディスプレイ内の前記選択した周辺機器の表示と、各前記周辺機器に対する信号のルーティングに関連付けられたピンの表示との間の相対距離に基づいて、前記複数のレジスタ値の組合せを順序付けるよう動作可能であることを特徴とする請求項７に記載のマイクロコントローラ構成装置。
【請求項１０】
前記マイクロコントローラは、前記複数の周辺機器に関する設定データを記憶するよう動作可能な１つ又は複数のレジスタをさらに含み、前記マイクロコントローラ構成装置は、ユーザが、前記選択した周辺機器に関連付けられた前記１つ又は複数のレジスタに記憶するレジスタ値を識別するデータを入力できるよう動作可能な第３のユーザ入力インターフェースをさらに備えたことを特徴とする請求項１に記載のマイクロコントローラ構成装置。
【請求項１１】
前記出力モジュールは、選択したレジスタ値の組合せに対応するレジスタ値と、他のレジスタ値を識別しないレジスタ用のデフォルト値とを含むレジスタ値のセットを識別するデータを出力するよう動作可能であることを特徴とする請求項１に記載のマイクロコントローラ構成装置。
【請求項１２】
前記出力モジュールは、前記マイクロコントローラに関連付けられたメモリに記憶されるとき、前記マイクロコントローラに、前記識別したレジスタ値のセットに対応するレジスタ値を前記マイクロコントローラのレジスタに記憶させることができるコンピュータプログラムを生成するよう動作可能であることを特徴とする請求項１に記載のマイクロコントローラ構成装置。
【請求項１３】
前記出力モジュールは、前記周辺機器の各々が機能できるよう前記選択した周辺機器に対する入出力をルーティングするために必要な前記信号のセットを識別するラベルを含む、前記マイクロコントローラの略図表示を定義するデータを出力するよう動作可能であることを特徴とする請求項１に記載のマイクロコントローラ構成装置。
【請求項１４】
前記出力モジュールは、略図表示を定義するデータを出力するよう動作可能であり、前記ラベルは、前記略図表示において、前記識別した信号に関連付けられた周辺機器によってグループ化されることを特徴とする請求項１３に記載のマイクロコントローラ構成装置。
【請求項１５】
前記出力モジュールは、略図表示を定義するデータを出力するよう動作可能であり、前記ラベルは、前記略図表示において、前記信号を転送するピンの物理的位置を表すようグループ化されることを特徴とする請求項１３に記載のマイクロコントローラ構成装置。
【請求項１６】
前記マイクロコントローラの前記ポートのうち少なくとも１つは、前記ポートに関連付けられたレジスタに記憶されたレジスタ値に基づいて選択した単一の信号を転送するよう動作可能なポートを含むことを特徴とする請求項１に記載のマイクロコントローラ構成装置。
【請求項１７】
前記マイクロコントローラの前記ポートの各々は、前記ポートに関連付けられたレジスタに記憶されたレジスタ値に基づいて選択した単一の信号を転送するよう動作可能なポートを含み、前記マイクロコントローラ構成装置は、前記レジスタ内に記憶されるとき、識別した選択した周辺機器が機能するために必要な信号を、前記ポートを介して転送することを可能にするレジスタ値のセットを識別するよう動作可能であることを特徴とする請求項１６に記載のマイクロコントローラ構成装置。
【請求項１８】
複数の周辺機器を含むマイクロコントローラのレジスタ内に記憶するレジスタ値のセットを識別する方法であって、前記マイクロコントローラは、前記レジスタに記憶された前記レジスタ値に基づいて、ポートのセットを介して前記周辺機器に対して入出力される各種の選択した信号をルーティングするよう動作可能であり、
前記方法は、
前記マイクロコントローラに含まれる前記複数の周辺機器から選択した周辺機器を識別するデータを受信することと、
選択した周辺機器を識別する受信データに関して、前記周辺機器の各々が機能できるよう前記選択した周辺機器に対する入出力をルーティングするために必要な信号のセットを判定することと、
マイクロコントローラのレジスタ内に記憶されるとき、前記判定した信号すべてを前記マイクロコントローラのポートを介してルーティングすることを可能にする複数のレジスタ値の組合せを識別することと、
前記識別した複数のレジスタ値の組合せのうち、１つの選択した組合せを識別するデータを受信することと、
選択したレジスタ値の組合せに対応するレジスタ値を含むマイクロコントローラのレジスタ内に記憶されるレジスタ値のセットを識別するデータを出力することと
を備えることを特徴とする方法。
【請求項１９】
マイクロコントローラのポートに関して、前記ポートに関連付けられたレジスタがデフォルト値に設定されるとき、各構成テーブルが、前記ポートに関連付けられた１つ又は複数のピンを介して受信又は出力すべき信号を識別する複数の構成テーブルを記憶することと、
前記複数の周辺機器の各々ごとに、前記周辺機器の各々が機能できるよう前記選択した周辺機器に対する入出力をルーティングするために必要な前記信号を識別するデータを記憶するよう構成された周辺機器データベースを記憶することと、
マイクロコントローラのレジスタ内に記憶されるとき、識別した選択した周辺機器が必要とする信号すべてを前記マイクロコントローラの前記ポートを介してルーティングすることを可能にするレジスタ値の組合せを、前記構成テーブル及び前記周辺機器データベースを利用して識別することと
をさらに備えることを特徴とする請求項１８に記載の方法。
【請求項２０】
適合するレジスタ値のセットを識別できない場合、識別した選択した周辺機器のうち、前記識別した選択した周辺機器が必要とする前記信号すべてを前記マイクロコントローラの前記ポートを介してルーティングすることを可能にするために、適合しないレジスタ値をマイクロコントローラのレジスタ内に記憶する必要のある周辺機器を識別するデータを出力すること
をさらに備えることを特徴とする請求項１８に記載の方法。
【請求項２１】
前記識別した周辺機器のセットを含む代替マイクロコントローラを識別するデータを出力することをさらに備え、前記代替マイクロコントローラは、適合するレジスタ値のセットを識別できない場合、前記識別した選択した周辺機器が必要とする信号すべてを前記代替マイクロコントローラのポートを介してルーティングすることを可能にするレジスタ値の組合せを記憶することができることを特徴とする請求項１８に記載の方法。
【請求項２２】
前記レジスタ値の組合せに対応するレジスタ値を含むレジスタ値が前記マイクロコントローラの前記レジスタ内に記憶されるとき、識別した選択した周辺機器に対する信号の入出力をルーティングするのに利用される前記マイクロコントローラのピンの物理的相対位置を示す前記マイクロコントローラの略図表示を定義するデータを生成すること
をさらに備えることを特徴とする請求項１８に記載の方法。
【請求項２３】
前記識別したレジスタ値の組合せを順序付けることと、
前記順序付けた選択した組合せのなかから、ユーザが入力して受信された選択した組合せに基づいて、前記略図表示を生成することと
をさらに備えることを特徴とする請求項２２に記載の方法。
【請求項２４】
前記複数のレジスタ値の組合せを前記順序付けることは、前記レジスタ値の組合せが前記マイクロコントローラの前記レジスタ内に記憶されるとき、汎用入出力用信号のルーティングに専用の前記マイクロコントローラの前記ピンの番号に基づいて順序付けることを含むことを特徴とする請求項２３に記載の方法。
【請求項２５】
前記複数のレジスタ値の組合せを前記順序付けることは、前記レジスタ値の組合せが前記マイクロコントローラの前記レジスタ内に記憶されるとき、前記マイクロコントローラの表示内の前記選択した周辺機器の表示と、各前記周辺機器に対する信号のルーティングに関連付けられたピンの表示との間の相対距離に基づいて順序付けることを含むことを特徴とする請求項２３に記載の方法。
【請求項２６】
前記マイクロコントローラは、前記複数の周辺機器に関する設定データを記憶するよう動作可能な１つ又は複数のレジスタをさらに含み、前記方法は、前記選択した周辺機器に関連付けられた前記１つ又は複数のレジスタに記憶するレジスタ値を識別するデータを受信することをさらに備えることを特徴とする請求項１８に記載の方法。
【請求項２７】
レジスタ値のセットを識別する出力データは、前記選択したレジスタ値の組合せに対応するレジスタ値と、他のレジスタ値を識別しないレジスタに関するデフォルト値とを含むことを特徴とする請求項１８に記載の方法。
【請求項２８】
前記マイクロコントローラに関連付けられたメモリに記憶されるとき、前記マイクロコントローラに、前記識別したレジスタ値のセットに対応するレジスタ値を前記マイクロコントローラのレジスタに記憶させることができるコンピュータプログラムを生成すること
をさらに備えることを特徴とする請求項１８に記載の方法。
【請求項２９】
前記周辺機器の各々が機能できるよう前記選択した周辺機器に対する入出力をルーティングするために必要な前記信号のセットを識別するラベルを含む、前記マイクロコントローラの略図表示を定義するデータを出力すること
をさらに備えることを特徴とする請求項１８に記載の方法。
【請求項３０】
前記ラベルは、前記略図表示において、前記識別した信号に関連付けられた周辺機器によってグループ化されることを特徴とする請求項２９に記載の方法。
【請求項３１】
前記ラベルは、前記略図表示において、前記信号を転送するピンの物理的位置を表すようグループ化されることを特徴とする請求項２９に記載の方法。
【請求項３２】
前記マイクロコントローラの前記ポートのうち少なくとも１つは、前記ポートに関連付けられたレジスタに記憶されたレジスタ値に基づいて選択した単一の信号を転送するよう動作可能なポートを含むことを特徴とする請求項１８に記載の方法。
【請求項３３】
前記マイクロコントローラの前記ポートの各々は、前記ポートに関連付けられたレジスタに記憶されたレジスタ値に基づいて選択した単一の信号を転送するよう動作可能なポートを含み、前記方法は、前記レジスタに記憶されるとき、識別した選択した周辺機器が機能するために必要な信号を、前記ポートを介して転送することを可能にするレジスタ値のセットを識別することを備えることを特徴とする請求項３２に記載の方法。
【請求項３４】
複数の周辺機器を含むマイクロコントローラのレジスタ内に記憶するレジスタ値のセットを識別する方法を、プログラム可能なコンピュータに実行させるコンピュータが実行可能な命令を記憶するコンピュータが読取り可能な媒体であって、前記マイクロコントローラは、前記レジスタに記憶されたレジスタ値に基づいて、ポートのセットを介して前記周辺機器に対して入出力される各種の選択した信号をルーティングするよう動作可能であり、
前記方法は、
前記マイクロコントローラに含まれる前記複数の周辺機器から選択した周辺機器を識別するデータを受信することと、
選択した周辺機器を識別する受信データに関して、前記周辺機器の各々が機能できるよう前記選択した周辺機器に対する入出力をルーティングするために必要な信号のセットを判定することと、
マイクロコントローラのレジスタ内に記憶されるとき、前記判定した信号すべてを前記マイクロコントローラのポートを介してルーティングすることを可能にする複数のレジスタ値の組合せを識別することと、
前記識別した複数のレジスタ値の組合せのうち、１つの選択した組合せを識別するデータを受信することと、
選択したレジスタ値の組合せに対応するレジスタ値を含むマイクロコントローラのレジスタ内に記憶するレジスタ値のセットを識別するデータを出力することと
を備えることを特徴とするコンピュータが読取り可能な媒体。
【請求項３５】
前記方法は、
マイクロコントローラのポートに関して、前記ポートに関連付けられたレジスタがデフォルト値に設定されるとき、各構成テーブルが、前記ポートに関連付けられた１つ又は複数のピンを介して受信又は出力すべき信号を識別する複数の構成テーブルを記憶することと、
前記複数の周辺機器の各々ごとに、前記周辺機器の各々が機能できるよう前記選択した周辺機器に対する入出力をルーティングするために必要な前記信号を識別するデータを記憶するよう構成された周辺機器データベースを記憶することと、
マイクロコントローラのレジスタ内に記憶されるとき、識別した選択した周辺機器が必要とする信号すべてを前記マイクロコントローラの前記ポートを介してルーティングすることを可能にするレジスタ値の組合せを、前記構成テーブル及び前記周辺機器データベースを利用して識別することと
をさらに備えることを特徴とする請求項３４に記載のコンピュータが読取り可能な媒体。
【請求項３６】
前記方法は、
適合するレジスタ値のセットを識別できない場合、識別した選択した周辺機器のうち、前記識別した選択した周辺機器が必要とする信号すべてを前記マイクロコントローラの前記ポートを介してルーティングすることを可能にするために、適合しないレジスタ値をマイクロコントローラのレジスタ内に記憶することを必要とする周辺機器を識別するデータを出力すること
をさらに備えることを特徴とする請求項３４に記載のコンピュータが読取り可能な媒体。
【請求項３７】
前記方法は、
前記識別した周辺機器のセットを含む代替マイクロコントローラを識別するデータを出力することをさらに備え、前記代替マイクロコントローラは、適合するレジスタ値のセットを識別できない場合、前記識別した選択した周辺機器が必要とする信号すべてを前記代替マイクロコントローラのポートを介してルーティングすることを可能にするレジスタ値のセットを記憶することができることを特徴とする請求項３４に記載のコンピュータが読取り可能な媒体。
【請求項３８】
前記レジスタ値の組合せに対応するレジスタ値を含むレジスタ値が前記マイクロコントローラのレジスタ内に記憶されるとき、識別した選択した周辺機器に対する信号の入出力をルーティングするのに利用される前記マイクロコントローラのピンの物理的相対位置を示す前記マイクロコントローラの略図表示を定義するデータを生成すること
をさらに備えることを特徴とする請求項３４に記載のコンピュータが読取り可能な媒体。
【請求項３９】
前記識別したレジスタ値の組合せを順序付けることと、
前記順序付けた選択した組合せのなかから、ユーザが入力して受信された選択した組合せに基づいて、前記略図表示を生成することと
をさらに備えることを特徴とする請求項３８に記載のコンピュータが読取り可能な媒体。
【請求項４０】
前記複数のレジスタ値の組合せを前記順序付けることは、前記レジスタ値の組合せが前記マイクロコントローラの前記レジスタ内に記憶されるとき、汎用入出力用信号のルーティングに専用の前記マイクロコントローラの前記ピンの番号に基づいて順序付けることを含むことを特徴とする請求項３９に記載のコンピュータが読取り可能な媒体。
【請求項４１】
前記複数のレジスタ値の組合せを前記順序付けることは、前記レジスタ値の組合せが前記マイクロコントローラの前記レジスタ内に記憶されるとき、前記マイクロコントローラの表示内の前記選択した周辺機器の表示と、各前記周辺機器に対する信号のルーティングに関連付けられたピンの表示との間の相対距離に基づいて順序付けることを含むことを特徴とする請求項３９に記載のコンピュータが読取り可能な媒体。
【請求項４２】
前記マイクロコントローラは、前記複数の周辺機器に関する設定データを記憶するよう動作可能な１つ又は複数のレジスタをさらに含み、前記方法は、前記選択した周辺機器に関連付けられた前記１つ又は複数のレジスタに記憶するレジスタ値を識別するデータを受信することをさらに備えることを特徴とする請求項３４に記載のコンピュータが読取り可能な媒体。
【請求項４３】
前記方法は、
前記選択したレジスタ値の組合せに対応するレジスタ値と、他のレジスタ値を識別しないレジスタに関するデフォルト値とを含むレジスタ値のセットを識別するデータを出力すること
をさらに備えることを特徴とする請求項３４に記載のコンピュータが読取り可能な媒体。
【請求項４４】
前記方法は、
前記マイクロコントローラに関連付けられたメモリに記憶されるとき、前記マイクロコントローラに、前記識別したレジスタ値のセットに対応するレジスタ値を前記マイクロコントローラのレジスタに記憶させることができるコンピュータプログラムを生成すること
をさらに備えることを特徴とする請求項３４に記載のコンピュータが読取り可能な媒体。
【請求項４５】
前記方法は、
前記周辺機器の各々が機能できるよう前記選択した周辺機器に対する入出力をルーティングするために必要な前記信号のセットを識別するラベルを含む、前記マイクロコントローラの略図表示を定義するデータを出力すること
をさらに備えることを特徴とする請求項３４に記載のコンピュータが読取り可能な媒体。
【請求項４６】
前記ラベルは、前記略図表示において、前記識別した信号に関連付けられた周辺機器によってグループ化されることを特徴とする請求項４５に記載のコンピュータが読取り可能な媒体。
【請求項４７】
前記ラベルは、前記略図表示において、前記信号を転送するピンの物理的位置を表すようグループ化されることを特徴とする請求項４５に記載のコンピュータが読取り可能な媒体。
【請求項４８】
ディスクを含むことを特徴とする請求項３４に記載のコンピュータが読取り可能な媒体。
【請求項４９】
磁気ディスク、光磁気ディスク又は光ディスクを含むことを特徴とする請求項４８に記載のディスク。
【請求項５０】
コンピュータネットワーク内における電子信号を含むことを特徴とする請求項３４に記載のコンピュータが読取り可能な媒体。
【請求項５１】
複数の周辺機器を含むマイクロコントローラのプログラミングの方法であって、前記マイクロコントローラは、前記マイクロコントローラのレジスタ内に記憶されたレジスタ値に基づいて、ポートのセットを介して前記周辺機器に対して入出力される各種の選択した信号をルーティングするよう動作可能であり、
前記方法は、
請求項２８に記載の方法にしたがってコンピュータプログラムを生成することと、
前記生成したコンピュータプログラムを、マイクロコントローラに関連付けられたメモリに記憶することと、
前記記憶したコンピュータプログラムを実行して、前記マイクロコントローラに、前記識別したレジスタ値のセットに対応するレジスタ値を前記マイクロコントローラの前記レジスタに記憶させることと
を備えることを特徴とする方法。
【請求項５２】
マイクロコントローラにおいて、
複数の周辺機器と、
ポートに関連付けられたレジスタに記憶されたレジスタ値に基づいて、前記ポートのセットを介して周辺機器に対して入出力される信号をルーティングするよう動作可能な複数のセレクタと、
構成プログラムを記憶するよう動作可能なメモリと、
前記メモリに記憶された構成プログラムを処理して、レジスタ値を前記レジスタに記憶するよう動作可能な処理装置と
を備え、
前記マイクロコントローラの前記ポートの各々は、前記ポートに関連付けられたレジスタに記憶されたレジスタ値に基づいて選択した単一の信号を転送することができるポートを含むことを特徴とするマイクロコントローラ。
【請求項５３】
前記第１のユーザ入力インターフェースは、ユーザが、マイクロコントローラに外付けされた選択した外付け周辺機器を識別するデータを入力できるよう動作可能であり、かつ、前記選択した外付け周辺機器を利用して、前記マイクロコントローラに含まれる前記複数の周辺機器から、前記選択した外付け周辺機器とインターフェースをとるのに必要な選択した周辺機器を識別するよう動作可能であることを特徴とする請求項１に記載のマイクロコントローラ構成装置。
【請求項５４】
前記第１のユーザ入力インターフェースは、入力された選択した入力外付け周辺機器とインターフェースをとるのに必要な前記選択した周辺機器が、マイクロコントローラに含まれない１つ又は複数の周辺機器を必要とするか否かを判定するよう動作可能であり、前記出力モジュールは、前記マイクロコントローラに、前記マイクロコントローラに含まれる周辺機器に加えて、１つ又は複数の追加の周辺機器をエミュレートさせるコンピュータプログラムを生成させるデータを出力するよう動作可能であることを特徴とする請求項５３に記載のマイクロコントローラ構成装置。
【請求項５５】
前記１つ又は複数の外付け周辺機器は、設定データを記憶するよう動作可能なレジスタを含み、前記マイクロコントローラ構成装置は、ユーザが、前記選択した外付け周辺機器に関連付けられた前記１つ又は複数のレジスタに記憶するレジスタ値を識別するデータを入力できるよう動作可能なユーザ入力インターフェースをさらに備えることを特徴とする請求項５３に記載のマイクロコントローラ構成装置。
【請求項５６】
前記さらなるユーザインターフェースは、選択した各外付け周辺機器を内蔵周辺機器に関連付け、前記出力モジュールに、互いに適合する前記外付け周辺機器及び前記関連付けられた内蔵周辺機器に関するレジスタ値のセットを識別するデータを出力させるよう動作可能であることを特徴とする請求項５５に記載のマイクロコントローラ構成装置。
【請求項５７】
選択した周辺機器を識別するデータを前記受信することは、マイクロコントローラに外付けされた１つ又は複数の周辺機器を識別するデータを含み、前記方法は、前記受信したデータを処理して、前記マイクロコントローラに含まれる前記複数の周辺機器から、前記外付け周辺機器とインターフェースをとるのに必要な選択した周辺機器を識別することをさらに備えることを特徴とする請求項１８に記載の方法。
【請求項５８】
外付け周辺機器とインターフェースをとるのに必要な周辺機器の前記判定が、前記マイクロコントローラに含まれない１つ又は複数の周辺機器を含む場合、前記出力するステップは、前記マイクロコントローラに、前記マイクロコントローラに含まれる周辺機器に加えて、１つ又は複数の追加の周辺機器をエミュレートさせるコンピュータプログラムを生成させるデータを出力することを含むことを特徴とする請求項５７に記載の方法。
【請求項５９】
前記選択した外付け周辺機器に関連付けられた前記１つ又は複数のレジスタに記憶するレジスタ値を識別するデータをさらに受信し、前記出力するステップは、前記受信したデータに対応する１つ又は複数の外付け周辺機器のレジスタ内に記憶するレジスタ値を識別することを含むことを特徴とする請求項５７に記載の方法。
【請求項６０】
外付け周辺機器を内蔵周辺機器に関連付けることをさらに備え、前記出力するステップは、互いに適合する前記外付け周辺機器及び前記関連付けられた内蔵周辺機器に関するレジスタ値のセットを識別するデータを出力することを含むことを特徴とする請求項５９に記載の方法。
【請求項６１】
選択した周辺機器を識別するデータを前記受信することは、マイクロコントローラに外付けされた１つ又は複数の周辺機器を識別するデータを含み、前記方法は、前記受信したデータを処理して、前記マイクロコントローラに含まれる前記複数の周辺機器から、前記外付け周辺機器とインターフェースをとるのに必要な選択した周辺機器を識別することをさらに備えることを特徴とする請求項３４に記載のコンピュータが読取り可能な媒体。
【請求項６２】
外付け周辺機器とインターフェースをとるのに必要な周辺機器の前記判定が、前記マイクロコントローラ内に含まれない１つ又は複数の周辺機器を含む場合、前記出力するステップは、前記マイクロコントローラに、前記マイクロコントローラに含まれる周辺機器に加えて、１つ又は複数の追加の周辺機器をエミュレートさせるコンピュータプログラムを生成させるデータを出力することを含むことを特徴とする請求項６１に記載のコンピュータが読取り可能な媒体。
【請求項６３】
前記選択した外付け周辺機器に関連付けられた前記１つ又は複数のレジスタに記憶するレジスタ値を識別するデータをさらに受信し、前記出力するステップは、前記受信したデータに対応する１つ又は複数の外付け周辺機器のレジスタ内に記憶するレジスタ値を識別することを含むことを特徴とする請求項６２に記載のコンピュータが読取り可能な媒体。
【請求項６４】
外付け周辺機器を内蔵周辺機器と関連付けることをさらに備え、前記出力するステップは、互いに適合する前記外付け周辺機器及び前記関連付けられた内蔵周辺機器に関するレジスタ値のセットを識別するデータを出力することを含むことを特徴とする請求項６３に記載のコンピュータが読取り可能な媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本願は、構成データを生成するための方法及び装置に関する。より詳細には、本願は、マイクロコントローラを構成するための構成データの生成に関する。
【背景技術】
【０００２】
多くの装置は、装置の処理を制御するために、埋め込みマイクロプロセッサシステム又はマイクロコントローラを必要とする。このようなマイクロコントローラは、マイクロチップを備え、このマイクロチップは、マイクロチップに対する信号の入出力を可能にする複数のピンを有する。このマイクロチップは、通常、中央処理装置（ＣＰＵ）、メモリ、及びマイクロコントローラ内で特定のタスクを行う複数の内蔵周辺機器を備える。
【発明の開示】
【発明が解決しようとする課題】
【０００３】
最新のマイクロコントローラ設計において、内蔵周辺機器が受信し、対話し、出力できる信号の数は、マイクロチップ上で利用可能なピンの数を超えることが多い。これは通常、任意の個々のアプリケーションにおいて、利用可能な周辺機器のサブセットのみが利用される必要があるからである。このような状況において、マイクロコントローラのプログラミングは、２つの部分を有する。第１に、マイクロコントローラのＣＰＵの処理を制御するコンピュータプログラムを記述して、マイクロコントローラのメモリに記憶する必要がある。従来、これは、高水準プログラミング言語を用いてソフトウェアを記述し、生成したコードを、マイクロコントローラのメモリ内に記憶されるバイナリコードにコンパイルすることによって、行われていた。
【０００４】
マイクロコントローラのプログラミングの第２の部分は、マイクロコントローラ内で利用可能な周辺機器に関する適切な設定を判定し、利用される周辺機器が、マイクロコントローラ上の利用可能なピンを介して対話し、信号を出力できるようにすることを含む。不適合な設定が、特定及び修正が困難な誤った動作を生じさせることがあるので、このマイクロコントローラのプログラミングの第２の部分は、扱いにくいものである。したがって、このマイクロコントローラのプログラミングの第２の部分を、より容易に行うことを可能にするシステムが必要とされている。
【課題を解決するための手段】
【０００５】
本発明の一側面にしたがうと、複数の周辺機器を含むマイクロコントローラのレジスタ内に記憶するレジスタ値のセットを識別するよう動作可能なマイクロコントローラ構成装置が提供される。このマイクロコントローラは、前記レジスタに記憶されたレジスタ値に基づいて、前記周辺機器に対する各種の選択した信号の入出力をルーティングするよう動作可能であり、前記マイクロコントローラ構成装置は、
ユーザが、前記マイクロコントローラに含まれる複数の周辺機器から選択した周辺機器を識別するデータを入力できるようにする第１のユーザインターフェースを生成するよう動作可能な第１のユーザ入力インターフェースジェネレータと、
前記第１のユーザインターフェースを介して入力された、選択した周辺機器を識別するデータに関して、前記周辺機器の各々が機能できるよう前記選択した周辺機器に対する入出力をルーティングするために必要な信号のセットを判定するよう動作可能な判定モジュールであって、マイクロコントローラのレジスタ内に記憶されるときに、前記選択した周辺機器に対する判定した信号すべての入出力をルーティングすることを可能にするレジスタ値の複数の組合せを識別するようさらに動作可能な判定モジュールと、
ユーザが、前記判定モジュールが識別した前記レジスタ値の複数の組合せのうち１つを選択できるようにする第２のユーザインターフェースを生成するよう動作可能な第２のユーザ入力インターフェースジェネレータと、
前記第２のユーザインターフェースを介してマイクロコントローラのレジスタ内に記憶する選択したレジスタ値の組合せに対応するレジスタ値を含むレジスタ値のセットを識別するデータを出力するよう動作可能な出力モジュールと
を備える。
【発明を実施するための最良の形態】
【０００６】
本発明のさらなる側面及び実施形態は、添付図面を参照することにより明らかになるであろう。
【０００７】
（第１の実施形態）
図１は、本発明の第１の実施形態にしたがう、マイクロコントローラのインラインテストを実行するためのコンピュータシステムを示している。詳細には、図１は、ユーザが先行技術よりも容易にマイクロコントローラをプログラムし、テストすることが可能となるようプログラムされたコンピュータ１を含む、コンピュータシステムを示している。
【０００８】
図１に示すように、コンピュータ１は、ディスプレイ画面２、マウス３、キーボード４及びプリンタ５に接続されている。コンピュータ１は、インターフェース６を介して回路基板７にも接続され、回路基板７上には、マイクロコントローラ８が設けられている。コンピュータ１自体は、マイクロプロセッサ１０、ディスクドライブ１１及びメモリ１２を備える。
【０００９】
ディスクドライブは、コンピュータディスク１５を受け入れるよう配置されており、それによって、メモリ１２は、構成モジュール２２、アセンブラ２４、コンパイラ２６及びデバッガ２８を備える対話型設計環境（interactive design environment）２０を形成する機能モジュールとして構成される。
【００１０】
本実施形態において、アセンブラ２４、コンパイラ２６及びデバッガ２８は、各々、従来型のアセンブラ、コンパイラ及びデバッガを備える。それらは、ディスク１５からディスクドライブ１１を介してダウンロードされ、プログラムデータ３０としてメモリ１２に記憶されている高水準コンピュータプログラムを処理して、その高水準コンピュータプログラムをバイナリコードに変換し、それがインターフェース６を介してマイクロコントローラ８のメモリにダウンロードされるよう設定されている。
【００１１】
後に詳述するように、対話型設計環境２０の構成モジュール２２は、ユーザがキーボード４及びマウス３を介して命令を入力し、マイクロコントローラ８のための構成プログラム３２を生成できるよう設定されている。この構成プログラム３２は、マイクロコントローラ８上の特定の選択した周辺機器を有効にして、その選択した周辺機器が、マイクロコントローラ８を回路基板７に接続する特定のピンに対する信号を受信し出力できるよう、マイクロコントローラ８を構成する。この構成モジュール２２を設けることにより、構成プログラム３２の生成が簡略化されるので、マイクロコントローラ８のプログラミング及びテストのプロセスが非常に容易になる。
【００１２】
より具体的には、後述するように、構成モジュール２２は、タスクを２段階に分けることにより、ユーザのために、構成データの生成を簡略化する。
【００１３】
まず、ユーザが、マイクロコントローラ８内で有効にすべき周辺機器セットと、これら選択した周辺機器の設定とを識別することを可能にするユーザインターフェースが、ユーザに提供される。次いで、構成モジュール２２は、ユーザが選択した周辺機器を使用して、マイクロコントローラ８に対する選択した周辺機器のセットの信号の入出力をルーティングするのに適した可能な構成設定の限られたサブセットを識別する。
【００１４】
同時に、識別した可能な構成設定のセットから生じる、マイクロコントローラ８に対する入出力の物理的位置を示す表示が、ユーザに提供される。したがって、ユーザは、マイクロコントローラ８に関する可能な設定すべてを考慮する必要は無く、各種の構成設定によって、どのようにマイクロコントローラ８が選択した周辺機器の信号を受信し、出力する物理的位置を変えるかに関して、入手できるフィードバックを用いて、示されたサブセットから所望の選択を行うことができる。ユーザが所望の設定のセットを識別すると、構成モジュール２２に記憶されているデータから、構成プログラム３２を自動的に生成することができる。
【００１５】
次いで、コンパイラ２６及びアセンブラ２４が、プログラムデータ３０から導出されるバイナリコード及び構成プログラム３２を、コンピュータのメモリ１２からマイクロコントローラ８のメモリにダウンロードすることにより、マイクロコントローラ８の性能をテストすることができる。次いで、構成プログラム３２は、ユーザが構成モジュール２２を介して選択した構成設定を、マイクロコントローラ８に採用させる。次いで、マイクロコントローラ８は、識別した構成設定を用いてバイナリコードを実行し、マイクロコントローラ８による出力を、従来の方法により解析することができる。
【００１６】
最後に、バイナリコード及び構成プログラム３２の性能が十分であると判断されると、プログラムデータ３０及び構成プログラム３２を用いてプログラムされたマイクロコントローラ８を生成し、より大きな装置の回路基板内に組み込むことができる。
【００１７】
構成モジュール２２の構成及び機能を説明する前に、図２及び図３を参照して、例示的なマイクロコントローラ８の構成をまず説明する。
【００１８】
（例示的なマイクロコントローラの構成）
マイクロコントローラ８の概略ブロック図である図２を参照すると、各マイクロコントローラは、メインチップ３５を備え、メインチップ３５上には、クロック３６、中央処理装置３７、プログラムストア３８及び周辺機器のセット４０−１〜４０−Ｎが設けられている。各周辺機器は、チップ上で特定のタスクを行うよう配置された機能ブロックを備えている。代表的な機能ブロックは、赤外線検出器、カウンタ、キャプチャタイマ又はＵＡＲＴ等である。特定のチップ上で利用できる緻密な周辺機器は、各マイクロコントローラによって異なる。
【００１９】
メインチップ３５は、一連のピン４２を用いて回路基板７に接続されている。これらのピン４２は、回路基板のメインチップ以外の部分からの信号を、メインチップ３５にルーティングするよう配置されている。マイクロコントローラ８は、メインチップ３５上のＣＰＵ３７及び周辺機器４０−１〜４０−Ｎが処理できる入出力の数が、メインチップ３５に対する信号の入出力をルーティングするのに利用できるピン４２の数を超えるよう、配置されることが多い。これは、通常、任意のアプリケーションにおいては、周辺機器４０−１〜４０−Ｎのサブセットのみが利用されるからである。
【００２０】
共に利用できる周辺機器のセットに関して柔軟性を提供するために、また信号を各種ピン４２にルーティング可能なように、ピン４２は、ピンのグループに分割される。ポートＡ〜Ｋ  ４５〜５６、及び、制御信号のセット５７を含む１つのポートとして、これらのグループを図２に示す。これらのポートの各々は、ピンのグループを有する。図２におけるポートは、４本のピンを有するポートＫ５０及びポートＬ４９と、１６本のピンを有する制御信号ピンのセットを有するポート５７とを除いて、各々、８本のピンを有するものとして示されている。制御信号に関連付けられたピンのセット５７を除き、残りのポート４５〜５６は、各々、セレクタ６０及びレジスタ６２に関連付けられている。各セレクタ６０は、配線のセット６３を介してメインチップ３５上の周辺機器４０−１〜４０−Ｎに接続されている。各セレクタ６０は、配線６３を介して転送される信号のうち、そのセレクタ６０に接続されたピンに接続する信号を、そのセレクタ６０に関連付けられたレジスタ６２に記憶されたデータに基づいて選択するよう、設定されている。
【００２１】
このようにして、レジスタ６２に適切なレジスタ値を記憶することにより、周辺機器４０−１〜４０−Ｎからの各種信号が、マイクロコントローラ８を回路基板７に接続するピン４２のうちの選択したピンに接続されるよう、マイクロコントローラ８を構成することができる。
【００２２】
ピン４２を介して適切な信号のセットをルーティングできるようプログラムする必要のあるレジスタ６２に加えて、典型的なマイクロコントローラにおいては、クロック３６及び周辺機器４０−１〜４０−Ｎの各々も、それらに関連付けられたレジスタのセット６４及び６５−１〜６５−Ｎを有する。これによって、マイクロコントローラ８に実行させようとする個々の機能に合わせて、クロック３６及び周辺機器の個々のパラメータを調整することが可能になる。
【００２３】
一例として、図３は、マイクロコントローラ８上で利用できる典型的なクロック３６の概略ブロック図である。典型的なクロックは、３２ｋＨｚの周波数を有するクロック信号を生成するよう設定された低周波発振器８０と、５ＭＨｚの周波数を有するクロック信号を生成するよう設定された高周波発振器８２とを備えている。さらに、典型的なクロックは、低周波発振器８０からの３２ｋＨｚ信号を用いて５ＭＨｚクロック信号を生成するよう設定された低周波ＰＬＬ８４と、高周波発振器８２が生成するクロック信号を、１００ＭＨｚの周波数を有するクロック信号に変換するよう設定された高周波ＰＬＬ８６とを備えている。このようにして、クロック３６は、４つのクロック信号のセットを生成することができ、各クロック信号は、マイクロコントローラ８のメインクロックの基盤を形成することができる。
【００２４】
ユーザが、メインクロック信号として利用すべき信号を選択できるようにするために、低周波発振器８０、低周波ＰＬＬ８４、高周波発振器８２及び高周波ＰＬＬ８６がすべてセレクタ８７に接続され、同様にセレクタ８７がレジスタ８８に接続される。この例においては、レジスタ８８は、２ビットレジスタである。レジスタ８８に適切な値を記憶することにより、セレクタ８７は、低周波発振器８０、低周波ＰＬＬ８４、高周波発振器８２又は高周波ＰＬＬ８６が生成するクロック信号のうち、基本クロック周波数として使用すべき信号を判定するよう設定されている。
【００２５】
さらに、クロック３６は、クロックを予め設定された値で分周することにより、セレクタ８７が選択するメインクロック信号から種々の周波数のクロック信号を導出するよう設定された１対の分周器９０、９１を備えている。こうした予め設定された値は、分周器９０、９１の各々に関連付けられたさらなるレジスタ９２、９４内に記憶される。このようにして、クロックモジュール３６は、セレクタ８７が選択したマスタークロック信号に基づく種々のクロック信号のセットすべてを、導出及び出力し、メインチップ３５上のＣＰＵ３７及び周辺機器４０−１〜４０−Ｎが、それらを使用する。したがって、クロックモジュール３６が適切な信号を出力できるようにするために、さらなる構成データをクロックのレジスタ９２、９４に記憶する必要がある。
【００２６】
したがって、マイクロコントローラ８をプログラムするためには、データの３つのセットを生成して記憶する必要がある。まず、バイナリコードを生成して、メインチップ３５のプログラムストア３８内に記憶する必要がある。そうすると、メインチップ３５のＣＰＵ３７が、このコードを処理し、実行することができる。このコードは、従来の方法により、コンパイラ２６、アセンブラ２７を用いてプログラムデータ３０から生成し、デバッガ２８を用いて修正することができる。
【００２７】
しかしながら、さらに、周辺機器４０−１〜４０−Ｎ及びクロック３６を設定して、これらが実行するよう設定されている専用の機能を実行するように、これら周辺機器及びクロック３６を構成するためには、各周辺機器４０−１〜４０−Ｎ及びクロック３６用の構成データを生成して、これらをレジスタ６４、６５−１〜６５−Ｎ内に記憶する必要がある。構成データは、ポート４５〜５６の各々に関連付けられたレジスタ６２内にも記憶して、各種周辺機器が利用する信号が、マイクロコントローラ８を回路基板７に接続する適切なピン４２に対する入出力をルーティングできるようにする必要がある。
【００２８】
次に、ユーザが、必要な構成データすべてを容易かつ効率的に生成できるようにする構成モジュール２２の構成及び機能を、図４〜図１３を参照して説明する。
【００２９】
（構成モジュールの機能コンポーネントの概説）
図４は、本発明の本実施形態にしたがう、構成モジュール２２のサブコンポーネントの概略ブロック図である。
【００３０】
本実施形態において、構成モジュール２２は、キーボード４とマウス３とを介して命令を受信し、ユーザインターフェースをディスプレイ画面２に表示するよう設定されたインターフェースジェネレータ１００；マイクロコントローラ８のポート４５〜５６に関連付けられたレジスタ６２に関するどの設定が、選択した周辺機器のセットと適合するかを判定するよう設定された構成チェックモジュール１０２；特定の選択した周辺機器４０−１〜４０−Ｎに関する適切な値をレジスタ６２に記憶させるための構成プログラム３２を生成するよう設定されたコード生成モジュール１０４；及び、選択した周辺機器のセットとポート構成とを識別するデータを利用して、マイクロコントローラ８の識別した構成に合わせた概略図及びプリント回路基板図を生成して出力するよう設定された出力モジュール１０６を備える。
【００３１】
上述した機能モジュールに加えて、構成モジュール２２はまた、個々のマイクロコントローラ８上で利用できる各周辺機器４０−１〜４０−Ｎ及びクロック３６の信号と、可能な設定とを定義するデータを記憶する周辺機器データベース１０８；様々な値が、マイクロコントローラ８のポート４５〜５６に関連付けられたレジスタ６２に記憶されている場合に、どの信号が、マイクロコントローラ８上のどのピン４２に接続されるかを示すテーブルを有する構成テーブルのセット１１０；入力信号を受信するために、周辺機器４０−１〜４０−Ｎが、ピン４２のどのピンを利用するのに好適かを示す好適入力リスト１１２；個々の周辺機器４０−１〜４０−Ｎ及びクロック３６内の様々な設定の適合性に関する要件を定義するデータを有するルールデータベース１１４；マイクロコントローラ８を回路基板７に接続するピン４２の各々に関連付けられたデフォルト名を識別するためのラベルであるデフォルトピン名のセット１１６；及び、レジスタに関する値が規定されていない場合に、マイクロコントローラのレジスタ６２に記憶するデフォルト構成値のセットを定義するデータ１１８も備える。
【００３２】
最後に、使用中に、構成モジュール２２は、特定の選択した周辺機器に関するレジスタ６２に記憶する許容可能な構成値を識別する構成データ１１９を記憶し、かつ、これら選択した周辺機器を識別する選択周辺機器レコードのセットと、選択した周辺機器に関連付けられたレジスタ６５−１〜６５−Ｎに記憶する提案レジスタ値（proposed register value）とを、クロック３６及びそのレジスタ６４に関するレコードとともに記憶する選択周辺機器データベース１２０を記憶するよう設定されている。
【００３３】
図５は、構成モジュール２２の周辺機器データベース１０８内のレコードの概略ブロック図である。本実施形態において、マイクロコントローラ８内で利用可能な周辺機器４０−１〜４０−Ｎの各々に関する周辺機器レコード１２１は、クロック３６に関連付けられたさらなるレコード及びマイクロコントローラ８の汎用入出力ピンに関連付けられたデータ等の他の任意のグローバルパラメータとともに、周辺機器データベース１０８内に記憶される。
【００３４】
本実施形態において、各周辺機器レコード１２１は、周辺機器名１２２を識別する名称データ；そのレコードに関する周辺機器に関連する入力と出力とを示す信号のリスト１２３；及び、信号リスト１２３内の各エントリごとに、個々の信号が入力であるか、出力であるか、又は入出力の両方であるかを識別するステータスデータ１２４を有する。
【００３５】
したがって、例えば、非同期送受信モジュールに関する周辺機器レコードは、以下のデータを有することができる。    
周辺機器名：          ＵＡＲＴＡ
信号のリスト：        ＵＡＲＴＡ＿ＴＸ、ＵＡＲＴＡ＿ＲＸ
ステータスデータ：    出力、入力
【００３６】
さらに、各周辺機器レコード１２１は、レジスタ名のリスト１２５、レジスタレコード１２６のセット及び変数値１２７のセットも有する。レジスタ名１２５、レジスタレコード１２６及び変数値１２７の数は、各周辺機器によって変わる。
【００３７】
レジスタ名のリストは、周辺機器レコードが表す周辺機器に含まれる各レジスタ６４、６５−１〜６５−Ｎの機能を識別する。したがって、図３の例示的なクロックに関するクロックレコードの場合、以下のレジスタ名を記憶することができる。    
低周波クロック周波数
高周波クロック周波数
インクロック（In-clock）周波数
フリーラン（Free-run）クロック周波数
ＣＰＵクロック周波数
【００３８】
レジスタレコード１２６は、周辺機器レコード１２１が表す周辺機器に関連付けられたレジスタ６４、６５−１〜６５−Ｎの可能な値の各々に関するレコードを有し、そのレコードは、固定された複数の設定のうちの１つを採用することができる。各レジスタレコード１２１は、レジスタレコード１２６が関係する周辺機器内のレジスタを識別するレジスタ番号１３０；レコード１２６により識別されるレジスタに関する可能な設定である値１３２；及び、レジスタ番号１３０により識別されるレジスタを、レコード１２６により識別される値１３２に設定することの要点をテキストで説明したものである設定１３４を有する。
【００３９】
したがって、例えば、図３の例示的なクロックの場合、ソース信号を選択するために、レジスタ８８に関連する以下のレジスタレコード１２６を記憶することができる。    
レジスタ番号：  ８８
値：            ００
設定：          低周波クロック
レジスタ番号：  ８８
値：            ０１
設定：          高周波クロック
等
【００４０】
同様に、周辺機器レコード１２１の変数値１２７は、周辺機器レコード１２１に関する周辺機器に関連付けられた変数を様々な値に設定することの要点を識別するテキストデータを有する。
【００４１】
（構成テーブル）
図６は、本発明の本実施形態にしたがう構成テーブル１１０を例示している。
【００４２】
本実施形態において、構成テーブルは、マイクロコントローラ８の各ポート４５〜５６ごとに記憶され、構成モジュール２２は、その各ポートに対して、構成データを生成するよう設定されている。各構成テーブルは、その特定のポートに関連付けられたピンを識別する番号１３５を含むピン番号のセットと、チャネル値として識別される固有値を、そのポートのレジスタ６２に記憶するときの、そのポートに関連付けられた一連の信号ラベル１３６とを有する。
【００４３】
慣習的に、チップのピン番号は、チップの所定の隅から反時計回りに数えるように割り当てられる。図２の概略図においては、同一ポートに関連付けられたピンをグループ化したものとして示しているが、実際のマイクロコントローラでは、ポートに関連付けられたピンは、必ずしも物理的に隣接している必要はなく、ポートの定義は、同一のセレクタ６０及びレジスタ６２に関連付けられたピンのセットを有するということである。したがって、図６において、４本のピンを有する例示的なポートに関するピン番号１３５のセットは、６２、６４、６５及び６６と番号付けられた４本のピンとして示されており、番号６３のピンは、別のポートに割り当てられている。
【００４４】
ピン番号１３５のセットに加えて、各構成テーブルは、チャネル値に対応する値をレジスタ６２に記憶するとき、どの信号が、特定のポートに関連付けられたどのピンに接続される可能性があるかを識別するデータ１３６も有する。
【００４５】
したがって、図６の例においては、このテーブルが表すポートのセレクタ６０に関連付けられたレジスタ６２内にゼロの値を記憶するとき、ＣＰＵ３７をウェイクアップさせるウェイクアップ信号ＷＡＫＥＵＰが、ピン６２に割り当てられる。また、マイクロコントローラ８が利用する周辺機器の１つとして、シリアル入力インターフェースが選択された場合、シリアルネットワークインターフェースに合わせて、ストリームアクノレッジＳＴＲＥＡＭ＿ＡＣＫ、ストリームステータスＳＴＲＥＡＭ＿ＳＴＳ及びストリームリクエストＳＴＲＥＡＭ＿ＲＥＱ信号が、ピン６４、６５及び６６を介して入出力される。
【００４６】
図６の例示的なテーブルから分かるように、レジスタ６２内に記憶する変数を変更することにより、種々の信号を種々のピンに接続させることができる。逆に言えば、例えば、図６のテーブルにおけるウェイクアップ信号ＷＡＫＥＵＰの場合、そのテーブルに関するポートに関連付けられたレジスタを０又は３に設定すると、ピン６２がこの信号を受信する。後に詳述するように、構成テーブル１１０内に記憶されるデータにより、構成チェックモジュール１０２は、周辺機器４０−１〜４０−Ｎからの信号を同一ピン上で出力又は受信しようとするとき、互いに競合することなく、選択した周辺機器のセットをマイクロコントローラ８内で使用できるようにする可能なレジスタ値のセットを識別することできる。
【００４７】
（選択周辺機器データベース）
図７は、選択周辺機器データベース１２０内に記憶されるデータの概略ブロック図である。本実施形態において、最初は、選択周辺機器データベースは、マイクロコントローラのクロックモジュール３６に関する単一の周辺機器レコード１４０を記憶するよう設定されている。後述するように、使用中に、ユーザが、使用するのに必要なものとして、構成モジュール２２を介して、種々の周辺機器を識別すると、さらなる周辺機器レコード１４０が、データベース１２０に追加される。
【００４８】
選択周辺機器データベース１２０に記憶された周辺機器レコード１４０は、各々、周辺機器データベース１０８の周辺機器レコード１２１から選択した周辺機器に関する周辺機器名１２２に対応する周辺機器名１４１；そのレコードの周辺機器名１４１により識別される周辺機器に関連付けられたレジスタ及び変数に関する現在の設定のセットであるレジスタ値１４２及び変数値１４３のセット；及び、インターフェースジェネレータ１００が生成する画面ディスプレイ内で、マイクロコントローラ８内で有効にされている識別した周辺機器の存在を表すために、周辺機器名１４１を表示するボックスがどこにあるかを特定するｘｙ座標の対である位置１４４を有する。
【００４９】
（構成モジュールの処理）
次に、図８〜図１３を参照して、構成モジュール２２の処理を説明する。
【００５０】
構成モジュール２２の処理のフロー図である図８を参照すると、まず、初めて構成モジュール２２が呼び出されるとき、インターフェースジェネレータ１００は、初期ユーザインターフェース画面をディスプレイ画面２上に表示する（Ｓ８−１）。
【００５１】
図９は、本発明の本実施形態にしたがう初期ユーザインターフェースディスプレイ１４５を例示している。ユーザインターフェースディスプレイ１４５は、左側に、周辺機器ウインドウ１５０、及び、右側にメインウインドウ１５２を有する。周辺機器ウインドウ１５０は、一連のアイコン１５１を表示しており、各アイコンは、構成データを生成することができる、マイクロコントローラ８内に存在する周辺機器４０−１〜４０−Ｎの各々に関連付けられている。メインウインドウ１５２内には、構成データを生成するマイクロコントローラ８の略図表示１５４が示されている。
【００５２】
本実施形態において、略図表示１５４は、その縁部にマイクロコントローラのピン４２の表示を有する。各ピンは、ラベル１５６に関連付けられており、ラベル１５６は、最初は、構成モジュール２２内に記憶されたデフォルトピン名データ１１６により識別されるピン番号に関連付けられたデフォルトピン名１１６と一致している。これらのピン名は、ピン番号の順に配置されているので、マイクロコントローラ８の一隅にしか存在しないマーク１５７を基準にして、ピンラベル１５６により識別される入力及び出力の相対位置を示している。マーク１５７は、コントローラ８の略図１５４上でもマーク１５７として示されている。
【００５３】
最後に、ユーザインターフェースディスプレイ１４５は、右側に、構成ウインドウ１６０も有する。その構成ウインドウ１６０内には、構成データを生成するマイクロコントローラ８のポート４５〜５６のレジスタ６２の各々に関する現在のレジスタ設定を識別するポート構成データ１６２が、現在の構成１６３内の汎用入出力に関連付けられたピン番号を示す数字とともに表示される。初めは、それら設定は、構成モジュール２２内に記憶されたデフォルト構成値１１８と一致する値となる。
【００５４】
このポート構成ウインドウ１６０の下縁には、構成モジュール２２内に記憶された構成データ１１９が表す現在適用可能な構成の間で選択を行うための構成ボタンのセット１６４が存在する。装置が初めて呼び出されるとき、記憶された構成データ１１９は、単一の構成を識別する、各ポートごとにヌル値のセットを含むデータを有する。これによって、後述するように、ポート構成ウインドウ１６０は、記憶されたデフォルト構成１１８に対応するポート構成データ１６２を表示し、ピンラベル１５６は、記憶されたデフォルトピン名１１６に対応する。
【００５５】
マウス３の制御下にあるポインタ１６５を使用すると、ユーザは、ユーザインターフェースディスプレイ画面１４５の各種領域を選択することができる。これによって、構成モジュール２２は、表示されたユーザインターフェースディスプレイ１４５と、選択周辺機器データベース１２０に記憶されたデータと、構成データ１１９とを変更する。その結果、ユーザは、次に説明するように、マイクロコントローラ８に関する適切なレジスタ設定を選択することができる。
【００５６】
図８を参照すると、インターフェースジェネレータ１００が、初期ユーザインターフェースディスプレイ１４５を画面２上に表示すると、次いで、インターフェースジェネレータは、ユーザがマウス３の制御下にあるポインタ１６５を使用して、周辺機器ウインドウ１５０内の周辺機器の表示１５１のいずれかを選択したか否かをチェックする（Ｓ８−２）。本実施形態において、周辺機器の表示１５１の選択を利用して、ユーザは、マイクロコントローラ８上で使用するために利用可能にしたい特定の周辺機器を識別することができる。
【００５７】
ユーザが、周辺機器ウインドウ１５０内の周辺機器の表示１５１のいずれかを選択した場合、次いで、インターフェースジェネレータ１００は、新たな選択周辺機器レコード１４０を生成し、そのレコード１４０を選択周辺機器データベース１２０に記憶する（Ｓ８−３）。新たに生成した選択周辺機器レコード１４０において、周辺機器名１４１が、周辺機器のリスト１５１から選択した周辺機器に対応する周辺機器レコード１２１の周辺機器名１２２に設定される。次いで、レジスタ値１４２及び変数値１４３が、選択した周辺機器に関するデフォルト値に設定され、ユーザがマウス３上のボタンを離すまでポインタ１６５を追跡して、ｘｙ位置が設定される。
【００５８】
したがって、例えば、周辺機器ウインドウの一番上にあるＳＣＩ−スマートカードインターフェースアイコンを選択した場合、以下のレコードが生成され、記憶される。    
周辺機器名：  ＳＣＩ
レジスタ値：  ０，０，０，０，０，０
変数値：      なし
位置：        ポインタのｘｙ座標
次いで、インターフェースジェネレータ１００は、新たな周辺機器レコード１４０により識別された位置１４４を中心に、四角のブロックを画面２上に表示させる。画面２には、そのブロック中に、新たに生成した周辺機器レコード１４０の周辺機器名１４１に対応するテキストが現われる。
【００５９】
次いで、構成モジュール２２は、構成チェックモジュール１０２を呼び出して、周辺機器レコード１４０を今記憶した周辺機器のセットに対応する信号の入出力ができるようにする可能なポート構成のセットを判定する（Ｓ８−４）。
【００６０】
構成チェックモジュール１０２の処理のフロー図である図１０を参照すると、新たな周辺機器レコード１４０を、選択周辺機器データベース１２０に記憶した後、構成チェックモジュール１０２は、まず、この追加の周辺機器の包含により影響を受ける可能性のあるポートチャネル設定の判定に進む（Ｓ１０−１）。
【００６１】
より詳細には、構成チェックモジュール１０２は、まず、新たに生成した選択周辺機器レコード１４０の周辺機器名１４１に対応する周辺機器名１２２を有する周辺機器レコード１２１に関して、信号のリスト１２３を識別する。
【００６２】
したがって、例えば、前述した周辺機器ＵＡＲＴ  Ａに関する新たな選択周辺機器レコード１４０を記憶する場合、信号のリスト１２３には、リストＵＡＲＴ  Ａ＿ＲＸ及びＵＡＲＴ  Ａ＿ＴＸが含まれる。
【００６３】
次いで、構成チェックモジュール１０２は、識別した信号のいずれかに関連付けられる構成テーブル１１０及びチャネル値１３６の識別に進む。これは、構成テーブル１１０をルックアップテーブルとして利用して、新たな周辺機器の追加により影響を受ける可能性のあるポート及びチャネル値のセットを判定することによって達成される。
【００６４】
したがって、例えば、特定の周辺機器に関し、構成チェックモジュール１０２は、チャネル値が１に設定された場合、その周辺機器が利用する信号が、ポートＤに関するテーブルに関連付けられ、チャネル値が２に設定された場合、ポートＫに関するテーブルに関連付けられることを識別することができる。
【００６５】
次いで、構成チェックモジュール１０２は、識別したチャネル設定のセットの可能な組合せすべての識別に進む。したがって、上記の例の場合、３つの組合せ、すなわち、チャネル１に対するポートＤの設定、チャネル２に対するポートＫの設定、又はチャネル１に対するポートＤ及びチャネル２に対するポートＫの両方の設定を識別することになる。
【００６６】
この影響を受ける可能性のあるポート設定のセットを識別すると、次いで、構成チェックモジュール１０２は、識別したポート設定の各組合せごとに、これらのポート設定に関連付けられた信号の完全なリストを判定する（Ｓ１０−２）。これらの値は、識別した組合せを用いて構成テーブル１１０から読み取られる。
【００６７】
次いで、構成チェックモジュール１０２は、各組合せごとに、信号のリストが、新たな選択周辺機器レコード１４０を今記憶した周辺機器に関連付けられた信号のリスト１２３内のエントリすべてを含むか否かをチェックする。信号のリストがエントリ全てを含まない場合、識別したポート設定の組合せが削除される。
【００６８】
このようにして、構成チェックモジュール１０２は、新たに選択した周辺機器が必要とする信号すべての入出力を可能にするのに十分なポート設定の組合せのセットを識別する。
【００６９】
次いで、構成チェックモジュール１０２は、識別した許容可能な組合せの各々を順に処理する（Ｓ１０−３）ことに進む。詳細には、特定の組合せに関連付けられたポート設定が、構成データベース１１９の各既存エントリと比較される。本実施形態において、その各エントリは、各ポート４５〜５６ごとに１つの一連の値を有し、関連付けられたポートに関するチャネル設定のいずれか、あるいは、ヌル値を取ることができる。現在処理されているポート構成の組合せが、構成データの項目内のヌル値を識別した場合、あるいは、特定のポートに関して構成データの項目により識別されるポート設定と同一のポート設定の値を識別した場合、構成データの新たな項目が生成され、記憶される。
【００７０】
本実施形態において、生成された構成データの新たな各項目は、現在検討されている組合せにより識別された対応するポート設定に対して設定された影響を受ける識別したポートに対応する任意のヌル値のポート設定値を用いて処理されている構成データの項目のコピーを含む。
【００７１】
したがって、例えば、以下の影響を受ける可能性のある識別したポート設定の組合せのセットを、以下の記憶された構成データの項目に対して処理すると、
Ｄ＝１
Ｋ＝２
Ｄ＝１かつＫ＝２
【００７２】
【表１】
2007527063.tif 000003
【００７３】
ここで、＿は、チャネルに関するヌル値を示している。組合せすべてを処理した後、以下の構成データの項目が記憶される。
【００７４】
【表２】
2007527063.tif 000004
【００７５】
構成チェックモジュール１０２が、影響を受ける識別したポート設定の組合せすべてを処理した後、次いで、構成チェックモジュール１０２は、新たに記憶された構成データの項目が存在するか否かを判定する（Ｓ１０−４）。新たに記憶された項目が存在しない場合、これは、新たな周辺機器の追加が、以前に選択した周辺機器のセットと適合せず、選択した周辺機器のセットすべてが、これら周辺機器に関連付けられたすべての信号を受信及び出力できるようにする可能なポート設定がないことを示す。次いで、構成チェックモジュール１０２は、このエラーを記録する（Ｓ１０−５）。
【００７６】
図８に戻って、構成チェックモジュール１０２の処理の後、選択した周辺機器のセットに適応できる可能な構成のセットがないと判定された場合（Ｓ８−５）、インターフェースジェネレータ１００は、新たに生成した選択周辺機器レコード１４０の削除に進み、選択した周辺機器を現在選択されているリストに追加できない理由を明らかにする警告を表示する。この警告は、新たな周辺機器のために影響を受けるポート設定の生成したリストを利用し、識別したポートを代わりの値に設定させる他の選択した周辺機器を識別することにより、生成される。
【００７７】
図１０に戻ると、構成データの新たな項目を生成した場合、その項目を使用して、以前に記憶された構成データ１１９を置き換える。次いで、構成チェックモジュール１０２は、構成データの各項目ごとに、関連付けられたピン名のセットを計算する。本実施形態において、これは、ポート４５〜４６に関連付けられた各ピンを順に取得し、構成データにより識別されたポート設定を用いて、そのピンとそのピンのピンラベルとを関係付ける構成テーブルにより、そのピンのピンラベルを識別することによって、達成される。
【００７８】
ピン名の完全なリストが生成されたとき、構成チェックモジュール１０２は、各ピンラベルのセットごとに、そのラベルが、汎用入力／出力ラベル、又は、選択周辺機器レコード１４０のいずれかの周辺機器名１４１に対応する周辺機器名１２２を有する周辺機器のうちの１つの信号のリスト１２３内の信号のいずれかに対応するか否かをチェックする。対応しない場合、記憶されたデフォルトピン名１１６を用いて、ピンのラベルを、そのピンのデフォルトラベルに再設定する。次いで、最後に、構成データの項目が、構成データの各項目に関連付けられたピン名のリストに含まれる汎用入出力の番号に基づいて記憶される。
【００７９】
ピンラベルが生成され、構成データ１１９が、含まれた汎用入出力の番号の昇順に順序付けられると、次いで、構成チェックモジュール１０２は、生成したピン名の各リストを処理して、各リストごとに、構成データが、周辺機器データベース１０８内のステータスデータ１２５により入力信号として識別されたいずれかの信号の重複表現を含むか否かを識別する（Ｓ１０−７）。信号の重複表現を含む場合、構成チェックモジュール１０２は、好適入力リスト１１２を利用して、好適入力以外のあらゆる重複入力に関するピンラベルを、構成モジュール２２のデフォルトピン名１１６により示されるこれらのピンのデフォルトピン名に設定する。
【００８０】
最後に、構成チェックモジュール１０２は、インターフェース生成モジュール１００に、ユーザインターフェースディスプレイ１４５を更新させる（Ｓ１０−８）。この更新は、ピンの表示を、汎用入出力の最大番号に関連付けられた構成データの項目に関するピンラベルに対応するピンラベル１５６を用いて再ラベル付けすること、及び、選択した周辺機器を表すボックスを、選択した周辺機器用の信号に関連付けられたピンに、ラインを介して接続することによってなされる。
【００８１】
図１１は、ユーザインターフェースディスプレイ１４５を用いて複数の周辺機器を選択した後のユーザインターフェースディスプレイ１４５を例示している。図１１を図９と比較すると、メインウインドウ１５２内に、９つの四角のブロックが示されており、各ブロックは、以前に選択した種々の周辺機器に関連付けられていることが確認できる。また図１１を図９と比較すると、ピンラベル１５６は、図示した周辺機器が有効になると、これらのピンの目的の変更を反映するよう、更新されていることが確認できる。最後に、図９及び図１１の構成ウインドウ１６０を比較すると、構成データ１６２は、現在選択されている構成データの項目のポート設定に対応するよう変更され、ヌル値が、これらのポートに関するデフォルト値１１８と置き換わっていることを示し、汎用入出力ライン１６３の計算された数もまた、構成ボタンのセット１６４の一部分として表示される利用可能な構成数を有するよう更新されている。
【００８２】
図８に戻って、インターフェースジェネレータ１００が、ユーザが周辺機器ウインドウ１５０において周辺機器のリスト１５１のエントリのうちの１つも選択しなかったと判定した場合（Ｓ８−２）、次いで、インターフェースジェネレータ１００は、ユーザがメインウインドウ１５２内の選択した周辺機器を表すボックス１６７のうちの１つを選択したか否かを確認するようチェックする（Ｓ８−７）。
【００８３】
ユーザが選択していた場合、次いで、インターフェースジェネレータ１００は、ボックス１６７を選択するのに、マウスボタンの左を利用したか、又は、右を利用したかをチェックする（Ｓ８−８）。左マウスボタンを利用してボタンを押しながらボックス１６７を選択した場合、インターフェースジェネレータ１００は、選択した周辺機器の位置座標１４４を、ポインタ１６５の示す位置に変更することに進む。
【００８４】
左ボタンを離したとき、インターフェースジェネレータ１００は、ポインタ１６５の示す座標１４４が、メインウインドウ１５２の領域の外側の位置を示すか否かをチェックする（Ｓ８−１０）。領域の外側でない場合、インターフェースジェネレータ１００は、ポインタ１６５の座標を中心とするように、選択した周辺機器を表すボックス１６７を移動することによって、ユーザインターフェースディスプレイを更新する（Ｓ８−１１）。
【００８５】
反対に、インターフェースジェネレータ１００が、ポインタ１６５の位置座標がメインウインドウ１５２の領域の外側の位置を示すと判定した場合（Ｓ８−１０）、これは、ユーザが、現在マイクロコントローラ８内でアクティブであるとして示されている周辺機器のセットから、選択した周辺機器を除去したいことを示していると解釈される。したがって、インターフェースジェネレータ１００は、選択した周辺機器に関する選択周辺機器レコード１４０を、選択周辺機器データベース１２０内から削除し、そして、選択した周辺機器を表すボックス１６７を削除することにより、メインウインドウ１５２内のディスプレイを更新する。次いで、インターフェースジェネレータ１００は、構成チェックモジュール１０２を呼び出して、構成データ１１９を更新し、選択した周辺機器の削除を明らかにし、図１２を参照して説明するように、それに合わせて、ディスプレイ１４５に現れるピン１５２を再ラベル付けする。
【００８６】
構成チェックモジュール１０２が実行する処理のフロー図である図１２を参照すると、この段階において、選択周辺機器データベース１２０は、その中に、互いに適合する選択した周辺機器を表す、選択周辺機器レコード１４０を記憶している。すなわち、選択した周辺機器すべてが、それらに必要な信号すべてを受信及び出力することを可能にするポート構成のセットが少なくとも１つは存在する。
【００８７】
構成データ１１９の新たなセットを生成するために、構成チェックモジュール１０２は、まず、周辺機器に関する第１の周辺機器レコードを選択し（Ｓ１２−１）、前述した図１０のステップ（Ｓ１０−１）と関連させて、構成データを更新することに関して説明したのと同じ方法により、第１の周辺機器レコードにより識別された周辺機器に関連する信号を出力及び受信するポートを識別する（Ｓ１２−２）ことに進む。
【００８８】
次いで、構成チェックモジュール１０２は、影響を受ける可能性のある識別したポート設定の組合せのうち、第１の周辺機器の入出力すべてを受信及び出力することを可能にする組合せを識別する（Ｓ１２−３）ことにより、構成データの項目のセットを生成する。次いで、構成チェックモジュール１０２は、選択した周辺機器に関する入出力の完全なセットを受信及び出力することができるポート設定の各組合せごとに、構成データ１１９の項目を生成し、記憶する。これら生成した構成データ１１９の項目は、ポート設定が、識別した組合せに関するポート設定を識別し、かつ、残りのポート設定すべてが、ヌル値で表される構成データ１１９を含む。
【００８９】
次いで、構成チェックモジュール１０２は、選択周辺機器データベース１２０内の最後の周辺機器レコード１４０に達したか否かをチェックする（Ｓ１２−４）。最後の周辺機器レコード１４０に達していない場合、次の選択周辺機器レコード１４０が処理され（Ｓ１２−５）、次いで、その周辺機器に関する影響を受けるポート設定のセットが識別される（Ｓ１２−６）。次いで、その周辺機器に関する影響を受ける可能性のあるポート設定の組合せがフィルタリングされ（Ｓ１２−７）、現在検討されている周辺機器が、完全な信号のセットを受信及び出力することのできない組合せを除去する。次いで、この識別した可能な組合せのセットを使用して、構成データのさらなる項目を生成する（Ｓ１２−８）。このさらなる項目の生成は、図１０のステップ（Ｓ１０−３）と関連させて前述したのと同じ方法で、現在記憶されている構成データの項目と適合する組合せを判定することによってなされる。
【００９０】
この処理（Ｓ１２−４〜Ｓ１２−８）は、選択周辺機器データベース１２０内の最後の周辺機器レコード１４０に達するまで、連続する各選択周辺機器レコード１４０ごとに、繰り返される。
【００９１】
この段階において、構成モジュール２２は、その中に、現在選択されている周辺機器のセットが必要とする信号すべてを入出力できるようにする可能なポート構成すべてを識別する構成データ１１９を記憶している。次いで、構成チェックモジュール１０２は、ステップ（Ｓ１０−６〜Ｓ１０−８）と関連させて前述したのと同じ方法で、記憶された構成データ１１９の各項目ごとに、ピン名のリストを判定し、次いで、構成チェックモジュール１０２は、ピン名の各リストに存在する汎用入出力の番号により、それら組合せを順序付ける（Ｓ１２−９）。次いで、構成チェックモジュール１０２は、生成したピン名の各リストをチェックし、あらゆる選択した周辺機器に関して、すべての入力信号のすべての重複表現を識別し、重複表現を検出した場合は常に、構成チェックモジュール１０２は、好適入力リスト１１２を利用して、入力のうちのどれが好適入力であるかを識別し、残りのすべての重複入力に関するピン名を、そのピンのデフォルトピン名１１６に変更する（Ｓ１２−１０）。
【００９２】
最後に、構成チェックモジュール１０２は、インターフェースジェネレータ１００に、構成データと、汎用入出力の最大番号に関連付けられた構成データ１１９の項目に関するピン名のセットとを使用して、メインウインドウ１５２のピンの表示１５６を再ラベル付けさせ、構成ウインドウ１６０のポート構成データ１６２を更新させる（Ｓ１２−１１）。次いで、インターフェースジェネレータ１００により、周辺機器１６７を表す各ボックスをこれらの周辺機器に関連付けられた入出力の各々に接続するラインの表示を、ピンデータ１５６によりラベル付けされるように更新して、現在選択されている構成を示すようにする。
【００９３】
このように、周辺機器のリスト１５１から周辺機器のセットを選択し、メインウインドウ１５２内から周辺機器を除去することにより、ユーザは、マイクロコントローラ８上で有効にしたい周辺機器のセットを識別することができる。同時に、各選択に関して、構成チェックモジュール１０２は、現在選択されている周辺機器のセットに関連付けられた信号を出力可能にするために必要なポート設定を識別する構成データの項目のセットを判定し、適合しない周辺機器の選択をいつ行ったかについて、及び、このような選択した周辺機器のセットが適合しない理由を明らかにする。
【００９４】
さらに、前述したように、識別した選択した周辺機器と適合する特定のポート設定のセットを選択したとき、構成モジュール２２はまた、マイクロコントローラ８の略図表示１５４を、所定の周辺機器のセットに関して、マイクロコントローラの各ピンの目的を示すピン名のセット１５６とともに表示させる。
【００９５】
図８に戻ると、インターフェース生成モジュール１００が、ユーザが選択した周辺機器を表すボックス１６７のうちの１つも選択していないと判定した場合（Ｓ８−７）、次いで、インターフェースジェネレータ１００は、マイクロコントローラ１５４の表示領域が選択されたか否かをチェックする（Ｓ８−１３）。
【００９６】
マイクロコントローラ１５４の表示領域が選択された場合、本実施形態においては、これを使用して、ユーザがデータを入力し、マイクロコントローラ８に存在するクロックモジュール３６に関する設定を特定できるようにする。
【００９７】
より詳細には、まず、ユーザインターフェースジェネレータ１００は、クロックモジュールに対応する周辺機器データベース１０８内、及び、選択周辺機器データベース１２０内のレコードを識別し（Ｓ８−１４）、次いで、インターフェースジェネレータ１００は、ユーザが現在のクロック設定を変更できるようにするため、ディスプレイメニューを生成する（Ｓ８−１５）。
【００９８】
図１３は、マイクロコントローラ８上のクロック３６に関する設定を変更するためのユーザインターフェースディスプレイメニューを例示している。図１３に示すように、メニューは、周辺機器データベース１０８からの選択周辺機器レコード１２１のレジスタ名１２５に対応するレジスタ名のリスト２００を含み、その隣には、一連の現在値２０２が表示されている。それら現在値２０２は、選択した周辺機器に関するレジスタ値１４２及び変数値１４３に対応する説明である設定説明１３４を含む。
【００９９】
マウス３の制御下にあるポインタ１６５を用いて個々のレジスタを選択すると、次いで、レジスタに関して可能な設定１３４のすべてを明らかにするドロップダウンメニュー２０４が現れるか、あるいは、ユーザによる変数値１２７の入力を可能にするボックスが表示される。次いで、ユーザは、メニュー２０４からエントリを選択してデータを入力することにより、又はキーボード４を介してデータを入力することにより、現在の設定を変更することができる。
【０１００】
値を変更した後、ユーザがその設定に満足する場合、ユーザは、ポインタ１６５を用いて、ＯＫボタン２０６を選択する。次いで、これにより、インターフェースジェネレータ１００は、選択した周辺機器のレジスタ値１４２及び変数値１４３を選択した設定に対応するように更新する。代わりに、ユーザは、キャンセルボタン２０７を選択することもできる。この場合、選択した周辺機器に関するレジスタ値１４２は更新されない。ＯＫボタン２０６又はキャンセルボタン２０７のいずれかが選択された後、インターフェースジェネレータ１００は、メインディスプレイ１４５の表示に戻る。
【０１０１】
同様にして、インターフェースジェネレータ１００が、既存の周辺機器を表すボックス１６７がマウスの右ボタンを用いて選択されたと判定した場合（Ｓ８−８）、選択した周辺機器に関連付けられた設定を入力及び変更するため、同様のディスプレイメニューを生成する。次いで、選択した周辺機器に関する選択周辺機器レコード１４０のレジスタ値１４２及び変数値１４３が、クロックの変数を更新することに関して説明したのと同じ方法により、更新される。同様に、何らかの変更がなされた後、ＯＫボタンが選択されると、選択周辺機器レコード１４０に関する対応するレジスタ値１４２及び変数値１４３が更新される（Ｓ８−１６）。
【０１０２】
このようにして、ユーザは、個々の周辺機器レコード１４０に関連付けられたデフォルト設定を変更することができるので、選択した周辺機器に関する、レジスタ６５−１〜６５−Ｎ；８８；９２，９４に記憶するのに必要な値を確認することができる。
【０１０３】
図８を参照すると、インターフェースジェネレータ１００が、ユーザがチップ１５４に対応する領域を選択しなかったと判定した場合、次いで、インターフェースジェネレータ１００は、ユーザインターフェース画面上の構成コントロールボタン１６４のいずれかが選択されたか否かをチェックする（Ｓ８−１７）。
【０１０４】
本実施形態において、構成コントロールボタン１６４は、構成モジュールが記憶した構成データ１１９の最初（first）、前（previous）、次（next）、又は最後（last）の項目を選択するための一連のボタンを含む。それらボタンのうちの１つが選択されると、ディスプレイ生成に現在使用されている構成データの項目に関連する、選択したボタンにより識別される構成データの項目を用いて、新たなユーザインターフェースディスプレイ１４５を生成する（Ｓ８−１９）。これは、新たに選択した構成データの項目に関連付けられたピンラベルを用いて、ピン１５６を再ラベル付けし、構成ウインドウ１６０を更新し、その周辺機器を表すブロック１６７を再接続することによって、達成される。
【０１０５】
したがって、構成コントロールパネルの種々のボタン１６４を選択することにより、ユーザは、現在選択されている周辺機器のセットに関する許容可能な各種構成の間をスクロールすることができる。そうするに当たり、ディスプレイ上のピンラベルは、実際のマイクロコントローラ８上の物理的ピンの物理的位置に対応するので、ユーザは、種々のポート設定に基づく、周辺機器に対する各種の入出力が存在する物理的位置を見ることができる。このようにして、可能なポート設定を見直し、特定の選択した周辺機器のセットに関する好適なポート設定を確認することができる。
【０１０６】
現在選択されている周辺機器のセットに関する信号を受信及び出力するのに適したポート設定に関する構成データのみが記憶されるので、ユーザは、可能なポート設定の組合せのうち限られた数のポート設定のみを見直せばよい。本実施形態においては、任意のポート設定に関して、構成データの項目におけるヌル値に対応するデフォルト値を利用することにより、この限られた選択が、さらに減少される。したがって、ユーザは、ポート設定の変更が現在選択されている周辺機器のセットの入力又は出力に影響を与えない重複組合せについては、見直す必要はない。
【０１０７】
構成ボタン１６４のいずれかが選択されたか否かをチェック（Ｓ８−１７）した後、次いで、インターフェースジェネレータ１００は、現在選択されている設定に対応する構成及びポート構成に関して、ユーザがマイクロコントローラ８を構成する構成プログラム３２を構築する命令を入力したか否かをチェックする（Ｓ８−２０）。構成プログラム３２を生成する命令が入力されていない場合、インターフェースジェネレータ１００は、ユーザが、ポインタ１６５を用いて周辺機器ウインドウ１５０内に表示された周辺機器のいずれかを選択したか否かを再度チェックする（Ｓ８−２）。
【０１０８】
インターフェースジェネレータ１００が、構成プログラム３２を生成する命令が入力されたと判定したとき（Ｓ８−２０）、次いで、出力モジュール１０６が呼び出される。出力モジュール１０６は、まず、個々の周辺機器及びクロックのレジスタ設定が適合するか否かをチェックする（Ｓ８−２１）。これは、ルールデータベース１１４内のルールと、選択周辺機器データベース１２０内の選択周辺機器レコード１４０に関するレジスタ値１４２及び変数値１４３とを利用することによって、達成される。ある種の不適合が存在する典型的な理由は、周辺機器のための選択したボーレート（baud rate）が、クロック３６に関する設定に基づいて生成することができる可能なクロック信号と適合しないことである。
【０１０９】
出力モジュール１０６が、不適合なレジスタ設定があると判定した場合、出力モジュール１０６は、設定の不適合を明らかにするエラーメッセージを表示する（Ｓ８−２２）。このため、ユーザは、それに合わせて、その設定を調節することができる。
【０１１０】
出力モジュール１０６が、各種周辺機器の設定とクロックの設定との間に不整合はないと判定した場合（Ｓ８−２１）、次いで、出力モジュール１０６は、コード生成モジュール１０４を呼び出す。コード生成モジュール１０４は、ディスプレイ生成のために現在選択されている構成の項目と、選択周辺機器データベース１２０内の選択周辺機器レコード１４０に関するレジスタ値１４２及び変数値１４３とを利用して、マイクロコントローラ８のレジスタ６２、６４、６５−１〜６５−Ｎ内の対応する値を設定するための構成プログラム３２を生成する。その結果、ユーザインターフェースが示すものに対応するように、マイクロコントローラ８が構成されることになる。
【０１１１】
より詳細には、選択した周辺機器の各レジスタ６５−１〜６５−Ｎごとに、レジスタ値は、選択周辺機器データベース１２０に記憶された選択周辺機器レコード１４０のレジスタ値１４２及び変数値１４３から決定される。同様に、クロック３６に関連付けられたレジスタ６４に関するレジスタ値は、クロックに関連付けられた選択周辺機器レコード１４０のレジスタ値１４２及び変数値１４３から決定される。最後に、各ポート４５〜５６に関連付けられたレジスタ６２ごとに、レジスタ値が、現在利用されている構成データの項目から決定され、記憶されたデフォルト構成データ１１８により識別されるデフォルト値にすべてヌル値を再設定して、ユーザインターフェースディスプレイ１４５を生成する。
【０１１２】
したがって、コード生成モジュール１０４は、記憶された選択周辺機器レコード１４０と、現在選択されている構成データの項目１１９とを利用して、マイクロコントローラ８に、マイクロコントローラ８における適切なレジスタ６２、６４、６５−１〜６５−Ｎに識別したレジスタ値を記憶させるための構成プログラム３２を生成する。
【０１１３】
次いで、この生成した構成プログラム３２が、コンピュータのメモリ１１に記憶される。次いで、構成プログラム３２を、インターフェース６を介して、回路基板７上のマイクロコントローラ８にダウンロードすることができる。これにより、選択した構成データに対応するようにマイクロコントローラ８が構成される。その結果、マイクロコントローラ８における選択したレジスタ設定を利用して、他のプログラムデータ３０をテストし、これら設定の組合せ及びコンパイルされたプログラムデータ３０が、マイクロコントローラ８に所望の機能を実行させるか否かを判定することができる。
【０１１４】
本実施形態においては、識別した設定のセットをマイクロコントローラに採用させるための構成プログラム３２を生成することに加えて、出力モジュール１０６は、マイクロコントローラ８の設計略図表示（design schematic representation）の形でマイクロコントローラ８の表示を印刷するためのデータを生成するよう設定されている。この設計略図表示は、選択した構成に関するピンラベルにより識別されるよう、マイクロコントローラ８の入出力を示し、この表示において、ピンラベルは、選択した周辺機器のセットに関連付けられた信号リスト１２３にしたがってグループ化されている。この設計略図表示はまた、マイクロコントローラ８又はプリント回路基板の物理的表示として、マイクロコントローラ８の入出力を示し、この表示において、ピンは、ユーザインターフェースディスプレイ１４５における略図表示１５４と同様の方法により、ピンの物理的位置にしたがってラベル付けされている。
【０１１５】
さらに、本実施形態において、出力モジュール１０６は、他のソフトウェアパッケージにエクスポートできるような形で、これらの図を表すデータを生成するよう設定されている。そのソフトウェアパッケージとして、例えば、構成データ及びレジスタ設定によって決定された通りに設定されたマイクロコントローラ８とともに使用するための、プリント回路基板を設計するソフトウェアパッケージや、構成したマイクロコントローラ８及び回路基板７上に存在する別のチップの電気的適合性を検査するソフトウェアパケージがある。
【０１１６】
（第２の実施形態）
次に、図１４〜図２１を参照して本発明の第２の実施形態を説明する。
【０１１７】
第１の実施形態においては、回路基板７上の単一のマイクロコントローラ８をテストする場合における、マイクロコントローラのインラインテストを実行するコンピュータシステムについて説明した。マイクロコントローラ８は、同一の回路基板上に設けられた複数の外付け周辺機器に取り付けられることが多い。本実施形態においては、マイクロコントローラの構成をプログラムすることができ、さらに外付け周辺機器に関する構成データを生成することができるシステムについて説明する。
【０１１８】
本発明の第２の実施形態にしたがうインラインテストを実行するためのコンピュータシステムを示した図１４を参照すると、図１４に示したコンピュータシステムのほとんどは、第１の実施形態と関連させて説明したシステムと同一であるので、前の第１の実施形態のシステムに現れた要素と同一の要素については、同一の参照番号を使用した。しかしながら、第１の実施形態と異なり、本実施形態においては、マイクロコントローラ８のみが取り付けられた回路基板７をテストする代わりに、テストする回路基板７は、その上にマイクロコントローラ８及び複数の外付け周辺機器チップ３００−１〜３００−Ｎを設けている。チップ上に設けられた代表的な外付け周辺機器は、Ｚｉｇｂｅｅチップ、イーサネット（登録商標）接続、及び、１つ又は複数のＵＳＢポートである。
【０１１９】
マイクロコントローラ及び複数の外付け周辺機器３００−１〜３００−Ｎを含む回路基板をプログラムする場合、マイクロコントローラ８の内蔵周辺機器の構成に加えて、マイクロコントローラ８のメモリ内に記憶されたいずれのプログラムも、内蔵周辺機器の処理と適合するように、外付け周辺機器３００−１〜３００−Ｎのレジスタをプログラムする必要がある。したがって、例えば、Ｚｉｇｂｅｅチップの場合、ＵＡＲＴ内蔵周辺機器を、マイクロコントローラ内で利用できるようにする必要があり、内蔵ＵＡＲＴ及びＺｉｇｂｅｅチップの構成は、ボーレート、パリティ等の点で、一致させなければならない。そのために、本発明の本実施形態にしたがうと、前の実施形態の構成モジュール２２の代わりに、以下で説明するように、変更した構成モジュール３０２が設けられる。変更した構成モジュール３０２により、適切な内蔵周辺機器を選択し、選択した内蔵周辺機器に加えて、接続された外付け周辺機器３００−１〜３００−Ｎに合わせた適切な構成データを決定するための、マイクロコントローラ８のプログラミングが容易になる。
【０１２０】
（変更した構成モジュール）
図１５は、本発明の本実施形態にしたがう、変更した構成モジュール３０２のサブコンポーネントの概略ブロック図である。
【０１２１】
変更した構成モジュール３０２は、前の実施形態の構成モジュール２２と大体は同じである。しかし、変更した構成モジュール３０２は、対話型設計環境２０によりサポートされる外付け周辺機器の信号と可能な設定とを定義するデータを記憶する外付け周辺機器データベース３０４；外付け周辺機器に関連付けられたレジスタに関するユーザ選択値を記憶するよう動作可能な外付け周辺機器ストア３０６；及び、外付け周辺機器に関するユーザ入力を処理するための選択モジュール３０８を追加で備えている。これらについては、以下で詳述する。
【０１２２】
（外付け周辺機器データベース）
図１６は、外付け周辺機器データベース３０４内に記憶される外付け周辺機器レコード３１０の概略ブロック図である。外付け周辺機器レコード３１０は、対話型設計環境２０がサポートするよう設定されている各外付け周辺機器３００−１〜３００−Ｎごとに、外付け周辺機器データベース３０４内に記憶される。外付け周辺機器レコード３１０の構成は、周辺機器データベース１０８内に記憶される周辺機器レコード１２１の構成と類似している。前述した周辺機器レコード１２１と同様に、本実施形態では、外付け周辺機器レコード３１０は、周辺機器の名称を識別する名称データ１２２、レジスタ名のリスト１２５、レジスタレコード１２６のセット及び変数値１２７のセットを有する。ただし、レジスタレコード１２６及び変数値１２７は、前述したものと全く同一である。
【０１２３】
しかしながら、信号のリスト１２３及びステータスデータ１２４を有する代わりに、本実施形態では、各外付け周辺機器レコード３１０は、外付け周辺機器に関して、マイクロコントローラ８内で利用できるようにするのが好ましい内蔵周辺機器を識別して、マイクロコントローラ８が外付け周辺機器と通信できるようにする好適接続データ３１２；外付け周辺機器に関して、内蔵周辺機器と外付け周辺機器との間で一致する必要のあるレジスタ値と、ボーレート等の変数とを識別する接続要件のリスト３１３；及び、通信するのに適切な内蔵周辺機器を利用することができない場合に、マイクロコントローラと外付け周辺機器との間の直接通信のための入力ピン及び出力ピンのセットを識別する仮想要件のセット３１４を有する。
【０１２４】
したがって、例えば、通常ＵＡＲＴ接続を介してマイクロコントローラと通信するＺｉｇｂｅｅチップを備えた外付け周辺機器の場合、Ｚｉｇｂｅｅチップを表す外付け周辺機器レコード３１０に関する好適接続データ３１２には、
好適接続：ＵＡＲＴ  Ａ、ＵＡＲＴ  Ｂ
を含めることができる。
【０１２５】
このようなエントリは、対話型設計環境２０内でＺｉｇｂｅｅチップが選択されたときはいつでも、選択した第１のＺｉｇｂｅｅチップを内蔵周辺機器ＵＡＲＴ  Ａを介してマイクロコントローラ８に接続するのが好適であることを示している。ＵＡＲＴ  Ａが使用できず、接続のために、Ｚｉｇｂｅｅチップが選択されれば、内蔵周辺機器ＵＡＲＴ  Ｂを介して接続するのが好適であろう。最後に、ＵＡＲＴ  Ａ及びＵＡＲＴ  Ｂのどちらも使用できなければ、対話型設計環境２０は、後述するように、さらなるＵＡＲＴ接続をエミュレートするようにマイクロコントローラ８を構成しようと試みるであろう。
【０１２６】
（外付け周辺機器ストア）
図１７は、外付け周辺機器ストア３０６内に記憶される複数の選択外付け周辺機器レコード３４０の概略ブロック図である。初めて対話型設計環境が呼び出されるとき、外付け周辺機器ストア３０６は、データを記憶していない。以下で説明するように、ユーザが、ユーザインターフェースを介して外付け周辺機器の表示を選択すると、新たな選択外付け周辺機器レコード３４０が、外付け周辺機器ストア３０６内に記憶される。
【０１２７】
外付け周辺機器ストア３０６に記憶される選択外付け周辺機器レコード３４０は、選択内蔵周辺機器レコード１４０を記憶するための選択周辺機器データベース１２０内に記憶される周辺機器レコード１４０に類似している。本実施形態において、各選択外付け周辺機器レコード３４０は、外付け周辺機器データベース３０４の外付け周辺機器レコード３１０からの選択した周辺機器に関する周辺機器名１２２に対応する周辺機器名３４１；レコードにより識別される外付け周辺機器に関連付けられたレジスタ及び変数に関する現在の設定のセットであるレジスタ値３４２及び変数値３４３のセット；インターフェースジェネレータ１００が生成した画面ディスプレイ内に、外付け周辺機器名３４１を表示するボックスを示して、識別した外付け周辺機器の存在の場所を特定するｘｙ座標の対である位置データ３４４；及び、レコードにより表される外付け周辺機器をマイクロコントローラ８に接続する内蔵周辺機器又はピン接続を識別する接続データ３４５を有する。これらについては、後に詳述する。
【０１２８】
（変更した構成モジュールを用いた処理）
初めて変更した構成モジュール３０２が呼び出されるとき、インターフェースジェネレータ１００は、初期ユーザインターフェース画面をディスプレイ画面２に表示させる。図１８は、本発明の本実施形態にしたがう初期ユーザインターフェースディスプレイ１４５を例示している。このユーザインターフェースディスプレイは、第１の実施形態において最初に生成されるユーザインターフェースディスプレイとほとんど同一である。異なっている点は、ユーザインターフェースの左側に表示される周辺機器ウインドウ１５０が、２つの部分に分かれていることである。第１のウインドウ１５０は、一連のアイコン１５１を表示し、各アイコンは、構成データを生成できる対象のマイクロコントローラ８内に存在する各内蔵周辺機器４０−１〜４０−Ｎに関連付けられている。第２のウインドウ３５０は、対話型設計環境２０がサポートするよう動作可能な各外付け周辺機器に関連付けられた一連のアイコンを表示している。それら外付け周辺機器に関する外付け周辺機器レコード３１０は、外付け周辺機器データベース３０４内に記憶されている。
【０１２９】
第１の実施形態の場合のように、マウス３の制御下にあるポインタ１６５を用いて、ユーザは、ユーザインターフェースディスプレイ画面１４５内の各種領域を選択することができる。これにより、構成モジュール２２は、表示するユーザインターフェースディスプレイ１４５、選択周辺機器データベース１２０内に記憶されるデータ、構成データ１１９、及び、本実施形態においては、外付け周辺機器ストア３０６内に記憶されるデータを変更する。
【０１３０】
初期画面が表示されると、本実施形態における処理は、第１の実施形態において行われる処理と類似している。しかしながら、インターフェースジェネレータ１００が、ユーザが周辺機器ウインドウ１５０内又は外付け周辺機器ウインドウ３５０内の周辺機器の表示のいずれかを選択したか否かをチェックする場合、図８と関連させて前述した処理は、図１９を参照して次に説明するように変更される。
【０１３１】
内蔵周辺機器又は外付け周辺機器のいずれかを表すアイコンのうち１つが選択されたと判定された後、インターフェースジェネレータ１００は、選択した周辺機器が、第１のウインドウ１５１から選択された内蔵周辺機器であるか、又はウインドウ３５０から選択された外付け周辺機器であるかを判定する（Ｓ１９−１）。選択されたアイコンが内蔵周辺機器を表すと判定された場合、実行される処理は、図８のステップＳ８−３からＳ８−６に関連させて前述したのと同じ方法で進行する。
【０１３２】
外付け周辺機器の表示が選択されたと判定された場合、次いで、インターフェース生成モジュール１００は、新たに選択した外付け周辺機器を表すブロックを表示し（Ｓ１９−２）、外付け周辺機器ストア３０６に記憶される新たな選択外付け周辺機器レコード３４０を生成する。新たに生成した選択外付け周辺機器レコード３４０において、周辺機器名３４１が、外付け周辺機器のリスト３５０からの選択した周辺機器に対応する外付け周辺機器レコード３１０の周辺機器名１２２に設定される。次いで、選択した周辺機器に関するレジスタ値３４２及び変数値３４３が、デフォルト値に設定され、ユーザがボタン又はマウスを離すまでポインタ１６５を追跡して、ｘｙ位置が設定される。
【０１３３】
マウス３上のボタンが離されると、インターフェースジェネレータ１００は、選択モジュール３０８を呼び出し、次いで、選択モジュール３０８は、新たに生成した選択外付け周辺機器レコード３４０の周辺機器名３４１に対応する周辺機器名１２２を有する外付け周辺機器レコード３１０の好適接続データ３１２を利用して、選択した外付け周辺機器へ接続するのに適した内蔵周辺機器を選択する。
【０１３４】
より詳細には、選択モジュール３０８は、まず、新たに生成した選択外付け周辺機器レコード３４０の周辺機器名３４１に対応する周辺機器名１２２を有する外付け周辺機器レコード３１０の好適接続のリスト３１２に現れる第１の好適接続を識別する。次いで、選択モジュール３０８は、周辺機器レコード１４０が、処理されている好適接続のリスト３１２のエントリに対応する周辺機器名１２２を有する選択周辺機器データベース１２０内に記憶されているか否かをチェックする（Ｓ１９−４）。周辺機器レコード１４０が記憶されていた場合、これは、識別した内蔵周辺機器が、すでに何か別の使用に割り当てられていることを示しており、次いで、選択モジュール３０８は、好適接続のリスト３１２の最後のエントリに達したか否かをチェックして判定する（Ｓ１９−５）。最後のエントリに達していない場合、次のエントリが選択され、次いで、選択モジュール３０８は、選択周辺機器データベース１２０内のいずれかのエントリが、そのエントリに対応するか否かを判定する。
【０１３５】
選択モジュール３０８が、検討されている好適接続が未だユーザに割り当てられていないと判定した場合（Ｓ１９−４）、選択モジュール３０８は、第１の実施形態と関連させて前述したのと全く同じ方法により、識別した内蔵周辺機器に対応する新たな周辺機器レコードの追加が、既存のポート構成との競合をもたらすか否かを判定する（Ｓ１９−６）ことに進む。識別した内蔵周辺機器が、選択周辺機器データベース１２０のレコードにより識別された内蔵周辺機器と共存できないと判定された場合、次いで、選択モジュール３０８は、好適接続のリスト３１２内の最後の周辺機器に達したか否かをチェックし（Ｓ１９−５）、最後の周辺機器に達していない場合は、そのリスト内の次の可能な周辺機器が、検討されるために選択される（Ｓ１９−４）。
【０１３６】
しかしながら、選択モジュール３０８が、識別した内蔵周辺機器の有効化（activation）が許容され、競合をもたらさないと判定した場合、次いで、選択モジュール３０８は、インターフェース生成モジュール１００に、識別した内蔵周辺機器の表示を画面ディスプレイに追加させ、識別した内蔵周辺機器を識別する選択周辺機器レコード１４０を、選択周辺機器データベース１２０に記憶させる。
【０１３７】
新たな選択周辺機器レコード１４０が記憶されるとき、新たな選択外付け周辺機器レコード３４０に関する接続要件３１３により識別された新たなレコード１４０に関するレジスタ値１４２及び変数値１４３を、その新たな選択外付け周辺機器レコード３４０の対応する値に一致させる。新たに記憶される周辺機器レコード１４０の周辺機器名１２１を識別する接続データ３４５もまた、その新たな選択外付け周辺機器レコード３４０内に記憶される。最後に、インターフェース生成モジュール１００は、ピンを介した新たに選択した内蔵周辺機器と外付け周辺機器との間の接続を示すよう、ディスプレイを更新し、現在の構成データ１１９が、内蔵周辺機器がそのピンを介して信号を受信及び出力することを示すようになる。
【０１３８】
図２０は、ユーザがＺｉｇｂｅｅチップに対応するアイコンを選択した後のユーザインターフェースを例示している。図２０の例示において、Ｚｉｇｂｅｅチップを表すボックス３５５は、適切な内蔵周辺機器（この例では、ＵＡＲＴコネクタのＵＡＲＴ  Ａ）を表すボックス３６０と関連付けられて、示されている。
【０１３９】
外付け周辺機器３４０及びそれに関連付けられた内蔵周辺機器１４０に関するレコードが、外付け周辺機器ストア３０６内及び選択周辺機器データベース１２０内に記憶されると、次いで、インターフェース生成モジュール１００の処理は、第１の実施形態と関連させて前述したのと類似した方法で進行する。
【０１４０】
ユーザが、周辺機器を表すボックス３５５又はボックス３６０のいずれかを選択して、ポインタ１６５をメインウインドウ１５２の外にドラッグした場合、これは、当該周辺機器を削除することを示す。当該ボックスが外付け周辺機器を表す場合、本実施形態においては、これは、その外付け周辺機器に接続された内蔵周辺機器を削除する命令としても解釈される。というのは、循環型（circular）外付け周辺機器レコードに接続データ３４５として記憶されているデータにより、内蔵周辺機器が識別されるからである。同様に、内蔵周辺機器が削除される場合、インターフェース生成モジュール１００は、外付け周辺機器ストア３０６に記憶された外付け周辺機器レコード３４０のいずれかが削除される周辺機器を識別する接続データ３４５を有するか否かをチェックすることに進む。外付け周辺機器レコード３４０のいずれかが削除される周辺機器を識別する接続データ３４５を有する場合、インターフェース生成モジュール１００は、そのレコード及びユーザインターフェース内のそのレコードの表示を削除する。
【０１４１】
ユーザが、前述したのと同様の方法により、マウスの右クリックを用いて、外付け周辺機器３５５又はそれに関連付けられた内蔵周辺機器３６０の表示のいずれかを選択した場合、その周辺機器に関連付けられた値のレジスタエントリを更新することができる。しかしながら、内蔵および外付け周辺機器の両方に関する適合する構成データが確実に記憶されるよう、本実施形態においては、周辺機器のレジスタ値又は変数値が更新されるとき、インターフェース生成モジュール１００は、接続データ３４５及び選択要件３１３を用いて更新を必要とする値及びレジスタを判定することにより、対応する値を、関連付けられた内蔵周辺機器レコード又は外付け周辺機器レコードのレジスタ値及び変数値に入力することに進む。
【０１４２】
図１９に戻って、選択モジュール３０８が、接続リスト３１２の好適周辺機器のすべてが選択周辺機器データベース１２０内に記憶された周辺機器レコード１４０により識別される、あるいは、使用可能な内蔵周辺機器のいずれかが選択されているにもかかわらず適切な構成データを生成できないと判定した場合（Ｓ１９−５）、本実施形態においては、選択モジュール３０８は、マイクロコントローラ自体が、必要な周辺機器をエミュレートして、使用可能なピンのいずれかに信号を出力することができるか否かを判定する（Ｓ１９−８）ことに進む。
【０１４３】
前述したように、外付け周辺機器レコード３１０の仮想要件リスト３１４は、必要な仮想周辺機器をエミュレートするのにマイクロコントローラが必要とする入出力を識別する。内蔵周辺機器のどれも使用できないと判定された後、本実施形態においては、選択モジュール３０８は、現在のピン名のリストをチェックして、汎用入出力に関連付けられたピンを識別する。本実施形態において、次いで、選択モジュール３０８は、新たに生成した周辺機器レコード３４０の現在のデータ位置３４４に最も近い利用可能な汎用入出力ピンを識別する。こうしたピンが識別されると、次いで、インターフェース生成モジュール１００は、特定の型のオンボード周辺機器の仮想周辺機器（すなわち、ソフトウェアエミュレーション）のマイクロチップ１５４の表示の境界内に、ボックスを含ませ、外付け周辺機器ストア３０６内の新たに記憶された選択外付け周辺機器レコード３４０に、そのピンを識別するデータを、接続データ３４５として記憶する。
【０１４４】
図２１は、ユーザインターフェースの一例を示している。この図では、オンボード周辺機器ＵＡＲＴＡ及びＵＡＲＴＢを選択して、選択したインターフェースデータベース１２０内に組み込んだ後のオンボード周辺機器ＵＡＲＴＡ及びＵＡＲＴＢが、ボックス３７０及び３７２としてユーザインターフェース内に表されている。ユーザは、ユーザインターフェースの外付け周辺機器のリスト３５０から、ＵＡＲＴ周辺機器とのインターフェースを必要とするＺｉｇｂｅｅチップを選択する。この特定の例では、さらなるＵＡＲＴが利用できないので、仮想ＵＡＲＴを表すボックス３７５が、ユーザインターフェース内に含まれ、その仮想ＵＡＲＴボックス３７５が、外付けＺｉｇｂｅｅチップを表すボックス３５５に接続されて示されている。
【０１４５】
第１の実施形態の場合のように、ユーザインターフェースから構築を選択するとき（図８のＳ８−２０）、出力モジュール１０６が呼び出される。第１の実施形態のように、出力モジュール１０６は、まず、個々の周辺機器及びクロックに関するレジスタ設定が適合するか否かをチェックする（Ｓ８−２１）。レジスタ設定が適合する場合、出力モジュール１０６は、ユーザインターフェースが示すものに対応する方式によりマイクロコントローラが構成されるよう、マイクロコントローラのレジスタ内に値を設定するための構成プログラム３２を生成する（Ｓ８−２３）ことに進む。さらに、本実施形態においては、構成プログラム３２は、外付け周辺機器ストア３０６内に記憶された選択外付け周辺機器レコード３４０のレジスタ値３４２及び変数値３４３により表される外付け周辺機器に関連付けられたレジスタのための設定もプログラムするよう設定されている。また、構成プログラム３２は、ユーザインターフェース内に仮想周辺機器が表されている場合は、周辺機器のエミュレーションと、識別したピンを介した信号の入出力とのためのソフトウェアコードも生成するよう設定されている。
【０１４６】
（さらなる実施形態及び変更形態）
上述の実施形態においては、構成モジュール２２が、単一のマイクロコントローラ８の表示を定義するデータを記憶し、かつ、特にそのマイクロコントローラ８用の構成プログラム３２を生成するよう設定されたシステムについて記述したが、他の諸実施形態において、各種のマイクロコントローラ８用の構成プログラム３２を生成するための構成モジュール２２を提供できることが理解されよう。
【０１４７】
このようなシステムにおいては、構成モジュール２２は、可能な各マイクロコントローラ８ごとに、構成テーブル１１０及び周辺機器データベース１０８を記憶することが必要となる。まず、ユーザがデータを入力して、構成データ１１９が生成される好適なマイクロコントローラ８を識別する。次いで、構成モジュール２２の処理は、前述したのと同じ方法により、進行することができる。
【０１４８】
このようなシステムの利点は、構成モジュール２２が、特定のマイクロコントローラ８上にある特定の選択した周辺機器を利用できないと判定したとき、構成モジュール２２は、他のマイクロコントローラ群８を表す記憶されたデータを利用して、これら他のマイクロコントローラのいずれかが所望の周辺機器のセットをサポートできるか否かを判定できること、である。次いで、マイクロコントローラ８の選択を変更することをユーザに促すことができ、次いで、構成モジュール２２は、代替のマイクロコントローラ８用の構成プログラム３２の生成に進む。
【０１４９】
上述の実施形態において、構成モジュール２２は、特定の構成に関するピンラベルにより参照される汎用入出力の数に基づいて、構成データ１１９の項目を順序付けると説明したが、構成データの項目を順序付ける他の手段を利用することもできる。
【０１５０】
したがって、例えば、代替実施形態においては、メインウインドウ１５０内のブロック１６７とピンとの間の接続を表す線の長さを測定して、構成データの各項目ごとに計算することができる。次いで、構成データの項目は、その計算された値に基づいて順序付けられることになる。
【０１５１】
このようなシステムの利点は、マイクロコントローラの略図表示１５４の所定の位置に、個々の周辺機器を表すブロック１６７を配置することにより、その選択した周辺機器を利用可能にするため、ユーザが、入出力を望むマイクロコントローラの領域を識別できることである。
【０１５２】
上述の実施形態においては、信号のルーティングを制御するマイクロコントローラ８の構成データレジスタ６２を生成するシステムについて説明した。そのシステムにおいては、ピン４２が、複数のポート４５〜５６にグループ化されている。上述の実施形態においては、各ポートに関連付けられたピン４２の数は、４本又は８本のいずれかであるとして説明した。
【０１５３】
任意の特定のポートに関連付けられるピンの数は、任意の数のピン４２を含み得ることが理解されよう。最も重要なのは、ポートが、ピンのセットではなく、単一のピンを有することができることである。
【０１５４】
個別のセレクタ６０とレジスタ６２とが単一のピン４２に関連付けられたシステムにおいては、どの信号を転送するために使用されるピンの位置を変更することに関して、非常に柔軟性のあるシステムが提供される。レジスタ数の増加により、従来の方法で構成データを判定することが特に複雑な作業になるという事実にもかかわらず、説明した構成データを生成するためのシステムを用いると、このような非常に柔軟性のあるマイクロコントローラを、適切にプログラムすることができる。
【０１５５】
上述の実施形態においては、マイクロコントローラ８の内蔵プログラムストア３８内に記憶する構成プログラム３２の生成について説明したが、マイクロコントローラ８に識別した構成値のセットを記憶させるための生成したプログラムを、内蔵プログラムストア３８内ではなく、マイクロコントローラ８に外付けされた回路基板７のメモリ内に記憶できることが理解されよう。
【０１５６】
上述の実施形態において、レジスタ６４、６５−１〜６５−Ｎのレジスタ値は、記憶されたレジスタ値１４２及び変数値１４３から決定されると説明したが、実際に記憶される値は、これらの値を直接コピーした値ではなく、レジスタ値１４２及び変数値１４３から計算できることが理解されよう。したがって、例えば、３２ｋＨｚのボーレート用の変数値を入力することにより、ユーザは、構成モジュール２２に、レジスタに記憶する必要のある特定の値を計算させ、所望のボーレートの実現が可能となる。代替として、ボーレート、許容値（tolerance）等の複数の値のユーザ入力を利用して、マイクロコントローラ８のレジスタ６４、６５−１〜６５−Ｎに記憶するための単一の値を計算することもできる。
【０１５７】
上記の説明においては、より大きな装置の機能を制御するマイクロコントローラ８について言及したが、本発明は、複数の周辺機器を含む任意のマイクロチップの設計及び構成に適用可能であり、これら周辺機器に関する信号のルーティングは、マイクロチップのレジスタ内に値を記憶することにより制御されることが理解されよう。したがって、マイクロコントローラという用語は、このような周辺機器及びレジスタを含む、このような構成可能なマイクロチップすべてを包含するものと解釈すべきである。
【０１５８】
図面を参照して説明した本発明の実施形態は、コンピュータ装置、及び、コンピュータ装置において実行されるプロセスを備えるが、本発明は、コンピュータプログラム、特に、本発明を実施するために適合化された、キャリア（carrier）上、又は、キャリア内のコンピュータプログラムにも拡張される。このプログラムは、ソースコード又はオブジェクトコードの形をとってもよく、本発明にしたがうプロセスの実装において使用するのに適した任意の他の形をとってもよい。キャリアは、プログラムを保持することができる任意のエンティティ（entity）又は装置とすることができる。
【０１５９】
例えば、キャリアには、例えば、ＣＤ  ＲＯＭ若しくは半導体ＲＯＭといったＲＯＭ等の記憶媒体、又は、例えば、フロッピー（登録商標）ディスク若しくはハードディスクといった磁気記憶媒体を含めることができる。さらに、キャリアは、電気ケーブル若しくは光ケーブルを介して伝送される、又は、無線や他の手段により伝送される電気信号又は光信号等の伝送可能なキャリアであってもよい。
【０１６０】
プログラムが、ケーブル又は他の装置若しくは手段により直接伝送できる信号に具現化される場合、当該ケーブル又は他の装置若しくは手段によって、キャリアを構成してもよい。
【０１６１】
代替として、キャリアは、プログラムが組み込まれた集積回路であってもよく、その集積回路は、関連するプロセスを実行するため、又はその実行において使用するために、適合化される。
【図面の簡単な説明】
【０１６２】
【図１】本発明の第１の実施形態にしたがう、構成データを生成するための構成モジュールを含むマイクロコントローラのインラインテストを実行するためのコンピュータシステムを示す概略ブロック図である。
【図２】例示的なマイクロコントローラを示す概略ブロック図である。
【図３】図２におけるマイクロコントローラのクロックモジュールのコンポーネントを示す概略ブロック図である。
【図４】図１の構成モジュールのサブモジュールを示す概略ブロック図である。
【図５】図４における構成モジュールの周辺機器データベース内の周辺機器レコードを示す概略ブロック図である。
【図６】例示的なマイクロコントローラのポートに関するチャネル設定を確認するための構成テーブルを示す図である。
【図７】図４における構成モジュールの選択周辺機器データベース内の選択周辺機器レコードを示す概略ブロック図である。
【図８】図４の構成モジュールの処理を示すフロー図である。
【図９】図４の構成モジュールが生成したユーザインターフェースを例示する図である。
【図１０】図４の構成モジュールの構成チェックモジュールが、マイクロコントローラ内の選択した周辺機器に関する適合する構成設定を判定する処理のフロー図である。
【図１１】マイクロコントローラ上の利用可能な複数の周辺機器を有効にするために選択した後の、ユーザインターフェースを例示する図である。
【図１２】図４の構成モジュールの構成チェックモジュールが、選択した周辺機器のセットに関する適合する可能な構成設定のセットを計算する処理を示すフロー図である。
【図１３】図３に示すクロックモジュールに関する設定を選択するためのユーザインターフェースメニューを例示する図である。
【図１４】本発明の第２の実施形態にしたがう、構成データを生成するための変更した構成モジュールを含むマイクロコントローラのインラインテストを実行するためのコンピュータシステムを示す概略ブロック図である。
【図１５】図１４における変更した構成モジュールのサブモジュールを示す概略ブロック図である。
【図１６】図１４における変更した構成モジュールの外付け周辺機器データベース内の外付け周辺機器レコードを示す概略ブロック図である。
【図１７】図１４における変更した構成モジュールの外付け周辺機器ストア内の選択外付け周辺機器レコードを示す概略ブロック図である。
【図１８】図１４の変更した構成モジュールが生成したユーザインターフェースを例示する図である。
【図１９】図１４の変更した構成モジュールの処理を示すフロー図である。
【図２０】図１４の変更した構成モジュールが生成した別のユーザインターフェースを例示する図である。
【図２１】図１４の変更した構成モジュールが生成したさらに別のユーザインターフェースを例示する図である。
【図１】
2007527063.tif 000005
【図２】
2007527063.tif 000006
【図３】
2007527063.tif 000007
【図４】
2007527063.tif 000008
【図５】
2007527063.tif 000009
【図６】
2007527063.tif 000010
【図７】
2007527063.tif 000011
【図８】
2007527063.tif 000012
【図９】
2007527063.tif 000013
【図１０】
2007527063.tif 000014
【図１１】
2007527063.tif 000015
【図１２】
2007527063.tif 000016
【図１３】
2007527063.tif 000017
【図１４】
2007527063.tif 000018
【図１５】
2007527063.tif 000019
【図１６】
2007527063.tif 000020
【図１７】
2007527063.tif 000021
【図１８】
2007527063.tif 000022
【図１９】
2007527063.tif 000023
【図２０】
2007527063.tif 000024
【図２１】
2007527063.tif 000025
【国際調査報告】
2007527063.tif 000026
2007527063.tif 000027
2007527063.tif 000028