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