(57)【特許請求の範囲】
【請求項１】
異なるハードウェア構成へとプログラムで相互接続されることができるハードウェア装置を有するプログラマブル機器を構成する、コンピュータに実装される方法であって、
（ａ）  プログラムを使用してコンピュータディスプレイ上に第１のワークスペースを設けるステップを備え、前記プログラムは、ハードウェア装置の所望の構成を表すグラフィカルシステムハードウェア構成を前記第１のワークスペースにおいてユーザに作成させることを可能にし、さらに、
（ｂ）  前記プログラムを使用してコンピュータディスプレイ上に第２のワークスペースを設けるステップを備え、前記プログラムは、前記ハードウェア装置の所望の構成についての所望のプロシージャを表すグラフィカルシステムプロシージャを前記第２のワークスペースにおいてユーザに作成させることを可能にし、さらに、
（ｃ）  前記グラフィカルシステムハードウェア構成および前記グラフィカルシステムプロシージャを表す構成データを自動的に作成するステップと、
（ｄ）  前記プログラマブル機器を、前記所望のプロシージャにしたがって動作するように前記ハードウェア装置の所望の構成へと構成するステップとを備え、前記構成するステップは、前記構成データを使用して行われる、方法。
【請求項２】
ステップ（ｃ）は、ハードウェア部分およびプロシージャ部分を有する構成ベクトルを作成するステップをさらに含む、請求項１に記載の方法。
【請求項３】
ステップ（ｃ）は、前記グラフィカルシステムハードウェア構成における前記ハードウェア装置の各々を識別し、かつ識別されたハードウェア装置の相互接続を特定する前記構成ベクトルのハードウェア部分を作成するステップをさらに含む、請求項２に記載の方法。
【請求項４】
ステップ（ｃ）は、前記グラフィカルシステムハードウェア構成における前記ハードウェア装置の動作と関連付けられたアクションを特定することによって、前記グラフィカルシステムプロシージャを表す前記構成ベクトルのプロシージャ部分を作成するステップをさらに含む、請求項２に記載の方法。
【請求項５】
ステップ（ｃ）は、前記所望の構成において使用される前記ハードウェア装置のうち１つ以上に関連付けられたパラメータを含むように、前記構成ベクトルを作成するステップをさらに含む、請求項２に記載の方法。
【請求項６】
ステップ（ｃ）は、前記所望の構成において使用される前記ハードウェア装置のうち少なくともいくつかの励起および応答を特定するように、前記構成ベクトルを作成するステップをさらに含む、請求項２に記載の方法。
【請求項７】
前記構成ベクトルを作成するステップは、マーク付け言語を使用して前記構成ベクトルを表すステップをさらに含む、請求項２に記載の方法。
【請求項８】
ステップ（ｄ）は、前記構成データに基づいてプログラム命令を自動的に生成し、前記プログラム命令に基づいて前記プログラマブル機器を構成するステップをさらに含む、請求項１に記載の方法。
【請求項９】
前記プログラマブル機器はＦＰＧＡを含み、前記ハードウェア装置は前記ＦＰＧＡにプログラムされており、ステップ（ｄ）は、コントローラを使用して、前記ＦＰＧＡを前記ハードウェア装置の所望の構成へと構成し、かつ前記所望のプロシージャにしたがって動作させるステップをさらに含む、請求項８に記載の方法。
【請求項１０】
ステップ（ｄ）は、
前記構成データを作用可能なアイテムに分解するステップと、
ソフトウエアコンポーネントを呼出して前記作用可能なアイテムを処理する実行マネージャに、前記作用可能なアイテムを渡すステップと、
前記作用可能なアイテムをファームウェア命令に変換するステップと、
前記ファームウェア命令を前記プログラマブル機器に伝達するステップと、をさらに含む、請求項１に記載の方法。
【請求項１１】
ステップ（ａ）は、前記コンピュータディスプレイ上の、前記第１のワークスペースに隣接して位置決めされたハードウェア装置パレットに複数のハードウェアアイコンを設けるステップをさらに含み、前記プログラムは、ユーザに、前記ハードウェアアイコンを前記ハードウェア装置パレットから前記第１のワークスペースに移動させ、かつ前記ハードウェアアイコンを前記グラフィカルシステムハードウェア構成へと相互接続することを可能とする、請求項１に記載の方法。
【請求項１２】
ステップ（ｂ）は、前記コンピュータディスプレイ上の、前記第２のワークスペースに隣接して位置決めされたプロシージャパレットに複数のプロシージャアイコンを設けるステップをさらに含み、前記プログラムは、ユーザに、前記プロシージャアイコンを前記プロシージャパレットから前記第２のワークスペースに移動させ、かつ前記プロシージャアイコンを前記グラフィカルシステムプロシージャへと相互接続することを可能とする、請求項１１に記載の方法。
【請求項１３】
前記プロシージャアイコンは、前記グラフィカルシステムハードウェア構成から前記ハードウェア装置のうち１つ以上を要するアクションを表し、複数のプロシージャアイコンを設けるステップは、前記プロシージャアイコンのうち少なくともいくつかの各々について、当該プロシージャアイコンに関連付けられ、かつ当該プロシージャアイコンに関連付けられたアクションを行うための命令を提供するコンピュータプログラミングを提供するステップをさらに含む、請求項１２に記載の方法。
【請求項１４】
前記コンピュータプログラミングは、スクリプト言語を含む、請求項１３に記載の方法。
【請求項１５】
前記第２のワークスペースは、前記第１のワークスペースと別個である、請求項１に記載の方法。
【請求項１６】
コンピュータで制御されるシステムであって、
処理を行うための機器と、
前記機器に連結されて前記機器に励起を送信し、かつ前記機器によって生成された反応を受信するための計装機器と、
前記計装機器に連結されたコンピュータとを備え、前記コンピュータは、
ユーザから命令を受信するための少なくとも１つの入力装置と、
ユーザに情報を提示するための少なくとも１つの出力装置と、
プログラム命令およびデータを格納するメモリと、
前記入力装置および出力装置ならびにメモリに連結され、プログラム命令に応答して、前記コンピュータで制御されるシステムに請求項１のステップを行わせるプロセッサとを含む、コンピュータで制御されるシステム。
【請求項１７】
異なるハードウェア構成へとプログラムによって相互接続されることができるハードウェア装置を有するプログラマブル機器を含むコンピュータで制御されるシステムによって実行可能な命令を含むコンピュータ読取可能な記録媒体であって、前記命令は、前記コンピュータ読取可能な媒体に格納され、前記コンピュータで制御されるシステムによって実行されると、
コンピュータディスプレイ上に第１のワークスペースを設け、ハードウェア装置の所望の構成を表すグラフィカルシステムハードウェア構成を第１のワークスペースにおいてユーザーに作成させることを可能にするステップと、
コンピュータディスプレイ上に第２のワークスペースを設け、前記ハードウェア装置の所望の構成についての所望のプロシージャを表すグラフィカルシステムプロシージャを第２のワークスペースにおいてユーザーに作成させることを可能にするステップと、
前記グラフィカルシステムハードウェア構成および前記グラフィカルシステムプロシージャを表す構成データを作成するステップと、
前記プログラマブル機器を、前記所望のプロシージャにしたがって動作するように前記ハードウェア装置の所望の構成へと構成するステップと、を前記システムに行わせるように動作可能であり、前記構成するステップは、前記構成データを使用して行われる、コンピュータ読取可能な記録媒体。
【請求項１８】
前記コンピュータ読取可能な媒体に格納された前記命令は、前記コンピュータで制御されるシステムによって実行されると、前記構成データを構成ベクトルとして作成するように動作可能である、請求項１７に記載のコンピュータ読取可能な記録媒体。
【請求項１９】
前記コンピュータ読取可能な媒体に格納された前記命令は、前記コンピュータで制御されるシステムによって実行されると、
構成ベクトルを作用可能なアイテムに分解するステップと、
ソフトウエアコンポーネントを呼出して前記作用可能なアイテムを処理する実行マネージャに、前記作用可能なアイテムを渡すステップと、
前記作用可能なアイテムをファームウェア命令に変換するステップと、
前記ファームウェア命令を前記プログラマブル機器に伝達するステップと、を使用して前記構成するステップを行うように動作可能である、請求項１７に記載のコンピュータプログラム読取可能な記録媒体。
【請求項２０】
前記コンピュータ読取可能な媒体に格納された前記命令は、前記コンピュータで制御されるシステムによって実行されると、前記コンピュータディスプレイ上の、前記第１のワークスペースに隣接して位置決めされたハードウェア装置パレットに複数のハードウェアアイコンを設けることによって、前記第１のワークスペースを設けるステップを行うように動作可能であり、前記命令は、ユーザに、前記ハードウェアアイコンを前記ハードウェア装置パレットから前記第１のワークスペースに移動させ、かつ前記ハードウェアアイコンを前記グラフィカルシステムハードウェア構成へと相互接続することを可能とする、請求項１７に記載のコンピュータ読取可能な記録媒体。
【請求項２１】
前記コンピュータ読取可能な媒体に格納された前記命令は、前記コンピュータで制御されるシステムによって実行されると、前記コンピュータディスプレイ上の、前記第２のワークスペースに隣接して位置決めされたプロシージャパレットに複数のプロシージャアイコンを設けることによって、前記第２のワークスペースを設けるステップを行うように動作可能であり、前記命令は、ユーザに、前記プロシージャアイコンを前記プロシージャパレットから前記第２のワークスペースに移動させ、前記プロシージャアイコンを前記グラフィカルシステムプロシージャへと相互接続することを可能とする、請求項２０に記載のコンピュータ読取可能な記録媒体。
【請求項２２】
前記プロシージャアイコンは、前記グラフィカルシステムハードウェア構成から前記ハードウェア装置のうち１つ以上を要するアクションを表し、前記コンピュータ読取可能な媒体に格納された前記命令は、前記プロシージャアイコンのうち少なくともいくつかの各々について、当該プロシージャアイコンに関連付けられ、かつ当該プロシージャアイコンに関連付けられたアクションを行うための命令を提供するコンピュータプログラミングを含む、請求項２１に記載のコンピュータ読取可能な記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
技術分野
本開示は概して、計測機器を動作させるための技術に関し、より特定的には、そのような機器を構成し動作させるためのソフトウェアツールに関する。
【背景技術】
【０００２】
発明の背景
科学者は、走査プローブ顕微鏡（ＳＰＭ）を使用して、金またはシリコンといった材料の様々な特性に関するデータを、当該材料の分子および原子にまで、極めて微細な分解能で明らかにする。ＳＰＭは高倍率計器の一群であり、特に走査型トンネル顕微鏡（ＳＴＭ）、原子間力顕微鏡（ＡＦＭ）、近接場光学顕微鏡（ＮＳＯＭ）を含み得る。
【０００３】
ＳＰＭは、十分な精度で物理的なプローブを移動させる圧電モータを典型的に含み、ナノメートルスケール以下での極高分解能をもたらす。圧電モータおよびアクチュエータは、精密位置決めと、任意に振動励起とを１つ以上のプローブ先端に与える。ＳＰＭプローブは、導電性および非導電性材料の両方からなる様々な形状であり、それらの材料はすべて、数十ピコメータ（１０‐１２ｍ）の物理的精度および空間分解能で原子および表面と機械的かつ電磁的に相互作用することができる先端の特徴を共有する。
【０００４】
現在のＳＰＭは、典型的に、モータ、プローブ、表面、および他のＳＰＭコンポーネントに電気的励起を送達し、これらのＳＰＭコンポーネントによって生成された応答を受信するために、精巧なアナログおよびデジタル電子回路または計装機器の多くのチャネルを必要とする。外部の電気的、光学的、熱的、磁気的、化学的、ならびに機械的コンポーネントから送達されるこれらの信号チャネルおよびその他は、コンピュータベースのデータ取得システムを必要とする。さらに、複数チャネル励起、応答および制御は典型的に、リアルタイムに同期され、場合によっては分析されなければならない。
【０００５】
ＳＰＭの適用の分野は、急速に拡大している。材料分析の新領域は、ＤＮＡの単一ストランドのシークエンシング、および活細胞内の輸送の研究を含む。新しい高度なナノ材料は、短期間に数千ものナノメートルスケールのコンポーネントを生成する目的で、ナノメートルスケールの化学蒸着機器が搭載されたＳＰＭを使用して合成されている。したがって、今日使用されている現在のＳＰＭ制御システムは、動作の改良の恩恵を受け、これらの新たな用途およびそれらの予測される複雑な成長の必要性を満たすのに役立つことができる。
【発明の概要】
【発明が解決しようとする課題】
【０００６】
ＳＰＭ制御システムを改良することができる別の分野は、それらのユーザインターフェイスに関連している。現世代のＳＰＭ制御システムは、実験を設計するためのグラフィカルユーザインターフェイスを提供するソフトウェアツールを使用して構成し、動作させることができる。このことは、概念的に単純な、制御システムとのインターフェイスをユーザにもたらす。なぜなら、それらはスクリプト化または他の書込まれたプログラミングによってではなく、アイコンで表された様々なハードウェア要素をグラフィックによって選択し、接続することができるからである。しかし、実験で使用することができる利用可能な装置は、制御システムにプログラムされた、あらかじめ規定された動作モードに通常は限定されているため、そのようなアイコン的ユーザインターフェイスは典型的に制約される。たとえば、ＦＰＧＡを有するＳＰＭ制御システムは、異なる実験セットアップで使用することができる多数の利用可能な装置でプログラムされることになる。しかし、実験を規定するのに使用される既存のソフトウェアツールは、一般に、それらの装置を使用するためにあらかじめ規定されたあるモードまたは機能のみを有し、さらなるモードを追加するには、ＦＰＧＡコントローラの新たなプログラミングが書込まれ、コンパイルされる。これは、より高レベルのアイコン的ユーザインターフェイスを越えてシステムと連携することを必要とするため、ソフトウェアツールの有用性を低下させる。したがって、現在のＳＰＭ制御システムおよびこれらの制御システムで使用されるソフトウェア構成ツールは、制御システムにおいて利用可能な多様なハードウェア装置を構成し使用する際の柔軟性を高めたアイコン的ユーザインターフェイスをユーザに提供することによって恩恵を受けることができる。ＳＰＭ以外の機器および計器を制御するための他の制御システムは、以下に記載されるこれらの改良の恩恵を受けることもできる。
【課題を解決するための手段】
【０００７】
発明の概要
発明の一局面によれば、異なるハードウェア構成へとプログラムで相互接続されることができるハードウェア装置を有するプログラマブル機器を構成する、コンピュータに実装される方法が提供される。当該方法は、（ａ）プログラムを使用してコンピュータディスプレイ上に第１のワークスペースを設けるステップを含み、プログラムは、ハードウェア装置の所望の構成を表すグラフィカルシステムハードウェア構成を第１のワークスペースにおいてユーザに作成させることを可能にし、さらに、（ｂ）プログラムを使用してコンピュータディスプレイ上に第２のワークスペースを設けるステップを含み、プログラムは、ハードウェア装置の所望の構成についての所望のプロシージャを表すグラフィカルシステムプロシージャを第２のワークスペースにおいてユーザに作成させることを可能にし、さらに、（ｃ）グラフィカルシステムハードウェア構成およびグラフィカルシステムプロシージャを表す構成データを自動的に作成するステップと、（ｄ）プログラマブル機器を、所望のプロシージャにしたがって動作するようにハードウェア装置の所望の構成へと構成するステップとを含み、構成するステップは、構成データを使用して行われる。
【０００８】
発明の他の局面は、この処理を行うためのシステムおよびコンピュータ読取可能な媒体を含む。
【０００９】
図面の簡単な説明
本開示の開示される実施例のうち１つ以上の特徴および利点は、添付図面を参照して、例示的な実施例の以下の詳細な説明および請求項から当業者にとって明らかとなるであろう。
【図面の簡単な説明】
【００１０】
【図１】発明を実行するのに使用することができるシステムの例示的な実施例にかかるブロック図である。
【図２】図１のシステムを使用してグラフィカルシステムハードウェア構成を設計するために使用することができるグラフィカルユーザインターフェイスのハードウェアワークスペースを示すコンピュータディスプレイを例証する図である。
【図３】図１のシステムを使用してグラフィカルシステムプロシージャを設計するために使用することができるグラフィカルユーザインターフェイスのプロシージャワークスペースを示すコンピュータディスプレイを例証する図である。
【図４】プロシージャワークスペースを使用して構成することができるｘ−ｙ分光器スキャンのためのグラフィカルシステムプロシージャの別の例の図である。
【図５】ハードウェアワークスペースを使用してセットアップすることができる別の例示的なグラフィカルシステムハードウェア構成の図である。
【図６】プロシージャワークスペースを使用してセットアップすることができる図５のハードウェア構成についてのグラフィカルシステムプロシージャを表す図である。
【図７】図６のグラフィカルシステムプロシージャを規定するのに使用されるプロシージャパレットに含むことができるプロシージャ要素を示す図である。
【図８】図５および図６のハードウェア構成およびプロシージャ構成のための構成データを表す図である。
【図９】図５および図６のハードウェア構成およびプロシージャ構成のための構成データを表す図である。
【図１０】図８および図９の構成データの例示的なｘｍｌコード表示を表す図である。
【図１１】図８および図９の構成データの例示的なｘｍｌコード表示を表す図である。
【図１２】図５のグラフィカルシステムハードウェア構成で使用されるハードウェア装置に関連付けられたｘｍｌコードを表す図である。
【図１３】ハードウェア装置相互接続の検証に使用されるｘｍｌコードを表す図である。
【図１４】グラフィカルユーザインターフェイスと、そのハードウェアワークスペースおよびプロシージャワークスペースとを使用して、図１のシステムのもののようなプログラマブル機器を構成するのに使用される方法の例示的な実施例のフローチャートである。
【図１５】プログラマブル機器をグラフィカルシステムハードウェア構成にしたがって構成するための命令を自動的に生成するための方法の例示的な実施例のフローチャートである。
【図１６】プログラマブル機器をグラフィカルシステムプロシージャにしたがって構成するための命令を自動的に生成するための方法の例示的な実施例のフローチャートである。
【発明を実施するための形態】
【００１１】
好ましい実施例の詳細な説明
一般に、例示的なシステムは、多くの所望の構成のうちのいずれかでプログラムによって相互接続することができる多様なハードウェア要素を含むプログラマブル機器を有するシステムを動作させる方法の実施例のうち１つ以上の例を使用して説明されるであろう。例示的な実施例は、走査型プローブ顕微鏡システムでの使用に関して説明されるであろう。しかし説明が進むにつれて、発明は多くの異なるシステムで有用であり、多くの他の実施例において実行され得ることが理解されるであろう。この点に関し、かつ本明細書および請求項で使用される限りにおいて、システムという用語は、ＳＰＭ用途だけでなく、いずれかの他の用途も指すことが理解されるであろう。
【００１２】
以下に説明されるソフトウェアベースのツールおよび方法は、様々な種類のプログラマブル機器で使用することができる。プログラマブル機器の例は、それら自身がＰＡＬ、ＧＡＬ、ＣＰＬＤおよびＦＰＧＡを含むプログラマブルロジックデバイス（ＰＬＤ）を、当該デバイスをプログラムし、構成し、他のやり方で動作させるための好適な制御回路とともに含む。他の種類のプログラマブル機器は、ＡＳＩＣと、相互接続可能なハードウェア要素（本明細書においてハードウェア装置とも称する）を有する他の装置とを利用するものを含む。
【００１３】
例証された実施例は、厳密に同期され得る、任意のあらかじめ規定され、プログラムによって可変のプロシージャを設計し、構成し、実行するために使用され得る統合ソフトウェア、ファームウェア、およびハードウェア環境またはシステムを含む。システムは、変動する組または構成の実際のハードウェアおよび仮想ハードウェアまたはファームウェアを使用し得る。たとえば、システムアーキテクチャは、シングルシステムタイミングクロックを用いた厳格なタイミング制御によって、プログラマブルで、再構成可能で、かつ動的に部分的に再構成可能なファームウェアによって、および／または意図設計された混合信号入力／出力ハードウェアによって、たとえば、構成ベクトルとして以下に説明されるプラットフォーム独立コンストラクトの実装に基づいた動的な再構成性、展開性および発展性をもたらし得る。
【００１４】
プログラマブル機器の構成は、ユーザに、所望のハードウェア構成をアイコンで設計させ、当該機器を動作させるのに使用されるパラメータおよびプロシージャを特定させることを可能とするソフトウェアベース構成ツール（プログラム）を使用して実現される。この構成ツールの１つの例示的な実装の特徴を、より詳細に以下で説明する。
【００１５】
特に図面を参照し、図１は、ＳＰＭシステム１０の例示的な実施例を例証し、ＳＰＭシステム１０は概して、対象の材料と相互作用するためのプローブ機器１２と、この例ではプローブ機器１２と相互作用するための電子計装機器を含むプログラマブル機器１４と、計装機器１４とユーザとの間で相互作用するためのコンピュータ１６と、計装機器１４、コンピュータ１２、および／またはユーザと相互作用するためのシステム周辺装置１８とを含み得る。ＳＰＭシステム１０は、限定はしないが、ＡＦＭ、ＳＴＭ、ＮＳＯＭ、またはいずれかの他の種類のＳＰＭシステムを含み得る。
【００１６】
プローブ機器１２は、たとえば、変更されるワークピースの部分を操作するために、またはいずれかの他の好適な目的のために、調査中の標本で実験するために使用され得る。例証された実施例では、プローブ機器１２は、対象の材料を支持するためのベース１８と、対象の材料に接触するかまたは別のやり方で対象の材料に問合せる１つ以上のプローブ２０とを含み得る。プローブ機器１２は、計装機器１４によって制御され、ベース１８および／またはプローブ２０を移動させる１つ以上のアクチュエータ２２、ならびに計装機器１４によって監視され、プローブ２０もしくはプローブ機器１２の他の要素に関連付けられたいずれかの好適なパラメータを検知する１つ以上のセンサ２４も含み得る。
【００１７】
計装機器１４は、たとえば、ＳＰＭ機器１２のパラメータを制御し監視するのに使用することができるプログラマブル機器である。この点に関し、計装機器１４は、たとえば、いずれかの検出、観察、測定、制御、計算、通信、データ処理などに使用され得る。計装機器１４は一般に、ファームウェア使用可能要素またはプログラマブルハードウェア２６、他の計装ハードウェア２８、およびプログラマブルハードウェア２６とコンピュータ１６との間で通信する通信バス３０を含み得る。さらに、計装機器１４は、専用クロック分配回路（別個に図示せず）を有するシングルシステムクロック３２を含み得る。シングルクロック３２は、すべての励起および検出器基準信号の正確な位相同期をもたらすことにより、良好な精度を可能にし得る。また、クロック信号が逓倍され、プログラマブルロジックデバイスを通って分配されると、シングルクロック３２の使用により、クロックジッタの増幅が解消され得る。さらに、シングルクロック３２は、多数の別個の計装ユニットを有するシステムにおいて通常固有の位相精度の損失を解消し得る。
【００１８】
本明細書で使用される限りにおいて、システムハードウェアという用語は、計装機器１４と、プローブ２０、アクチュエータ２２、およびセンサ２４のうち１つ以上とを含み得る。
【００１９】
プログラマブルハードウェア２６は、特定のデジタルリアルタイム決定的ハードウェアコンポーネント（位相ロックループ、ロックイン検出器、信号フィルタ、信号乗算器、加算器など）および信号処理サービスを提供するために、単体で、または他のハードウェア２８と組合せて、構成されプログラムされ得るコンポーネントを含み得る。たとえば、プログラマブルハードウェア２６は、ソフトウェアプログラムのランタイム中に設定され得る装置構成にしたがってデジタル信号を処理するのに使用され得る、少なくとも１つのデジタル信号処理器（ＤＳＰ）３４と１つ以上の再構成可能なまたはプログラマブルロジックデバイス（ＰＬＤ）３６ａ，３６ｂとを含み得る。
【００２０】
ＤＳＰ３４は、プローブ機器１２から計装機器１４によって受信されたアナログ信号から変換されたデジタル信号を処理するため、かつコンピュータ１６および周辺装置１８からのデジタル信号を処理して、計装機器１４からプローブ機器１２に送信されるアナログ信号に変換するために使用され得る。
【００２１】
ＰＬＤ３６ａ，３６ｂは、たとえば、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）、コンプレックスプログラマブルロジックデバイス（ＣＰＬＤ）、またはいずれかの他の好適なプログラマブルもしくは再構成可能な電子装置を含み得る。
【００２２】
他のハードウェア２８はプログラマブルでも非プログラマブルでもよく、たとえば、アナログおよびデジタル入力および出力チャネル、アナログ増幅器、アナログフィルタ、信号結合器、様々な電圧での電力調整器、アナログ−デジタル変換器（ＡＤＣ）、デジタル−アナログ変換器（ＤＡＣ）、チャネルマルチプレクサ、パルス計数チャネル、ならびにハードウェアを介して多様な信号をルーティングし、かつプログラマブルハードウェア２６と任意の外部または周辺ハードウェアとの間で多様な信号をルーティングするための通信ハードウェアを含み得る。
【００２３】
プログラマブルハードウェア２６および他の計装ハードウェア２８は、１つ以上のアクチュエータインターフェイスモジュール３８と、１つ以上のセンサインターフェイスモジュール４０とを規定し得る。
【００２４】
アクチュエータインターフェイスモジュール３８について、第１の例は１つ以上の高電圧出力経路２８ａを含み得、高電圧出力経路２８ａの各々は、ＤＡＣ、フィルタ、高電圧増幅器、およびアクチュエータへの過渡的なスパイクを防ぐための接地スイッチを含み得る。第２の例では、アクチュエータインターフェイスモジュール３８は、たとえばピエゾチューブを駆動するための、かつＤＡＣおよびフィルタを含み得る１つ以上の低電圧出力経路２８ｂを含み得る。第３の例では、アクチュエータインターフェイスモジュール３８は、いずれかの好適なアクチュエータを駆動するためのＤＡＣ、たとえば走査電子顕微鏡用のカラムを含み得る１つ以上の高速出力２８ｃを含み得る。第４の例では、アクチュエータインターフェイスモジュール３８は、ＢＮＣ入力、フィルタ、およびＡＤＣを含み得る１つ以上のユーザ定義型入力経路２８ｄを含み得る。
【００２５】
センサインターフェイスモジュール４０について、第１の例は１つ以上の高速入力経路２８ｅを含み得、これはプローブ電流のフィードバックまたは画像化に使用され得る。高速入力経路２８ｅは、ＢＮＣおよび差動入力のためのソフトウェア制御型マルチプレクサおよび連結器、アンプ、フィルタ、ならびにＡＤＣを含み得る。第２の例では、モジュール４０は、バイアスおよびプローブドライブのための１つ以上の高速出力経路２８ｆを含み得、ＤＡＣ、減衰器、ならびにＢＮＣおよび差動出力を含み得る。第３の例では、モジュール４０は、対象のいずれかの信号をユーザに対してフィードバックまたは画像化するために使用され得る１つ以上のユーザ定義型入力経路２８ｇを含み得る。入力経路２８ｇは、ＢＮＣおよび差動入力のためのソフトウェア制御型マルチプレクサ、アンプ、フィルタ、およびＡＤＣを含み得る。第４の例では、モジュール４０は、いずれかのシステム信号を出力するために使用され得るか、または二次的なフィードバック出力として使用される１つ以上のユーザ定義型出力経路２８ｈを含み得る。出力経路２８ｈは、ＤＡＣおよびフィルタを含み得る。第５の例では、モジュール４０は、たとえば個々の位置検知検出器に関連付けられたプリアンプからの信号を測定するために使用され得る１つ以上のプリアンプ信号経路２８ｉを含み得る。経路２８ｉは、フィルタおよびＡＤＣを含み得る。第６の例では、モジュール４０は、センサからのパルスを計数するために使用され得る１つ以上の高速計数経路２８ｊを含み得る。経路２８ｊは、別個のロジックゲート開始および停止入力ならびにカウンタを含み得る。別の例では、モジュール４０は、いずれかの好適な目的のための１つ以上のユーザ定義型入力経路２８ｋを含み得る。経路２８ｋは、差動入力、フィルタ、およびＡＤＣを含み得る。
【００２６】
プログラマブルハードウェア２６は、同期リアルタイム決定的励起および応答信号制御、ならびに、プローブ機器１２とハードウェア２８に接続され得るいずれかの他の周辺機器とから受信された混合アナログおよびデジタル信号の決定的リアルタイム信号処理を提供するようにプログラムされ得る。
【００２７】
システム周辺装置１８は、たとえば、１つ以上の周辺計器４２、１つ以上のネットワーク４４、および１つ以上のリモートコンピュータ４６を含み得る。周辺計器４２は、たとえば、周辺オシロスコープ、マルチメータ、または、たとえばシステムユーザがシステム計装機器１４を補足するために使用することを望み得るいずれかの他の好適な計装機器を含み得る。１つ以上のネットワーク４４は、たとえば、ローカルエリアネットワーク（ＬＡＮ）、ワイドエリアネットワーク（ＷＡＮ）、またはいずれかの他の好適なネットワークを含み得る。ネットワーク４４は、有線でも、無線でも、その組合せでもよく、イントラネット、エクストラネット、および／またはグローバルコンピュータネットワーク（たとえばインターネットまたはワールドワイドウェブ）であり得る。リモートコンピュータ４６は、システムコンピュータ１６との間で、データを受信し、処理し、格納し、かつ送信するためのいずれかの好適な装置であり得る。リモートコンピュータ４６は、たとえばパーソナルコンピュータ、サーバ、ルータ、ネットワークＰＣ、ピアデバイス、他の共有ネットワークノードなどを含み得、典型的には、コンピュータ１６について以下に説明される、内部および外部または周辺要素の多くまたはすべての独自のバージョンを含む。ネットワーク化された環境では、コンピュータ４６によって使用されるソフトウェアモジュールおよび／またはデータ、またはその部分は、リモートコンピュータ４６、またはそれに関連付けられた、もしくはそれに接続されたリモートメモリ記憶装置に格納され得る。例として、限定はしないが、リモートアプリケーションプログラム／データがリモートコンピュータ４６のメモリに存在し得る。
【００２８】
システムコンピュータ１６は、以下に記載されるように、アイコン駆動ハードウェアおよびプロシージャセットアップを可能にするグラフィカルユーザインターフェイスを提供するソフトウェアツール（プログラム）５８を使用して、計装機器１４のユーザ構成を許可するために使用することができる。システムコンピュータ１６は、たとえば、ユーザから入力データおよび命令を受信し、格納されているデータおよびソフトウェアに照らして受信したデータおよび命令を処理し、プローブ機器１２を動作させるのに使用するために計装機器１４に出力信号を伝達するためにも使用され得る。逆に、別の例では、コンピュータ１６は、計装機器１４から入力信号を受信し、格納されているデータおよびソフトウェアに照らして受信した入力信号を処理し、ユーザに出力データを伝達するために使用され得る。コンピュータ１６は、統合製品として計装機器１４と組合せてもよく、計装機器１４と別個でもよい。
【００２９】
例示的なシステムコンピュータ１６は、メモリ４８、１つ以上のプロセッサ５０、１つ以上の通信装置５２、１つ以上のユーザ入力装置５４、および１つ以上のユーザ出力装置５６を含み得る。もちろん、コンピュータ１６は、いずれかの補助的な装置、たとえばクロック、電源など（別個に図示せず）も含み得る。ユーザ入力装置５４は、たとえば、ポインティング装置（たとえばマウス、トラックボール、ペン、タッチパッド、タッチスクリーン、ジョイスティックなど）、キーボード、マイクロホンなどを含み得、いずれかの好適なコマンドまたは命令とデータまたは情報とをプロセッサ５０に入力するために使用され得る。ユーザ出力装置５６は、たとえば、プリンタ、モニタ、またはいずれかの他の種類の表示装置、スピーカなどを含み得る。
【００３０】
コンピュータ１６の一般的な動作では、プロセッサ５０は、電源（図示せず）によって電力が供給され得、初めにたとえばメモリ４８に格納されているＢＩＯＳ命令で動作し得る。プロセッサ５０は、いずれかの入力装置１４，４２，４６，５４からコマンドまたはデータを受信し、内部メモリ４８を含む様々な記憶媒体から、いずれかの好適なメモリインターフェイスを介して、データまたは命令を受信し、処理し、格納し、データまたは命令をいずれかの出力装置１４，４２，４６，５６に出力する。一般に、コンピュータのデータプロセッサは、オペレーティングシステム、アプリケーションプログラムなどといったソフトウェアまたはコンピュータプログラムに関連付けられているかまたは組み込まれているものなどのコンピュータで実行可能な命令を行うようにプログラムされる。
【００３１】
通信装置５２はバスを含み得、当該バスは、内部的にはコンピュータ１６内の各要素間で、外部的にはコンピュータ１６の内部要素とコンピュータ１６の外部のいずれかの他の要素との間において、データ伝送をもたらし得る。バスは、メモリバスまたはメモリコントローラ、周辺バス、加速グラフィックポート、プロセッサまたはローカルバスを含み、かつ多様なバスアーキテクチャのうちのいずれかを使用する数種類のバス構造のうちのいずれかの１つ以上を含み得る。通信装置５２は、ＲＳ−２３２、パラレル、小型計算機システムインターフェイス、汎用シリアルバス、および／またはいずれかの他の好適なプロトコルを含む様々なプロトコルに準拠する装置も含み得る。
【００３２】
プロセッサ５０は、データを処理し、システム１０の機能性のうち少なくとも一部を提供する制御ロジックを実行するように構成され得る。この点に関し、プロセッサ５０は、たとえば、１つ以上の処理ユニット、コントローラ、マイクロプロセッサ、マイクロコントローラ、ロジック機能をデータ信号に実装するためのロジックゲートを有するディスクリートロジック回路、好適なロジックゲートを有する特定用途向け集積回路（ＡＳＩＣ）、コンプレックスプログラマブルロジックデバイス（ＣＰＬＤ）、プログラマブルまたはフィールドプログラマブルゲートアレイ（ＰＧＡ／ＦＰＧＡ）、上記のいずれかの組合せなどを含み得る。
【００３３】
メモリ４８は、システムの機能性のうち少なくとも一部を提供し、かつプロセッサによって実行され得るデータおよび／またはコンピュータソフトウェアもしくはコンピュータ読取可能命令の少なくとも一時的な格納を提供するように構成されたいずれかのコンピュータ読取可能媒体を含み得る。メモリ４８は、取外し可能および／または取外し不可能な揮発性メモリおよび／または不揮発性メモリの形態であり得る。
【００３４】
例示的な揮発性メモリは、たとえば、ソフトウェアおよびデータをプロセッサ上で実行するためのランダムアクセスメモリ（ＲＡＭ）、スタティックＲＡＭ（ＳＲＡＭ）、同期もしくは非同期ＤＲＡＭを含むダイナミックＲＡＭ（ＤＲＡＭ）などを含み得る。例として、限定はしないが、揮発性メモリは、オペレーティングシステム、アプリケーションプログラム、他のメモリモジュール、およびデータを含み得る。
【００３５】
例示的な不揮発性メモリは、たとえばソフトウェアおよびデータを格納するために、リードオンリーメモリ（ＲＯＭ）、消去可能なプログラマブルＲＯＭ（ＥＰＲＯＭ）、電気的に消去可能なプログラマブルＲＯＭ（ＥＥＰＲＯＭ）、磁気もしくは光学ディスクまたはテープのような動的なリード／ライトメモリ、およびフラッシュメモリのような静的なリード／ライトメモリを含み得る。別個には図示されていないが、コンピュータは、他の取外し可能および／または取外し不可能な揮発性／不揮発性データ記憶装置または媒体も含み得る。たとえば、他の媒体は、動的または静的な外部記憶リード／ライト装置を含み得る。
【００３６】
上述したメモリは、コンピュータ１６のためのコンピュータ読取可能命令、データ構造、プログラムモジュール、および他のデータの格納と通信とを可能にする。メモリ４８は、オペレーティングシステムもしくはプログラム、アプリケーションプログラム、および／またはコンピュータ１６に関連付けられた異なる記憶媒体中に様々な回数で存在し得る他のプログラムモジュールおよびプログラムデータを格納し得る。
【００３７】
たとえば、メモリ４８は、システム１０を動作させるためのグラフィカルプログラム５８の少なくとも一部分を格納し得る。グラフィカルプログラム５８は、グラフィカルユーザインターフェイス（ＧＵＩ）部分または層６０、ＧＵＩ層６０とメモリ４８に格納され得る１つ以上の他のアプリケーションプログラム６３とに直通通信し得る実装部分または層６２、および実装層６２とメモリ４８に格納され得る１つ以上の周辺ハードウェアドライバ６５とに直通通信し得るハードウェア通信部分または層６４を含み得る。他のプログラム６３は、たとえば、マサチューセッツ州ネイティクのザ  マスワークスから入手可能なＭＡＴＬＡＢ（登録商標）ソフトウェア、テキサス州オースチンのナショナル  インストルメンツから入手可能なＬＡＢＶＩＥＷ（登録商標）ソフトウェアを含み得る。ドライバ６５は、たとえば、ナショナル  インストルメンツまたはいずれかの他の好適なソースから入手可能なハードウェアドライバを含み得る。
【００３８】
プログラム５８のＧＵＩ層６０は、システムハードウェア構成のアイコン設計およびインスタンス化のための、かつシステム１０が実装し得る実験またはプロシージャのアイコン設計および特定のためのアイコン的ハードウェア記述言語を含み得る。
【００３９】
ＧＵＩ層６０を使用して、ユーザは、直観的なアイコンをアイコンパレットからワークスペースにドラッグアンドドロップし、所望のハードウェア構成およびプロシージャを規定し得る。
【００４０】
図２を参照した特定の例では、ＧＵＩ層６０は、コンピュータ周辺ディスプレイ５６ａを介して、グラフィカルハードウェア構成パレット６６とハードウェアワークスペース６８とをユーザに出力し得る。パレット６６は、システム１０での使用に利用可能なハードウェア要素のグラフィック表示である。ワークスペース６８は、システム１０での使用に利用可能なハードウェア構成のグラフィック表示をユーザがインスタンス化することを可能とするために設けられる。したがって、パレット６６およびワークスペース６８は、ユーザによって、ワークスペース６８においてグラフィカルシステムハードウェア構成を作成し、所望のシステムハードウェア構成を特定するのに使用され得る。
【００４１】
パレット６６は、システムハードウェア要素（装置）を表し得、かついずれかの好適なやり方で、たとえばコンピュータ周辺ポインティング装置でユーザによって選択され得るいずれかの好適な量のハードウェアアイコンを含み得る。ユーザは、アイコンを選択−ドラッグ−ドロップすることによって、たとえばマウスクリック−ドラッグ−ドロップ動作またはタッチスクリーンタッチ−ドラッグ−ドロップ動作などによって、パレット６６からワークスペース６８にハードウェアアイコンを移動させ得る。パレット６６中のハードウェアアイコンの各々は、１つ以上のフォーススクリプトまたは、当該アイコンに関連付けられた、その入力、出力、パラメータ、および転送機能のようなものを含むハードウェア装置を規定する他のコンピュータプログラミングに関連付けられる。２つ以上のハードウェア装置は、ワークスペース６８において互いに組合され、パレット６６に追加することができる複合ハードウェア装置を作成するのに使用されるか、または別のやり方で単一の装置として使用されることができる。これを実現するため、プログラム５８は、各装置のスクリプトを、複合ハードウェア装置の全定義を提供する単一の新たなスクリプトに自動的に組合せるように動作可能である。
【００４２】
例示的なパレット６６は、ＳＰＭ環境で使用され得る以下の例示的なアイコンを含む。ＰＬＬアイコンは、フェーズロックループ計装機器を表す。ＡＦＭアイコンは、原子間力顕微鏡プローブ機器を表す。ＮＳＯＭアイコンは、近距離場走査光学顕微鏡プローブ機器を表す。南京錠アイコンは、ロックイン計装機器を表す。＋アイコンはＡＮＤゲートを表す。ＮＣＯアイコンは、数値制御オシレータを表す。フィルタアイコンはフィルタを表す。ΔΦアイコンは位相シフタを表す。ＰＩアイコンは比例積分コントローラを表す。ＨＳ  ＤＡＣアイコンは高速ＤＡＣを表し、ＨＳ  ＡＤＣは高速ＡＤＣを表す。
【００４３】
例示的なポピュレートされた（populated）ハードウェアワークスペース６８はハードウェア構成を表し、以下の例示的な要素と、代表的なケルビンフォース顕微鏡（ＫＦＭ）セットアップのための当該要素間の相互関係とを含む。ＡＦＭアイコンが選択されてパレット６６からワークスペースにドラッグされると、詳細なＡＦＭ機器グラフィックがワークスペース６８に表示される。ＡＦＭ機器のためのドライブ入力はＡＮＤゲートの出力に接続され、ＮＣＯおよびＰＩコントローラはＡＮＤゲートの入力に接続され、プローブ励起を制御する。ＡＦＭ機器のためのバイアス入力は、高速ＤＡＣの出力に接続される。ＡＦＭ機器のプローブ検出器のための法線力出力は、高速ＡＤＣの入力に接続される。ＡＤＣの出力は位相ロックループの入力に接続され、位相ロックループの出力は、ＡＦＭバイアスの変調のためにＤＡＣの入力に接続される。ＡＤＣの出力は、ロックインの入力にも接続され、位相ロックループの別の出力は別のＮＣＯの入力に接続され、当該別のＮＣＯもロックインの入力に接続される。ロックインの出力はプローブフォースのディスプレイとＰＩコントローラの入力とに接続され、接触電位差測定のためにＡＦＭドライブへのフィードバック制御ループを完成させる。
【００４４】
一実施例によれば、ＧＵＩ層６０は、機能的に可能ではない方法で、利用可能なハードウェア要素をワークスペース６８においてユーザに構成させることはない。換言すると、動作可能かまたは別のやり方で設計によって接続されるように意図されていないハードウェア要素をユーザが接続することが防止される。
【００４５】
ユーザがアイコンとアイコン間の相互接続とをハードウェアワークスペース６８にポピュレートして所望のハードウェア構成を作成すると、プログラムのＧＵＩ層６０は、グラフィカルシステムハードウェア構成を表し、かつ次いでこの所望のハードウェア構成を実行するように計装機器１４を構成するのに使用されるハードウェア構成データを生成する。構成データの一例は、図８および図９に示される構成ベクトル７０のハードウェア部分によって例証され、別の特定の例示的な構成に関してさらに以下で説明されるであろう。
【００４６】
また、ハードウェアワークスペース６８においてハードウェア構成が完成されると、それらのハードウェア構成は、たとえば、同僚間で共有され得るあらかじめ構成されたテンプレートとして、将来の使用のために保存され得る。
【００４７】
図３を参照して、ＧＵＩ層６０は、コンピュータ周辺ディスプレイ５６ｂを介して、実験またはプロシージャパレット７２およびプロシージャワークスペース７４もユーザに出力し得る。一実施例によれば、ＧＵＩ層６０は、特にユーザの注意を引くように意図されるインターフェイス方式を提供し得、ディスプレイ５６ａ，５６ｂは別個である。この注意を引くインターフェイス方式の一例によれば、ディスプレイ５６ｂは、ハードウェア構成ディスプレイ５６ａのためのハードウェアウィンドウと同じコンピュータハードウェアモニタ上に現れるプロシージャウィンドウであり得る。この例によれば、ウィンドウまたはディスプレイ５６ａ，５６ｂは分離されており、上下にもしくは互いに垂直に並べられるか、または並べてもしくは水平に互いに隣合わせて並べられる。別の例では、ディスプレイ５６ａ，５６ｂは、２つの異なるコンピュータハードウェアモニタ上に現れ得る。この実施例によれば、ハードウェアおよびプロシージャワークスペース６８，７４は、美的かつ機能的な理由で別個に保たれる。
【００４８】
美的な観点からは、プロシージャワークスペース７４をハードウェアワークスペース６８と別個に提示することにより、所望のシステムプロセス構成の整った提示が可能となる。
【００４９】
機能的な観点からは、別個のハードウェアおよびプロシージャワークスペース６８，７４にグラフィックで規定された構成は、いずれかのプログラムをコンパイルしたり再コンパイルしたりする必要なく変更され得る。むしろ、これらのワークスペース６８，７４に含まれるハードウェアおよび／またはプロシージャに対するいずれの変更もハードウェア命令の変更にすぎず、構成ベクトル７０を修正するためにＧＵＩ層と実装層とによって自動的に処理される。
【００５０】
パレット７２は、システム１０での使用に利用可能なプロシージャ要素のグラフィック表示である。ワークスペース７４は、システム１０で使用するための利用可能なハードウェア構成についての利用可能な実験またはプロシージャのグラフィック表示を、ユーザにインスタンス化させることを可能にするために設けられる。したがって、パレット７２およびワークスペース７４は、グラフィカルシステムハードウェア構成についてグラフィカルシステムプロシージャを作成するためにユーザによって使用され得、プロシージャワークスペース７４は、所望のシステムハードウェア構成のための所望のシステムプロシージャを特定するために、ハードウェアワークスペース６８とは別個である。
【００５１】
パレット７２は、いずれかのシステムプロシージャを表し得、かついずれかの好適なやり方で、たとえばコンピュータ周辺ポインティング装置でユーザによって選択され得るいずれかの好適な量のプロシージャアイコンを含み得る。ユーザは、アイコンを選択−ドラッグすることによって、たとえばマウスクリック−ドラッグ動作またはタッチスクリーンタッチ−ドラッグ動作などによって、パレット７２からワークスペース７４にプロシージャアイコンを移動させ得る。プロシージャアイコンは、ユーザによってハードウェアワークスペース６８に作成されたグラフィカルシステムハードウェア構成において使用されるハードウェア装置のうち１つ以上を要するアクションを表す。プロシージャアイコンの各々は、１つ以上のフォーススクリプト、または当該プロシージャアイコンに関連付けられたアクションを実行するための命令を与える他のコンピュータプログラミングに関連付けられる。所望であれば多数のプロシージャ要素を組合せてパレット７２に追加される単一の複合要素にすることができる。これは、組合せられたプロシージャアイコンの各々の基礎となるプログラミングをプログラム５８が自動的に組合せて、多数のプロシージャ要素についての新たな単一のスクリプトが形成されることを要する。
【００５２】
例示的なパレット７２は、ＳＰＭ環境で使用され得る以下の例示的なアイコンを含む。Ｓアイコンはサブルーチンを表す。ｉｆ／ｔｈｅｎアイコンは、条件機能を表す。Ｌｏｏｐｎアイコンはプロシージャループを表す。砂時計アイコンは遅延機能を表す。Ｏｎアイコンはオン状態を表す。三角形の「プレイ」アイコンは、プロシージャ開始機能を表す。長方形の「停止」アイコンは、プロシージャ終了機能を表す。「休止」アイコンは、プロシージャ休止機能を表す。フィルタアイコンはフィルタ機能を表す。除算アイコンは除算機能を表す。ΔΦアイコンは位相シフト機能を表す。ｘアイコンは乗算機能を表す。ＰＩアイコンは比例積分制御機能を表す。Ｏｆｆアイコンはオフ状態を表す。
【００５３】
図示されていないが、第三者のプロシージャ、たとえばＭＡＴＬＡＢ（登録商標）スクリプト、ＬＡＢＶＩＥＷ（登録商標）仮想計器機能などを表すために他のアイコンを使用してもよい。
【００５４】
例示的なポピュレートされたプロシージャワークスペース７４はプロシージャを表し、以下の例示的な要素と、代表的なケルビンフォース顕微鏡（ＫＦＭ）セットアップのための当該要素間の相互関係とを含む。Ｓアイコンの第１のインスタンスが選択され、パレット７２からワークスペースにドラッグされると、第１の詳細なサブルーチングラフィックがワークスペース７４に表示され、Ｓアイコンの第２のインスタンスが選択されてパレット７２からワークスペースにドラッグされると、第２の詳細なサブルーチングラフィックがワークスペース７４に表示される。Ｏｎアイコンの第１および第２のインスタンスは第１のサブルーチンに追加され、ｉｆ／ｔｈｅｎアイコンの第１および第２のインスタンスは第１のサブルーチンに追加される。遅延機能、ｉｆ／ｔｈｅｎ機能、およびループ機能が第２のサブルーチンに追加され、Ｏｎ機能および遅延機能はループ機能に追加される。プロシージャ開始機能は、その出力が第１のサブルーチンの初期化入力に接続された状態でワークスペース７４に追加される。逆に、プロシージャ停止機能は、その入力が第１のサブルーチンの出力に接続された状態で、ワークスペース７４に追加される。休止機能は、その入力が第１のサブルーチンにおいてｉｆ／ｔｈｅｎ機能に接続され、その出力が第１のサブルーチンへの履歴入力に接続された状態で、ワークスペース７４に追加される。遅延機能は、第２のサブルーチンのループの出力と第１のサブルーチンの履歴入力との間でワークスペース７４に追加される。休止機能は、その入力が第２のサブルーチンのｉｆ／ｔｈｅｎ機能の出力に接続され、その出力が第２のサブルーチンの履歴入力に接続された状態で、ワークスペース７４に追加される。第１のサブルーチンの他方のｉｆ／ｔｈｅｎ機能は第２のサブルーチンの遅延の入力に接続され、当該遅延の出力は、ループ機能の入力に接続される。ループ機能内の遅延の出力は、ループ内のＯｎ機能の入力に接続される。
【００５５】
ユーザは、他のグラフィカルプログラム、たとえばＬａｂＶＩＥＷ（登録商標）およびＭＡＴＬＡＢ（登録商標）で作成されたプロシージャプランをインポートし、実装し得る。
【００５６】
一実施例によれば、ＧＵＩ層６０は、機能的に可能でない方法で、利用可能な実験またはプロシージャ要素をワークスペース７４においてユーザに構成させることはない。換言すると、動作可能かまたは別のやり方で設計によって接続されるように意図されていないやり方でハードウェア要素をユーザが接続することが防止される。さらに、一実施例によれば、ＧＵＩ層６０は、ハードウェア構成によって支持されるプロシージャを自動的に許可するにすぎず、たとえばＰＩ制御要素がハードウェア構成に含まれていない限り、ＰＩ制御要素上で動作するｉｆ／ｔｈｅｎプロシージャは、インスタンス化されることができない。このように、ＧＵＩ層６０は自己組織型であり、ユーザが適切なハードウェアをインスタンス化させると、それらのプロシージャおよびプロシージャ制御のみが視認可能であり、使用可能である。この特徴は、特定のユーザが最大アレイのハードウェアを有さないまたは要求しない場合でも網羅的な動作環境を実装しようとするためにすべての先行技術システムに見られる紛らわしいスクリーンメニューを解消するのに役立つ。
【００５７】
ユーザがアイコンと当該アイコン間の相互接続とをプロシージャワークスペース７４にポピュレートして所望のプロシージャを作成すると、プログラム５８のＧＵＩ層６０は、グラフィカルシステムプロシージャを表し、かつ計装機器１４を構成して所望のプロシージャを行うのに使用される処理構成データを作成する。以下に説明されるように、この構成データは、ハードウェアおよび処理構成ならびにしたがってユーザによって特定された所望の機能性または実験的実装を十分に表す完全な構成ベクトルを作成する一部分として、構成ベクトルのハードウェア部分と組合せることができる。このシステムは、したがって、実際のおよび仮想的なハードウェアコンポーネントの制限された補集合から、組合せ可能に多数の個別のシステム機能性の生成をサポートし、したがって、当初の概念として想定またはシステムに具体的に設計されていない機能性の作成を可能とする。
【００５８】
また、プロシージャワークスペース７４においてプロシージャが完成されると、それらのプロシージャは、たとえば、互換性のあるハードウェア機能によって同僚間で共有され得るあらかじめ構成されたテンプレートとして、将来の使用のために保存され得る。したがって、標準的な実験がいったん作成され、次いでいくつかの格納されているあらかじめ構成されたテンプレートから将来選択され得る。
【００５９】
図４は、ＳＰＭ機器１２を用いたラスタスキャンに対応するグラフィカルシステムプロシージャの別の例を図示する。示されている構成は、ｌ＞ｌｍの条件が満たされているときは常に、分光器によるＸＹスキャンを提供する。実験中、Ｚ＞Ｚｍ条件が満たされれば、メッセージとともに実験が休止され、次いでユーザが当該メッセージを確認した後で再開する。
【００６０】
ハードウェアセットアップおよび関連付けられたプロシージャのさらに別の簡単な例が図５および図６に示される。図５は、２，３，５および７と番号付けされた４つの装置を要するハードウェアセットアップを図示する。示された相互接続によるこのセットアップは、ハードウェアパレット６６から装置を使用して、ハードウェアワークスペース６８においてユーザによって作成されることができる。図６は、図５のハードウェア構成について特定されたグラフィカルシステムプロシージャを図示し、このプロシージャは、プロシージャパレット７２からのアイテムを使用して、プロシージャワークスペース７４においてユーザによって作成されることができる。図３のパレット７２に示されるプロシージャ（アクション）要素とは別に、図７に示されるプロシージャ要素を、図５のハードウェア構成についてグラフィカルシステムプロシージャを生成する際に使用するためにパレット７２に含めることができる。図６に示されるように、例証された処理は、バイアス装置２からの入力バイアスを使用して、周波数ｆ３で信号を出力する信号発生器を要する。信号はフィルタリングされ、次いでオシロスコープに表示される。カウンタが信号生成処理中に起動され、カウンタが１０００からカウントダウンすると、パラメータｂの大きさによって周波数ｆ３が上げられ、当該処理が停止する。
【００６１】
上述したように、グラフィカルシステムハードウェア構成およびグラフィカルシステムプロシージャがセットアップされると、ハードウェアおよびプロシージャ構成の両方を表す構成ベクトル（ＣＶ）が作成される。構成ベクトルは、ハードウェアセットアップがワークスペース６８において完了した後でハードウェアおよびパラメータ部分を作成し、次いでグラフィカルシステムプロシージャがワークスペース７４において完了した後でハードウェアベースの互換性のあるプロシージャ部分を作成し、その後当該部分を互いに組合せてＣＶを形成するなどによって、後で組合せられる部分に作成されることができる。または、構成ベクトルは、ユーザがハードウェアおよびプロシージャの両方をセットアップした後で一度に作成されることができる。図５および図６のセットアップのためのサンプルＣＶ７０が図８および図９に示される。図８および図９に示されるＣＶ７０の表示のフォーマットは説明のみを目的とし、ＣＶ７０をフォーマット化し表す多様な異なる手段を使用することができることが当業者によって理解されるであろう。さらに、構成ベクトルフォーマットの使用はユーザによってアイコンで特定されたハードウェアおよびプロシージャ構成を表す一手段にすぎず、それらの構成をエンコードし表すいずれかの好適な構成データフォーマットがシステムによって使用され、所望の構成を実行するのに必要とされる機器のプログラミング／構成を自動的に生成することができることが理解されるであろう。
【００６２】
構成ベクトル７０は、いくつかの部分、ハードウェア部分ｃｖ（ハードウェア接続）、パラメータ部分ｃｖ（パラメータ設定），励起部分ｃｖ（励起チャネル），応答部分ｃｖ（応答チャネル）、およびプロシージャ部分ｃｖ（ブール）を含む。図において、図８は、図５の構成のためのＣＶ７０のハードウェア部分およびパラメータ部分を図示する。示されているように、ハードウェア部分は様々な装置のためのピン（入力および出力）の相互接続を表す１０×１０のマトリクスを含む。図の左上部分の表は、図５に示されている４つの装置２，３，５および７間の相互接続を上部に挙げている。表は、使用されるパラメータの規格、たとえばバイアス電圧「ａ」、周波数ｆ３、フィルタカットオフ周波数ｆ５、および時間ベースｔも含む。動作中の周波数を上げるのに使用されるパラメータｂは、それ自体ハードウェアパラメータではなく、そのためプロシージャセットアップの一部として特定されることができる。個々の装置についてのパラメータ割り当ては、ＣＶ７０のパラメータ部分において特定され、この部分は７×７のマトリクスを含む。
【００６３】
図９は、ＣＶ７０の残りの部分、励起および応答部分、ならびにプロシージャ部分を図示する。そこに例証されるように、ＣＶ７０は、ユーザによって特定されたプロシージャ中に生じる様々な状態を取込む。励起は、様々なハードウェア装置への信号入力を表すが、図５および図９に示されるラベルＥ３，Ｅ６，Ｅ９，Ｒ２，Ｒ４，Ｒ７によって注記されるように、応答は装置の出力を表す。ＣＶ７０にこの情報を組込むことによって、完全なプロシージャ構成がプログラム５８によって分かり、したがって、ユーザの介入を必要することなく、計装機器１４を自動的にプログラムするのに使用することができる。これにより、様々なハードウェア装置の使用における柔軟性の増大を可能とする。なぜなら、あらかじめ規定されておらず、しかもアイコンで特定されていないプロシージャを自動的に実行するためにそれらを組合せて使用することができ、したがってユーザはなんらプログラミングの知識を有する必要がないからである。さらに、自己組織型設計特微を有さない他のシステムが、例証された実施例によって呈示されるのと同じ範囲の柔軟性および機能性を得るために示さなければならない余分な情報は、ユーザに提示されない。
【００６４】
当業者によって理解されるように、ＣＶのハードウェア部分は状態間で変化せず、したがって、図９では、示されている各状態（０〜１００４）については静的な構成となるであろう。同様に、周波数ｆ３が値ｂによって上げられると、パラメータ部分は状態１００３まで変化しない。
【００６５】
上記のように、ハードウェアおよびプロシージャ構成を表すために用いられる構成データは、構成ベクトルとしてか他のやり方かに関わらず、システムによって使用可能ないずれかの好適な形態を取ることができる。たとえば、構成データ（たとえば構成ベクトル７０）は、マーク付け言語、たとえばｘｍｌを使用して表されることができる。図１０および図１１は、ともにＣＶ７０の顕著な部分をｘｍｌで図示する。ＣＶ７０のパラメータ部分は当該図の頂部に示され、各装置についての固有のｉｄならびに特定されることができる様々なパラメータとともに、４つの装置２，３，５および７を挙げる。ＣＶ７０のハードウェア部分は図１０の底部に示され、それらの固有のｉｄ番号に基づいて装置の相互接続を特定する。図１１は、ＣＶ７０のプロシージャ部分を図示し、全ｘｍｌコードの抜粋のみが示されており、全セットの構成データのセクションのうちいくつかは例証を容易にするために圧縮されていることが理解される。
【００６６】
上記のように、パレット６６および７２のそれぞれの様々なハードウェア装置およびプロシージャ（アクション）要素は、計装機器１４の自動プログラミングを可能にするために使用される関連付けられたコードを有する。これらの要素は、ワークスペース６８，７４においてそれらを相互接続して構成する際に使用される装置のｘｍｌベースの定義も有する。その一例は、ハードウェアパレット６８のための多くのパレットアイテムを識別する図１２に示され、これはさらに、これらの装置のうちの１つ、信号発生器のための基礎となるｘｍｌの一部を示す。同様の手法は、それらのプロシージャ要素を相互接続して構成する目的で、パレット７２のプロシージャ要素を規定するために使用することができる。
【００６７】
図５の異なる種類のハードウェア要素を識別する装置番号２，３，５および７は、ハードウェア装置の組合せの数表示を可能にする素数である。したがって、各種のハードウェア装置に、素数である固有のＩＤを与えることができる。これは、以下に説明されるように、ハードウェアパレット６６において有用であり、装置能力を識別するのに有用であり、また特徴レベル検証も提供することができる。計装機器１４におけるすべてのハードウェア装置の積は、プログラマブル機器内に存在するハードウェア装置の種類を識別する固有の数と、装置の数とを表す。たとえば、２つのロックイン（ｉｄ  ５）および１つの信号発生器（ｉｄ  ７）がある場合、プログラマブル機器を識別する数字は５×５×７＝１７５となる。プログラム５８は、この数字（５，７）のＬＣＭ（最小公倍数）を探し、どの装置がパレット６６にポピュレートされるかを決定することができる。プログラムは、利用可能なアイテムの数を見つけるために数字（ＧＣＤ）を分解することができる。これにより、ユーザが、プログラマブル機器に存在しない装置を選択したり、存在するよりも多くの特定の装置を選択したりすることが防止される。どのＩＨＬが同様であるかを識別し、サーチおよびソートするために素数を使用することもできる。互換性のあるプロシージャをチェックするかまたは見つけるために素数積を使用することもでき、どのプロシージャ要素をプロシージャパレット７２に含めることができるかを決定する際に使用することができる。
【００６８】
上記のように、いくつかの実施例では、ＧＵＩ層６０は、ユーザがそれぞれのワークスペース中の利用可能なハードウェアおよびプロシージャ要素を任意に構成することを可能としない。この有用な制約は、検証によって行うことができる。特に、計装機器１４は、異なるハードウェア装置およびある装置の多数のインスタンスを有し得る。特徴検証は、照会されたハードウェア機能にしたがって、各装置のインスタンスカウントを制限することを要する。ユーザレベル検証は、なんらかのハードウェア装置の使用を不可能にすること、またはユーザレベルにしたがって各装置のインスタンスカウントを制限することを要する。上記のように、各装置は素数によって規定されることができる。各装置についての素数とそのインスタンスとの積がハードウェア機能をもたらす。ユーザレベルは素数積となる。この情報は、好適な手段を使用して暗号化されることができる。さらに、プログラムは、装置の各々について、どの出力がどの入力に接続することができるかを特定する情報を含む接続検証ファイルを利用することができる。プログラム５８は、ｘｍｌファイルとして格納された検証情報を検索し、それにしたがって検証することができる。これは、なすことが可能なすべての接続をユーザに示すために使用することもできる。ｘｍｌ検証の例示的な抜粋が図１３に示される。
【００６９】
したがって上記から、ユーザがハードウェアセットアップおよび関連付けられたプロシージャをアイコンで規定することができる方法をプログラム５８が提供し、かつこれらの規定された構成は、計装機器１４または他のプログラマブル機器を構成するのに必要なプログラミングを自動的に生成するのに使用することができることが理解されるであろう。そのような１つの方法が図１４に示され、ユーザは、パレット６６に含まれる利用可能な装置からワークスペース６８上にハードウェア装置を配置し、それらを互いに配線し、有効であれば、必要とされるいずれかのハードウェアパラメータを設定する。この配線が完成され検証されると、ユーザはプロシージャワークスペース７４に切替えることができ、パレット７２から入手可能なプロシージャ要素がワークスペースに配置され、接続され、パラメータ設定することができ、有効および完了であれば、構成処理は終了する。この検証特徴は、システムが構成され使用されることができる不正な方法の数を最小化することにより、新規のユーザを、複雑かつ多くの場合高感度で高価な機器の機能性に導入する場合に特に有用である。
【００７０】
パラメータ設定を可能にする様々な方法が使用されることができる。一実施例では、プログラム５８はこの目的でダッシュボードを提供し、ダッシュボードは、ハードウェア装置およびプロシージャ要素のために構成可能なパラメータをユーザが設定することを可能にするＧＵＩウィンドウとして実装されることができる。ハードウェアおよびプロシージャ要素の各々についてのｘｍｌでの装置表記は、当該要素をダッシュボードに含めるか否かを特定することができる。
【００７１】
ＧＵＩプログラム５８が構成データ（たとえば構成ベクトル７０）を生成すると、当該データは、ユーザによって規定されたハードウェアおよび動作セットアップを行うように計装機器１４を自動的にプログラム／構成するために使用されることができる。図１５は、フォースコマンドを使用してハードウェアを初期化する方法を図示するが、いずれかの好適なプログラミング言語を使用することができることが理解されるであろう。図１５によって表される処理は、プログラミング言語に依存しないように、統一モデル言語（ＵＭＬ）にしたがって行われることが好ましい。図１５に示されるように、第一のステップは、フォースコマンドを使用して各ハードウェア接続を初期化することである。したがって、各ハードウェア接続について、このステップは、各規定されたハードウェア接続に必要とされるフォースコマンドを取得し、追加する。次いで、構成ベクトル７０中の各データチャネルについて、データチャネル起動コマンドが初期化される。次いでハードウェアが初期化され、これは、ＣＶ７０中の各ハードウェア装置について、かつ各出力接続について、フォース接続コマンドを取得し、得られたフォーススクリプトを計装機器１４に送ることを要する。次いで、ハードウェア装置が構成され、これは、ＣＶ７０中の各ハードウェア装置について、ＣＶ７０中の各ハードウェアパラメータについてのフォースコマンドのリストを生成し、フォーススクリプトを計装機器１４に送ることを要する。最後に、データチャネルがアクティブにされ、これは、データ取得のために、アクティブチャネルコマンドを得て計装機器１４に送ることによって、各データチャネルについて行われることができる。
【００７２】
図１５の処理にしたがってハードウェアが初期化されると、プロシージャ構成をＣＶ７０から生成し、計装機器１４に送ることができる。したがって、図１６の処理は、ＣＶ７０のプロシージャ部分の各プロシージャ要素について行われることができる。プロシージャ要素（アイテム）がスクリプト可能な状態を有する場合、プログラムは、すべての状態について解釈されたコマンドシーケンスを生成する。つまり、各状態および各状態の各要素について、状態内で、接続シーケンスで使用されている言語で解釈し、この解釈されたコマンドシーケンスをハードウェアに保存する。次いで状態がアクティブとされ、状態アイテムは、１つ以上のアイテムのためのコンテナ、またはループもしくはサブ状態のような他のコンテナとして機能する。状態は、条件付で休止させ、異なる状態に分岐させ、中断されたシーケンスから再開させることができる。プロシージャ要素がスクリプト化された状態を有していない場合、当該要素は単純にアクティブとされる。したがって、連続した状態内の各アイテムについて、各アクティブとされたハードウェアパラメータについてフォースコマンドのリストが生成され、得られたスクリプトは計装機器１４に送られる。アクティブとするアイテムは値を設定することができるか、または完了するまでに有限量の時間がかかり得る。次いで処理が終了する。
【００７３】
したがって、構成データを使用して、プログラム５８のＧＵＩ層６０は、コンピュータハードウェアモニタ上に表示され得るアイコンおよびアイコン相互接続の形態のインスタンス化されたハードウェア要素およびハードウェア構成セッティングと、アイコンおよびアイコン相互接続の形態のアクションまたはプロシージャの時間シーケンスと、許可されたシーケンス終了イベントとを含み得る。ＧＵＩ層６０は、たとえば、ハードウェア構成および再構成、外部ハードウェアとの通信およびユーザ入力を変更するためのユーザ命令、入出力信号処理プロシージャの特定、ロジックテストの作成、すべての方法およびプロシージャについてのリアルタイムイベントマーカの獲得、システム動作の期間中の構成セッティングのトラッキング、ならびにプロシージャの実行中のすべての基本時間間隔についてのデータテンソルの格納のための方法も含み得る。ＧＵＩ層６０は、この情報を解釈し、データ送信および受信をハードウェア通信層６４および／または他の外部アプリケーションソフトウェア６３と連係させるために実装層６２が使用することができるやり方でこの情報を系統立てることになる。
【００７４】
したがって、ＧＵＩ層６０は、直観的な注意を引くアイコンプログラミング環境を提示し得、かつリアルタイム処理およびポスト処理において多重視覚化を提供し得る。ユーザは、ユーザが取ったアクションの履歴を見て、当該履歴を時系列の組の構成として保存し得る。
【００７５】
以下の例で詳細に説明されるように、修正されたハードウェア構成ベクトルは、所望のシステムハードウェア構成および所望のシステムプロシージャの実装においてシステムハードウェアを構成するようにプログラマブルハードウェアに命令するように処理され得る。
【００７６】
実装層６２は、プログラム５８のＧＵＩ層６０から構成ベクトル７０を取得し、それを作用可能なアイテムに分解し得る。これらの様々な作用可能なアイテムは実行マネージャに伝えられ、次いで、作用可能なアイテムを処理し実行するソフトウエアコンポーネントを呼出し得る。たとえば、ソフトウエアコンポーネントは、ＧＵＩ層６０との間でデータストリームをセットアップすること、データ処理プロシージャ、構成ベクトル７０の瞬間的な成分を観察および格納し、ハードウェア通信層６４を介したプログラマブルハードウェア２６への通信のための作用可能なアイテムを準備し、外部ソフトウェアアプリケーションと通信するためのプロシージャなどのために使用され得る。
【００７７】
実装層６２は、たとえばＭＡＴＬＡＢ（登録商標）、ＬＡＢＶＩＥＷ（登録商標）などからプロシージャプランをインポートするために、他のアプリケーションプログラム６３とも通信する。
【００７８】
ハードウェア通信層６４は、システムプログラマブルハードウェア２６およびハードウェア２８による双方向データ転送に対処し得る。より具体的には、ハードウェア通信層６４は、実装層６２から作用可能なアイテムを取得し、これらのアイテムを体系化し、ファームウェア言語たとえばフォースでコマンドまたは命令に変換し得る。また、ハードウェア通信層６４は、これらのコマンドまたは命令のプログラマブルハードウェア２６への送信を管理し得、システムプログラマブルハードウェア２６およびハードウェア２８から到来するデータストリームおよびシステムタイムクロック信号を受信し、翻訳し、命令し得る。ハードウェア通信層６４は、たとえばハードウェアドライバ６５を使用して、周辺またはリモートハードウェア４２，４６との間での双方向データ通信にも対処する。
【００７９】
この開示の目的で、システムコンピュータ１６は、学問的、商業的、生産、科学的、または他の目的のためのいずれかの形態のデータ、情報、知能を計算するか、分類するか、検出するか、表示するか、対処するか、発生させるか、操作するか、明示するか、処理するか、記録するか、再生するか、受信するか、検索するか、切替えるか、格納するか、または利用するためのいずれかの手段もしくは手段の集合を含み得る。コンピュータを含む例示的なコンピューティングシステム環境に関連して説明したが、開示されたシステム１０および方法は、多数の他の汎用または特殊目的のコンピューティングシステム環境もしくは構成によって動作可能であり得る。コンピューティングシステム環境は、システムまたは方法の使用もしくは機能性の範囲について何ら限定を示唆するように意図されていない。また、コンピューティングシステム環境は、例示的な動作環境において例証されたいずれか１つのコンポーネントもしくはコンポーネントの組合せに関して何らかの依存性または要件を有すると解釈されるべきではない。発明との使用に好適であり得る周知のコンピューティングシステム、環境、および／または構成の例は、限定はしないが、上記のシステムまたは装置のいずれかを含むパーソナルコンピュータ、サーバコンピュータ、携帯型もしくはラップトップ装置、マルチプロセッサシステム、マイクロプロセッサベースシステム、セットトップボックス、プログラマブル民生電子機器、携帯情報端末、移動電話、ネットワークＰＣ、ミニコンピュータ、メインフレームコンピュータ、分散コンピューティング環境などを含む。
【００８０】
先述のように、コンピュータ１６は、揮発性および／または不揮発性媒体、取外し可能および／または取外し不可能な媒体を含み得、かつコンピュータによってアクセスされ得るいずれかの好適な媒体であり得る、少なくとも何らかの形態のコンピュータ読取可能媒体を使用するように適合化され得る。媒体は、プロセッサもしくは他のデータプロセッサとともに下記の方法工程の一部またはすべてを実装するための命令もしくはプログラムを含み、格納し、および／または搭載し得る。現時点で開示されている方法の少なくともある部分は、ローカルに、またはＬＡＮ、ＷＡＮなどといった通信ネットワークによってリンクされたリモートコンピュータもしくは処理装置によってタスクが行われ得る分散コンピューティング環境において、実施され得る。分散コンピューティング環境では、プログラムモジュールは、メモリ記憶装置を含むローカルおよびリモートコンピュータ記憶媒体の両方に配置され得る。
【００８１】
コンピュータ記憶媒体は、コンピュータプログラムをローカルに分散させるために使用され得、コンピュータ読取可能命令、プログラムモジュール、データ構造、他のデータなどといった情報の格納のためのいずれかの方法または技術で実装される揮発性および／または不揮発性媒体、取外し可能および／または取外し不可能な媒体を含み得る。より具体的には、コンピュータ記憶媒体は、ＲＡＭ、ＲＯＭ、ＥＥＰＲＯＭ、フラッシュメモリもしくはメモリスティック、集積回路、ＣＤ−ＲＯＭ、デジタル汎用ディスク（ＤＶＤ）、または他の光ディスク記憶装置、磁気カセット、磁気テープ、磁気ディスク記憶もしくは他の磁気記憶装置、または所望の情報を格納するために使用され得、かつコンピュータ１６によってアクセスされ得るいずれかの他の媒体を含み得る。
【００８２】
上記の方法は、１つ以上のコンピュータプログラムとして行われ得、様々なデータが参照テーブルなどとしてメモリ４８に格納され得る。コンピュータプログラムまたはソフトウェアは、ロジック機能を実装するための実行可能な命令を含み得、命令を検索し実行することができるプロセッサによってまたはプロセッサに関連して使用するためのいずれかのコンピュータ読取可能媒体に具体化することができる。ソフトウェアは、限定はしないが、特定のタスクを行い、および／または特定の抽象データ型を実装するためのルーチン、モジュール、オブジェクト、コンポーネント、データ構造などを含み得る。コンピュータプログラムは、アクティブなおよびアクティブでない様々な形態で存在し得る。一般的な例は、ソースコード、オブジェクトコード、実行可能なコードもしくは他のフォーマットの命令、ファームウェアプログラム、またはハードウェア記述言語（ＨＤＬ）ファイルなどで構成されたソフトウェアプログラムを含む。具体的な例は、アセンブラ、Ｃ、Ｃ＋＋オブジェクト、ビジュアルベーシック（登録商標）、ビジュアルＣ＋＋（登録商標）、ＸＭＬ、ＵＭＬ、Ｊａｖａ（登録商標）、およびマイクロソフト（登録商標）ファウンデーションクラス、Ｍｉｃｒｏｓｏｆｔ．ｎｅｔ、ｖｉｓｕａｌ．ｎｅｔ、ＰＥＲＬ、ＰＨＰ、ＳＱＬなどを含む。上記のいずれかは、圧縮されたまたは圧縮されていない形態の１つ以上の記憶装置および／または信号を含むコンピュータ使用可能媒体上で実施されることができる。例示的なコンピュータ使用可能記憶装置は、従来のコンピュータシステムＲＡＭ（ランダムアクセスメモリ）、ＲＯＭ（リードオンリーメモリ）、ＥＰＲＯＭ（消去可能、プログラマブルＲＯＭ）、ＥＥＰＲＯＭ（電気的消去可能なプログラマブルＲＯＭ）、および磁気または光学ディスクもしくはテープを含む。
【００８３】
上記の例示的な実施例の特徴のうち１つ以上は、以下の利点のうち１つ以上をもたらし得る。
【００８４】
システム１０は、電源投入し、すべての内部状態を安全に初期化し、その現在のステータスおよびＧＵＩ層６０によって接続されているリモートハードウェアのステータスを報告するために使用されることができる。
【００８５】
システム１０は、すべての構成および信号データを保存するために使用されることができる。ユーザは、保存された構成およびすべての信号チャネルを検索し、処理された結果を分析し、処理し、表示し、保存し得る。
【００８６】
解析および処理は、ライブまたは格納データの表示／解析／処理のための共通のツールを用いた順次更新によるデータ取得中に生じ得る。
【００８７】
システム１０は、画像面内における数十ピコメータ制御および分解能によって、ならびに数十ピコメータの位置制御および分解能による画像面に垂直な方向の動きおよび位置（平均速度および課された高周波速度および位置変調を含む）の独立制御によって、動きを制御し、かつトポグラフィ型顕微鏡的判定を実装することができる単一および多数のＳＰＭ型装置を制御し得る。システム１０は、数百ピコメータの面空間分解能および精度によって、多くの種類の局所化された電磁気および／または物理的な励起をサンプルに実装し得る。システム１０は、３つの空間的次元すべてにおける数十ピコメータの位置精度および再現性によって、非反応性および反応性種の配置、移動、および化学的／物理的処理を多くの種類の基板に実装し得る。
【００８８】
驚くべきことに、これらのソフトウェアベースサービスは、２つのシステム加工物、シングルシステムワイドタイムクロック３２および構成ベクトル７０によって重要となり、実装可能となり得る。シングルシステムワイドタイムクロック３２は、システム１０が横断するすべてのイベント間の厳密な時間順序および同期を可能とする。構成ベクトル７０のエントリは、すべてのインスタンス化されたハードウェア、すべての励起および応答信号、ならびに時間的なシステム１０の進化を判定するアルゴリズムおよび外部条件の変化に応答したこれらのアルゴリズムのプログラム修正の詳細を取込むためのシステム化されたやり方で割当てられた値である。
【００８９】
上記の説明は発明の定義ではなく、発明の例示的な実施例の１つ以上の例の説明である。上記の説明に含まれる記述は特定の例に関連するものであって、用語が明白に上で定義される場合を除き、以下で請求される発明の範囲または請求項で使用される用語の定義に対する限定と解釈されるべきではない。また、限られた数の例を用いて本発明が開示されたが、多くの他の例が可能であり、発明の可能な表明のすべてに言及するものとはここでは意図されない。実際、上記の記載に鑑み、他の修正、変更、形態、細分化、代用、および／または等価物が当業者には明らかとなるであろう。本発明は、添付の請求項の精神および広範な範囲に収まるそのような形態、細分化、修正、変更、代用、および／または等価物を包含することが意図される。換言すると、本発明は、添付の請求項に詳述される限定事項の多くの代用または等価物を包含する。したがって、発明はここに開示された例示的な実施例の特定の例に限定されず、その代り、添付の請求項によってのみ規定される。
【図１】
0005600342.tif 000002
【図２】
0005600342.tif 000003
【図３】
0005600342.tif 000004
【図４】
0005600342.tif 000005
【図５】
0005600342.tif 000006
【図６】
0005600342.tif 000007
【図７】
0005600342.tif 000008
【図８】
0005600342.tif 000009
【図９】
0005600342.tif 000010
【図１０】
0005600342.tif 000011
【図１１】
0005600342.tif 000012
【図１２】
0005600342.tif 000013
【図１３】
0005600342.tif 000014
【図１４】
0005600342.tif 000015
【図１５】
0005600342.tif 000016
【図１６】
0005600342.tif 000017