(57)【要約】【課題】遅延量が変化する使用条件でもアクセスの信頼性を確保する。【解決手段】記録再生装置であって、記録媒体に対してクロック信号を出力する出力手段と、記録媒体に命令を送信すると共に、クロック信号を遅延させることにより得られたタイミング信号に応じて、記録媒体から送信されたデータを取得する通信手段と、所定のデータ列を有するデータの出力命令を、記録媒体に対して送信するように通信手段を制御する制御手段とを有し、制御手段は、出力命令に応じて記録媒体から送信され、通信手段が取得したデータが所定のデータ列を有しているか否かに基づき、クロック信号を遅延させる設定遅延量を決定する決定処理を実行し、制御手段は、通信手段から記録媒体に対する書き込み命令又は読み出し命令の出力タイミングに基づいて、記録媒体に対するデータの書き込み又は読み出しの期間以外の期間において、決定処理を繰り返し実行することを特徴とする。【選択図】図１
2015118568.tif 000002
【特許請求の範囲】
【請求項１】
記録媒体に対してクロック信号を出力する出力手段と、
前記記録媒体に命令を送信すると共に、前記クロック信号を遅延させることにより得られたタイミング信号に応じて、前記記録媒体から送信されたデータを取得する通信手段と、
所定のデータ列を有するデータの出力命令を、前記記録媒体に対して送信するように前記通信手段を制御する制御手段と
を有し、
前記制御手段は、前記出力命令に応じて前記記録媒体から送信され、前記通信手段が取得したデータが前記所定のデータ列を有しているか否かに基づき、前記クロック信号を遅延させる設定遅延量を決定する決定処理を実行し、
前記制御手段は、前記通信手段から前記記録媒体に対する書き込み命令又は読み出し命令の出力タイミングに基づいて、前記記録媒体に対するデータの書き込み又は読み出しの期間以外の期間において、前記決定処理を繰り返し実行することを特徴とする記録再生装置。
【請求項２】
前記記録媒体に記録するための情報データを入力し、記憶手段に記憶する入力手段を備え、
前記通信手段は、前記書き込み命令に応じて前記記憶手段から前記情報データを読み出して前記記録媒体に送信し、所定量の前記情報データの転送が完了したことに応じて前記記録媒体への情報データの転送を停止し、
前記制御手段は、前記通信手段が、前記記録媒体への前記情報データの転送を停止してから、次に転送を開始するまでの間に前記決定処理を実行することを特徴とする請求項１に記載の記録再生装置。
【請求項３】
前記通信手段は、前記記憶手段に記憶された前記情報データのデータ量が所定量を超える場合に、前記記録媒体に書き込み命令を出力することを特徴とする請求項２に記載の記録再生装置。
【請求項４】
前記通信手段は、ユーザによる記録開始の指示から記録停止の指示までの間、繰り返し前記書き込み命令を前記記録媒体に出力し、前記制御手段は、前記記録開始の指示から前記記録停止の指示までの間に前記決定処理を実行する頻度を、前記記録開始の指示から前記記録停止の指示までの期間以外の期間の頻度よりも高くすることを特徴とする請求項１から３のいずれか１項に記載の記録再生装置。
【請求項５】
前記制御手段が前記繰り返して実行する前記決定処理において、先の決定処理で決定された前記設定遅延量に対し、新たな決定処理において所定以上の差を有する設定遅延量が決定された場合、前記通信手段は、前記所定以上の差を有する設定遅延量に基づく前記タイミング信号に応じて、前記記録媒体から送信されたデータを取得することを特徴とする請求項１から４のいずれか１項に記載の記録再生装置。
【請求項６】
前記記録媒体の温度を検知する温度検知手段を更に備え、
前記制御手段が前記繰り返して実行する前記決定処理において、先の決定処理で前記設定遅延量を決定した際に検知された前記記録媒体の温度と、新たな決定処理で前記設定遅延量を決定した際に検知された前記記録媒体の温度との間に所定以上の温度差がある場合に、前記通信手段は、前記新たな決定処理で決定された設定遅延量に基づく前記タイミング信号に応じて、前記記録媒体から送信されたデータを取得することを特徴とする請求項１から４のいずれか１項に記載の記録再生装置。
【請求項７】
前記制御手段は、前記決定処理を、
前記クロック信号を遅延させる遅延量を段階的に設定し、
前記出力命令に応じて前記記録媒体から送信されたデータを該設定された各遅延量に基づくタイミング信号により取得した各データが前記所定のデータ列を有しているか否かを判定し、
前記所定のデータ列を有していると判定されたデータに対応する遅延量の群の内から中央値を決定し、該中央値を前記設定遅延量に決定する
ことにより実行することを特徴とする請求項１から６のいずれか１項に記載の記録再生装置。
【請求項８】
前記制御手段は、前記決定処理を、前記記録媒体が前記記録再生装置にマウントされた際に実行することを特徴とする請求項１から７のいずれか１項に記載の記録再生装置。
【請求項９】
記録媒体に対してクロック信号を出力する出力手段と、
前記記録媒体に命令を送信すると共に、前記クロック信号を遅延させることにより得られたタイミング信号に応じて、前記記録媒体から送信されたデータを取得する通信手段と、
所定のデータ列を有するデータの出力命令を、前記記録媒体に対して送信するように前記通信手段を制御する制御手段と
を有する記録再生装置の制御方法であって、
前記制御手段が、前記出力命令に応じて前記記録媒体から送信され、前記通信手段が取得したデータが前記所定のデータ列を有しているか否かに基づき、前記クロック信号を遅延させる設定遅延量を決定する決定処理を実行する工程を備え、
前記制御手段は、前記通信手段から前記記録媒体に対する書き込み命令又は読み出し命令の出力タイミングに基づいて、前記記録媒体に対するデータの書き込み又は読み出しの期間以外の期間において、前記決定処理を繰り返し実行することを特徴とする記録再生装置の制御方法。
【請求項１０】
コンピュータを請求項１乃至７のいずれか１項に記載の記録再生装置の各手段として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は記録再生装置及び制御方法等に関し、特に記録媒体に対するデータ書き込み／読み出しに係るタイミング制御技術に関する。
【背景技術】
【０００２】
従来、ＳＤカード等のメモリカードに対してデータの読み出しを行う場合、ホストからカードに与えられるクロックに対する、カードからのデータ送信の遅延量は規格化された固定値であった。したがって、ホスト側はクロック送信に対して規定量の遅延タイミングによってデータラッチを行うことにより、カードアクセスを問題なく行うことが出来た。
【０００３】
しかし近年、メモリカードのアクセス速度向上に伴うクロックの高速化により、前述の遅延量は固定値では規定できなくなっている。このためＳＤメモリカードの高速規格であるＵＨＳ−Ｉ（Ｕｌｔｒａ  Ｈｉｇｈ  Ｓｐｅｅｄ）においては、所定の周波数のクロックを使用する場合にデータラッチのタイミング調整が必要であることが規定されている。このラッチタイミングの調整作業はチューニングと呼ばれる（例えば、特許文献１参照）。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１１−１３４００９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、データをラッチするためのクロックの遅延量はカードの温度など外的要因によって変動する。そのため、連続してデータをカードに書き込む際など、長時間にわたりカードアクセスを繰り返している場合、カードの温度の変化に伴って遅延量が変化し、データの読み書きが失敗してしまう可能性がある。このような場合、再度チューニング処理を行うことも考えられるが、チューニング中はカードに対してデータの読み書きができないため、必要以上のチューニングは転送速度の低下につながる。
【０００６】
本発明は以上の点を鑑みてなされたものであり、遅延量が変化する使用条件でも、記録媒体へのデータの転送速度の低下を防ぐと共にアクセスの信頼性を確保することを目的とする。
【課題を解決するための手段】
【０００７】
上記課題を解決するための本発明は、記録再生装置であって、
記録媒体に対してクロック信号を出力する出力手段と、
前記記録媒体に命令を送信すると共に、前記クロック信号を遅延させることにより得られたタイミング信号に応じて、前記記録媒体から送信されたデータを取得する通信手段と、
所定のデータ列を有するデータの出力命令を、前記記録媒体に対して送信するように前記通信手段を制御する制御手段とを有し、
前記制御手段は、前記出力命令に応じて前記記録媒体から送信され、前記通信手段が取得したデータが前記所定のデータ列を有しているか否かに基づき、前記クロック信号を遅延させる設定遅延量を決定する決定処理を実行し、
前記制御手段は、前記通信手段から前記記録媒体に対する書き込み命令又は読み出し命令の出力タイミングに基づいて、前記記録媒体に対するデータの書き込み又は読み出しの期間以外の期間において、前記決定処理を繰り返し実行することを特徴とする。
【発明の効果】
【０００８】
本発明によれば、遅延量が変化する使用条件でも、記録媒体へのデータの転送速度の低下を防ぐと共にアクセスの信頼性を確保することができる。
【図面の簡単な説明】
【０００９】
【図１】発明の実施形態に対応するデジタルカメラ１００の機能構成の一例を示すブロック図。
【図２】発明の実施形態に対応するメモリカードコントローラ１１３の内部構成の一例を示すブロック図。
【図３】発明の実施形態に対応するデジタルカメラ１００で実行されるチューニング処理の動作を説明するための図。
【図４】発明の実施形態に対応するデジタルカメラ１００で実行されるマウント時チューニング処理の一例を示すフローチャート。
【図５】発明の実施形態に対応するデジタルカメラ１００で実行されるチューニング処理の一例を示すフローチャート。
【図６】発明の実施形態に対応するデジタルカメラ１００で実行される記録時チューニング処理の動作を説明するための図。
【発明を実施するための形態】
【００１０】
以下、本発明の例示的な実施形態について、図面を参照して詳細に説明する。なお、以下に説明する実施形態では、記録再生装置の一例としての、接続されたメモリカードに対してデータの書き込み／読み出しが可能なデジタルカメラに、本発明を適用した例を説明する。しかし、本発明は、記録媒体に対するデータの書き込み／読み出しが可能な任意の機器（ホスト装置）に適用可能であり、デジタルカメラに限定されず、例えば、パソコン、携帯電話、スマートフォン、ＰＤＡ、デジタルビデオカメラ等も含まれる。
【００１１】
図１は、発明の実施形態に係るデジタルカメラ１００の機能構成の一例を示すブロック図である。メインマイコン１１８は、例えばＣＰＵである。メインマイコン１１８は、デジタルカメラ１００が有する各ブロックの動作を制御する。具体的にはメインマイコン１１８は、ＲＯＭ１１９に記憶された、各ブロックに対して後述の各種シーケンスを実行させるためのプログラムを読み出し、ＳＤＲＡＭ１１６に展開して実行することにより各ブロックの動作を制御する。またメインマイコン１１８は、後述の液晶ドライバ１１２を制御することで液晶パネル１１１の表示制御も行う。
【００１２】
ＲＯＭ１１９は、例えば電気的にデータの消去・記録が可能な不揮発性メモリである。ＲＯＭ１１９は、デジタルカメラ１００が有する各ブロックの動作プログラムだけでなく、各ブロックの動作において必要となる定数等の情報を記憶する。
【００１３】
撮影レンズ１０１は、被写体像をとらえ、絞り１０２によって光量を所定量に制限した後、撮像素子１０３上に被写体像を結像させる。撮像素子１０３は例えばＣＣＤやＣＭＯＳセンサであり、撮像面に結像された被写体像を光電変換し、アナログ画像信号を出力する。撮影レンズ１０１により結像される被写体像の光量は、メインマイコン１１８による絞り１０２の開口量制御により制限される。撮像素子１０３により出力されたアナログ画像信号は、Ａ／Ｄ変換器１０４によりＡ／Ｄ変換処理が適用されることで、デジタルの画像データに変換される。得られた画像データは、画像処理部１０５においてガンマ補正、ホワイトバランス補正、ノイズリダクションに係る処理が適用された後、フレームメモリ１０６に非圧縮画像データとして格納される。このような撮影レンズ１０１、絞り１０２、撮像素子１０３、Ａ／Ｄ変換器１０４、画像処理部１０５、及びフレームメモリ１０６により、本実施形態のデジタルカメラ１００の画像生成部（撮像部）１０が構成される。
【００１４】
以下の実施形態では記録媒体であるメモリカード１１５に画像生成部で生成された画像データを書き込む場合、或いは、書き込まれた画像データをメモリカード１１５から読み出す場合について説明する。しかし、本発明が適用可能な対象は画像データに限定されるものではなく、音声データ或いは、動画像データと音声データとを含むマルチメディアデータであってもよい。これらの種類のデータを総称して情報データと呼ぶことができる。本発明の実施形態としての記録再生装置は、情報データを生成するために、画像生成部１０に追加してマイク、Ａ／Ｄ変換器、音声処理部を含む音声生成部を更に備えることができる。
【００１５】
ＪＰＥＧ符号化部１０８は、本実施形態のデジタルカメラ１００が静止画像を記録する際の符号化形式（ＪＰＥＧ形式）に従って、非圧縮画像データを圧縮符号化し、ＪＰＥＧ静止画像データを生成する。またＭＰＥＧ符号化部１０９は、本実施形態のデジタルカメラ１００が動画像を記録する際の動画符号化形式（ＭＰＥＧ形式）に従って、非圧縮画像データをフレームとして圧縮符号化し、ＭＰＥＧ動画像データを生成する。ＪＰＥＧ符号化部１０８及びＭＰＥＧ符号化部１０９により生成された各種データは、データバス１０７を介してＳＤＲＡＭ１１６に一時的に書き込まれる。
【００１６】
ＳＤＲＡＭ１１６は、揮発性メモリである。ＳＤＲＡＭ１１６には、ＪＰＥＧ符号化部１０８及びＭＰＥＧ符号化部１０９により生成されたデータに加え、液晶パネル１１１への表示用に変換された画像データが格納される。またＳＤＲＡＭ１１６は、メモリカード１１５へのデータ書き込みにおいて、書き込み状況に応じたデータ読み出し、及びメモリカード１１５との間の記録速度の調停を行うためのバッファメモリ空間として利用される。またＳＤＲＡＭ１１６は、撮影された画像から再生時のインデックス表示で使用するサムネイル画像を生成する画素数変換回路１１０の作業メモリ空間の提供も行う。
【００１７】
液晶パネル１１１は、例えばＬＣＤ等のデジタルカメラ１００が有する表示装置である。上述したように、液晶パネル１１１の表示制御はメインマイコン１１８により行われる。具体的にはメインマイコン１１８からの命令を受けた液晶ドライバ１１２が、ＳＤＲＡＭ１１６に格納されている表示用の画像データを液晶表示信号に変換して液晶パネル１１１に出力することで、表示制御が行われる。また液晶パネル１１１は、画素数変換回路１１０により液晶パネル１１１の表示画素数に変更された非圧縮画像データが液晶表示信号に変換されて入力されることで、電子ビューファインダとして機能する（スルー表示）。
【００１８】
メモリカード１１５は、デジタルカメラ１００に着脱可能に接続されることで、データの書き込み／読み出しが可能な記録媒体である。本実施形態ではメモリカード１１５は、ＮＡＮＤ型フラッシュメモリで構成されているメモリカードであり、ＰＣ互換性を持つＦＡＴ（File Allocation Table）ファイルシステムに準拠したフォーマットでデータの管理がなされる。メモリカード１１５は、例えばＳＤカードとして構成されてもよい。メモリカード１１５は、カードスロット１１４を介してデジタルカメラ１００に接続される。カードスロット１１４は、カード検出スイッチを有しており、カードスロット１１４にメモリカード１１５が装着されたことを検出すると、検出信号をメインマイコン１１８に出力する。カードスロット１１４は、後述するようにメモリカード１１５の温度を測定するための温度検知部を含むことができる。
【００１９】
メモリカード１１５へのデータの書き込み、及びメモリカード１１５からのデータの読み出し等の通信は、メモリカードコントローラ１１３により行われる。メモリカードコントローラ１１３は、データの書き込み時はＳＤＲＡＭ１１６から記録用のデータを読み出し、メモリカード１１５への書き込みを行う。またメモリカードコントローラ１１３は、データの読み出し時はメモリカード１１５からデータを読み出し、ＳＤＲＡＭ１１６に格納する。
【００２０】
操作入力部１１７は、ユーザからの各種操作を受け付ける各種スイッチ等のユーザインタフェースである。操作入力部１１７は、静止画の撮影操作を行うシャッターボタンや、動画の撮影開始および撮影停止を指示するトリガーボタン、カメラ撮影モードと再生モードを切り替えるモードスイッチを含むことができる。操作入力部１１７は、デジタルカメラ１００に設けられた各種操作キーがユーザによって操作されると、該操作に応じた信号を受信し、操作に対応する制御信号をメインマイコン１１８に出力する。
【００２１】
次に、本実施形態のメモリカードコントローラ１１３の詳細構成について説明する。図２（Ａ）は、メモリカードコントローラ１１３の機能構成の一例を示すブロック図である。メモリカードコントローラ１１３は、メモリカード１１５へのデータの書き込み及び読み出しにおいて、ＣＬＫライン、ＣＭＤライン、及びＤＡＴラインを介して信号及びデータの送受信を行う。具体的に、クロック発生部２０１は、読み書きのタイミング制御に利用され、クロックパルスで構成されたクロック信号（ＣＬＫ信号）をＣＬＫラインを介して出力する。クロック信号は、メモリカード１１５に対してホスト（デジタルカメラ１００）からカードへのデータ書き込み、および、カードからホストへのデータ読み出しのデータタイミングを与える。それと同時に後述のホストコントローラ２０２に対してデータ送出および受信のタイミングを与える。
【００２２】
ホストコントローラ２０２は、読み書きに係るコマンド信号の出力、及びメモリカード１１５からのコマンドに対するレスポンス信号の受信を、ＣＭＤラインを介して行う。またホストコントローラ２０２は、メモリカード１１５に書き込むデータ、あるいはメモリカード１１５から読み出したデータを、ＤＡＴラインを介して送受信する制御を行う。
【００２３】
データの読み書きにおいて、上述したようにクロックパルスとデータの送受信のタイミングは異なる。このため遅延素子２０３は、メモリカード１１５からのデータ読出時に、クロック発生部２０１からのクロック信号の位相をメインマイコン１１８からの制御に従って遅延させ、メモリカード１１５から出力されたデータをラッチするタイミング信号を生成する。フリップフロップ２０４は、遅延素子２０３からのタイミング信号に従ってメモリカード１１５から出力されたデータをラッチする。フリップフロップ２０５は、ホストコントローラ２０２から出力されたデータをラッチして、メモリカード１１５へデータを出力するタイミングをＣＬＫラインのタイミングと同期させる。なお、コマンドの入出力、及びデータの送受信に応じたＣＭＤラインとＤＡＴラインとの間の切り替えは、ホストコントローラ２０２の制御に従って信号分岐部２０６により行われる。
【００２４】
なお、本実施形態のメモリカードコントローラ１１３は、デジタルカメラ１００内に内蔵されているが、ＵＳＢインターフェースやその他のインターフェースを介して外付けされるＳＤカードリーダ／ライタ等に内蔵された構成とすることもできる。また、本実施形態では、メモリカードコントローラ１１３の制御対象としてＳＤカードを例に挙げ説明するが、これに限らず、データ受信時の遅延量が固定されておらず、サンプリング位置の位相設定が必要になるその他のメモリカードであってもよい。
【００２５】
さらに、遅延素子２０３の内部構成について、図２（Ｂ）を用いて説明する。遅延素子２０３は、所定数の遅延回路２１０と、各遅延回路２１０からの出力のうちの１つを選択するセレクタ２１１とで構成される。本実施形態の遅延素子２０３は、一例として１５個の遅延回路２１０を有し、遅延段数を１６段階に変更可能であるものとして説明する。各遅延回路２１０は、クロック発生部２０１が出力したクロック信号、あるいは直前の遅延回路２１０から出力されたクロック信号を、クロック信号の１周期よりも短い所定の時間だけ遅延させる。本実施形態では、各遅延回路２１０における遅延量は、メモリカード１１５からのレスポンスデータが、ハイレベル（論理１）とローレベル（論理０）の間での反転に要する期間（反転期間）に基づいて決められる。
【００２６】
本実施形態では、各遅延回路２１０における遅延量が、反転期間の約１／２となるように決定されるが、これより短い期間とすることも可能である。前述のように、各遅延素子の遅延量は、温度特性等により変動することがある。また、反転期間の長さは、メモリカード１１５に対するデータの書き込み、読み出しのための規格等により規定される。また、遅延段数は１６に限らず、適宜設定することが可能である。セレクタ２１１は、メインマイコン１１８からの指示に応じて、クロック発生部２０１及び各遅延回路２１０のいずれかが出力したクロック信号を、フリップフロップ２０４の動作クロック（ラッチクロック）として出力する。このように、セレクタ２１１が選択するクロック信号を変更することで、フリップフロップ２０４の動作クロックが有する遅延量を調整可能である。
【００２７】
次に、以上の構成を有する本実施形態のデジタルカメラでのメモリカード使用開始時に行う、マウント時チューニングについて説明をする。まず、メモリカードコントローラ１１３はメモリカード１１５にテストデータの出力命令としての「テストデータ送信コマンド」を送信する。これに対しメモリカード１１５は、クロック発生部２０１からのクロック信号に同期して、所定パターンの６４バイトのデータ列を送信する。メモリカードコントローラ１１３は、クロック発生部２０１から供給されるラッチタイミング信号に従ってデータ列を受信する。なお、ラッチタイミング信号は、遅延素子２０３に設定される遅延段数の値を変化させることで、クロック信号（ＣＬＫ）との位相関係を変化させることができる。本実施形態では、図３に示すように、カードクロックの１周期分に対して１６ステップのラッチタイミングを設定することができる。
【００２８】
以下、上述のような構成を有する本実施形態のデジタルカメラ１００において実行される遅延段数の調整処理であるチューニング処理について図４のフローチャートを用いて詳細を説明する。本チューニング処理は、例えば、デジタルカメラ１００にメモリカード１１５が接続されて使用が開始される時、すなわちカードマウント時に実行できる。それ以外にも、例えば、接続後に記録処理の開始指示がなされるまでの間、あるいはデジタルカメラ１００の起動後から記録処理の開始指示がなされるまでの間にも実行できる。これ以降図４の処理を「マウント時チューニング処理」という。なお、本チューニング処理の実行中は、記録処理の開始指示がなされたとしても、メインマイコン１１８は記録処理を実行しないものとする。
【００２９】
また、本チューニング処理は、メインマイコン１１８がメモリカードコントローラ１１３を制御することにより、メモリカードコントローラ１１３の各ブロックが対応する処理を実行する。このため、メインマイコン１１８は、メモリカードコントローラ１１３における処理において取得されたデータ等を参照可能であるものとして説明する。メインマイコン１１８には上位層プログラムとドライバプログラムとが格納され、上位層プログラムはカードマウント実行の指示、動画の記録開始、終了、カード書き込み、読み出しの指示をドライバプログラムに対して行う。また、ドライバプログラムは上記指示を受けて、メモリカード１１５に対してコマンドを発行することで、メモリカードの動作を制御する。
【００３０】
まず上位層プログラムによってチューニング動作が指示されると、以降はドライバプログラムでの制御となる。Ｓ４０１にて、メインマイコン１１８は、メモリカードコントローラ１１３のクロック発生部２０１にクロック信号の送信を開始させる。またメインマイコン１１８は遅延素子２０３におけるクロック信号の遅延段数（図３では１６段階）を初期化（「１」に設定）する。Ｓ４０２にて、ホストコントローラ２０２は、メモリカード１１５にテストデータを送信させるためのテストデータ送信コマンドをメモリカード１１５に対して発行し、ＣＭＤラインを介して送信する。テストデータは、予め定められた所定パターンの６４バイトのデータ列であり、メモリカード１１５は受信しているクロック信号に同期して該データ列を送信するものとする。ん次にＳ４０３にて、メインマイコン１１８は、ホストコントローラ２０２経由でメモリカード１１５から６４バイトのテストデータを受信する。その際、フリップフロップ２０４は、遅延素子２０３により供給されるタイミング信号に応じてメモリカード１１５からＤＡＴラインを介して受信したデータをラッチし、ホストコントローラ２０２へ供給する。遅延素子２０３により供給されるタイミング信号は、現在設定されている遅延段数に従って遅延素子２０３がクロック信号を遅延させることで生成される。受信データはＳＤＲＡＭ１１６に格納される。
【００３１】
Ｓ４０４で、メインマイコン１１８は、ＳＤＲＡＭ１１６に格納したデータ列（メモリカード１１５が返却したデータ列のパターン）が、テストデータの所定パターンと一致するか否かを判断する。メインマイコン１１８は、受信したデータ列の６４バイト全てが所定パターンと一致すると判断した場合は処理をＳ４０５に移し、一致しないと判断した場合は処理をＳ４０６に移す。Ｓ４０５では、メインマイコン１１８は、例えばＳＤＲＡＭ１１６に格納されている受信結果テーブルに、現在の遅延段数に関連付けて受信成功の情報を記録する。受信結果テーブルの一例は図３のテーブル３０１に示す通りである。当該受信結果テーブル３０１は、遅延素子２０３に設定される設定遅延量（最適遅延段数）を決定する決定処理であるマウント時チューニング処理において、受信成功又は受信失敗した遅延段数を記録しておく。作成されたテーブルはＳＤＲＡＭ１１６に格納される。一方、Ｓ４０４において受信したデータ列が所定パターンと一致しないと判断した場合、メインマイコン１１８はＳ４０６で、現在の遅延段数に関連付けて受信失敗の情報を受信結果テーブル３０１に記録する。
【００３２】
その後Ｓ４０７にて、メインマイコン１１８は、遅延素子２０３に設定した遅延段数が最大遅延段数（図３では１６）であるか否かを判断する。メインマイコン１１８は、遅延素子２０３に設定した遅延段数が最大遅延段数ではないと判断した場合、Ｓ４０８で１つ上の遅延段数を遅延素子２０３に設定し、処理をＳ４０２に戻す。またメインマイコン１１８は、遅延素子２０３に設定した遅延段数が最大遅延段数であると判断した場合、受信結果テーブル３０１が完成したことになるので処理をＳ４０９に移す。Ｓ４０９にて、メインマイコン１１８は、ＳＤＲＡＭ１１６に格納されている受信結果テーブル３０１を参照して、メモリカード１１５へのアクセス時に遅延素子２０３に設定すべき最適遅延段数を決定する。決定された最適遅延段数は、設定遅延量として遅延素子２０３に設定され、これによりマウント時チューニング処理が完了する。
【００３３】
以上のＳ４０１乃至Ｓ４０８の処理により、遅延素子２０３におけるクロック信号の遅延量が段階的に設定され、各遅延量における受信結果に基づき例えば図３に示されるような受信結果テーブル３０１が得られる。Ｓ４０９ではメインマイコン１１８は、受信成功した遅延段数の群（範囲）における中心値を、最適遅延段数として決定する。図３の例では、遅延段数５から１６、及び１周期後の１で構成される群（グループ）が受信成功した遅延段数（位相）を示すため、該グループにおける中央値である１１が最適遅延段数に決定される。なお以後のカードへのアクセス時は、決定した最適遅延段数で遅延させたクロック信号に従って、メモリカード１１５からのデータをラッチする。
【００３４】
上記のマウント時チューニング処理は前述のように、メモリカード１１５の使用開始時、すなわちカードマウント時に行うことができる。しかし、メモリカード１１５における、クロックに対するデータ変化点のタイミングおよび、遅延素子による遅延時間量はそれぞれカードの温度によって変化する。よって、マウント時に設定した最適遅延段数であっても、その後の温度変化によって、最適ではなくなるか、最悪の場合データエラーとなるタイミングとなってしまう場合がある。そこで、本実施形態では、マウント時チューニング処理を行った後もラッチタイミングをモニタすべくチューニング処理を継続的に実行し、得られた結果に応じて最適遅延段数を更新する処理を行う。
【００３５】
図５は、デジタルカメラ１００のメモリカードコントローラ１１３の動作の一例を示すフローチャートであり、上述のマウント時チューニング処理と動画記録中のチューニング処理（記録時チューニング処理）を含む。本フローチャートの実行主体も図４と同様にメインマイコン１１８である。
【００３６】
図５において、メモリカード１１５がデジタルカメラ１００にマウントされると、Ｓ５０１にて上位層プログラムが図４のマウント時チューニングの実行をドライバプログラムに指示し、マウント時チューニング処理が実行される。以降はドライバプログラムによる制御となり、Ｓ５０２にてメインマイコン１１８はＳＤＲＡＭ１１６に格納されている暫定受信結果テーブルの値をクリアする。暫定受信結果テーブルの一例は図３のテーブル３０２に示す通りである。当該暫定受信結果テーブル３０２は、受信結果テーブル３０１の内容をその後に更新するために、記録時チューニング処理において受信成功又は受信失敗した遅延段数を記録しておくためのテーブルである。Ｓ５０３にて、メインマイコン１１８は現在設定されている遅延素子の段数ＮをＳＤＲＡＭ１１６から取得し、Ｎとして格納する。次に、Ｓ５０４にて、メインマイコン１１８は遅延素子２０３の遅延段数を「１」に初期化する。
【００３７】
続くＳ５０５では、ホストコントローラ２０２がテストデータ送信コマンドをメモリカード１１５に対して発行する。次にＳ５０６にて、メインマイコン１１８は、ホストコントローラ２０２経由でメモリカード１１５から６４バイトのテストデータを受信し、ＳＤＲＡＭ１１６に格納する。更にＳ５０７では、メインマイコン１１８が受信したデータ列の６４バイト全てがテストデータの所定パターンと一致するかどうかを判定する。メインマイコン１１８は、受信したデータ列の６４バイトが全て所定パターンと一致すると判断した場合は処理をＳ５０８に移し、一致しないと判断した場合は処理をＳ５０９に移す。Ｓ５０８では、メインマイコン１１８はＳＤＲＡＭ１１６に格納された暫定受信結果テーブル３０２に、現在の遅延段数に関連づけて受信成功の情報を記録する。一方、Ｓ５０９では、メインマイコン１１８は、現在の遅延段数に関連付けて受信失敗の情報を暫定受信結果テーブル３０２に記録する。
【００３８】
その後Ｓ５１０にて、メインマイコン１１８は遅延素子２０３に設定した遅延段数が最大遅延段数であるかを判断する。メインマイコン１１８は、遅延素子２０３に設定した遅延段数が最大遅延段数ではないと判断した場合、処理をＳ５１８に移す。またメインマイコン１１８は、遅延素子２０３に設定した遅延段数が最大遅延段数であると判断した場合、暫定受信結果テーブル３０２が完成したことになるので処理をＳ５１１に移す。Ｓ５１１では、メインマイコン１１８はＳＤＲＡＭ１１６に格納された受信結果テーブル３０１の内容を暫定受信結果テーブル３０２の内容で上書きする形で更新する。その後Ｓ５１２にて、メインマイコン１１８は更新済みの受信結果テーブル３０１に基づき新最適段数（Ｎ'）を決定する。当該新最適段数は、Ｓ４０９と同様に、例えば受信成功した遅延段数の範囲の中心の遅延段数として決定することができる。
【００３９】
次にＳ５１４にて、メインマイコン１１８は新最適段数（Ｎ'）と現在設定されている最適遅延段数（現設定段数）（Ｎ）の値を比較し、両値の差が所定以上であるか否かを判定する。もし所定以上の差が生じている場合、Ｓ５１５に処理を移して現設定段数（Ｎ）の値を、新最適段数（Ｎ'）の値で更新する。例えば、図３の例では、現設定段数Ｎが１１に対し、新最適段数Ｎ'が１６であり、両値の段数の差は５段である。よって所定段数が６段以上で無ければ現設定段数Ｎを１１から１６に更新する。
【００４０】
その後Ｓ５１６にて、メインマイコン１１８は上位層プログラムから、メモリカードに対するデータ書き込みまたはデータ読み出し命令が来ていないかをチェックする。もし該命令が来ていれば、Ｓ５２０に処理を移す。またＳ５１６にて、該命令が来ていなければ、Ｓ５０２の処理に戻る。また、Ｓ５１４にて、現設定段数（Ｎ）と新最適段数（Ｎ'）との差が所定数より小さかった場合、Ｓ５１７に処理を移す。Ｓ５１７ではメインマイコン１１８は上位層プログラムからのメモリカード１１５に対するデータ書き込みまたはデータ読み出し命令が来ていないかをチェックする。もし、該命令が来ていなければＳ５０２の処理に戻る。
【００４１】
また、Ｓ５１０にて遅延段数が最大値まで来ていないと判定された場合は、Ｓ５１８にて、メインマイコン１１８は上位層プログラムからメモリカード１１５に対するデータ書き込みまたはデータ読み出し命令が来ていないかをチェックする。もし、そのような命令が来ていなければ、Ｓ５１８にてメインマイコン１１８は遅延段数を１段増やした上で、Ｓ５０５の処理に戻る。上記Ｓ５１６、Ｓ５１７またはＳ５１８にて上位層プログラムからのメモリカード１１５に対するデータ書き込みまたはデータ読み出し命令が来ていると判定された場合、メインマイコン１１８はＳ５２０に処理を移す。Ｓ５２０では、設定段数Ｎを遅延素子２０３に再設定し、Ｓ５２１にて、メインマイコン１１８は該命令を実行する。ここで、Ｓ５１７及びＳ５１８からＳ５２０に移行した場合、Ｓ５０３で取得された値が遅延段数Ｎとして設定される。また、Ｓ５１６からＳ５２０に移行した場合、Ｓ５１５において更新された値が遅延段数Ｎとして設定される。データの書き込みまたは読み出し処理が完了した後、Ｓ５２２にてメインマイコン１１８は上位層プログラムからカードアンマウントの指示があったかを判定し、当該アンマウント指示が検出されない場合、Ｓ５０５の処理に戻る。一方、当該アンマウント指示が検出された場合、Ｓ５２３にてメインマイコン１１８はカードアンマウント処理を実行する。以上でメモリカードコントローラ１１３の動作が終了する。
【００４２】
以上の記録時チューニング処理では、メモリカード１１５に対するデータ書込／読出の動作期間以外の期間において、遅延素子２０３に設定すべき最適遅延段数を随時決定しておく。そして、実際にデータの書込／読出の命令が来た場合には、その時点で現設定段数（Ｎ）として設定されている段数を遅延素子２０３に設定し、受け付けた命令に対応する処理を実行することができる。これにより、命令を受ける直前のメモリカード１１５の状態に対応した遅延段数を設定して処理を実行できるので、遅延量が変化する使用条件でもアクセスの信頼性を確保することが可能となる。
【００４３】
次に図６を参照して、本実施形態に対応する記録時チューニング処理の具体例を説明する。図６は、動画の記録中における、上位層プログラムおよびドライバプログラムの動作を時系列で図示したものである。同図において、６０１は、動画記録時のＳＤＲＡＭ１１６内に確保されるデータバッファにおける、動画データの蓄積量の時間的推移、６０２は、上位層プログラムとドライバプログラム間の通信、６０３は、メモリカード１１５の動作を示す図である。
【００４４】
本実施形態では、記録される動画データのデータレートよりも、メモリカード１１５に対して書き込みが可能なデータレートの方が大きい。そのため、ユーザによる記録開始の指示から記録停止の指示までの間、上位層プログラムは、ＳＤＲＡＭ１１６内に確保されるデータバッファ用の記憶領域に、生成された動画データを順次記憶する。ＳＤＲＡＭ１１６に記憶された動画データの蓄積量が所定量（１６ＭＢ）に達すると、上位層プログラムは、ドライバプログラムに対してメモリカード１１５の所定のカードアドレスに１６ＭＢの動画データの書き込みを実行するよう要求を行う。ドライバプログラムは、メモリカード１１５に対してＷｒｉｔｅコマンドを発行し、該１６ＭＢのメモリカードへの書き込みが完了したところでＷｒｉｔｅコマンドの完了を上位層プログラムに通知する。この時、動画データの書き込み中も、データバッファ領域には順次動画データが記憶されるが、メモリカード１１５の記録可能なデータレートの方が動画データのデータレートよりも大きいので蓄積されている動画データ量は減少する。そして、１６ＭＢ分の動画データがデータバッファ領域からメモリカード１１５に書き込まれると、データ転送のためのデータバッファ領域からの動画データの読み出しが停止される。その後、データバッファ領域に蓄積された動画データのデータ量が１６ＭＢを超えると、再び上位層プログラムは、ドライバプログラムに対して１６ＭＢの書き込みを実行するよう要求を行う。
【００４５】
一方ドライバプログラムは、動画データの書き込み動作中以外の期間において、図５のフローチャートの破線枠ＳＡ５００で囲われている範囲に示す受信結果テーブル３０１の更新動作を実行する。換言すると、ドライバプログラムからのWrightコマンドに応じた書き込みが完了しドライバプログラムがWrightコマンドの完了を上位層プログラムに通知した後、次に上位層プログラムからWright要求が発行されるまでの間チューニング処理を実行する。これにより、受信結果テーブル３０１の更新動作が継続される。これら一連の動作を繰り返し、動画データのメモリカードへの記録が継続される。
【００４６】
本発明によれば、カードマウントおよびマウント時チューニングを行い、メモリカードが使用可能な状態になってから、メモリカードを本体から取り出すかまたは電源を切る際のカードアンマウント処理が行われるまでの間、チューニング処理を行う。当該チューニング処理では、撮影データの書き込み時やデータの読み出し時以外の時間にテストパターンの受信を行って、メモリカードからのデータ信号、またはコマンドに対するメモリカードからのレスポンス信号の受信成否の取り込みタイミングテーブルを作成し、該テーブルから得られる最適位相の位置が、元々設定されていた位相の位置から大きくずれた場合は修正を行う。これにより、図４に示すマウント時チューニング処理が行われてから時間が経過し、カード表面または周囲温度の変化があった状況から記録開始を行っても、温度変化による取り込みタイミングの変化によって書き込みが失敗するリスクを低減することができる。
【００４７】
なお、本実施形態では、受信結果テーブル３０１の更新後、すぐに次の受信結果テーブル３０１の更新のためのチューニング処理を行う構成となっているが、該受信結果テーブル３０１の更新の頻度は、上位層プログラムの状態に応じて変化させる構成としてもよい。例えば、ユーザにより記録開始の指示が出力されてから記録停止の指示が出力されるまでの間は一定頻度でチューニング処理を実行し、それ以外は頻度を下げる構成としてもよい。この構成では、本体の電源が入っているが、カードに対してデータアクセスが発生しない状態では受信結果テーブル３０１の更新回数が減るのでシステムとしての電力消費を低減できる。
【００４８】
なお、図６では、メモリカード１１５へのデータの書込み動作を例として説明したが、読み出し動作の場合も同様に、Read要求に応じてメモリカード１１５からデータが読み出されている間を除いて、一定頻度でチューニング処理を実行することができる。換言すると、ドライバプログラムからのReadコマンドに応じた読み出しが完了しドライバプログラムがReadコマンドの完了を上位層プログラムに通知した後、次に上位層プログラムからRead要求が発行されるまでの間においてチューニング処理を実行できる。これにより本発明では
メモリカード１１５に対する書き込み命令又は読み出し命令の出力タイミングに基づいて、メモリカード１１５に対する情報データの書き込み又は読み出しの期間以外の期間において、チューニング処理を繰り返し実行できる。
【００４９】
さらに、本実施形態ではＳ５１５における現設定段数（Ｎ）の値を新最適段数（Ｎ'）の値に更新を行うかの判断を、Ｓ５１４に示すように、（Ｎ）および（Ｎ'）の段数の比較に基づく場合を説明した。しかし、この例に限らず、カードスロット１１４内にメモリカードの温度を測定する温度検知部を設けておき、（Ｎ）の値を設定した時のメモリカード１１５の検知温度と（Ｎ'）を取得した時のメモリカード１１５の検知温度とを比較してもよい。検知温度の比較による場合、比較される検知温度の間で所定以上の温度差があった場合に、現設定遅延段数（Ｎ）の値を新最適段数（Ｎ'）の値に更新を行う構成としてもよい。
【００５０】
また、本実施形態の構成では上位プログラムは、ＭＰＥＧ符号化部１０９によって生成された動画データをメモリカード１１５に記録する動作を行っているが、上位プログラムが、ＪＰＥＧ符号化部１０８によって生成された静止画データをメモリカード１１５に記録する動作を行うことも同一の構成によって可能である。
【００５１】
（その他の実施例）
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア（プログラム）を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ（またはＣＰＵやＭＰＵ等）がプログラムを読み出して実行する処理である。
【図１】
2015118568.tif 000003
【図２】
2015118568.tif 000004
【図３】
2015118568.tif 000005
【図４】
2015118568.tif 000006
【図５】
2015118568.tif 000007
【図６】
2015118568.tif 000008