以下に添付図面を参照して、本発明に係る好適な実施の形態について詳述する。本実施の形態は、防塵機能付き光学装置ないしは電子撮像装置として撮像素子を有するカメラシステムへの適用例を示す。
図1は、本実施の形態のカメラシステムの構成を示すブロック構成図である。このカメラシステムは、交換レンズとしてのレンズユニット10と、カメラ本体としてのボディユニット100から主に構成されており、ボディユニット100の前面に対して、所望のレンズユニット10が着脱自在に取付けられている。
レンズユニット10の制御はレンズ制御用マイクロコンピュータ(以下、“Lucom”と称する)5が行う。ボディユニット100の制御はボディ制御用マイクロコンピュータ(以下、“Bucom”と称する)50が行う。なお、これらのLucom5とBucom50とは、合体時において通信コネクタ6を介して通信可能に電気的接続がなされる。カメラシステムとしては、Lucom5がBucom50に従属的に協働しながら稼動するようになっている。
レンズユニット10内には撮影レンズ1と絞り3が設けられている。撮影レンズ1はレンズ駆動機構2内にある図示しないDCモータによって駆動される。絞り3は絞り駆動機構4内にある図示しないステッピングモータによって駆動される。Lucom5はBucom50の指令に従ってこれらの各モータを制御する。
ボディユニット100内には次の構成部材が図示のように配設されている。例えば、光学系としての一眼レフ方式の構成部材(可動ミラーとしてのクイックリターンミラー11、ペンタプリズム12、接眼レンズ13、サブミラー14)と、光軸上のフォーカルプレーン式のシャッタ15と、サブミラー14からの反射光束を受けて自動測距するためのAFセンサユニット16が設けられている。また、AFセンサユニット16を駆動制御するAFセンサ駆動回路17と、クイックリターンミラー11を駆動制御するミラー駆動機構18と、シャッタ15の先幕と後幕を駆動するばねをチャージするシャッタチャージ機構19と、これらの先幕と後幕との動きを制御するシャッタ制御回路20と、ペンタプリズム12からの光束に基づき測光処理する測光回路21が設けられている。
光軸上には、前述の光学系を通過した被写体像を光電変換するためのCCDユニット22が光電変換素子として設けられ、このCCDユニット22と撮影レンズ1との間に配された光学素子としての防塵ガラス30によって保護されている。この防塵ガラス30を所定の周波数で振動させる加振手段の一部として例えば圧電素子31がその防塵ガラス30の周縁部に取り付けられている。
また、圧電素子31は2つの電極(詳細は後述)を有しており、この圧電素子31が加振手段の一部としての防塵ガラス駆動回路40によって防塵ガラス30を振動させ、そのガラス表面に付着していた塵を除去できるように構成されている。よって、このカメラシステムはいわゆる「防塵機能付きカメラ」に属する基本構造をもつ電子カメラ(電子撮像装置)である。なお、CCDユニット22の周辺の温度を測定するために、防塵ガラス30の近傍には、温度測定回路33が設けられている。
このカメラシステムには、CCDユニット22に接続したCCDインターフェイス回路23、液晶モニタ24、記憶領域として設けられたSDRAM25、FlashROM26及び記録メディア27などを利用して画像処理する画像処理コントローラ28が設けられ、電子撮像機能と共に電子記録表示機能を提供できるように構成されている。その他の記憶領域としては、カメラ制御に必要な所定の制御パラメータを記憶する不揮発性記憶手段として例えばEEPROMからなる不揮発性メモリ29が、Bucom50からアクセス可能に設けられている。
また、Bucom50には、当該カメラの動作状態を表示出力によってユーザへ告知するための動作表示用LCD51と、カメラ操作SW52とが設けられている。カメラ操作SW52は、例えばレリーズSW、モード変更SW及びパワーSWなどの、当該カメラを操作するために必要な操作釦を含むスイッチ群である。通信インターフェイス回路53は、当該カメラシステムを図示しない外部のPC(パーソナルコンピュータ)に接続した場合にデータ通信を行うために使用される。この通信インターフェイス回路53としては、例えばUSBのデバイスコントローラが用いられる。さらに、電源としての電池54と、この電源の電圧を、当該カメラシステムを構成する各回路ユニットが必要とする電圧に変換して供給する電源回路55が設けられている。
上述したように構成されたカメラシステムでは、各部が次のように稼動する。画像処理コントローラ28は、Bucom50の指令に従ってCCDインターフェイス回路23を制御してCCDユニット22から画像データを取り込む。この画像データは画像処理コントローラ28でビデオ信号に変換され、液晶モニタ24にて出力表示される。ユーザはこの液晶モニタ24の表示画像から、撮影した画像イメージを確認できる。SDRAM25は画像データの一時的保管用メモリであり、画像データが変換されるときのワークエリアなどに使用される。また、この画像データはJPEGデータに変換された後には記録メディア27に保管されるように設定されている。
CCDユニット22は、透明な防塵ガラス30によって保護されている。この防塵ガラス30の周縁部にはそのガラス面を加振するための圧電素子31が配置されている。この圧電素子31は、後で詳しく説明するように、このための駆動手段としても働く防塵ガラス駆動回路40によって駆動される。CCDユニット22及び圧電素子31は、防塵ガラス30を一面とし、かつ、破線で示すような枠体によって囲まれたケース内に一体的に収納されることが、防塵のためにはより好ましい。
ところで、通常、温度はガラス製の物材の弾性係数に影響し、その固有振動数を変化させる要因の一つであるため、運用時にその温度を計測してその固有振動数の変化を考慮しなければならない。稼動中に温度上昇が激しいCCDユニット22の前面を保護するため設けられた防塵ガラス30の温度変化を測定してその時の固有振動数を予想するほうがよい。そこで、温度測定回路33に接続された不図示のセンサが、CCDユニット22の周辺温度を測定するため設けられている。なお、そのセンサの温度測定ポイントは、防塵ガラス30の振動面の極近傍に設定されるのが好ましい。
また、ミラー駆動機構18は、クイックリターンミラー11をUP位置とDOWN位置へ駆動するための機構であり、このクイックリターンミラー11がDOWN位置にある時、撮影レンズ1からの光束はAFセンサユニット16側とペンタプリズム12側へと分割されて導かれる。AFセンサユニット16内のAFセンサからの出力は、AFセンサ駆動回路17を介してBucom50へ送信されて周知の測距処理が行われる。
さらに、ペンタプリズム12に隣接する接眼レンズ13からはユーザが被写体を目視できる一方、このペンタプリズム12を通過した光束の一部は測光回路21内の不図示のフォトセンサへ導かれ、ここで検知された光量に基づき周知の測光処理が行われる。
次に、図2に示す防塵ガラス駆動回路40の回路図と、図3に示すタイムチャートを参照して、本実施の形態における防塵機能付きカメラの防塵ガラス30の駆動及びその動作制御について説明する。ここに例示した防塵ガラス駆動回路40は、図2に示すような回路構成を有し、その各部において、図3のタイムチャートで表わす波形信号(Sig1〜Sig6)が生成され、それらの信号に基づいて次のように制御される。
まず、防塵ガラス駆動回路40は、図2に例示するように、N進カウンタ41、1/2分周回路42、インバータ43、複数のMOSトランジスタ(Q00,Q01,Q02)44a,44b,44c、トランス45、抵抗(R00)46、A/Dコンバータ60、圧電素子31の第1の電極Aとこれに並ぶ第2の電極B61、ダイオード(D00)62、抵抗(R01,R02)63,64、及びコンデンサ(C00)65から構成されている。
トランス45の1次側に接続されたトランジスタ(Q01)44b及びトランジスタ(Q02)44cのON/OFF切替え動作によって、そのトランス45の2次側に所定周期の信号(Sig4)が発生するように構成されており、この所定周期の信号に基づき2つの電極A,Bを有した圧電素子31を種々に駆動させながら、効率的な共振周波数を探し出して防塵ガラス30を効果的に共振振動させるようになっている(詳細は後述)。
Bucom50は、制御ポートとして設けられた2つのIOポートP_PwCont及びIOポートD_NCntと、このBucom50内部に存在するクロックジェネレータ56を介して防塵ガラス駆動回路40を次のように制御する。クロックジェネレータ56は、圧電素子31へ印加する信号周波数より充分に速い周波数でパルス信号(基本クロック信号)をN進カウンタ41へ出力する。この出力信号が図3のタイムチャートが表わす波形の信号Sig1である。そして、この基本クロック信号はN進カウンタ41へ入力される。
N進カウンタ41は、当該パルス信号をカウントし所定の値“N”に達する毎にカウント終了パルス信号を出力する。すなわち、基本クロック信号を1/Nに分周する。この出力信号が図3中のタイムチャートが表わす波形の信号Sig2である。この分周されたパルス信号はHighとLowのデューティ比が1:1ではない。そこで、1/2分周回路42を通してデューティ比を1:1へ変換する。この変換されたパルス信号は図3のタイムチャートが表わす波形の信号Sig3に対応する。
この変換されたパルス信号のHigh状態において、この信号が入力されたMOSトランジスタ(Q01)44bがONする。一方、トランジスタ(Q02)44cへはインバータ43を経由してこのパルス信号が印加される。したがって、パルス信号のLow状態において、この信号が入力されたトランジスタ(Q02)44cがONする。トランス45の1次側に接続されたトランジスタ(Q01)44bとトランジスタ(Q02)44cが交互にONすると、2次側には図3の信号Sig4の如き周期の信号が発生する。
ここで、トランス45の巻線比は、電源回路55のユニットの出力電圧と圧電素子31の駆動に必要な電圧から決定される。また、抵抗(R00)46はトランス45に過大な電流が流れることを制限するために設けられている。圧電素子31を駆動するに際しては、トランジスタ(Q00)44aがON状態にあり、電源回路55のユニットからトランス45のセンタータップに電圧が印加されていなければならない。図中、トランジスタ(Q00)44aのON/OFF制御はIOポートのP_PwContを介して行われる。N進カウンタ41の設定値“N”はIOポートD_NCntから設定できる。よって、Bucom50は、設定値“N”を適宜に制御することで、圧電素子31の駆動周波数を任意に変更可能である。
この周波数は、次の(1)式によって算出可能である。
N:N進カウンタ41への設定値、fpls:クロックジェネレータ56の出力パルスの周波数、fdrv:圧電素子31へ印加される信号の周波数、
fdrv = fpls/2N ……………(1)
なお、この式に基づいた演算は、Bucom50のCPU(制御手段)で行われる。
電極B61は、ガラス板の振動状態を検出するための圧電素子の電極である。この電極B61からそのガラス板の振動状態に応じた交流電圧がモニタ信号として発生する。これが図3のタイムチャートのSig5である。電極B61に接続するダイオード(D00)62はそのモニタ信号を半波整流するために設けられている。このダイオード(D00)62に続く抵抗(R01,R02)63,64及びコンデンサ(C00)65によって、そのモニタ信号の包絡線が形成されている。これらの抵抗(R01,R02)63,64及びコンデンサ(C00)65からなる検出回路によって決定される時定数は、ガラスの振動周波数によって最適値が異なる。本実施の形態のガラス板は、第1、第2の振動モードによる2つの共振モードで駆動される。この2つの共振モードにおける駆動周波数が大きく異なるときは、時定数を変更できるように回路構成を採用する必要がある。抵抗(R01,R02)63,64でモニタ信号は、A/Dコンバータ60へ入力可能なレベルまで減圧される。この信号が図3のタイムチャートのSig6である。
この信号はA/Dコンバータ60でデジタルデータに変換され、Bucom50のIOポートD_ADCinから読み取られる。Bucom50は、モニタ信号が最大レベルになるようにN進カウンタ41に設定する値を変化させればよい。最大レベルを示すN進カウンタ41の値(共振周波数)でガラスを駆動するとき、効率よく塵を払うことができる。
次に、上述のカメラボディ制御用マイクロコンピュータ(Bucom)50が行う制御について具体的に説明する。図4にBucom50で稼動する制御プログラムのメインルーチンを例示する。まず、カメラの不図示の電源SWがONされると、Bucom50は稼動を開始し、ステップS000では、カメラシステムを起動するための処理が実行される。まず、電源回路55を制御してこのカメラシステムを構成する各回路ユニットへ電力を供給する。また、各回路の初期設定を行う。ステップS001では、調整モードが設定されているか否かを判定する。調整モードの設定は、当該カメラシステムがPCに接続され、所定のコマンドがカメラシステムへ入力されることにより行われる。この調整モードは、カメラの製造工程などにおいて実行される。この調整モードが設定されると、ステップS002としてサブルーチン「共振点検出動作」がコールされ実行される。このサブルーチンでは防塵ガラス30を効率よく振動させるために共振周波数を検出する(詳細は後述)。検出されたこの周波数データはBucom50の所定アドレスのメモリ領域に記憶される。
ステップS003では、サブルーチン「塵除去動作1」がコールされ実行される。このサブルーチン「塵除去動作1」中では、後述するように、共振周波数を含む所定の周波数範囲を走査して複数種類の周波数で防塵ガラス30を加振し、ガラス面に付着した塵を振り払うことで、このカメラを撮影に使用しない期間に、ユーザが意図せずに付着した塵を除去できるようになっている。
ステップS004は、周期的に実行されるステップであり、Lucom5と通信動作を行うことでレンズユニット10の状態を検出するための動作ステップである。そして、ステップS005によって、レンズユニット10がボディユニット50に装着されたことを検出すると、ステップS008へ移行する。一方、レンズユニット10がボディユニット50から外されたことを検出したときは、ステップS006からステップS007へ移行し、制御フラグF_Lensをリセットする。そして、ステップS010に移行する。
ステップS008では、制御フラグF_Lensをセットする。この制御フラグF_Lensは、当該カメラのボディユニット50にレンズユニット10が装着されている期間は“1”を示し、レンズユニット10が外されている期間は“0”を示す。そして、ステップS009においては、防塵ガラス30の塵を除去するためのサブルーチン「塵除去動作1」がコールされ実行される。
通常、カメラ本体であるボディユニット50にレンズユニット10が装着されていない期間において、レンズや防塵ガラス30等に塵が付着する可能性が高い。そこで、レンズユニット10の装着を検出したタイミングで塵を払う動作を実行することが望ましい。
ステップS010では、カメラ操作SW52の状態を検出する。カメラ操作SW52の1つであるCleanUP−SW(不図示)の状態変化が次のステップS011で検出されると、ステップS012へ移行する。ステップS012では、防塵ガラス30の塵を除去するためのサブルーチン「塵除去動作1」がコールされ実行される。このステップS012の動作に連動して、ステップS013によってCCDの画素欠陥情報の取込み動作が実行される。欠陥画素の情報はFlashROM26に記憶され、画像データの補正に用いられる。これは、塵が付着していると正確に欠陥情報が入手できないためである。そこで、ステップS013の動作の前にステップS012のサブルーチン「塵除去動作1」が上述した場合と同様に実行される。
ステップS014では、カメラ操作SWの1つである1st.レリーズSW(不図示)が操作されたか否かを判定する。もし、1st.レリーズSWがONしているならばステップS015へ移行し、OFFならばステップS004へ再び移行する。ステップS015では、測光回路21から被写体の輝度情報を入手する。そして、この情報からCCDユニット22の露光時間(Tv値)と撮影レンズ1の絞り設定値(Av値)を算出する。ステップS016では、AFセンサ駆動回路17を経由してAFセンサユニット16の検知データを入手する。このデータに基づきピントのズレ量を算出する。ここで、ステップS017によって、F_Lensの状態を判定する。“0”ならばレンズユニット10が存在しないことを意味するので、次のステップS018以降の撮影動作は実行できない。そこで、この場合はステップS004へ再び移行する。
ステップS018では、Lucom5に対してピントのズレ量を送信して、このズレ量に基づく撮影レンズ1の駆動を指令する。ステップS019では、カメラ操作SW52の1つである2nd.レリーズSW(不図示)が操作されたか否かを判定する。この2nd.レリーズSWがONしているときはステップS020へ移行して所定の撮影動作を行うが、OFFのときはステップS004へ再び移行する。
また、ステップS020では、撮影動作に先立って塵を除くため「塵除去動作2」ルーチンがコールされ実行される。ただし、この塵除去動作によってタイムラグが発生することを避けるため、かつ、消費電力を増大させないために、ここでは、走査する所定の周波数範囲を共振周波数付近において、「塵除去処理1」の場合の周波数範囲よりも狭くして動作時間を短くし、かつ、消費電力を抑えている。
ステップS021では、まずLucom5へAv値を送信し、絞り3の駆動を指令し、Lucom5は撮影レンズ1内の絞り羽根を絞る動作を行う。ステップS022にてクイックリターンミラー11をUP位置へ移動する動作を開始させる。ここで、ステップS020〜S021の「塵除去動作2」と絞り動作、ミラーアップ動作は同時に行われる。絞り動作とミラーアップ動作とで長い時間を要する方、例えば、ミラーアップ動作時間の方が長いとすると、図5に模式的に示すタイムチャートのように、「塵除去動作2」の動作時間はミラーアップ動作時間よりも短い時間となるように周波数の走査範囲が狭く決定されており、撮影動作への移行に際して余計なタイムラグが生じないようにしている。なお、図5の「塵除去動作1」は「塵除去動作2」よりも動作時間が長く、タイムラグが生じてしまうことを示すために併記したものである。
ステップS023にてシャッタ15の先幕走行を開始させ、ステップS024にて画像処理コントローラ28に対して撮像動作の実行を指令する。Tv値で示される時間、CCDユニット22への露光が終了すると、ステップS025において、シャッタ15の後幕走行を開始させ、ステップS026にてクイックリターンミラー11をDown位置へ駆動する。また、これと並行してシャッタ15のチャージ動作を行う。そして、ステップS027では、Lucom5に対して絞り3を開放位置へ復帰させるように指令し、ステップS028では、画像処理コントローラ28に対して、撮影した画像データを記録メディア27へ記録するように指令する。その画像データの記録が終了すると、再びステップS004へ移行する。
以下、図6、図7に例示するフローチャート並びに図8〜図13を参照して、サブルーチン「塵除去動作1」「塵除去動作2」について詳述する。
この説明に先立ち、共振対象の防塵ガラス30の支持構造と振動形態について、図8−1、図8−2、図9−1、図9−2を参照しながら概説しておく。本実施の形態のカメラシステムにおいては、防塵ガラス30の形状を例えば円盤とする。また、その防塵ガラス30のガラス板の円周に沿って加振用の圧電素子31を配置すると、このガラス板は円周で支持されることになる。このとき、該ガラス板は、その振動形態として複数の振動モードで加振する。本実施の形態は、この振動モードの中から2つの異なる振動モードを選択して使い分けることとする。図8−1、図8−2、図9−1、図9−2に選択した振動モードにおけるガラス板の振動の状態を示す。
本実施の形態に係る防塵ガラス30は、図8−1、図8−2にそれぞれ図示したような振動形態を示す。すなわち、加振手段として働く圧電素子31によって振動を加えると、そのガラス板の周囲には振動しない「節」が発生するが、概ねガラス全面が同じ位相で、太矢印で示された如く図8−1と図8−2との状態を交互に繰り返して振動する。このような振動形態を以下「振動モード1」と称する。
同様に、本実施の形態の防塵ガラス30は、加える振動の周波数によっては、図9−1、図9−2にそれぞれ図示したような形態でも振動することができる。すなわち、図9−1、図9−2に例示した防塵ガラス30の振動形態は、ガラス板の内側と外側が180度ずれた位相で振動するものである。詳しくは、図示する振動形態ではガラス板の周囲と内部に節がそれぞれ発生するモードであり、図示の如く、内側の節に囲まれた領域の振動と内部の節よりも外側のドーナツ状領域の振動は位相が180度ずれている。このような振動形態を以下「振動モード2」と称する。
そこで、図6、図7に示すサブルーチン「塵除去動作1」「塵除去動作2」においては、このような振動モード1と振動モード2との2種類の振動モードにおけるそれぞれの共振周波数を含むそれぞれの所定の周波数範囲を走査して複数種類の周波数で塵除去動作を行う。
ここで、図10は、周波数とガラス板の振幅との関係を示す特性図である。図中、実線で示す*3が振動モード1の特性を示しているものと仮定する。塵除去動作1の振動モード1の動作では、後述の図13−1に*1〜*2の範囲として例示するf1,f2,f3,…,f7という範囲の複数種類の周波数(プリセット値)において周波数の走査を行う。ちなみに、*3の特性における共振周波数はfcであり、ここでは周波数f4に相当する。「塵除去動作1」のサブルーチンでは、f1,f2,f3,f4と順次周波数を変更していきながら駆動を行い、共振周波数fc(=f4)を過ぎても、f5,f6,f7と順次周波数を変更して駆動を続ける。f1〜f4では振幅は増加方向に変化し、f4〜f7では振幅は減少方向に変化する。一方、塵除去動作2の振動モード1の動作では、後述の図13−1に*11〜*12の範囲として例示するf3,f4,f5という範囲の複数種類の周波数(プリセット値)において周波数の走査を行う。すなわち、「塵除去動作2」のサブルーチンでは、「塵除去動作1」の場合より狭いf3,f4,f5の範囲で順次周波数を変更していきながら駆動を行う。
さらに、サブルーチン「塵除去動作1」「塵除去動作2」の説明に先立ち、EEPROM29にあらかじめ記憶しているパラメータについて説明する。塵除去動作のために必要なパラメータを、図11にメモリマップで示された複数の領域を有するEEPROM29にあらかじめ記憶しておき、例えば塵除去動作1に対応して「塵除去動作1振動モード1対応制御パラメータ」として有している。塵除去動作1振動モード1に対応する制御パラメータの値の詳細は、図12−1に例示された値で記憶されている。例えば、StartOffsetはこのテーブルの読出し開始位置を示す。
また同様に、「振動モード1対応周波数補正テーブル」として振動モード1に対応する制御パラメータの値の詳細は、図13−1に例示された値で記憶されている。このようなデータテーブルは、振動モード1でガラスを駆動するときN進カウンタ41に設定する値を示している。このテーブルはクロックジェネレータ56が周波数40(MHz)のパルス信号を出力するものとして算出されている。前述の(1)式を使えば駆動周波数を算出できる。
StopOffsetはこの振動モード1対応周波数補正テーブルの読出し終了位置を示す。StartOffsetからStopOffsetの範囲で複数種類の駆動周波数を遷移させると、いずれかのテーブルの値でガラス板は振動モード1で振動する。StepTimeは、駆動周波数を遷移させる際の1つの周波数で駆動すべき時間を示す。この時間は、防塵ガラス駆動回路40の安定時間を考慮して決定する。これは、駆動周波数の変更に対しても、ガラス板の振動が直ちに追従するわけではないためである。ADwait、M1OscTimeは後述の共振点検出動作用のパラメータである。
同様に、塵除去動作1に対応する振動モード2対応の制御パラメータの詳細は、図12−2に示される。また、振動モード2対応周波数補正テーブルの詳細は図13−2に示され、振動モード1と同様な構成のパラメータであり、基本的に同じなのでその説明は省略する。
さらに、塵除去動作2に対応する振動モード1、2に対応して「塵除去動作2振動モード1対応制御パラメータ」「塵除去動作2振動モード2対応制御パラメータ」が図11に示すように設けられている。「塵除去動作2振動モード1対応制御パラメータ」「塵除去動作2振動モード2対応制御パラメータ」の詳細としては、例えば図12−3、図12−4に例示される値で記憶されている。これらのパラメータ値は、塵除去動作1用のパラメータ値とは異なる値が設定されている。ここに、「振動モード1対応周波数補正テーブル」「振動モード2対応周波数補正テーブル」は、塵除去動作2でも共通に使用するものであり、制御パラメータ中のStartOffset,StopOffset、StepTimeは塵除去動作1の場合と同じ意味で用いている。
これらのサブルーチン「塵除去動作1」「塵除去動作2」では、上述した振動モード1と振動モード2との2つの振動モードで防塵ガラス30が共振されるように圧電素子31を駆動するように設定されている。一般的に、重さ、形状、素材などにより例示される塵の特性によって、塵を除去しやすい周波数や振幅が異なる。そこで、確実に塵を除くためにはこれらの2つの振動モードでそのガラス板を共振させるとよい。もちろん、さらに複数の振動モードで共振させてもよい。ただし、除去動作にかかる時間もまたその分余計にかかることがあるので、除去効果の程度と所要時間とを充分鑑みて適当な数に設定すべきである。
これらの設定パラメータ等を踏まえ、まず、図6を参照してサブルーチン「塵除去動作1」について説明する。ステップS200では、EEPROM29から塵除去動作1振動モード1対応制御パラメータ中の3つのパラメータ(StartOffset,StopOffset,StepTime)を読み出す。ステップS201では、EEPROM29の読出し開始アドレスとしてAddressM1+StartOffsetを設定し、読出し終了アドレスとしてAddressM1+StopOffsetを設定する。AddressM1は振動モード1対応周波数補正テーブルの先頭アドレスを示している。例えば、図12−1に従い読出し開始位置(StartOffset)を“3”、読出し終了位置(StopOffset)を“9”とすると、図13−1中の*1から*2で示される範囲内のプリセット値“N”をN進カウンタ41へ設定することになる。すなわち、f1,f2,f3,…,f7の周波数によって順番に圧電素子31を駆動する。この場合の*1〜*2で示される範囲は、共振周波数fcが含まれるように設定されている。ここで、共振周波数fcは、後述するカメラ製造工程における調整動作(共振点検出動作)により調整され、EEPROM29に書き込まれているD_M1resonant及びD_M2resonantが使用される。
ステップS202では、圧電素子31を駆動するための準備動作が行われる。IOポートのP_PwContを制御して、トランジスタ(Q00)44aをON状態にする。さらに、クロックジェネレータ56からパルス信号の出力を開始する。この状態でN進カウンタ41にEEPROM29のテーブルから取り出したデータを設定すれば、所望の周波数で圧電素子31を駆動できる。
ステップS203では、設定されたEEPROM29のアドレスからプリセット値(N)を読み出す。そして、IOポートのD_NCntからN進カウンタ41に読み出したプリセット値(N)を設定する。ステップS204では、防塵ガラス駆動回路40が安定するまでの所定時間だけ待機する。ステップS205では、タイマカウンタ1へSteptimeを設定し、タイマのカウント動作を開始する。例えば、図12−1に示すようにSteptimeが記憶されているとすると、2(msec)がタイマカウンタ1に設定される。ステップS206では、タイマカウンタ1のカウント動作が終了するまで待機する。
ステップS207では、終了アドレスまで読み出したかをチェックし、終了アドレスに達していない場合にはステップS208にて読出しアドレスをインクリメントしてステップS203に戻る。ステップS203では、次の読出しアドレスにより読み出したデータをN進カウンタ41に設定し、駆動周波数を順次変更して走査し駆動を行う。ステップS207で終了アドレスまで読み出した場合には、ステップS209にて圧電素子31の駆動を停止する。以上により、振動モード1による塵払いの動作は完了する。
ステップS210では、振動モード2の塵除去動作を実行したか否かをチェックし、動作を実行していない場合には、ステップS211に移行して振動モード2で防塵ガラス30を振動させる動作を実行する。このため、ステップS211では、EEPROM29から塵除去動作1振動モード2対応制御パラメータ中の3つのパラメータ(StartOffset,StopOffset,StepTime)を読み出す。ステップS212では、EEPROM29の読出し開始アドレスとしてAddressM2+StartOffsetを設定し、読出し終了アドレスとしてAddressM2+StopOffsetを設定する。AddressM2は振動モード2対応周波数補正テーブルの先頭アドレスを示している。例えば、図12−2に従い読出し開始位置(StartOffset)を“4”、読出し終了位置(StopOffset)を“10”とすると、図13−2中の*101〜*102で示される範囲内のプリセット値“N”をN進カウンタ41へ設定することになる。すなわち、f11,f12,f13,…,f17の周波数によって順番に圧電素子31を駆動する。この場合の*101〜*102で示される範囲は、共振周波数fcが含まれるように設定されている。
以下、振動モード1の動作の場合と同様にステップS202〜S210の処理を行うことで、これらの複数種類の周波数を順に走査して防塵ガラス30を振動させ、その後、メインルーチンにリターンする。
このような塵除去動作1によれば、共振周波数fcを含む所定の周波数範囲を走査して防塵ガラス30を複数種類の周波数で振動させるので、当該塵除去動作に先立ち、毎回、共振周波数を検出して決定する処理を行うことなく、確実に共振周波数による振動を含む態様で防塵ガラス30を振動させることができる。また、後述するような共振点検出動作により求められた共振周波数fc、例えばfc=f4が、予期しない要因により図10中に*4や*5に示す特性に変化してfc´,fc´´の如く変動したとしても、これらの範囲を含むf1〜f7の周波数範囲で順に走査して振動を行わせるようにしているので、振動モード1や振動モード2での共振周波数による振動を確保することができ、予期しない要因による変動にも対処することができる。よって、何らかの変動要因により共振周波数を一箇所に特定できない防塵ガラス30を、簡単かつ効率よく駆動することができる。
次いで、図7を参照してサブルーチン「塵除去動作2」について説明する。このサブルーチン「塵除去動作2」は、基本的には、図6で説明したサブルーチン「塵除去動作1」と同様である。
まず、ステップS300では、EEPROM29から塵除去動作2振動モード1対応制御パラメータ中の3つのパラメータ(StartOffset,StopOffset,StepTime)を読み出す。ステップS301では、EEPROM29の読出し開始アドレスとしてAddressM1+StartOffsetを設定し、読出し終了アドレスとしてAddressM1+StopOffsetを設定する。AddressM1は振動モード1対応周波数補正テーブルの先頭アドレスを示している。例えば、図12−3に従い読出し開始位置(StartOffset)を“5”、読出し終了位置(StopOffset)を“7”とすると、図13−1中の*11〜*12で示される範囲内のプリセット値“N”をN進カウンタ41へ設定することになる。すなわち、f3,f4,f5の周波数によって順番に圧電素子31を駆動する。この場合の*11〜*12で示される範囲は、共振周波数fcが含まれるように設定されている。
ステップS302では、圧電素子31を駆動するための準備動作が行われる。まず、IOポートのP_PwContを制御して、トランジスタ(Q00)44aをON状態にする。さらに、クロックジェネレータ56からパルス信号の出力を開始する。この状態でN進カウンタ41にEEPROM29のテーブルから取り出したデータを設定すれば、所望の周波数で圧電素子31を駆動できる。
ステップS303では、設定されたEEPROM29のアドレスからプリセット値(N)を読み出す。そして、IOポートのD_NCntからN進カウンタ41に読み出したプリセット値(N)を設定する。ステップS304では、防塵ガラス駆動回路40が安定するまでの所定時間だけ待機する。ステップS305では、タイマカウンタ1へSteptimeを設定し、タイマのカウント動作を開始する。例えば、図12−3に示すようにSteptimeが記憶されているとすると、2(msec)がタイマカウンタ1に設定される。ステップS306では、タイマカウンタ1のカウント動作が終了するまで待機する。
ステップS307では終了アドレスまで読み出したかをチェックし、終了アドレスに達していない場合にはステップS308にて読出しアドレスをインクリメントしてステップS303に戻る。ステップS303では、次の読出しアドレスにより読み出したデータをN進カウンタ41に設定し、駆動周波数を順次変更して走査し駆動を行う。ステップS307で終了アドレスまで読み出した場合には、ステップS309にて圧電素子31の駆動を停止する。以上により、振動モード1による塵払いの動作は完了する。
ステップS310では、振動モード2の塵除去動作を実行したか否かをチェックし、動作を実行していない場合には、ステップS311に移行して振動モード2で防塵ガラス30を振動させる動作を実行する。このため、ステップS311では、EEPROM29から塵除去動作2振動モード2対応制御パラメータ中の3つのパラメータ(StartOffset,StopOffset,StepTime)を読み出す。ステップS312では、EEPROM29の読出し開始アドレスとしてAddressM2+StartOffsetを設定し、読出し終了アドレスとしてAddressM2+StopOffsetを設定する。AddressM2は振動モード2対応周波数補正テーブルの先頭アドレスを示している。例えば、図12−4に従い読出し開始位置(StartOffset)を“6”、読出し終了位置(StopOffset)を“8”とすると、図13−2中の*111〜*112で示される範囲内のプリセット値“N”をN進カウンタ41へ設定することになる。すなわち、f13,f14,f15の周波数によって順番に圧電素子31を駆動する。この場合の*111〜*112で示される範囲は、共振周波数fcが含まれるように設定されている。
以下、振動モード1の動作と同様にステップS302〜S310の処理を行うことで、これらの複数種類の周波数を順に走査して防塵ガラス30を振動させ、その後、メインルーチンにリターンする。
ここで、塵除去動作2の動作時間は、2ms×3+1ms×3=10msとなるので、例えばミラーアップ動作時間を20msとすると、ミラーアップ動作と塵除去動作2との並行動作によりレリーズタイムラグとなることはない。
このように、撮影動作の開始に先立つタイミングであるミラーアップ動作中に塵除去動作2を行うので、撮影時に塵の付着を防止することができる。また、レンズ交換時等の他のタイミングで防塵ガラス30を振動させる塵除去動作1の場合と比較して、撮影動作の開始に先立つタイミングで行う塵除去動作2の周波数の走査範囲を、共振周波数を含む、より狭い範囲に設定しているので、撮影動作に移行する上で塵除去動作2によってレリーズタイムラグが生ずることがない上に、塵除去動作2自体の動作時間がより短いので、消費電力を抑えることもできる。
なお、カメラシステムの設計段階では、防塵ガラス30の共振周波数のバラツキを予測することは非常に困難である。したがって、このカメラシステムが完成した後に、圧電素子31の駆動周波数を決定する制御パラメータを設定できるようにすべきである。そこで、必要なパラメータは、上述した如く本実施の形態では全てEEPROM29に選択可能に格納されている。
次に、カメラ組み立て工程における共振周波数調整方法について説明する。この処理は、図4中のステップS002に示すサブルーチン「共振点検出動作」により行われる。このサブルーチン「共振点検出動作」について図14を参照して説明する。
まず、形状、組成、支持方法などのガラスの特性によって共振周波数が存在する範囲が予想できるので、この範囲内でガラス板に振動を加えて共振点を検出するべきである。さもないと、検出動作に必要以上に時間がかかることになるためである。また、検出範囲を想定しないと、意図した振動モード以外の高次の共振モードにおける共振周波数を検出するおそれがある。
そこで、本実施の形態においては、共振周波数の検出動作のために必要なパラメータは、図11にメモリマップで示された複数の領域を有するEEPROM29にあらかじめ記憶されている「塵除去動作1振動モード1対応制御パラメータ」を使用する。振動モード1に対応する制御パラメータの値の詳細は、図12−1に例示された値で記憶されている。例えば、StartOffsetはこのテーブルの読出し開始位置を示す。
また同様に、「振動モード1対応周波数補正テーブル」として振動モード1に対応する制御パラメータの値の詳細は、図13−1に例示された値で記憶されている。StopOffsetはこの振動モード1対応周波数補正テーブルの読出し終了位置を示す。StartOffsetからStopOffsetの範囲で駆動周波数を遷移させると、いずれかのテーブルの値でガラス板は振動モード1で振動する。StepTimeは、駆動周波数を遷移させる際の1つの周波数で駆動すべき時間を示す。ADwaitは、モニタ信号をA/D変換する周波数を決定するパラメータであり、ガラスの共振周波数に応じて適当な値に決定する。M1OscTimeは、検出された周波数で防塵ガラス30を加振する時間を示している。以上は、振動モード1における制御パラメータである。塵除去動作1振動モード2対応の制御パラメータの詳細は、図12−2に示される。また、振動モード2対応周波数補正テーブルの詳細は図13−2に示され、振動モード1と同様な構成のパラメータであり、基本的に同じなのでその説明は省略する。
図14のフローチャートに基づき「共振点検出動作」の手順について説明する。ステップS100では、EEPROM29から4つの制御パラメータ(StartOffset,StopOffset,StepTime,ADwait)を読み出す。ステップS101では、EEPROM29の読出し開始アドレスとしてAddressM1+StartOffsetを設定し、読出し終了アドレスとしてAddressM1+StopOffsetを設定する。AddressM1は振動モード1対応周波数補正テーブルの先頭アドレスを示している。例えば、図12−1のパラメータ設定に従い、読出し開始位置(StartOffset)を“3”とし、読出し終了位置(StopOffset)を“9”とすると、図13−1中の*1〜*2で示された領域のプリセット値“N”をN進カウンタ41へ設定することになる。すなわち、f1,f2,f3,…,f7の周波数の中からモニタ信号の出力が最大となる周波数を検出することになる。
ステップS102では、モニタ信号の最大値を一時的に記憶するために確保したメモリD_ADMAXへ便宜上モニタ信号の最小値であるステップS0を設定する。ステップS103では、圧電素子31を駆動するための準備動作が行われる。IOポートのP_PwContを制御してトランジスタ(Q00)44aをON状態にする。さらに、クロックジェネレータ56からパルス信号の出力を開始する。この状態でN進カウンタ41にテーブルから取り出したデータを設定すれば、所望の周波数で圧電素子31を駆動できる。
ステップS104においては、設定されたEEPROM29のアドレスからプリセット値(N)を読み出す。そして、IOポートのD_NCntからN進カウンタ41に読み出したプリセット値を設定する。ステップS105にて、防塵ガラス駆動回路40が安定するまでの所定時間だけ待機する。
ステップS106では、タイマカウンタ1へSteptimeを設定し、タイマのカウント動作を開始する。例えば図12−1に示すように、Steptimeが記憶されていると、2(msec)がタイマカウンタ1へ設定される。ステップS107にて、A/Dコンバータ60の加算データを一時的に記憶するために確保したメモリ領域D_ADSUMへステップS0を設定する。さらに、A/Dコンバータ60の動作回数をカウントするために確保したメモリD_ADcountへステップS0を設定する。
ステップS108では、タイマカウンタ2へADwaitを設定し、カウント動作を開始する。例えば図12−1に示すようにADwaitが記憶されていると、80(μsec)がタイマカウンタ2へ設定される。そして、ステップS109にて、A/Dコンバータ60を用いてモニタ信号のA/D変換値を取得する。
ステップS110では、モニタ信号のA/D変換値を、メモリ領域D_ADSUMへ加算する。さらに、メモリ領域D_ADcountをインクリメントする。ステップS111では、タイマカウンタ2のカウント動作が終了するまで待機する。ステップS112では、タイマカウンタ1のカウント動作が終了しているか否かを判定する。まだ終了していない場合は、再度モニタ信号の測定のため、ステップS108へ移行する。もし終了していれば、ステップS113へ移行する。
ステップS113では、メモリ領域D_ADSUMとD_ADcountから、AD変換値の平均値を求める。そして、平均値はその平均値の記録のため確保したメモリ領域D_ADAVEへ格納される。D_ADAVEは、現在の駆動周波数におけるモニタ信号のレベルを示す。ステップS114では、D_ADAVEとD_ADMAXとの内容を比較する。もしD_ADAVEの内容がD_ADMAXの内容よりも大きい場合は、ステップS115へ移行し、小さい場合はステップS119へ移行する。
ステップS115では、D_ADAVEの内容をD_ADMAX中に移す。古い最大値は破棄され、今回測定された値がモニタ信号の最大値として記憶される。現在、振動モード1でモニタ信号を測定中ならば、ステップS116からステップS117へ移行する。現在、振動モード2でモニタ信号を測定中ならば、ステップS116からステップS118へ移行する。
ステップS117では、現在のEEPROM29のアドレスをD_M1resonantに記憶する。D_M1resonantは振動モード1用のアドレスを記憶するためメモリ上に確保した領域である。また、ステップS118では、現在のEEPROMのアドレスをD_M2resonantに記憶する。D_M2resonantは振動モード2用のアドレスを記憶するためメモリ上に確保した領域である。これらD_M1resonant及びD_M2resonantの値は、前述のサブルーチン「塵除去動作1」「塵除去動作2」で使用される。
ステップS119では、EEPROM読出し終了アドレスで示される駆動周波数までモニタ信号の測定が終了したか否かを判定する。まだ終了していなければステップS121へ移行し、終了していれば次のステップS120へ移行する。ステップS120では、駆動動作を停止する処理が行われる。トランジスタ(Q00)44aをOFFして、クロックジェネレータ56の動作を止める。ステップS121では、EEPROM29の読出しアドレスをインクリメントし、ステップS104へ移行する。
ステップS122では、振動モード1と振動モード2における共振点の検出動作が終了したか否かを判定する。共に検出動作が終了していればメインルーチンへリターンする。振動モード1のみが終了している場合は、振動モード2における共振周波数を検出するためにステップS130へ移行する。なお、ステップS130,S131の動作は既に説明したステップS100,S101と基本的に同じであるので説明は省略する。そして、共振周波数を検出するため再びステップS102へ移行する。
なお、該サブルーチンでは2つのパラメータStartOffset、StopOffsetで規定される範囲で周波数補正テーブルからプリセット値を読み出し、これらのプリセット値すべてを利用してガラス板を駆動し、モニタ信号のレベルを測定するようにしている。
また、温度によっても共振周波数がある範囲で変動するので、所定の実験により作成した温度補正テーブルを適正に設定し参照可能に保持することで、その運用時の温度において最も好適な共振周波数でそのガラス板を駆動させてもよい。そのためには、振動モードに対応する温度補正テーブルからその時の温度に対応するパラメータを読み出すために、温度情報(t)を当該サブルーチンの実行前に、温度測定回路33の温度センサ(不図示)によって検出しておけばよい。
このように本実施の形態によれば、防塵ガラス30の共振周波数に影響する例えばガラス形状や弾性係数のバラツキなどを調整しなくとも、簡単な共振周波数の測定による調整値を一旦記憶させておけば、後は、塵除去動作1や塵除去動作2により効率的な塵の除去が可能であり、かつ、撮影前のタイミングで毎回塵除去動作2を行うので、撮影時に塵が写真に写り込むことはない。また、ミラーアップ動作中に短時間で済む塵除去動作2を行うので、当該塵除去動作2により撮影に移行するタイムラグが発生することがなく、かつ、消費電力を抑えることもできる。
なお、上述では、電子撮像可能なカメラシステムを例にして防塵ガラス30による実施の形態について説明してきたが、埃や塵を嫌うその他の光学装置においても、本発明を同様に適用すれば、前述した実施の形態と同等な効果が得られる。また、共振周波数を特定できないガラス以外の光学素子部材を適用することもでき、その場合にも、製品個々のバラツキに起因する固有共振周波数に対する調整は不要となり、前述した実施の形態と同等な効果が期待できる。この他にも、本発明の要旨を逸脱しない範囲で種々の変形実施が可能である。