(57)【特許請求の範囲】
【請求項１】
複数のデバイスの動作の少なくとも一部を管理するデバイス制御装置であって、
アドレスを指定することによりデータの書き込み、および、読み出しが可能に構成されたレジスタを複数有するレジスタ回路と、
前記アドレスを指定することによって前記レジスタ回路の前記複数のレジスタのデータを監視し、かつ、前記レジスタ回路の予め定められたレジスタに前記デバイスを起動させるためのデータを書き込むレジスタ制御回路と、
指定された前記アドレスと前記レジスタ回路から読み出されたデータとに基づいて前記複数のデバイスのうちいずれかのデバイスに所定の動作を行わせる信号発信回路と、を備え、
前記レジスタ回路では、
前記複数のレジスタのうち予め定められた第１レジスタに、前記複数のデバイスの各々の動作状態を表すとともに、当該複数のデバイスの各々の動作を共通して管理する第１ビットの集合が割り当てられているとともに、前記第１レジスタ以外の複数の第２レジスタのそれぞれに、前記複数のデバイスの各々の動作状態を表すとともに、当該複数のデバイスの各々の動作を個別に管理する第２ビットがそれぞれ割り当てられている、
ことを特徴とするデバイス制御装置。
【請求項２】
前記レジスタ制御回路は、
前記第１レジスタの前記第１ビットの集合のいずれかが前記デバイスの動作終了を示している場合に、前記デバイスに割り当てられた前記第２レジスタの前記第２ビットに対して前記デバイスの動作を指示するデータを書き込む、
請求項１に記載のデバイス制御装置。
【請求項３】
前記信号発信回路は、
指定された前記アドレスにより特定される前記第２レジスタから読み出されたデータが前記複数のデバイスのいずれかを動作させるためのデータであった場合に前記第２レジスタに割り当てられた前記デバイスの動作を許可する許可信号を出力する、
請求項１または２に記載のデバイス制御装置。
【請求項４】
前記信号発信回路は、
前記複数のデバイスのうちいずれかのデバイスの動作が終了した場合には、動作が終了した前記デバイスに割り当てられている前記第１レジスタの第１ビットに前記デバイスの動作終了を示すデータを書き込む、
請求項１乃至３のいずれか一項に記載のデバイス制御装置。
【請求項５】
前記デバイスは、ビデオカメラ、カウンタ、またはシーケンサのいずれかである、
請求項１〜４のいずれか一項に記載のデバイス制御装置。
【請求項６】
前記レジスタ回路は、前記複数のデバイスの動作の少なくとも一部の管理のために用いられているビット以外のビットの少なくとも一部を、前記複数のデバイスの動作開始からの経過時間を計測するカウンタとして用いる、
請求項１〜５のいずれか一項に記載のデバイス制御装置。
【請求項７】
請求項１乃至６のいずれか一項に記載のデバイス制御装置を内蔵したＣＰＵ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は複数のデバイスを起動させるためのデバイス起動技術の改良に関する。
【背景技術】
【０００２】
基板等の製造品に不良品が存在するか否かを検査するために、複数のビデオカメラからの画像を取り込んで基板を検査する基板検査装置が開発されていた。例えば、特開平６−２２２０１１号公報（特許文献１）には、基板を撮影するための４台のビデオカメラ１３〜１６をＸ−Ｙ方向に互いに対向する２組に分け、奇数フレーム／偶数フレーム間で交互に飛び越し走査が行われるビデオ信号を利用した基板検査装置が開示されている。この基板検査装置では、互いに対向するビデオカメラからなる組のそれぞれに水平同期期間の１／２だけずれた水平同期信号が与えられ、一方のビデオカメラの組では奇数フレームの画像を撮影させ、他方のビデオカメラの組では偶数フレームの画像を撮影させる。このような処理によって、製造品について高速で連続した検査領域の解析が可能となっていた。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開平６−２２２０１１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、特許文献１に記載の基板検査装置では、複数のビデオカメラ間における撮像タイミングは同期信号に基づいて管理されている必要があった。同期信号を供給する接続をしないでそれぞれのビデオカメラの起動タイミングを管理しようとすれば、時間計測手段、例えばカウンタを用いてカウンタの計数値に基づき起動タイミングを管理する必要があった。
【０００５】
このようなカウンタによる起動管理では、デバイスごとにレジスタを割り当ててレジスタの計数に基づいてデバイスの起動時間を管理させることになる。例えばカウンタを起動後、所定のレジスタの数値を一定数ずつ変化させる動作を繰り返すことで経過時間を計測し、レジスタの数値がゼロ等になったことで計数を終了し、計測開始から一定期間が経過したことを示す。カウンタによる経過時間の計数が終了したらそれを遅滞なく検出し、遅滞なくレジスタに起動データを書き込んでカウンタを再起動させなければならない。
【０００６】
ところが、制御回路によるレジスタの読み取りおよび書き込みはレジスタごとに順番に実施しなければならないため、あるレジスタの数値がゼロになった場合にそのレジスタのデータを読み取るタイミングが相当遅れる場合があった。もしもいずれかのカウンタにおける計数の終了の検出が遅れた場合には再起動のタイミングが遅れることになり、正しいタイミングで画像の取り込み開始を指示できないことになる。
【０００７】
そこで、本発明は、互いに同期していない複数のデバイスにであっても遅延することなく動作させることが可能なデバイス制御装置およびＣＰＵ（中央演算処理装置）を提供することを目的の一つとする。
【課題を解決するための手段】
【０００８】
（１）上記課題を解決する本発明のデバイス制御装置は、複数のデバイスの動作の少なくとも一部を管理するデバイス制御装置であって、アドレスを指定することによりデータの書き込み、および、読み出しが可能に構成されたレジスタを複数有するレジスタ回路と、アドレスを指定することによってレジスタ回路の複数のレジスタのデータを監視し、かつ、レジスタ回路の予め定められたレジスタにデバイスを起動させるためのデータを書き込むレジスタ制御回路と、指定されたアドレスとレジスタ回路から読み出されたデータとに基づいて複数のデバイスのうちいずれかのデバイスに所定の動作を行わせる信号発信回路と、を備える。そして、レジスタ回路では、複数のレジスタのうち予め定められた第１レジスタに、複数のデバイスの各々の動作状態を表すとともに、複数のデバイスの各々の動作を管理する第１ビットの集合が割り当てられているとともに、第１レジスタ以外の複数の第２レジスタのそれぞれに、複数のデバイスの各々の動作状態を表すとともに、複数のデバイスの各々の動作を管理する第２ビットがそれぞれ割り当てられている。
【０００９】
上記（１）の発明によれば、複数のデバイスの動作を管理するために、共通する第１レジスタが割り当てられている一方、個々のデバイスの動作を管理するために個別に第２レジスタも割り当てられている。よって、第１レジスタの第１ビットの集合を参照することによりいずれのデバイスについても同時に動作状態を把握できる一方、動作が終了したデバイスについて対応する第２レジスタの第２ビットにデータを書き込むことにより、個別にそれぞれのタイミングでデバイスの動作を開始させることができる。また、複数の第１ビットにデータを書き込むことにより複数のデバイスの動作を同時に開始させることもできる。
【００１０】
本発明は、所望により、以下のような態様を適用することが可能である。
（２）上記（１）のデバイス制御装置において、レジスタ制御回路は、第１レジスタの第１ビットの集合のいずれかがデバイスの動作終了を示している場合に、デバイスに割り当てられた第２レジスタの第２ビットに対してデバイスの動作を指示するデータを書き込む。
【００１１】
（３）上記（１）または（２）のデバイス制御装置において、信号発信回路は、指定されたアドレスにより特定される第２レジスタから読み出されたデータが複数のデバイスのいずれかを動作させるためのデータであった場合に第２レジスタに割り当てられたデバイスの動作を許可する許可信号を出力する。
【００１２】
（４）上記（１）〜（３）のいずれかのデバイス制御装置において、信号発信回路は、複数のデバイスのうちいずれかのデバイスの動作が終了した場合には、動作が終了したデバイスに割り当てられている第１レジスタの第１ビットにデバイスの動作終了を示すデータを書き込む。
【００１３】
（５）上記（１）〜（４）のいずれかのデバイス制御装置において、デバイスは、ビデオカメラ、カウンタ、またはシーケンサのいずれかである。
【００１４】
（６）上記（１）〜（５）のいずれかのデバイス制御装置において、レジスタ回路は、複複数のデバイスの動作の少なくとも一部の管理のために用いられているビット以外のビットの少なくとも一部を、複数のデバイスの動作開始からの経過時間を計測するカウンタとして用いる。
【００１５】
（７）上記（１）〜（６）のいずれかのデバイス制御装置を内蔵したＣＰＵである。
【発明の効果】
【００１６】
本発明によれば、複数のデバイスの動作を共通して管理する第１レジスタと、デバイスの動作を個別に管理する第２レジスタと、が設けられているので、複数のデバイスの動作状態を遅滞なく検出するとともに、複数のデバイスの動作を個別のタイミングでまたは同時に開始させることが可能である。
【図面の簡単な説明】
【００１７】
【図１】実施形態１のデバイス制御装置１０を含む検査装置１の構成図
【図２】実施形態１のレジスタ回路１００のレジスタ構成図
【図３】実施形態１の信号発信回路１１０の構成図
【図４】レジスタ制御回路１２０の動作を説明するフローチャート
【図５】信号発信回路１１０の動作を説明するフローチャート
【図６】レジスタ利用時の不都合な利用法の例（第１の方法）
【図７】レジスタ利用時の不都合な利用法の例（第２の方法）
【図８】実施形態２のデバイス制御装置１０ｂを含む検査装置１ｂの構成図
【図９】実施形態３のレジスタ回路１００ｂのレジスタ構成図
【発明を実施するための形態】
【００１８】
以下に本発明の実施の形態を説明する。以下の図面の記載において、同一又は類似の部分には同一又は類似の符号で表している。ただし、図面に記載された各ブロックは便宜的に機能に応じて区分けして記載したものである。したがって、目的とする動作結果が得られる限りにおいて、図面に記載されたブロックの構成を設計変更により適宜変更して用いることが可能である。また、各ブロックの構成は、ハードウェアで実現されるものの他、ソフトウェアを用いて機能的に実現される手段であってもよい。
【００１９】
（定義）
本明細書において用いられる用語を以下のとおり定義する。
「デバイス」：デバイス制御の対象となる装置一般を意味し、例えばビデオカメラ、カウンタ、またはシーケンサを含む。
「データ」：レジスタを構成する１ビットで表される情報のことをいうが、複数ビットで一つのデバイス制御のための情報を示す場合も含む。例えば、「データ」はデバイスの動作の開始と終了を管理すればよい場合には１ビットで表される「１」または「０」となる。
【００２０】
「動作」：デバイスに対する、目的に応じて予め定められた処理をいう。例えば、デバイスがビデオカメラである場合には「動作」は画像取り込みを意味する。デバイスがカウンタであれば「動作」は計測を意味する。
「起動」：単にデバイスの電源を投入する、といった狭義の意味に限定するものではなく、デバイスにおける種々の機能を発揮させることを含む。
「管理」：デバイスの動作状態を把握すること、および、当該ビットにデータを書き込んで動作を開始させること、を少なくとも含む概念である。
【００２１】
「第１レジスタ」：複数のデバイスの動作を共通して管理するためのレジスタをいう。「第１レジスタ」は複数のデバイスの動作を管理可能なように１つのレジスタとすることが好ましいが、デバイスの数がレジスタのビット数を上回るような場合には複数のレジスタを「第１レジスタ」に割り当ててもよい。「第１レジスタ」の複数のビットを参照することにより複数のデバイスの動作状態を同時に把握でき、複数のビットに同時にデータを書き込むことにより複数のデバイスの動作を同時に開始させることができる。
【００２２】
「第２レジスタ」：複数のデバイスの動作を個別に管理するためのレジスタをいう。「第２レジスタ」に予め定めた上記「データ」を書き込むことにより割り当てられたデバイスの動作が開始される。「第２レジスタ」のデバイスに割り当てられたビットを参照することにより対応するデバイスの動作状態を個別に把握でき、デバイスに割り当てられたビットにデータを書き込むことにより対応デバイスの動作を個別に開始させることができる。
【００２３】
「同時動作デバイス」：同時に動作を開始させるべき複数のデバイスをいう。同時動作デバイスは２以上の任意のデバイスであればよい。
【００２４】
（実施形態１）
本発明の実施形態１は基板などの不良を検出するためにビデオカメラを複数備えた検査装置に係り、特に、本発明のデバイス制御装置を含む。本実施形態１のデバイス制御装置は、動作管理の対象となるデバイス（ビデオカメラ）が、動作を共通に管理する第１レジスタの各ビットに割り当てられているとともに、デバイスの動作を個別に管理する複数の第２レジスタの各々にも割り当てられている。
【００２５】
（構成）
図１に本実施形態１に係る検査装置１の構成を示す。図１に示すように、検査装置１は、複数のビデオカメラ２、デバイス制御装置１０、および画像メモリ１２を備えて構成される。
【００２６】
ビデオカメラ２は、本発明の動作管理となるデバイスの一例であり、レジスタ回路１００のレジスタを構成するビットの数（ここでは８個）だけ設けられているものとする。個々のビデオカメラを「デバイスｘ」（ｘ＝Ａ〜Ｈ）とも称する。個々のビデオカメラ２は検査対象（例えば基板）の画像をフレーム単位で取り込み、画像データとしてデバイス制御装置１０経由で画像メモリ１２に出力可能に構成されている。例えば本実施形態において、複数のビデオカメラ２は基板の所定領域の画像を同じタイミングで取り込むものとする。同時に取り込まれた画像データは、例えば、相互に比較するために図示しない処理装置によって参照される。特に本発明の特徴として、ビデオカメラ２は互いに同期信号を参照する同期のための配線が設けられていない。また本実施形態では、複数のビデオカメラ２の総てが同時に動作開始させるための「同時動作デバイス」に割り当てられている。
【００２７】
画像メモリ１２は、複数の画像データを各ビデオカメラ２に対応付けて記憶更新可能に構成されている。画像メモリ１２に格納された画像データは図示しない処理装置により参照可能になっている。
【００２８】
デバイス制御装置１０は、本発明に係り、レジスタ回路１００、信号発信回路１１０、レジスタ制御回路１２０、およびデバイス制御回路１３０を備えている。このうち、レジスタ制御回路１２０は中央演算処理装置（ＣＰＵ）である。レジスタ回路１００および信号発信回路１１０は専用集積回路（ＦＰＧＡやＡＳＩＣ）として構成されていてもよい。
【００２９】
＜レジスタ回路１００＞
レジスタ回路１００は、アドレスを指定することによりデータの書き込み、および、読み出しが可能に構成されたレジスタを複数有する。レジスタ回路１００では、複数のレジスタのうち予め定められた特定のレジスタが複数のデバイスの動作を共通して管理するための「第１レジスタ」として割り当てられている。また、複数のレジスタのうち第１レジスタ以外の複数のレジスタを、デバイスの動作を個別に管理するための「第２レジスタ」として割り当てられている。
【００３０】
図２に本実施形態におけるレジスタ回路１００のレジスタ割り付け例の詳細を示す。図２に示すように、例示として、レジスタ回路１００は、それぞれが８ビット（ｂｉｔ７〜ｂｉｔ０）で構成されるレジスタＡ〜Ｋを備えている。レジスタＡ〜Ｋは、例示としてアドレス０ｘ００００〜０ｘ０００９でアクセス可能に構成されている。レジスタＡ〜Ｋのうち、レジスタＪ（アドレス０ｘ０００８）が上記第１レジスタとして割り当てられており、レジスタＡ〜Ｈが上記第２レジスタとして割り当てられている。第１レジスタＪでは、ビット７〜ビット０の各々がデバイスＡ〜Ｈの各々の動作を開始するための「第１ビット」の集合として割り当てられている。第２レジスタＡ〜Ｈでは、ビット７がそれぞれデバイスＡ〜Ｈの各々の動作を管理するための「第２ビット」として割り当てられている。また第２レジスタＡ〜Ｈのビット６が各々のデバイスをイネーブルにする許可ビットとして割り当てられている。また第２レジスタＡ〜Ｈのビット５〜０の６ビットが各デバイスの動作開始からの経過時間を計測するためのカウンタとして用いられるようになっている。話を簡単にするため、以下イネーブルについての説明は省略する。特に本実施形態では、第１レジスタＪは複数のデバイスの動作を同時に開始させるためにも用いられる。
【００３１】
＜レジスタ制御回路１２０＞
図１に戻り、レジスタ制御回路１２０は、アドレスを指定することによってレジスタ回路１００の複数のレジスタのデータ（ビットの論理状態）を監視し、かつ、デバイスの動作を開始させるためのデータ（例えばビットの論理状態「１」）を書き込むことが可能に構成されている。そしてレジスタ制御回路１２０は、第１レジスタのいずれかの第１ビットの論理状態がデバイスの動作終了を示している場合に、同じデバイスに割り当てられた第２レジスタに対してデバイスの動作開始を指示するデータを書き込む。例えば、レジスタ制御回路１２０は、中央演算処理装置（ＣＰＵ）が本発明に係るソフトウェアプログラムを実行することにより機能的に実現される。
【００３２】
具体的にレジスタ制御回路１２０は、図２に示す第１レジスタＪのいずれかの第１ビットがデバイスの動作終了を示している場合（例えばビット論理が「０」である場合。以下同じ。）、対応する第２レジスタにデバイスの動作開始を指示するデータ（例えばビット論理「１」。以下同じ。）を書き込む。特に本実施形態では、第１レジスタＪを構成するビット７〜０の総てが同時に動作を開始すべき「同時動作デバイス」（ビデオカメラＡ〜Ｈ）に割り付けられている。よってレジスタ制御回路１２０は、ビット７〜０がともに動作終了を示している場合に、これら同時動作デバイスの動作を開始させるデータを第１レジスタＪに書き込むように構成されている。
【００３３】
＜信号発信回路１１０＞
信号発信回路１１０は、指定されたアドレスとレジスタ回路から読み出されたデータとに基づいて、複数のデバイスのうちいずれかのデバイスの動作を開始させることが可能に構成されている。具体的に信号発信回路１１０は、指定されたアドレスにより特定される第２レジスタの第２ビットのデータを読み出し、読み出されたデータが複数のデバイスのいずれかの動作を開始させるためのデータであった場合に、この第２レジスタに割り当てられたデバイスの動作を許可する許可信号を出力する。また信号発信回路１１０は、複数のデバイスのうちいずれかのデバイスの動作が終了した場合には、動作が終了したデバイスに割り当てられている第１レジスタの対応する第１ビット、および、第２レジスタの第２ビットの双方に、デバイスの動作終了を示すデータを書き込むように構成されている。
【００３４】
図３に信号発信回路１１０の具体的構成を示す。図３に示すように、信号発信回路１１０は、例えばセレクタ回路１１２とデータ保持回路１１４とを備えている。これらの構成は、第１レジスタに格納されたデータに基づく動作終了の検出と、デバイスの動作開始を許可する許可信号の出力と、を説明するために概念的に示した図である。
【００３５】
セレクタ回路１１２およびデータ保持回路１１４はデバイス毎に設けられている。図３では話を簡単にするため第２レジスタＥに対応したデバイスを選択するセレクタ回路１１２およびデータ保持回路１１４の組み合わせが表示されている。実際には、本実施形態では８つのデバイスを選択可能なようにレジスタ回路１００が構成されているので、選択可能なデバイスの数と等しく、セレクタ回路１１２およびデータ保持回路１１４の組み合わせが８組設けられることになる。
【００３６】
アドレスバスＡｂｕｓには、レジスタ制御回路１２０がレジスタ回路１００のいずれかのレジスタにアクセスするためのアドレスが出力されている。データベスＤｂｕｓには、レジスタ制御回路１２０のアクセスによって読み出されたレジスタのデータが出力されている。
【００３７】
セレクタ回路１１２は、例えばＡＮＤ回路１１２０、１１２２、およびＯＲ回路１１２４を備える。セレクタ回路１１２のＡＮＤ回路１１２０は、第１レジスタＪがアクセスされた場合に（アドレス０ｘ０００４）、第１ビットのデータの値（レジスタＪのビット３）を出力するようになっている。セレクタ回路１１２のＡＮＤ回路１１２２は、第２レジスタがアクセスされた場合に（アドレス０ｘ０００８）、第２ビットのデータの値（レジスタＥのビット７）を出力するようになっている。ＯＲ回路１１２４は、ＡＮＤ回路１１２０およびＡＮＤ回路１１２２の出力の論理和を出力するようになっている。
【００３８】
データ保持回路１１４は、データラッチまたはフリップフロップにより構成される。データ保持回路１１４は、セレクタ回路１１２の出力データＤａｔａをレジスタ制御回路１２０が出力するロード信号Ｌｏａｄのタイミングで保持する。そしてレジスタ制御回路１２０から起動レジスタＥに対応するデバイスについてイネーブル信号Ｅｎａｂｌｅが出力された時に出力データＤａｔａを個々のデバイスの許可信号Ｒｕｎとして出力する。
【００３９】
以上のセレクタ回路１１２およびデータ保持回路１１４により、同時起動レジスタとして設定されたレジスタの起動データまたは個別起動レジスタとして設定されたレジスタの起動データのいずれかがデバイス毎の許可タイミングに合わせて出力可能となっている。
【００４０】
さらに信号発信回路１１０は、デバイス制御回路１３０からいずれかのデバイスの動作が終了した旨の通知を受け取ると、動作が終了したデバイスに割り当てられている監視レジスタにデバイスの動作終了を示す動作終了データを書き込む。また信号発信回路１１０は、監視レジスタ以外の設けられた動作を終了したデバイスに対応する起動レジスタのデータにもデバイスの動作終了を示すデ動作終了データを書き込む。例えば本実施形態では、デバイスＥの動作が終了した場合、選択レジスタＪのビット３がリセット（ビット論理「０」が書き込まれる）されるとともに、対応する起動レジスタＥのビット７もリセットされる。これら信号発信回路１１０によるレジスタのリセットはハードウェアにより実現されることが好ましい。ハードウェア処理によれば、デバイスの動作終了後、遅滞なくデバイスの動作終了をデータとしてレジスタに反映可能だからである。
【００４１】
＜デバイス制御回路１３０＞
デバイス制御回路１３０は、デバイス制御装置１０からデバイスの許可信号Ｒｕｎを受け取ると、対応するデバイスを起動させる。対応するデバイスから画像データが提供されると、デバイス制御回路１３０は画像データを画像メモリ１２に転送する。対応するデバイスからの画像データの転送が終了すると、デバイス制御回路１３０は信号発信回路１１０にデバイスの動作終了を通知する。
【００４２】
（デバイス動作開始時の問題）
次に、本発明の利点についての理解を容易にするため、図６および図７に基づきレジスタを介した起動制御における問題点について説明する。
【００４３】
デバイスを同期させる専用の同期接続回路が設けられていないデバイス制御装置では、制御回路（ＣＰＵ）がデバイスの動作終了を監視し、かつ、デバイスの動作開始を制御する必要がある。一般的にデバイスの制御は、制御回路が直接管理するレジスタを介して実行することが考えられる。レジスタの利用方法としては、レジスタ毎に対応するデバイスを割り当る方法（第１の方法）と、１つのレジスタの各ビットに対応するデバイスを割り当てる方法（第２の方法）とが考えられる。
【００４４】
＜第１の方法＞
図６は第１の方法を説明するレジスタの割り付け図である。図６に示すように、第１の方法では、レジスタＡ〜Ｈの各々に対応するデバイスＡ〜Ｈを割り当て、各々のレジスタがデバイスの動作を開始させるレジスタとして、また、デバイスの動作状態を監視するレジスタとして利用される。
【００４５】
個々のデバイスの動作終了を監視する場合には、監視対象デバイスに対応するレジスタの起動データが書き込まれるビットと同じビット（以下「管理ビット」ともいう。）を参照する。個々のデバイスの動作が終了すると、デバイスに割り当てられたレジスタの管理ビットに動作が終了した旨の動作終了データ（例えばビット論理「０」）が書き込まれる。制御回路は監視対象デバイスに割り当てられたレジスタの管理ビットを参照する。動作終了データが書き込まれていれば、再起動のために起動データを書き込む等、次の処理に移行する。
【００４６】
一方、各々のデバイスを個別に起動させる場合には、起動対象デバイスに割り当てられたレジスタの起動データを書き込むべき管理ビット（例えばビット７）に起動する旨を示す起動データ（例えばビット論理「１」）を書き込む。起動データが書き込まれると、上記図３のような構成の信号発信回路によりデバイス制御回路にこの起動データが出力され、起動対象デバイスが起動される。
【００４７】
上記第１の方法によれば、デバイスを個別に任意のタイミングで起動させることができる。しかし一方で、レジスタへのアクセスを順番に行わなければならないため、複数のデバイスの動作終了を迅速に検出することができない。また、複数のデバイスを同時に起動させることができないという不都合を生ずる。例えば図６において、アドレス０ｘ０００４のレジスタＥを読み込んで管理ビット（ビット７）が動作終了データ「０」になっていればデバイスＥの動作が終了したと判断し、同じ管理ビット（ビット７）に起動データ「１」を書き込んで再起動させることができる。ここで、この処理をしている間にその他のデバイスが遅れて動作を終了する可能性がある。しかし、第１の方法では、順番にレジスタの管理ビットを参照していかないと、それぞれのデバイスの動作終了を検出することができない。また仮に、ほぼ同時期に動作を終了した他のデバイスがあることが判っていたとしても、デバイスＥを先に起動した後でなければ、他のデバイスに対応するレジスタの管理ビットに起動データを書き込んで他のデバイスを起動することができない。
【００４８】
＜第２の方法＞
図７は第２の方法を説明するレジスタの割り付け図である。図７に示すように、第２の方法では、１つのレジスタＪに総てのデバイスＡ〜Ｈが割り当てられており、レジスタの各ビットが対応するデバイスの動作を開始させたり対応デバイスの動作状態を検出したりする管理ビットとして割り当てられている。
【００４９】
個々のデバイスの動作終了を検出するには、レジスタの管理ビットのデータを読み込んで参照する。個々のデバイスの動作が終了すると、監視対象デバイスに割り当てられた管理ビットに、動作が終了した旨の動作終了データ（例えばビット論理「０」）が書き込まれる。制御回路は監視対象デバイスに割り当てられた管理ビットを参照する。管理ビットに動作終了データ「０」が書き込まれていれば、監視対象デバイスが動作を終了したものと確認できる。
【００５０】
一方、デバイスを起動させる場合には、起動対象デバイスに割り当てられている管理ビットに、動作を開始させるデータ（例えばビット論理「１」）を書き込む。通常、レジスタはビット単位での書き込みができないため、他のデバイスに割り当てられた管理ビットにも動作を開始させるための起動データ（例えばビット論理「１」）が同時に書き込まれることになる。起動対象デバイス以外のデバイスが総て動作中である場合には問題ない。起動対象デバイスに対応する管理ビット以外の管理ビットについてもビット論理を「１」にする起動データを書き込めばよい。いずれかの管理ビットに起動データが書き込まれると、上記図３のような構成の信号発信回路によりデバイス制御回路にこの起動データが出力され、起動対象デバイスが再起動される。既に動作しているデバイスに対しては、動作状態を変化させることがない。
【００５１】
上記第２の方法によれば、複数の管理ビットに同時期に動作終了データが書き込まれていれば複数のデバイスの動作終了を同時に検出できる。しかし殆どの場合、デバイスの動作終了タイミングは異なっており、異なったタイミングで他のデバイスに対応する管理ビットが動作終了データに変更されていくことになる。もしも運が悪ければ、いずれかの管理ビットが動作終了データに変更される直前に、先に動作終了が検出されたデバイスのためにレジスタ全体に起動データが書き込まれることになる。すなわち、第１のデバイスの動作終了→第１のデバイスに対応する管理ビットを参照して第１のデバイスの動作終了検出→第２のデバイスの動作終了→第１のデバイスに対応する管理ビットに対する起動指示→第２のデバイスに対応する管理ビットを参照して第２のデバイスの動作終了検出、の順序でイベントが進む場合である。このような場合には、動作終了データ（例えばビット論理「０」）に変更された管理ビットが起動データ（例えばビット論理「１」）により上書きされてしまう。上書きされるとデバイスの動作終了が検出されない。
【００５２】
また動作が終了したデバイスが複数存在する場合でも、一回の起動データの書き込みによる同時起動しか指示できず、複数のデバイスの各々を異なるタイミングで起動させることはできない。例えば図７において、アドレス０ｘ０００８のレジスタＪを読み込んで、管理ビット（ビット３）が動作終了データ「０」になっていればデバイスＥの動作が終了したと判断できる。他の管理ビット（ビット３以外）が動作終了データになっていない場合、動作を終了したのはデバイスＥだけであると判断できるので、レジスタＪにデータ０ｘＦＦ（全ビット「１」）を書き込んでデバイスＥを再起動させることになる。しかし、この再起動処理をしている間に、その他のデバイスの動作が終了した場合には、上述のようにその動作終了を検知できない。またレジスタＪに割り付けられたデバイスＡ〜Ｈは、異なるタイミングで個別に起動させることができない。
【００５３】
要するに、上記第１の方法によれば、複数のデバイスを異なるタイミングで起動できるものの、複数のデバイスの動作状態を同時に監視することができないという不都合がある。一方、上記第２の方法によれば、複数のデバイスの動作状態を同時に監視でき、複数のデバイスを同時に起動することができるが、各デバイスを異なるタイミングで起動することができないという不都合が生じる。
【００５４】
（本実施形態の動作）
次に、本実施形態における動作を説明する。
上述したように、本実施形態におけるレジスタ回路１００は、次の特徴を有する。
（１）複数のレジスタＡ〜Ｋのうち予め定められた特定のレジスタＪが複数のデバイスＡ〜Ｈの動作を共通して管理する第１レジスタとして割り当てられている。
（２）第１レジスタＪ以外のレジスタＡ〜Ｈが複数のデバイスＡ〜Ｈの動作を個別に管理するための第２レジスタとして割り当てられている。
（３）複数のデバイスＡ〜Ｈのうち同時動作デバイスＡ〜Ｈについては総て第１レジスタＪに割り当てられている。
【００５５】
そしてレジスタ制御回路１２０は、第１レジスタＪの第１ビットの集合（ビット７〜０）のいずれかがデバイスの動作終了を示している場合（例えばビット論理「０」）、動作終了に係るデバイスに割り当てられた第２レジスタＡ〜Ｈの第２ビットに、デバイスの起動を指示する起動データ（例えばビット論理「１」）を書き込む。またレジスタ制御回路１２０は、第１レジスタＪの複数の第１ビットがともに動作終了を示している場合（例えばビット論理「０」）、これら複数の第１ビットに対して同時動作デバイスＡ〜Ｈの同時起動を指示する起動データ（例えば０ｘＦＦ）を書き込む。
【００５６】
＜レジスタ制御回路１２０の動作＞
次に図４のフローチャートを参照しながら上記構成のレジスタ回路１００を利用した本実施形態におけるレジスタ制御方法を説明する。図４のフローチャートはレジスタ制御回路１２０が実行する処理を説明するものであり、ＣＰＵであるレジスタ制御回路１２０がソフトウェアプログラムを実行することにより実現される。
【００５７】
ステップＳ１において、レジスタ制御回路１２０はレジスタ回路１００の第１レジスタＪのデータを読み取る。この処理のためにアドレスバスＡｂｕｓにアドレス０ｘ０００８が出力され、データバスＤｂｕｓにデバイスＡ〜Ｈの動作状態を反映したデータが出力される。次いでステップＳ２に移行し、レジスタ制御回路１２０は出力された第１レジスタＪのいずれかの第１ビットが動作終了データ（ここではビット論理「０」）となっているかを判定する。その結果、第１レジスタＪからの出力データに動作終了データが含まれていなかった場合には（ＮＯ）、再び第１レジスタＪの監視処理に戻る（Ｓ１）。
【００５８】
ステップＳ２において第１レジスタＪからの出力データに動作終了データが含まれていた場合（ＹＥＳ）、ステップＳ３に移行し、動作終了データになっていた第１ビットに割り付けられているデバイスが同時動作デバイスとして予め設定されているか否かを判定する。同時動作デバイスとして設定されていた場合には（ＹＥＳ）、ステップＳ４に移行し、同時動作デバイスとして設定されている他のデバイスに対応する第１ビットが総て動作終了データに変更されているか否かを判定する。その結果、同時動作デバイスに設定されるデバイスのうち動作終了データとなっていないものが存在したら（ＮＯ）、総ての同時動作デバイスのデータが動作終了データとなるまで待つ。
【００５９】
同時動作デバイスに設定されたデバイスに対応する第１ビットが総て動作終了データに変更されていたら（ＹＥＳ）、ステップＳ５に移行し、レジスタ制御回路１２０は、第１レジスタの同時動作デバイスに対応する第１ビット、および、同時動作デバイスに対応する複数の第２レジスタの第２ビットの双方に起動データ（ここではビット論理「１」）を書き込む。すなわちアドレスバスＡｂｕｓにアドレス０ｘ０００８が出力され、データバスＤｂｕｓ経由で第１レジスタＪにデータ０ｘＦＦが書き込まれる。そして再び第１レジスタの読み取り処理に移行する（Ｓ１）。
【００６０】
一方、ステップＳ２において第１レジスタの動作終了データに変更されていた第１ビットに割り当てられたデバイスが同時動作デバイスでなかった場合（ＮＯ）、起動対象デバイスは個別起動デバイスであると判定できる。そこでステップＳ５に移行し、レジスタ制御回路１２０は、起動対象デバイスに割り当てられている第２レジスタの第２ビットに起動データを書き込む。例えば第２デバイスがデバイスＥであった場合、アドレスバスＡｂｕｓに０ｘ０００４が出力され第２レジスタＥがアクセスされ、第２ビット（少なくともビット７）に起動データ（ここではビット論理「１」）が書き込まれる。
【００６１】
＜信号発信回路１１０の動作＞
次に図５のフローチャートを参照しながらレジスタ回路１００に対する動作終了データの書込処理を説明する。図５のフローチャートは信号発信回路１１０がハードウェアにより実行する処理を示したものであり、ロジックにより瞬時に実行される。
【００６２】
ステップＳ１１において、データ保持回路１１４から許可信号Ｒｕｎが出力されていたら（ＹＥＳ）、デバイス制御回路１３０において、この許可信号Ｒｕｎに対応付けられているデバイスが起動される（Ｓ１２）。
【００６３】
一方ステップＳ１３において、デバイス制御回路１３０経由で信号発信回路１１０が対応するデバイスの動作終了を検出したら（ＹＥＳ）、信号発信回路１１０は、第１レジスタＪの対応する第１ビットを動作終了データ（ここではビット論理「０」）に変更する。同様に、動作が終了したデバイスに割り当てられている第２レジスタの第２ビットも動作終了データに変更する。
【００６４】
（本実施形態の利点）
（１）本実施形態１によれば、複数のデバイスＡ〜Ｈの動作を共通に管理する第１レジスタＪが割り当てられるとともに、複数のデバイスＡ〜Ｈの動作を個別に管理する第２レジスタＡ〜Ｈが割り当てられている。よって、第１レジスタＪを参照することによりいずれのデバイスについても同時に動作状態を把握できる一方、動作が終了したデバイスに対応する第２レジスタＡ〜Ｈのいずれかを用いて個別に迅速にデバイスの動作を開始させることができる。
【００６５】
（２）本実施形態１によれば、レジスタ回路１００では、同時動作デバイスＡ〜ＨについてはレジスタＪが第１レジスタとして割り当てられているので、第１レジスタＪの第１ビットに対して一回起動データを書き込めば、同時動作デバイスＡ〜Ｈの動作を同時に開始させることができる。
【００６６】
（３）本実施形態１によれば、信号発信回路１１０が、指定されたアドレスにより特定される第２レジスタから読み出されたデータが複数のデバイスＡ〜Ｈのいずれかを起動させるための起動データであった場合に第２レジスタに割り当てられたデバイスの動作を許可する許可信号Ｒｕｎを出力する。よって、起動対象デバイスに割り付けられた第２レジスタに起動データを書き込みさえすれば、簡単にデバイスを起動できる。
【００６７】
（４）本実施形態１によれば、信号発信回路１１０は、複数のデバイスＡ〜Ｈのうちいずれかのデバイスの動作が終了した場合には、動作が終了したデバイスに割り当てられている第１レジスタの第１ビットを動作終了データに変更する。よって、第１レジスタの第１ビットのデータを読み取ることでデバイスの動作状態を検出することが可能である。
【００６８】
（実施形態２）
本発明の実施形態２は上記実施形態１と同じ検査装置において、デバイス制御装置に係る構成をワンチップ化された基板に集積したＣＰＵ（中央演算装置）を場合の実施態様に関する。上記実施形態１と同じ構成要素については同じ符号を付すこととしその説明を省略する。
【００６９】
図８に本実施形態１に係る検査装置１の構成を示す。図８に示すように、本実施形態２の検査装置１ｂは、複数のビデオカメラ２、画像読取回路３、デバイス制御装置１０ｂ、および画像メモリ１２を備えて構成される。
【００７０】
画像読取回路３は、複数のビデオカメラ２の各々から画像データを読み取り、画像メモリ１２に転送可能に構成されている。また画像データの読み取りが終了した旨をデバイス制御回路１３０に通知可能に構成されている。
【００７１】
本実施形態２では、特にデバイス制御装置１０ｂが、レジスタ回路１００、信号発信回路１１０、レジスタ制御回路１２０、およびデバイス制御回路１３０を１つの基板（例えば半導体基板）に集積させて構成されている点で、上記実施形態１と異なる。個々の回路の機能については、実施形態１で上述したとおりである。
【００７２】
以上のように、デバイス制御装置１０ｂは、個々の部品により構成する他、本実施形態２のようにワンチップ化したＣＰＵとして構成することも可能である。
【００７３】
（実施形態３）
本発明の実施形態３は、上記実施形態１と同様の構成において、レジスタ回路の割付を異ならせ、第１レジスタを複数種類設けた点に特徴がある。
【００７４】
本実施形態３では、レジスタ回路１００が図９に示すように割り付けられている点で上記実施形態１と異なる。その他の構成については上記実施形態１のとおりなので説明を省略する。
【００７５】
図９に本実施形態３におけるレジスタ回路１００ｂのレジスタ割り付け例の詳細を示す。図９に示すように、例示として、レジスタ回路１００ｂは、それぞれが８ビットで構成されるレジスタＡ〜Ｍを備えている。レジスタＡ〜Ｍは、例示としてアドレス０ｘ００００〜０ｘ０００Ｂでアクセス可能に構成されている。レジスタＡ〜Ｍのうち、レジスタＪ（アドレス０ｘ０００８）が第１レジスタ（１）として、レジスタＫ（アドレス０ｘ０００９）が第１レジスタ（２）として、レジスタＬ（アドレス０ｘ０００Ａ）が第１レジスタ（３）として、レジスタＭ（アドレス０ｘ０００Ｂ）が第１レジスタ（４）として、それぞれ割り当てられている。レジスタＡ〜Ｈが第２レジスタとして割り当てられている点は上記実施形態１と同じである。
【００７６】
第１レジスタ（１）Ｊでは、ビット７〜ビット４の各々が、デバイスＡ、デバイスＢ、デバイスＣ、およびデバイスＤの動作状態を検出するための第１ビットの集合として割り当てられている。第１レジスタ（１）Ｊは、デバイスＡ、デバイスＢ、デバイスＣ、およびデバイスＤを同時に起動させるためのレジスタでもある。
【００７７】
第１レジスタ（２）Ｋでは、ビット７〜ビット４の各々が、デバイスＥ、デバイスＦ、デバイスＧ、およびデバイスＨの動作状態を検出するための第１ビットの集合として割り当てられている。第１レジスタ（２）Ｋは、デバイスＥ、デバイスＦ、デバイスＧ、およびデバイスＨを同時に起動させるためのレジスタでもある。
【００７８】
第１レジスタ（３）Ｌでは、ビット７〜ビット４の各々が、デバイスＡ、デバイスＢ、デバイスＧ、およびデバイスＨの動作状態を検出するための第１ビットの集合として割り当てられている。第１レジスタ（３）Ｌは、デバイスＡ、デバイスＢ、デバイスＧ、およびデバイスＨを同時に起動させるためのレジスタでもある。
【００７９】
第１レジスタ（４）Ｋでは、ビット７〜ビット４の各々が、デバイスＥ、デバイスＦ、デバイスＣ、およびデバイスＤの動作状態を検出するための第１ビットの集合として割り当てられている。第１レジスタ（４）Ｍは、デバイスＥ、デバイスＦ、デバイスＣ、およびデバイスＤを同時に起動するためのレジスタでもある。
【００８０】
以上のとおりレジスタ回路１００ｂが編成されているので、本実施形態３では、レジスタ制御回路１２０により次のような制御をさせることが可能である。
【００８１】
（１）個々のデバイスＡ〜Ｈを個別のタイミングで起動させたい場合には、第２レジスタＡ〜Ｈのいずれかの第２ビット（ビット７）に起動データを書き込む。これにより、起動データが書き込まれた第２レジスタＡ〜Ｈに対応したデバイスＡ〜Ｈを任意のタイミングで起動させることができる。
【００８２】
（２）デバイスＡ、デバイスＢ、デバイスＣ、およびデバイスＤを同時に起動させたい場合には、第１レジスタ（１）Ｊの第１ビットの集合（ビット７〜４）に起動データを書き込む。第１レジスタ（１）の第１ビットの集合に起動データが書き込まれることによって、デバイスＡ、デバイスＢ、デバイスＣ、およびデバイスＤを同時に起動することが可能である。
【００８３】
（３）デバイスＥ、デバイスＦ、デバイスＧ、およびデバイスＨを同時に起動させたい場合には、第１レジスタ（１）Ｋに第１ビットの集合（ビット７〜４）に起動データを書き込む。第１レジスタ（２）Ｋの第１ビットの集合に起動データが書き込まれることによって、デバイスＥ、デバイスＦ、デバイスＧ、およびデバイスＨを同時に起動することが可能である。
【００８４】
（４）デバイスＡ、デバイスＢ、デバイスＧ、およびデバイスＨを同時に起動させたい場合には、第１レジスタ（３）Ｌの第１ビットの集合（ビット７〜４）に起動データを書き込む。第１レジスタ（３）Ｌの第１ビットの集合に起動データが書き込まれること０によって、デバイスＡ、デバイスＢ、デバイスＧ、およびデバイスＨを同時に起動することが可能である。
【００８５】
（５）デバイスＥ、デバイスＦ、デバイスＣ、およびデバイスＤを同時に起動させたい場合には、第１レジスタ（４）Ｍの第１ビットの集合（ビット７〜４）に起動データを書き込む。第１レジスタ（４）Ｍの第１ビットの集合に起動データが書き込まれることによって、デバイスＥ、デバイスＦ、デバイスＣ、およびデバイスＤを同時に起動することが可能である。
【００８６】
以上、本実施形態３によれば、上記実施形態１と同様の作用効果を生じる他、第１レジスタが複数種類設けられているので、同時に起動させたいデバイスの組み合わせを動作毎に選択して変更していくことが可能である。よって、多彩なデバイスの動作制御が可能となる。
【００８７】
（その他の変形例）
本発明は上記実施形態に限定されることなく、本発明の作用効果を奏する範囲において種々に変更して適用することが可能である。
【００８８】
例えば、上記実施形態１では８つ総てのデバイスを同時動作デバイスとし、上記実施形態３では、４つのデバイスを同時動作デバイスとして設定したが、これらに限定されない。同時動作デバイスは２以上の任意の数のデバイスを適用することが可能である。
【００８９】
また上記実施形態では、起動データおよび動作終了データとも１ビットデータを例示したがこれに限定されず、複数ビットを一つの制御データに対応させてもよい。複数ビットを１つの制御データに対応させることにより、３以上のデバイスの動作状態を監視したり、３つ以上の異なる動作を制御したりすることが可能である。例えば制御データを２ビットで構成すれば、動作として「起動」、「動作終了」以外に「スタンバイ」、「無効（デバイス無し）」などの動作状態を監視し、また、動作を指示するなどの管理が可能である。
【産業上の利用可能性】
【００９０】
本発明のデバイス制御装置は、レジスタを介してデバイスの動作を管理することが可能な回路や装置に任意に適用することが可能である。
【符号の説明】
【００９１】
Ａｂｕｓ…アドレスバス、Ｄｂｕｓ…データバス、Ｅｎａｂｌｅ…イネーブル信号、Ａ〜Ｍ…レジスタ、Ｌｏａｄ…ロード信号、Ｒｕｎ…許可信号、１、１ｂ…検査装置、２…ビデオカメラ、３…画像読取回路、１０、１０ｂ…デバイス制御装置、１２…画像メモリ、１００、１００ｂ…レジスタ回路、１１０…信号発信回路、１１２…セレクタ回路、１１４…データ保持回路、１２０…レジスタ制御回路、１３０…デバイス制御回路、１１２０、１１２２…ＡＮＤ回路、１１２４…ＯＲ回路
【図１】
0005419761.tif 000002
【図２】
0005419761.tif 000003
【図３】
0005419761.tif 000004
【図４】
0005419761.tif 000005
【図５】
0005419761.tif 000006
【図６】
0005419761.tif 000007
【図７】
0005419761.tif 000008
【図８】
0005419761.tif 000009
【図９】
0005419761.tif 000010