説明

デバイス起動装置およびCPU

【課題】互いに同期していない複数のデバイスにであっても遅延することなく再起動させる。
【解決手段】アドレスを指定することによりデータの書き込み、および、読み出しが可能に構成されたレジスタを複数有するレジスタ回路(100)、アドレスを指定することによってレジスタ回路の複数のレジスタのデータを監視し、かつ、レジスタ回路の予め定められたレジスタにデバイスを起動させるためのデータを書き込むレジスタ制御回路(120)、指定されたアドレスとレジスタ回路から読み出されたデータとに基づいて複数のデバイスのうちいずれかのデバイスに所定の動作を行わせる信号発信回路(110)を備え、レジスタ回路(100)では、複数のレジスタのうち予め定められた第1レジスタに複数のデバイスの各々の動作を共通して管理する第1ビットの集合が割り当てられているとともに、第1レジスタ以外の複数の第2レジスタのそれぞれに複数のデバイスの各々の動作を個別に管理する第2ビットがそれぞれ割り当てられている。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は複数のデバイスを起動させるためのデバイス起動技術の改良に関する。
【背景技術】
【0002】
基板等の製造品に不良品が存在するか否かを検査するために、複数のビデオカメラからの画像を取り込んで基板を検査する基板検査装置が開発されていた。例えば、特開平6−222011号公報(特許文献1)には、基板を撮影するための4台のビデオカメラ13〜16をX−Y方向に互いに対向する2組に分け、奇数フレーム/偶数フレーム間で交互に飛び越し走査が行われるビデオ信号を利用した基板検査装置が開示されている。この基板検査装置では、互いに対向するビデオカメラからなる組のそれぞれに水平同期期間の1/2だけずれた水平同期信号が与えられ、一方のビデオカメラの組では奇数フレームの画像を撮影させ、他方のビデオカメラの組では偶数フレームの画像を撮影させる。このような処理によって、製造品について高速で連続した検査領域の解析が可能となっていた。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特開平6−222011号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
しかしながら、特許文献1に記載の基板検査装置では、複数のビデオカメラ間における撮像タイミングは同期信号に基づいて管理されている必要があった。同期信号を供給する接続をしないでそれぞれのビデオカメラの起動タイミングを管理しようとすれば、時間計測手段、例えばカウンタを用いてカウンタの計数値に基づき起動タイミングを管理する必要があった。
【0005】
このようなカウンタによる起動管理では、デバイスごとにレジスタを割り当ててレジスタの計数に基づいてデバイスの起動時間を管理させることになる。例えばカウンタを起動後、所定のレジスタの数値を一定数ずつ変化させる動作を繰り返すことで経過時間を計測し、レジスタの数値がゼロ等になったことで計数を終了し、計測開始から一定期間が経過したことを示す。カウンタによる経過時間の計数が終了したらそれを遅滞なく検出し、遅滞なくレジスタに起動データを書き込んでカウンタを再起動させなければならない。
【0006】
ところが、制御回路によるレジスタの読み取りおよび書き込みはレジスタごとに順番に実施しなければならないため、あるレジスタの数値がゼロになった場合にそのレジスタのデータを読み取るタイミングが相当遅れる場合があった。もしもいずれかのカウンタにおける計数の終了の検出が遅れた場合には再起動のタイミングが遅れることになり、正しいタイミングで画像の取り込み開始を指示できないことになる。
【0007】
そこで、本発明は、互いに同期していない複数のデバイスにであっても遅延することなく動作させることが可能なデバイス制御装置およびCPU(中央演算処理装置)を提供することを目的の一つとする。
【課題を解決するための手段】
【0008】
(1)上記課題を解決する本発明のデバイス制御装置は、複数のデバイスの動作の少なくとも一部を管理するデバイス制御装置であって、アドレスを指定することによりデータの書き込み、および、読み出しが可能に構成されたレジスタを複数有するレジスタ回路と、アドレスを指定することによってレジスタ回路の複数のレジスタのデータを監視し、かつ、レジスタ回路の予め定められたレジスタにデバイスを起動させるためのデータを書き込むレジスタ制御回路と、指定されたアドレスとレジスタ回路から読み出されたデータとに基づいて複数のデバイスのうちいずれかのデバイスに所定の動作を行わせる信号発信回路と、を備える。そして、レジスタ回路では、複数のレジスタのうち予め定められた第1レジスタに複数のデバイスの各々の動作を管理する第1ビットの集合が割り当てられているとともに、第1レジスタ以外の複数の第2レジスタのそれぞれに複数のデバイスの各々の動作を管理する第2ビットがそれぞれ割り当てられている。
【0009】
上記(1)の発明によれば、複数のデバイスの動作を管理するために、共通する第1レジスタが割り当てられている一方、個々のデバイスの動作を管理するために個別に第2レジスタも割り当てられている。よって、第1レジスタの第1ビットの集合を参照することによりいずれのデバイスについても同時に動作状態を把握できる一方、動作が終了したデバイスについて対応する第2レジスタの第2ビットにデータを書き込むことにより、個別にそれぞれのタイミングでデバイスの動作を開始させることができる。また、複数の第1ビットにデータを書き込むことにより複数のデバイスの動作を同時に開始させることもできる。
【0010】
本発明は、所望により、以下のような態様を適用することが可能である。
(2)上記(1)のデバイス制御装置において、レジスタ制御回路は、第1レジスタの第1ビットの集合のいずれかがデバイスの動作終了を示している場合に、デバイスに割り当てられた第2レジスタの第2ビットに対してデバイスの動作を指示するデータを書き込む。
【0011】
(3)上記(1)または(2)のデバイス制御装置において、信号発信回路は、指定されたアドレスにより特定される第2レジスタから読み出されたデータが複数のデバイスのいずれかを動作させるためのデータであった場合に第2レジスタに割り当てられたデバイスの動作を許可する許可信号を出力する。
【0012】
(4)上記(1)〜(3)のいずれかのデバイス制御装置において、信号発信回路は、複数のデバイスのうちいずれかのデバイスの動作が終了した場合には、動作が終了したデバイスに割り当てられている第1レジスタの第1ビットにデバイスの動作終了を示すデータを書き込む。
【0013】
(5)上記(1)〜(4)のいずれかのデバイス制御装置において、デバイスは、ビデオカメラ、カウンタ、またはシーケンサのいずれかである。
【0014】
(6)上記(1)〜(5)のいずれかのデバイス制御装置において、レジスタ回路は、複複数のデバイスの動作の少なくとも一部の管理のために用いられているビット以外のビットの少なくとも一部を、複数のデバイスの動作開始からの経過時間を計測するカウンタとして用いる。
【0015】
(7)上記(1)〜(6)のいずれかのデバイス制御装置を内蔵したCPUである。
【発明の効果】
【0016】
本発明によれば、複数のデバイスの動作を共通して管理する第1レジスタと、デバイスの動作を個別に管理する第2レジスタと、が設けられているので、複数のデバイスの動作状態を遅滞なく検出するとともに、複数のデバイスの動作を個別のタイミングでまたは同時に開始させることが可能である。
【図面の簡単な説明】
【0017】
【図1】実施形態1のデバイス制御装置10を含む検査装置1の構成図
【図2】実施形態1のレジスタ回路100のレジスタ構成図
【図3】実施形態1の信号発信回路110の構成図
【図4】レジスタ制御回路120の動作を説明するフローチャート
【図5】信号発信回路110の動作を説明するフローチャート
【図6】レジスタ利用時の不都合な利用法の例(第1の方法)
【図7】レジスタ利用時の不都合な利用法の例(第2の方法)
【図8】実施形態2のデバイス制御装置10bを含む検査装置1bの構成図
【図9】実施形態3のレジスタ回路100bのレジスタ構成図
【発明を実施するための形態】
【0018】
以下に本発明の実施の形態を説明する。以下の図面の記載において、同一又は類似の部分には同一又は類似の符号で表している。ただし、図面に記載された各ブロックは便宜的に機能に応じて区分けして記載したものである。したがって、目的とする動作結果が得られる限りにおいて、図面に記載されたブロックの構成を設計変更により適宜変更して用いることが可能である。また、各ブロックの構成は、ハードウェアで実現されるものの他、ソフトウェアを用いて機能的に実現される手段であってもよい。
【0019】
(定義)
本明細書において用いられる用語を以下のとおり定義する。
「デバイス」:デバイス制御の対象となる装置一般を意味し、例えばビデオカメラ、カウンタ、またはシーケンサを含む。
「データ」:レジスタを構成する1ビットで表される情報のことをいうが、複数ビットで一つのデバイス制御のための情報を示す場合も含む。例えば、「データ」はデバイスの動作の開始と終了を管理すればよい場合には1ビットで表される「1」または「0」となる。
【0020】
「動作」:デバイスに対する、目的に応じて予め定められた処理をいう。例えば、デバイスがビデオカメラである場合には「動作」は画像取り込みを意味する。デバイスがカウンタであれば「動作」は計測を意味する。
「起動」:単にデバイスの電源を投入する、といった狭義の意味に限定するものではなく、デバイスにおける種々の機能を発揮させることを含む。
「管理」:デバイスの動作状態を把握すること、および、当該ビットにデータを書き込んで動作を開始させること、を少なくとも含む概念である。
【0021】
「第1レジスタ」:複数のデバイスの動作を共通して管理するためのレジスタをいう。「第1レジスタ」は複数のデバイスの動作を管理可能なように1つのレジスタとすることが好ましいが、デバイスの数がレジスタのビット数を上回るような場合には複数のレジスタを「第1レジスタ」に割り当ててもよい。「第1レジスタ」の複数のビットを参照することにより複数のデバイスの動作状態を同時に把握でき、複数のビットに同時にデータを書き込むことにより複数のデバイスの動作を同時に開始させることができる。
【0022】
「第2レジスタ」:複数のデバイスの動作を個別に管理するためのレジスタをいう。「第2レジスタ」に予め定めた上記「データ」を書き込むことにより割り当てられたデバイスの動作が開始される。「第2レジスタ」のデバイスに割り当てられたビットを参照することにより対応するデバイスの動作状態を個別に把握でき、デバイスに割り当てられたビットにデータを書き込むことにより対応デバイスの動作を個別に開始させることができる。
【0023】
「同時動作デバイス」:同時に動作を開始させるべき複数のデバイスをいう。同時動作デバイスは2以上の任意のデバイスであればよい。
【0024】
(実施形態1)
本発明の実施形態1は基板などの不良を検出するためにビデオカメラを複数備えた検査装置に係り、特に、本発明のデバイス制御装置を含む。本実施形態1のデバイス制御装置は、動作管理の対象となるデバイス(ビデオカメラ)が、動作を共通に管理する第1レジスタの各ビットに割り当てられているとともに、デバイスの動作を個別に管理する複数の第2レジスタの各々にも割り当てられている。
【0025】
(構成)
図1に本実施形態1に係る検査装置1の構成を示す。図1に示すように、検査装置1は、複数のビデオカメラ2、デバイス制御装置10、および画像メモリ12を備えて構成される。
【0026】
ビデオカメラ2は、本発明の動作管理となるデバイスの一例であり、レジスタ回路100のレジスタを構成するビットの数(ここでは8個)だけ設けられているものとする。個々のビデオカメラを「デバイスx」(x=A〜H)とも称する。個々のビデオカメラ2は検査対象(例えば基板)の画像をフレーム単位で取り込み、画像データとしてデバイス制御装置10経由で画像メモリ12に出力可能に構成されている。例えば本実施形態において、複数のビデオカメラ2は基板の所定領域の画像を同じタイミングで取り込むものとする。同時に取り込まれた画像データは、例えば、相互に比較するために図示しない処理装置によって参照される。特に本発明の特徴として、ビデオカメラ2は互いに同期信号を参照する同期のための配線が設けられていない。また本実施形態では、複数のビデオカメラ2の総てが同時に動作開始させるための「同時動作デバイス」に割り当てられている。
【0027】
画像メモリ12は、複数の画像データを各ビデオカメラ2に対応付けて記憶更新可能に構成されている。画像メモリ12に格納された画像データは図示しない処理装置により参照可能になっている。
【0028】
デバイス制御装置10は、本発明に係り、レジスタ回路100、信号発信回路110、レジスタ制御回路120、およびデバイス制御回路130を備えている。このうち、レジスタ制御回路120は中央演算処理装置(CPU)である。レジスタ回路100および信号発信回路110は専用集積回路(FPGAやASIC)として構成されていてもよい。
【0029】
<レジスタ回路100>
レジスタ回路100は、アドレスを指定することによりデータの書き込み、および、読み出しが可能に構成されたレジスタを複数有する。レジスタ回路100では、複数のレジスタのうち予め定められた特定のレジスタが複数のデバイスの動作を共通して管理するための「第1レジスタ」として割り当てられている。また、複数のレジスタのうち第1レジスタ以外の複数のレジスタを、デバイスの動作を個別に管理するための「第2レジスタ」として割り当てられている。
【0030】
図2に本実施形態におけるレジスタ回路100のレジスタ割り付け例の詳細を示す。図2に示すように、例示として、レジスタ回路100は、それぞれが8ビット(bit7〜bit0)で構成されるレジスタA〜Kを備えている。レジスタA〜Kは、例示としてアドレス0x0000〜0x0009でアクセス可能に構成されている。レジスタA〜Kのうち、レジスタJ(アドレス0x0008)が上記第1レジスタとして割り当てられており、レジスタA〜Hが上記第2レジスタとして割り当てられている。第1レジスタJでは、ビット7〜ビット0の各々がデバイスA〜Hの各々の動作を開始するための「第1ビット」の集合として割り当てられている。第2レジスタA〜Hでは、ビット7がそれぞれデバイスA〜Hの各々の動作を管理するための「第2ビット」として割り当てられている。また第2レジスタA〜Hのビット6が各々のデバイスをイネーブルにする許可ビットとして割り当てられている。また第2レジスタA〜Hのビット5〜0の6ビットが各デバイスの動作開始からの経過時間を計測するためのカウンタとして用いられるようになっている。話を簡単にするため、以下イネーブルについての説明は省略する。特に本実施形態では、第1レジスタJは複数のデバイスの動作を同時に開始させるためにも用いられる。
【0031】
<レジスタ制御回路120>
図1に戻り、レジスタ制御回路120は、アドレスを指定することによってレジスタ回路100の複数のレジスタのデータ(ビットの論理状態)を監視し、かつ、デバイスの動作を開始させるためのデータ(例えばビットの論理状態「1」)を書き込むことが可能に構成されている。そしてレジスタ制御回路120は、第1レジスタのいずれかの第1ビットの論理状態がデバイスの動作終了を示している場合に、同じデバイスに割り当てられた第2レジスタに対してデバイスの動作開始を指示するデータを書き込む。例えば、レジスタ制御回路120は、中央演算処理装置(CPU)が本発明に係るソフトウェアプログラムを実行することにより機能的に実現される。
【0032】
具体的にレジスタ制御回路120は、図2に示す第1レジスタJのいずれかの第1ビットがデバイスの動作終了を示している場合(例えばビット論理が「0」である場合。以下同じ。)、対応する第2レジスタにデバイスの動作開始を指示するデータ(例えばビット論理「1」。以下同じ。)を書き込む。特に本実施形態では、第1レジスタJを構成するビット7〜0の総てが同時に動作を開始すべき「同時動作デバイス」(ビデオカメラA〜H)に割り付けられている。よってレジスタ制御回路120は、ビット7〜0がともに動作終了を示している場合に、これら同時動作デバイスの動作を開始させるデータを第1レジスタJに書き込むように構成されている。
【0033】
<信号発信回路110>
信号発信回路110は、指定されたアドレスとレジスタ回路から読み出されたデータとに基づいて、複数のデバイスのうちいずれかのデバイスの動作を開始させることが可能に構成されている。具体的に信号発信回路110は、指定されたアドレスにより特定される第2レジスタの第2ビットのデータを読み出し、読み出されたデータが複数のデバイスのいずれかの動作を開始させるためのデータであった場合に、この第2レジスタに割り当てられたデバイスの動作を許可する許可信号を出力する。また信号発信回路110は、複数のデバイスのうちいずれかのデバイスの動作が終了した場合には、動作が終了したデバイスに割り当てられている第1レジスタの対応する第1ビット、および、第2レジスタの第2ビットの双方に、デバイスの動作終了を示すデータを書き込むように構成されている。
【0034】
図3に信号発信回路110の具体的構成を示す。図3に示すように、信号発信回路110は、例えばセレクタ回路112とデータ保持回路114とを備えている。これらの構成は、第1レジスタに格納されたデータに基づく動作終了の検出と、デバイスの動作開始を許可する許可信号の出力と、を説明するために概念的に示した図である。
【0035】
セレクタ回路112およびデータ保持回路114はデバイス毎に設けられている。図3では話を簡単にするため第2レジスタEに対応したデバイスを選択するセレクタ回路112およびデータ保持回路114の組み合わせが表示されている。実際には、本実施形態では8つのデバイスを選択可能なようにレジスタ回路100が構成されているので、選択可能なデバイスの数と等しく、セレクタ回路112およびデータ保持回路114の組み合わせが8組設けられることになる。
【0036】
アドレスバスAbusには、レジスタ制御回路120がレジスタ回路100のいずれかのレジスタにアクセスするためのアドレスが出力されている。データベスDbusには、レジスタ制御回路120のアクセスによって読み出されたレジスタのデータが出力されている。
【0037】
セレクタ回路112は、例えばAND回路1120、1122、およびOR回路1124を備える。セレクタ回路112のAND回路1120は、第1レジスタJがアクセスされた場合に(アドレス0x0008)、第1ビットのデータの値(レジスタJのビット3)を出力するようになっている。セレクタ回路112のAND回路1122は、第2レジスタがアクセスされた場合に(アドレス0x0004)、第2ビットのデータの値(レジスタEのビット7)を出力するようになっている。OR回路1124は、AND回路1120およびAND回路1122の出力の論理和を出力するようになっている。
【0038】
データ保持回路114は、データラッチまたはフリップフロップにより構成される。データ保持回路114は、セレクタ回路112の出力データDataをレジスタ制御回路120が出力するロード信号Loadのタイミングで保持する。そしてレジスタ制御回路120から起動レジスタEに対応するデバイスについてイネーブル信号Enableが出力された時に出力データDataを個々のデバイスの許可信号Runとして出力する。
【0039】
以上のセレクタ回路112およびデータ保持回路114により、同時起動レジスタとして設定されたレジスタの起動データまたは個別起動レジスタとして設定されたレジスタの起動データのいずれかがデバイス毎の許可タイミングに合わせて出力可能となっている。
【0040】
さらに信号発信回路110は、デバイス制御回路130からいずれかのデバイスの動作が終了した旨の通知を受け取ると、動作が終了したデバイスに割り当てられている監視レジスタにデバイスの動作終了を示す動作終了データを書き込む。また信号発信回路110は、監視レジスタ以外の設けられた動作を終了したデバイスに対応する起動レジスタのデータにもデバイスの動作終了を示すデ動作終了データを書き込む。例えば本実施形態では、デバイスEの動作が終了した場合、選択レジスタJのビット3がリセット(ビット論理「0」が書き込まれる)されるとともに、対応する起動レジスタEのビット7もリセットされる。これら信号発信回路110によるレジスタのリセットはハードウェアにより実現されることが好ましい。ハードウェア処理によれば、デバイスの動作終了後、遅滞なくデバイスの動作終了をデータとしてレジスタに反映可能だからである。
【0041】
<デバイス制御回路130>
デバイス制御回路130は、デバイス制御装置10からデバイスの許可信号Runを受け取ると、対応するデバイスを起動させる。対応するデバイスから画像データが提供されると、デバイス制御回路130は画像データを画像メモリ12に転送する。対応するデバイスからの画像データの転送が終了すると、デバイス制御回路130は信号発信回路110にデバイスの動作終了を通知する。
【0042】
(デバイス動作開始時の問題)
次に、本発明の利点についての理解を容易にするため、図6および図7に基づきレジスタを介した起動制御における問題点について説明する。
【0043】
デバイスを同期させる専用の同期接続回路が設けられていないデバイス制御装置では、制御回路(CPU)がデバイスの動作終了を監視し、かつ、デバイスの動作開始を制御する必要がある。一般的にデバイスの制御は、制御回路が直接管理するレジスタを介して実行することが考えられる。レジスタの利用方法としては、レジスタ毎に対応するデバイスを割り当る方法(第1の方法)と、1つのレジスタの各ビットに対応するデバイスを割り当てる方法(第2の方法)とが考えられる。
【0044】
<第1の方法>
図6は第1の方法を説明するレジスタの割り付け図である。図6に示すように、第1の方法では、レジスタA〜Hの各々に対応するデバイスA〜Hを割り当て、各々のレジスタがデバイスの動作を開始させるレジスタとして、また、デバイスの動作状態を監視するレジスタとして利用される。
【0045】
個々のデバイスの動作終了を監視する場合には、監視対象デバイスに対応するレジスタの起動データが書き込まれるビットと同じビット(以下「管理ビット」ともいう。)を参照する。個々のデバイスの動作が終了すると、デバイスに割り当てられたレジスタの管理ビットに動作が終了した旨の動作終了データ(例えばビット論理「0」)が書き込まれる。制御回路は監視対象デバイスに割り当てられたレジスタの管理ビットを参照する。動作終了データが書き込まれていれば、再起動のために起動データを書き込む等、次の処理に移行する。
【0046】
一方、各々のデバイスを個別に起動させる場合には、起動対象デバイスに割り当てられたレジスタの起動データを書き込むべき管理ビット(例えばビット7)に起動する旨を示す起動データ(例えばビット論理「1」)を書き込む。起動データが書き込まれると、上記図3のような構成の信号発信回路によりデバイス制御回路にこの起動データが出力され、起動対象デバイスが起動される。
【0047】
上記第1の方法によれば、デバイスを個別に任意のタイミングで起動させることができる。しかし一方で、レジスタへのアクセスを順番に行わなければならないため、複数のデバイスの動作終了を迅速に検出することができない。また、複数のデバイスを同時に起動させることができないという不都合を生ずる。例えば図6において、アドレス0x0004のレジスタEを読み込んで管理ビット(ビット7)が動作終了データ「0」になっていればデバイスEの動作が終了したと判断し、同じ管理ビット(ビット7)に起動データ「1」を書き込んで再起動させることができる。ここで、この処理をしている間にその他のデバイスが遅れて動作を終了する可能性がある。しかし、第1の方法では、順番にレジスタの管理ビットを参照していかないと、それぞれのデバイスの動作終了を検出することができない。また仮に、ほぼ同時期に動作を終了した他のデバイスがあることが判っていたとしても、デバイスEを先に起動した後でなければ、他のデバイスに対応するレジスタの管理ビットに起動データを書き込んで他のデバイスを起動することができない。
【0048】
<第2の方法>
図7は第2の方法を説明するレジスタの割り付け図である。図7に示すように、第2の方法では、1つのレジスタJに総てのデバイスA〜Hが割り当てられており、レジスタの各ビットが対応するデバイスの動作を開始させたり対応デバイスの動作状態を検出したりする管理ビットとして割り当てられている。
【0049】
個々のデバイスの動作終了を検出するには、レジスタの管理ビットのデータを読み込んで参照する。個々のデバイスの動作が終了すると、監視対象デバイスに割り当てられた管理ビットに、動作が終了した旨の動作終了データ(例えばビット論理「0」)が書き込まれる。制御回路は監視対象デバイスに割り当てられた管理ビットを参照する。管理ビットに動作終了データ「0」が書き込まれていれば、監視対象デバイスが動作を終了したものと確認できる。
【0050】
一方、デバイスを起動させる場合には、起動対象デバイスに割り当てられている管理ビットに、動作を開始させるデータ(例えばビット論理「1」)を書き込む。通常、レジスタはビット単位での書き込みができないため、他のデバイスに割り当てられた管理ビットにも動作を開始させるための起動データ(例えばビット論理「1」)が同時に書き込まれることになる。起動対象デバイス以外のデバイスが総て動作中である場合には問題ない。起動対象デバイスに対応する管理ビット以外の管理ビットについてもビット論理を「1」にする起動データを書き込めばよい。いずれかの管理ビットに起動データが書き込まれると、上記図3のような構成の信号発信回路によりデバイス制御回路にこの起動データが出力され、起動対象デバイスが再起動される。既に動作しているデバイスに対しては、動作状態を変化させることがない。
【0051】
上記第2の方法によれば、複数の管理ビットに同時期に動作終了データが書き込まれていれば複数のデバイスの動作終了を同時に検出できる。しかし殆どの場合、デバイスの動作終了タイミングは異なっており、異なったタイミングで他のデバイスに対応する管理ビットが動作終了データに変更されていくことになる。もしも運が悪ければ、いずれかの管理ビットが動作終了データに変更される直前に、先に動作終了が検出されたデバイスのためにレジスタ全体に起動データが書き込まれることになる。すなわち、第1のデバイスの動作終了→第1のデバイスに対応する管理ビットを参照して第1のデバイスの動作終了検出→第2のデバイスの動作終了→第1のデバイスに対応する管理ビットに対する起動指示→第2のデバイスに対応する管理ビットを参照して第2のデバイスの動作終了検出、の順序でイベントが進む場合である。このような場合には、動作終了データ(例えばビット論理「0」)に変更された管理ビットが起動データ(例えばビット論理「1」)により上書きされてしまう。上書きされるとデバイスの動作終了が検出されない。
【0052】
また動作が終了したデバイスが複数存在する場合でも、一回の起動データの書き込みによる同時起動しか指示できず、複数のデバイスの各々を異なるタイミングで起動させることはできない。例えば図7において、アドレス0x0008のレジスタJを読み込んで、管理ビット(ビット3)が動作終了データ「0」になっていればデバイスEの動作が終了したと判断できる。他の管理ビット(ビット3以外)が動作終了データになっていない場合、動作を終了したのはデバイスEだけであると判断できるので、レジスタJにデータ0xFF(全ビット「1」)を書き込んでデバイスEを再起動させることになる。しかし、この再起動処理をしている間に、その他のデバイスの動作が終了した場合には、上述のようにその動作終了を検知できない。またレジスタJに割り付けられたデバイスA〜Hは、異なるタイミングで個別に起動させることができない。
【0053】
要するに、上記第1の方法によれば、複数のデバイスを異なるタイミングで起動できるものの、複数のデバイスの動作状態を同時に監視することができないという不都合がある。一方、上記第2の方法によれば、複数のデバイスの動作状態を同時に監視でき、複数のデバイスを同時に起動することができるが、各デバイスを異なるタイミングで起動することができないという不都合が生じる。
【0054】
(本実施形態の動作)
次に、本実施形態における動作を説明する。
上述したように、本実施形態におけるレジスタ回路100は、次の特徴を有する。
(1)複数のレジスタA〜Kのうち予め定められた特定のレジスタJが複数のデバイスA〜Hの動作を共通して管理する第1レジスタとして割り当てられている。
(2)第1レジスタJ以外のレジスタA〜Hが複数のデバイスA〜Hの動作を個別に管理するための第2レジスタとして割り当てられている。
(3)複数のデバイスA〜Hのうち同時動作デバイスA〜Hについては総て第1レジスタJに割り当てられている。
【0055】
そしてレジスタ制御回路120は、第1レジスタJの第1ビットの集合(ビット7〜0)のいずれかがデバイスの動作終了を示している場合(例えばビット論理「0」)、動作終了に係るデバイスに割り当てられた第2レジスタA〜Hの第2ビットに、デバイスの起動を指示する起動データ(例えばビット論理「1」)を書き込む。またレジスタ制御回路120は、第1レジスタJの複数の第1ビットがともに動作終了を示している場合(例えばビット論理「0」)、これら複数の第1ビットに対して同時動作デバイスA〜Hの同時起動を指示する起動データ(例えば0xFF)を書き込む。
【0056】
<レジスタ制御回路120の動作>
次に図4のフローチャートを参照しながら上記構成のレジスタ回路100を利用した本実施形態におけるレジスタ制御方法を説明する。図4のフローチャートはレジスタ制御回路120が実行する処理を説明するものであり、CPUであるレジスタ制御回路120がソフトウェアプログラムを実行することにより実現される。
【0057】
ステップS1において、レジスタ制御回路120はレジスタ回路100の第1レジスタJのデータを読み取る。この処理のためにアドレスバスAbusにアドレス0x0008が出力され、データバスDbusにデバイスA〜Hの動作状態を反映したデータが出力される。次いでステップS2に移行し、レジスタ制御回路120は出力された第1レジスタJのいずれかの第1ビットが動作終了データ(ここではビット論理「0」)となっているかを判定する。その結果、第1レジスタJからの出力データに動作終了データが含まれていなかった場合には(NO)、再び第1レジスタJの監視処理に戻る(S1)。
【0058】
ステップS2において第1レジスタJからの出力データに動作終了データが含まれていた場合(YES)、ステップS3に移行し、動作終了データになっていた第1ビットに割り付けられているデバイスが同時動作デバイスとして予め設定されているか否かを判定する。同時動作デバイスとして設定されていた場合には(YES)、ステップS4に移行し、同時動作デバイスとして設定されている他のデバイスに対応する第1ビットが総て動作終了データに変更されているか否かを判定する。その結果、同時動作デバイスに設定されるデバイスのうち動作終了データとなっていないものが存在したら(NO)、総ての同時動作デバイスのデータが動作終了データとなるまで待つ。
【0059】
同時動作デバイスに設定されたデバイスに対応する第1ビットが総て動作終了データに変更されていたら(YES)、ステップS5に移行し、レジスタ制御回路120は、第1レジスタの同時動作デバイスに対応する第1ビット、および、同時動作デバイスに対応する複数の第2レジスタの第2ビットの双方に起動データ(ここではビット論理「1」)を書き込む。すなわちアドレスバスAbusにアドレス0x0008が出力され、データバスDbus経由で第1レジスタJにデータ0xFFが書き込まれる。そして再び第1レジスタの読み取り処理に移行する(S1)。
【0060】
一方、ステップS2において第1レジスタの動作終了データに変更されていた第1ビットに割り当てられたデバイスが同時動作デバイスでなかった場合(NO)、起動対象デバイスは個別起動デバイスであると判定できる。そこでステップS5に移行し、レジスタ制御回路120は、起動対象デバイスに割り当てられている第2レジスタの第2ビットに起動データを書き込む。例えば第2デバイスがデバイスEであった場合、アドレスバスAbusに0x0004が出力され第2レジスタEがアクセスされ、第2ビット(少なくともビット7)に起動データ(ここではビット論理「1」)が書き込まれる。
【0061】
<信号発信回路110の動作>
次に図5のフローチャートを参照しながらレジスタ回路100に対する動作終了データの書込処理を説明する。図5のフローチャートは信号発信回路110がハードウェアにより実行する処理を示したものであり、ロジックにより瞬時に実行される。
【0062】
ステップS11において、データ保持回路114から許可信号Runが出力されていたら(YES)、デバイス制御回路130において、この許可信号Runに対応付けられているデバイスが起動される(S12)。
【0063】
一方ステップS13において、デバイス制御回路130経由で信号発信回路110が対応するデバイスの動作終了を検出したら(YES)、信号発信回路110は、第1レジスタJの対応する第1ビットを動作終了データ(ここではビット論理「0」)に変更する。同様に、動作が終了したデバイスに割り当てられている第2レジスタの第2ビットも動作終了データに変更する。
【0064】
(本実施形態の利点)
(1)本実施形態1によれば、複数のデバイスA〜Hの動作を共通に管理する第1レジスタJが割り当てられるとともに、複数のデバイスA〜Hの動作を個別に管理する第2レジスタA〜Hが割り当てられている。よって、第1レジスタJを参照することによりいずれのデバイスについても同時に動作状態を把握できる一方、動作が終了したデバイスに対応する第2レジスタA〜Hのいずれかを用いて個別に迅速にデバイスの動作を開始させることができる。
【0065】
(2)本実施形態1によれば、レジスタ回路100では、同時動作デバイスA〜HについてはレジスタJが第1レジスタとして割り当てられているので、第1レジスタJの第1ビットに対して一回起動データを書き込めば、同時動作デバイスA〜Hの動作を同時に開始させることができる。
【0066】
(3)本実施形態1によれば、信号発信回路110が、指定されたアドレスにより特定される第2レジスタから読み出されたデータが複数のデバイスA〜Hのいずれかを起動させるための起動データであった場合に第2レジスタに割り当てられたデバイスの動作を許可する許可信号Runを出力する。よって、起動対象デバイスに割り付けられた第2レジスタに起動データを書き込みさえすれば、簡単にデバイスを起動できる。
【0067】
(4)本実施形態1によれば、信号発信回路110は、複数のデバイスA〜Hのうちいずれかのデバイスの動作が終了した場合には、動作が終了したデバイスに割り当てられている第1レジスタの第1ビットを動作終了データに変更する。よって、第1レジスタの第1ビットのデータを読み取ることでデバイスの動作状態を検出することが可能である。
【0068】
(実施形態2)
本発明の実施形態2は上記実施形態1と同じ検査装置において、デバイス制御装置に係る構成をワンチップ化された基板に集積したCPU(中央演算装置)を場合の実施態様に関する。上記実施形態1と同じ構成要素については同じ符号を付すこととしその説明を省略する。
【0069】
図8に本実施形態1に係る検査装置1の構成を示す。図8に示すように、本実施形態2の検査装置1bは、複数のビデオカメラ2、画像読取回路3、デバイス制御装置10b、および画像メモリ12を備えて構成される。
【0070】
画像読取回路3は、複数のビデオカメラ2の各々から画像データを読み取り、画像メモリ12に転送可能に構成されている。また画像データの読み取りが終了した旨をデバイス制御回路130に通知可能に構成されている。
【0071】
本実施形態2では、特にデバイス制御装置10bが、レジスタ回路100、信号発信回路110、レジスタ制御回路120、およびデバイス制御回路130を1つの基板(例えば半導体基板)に集積させて構成されている点で、上記実施形態1と異なる。個々の回路の機能については、実施形態1で上述したとおりである。
【0072】
以上のように、デバイス制御装置10bは、個々の部品により構成する他、本実施形態2のようにワンチップ化したCPUとして構成することも可能である。
【0073】
(実施形態3)
本発明の実施形態3は、上記実施形態1と同様の構成において、レジスタ回路の割付を異ならせ、第1レジスタを複数種類設けた点に特徴がある。
【0074】
本実施形態3では、レジスタ回路100が図9に示すように割り付けられている点で上記実施形態1と異なる。その他の構成については上記実施形態1のとおりなので説明を省略する。
【0075】
図9に本実施形態3におけるレジスタ回路100bのレジスタ割り付け例の詳細を示す。図9に示すように、例示として、レジスタ回路100bは、それぞれが8ビットで構成されるレジスタA〜Mを備えている。レジスタA〜Mは、例示としてアドレス0x0000〜0x000Bでアクセス可能に構成されている。レジスタA〜Mのうち、レジスタJ(アドレス0x0008)が第1レジスタ(1)として、レジスタK(アドレス0x0009)が第1レジスタ(2)として、レジスタL(アドレス0x000A)が第1レジスタ(3)として、レジスタM(アドレス0x000B)が第1レジスタ(4)として、それぞれ割り当てられている。レジスタA〜Hが第2レジスタとして割り当てられている点は上記実施形態1と同じである。
【0076】
第1レジスタ(1)Jでは、ビット7〜ビット4の各々が、デバイスA、デバイスB、デバイスC、およびデバイスDの動作状態を検出するための第1ビットの集合として割り当てられている。第1レジスタ(1)Jは、デバイスA、デバイスB、デバイスC、およびデバイスDを同時に起動させるためのレジスタでもある。
【0077】
第1レジスタ(2)Kでは、ビット7〜ビット4の各々が、デバイスE、デバイスF、デバイスG、およびデバイスHの動作状態を検出するための第1ビットの集合として割り当てられている。第1レジスタ(2)Kは、デバイスE、デバイスF、デバイスG、およびデバイスHを同時に起動させるためのレジスタでもある。
【0078】
第1レジスタ(3)Lでは、ビット7〜ビット4の各々が、デバイスA、デバイスB、デバイスG、およびデバイスHの動作状態を検出するための第1ビットの集合として割り当てられている。第1レジスタ(3)Lは、デバイスA、デバイスB、デバイスG、およびデバイスHを同時に起動させるためのレジスタでもある。
【0079】
第1レジスタ(4)Kでは、ビット7〜ビット4の各々が、デバイスE、デバイスF、デバイスC、およびデバイスDの動作状態を検出するための第1ビットの集合として割り当てられている。第1レジスタ(4)Mは、デバイスE、デバイスF、デバイスC、およびデバイスDを同時に起動するためのレジスタでもある。
【0080】
以上のとおりレジスタ回路100bが編成されているので、本実施形態3では、レジスタ制御回路120により次のような制御をさせることが可能である。
【0081】
(1)個々のデバイスA〜Hを個別のタイミングで起動させたい場合には、第2レジスタA〜Hのいずれかの第2ビット(ビット7)に起動データを書き込む。これにより、起動データが書き込まれた第2レジスタA〜Hに対応したデバイスA〜Hを任意のタイミングで起動させることができる。
【0082】
(2)デバイスA、デバイスB、デバイスC、およびデバイスDを同時に起動させたい場合には、第1レジスタ(1)Jの第1ビットの集合(ビット7〜4)に起動データを書き込む。第1レジスタ(1)の第1ビットの集合に起動データが書き込まれることによって、デバイスA、デバイスB、デバイスC、およびデバイスDを同時に起動することが可能である。
【0083】
(3)デバイスE、デバイスF、デバイスG、およびデバイスHを同時に起動させたい場合には、第1レジスタ(1)Kに第1ビットの集合(ビット7〜4)に起動データを書き込む。第1レジスタ(2)Kの第1ビットの集合に起動データが書き込まれることによって、デバイスE、デバイスF、デバイスG、およびデバイスHを同時に起動することが可能である。
【0084】
(4)デバイスA、デバイスB、デバイスG、およびデバイスHを同時に起動させたい場合には、第1レジスタ(3)Lの第1ビットの集合(ビット7〜4)に起動データを書き込む。第1レジスタ(3)Lの第1ビットの集合に起動データが書き込まれること0によって、デバイスA、デバイスB、デバイスG、およびデバイスHを同時に起動することが可能である。
【0085】
(5)デバイスE、デバイスF、デバイスC、およびデバイスDを同時に起動させたい場合には、第1レジスタ(4)Mの第1ビットの集合(ビット7〜4)に起動データを書き込む。第1レジスタ(4)Mの第1ビットの集合に起動データが書き込まれることによって、デバイスE、デバイスF、デバイスC、およびデバイスDを同時に起動することが可能である。
【0086】
以上、本実施形態3によれば、上記実施形態1と同様の作用効果を生じる他、第1レジスタが複数種類設けられているので、同時に起動させたいデバイスの組み合わせを動作毎に選択して変更していくことが可能である。よって、多彩なデバイスの動作制御が可能となる。
【0087】
(その他の変形例)
本発明は上記実施形態に限定されることなく、本発明の作用効果を奏する範囲において種々に変更して適用することが可能である。
【0088】
例えば、上記実施形態1では8つ総てのデバイスを同時動作デバイスとし、上記実施形態3では、4つのデバイスを同時動作デバイスとして設定したが、これらに限定されない。同時動作デバイスは2以上の任意の数のデバイスを適用することが可能である。
【0089】
また上記実施形態では、起動データおよび動作終了データとも1ビットデータを例示したがこれに限定されず、複数ビットを一つの制御データに対応させてもよい。複数ビットを1つの制御データに対応させることにより、3以上のデバイスの動作状態を監視したり、3つ以上の異なる動作を制御したりすることが可能である。例えば制御データを2ビットで構成すれば、動作として「起動」、「動作終了」以外に「スタンバイ」、「無効(デバイス無し)」などの動作状態を監視し、また、動作を指示するなどの管理が可能である。
【産業上の利用可能性】
【0090】
本発明のデバイス制御装置は、レジスタを介してデバイスの動作を管理することが可能な回路や装置に任意に適用することが可能である。
【符号の説明】
【0091】
Abus…アドレスバス、Dbus…データバス、Enable…イネーブル信号、A〜M…レジスタ、Load…ロード信号、Run…許可信号、1、1b…検査装置、2…ビデオカメラ、3…画像読取回路、10、10b…デバイス制御装置、12…画像メモリ、100、100b…レジスタ回路、110…信号発信回路、112…セレクタ回路、114…データ保持回路、120…レジスタ制御回路、130…デバイス制御回路、1120、1122…AND回路、1124…OR回路

【特許請求の範囲】
【請求項1】
複数のデバイスの動作の少なくとも一部を管理するデバイス制御装置であって、
アドレスを指定することによりデータの書き込み、および、読み出しが可能に構成されたレジスタを複数有するレジスタ回路と、
前記アドレスを指定することによって前記レジスタ回路の前記複数のレジスタのデータを監視し、かつ、前記レジスタ回路の予め定められたレジスタに前記デバイスを起動させるためのデータを書き込むレジスタ制御回路と、
指定された前記アドレスと前記レジスタ回路から読み出されたデータとに基づいて前記複数のデバイスのうちいずれかのデバイスに所定の動作を行わせる信号発信回路と、を備え、
前記レジスタ回路では、
前記複数のレジスタのうち予め定められた第1レジスタに前記複数のデバイスの各々の動作を共通して管理する第1ビットの集合が割り当てられているとともに、前記第1レジスタ以外の複数の第2レジスタのそれぞれに前記複数のデバイスの各々の動作を個別に管理する第2ビットがそれぞれ割り当てられている、
ことを特徴とするデバイス制御装置。
【請求項2】
前記レジスタ制御回路は、
前記第1レジスタの前記第1ビットの集合のいずれかが前記デバイスの動作終了を示している場合に、前記デバイスに割り当てられた前記第2レジスタの前記第2ビットに対して前記デバイスの動作を指示するデータを書き込む、
請求項1に記載のデバイス制御装置。
【請求項3】
前記信号発信回路は、
指定された前記アドレスにより特定される前記第2レジスタから読み出されたデータが前記複数のデバイスのいずれかを動作させるためのデータであった場合に前記第2レジスタに割り当てられた前記デバイスの動作を許可する許可信号を出力する、
請求項1または2に記載のデバイス制御装置。
【請求項4】
前記信号発信回路は、
前記複数のデバイスのうちいずれかのデバイスの動作が終了した場合には、動作が終了した前記デバイスに割り当てられている前記第1レジスタの第1ビットに前記デバイスの動作終了を示すデータを書き込む、
請求項1乃至3のいずれか一項に記載のデバイス制御装置。
【請求項5】
前記デバイスは、ビデオカメラ、カウンタ、またはシーケンサのいずれかである、
請求項1〜4のいずれか一項に記載のデバイス制御装置。
【請求項6】
前記レジスタ回路は、前記複数のデバイスの動作の少なくとも一部の管理のために用いられているビット以外のビットの少なくとも一部を、前記複数のデバイスの動作開始からの経過時間を計測するカウンタとして用いる、
請求項1〜5のいずれか一項に記載のデバイス制御装置。
【請求項7】
請求項1乃至6のいずれか一項に記載のデバイス制御装置を内蔵したCPU。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate


【公開番号】特開2011−191937(P2011−191937A)
【公開日】平成23年9月29日(2011.9.29)
【国際特許分類】
【出願番号】特願2010−56525(P2010−56525)
【出願日】平成22年3月12日(2010.3.12)
【出願人】(000006666)株式会社山武 (1,808)
【Fターム(参考)】