(57)【要約】【課題】  フラッシュＲＯＭを使用した場合、一般的にフラッシュＲＯＭの消去回数には１００回の限定があり、調整工程でフラッシュＲＯＭを直接書き換える場合の制約となってしまう。【解決手段】  フラッシュＲＯＭの書き換えるデータを一旦、ＲＡＭに転送し、調整工程ではＲＡＭを書き換える様にし、調整工程が終了するときにＲＡＭ上の特定アドレスの書き換えと同時にＲＡＭデータの内容でフラッシュＲＯＭを書き換える様にする。【選択図】図１
2007226302.tif 000002
【特許請求の範囲】
【請求項１】
不揮発性メモリと、揮発性メモリと、これらのメモリに対しデータの読み書きを行う制御手段とを有するメモリ装置において、
前記制御手段は、前記不揮発性メモリのデータ書き換えを行う際、一旦、該不揮発性メモリ内の書き換えを行う全てのデータを前記揮発性メモリ内に転送し、前記不揮発性メモリのデータの書き換え要求が発生する都度、該不揮発性メモリ内のアドレスに対応する前記揮発性メモリ内のアドレスのデータを書き換えるとともに、該揮発性メモリの特定のアドレスへのデータの書き換えを行った場合は、前記不揮発性メモリを消去し、前記揮発性メモリ内のデータを該不揮発性メモリに書き込むことを特徴とするメモリ装置。
【請求項２】
不揮発性メモリと、揮発性メモリと、これらのメモリに対しデータの読み書きを行う制御手段とを有するメモリ装置において、
前記制御手段は、前記不揮発性メモリ内のデータ書き換えを行う際、一旦、該不揮発性メモリ内の書き換えを行う全てのデータを前記揮発性メモリ内に転送し、前記不揮発性メモリのデータの書き換え要求が発生する都度、該不揮発性メモリ内のアドレスに対応する前記揮発性メモリ内のアドレスのデータを書き換えるとともに、該揮発性メモリの特定のアドレスへ特定のデータを書き込んだ場合は、前記不揮発性メモリを消去し、前記揮発性メモリ内のデータを該不揮発性メモリに書き込むことを特徴とするメモリ装置。
【請求項３】
不揮発性メモリと、揮発性メモリと、これらのメモリに対しデータの読み書きを行う制御手段とを有するメモリ装置において、
前記制御手段は、前記不揮発性メモリの消去の要否を判断する判断手段を備え、前記不揮発性メモリのデータ書き換えを行う際、一旦、該不揮発性メモリ内の書き換えを行う全てのデータを前記揮発性メモリ内に転送し、前記不揮発性メモリのデータの書き換え要求が発生する都度、該不揮発性メモリ内のアドレスに対応する前記揮発性メモリ内のアドレスのデータを書き換えるとともに、該揮発性メモリの特定のアドレスへのデータの書き換えを行ったとき、前記判断手段が前記不揮発性メモリの消去を不要と判断していれば前記不揮発性メモリを消去せずに、消去を必要と判断していれば前記不揮発性メモリを消去した後、前記揮発性メモリ内のデータを該不揮発性メモリに書き込むことを特徴とするメモリ装置。
【請求項４】
不揮発性メモリと、揮発性メモリと、これらのメモリに対しデータの読み書きを行う制御手段とを有するメモリ装置において、
前記制御手段は、前記不揮発性メモリの消去の要否を判断する判断手段を備え、前記不揮発性メモリのデータ書き換えを行う際、一旦、該不揮発性メモリ内の書き換えを行う全てのデータを前記揮発性メモリ内に転送し、前記不揮発性メモリのデータの書き換え要求が発生する都度、該不揮発性メモリ内のアドレスに対応する前記揮発性メモリ内のアドレスのデータを書き換えるとともに、該揮発性メモリの特定のアドレスへ特定のデータを書き込んだとき、前記判断手段が前記不揮発性メモリの消去を不要と判断していれば前記不揮発性メモリを消去せずに、消去を必要と判断していれば前記不揮発性メモリを消去した後、前記揮発性メモリ内のデータを該不揮発性メモリに書き込むことを特徴とするメモリ装置。
【請求項５】
前記判断手段は、前記不揮発性メモリにおける書き換え前後のデータを比較し、０を１に書き換えるビットが存在しない場合に、前記不揮発性メモリの消去は不要と判断することを特徴とする請求項３または４に記載のメモリ装置。
【請求項６】
前記制御手段は、前記揮発性メモリ内の前記特定アドレスのデータと所定の値とを演算した結果に基づいて、前記特定アドレスのデータが前記特定のデータであるか否かの判定を行うことを特徴とする請求項２、４または５に記載の光学装置のメモリシステム。
【請求項７】
前記特定アドレスが、前記不揮発性メモリの最終アドレスに対応する前記揮発性メモリ内のアドレスであることを特徴とする請求項１〜６のいずれか１つに記載のメモリ装置。
【請求項８】
前記不揮発性メモリのデータ書き換えを行う際、前記揮発性メモリ内にデータを転送するデータ量は、該不揮発性メモリの消去可能な最小データ領域以下であることを特徴とする請求項１〜７のいずれか１つに記載のメモリ装置。
【請求項９】
外部装置からのデータを書き込むための不揮発性メモリを含む請求項１〜８のいずれか１つに記載のメモリ装置を備えることを特徴とする光学機器。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、電気的消去可能で電源が遮断されてもデータ内容を保持することが可能なＥＥＰＲＯＭやフラッシュＲＯＭ等の不揮発性メモリと、ＲＡＭと呼ばれる電源が遮断されると記憶されたデータが消去される揮発性メモリの双方を具備するメモリ装置に関する。
【背景技術】
【０００２】
不揮発性メモリであるフラッシュＲＯＭや揮発性メモリであるＲＡＭ等は、近年マイクロコンピュータ（以下マイコンと記す）に搭載されているのが一般的となっている。このマイコンは様々な機器に搭載され、例えばデジタル一眼レフカメラや交換レンズ等の光学機器においても制御を司る重要な部品の一部として位置付けられている。これらの光学機器は一般的な家電とは異なり、屋外で使用されることが多く、そのため機器としても温度や湿度などの外的な環境変化に対応する必要がある。これらの外的環境変化に対応するため光学機器は様々な電気的な調整が施され、それらの調整値は不揮発性メモリである外付けＥＥＰＲＯＭに書き込まれている。
【０００３】
ところで、通常使用されている外付けＥＥＰＲＯＭやマイコン内蔵のフラッシュＲＯＭは、その書き換え回数に制限が発生することが知られている。近年では外付けタイプのＥＥＰＲＯＭが１００万回程度、マイコン内蔵のフラッシュＲＯＭは１００回程度の性能保証が現実である。しかし、内蔵ＲＯＭの性能保証消去回数は外付けに対し１万分の１回に設定されているため内蔵フラッシュＲＯＭを使用する場合は注意が必要と考えられる。
【０００４】
そこで、このような特性のフラッシュＲＯＭ内蔵マイコン等を使用した場合の制御方式として、特許文献１ではフラッシュメモリ内の未使用領域のアドレス情報を参照してその領域にデータを書き込む方法が開示されている。これは実際にはフラッシュＲＯＭの書き換え回数が１００回では無く、消去回数が１００回の制限であることを考慮した制御方法である。つまり空いている領域を参照してそこにデータを書き込むのみであるため、フラッシュメモリの消去回数には影響しないことが記載されている。
【０００５】
また、このような内蔵フラッシュＲＯＭの特性を考慮し、特許文献２では１バイトの書き換え命令でＲＡＭに全てのフラッシュＲＯＭデータを転送している。その後、外部命令によりフラッシュＲＯＭを消去後、再びフラッシュＲＯＭにデータを書き込むことを特徴としている。
【特許文献１】特開２０００−１８２３８１号公報
【特許文献２】特開平６−９５９５７号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
ところで光学機器から見ると外付けＥＥＰＲＯＭと内蔵フラッシュＲＯＭはどちらも似た様な性質と考えられる。そこで外付けＥＥＰＲＯＭの代わりに内蔵タイプを使用することで外付けＥＥＰＲＯＭ分のコストアップを抑えられることになる。その場合、従来の光学機器では外付けＥＥＰＲＯＭが１００万回の書き換え回数制限であったため、ほとんど書き換え回数自体を気にする必要が無かった。つまり１バイトのデータ書き換えであっても書き換え回数を気しないためＥＥＰＲＯＭの内容を消去してから書き込む操作を行っていた。しかし、前述した様に書き換え回数がマイコン内蔵フラッシュＲＯＭの場合１００回程度であるため従来の外付けＥＥＰＲＯＭを使用した場合の制御は使用出来ない可能性がある。つまり書き換え回数が外付けＥＥＰＲＯＭに対して１万分の１回となるため何らかのメモリ制御上の工夫が必要となる。
【０００７】
前記特許文献１では、未使用領域にデータを書き込む方法で書き込み制限回数を緩和する旨の内容が開示されている。しかしこの場合、メモリの消去が出来ないことが前提となっているためフラッシュメモリの容量には消去回数に応じた、ある程度の空きが必要となるためＲＯＭ容量が増大してコスト面で不利となる可能性が高い。
【０００８】
また、前記特許文献２では、レジスタに格納された一連のデータをＲＡＭ上で書き換えると、ＥＥＰＲＯＭを消去して、ＲＡＭのデータをＥＥＰＲＯＭに書き込む。したがって、前記光学機器の電気的な調整を複数項目にわたって行う場合、ＥＥＰＲＯＭの書換要求が調整項目ごとに散発的に発生すると、散発的に発生する書換要求ごとに消去動作が行われてしまい、１００回程度の消去動作は容易に超過してしまう恐れがある。
【０００９】
更に光学機器では実際の書き換え方法に関しても工夫が必要である。前記特許文献２ではＲＡＭに全ての内蔵ＥＥＰＲＯＭデータを転送して消去動作や書き込み動作を個別に行うことを特徴としている。つまり全て内蔵されたメモリ及びそのメモリ内のプログラムが制御して書き込みを行っている。これはプログラムが内蔵されているため、自由にメモリの制御を管理することが可能である。
【００１０】
しかし、従来の光学機器においては外付けＥＥＰＲＯＭを装備し、そのＥＥＰＲＯＭへの書き換え時の指示は外部装置（書き換え工具）を使用するのが一般的であった。この外部装置は光学機器の調整を行い、その調整結果を外付けＥＥＰＲＯＭに書き込む一連の処理を行っている。この外部装置は１つの調整が終了したらそのデータをＥＥＰＲＯＭ消去後に書き込む指示を光学機器に指示していた。この場合、調整数が１００以上の場合はフラッシュＲＯＭの書き換え制限回数を超えてしまうことになる。単純にこの外部装置の仕様を変更することでも対応は可能ではあるが、この外部装置自体が世界中の複数の拠点で使用されている場合などには配布するのに時間とコストが掛かることになる。つまり、外付けＥＥＰＲＯＭに代わって内蔵フラッシュＲＯＭを使用した場合でも外部機器の仕様を変更することなく必要なデータの書き換えを行うシステムを構築する必要が出てきた。
本発明は、上述の従来例における問題点を解消することを課題とする。すなわち、光学機器に設けられ、その光学機器の調整データを記憶させるために特に好適なメモリ装置の提供を課題とする。
【課題を解決するための手段】
【００１１】
上記の課題を解決するためのメモリ装置は、不揮発性メモリと、揮発性メモリと、これらのメモリに対しデータの読み書きを行う制御手段とを有する。ここで、前記制御手段は、前記不揮発性メモリのデータ書き換えを行う場合に、一旦、該不揮発性メモリ内の全てのデータを前記揮発性メモリ内に転送する。そして、前記不揮発性メモリのデータの書き換え要求が発生する都度、該不揮発性メモリ内のアドレスに対応する前記揮発性メモリ内のアドレスのデータを書き換える。
【００１２】
そして、本発明に係る第１の制御手段は、さらに、該揮発性メモリの特定のアドレスへのデータの書き換えを行った場合は、前記不揮発性メモリを消去し、前記揮発性メモリ内のデータを該不揮発性メモリに書き込む。
また、本発明に係る第２の制御手段は、さらに、該揮発性メモリの特定のアドレスへ特定のデータを書き込んだ場合は、前記不揮発性メモリを消去し、前記揮発性メモリ内のデータを該不揮発性メモリに書き込む。
本発明に係る第３の制御手段は、さらに、前記不揮発性メモリの消去の要否を判断する判断手段を備える。そして、前記不揮発性メモリの消去が不要の場合は、前記不揮発性メモリを消去することなく、前記揮発性メモリ内のデータを該不揮発性メモリに書き込む。
【発明の効果】
【００１３】
本発明によれば、不揮発性メモリの書き換え制限回数を最小限に抑えることが可能である。
特に、フラッシュＲＯＭ内蔵マイコン等を用いた光学機器において、該光学機器の各種調整に伴うフラッシュＲＯＭの書き換えに伴う消去回数を最小限に抑えることが可能である。また、従来からの調整及び書き換え用の装置(外部装置)の仕様を変更することもないため、現状の装置をそのまま流用可能となる。
【実施例１】
【００１４】
本実施例では本発明をオートフォーカス式一眼レフカメラの交換レンズに応用した場合について詳細な説明を行う。
図１は交換レンズの内部を表すブロック図である。同図を例に本発明の動作に関する詳しい説明を以下に記述する。
【００１５】
同図において１０１はオートフォーカス式交換レンズ（以下レンズと記す）、１０２はレンズ１０１内に組み込まれた各種ユニット、アクチュエータ、センサ等を制御するためのマイクロコンピュータ（以下マイコンと記す）である。１０３はマイコン１０２内のマイクロプロセッサであるＣＰＵコア、１０４はＡＦ用のモータを含むモータユニット、１０５はモータユニット１０４でＡＦ動作した場合のモータの回転量を検出するための回転量検出器である。１０６はレンズ１０１に入光する光量を調節するための絞りユニット、１０７はレンズマイコン１０２に印加する電圧を検出し、所定電圧以下の場合はレンズマイコン１０２にリセット動作を行うための電圧検出器である。
【００１６】
１０８は手ぶれ補正を行うための振動ジャイロやアクチュエータ等を含む手ぶれ補正ユニット、１０９はカメラと通信するための通信インターフェースである。この通信インターフェース１０９はレンズ１０１をカメラに固定させるための不図示のマウントと呼ばれるにリングに固定されている。本実施例では通信インターフェース１０９と外部装置を電気的に連結して通信を行わせる構成となっている。１１０はレンズ１０１に関連する各種スイッチ類に対する操作を検出するスイッチ検出器であり、ＡＦモード切り換えスイッチや手ぶれ補正許可スイッチ等の状態検出を行う。１０４〜１１０の各ユニットや検出器はそれぞれがレンズマイコン１０２と電気的に接続され、レンズマイコン１０２はプログラムに添って処理を実行する様に動作する。
【００１７】
１１１はレンズマイコン１０２内の揮発性メモリであるＲＡＭ、１１２はレンズマイコン１０２内の不揮発性メモリであるフラッシュＲＯＭ、１１３は周辺ペリフェラルで、汎用Ｉ／Ｏポート、タイマ、Ａ／Ｄコンバータ等が含まれる。１１４はフラッシュＲＯＭ１１２内のＲＯＭの配置を表している。ＲＯＭ配置１１４はフラッシュとして消去可能なブロック１〜８ごとに配置されている。各ブロックのメモリ容量はブロック１〜２が４Ｋバイト、ブロック３〜８が３２Ｋバイトで、トータル約２００Ｋバイトとなっている。ブロック１には、主にレンズ１０１のモータユニット１０４〜スイッチ検出器１１０の各周辺ユニットが安定して動作を行うための調整データが書き込まれている。この調整データはレンズ１０１の個体ごとに値が変更されるべきもので、不図示の外部装置によってレンズ１０１内の各ユニットを測定して調整値をブロック１の予め決められたアドレスに書き込む操作を行っている。
【００１８】
図２は図１のＲＡＭ１１１の内部メモリ配置を表すＲＡＭマップ図である。レンズマイコン１０２としての最大メモリ容量は３２ＫバイトでアドレスＦＦ００００ＨからＦＦ７ＦＦＦＨまで配置されている。
図１と図２を参照しながら本実施例の動作について詳しく説明する。
不図示の外部装置からフラッシュＲＯＭ１１２（従来装置では外付けＥＥＰＲＯＭ）の書き換え指示を確認すると、レンズマイコン１０２はフラッシュＲＯＭ１１２のブロック１の４Ｋバイトデータを全てＲＡＭ１１１に転送する。ＲＡＭ１１１の転送アドレスは図２において、アドレスＦＦ００００ＨからＦＦ０ＦＦＦＨの４Ｋバイト領域に配置される。この領域をＲＡＭ１１１のフラッシュＲＯＭ領域とする。
【００１９】
次に外部装置はレンズマイコン１０２に１０４〜１１０の各ユニットを順次動作する指示を与え、レンズマイコン１０２は指示されたユニットの動作を行う。外部装置は各ユニットの動作に応じて不図示の外部測定装置でユニットの動作状態を検出し、各ユニットが最適な動作が行えるための調整値を導き出す。外部装置は導き出された調整値をユニットごとに設定された所定のＲＡＭ１１１のアドレスデータに書き込む操作を行う。
【００２０】
レンズマイコン１０２はこの書き込み指示でＲＡＭ１１１に書き込むかフラッシュＲＯＭ１１２に書き込むかを判断する（フラッシュＲＯＭに書き込む場合は一旦データを消去後に行う）。このどちらに書き込むかの判断は、本実施例では（１）ＲＡＭ１１１のフラッシュＲＯＭデータの最終アドレスであった場合、（２）前記（１）であり、かつ所定の調整値であった場合、のどちらか一方が成立したときのみとしている。例えば（１）は図２のＲＡＭ１１１のアドレスＨ’ＦＦ０ＦＦＦがフラッシュＲＯＭ１１２のブロック１の最終アドレスであるため、ここに調整値を書き込んだ場合のみＲＡＭ及びフラッシュＲＯＭに書き込む操作としている。また、（２）は（１）において書き込む調整値が所定値の場合のみＲＡＭ及びフラッシュＲＯＭに書き込む操作としている。
【００２１】
（１）と（２）の２つの判断を行っている理由として、（１）は従来の外部装置を使用した場合でも同じ操作となる様にしていて、かつ最終アドレスであろうと調整値として使用出来ることにある。（２）は（１）のままだと簡単にフラッシュに書き込むことが出来るため、外部装置に不具合が発生した場合などは書き込み回数が１００回を超えてしまうことを考えて、単純に書き換え出来ない仕様にしている。（２）は主に将来的に外部装置をメンテナンスするときに外部装置に組み込むことを前提としている。
【００２２】
また、（２）の書き込む調整値が所定値の場合の所定値とは、例えばＡＡＨ、ＢＢＨなどの調整値とは全く無関係な値であっても良い。また現在の値に対して＋１や−１などの演算を組み合わせることでも良い。例えば現在の値がＡＡＨの場合は書き込む値を＋１ならＡＢＨ、−１ならＡ９Ｈとする場合のみフラッシュＲＯＭに書き込むことで固定値よりも更に書き込み回数への不安を解消出来る。また、（１）でフラッシュＲＯＭ１１２に書き込む判断をＲＡＭ１１１の最終アドレスとしたが、最初または中間等のアドレスであってもなんら問題は無い。
【００２３】
図３は通信インターフェース９の内部構造を表している。レンズマイコン１０２に３本の電気信号が接続され通信インターフェース９を通してレンズ１０１のマウント側に接続されている。この３本の信号はマウントを通して通常はカメラと接続されて通信を行っているが本実施例では外部装置を使用してレンズマイコン１０２と通信する設定となっている。
図において、２０はカメラからの出力データＣＯＵＴを受信し、その出力をレンズマイコン１０２の入力端子ＬＩＮに接続するバッファである。２１はレンズマイコン１０２からの出力データＬＯＵＴを受信し、その出力をカメラの入力端子ＣＩＮに接続するバッファである。２２はカメラからの同期クロック出力ＣＣＬＫを受信し、その出力をレンズマイコン１０２の同期クロック入力端子ＬＣＬＫに接続するバッファである。レンズマイコン１０２ではクロック同期式のシリアル通信インターフェースとして設定されている。
【００２４】
図４はレンズマウント側から観測した図３のＣＯＵＴ、ＣＩＮ、ＣＣＬＫの波形を表している。レンズマイコン１０２はＣＣＬＫの立ち下りでＬＯＵＴにデータを出力し、ＣＣＬＫの立ち上がりでカメラデータＣＯＵＴをＬＩＮで読み取る仕様となっている。シリアルデータは８ビットを基本として認識され、通信自体は外部装置からの指示コマンドに応じたデータ数をお互いに通信して認識する方式となっている。レンズマイコン１０２は８ビットを基本としたシリアルデータを全て受信すると同図のＢｕｓｙと記載された波形の様にＣＣＬＫを一旦引き下げる動作を行う（この時カメラはＣＣＬＫを出力端子から入力端子に切り換えている）。この操作によってレンズマイコン１０２は受信したデータ処理を行い、処理が終了したらＣＣＬＫの引き下げを解除する。これによってＣＣＬＫは、ハイレベルに設定される。ＣＣＬＫは電源にプルアップされている（不図示）ためである。外部装置はこのＣＣＬＫがハイレベルに設定されるのを待ってからＣＣＬＫを出力端子に切り換えて次の通信を送信する。
【００２５】
図５は図４のシリアル通信波形を１６進数のデータに変換し、かつ時系列で通信内容を示した表である。カメラ出力ＣＯＵＴとレンズ出力ＣＩＮとしてどの様な通信がなされているかを以下に説明する。
図５において、（１）のＣＯＵＴはカメラコマンド通信で、カメラからの指示コマンドは１０Ｈである。レンズマイコン１０２は、この１０ＨをＲＡＭ１１１へのデータ書き込み指示（従来装置では外付けＥＥＰＲＯＭへの書き込み指示）と認識する。また、この１０Ｈは、通信するデータ数が３バイト（１バイトのデータと２バイトのアドレスデータ）であることを意味している。このときのＣＩＮは前回通信によって変わるためＸＸＨ（無意味）としている。（２）はカメラからの指示コマンド１０Ｈの１バイト目のデータで、ＲＡＭ１１１への書き込みデータを表している（従来は外付けＥＥＰＲＯＭデータ）。ＣＩＮはカメラからの指示コマンドがＲＡＭ１１１への書き込み指示であったためＲＡＭ１１１のフラッシュＲＯＭ領域の最終上位アドレスを返している。（３）はカメラからの指示コマンド１０Ｈの２バイト目のデータで、ＲＡＭ１１１への書き込み上位アドレスデータを表している。ＣＩＮはカメラからの指示コマンドがＲＡＭ１１１への書き込み指示であったためＲＡＭ１１１のフラッシュＲＯＭ領域の最終下位アドレスを返している。（４）はカメラからの指示コマンド１０Ｈの３バイト目のデータで、ＲＡＭ１１１への書き込み下位アドレスデータを表している。ＣＩＮはカメラからの指示コマンドをそのまま返している。（５）のＣＯＵＴはカメラコマンド通信で、カメラからの指示コマンドは００Ｈである。この００Ｈは現状維持を表し、レンズマイコン１０２は特に何も動作はしない。ＣＩＮはカメラからの指示コマンドをそのまま返している。
【００２６】
前述した通信内容を簡単に説明すると、カメラからはアドレス０１ＦＦＨのＲＡＭ（従来装置では外付けＥＥＰＲＯＭアドレス）にＡＡＨのデータ書き込み指示を行っていることになる。このときレンズマイコン１０２からはＲＡＭ１１１内のフラッシュＲＯＭ領域の最終アドレスが０ＦＦＦＨ（従来装置では外付けＥＥＰＲＯＭ容量）であることをカメラに伝達している。これによってカメラが領域外アドレスへのデータ書き込み指示を行わない様にしている。また、（４）（５）のＣＩＮでレンズマイコン１０２がカメラからの指示コマンド１０Ｈを返しているのは、レンズマイコン１０２が間違いなく１０Ｈを受信したことを表している。これが１０Ｈ以外の場合はカメラ側で通信エラー処理を行うことで、最初からカメラコマンドデータを送り直すことなども可能である。
レンズマイコン１０２は前述した一連の通信を行うことによって（４）のＣＯＵＴデータを受信後、指定されたＲＡＭのアドレスまたはデータ数によって変わるアドレスに所定データを書き込む操作を行っている。
【００２７】
なお、レンズマイコン１０２の種類によっては、ＲＡＭのアドレス配置が異なることも考えられる。そこでマイコンによって通信内容を変更する必要が無い様に外部装置から指示する書き込みアドレスデータは先頭から何番目のデータとしても良い。つまり従来の外付けＥＥＰＲＯＭ領域をそのまま消去可能ブロックと同等の取り扱いとして先頭アドレスを０（ゼロ）として順番に番号を割り振る。そこでその割り振った番号で書き込み指示を行うことで、ＲＡＭ上の転送アドレスが変わっても外部装置として共通化が可能となる。
【００２８】
図６は図５と同じ様な通信となっていてＣＩＮは図５と全く同じである。カメラからはアドレス０ＦＦＦＨのＲＡＭ（または先頭から０ＦＦＦＨ番目のデータの場所）にＤＡＨのデータ書き込み指示を行っていることになる。レンズマイコン１０２は（９）のＣＯＵＴデータを受信すると指定されたＲＡＭのアドレスまたはデータ数によって変わるアドレスに所定データを書き込む操作を行うことになる。
【００２９】
ここでレンズマイコン１０２は図５と図６の通信で異なる操作を（４）と（９）の受信後に行う。どちらも同じ外部装置からの指示で受信するデータ数が同じであるため、一旦、指定されたＲＡＭのアドレスに所定データを書き込む動作を行う。このとき図５は書き込み処理を終了する。しかし図６では更にフラッシュＲＯＭのブロック１の内容を消去する操作を行う。消去が完了したらＲＡＭのフラッシュＲＯＭ領域内のデータを全てブロック１に書き込む操作を行ってから書き込み処理を終了する。
【００３０】
図５と図６の違いはデータを書き込むＲＡＭアドレスと書き込みデータにある。例えばＲＡＭのフラッシュＲＯＭ領域の最終アドレスにＤＡＨというデータを書き込む場合は、フラッシュＲＯＭ１１２のブロック１のデータも更新するという条件がレンズマイコン１０２に付加されている。この操作を行うことで、調整データをフラッシュＲＯＭ１１２に書き込む場合、通常はＲＡＭのデータを更新する。そして最後のアドレスのデータを書き変えたことでフラッシュＲＯＭ１１２を一括してデータ更新させ、１００回の書き換え制限回数を守ることが可能となる。
【００３１】
なお、最終アドレス０ＦＦＦＨへのアクセスのみでフラッシュＲＯＭ１１２への書き換えを行うようにしても良い。この場合は、最終アドレス０ＦＦＦＨのデータをも調整データとして使用できるメリットがある。また、従来の外部装置はこのタイプとなっているため、仕様変更せずにそのまま使用が可能である。更にＤＡＨというデータに関しても現在のＲＡＭの最終アドレスデータが仮にＤＢＨまたはＤ９Ｈで、それぞれ−１、＋１などの演算した結果がＤＡＨとなることでフラッシュＲＯＭ１１２への書き換えを行う操作でも良い。これは演算を付加することで電源電圧異常やプログラム異常等によってマイコンとしての機能が不十分な状態での消去や書き込みを禁止することが出来るメリットがある。
【００３２】
図７はレンズ１０１の調整データをレンズ１０１に対して書き込む時の不図示の外部装置内プログラムフローチャート図である。同図によって外部装置がどの様に動作するかを説明する。
［ステップ１００］
不図示の外部装置はレンズ１０１を動作させてその動作状態を検出し、最適なレンズ動作を行わせるための調整値を導き出す。本ステップは、その調整値データをレンズ１０１に書き込む操作を行うためのフラッシュ書き換え制御ルーチン処理である。
【００３３】
［ステップ１０１］
外部装置はレンズ１０１に対し、ＲＡＭの書き換えコマンドを送信する（従来外部装置では外付けＥＥＰＲＯＭアドレス）。書き換えコマンドとは図５、図６で説明した様に例えば１０Ｈを意味している。
［ステップ１０２］
外部装置はレンズ１０１に対し、ＲＡＭの書き換えデータを送信する。書き換えデータとは図５、図６で説明した様に例えばＡＡＨ（図５）またはＤＡＨ（図６）を意味している。
【００３４】
［ステップ１０３］
外部装置はレンズ１０１に対し、データを書き込みたいＲＡＭの上位アドレスまたはＲＡＭに転送したフラッシュ領域の先頭からの上位データ数を送信する。書き換え上位アドレスまたは上位データ数とは図５、図６で説明した様に例えば０１Ｈ（図５）または０ＦＨ（図６）を意味している。
［ステップ１０４］
外部装置はレンズ１０１に対し、データを書き込みたいＲＡＭの下位アドレスまたはＲＡＭに転送したフラッシュ領域の先頭からの下位データ数を送信する。書き換え下位アドレスまたは下位データ数とは図５、図６で説明した様に例えばＦＦＨを意味している。
［ステップ１０５］
外部装置はフラッシュ書き換え制御ルーチンを終了する。
【００３５】
図８はレンズマイコン１０２の通信インターフェースからのシリアル通信を処理するための割り込みルーチンのフローチャート図である。同図を使って不図示の外部装置からの通信によってレンズマイコン１０２がどの様に動作するかを説明する。
［ステップ２００］
カメラまたは外部装置からのシリアル通信が入力されるとレンズマイコン１０２は本ステップの割り込み処理を行う。
【００３６】
［ステップ２０１］
レンズマイコン１０２はカメラまたは外部装置からのシリアル通信で受信した値がコマンドなのかデータなのかを判断する。図５または図６でも説明した様にコマンドとはカメラからの操作命令で、今回の通信より以前の通信で既にコマンドが送信されている。本ステップは、今回の通信で送信された値はその操作命令なのか、それともそのような操作に伴うデータなのかを判断している。図５、図６では１０Ｈがコマンド命令で、ＲＡＭ書き込みを行うことをレンズマイコン１０２に要求していて、この１０Ｈコマンドの後の３バイト通信はデータ受信を伴うことを意味している。つまり、レンズマイコン１０２は１０Ｈ通信＋３バイトのデータを受信した後でＲＡＭ書き込み処理を行うことになる。
コマンド通信の場合はステップ２０２へ移行し、以前にコマンドを受信した後のデータ受信要求であった場合はステップ２０６へ移行する。
【００３７】
［ステップ２０２］
コマンド通信であるため、レンズマイコン１０２はレンズの駆動要求命令かどうかを判断する。
［ステップ２０３］
ステップ２０２でレンズの駆動命令だった場合は、モータユニット４に対しレンズ駆動を開始する。レンズの駆動開始処理を行うとステップ２０９に移行して割り込み処理を終了する。
【００３８】
［ステップ２０４］
コマンド通信であるため、レンズマイコン１０２は絞りの駆動要求命令かどうかを判断する。
［ステップ２０５］
ステップ２０４で絞りの駆動命令だった場合は、絞りユニット６に対し絞り駆動を開始する。絞りの駆動開始処理を行うとステップ２０９に移行して割り込み処理を終了する。
本来はその他に手ぶれ補正等の様々な駆動命令コマンドやデータ送信要求命令が存在するが、本実施例とは無関係のため説明を省略する。
【００３９】
［ステップ２０６］
初めに受信した内容がコマンドなのかデータ要求なのかを判断する。コマンド命令であった場合は受信コマンドが１０Ｈかどうかを判断する。１０Ｈであった場合は次回の３バイトデータ受信時に図９のステップ３００のＡ処理に移行するためにフラッシュ操作に関する操作状態であることを記憶する。そしてレンズマイコン１０２はこの通信コマンドを受信後、フラッシュＲＯＭ１１２のブロック１全てのデータをＲＡＭのフラッシュＲＯＭ領域に転送してからステップ２０７に移行する。また、通信コマンドが１０Ｈ以外の場合でもステップ２０７に移行する。
また、受信した内容がデータ要求であった場合、フラッシュ操作に関する操作状態であるかどうかを判断する。フラッシュ操作に関する操作状態ならステップ３００のＡ処理に移行し、フラッシュ操作以外ならステップ２０７に移行する。
【００４０】
［ステップ２０７］
レンズや絞りの駆動命令、フラッシュの書き込み命令以外のコマンド通信であるため、レンズマイコン１０２は通信されたコマンドから何の要求命令なのか解析を行う。
［ステップ２０８］
ステップ２０１でコマンド通信ではなくデータ受信要求だった場合、或いはステップ２０７で解析した結果、データの受信要求、データの送信要求、その他等を判断して次の通信に必要な処理を行う。本実施例では無関係な通信であるため詳しい説明を省略する。
［ステップ２０９］
レンズマイコン１０２のシリアル通信割り込み処理を終了する。
【００４１】
図９は図８のレンズマイコン１０２の通信インターフェースからのシリアル通信処理でフラッシュ書き込みに関する操作であった場合の処理ルーチンである。同図を元に更に詳しい説明を続ける。
［ステップ３００］
図８のステップ２０６で通信の解析を行った結果、データ受信でかつフラッシュＲＯＭの操作に関する状態であった場合の移行先である。このステップでの処理はフラッシュ書き込み命令コマンド１０Ｈを受信した場合、その後の３バイトのデータ受信までをこの処理で行う。
【００４２】
［ステップ３０１］
受信したデータが１バイト目のＲＡＭへの書き込みデータかどうかを判断する。この判断方法として通信回数をカウントするためのカウンタを設け、３バイトのデータ受信の内で何回目の受信データかを演算すれば良いことになる。１バイト目のデータなら書き込みデータとして認識してステップ３０２へ移行する。
［ステップ３０２］
受信したデータをＲＡＭへの書き込みデータとしてＲＡＭに記憶する。ここで記憶する場所は図２のＲＡＭマップ図の通常領域となる。フラッシュＲＯＭ領域に記憶するのはこの後の２バイトのアドレス情報を受信してからとなる。
【００４３】
［ステップ３０３］
受信したデータがＲＡＭへの書き込み上位アドレスかどうかを判断する（先頭からのデータ数でも良い）。これは通信回数をカウントするためのカウンタで２バイト目のデータなら上位アドレスデータとして認識してステップ３０４へ移行する。
［ステップ３０４］
受信したデータをＲＡＭへの書き込み上位アドレスとしてＲＡＭに記憶して図８のＢ位置へ移行する。ここで記憶する場所は図２のＲＡＭマップ図の通常領域となる。
【００４４】
［ステップ３０５］
フラッシュＲＯＭの操作に関する状態でこのステップまで進んだということは通信回数のカウンタが３バイト目であることを意味し、つまり受信したデータはＲＡＭへの書き込み下位アドレスであると判断出来る。そこで受信した下位アドレスとステップ３０４で記憶した上位アドレスを読み出し、ＲＡＭへの書き込みアドレスを生成する。そして生成したアドレスが図２のＦＦ０ＦＦＦ（フラッシュ領域の最終ＲＡＭアドレス）であるかを判断する（上位ＦＦＨはアドレス生成時に付加する）。フラッシュ領域の最終ＲＡＭアドレスでなかった場合はステップ３０７に移行する。
【００４５】
［ステップ３０６］
ステップ３０５で外部装置からの命令がフラッシュ領域の最終ＲＡＭアドレスへのデータ書き込みであった場合は、ステップ３０２で記憶したデータを読み出し、予め設定してある所定値と比較する。所定値と一致しなかった場合はステップ３０７に移行する。この所定値とは、例えば図６の説明で記述したＤＡＨの様な固定された値や、現在の最終アドレスに記憶されている値を＋１または１する等の演算を伴った値でも良い。またこのステップ３０６は図６でも説明した様に従来の外部装置を使用した場合でも同じ操作で書き込みが出来ることを前提にすると削除しても構わない。このステップを削除することによって最終アドレスをも調整値として使用出来ることがメリットとなる。但し、外部装置に不具合があった場合は、最終アドレスへのアクセスで簡単にフラッシュＲＯＭに書き込まれるため１００回の書き込み回数制限を越えることがデメリットとなる。
【００４６】
［ステップ３０７］
カメラまたは外部装置から指定されたＲＡＭアドレスに指定されたデータを書き込んで図８のＢ位置へ移行する。
［ステップ３０８］
カメラまたは外部装置から指定されたＲＡＭのフラッシュＲＯＭ領域の最終アドレスに指定されたデータを一旦書き込む。次にフラッシュＲＯＭ１１２のブロック１を消去する。
［ステップ３０９］
フラッシュＲＯＭ１１２のブロック１の消去が終了したことを確認し、ＲＡＭ１１１内のフラッシュＲＯＭ領域を全てブロック１に書き込む。これによって調整値をフラッシュＲＯＭに記憶し、レンズ１０１の制御を行う時に使用できる。
［ステップ３１０］
図８のＢ位置へ移行し、通信割り込み処理を終了する。
【実施例２】
【００４７】
実施例１ではＲＡＭ１１１のフラッシュＲＯＭ領域の最終アドレスに所定のデータを書き込んだ場合のみフラッシュＲＯＭ１１２の特定ブロックを消去し、ＲＡＭデータの書き込み操作を行っていた。本実施例では更にフラッシュＲＯＭの消去や書き込みについて別の方法について説明する。
ここでフラッシュＲＯＭの消去や書き込みについて説明すると、ＲＯＭの消去とは通常、消去されたアドレスのデータがＦＦＨとなるものが多く、つまりこれは全てのビットをＨｉ状態にしていることになる。また、ＲＯＭへの書き込みとは、このデータのＨｉ状態をＬｏ状態にすることを意味するのが一般的である。これらのことを踏まえると、フラッシュＲＯＭの特定アドレスのデータがＦ０Ｈの場合、フラッシュＲＯＭの消去をせずに０ＦＨを書き込むと、書き込まれたアドレスデータは００Ｈになることになる。つまり、書き込まれているデータのビット状態がＨｉであればビット単位でのＬｏ書き込みが可能ということになる。これは書き込むデータによってはフラッシュＲＯＭの消去が不必要となる場合があり、そのメリットとして背景技術でも説明した様に消去回数の１００回を消費しなくても良いことになる。
【００４８】
以上のことを踏まえて、本実施例について説明を続ける。
ハードウエア構成は、図１〜図４を用いて説明した実施例１と同様である。
以下、実施例１に対し、追加される機能についてのみ説明する。
レンズマイコン１０２は外部装置からの書き込み指示でＲＡＭに書き込むかフラッシュＲＯＭに書き込むかを判断する。この時の判断方法としてＲＡＭ１１１のフラッシュＲＯＭ領域の最終アドレスであるアドレスＦＦ０ＦＦＦＨへのアクセスとしていた。
【００４９】
ここで、実施例１ではフラッシュＲＯＭへの書き込み動作としてはフラッシュＲＯＭ１１２のブロック１を一旦消去してからＲＡＭ１１１のフラッシュＲＯＭ領域内のデータを書き込むことになる。この場合、前述した様にフラッシュＲＯＭの消去が必要無いケースも有り得る。そこで単純に消去するのでは無く、現在の値と書き込むべき値を比較し、消去の必要が無い場合は消去せずに書き込み操作だけで良いため１００回の制限に余裕を持たせることが可能となる。例えば書き込みを行うアドレスのデータがＦＥＨで書き込むデータがＡ２Ｈであった場合、ＦＥＨは２進数で１１１１１１１０である。同じくＡ２Ｈは１０１０００１０である。両方の値を見比べると、１を０にすることは可能であるため、ＦＥＨをＡ２Ｈにすることは問題無いことが分かる。つまりこの場合、消去操作をせずにフラッシュＲＯＭ１１２への書き込みを行うことが出来ることになる。
【００５０】
以上のことを踏まえて本実施例ではフラッシュＲＯＭ領域の最終アドレスであるアドレスＦＦ０ＦＦＦＨへのアクセスでは実施例１と同じで消去後に書き込みを行い、アドレスＦＦ０ＦＦＥＨへのアクセスでは書き込み操作のみとする。更に、例えばアドレスＦＦ０ＦＦＤへのアクセスではフラッシュＲＯＭ１１２のブロック１の消去操作のみと、それぞれアクセスするアドレスにおける動作を分けることを行う。
【００５１】
図５、図６、図７、図８は実施例１と同じであるため説明を省略する。但し、図８ステップ２０９のフラッシュ操作が選択された場合、移行先は図１０のステップ４００のＡとなる。
なお、本実施例の様に書き込みや消去などの操作方法が増えたことで本来なら外部装置からの通信コマンドが増えることも考えられる。例えば通信コマンドが１０Ｈなら消去と書き込みを行い、１１Ｈなら書き込みのみ、１２Ｈなら消去とすることも考えられる。しかし、無闇に通信コマンドを増加したくない場合は本実施例の様にアクセスするアドレスで操作を変える方法が得策と思われる。
【００５２】
図１０は図８のレンズマイコン１０２の通信インターフェースからのシリアル通信処理でフラッシュ書き込みに関する操作であった場合の処理ルーチンである。同図を元に本実施例について、更に詳しい説明を続ける。
［ステップ４００］
図８のステップ２０６で通信の解析を行った結果、データ受信でかつフラッシュＲＯＭの操作に関する状態であった場合の移行先である。このステップでの処理はフラッシュ書き込み命令コマンド１０Ｈを受信した場合、その後の３バイトのデータ受信までをこの処理で行う。
【００５３】
［ステップ４０１］
受信したデータがＲＡＭへの書き込みデータかどうかを判断する。これは通信回数をカウントするためのカウンタを設け、３バイトのデータ受信の内で何回目の受信データかを演算すれば良いことになる。１バイト目のデータなら書き込みデータとして認識してステップ４０２へ移行する。
［ステップ４０２］
受信したデータをＲＡＭへの書き込みデータとしてＲＡＭに記憶する。ここで記憶する場所は図２のＲＡＭマップ図の通常領域となる。フラッシュ領域に記憶するのはこの後の２バイトのアドレス情報を受信してからとなる。
【００５４】
［ステップ４０３］
受信したデータがＲＡＭへの書き込み上位アドレスかどうかを判断する。これは通信回数をカウントするためのカウンタで２バイト目のデータなら上位アドレスデータとして認識してステップ４０４へ移行する。
［ステップ４０４］
受信したデータをＲＡＭへの書き込み上位アドレスとしてＲＡＭに記憶して図８のＢ位置へ移行する。ここで記憶する場所は図２のＲＡＭマップ図の通常領域となる。
【００５５】
［ステップ４０５］
フラッシュＲＯＭの操作に関する状態でこのステップまで進んだということは通信回数のカウンタが３バイト目であることを意味し、つまり受信したデータはＲＡＭへの書き込み下位アドレスであると判断出来る。そこで受信した下位アドレスとステップ４０４で記憶した上位アドレスを読み出し、ＲＡＭへの書き込みアドレスを生成する。そして生成したアドレスが図２のＦＦ０ＦＦＦＨ（フラッシュ領域の最終ＲＡＭアドレス）であるかを判断する（上位ＦＦＨはアドレス生成時に付加する）。フラッシュ領域の最終ＲＡＭアドレスでなかった場合はステップ４１１に移行する。
【００５６】
［ステップ４０６］
ステップ４０５でカメラまたは外部装置からの命令がフラッシュ領域の最終ＲＡＭアドレスへのデータ書き込みであった場合は、ステップ４０２で記憶したデータを読み出し、予め設定してある所定値と比較する。所定値と一致しなかった場合はステップ４０７に移行する。この所定値とは、例えば図６の説明で記述したＤＡＨの様な固定された値や、現在の最終アドレスに記憶されている値を＋１または−１する等の演算を伴った値でも良い。またこのステップ４０６は図６でも説明した様に従来の外部装置を使用した場合でも同じ操作で書き込みが出来ることを前提にすると削除することでも構わない。このステップを削除することによって最終アドレスをも調整値として使用出来ることがメリットとなる。但し、外部装置に不具合があった場合は、最終アドレスへのアクセスで簡単にフラッシュＲＯＭに書き込まれるため１００回の書き込み回数制限を越えることがデメリットとなる。
【００５７】
［ステップ４０７］
カメラまたは外部装置から指定されたＲＡＭアドレスに指定されたデータを書き込んで図８のＢ位置へ移行する。
［ステップ４０８］
カメラまたは外部装置から指定されたＲＡＭのフラッシュＲＯＭ領域の最終アドレスに指定されたデータを一旦書き込む。次にフラッシュＲＯＭ１１２のブロック１を消去する。
［ステップ４０９］
フラッシュＲＯＭ１１２のブロック１の消去が終了したことを確認し、ＲＡＭ１１１内のフラッシュＲＯＭ領域を全てブロック１に書き込む。これによって調整値をフラッシュＲＯＭに記憶し、レンズ１０１の制御を行う時に使用できる。
［ステップ４１０］
図８のＢ位置へ移行し、通信割り込み処理を終了する。
【００５８】
［ステップ４１１］
ステップ４０５で生成したアドレスがＲＡＭ１１１内のフラッシュＲＯＭ領域の最終アドレスで無かった場合は、生成したアドレスが消去用のアドレスかどうかを判断する（例えばアドレスＦＦ０ＦＦＤＨ）。
［ステップ４１２］
ステップ４０５で生成したアドレスがＲＡＭ１１１内のフラッシュＲＯＭ領域消去用のアドレスだった場合、フラッシュＲＯＭ１１２のブロック１を消去して図８のＢ位置へ移行する。
【００５９】
［ステップ４１３］
ステップ４０５で生成したアドレスがＲＡＭ１１１内のフラッシュＲＯＭ領域書き込み用のアドレスだった場合（例えばアドレスＦＦ０ＦＦＥＨ）、ＲＡＭ１１１内のフラッシュＲＯＭ領域を全てブロック１に書き込んで図８のＢ位置へ移行する。
これによって調整値をフラッシュＲＯＭに記憶し、レンズ１０１の制御を行う時に使用できる。
なお、フラッシュＲＯＭ１１２のブロック１を消去せずに書き込みを行うかどうかは外部装置で判断することになる。この方法として、一旦、フラッシュのＲＯＭの内容を読み出し、データを書き込むアドレスの現在データと書き込むデータとを比較し、各ビットでＨｉに設定する必要がない場合のみ直接書き込むことで良い。その代わりに１ビットでもＨｉに設定する必要がある場合は消去動作が必要となる。
【００６０】
また、上述においては、説明上ＲＡＭのアドレスを直接記載しているが、このアドレス値に限らず、最終アドレスではなく、最初や中間アドレスでも良い。また、ＲＡＭのアドレスに限らず、便宜上ならフラッシュＲＯＭアドレスや従来から使用している不揮発性メモリ（例えばＥＥＰＲＯＭ）を使用していたときのデータ数やアドレスでもなんら問題は無い。
【産業上の利用可能性】
【００６１】
上述の実施例においては、本発明を交換レンズに適用した場合について説明した。しかし、交換レンズ以外にも、特にフラッシュＲＯＭ仕様のマイコンを使用した産業機器であれば同様な構成やシステムを構築することができる。
【図面の簡単な説明】
【００６２】
【図１】本発明の一実施例に係る交換レンズのブロック構成を示す図である。
【図２】図１におけるＲＡＭのメモリ配置図である。
【図３】図１における通信インターフェースの内部構造を示す回路図である。
【図４】図３の通信インターフェースにおける通信波形図である。
【図５】図３の通信インターフェースを介しての通信データの一例を示す図表である。
【図６】図３の通信インターフェースを介しての通信データの他の例を示す図表である。
【図７】外部装置のフローチャート図である。
【図８】図１におけるレンズマイコンの割り込み処理フローチャート図である。
【図９】図８に続く本発明の実施例１に係る処理のフローチャート図である。
【図１０】図８に続く本発明の実施例２に係る処理のフローチャート図である。
【符号の説明】
【００６３】
１０１  交換レンズ
１０２  マイクロコンピュータ
１０３  ＣＰＵコア
１０４  モータユニット
１０５  回転量検出器
１０６  絞りユニット
１０７  電圧検出器
１０８  手振れ補正ユニット
１０９  通信インターフェース
１１０  各種スイッチ類
１１１  ＲＡＭ
１１２  フラッシュＲＯＭ
１１３  周辺ペリフェラル
１１４  消去可能ブロック
【図１】
2007226302.tif 000003
【図２】
2007226302.tif 000004
【図３】
2007226302.tif 000005
【図４】
2007226302.tif 000006
【図５】
2007226302.tif 000007
【図６】
2007226302.tif 000008
【図７】
2007226302.tif 000009
【図８】
2007226302.tif 000010
【図９】
2007226302.tif 000011
【図１０】
2007226302.tif 000012