(57)【要約】【課題】マイクロステップ駆動方式のステッピングモータで駆動されるフォーカスレンズを用いたオートフォーカス制御において、合焦時間の増大を防止するようにする。【解決手段】第１および第２の周波数発生部２０２，２０４が、基本クロックをカウントすることにより第１および第２の駆動周波数ｆ１，ｆ２をもつ第１および第２のパルス信号をそれぞれ発生する。これを受け取った駆動周波数平均化部２０６が、第１のパルス信号を第１のパルス数だけ出力し、続いて第２のパルス信号を第２のパルス数だけ出力することを繰り返し行い、駆動パルスとして出力する。そして、ドライブ部１０２が、この駆動パルスを用いてステッピングモータを駆動する。【選択図】図２
2008017659.tif 000002
【特許請求の範囲】
【請求項１】
基本クロックをカウントすることにより第１の周波数をもつ第１のパルス信号を発生する第１の周波数発生手段と、
前記基本クロックをカウントすることにより、前記第１の周波数とは異なる第２の周波数をもつ第２のパルス信号を発生する第２の周波数発生手段と、
前記第１及び第２の周波数発生手段によってそれぞれ発生された第１及び第２のパルス信号を受け取り、前記第１のパルス信号を第１のパルス数だけ出力し、続いて前記第２のパルス信号を第２のパルス数だけ出力することを繰り返し行い、駆動パルスとして出力する駆動パルス出力手段と、
前記駆動パルス出力手段によって出力された駆動パルスによってステッピングモータを駆動する駆動手段と
を有することを特徴とするステッピングモータ駆動装置。
【請求項２】
前記第１及び第２の周波数発生手段は、前記基本クロックを第１及び第２のカウント数だけそれぞれカウントすることにより、前記第１および第２の周波数をそれぞれもつ前記第１および第２のパルス信号をそれぞれ発生し、
前記ステッピングモータの駆動目標を表す駆動周波数指令値に基づき、前記第１及び第２のカウント数、並びに前記第１および第２のパルス数を決定する決定手段を更に有することを特徴とする請求項１記載のステッピングモータ駆動装置。
【請求項３】
前記第１及び第２の周波数発生手段は、前記基本クロックを第１及び第２のカウント数だけそれぞれカウントすることにより、前記第１および第２の周波数をそれぞれもつ前記第１および第２のパルス信号をそれぞれ発生し、
前記ステッピングモータの駆動目標を表す駆動周波数指令値に基づき、前記第１及び第２のカウント数と、前記第１のパルス数と、前記第１および第２のパルス数の合計数とを決定する決定手段を更に有することを特徴とする請求項１記載のステッピングモータ駆動装置。
【請求項４】
前記決定手段は、前記第１および第２のパルス数の合計数を所定値よりも小さい値に決定することを特徴とする請求項３記載のステッピングモータ駆動装置。
【請求項５】
前記決定手段は、前記第２のカウント数を、前記第１のカウント数に所定数を加えて得られる数として決定することを特徴とする請求項２または請求項３記載のステッピングモータ駆動装置。
【請求項６】
前記ステッピングモータ駆動装置は、カメラ装置に含まれるフォーカスレンズの駆動を制御することを特徴とする請求項１乃至請求項５のいずれかに記載のステッピングモータ駆動装置。
【請求項７】
前記フォーカスレンズを駆動して自動焦点調節評価値を取得する自動焦点調節スキャン動作を行う場合には前記駆動手段を動作させ、前記自動焦点調節スキャン動作を行わない場合には、前記駆動手段を動作させないようにする第１の制御手段を更に有することを特徴とする請求項６記載のステッピングモータ駆動装置。
【請求項８】
前記自動焦点調節スキャン動作を行う場合に、前記フォーカスレンズの所定の駆動範囲内の複数の分割区画の各々において前記駆動手段を動作させ、該動作によって取得された複数の自動焦点調節評価値のなかで最大の自動焦点調節評価値を検出する検出手段と、
前記検出手段によって検出された最大の自動焦点調節評価値が取得された分割区画に前記フォーカスレンズを移動させる移動手段と
を更に有することを特徴とする請求項７記載のステッピングモータ駆動装置。
【請求項９】
前記駆動周波数指令値と前記第１の周波数との差が所定の値より小さいとき、前記駆動パルス出力手段を動作させないようにする第２の制御手段を更に有することを特徴とする請求項２または請求項３記載のステッピングモータ駆動装置。
【請求項１０】
前記駆動パルス出力手段はレートマルチプライヤで構成されることを特徴とする請求項１記載のステッピングモータ駆動装置。
【請求項１１】
基本クロックをカウントすることにより第１の周波数をもつ第１のパルス信号を発生する第１の周波数発生ステップと、
前記基本クロックをカウントすることにより、前記第１の周波数とは異なる第２の周波数をもつ第２のパルス信号を発生する第２の周波数発生ステップと、
前記第１及び第２の周波数発生ステップにおいてそれぞれ発生された第１及び第２のパルス信号を受け取り、前記第１のパルス信号を第１のパルス数だけ出力し、続いて前記第２のパルス信号を第２のパルス数だけ出力することを繰り返し行い、駆動パルスとして出力する駆動パルス出力ステップと、
前記駆動パルス出力ステップにおいて出力された駆動パルスによってステッピングモータを駆動する駆動ステップと
を有することを特徴とするステッピングモータ駆動方法。
【請求項１２】
前記第１及び第２の周波数発生ステップでは、前記基本クロックを第１及び第２のカウント数だけそれぞれカウントすることにより、前記第１および第２の周波数をそれぞれもつ前記第１および第２のパルス信号をそれぞれ発生し、
前記ステッピングモータの駆動目標を表す駆動周波数指令値に基づき、前記第１及び第２のカウント数、並びに前記第１および第２のパルス数を決定する決定ステップを更に有することを特徴とする請求項１１記載のステッピングモータ駆動方法。
【請求項１３】
前記第１及び第２の周波数発生ステップでは、前記基本クロックを第１及び第２のカウント数だけそれぞれカウントすることにより、前記第１および第２の周波数をそれぞれもつ前記第１および第２のパルス信号をそれぞれ発生し、
前記ステッピングモータの駆動目標を表す駆動周波数指令値に基づき、前記第１及び第２のカウント数と、前記第１のパルス数と、前記第１および第２のパルス数の合計数とを決定する決定ステップを更に有することを特徴とする請求項１１記載のステッピングモータ駆動方法。
【請求項１４】
前記決定ステップでは、前記第１および第２のパルス数の合計数を所定値よりも小さい値に決定することを特徴とする請求項１３記載のステッピングモータ駆動方法。
【請求項１５】
前記決定ステップでは、前記第２のカウント数を、前記第１のカウント数に所定数を加えて得られる数として決定することを特徴とする請求項１２または請求項１３記載のステッピングモータ駆動方法。
【請求項１６】
前記ステッピングモータ駆動方法によって、カメラ装置に含まれるフォーカスレンズの駆動が制御されることを特徴とする請求項１１乃至請求項１５のいずれかに記載のステッピングモータ駆動方法。
【請求項１７】
前記フォーカスレンズを駆動して自動焦点調節評価値を取得する自動焦点調節スキャン動作を行う場合には前記駆動ステップを実行させ、前記自動焦点調節スキャン動作を行わない場合には、前記駆動ステップを実行させないようにする第１の制御ステップを更に有することを特徴とする請求項１６記載のステッピングモータ駆動方法。
【請求項１８】
前記自動焦点調節スキャン動作を行う場合に、前記フォーカスレンズの所定の駆動範囲内の複数の分割区画の各々において前記駆動ステップを実行させ、該実行によって取得された複数の自動焦点調節評価値のなかで最大の自動焦点調節評価値を検出する検出ステップと、
前記検出ステップにおいて検出された最大の自動焦点調節評価値が取得された分割区画に前記フォーカスレンズを移動させる移動ステップと
を更に有することを特徴とする請求項１７記載のステッピングモータ駆動方法。
【請求項１９】
前記駆動周波数指令値と前記第１の周波数との差が所定の値より小さいとき、前記駆動パルス出力ステップを実行させないようにする第２の制御ステップを更に有することを特徴とする請求項１２または請求項１３記載のステッピングモータ駆動方法。
【請求項２０】
ステッピングモータ駆動方法を、コンピュータに実行させるためのプログラムにおいて、該ステッピングモータ駆動方法が、
基本クロックをカウントすることにより第１の周波数をもつ第１のパルス信号を発生する第１の周波数発生ステップと、
前記基本クロックをカウントすることにより、前記第１の周波数とは異なる第２の周波数をもつ第２のパルス信号を発生する第２の周波数発生ステップと、
前記第１及び第２の周波数発生ステップにおいてそれぞれ発生された第１及び第２のパルス信号を受け取り、前記第１のパルス信号を第１のパルス数だけ出力し、続いて前記第２のパルス信号を第２のパルス数だけ出力することを繰り返し行い、駆動パルスとして出力する駆動パルス出力ステップと、
前記駆動パルス出力ステップにおいて出力された駆動パルスによってステッピングモータを駆動する駆動ステップと
を有することを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ステッピングモータ駆動装置、ステッピングモータ駆動方法、及びプログラムに関し、特に、基本クロックを所定数カウントすることにより所定の周波数をもつパルス信号を生成して、該パルス信号を用いてステッピングモータを駆動するステッピングモータ駆動装置、該ステッピングモータ駆動装置に適用されるステッピングモータ駆動方法、及び該ステッピングモータ駆動方法をコンピュータに実行させるためのプログラムに関する。
【背景技術】
【０００２】
従来、ステッピングモータを駆動するためのパルス信号の駆動周波数は、基本クロックを所定の数だけカウントすることによって所定の周期を得、この所定の周期に基づき決定するという構成が一般的に知られている。
【０００３】
ところで、図１２に示すように、例えば、基本クロックをカウント数Ｃｎｔ１だけカウントすることによって駆動周波数ｆ１を生成し、また、基本クロックをカウント数（Ｃｎｔ１＋１）だけカウントすることによって駆動周波数ｆ２を生成するとする。この場合、駆動周波数ｆ１と駆動周波数ｆ２との間の駆動周波数を生成することはできない。つまり、基本クロックの周期よりも細かい刻みの周期をもつ駆動周波数を生成することはできない。そのため、基本クロックをカウントして得られる駆動周波数の分解能は、基本クロックの周波数に依存してしまい、所望の駆動周波数をもつパルス信号を得ることができないということが往々にして生じていた。
【０００４】
特に、高い駆動周波数のパルス信号を用いてステッピングモータの動作を細かく制御しようとしたときに不具合があった。勿論、必要な分解能に応じた高い周波数をもった基本クロックを採用すれば、不具合は解消されるが、この場合、ステッピングモータの駆動回路の高コストを招いてしまう。
【０００５】
このような不具合を解消するものとして、レートマルチプライヤを用いることにより超音波モータの駆動周波数を制御する技術が提案されている（例えば、特許文献１参照）。こうした超音波モータにおいては、ステッピングモータにおける駆動周波数よりも高い駆動周波数を、高い分解能で制御することが求められている。
【０００６】
なお、上記の超音波モータにおける駆動周波数の制御技術では、分解能を細かくすることは可能であるが、任意の駆動周波数において、許容されるバラツキ幅の範囲内で高い分解能を実現することができるか否かは、基本クロックの周波数に依存している。この点では、基本クロックを単純にカウントして駆動周波数を発生する場合と同じであり、許容されるバラツキ幅の範囲内で、任意の駆動周波数を設定することができない。
【特許文献１】特開２０００−１８４７６２号公報
【発明の開示】
【発明が解決しようとする課題】
【０００７】
ところで昨今、ステッピングモータを滑らかに駆動するために、マイクロステップ駆動方式を採用することが多く、なおかつ、その分割数（ステップ数）が増加の傾向にある。これに伴い、ステッピングモータを駆動する駆動周波数の分解能は一層細かくなっている。
【０００８】
ここで例えば、基本クロックの周波数が１０ＭＨｚであって、５１２分割のマイクロステップ駆動方式で駆動されるステッピングモータ駆動装置を例に挙げて説明する。
【０００９】
周波数１０ＭＨｚの基本クロックを、例えば１００クロックだけカウントすることで得られる周期は１０μｓｅｃである。５１２分割のマイクロステップ駆動方式では、この１０μｓｅｃが経過する毎に、ステッピングモータの電気角１／５１２周を進めることになる。つまり、５１２分割における１マイクロステップ分の励磁を切り換える周波数が、１００ｋＨｚとなる。
【００１０】
このとき、電気角１／８周の刻みで励磁を切り換える１−２相駆動換算での１００クロックカウントの駆動周波数ｆ１００は、下記式（１０１）で算出される。
【００１１】
ｆ１００＝１０ＭＨｚ／｛１００ＣＬＫ×（５１２／８）｝  ・・・（１０１）
この駆動周波数ｆ１００は、１５６２．５ｐｐｓとなる。
【００１２】
次に、１０ＭＨｚの基本クロックを１００クロックだけカウントすることで得られる駆動周波数ｆ１００よりも少し高い（速い）駆動周波数を得ようとした場合を説明する。
【００１３】
基本クロックのカウント数は整数値としてしか設定できないから、上記の場合、１０ＭＨｚの基本クロックのカウント数を９９クロックだけカウントすることで得られる駆動周波数ｆ９９を考察する。
【００１４】
周波数１０ＭＨｚの基本クロックを９９クロックだけカウントすることで得られる周期は９．９μｓｅｃである。５１２分割のマイクロステップ駆動方式の場合、この周期９．９μｓｅｃの経過毎にステッピングモータの電気角１／５１２周を進めることになる。つまり、５１２分割における１マイクロステップ分の励磁を切り換える周波数が、１０１．０１ｋＨｚとなる。
【００１５】
このとき、電気角１／８周の刻みで励磁を切り換える１−２相駆動換算での９９クロックカウントの駆動周波数ｆ９９は、下記式（１０２）で算出される。
【００１６】
ｆ９９＝１０ＭＨｚ／｛９９ＣＬＫ×（５１２／８）｝  ・・・（１０２）
この駆動周波数ｆ９９は、１５７８．２８ｐｐｓとなる。
【００１７】
以上から分かるように、ここに挙げた例では、１５７８．２８から１５６２．５ｐｐｓまでの間の値を持つ駆動周波数を発生させることはできない。言い換えれば、ここに挙げた例では、１５００ｐｐｓ付近の駆動周波数では、およそ１６ｐｐｓ（≒１５７８．２８ｐｐｓ−１５６２．５ｐｐｓ）程度の分解能しか得られない。
【００１８】
ところで、上記に述べた問題が、フォーカスレンズをステッピングモータによって駆動するオートフォーカス（自動焦点調節）方式のカメラ装置において、以下のような不具合を引き起こしている。
【００１９】
オートフォーカス制御においては、所定のスキャン範囲においてフォーカスレンズを駆動し、その間に、所定のスキャン回数だけ、ＡＦ（自動焦点調節）評価値を取得する。
【００２０】
一般的に、撮像素子ＣＣＤの垂直転送周期毎に、ＡＦ評価値を得るための１回のスキャンを行うため、スキャン動作時の駆動周波数の指令値は、下記式（１０３）で得られる駆動周波数として決定される。
【００２１】
駆動周波数＝スキャン範囲／（スキャン回数−１）／ＣＣＤ垂直転送周期  ・・・（１０３）
ここで、フォーカスレンズを駆動するステッピングモータが、上述したような、基本クロックの周波数が１０ＭＨｚであり、５１２分割のマイクロステップの駆動方式で駆動されるものとする。そして、上記式（１０３）で得られた駆動周波数指令値が、例えば１５７０ｐｐｓであったとする。この場合、基本クロックのカウント数を９９クロックとして駆動周波数指令値よりも少し高い（速い）１５７８．２８ｐｐｓとするか、カウント数を１００クロックとして駆動周波数指令値よりも少し低い（遅い）１５６２．５ｐｐｓとする。どちらかを選択するかについて、図１３を参照して説明する。
【００２２】
図１３は、所定のスキャン範囲においてスキャン回数を６回とし、ＡＦ評価値を取得しながらスキャン動作を、このスキャン回数だけ行う場合における各スキャン回のスキャン範囲を示す図である。
【００２３】
図１３（Ａ）は、フォーカスレンズ位置および所定のスキャン範囲を示す。図１３（Ｃ）は、駆動周波数指令値と同じ駆動周波数でフォーカスレンズを駆動した場合の各スキャン回のスキャン範囲Ｌ０を示す。図１３（Ｂ）は、駆動周波数指令値よりも低い（遅い）駆動周波数でフォーカスレンズを駆動した場合の各スキャン回のスキャン範囲Ｌ１を示す。図１３（Ｄ）は、駆動周波数指令値よりも高い（速い）駆動周波数でフォーカスレンズを駆動した場合の各スキャン回のスキャン範囲Ｌ２を示す。
【００２４】
駆動周波数指令値よりも高い（速い）駆動周波数でフォーカスレンズを駆動した場合（図１３（Ｄ））、ＣＣＤ垂直転送周期でフォーカスレンズが駆動される範囲Ｌ２が、駆動周波数指令値と同じ駆動周波数で駆動した場合の範囲Ｌ０よりも長くなってしまう。その結果、６回のスキャンを行う前に、所定のスキャン範囲におけるフォーカスレンズ駆動を終えてしまい、オートフォーカスの制御精度の低下を招くことになる。
【００２５】
このため一般に、図１３（Ｂ）に示すように、駆動周波数指令値よりも低い（遅い）駆動周波数でフォーカスレンズを駆動するようにする。しかし、この場合、所定のスキャン回数（６回）だけスキャンし終えた時点で、所定のスキャン範囲をカバーし切れないため、所定のスキャン回数よりも多い回数のスキャン動作をする必要がある。そのため、（増えたスキャン回数×ＣＣＤの垂直転送周期の時間）だけオートフォーカスにおける合焦時間が増加するという問題があった。
【００２６】
本発明はこのような問題点に鑑みてなされたものであって、マイクロステップ駆動方式のステッピングモータで駆動されるフォーカスレンズを用いたオートフォーカス制御において、合焦時間の増大を防止するようにしたステッピングモータ駆動装置、ステッピングモータ駆動方法、及びプログラムを提供することを目的とする。
【課題を解決するための手段】
【００２７】
上記目的を達成するために、請求項１記載の発明によれば、基本クロックをカウントすることにより第１の周波数をもつ第１のパルス信号を発生する第１の周波数発生手段と、前記基本クロックをカウントすることにより、前記第１の周波数とは異なる第２の周波数をもつ第２のパルス信号を発生する第２の周波数発生手段と、前記第１及び第２の周波数発生手段によってそれぞれ発生された第１及び第２のパルス信号を受け取り、前記第１のパルス信号を第１のパルス数だけ出力し、続いて前記第２のパルス信号を第２のパルス数だけ出力することを繰り返し行い、駆動パルスとして出力する駆動パルス出力手段と、前記駆動パルス出力手段によって出力された駆動パルスによってステッピングモータを駆動する駆動手段とを有することを特徴とするステッピングモータ駆動装置が提供される。
【００２８】
また、請求項１１記載の発明によれば、基本クロックをカウントすることにより第１の周波数をもつ第１のパルス信号を発生する第１の周波数発生ステップと、前記基本クロックをカウントすることにより、前記第１の周波数とは異なる第２の周波数をもつ第２のパルス信号を発生する第２の周波数発生ステップと、前記第１及び第２の周波数発生ステップにおいてそれぞれ発生された第１及び第２のパルス信号を受け取り、前記第１のパルス信号を第１のパルス数だけ出力し、続いて前記第２のパルス信号を第２のパルス数だけ出力することを繰り返し行い、駆動パルスとして出力する駆動パルス出力ステップと、前記駆動パルス出力ステップにおいて出力された駆動パルスによってステッピングモータを駆動する駆動ステップとを有することを特徴とするステッピングモータ駆動方法が提供される。
【００２９】
さらに、上記ステッピングモータ駆動方法をコンピュータに実行させるためのプログラムが提供される。
【発明の効果】
【００３０】
本発明によれば、ステッピングモータ駆動装置において、基本クロックをカウントすることにより第１および第２の周波数をもつ第１および第２のパルス信号をそれぞれ発生する。つぎに、前記第１のパルス信号を第１のパルス数だけ出力し、続いて前記第２のパルス信号を第２のパルス数だけ出力することを繰り返し行い、駆動パルスとして出力する。そして、この駆動パルスを用いてステッピングモータを駆動する。
【００３１】
こうした構成のステッピングモータ駆動装置が、カメラ装置に含まれるフォーカスレンズの駆動を制御するようにしたとする。このカメラ装置において、フォーカスレンズを駆動してＡＦ（自動焦点調節）評価値を取得するＡＦスキャン動作を行う場合、上記の構成により、次のような効果が得られる。すなわち、ＡＦアルゴリズム上、最適と判断された駆動周波数指令値と、実際に実現できる駆動周波数との差異を、許容範囲以内のズレに抑えることができる。これにより、ＡＦスキャン動作における動作時間の増大に伴う合焦時間の増大を防ぐことができ、ＡＦの高速化を図ることができる。
【００３２】
また、前記第１および第２のパルス数の合計数を所定値よりも小さい値に設定する。これにより、駆動音が可聴帯域に入ることを未然に抑えることができ、駆動音を低減することができる。
【００３３】
また、ＡＦスキャン動作を行う場合には、前記駆動パルスを用いてステッピングモータを駆動し、ＡＦスキャン動作を行わない場合には、前記駆動パルスを用いてステッピングモータを駆動しないようにする。これにより、処理負荷を軽減できる。
【００３４】
また、駆動周波数指令値と第１の周波数との差が所定の値より小さいとき、前記駆動パルスを出力させないようにする。これにより、システムの処理負荷の軽減を図れる。
【発明を実施するための最良の形態】
【００３５】
以下、本発明を実施するための最良の形態について、図面を参照して説明する。
【００３６】
図１は、本発明の一実施の形態に係るステッピングモータ駆動装置が搭載されたカメラ装置の構成を示すブロック図である。
【００３７】
図１において、１００はカメラ装置である。
【００３８】
１０はズームレンズ、１１はフォーカスレンズ、１２は、絞り機能を備えるシャッタである。１４は、光学像を電気信号に変換する撮像素子、１６は、撮像素子１４から出力されるアナログ信号をディジタル信号に変換するＡ／Ｄ変換器である。１８はタイミング発生回路であり、撮像素子１４、Ａ／Ｄ変換器１６、Ｄ／Ａ変換器２６にクロック信号や制御信号を供給する。タイミング発生回路１８は、メモリ制御回路２２及びシステム制御回路５０により制御される。
【００３９】
２０は画像処理回路であり、Ａ／Ｄ変換器１６またはメモリ制御回路２２から送られた画像データに対して所定の画素補間処理や色変換処理を行う。さらに画像処理回路２０は、画像データに対して所定の演算処理を行い、得られた演算結果に基づいてＴＴＬ（Through The Lens）方式のＡＷＢ（オートホワイトバランス）処理も行う。
【００４０】
２２はメモリ制御回路であり、Ａ／Ｄ変換器１６、タイミング発生回路１８、画像処理回路２０、画像表示メモリ２４、Ｄ／Ａ変換器２６、メモリ３０、圧縮・伸長回路３２を制御する。
【００４１】
Ａ／Ｄ変換器１６から出力された画像データは、画像処理回路２０およびメモリ制御回路２２を介して、またはメモリ制御回路２２を介して、画像表示メモリ２４またはメモリ３０に書き込まれる。
【００４２】
２４は画像表示メモリ、２６はＤ／Ａ変換器、２８は、ＴＦＴＬＣＤ等から成る画像表示部であり、画像表示メモリ２４に書き込まれた表示用の画像データは、Ｄ／Ａ変換器２６を介して画像表示部２８に送られ、表示される。画像表示部２８を用いて、撮像画像データを逐次表示すれば、電子ファインダ機能を実現することができる。
【００４３】
また、画像表示部２８では、システム制御回路５０からの指示により、表示をＯＮ／ＯＦＦすることが可能であり、表示をＯＦＦにした場合にはカメラ装置１００の電力消費を大幅に低減することができる。
【００４４】
３０は、撮影して得られた静止画像や動画像を格納するためのメモリであり、所定枚数の静止画像や所定時間の動画像を格納するのに十分な記憶容量を備えている。これにより、複数枚の静止画像を連続して撮影する連射撮影やパノラマ撮影の場合にも、高速かつ大量の画像書き込みをメモリ３０に対して行うことが可能となる。また、メモリ３０をシステム制御回路５０の作業領域として使用することが可能である。
【００４５】
３２は、適応離散コサイン変換（ＡＤＣＴ）等により画像データを圧縮伸長する圧縮・伸長回路であり、メモリ３０に格納された画像データを読み込んで圧縮処理または伸長処理を行い、処理を終えた画像データをメモリ３０に書き込む。
【００４６】
４０は、絞り機能を備えるシャッタ１２を制御する露光制御部であり、画像データに対して画像処理回路２０で行われた所定の演算の結果に基づいて、ＡＥ（自動露出）処理を行う。また、露光制御部４０は、フラッシュ部４８と連携することによりフラッシュ調光機能も有する。
【００４７】
４２は、フォーカスレンズ１１のフォーカシングを制御するＡＦ（自動焦点調節）制御部であり、画像データに対して画像処理回路２０で行われた所定の演算の結果に基づいて、ＡＦ（自動焦点調節）処理を行う。ＡＦ制御部４２は、フォーカスレンズ１１を駆動してＡＦ評価値を取得するためのＡＦスキャン動作を行う。このＡＦスキャン動作において、ＡＦ制御部４２は、ＡＦ評価値を取得すべくフォーカスレンズ１１を駆動する駆動範囲及び、その駆動範囲の中でＡＦ評価値を取得する回数であるスキャン回数を決定する。そして、駆動範囲及びスキャン回数を基に駆動周波数指令値ｆｃｍｄを算出し、これを１−２相駆動換算のパルスレートとして駆動周波数制御部４６へ出力する。
【００４８】
また、ＡＦ制御部４２は、フォーカスレンズ１１を駆動してＡＦ評価値を取得するＡＦスキャン動作ではなく、単にフォーカスレンズ１１を駆動する場合には、カメラ装置１００の動作状況に応じた駆動周波数を駆動周波数指令値ｆｃｍｄとして出力する。
【００４９】
４６は駆動周波数制御部であり、ＡＦ制御部４２から入力される駆動周波数指令値ｆｃｍｄに応じた駆動周波数をもつパルス信号を生成してドライブ部１０２に出力する。
【００５０】
ドライブ部１０２は、駆動周波数制御部４６から出力されたパルス信号に基づいて、フォーカスレンズ１１と連動するステッピングモータを駆動する。このステッピングモータは、電気角を５１２分割したマイクロステップで動作してフォーカスレンズ１１を駆動する。
【００５１】
駆動周波数制御部４６については、図２を参照して詳しく後述する。
【００５２】
４４は、ズームレンズ１０のズーミングを制御するズーム制御部である。４８はフラッシュ部であり、ＡＦ補助光の投光機能、フラッシュ調光機能も有する。
【００５３】
露光制御部４０およびＡＦ制御部４２はＴＴＬ方式を用いて制御される。システム制御回路５０が、画像データに対して画像処理回路２０で演算することによって得られた演算結果に基づき、露光制御部４０およびＡＦ制御部４２の制御を行う。
【００５４】
５０は、カメラ装置１００全体を制御するシステム制御回路である。５２は、システム制御回路５０が動作する際に必要な定数、変数、プログラム等を記憶するメモリである。
【００５５】
５４は、液晶表示装置やスピーカー等の表示部であり、システム制御回路５０でのプログラムの実行に応じて、文字、画像、音声等を用いてシステム制御回路５０の動作状態やメッセージ等を表示する。表示部５４は、カメラ装置１００の操作部近辺の視認し易い位置に単数または複数個所設置され、例えばＬＣＤやＬＥＤ、発音素子等の組み合わせにより構成される。
【００５６】
また、表示部５４は、その一部の機能が光学ファインダ１０４内に設置される。
【００５７】
表示部５４の表示内容のうち、ＬＣＤ等により表示するものとしては、シングルショット／連写撮影表示、セルフタイマー表示、圧縮率表示、記録画素数表示、記録枚数表示、残撮影可能枚数表示、シャッタスピード表示、絞り値表示、露出補正表示がある。さらに、フラッシュ表示、赤目緩和表示、マクロ撮影表示、ブザー設定表示、時計用電池残量表示、電池残量表示、エラー表示、複数桁の数字による情報表示、記録媒体１２０の着脱状態表示、通信Ｉ／Ｆ動作表示、日付・時刻表示等がある。
【００５８】
また、表示部５４の表示内容のうち、光学ファインダ１０４内に表示するものとしては、合焦表示、手振れ警告表示、フラッシュ充電表示、シャッタスピード表示、絞り値表示、露出補正表示等がある。
【００５９】
５６は、電気的に消去・記録可能な不揮発性メモリであり、例えばＥＥＰＲＯＭ等が用いられる。
【００６０】
６０、６２、６４、６６、６８及び７０は、システム制御回路５０へ各種の動作指示を入力するための操作手段であり、スイッチやダイアル、タッチパネル、視線検知によるポインティングデバイス、音声認識装置等の単数または複数の組み合わせで構成される。
【００６１】
ここで、これらの操作手段の具体的な説明を行う。
【００６２】
６０はモードダイアルスイッチであり、電源オフモード、自動撮影モード、撮影モード、パノラマ撮影モード、再生モード、マルチ画面再生・消去モード、ＰＣ接続モード等の各機能モードを切り替え設定するためのものである。
【００６３】
６２はシャッタスイッチＳＷ１であり、不図示のシャッタボタンの半押しでＯＮとなり、ＡＦ（オートフォーカス）処理、ＡＥ（自動露出）処理、ＡＷＢ（オートホワイトバランス）処理、ＥＦ（フラッシュプリ発光）処理等の動作開始が指示される。
【００６４】
６４はシャッタスイッチＳＷ２であり、シャッタボタンの全押しでＯＮとなり、露光処理、現像処理、記録処理といった一連の処理の動作開始が指示される。なお、露光処理は、撮像素子１４から出力された画像データをＡ／Ｄ変換器１６、メモリ制御回路２２を介してメモリ３０に書き込む処理である。また現像処理は、画像処理回路２０やメモリ制御回路２２で行われる演算を用いた処理である。記録処理は、メモリ３０から画像データを読み出し、圧縮・伸長回路３２で圧縮を行い、記録媒体１２０に画像データを書き込む処理である。
【００６５】
６６は画像表示ＯＮ／ＯＦＦスイッチであり、画像表示部２８のＯＮ／ＯＦＦを設定するためのものである。画像表示部２８をＯＦＦに設定すると、画像表示部２８への電流供給が遮断され、省電力を図ることが可能となる。なお、画像表示部２８がＯＦＦされていても、光学ファインダ１０４を用いて撮影を行うことが可能である。
【００６６】
６８はＡＦ補正ＯＮ／ＯＦＦスイッチである。
【００６７】
７０は、各種ボタンやタッチパネル等からなる操作部であり、メニューボタン、セットボタン、マクロボタン、マルチ画面再生改ページボタン、フラッシュ設定ボタン、単写／連写／セルフタイマー切り替えボタン等がある。さらに、メニュー移動＋（プラス）ボタン、メニュー移動−（マイナス）ボタン、再生画像移動＋（プラス）ボタン、再生画像−（マイナス）ボタン、撮影画質選択ボタン、露出補正ボタン、日付／時間設定ボタン等がある。
【００６８】
８０は電源制御部であり、電池検出回路、ＤＣ−ＤＣコンバータ、通電するブロックを切り替えるスイッチ回路等により構成される。電源制御部８０では、電池の装着の有無、電池の種類、電池残量の検出を行い、検出結果及びシステム制御回路５０からの指示に基づいてＤＣ−ＤＣコンバータを制御し、必要な電圧を必要な期間、記録媒体１２０を含む各部へ供給する。
【００６９】
８２，８４はコネクタ、８６は電源部である。電源部８６は、アルカリ電池やリチウム電池等の一次電池や、ＮｉＣｄ電池やＮｉＭＨ電池、Ｌｉ電池等の二次電池、ＡＣアダプター等からなる。
【００７０】
９０は記録媒体１２０とのインタフェース（Ｉ／Ｆ）、９２は記録媒体１２０と接続を行うコネクタである。９８は記録媒体着脱検知部であり、コネクタ９２に対して記録媒体１２０が装着されているか否かを検知する。
【００７１】
１０４は光学ファインダであり、画像表示部２８による電子ファインダ機能を使用すること無しに、この光学ファインダ１０４のみを用いて撮影を行うことを可能にする。また、光学ファインダ１０４内には、表示部５４の一部の機能、例えば、合焦表示、手振れ警告表示、フラッシュ充電表示、シャッタスピード表示、絞り値表示、露出補正表示などが設置されている。
【００７２】
１１０は通信部であり、ＲＳ２３２ＣやＵＳＢ、ＩＥＥＥ１３９４、Ｐ１２８４、ＳＣＳＩ、モデム、ＬＡＮ、無線通信等の各種通信機能を有する。
【００７３】
１１２は、通信部１１０によりカメラ装置１００を他の機器と接続するコネクタ、または無線通信の場合はアンテナである。
【００７４】
１２０は、メモリカードやハードディスク等の記録媒体である。記録媒体１２０は、半導体メモリや磁気ディスク等から構成される記録部１２２、カメラ装置１００とのインタフェース１２４、カメラ装置１００と接続を行うコネクタ１２６を備えている。
【００７５】
図２は、図１に示す駆動周波数制御部４６の詳細な構成を示すブロック図である。
【００７６】
駆動周波数制御部４６は、駆動周波数平均化パラメータ決定部２００、第１の周波数発生部２０２、第２の周波数発生部２０４、駆動周波数平均化部２０６、第１の駆動周波数選択部２０８、第２の駆動周波数選択部２１０によって構成される。
【００７７】
駆動周波数平均化パラメータ決定部２００は、ＡＦ制御部４２から入力される駆動周波数指令値を基に、第１の駆動周波数ｆ１を持ったパルス信号を発生するための設定値である第１のカウント数ＣＮＴ１を算出し、第１の周波数発生部２０２へ出力する。また、駆動周波数の平均化処理を行う必要があるか否かを判定し、駆動周波数の平均化処理を行う必要があるならば、第２の駆動周波数ｆ２を持ったパルス信号を発生するための設定値である第２のカウント数ＣＮＴ２を算出し、第２の周波数発生部２０４へ出力する。さらに、駆動周波数の平均化処理を行う上で必要となる平均化ループカウント数ｍと第１のパルス数ｎとを算出し、駆動周波数平均化部２０６へ出力する。
【００７８】
第１の周波数発生部２０２では、カウンタ（Ａ）２０２ａが基本クロックのカウントを開始すると同時に、駆動周波数平均化部２０６への出力信号をＨレベルとする。つぎに、比較器２０２ｂが、カウンタ（Ａ）２０２ａのカウント値を、駆動周波数平均化パラメータ決定部２００から入力された第１のカウント数ＣＮＴ１と比較する。そしてカウント値が第１のカウント数ＣＮＴ１の半分の値に一致したときに、駆動周波数平均化部２０６への出力信号をＬレベルとする。さらに、カウント値が第１のカウント数ＣＮＴ１に一致したときに、駆動周波数平均化部２０６への出力信号をＨレベルとすると同時に、カウント値をゼロクリアし、カウンタ（Ａ）２０２ａが基本クロックのカウントを再開する。これを繰り返すことにより、第１の周波数発生部２０２は、第１のカウント数ＣＮＴ１に応じた第１の駆動周波数ｆ１をもったパルス信号を駆動周波数平均化部２０６へ出力する。
【００７９】
同様に、第２の周波数発生部２０４では、カウンタ（Ｂ）２０４ａが基本クロックのカウントを開始すると同時に、駆動周波数平均化部２０６への出力信号をＨレベルとする。つぎに、比較器２０４ｂが、カウンタ（Ｂ）２０４ａのカウント値を、駆動周波数平均化パラメータ決定部２００から入力された第２のカウント数ＣＮＴ２と比較する。そしてカウント値が第２のカウント数ＣＮＴ２の半分の値に一致したときに、駆動周波数平均化部２０６への出力信号をＬレベルとする。さらに、カウント値が第２のカウント数ＣＮＴ２に一致したときに、駆動周波数平均化部２０６への出力信号をＨレベルとすると同時に、カウント値をゼロクリアし、カウンタ（Ｂ）２０４ａが基本クロックのカウントを再開する。これを繰り返すことにより、第２の周波数発生部２０４は、第２のカウント数ＣＮＴ２に応じた第２の駆動周波数ｆ２をもったパルス信号を駆動周波数平均化部２０６へ出力する。
【００８０】
駆動周波数平均化部２０６は、第１の周波数発生部２０２より入力された第１の駆動周波数ｆ１をもったパルス信号の各パルスを、駆動周波数平均化パラメータ決定部２００からの第１のパルス数ｎだけカウントして出力する。その後続けて、第２の周波数発生部２０４より入力された第２の駆動周波数ｆ２をもったパルス信号の各パルスを、駆動周波数平均化パラメータ決定部２００からの平均化ループカウント数ｍから第１のパルス数ｎを差し引いて得られる数（ｍ−ｎ）だけカウントして出力する。
【００８１】
これを繰り返すことにより、駆動周波数平均化部２０６は、第１の駆動周波数ｆ１をもったパルス信号と第２の駆動周波数ｆ２をもったパルス信号とが交互に切り替わる平均化周波数パルス信号を生成して第１の駆動周波数選択部２０８へ出力する。
【００８２】
なお、駆動周波数平均化部２０６はレートマルチプライヤで構成される。
【００８３】
図３は、駆動周波数平均化部２０６で生成され、第１の駆動周波数選択部２０８へ出力される平均化周波数パルス信号であって、第１の駆動周波数ｆ１をもったパルス信号と第２の駆動周波数ｆ２をもったパルス信号とが交互に切り替わる平均化周波数パルス信号を示すタイミングチャートである。
【００８４】
図２に戻って、第１の駆動周波数選択部２０８は、駆動周波数平均化パラメータ決定部２００より入力された平均化フラグに「１」がセットされていたならば、駆動周波数平均化部２０６から入力された平均化周波数パルス信号を第２の駆動周波数選択部２１０へ出力する。一方、駆動周波数平均化パラメータ決定部２００より入力された平均化フラグに「０」がセットされていたならば、第１の周波数発生部２０２から出力されたパルス信号を第２の駆動周波数選択部２１０へ出力する。
【００８５】
第２の駆動周波数選択部２１０は、ＡＦ制御部４２より入力されたスキャンフラグに「１」がセットされていたならば、第１の駆動周波数選択部２０８から出力されたパルス信号をドライブ部１０２へ出力する。一方、ＡＦ制御部４２より入力されたスキャンフラグに「０」がセットされていたならば、第１の周波数発生部２０２から出力されたパルス信号をドライブ部１０２へ出力する。
【００８６】
図４及び図５は、図１に示すカメラ装置１００の動作の手順を示すフローチャートである。
【００８７】
電池交換等の電源投入により、システム制御回路５０はフラグや制御変数等を初期化し（Ｓ１０１）、画像表示部２８の画像表示をＯＦＦ状態に初期設定する（Ｓ１０２）。
【００８８】
システム制御回路５０は、モードダイアルスイッチ６０の設定位置を検出し（Ｓ１０３）、モードダイアルスイッチ６０が電源ＯＦＦに設定されていたならば、ステップＳ１０５へ進む。モードダイアルスイッチ６０が撮影モードに設定されていたならば、ステップＳ１０６へ進む。モードダイアルスイッチ６０がその他のモードに設定されていたならば、ステップＳ１０４へ進む。
【００８９】
ステップＳ１０５では、各表示部の表示を終了状態に変更し、レンズ保護部のバリア（図示せず）を閉じて撮像部を保護し、フラグや制御変数等を含む所定のパラメータや設定値、設定モードを不揮発性メモリ５６に記録する。また、電源制御部８０により、画像表示部２８を含むカメラ装置１００各部の不要な電源を遮断する等の所定の終了処理を行う。その後、ステップＳ１０３に戻る。
【００９０】
ステップＳ１０４では、システム制御回路５０が、選択されたモードに応じた処理を実行し、該処理を終えたならばステップＳ１０３に戻る。
【００９１】
ステップＳ１０６では、システム制御回路５０が、電源制御部８０を介して、電池等により構成される電源８６の残容量や動作情況を調べ、カメラ装置１００の動作に支障がないか否かを判断する。支障がないならばステップＳ１０７に進み、支障があるならばステップＳ１０８に進む。
【００９２】
ステップＳ１０８では、システム制御回路５０が、表示部５４を介して画像や音声により、ユーザに所定の警告表示を行う。その後、ステップＳ１０３に戻る。
【００９３】
ステップＳ１０７では、システム制御回路５０が、記録媒体１２０の動作状態に関して、カメラ装置１００による画像データの記録再生動作に対して支障がないか否かを判断する。支障がないならばステップＳ１０９へ進み、支障があるならばステップＳ１０８へ進む。
【００９４】
ステップＳ１０９では、システム制御回路５０が、表示部５４を介して画像や音声により、カメラ装置１００の各種設定状態の表示を行う。なお、画像表示部２８の画像表示がＯＮであったならば、画像表示部２８も用いて画像や音声により、カメラ装置１００の各種設定状態の表示を行う。
【００９５】
続けて、撮像した画像を逐次表示するスルー表示状態に設定して（Ｓ１１６）、ステップＳ１１９に進む。
【００９６】
スルー表示状態においては、撮像素子１４、Ａ／Ｄ変換器１６、画像処理回路２０、メモリ制御回路２２を介して、画像表示メモリ２４に逐次書き込まれた画像データが即座に、メモリ制御回路２２、Ｄ／Ａ変換器２６を介して画像表示部２８に送られる。これにより、撮影中の画像が画像表示部２８に逐次表示され、電子ファインダ機能が実現される。
【００９７】
ステップＳ１１９では、シャッタスイッチ（ＳＷ１）６２がＯＮであるか否かを判別する。ＯＮであればステップＳ１２２へ進み、ＯＦＦであればステップＳ１０３へ戻る。
【００９８】
ステップＳ１２２では、システム制御回路５０が、測距処理を行ってズームレンズ１０の焦点を被写体に合わせ、また測光処理を行って絞り値及びシャッタ開放時間を決定する。測光処理においては、必要であればフラッシュ発光の設定も行う。
【００９９】
このステップＳ１２２における測距・測光処理については、図６を参照して詳しく後述する。
【０１００】
次のステップＳ１２７では、シャッタスイッチ（ＳＷ２）６４がＯＮであるか否かを判別する。ＯＮであればステップＳ１２９へ進み、ＯＦＦであればステップＳ１２８へ進む。
【０１０１】
ステップＳ１２８では、シャッタスイッチ（ＳＷ１）６２がＯＮであるか否かを判別する。ＯＮであればステップＳ１２７へ戻り、ＯＦＦであればステップＳ１０３へ戻る。
【０１０２】
ステップＳ１２９では、システム制御回路５０が、露光処理及び現像処理からなる撮影処理を実行する。露光処理では、撮像素子１４、Ａ／Ｄ変換器１６、画像処理回路２０、メモリ制御回路２２を介して、または画像処理回路２０だけは介さず、メモリ３０に画像データを書き込む。また、現像処理では、メモリ制御回路２２、また必要に応じて画像処理回路２０を用いて、メモリ３０に書き込まれた画像データを読み出して各種処理を行う。
【０１０３】
このステップＳ１２９における撮影処理については、図７を参照して詳しく後述する。
【０１０４】
次のステップＳ１３４では、システム制御回路５０が記録処理を実行する。すなわち、メモリ３０に書き込まれた画像データを読み出して、メモリ制御回路２２、また必要に応じて画像処理回路２０を用いて、各種画像処理を行う。さらに、圧縮・伸長回路３２を用いて、設定されたモードに応じた画像圧縮処理を行い、その後、記録媒体１２０へ画像データの書き込みを行う。
【０１０５】
このステップＳ１３４における記録処理については、図８を参照して詳しく後述する。
【０１０６】
次のステップＳ１３５では、シャッタスイッチ（ＳＷ２）６４がＯＮであるか否かを判別する。ＯＮであればステップＳ１３６へ進み、ＯＦＦであればステップＳ１３７へ進む。
【０１０７】
ステップＳ１３６では、シャッタスイッチ（ＳＷ２）６４のＯＮ状態が継続しているので、システム制御回路５０は、システム制御回路５０の内部メモリまたはメモリ５２に記憶されている連写フラグの状態を判断する。連写フラグが設定されていたならば、連続して撮影を行うためにステップＳ１２９へ戻る。一方、連写フラグが設定されていないならばステップＳ１３５へ戻り、シャッタスイッチ（ＳＷ２）６４がＯＦＦになるまで、ステップＳ１３５，Ｓ１３６の処理を繰り返す。
【０１０８】
ステップＳ１３７では、所定のミニマムレビュー時間が経過するまで（Ｓ１３７でＮＯ）撮影画像を画像表示部２８に表示し続ける。所定のミニマムレビュー時間が経過すると（Ｓ１３７でＹＥＳ）ステップＳ１３８に進む。
【０１０９】
ステップＳ１３８では、システム制御回路５０が、画像表示フラグがＯＮであるか否かを判別する。画像表示フラグがＯＮであるならばステップＳ１３９へ進み、画像表示フラグがＯＦＦであるならばステップＳ１４０へ進む。
【０１１０】
ステップＳ１３９では、システム制御回路５０が、画像表示部２８の表示状態をスルー表示状態に設定して、ステップＳ１４１へ進む。
【０１１１】
ステップＳ１４０では、システム制御回路５０が画像表示部２８をＯＦＦにして、ステップＳ１４１へ進む。
【０１１２】
ステップＳ１４１では、システム制御回路５０が、シャッタスイッチ（ＳＷ１）６２がＯＮであるか否かを判別する。ＯＮであればステップＳ１２７へ戻り、ＯＦＦであればステップＳ１０３へ戻る。
【０１１３】
図６は、図５のステップＳ１２２における測距・測光処理の詳細な手順を示すフローチャートである。
【０１１４】
システム制御回路５０は、シャッタスイッチ（ＳＷ１）６２のＯＮに伴い、撮像素子１４から電荷信号を読み出し、Ａ／Ｄ変換器１６を介して画像処理回路２０に撮影画像データを逐次読み込む（Ｓ２０１）。この逐次読み込まれた画像データを用いて、画像処理回路２０は、ＴＴＬ方式のＡＥ（自動露出）処理、ＥＦ（フラッシュプリ発光）処理、ＡＦ（自動焦点調節）処理に先立つ所定の演算を行う。
【０１１５】
なお、ここでの演算では、撮影画像データの全画素のうち、必要に応じて特定の部分をそれぞれ切り取って抽出し、これを演算に用いている。これにより、ＴＴＬ方式のＡＥ、ＥＦ、ＡＷＢ、ＡＦの各処理において、中央重点モード、平均モード、評価モード等のモード毎に最適な演算結果を利用することが可能となる。
【０１１６】
つぎに、画像処理回路２０は、露出が適正であるか否かを判別し（Ｓ２０２）、適正であれば、測定データ及び／または設定パラメータをシステム制御回路５０の内部メモリまたはメモリ５２に記憶し、ステップＳ２０６へ進む。一方、露出が適正でなければステップＳ２０３へ進む。
【０１１７】
ステップＳ２０３では、システム制御回路５０が、画像処理回路２０での演算結果に基づいて、露光制御部４０を用いてＡＥ制御を行う。
【０１１８】
つぎに、システム制御回路５０は、ＡＥ制御で得られた測定データを用いて、フラッシュ発光が必要か否かを判断し（Ｓ２０４）、フラッシュ発光が必要ならばステップＳ２０５へ進み、不要ならばステップＳ２０１へ戻る。
【０１１９】
ステップＳ２０５では、フラッシュフラグをセットし、フラッシュ部４８を充電する。その後、ステップＳ２０１へ戻る。
【０１２０】
ステップＳ２０６では、システム制御回路５０が、ホワイトバランスが適正であるか否かを判別し、適正であれば、測定データ及び／または設定パラメータをシステム制御回路５０の内部メモリまたはメモリ５２に記憶し、ステップＳ２０８へ進む。一方、ホワイトバランスが適正でなければステップＳ２０７へ進む。
【０１２１】
ステップＳ２０７では、システム制御回路５０が、画像処理回路２０での演算結果及びＡＥ制御で得られた測定データに基づいて、画像処理回路２０を用いて、色処理のパラメータを調節してＡＷＢ制御を行う。その後、ステップＳ２０１へ戻る。
【０１２２】
ステップＳ２０８では、システム制御回路５０が、測距（ＡＦ）が適正、すなわち合焦であるか否かを判別する。合焦であるならば、測定データ及びまたは設定パラメータをシステム制御回路５０の内部メモリまたはメモリ５２に記憶し、ステップＳ１２７（図５）に戻る。一方、合焦でなければステップＳ２０９へ進む。
【０１２３】
ステップＳ２０９では、システム制御回路５０が、ＡＥ制御及びＡＷＢ制御で得られた測定データに基づいて、ＡＦ制御部４２を用いてＡＦ制御処理を行う。その後、ステップＳ２０１へ戻る。
【０１２４】
このステップＳ２０９におけるＡＦ制御処理については、図９及び図１０を参照して詳しく後述する。
【０１２５】
図９及び図１０は、図６のＳ２０９におけるＡＦ制御処理の詳細な手順を示すフローチャートである。
【０１２６】
まず、ＡＦ制御部４２は、ＡＦスキャン動作を行うか否かを示すスキャンフラグを、ＡＦスキャン動作を行わないことを表す「０」にセットする（Ｓ６０１）。このＡＦスキャン動作は、フォーカスレンズ１１を駆動して、画像処理により得られるＡＦ評価値を取得する動作である。
【０１２７】
次に、ＡＦスキャン動作におけるフォーカスレンズ１１の駆動範囲であるスキャン範囲を決定する（Ｓ６０２）。続けて、このスキャン範囲の中でＡＦ評価値を取得する回数であるスキャン回数を決定する（Ｓ６０３）と共に、フォーカスレンズ１１をスキャン開始位置へ移動するため駆動周波数である第２の駆動周波数指令値を決定する（Ｓ６０４）。ここではスキャンフラグに０がセットされており、この場合、ＡＦ制御部４２が、第２の駆動周波数指令値を駆動周波数平均化パラメータ決定部２００へ出力する。また、ＡＦ制御部４２は、駆動周波数制御部４６及びドライブ部１０２に対して駆動開始信号を出力し、フォーカスレンズ１１がスキャン開始位置へ移動される（Ｓ６０５）。
【０１２８】
一方で、ステップＳ６０２でスキャン範囲、ステップＳ６０３でスキャン回数が決定されたならば、ＡＦ制御部４２は、下記式（３０１）に基づき、第１の駆動周波数指令値を決定する（Ｓ６０６）。
【０１２９】
第１の駆動周波数指令値＝スキャン範囲／（スキャン回数−１）／ＣＣＤ垂直転送周期  ・・・（３０１）
ここでＣＣＤ垂直転送周期は、撮像素子１４の垂直転送周期である。
【０１３０】
つぎに、フォーカスレンズ１１がスキャン開始位置に到達するのを待つ（Ｓ６０７でＮＯ）。フォーカスレンズ１１がスキャン開始位置に到達したら（Ｓ６０７でＹＥＳ）、スキャンフラグを、ＡＦスキャン動作を行うことを表す「１」にセットして（Ｓ６０８）、ステップＳ６０９へ進み、平均化パラメータ算出処理を実行する。この平均化パラメータ算出処理については、図１１を参照して詳しく後述する。
【０１３１】
ステップＳ６０９の平均化パラメータ算出処理を終えると、撮像素子１４の垂直転送信号の入力を待つ（Ｓ６１１でＮＯ）。垂直転送信号が入力されると（Ｓ６１１でＹＥＳ）、ディレイ時間として設定された所定時間の経過を待ち（Ｓ６１２）、ＡＦ制御部４２は、画像処理により生成されたＡＦ評価値を取得する（Ｓ６１３）。
【０１３２】
つぎに、スキャン回数の数だけＡＦ評価値を取得したか否かを判別し（Ｓ６１４）、取得していればステップＳ６１５へ進み、まだ取得していなければステップＳ６１１へ戻る。
【０１３３】
ステップＳ６１５では、スキャンフラグを０にセットする。
【０１３４】
その後、ステップＳ６１１〜Ｓ６１４で取得した複数のＡＦ評価値のうちで最大となるＡＦ評価値を選択し、該ＡＦ評価値が取得された位置へフォーカスレンズ１１を移動するための駆動周波数を第２の駆動周波数指令値として決定する（Ｓ６１６）。そして、ＡＦ制御部４２は、駆動周波数制御部４６及びドライブ部１０２に対して駆動開始信号を出力する（Ｓ６１７）。これによって、フォーカスレンズ１１が合焦位置に移動される。
【０１３５】
図１１は、図９のステップＳ６０９における平均化パラメータ算出処理の詳しい手順を示すフローチャートである。
【０１３６】
駆動周波数平均化パラメータ決定部２００は、ＡＦ制御部４２から第１の駆動周波数指令値ｆｃｍｄを設定される（Ｓ５０１）。これに伴い、駆動周波数平均化パラメータ決定部２００は、下記式（２０１）で表す数値を算出する。なおｆｃｌｋは、基本クロックの周波数（１秒間のパルス数）である。
【０１３７】
ｆｃｌｋ／（ｆｃｍｄ×５１２／８）  ・・・（２０１）
この数値は、１−２相駆動換算のパルスレートとして得られた第１の駆動周波数指令値ｆｃｍｄを５１２分割マイクロステップ駆動周波数に変換し、得られた駆動周波数に対応した周期を確保するためにカウントすべき基本クロックのパルス数を表している。上記式（２０１）で算出される数値の小数点以下の値を切り捨てた整数値を求め、これを第１のカウント数ＣＮＴ１として決定する（Ｓ５０２）。この第１のカウント数ＣＮＴ１は、第１の周波数発生部２０２へ出力される。
【０１３８】
さらに、第１のカウント数ＣＮＴ１を受け取った第１の周波数発生部２０２が出力すべきパルス信号の周波数である第１の駆動周波数ｆ１を、下記式（２０２）に基づき算出する（Ｓ５０３）。
【０１３９】
ｆ１＝ｆｃｌｋ／（ＣＮＴ１×５１２／８）  ・・・（２０２）
つぎに、下記式（２０３）に基づき、第１の駆動周波数指令値ｆｃｍｄと第１の駆動周波数ｆ１との差Δｆｎを算出する。
【０１４０】
Δｆｎ＝ｆ１−ｆｃｍｄ  ・・・（２０３）
そして、この差Δｆｎが、所定の値（例えば、０．５ｐｐｓ）以上であるか否かを判別する（Ｓ５０４）。所定の値以上であればステップＳ５０５へ進み、所定の値よりも小さいならばステップＳ５０６へ戻る。
【０１４１】
ステップＳ５０６では、平均化フラグに０をセットし、ステップＳ６１１（図１０）に進む。このように、差Δｆｎが所定の値より小さいときに平均化フラグを０にして、第１の駆動周波数選択部２０８が駆動周波数平均化部２０６からの出力パルス信号を選択しないようにする。これにより、システムの処理負荷を軽減できる。
【０１４２】
ステップＳ５０５では、平均化フラグに１をセットする。さらに、差Δｆｎの値の小数点以下を四捨五入した整数値を、第１のパルス数ｎとして、駆動周波数平均化部２０６へ出力する（Ｓ５０７）。その後、ステップＳ６１１（図１０）に戻る。
【０１４３】
ステップＳ５０２の実行の後、ステップＳ５０３の実行と並行して、下記式（２０４）に基づき、第２のカウント数ＣＮＴ２を算出し、第２の周波数発生部２０４へ出力する（Ｓ５０８）。
【０１４４】
ＣＮＴ２＝ＣＮＴ１＋１  ・・・（２０４）
さらに、第２のカウント数ＣＮＴ２を受け取った第２の周波数発生部２０４が出力すべきパルス信号の周波数である第２の駆動周波数ｆ２を、下記式（２０５）に基づき算出する（Ｓ５０９）。
【０１４５】
ｆ２＝ｆｃｌｋ／（ＣＮＴ２×５１２／８）  ・・・（２０５）
つぎに、下記式（２０６）に基づき、第２の駆動周波数ｆ２と第１の駆動周波数ｆ１との差Δｆｍを算出する。
【０１４６】
Δｆｍ＝ｆ１−ｆ２  ・・・（２０６）
そして、予め設定された許容駆動周波数分解能Ｒｅｓを用いて、下記式（２０７）で表す数値を算出する。
【０１４７】
Δｆｍ／Ｒｅｓ  ・・・（２０７）
この数値の小数点以下を四捨五入して得られる整数値を、平均化ループカウント数ｍとして、駆動周波数平均化部２０６へ出力する（Ｓ５１０）。その後、ステップＳ６１１（図１０）に戻る。
【０１４８】
なお、駆動周波数平均化パラメータ決定部２００は、平均化ループカウント数ｍを所定値よりも小さい値に保持するようにする。これによって、駆動音が可聴帯域に入って騒音となることを防止できる。
【０１４９】
図７は、図５のステップＳ１２９における撮影処理の詳細な手順を示すフローチャートである。
【０１５０】
システム制御回路５０は、システム制御回路５０の内部メモリまたはメモリ５２に記憶された測光データに従い、露光制御部４０によって、絞り機能を有するシャッタ１２を絞り値に応じて開放して（Ｓ３０１）撮像素子１４を露光する（Ｓ３０２）。
【０１５１】
フラッシュフラグに基づきフラッシュ発光が必要か否かを判断し（Ｓ３０３）、必要な場合は（Ｓ３０３でＹＥＳ）フラッシュ部４８に発光させる（Ｓ３０４）。
【０１５２】
システム制御回路５０は、測光データに従って撮像素子１４の露光終了を待ち（Ｓ３０５でＮＯ）、露光が終了すると（Ｓ３０５でＹＥＳ）シャッタ１２を閉じる（Ｓ３０６）。そして、撮像素子１４から電荷信号を読み出し、Ａ／Ｄ変換器１６、画像処理回路２０、メモリ制御回路２２を介して、または画像処理回路２０だけは介さず、メモリ３０に撮影画像データを書き込む（Ｓ３０７）。
【０１５３】
設定された撮影モードに基づいて、フレーム処理を行う必要があるか否かを判別し（Ｓ３０８）、必要があるならばステップＳ３０９へ進み、必要がないならばステップＳ３１１へ進む。
【０１５４】
ステップＳ３０９では、システム制御回路５０は、メモリ制御回路２２、また必要に応じて画像処理回路２０を用いて、メモリ３０に書き込まれた画像データを読み出して垂直加算処理（Ｓ３０９）や、色処理（Ｓ３１０）を順次行う。その後、処理を終えた画像データをメモリ３０に書き込む。
【０１５５】
ステップＳ３１１では、システム制御回路５０が、メモリ３０から画像データを読み出し、メモリ制御回路２２を介して画像表示メモリ２４に表示画像データの転送を行う。
【０１５６】
この一連の処理を終えたならば、図５のステップ１３４へ戻る。
【０１５７】
図８は、図５のステップＳ１３４における記録処理の詳細な手順を示すフローチャートである。
【０１５８】
システム制御回路５０は、メモリ制御回路２２、また必要に応じて画像処理回路２０を用いて、メモリ３０に書き込まれた撮影画像データを読み出して撮像素子１４の縦横画素比率を１：１に補間する画素正方化処理を行う（Ｓ４０１）。その後、処理を終えた画像データをメモリ３０に書き込む。
【０１５９】
そして、メモリ３０に書き込まれた画像データを読み出して、設定したモードに応じた画像圧縮処理を圧縮・伸長回路３２により行う（Ｓ４０２）。その後、インタフェース９０、コネクタ９２を介して、記録媒体１２０へ圧縮した画像データの書き込みを行う（Ｓ４０３）。
【０１６０】
記録媒体１２０への書き込みが終わったならば、図５のステップＳ１３５へ戻る。
【０１６１】
以上のようにして、本実施の形態では、第１の周波数発生部２０２が、基本クロックをカウントすることにより第１の周波数をもったパルス信号を駆動周波数平均化部２０６へ出力する。また、第２の周波数発生部２０４が、同一の基本クロックをカウントすることにより第１の周波数とは異なる第２の駆動周波数ｆ２をもったパルス信号を駆動周波数平均化部２０６へ出力する。これらを受け取った駆動周波数平均化部２０６は、図３に示すように、第１の周波数をもったパルス信号を第１のパルス数ｎだけ出力した後、第２の駆動周波数ｆ２をもったパルス信号を第２のパルス数（ｍ−ｎ）だけ（ｍは平均化ループカウント数）出力する。そして、この出力動作を繰り返す。
【０１６２】
すなわち、駆動周波数平均化部２０６は、第１の駆動周波数ｆ１をもったパルス信号をｎパルスだけ出力し、続けて第２の駆動周波数ｆ２をもったパルス信号を（ｍ−ｎ）パルスだけ出力するということを繰り返す。これにより、長いスパンで見たとき、駆動周波数平均化部２０６は、下記式（２０８）で算出される周波数のパルス信号を出力していることなる。
【０１６３】
（ｆ１×ｎ＋ｆ２×（ｍ−ｎ））／ｍ  ・・・（２０８）
特に、ステッピングモータのように、機械的な応答が第１の駆動周波数ｆ１と第２の駆動周波数ｆ２とを切り換える周期よりも充分長く、遅いものの制御においては、ほぼ、上記式（２０８）で算出される駆動周波数で駆動したものと等しいものとみなせる。
【０１６４】
したがって、ＡＦスキャン動作時に、ＡＦアルゴリズム上、最適と判断された駆動周波数指令値と、実際に実現できる駆動周波数との差異を、許容範囲以内のズレに抑えることができる。これにより、ＡＦスキャン動作における動作時間の増大に伴う合焦時間の増大を防ぐことができ、ＡＦの高速化を図ることができる。
【０１６５】
なお、上記の実施の形態では、駆動周波数平均化パラメータ決定部２００が平均化ループカウント数ｍを駆動周波数平均化部２０６へ出力するようにしている。これに代わって、駆動周波数平均化パラメータ決定部２００が、平均化ループカウント数ｍから第１のパル数ｎを減じて得られる数に相当する第２のパルス数（ｍ−ｎ）を駆動周波数平均化部２０６へ出力するようにしてもよい。
【０１６６】
また、上記の実施の形態では、カメラ装置１００に装着されたフォーカスレンズを駆動するステッピングモータを例に挙げて説明したが、本発明は、ステッピングモータが駆動する対象を限定するものではない。
【０１６７】
〔他の実施の形態〕
また、本発明の目的は、前述した実施の形態の機能を実現するソフトウェアのプログラムコードを記憶した記憶媒体を、システム或いは装置に供給し、そのシステム或いは装置のコンピュータ（またはＣＰＵやＭＰＵ等）が記憶媒体に格納されたプログラムコードを読み出し実行することによっても達成される。
【０１６８】
この場合、記憶媒体から読み出されたプログラムコード自体が前述した実施の形態の機能を実現することになり、そのプログラムコード及び該プログラムコードを記憶した記憶媒体は本発明を構成することになる。
【０１６９】
また、プログラムコードを供給するための記憶媒体としては、例えば、フロッピー（登録商標）ディスク、ハードディスク、光磁気ディスク、ＣＤ−ＲＯＭ、ＣＤ−Ｒ、ＣＤ−ＲＷ、ＤＶＤ−ＲＯＭ、ＤＶＤ−ＲＡＭ、ＤＶＤ−ＲＷ、ＤＶＤ＋ＲＷ等の光ディスク、磁気テープ、不揮発性のメモリカード、ＲＯＭ等を用いることができる。または、プログラムコードをネットワークを介してダウンロードしてもよい。
【０１７０】
また、コンピュータが読み出したプログラムコードを実行することにより、前述した実施の形態の機能が実現されるだけではなく、そのプログラムコードの指示に基づき、コンピュータ上で稼動しているＯＳ（オペレーティングシステム）等が実際の処理の一部または全部を行い、その処理によって前述した実施の形態の機能が実現される場合も含まれる。
【０１７１】
さらに、記憶媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれた後、そのプログラムコードの指示に基づき、その拡張機能を拡張ボードや拡張ユニットに備わるＣＰＵ等が実際の処理の一部または全部を行い、その処理によって前述した実施の形態の機能が実現される場合も含まれる。
【図面の簡単な説明】
【０１７２】
【図１】本発明の一実施の形態に係るステッピングモータ駆動装置が搭載されたカメラ装置の構成を示すブロック図である。
【図２】図１に示す駆動周波数制御部の詳細な構成を示すブロック図である。
【図３】駆動周波数平均化部で生成され、第１の駆動周波数選択部へ出力される平均化周波数パルス信号であって、第１の駆動周波数ｆ１をもったパルス信号と第２の駆動周波数ｆ２をもったパルス信号とが交互に切り替わる平均化周波数パルス信号を示すタイミングチャートである。
【図４】図１に示すカメラ装置の動作の手順を示すフローチャート（１／２）である。
【図５】図１に示すカメラ装置の動作の手順を示すフローチャート（２／２）である。
【図６】図５のステップＳ１２２における測距・測光処理の詳細な手順を示すフローチャートである。
【図７】図５のステップＳ１２９における撮影処理の詳細な手順を示すフローチャートである。
【図８】図５のステップＳ１３４における記録処理の詳細な手順を示すフローチャートである。
【図９】図６のＳ２０９におけるＡＦ制御処理の詳細な手順を示すフローチャート（１／２）である。
【図１０】図６のＳ２０９におけるＡＦ制御処理の詳細な手順を示すフローチャート（２／２）である。
【図１１】図９のステップＳ６０９における平均化パラメータ算出処理の詳しい手順を示すフローチャートである。
【図１２】基本クロックと、該基本クロックに基づき生成される駆動周波数ｆ１，ｆ２とを示す図である。
【図１３】所定のスキャン範囲においてスキャン回数を６回とし、ＡＦ評価値を取得しながらスキャン動作を、このスキャン回数だけ行う場合における各スキャン回のスキャン範囲を示す図である。
【符号の説明】
【０１７３】
４２  ＡＦ制御部
４６  駆動周波数制御部
１０２  ドライブ部（駆動手段）
２００  駆動周波数平均化パラメータ決定部
２０２  第１の周波数発生部（第１の周波数発生手段）
２０４  第２の周波数発生部（第２の周波数発生手段）
２０６  駆動周波数平均化部（駆動パルス出力手段）
２０８  第１の駆動周波数選択部
２１０  第２の駆動周波数選択部
【図１】
2008017659.tif 000003
【図２】
2008017659.tif 000004
【図３】
2008017659.tif 000005
【図４】
2008017659.tif 000006
【図５】
2008017659.tif 000007
【図６】
2008017659.tif 000008
【図７】
2008017659.tif 000009
【図８】
2008017659.tif 000010
【図９】
2008017659.tif 000011
【図１０】
2008017659.tif 000012
【図１１】
2008017659.tif 000013
【図１２】
2008017659.tif 000014
【図１３】
2008017659.tif 000015