(57)【特許請求の範囲】
【請求項１】
スレーブデバイスへのデータ転送をＩ２Ｃバスを介して行うデータ転送メモリであって、
スレーブデバイス情報および転送データを格納した不揮発性メモリと、
前記不揮発性メモリの書き込み及び読み出しを制御するシリアル・コントロール回路と、
転送開始指令により基本クロックを発生するマスタ・クロックジェネレータ回路と、
前記基本クロックに同期して前記不揮発性メモリの読み出しを前記シリアル・コントロール回路に命令するマスタ・転送シーケンサ回路と、
を備え、前記スレーブデバイス情報を送信すると共に前記転送データのデータ転送を行うことを特徴とするデータ転送メモリ。
【請求項２】
請求項１に記載のデータ転送メモリにおいて、
電源の投入を検出すると前記転送開始指令をマスタ・クロックジェネレータ回路に指令する電源投入検出回路を備えることを特徴とするデータ転送メモリ。
【請求項３】
請求項２に記載のデータ転送メモリにおいて、
前記不揮発性メモリは、前記スレーブデバイスへ転送する転送データを所定のフォーマットに従って格納していることを特徴とするデータ転送メモリ。
【請求項４】
スレーブデバイスと、前記スレーブデバイスへのデータ転送をＩ２Ｃバスを介して行うデータ転送メモリと、を備えたモジュールであって、
前記データ転送メモリは、スレーブデバイス情報および転送データを格納した不揮発性メモリと、前記不揮発性メモリの書き込み及び読み出しを制御するシリアル・コントロール回路と、転送開始指令により基本クロックを発生するマスタ・クロックジェネレータ回路と、前記基本クロックに同期して前記不揮発性メモリの読み出しを前記シリアル・コントロール回路に命令するマスタ・転送シーケンサ回路と、を含み、
前記不揮発性メモリは、前記スレーブデバイスの動作に必要な情報を前記転送データとして所定のフォーマットに従って格納し、
前記データ転送メモリは、前記転送開始指令より、前記スレーブデバイス情報を送信すると共に前記転送データを前記スレーブデバイスに転送することを特徴とするモジュール。    
【請求項５】
請求項４に記載のモジュールにおいて、
前記データ転送メモリは、電源の投入を検出すると前記転送開始指令をマスタ・クロックジェネレータ回路に指令する電源投入検出回路を備え、
前記データ転送メモリは、電源の投入により前記転送データを前記スレーブデバイスに転送することを特徴とするモジュール。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データ転送メモリに関する。
【背景技術】
【０００２】
Ｉ２Ｃバスはフィリップス社が提唱している２線式のシリアルバスである。Ｉ２Ｃバスは、マスタデバイスの送信命令に応じて、スレーブデバイスが動作するものである。Ｉ２Ｃバスの動作を図６〜１０を用いて説明する。
【０００３】
図６に示すように、ＳＣＬラインが“Ｈ”の時に、ＳＤＡラインが“Ｈ”から“Ｌ”へ変化することで、スタートコンディションとなる。全ての動作は、スタートコンディションで始まる。ＳＣＬラインが“Ｈ”の時に、ＳＤＡラインが“Ｌ”から“Ｈ”へ変化することで、ストップコンディションとなる。ここで、ＳＣＬラインはシリアルクロックが入力されるシリアルクロックラインであり、ＳＤＡラインはデータ転送を行うためのシリアルデータラインである。
【０００４】
送信命令はＳＣＬラインが“Ｌ”である期間にＳＤＡラインを変化させることで行い、８ビット連続して送信する。９番目のクロックサイクル期間において、命令を受信するスレーブデバイスは、ＳＤＡラインを“Ｌ”にして、命令を受信したというアクノリッジを出力する。このように、９個のクロックサイクルを単位として命令のやり取りを行う。
【０００５】
図７は、マスタデバイスからスレーブデバイスへバイト単位でデータを書き込むためのバイトライトシーケンスである。最初にマスタデバイスはスタートコンディションを送信する。続いて、複数のスレーブデバイスからデータを書き込みたいスレーブデバイスを選択するため７個のクロックサイクルでスレーブアドレスを送信し、８番目のクロックサイクルで書き込み命令コード“Ｌ”を送信する。スレーブデバイスは自身が選択されたことを認識するとアクノリッジを出力する。
【０００６】
このアクノリッジを受信したマスタデバイスは、スレーブデバイスにおける８ビットの書き込みアドレスを送信する。スレーブデバイスは書き込みアドレスを認識するとアクノリッジを出力する。このアクノリッジを受信したマスタデバイスは、さらに８ビットの書き込みデータを送信する。スレーブデバイスは書き込みデータを認識するとアクノリッジを出力する。最後にアクノリッジを受信したマスタデバイスは、ストップコンディションを送信することで、スレーブデバイスではデータの書き込み動作を開始する。
【０００７】
図８は、スレーブデバイスからマスタデバイスがバイト単位でデータを読み出すためのカレントアドレスリードシーケンスである。最初にマスタデバイスはスタートコンディションを送信する。続いて、複数のスレーブデバイスからデータを読み出したいスレーブデバイスを選択するため７個のクロックサイクルでスレーブアドレスを送信し、８番目のクロックサイクルで読み出し命令コード“Ｈ”を送信する。スレーブデバイスは自身が選択されたことを認識するとアクノリッジを出力する。
【０００８】
このアクノリッジを出力した後、スレーブデバイスは自身が保持しているカレントアドレスの８ビットの読み出しデータを出力する。この後、マスタデバイスはアクノリッジを出力することなくストップコンディションを送信することで、スレーブデバイスの読み出し動作は終了する。
【０００９】
図９は、マスタデバイスからスレーブデバイスへページ単位でデータを書き込むためのページライトシーケンスである。最初にマスタデバイスはスタートコンディションを送信する。続いて、複数のスレーブデバイスからデータを書き込みたいスレーブデバイスを選択するため７個のクロックサイクルでスレーブアドレスを送信し、８番目のクロックサイクルで書き込み命令コード“Ｌ”を送信する。スレーブデバイスは自身が選択されたことを認識するとアクノリッジを出力する。
【００１０】
このアクノリッジを受信したマスタデバイスは、スレーブデバイスにおける８ビットの書き込みアドレスを送信する。スレーブデバイスは書き込みアドレスを認識するとアクノリッジを出力する。このアクノリッジを受信したマスタデバイスは、さらに８ビットの書き込みデータを送信する。スレーブデバイスは書き込みデータを認識するとアクノリッジを出力する。続けて、マスタデバイスは次のワードアドレスに相当する８ビットの書き込みデータを送信し、スレーブデバイスはアクノリッジを出力する。以後、連続的にマスタデバイスから８ビットの書き込みデータの送信と、スレーブデバイスからのアクノリッジの出力を繰り返し、最大ページサイズ分の書き込みデータをスレーブデバイスに送信する。最後に、マスタデバイスはストップコンディションを送信することで、スレーブデバイスでページサイズに相当するデータの書き込み動作を開始する。
【００１１】
図１０は、スレーブデバイスからマスタデバイスが複数バイトのデータを読み出すためのシーケンシャル読み出しシーケンスである。最初にマスタデバイスはスタートコンディションを送信する。続いて、複数のスレーブデバイスからデータを読み出したいスレーブデバイスを選択するため７個のクロックサイクルでスレーブアドレスを送信し、８番目のクロックサイクルで読み出し命令コード“Ｈ”を送信する。スレーブデバイスは自身が選択されたことを認識するとアクノリッジを出力する。
【００１２】
このアクノリッジを出力した後、スレーブデバイスは自身が保持しているカレントアドレスの８ビットの読み出しデータを出力する。この後、マスタデバイスがアクノリッジを出力すると、スレーブデバイスは次のワードアドレスの８ビットの読み出しデータを出力し、マスタデバイスはアクノリッジを出力する。以後、連続的にスレーブデバイスから８ビットの読み出しデータの出力と、マスタデバイスからのアクノリッジの送信を繰り返す。このとき、スレーブデバイスのメモリアドレスカウンタが最終ワードアドレスに到達すると、先頭メモリアドレスにロールオーバーする。最後に、マスタデバイスはアクノリッジを送信することなく、ストップコンディションを送信することで、スレーブデバイスの複数バイトのデータのシーケンシャル読み出し動作は終了する。
【００１３】
近年、複数の電子部品を搭載したモジュールの応用分野が広がりつつある。図１１は従来のＣＣＤカメラ用モジュールの構成を示すブロック図である。カメラ用モジュールは、ＣＣＤ１０、ＣＣＤ１０から出力されるアナログ画像信号をデジタル信号に変換するＡ／Ｄ変換回路１１、及びＡ／Ｄ変換回路１１から出力されるデジタル画像信号を画像信号処理するＤＳＰ１２から構成されている。このカメラ用モジュールのＤＳＰには、Ｉ２Ｃバスを介してＣＰＵ１３及びデータメモリ１４等が接続されている。データメモリ１４には、ＤＳＰ制御用プログラム及びカメラ調整データ（例えばＣＣＤ１０のホワイトバランス特性、メカシャッターのバラツキ補正データ等が含まれる）等が格納されている。
【００１４】
電源の投入やＣＣＤ１０の動作開始スイッチ等により、ＣＰＵ１３はマスタデバイスとして動作し、ＤＳＰ制御用プログラム及びカメラ調整データ（例えば、ホワイトバランス特性）等をスレーブデバイスであるデータメモリ１４からＩ２Ｃバスを介して読み出す。続いて、ＣＰＵ１３はマスタデバイスとして動作し、それらＤＳＰ制御プログラム及びカメラ調整データをスレーブデバイスであるＤＳＰ１２にＩ２Ｃバスを介して書き込む。これによって、ＤＳＰ１２は所定の画像信号処理やカメラ調整（例えば、ホワイトバランス補正、メカシャッターのバラツキ補正）を実行することができるようになる。
【００１５】
図１２は、Ｉ２Ｃバス対応のスレーブデバイスとして機能するデータメモリ１４の構成を示すブロック図である。ＳＣＬ端子はシリアルクロック入力端子であり、入力バッファ２０に接続され、ＳＣＬクロック入力信号の立ち上がり、立ち下がりエッジで信号処理を行う。ＳＤＡ端子は双方向にシリアルデータ転送を行うためのものであり、入力端子とオープンドレイン出力端子からなるＩ／Ｏバッファ２１に接続されている。コンディション・アクノリッジ検出回路２２は入力バッファ２０及びＩ／Ｏバッファ２１からの出力信号を受けて、スタート／ストップコンディションの検出及びアクノリッジ（ＡＣＫ）の検出を行う。シリアル・コントロール回路２３は、コンディション・アクノリッジ検出回路２２から出力されたスタート／ストップコンディション検出信号、アクノリッジ（ＡＣＫ）検出信号及びＩ／Ｏバッファ２１からの出力信号を受ける。シリアル・コントロール回路２３は、入力された信号に基づいてＩ／Ｏバッファ２１にアクノリッジを出力させたり、不揮発性メモリにデータを書き込んだり、不揮発性メモリからデータを読み出したりするのを制御する。不揮発性メモリからのデータの読み出しの場合には、シリアル・コントロール回路２３は、読み出したデータをＩ／Ｏバッファ２１に出力させる。
【発明の開示】
【発明が解決しようとする課題】
【００１６】
しかしながら、上記従来技術では、データメモリはスレーブデバイスとしてのみしか機能しないため、データメモリに格納したデータを他のデバイスに転送したいとき、外部にマスタデバイスとして機能するＣＰＵ等が必要となり、モジュールを構成する部品点数を削減できないという問題が生じていた。
【００１７】
そこで、本発明は上記従来技術の問題を鑑み、モジュールを構成する部品点数の削減するのに有用なデータ転送メモリを提供することを目的とする。
【課題を解決するための手段】
【００１８】
本発明は、スレーブデバイスへのデータ転送をＩ２Ｃバスを介して行うデータ転送メモリであって、スレーブデバイス情報を格納した不揮発性メモリと、前記不揮発性メモリの書き込み及び読み出しを制御するシリアル・コントロール回路と、転送開始指令により基本クロックを発生するマスタ・クロックジェネレータ回路と、前記基本クロックに同期して前記不揮発性メモリの読み出しを前記シリアル・コントロール回路に命令するマスタ・転送シーケンサ回路と、を備えたことを特徴とする。
【００１９】
本発明は、更に、電源の投入を検出すると前記転送開始指令をマスタ・クロックジェネレータ回路に指令する電源投入検出回路を備えることもできる。
【発明の効果】
【００２０】
本発明によれば、モジュールを構成する部品点数の削減をすることができる。
【発明を実施するための最良の形態】
【００２１】
図１は、本発明の実施の形態であるＣＣＤカメラ用モジュールの構成を示すブロック図である。カメラ用モジュールは、ＣＣＤ１０、Ａ／Ｄ変換回路１１及びＤＳＰ１２から構成されている。これらは、図１１に示した従来のカメラ用モジュールと同じである。本実施の形態では、Ｉ２Ｃバスを介してデータ転送メモリ３４が接続されている。データ転送メモリ３４には、ＤＳＰ制御用プログラム及びカメラ調整データ（例えばＣＣＤ１０のホワイトバランス特性、メカシャッターのバラツキ補正データ等が含まれる）等が格納されている。
【００２２】
電源の投入やＣＣＤ１０の動作開始スイッチ等により、データ転送メモリ３４はマスタデバイスとして動作し、ＤＳＰ制御用プログラム及びカメラ調整データ（例えば、ホワイトバランス特性）等をスレーブデバイスであるＤＳＰ１２にＩ２Ｃバスを介して書き込む。これによって、ＤＳＰ１２は所定の画像信号処理やカメラ調整（例えば、ホワイトバランス補正、メカシャッターのバラツキ補正）を実行することができるようになる。
【００２３】
図２は、データ転送メモリ３４の構成を示すブロック図である。ＳＣＬ端子はシリアルクロック入力端子であり、入力バッファ４０に接続され、ＳＣＬクロック入力信号の立ち上がり、立ち下がりエッジで信号処理を行う。ＳＤＡ端子は双方向にシリアルデータ転送を行うためのものであり、入力端子とオープンドレイン出力端子からなるＩ／Ｏバッファ４１に接続されている。コンディション・アクノリッジ検出回路４２は入力バッファ４０及びＩ／Ｏバッファ４１からの出力信号を受けて、スタート／ストップコンディションの検出及びアクノリッジ（ＡＣＫ）の検出を行う。シリアル・コントロール回路４３は、コンディション・アクノリッジ検出回路４２から出力されたスタート／ストップコンディション検出信号、アクノリッジ（ＡＣＫ）検出信号及びＩ／Ｏバッファ４１からの出力信号を受ける。シリアル・コントロール回路４３は、入力された信号に基づいてＩ／Ｏバッファ４１にアクノリッジを出力させたり、不揮発性メモリにデータを書き込んだり、不揮発性メモリからデータを読み出したりするのを制御する。不揮発性メモリからのデータの読み出しの場合には、シリアル・コントロール回路４３は、読み出したデータをＩ／Ｏバッファ４１に出力させる。
【００２４】
さらに、データ転送メモリ３４は、電源の投入を検出する電源投入検出回路４５を備え、電源投入検出回路４５はマスタ・コントローラ回路４６に接続されている。電源投入検出回路４５から電源投入検出信号がマスタ・コントローラ回路４６に入力されると、マスタ・コントローラ回路４６は転送開始指令をマスタ・クロックジェネレータ４７に指令する。
【００２５】
また、マスタ・コントローラ回路４６はコンディション・アクノリッジ検出回路４２にも接続されている。マスタ・コントローラ回路４６はコンディション・アクノリッジ検出回路４２からスレーブデバイスからのアクノリッジを受信しなかったとの信号が入力されることによっても、転送開始指令をマスタ・クロックジェネレータ４７に指令する。このとき、データ転送メモリ３４は、データの転送を初めからやり直す、いわゆるリトライを実行することになる。
【００２６】
マスタ・クロックジェネレータ回路４７は転送開始指令が入力されると、基本クロックを発生してＳＣＬラインにクロック信号を出力すると共に、マスタ・転送シーケンサ回路４８に転送シーケンスを実行するように命令する。従来の不揮発性メモリ２４においてもデータの書き込みのためにはタイミング制御が必須であるのでクロック発生回路を有しており、本実施の形態においてはマスタ・クロックジェネレータ回路４７は従来のクロック発生回路のほとんどの部分を流用する形で、基本クロックを発生させるための回路を含んでいる。このマスタ・クロックジェネレータ回路４７からの転送シーケンスの実行命令を受けて、マスタ・転送シーケンサ回路４８はＳＣＬラインが“Ｈ”のときにＳＤＡラインを“Ｈ”から“Ｌ”へ変化させＩ２Ｃバスにスタートコンディションを送信する。そして、マスタ・転送シーケンサ回路４８はシリアル・コントロール回路４３を介して不揮発性メモリ４４に格納されたデータを読み出させ、シリアル・コントロール回路４３は読み出したデータをＩ／Ｏバッファ４１を通して基本クロックに同期するようにＳＤＡラインに送信する。また、マスタ・転送シーケンサ回路４８はＳＣＬラインが“Ｈ”のときにＳＤＡラインを“Ｌ”から“Ｈ”へ変化させＩ２Ｃバスにストップコンディションを送信する。
【００２７】
図３は、本実施の形態に係る不揮発性メモリ４４に格納されたデータの格納状態の一例である。不揮発性メモリ４４の各アドレスはそれぞれ８ビットのデータを格納することができ、読み出し／書き込み命令コードを付加されたスレーブアドレス、ワードアドレス、転送データの３データを基本単位として、３アドレスずつに格納されている。これらのデータは、データ転送メモリ３４がスレーブデバイスとして外部のマスタデバイスからＩ２Ｃバスを介して予め書き込まれている。スレーブアドレスは、スレーブアドレス７ビットに、書き込み命令コード“Ｌ”の１ビットを付加したものになっている。このように、不揮発性メモリ４４は、スレーブデバイス情報としてスレーブアドレスやワードアドレスを格納している。
【００２８】
図４は、本実施の形態に係るモジュールのデータ転送ステップの一例である。これは、図７で説明したＩ２Ｃバスのバイトライトシーケンスに従ってデータ転送を行う。このとき、不揮発性メモリ４４には図３に示した状態でデータが格納されている。
【００２９】
まず、ステップＳ１では、電源投入検出回路４５が電源の投入を検出すると、電源投入検出信号をマスタ・コントローラ回路４６に入力する。
【００３０】
ステップＳ２では、マスタ・コントローラ回路４６は、リトライ回数Ｔｒｙを初期値０にすると共に、リトライ回数上限値Ｔｒｙｍａｘ及び転送回数上限値ＦＷｍａｘの設定を行う。転送回数上限値ＦＷｍａｘとは、図３で示したところのＺに相当し、データ転送メモリ３４が転送する転送データのバイト数である。これら上限値は、固定値としてマスタ・コントローラ回路４６にあらかじめ設定されていても良いし、あるいは不揮発性メモリ４４とは別に設けられた不揮発性メモリ（図示せず）や不揮発性メモリ４４の定められた領域（最終アドレス等）に記憶しておき、それをマスタ・コントローラ回路４６が読み出すようにしても良い。
【００３１】
ステップＳ３では、マスタ・コントローラ回路４６はリトライ回数Ｔｒｙがリトライ回数上限値Ｔｒｙｍａｘ以下であるかどうかを判断する。リトライ回数Ｔｒｙがリトライ回数上限値Ｔｒｙｍａｘ以下である場合には、ステップＳ４にステップが移り、そうでない場合には、データ転送を中止する。
【００３２】
ステップＳ４では、マスタ・コントローラ回路４６は、転送回数ＦＷを初期値０にすると共に、不揮発性メモリ４４のアドレスを示すｍを初期値０にする。これらの初期値は、マスタ・転送シーケンサ回路４８に送られ、マスタ・コントローラ回路４６は、転送開始指令をマスタ・クロックジェネレータ４７に指令する。
【００３３】
ステップＳ５では、マスタ・クロックジェネレータ回路４７は、基本クロックを発生してＳＣＬラインにクロック信号を出力すると共に、マスタ・転送シーケンサ回路４８に転送シーケンスを実行するように命令する。マスタ・転送シーケンサ回路４８はＳＣＬラインが“Ｈ”のときにＳＤＡラインを“Ｈ”から“Ｌ”へ変化させＩ２Ｃバスにスタートコンディションを送信する。
【００３４】
ステップＳ６では、マスタ・転送シーケンサ回路４８はシリアル・コントロール回路４３を介して不揮発性メモリ４４のアドレスｍ（＝０）に格納された８ビットのスレーブアドレス及び書き込み命令コードを読み出させ、シリアル・コントロール回路４３は読み出したデータを１ビットずつＩ／Ｏバッファ４１を通して基本クロックに同期するようにＳＤＡラインに送信する。
【００３５】
ステップＳ７では、コンディション・アクノリッジ検出回路４２が次の基本クロックに同期してアクノリッジがスレーブデバイスから出力されるか否かを検出する。アクノリッジを検出した場合には、ステップＳ８にステップが移り、検出できなかった場合には、ステップＳ１８にステップが移る。
【００３６】
ステップＳ８では、不揮発性メモリ４４のアドレスを示すｍに＋１を加算する。
【００３７】
ステップＳ９では、マスタ・転送シーケンサ回路４８はシリアル・コントロール回路４３を介して不揮発性メモリ４４のアドレスｍ（＝１）に格納された８ビットのワードアドレスを読み出させ、シリアル・コントロール回路４３は読み出したデータを１ビットずつＩ／Ｏバッファ４１を通して基本クロックに同期するようにＳＤＡラインに送信する。
【００３８】
ステップＳ１０では、コンディション・アクノリッジ検出回路４２が次の基本クロックに同期してアクノリッジがスレーブデバイスから出力されるか否かを検出する。アクノリッジを検出した場合には、ステップＳ１１にステップが移り、検出できなかった場合には、ステップＳ１８にステップが移る。
【００３９】
ステップＳ１１では、不揮発性メモリ４４のアドレスを示すｍに＋１を加算する。
【００４０】
ステップＳ１２では、マスタ・転送シーケンサ回路４８はシリアル・コントロール回路４３を介して不揮発性メモリ４４のアドレスｍ（＝２）に格納された８ビットの転送データを読み出させ、シリアル・コントロール回路４３は読み出したデータを１ビットずつＩ／Ｏバッファ４１を通して基本クロックに同期するようにＳＤＡラインに送信する。
【００４１】
ステップＳ１３では、コンディション・アクノリッジ検出回路４２が次の基本クロックに同期してアクノリッジがスレーブデバイスから出力されるか否かを検出する。アクノリッジを検出した場合には、ステップＳ１４にステップが移り、検出できなかった場合には、ステップＳ１８にステップが移る。
【００４２】
ステップＳ１４では、不揮発性メモリ４４のアドレスを示すｍに＋１を加算する。
【００４３】
ステップＳ１５では、マスタ・転送シーケンサ回路４８はＳＣＬラインが“Ｈ”のときにＳＤＡラインを“Ｌ”から“Ｈ”へ変化させＩ２Ｃバスにストップコンディションを送信する。
【００４４】
ステップＳ１６では、転送回数ＦＷに＋１を加算する。
【００４５】
ステップＳ１７では、マスタ・コントローラ回路４６は転送回数ＦＷが転送回数上限値ＦＷｍａｘ未満かどうかを判断する。転送回数ＦＷが転送回数上限値ＦＷｍａｘ未満の場合には、ステップＳ５にステップが移り、以後加算されたアドレスｍに従って、書き込み命令コードを付加されたスレーブアドレス、ワードアドレス、転送データの３データを基本単位として、データ転送メモリ３４はＩ２Ｃバスを介して、転送データを次々にスレーブデバイスに転送する。そして、転送回数ＦＷが転送回数上限値ＦＷｍａｘ以上の場合には、転送データはすべてスレーブデバイスに転送されたことになるので、データ転送メモリ３４はデータ転送を終了する。
【００４６】
もし、これらのステップ中にアクノリッジを検出できなかった場合には、ステップＳ１８にステップが移るので、ステップ１８でリトライ回数Ｔｒｙに＋１を加算する。そして、ステップＳ３にステップを移る。ステップＳ３では、マスタ・コントローラ回路４６はリトライ回数Ｔｒｙがリトライ回数上限値Ｔｒｙｍａｘ以下であるかどうかを判断し、リトライ回数Ｔｒｙがリトライ回数上限値Ｔｒｙｍａｘ以下であるか場合には、もう一度データ転送をはじめからやり直す。そうでない場合には、データ転送を中止する。
【００４７】
図５は、本実施の形態に係る不揮発性メモリ４４に格納されたデータの格納状態の他の一例である。不揮発性メモリ４４の各アドレスはそれぞれ８ビットのデータを格納することができ、読み出し／書き込み命令コードを付加されたスレーブアドレス、ワードアドレス及びＸバイトのデータの（Ｘ＋２）データを基本単位として、（Ｘ＋２）アドレスずつに格納されている。これらのデータは、データ転送メモリ３４がスレーブデバイスとして外部のマスタデバイスからＩ２Ｃバスを介して予め書き込まれており、スレーブアドレスに付加された読み出し／書き込み命令コードは、書き込み命令コード“Ｌ”になっている。このとき、データ転送メモリ３４は、図９に示したＩ２Ｃバスのページライトシーケンスに従ってデータ転送を行うが、そのときのデータ転送ステップは、基本的には図４と同じである。ただし、転送回数ＦＷは図５で示したところのＺに相当し、データ転送メモリ３４が転送する転送データのページ数を表わし、転送回数上限値ＦＷｍａｘはその上限値を表わす。また、ステップＳ１１の後、ステップＳ１２〜ステップＳ１４までをＸ回繰り返す。
【００４８】
以上のように、本発明のデータ転送メモリではマスタデバイスとして機能するため、データ転送メモリに格納した転送データを他のデバイスに転送するとき、外部にマスタデバイスとして機能するＣＰＵ等が不要であり、モジュールを構成する部品点数を削減できる。また、電源の投入等を契機として、モジュール単体でＤＳＰへＤＳＰ制御用プログラム及びカメラ調整データの転送（初期化）が可能となる。このとき、不揮発性メモリにおいては、従来からデータの書き込みのためにはタイミング制御が必須であるのでクロック発生回路を有しており、本発明のデータ転送メモリではマスタ・クロックジェネレータ回路４７は従来のクロック発生回路のほとんどの部分を流用する形で、基本クロックを発生させるための回路を含むことも可能であるため、データ転送メモリの回路規模、チップサイズの増大を最小限に抑制することができる。
【００４９】
なお、上記の本発明の実施の形態では、転送開始指令は電源投入検出回路４５による電源の投入の検出を契機として発生させているが、これに限らず外部からの命令によって発生させる構成としても良い。この場合には、電源投入検出回路４５は無くしても良い。
【００５０】
また、上記の本発明の実施の形態では、図３又は図５に示すように不揮発性メモリ４４に格納されたデータの格納状態は、データの基本単位毎にスレーブアドレスを変えることができるようにしているが、もちろん同じスレーブアドレスにすることも可能である。
【００５１】
さらに、データ転送メモリが転送データを転送するスレーブデバイスのスレーブアドレスが予め定められて場合には、マスタ・転送シーケンサ回路４８はスレーブアドレスを不揮発性メモリ４４から毎回読み出してＳＤＡ端子に出力させるのではなく、まずスレーブアドレスを不揮発性メモリ４４あるいは他の不揮発性メモリから読み出してレジスタ等に格納しておき、そのレジスタ等に格納されたスレーブアドレスを毎回ＳＤＡ端子に出力する構成としても良い。また、データ転送メモリが転送データを転送するスレーブデバイスのワードアドレスについても、例えば＋１ずつ加算するように予め定められている場合には、マスタ・転送シーケンサ回路４８はワードアドレスを不揮発性メモリ４４から読み出してＳＤＡ端子に出力させるのではなく、ワードアドレスを＋１ずつ加算して更新しながら直接ＳＤＡ端子に出力する構成としても良い。このようにすることにより、不揮発性メモリ４４のメモリ空間に格納するデータを転送する転送データのみにできるので、メモリ空間の効率的な利用ができる。
【図面の簡単な説明】
【００５２】
【図１】本発明の実施の形態に係るモジュールの構成を示すブロック図である。
【図２】本発明の実施の形態に係るデータ転送メモリの構成を示すブロック図である。
【図３】本発明のデータ転送メモリ内の不揮発性メモリに格納されたデータの格納状態の一例である。
【図４】本発明の実施の形態に係るモジュールのデータ転送ステップの一例である。
【図５】本発明のデータ転送メモリ内の不揮発性メモリに格納されたデータの格納状態の他の一例である。
【図６】Ｉ２Ｃバスの動作を説明する図である。
【図７】Ｉ２Ｃバスのバイトライトシーケンスを説明する図である。
【図８】Ｉ２Ｃバスのカレントアドレスリードシーケンスを説明する図である。
【図９】Ｉ２Ｃバスのページライトシーケンスを説明する図である。
【図１０】Ｉ２Ｃバスのシーケンシャルリードシーケンスを説明する図である。
【図１１】従来のモジュールの構成を示すブロック図である。
【図１２】従来のデータメモリの構成を示すブロック図である。
【符号の説明】
【００５３】
１０  ＣＣＤ、１１  Ａ／Ｄ変換回路、１２  ＤＳＰ、１４  データメモリ、３４  データ転送メモリ、２０，４０  入力バッファ、２１，４１  Ｉ／Ｏバッファ、２２，４２  コンディション・アクノリッジ検出回路、２３，４３  シリアル・コントロール回路、２４，４４  不揮発性メモリ、４５  電源投入検出回路、４６  マスタ・コントローラ回路、４７  マスタ・クロックジェネレータ回路、４８  マスタ・転送シーケンサ回路。
【図１】
0004791696.tif 000002
【図２】
0004791696.tif 000003
【図３】
0004791696.tif 000004
【図４】
0004791696.tif 000005
【図５】
0004791696.tif 000006
【図６】
0004791696.tif 000007
【図７】
0004791696.tif 000008
【図８】
0004791696.tif 000009
【図９】
0004791696.tif 000010
【図１０】
0004791696.tif 000011
【図１１】
0004791696.tif 000012
【図１２】
0004791696.tif 000013