以下、図面を参照して本発明の好ましい実施形態について説明する。図1は本発明の第1実施形態に係る高さ測定装置1の全体構成を示している。この高さ測定装置1は、図1に示すように、被検物40が載置される被検物保持手段としてのステージ30と、このステージ30の上方に設置された共焦点光学系10とを有して構成されており、共焦点光学系10は、光源11、コレクタレンズ12、ハーフミラー13、ピンホールディスク(ニポーディスク)14、直角ミラー15、コーナーキューブ16、対物レンズ17、結像レンズ18及び撮像素子19を備えている。対物レンズ17の光軸A1は被検物40の高さ方向(上下方向。図1のz軸方向)に延びており、直角ミラー15、ハーフミラー13、結像レンズ18及び撮像素子19はこの光軸A1上に、またピンホールディスク14は光軸A1中に介装されている。光源11は、この光源11から射出される光の光軸A2がハーフミラー13により反射されたときに光軸A1と一致する位置に配置されており、コーナーキューブ16は直角プリズム15の側方に配置されている。
対物レンズ17は両テレセントリックな光学系に設計されている。コーナーキューブ16はコーナーキューブ駆動部26により左右方向(図1のx軸方向)に移動させることができ、これによりピンホールディスク14から対物レンズ17までの光路長を任意に変化させることができるようになっている。ピンホールディスク14は所定の間隔で螺旋状に並べられた多数のピンホール14aを有しており、光軸A1に対して平行に延びた(すなわちz軸方向に延びる)回転軸を有するピンホールディスク駆動部24により上下軸(z軸)まわりに回転させることができるようになっている。
撮像素子19は多数の画素を有したCCDカメラからなる。この撮像素子19により得られた画像データは、図1及び図2に示すように演算制御装置31に入力される。また、コーナーキューブ16のx軸方向位置は位置センサ16aにより検出され、その検出情報は演算制御装置31に入力される。また、演算制御装置31にはピンホールディスク駆動部24、コーナーキューブ駆動部26、記憶装置32、表示装置(ディスプレイ)33、キーボード34及びポインティングデバイス(例えばマウス)35が接続されており、ピンホールディスク駆動部24及びコーナーキューブ駆動部26に制御信号を出力してこれらを作動させるほか、撮像素子19より送られてきた画像データを記憶装置32に記憶させ(保存し)、表示装置33に表示することができるようになっている。
このような構成の共焦点光学系10において、ハロゲンランプ等の光源11から出射された光はコレクタレンズ12を通過し、ハーフミラー13において下方に反射された後、ピンホールディスク14に照射される。その照射範囲に含まれる多数のピンホール14aのいずれかを通過した光束は、それぞれ直角ミラー15の上側の反射面により反射されてコーナーキューブ16に入射する。そして、コーナーキューブ16により反射されて直角ミラー15に戻された後、直角ミラー15の下側の反射面により下方に反射されて対物レンズ17に上方から入射する。対物レンズ17はこれら各ピンホール14aを通過してきた光束をそれぞれ集光して被検物40上に照射する。図1では、多数のピンホール14aそれぞれを通過した光束のうち、光軸A1上に位置するピンホール14aを通過した光束の光路のみを示しているが、その他のピンホール14aを通過した光束も同様に直角ミラー15及びコーナーキューブ16により反射された後、対物レンズ17により集光されて被検物40上に照射される。なお、これらピンホール14aを通って対物レンズ17により集光された各光束は各々、光軸A1上と直交する同一の面上に焦点Fを有する(以下、この焦点Fの集合としての面を焦点面FSと称する)。
各ピンホール14aを下方に通過して被検物40に上方から入射した光は、それぞれ被検物40において反射した後、対物レンズ17を下方から通過し、直角ミラー15の下側の反射面で反射される。そして、コーナーキューブ16で反射して直角ミラー15に戻された後、更に直角ミラー15の上側の反射面で上方に反射され、ピンホールディスク14に下方から入射する。ここで、被検物40の表面において反射した光束のうち、その焦点Fが被検物40の表面と一致したもの(被検物40の表面と焦点面FSとの交線上において反射したもの)は入射時と同一の光路を逆方向に戻り、被検物40への入射時に通過したものと同一のピンホール14aに共役焦点を形成するので、その光束は光量の減少がほとんどないままピンホール14aを上方に通過する。一方、被検物40の表面において反射した光束ではあっても、その焦点Fが被検物40の表面と一致していなかったものは入射時と同一の光路を戻らないので、被検物40への入射時に通過したものと同一のピンホール14aに共役焦点を形成せず、その光量のほとんどはピンホールディスク14に遮られて失われてしまう。よって、被検物40へ入射した各光束のうち、その焦点Fが被検物40の表面と一致した(共焦点光学系10の焦点面FSと被検物40の表面との交線上において反射した)もののみが結像レンズ18に進んで集光され、撮像素子19の撮像面上に結像する。
ピンホールディスク14に形成された多数のピンホール14aは前述のようにピンホールディスク14上を螺旋状に並んでいるので、演算制御装置31によりピンホールディスク駆動部24を作動させてピンホールディスク14を回転させた場合、被検物40の表面はその全体が光軸A1を中心とする半径方向に繰り返し走査されることになる。また、演算制御装置31によりコーナーキューブ駆動部26を作動させてコーナーキューブプリズム13をx軸方向に移動させると、ピンホール14aから対物レンズ17までの光路長が連続的に変化するため、焦点面FSもこれに応じて被検物40の高さ方向(z軸方向)に移動する。
よって、本高さ測定装置1において、ピンホールディスク14を回転させた状態で、コーナーキューブ16をx軸方向に移動させながらその都度撮像を行えば、共焦点光学系10の焦点面FSにより被検物40を切断したときに得られる被検物40の断面形状の画像(断面の輪郭部のみが明るくなった画像)が、その撮像が行われた焦点面FSの高さ方向(z軸方向)位置の情報と関連付けられた状態で得られる。なお、焦点面FSの高さ位置(高さ方向位置)はコーナーキューブ16のx軸方向位置と一対一で対応するので、演算制御装置31は、位置センサ16aから出力されるコーナーキューブ16のx軸方向位置の情報に基づいて焦点面FSの高さ位置を把握することができる。ここで、焦点面FSの高さ位置とは、焦点面FSのステージ30に対する高さ方向(被検物40の高さ方向)の位置のことであり、焦点面FSがステージ30の上面30aに一致するときの焦点面FSの高さ位置を零と設定すれば、焦点面FSが被検物40中の被検部位(高さを測定しようとしている被検物中の一部位)に一致した状態では、そのとき検出される焦点面FSの高さ位置の値は、そのまま被検部位の高さ(ステージ30の上面30aからの高さ)の値となる。以下、このようにステージ30の上面30aを基準とした焦点面FSの高さ位置(距離)を、焦点面位置zと称する。
撮像素子19を構成する一つの画素が受光する光の光量は高さ方向(z軸方向)の走査の過程において変化し、その画素が撮像領域とする被検物40上の部位に焦点面FSが近づく過程では受光光量は増大していき、両者が一致したときに極大(ピーク)となる。そして、上記被検物40上の部位から焦点面FSが遠ざかる過程では、受光光量は減少していく。図3はこのような焦点面位置zと上記画素における受光光量Iとの関係を示している。このことから、被検物40中の被検部位について高さ測定を行う場合には、その被検部位を撮像領域に含む画素を特定画素として指定したうえで、予め取得しておいた所定の高さ方向領域についての走査画像(被検物40の断面輪郭形状に相当する各高さごとの画像データの集まり)を読み出して光量ピークを検出し、その光量ピークに対応する焦点面位置z(=zp)を求めれば、その焦点面位置z(=zp)がそのまま被検部位の高さとなる。
ところで、本高さ測定装置1において、共焦点光学系10の焦点面FSを被検物40に対してその高さ方向(z軸方向)に一定量ずつ(ステップ状に)相対移動させながら(焦点面位置zを高さ方向に変化させながら)異なる高さ位置ごとに撮像素子19による撮像を行って被検物40の走査画像(画像データ)を取得した場合、焦点面FSの高さ位置(焦点面位置z)の変化に対する受光光量の変化のデータは離散的なものとしてしか得られないので、光量ピークに対応する焦点面位置z(図3における焦点面位置zp)を直接検出することはできない。よって本高さ測定装置1では、以下に示す走査画像の各画像データの光量を逐次比較していく手法により、光量ピークに対応する焦点面位置zを求めるようにしている。
これには先ず、共焦点光学系10の焦点面FSを被検物40に対してその高さ方向に一定量ずつ相対移動させながら異なる高さ位置ごとに被検物40の走査画像(画像データ)を取得し、各画像データを記憶装置32に記憶させる。これにより記憶装置32には、画像データの集合としての画像データファイルが作成される。なお、上記走査画像の取得工程における焦点面FSの走査方向(移動方向)は、z軸に対する正方向(下から上へ向く方向)であってもよいし、z軸に対する負方向(上から下へ向く方向)であってもよい。また、個々の画像データの記憶装置32への記憶(保存)は、それぞれの撮像が終わるごとに行ってもよいし、高さ方向走査領域についての全ての撮像が終わってからまとめて行ってもよい。続いて画像データファイルを開いて画像データを一定の順に読み出す。この読み出し順は走査画像の取得順(走査画像が得られた順、すなわち被検物の高さ方向の走査が進行した順)に対して同順、逆順のいずれであってもよい。
演算制御装置31は画像データファイルを開いて画像データを読み出すとともに、その読み出した画像データから、被検部位に相当する画像内領域についての光量(輝度)を検出し、今回読み出した画像データにおける光量と前回読み出した画像データにおける光量とを比較する。そして、今回読み出した画像データの光量の方が前回読み出した画像データの光量よりも大きくなっている状態から、今回読み出した画像データの光量の方が前回読み出した画像データの光量よりも小さくなる状態に切り換わったとき、その間にその画像内領域についての光量ピークが存在しているものと判断する(光量ピークの検出)。例えば、Nを或る整数とした場合、N番目の画像データの光量IN(焦点面位置はzNとする)とN−1番目の画像データの光量IN-1(焦点面位置はzN-1とする)との関係ではIN>IN-1であったものが、N+1番目の画像データの光量IN+1(焦点面位置はzN+1とする)とN番目の画像データの光量INとの関係ではIN+1<INとなった場合には、光量IN+1と光量IN-1との間に上記画像内領域についての光量ピークが存在していることが分かる(図3参照)。なお、上記被検部位に相当する画像内領域の指定は、撮像素子19を構成する多数の画素のうち、当該被検部位を撮像領域に含む画素をオペレータが予め指定することにより行う(前述の特定画素の指定に相当する)。
図3のように焦点面位置zの値に対する受光光量Iの値をグラフに示した場合、光量ピークのグラフ形状は一定の既知形状をなすことが知られている。このため、上記のように特定画素について光量ピークが検出されたときは、その光量ピークを構成する複数の画像データ(ここでは3つの画像データDN+1(上記N+1番目の画像データ)、DN(上記N番目の画像データ)、DN-1(上記N−1番目の画像データ))を抽出し、これら画像データにおける焦点面位置zと受光光量Iとの関係を示す3点(zN+1,IN+1),(zN,IN),(zN-1,IN-1)をその既知形状にフィッティングさせることにより、特定画素についての光量ピークに対応する焦点面位置zp(図3参照)を求めることができる。そして、この焦点面位置zpが求まれば、被検部位(図3では被検物40の上面)の高さが分かる。
ところで、上記説明は被検物40が単一の材料からなり、特定画素についてはその被検物40の上面(表面)のみが唯一の被検部位となる場合を例にしたものである。しかし、一の材料層(下層とする)の上面側に透明或いは半透明の材料層(上層とする)を形成してなる2層構造の被検物については、上層の上面のほか、下層の上面も特定画素についての被検部位となり得る。このような場合においては上層の上面において反射した光のほか、下層の上面(上層の下面でもある)において反射した光についても上記光量ピークが観察される(図9参照)。しかし、従来の高さ測定装置では、走査画像の読み出し順は走査画像の取得順(走査画像が得られた順、すなわち被検物40の高さ方向の走査が進行した順)にしか行うことができず、しかも上述の光量比較により光量ピークを検出した後はそれ以後の光量比較は行わない構成であるため、1回の高さ方向走査では一方の被検部位についての高さ測定しかできない。後述するように本高さ測定装置1も光量ピークを検出した後はそれ以後の光量比較は行わない構成を有しているが、一旦取得した走査画像の読み出しを走査画像の取得順に対して同順、逆順のいずれからでも開始できるようにしているため、被検物40が上記2層の構造であっても、高さ方向走査による走査画像取得は1回のみで、その被検物40の上層の上面高さと下層の上面高さとの双方を求めることができるようになっている。
次に、図4〜図9を用いて本高さ算出装置1により被検物40中の被検部位の高さを測定する具体的な手順について説明する。ここでは図4に示すように、非透明材料からなる下層41と、この下層41の上面41aに形成された透明(或いは半透明)材料からなる上層42との2層構造からなる被検物40の両層41,42それぞれの上面(41a,42a)の高さを測定する例を示す。なお、走査画像の取得工程における焦点面FSの走査方向(移動方向)はz軸に対する正方向(下から上へ向かう方向)とする。また、高さ方向走査領域の始点は下層41の上面41aより低い任意の位置(焦点面位置z=zs)とし、終点は上層42の上面42aよりも高い任意の位置(焦点面位置z=ze)とする(図4参照)。
図5〜図8は記憶装置32に格納されている実行プログラムの内容を示すフローチャートであり、演算制御装置31は、この実行プログラムを記憶装置32から図示しない内部メモリに取り込んで実行する。図5と図6は実行プログラムのメインルーチンであり、両図中に示す丸付き文字は、同一の文字の部分においてフローが継続していることを示している。演算制御装置31は先ず、図5に示すように、コーナーキューブ駆動部26を作動させて、共焦点光学系10の焦点Fを高さ方向走査領域の始点に一致させた後(ステップS1)、ピンホールディスク駆動部24を作動させて、ピンホールディスク14の回転を開始する(ステップS2)。これにより撮像素子19には、現在の焦点面位置z=zs(高さ方向走査領域の始点)に応じた画像(下層41の外径形状のみが明るくなった画像)が映し出される。なお、ピンホールディスク14の回転速度は別途行う入力操作により、オペレータが任意に設定することができるようになっている。
ピンホールディスク14が回転を始めたら、続いて演算制御装置31はコーナーキューブ駆動部26を作動させて、共焦点光学系10の焦点Fを高さ方向(z軸方向)に一定量Δz移動(上昇)させる(ステップS3)。これにより撮像素子19には現在の焦点面位置z=zs+Δzに応じた画像が映し出されるので、演算制御装置31は、その画像を撮像素子19により撮像した後(ステップS4)、得られた画像データを記憶装置32に記憶させる(ステップS5)。画像データを記憶させたら、演算制御装置31は、高さ方向走査が終了しているか否かを、現在の焦点面位置zが高さ方向走査領域の終点(z=ze)に一致しているか否かにより判断する(ステップS6)。そして、高さ方向走査が終了していないと判断したときにはステップS3〜S5の工程を繰り返し、ステップS6において高さ方向走査が終了したと判断したときにはループを抜ける。このループを抜けた時点において記憶装置32には、高さ方向走査の開始側から順にn=1,2,・・・,M(Mは整数)の番号を有する計M個の画像データを有した画像データファイルが作成される(ステップS7)。
ステップS7において画像データファイルが作成されたら、オペレータは撮像素子19を構成する多数の画素の中から、高さ測定対象部位(被検部位)を撮像領域に含む画素を特定画素として指定する(ステップS8)。この特定画素の指定は、記憶装置32に記憶させた画像データの1つを呼び出してこれを表示装置33に表示させたうえで、オペレータがその画像データを見ながら被検物40上の一部位(図4において「被検領域」として示す部位)をポインティングデバイス35により指定することにより行う。オペレータにより被検領域が指定されたら、演算制御装置31は、その被検領域の中心に位置する画素を特定画素として抽出し、記憶する。
ステップS8において特定画素の指定を行ったら、オペレータは続いて走査画像の読み出し順(画像データファイルから画像データを読み出すときの読み出し順)を設定する(ステップS9)。なお、この入力はキーボード34より行う。走査画像の読み出し順は、走査画像の取得順に対して同順、逆順のいずれかに設定する。なお、ここでは同順(画像データの番号が1→2→・・・→Mと向かう順)に設定するものとする。走査画像の読み出し順の設定が終わったら、オペレータは更に、高さ算出のみならず層厚さの算出(ここでは上層42の層厚さの算出)も行うか否かの選択をキーボード34より行う(ステップS10)。
オペレータによる特定画素の指定、走査画像の読み出し順の設定及び層厚さ算出を行うか否かの選択がなされたら、演算制御装置31はステップS11に進んで図7に示す高さ算出のサブルーチンに入る。高さ算出のサブルーチンでは、先ず記憶装置32に記憶された画像データファイルを開き(ステップS21)、続いてステップS9においてオペレータが設定した順に走査画像の読み出しを開始する(ステップS22)。そして、前述の要領でピーク検出を行う。すなわち、走査画像を順に読み出して特定画素についての光量比較を行い、光量ピークを検出するまでこの光量比較を繰り返す(ステップS23)。これにより光量ピーク(図9に示す光量ピークP1)が検出されたら走査画像の読み出しを終了し(ステップS24)、検出された光量ピークを構成する複数の画像データ(前述の3つの画像データDN+1,DN,DN-1に相当する画像データ)を抽出して、画像データファイルを閉じる(ステップS26)。そして、前述のようにこれら複数の画像データにおける焦点面位置zと光量Iとの関係を示す3点(zN+1,IN+1),(zN,IN),(zN-1,IN-1)をその既知形状にフィッティングさせることにより、特定画素についての光量ピークに対応する焦点面位置zpを求め(ステップS27)、更にこの焦点面位置zpから被検部位(下層41の上面41a特定画素に対応する部分)の高さを算出して(ステップS28)、メインルーチンに戻る。なお、この高さ算出においては、光源11からの光を透過させる上層42の材料の屈折率データが参照されるようにして(この屈折率データは記憶装置32に予め記憶させておいてもよいし、オペレータが入力するようにしてもよい)、屈折率の影響による測定誤差を補正する。
ステップS28において被検部位(下層41の上面41aの特定画素に対応する部分)の高さを算出したら、演算制御装置31はメインルーチンに戻ってその算出された高さの値を表示装置33に表示した後(ステップS12)、ステップS10においてオペレータが層厚さ算出を行う選択をしたか否かの判断を行う(ステップS13)。そして、オペレータが層厚さ算出を行う選択をしていなかった場合には、続いてオペレータに本高さ測定装置1による高さ測定を終了する意志があるか否かの判断を促す(ステップS14)。ここでオペレータが測定終了を選択した場合(その選択はキーボード34より行う)には、演算制御装置31は実行プログラムを終了させる。一方、ステップS14においてオペレータが測定継続(非終了)を選択した場合(その選択はキーボード34より行う)にはステップS8に戻るので、オペレータは新たな被検部位(異なる特定画素)についての新たな高さ測定、或いは同一の特定画素について、読み出し順を変えて上層42の上面42aの高さ測定を行うことができる(上層42の上面42aの高さ測定は層厚さ算出を選択していれば後述のように自動的に求められる)。なお、画像データファイルは既に作成されて記憶装置32に記憶されているので、走査画像の取得工程(ステップS1〜S7)を改めて行う必要はない。
一方、ステップS10においてオペレータが層厚さ算出を行う選択をしていた場合には、ステップS13からステップS15に進み、ステップS11において算出した被検部位(下層41の上面41aにおける特定画素に対応する部分)の高さデータを記憶装置32に記憶させ(ステップS15)、層厚さの算出に必要な高さ測定が既に完了しているか否かの判断を行う(ステップS16)。ここではまだ上層42の上面42aの高さが求められておらず、層厚さの算出に必要な測定が完了していないので、ステップS17に進んで走査画像の読み出し順を変更した(ステップS9において設定した順とは逆の順に変更した)後、再びステップS11に入って高さ算出を行う。
この過程において演算制御装置31は、画像データを番号M→(M−1)→・・・の順に読み込んで図9に示す光量ピークP2を検出するとともに、この光量ピークP2に対応する焦点面位置zから、上層42の上面42aの高さを算出する。そして、メインルーチンに戻ったステップS12において、その高さの値を表示装置33に表示した後、ステップS13に進んで、2回目のステップS11において算出した被検部位(上層42の上面42aにおける特定画素に対応する部分)の高さデータを記憶装置32に記憶させ(ステップS15)、層厚さの算出に必要な高さ測定が既に完了しているか否かの判断を行う(ステップS16)。ここでは既に上層42の上面42aの高さが求められており、層厚さの算出に必要な測定が完了しているので、次のステップS18に進んで記憶装置32に記憶された2つの高さデータ(下層41の上面41aの高さデータと上層42の上面42aの高さデータ)をまとめて高さデータファイルを作成する。
ステップS18において高さデータファイルが作成されたら、ステップS19に進んで図8に示す層厚さ算出のサブルーチンに入る。層厚さ算出のサブルーチンでは、先ずステップS18において作成された高さデータファイルを開き(ステップS31)、ここに記憶(保存)された高さデータを読み出す(ステップS32)。全ての高さデータ(ここでは下層41の上面41aの高さデータと上層42の上面42aの高さデータ)が読み出されたら、その差分を計算して上層42の層厚さ(特定画素に対応する部分の上層42の層厚さ)を計算により求める(ステップS33)。上層42の層厚さを計算により求めたら高さデータファイルを閉じ(ステップS34)、メインルーチンに戻ってその上層42の層厚さの値を表示装置33に表示する(ステップS20)。ステップS20において上層42の層厚さの値を表示したら、ステップS14に進んでオペレータに本高さ測定装置1による高さ測定を終了するか意志があるか否かの判断を促す。ここでオペレータが測定終了を選択した場合には、演算制御装置31は実行プログラムを終了させる。一方、このステップS14においてオペレータが測定継続(非終了)を選択した場合には、前述のようにステップS8に戻るので、オペレータは新たな被検部位について高さ測定を行うことができる。
このように本発明の第1実施形態に係る高さ測定装置1では、走査画像の読み出し開始後最初に検出した光量ピークに対応する焦点面FSの高さ位置(焦点面位置z)から被検部位の高さを算出する構成を有する従来の高さ測定装置をベースにし、そのうえで、走査画像の読み出し順を、走査画像の取得順に対して同順、逆順のいずれにも設定できるようになっている。このため、走査画像の読み出し開始後最初に検出した光量ピークに対応する焦点面位置zに基づいて被検部位の高さを算出する構成であるにも拘わらず、半導体製品などのように一の材料層に透明或いは半透明の材料層が形成されてなる被検物40に対し、1回の走査・撮像工程で、その最表層の上面高さ(上層42の上面42aの高さ)のみならず、それ以外の層の上面高さ(下層41の上面41aの高さ)をも測定することが可能である。また、下層41の上面41aに形成された透明材料層(上層42)の層厚さを測定することもできる。
ところで、上記実施形態に係る高さ測定装置1は、オペレータが指定した或る画素(特定画素)に対応する被検部位の高さを算出するものであったが、被検物40中に複数の被検部位が含まれており、これら被検部位ごとの高さを求めたい場合に、ステップS8における画素の指定、ステップS9における読み出し順の指定及びステップS10における層厚さ算出を行うか否かの選択の各入力をオペレータが手動で繰り返し行うのは面倒であり、要する時間も莫大となってしまう。以下に示す例は第1実施形態の変形例であり、上記入力を含めた一連の処理を自動化したものである。
図10〜図11は第1実施形態の変形例における実行プログラムのフローチャートであり、演算制御装置31は、この実行プログラムを記憶装置32から図示しない内部メモリに取り込んで実行する。図10及び図11の両図中に示す丸付き文字は、同一の文字の部分においてフローが継続していることを示している。また、このフローにおける高さ算出のサブルーチン(ステップS11)と層厚さ算出のサブルーチン(ステップS19)は前述の実施形態において示したものと同一である。
この第1実施形態の変形例に係る実行プログラムでは、前述の第1実施形態のステップS1に相当する工程(共焦点光学系の焦点を操作開始位置にセットする工程)が自動で開始される。すなわち演算制御装置31はピンホールディスクの回転を開始させた後(ステップS2)、記憶装置32から移動命令を読み取り(ステップS2.1)、その読み取った移動命令に従って被検物40に対して共焦点光学系10のXYZ(三次元)方向に走査する走査領域の始点に移動させる(ステップS2.2)。なお、この共焦点光学系10の焦点Fの移動は、具体的には演算制御装置31がコーナーキューブ駆動部26を作動させることにより行う。
ステップS2.2において共焦点光学系10の走査領域の始点に移動したら、前述の第1実施形態の場合と同様、共焦点光学系10の焦点を高さ方向に一定量ずつ移動させながら撮像を行い、得られた画像データを記憶装置32に記憶させて画像データファイルを作成する(ステップS3〜S7)。これにより画像データファイルが作成されたら、続いて演算制御装置31は記憶装置32に記憶された測定条件ファイルを開く(ステップS7.1)。この測定条件ファイルは被検物40中に含まれる複数の被検部位それぞれの位置、記憶装置32に記憶された画像の読み出し順及び各画素について層厚さ算出を行うか否かの各データが記憶されている。測定条件ファイルに含まれる被検部位の位置のデータは具体的には、高さを求めようとしている複数の被検部位に対応する画素の画像全体中の位置データとして記憶されている。高さ算出の対象となる画素としては、撮像された画像データを構成する全ての画素の一部であってもよいし、全部であってもよい。また、被検部位の位置は、ステップS7において画像データファイルが作成された後、オペレータが取得した画像を見ながら決定してもよい。その決定の仕方は、例えばディスプレイに表示された被検物40の画像を見ながらキーボードやポインティングデバイス等を使って領域設定する方法が考えられる。
測定条件ファイルに含まれる画像の読み出し順のデータとは、前述の第1実施形態のステップS9(読み出し順の設定工程)において設定される走査画像の読み出し順(画像データファイルから画像データを読み出すときの読み出し順)を走査画像の取得順に対して同順、逆順のいずれに指定したかのデータのことである。この読み出し順の指定は高さ算出を行う全ての画素に対して共通のものとして一括指定するものであってもよいし、画素ごとに任意に指定できるようにしてもよい。
演算制御装置31はステップS7.1において測定条件ファイルを開いたら、先ず特定画素の位置のデータ読み込みを行う(ステップS8)。この工程は前述の第1実施形態におけるステップS8に相当するものであり、測定条件ファイルに書き込まれている(高さ算出を行おうとしている)複数の画素を順にピックアップし、その画素と対応して記憶されている画素の位置のデータを読み込む工程である。例えばCADデータ(設計図面データ)から測定対象となる画素位置のデータを読み込む。ステップS8において特定画素の位置のデータを読み込んだら、次に測定条件ファイルに書き込まれている読み出し順指定データの読み込みを行う(ステップS9)。この工程は前述の第1実施形態におけるステップS9に相当するものである。
ステップS9において読み出し順指定のデータを読み込んだら、続いて測定条件ファイルに書き込まれている、層厚さ算出指定の読み込みを行う(ステップS10)。この工程は前述の第1実施形態におけるステップS10に相当するものである。ステップS10が終了したら、演算制御装置31はステップS11に進んで高さ算出のサブルーチンに入る(図7参照)。このサブルーチンにおける高さ算出の工程のほか、その後の高さ結果の出力、高さデータファイルの作成、層厚さ算出を行う場合の層厚さ算出の工程及び層厚さ結果の出力の各工程(ステップS11〜ステップS20)は第1実施形態において示したものと全く同じであるのでその説明は省略する。なお、この一連の工程におけるステップS14では、第1実施形態ではオペレータが本高さ測定装置1による高さ測定を終了する意志があるか否かの入力を行っていたが、この第1実施形態の変形例では、高さ算出を行おうとしている画素の全てについて高さ算出が行われておらず、まだ高さ算出を行うべき画素が残っているときにはステップS8に戻り、高さ算出を行うべき画素が残っていないとき、すなわち高さ算出を行うべき全ての画素についての高さ算出が終了したときにはループを脱する。そして、ループを脱したときには測定条件ファイルを閉じ(ステップS20.1)、実行プログラムを終了させる。
このように第1実施形態の変形例係る高さ測定装置では、オペレータが予め高さ算出を行おうとする複数の被検部位に関するデータを予め設定しておけば、その後は全ての被検部位についての高さ算出が自動で行われるので、高さ算出を行いたい被検部位が広い或いは多い場合であっても、効率的に作業を進めることが可能である。
次に、図12〜図16を用いて本発明の第2実施形態に係る高さ測定装置について説明する。この第2実施形態に係る高さ測定装置は、前述の第1実施形態に係る高さ測定装置1と高さ測定に関する実行プログラムが異なるだけである。前述の第1実施形態に係る高さ測定装置1では、光量比較により光量ピークが検出されたときには以後の光量比較を行わず、走査画像の読み出し開始後最初に検出された光量ピークに対応する被検部位の高さしか求めることができない実行プログラムであったが、この第2実施形態に係る高さ測定装置では、走査画像の読み出し開始後順次検出する光量ピークのうちオペレータが有効ピークとして指定した光量ピーク以外は無視して光量比較を継続することにより、有効ピークとして指定した光量ピークのみを抽出して、これに対応する被検部位の高さを求めることができるようになっている。このため、上述の第1実施形態の場合と同様、高さ方向走査による走査画像の取得工程は1回のみで、2層構造被検物の各層上面高さの測定ができるのみならず、下層の上面側に透明或いは半透明の層を複数層形成した3層以上の構造を有する被検物についても、1回の画像データ取得で各層の上面高さを求めることが可能である。
以下、本第2実施形態に係る高さ算出装置により被検部位の高さ測定を行う具体的な手順について説明する。ここでは図12に示すように、非透明材料からなる下層141と、この下層141の上面141aに形成された半透明材料からなる中間層142(但し下層141の一部に積層)と、下層141或いは中間層142の上面142aに形成された透明材料からなる上層143との、2層及び3層構造からなる被検物140の各層141,142,143それぞれの上面(141a,142a,143a)の高さを測定する例を示す。なお、ここでも走査画像の取得工程における焦点面FSの走査方向(移動方向)は、z軸に対する正方向(下から上へ向く方向)とする。また、走査画像の読み出し順はその取得順に対して同順に設定されているものとする。更に、高さ方向走査領域の始点は下層141の上面141aより低い任意の位置(焦点面位置z=zs)とし、終点は上層143の上面143aよりも高い任意の位置(焦点面位置z=ze)とする(図12参照)。
図13〜図15(及び前述の図8)は記憶装置32に格納されている実行プログラムの内容を示すフローチャートである。図13と図14は実行プログラムのメインルーチンであり、両図中に示す丸付き文字は、同一の文字の部分においてフローが継続していることを示している。演算制御装置31は先ず、ステップS41からステップS47までの工程において高さ方向走査領域についての画像データファイルを作成するが、その手順は第1実施形態の場合のステップS1〜S7と同様であるので、ここではその説明は省略する。
ステップS47において画像データファイルが作成されたら、オペレータは撮像素子19を構成する多数の画素の中から、高さ測定対象部位(被検部位)を被検領域(図12)に含む画素を特定画素として指定する(ステップS48)。なお、この特定画素の指定方法は第1実施形態の場合と同様である。
ステップS48において特定画素の指定を行ったら、オペレータは続いて高さ算出のみならず中間層142及び上層143の層厚さ算出も行うか否かの選択をキーボード34より行う(ステップS49)。そして更に、走査画像の読み出し開始後順次検出される光量ピークのうち被検部位に対応するものを選択し、有効ピークとして指定する(ステップS50)。この指定は、有効ピークが走査画像の読み出し開始後何番目に検出される光量ピークであるか、その数字をキーボード34から入力することにより行う。例えば、本例のように走査画像の取得工程における焦点面FSの走査方向(移動方向)がz軸に対する正方向であり、かつ走査画像の読み出し順がその取得順に対して同順であるときには、図16に示すように、3層構造を有する領域Bについては(領域A及びCは2層構造)、下層141の上面(或いは中間層142の下面)141aに対応する光量ピークは走査画像の読み出し開始後1番目に検出される光量ピークP1、中間層142の上面(或いは上層143の下面)142aに対応する光量ピークは走査画像の読み出し開始後2番目に検出される光量ピークP2、上層143の上面143aに対応する光量ピークは走査画像の読み出し開始後3番目に検出される光量ピークP3となる。ここではオペレータが3層構造を有する領域Bの中間層142の上面142aに対応する光量ピーク(すなわち走査画像の読み出し後2番目に検出される光量ピークP2)を有効ピークに設定したものとする。
オペレータによる特定画素の指定、層厚さ算出を行うか否かの選択及び有効ピークの指定がなされたら、演算制御装置31はステップS51に進んで図15に示す高さ算出のサブルーチンに入る。高さ算出のサブルーチンでは、先ず記憶装置32に記憶された画像データファイルを開き(ステップS61)、走査画像を予め定めた読み出し順(前述のようにここでは走査画像の取得順に対して同順)に読み出しを開始する(ステップS62)。そして、第1実施形態の場合と同様の要領でピーク検出を行う。すなわち、走査画像を順に読み出して特定画素についての光量比較を行い、光量ピークを検出するまでこの光量比較を繰り返す(ステップS63)。但し、ここでは光量ピークが検出された時点で光量比較を終了してしまうのではなく、そのとき検出された光量ピークがステップS50において指定した有効ピークであるか否か(ここでは検出された光量ピークが読み出し開始後2番目の光量ピークであるか否か)を判断し(ステップS64)、検出された光量ピークが有効ピークでないときにはステップS63に戻って光量比較を継続し、検出された光量ピークが有効ピークであるときには光量比較を終了する。
これによりステップS50において指定した有効ピークに相当する光量ピークが検出されたら走査画像の読み出しを終了し(ステップS65)、検出された光量ピーク(ここでは図16に示す光量ピークP2)を構成する複数の画像データ(前述の3つの画像データDN+1,DN,DN-1に相当する画像データ)を抽出して、画像データファイルを閉じる(ステップS66)。そしてその後はステップS66→S67→S68→S69と進んで被検部位(ここでは中間層142の上面142aにおける特定画素に対応する部分)の高さを算出するが、その手順は前述の第1実施形態の場合(第1実施形態の説明におけるステップS25〜S28)と同様であるので、ここではその説明は省略する。
ステップS69において被検部位の高さを算出したら、演算制御装置31はメインルーチンに戻ってその算出された高さの値を表示装置33に表示した後(ステップS52)、ステップS49においてオペレータが層厚さ算出を行う選択をしたか否かの判断を行う(ステップS53)。そして、オペレータが層厚さ算出を行う選択をしていなかった場合には、続いてオペレータに本高さ測定装置による高さ測定を終了する意志があるか否かの判断を促す(ステップS54)。ここでオペレータが測定終了を選択した場合(その選択はキーボード34より行う)には、演算制御装置31は実行プログラムを終了する。一方、ステップS54においてオペレータが測定継続(非終了)を選択した場合(その選択はキーボード34より行う)にはステップS48に戻るので、オペレータは新たな被検部位について高さ測定を行うことができる。なお、画像データファイルは既に作成されて記憶装置32に記憶されているので、新たな被検部位についての高さ測定を行う際に、走査画像の取得工程(ステップS1〜S7)を改めて行う必要はないのは第1実施形態の場合と同様である。
一方、ステップS49においてオペレータが層厚さ算出を行う指定をしていた場合には、ステップS53からステップS55に進み、ステップS51において算出した被検部位(中間層142の上面142aにおける特定画素に対応する部分)の高さデータを記憶装置32に記憶させ(ステップS55)、層厚さの算出に必要な高さ測定が既に完了しているか否かの判断をオペレータに促す(ステップS56)。ここで、上層143の層厚さを求めたいと考えている場合においては、現在はまだ中間層142の上面142aの高さしか測定されておらず、層厚さ(ここでは上層143の層厚さ)の算出に必要な測定が完了していないので、その旨キーボード34より入力する。これによりステップS50に戻るので、今度は上層143の上面143aに対応する光量ピークを有効ピークとして指定する。次の有効ピークが指定されたら、演算制御装置31は再びステップS51に入って高さ算出を行う。この過程において演算制御装置31は、図16に示す光量ピークP3を検出するとともに、この光量ピークP3に対応する上層143の上面143aの高さを算出する。そして、メインルーチンに戻ったステップS52において、その高さの値を表示装置33に表示した後、ステップS53に進んで、2回目のステップS51において算出した被検部位(上層143の上面143aにおける特定画素に対応する部分)の高さデータを記憶装置32に記憶させ(ステップS55)、層厚さの算出に必要な高さ測定が既に完了しているか否かの判断をオペレータに促す(ステップS56)。ここでは既に上層143の上面143aの高さが求められており、層厚さ(上層143の層厚さ)の算出に必要な測定が完了しているので、その旨キーボード34より入力する。これにより次のステップS57に進み、記憶装置32に記憶された2つの高さデータ(中間層142の上面142aの高さデータと上層143の上面143aの高さデータ)をまとめて高さデータファイルを作成する。
ステップS57において高さデータファイルが作成されたら、ステップS58に進んで前述の図8に示す層厚さ算出のサブルーチンに入る。層厚さ算出のサブルーチンのプログラム内容は第1実施形態の場合と同様であり、先ずステップS57において作成された高さデータファイルを開き(ステップS31)、ここに記憶(保存)された高さデータを読み出す(ステップS32)。全ての高さデータ(ここでは中間層142の上面142aの高さデータと上層143の上面143aの高さデータ)が読み出されたら、その差分を計算して上層143の層厚さを計算により求める(ステップS33)。上層143の層厚さを計算により求めたら高さデータファイルを閉じ(ステップS34)、メインルーチンに戻ってその上層143の層厚さの値を表示装置33に表示する(ステップS59)。ステップS59において上層143の層厚さの値を表示したら、ステップS54に進んでオペレータに本高さ測定装置による高さ測定を終了するか意志があるか否かの判断を促す。ここでオペレータが終了を選択した場合には、演算制御装置31は実行プログラムを終了する。一方、このステップS54においてオペレータが測定継続(非終了)を選択した場合には、前述のようにステップS48に戻るので、オペレータは新たな被検部位について高さ測定を行うことができる。
このように本発明の第2実施形態に係る高さ測定装置では、走査画像の読み出し開始後順次検出する光量ピークのうち被検部位に対応するものを有効ピークとして指定することができるようになっており、走査画像の読み出し開始後、順次検出する光量ピークのうち指定された有効ピークに至るまでの光量ピークは無視して光量比較を継続することにより、有効ピークとして指定した光量ピークのみを抽出して、これに対応する被検部位の高さを求めることができるようになっている。このため、第1実施形態に係る高さ測定装置1の場合と同様、半導体製品などのように一の材料層に透明或いは半透明の材料層が形成されてなる被検物に対し、一回の走査・撮像工程で、その最表層の上面高さ(上層143の上面143aの高さ)のみならず、それ以外の層の上面高さ(下層141の上面141aの高さ及び中間層142の上面142aの高さ)をも(すなわち、走査画像の読み出し開始後所定番目以降に検出される光量ピークに対応する被検部位の高さをも)測定することが可能である。
以下に示す第2実施形態の変形例は、第2実施形態におけるステップS48に相当する画素の指定、ステップS49に相当する層厚さ算出を行うか否かの選択及びステップS50に相当する有効ピークの指定の各入力を含めた一連の処理を自動化した場合の例である。
図17〜図18は第2実施形態の変形例における実行プログラムのフローチャートであり、演算制御装置31は、この実行プログラムを記憶装置32から図示しない内部メモリに取り込んで実行する。図17及び図18の両図中に示す丸付き文字は、同一の文字の部分においてフローが継続していることを示している。また、このフローにおける高さ算出のサブルーチン(ステップS51)と層厚さ算出のサブルーチン(ステップS58)は第2実施形態において示したものと同一である。
この第2実施形態の変形例に係る実行プログラムでは、前述の第2実施形態のステップS41に相当する工程(共焦点光学系の焦点を操作開始位置にセットする工程)が自動で開始される。すなわち演算制御装置31はピンホールディスクの回転を開始させた後(ステップS42)、記憶装置32から移動命令を読み取り(ステップS42.1)、その読み取った移動命令に従って被検物140に対して、共焦点光学系10のXYZ(三次元)方向に走査する走査領域(すなわち、図16の領域A,B,Cを含む被検領域)に始点に移動させる(ステップS42.2)。
ステップS42.2において共焦点光学系10の走査領域の始点に移動したら、前述の第2実施形態の場合と同様、共焦点光学系10の焦点を高さ方向に一定量ずつ移動させながら撮像を行い、得られた画像データを記憶装置32に記憶させて画像データファイルを作成する(ステップS43〜S47)。これにより画像データファイルが作成されたら、続いて演算制御装置31は記憶装置32に記憶された測定条件ファイルを開く(ステップS47.1)。この測定条件ファイルは被検物40中に含まれる複数の被検部位の位置、記憶装置32に記憶された画像の読み出し順、各画素について層厚さ算出を行うか否か及び有効ピークの指定の各データが記憶されている。ここで、測定条件ファイルに含まれる被検部位の位置データ、画像の読み出し順のデータ及び層厚さ算出指定の各データの内容は第1実施形態の変形例の場合と同様である。有効ピークの指定データとは、第2実施形態におけるステップS50において指定される光量ピークの指定データ、すなわち被検部位に対応するものとして走査画像の読み出し開始後何番目に検出される光量ピークを選択するかのデータであり、オペレータが予め指定しておくものである。
演算制御装置31はステップS47.1において測定条件ファイルを開いたら、先ず特定画素の位置データ(図16の領域A,B,Cの各測定走査位置のデータ)の読み込みを行う(ステップS48)。この工程は前述の第2実施形態におけるステップS48に相当するものであり、測定条件ファイルに書き込まれている(高さ算出を行おうとしている)複数の画素(領域A,B,Cに対応する画素)を順にピックアップし、その領域A,B,Cと対応して記憶されている画素の位置データを読み込む工程である。ステップS48において特定画素の位置データを読み込んだら、続いて測定条件ファイルに記載されている領域A,B,Cごとの読み出し順指定データの読み込み(ステップS48.1)、層厚さ算出指定の読み込み(ステップS49)及び有効ピーク指定の読み込み(ステップS50)の各工程を行う。
ステップS50が終了したら、演算制御装置31はステップS51に進んで高さ算出のサブルーチン(図15参照)に入る。このサブルーチンにおける高さ算出の工程のほか、その後の高さ結果の出力、高さデータファイルの作成、層厚さ算出を行う場合の層厚さ算出の工程及び層厚さ結果の出力の各工程(ステップS51〜ステップS59)の内容は第2実施形態において示したものと同じである。なお、この一連の工程におけるステップS54では、第2実施形態ではオペレータが本高さ測定装置による高さ測定を終了する意志があるか否かの入力を行っていたが、この第2実施形態の変形例では、高さ算出を行おうとしている画素の全てについて高さ算出が行われておらず、まだ高さ算出を行うべき画素が残っているときにはステップS48に戻り、高さ算出を行うべき画素が残っていないとき、すなわち高さ算出を行うべき全ての画素についての高さ算出が終了したときにはループを脱して測定条件ファイルを閉じる(ステップS59.1)。そして、ステップS59.1が終了したら、演算制御装置31は実行プログラムを終了させる。
このように第2実施形態の変形例に係る高さ測定装置では、オペレータが予め高さ算出を行おうとする複数の被検部位(図16の領域A,B,C)に関するデータを予め設定しておけば、その後は全ての被検部位についての高さ算出が自動で行われるので、高さ算出を行いたい被検部位が広い或いは多い場合であっても、効率的に作業を進めることが可能である。
これまで本発明の好ましい実施形態について説明してきたが、本発明の範囲は上述の実施形態に示したものに限定されない。例えば、上述の第1実施形態では、走査画像の取得工程における焦点面FSの走査方向(移動方向)は、z軸に対する正方向(下から上へ向く方向)であるとしたが、これはz軸に対する負方向(上から下へ向く方向)であってもよい。また、第1実施形態における被検物40は2層構造からなるものであったが、これは一の材料層に透明或いは半透明の材料層を形成して構成されたものであれば、何層であってもよい。但し、前述の説明から分かるように、最下層の上面高さと最上層の上面高さの2つ及び最下層の上面に形成された透明・半透明材料層全体の厚さしか測定することはできない。
また、上述の第2実施形態では、中間層142の上面142aの高さと、上層143の上面143aの高さとを測定する例を述べたが、同様の手順により、下層141の上面141aの高さを測定することも可能である。また、上述の実施形態では、透明材料層である上層143の層厚さを求める例を述べたが、同様の手順により、半透明材料層である中間層142の層厚さを求めることも可能である。また、上述の実施形態では、走査画像の取得工程における焦点面FSの走査方向(移動方向)がz軸に対する正方向であるとしていたが、これはz軸に対する負方向であってもよい。また、走査画像の読み出し順は取得順に対して同順であるとしたが、これは取得順に対して逆順であってもよい。また、走査画像の読み出し順は第1実施形態の場合のようにオペレータが任意に選択できるようにしてもよい。また、被検物140は3層構造からなるものであったが、これは一例であり、一の材料層に透明或いは半透明の材料層を形成して構成されたものであれば何層であってもよく、全ての層の上面高さと、透明或いは半透明材料層の各層の層厚さを測定することが可能である。
また、第1実施形態では、図5のステップS8において特定画素の指定を行い、指定された画素に対して高さ算出、層厚さ算出の処理を行っているが、ステップS8で特定画素の指定を行わず、全画素に対して高さ算出(ステップS10で選択された場合は層厚さ算出も)を行ってもよい。そして、全画素に対して算出を行った後で、特定画素の指定を行い、その特定画素での算出結果を出力してもよい。第2実施形態における図13のステップS48の特定画素指定についても同様であり、全画素に対して層高さ算出を行った後で、特定画素の指定を行ってもよい。
また、上記実施形態とは異なる形態として、演算制御装置31は、走査画像の取得工程(走査・撮像工程)において取得した走査画像を一定の順(走査画像の取得工程における焦点面FSの走査方向に対して同順、逆順のいずれであってもよい)に読み出して一旦全ての光量ピークを検出し、これを表示装置33等に図9や図16に示すようなグラフのような形で表示し、オペレータがその表示された光量ピークの中から高さを求めたい被検部位に対応するものを選択したときには、その選択された光量ピークの前後の画像データをピックアップして光量比較を行い、その光量ピークに対応する焦点面位置zを算出して被検部位の高さを求める構成とすることもできる。
また、上述の実施形態では、コーナーキューブ16をx軸方向に移動させて測定光の光路長を変化させることにより、被検物40に対する焦点面FSの高さ方向(被検物40の高さ方向)相対移動を行っていたが、共焦点光学系10に可動部を作らず、被検物40,140が載置されるステージ30を被検物40の高さ方向に移動させることにより、被検物40に対する焦点面FSの高さ方向相対移動を行うようにしてもよい。
また、上述の実施形態において示した高さ測定装置では、焦点Fの集合として形成される焦点面FSを有するいわゆるマルチビーム型の共焦点光学系を用いていたが、本発明に係る高さ測定装置では、単一の焦点のみを形成するシングルビーム型の共焦点光学系を使用することもできる。但し、このようなシングルビーム型の共焦点光学系を使用した場合には、その焦点を被検物の高さ方向と垂直な方向(上述の実施形態におけるxy平面内)に走査したときに形成される焦点の軌跡面が、マルチビーム型の共焦点光学系を用いたときに形成される焦点面(上述の実施形態における焦点面FS)に相当する。