(57)【要約】【課題】パルス生成データの柔軟な設計を可能とし、少ないメモリ容量で多種多様な駆動パルスの生成を可能にする。【解決手段】駆動パルスの初期状態を表すステータスデータと、ステータスデータに基づく駆動パルスを出力してからそれを変化させるまでの時間を指定した時間指定データとを組み合わせたＣＬＫ＿ＭＥＭコマンド（２）が格納されるメモリ４６，４７と、時間指定データに基づいてカウントされる駆動パルスの変化回数に応じて出力中の駆動パルスの反転タイミングを指定した反転タイミング指定データが格納されるメモリ４４と、ＣＬＫ＿ＭＥＭコマンド（２）が指定された場合、ステータスデータに基づく駆動パルスを撮像素子１１に出力し、その後は、時間指定データに基づいて駆動パルスの変化回数をカウントし、変化回数と反転タイミング指定データとに基づいて、出力中の駆動パルスの一部を反転させる制御を行う出力制御部４９とを備える。【選択図】図３
2008187232.tif 000002
【特許請求の範囲】
【請求項１】
固体撮像素子を駆動するための駆動パルスを生成して出力する固体撮像素子駆動装置であって、
前記固体撮像素子に出力すべき駆動パルスの初期状態が論理値で表された初期ステータスデータと、前記初期ステータスデータに基づく駆動パルスを出力してから前記駆動パルスを変化させるまでの待ち時間を指定した待ち時間指定データとを組み合わせたコマンドデータが格納されるコマンドデータメモリと、
前記待ち時間指定データに基づいてカウントされる前記駆動パルスの変化回数に応じて出力中の駆動パルスの反転タイミングを指定した反転タイミング指定データが格納される反転タイミング指定データメモリと、
前記コマンドデータが指定された場合、前記初期ステータスデータに基づく駆動パルスを前記固体撮像素子に出力し、その後は、前記待ち時間指定データに基づいて前記駆動パルスの変化回数をカウントし、前記変化回数と前記反転タイミング指定データとに基づいて、出力中の駆動パルスの一部を反転させる制御を行う出力制御部とを備える固体撮像素子駆動装置。
【請求項２】
請求項１記載の固体撮像素子駆動装置であって、
前記反転タイミング指定データメモリには、駆動パルスの出力先毎に設定値が対応付けて格納されており、
前記出力制御部は、前記待ち時間指定データに基づいてカウントした前記駆動パルスの変化回数に一致する前記設定値があった場合に、前記一致する設定値に対応する出力先に出力する駆動パルスを反転させる固体撮像素子駆動装置。
【請求項３】
請求項１又は２記載の固体撮像素子駆動装置であって、
多数のアドレス毎に前記固体撮像素子に出力すべき駆動パルスが論理値で表されたステータスデータが格納されるステータスメモリを備え、
前記コマンドデータメモリには、前記ステータスメモリの読み出しアドレスを順次指定するためのアドレス指定コマンドデータが格納され、
前記アドレス指定コマンドデータが指定された場合、前記出力制御部が、前記アドレス指定コマンドデータで順次指定される読み出しアドレスのステータスデータに基づく駆動パルスを前記固体撮像素子に出力する制御を行う固体撮像素子駆動装置。
【請求項４】
請求項３記載の固体撮像素子駆動装置であって、
複数の設定データを受信し格納するシリアルレジスタを有する制御部と、
前記シリアルレジスタからの出力によって指定される前記コマンドデータ及び前記アドレス指定コマンドデータのいずれかに基づくシーケンス制御によって前記駆動パルスを生成するシーケンス部とを備え、
前記シーケンス部は前記制御部とは独立して設けられ、
前記反転タイミング指定データメモリと前記ステータスメモリと前記コマンドデータメモリとが前記シーケンス部に設けられる固体撮像素子駆動装置。
【請求項５】
請求項４記載の固体撮像素子駆動装置であって、
前記固体撮像素子が、垂直電荷転送路及び水平電荷転送路を備えるＣＣＤ型の固体撮像素子であり、
前記コマンドデータメモリが、１動作期間を構成する複数の水平転送期間分の動作を指定するためのデータが格納される第１メモリ部と、前記複数の水平転送期間毎に前記コマンドデータ及び前記アドレス指定コマンドデータのいずれかが格納される第２メモリ部とを備える固体撮像素子駆動装置。
【請求項６】
請求項５記載の固体撮像素子駆動装置であって、
前記アドレス指定コマンドデータが、１水平転送期間の最初に出力させる駆動パルスに対応する前記読み出しアドレスを指定するためのアドレス指定データと、駆動パルスを出力してから次に駆動パルスを変化させるまでの待ち時間及び前記待ち時間が経過したときに出力させるべき駆動パルスに対応する前記読み出しアドレスを指定するための待ち時間・読み出し指定データと、前記待ち時間・読み出し指定データの繰り返しループ数を指定する第１のループ指定コマンドデータとを含み、
前記コマンドデータが、前記初期ステータスデータと、前記待ち時間データと、前記待ち時間データの繰り返しループ数を指定する第２のループ指定コマンドデータとを含み、
前記第２メモリ部が、前記アドレス指定データ、前記待ち時間・読み出し指定データ、前記初期ステータスデータ、及び前記待ち時間データが格納されるクロックメモリと、前記第１のループ指定コマンドデータ及び前記第２のループ指定コマンドデータが格納されるループコントロールメモリとを備える固体撮像素子駆動装置。
【請求項７】
請求項６記載の固体撮像素子駆動装置であって、
前記第１メモリ部が、前記クロックメモリの読出アドレスを指定するコマンドデータが格納されるシーケンスメモリと、該指定と同一タイミングで前記ループコントロールメモリの読出アドレスを指定するコマンドデータが格納されるループポインタメモリとを備える固体撮像素子駆動装置。
【請求項８】
請求項６又は７記載の固体撮像素子駆動装置であって、
前記反転タイミング指定データメモリと前記ステータスメモリと前記クロックメモリと前記ループコントロールメモリとは、夫々、垂直転送パルス用の第１群，読み出しパルス用の第２群，水平転送パルス用の第３群の３群構成に切り分けて構成される固体撮像素子駆動装置。
【請求項９】
請求項１〜８のいずれか１項記載の固体撮像素子駆動装置と前記固体撮像素子とを備える撮像装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、固体撮像素子を駆動するための駆動パルスを生成して出力する固体撮像素子駆動装置に関する。
【背景技術】
【０００２】
デジタルスチルカメラやデジタルビデオカメラ，カメラ付携帯電話機等の撮像装置（以下、デジタルカメラという。）に用いられているＣＣＤ型やＣＭＯＳ型等の固体撮像素子は、撮像素子駆動装置の生成した駆動パルスによって駆動される。例えばＣＣＤ型固体撮像素子では、垂直転送パルスによって垂直電荷転送路（ＶＣＣＤ）が駆動され、水平転送パルスによって水平電荷転送路（ＨＣＣＤ）が駆動される。
【０００３】
この様な駆動パルスは、予めレジスタやメモリに格納されているパルス変化点データや繰り返し数（ループ数）データ等に基づいて生成されるが、固体撮像素子を駆動するためのタイミングパルスは数や種類が多く、また、駆動モード（例えば、通常転送モードや高速転送モード等）の違いにより、そのパルス波形も複雑になる。従って、駆動パルスを生成するデータ量は多く、これを格納するレジスタやメモリも大容量になってしまうという問題がある。
【０００４】
そこで、下記の特許文献１では、４つのメモリを用意し、第１メモリに時系列データ（論理ステータス）を保持し、第２メモリにパルス変化点から次の変化点までの期間長の値を保持し、第３メモリに１周期中の論理変化の繰り返し値を保持し、第４メモリに周期そのものの繰り返し値を保持し、これら４つのメモリの格納データを組み合わせることで、種々の駆動パルスを生成している。
【０００５】
【特許文献１】特開２００２―５１２７０号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
近年のデジタルカメラに対するユーザの要望は高く、その多機能化，高性能化を図るために、固体撮像素子の駆動パルスも、周期やパルス波形が複雑になってきており、パルス生成に必要となるデータ量も増大する一途である。上記従来技術では、２モード，２段ループの駆動パルスには対処可能であるが、さらに多モード，多段ループの駆動パルスが必要になると、メモリ容量を増やさなければならない。
【０００７】
また、デジタルカメラの設計仕様を変更して多機能化を図る度に駆動パルス生成データも変更を余儀なくされ、パルス生成の柔軟性が高くないと、パルスデータの設計に要するコストが増大してしまう。
【０００８】
本発明の目的は、パルス生成データの柔軟な設計を可能とし、また、少ないメモリ容量で多種多様な駆動パルスの生成を可能にする固体撮像素子駆動装置及びデジタルカメラを提供することにある。
【課題を解決するための手段】
【０００９】
本発明の固体撮像素子駆動装置は、固体撮像素子を駆動するための駆動パルスを生成して出力する固体撮像素子駆動装置であって、前記固体撮像素子に出力すべき駆動パルスの初期状態が論理値で表された初期ステータスデータと、前記初期ステータスデータに基づく駆動パルスを出力してから前記駆動パルスを変化させるまでの待ち時間を指定した待ち時間指定データとを組み合わせたコマンドデータが格納されるコマンドデータメモリと、前記待ち時間指定データに基づいてカウントされる前記駆動パルスの変化回数に応じて出力中の駆動パルスの反転タイミングを指定した反転タイミング指定データが格納される反転タイミング指定データメモリと、前記コマンドデータが指定された場合、前記初期ステータスデータに基づく駆動パルスを前記固体撮像素子に出力し、その後は、前記待ち時間指定データに基づいて前記駆動パルスの変化回数をカウントし、前記変化回数と前記反転タイミング指定データとに基づいて、出力中の駆動パルスの一部を反転させる制御を行う出力制御部とを備える。
【００１０】
本発明の固体撮像素子駆動装置は、前記反転タイミング指定データメモリには、駆動パルスの出力先毎に設定値が対応付けて格納されており、前記出力制御部は、前記待ち時間指定データに基づいてカウントした前記駆動パルスの変化回数に一致する前記設定値があった場合に、前記一致する設定値に対応する出力先に出力する駆動パルスを反転させる。
【００１１】
本発明の固体撮像素子駆動装置は、多数のアドレス毎に前記固体撮像素子に出力すべき駆動パルスが論理値で表されたステータスデータが格納されるステータスメモリを備え、前記コマンドデータメモリには、前記ステータスメモリの読み出しアドレスを順次指定するためのアドレス指定コマンドデータが格納され、前記アドレス指定コマンドデータが指定された場合、前記出力制御部が、前記アドレス指定コマンドデータで順次指定される読み出しアドレスのステータスデータに基づく駆動パルスを前記固体撮像素子に出力する制御を行う。
【００１２】
本発明の固体撮像素子駆動装置は、複数の設定データを受信し格納するシリアルレジスタを有する制御部と、前記シリアルレジスタからの出力によって指定される前記コマンドデータ及び前記アドレス指定コマンドデータのいずれかに基づくシーケンス制御によって前記駆動パルスを生成するシーケンス部とを備え、前記シーケンス部は前記制御部とは独立して設けられ、前記反転タイミング指定データメモリと前記ステータスメモリと前記コマンドデータメモリとが前記シーケンス部に設けられる。
【００１３】
本発明の固体撮像素子駆動装置は、前記固体撮像素子が、垂直電荷転送路及び水平電荷転送路を備えるＣＣＤ型の固体撮像素子であり、前記コマンドデータメモリが、１動作期間を構成する複数の水平転送期間分の動作を指定するためのデータが格納される第１メモリ部と、前記複数の水平転送期間毎に前記コマンドデータ及び前記アドレス指定コマンドデータのいずれかが格納される第２メモリ部とを備える。
【００１４】
本発明の固体撮像素子駆動装置は、前記アドレス指定コマンドデータが、１水平転送期間の最初に出力させる駆動パルスに対応する前記読み出しアドレスを指定するためのアドレス指定データと、駆動パルスを出力してから次に駆動パルスを変化させるまでの待ち時間及び前記待ち時間が経過したときに出力させるべき駆動パルスに対応する前記読み出しアドレスを指定するための待ち時間・読み出し指定データと、前記待ち時間・読み出し指定データの繰り返しループ数を指定する第１のループ指定コマンドデータとを含み、前記コマンドデータが、前記初期ステータスデータと、前記待ち時間データと、前記待ち時間データの繰り返しループ数を指定する第２のループ指定コマンドデータとを含み、前記第２メモリ部が、前記アドレス指定データ、前記待ち時間・読み出し指定データ、前記初期ステータスデータ、及び前記待ち時間データが格納されるクロックメモリと、前記第１のループ指定コマンドデータ及び前記第２のループ指定コマンドデータが格納されるループコントロールメモリとを備える。
【００１５】
本発明の固体撮像素子駆動装置は、前記第１メモリ部が、前記クロックメモリの読出アドレスを指定するコマンドデータが格納されるシーケンスメモリと、該指定と同一タイミングで前記ループコントロールメモリの読出アドレスを指定するコマンドデータが格納されるループポインタメモリとを備える。
【００１６】
本発明の固体撮像素子駆動装置は、前記反転タイミング指定データメモリと前記ステータスメモリと前記クロックメモリと前記ループコントロールメモリとは、夫々、垂直転送パルス用の第１群，読み出しパルス用の第２群，水平転送パルス用の第３群の３群構成に切り分けて構成される。
【００１７】
本発明の撮像装置は、前記固体撮像素子駆動装置と前記固体撮像素子とを備える。
【発明の効果】
【００１８】
本発明によれば、パルス生成データの柔軟な設計が可能となり、また、少ないメモリ容量で多種多様な駆動パルスを生成することが可能になる。
【発明を実施するための最良の形態】
【００１９】
以下、本発明の一実施形態について、図面を参照して説明する。
【００２０】
図１は、本発明の一実施形態に係るデジタルカメラの主要部分を示す機能ブロック図である。図示するデジタルカメラは、ＣＣＤ型の固体撮像素子１１と、固体撮像素子１１から出力されるアナログ画像データを取り込み相関二重サンプリング処理や信号増幅処理，黒レベル除去処理，アナログデジタル（ＡＤ）変換処理等を行うアナログフロントエンド（ＡＦＥ）回路１２と、ＡＦＥ回路１２から出力されるデジタル画像データを取り込みＹＣ変換処理や圧縮伸長処理等を行うデジタルシグナルプロセッサ（ＤＳＰ）１３と、詳細は後述するタイミングジェネレータ（ＴＧ：駆動パルス生成回路）１４と、ドライブ回路（Ｖ―ｄｒｖ）１５とを備える。
【００２１】
タイミングジェネレータ１４は、ＡＦＥ回路１２から与えられるマスタクロック信号とＤＳＰ１３から与えられる設定値データとに基づいて動作し、水平同期信号ＨＤや垂直同期信号ＶＤ、水平転送パルスφＨ１〜８、垂直転送パルスφＶ１〜８、トランスファーゲート信号（読み出しパルス信号）φＴＧ１〜８、ラインメモリ駆動パルスφＬＭを生成すると共に、ＡＦＥ回路１２を駆動するＡＦＥ駆動信号を生成する。以下では、φＨ１〜８、φＶ１〜８、φＴＧ１〜８、及びφＬＭを総称して駆動パルスともいう。
【００２２】
水平同期信号ＨＤと垂直同期信号ＶＤはタイミングジェネレータ１４からＤＳＰ１３に出力され、水平転送パルスφＨ１〜８は３Ｖ程度の低電圧であるため固体撮像素子１１に直接出力され、垂直転送パルスφＶ１〜８，読み出しパルスφＴＧ１〜８，ラインメモリ駆動パルスφＬＭはドライブ回路１５で昇圧された後、固体撮像素子１１に出力される。
【００２３】
図２は、図１に示す固体撮像素子１１の説明図である。固体撮像素子１１は、半導体基板の表面上に二次元アレイ状に配列形成された多数のフォトダイオード（ＰＤ）２１と、各フォトダイオード列に沿って形成された垂直電荷転送路（ＶＣＣＤ）２２と、半導体基板の下辺部に設けられた水平電荷転送路（ＨＣＣＤ）２３と、各垂直電荷転送路２２の端部と水平電荷転送路２３との間に設けられたラインメモリ（ＬＭ）２４と、水平電荷転送路２３の出力段に設けられた出力アンプ２５とを備えて構成される。
【００２４】
ラインメモリ２４とは、例えば特開２０００―３５００９９号公報に記載されている様に、垂直電荷転送路２３によって転送されてきた信号電荷を一時蓄積し、ラインメモリ駆動パルスφＬＭに従って、この蓄積電荷を水平電荷転送路２３に出力するものであり、そのタイミングを制御することで、信号電荷の水平方向画素加算を行うことを可能にするものである。
【００２５】
斯かる構成の固体撮像素子１１では、読み出しパルスφＴＧ１〜８が垂直電荷転送路２２を構成する垂直転送電極のうち読み出し電極を兼用する電極に印加されると、該当のフォトダイオード２１の信号電荷が当該電極下に形成される電位パケット内に読み出される。そして、垂直電荷転送路２２に垂直転送パルスφＶ１〜８が印加されることで、垂直電荷転送路２２上の信号電荷は水平電荷転送路２３の方向に転送され、各垂直電荷転送路２２端部の信号電荷がラインメモリ２４に移され一時保持される。
【００２６】
ラインメモリ２４上の信号電荷は、ラインメモリ駆動パルスφＬＭに従って水平電荷転送路２３に転送され、水平電荷転送路２３上に移された信号電荷は、水平転送パルスφＨ１〜８に従って、出力アンプ２５の方向に転送される。出力アンプ２５は、水平電荷転送路２３の出力段まで次々と転送されてきた各信号電荷の電荷量に応じた電圧値信号を、画像データとしてＡＦＥ回路１２に出力する。
【００２７】
垂直電荷転送路２２上の横一行分の信号電荷は垂直転送パルスφＶ１〜８に従って１段だけ水平電荷転送路２３の方向に転送され、横一行分の信号電荷がラインメモリ２４から水平電荷転送路２３に転送されこの一行分の信号電荷の水平方向への転送及び出力アンプ２５からの出力が終わった後、垂直電荷転送路２２上の信号電荷の水平電荷転送路２３方向への次の１段分の転送が行われるという動作が、繰り返し行われる。
【００２８】
尚、「垂直」「水平」という用語を用いて説明したが、これは、固体撮像素子の受光面に沿う「１方向」「この１方向に略直交する方向」という意味である。
【００２９】
図３は、図１に示すタイミングジェネレータ（ＴＧ）１４の詳細構成図である。このタイミングジェネレータ１４は、従来から設けられている制御部＆トリガパルス生成部（以下、制御／トリガパルス生成部という。）３０と、本実施形態で設けたシーケンサ部４０とからなる。シーケンサ部４０を制御／トリガパルス生成部３０と分離して設けることで、レジスタ数の削減を図ることができ、また、使用性能が向上する。何故ならば、従来は制御／トリガパルス生成部のレジスタ設定で行っていたパルス生成を本実施形態では後述するようにシーケンサ部４０で生成するため、その分の設定レジスタの削減が可能になるためである。また、パルス生成をレジスタで生成するより、シーケンスで生成する方が、効率的であり、小データ化できるためである。
【００３０】
制御／トリガパルス生成部３０は、ＤＳＰ１３からシリアルデータで与えられる設定値データ（ＡＦＥ駆動制御信号や駆動パルスφＨ１〜８，φＴＧ１〜８，φＬＭ，φＶ１〜８を生成するためのデータなど）を取り込み、ＡＦＥ駆動信号と、生成した水平同期信号ＨＤ，垂直同期信号ＶＤを出力する。
【００３１】
シーケンサ部４０は、詳細は後述する様にして、水平転送パルスφＨ１〜８，垂直転送パルスφＶ１〜８，読み出しパルスφＴＧ１〜８，ラインメモリ駆動パルスφＬＭを生成し、出力する。
【００３２】
制御／トリガパルス生成部３０は、ＤＳＰ１３から与えられる設定値データが書き込まれるシリアルレジスタ３１と、シリアルレジスタ３１及びシーケンサ部４０の後述する各メモリ４２，４３，４４，４６，４７，４８への書き込み制御を行う制御部３２と、グレイコードカウンタでなるマスタカウンタ３３と、コンパレータ（比較器）３４とを備える。
【００３３】
コンパレータ３４は、シリアルレジスタ３１に書き込まれたデータのうち水平同期信号ＨＤ，垂直同期信号ＶＤに関わるデータとマスタカウンタ３３の出力値とを比較して水平同期信号ＨＤ，垂直同期信号ＶＤをＤＳＰ１３に出力すると共に、トリガ信号をシーケンサ部４０に出力する。また、シリアルレジスタ３１は、駆動パルス生成用のデータをアドレスデータとしてシーケンサ部４０に出力する。
【００３４】
シーケンサ部４０は、第１メモリ部４１と、第２メモリ部４５と、ステータスメモリ（ＳＴＳ＿ＭＥＭ）４８と、反転タイミング指定メモリ（ＩＮＶ＿ＮＵＭ＿ＭＥＭ）４４と、出力制御部４９とを備える。
【００３５】
出力制御部４９は、シリアルレジスタ３１からの出力に基づいて各メモリ４２，４３，４４，４６，４７，４８を制御して、駆動パルスを出力する。
【００３６】
図４は、第１メモリ部４１と、第２メモリ部４５と、ステータスメモリ（ＳＴＳ＿ＭＥＭ）４８と、反転タイミング指定メモリ（ＩＮＶ＿ＮＵＭ＿ＭＥＭ）４４のメモリ構成及び格納データを示した図である。
【００３７】
ステータスメモリ（ＳＴＳ＿ＭＥＭ）４８には、駆動パルスを論理値で表したステータスデータがアドレスを付けて格納される。ステータスデータは、駆動パルスを出力すべき電極毎に“１”か“０”の値が設定されており、出力制御部４９は、例えば、電極に対応する論理値が“１”であれば、その電極にはハイレベルのパルスを出力し、論理値が“０”であれば、その電極にローレベルのパルスを出力するといった動作を行う。ステータスメモリ４８は、「垂直転送パルス用」「読み出しパルス用及びラインメモリ駆動パルス用」「水平転送パルス用」の３群に切り分けたメモリ構成になっている。メモリ構成をどの様に切り分けるかは設計者の任意であるが、本実施形態では、上記３群構成とすることで、最も高効率な切り分けを実現している。
【００３８】
第１メモリ部４１は、シーケンスメモリ（ＳＥＱ＿ＭＥＭ）４２及びループポインタメモリ（ＬＰ＿ＭＥＭ）４３を備える。
【００３９】
シーケンスメモリ４２には、１動作期間（垂直同期信号ＶＤの立ち下がりから次に垂直同期信号ＶＤが立ち下がるまでの期間、以下１Ｖともいう）を構成する複数の水平転送期間（水平同期信号ＨＤの立ち下がりから次に水平同期信号ＨＤが立ち下がるまでの期間、以下１Ｈともいう）毎に、その動作を指定するコマンドデータ（ＳＥＱ＿ＭＥＭコマンド）がアドレスを付けて格納される。
【００４０】
ループポインタメモリ４３には、１Ｖを構成する複数の１Ｈ毎に、その１Ｈ内における繰り返し動作を指定するコマンドデータ（ＬＰ＿ＭＥＭコマンド）がアドレスを付けて格納される。シーケンスメモリ４２とループポインタメモリ４３において、同一の水平転送期間に対するコマンドデータには同一アドレスが付与されている。
【００４１】
第２メモリ部４５は、クロックメモリ（ＣＬＫ＿ＭＥＭ）４６及びループコントロールメモリ（ＬＣ＿ＭＥＭ）４７を備える。両メモリ４６，４７共に、「垂直転送パルス用」「読み出しパルス用及びラインメモリ駆動パルス用」「水平転送パルス用」の３群に切り分けたメモリ構成になっている。メモリ構成をどの様に切り分けるかは設計者の任意であるが、本実施形態では、上記３群構成とすることで、最も高効率な切り分けを実現している。
【００４２】
クロックメモリ４６には、１Ｈ内の動作をクロック単位で指定するコマンドデータ（ＣＬＫ＿ＭＥＭコマンド）がアドレスを付けて格納される。ＣＬＫ＿ＭＥＭコマンドには、ＣＬＫ＿ＭＥＭコマンド（１）とＣＬＫ＿ＭＥＭコマンド（２）の２種類が存在する。
【００４３】
ＣＬＫ＿ＭＥＭコマンド（１）は、１Ｈの最初に出力させるべき駆動パルスに対応するステータスデータの格納アドレスを指定するためのアドレス指定データ（ｓｔａｒｔコマンド）と、駆動パルスを出力してから次に駆動パルスを変化させるまでの待ち時間及びこの待ち時間が経過したときに出力させるべき駆動パルスに対応するステータスデータの格納アドレスを指定するための待ち時間・読み出し指定データ（ｗａｉｔコマンド、ｗａｉｔ＆ｃａｌｌコマンド）との組み合わせにより構成される。
【００４４】
ＣＬＫ＿ＭＥＭコマンド（２）は、１Ｈの最初に出力させるべき駆動パルスを論理値で表した初期ステータスデータ及び反転タイミング指定メモリのアドレスを指定するデータと、駆動パルスを出力してから次に駆動パルスを変化させるまでの待ち時間を指定するための待ち時間指定データ（ｗａｉｔコマンド）との組み合わせにより構成される。
【００４５】
ループコントロールメモリ４７には、ＣＬＫ＿ＭＥＭコマンド（１）及び（２）のいずれかの繰り返しを指定するコマンドデータ（ＬＣ＿ＭＥＭコマンド）がアドレスを付けて格納される。
【００４６】
反転タイミング指定メモリ（ＩＮＶ＿ＮＵＭ＿ＭＥＭ）４４には、ＣＬＫ＿ＭＥＭコマンド（２）のｗａｉｔコマンドに基づいてカウントされる駆動パルスの変化回数に応じて、出力中の駆動パルスの反転タイミングを指定した反転タイミング指定データがアドレスを付されて格納される。反転タイミング指定データは、例えば、駆動パルスの出力先毎に所定の設定値が対応付けられたデータであり、この設定値と駆動パルスの変化回数とが一致したときに、変化回数と一致した設定値に対応する出力先に出力する駆動パルスを反転する（ハイレベルからローレベルにする又はローレベルからハイレベルにする）ことを指定するコマンドである。反転タイミング指定メモリ４４は、「垂直転送パルス用」「読み出しパルス用及びラインメモリ駆動パルス用」「水平転送パルス用」の３群に切り分けたメモリ構成になっている。メモリ構成をどの様に切り分けるかは設計者の任意であるが、本実施形態では、上記３群構成とすることで、最も高効率な切り分けを実現している。
【００４７】
ＳＥＱ＿ＭＥＭコマンドとしては、例えばｃａｌｌコマンドとｌｏｏｐコマンドとがある。ｃａｌｌコマンドは、１Ｈを構成するＣＬＫ＿ＭＥＭコマンドの開始アドレスの呼び出しを指定するコマンドである。ｌｏｏｐコマンドは、ｃａｌｌコマンドの繰り返しを指定するコマンドである。
【００４８】
ＬＰ＿ＭＥＭコマンドとしては、例えばｃａｌｌコマンドがある。ｃａｌｌコマンドは、１Ｈ内のＣＬＫ＿ＭＥＭコマンドの繰り返しを指定するＬＣ＿ＭＥＭコマンドの開始アドレスを指定するコマンドである。
【００４９】
ＬＣ＿ＭＥＭコマンドとしては、例えばｌｏｏｐコマンドがある。ｌｏｏｐコマンドは、ＣＬＫ＿ＭＥＭコマンドの繰り返しを指定するコマンドである。
【００５０】
上述した各メモリ４２，４３，４４，４６，４７，４８に格納されるコマンドデータやステータスデータや反転タイミング指定データはＤＳＰ１３から出力され、制御部３２からシーケンサ部４０に与えられ、格納される。
【００５１】
次に、出力制御部４９の動作を説明するために、各メモリに格納されるデータの一例を説明する。
図５は、駆動パルスのタイミングチャートである。このタイミングチャートは、ＣＣＤ型固体撮像素子から信号出力を行う前に行う高速掃出駆動およびそれに連続するフォトダイオードから垂直電荷転送路への信号電荷読出時のタイミングチャートである。
【００５２】
スタートすると、先ず、パターン（Ｐａｔ）１の波形で垂直電荷転送路の駆動開始を行い、次に高速パルス波形のパターン２を１７２回ループさせることで掃出駆動を行う。以後、パターン４，パターン３，パターン４，パターン３，…を繰り返し、その後にパターン５の駆動を行うことで垂直電荷転送路の空転送を行う。そして、パターン６で、読出パルス信号を印加することで、該当フォトダイオードから垂直電荷転送路に信号電荷の読み出しを行い、以後、パターン７，８，…と進む。
【００５３】
図５に示すパターン１，２，…の駆動パルスをシーケンサ部４０が生成するために、本実施形態では、図５の左上段に示す様に、シーケンスメモリ４２のアドレス「０ｘ０００」に、パターン１のＣＬＫ＿ＭＥＭコマンドの開始アドレスを指定するｃａｌｌコマンドが格納される。また、次のアドレス「０ｘ００１」には、パターン２のＣＬＫ＿ＭＥＭコマンドの開始アドレスを指定するｃａｌｌコマンドが格納され、次のアドレス「０ｘ００２」には、パターン２を１７２回繰り返すことを指定するｌｏｏｐコマンドが格納され、次のアドレス「０ｘ００３」には、パターン４のＣＬＫ＿ＭＥＭコマンドの開始アドレスを指定するｃａｌｌコマンドが格納される。
【００５４】
尚、図５において、ｃａｌｌ（アドレスＡ，アドレスＢ，アドレスＣ）の表記は、ｃａｌｌ（アドレスＡ）が「垂直転送パルス用」のコマンド、ｃａｌｌ（アドレスＢ）が「読み出しパルス用及びラインメモリ駆動パルス用」のコマンド、ｃａｌｌ（アドレスＣ）が「水平転送パルス用」のコマンドであることを示している。
【００５５】
シーケンスメモリ４２と同一アドレス指定が行われるループポインタメモリ４３には、図５の右上段に示す様に、そのアドレス「０ｘ０００」に、パターン１のＬＣ＿ＭＥＭコマンドの開始アドレスを指定するｃａｌｌコマンドが、次アドレス「０ｘ００１」に、パターン２のＬＣ＿ＭＥＭコマンドの開始アドレスを指定するｃａｌｌコマンドが、次アドレス「０ｘ００２」にはノーオペレーション（何もしないコマンド）が、次のアドレス「０ｘ００３」には、パターン４のＬＣ＿ＭＥＭコマンドの開始アドレスを指定するｃａｌｌコマンドが格納される。
【００５６】
図６は、図５に示すパターン１の拡大図である。パターン１では、垂直転送電極Ｖ２，Ｖ３，…，Ｖ７に印加する転送パルスφＶ２，φＶ３，…，φＶ７のタイミングをずらしている。転送パルスφＶ２は、開始時点０から待ち時間“７６”（マスタクロックのクロック数で計数される。以下同様）後に立ち上がり、転送パルスφＶ３は転送パルスφＶ２に対して待ち時間“６００”後に立ち上がり、以後順に、転送パルスφＶ４，φＶ５，φＶ６，φＶ７も夫々待ち時間“６００”後に立ち上がる様に設計されている。
【００５７】
このパルス設計を行うために、図６左上段に示される様に、クロックメモリ４６のアドレス「０ｘ０００」に、ステータスメモリ４８の開始アドレス指定を行うＣＬＫ＿ＭＥＭコマンド（１）の１つであるｓｔａｒｔコマンドが格納され、アドレス「０ｘ００１」にクロック待ち時間“７６”を指定するＣＬＫ＿ＭＥＭコマンド（１）の１つであるｗａｉｔコマンドが格納され、次のアドレス「０ｘ００２」にクロック待ち時間“６００”を指定するＣＬＫ＿ＭＥＭコマンド（１）の１つであるｗａｉｔコマンドが格納される。
【００５８】
最初の転送パルスφＶ３のクロック待ち時間“６００”を、φＶ４，φＶ５，φＶ６，φＶ７と４回繰り返すのであるが、それを、クロックメモリ４６の次のアドレスに順に書き込んで行くと、コマンドデータの格納容量が増えていってしまう。
【００５９】
そこで、本実施形態では、図６の右上段に示す様に、ループコントロールメモリ４７のアドレス「０ｘ０００」に、クロックメモリのアドレス「０ｘ００２」の命令コマンドを、４回繰り返すループ指定を行うｌｏｏｐコマンドを書き込んでおく。これにより、待ち時間“６００”の命令が４回繰り返され、夫々のパルス波形が次の図７で説明する様に生成される。
【００６０】
図７は、クロックメモリ４６及びステータスメモリ４８に格納されるデータ例と、そのデータ例に基づくパターン１のタイミングチャートを示した図である。
ステータスメモリ４８には、そのアドレス「０ｘ０００」に全電極Ｖ１，Ｖ２，…，Ｖ８の全てを“０”とするステータスデータが格納され、アドレス「０ｘ００１」には電極Ｖ２のみを“１”とするステータスデータが格納され、アドレス「０ｘ００２」には電極Ｖ２，Ｖ３を“１”とするステータスデータが格納され、アドレス「０ｘ００３」には電極Ｖ２，Ｖ３，Ｖ４を“１”とするステータスデータが格納され、…、アドレス「０ｘ００６」には電極Ｖ２，Ｖ３，Ｖ４，Ｖ５，Ｖ６，Ｖ７を“１”とするステータスデータが格納されている。
【００６１】
次に、出力制御部４９の動作を説明する。
出力制御部４９は、シリアルレジスタ３１からの出力データによってアドレス「０ｘ０００」が指定されると、シーケンスメモリ４２のアドレス「０ｘ０００」に格納されているｃａｌｌコマンド（１とする）を読み出すと共に、ループポインタメモリ４３のアドレス「０ｘ０００」に格納されているｃａｌｌコマンド（２とする）を読み出す。次に、出力制御部４９は、ｃａｌｌコマンド１で指定されたＣＬＫ＿ＭＥＭコマンドを読み出すと共に、ｃａｌｌコマンド２で指定されたＬＣ＿ＭＥＭコマンドを読み出す。
【００６２】
次に、出力制御部４９は、読み出したＣＬＫ＿ＭＥＭコマンドのアドレス「０ｘ０００」のｓｔａｒｔコマンドで指定されたアドレス「０ｘ０００」のステータスデータを読み出し、このステータスデータに基づく駆動パルスを出力する。この場合、全電極Ｖ１，Ｖ２，…，Ｖ８の電位はローレベルとなる。
【００６３】
次に、出力制御部４９は、ＣＬＫ＿ＭＥＭコマンドの次アドレス「０ｘ００１」のｗａｉｔコマンドで指定された待ち時間“７６”経過後に、ステータスメモリ４８の次アドレス「０ｘ００１」のステータスデータを読み出し、このステータスデータに基づく駆動パルスを出力する。これにより、電極Ｖ２の電位が、１Ｈの開始時点から待ち時間“７６”後にハイレベルに立ち上がる。このように、ＣＬＫ＿ＭＥＭ（１）のｗａｉｔコマンドは、待ち時間経過後に出力させる駆動パルスに対応するステータスデータのアドレスとして、現在出力中の駆動パルスに対応するステータスデータのアドレスの次アドレスを指定するコマンドとなっており、ステータスメモリ４８からは、ｗａｉｔコマンドで指定される待ち時間が経過する毎に、読み出しアドレスが１つずつインクリメントされて、ステータスデータが読み出される。
【００６４】
尚、ここではｃａｌｌコマンドを実行する例しか説明していないが、出力制御部４９は、ｗａｉｔ＆ｃａｌｌコマンドを実行した場合、ｗａｉｔ＆ｃａｌｌコマンドで指定された待ち時間経過後、現在出力中の駆動パルスに対応するステータスデータのアドレスの次アドレスからステータスデータを読み出すのではなく、ｗａｉｔ＆ｃａｌｌコマンドで指定されたアドレスにジャンプしてステータスデータを読み出す。
【００６５】
次に、出力制御部４９は、ＣＬＫ＿ＭＥＭコマンドの次アドレス「０ｘ００２」のｗａｉｔコマンドで指定された待ち時間“６００”経過後に、ステータスメモリ４８の次アドレス「０ｘ００２」のステータスデータを読み出し、このステータスデータに基づく駆動パルスを出力する。これにより、電極Ｖ２の電位がハイレベルに立ち上がった後の待ち時間“６００”後に電極Ｖ３の電位がハイレベルに立ち上がる。
【００６６】
尚、アドレス「０ｘ００２」のｗａｉｔコマンドは、ループコントロールメモリ（図６）で４回ループすることが指定されている。このため、出力制御部４９は、電極Ｖ３の電位がハイレベルになってから待ち時間“６００”経過後に、現在出力中の駆動パルスに対応するステータスデータの次アドレス「０ｘ００３」のステータスデータを読み出し、このステータスデータに基づく駆動パルスを出力する。続いて、出力制御部４９は、待ち時間“６００”経過後に次アドレス「０ｘ００４」のステータスデータを読み出し、このステータスデータに基づく駆動パルスを出力し、待ち時間“６００”経過後に次アドレス「０ｘ００５」のステータスデータを読み出し、このステータスデータに基づく駆動パルスを出力し、待ち時間“６００”経過後に次アドレス「０ｘ００６」のステータスデータを読み出し、このステータスデータに基づく駆動パルスを出力する。
【００６７】
以上の説明では、シーケンスメモリ４２で指定されたＣＬＫ＿ＭＥＭコマンドがＣＬＫ＿ＭＥＭコマンド（１）のときの動作を例にしたが、以下では、図５〜図７に示したような駆動パルスを、ＣＬＫ＿ＭＥＭコマンド（２）にしたがって生成する場合の動作について説明する。
【００６８】
この場合、クロックメモリ４６には、図８の左上段の図に示される様に、クロックメモリ４６のアドレス「０ｘ０００」にＣＬＫ＿ＭＥＭコマンド（２）の１つである初期ステータス“００００００００”及び反転タイミング指定メモリ４４のアドレス「０ｘ０００」が格納され、アドレス「０ｘ００１」にクロック待ち時間“７６”を指定するＣＬＫ＿ＭＥＭコマンド（２）の１つであるｗａｉｔコマンドが格納され、次のアドレス「０ｘ００２」にクロック待ち時間“６００”を指定するＣＬＫ＿ＭＥＭコマンド（２）の１つであるｗａｉｔコマンドが格納される。
【００６９】
また、反転タイミング指定メモリ４４のアドレス「０ｘ０００」には、図８の右上段の図に示される様に、電極Ｖ１には設定値“０”が対応し、電極Ｖ２には設定値“１”が対応し、電極Ｖ３には設定値“２”が対応し、電極Ｖ４には設定値“３”が対応し、電極Ｖ５には設定値“４”が対応し、電極Ｖ６には設定値“５”が対応し、電極Ｖ７には設定値“６”が対応し、電極Ｖ８には設定値“０”が対応して格納されている。これ以外のメモリに格納されるデータは、図５〜図７と同様である。
【００７０】
次に、出力制御部４９の動作を説明する。
出力制御部４９は、シリアルレジスタ３１からの出力データによってアドレス「０ｘ０００」が指定されると、シーケンスメモリ４２のアドレス「０ｘ０００」に格納されているｃａｌｌコマンド（１とする）を読み出すと共に、ループポインタメモリ４３のアドレス「０ｘ０００」に格納されているｃａｌｌコマンド（２とする）を読み出す。次に、出力制御部４９は、ｃａｌｌコマンド１で指定されたＣＬＫ＿ＭＥＭコマンド（２）を読み出すと共に、ｃａｌｌコマンド２で指定されたＬＣ＿ＭＥＭコマンドを読み出す。
【００７１】
次に、出力制御部４９は、読み出したＣＬＫ＿ＭＥＭコマンド（２）のうちアドレス「０ｘ０００」の初期ステータスデータに基づく駆動パルスを出力する。これにより、全電極Ｖ１，Ｖ２，…，Ｖ８の電位はローレベルとなる。
【００７２】
次に、出力制御部４９は、ＣＬＫ＿ＭＥＭコマンド（２）の次アドレス「０ｘ００１」のｗａｉｔコマンドで指定される待ち時間が経過した時点で、出力中の駆動パルスの変化した回数を１つ増やして、駆動パルスの変化回数をカウントする。駆動パルスを出力してから待ち時間“７６”経過して駆動パルスの変化回数が“１”になると、出力制御部４９は、ＣＬＫ＿ＭＥＭコマンド（２）のアドレス「０ｘ０００」のコマンドで指定された反転タイミング指定メモリ４４のアドレス「０ｘ０００」に格納されている設定値とカウントした変化回数とを比較する。この場合、設定値“１”が変化回数と一致するため、出力制御部４９は、設定値“１”に対応する電極Ｖ２の電位をハイレベルにする。
【００７３】
次に、ＣＬＫ＿ＭＥＭコマンド（２）の次アドレス「０ｘ００２」のｗａｉｔコマンドで指定される待ち時間“６００”が経過して駆動パルスの変化回数が“２”になると、設定値“２”が変化回数と一致するため、出力制御部４９は、設定値“２”に対応する電極Ｖ３の電位をハイレベルにする。
【００７４】
尚、ＣＬＫ＿ＭＥＭコマンド（２）のアドレス「０ｘ００２」のｗａｉｔコマンドは、ループコントロールメモリ（図６）で４回ループすることが指定されている。このため、出力制御部４９は、電極Ｖ３の電位がハイレベルに変化してから待ち時間“６００”経過後に、設定値“３”に対応する電極Ｖ４の電位をハイレベルにし、更に待ち時間“６００”経過後に、設定値“４”に対応する電極Ｖ５の電位をハイレベルにし、更に待ち時間“６００”経過後に、設定値“５”に対応する電極Ｖ６の電位をハイレベルにし、更に待ち時間“６００”経過後に、設定値“６”に対応する電極Ｖ７の電位をハイレベルにする。
【００７５】
尚、ここでは説明のために同一駆動パルスをＣＬＫ＿ＭＥＭコマンド（１）と（２）の両方で生成する例を説明したが、実際には、生成すべき駆動パルスによって、ＣＬＫ＿ＭＥＭコマンド（１）と（２）のいずれかが選択的に実行されるように、各メモリにデータが格納される。ＣＬＫ＿ＭＥＭコマンド（２）に基づいて駆動パルスを生成する方式が有効なのは、駆動パルスの変化回数が少なく、且つ、出力中の駆動パルスのステータスと、次の駆動パルスのステータスとの論理値の重複頻度が高い場合に限られるため、このようなときはＣＬＫ＿ＭＥＭコマンド（２）に基づいて駆動パルスを生成し、これ以外のときはＣＬＫ＿ＭＥＭコマンド（１）に基づいて駆動パルスを生成するように、データを格納しておけば良い。
【００７６】
以上述べた様に、本実施形態に係るデジタルカメラでは、シーケンスメモリ４２，ループポインタメモリ４３に１Ｖ分の動作指定を行うデータが１Ｈ単位で格納され、クロックメモリ４６には１Ｈ分の動作がクロック単位で格納され、ループコントロールメモリ４７にはその１Ｈに対応するループ命令が格納され、ステータスメモリ４８には論理値の遷移が格納され、これらメモリ４２，４３，４６，４７，４８を有するシーケンサ部４０がシリアルレジスタ３１で指定された開始アドレスによってシーケンス動作を開始する構成としたため、少ない容量のメモリに格納したデータにより複雑で多様な駆動パルスを生成することが可能となる。
【００７７】
また、本実施形態に係るデジタルカメラでは、変化回数が少なく、且つ、出力中の駆動パルスに対応するステータスと、次の駆動パルスに対応するステータスとの論理値の重複頻度が高い駆動パルスを生成する場合には、ステータスメモリ４８よりもデータ量の少ない反転タイミング指定メモリ４４で十分に駆動パルスを生成することができる。このため、動作モードによってステータスメモリ４８と反転タイミング指定メモリ４４とを使い分けることで、全体としてメモリ容量を削減することができる。
【００７８】
また、本実施形態のタイミングジェネレータ１４内でのデータ通信はシリアル通信で行っているが、シリアル通信のアクセスビットに制限などがなければ、シーケンスメモリ４２とループポインタメモリ４３とを同じメモリで構成することが可能となり、メモリの更なる小サイズ化を図ることが可能となる。
【００７９】
更に本実施形態では、第２メモリ部４５に格納されるクロックコマンドとループコマンドとを夫々別のメモリ４６，４７に格納し夫々から別に読み出せる構成としたため、ループ判断をクロックコマンドと同時に時間遅れなく行うことが可能になる。これにより、ループ判断による読み出しタイミングに制約がなくなり、１クロック毎のｗａｉｔコマンドにも対応することができる。
【００８０】
更に本実施形態では、ループコントロールメモリ４７のループ命令でループが必要なクロックメモリアドレスを指定するため、メモリを増やすことなく多段ループや入れ子ループに対応することができ、チップサイズや多段分のカウンタを設けることに制約がなければ、幾らでも多段ループを組み込むことが可能となる。
【００８１】
この場合、１水平転送期間中のループの終了を示す方法としては、
（ａ）固定段のループにする
（ｂ）ループ段数を指定する制御レジスタを設け、レジスタ設定による可変段のループにする
（ｃ）ループコントロールメモリ内のループ命令にエンドビットを設け、コマンド設定による可変段のループにする
の３つが考えられる。
【００８２】
更に、本実施形態では、メモリに格納するデータとしてコマンドデータを用い、ループ命令を効果的に活用して多段ループを実現しているため、コマンドデータの格納メモリ容量の小容量化を図ることができる。また、ステータスメモリ４８においても、ｃａｌｌコマンドでアドレス呼び出しを行う構成としているため、ステータスデータのデータ容量の削減も図ることができ、メモリチップの更なる小サイズ化を図ることが可能となる。
【００８３】
また、本実施形態では、１動作モードを水平転送期間単位で切り分け、１水平転送期間をクロック単位で切り分ける構成をとっているため、組み合わせの変更が容易で、パルス生成の柔軟性を高めることができる。
【００８４】
尚、ループポインタメモリ４３やループコントロールメモリ４７を使用せずに、ループ命令をクロックメモリ内に組み込むことも可能である。但しこの場合、クロックメモリ内のループ命令を一度判断してからループ先の命令を読みに行く必要があるため、ループ判断で１クロック，ループ先の命令読み出しで１クロックの計２クロックが読み出しタイミングの制約となる。この制約が許容できるシステムであれば、メモリ容量の更なる削減を図ることが可能となる。
【図面の簡単な説明】
【００８５】
【図１】本発明の一実施形態に係るデジタルカメラの主要部の機能ブロック図である。
【図２】図１に示す固体撮像素子の主要構成図である。
【図３】図１に示すタイミングジェネレータの詳細構成図である。
【図４】図３に示すタイミングジェネレータのメモリ構成図である。
【図５】図４に示すシーケンスメモリとループポインタメモリとの関係を説明する駆動パルスのタイミングチャートである。
【図６】図４に示すクロックメモリとループコントロールメモリとの関係を説明する図５のパターン１の拡大タイミングチャートである。
【図７】図４に示すクロックメモリとステータスメモリとの関係を説明する駆動パルスの図６と同じタイミングチャートである。
【図８】図４に示すクロックメモリと反転タイミング指定メモリとの関係を説明する駆動パルスの図６と同じタイミングチャートである。
【符号の説明】
【００８６】
１１  固体撮像素子
１２  ＡＦＥ回路
１３  ＤＳＰ
１４  タイミングジェネレータ（ＴＧ）
１５  ドライブ回路
２１  フォトダイオード
２２  垂直電荷転送路（ＶＣＣＤ）
２３  水平電荷転送路（ＨＣＣＤ）
２４  ラインメモリ
３０  制御トリガパルス生成部
３１  シリアルレジスタ
３２  設定値書き込み制御部
３３  マスタカウンタ
３４  コンパレータ
４０  シーケンサ部
４１  第１メモリ部
４２  シーケンスメモリ（ＳＥＱ＿ＭＥＭ）
４３  ループポインタメモリ（ＬＰ＿ＭＥＭ）
４４  反転タイミング指定メモリ（ＩＮＶ＿ＮＵＭ＿ＭＥＭ）
４５  第２メモリ部
４６  クロックメモリ（ＣＬＫ＿ＭＥＭ）
４７  ループコントロールメモリ（ＬＣ＿ＭＥＭ）
４８  ステータスメモリ（ＳＴＳ＿ＭＥＭ）
４９  出力制御部
【図１】
2008187232.tif 000003
【図２】
2008187232.tif 000004
【図３】
2008187232.tif 000005
【図４】
2008187232.tif 000006
【図５】
2008187232.tif 000007
【図６】
2008187232.tif 000008
【図７】
2008187232.tif 000009
【図８】
2008187232.tif 000010