(57)【要約】【課題】データ転送時の転送速度および通信プロトコルを適切に制御する電子機器を提供する。【解決手段】電子機器１は、第１記録媒体２０９と第２記録媒体２５０との間でデータを転送するデータ転送手段２０８、２１１と、転送手段２０８、２１１へ転送時の通信プロトコルおよび転送速度を指示する指示手段２１１と、データ転送手段２０８、２１１によるデータ転送の成否を判定する判定手段２１１と、判定手段２１１が判定対象としたデータ転送時の通信プロトコル、転送速度、および判定手段２１１による判定結果に応じて、次の転送時の通信プロトコルおよび転送速度を決定するように指示手段２１１を制御する制御手段２１１とを備える。【選択図】図１
2008271075.tif 000002
【特許請求の範囲】
【請求項１】
第１記録媒体と第２記録媒体との間でデータを転送するデータ転送手段と、
前記転送手段へ前記転送時の通信プロトコルおよび転送速度を指示する指示手段と、
前記データ転送手段によるデータ転送の成否を判定する判定手段と、
前記判定手段が判定対象としたデータ転送時の通信プロトコル、転送速度、および前記判定手段による判定結果に応じて、次の転送時の通信プロトコルおよび転送速度を決定するように前記指示手段を制御する制御手段とを備えることを特徴とする電子機器。
【請求項２】
請求項１に記載の電子機器において、
前記通信プロトコルは高速用通信プロトコルおよび該高速用通信プロトコルよりも低速の転送速度を有する低速用通信プロトコルを含み、
前記高速用通信プロトコルおよび低速用通信プロトコルのうち少なくとも一方は転送速度を変更可能に構成されていることを特徴とする電子機器。
【請求項３】
請求項２に記載の電子機器において、
前記制御手段は、前記判定手段により前記転送の失敗が判定された場合、複数の転送速度に変更可能な同一の通信プロトコル内で前記転送速度を下げるように前記指示手段を制御することを特徴とする電子機器。
【請求項４】
請求項３に記載の電子機器において、
前記制御手段は、複数の転送速度に変更可能な前記高速用通信プロトコルにおいて前記転送速度が最低速の場合、前記高速用通信プロトコルから前記低速用通信プロトコルへ変更するように前記指示手段を制御することを特徴とする電子機器。
【請求項５】
請求項２に記載の電子機器において、
前記制御手段は、前記判定手段により前記転送の成功が判定された場合、前記転送速度を上げるように前記指示手段を制御することを特徴とする電子機器。
【請求項６】
請求項５に記載の電子機器において、
前記制御手段は、複数の転送速度に変更可能な前記低速用通信プロトコルにおいて前記転送速度が最高速の場合、前記低速用通信プロトコルから前記高速用通信プロトコルへ変更するように前記指示手段を制御することを特徴とする電子機器。
【請求項７】
請求項５に記載の電子機器において、
前記制御手段は、前記判定手段により前記転送の成功が連続して所定回数判定された場合、前記転送速度を上げるように前記指示手段を制御することを特徴とする電子機器。
【請求項８】
請求項３に記載の電子機器において、
前記判定手段は少なくとも巡回冗長検査を行い、
前記制御手段は、前記判定手段が前記巡回冗長検査の不可を理由に前記転送の失敗を判定した場合、当該判定時と同一の通信プロトコルおよび転送速度で当該転送をやり直すように前記指示手段を制御することを特徴とする電子機器。
【請求項９】
請求項８に記載の電子機器において、
前記制御手段は、前記判定手段により前記転送の失敗が連続して所定回数判定された場合、前記転送速度を下げるように前記指示手段を制御することを特徴とする電子機器。
【請求項１０】
請求項３に記載の電子機器において、
前記判定手段は少なくとも巡回冗長検査を行い、
前記制御手段は、前記判定手段が前記巡回冗長検査の不可以外を理由に前記転送の失敗を判定した場合、当該判定時の通信プロトコルが前記高速用の通信プロトコルであれば前記低速用の通信プロトコルへ変更するように前記指示手段を制御することを特徴とする電子機器。
【請求項１１】
請求項１〜請求項１０のいずれか一項に記載の電子機器であって、
被写体像を撮像し、画像データを出力する撮像手段を備えることを特徴とする電子カメラ。
【請求項１２】
第１記録媒体と第２記録媒体との間でデータを転送させるデータ転送処理と、
前記データを転送させる通信プロトコルおよび転送速度を指示する指示処理と、
前記データ転送処理の成否を判定する判定処理と、
前記判定処理の判定対象としたデータ転送時の通信プロトコル、転送速度、および前記判定処理による判定結果に応じて、次の転送時の通信プロトコルおよび転送速度を決定する決定処理とをコンピュータ装置に実行させることを特徴とするデータ転送プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、電子機器、電子カメラおよびデータ転送プログラムに関する。
【背景技術】
【０００２】
特許文献１には、ＵｌｔｒａＤＭＡモードでデータを転送中にデータ転送エラーを生じると、通信プロトコルをＰＩＯモードに変更する技術が開示されている。特許文献２には、データを転送中にデータ転送エラーを生じると、設定された転送速度より遅い転送速度でデータ転送を行う技術が開示されている。
【０００３】
【特許文献１】特開２００３−３２３３９７号公報
【特許文献２】特開平１１−４５１５７号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
転送速度および通信プロトコルの双方を変更可能に構成する場合、どのように変更制御すべきかが問題になる。
【課題を解決するための手段】
【０００５】
（１）請求項１に記載の発明による電子機器は、第１記録媒体と第２記録媒体との間でデータを転送するデータ転送手段と、転送手段へ転送時の通信プロトコルおよび転送速度を指示する指示手段と、データ転送手段によるデータ転送の成否を判定する判定手段と、判定手段が判定対象としたデータ転送時の通信プロトコル、転送速度、および判定手段による判定結果に応じて、次の転送時の通信プロトコルおよび転送速度を決定するように指示手段を制御する制御手段とを備えることを特徴とする。
（２）請求項１に記載の電子機器において、通信プロトコルは高速用通信プロトコルおよび該高速用通信プロトコルよりも低速の転送速度を有する低速用通信プロトコルを含み、高速用通信プロトコルおよび低速用通信プロトコルのうち少なくとも一方は転送速度を変更可能に構成されていてもよい。
（３）請求項２に記載の電子機器において、制御手段は、判定手段により転送の失敗が判定された場合、複数の転送速度に変更可能な同一の通信プロトコル内で転送速度を下げるように指示手段を制御することもできる。
（４）請求項３に記載の電子機器において、制御手段は、複数の転送速度に変更可能な高速用通信プロトコルにおいて転送速度が最低速の場合、高速用通信プロトコルから低速用通信プロトコルへ変更するように指示手段を制御することもできる。
（５）請求項２に記載の電子機器において、制御手段は、判定手段により転送の成功が判定された場合、転送速度を上げるように指示手段を制御することもできる。
（６）請求項５に記載の電子機器において、制御手段は、複数の転送速度に変更可能な低速用通信プロトコルにおいて転送速度が最高速の場合、低速用通信プロトコルから高速用通信プロトコルへ変更するように指示手段を制御することもできる。
（７）請求項５に記載の電子機器において、制御手段は、判定手段により転送の成功が連続して所定回数判定された場合、転送速度を上げるように指示手段を制御することもできる。
（８）請求項３に記載の電子機器において、判定手段は少なくとも巡回冗長検査を行い、制御手段は、判定手段が巡回冗長検査の不可を理由に転送の失敗を判定した場合、当該判定時と同一の通信プロトコルおよび転送速度で当該転送をやり直すように指示手段を制御することもできる。
（９）請求項８に記載の電子機器において、制御手段は、判定手段により転送の失敗が連続して所定回数判定された場合、転送速度を下げるように指示手段を制御することもできる。
（１０）請求項３に記載の電子機器において、判定手段は少なくとも巡回冗長検査を行い、制御手段は、判定手段が巡回冗長検査の不可以外を理由に転送の失敗を判定した場合、当該判定時の通信プロトコルが高速用の通信プロトコルであれば低速用の通信プロトコルへ変更するように指示手段を制御することもできる。
（１１）請求項１１に記載の電子カメラは、請求項１〜請求項１０のいずれか一項に記載の電子機器であって、被写体像を撮像し、画像データを出力する撮像手段を備えることを特徴とする。
（１２）請求項１２に記載の発明によるデータ転送プログラムは、第１記録媒体と第２記録媒体との間でデータを転送させるデータ転送処理と、データを転送させる通信プロトコルおよび転送速度を指示する指示処理と、データ転送処理の成否を判定する判定処理と、判定処理の判定対象としたデータ転送時の通信プロトコル、転送速度、および判定処理による判定結果に応じて、次の転送時の通信プロトコルおよび転送速度を決定する決定処理とを実行させることを特徴とする。
【発明の効果】
【０００６】
本発明によれば、データ転送時の通信プロトコルおよび転送速度を適切に制御することができる。
【発明を実施するための最良の形態】
【０００７】
以下、図面を参照して本発明を実施するための最良の形態について説明する。
（第一の実施形態）
図１は、本発明の第一の実施形態による電子カメラの要部構成を説明するブロック図である。図１において、電子カメラ１は、撮影レンズ２０１と、撮像素子２０２と、ＣＣＤドライバ２０３と、プリプロセス回路２０４と、Ａ／Ｄ変換回路２０５と、ＡＳＩＣ２０６と、カードＩ／Ｆ２０８と、メモリ２０９と、カラーモニタ２１０と、ＣＰＵ２１１と、操作部材２１２と、電源回路２１３とを備えている。カードＩ／Ｆ２０８には、メモリカード２５０が着脱自在に装着される。
【０００８】
撮影レンズ２０１は、撮像素子２０１の撮像面上に被写体像を結像する。撮像素子２０２は、たとえばＣＣＤイメージセンサによって構成される。撮像素子２０２は、被写体像を撮像し、アナログ画像信号をプリプロセス回路２０４へ出力する。ＣＣＤドライバ２０３は、撮像素子２０２へ所定の駆動信号を供給する。
【０００９】
プリプロセス回路２０４は、アナログ画像信号に対するアナログ処理（ゲインコントロールなど）を行う。Ａ／Ｄ変換回路２０５は、アナログ処理後の画像信号をディジタル信号に変換する。デジタル画像信号は、ＡＳＩＣ２０６へ出力される。
【００１０】
ＡＳＩＣ２０６は画像処理回路として機能し、入力されたディジタル画像信号に対して所定の画像処理を施す。画像処理には、たとえば、輪郭強調や色温度調整（ホワイトバランス調整）処理、画像信号に対するフォーマット変換処理、画像圧縮処理などが含まれる。ＡＳＩＣ２０６はさらに、撮像画像をカラーモニタ２１０に表示させるための表示データを作成する。
【００１１】
カラーモニタ２１０は液晶表示パネルなどによって構成され、、ＡＳＩＣ２０６から入力される表示データによる再生画像を表示する。電源回路２１３は、電子カメラ１の各部に必要な電力を供給する。操作部材２１２は、レリーズボタンや再生ボタンなどを含み、各操作部材に応じた操作信号をＣＰＵ２１１へ出力する。
【００１２】
ＣＰＵ２１１は、入力された操作信号に応じて電子カメラ１内の各部へ指示を送り、電子カメラ１の撮影動作や再生動作を制御する。メモリ２０９は、画像処理前後および画像処理途中のデータを一時的に格納する他、メモリカード２５０へ記録する前の画像ファイルを格納したり、メモリカード２５０から読み出された画像ファイルを格納したりするバッファメモリとして使用される。ＡＳＩＣ２０６で生成された画像ファイルは、メモリ２０９に一時的に記録された後、カードＩ／Ｆ２０８を介してメモリカード２５０に記録される。メモリカード２５０へ記録する前に、このバッファメモリ２０９に各画像は一時的に記録されているため、後述の転送エラー（メモリカード２５０へ記録するときに発生するエラー）が生じたとしても、何度でも転送をやり直すことができる。
【００１３】
カードＩ／Ｆ２０８はＤＭＡ(Direct Memory Access)コントローラ２２０を含み、ＣＰＵ２１１からの指示に応じてメモリカード２５０に対するアクセス制御を行う。
【００１４】
本実施形態は、メモリカード２５０およびメモリ２０９間で行われるデータ転送に特徴を有するため、メモリカード２５０に対するアクセスを中心に説明する。メモリカード２５０に対するアクセスは、メモリカード２５０に画像ファイルなどを記録する場合や、メモリ２５０に記録されている画像ファイルなどを読み出す場合に行われる。
【００１５】
図２は、電子カメラ１がメモリカード２５０との間のデータ転送に用いる通信プロトコルを説明する図である。電子カメラ１は、たとえば、６通りの通信方法（２種類の通信プロトコル）のいずれか１つを択一的に選択して用いる。一方の通信プロトコルであるＵＤＭＡ（ＵｌｔｒａＤＭＡ）は、コンピュータ装置内でメモリや記憶装置間のデータ送受信のために規格化された通信プロトコルである。ＵＤＭＡ方式は、ＤＭＡコントローラ２２０にデータ転送を管理させ、ＣＰＵ２１１を介さずにデータ転送を行う。データ転送にＣＰＵ命令（機械語）を用いないため、ＣＰＵ２１１のクロック信号より高速の転送速度が得られる。本実施形態では、ＵＤＭＡとしてＭｏｄｅ２からＭｏｄｅ６までの５つの通信方法を使い分ける。これら５つの通信方法の転送速度は、速い方から順に、Ｍｏｄｅ６＞Ｍｏｄｅ５＞Ｍｏｄｅ４＞Ｍｏｄｅ３＞Ｍｏｄｅ２の関係を有する。
【００１６】
他方の通信プロトコルであるＰＩＯ（Ｐｒｏｇｒａｍｍｅｄ  Ｉ／Ｏ）は、メモリや記憶装置間のデータ送受信をＣＰＵ２１１が管理する転送方式（通信プロトコル）である。ＰＩＯ方式は、ＣＰＵ命令（機械語）でデータを転送するので、ＵＤＭＡ方式の場合に比べて転送速度が遅い。このため、本実施形態ではＵＤＭＡ方式を高速用通信プロトコルとし、ＰＩＯ方式を低速用通信プロトコルとして使用する。ＣＰＵ命令の間隔を変化させることにより、ＰＩＯ方式でも転送速度を変えることができるが、本実施形態では、ＰＩＯ方式においては１つの転送速度を使用するものとする。したがって、上述した５段階のＵＤＭＡ方式を含めて、６段階の通信方法から１つの通信方法が選択可能に構成される。なお、ＰＩＯ方式においても転送速度を変える構成にして構わないのはいうまでもない。
【００１７】
ＣＰＵ２１１が行う通信制御処理について、図３のフローチャートを参照して説明する。通信制御処理の一例として、図３ではメモリカード２５０へのデータの書込み処理を説明する。ＣＰＵ２１１は、メモリカード２５０に対するアクセス時において、所定量（たとえば、１２８Ｋバイト）のデータを転送するごとに図３の処理を行う。
【００１８】
図３のステップＳ１１において、ＣＰＵ２１１はカードＩ／Ｆ２０８へ指示を送り、メモリカード２５０へデータ転送（書き込み実行）を行わせてステップＳ１２へ進む。本実施形態では、データ転送時に次の３態様の異常を識別するように構成されている。
【００１９】
＜態様１＞
選択された通信プロトコルによるハンドシェイクが正常（通信成立）で、転送データのみに異常が発生した場合である。ＣＰＵ２１１は、ＣＲＣ［=Cyclic Redundancy Check/巡回冗長検査］を行ってエラー判定すると、態様１の異常（以降では「ＣＲＣエラー」とも称す）を判定する。ＣＲＣはデータ転送時の誤り検出方式の１つであり、あらかじめ誤り検出のための巡回冗長符号を付した転送データを送受することによって誤りを検出する。
【００２０】
＜態様２＞
選択された通信プロトコルによるハンドシェイクが正常（通信成立）で、メモリカード２５０が生成するステータス情報にエラー発生を示す情報が含まれている場合である。ＣＰＵ２１１は、メモリカード２５０から取得したステータス情報からエラー情報を検出すると、態様２の異常を判定する。
【００２１】
＜態様３＞
選択された通信プロトコルによるハンドシェイクが異常（通信不成立）な状態である。ＣＰＵ２１１は、通信不成立の場合に態様３の異常を判定する。
【００２２】
図３のステップＳ１２において、ＣＰＵ２１１は、書き込み失敗か否かを判定する。ＣＰＵ２１１は、上記態様１〜態様３の少なくとも１つの異常が判定された場合にステップＳ１２を肯定判定してステップＳ１３へ進む。ＣＰＵ２１１は、上記態様１〜態様３のうちいずれの異常も判定されない場合にはステップＳ１２を否定判定し、図３による処理を終了する。ステップＳ１２を否定判定する場合は書き込み正常であるため、メモリカード２５０に対するデータ転送を継続し、次の所定量（本例では１２８Ｋバイト）のデータ転送を同じ通信プロトコルおよび同じ転送速度で行う。
【００２３】
ステップＳ１３において、ＣＰＵ２１１は、現在の通信プロトコルがＵＤＭＡ方式か否かを判定する。ＣＰＵ２１１は、通信プロトコルがＵＤＭＡ方式の場合にステップＳ１３を肯定判定してステップＳ１４へ進む。ＣＰＵ２１１は、通信プロトコルがＵＤＭＡ方式でない場合にはステップＳ１３を否定判定してステップＳ１６へ進む。
【００２４】
ステップＳ１４において、ＣＰＵ２１１は、ＵＤＭＡ方式における現在の転送速度がＭｏｄｅ２より速いか否かを判定する。ＣＰＵ２１１は、Ｍｏｄｅ６〜Ｍｏｄｅ３のいずれかの場合にステップＳ１４を肯定判定してステップＳ１５へ進む。ＣＰＵ２１１は、Ｍｏｄｅ２の場合にはステップＳ１４を否定判定してステップＳ１６へ進む。
【００２５】
ステップＳ１５において、ＣＰＵ２１１は、ＵＤＭＡ方式における現在の転送速度を１段階低速側に下げるようにカードＩ／Ｆ２０８へ指示を送り、ステップＳ１１へ戻る。これにより、１段階低速で再度書き込み（先ほどのステップＳ１１における書き込み動作で失敗したデータを再度書き込む動作）が行われる。
【００２６】
ステップＳ１６において、ＣＰＵ２１１は、現在の通信プロトコルがＰＩＯ方式か否かを判定する。ＣＰＵ２１１は、通信プロトコルがＰＩＯ方式の場合にステップＳ１６を肯定判定し、図３による処理を終了する。ステップＳ１６を肯定判定する場合は異常であるため、メモリカード２５０に対するデータ転送を中止する。
【００２７】
一方、ＣＰＵ２１１は、通信プロトコルがＰＩＯ方式でない場合にステップＳ１６を否定判定し、ステップＳ１７へ進む。ステップＳ１７において、ＣＰＵ２１１は、通信プロトコルをＰＩＯ方式へ切替えてステップＳ１１へ戻る。これにより、低速用の通信プロトコルで再度書き込みが行われる。
【００２８】
以上説明した第一の実施形態によれば、次の作用効果が得られる。
（１）電子カメラ１は、メモリカード２５０およびメモリ２０９間で行うデータ転送の際、所定の転送バイト数ごとにデータ転送についての異常有無を判定する。その判定結果（データ転送の成功または失敗）、判定時の通信プロトコルおよび転送速度に基づいて、次のデータ転送に用いる通信プロトコルおよび転送速度を決めるので、実際のデータ転送状態に応じた適切なデータ転送条件を決めることができる。
【００２９】
（２）通信プロトコルに転送速度が高速用のものと低速用のものとを含めたので、同じ通信プロトコルで転送速度のみを変更する場合に比べて、実際のデータ転送状態に応じた適切な転送条件を選ぶことができる。また、それぞれの通信プロトコルの転送速度を変え得る構成にしたので、実際のデータ転送状態に応じた適切な転送条件を選ぶことができる。
【００３０】
（３）データ転送の失敗を判定した場合にデータ転送に用いる転送速度を１段階低速側に下げてデータ転送をやり直すようにしたので（ステップＳ１５）、データ転送が成功した場合には速い転送速度を維持し、データ転送が失敗した場合にはデータ転送が成功しやすい転送条件に変えることができる。
【００３１】
（４）データ転送の失敗を判定した場合に、判定時の通信プロトコルが高速用（ＵＤＭＡ方式）であって、その転送速度が最低速であれば、データ転送に用いる通信プロトコルを高速用から低速用（ＰＩＯ方式）へ切替えてデータ転送をやり直すようにしたので（ステップＳ１７）、データ転送が成功した場合には高速用の通信プロトコルを維持し、データ転送が失敗した場合には転送条件を変えてデータ転送をリトライすることができる。
【００３２】
（第二の実施形態）
図４は、第二の実施形態による通信制御処理の一例である書き込み処理を説明するフローチャートである。図４による処理は、図３による処理に代えて実行される。図４の処理は、図３に比べてステップＳ１８〜ステップＳ２５の処理が追加されている点が異なるので、これらの相違点を中心に説明する。
【００３３】
図４のステップＳ１２を否定判定して進むステップＳ１８において、ＣＰＵ２１１は、書き込み正常を判定したことを計数するカウンタ（書き込み正常カウンタと呼ぶ）に１を加算させてステップＳ１９へ進む。ステップＳ１９において、ＣＰＵ２１１は、書き込み正常カウンタの計数値がＣＰＵ２１１内にあらかじめ設定されている所定値（安定基準値と呼ぶ）より大か否かを判定する。ＣＰＵ２１１は、（書き込み正常計数値）＞（安定基準値）が成立する場合にステップＳ１９を肯定判定してステップＳ２０へ進む。ＣＰＵ２１１は、（書き込み正常計数値）＞（安定基準値）が成立しない場合にはステップＳ１９を否定判定し、図４による処理を終了する。ステップＳ１９を否定判定する場合は書き込み正常であるため、メモリカード２５０に対するデータ転送を継続し、次の所定量（本例では１２８Ｋバイト）のデータ転送を、同じ通信プロトコルおよび同じ転送速度で行う。
【００３４】
ステップＳ２０において、ＣＰＵ２１１は、現在の通信プロトコルがＵＤＭＡ方式か否かを判定する。ＣＰＵ２１１は、通信プロトコルがＵＤＭＡ方式の場合にステップＳ２０を肯定判定してステップＳ２１へ進む。ＣＰＵ２１１は、通信プロトコルがＵＤＭＡ方式でない場合にはステップＳ２０を否定判定してステップＳ２３へ進む。
【００３５】
ステップＳ２１において、ＣＰＵ２１１は、ＵＤＭＡ方式における現在の転送速度がＭｏｄｅ６より遅いか否かを判定する。ＣＰＵ２１１は、Ｍｏｄｅ５〜Ｍｏｄｅ２のいずれかの場合にステップＳ２１を肯定判定してステップＳ２２へ進む。ＣＰＵ２１１は、Ｍｏｄｅ６の場合にはステップＳ２１を否定判定し、図４による処理を終了する。ステップＳ２１を否定判定する場合は書き込み正常であるため、メモリカード２５０に対するデータ転送を継続し、次の所定量（本例では１２８Ｋバイト）のデータ転送を、同じ通信プロトコルおよび同じ転送速度で行う。
【００３６】
ステップＳ２２において、ＣＰＵ２１１は、ＵＤＭＡ方式における現在の転送速度を１段階高速側に上げるようにカードＩ／Ｆ２０８へ指示を送り、図４による処理を終了する。ステップＳ２２を実行する場合は書き込み正常であるものの最高速度ではないため、メモリカード２５０に対するデータ転送を継続し、次の所定量（本例では１２８Ｋバイト）のデータ転送を、同じ通信プロトコルにおいて１段高速の転送速度で行う。
【００３７】
ステップＳ２３において、ＣＰＵ２１１は、通信プロトコルをＵＤＭＡ方式へ、転送速度をＭｏｄｅ２に切替えるようにカードＩ／Ｆ２０８へ指示を送り、図４による処理を終了する。ステップＳ２３を実行する場合は書き込み正常であるものの高速用の通信プロトコルでないため、メモリカード２５０に対するデータ転送を継続し、次の所定量（本例では１２８Ｋバイト）のデータ転送を、高速用の通信プロトコルでＭｏｄｅ２の転送速度で行う。一方、ステップＳ１２において書き込み失敗と判定されると、既述のステップＳ１２〜Ｓ１７までの各処理を経て、ステップＳ２４またはステップＳ２５に至る。これらステップＳ２４、Ｓ２５では、それぞれ上述の書き込み正常カウンタの値を初期化（０にリセット）する。このようにすることで、データ書き込みが「連続して」所定回数以上成功して書き込み正常カウンタの計数値が所定値より大とならない限り、ステップＳ１９で肯定判定されることはないので、データの書き込み処理が安定的に成功している場合に限り、転送速度のアップが実行されることになる。
【００３８】
以上説明した第二の実施形態によれば、第一の実施形態における作用効果に加えて、以下の作用効果が得られる。
（１）データ転送が失敗しないこと（成功判定）を所定回数（安定基準値）連続で判定すると、判定時の通信プロトコルが低速用であれば次のデータ転送に用いる通信プロトコルを低速用から高速用へ切替えるようにしたので（ステップＳ２３）、データ転送が安定して成功する状況では高速用の通信プロトコルへ変更することができる。
【００３９】
なお、低速用の通信プロトコルにおいても転送速度を可変にした場合には、判定時の通信プロトコルが低速用であって、その転送速度が最高速であれば次のデータ転送に用いる通信プロトコルを低速用から高速用へ切替えるようにすればよい。
【００４０】
（２）データ転送が失敗しないこと（成功判定）を所定回数（安定基準値）連続で判定すると、判定時の通信プロトコルが高速用であって、その転送速度が最高速より遅ければ次のデータ転送に用いる転送速度を１段高速側へ上げるようにしたので（ステップＳ２２）、データ転送が安定して成功する状況ではより速い転送速度へ変更することができる。
【００４１】
（第三の実施形態）
図５は、第三の実施形態による通信制御処理を説明するフローチャートである。図５による処理は、図３または図４による処理に代えて実行される。図５の処理は、図３に比べてステップＳ５１、Ｓ５２〜Ｓ５４、およびＳ５５の処理が追加されている点が異なるので、これらの相違点を中心に説明する。
【００４２】
図５のステップＳ５１において、ＣＰＵ２１１は、ＣＲＣエラーカウンタを、ＣＰＵ２１１内にあらかじめ設定されている所定のリトライ回数値（たとえば３）に初期化してステップＳ１１へ進む。ＣＲＣエラーカウンタは、上述した態様１の異常を判定すると減じるカウンタである。そして、上述のリトライ回数値とは、書き込み動作に失敗したデータを、その失敗時と同じ通信方法（同じ通信プロトコル、同じ転送速度）の下で書き込みを繰り返す回数である。
【００４３】
ステップＳ１３を肯定判定して進むステップＳ５２において、ＣＰＵ２１１は、ＣＲＣエラーか否かを判定する。ＣＰＵ２１１は、態様１の異常を判定した場合にステップＳ５２を肯定判定してステップＳ５３へ進む。ＣＰＵ２１１は、態様１の異常を判定しない場合にはステップＳ５２を否定判定し、ステップＳ１６へ進む。ステップＳ５２を否定判定する場合は、態様２または態様３の異常を判定した場合である。
【００４４】
ステップＳ５３において、ＣＰＵ２１１は、ＣＲＣエラーカウンタに１を減算させてステップＳ５４へ進む。ＣＰＵ２１１は、ＣＲＣエラーカウンタの計数値が０より大か否かを判定する。ＣＰＵ２１１は、（カウント値）＞０が成立する場合にステップＳ５４を肯定判定してステップＳ１１へ戻る。つまり、ステップＳ５４を肯定判定する場合は、ステップＳ１１での書き込みに失敗したデータに対し、同じ通信プロトコルおよび同じ転送速度で再度書き込みが行われる。このように、書き込み失敗時にすぐに通信方法を変更しない理由は、ＣＲＣエラーに関しては何らかの外的要因（通信時にカメラが受けた衝撃など）で一時的に通信を失敗しただけであり、もう一度実行してみれば成功する可能性が考えられるためである。
【００４５】
一方、ＣＰＵ２１１は、（カウント値）＞０が成立しない場合、つまり、同一の通信方法の下で所定のリトライ回数連続してデータの書き込みを失敗した場合にはステップＳ５４を否定判定してステップＳ１４へ進む。ステップＳ５４を否定判定する場合は、遅速の通信プロトコルまたは遅い転送速度に切替えて再度書き込みを行うか否かの判定処理へ進む。
【００４６】
ステップＳ１５の次に進むステップＳ５５において、ＣＰＵ２１１は、ＣＲＣエラーカウンタを初期化してステップＳ１１へ戻る。この場合は、同じ通信プロトコルの遅い転送速度で再度書き込みが行われる。
【００４７】
以上説明した第三の実施形態によれば、第一の実施形態における作用効果に加えて、次の作用効果が得られる。
（１）選択された通信プロトコルによるハンドシェイクが正常（通信成立）であって、転送データのみが異常となる（上記態様１の異常）データ転送の失敗を、高速用通信プロトコルにおいて所定回数（ＣＲＣエラーカウンタ初期値に対応）連続で判定するまでは、同一の通信方法で再度データの書き込みを実行するようにしているので、本来転送速度を低速側に切り替える必要のなかった一時的な異常に、過敏に反応することのない良好な通信を行うことができる。なお、ＣＲＣエラーを連続して所定回数判定した場合には、判定時の通信プロトコルで転送速度を１段低速側へ下げてデータ転送をやり直すようにした（ステップＳ１５を肯定判定）ので、データ転送が続けて失敗する状況では、遅い転送速度へ転送条件を変えてデータ転送をリトライすることができる。
【００４８】
（２）上記（１）において、高速用通信プロトコルにおいて転送速度が最低速であれば、データ転送に用いる通信プロトコルを低速用へ切替えてデータ転送をやり直すようにした（ステップＳ１７）。データ転送が続けて失敗する状況では、低速用の通信プロトコルへ転送条件を変えてデータ転送をリトライすることができる。
【００４９】
（３）上記（１）において、上記態様１の異常となるデータ転送の失敗が、高速用通信プロトコルにおいて所定回数（ＣＲＣエラーカウンタ初期値に対応）に満たない場合は、判定時と同じ通信プロトコルおよび転送速度でデータ転送をやり直すようにしたので（ステップＳ５４を肯定判定）、データ転送の成否が安定しない状況では、同じ転送条件でデータ転送をリトライすることができる。
【００５０】
（４）上記態様１と異なる態様２または態様３の異常となるデータ転送の失敗を、高速用通信プロトコルにおいて判定すると、データ転送に用いる通信プロトコルを高速用から低速用へ切替えてデータ転送をやり直すようにしたので（ステップＳ１７）、態様２または態様３の異常でデータ転送が失敗する場合には、転送条件を変えてデータ転送をリトライすることができる。
【００５１】
以上の説明では、メモリカード２５０およびメモリ２０９間で行われるデータ転送を例に説明した。メモリカード２５０は、たとえば、コンパクトフラッシュ（商標）タイプのメモリカードの他、他のタイプのメモリカードでもよい。
【００５２】
メモリカード２５０およびメモリ２０９間のデータ転送に限らず、ハードディスク装置などの記録媒体と、メモリをはじめとする他の記録媒体との間のデータ転送にも本発明を適用してよい。
【００５３】
上述した説明では、電子機器の一例として電子カメラ１を例示したが、ビデオカメラや携帯電話機、ＰＤＡなどにも本発明を適用できる。
【００５４】
図３〜図５のいずれかに例示した通信制御処理を行うプログラムモジュールを、電子カメラ１へ供給してもよい。電子カメラ１に対する当該プログラムの供給は、当該プログラムを格納したＣＤ−ＲＯＭなどの記録媒体１０４をパーソナルコンピュータ１０にセットし、パーソナルコンピュータ１０から電子カメラ１へ有線で、または無線ＬＡＮなどを経由して転送する。また、ネットワークなどの通信回線１０１を経由する方法でパーソナルコンピュータ１０へローディングし、パーソナルコンピュータ１０から電子カメラ１へ転送するようにしてもよい。
【００５５】
通信回線１０１を経由する場合は、通信回線１０１に接続されたサーバー（コンピュータ）１０２のハードディスク装置１０３などに当該プログラムを格納しておく。このように、通信制御処理を行うプログラムは記録媒体１０４や通信回線１０１を介する提供など、種々の形態のコンピュータプログラム製品として供給することができる。
【００５６】
以上の説明はあくまで一例であり、上記の実施形態の構成に何ら限定されるものではない。
【図面の簡単な説明】
【００５７】
【図１】第一の実施形態による電子カメラの要部構成を説明するブロック図である。
【図２】データ転送に用いる通信プロトコルを説明する図である。
【図３】ＣＰＵが行う通信制御処理について説明するフローチャートである。
【図４】第二の実施形態による通信制御処理を説明するフローチャートである。
【図５】第三の実施形態による通信制御処理を説明するフローチャートである。
【図６】コンピュータ装置を例示する図である。
【符号の説明】
【００５８】
１…電子カメラ
２１１…ＣＰＵ
２０８…カードＩ／Ｆ
２０９…メモリ
２５０…メモリカード
【図１】
2008271075.tif 000003
【図２】
2008271075.tif 000004
【図３】
2008271075.tif 000005
【図４】
2008271075.tif 000006
【図５】
2008271075.tif 000007
【図６】
2008271075.tif 000008