情報処理装置
【課題】より適切な動作モードを選択することのできる情報処理装置を提供する。
【解決手段】本発明に係る情報処理装置は、カード型媒体が挿入されるカードスロットと、第1の動作モードで前記カード型媒体とデータのやり取りを行う場合の通信速度である第1通信速度を取得する、第1通信速度取得手段と、第2の動作モードで前記カード型媒体とデータのやり取りを行う場合の通信速度である第2通信速度を取得する、第2通信速度取得手段と、前記第1通信速度と前記第2通信速度のうち、どちらが速いかを判断する、判断手段と、前記第1の動作モードと前記第2の動作モードのうち、前記判断手段で速いと判断された通信速度の動作モードで、前記カード型媒体とデータのやり取りをする、データ通信手段と、を備えて構成されている。
【解決手段】本発明に係る情報処理装置は、カード型媒体が挿入されるカードスロットと、第1の動作モードで前記カード型媒体とデータのやり取りを行う場合の通信速度である第1通信速度を取得する、第1通信速度取得手段と、第2の動作モードで前記カード型媒体とデータのやり取りを行う場合の通信速度である第2通信速度を取得する、第2通信速度取得手段と、前記第1通信速度と前記第2通信速度のうち、どちらが速いかを判断する、判断手段と、前記第1の動作モードと前記第2の動作モードのうち、前記判断手段で速いと判断された通信速度の動作モードで、前記カード型媒体とデータのやり取りをする、データ通信手段と、を備えて構成されている。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、情報処理装置に関し、特に、カード型媒体とデータのやり取りをする通信速度を適切に選択することのできる情報処理装置に関する。
【背景技術】
【0002】
パーソナルコンピュータなどの情報処理装置でデータを保存したり、データ通信をしたりするためのカード型媒体として、CF(コンパクトフラッシュ(登録商標))カードがある。このCFカードに対応した情報処理装置には、CFカード用のカードスロットが設けられており、ユーザがこのカードスロットにCFカードを挿入することにより、情報処理装置はこのCFカードにアクセスができるようになる。
【0003】
CFカードには、メモリカードとIOカードの2種類があるが、情報処理装置が、カードスロットに挿入されたメモリカードであるCFカードとデータのやり取りをする場合、メモリモードとTrueIDEモードの2つの動作モードのうちのいずれかのモードで行う必要がある。いずれの動作モードでCFカードとデータのやり取りをするかは任意であるが、TrueIDEモードでアクセスした方が、その通信速度が速いことが多いことから、これまでは、情報処理装置が挿入されたCFカードの対応する動作モードを調べ、TrueIDEモードに対応しているCFカードについてはTrueIDEモードでアクセスし、TrueIDEモードに対応していないCFカードについてはメモリモードでアクセスすることとしていた(例えば、特開2004−355476号公報参照)。
【0004】
しかしながら、一部のCFカードにおいては、メモリモードにおける通信速度の方が、TrueIDEモードにおける通信速度より、速い場合があり、このような場合は、メモリモードでCFカーデータとデータのやり取りをした方が、データ転送時間を短くすることができる。
【特許文献1】特開2004−355476号公報
【発明の開示】
【発明が解決しようとする課題】
【0005】
そこで本発明は、前記課題に鑑みてなされたものであり、より適切な動作モードを選択することのできる情報処理装置を提供することを目的とする。
【課題を解決するための手段】
【0006】
上記課題を解決するため、本発明に係る情報処理装置は、
カード型媒体が挿入されるカードスロットと、
第1の動作モードで前記カード型媒体とデータのやり取りを行う場合の通信速度である第1通信速度を取得する、第1通信速度取得手段と、
第2の動作モードで前記カード型媒体とデータのやり取りを行う場合の通信速度である第2通信速度を取得する、第2通信速度取得手段と、
前記第1通信速度と前記第2通信速度のうち、どちらが速いかを判断する、判断手段と、
前記第1の動作モードと前記第2の動作モードのうち、前記判断手段で速いと判断された通信速度の動作モードで、前記カード型媒体とデータのやり取りをする、データ通信手段と、
を備えることを特徴とする。
【0007】
この場合、前記第1通信速度取得手段は、前記第1の動作モードで前記カード型媒体にアクセスすることにより、前記第1通信速度を取得し、
前記第2通信速度取得手段も、前記第1の動作モードで前記カード型媒体にアクセスすることにより、前記第2通信速度を取得するようにしてもよい。
【0008】
或いは、前記第1通信速度取得手段は、前記第1の動作モードで前記カード型媒体にアクセスすることにより、前記第1通信速度を取得し、
前記第2通信速度取得手段は、前記第2の動作モードで前記カード型媒体にアクセスすることにより、前記第2通信速度を取得するようにしてもよい。
【0009】
また、前記第1通信速度取得手段は、前記カードスロットで新たな前記カード型媒体が検出された時点で、前記第1通信速度を取得し、
前記第2通信速度取得手段も、前記カードスロットで新たな前記カード型媒体が検出された時点で、前記第2通信速度を取得し、
前記判断手段も、前記カードスロットで新たな前記カード型媒体が検出された時点で、前記第1通信速度と前記第2通信速度のうち、どちらが速いかを判断するようにしてもよい。
【0010】
或いは、前記第1通信速度取得手段は、前記カード型媒体とデータのやり取りをする要求が発生した時点で、前記第1通信速度を取得し、
前記第2通信速度取得手段も、前記カード型媒体とデータのやり取りをする要求が発生した時点で、前記第2通信速度を取得し、
前記判断手段も、前記カード型媒体とデータのやり取りをする要求が発生した時点で、前記第1通信速度と前記第2通信速度のうち、どちらが速いかを判断するようにしてもよい。
【0011】
また、前記カード型媒体は、コンパクトフラッシュカードであってもよい。
【0012】
この場合、前記第1の動作モードはメモリモードであり、
前記第2の動作モードはTrueIDEモードであってもよい。
【0013】
本発明に係る情報処理装置の制御方法は、
カード型媒体が挿入されるカードスロットを有する情報処理装置の制御方法であって、
第1の動作モードで前記カード型媒体とデータのやり取りを行う場合の通信速度である第1通信速度を、取得するステップと、
第2の動作モードで前記カード型媒体とデータのやり取りを行う場合の通信速度である第2通信速度を、取得するステップと、
前記第1通信速度と前記第2通信速度のうち、どちらが速いかを判断するステップと、
前記第1の動作モードと前記第2の動作モードのうち、速いと判断された方の通信速度の動作モードで、前記カード型媒体とデータのやり取りをするステップと、
を備えることを特徴とする。
【0014】
本発明に係るプログラムは、
カード型媒体が挿入されるカードスロットを有する情報処理装置を制御するためのプログラムであって、
第1の動作モードで前記カード型媒体とデータのやり取りを行う場合の通信速度である第1通信速度を、取得するステップと、
第2の動作モードで前記カード型媒体とデータのやり取りを行う場合の通信速度である第2通信速度を、取得するステップと、
前記第1通信速度と前記第2通信速度のうち、どちらが速いかを判断するステップと、
前記第1の動作モードと前記第2の動作モードのうち、速いと判断された方の通信速度の動作モードで、前記カード型媒体とデータのやり取りをするステップと、
を情報処理装置に実行させることを特徴とする。
【0015】
本発明に係る記録媒体は、
カード型媒体が挿入されるカードスロットを有する情報処理装置を制御するためのプログラムが記録された記録媒体であって、
第1の動作モードで前記カード型媒体とデータのやり取りを行う場合の通信速度である第1通信速度を、取得するステップと、
第2の動作モードで前記カード型媒体とデータのやり取りを行う場合の通信速度である第2通信速度を、取得するステップと、
前記第1通信速度と前記第2通信速度のうち、どちらが速いかを判断するステップと、
前記第1の動作モードと前記第2の動作モードのうち、速いと判断された方の通信速度の動作モードで、前記カード型媒体とデータのやり取りをするステップと、
を情報処理装置に実行させるプログラムが記録されたことを特徴とする。
【発明を実施するための最良の形態】
【0016】
以下、図面を参照して、本発明の実施形態を説明する。なお、以下に説明する実施形態は、本発明の技術的範囲を限定するものではない。
【0017】
〔第1実施形態〕
図1は、本実施形態に係る情報処理装置10の内部構成の一例を説明するブロック図である。情報処理装置10は、カードスロットを備える種々の情報処理装置であり、例えば、小型の携帯情報端末やデジタルカメラ、ノート型若しくはディスクトップ型のコンピュータなどがある。
【0018】
この図1に示すように、本実施形態に係る情報処理装置10は、CPU(Central Processing Unit)20と、RAM(Random Access Memory)22と、ROM(Read Only Memory)24と、ハードディスクドライブ26と、ユーザインターフェース30と、ビデオデコーダ32と、表示画面34とを備えて構成されている。
【0019】
CPU20とRAM22とROM24とハードディスクドライブ26とは、内部バスを介して相互に接続されている。このため、CPU20は、内部バスを介して、これらRAM22、ROM24、ハードディスクドライブ26に任意にアクセス可能である。
【0020】
CPU20からは、画像データがビデオデコーダ32に出力され、このビデオデコーダ32で画像データがデコードされて、表示画面34に表示される。この表示画面34は、LCD(Liquid Crystal Display)やCRT(Cathode Ray Tube)などにより構成されている。
【0021】
また、CPU20には、ユーザインターフェース30から様々なユーザの操作指示が入力される。このユーザインターフェース30は、例えば、1又は複数のボタンや、キーボード、ポインティングデバイスなどから構成することができ、また、これらの組み合わせから構成することができる。図1の例では、情報処理装置10自体にユーザインターフェース30が設けられて構成されているが、このユーザインターフェース30は情報処理装置10の外部に設けられていてもよい。CPU20では、ユーザインターフェース30からの操作指示に基づいて、様々な処理を実行する。
【0022】
また、本実施形態に係る情報処理装置10には、カードスロット40が設けられている。本実施形態では、このカードスロット40には、CFカード50がユーザにより挿入される。したがって、ユーザにより、様々な種類のCFカード50がカードスロット40に挿入されることとなり、様々なモードに対応しているCFカード50が挿入されることになる。
【0023】
特に本実施形態では、このカードスロット40に挿入されるCFカード50は、メモリモードとTrueIDEモードの双方で動作可能なメモリカードが想定されている。本実施形態では、カードI/Oモードで動作可能なI/Oカードがカードスロット40に挿入された場合はエラーとなる。無論、これ以外の規格が新たに制定されれば、新たな規格のCFカードが、情報処理装置10に挿入されることもあり得る。
【0024】
このカードスロット40に挿入されたCFカード50の制御は、CPU20からカードコントローラ60を介して行われる。すなわち、カードスロット40にCFカード50が挿入されたかどうかを、CPU20は、カードスロット40から出力されるカード検出信号に基づいて判断する。また、CFカード50が挿入されている場合には、CPU20は、モード切り換え信号をカードコントローラ60に出力し、メモリモードでアクセスするか、TrueIDEモードでアクセスするかの切り換えを行う。また、情報処理装置10がカードI/Oモードをサポートしている場合には、このモード切り換え信号により、カードI/Oモードへの切り替えも行う。
【0025】
このカードコントローラ60とカードスロット40との間は、カード用バスで接続されており、カードコントローラ60を介して、データのやり取りがCPU20とカードスロット40に挿入されたCFカード50との間で行われる。
【0026】
また、カードスロット40に挿入されたCFカード50には、カード電源制御回路62から電源配線を介してカード電源が供給される。カード電源制御回路62がカード電源を供給するかどうかは、CPU20が出力するカード電源制御信号に基づいて制御される。すなわち、CPU20がCFカード50が挿入されたことを検出した場合や、CPU20がCFカード50にアクセスしようとしている場合には、CPU20はカード電源制御回路62にカード電源を供給するカード電源制御信号を出力する。これとは逆に、CFカード50が抜去されたことをCPU20が検出した場合や、カードアクセス状態からCPU20が抜け出た場合には、CPU20はカード電源制御回路62にカード電源の供給を停止するカード電源制御信号を出力する。例えば、本実施形態では、カード電源を供給する場合のカード電源制御信号はハイレベルであり、カード電源を供給しない場合のカード電源制御信号はローレベルである。
【0027】
本実施形態においては、このCPU20から出力されたカード電源制御信号は、カード電源ディスチャージ回路64にも供給されている。カード電源ディスチャージ回路64は、このカード電源制御信号に基づいて、動作がオン/オフするように構成されている。すなわち、カード電源を供給しないカード電源制御信号である場合には、カード電源ディスチャージ回路64は、動作状態となり、カード電源を供給する電源配線を、抵抗を介してグランドに接続する。このため、カード電源がオンからオフに切り替わった際には、このカード電源の電源配線がディスチャージ回路64により強制的にディスチャージされて、カード電源が急速にグランドレベルまで下がることとなる。逆に、カード電源を供給するカード電源制御信号である場合には、カード電源ディスチャージ回路64は、非動作状態となり、カード電源の電源配線はグランドに接続されない。このため、カード電源を供給している間に無駄な電流が、電源配線からグランドに流れてしまうのを回避することができる。但し、本実施形態では、カードディスチャージ回路64は、必ずしも必要な回路ではなく、省くことも可能である。
【0028】
なお、どのような条件でカード電源をオンにして、どのような条件でカード電源をオフにするかは、情報処理装置10やCFカード50の仕様により種々に設定される。
【0029】
図2は、本実施形態に係るカード電源ディスチャージ回路64の回路構成の一例を示す図である。この図2に示すように、カード電源ディスチャージ回路64は、PチャンネルMOSトランジスタQ1と、NチャンネルMOSトランジスタQ2と、抵抗R1〜R4と、ダイオードD1〜D4と、カード電源オン・オフ回路70とを備えて構成されている。
【0030】
供給電源とグランドとの間には、PチャンネルMOSトランジスタQ1と抵抗R1とが直列に接続されている。このPチャンネルMOSトランジスタQ1と並列に、ダイオードD4が接続されている。カード電源制御信号が入力される入力端子に接続されているノードAと、PチャンネルMOSトランジスタQ1のゲートGとの間には、抵抗R3が接続されている。
【0031】
CFカード50にカード電源を供給するための電源配線に接続されているノードCと、グランドとの間には、抵抗R2とNチャンネルMOSトランジスタQ2が接続されている。このNチャンネルMOSトランジスタQ2と並列に、ダイオードD3が接続されている。PチャンネルMOSトランジスタQ1と抵抗R1との間のノードBと、NチャンネルMOSトランジスタQ2のゲートGとの間には、抵抗R4が接続されている。また、この抵抗R4と並列に、ダイオードD2が接続されている。
【0032】
供給電源とカード電源との間には、カード電源オン・オフ回路70が接続されており、このカード電源オン・オフ回路70には、ノードAからカード電源制御信号が入力される。カード電源オン・オフ回路70は、カード電源制御信号がハイレベルの場合には、供給電源からの電源をカード電源としてノードCに供給し、カード電源制御信号がローレベルの場合には、ノードCに電源を供給しない回路である。
【0033】
次に、このカード電源ディスチャージ回路64の動作について説明する。まず、カード電源制御信号がハイレベルの場合、つまりカード電源を供給する場合の動作について説明する。カード電源制御信号がハイレベルであると、カード電源オン・オフ回路70は、供給電源から供給されている電源をノードCに供給する。また、ノードAがハイレベルになり、PチャンネルMOSトランジスタQ1がオフとなる。また、ノードBは、抵抗R1を介してグランドに接続されるのでローレベルとなり、NチャンネルMOSトランジスタQ2もオフとなる。このため、電源配線はグランドから切り離され、カード電源オン・オフ回路70から出力された電源が、カード電源として、電源配線を介して供給される。
【0034】
次に、カード電源制御信号がローレベルになると、つまりカード電源の供給を停止すると、ノードAがローレベルになる。このため、カード電源オン・オフ回路70はノードCに供給電源から電源を供給するのを停止する。また、ノードAがローレベルであるので、PチャンネルMOSトランジスタQ1がオンとなり、ノードBが供給電源につられてハイレベルとなる。ノードBがハイレベルになると、NチャンネルMOSトランジスタQ2もオンとなり、カード電源を供給する電源配線が抵抗R2を介してグランドに接続される。このため、カード電源の電源配線は強制的にディスチャージされて短い時間で立ち下がる。この抵抗R2の抵抗値を小さくするほど、電源配線は急激にディスチャージされて、カード電源の立ち下がり時間は短くなる。
【0035】
図3は、カード電源ディスチャージ回路64がない情報処理装置である場合におけるカード電源制御信号とカード電源の動作波形を示す図であり、図4は、カード電源ディスチャージ回路64がある情報処理装置10のカード電源制御信号とカード電源との動作波形を示す図である。
【0036】
図3に示すように、CFカード50が挿入されると、CPU20はメモリモードでCFカード50にアクセスするために時刻T1でカード電源制御信号をハイレベルにして、CFカード50にカード電源を供給する。そして、メモリモードでCFカード50からCIS情報を読み出す。続いて、CFカード50をメモリモードからTrueIDEモードに切り換えるために、時刻T2でカード電源制御信号をローレベルにしてCFカード50へのカード電源の供給を停止する。この時刻T2の後、カード電源ディスチャージ回路64がないので、長い時間をかけて、カード電源が立ち下がる。そして、カード電源が立ち下がった後、時刻T3でカード電源の供給を再開して、TrueIDEモードでCFカード50を立ち上げることができる。
【0037】
一方、カード電源ディスチャージ回路64がある場合には、図4に示すように、時刻T2でカード電源制御信号をローレベルにすると、カード電源ディスチャージ回路64が強制的にカード電源の電源配線をディスチャージするので、短い時間でカード電源が立ち下がる。
【0038】
次に、図5、図6A及び図6Bを用いて、情報処理装置10が定常的に実行しているカードアクセス事前処理を説明する。このカードアクセス事前処理は、ROM24又はハードディスクドライブ26に格納されているカードアクセス事前処理プログラムをCPU20が読み込んで実行することにより実現する処理である。また、このカードアクセス事前処理は、情報処理装置10の電源がオンになった時点で、自動的に起動される処理である。
【0039】
図5に示すように、情報処理装置10は、カードスロット40で新たなCFカード50が検出されたかどうかを判断する(ステップS10)。本実施形態においては、上述したカードスロット40から出力されるカード検出信号に基づいて、新たなCFカード50がカードスロット40に挿入されたかどうかを判断する。より具体的には、情報処理装置10は、カードスロット40におけるCD1信号及びCD2信号の両方の信号がハイレベルからローレベルに変化した場合に、新たなCFカード50がカードスロット40に挿入されたと判断する。さらに、本実施形態では、情報処理装置10は、この情報処理装置10本体の電源がオンになった際にカードスロット40におけるCD1信号及びCD2信号を確認し、これらCD1信号及びCD2信号が電源をオンにした際にローレベルである場合にも、既にCFカード50がカードスロット40に挿入されているため、新たなCFカード50がカードスロット40に挿入されていると判断する。すなわち、本実施形態では、CFカード50が挿入されている間は、これらCD1信号及びCD2信号はローレベルになり、CFカード50が挿入されていない間は、これらCD1信号及びCD2信号はハイレベルになる。
【0040】
ステップS10で新たなCFカード50が検出されないと判断した場合(ステップS10:NO)には、このステップS10を繰り返して、カードスロット40に新たなCFカード50が検出されるまで待機する。
【0041】
一方、ステップS10で新たなCFカード50がカードスロット40で検出されたと判断した場合(ステップS10:YES)には、情報処理装置10は、カードコントローラ60の初期化を行う(ステップS12)。
【0042】
次に、情報処理装置10は、CFカード50のRESET信号をアサートする(ステップS14)。続いて、情報処理装置10は、カード電源制御信号をローレベルからハイレベルにして、カード電源を立ち上げる(ステップS16)。この時は、メモリモードでCFカード50を立ち上げる。
【0043】
次に、情報処理装置10は、カード電源が安定するまで待った後、カードコントローラ60のカード側のインターフェースを、ハイインピーダンス状態から出力可能状態に切り換える(ステップS18)。続いて、情報処理装置10は、RESET信号をネゲートする(ステップS20)。
【0044】
次に、図6Aに示すように、情報処理装置10は、メモリモードで、カード属性情報であるCIS情報を読み出す(ステップS30)。
【0045】
次に、情報処理装置10は、この読み出したCIS情報に基づいて、挿入されているCFカード50のメモリモードにおけるサイクル時間を調べて取得する(ステップS32)。
【0046】
図7は、CFカード50がメモリモードで対応している可能性のあるサイクル時間の一覧を示す図である。この図7に示すように、本実施形態では、CFカード50は、250ns、150ns、120ns、100ns、80nsのいずれかのサイクル時間で、動作する。CFカードがどのサイクル時間に対応しているかは、CIS情報のうちのCISTPL_DEVICEタプル内のバイト2におけるデバイスIDのビット2〜ビット0を見ることにより判断できる。したがって、ステップS32では、読み出したCIS情報に基づいて、挿入されているCFカード50がどのサイクル時間で動作するのかを特定し、このサイクル時間に基づいて、メモリモードの通信速度を特定する。ここでサイクル時間は、基本動作クロックの1サイクルの時間であるので、サイクル時間が短いほど、基本動作は速くなることを意味している。
【0047】
なお、150nsのサイクル時間については、CF+ and Compact Flash Specification Revision 3.0の規格では対応していないが、通常のCFカード50やハードディスクドライブを内蔵したマイクロドライブで150nsのサイクル時間で動作する仕様のカードも存在する。このため、本実施形態に係る情報処理装置10では、150nsのサイクル時間で動作するCFカード50やマイクロドライブにも対応できるようにしている。
【0048】
次に、情報処理装置10は、IdentifyDeviceコマンドを実行し(ステップS34)、TrueIDEモードのサイクル時間を取得する(ステップS36)。すなわち、TrueIDEモードでも、CFカード50の種類によって、対応可能な転送モードが異なり、対応可能な転送モードによって通信速度、つまりサイクル時間が異なる。このため、情報処理装置10は、対応可能な転送モードを調べる必要がある。
【0049】
一般に、TrueIDEモードの転送モードには、大きく分けて、PIOモード、Multiword DMAモード、Ultra DMAモードの3つがある。これらの3つの転送モードには、それぞれ、対応速度別にいくつかのモードが用意されている。本実施形態に係る情報処理装置10では、これら3つの転送モードのうち、PIOモードにのみ対応していると仮定する。
【0050】
さらに、本実施形態に係る情報処理装置10は、PIOモードのうち、最新のリビジョンであるRevision3.0版(CF+ and Compact Flash Specification Revision 3.0)に対応していると仮定する。Revision3.0のPIOモードでは、PIOモード0からPIOモード6まで定義されているので、このいずれのPIOモードに挿入されているCFカード50が対応しているかを判断する。
【0051】
図8は、PIOモードで定義されているモード0〜モード6のサイクル時間の一覧を示す図である。この図8に示すように、PIOモードでは、PIOモード0が最も通信速度が遅く、サイクル時間が600nsであり、PIOモード6に行くに従って通信速度が速くなり、PIOモード6ではサイクル時間は80nsである。
【0052】
図9は、本実施形態に係るTrueIDEモードのPIOモードにおける対応モードを判定するためのモード判定処理の内容を説明するフローチャートを示す図である。このモード判定処理は、ROM24又はハードディスクドライブ26に格納されているモード判定プログラムをCPU20が読み込んで実行することにより実現される処理である。
【0053】
この図9に示すように、まず、情報処理装置10は、IdentifyDeviceコマンドを実行し、Identify情報を読み出す(ステップS100)。そして、情報処理装置10は、このIdentify情報のWord53のビット1が「0」であるかどうかを判断し(ステップS102、ステップS104)、このビット1が「0」である場合(ステップS104:YES)には、Word51の値に基づいてモードを判別する(ステップS106)。すなわち、Word51の値が「0」であればPIOモード0に対応していると判断し、「1」であればPIOモード1に対応していると判断し、「2」であればPIOモード2に対応していると判断し、「3」であればPIOモード3に対応していると判断し、「4」であればPIOモード4に対応していると判断する。このWord51の値が「5」以上の場合には、適用外のカードであると判断する。
【0054】
一方、Word53のビット1が「0」でない場合(ステップS104:NO)には、Word64のビット1を確認し(ステップS108)、このビット1が「1」である場合(ステップS110:YES)には、PIOモード4に対応していると判断し(ステップS112)、このビット1が「1」ではなく(ステップS110:NO)、Word64のビット0が「1」である場合(ステップS114、ステップS116)には、PIOモード3に対応していると判断する(ステップS118)。但し、これらステップS112及びステップS118の場合、Word163を確認し(ステップS120)、Word163のビット0が「1」である場合には、PIOモード5に対応していると判断し(ステップS122)、Word163のビット1が「1」である場合には、PIOモード6に対応していると判断する(ステップS124)。一方、Word163のビット0〜ビット2が0である場合には、Word64に基づいて判断したPIOモード3又はPIOモード4が対応モードとなる(ステップS126)。
【0055】
Word64のビット1が「1」ではなく(ステップS110:NO)、Word64のビット0も「1」ではない場合(ステップS116:NO)には、適用外のカードであると判断する(ステップS128)。このように、本実施形態においては、図9に示すようなモード判定処理により、TrueIDEモードのPIOモードで対応している転送モードを判断し、TrueIDEモードの通信速度を取得する。
【0056】
なお、このIdentifyDeviceコマンドは、メモリモードで実行してもよいし、TrueIDEモードで実行してもよい。メモリモードでIdentifyDeviceコマンドを実行する場合には、ステップS30の後、そのまま、このIdentifyDeviceコマンドを実行すればよい。一方、TrueIDEモードでIdentifyDeviceコマンドを実行する場合には、図4で示したように、一旦、CFカード50へのカード電源の供給を停止し、このカード電源が十分に立ち下がった後に、OE信号をグランドレベルに固定して再びカード電源の供給を開始することにより、CFカード50をTrueIDEモードで立ち上げなおした後、IdentifyDeviceコマンドを実行する必要がある。
【0057】
次に、図6Aに示すように、情報処理装置10は、モード選択テーブルTB10を参照して、データ転送に使用するモードを選択する(ステップS38)。図10は、本実施形態に係るモード選択テーブルTB10の構成の一例を示す図である。本実施形態では、このモード選択テーブルTB10は、ROM24又はハードディスクドライブ26に予め格納されている。
【0058】
この図10から分かるように、モード選択テーブルTB10は、メモリモードで対応しているサイクル時間と、TrueIDEモードで対応しているPIOモードとを比較して、通信速度が速いのは、メモリモードとTrueIDEモードのどちらであるかを示す一覧表である。したがって、情報処理装置10は、モード選択テーブルTB10に基づいて、新たに検出されたCFカード50が対応している動作モードのうち、速い方の転送速度の動作モードを選択する。例えば、メモリモードにおいては250nsのサイクル時間に対応しており、TrueIDEモードにおいては283nsのPIOモード1に対応している場合には、動作モードとしてメモリモードを選択する。また、メモリモードにおいては250nsのサイクル時間に対応しており、TrueIDEモードにおいては180nsのPIOモード3に対応している場合には、動作モードとしてTrueIDEモードを選択する。
【0059】
但し、メモリモードとTrueIDEモードは異なる別の動作モードであるため、両者の間で転送速度を比較しようとする場合、必ずしも、サイクル時間が短い方が転送速度が速いとは限らない。このため、本実施形態では、単純に、サイクル時間に基づいて動作モードを決定するのではなく、予め、メモリモードとTrueIDEモードにおける転送速度を調べておき、転送速度の速い方の動作モードが選択されるように、モード選択テーブルTB10を用意しておくこととしているのである。
【0060】
次に、図6Aに示すように、情報処理装置10は、カードコントローラ60の設定を行う(ステップS39)。すなわち、ステップ38で選択した動作モードにカードコントローラ60を適合させるための設定を行う。
【0061】
次に、図6Bに示すように、情報処理装置10は、CFカード50のRESET信号をアサートする(ステップS40)。続いて、情報処理装置10は、カードコントローラ60のカード側のインターフェースを、出力可能状態からハイインピーダンス状態に切り換える(ステップS42)。
【0062】
次に、情報処理装置10は、カード電源制御信号をハイレベルからローレベルにして、カード電源をオフにする(ステップS44)。本実施形態では、実際にCFカード50に対するデータの読み書きの要求がいつ発生するかは不明であることから、消費電力の低減を図るため、CFカード50へのカード電源の供給を一旦停止することとしている。そして、カード電源の供給を停止した状態で待機して、実際にCFカード50に対してデータの読み書きの動作が発生するのを待つこととしている。
【0063】
但し、このカード電源への電源供給を停止するタイミングは、任意であり、ステップS38の終了後、直ちにカード電源の供給を停止してもよいし、或いは、ステップS38の終了後、所定時間(例えば10秒)経過後にカード電源の供給を停止してもよい。特に、CFカード50をカードスロット40に新たに挿入した場合には、ユーザは、その後、短い時間でCFカード50に対するデータの読み書きを実行すると考えることもできる場合には、ステップS38の終了後、所定時間経過後にカード電源の供給を停止するようにすればよい。また、カード電源の供給により消費される電力がさほど大きなものではないと考えられる場合には、このステップS40〜ステップS44は省くことも可能である。この場合、CFカード50にカード電源が供給され続けることとなる。
【0064】
次に、情報処理装置10は、実際にCFカード50に対してデータを書き込んだり、CFカード50からデータを読み込んだりする指示が発生したかどうかを判断する(ステップS46)。実際にCFカード50に対してデータを書き込んだり、CFカード50からデータを読み込んだりする指示が発生した場合(ステップS46:YES)には、ステップS38で選択した動作モードにより、CFカード50に対してデータの読み書きを実行する(ステップS48)。なお、カード電源の供給を一旦停止している場合には、CFカード50に対するデータの読み書きの動作が発生した時点で、再度、カード電源の供給を開始する必要がある。そして、このデータの読み書きの動作が完了した後、ステップS46に戻る。
【0065】
一方、ステップS46でデータの読み書きの指示が発生していないと判断した場合(ステップS46:NO)には、情報処理装置10は、CFカード50がカードスロット40から抜去されたかどうかを判断する(ステップS50)。具体的には、情報処理装置10は、カードスロット40におけるCD1信号及びCD2信号のいずれか一方の信号若しくは両方の信号がローレベルからハイレベルに変化したかどうかを判断することにより、CFカード50が抜去されたかどうかを判断する。すなわち、本実施形態においては、CFカード50がカードスロット40に挿入されたかどうかというステップS10における判定では、CD1信号及びCD2信号の両方がローレベルになったときに、CFカード50が挿入されたと判断するが、CFカード50がカードスロット40から抜去されたかどうかというステップS50における判定では、CD1信号とCD2信号のうちのどちらか一方でもハイレベルになったときに、CFカード50が抜去されたと判断する。CFカード50が抜去されていない場合(ステップS46:NO)には、上述したステップS46に戻る。
【0066】
一方、CFカード50が抜去されたと判断した場合(ステップS50:YES)には、上述した図5のステップS10に戻り、次の新たなCFカード50が検出されるまで待機する。
【0067】
以上のように、本実施形態に係る情報処理装置10によれば、メモリモードで対応している通信速度と、TrueIDEモードで対応している通信速度とを調べ、通信速度の速い方の動作モードでデータのやり取りを行うようにしたので、CFカード50とデータをやり取りするのに要するユーザの待ち時間を、可及的に短くすることができる。特に、メモリモードの方がTrueIDEモードよりも速いサイクル時間であるCFカード50については、本実施形態を適用することにより、的確に速い方のメモリモードを選択させることができる。
【0068】
また、CFカード50がカードスロット40に挿入された時点で、どちらの動作モードでデータ転送をすべきかを判定しているので、実際にCFカード50とデータ転送をする要求が発生した際には、速やかにデータ転送の処理に入ることができる。このため、データ転送の際のユーザの待ち時間も、その分、短くすることができる。
【0069】
さらに、本実施形態に係る情報処理装置10によれば、カード電源ディスチャージ回路64を設け、カード電源がオンになっている場合には、カード電源の電源配線をグランドから切り離すが、カード電源がオフになっている場合には、カード電源の電源配線をグランドに接続するようにした。このため、カード電源をオンからオフに切り換える際に、カード電源を短い時間で立ち下げることができる。特に、ステップS34において、TrueIDEモードでIdentifyDeviceコマンドを実行する場合には、カード電源を一旦オフにしてからCFカード50を立ち上げなおす必要があるが、このカード電源ディスチャージ回路64が設けられていることにより、短い時間で、CFカード50をTrueIDEモードに切り換えることができるようになる。
【0070】
また、ユーザがCFカード50をカードスロット40から抜く際にも、CFカード50に供給されているカード電源は自動的にオフにする必要があるが、本実施形態によれば、これまでよりも短い時間でカード電源を立ち下げることができるので、ユーザが素早くCFカード50を抜いたような場合でも、CFカード50にダメージを与えないようにすることができる。
【0071】
さらに、本実施形態によれば、カード電源をCFカード50に供給している間は、カード電源の電源配線がグランドから切り離されるようにしたので、カード電源の無駄な消費を抑制することができる。すなわち、カード電源の電源配線を、単純に抵抗を介してグランドに常時接続してしまう手法も考えられるが、この場合、カード電源がオンになっている間は定常的に抵抗を介してグランドに電流が流れてしまい、無駄な電力消費が発生してしまう。これに対して、本実施形態では、カード電源がオンになっている間は、カード電源の電源配線がグランドから切り離されるので、このような無駄な電力消費を回避することができる。特に、無駄な電力消費を抑制することは、少しでもバッテリによる連続動作時間を長くしたいデジタルカメラや携帯型の情報端末などの情報処理装置では重要である。
【0072】
〔第2実施形態〕
上述した第1実施形態では、CFカード50がカードスロット40に挿入された際に、CFカード50と通信可能な速度を判断することとしたが、第2実施形態では、CFカード50と実際にデータのやり取りをする要求が発生した時点で、CFカード50と通信可能な速度を判断するようにしたものである。以下、上述した第1実施形態と異なる部分を説明する。
【0073】
図11乃至図13は、第2実施形態に係るカードアクセス処理を説明するフローチャートを示す図である。このカードアクセス処理は、情報処理装置10が実際にCFカード50とデータのやり取りをする必要が生じた際に起動される処理である。すなわち、CFカード50にデータを書き込んだり、CFカード50からデータを読み出したりする必要が生じた際に、起動される処理である。また、このカードアクセス処理は、ROM24又はハードディスクドライブ26に格納されたカードアクセスプログラムをCPU20が読み込んで実行することにより、実現される処理である。なお、本実施形態では、CFカード50がカードスロット40に挿入された時点では、上述した第1実施形態におけるカードアクセス事前処理は起動されないこととなる。
【0074】
まず、図11に示すように、情報処理装置10は、カードコントローラ60の初期化を行う(ステップS200)。
【0075】
次に、情報処理装置10は、CFカード50のRESET信号をアサートする(ステップS202)。続いて、情報処理装置10は、カード電源制御信号をローレベルからハイレベルにして、カード電源を立ち上げる(ステップS204)。この時は、メモリモードでCFカード50を立ち上げる。
【0076】
次に、情報処理装置10は、カード電源が安定するまで待った後、カードコントローラ60のカード側のインターフェースを、ハイインピーダンス状態から出力可能状態に切り換える(ステップS206)。続いて、情報処理装置10は、RESET信号をネゲートする(ステップS208)。
【0077】
次に、図12に示すように、情報処理装置10は、メモリモードで、カード属性情報であるCIS情報を読み出す(ステップS220)。
【0078】
次に、情報処理装置10は、この読み出したCIS情報に基づいて、挿入されているCFカード50のメモリモードにおけるサイクル時間を調べて取得する(ステップS222)。具体的なサイクル時間の判断手法は、上述した第1実施形態におけるステップS32と同様である。
【0079】
次に、情報処理装置10は、IdentifyDeviceコマンドを実行し(ステップS224)、TrueIDEモードのサイクル時間を取得する(ステップS226)。具体的なサイクル時間の判断手法は、上述した第1実施形態におけるステップS36と同様である。また、IdentifyDeviceコマンドを、メモリモードとTrueIDEモードのいずれで実行してもよいことも、上述した第1実施形態と同様である。
【0080】
次に、情報処理装置10は、図10のモード選択テーブルTB10を参照して、データ転送に使用する動作モードを選択する(ステップS228)。すなわち、上述した第1実施形態の図10のモード選択テーブルTB10を用いて、通信速度の速い方の動作モードを選択する。
【0081】
次に、情報処理装置10は、カードコントローラ60の設定を行う(ステップS229)。すなわち、ステップ228で選択した動作モードにカードコントローラ60を適合させるための設定を行う。
【0082】
次に、図13に示すように、情報処理装置10は、ステップS288で選択したモードを用いて、実際のデータ転送を実行する(ステップS230)。すなわち、CFカード50へのアクセス要求がCFカード50へのデータの書き込みであれば、ステップS228で選択した動作モードでデータの書き込みを行い、CFカード50へのアクセス要求がCFカード50からのデータの読み出しであれば、ステップS228で選択した動作モードでデータの読み出しを行う。このときの通信速度は、ステップS222で特定されたサイクル時間に基づく通信速度か、又は、ステップS226で特定されたサイクル時間に基づく通信速度である。
【0083】
このCFカード50とのデータ転送が完了した場合、情報処理装置10は、CFカード50への最後のアクセスから、所定の時間(例えば60秒)が経過したかどうかを判断する(ステップS232)。この所定の時間を経過していない場合(ステップS232:NO)には、このステップS232の処理を繰り返す。そして、再び、CFカード50へのアクセスが発生した場合には、ステップS228で選択した動作モードでデータ転送を行う。
【0084】
一方、CFカード50に最後にアクセスしてから所定の時間を経過した場合(ステップS232:YES)には、情報処理装置10は、CFカード50のRESET信号をアサートする(ステップS234)。続いて、情報処理装置10は、カードコントローラ60のカード側のインターフェースを、出力可能状態からハイインピーダンス状態に切り換える(ステップS236)。
【0085】
次に、情報処理装置10は、カード電源制御信号をハイレベルからローレベルにして、カード電源をオフにする(ステップS238)。本実施形態では、次のCFカード50にアクセスしてデータのやり取りをする要求がいつ発生するかは不明であることから、消費電力の低減を図るため、CFカード50へのカード電源の供給を一旦停止することとしている。これにより、本実施形態に係るカードアクセス処理が終了する。
【0086】
以上のように、本実施形態に係る情報処理装置10によっても、メモリモードで対応している通信速度と、TrueIDEモードで対応している通信速度とを調べ、通信速度の速い方の動作モードでデータのやり取りを行うようにしたので、CFカード50とデータをやり取りするのに要するユーザの待ち時間を、可及的に短くすることができる。
【0087】
なお、本発明は上記実施形態に限定されず種々に変形可能である。例えば、上述した実施形態では、カード型媒体としてCFカード(コンパクトフラッシュ(登録商標)カード)を例に説明したが、他の種類のカード型媒体であっても同様に本発明を適用することができる。すなわち、カード型媒体に対してデータの読み書きを行う前に事前処理が必要となる情報処理装置について、本発明を適用することができる。より具体的には、異なる2つ以上の動作モードを有し、これらの動作モードで通信速度が異なるカード型媒体とデータのやり取りをする場合に、本発明を適用できる。
【0088】
また、本発明は、上述したメモリモード、TrueIDEモード、カードI/Oモード以外の様々な動作モードについても本発明を適用することができる。すなわち、カード型媒体の種類に応じて、様々な動作モードが用意されているため、この用意されている動作モードに応じて、本発明を適用することができる。
【0089】
また、上述した実施形態では、図10のモード選択テーブルTB10に基づいて、メモリモードにおける通信速度とTrueIDEモードにおける通信速度のどちらの通信速度が速いかを判断し、データのやり取りを行う動作モードを選択することとしたが、取得したそれぞれのサイクル時間に基づいて、データのやり取りを行う動作モードを選択するようにしてもよい。すなわち、上述したように、メモリモードとTrueIDEモードの間では、サイクル時間が短い方が通信速度が必ずしも速いとは限らないが、一般的にはサイクル時間の短い方が通信速度の速い可能性が高いので、メモリモードにおけるサイクル時間の方が短ければ、データのやり取りを行う動作モードとしてメモリモードを選択し、TrueIDEモードにおけるサイクル時間の方が短ければ、データのやり取りを行う動作モードとしてTrueIDEモードを選択するようにしてもよい。このようにすることにより、モード選択テーブルTB10を格納しておくべきROM24内又はハードディスクドライブ26内の容量を削減できる。したがって、どちらの通信速度の方が速いかを判断する手法は、任意に変更可能であると言える
また、上述の実施形態で説明したカードアクセス事前処理及びカードアクセス処理については、このカードアクセス事前処理又はカードアクセス処理を実行するためのプログラムをフレキシブルディスク、CD−ROM(Compact Disc-Read Only Memory)、ROM、メモリカード等の記録媒体に記録して、記録媒体の形で頒布することが可能である。この場合、この記録媒体に記録されたプログラムを情報処理装置10に読み込ませ、実行させることにより、上述した実施形態を実現することができる。
【0090】
また、情報処理装置10は、オペレーティングシステムや別のアプリケーションプログラム等の他のプログラムを備える場合がある。この場合、情報処理装置10の備える他のプログラムを活用するために、その情報処理装置10が備えるプログラムの中から、上述した実施形態と同等の処理を実現するプログラムを呼び出すような命令を含むプログラムを、記録媒体に記録するようにしてもよい。
【0091】
さらに、このようなプログラムは、記録媒体の形ではなく、ネットワークを通じて搬送波として頒布することも可能である。ネットワーク上を搬送波の形で伝送されたプログラムは、情報処理装置10に取り込まれて、このプログラムを実行することにより上述した実施形態を実現することができる。
【0092】
また、記録媒体にプログラムを記録する際や、ネットワーク上を搬送波として伝送される際に、プログラムの暗号化や圧縮化がなされている場合がある。この場合には、これら記録媒体や搬送波からプログラムを読み込んだ情報処理装置10は、そのプログラムの復号や伸張を行った上で、実行する必要がある。
【0093】
さらに、上述した実施形態では、カードアクセス事前処理をソフトウェアにより実現することとしたが、ASIC(Application Specific IC)等のハードウェアにより実現するようにしてもよい。
【図面の簡単な説明】
【0094】
【図1】本発明の第1実施形態及び第2実施形態に係る情報処理装置の内部構成を説明するためのブロック図である。
【図2】図1の情報処理装置が備えるカード電源ディスチャージ回路の回路構成の一例を示す図である。
【図3】カード電源ディスチャージ回路がない情報処理装置におけるカード電源とカード電源制御の動作波形の一例を示す図である。
【図4】カード電源ディスチャージ回路がある情報処理装置におけるカード電源とカード電源制御の動作波形の一例を示す図である。
【図5】図1に示す情報処理装置が実行する第1実施形態に係るカードアクセス事前処理の一例を説明するためのフローチャートを示す図である(その1)。
【図6A】図1に示す情報処理装置が実行する第1実施形態に係るカードアクセス事前処理の一例を説明するためのフローチャートを示す図である(その2)。
【図6B】図1に示す情報処理装置が実行する第1実施形態に係るカードアクセス事前処理の一例を説明するためのフローチャートを示す図である(その3)。
【図7】メモリモードで対応しているサイクル時間の一覧を示す図である。
【図8】TrueIDEモードのPIOモードで対応しているサイクル時間の一覧を示す図である。
【図9】挿入されたCFカードがTrueIDEモードのPIOモードで対応している通信速度(PIOモード)を判定するためのモード判定処理の一例を説明するためのフローチャートを示す図である。
【図10】メモリモードにおける通信速度とTrueIDEモードにおける通信速度のどちらが速いかを判断するためのモード選択テーブルの一例を示す図。
【図11】図1に示す情報処理装置が実行する第2実施形態に係るカードアクセス処理の一例を説明するためのフローチャートを示す図である(その1)。
【図12】図1に示す情報処理装置が実行する第2実施形態に係るカードアクセス処理の一例を説明するためのフローチャートを示す図である(その2)。
【図13】図1に示す情報処理装置が実行する第2実施形態に係るカードアクセス処理の一例を説明するためのフローチャートを示す図である(その3)。
【符号の説明】
【0095】
10 情報処理装置
20 CPU
22 RAM
24 ROM
26 ハードディスクドライブ
30 ユーザインターフェース
32 ビデオデコーダ
34 表示画面
40 カードスロット
50 CFカード
60 カードコントローラ
62 カード電源制御回路
64 カード電源ディスチャージ回路
【技術分野】
【0001】
本発明は、情報処理装置に関し、特に、カード型媒体とデータのやり取りをする通信速度を適切に選択することのできる情報処理装置に関する。
【背景技術】
【0002】
パーソナルコンピュータなどの情報処理装置でデータを保存したり、データ通信をしたりするためのカード型媒体として、CF(コンパクトフラッシュ(登録商標))カードがある。このCFカードに対応した情報処理装置には、CFカード用のカードスロットが設けられており、ユーザがこのカードスロットにCFカードを挿入することにより、情報処理装置はこのCFカードにアクセスができるようになる。
【0003】
CFカードには、メモリカードとIOカードの2種類があるが、情報処理装置が、カードスロットに挿入されたメモリカードであるCFカードとデータのやり取りをする場合、メモリモードとTrueIDEモードの2つの動作モードのうちのいずれかのモードで行う必要がある。いずれの動作モードでCFカードとデータのやり取りをするかは任意であるが、TrueIDEモードでアクセスした方が、その通信速度が速いことが多いことから、これまでは、情報処理装置が挿入されたCFカードの対応する動作モードを調べ、TrueIDEモードに対応しているCFカードについてはTrueIDEモードでアクセスし、TrueIDEモードに対応していないCFカードについてはメモリモードでアクセスすることとしていた(例えば、特開2004−355476号公報参照)。
【0004】
しかしながら、一部のCFカードにおいては、メモリモードにおける通信速度の方が、TrueIDEモードにおける通信速度より、速い場合があり、このような場合は、メモリモードでCFカーデータとデータのやり取りをした方が、データ転送時間を短くすることができる。
【特許文献1】特開2004−355476号公報
【発明の開示】
【発明が解決しようとする課題】
【0005】
そこで本発明は、前記課題に鑑みてなされたものであり、より適切な動作モードを選択することのできる情報処理装置を提供することを目的とする。
【課題を解決するための手段】
【0006】
上記課題を解決するため、本発明に係る情報処理装置は、
カード型媒体が挿入されるカードスロットと、
第1の動作モードで前記カード型媒体とデータのやり取りを行う場合の通信速度である第1通信速度を取得する、第1通信速度取得手段と、
第2の動作モードで前記カード型媒体とデータのやり取りを行う場合の通信速度である第2通信速度を取得する、第2通信速度取得手段と、
前記第1通信速度と前記第2通信速度のうち、どちらが速いかを判断する、判断手段と、
前記第1の動作モードと前記第2の動作モードのうち、前記判断手段で速いと判断された通信速度の動作モードで、前記カード型媒体とデータのやり取りをする、データ通信手段と、
を備えることを特徴とする。
【0007】
この場合、前記第1通信速度取得手段は、前記第1の動作モードで前記カード型媒体にアクセスすることにより、前記第1通信速度を取得し、
前記第2通信速度取得手段も、前記第1の動作モードで前記カード型媒体にアクセスすることにより、前記第2通信速度を取得するようにしてもよい。
【0008】
或いは、前記第1通信速度取得手段は、前記第1の動作モードで前記カード型媒体にアクセスすることにより、前記第1通信速度を取得し、
前記第2通信速度取得手段は、前記第2の動作モードで前記カード型媒体にアクセスすることにより、前記第2通信速度を取得するようにしてもよい。
【0009】
また、前記第1通信速度取得手段は、前記カードスロットで新たな前記カード型媒体が検出された時点で、前記第1通信速度を取得し、
前記第2通信速度取得手段も、前記カードスロットで新たな前記カード型媒体が検出された時点で、前記第2通信速度を取得し、
前記判断手段も、前記カードスロットで新たな前記カード型媒体が検出された時点で、前記第1通信速度と前記第2通信速度のうち、どちらが速いかを判断するようにしてもよい。
【0010】
或いは、前記第1通信速度取得手段は、前記カード型媒体とデータのやり取りをする要求が発生した時点で、前記第1通信速度を取得し、
前記第2通信速度取得手段も、前記カード型媒体とデータのやり取りをする要求が発生した時点で、前記第2通信速度を取得し、
前記判断手段も、前記カード型媒体とデータのやり取りをする要求が発生した時点で、前記第1通信速度と前記第2通信速度のうち、どちらが速いかを判断するようにしてもよい。
【0011】
また、前記カード型媒体は、コンパクトフラッシュカードであってもよい。
【0012】
この場合、前記第1の動作モードはメモリモードであり、
前記第2の動作モードはTrueIDEモードであってもよい。
【0013】
本発明に係る情報処理装置の制御方法は、
カード型媒体が挿入されるカードスロットを有する情報処理装置の制御方法であって、
第1の動作モードで前記カード型媒体とデータのやり取りを行う場合の通信速度である第1通信速度を、取得するステップと、
第2の動作モードで前記カード型媒体とデータのやり取りを行う場合の通信速度である第2通信速度を、取得するステップと、
前記第1通信速度と前記第2通信速度のうち、どちらが速いかを判断するステップと、
前記第1の動作モードと前記第2の動作モードのうち、速いと判断された方の通信速度の動作モードで、前記カード型媒体とデータのやり取りをするステップと、
を備えることを特徴とする。
【0014】
本発明に係るプログラムは、
カード型媒体が挿入されるカードスロットを有する情報処理装置を制御するためのプログラムであって、
第1の動作モードで前記カード型媒体とデータのやり取りを行う場合の通信速度である第1通信速度を、取得するステップと、
第2の動作モードで前記カード型媒体とデータのやり取りを行う場合の通信速度である第2通信速度を、取得するステップと、
前記第1通信速度と前記第2通信速度のうち、どちらが速いかを判断するステップと、
前記第1の動作モードと前記第2の動作モードのうち、速いと判断された方の通信速度の動作モードで、前記カード型媒体とデータのやり取りをするステップと、
を情報処理装置に実行させることを特徴とする。
【0015】
本発明に係る記録媒体は、
カード型媒体が挿入されるカードスロットを有する情報処理装置を制御するためのプログラムが記録された記録媒体であって、
第1の動作モードで前記カード型媒体とデータのやり取りを行う場合の通信速度である第1通信速度を、取得するステップと、
第2の動作モードで前記カード型媒体とデータのやり取りを行う場合の通信速度である第2通信速度を、取得するステップと、
前記第1通信速度と前記第2通信速度のうち、どちらが速いかを判断するステップと、
前記第1の動作モードと前記第2の動作モードのうち、速いと判断された方の通信速度の動作モードで、前記カード型媒体とデータのやり取りをするステップと、
を情報処理装置に実行させるプログラムが記録されたことを特徴とする。
【発明を実施するための最良の形態】
【0016】
以下、図面を参照して、本発明の実施形態を説明する。なお、以下に説明する実施形態は、本発明の技術的範囲を限定するものではない。
【0017】
〔第1実施形態〕
図1は、本実施形態に係る情報処理装置10の内部構成の一例を説明するブロック図である。情報処理装置10は、カードスロットを備える種々の情報処理装置であり、例えば、小型の携帯情報端末やデジタルカメラ、ノート型若しくはディスクトップ型のコンピュータなどがある。
【0018】
この図1に示すように、本実施形態に係る情報処理装置10は、CPU(Central Processing Unit)20と、RAM(Random Access Memory)22と、ROM(Read Only Memory)24と、ハードディスクドライブ26と、ユーザインターフェース30と、ビデオデコーダ32と、表示画面34とを備えて構成されている。
【0019】
CPU20とRAM22とROM24とハードディスクドライブ26とは、内部バスを介して相互に接続されている。このため、CPU20は、内部バスを介して、これらRAM22、ROM24、ハードディスクドライブ26に任意にアクセス可能である。
【0020】
CPU20からは、画像データがビデオデコーダ32に出力され、このビデオデコーダ32で画像データがデコードされて、表示画面34に表示される。この表示画面34は、LCD(Liquid Crystal Display)やCRT(Cathode Ray Tube)などにより構成されている。
【0021】
また、CPU20には、ユーザインターフェース30から様々なユーザの操作指示が入力される。このユーザインターフェース30は、例えば、1又は複数のボタンや、キーボード、ポインティングデバイスなどから構成することができ、また、これらの組み合わせから構成することができる。図1の例では、情報処理装置10自体にユーザインターフェース30が設けられて構成されているが、このユーザインターフェース30は情報処理装置10の外部に設けられていてもよい。CPU20では、ユーザインターフェース30からの操作指示に基づいて、様々な処理を実行する。
【0022】
また、本実施形態に係る情報処理装置10には、カードスロット40が設けられている。本実施形態では、このカードスロット40には、CFカード50がユーザにより挿入される。したがって、ユーザにより、様々な種類のCFカード50がカードスロット40に挿入されることとなり、様々なモードに対応しているCFカード50が挿入されることになる。
【0023】
特に本実施形態では、このカードスロット40に挿入されるCFカード50は、メモリモードとTrueIDEモードの双方で動作可能なメモリカードが想定されている。本実施形態では、カードI/Oモードで動作可能なI/Oカードがカードスロット40に挿入された場合はエラーとなる。無論、これ以外の規格が新たに制定されれば、新たな規格のCFカードが、情報処理装置10に挿入されることもあり得る。
【0024】
このカードスロット40に挿入されたCFカード50の制御は、CPU20からカードコントローラ60を介して行われる。すなわち、カードスロット40にCFカード50が挿入されたかどうかを、CPU20は、カードスロット40から出力されるカード検出信号に基づいて判断する。また、CFカード50が挿入されている場合には、CPU20は、モード切り換え信号をカードコントローラ60に出力し、メモリモードでアクセスするか、TrueIDEモードでアクセスするかの切り換えを行う。また、情報処理装置10がカードI/Oモードをサポートしている場合には、このモード切り換え信号により、カードI/Oモードへの切り替えも行う。
【0025】
このカードコントローラ60とカードスロット40との間は、カード用バスで接続されており、カードコントローラ60を介して、データのやり取りがCPU20とカードスロット40に挿入されたCFカード50との間で行われる。
【0026】
また、カードスロット40に挿入されたCFカード50には、カード電源制御回路62から電源配線を介してカード電源が供給される。カード電源制御回路62がカード電源を供給するかどうかは、CPU20が出力するカード電源制御信号に基づいて制御される。すなわち、CPU20がCFカード50が挿入されたことを検出した場合や、CPU20がCFカード50にアクセスしようとしている場合には、CPU20はカード電源制御回路62にカード電源を供給するカード電源制御信号を出力する。これとは逆に、CFカード50が抜去されたことをCPU20が検出した場合や、カードアクセス状態からCPU20が抜け出た場合には、CPU20はカード電源制御回路62にカード電源の供給を停止するカード電源制御信号を出力する。例えば、本実施形態では、カード電源を供給する場合のカード電源制御信号はハイレベルであり、カード電源を供給しない場合のカード電源制御信号はローレベルである。
【0027】
本実施形態においては、このCPU20から出力されたカード電源制御信号は、カード電源ディスチャージ回路64にも供給されている。カード電源ディスチャージ回路64は、このカード電源制御信号に基づいて、動作がオン/オフするように構成されている。すなわち、カード電源を供給しないカード電源制御信号である場合には、カード電源ディスチャージ回路64は、動作状態となり、カード電源を供給する電源配線を、抵抗を介してグランドに接続する。このため、カード電源がオンからオフに切り替わった際には、このカード電源の電源配線がディスチャージ回路64により強制的にディスチャージされて、カード電源が急速にグランドレベルまで下がることとなる。逆に、カード電源を供給するカード電源制御信号である場合には、カード電源ディスチャージ回路64は、非動作状態となり、カード電源の電源配線はグランドに接続されない。このため、カード電源を供給している間に無駄な電流が、電源配線からグランドに流れてしまうのを回避することができる。但し、本実施形態では、カードディスチャージ回路64は、必ずしも必要な回路ではなく、省くことも可能である。
【0028】
なお、どのような条件でカード電源をオンにして、どのような条件でカード電源をオフにするかは、情報処理装置10やCFカード50の仕様により種々に設定される。
【0029】
図2は、本実施形態に係るカード電源ディスチャージ回路64の回路構成の一例を示す図である。この図2に示すように、カード電源ディスチャージ回路64は、PチャンネルMOSトランジスタQ1と、NチャンネルMOSトランジスタQ2と、抵抗R1〜R4と、ダイオードD1〜D4と、カード電源オン・オフ回路70とを備えて構成されている。
【0030】
供給電源とグランドとの間には、PチャンネルMOSトランジスタQ1と抵抗R1とが直列に接続されている。このPチャンネルMOSトランジスタQ1と並列に、ダイオードD4が接続されている。カード電源制御信号が入力される入力端子に接続されているノードAと、PチャンネルMOSトランジスタQ1のゲートGとの間には、抵抗R3が接続されている。
【0031】
CFカード50にカード電源を供給するための電源配線に接続されているノードCと、グランドとの間には、抵抗R2とNチャンネルMOSトランジスタQ2が接続されている。このNチャンネルMOSトランジスタQ2と並列に、ダイオードD3が接続されている。PチャンネルMOSトランジスタQ1と抵抗R1との間のノードBと、NチャンネルMOSトランジスタQ2のゲートGとの間には、抵抗R4が接続されている。また、この抵抗R4と並列に、ダイオードD2が接続されている。
【0032】
供給電源とカード電源との間には、カード電源オン・オフ回路70が接続されており、このカード電源オン・オフ回路70には、ノードAからカード電源制御信号が入力される。カード電源オン・オフ回路70は、カード電源制御信号がハイレベルの場合には、供給電源からの電源をカード電源としてノードCに供給し、カード電源制御信号がローレベルの場合には、ノードCに電源を供給しない回路である。
【0033】
次に、このカード電源ディスチャージ回路64の動作について説明する。まず、カード電源制御信号がハイレベルの場合、つまりカード電源を供給する場合の動作について説明する。カード電源制御信号がハイレベルであると、カード電源オン・オフ回路70は、供給電源から供給されている電源をノードCに供給する。また、ノードAがハイレベルになり、PチャンネルMOSトランジスタQ1がオフとなる。また、ノードBは、抵抗R1を介してグランドに接続されるのでローレベルとなり、NチャンネルMOSトランジスタQ2もオフとなる。このため、電源配線はグランドから切り離され、カード電源オン・オフ回路70から出力された電源が、カード電源として、電源配線を介して供給される。
【0034】
次に、カード電源制御信号がローレベルになると、つまりカード電源の供給を停止すると、ノードAがローレベルになる。このため、カード電源オン・オフ回路70はノードCに供給電源から電源を供給するのを停止する。また、ノードAがローレベルであるので、PチャンネルMOSトランジスタQ1がオンとなり、ノードBが供給電源につられてハイレベルとなる。ノードBがハイレベルになると、NチャンネルMOSトランジスタQ2もオンとなり、カード電源を供給する電源配線が抵抗R2を介してグランドに接続される。このため、カード電源の電源配線は強制的にディスチャージされて短い時間で立ち下がる。この抵抗R2の抵抗値を小さくするほど、電源配線は急激にディスチャージされて、カード電源の立ち下がり時間は短くなる。
【0035】
図3は、カード電源ディスチャージ回路64がない情報処理装置である場合におけるカード電源制御信号とカード電源の動作波形を示す図であり、図4は、カード電源ディスチャージ回路64がある情報処理装置10のカード電源制御信号とカード電源との動作波形を示す図である。
【0036】
図3に示すように、CFカード50が挿入されると、CPU20はメモリモードでCFカード50にアクセスするために時刻T1でカード電源制御信号をハイレベルにして、CFカード50にカード電源を供給する。そして、メモリモードでCFカード50からCIS情報を読み出す。続いて、CFカード50をメモリモードからTrueIDEモードに切り換えるために、時刻T2でカード電源制御信号をローレベルにしてCFカード50へのカード電源の供給を停止する。この時刻T2の後、カード電源ディスチャージ回路64がないので、長い時間をかけて、カード電源が立ち下がる。そして、カード電源が立ち下がった後、時刻T3でカード電源の供給を再開して、TrueIDEモードでCFカード50を立ち上げることができる。
【0037】
一方、カード電源ディスチャージ回路64がある場合には、図4に示すように、時刻T2でカード電源制御信号をローレベルにすると、カード電源ディスチャージ回路64が強制的にカード電源の電源配線をディスチャージするので、短い時間でカード電源が立ち下がる。
【0038】
次に、図5、図6A及び図6Bを用いて、情報処理装置10が定常的に実行しているカードアクセス事前処理を説明する。このカードアクセス事前処理は、ROM24又はハードディスクドライブ26に格納されているカードアクセス事前処理プログラムをCPU20が読み込んで実行することにより実現する処理である。また、このカードアクセス事前処理は、情報処理装置10の電源がオンになった時点で、自動的に起動される処理である。
【0039】
図5に示すように、情報処理装置10は、カードスロット40で新たなCFカード50が検出されたかどうかを判断する(ステップS10)。本実施形態においては、上述したカードスロット40から出力されるカード検出信号に基づいて、新たなCFカード50がカードスロット40に挿入されたかどうかを判断する。より具体的には、情報処理装置10は、カードスロット40におけるCD1信号及びCD2信号の両方の信号がハイレベルからローレベルに変化した場合に、新たなCFカード50がカードスロット40に挿入されたと判断する。さらに、本実施形態では、情報処理装置10は、この情報処理装置10本体の電源がオンになった際にカードスロット40におけるCD1信号及びCD2信号を確認し、これらCD1信号及びCD2信号が電源をオンにした際にローレベルである場合にも、既にCFカード50がカードスロット40に挿入されているため、新たなCFカード50がカードスロット40に挿入されていると判断する。すなわち、本実施形態では、CFカード50が挿入されている間は、これらCD1信号及びCD2信号はローレベルになり、CFカード50が挿入されていない間は、これらCD1信号及びCD2信号はハイレベルになる。
【0040】
ステップS10で新たなCFカード50が検出されないと判断した場合(ステップS10:NO)には、このステップS10を繰り返して、カードスロット40に新たなCFカード50が検出されるまで待機する。
【0041】
一方、ステップS10で新たなCFカード50がカードスロット40で検出されたと判断した場合(ステップS10:YES)には、情報処理装置10は、カードコントローラ60の初期化を行う(ステップS12)。
【0042】
次に、情報処理装置10は、CFカード50のRESET信号をアサートする(ステップS14)。続いて、情報処理装置10は、カード電源制御信号をローレベルからハイレベルにして、カード電源を立ち上げる(ステップS16)。この時は、メモリモードでCFカード50を立ち上げる。
【0043】
次に、情報処理装置10は、カード電源が安定するまで待った後、カードコントローラ60のカード側のインターフェースを、ハイインピーダンス状態から出力可能状態に切り換える(ステップS18)。続いて、情報処理装置10は、RESET信号をネゲートする(ステップS20)。
【0044】
次に、図6Aに示すように、情報処理装置10は、メモリモードで、カード属性情報であるCIS情報を読み出す(ステップS30)。
【0045】
次に、情報処理装置10は、この読み出したCIS情報に基づいて、挿入されているCFカード50のメモリモードにおけるサイクル時間を調べて取得する(ステップS32)。
【0046】
図7は、CFカード50がメモリモードで対応している可能性のあるサイクル時間の一覧を示す図である。この図7に示すように、本実施形態では、CFカード50は、250ns、150ns、120ns、100ns、80nsのいずれかのサイクル時間で、動作する。CFカードがどのサイクル時間に対応しているかは、CIS情報のうちのCISTPL_DEVICEタプル内のバイト2におけるデバイスIDのビット2〜ビット0を見ることにより判断できる。したがって、ステップS32では、読み出したCIS情報に基づいて、挿入されているCFカード50がどのサイクル時間で動作するのかを特定し、このサイクル時間に基づいて、メモリモードの通信速度を特定する。ここでサイクル時間は、基本動作クロックの1サイクルの時間であるので、サイクル時間が短いほど、基本動作は速くなることを意味している。
【0047】
なお、150nsのサイクル時間については、CF+ and Compact Flash Specification Revision 3.0の規格では対応していないが、通常のCFカード50やハードディスクドライブを内蔵したマイクロドライブで150nsのサイクル時間で動作する仕様のカードも存在する。このため、本実施形態に係る情報処理装置10では、150nsのサイクル時間で動作するCFカード50やマイクロドライブにも対応できるようにしている。
【0048】
次に、情報処理装置10は、IdentifyDeviceコマンドを実行し(ステップS34)、TrueIDEモードのサイクル時間を取得する(ステップS36)。すなわち、TrueIDEモードでも、CFカード50の種類によって、対応可能な転送モードが異なり、対応可能な転送モードによって通信速度、つまりサイクル時間が異なる。このため、情報処理装置10は、対応可能な転送モードを調べる必要がある。
【0049】
一般に、TrueIDEモードの転送モードには、大きく分けて、PIOモード、Multiword DMAモード、Ultra DMAモードの3つがある。これらの3つの転送モードには、それぞれ、対応速度別にいくつかのモードが用意されている。本実施形態に係る情報処理装置10では、これら3つの転送モードのうち、PIOモードにのみ対応していると仮定する。
【0050】
さらに、本実施形態に係る情報処理装置10は、PIOモードのうち、最新のリビジョンであるRevision3.0版(CF+ and Compact Flash Specification Revision 3.0)に対応していると仮定する。Revision3.0のPIOモードでは、PIOモード0からPIOモード6まで定義されているので、このいずれのPIOモードに挿入されているCFカード50が対応しているかを判断する。
【0051】
図8は、PIOモードで定義されているモード0〜モード6のサイクル時間の一覧を示す図である。この図8に示すように、PIOモードでは、PIOモード0が最も通信速度が遅く、サイクル時間が600nsであり、PIOモード6に行くに従って通信速度が速くなり、PIOモード6ではサイクル時間は80nsである。
【0052】
図9は、本実施形態に係るTrueIDEモードのPIOモードにおける対応モードを判定するためのモード判定処理の内容を説明するフローチャートを示す図である。このモード判定処理は、ROM24又はハードディスクドライブ26に格納されているモード判定プログラムをCPU20が読み込んで実行することにより実現される処理である。
【0053】
この図9に示すように、まず、情報処理装置10は、IdentifyDeviceコマンドを実行し、Identify情報を読み出す(ステップS100)。そして、情報処理装置10は、このIdentify情報のWord53のビット1が「0」であるかどうかを判断し(ステップS102、ステップS104)、このビット1が「0」である場合(ステップS104:YES)には、Word51の値に基づいてモードを判別する(ステップS106)。すなわち、Word51の値が「0」であればPIOモード0に対応していると判断し、「1」であればPIOモード1に対応していると判断し、「2」であればPIOモード2に対応していると判断し、「3」であればPIOモード3に対応していると判断し、「4」であればPIOモード4に対応していると判断する。このWord51の値が「5」以上の場合には、適用外のカードであると判断する。
【0054】
一方、Word53のビット1が「0」でない場合(ステップS104:NO)には、Word64のビット1を確認し(ステップS108)、このビット1が「1」である場合(ステップS110:YES)には、PIOモード4に対応していると判断し(ステップS112)、このビット1が「1」ではなく(ステップS110:NO)、Word64のビット0が「1」である場合(ステップS114、ステップS116)には、PIOモード3に対応していると判断する(ステップS118)。但し、これらステップS112及びステップS118の場合、Word163を確認し(ステップS120)、Word163のビット0が「1」である場合には、PIOモード5に対応していると判断し(ステップS122)、Word163のビット1が「1」である場合には、PIOモード6に対応していると判断する(ステップS124)。一方、Word163のビット0〜ビット2が0である場合には、Word64に基づいて判断したPIOモード3又はPIOモード4が対応モードとなる(ステップS126)。
【0055】
Word64のビット1が「1」ではなく(ステップS110:NO)、Word64のビット0も「1」ではない場合(ステップS116:NO)には、適用外のカードであると判断する(ステップS128)。このように、本実施形態においては、図9に示すようなモード判定処理により、TrueIDEモードのPIOモードで対応している転送モードを判断し、TrueIDEモードの通信速度を取得する。
【0056】
なお、このIdentifyDeviceコマンドは、メモリモードで実行してもよいし、TrueIDEモードで実行してもよい。メモリモードでIdentifyDeviceコマンドを実行する場合には、ステップS30の後、そのまま、このIdentifyDeviceコマンドを実行すればよい。一方、TrueIDEモードでIdentifyDeviceコマンドを実行する場合には、図4で示したように、一旦、CFカード50へのカード電源の供給を停止し、このカード電源が十分に立ち下がった後に、OE信号をグランドレベルに固定して再びカード電源の供給を開始することにより、CFカード50をTrueIDEモードで立ち上げなおした後、IdentifyDeviceコマンドを実行する必要がある。
【0057】
次に、図6Aに示すように、情報処理装置10は、モード選択テーブルTB10を参照して、データ転送に使用するモードを選択する(ステップS38)。図10は、本実施形態に係るモード選択テーブルTB10の構成の一例を示す図である。本実施形態では、このモード選択テーブルTB10は、ROM24又はハードディスクドライブ26に予め格納されている。
【0058】
この図10から分かるように、モード選択テーブルTB10は、メモリモードで対応しているサイクル時間と、TrueIDEモードで対応しているPIOモードとを比較して、通信速度が速いのは、メモリモードとTrueIDEモードのどちらであるかを示す一覧表である。したがって、情報処理装置10は、モード選択テーブルTB10に基づいて、新たに検出されたCFカード50が対応している動作モードのうち、速い方の転送速度の動作モードを選択する。例えば、メモリモードにおいては250nsのサイクル時間に対応しており、TrueIDEモードにおいては283nsのPIOモード1に対応している場合には、動作モードとしてメモリモードを選択する。また、メモリモードにおいては250nsのサイクル時間に対応しており、TrueIDEモードにおいては180nsのPIOモード3に対応している場合には、動作モードとしてTrueIDEモードを選択する。
【0059】
但し、メモリモードとTrueIDEモードは異なる別の動作モードであるため、両者の間で転送速度を比較しようとする場合、必ずしも、サイクル時間が短い方が転送速度が速いとは限らない。このため、本実施形態では、単純に、サイクル時間に基づいて動作モードを決定するのではなく、予め、メモリモードとTrueIDEモードにおける転送速度を調べておき、転送速度の速い方の動作モードが選択されるように、モード選択テーブルTB10を用意しておくこととしているのである。
【0060】
次に、図6Aに示すように、情報処理装置10は、カードコントローラ60の設定を行う(ステップS39)。すなわち、ステップ38で選択した動作モードにカードコントローラ60を適合させるための設定を行う。
【0061】
次に、図6Bに示すように、情報処理装置10は、CFカード50のRESET信号をアサートする(ステップS40)。続いて、情報処理装置10は、カードコントローラ60のカード側のインターフェースを、出力可能状態からハイインピーダンス状態に切り換える(ステップS42)。
【0062】
次に、情報処理装置10は、カード電源制御信号をハイレベルからローレベルにして、カード電源をオフにする(ステップS44)。本実施形態では、実際にCFカード50に対するデータの読み書きの要求がいつ発生するかは不明であることから、消費電力の低減を図るため、CFカード50へのカード電源の供給を一旦停止することとしている。そして、カード電源の供給を停止した状態で待機して、実際にCFカード50に対してデータの読み書きの動作が発生するのを待つこととしている。
【0063】
但し、このカード電源への電源供給を停止するタイミングは、任意であり、ステップS38の終了後、直ちにカード電源の供給を停止してもよいし、或いは、ステップS38の終了後、所定時間(例えば10秒)経過後にカード電源の供給を停止してもよい。特に、CFカード50をカードスロット40に新たに挿入した場合には、ユーザは、その後、短い時間でCFカード50に対するデータの読み書きを実行すると考えることもできる場合には、ステップS38の終了後、所定時間経過後にカード電源の供給を停止するようにすればよい。また、カード電源の供給により消費される電力がさほど大きなものではないと考えられる場合には、このステップS40〜ステップS44は省くことも可能である。この場合、CFカード50にカード電源が供給され続けることとなる。
【0064】
次に、情報処理装置10は、実際にCFカード50に対してデータを書き込んだり、CFカード50からデータを読み込んだりする指示が発生したかどうかを判断する(ステップS46)。実際にCFカード50に対してデータを書き込んだり、CFカード50からデータを読み込んだりする指示が発生した場合(ステップS46:YES)には、ステップS38で選択した動作モードにより、CFカード50に対してデータの読み書きを実行する(ステップS48)。なお、カード電源の供給を一旦停止している場合には、CFカード50に対するデータの読み書きの動作が発生した時点で、再度、カード電源の供給を開始する必要がある。そして、このデータの読み書きの動作が完了した後、ステップS46に戻る。
【0065】
一方、ステップS46でデータの読み書きの指示が発生していないと判断した場合(ステップS46:NO)には、情報処理装置10は、CFカード50がカードスロット40から抜去されたかどうかを判断する(ステップS50)。具体的には、情報処理装置10は、カードスロット40におけるCD1信号及びCD2信号のいずれか一方の信号若しくは両方の信号がローレベルからハイレベルに変化したかどうかを判断することにより、CFカード50が抜去されたかどうかを判断する。すなわち、本実施形態においては、CFカード50がカードスロット40に挿入されたかどうかというステップS10における判定では、CD1信号及びCD2信号の両方がローレベルになったときに、CFカード50が挿入されたと判断するが、CFカード50がカードスロット40から抜去されたかどうかというステップS50における判定では、CD1信号とCD2信号のうちのどちらか一方でもハイレベルになったときに、CFカード50が抜去されたと判断する。CFカード50が抜去されていない場合(ステップS46:NO)には、上述したステップS46に戻る。
【0066】
一方、CFカード50が抜去されたと判断した場合(ステップS50:YES)には、上述した図5のステップS10に戻り、次の新たなCFカード50が検出されるまで待機する。
【0067】
以上のように、本実施形態に係る情報処理装置10によれば、メモリモードで対応している通信速度と、TrueIDEモードで対応している通信速度とを調べ、通信速度の速い方の動作モードでデータのやり取りを行うようにしたので、CFカード50とデータをやり取りするのに要するユーザの待ち時間を、可及的に短くすることができる。特に、メモリモードの方がTrueIDEモードよりも速いサイクル時間であるCFカード50については、本実施形態を適用することにより、的確に速い方のメモリモードを選択させることができる。
【0068】
また、CFカード50がカードスロット40に挿入された時点で、どちらの動作モードでデータ転送をすべきかを判定しているので、実際にCFカード50とデータ転送をする要求が発生した際には、速やかにデータ転送の処理に入ることができる。このため、データ転送の際のユーザの待ち時間も、その分、短くすることができる。
【0069】
さらに、本実施形態に係る情報処理装置10によれば、カード電源ディスチャージ回路64を設け、カード電源がオンになっている場合には、カード電源の電源配線をグランドから切り離すが、カード電源がオフになっている場合には、カード電源の電源配線をグランドに接続するようにした。このため、カード電源をオンからオフに切り換える際に、カード電源を短い時間で立ち下げることができる。特に、ステップS34において、TrueIDEモードでIdentifyDeviceコマンドを実行する場合には、カード電源を一旦オフにしてからCFカード50を立ち上げなおす必要があるが、このカード電源ディスチャージ回路64が設けられていることにより、短い時間で、CFカード50をTrueIDEモードに切り換えることができるようになる。
【0070】
また、ユーザがCFカード50をカードスロット40から抜く際にも、CFカード50に供給されているカード電源は自動的にオフにする必要があるが、本実施形態によれば、これまでよりも短い時間でカード電源を立ち下げることができるので、ユーザが素早くCFカード50を抜いたような場合でも、CFカード50にダメージを与えないようにすることができる。
【0071】
さらに、本実施形態によれば、カード電源をCFカード50に供給している間は、カード電源の電源配線がグランドから切り離されるようにしたので、カード電源の無駄な消費を抑制することができる。すなわち、カード電源の電源配線を、単純に抵抗を介してグランドに常時接続してしまう手法も考えられるが、この場合、カード電源がオンになっている間は定常的に抵抗を介してグランドに電流が流れてしまい、無駄な電力消費が発生してしまう。これに対して、本実施形態では、カード電源がオンになっている間は、カード電源の電源配線がグランドから切り離されるので、このような無駄な電力消費を回避することができる。特に、無駄な電力消費を抑制することは、少しでもバッテリによる連続動作時間を長くしたいデジタルカメラや携帯型の情報端末などの情報処理装置では重要である。
【0072】
〔第2実施形態〕
上述した第1実施形態では、CFカード50がカードスロット40に挿入された際に、CFカード50と通信可能な速度を判断することとしたが、第2実施形態では、CFカード50と実際にデータのやり取りをする要求が発生した時点で、CFカード50と通信可能な速度を判断するようにしたものである。以下、上述した第1実施形態と異なる部分を説明する。
【0073】
図11乃至図13は、第2実施形態に係るカードアクセス処理を説明するフローチャートを示す図である。このカードアクセス処理は、情報処理装置10が実際にCFカード50とデータのやり取りをする必要が生じた際に起動される処理である。すなわち、CFカード50にデータを書き込んだり、CFカード50からデータを読み出したりする必要が生じた際に、起動される処理である。また、このカードアクセス処理は、ROM24又はハードディスクドライブ26に格納されたカードアクセスプログラムをCPU20が読み込んで実行することにより、実現される処理である。なお、本実施形態では、CFカード50がカードスロット40に挿入された時点では、上述した第1実施形態におけるカードアクセス事前処理は起動されないこととなる。
【0074】
まず、図11に示すように、情報処理装置10は、カードコントローラ60の初期化を行う(ステップS200)。
【0075】
次に、情報処理装置10は、CFカード50のRESET信号をアサートする(ステップS202)。続いて、情報処理装置10は、カード電源制御信号をローレベルからハイレベルにして、カード電源を立ち上げる(ステップS204)。この時は、メモリモードでCFカード50を立ち上げる。
【0076】
次に、情報処理装置10は、カード電源が安定するまで待った後、カードコントローラ60のカード側のインターフェースを、ハイインピーダンス状態から出力可能状態に切り換える(ステップS206)。続いて、情報処理装置10は、RESET信号をネゲートする(ステップS208)。
【0077】
次に、図12に示すように、情報処理装置10は、メモリモードで、カード属性情報であるCIS情報を読み出す(ステップS220)。
【0078】
次に、情報処理装置10は、この読み出したCIS情報に基づいて、挿入されているCFカード50のメモリモードにおけるサイクル時間を調べて取得する(ステップS222)。具体的なサイクル時間の判断手法は、上述した第1実施形態におけるステップS32と同様である。
【0079】
次に、情報処理装置10は、IdentifyDeviceコマンドを実行し(ステップS224)、TrueIDEモードのサイクル時間を取得する(ステップS226)。具体的なサイクル時間の判断手法は、上述した第1実施形態におけるステップS36と同様である。また、IdentifyDeviceコマンドを、メモリモードとTrueIDEモードのいずれで実行してもよいことも、上述した第1実施形態と同様である。
【0080】
次に、情報処理装置10は、図10のモード選択テーブルTB10を参照して、データ転送に使用する動作モードを選択する(ステップS228)。すなわち、上述した第1実施形態の図10のモード選択テーブルTB10を用いて、通信速度の速い方の動作モードを選択する。
【0081】
次に、情報処理装置10は、カードコントローラ60の設定を行う(ステップS229)。すなわち、ステップ228で選択した動作モードにカードコントローラ60を適合させるための設定を行う。
【0082】
次に、図13に示すように、情報処理装置10は、ステップS288で選択したモードを用いて、実際のデータ転送を実行する(ステップS230)。すなわち、CFカード50へのアクセス要求がCFカード50へのデータの書き込みであれば、ステップS228で選択した動作モードでデータの書き込みを行い、CFカード50へのアクセス要求がCFカード50からのデータの読み出しであれば、ステップS228で選択した動作モードでデータの読み出しを行う。このときの通信速度は、ステップS222で特定されたサイクル時間に基づく通信速度か、又は、ステップS226で特定されたサイクル時間に基づく通信速度である。
【0083】
このCFカード50とのデータ転送が完了した場合、情報処理装置10は、CFカード50への最後のアクセスから、所定の時間(例えば60秒)が経過したかどうかを判断する(ステップS232)。この所定の時間を経過していない場合(ステップS232:NO)には、このステップS232の処理を繰り返す。そして、再び、CFカード50へのアクセスが発生した場合には、ステップS228で選択した動作モードでデータ転送を行う。
【0084】
一方、CFカード50に最後にアクセスしてから所定の時間を経過した場合(ステップS232:YES)には、情報処理装置10は、CFカード50のRESET信号をアサートする(ステップS234)。続いて、情報処理装置10は、カードコントローラ60のカード側のインターフェースを、出力可能状態からハイインピーダンス状態に切り換える(ステップS236)。
【0085】
次に、情報処理装置10は、カード電源制御信号をハイレベルからローレベルにして、カード電源をオフにする(ステップS238)。本実施形態では、次のCFカード50にアクセスしてデータのやり取りをする要求がいつ発生するかは不明であることから、消費電力の低減を図るため、CFカード50へのカード電源の供給を一旦停止することとしている。これにより、本実施形態に係るカードアクセス処理が終了する。
【0086】
以上のように、本実施形態に係る情報処理装置10によっても、メモリモードで対応している通信速度と、TrueIDEモードで対応している通信速度とを調べ、通信速度の速い方の動作モードでデータのやり取りを行うようにしたので、CFカード50とデータをやり取りするのに要するユーザの待ち時間を、可及的に短くすることができる。
【0087】
なお、本発明は上記実施形態に限定されず種々に変形可能である。例えば、上述した実施形態では、カード型媒体としてCFカード(コンパクトフラッシュ(登録商標)カード)を例に説明したが、他の種類のカード型媒体であっても同様に本発明を適用することができる。すなわち、カード型媒体に対してデータの読み書きを行う前に事前処理が必要となる情報処理装置について、本発明を適用することができる。より具体的には、異なる2つ以上の動作モードを有し、これらの動作モードで通信速度が異なるカード型媒体とデータのやり取りをする場合に、本発明を適用できる。
【0088】
また、本発明は、上述したメモリモード、TrueIDEモード、カードI/Oモード以外の様々な動作モードについても本発明を適用することができる。すなわち、カード型媒体の種類に応じて、様々な動作モードが用意されているため、この用意されている動作モードに応じて、本発明を適用することができる。
【0089】
また、上述した実施形態では、図10のモード選択テーブルTB10に基づいて、メモリモードにおける通信速度とTrueIDEモードにおける通信速度のどちらの通信速度が速いかを判断し、データのやり取りを行う動作モードを選択することとしたが、取得したそれぞれのサイクル時間に基づいて、データのやり取りを行う動作モードを選択するようにしてもよい。すなわち、上述したように、メモリモードとTrueIDEモードの間では、サイクル時間が短い方が通信速度が必ずしも速いとは限らないが、一般的にはサイクル時間の短い方が通信速度の速い可能性が高いので、メモリモードにおけるサイクル時間の方が短ければ、データのやり取りを行う動作モードとしてメモリモードを選択し、TrueIDEモードにおけるサイクル時間の方が短ければ、データのやり取りを行う動作モードとしてTrueIDEモードを選択するようにしてもよい。このようにすることにより、モード選択テーブルTB10を格納しておくべきROM24内又はハードディスクドライブ26内の容量を削減できる。したがって、どちらの通信速度の方が速いかを判断する手法は、任意に変更可能であると言える
また、上述の実施形態で説明したカードアクセス事前処理及びカードアクセス処理については、このカードアクセス事前処理又はカードアクセス処理を実行するためのプログラムをフレキシブルディスク、CD−ROM(Compact Disc-Read Only Memory)、ROM、メモリカード等の記録媒体に記録して、記録媒体の形で頒布することが可能である。この場合、この記録媒体に記録されたプログラムを情報処理装置10に読み込ませ、実行させることにより、上述した実施形態を実現することができる。
【0090】
また、情報処理装置10は、オペレーティングシステムや別のアプリケーションプログラム等の他のプログラムを備える場合がある。この場合、情報処理装置10の備える他のプログラムを活用するために、その情報処理装置10が備えるプログラムの中から、上述した実施形態と同等の処理を実現するプログラムを呼び出すような命令を含むプログラムを、記録媒体に記録するようにしてもよい。
【0091】
さらに、このようなプログラムは、記録媒体の形ではなく、ネットワークを通じて搬送波として頒布することも可能である。ネットワーク上を搬送波の形で伝送されたプログラムは、情報処理装置10に取り込まれて、このプログラムを実行することにより上述した実施形態を実現することができる。
【0092】
また、記録媒体にプログラムを記録する際や、ネットワーク上を搬送波として伝送される際に、プログラムの暗号化や圧縮化がなされている場合がある。この場合には、これら記録媒体や搬送波からプログラムを読み込んだ情報処理装置10は、そのプログラムの復号や伸張を行った上で、実行する必要がある。
【0093】
さらに、上述した実施形態では、カードアクセス事前処理をソフトウェアにより実現することとしたが、ASIC(Application Specific IC)等のハードウェアにより実現するようにしてもよい。
【図面の簡単な説明】
【0094】
【図1】本発明の第1実施形態及び第2実施形態に係る情報処理装置の内部構成を説明するためのブロック図である。
【図2】図1の情報処理装置が備えるカード電源ディスチャージ回路の回路構成の一例を示す図である。
【図3】カード電源ディスチャージ回路がない情報処理装置におけるカード電源とカード電源制御の動作波形の一例を示す図である。
【図4】カード電源ディスチャージ回路がある情報処理装置におけるカード電源とカード電源制御の動作波形の一例を示す図である。
【図5】図1に示す情報処理装置が実行する第1実施形態に係るカードアクセス事前処理の一例を説明するためのフローチャートを示す図である(その1)。
【図6A】図1に示す情報処理装置が実行する第1実施形態に係るカードアクセス事前処理の一例を説明するためのフローチャートを示す図である(その2)。
【図6B】図1に示す情報処理装置が実行する第1実施形態に係るカードアクセス事前処理の一例を説明するためのフローチャートを示す図である(その3)。
【図7】メモリモードで対応しているサイクル時間の一覧を示す図である。
【図8】TrueIDEモードのPIOモードで対応しているサイクル時間の一覧を示す図である。
【図9】挿入されたCFカードがTrueIDEモードのPIOモードで対応している通信速度(PIOモード)を判定するためのモード判定処理の一例を説明するためのフローチャートを示す図である。
【図10】メモリモードにおける通信速度とTrueIDEモードにおける通信速度のどちらが速いかを判断するためのモード選択テーブルの一例を示す図。
【図11】図1に示す情報処理装置が実行する第2実施形態に係るカードアクセス処理の一例を説明するためのフローチャートを示す図である(その1)。
【図12】図1に示す情報処理装置が実行する第2実施形態に係るカードアクセス処理の一例を説明するためのフローチャートを示す図である(その2)。
【図13】図1に示す情報処理装置が実行する第2実施形態に係るカードアクセス処理の一例を説明するためのフローチャートを示す図である(その3)。
【符号の説明】
【0095】
10 情報処理装置
20 CPU
22 RAM
24 ROM
26 ハードディスクドライブ
30 ユーザインターフェース
32 ビデオデコーダ
34 表示画面
40 カードスロット
50 CFカード
60 カードコントローラ
62 カード電源制御回路
64 カード電源ディスチャージ回路
【特許請求の範囲】
【請求項1】
カード型媒体が挿入されるカードスロットと、
第1の動作モードで前記カード型媒体とデータのやり取りを行う場合の通信速度である第1通信速度を取得する、第1通信速度取得手段と、
第2の動作モードで前記カード型媒体とデータのやり取りを行う場合の通信速度である第2通信速度を取得する、第2通信速度取得手段と、
前記第1通信速度と前記第2通信速度のうち、どちらが速いかを判断する、判断手段と、
前記第1の動作モードと前記第2の動作モードのうち、前記判断手段で速いと判断された通信速度の動作モードで、前記カード型媒体とデータのやり取りをする、データ通信手段と、
を備えることを特徴とする情報処理装置。
【請求項2】
前記第1通信速度取得手段は、前記第1の動作モードで前記カード型媒体にアクセスすることにより、前記第1通信速度を取得し、
前記第2通信速度取得手段も、前記第1の動作モードで前記カード型媒体にアクセスすることにより、前記第2通信速度を取得する、
ことを特徴とする請求項1に記載の情報処理装置。
【請求項3】
前記第1通信速度取得手段は、前記第1の動作モードで前記カード型媒体にアクセスすることにより、前記第1通信速度を取得し、
前記第2通信速度取得手段は、前記第2の動作モードで前記カード型媒体にアクセスすることにより、前記第2通信速度を取得する、
ことを特徴とする請求項1に記載の情報処理装置。
【請求項4】
前記第1通信速度取得手段は、前記カードスロットで新たな前記カード型媒体が検出された時点で、前記第1通信速度を取得し、
前記第2通信速度取得手段も、前記カードスロットで新たな前記カード型媒体が検出された時点で、前記第2通信速度を取得し、
前記判断手段も、前記カードスロットで新たな前記カード型媒体が検出された時点で、前記第1通信速度と前記第2通信速度のうち、どちらが速いかを判断する、
ことを特徴とする請求項1乃至請求項3のいずれかに記載の情報処理装置。
【請求項5】
前記第1通信速度取得手段は、前記カード型媒体とデータのやり取りをする要求が発生した時点で、前記第1通信速度を取得し、
前記第2通信速度取得手段も、前記カード型媒体とデータのやり取りをする要求が発生した時点で、前記第2通信速度を取得し、
前記判断手段も、前記カード型媒体とデータのやり取りをする要求が発生した時点で、前記第1通信速度と前記第2通信速度のうち、どちらが速いかを判断する、
ことを特徴とする請求項1乃至請求項3のいずれかに記載の情報処理装置。
【請求項6】
前記カード型媒体は、コンパクトフラッシュカードである、ことを特徴とする請求項1乃至請求項5のいずれかに記載の情報処理装置。
【請求項7】
前記第1の動作モードはメモリモードであり、
前記第2の動作モードはTrueIDEモードである、
ことを特徴とする請求項6に記載の情報処理装置。
【請求項8】
カード型媒体が挿入されるカードスロットを有する情報処理装置の制御方法であって、
第1の動作モードで前記カード型媒体とデータのやり取りを行う場合の通信速度である第1通信速度を、取得するステップと、
第2の動作モードで前記カード型媒体とデータのやり取りを行う場合の通信速度である第2通信速度を、取得するステップと、
前記第1通信速度と前記第2通信速度のうち、どちらが速いかを判断するステップと、
前記第1の動作モードと前記第2の動作モードのうち、速いと判断された方の通信速度の動作モードで、前記カード型媒体とデータのやり取りをするステップと、
を備えることを特徴とする情報処理装置の制御方法。
【請求項9】
カード型媒体が挿入されるカードスロットを有する情報処理装置を制御するためのプログラムであって、
第1の動作モードで前記カード型媒体とデータのやり取りを行う場合の通信速度である第1通信速度を、取得するステップと、
第2の動作モードで前記カード型媒体とデータのやり取りを行う場合の通信速度である第2通信速度を、取得するステップと、
前記第1通信速度と前記第2通信速度のうち、どちらが速いかを判断するステップと、
前記第1の動作モードと前記第2の動作モードのうち、速いと判断された方の通信速度の動作モードで、前記カード型媒体とデータのやり取りをするステップと、
を情報処理装置に実行させるためのプログラム。
【請求項10】
カード型媒体が挿入されるカードスロットを有する情報処理装置を制御するためのプログラムが記録された記録媒体であって、
第1の動作モードで前記カード型媒体とデータのやり取りを行う場合の通信速度である第1通信速度を、取得するステップと、
第2の動作モードで前記カード型媒体とデータのやり取りを行う場合の通信速度である第2通信速度を、取得するステップと、
前記第1通信速度と前記第2通信速度のうち、どちらが速いかを判断するステップと、
前記第1の動作モードと前記第2の動作モードのうち、速いと判断された方の通信速度の動作モードで、前記カード型媒体とデータのやり取りをするステップと、
を情報処理装置に実行させるためのプログラムが記録された記録媒体。
【請求項1】
カード型媒体が挿入されるカードスロットと、
第1の動作モードで前記カード型媒体とデータのやり取りを行う場合の通信速度である第1通信速度を取得する、第1通信速度取得手段と、
第2の動作モードで前記カード型媒体とデータのやり取りを行う場合の通信速度である第2通信速度を取得する、第2通信速度取得手段と、
前記第1通信速度と前記第2通信速度のうち、どちらが速いかを判断する、判断手段と、
前記第1の動作モードと前記第2の動作モードのうち、前記判断手段で速いと判断された通信速度の動作モードで、前記カード型媒体とデータのやり取りをする、データ通信手段と、
を備えることを特徴とする情報処理装置。
【請求項2】
前記第1通信速度取得手段は、前記第1の動作モードで前記カード型媒体にアクセスすることにより、前記第1通信速度を取得し、
前記第2通信速度取得手段も、前記第1の動作モードで前記カード型媒体にアクセスすることにより、前記第2通信速度を取得する、
ことを特徴とする請求項1に記載の情報処理装置。
【請求項3】
前記第1通信速度取得手段は、前記第1の動作モードで前記カード型媒体にアクセスすることにより、前記第1通信速度を取得し、
前記第2通信速度取得手段は、前記第2の動作モードで前記カード型媒体にアクセスすることにより、前記第2通信速度を取得する、
ことを特徴とする請求項1に記載の情報処理装置。
【請求項4】
前記第1通信速度取得手段は、前記カードスロットで新たな前記カード型媒体が検出された時点で、前記第1通信速度を取得し、
前記第2通信速度取得手段も、前記カードスロットで新たな前記カード型媒体が検出された時点で、前記第2通信速度を取得し、
前記判断手段も、前記カードスロットで新たな前記カード型媒体が検出された時点で、前記第1通信速度と前記第2通信速度のうち、どちらが速いかを判断する、
ことを特徴とする請求項1乃至請求項3のいずれかに記載の情報処理装置。
【請求項5】
前記第1通信速度取得手段は、前記カード型媒体とデータのやり取りをする要求が発生した時点で、前記第1通信速度を取得し、
前記第2通信速度取得手段も、前記カード型媒体とデータのやり取りをする要求が発生した時点で、前記第2通信速度を取得し、
前記判断手段も、前記カード型媒体とデータのやり取りをする要求が発生した時点で、前記第1通信速度と前記第2通信速度のうち、どちらが速いかを判断する、
ことを特徴とする請求項1乃至請求項3のいずれかに記載の情報処理装置。
【請求項6】
前記カード型媒体は、コンパクトフラッシュカードである、ことを特徴とする請求項1乃至請求項5のいずれかに記載の情報処理装置。
【請求項7】
前記第1の動作モードはメモリモードであり、
前記第2の動作モードはTrueIDEモードである、
ことを特徴とする請求項6に記載の情報処理装置。
【請求項8】
カード型媒体が挿入されるカードスロットを有する情報処理装置の制御方法であって、
第1の動作モードで前記カード型媒体とデータのやり取りを行う場合の通信速度である第1通信速度を、取得するステップと、
第2の動作モードで前記カード型媒体とデータのやり取りを行う場合の通信速度である第2通信速度を、取得するステップと、
前記第1通信速度と前記第2通信速度のうち、どちらが速いかを判断するステップと、
前記第1の動作モードと前記第2の動作モードのうち、速いと判断された方の通信速度の動作モードで、前記カード型媒体とデータのやり取りをするステップと、
を備えることを特徴とする情報処理装置の制御方法。
【請求項9】
カード型媒体が挿入されるカードスロットを有する情報処理装置を制御するためのプログラムであって、
第1の動作モードで前記カード型媒体とデータのやり取りを行う場合の通信速度である第1通信速度を、取得するステップと、
第2の動作モードで前記カード型媒体とデータのやり取りを行う場合の通信速度である第2通信速度を、取得するステップと、
前記第1通信速度と前記第2通信速度のうち、どちらが速いかを判断するステップと、
前記第1の動作モードと前記第2の動作モードのうち、速いと判断された方の通信速度の動作モードで、前記カード型媒体とデータのやり取りをするステップと、
を情報処理装置に実行させるためのプログラム。
【請求項10】
カード型媒体が挿入されるカードスロットを有する情報処理装置を制御するためのプログラムが記録された記録媒体であって、
第1の動作モードで前記カード型媒体とデータのやり取りを行う場合の通信速度である第1通信速度を、取得するステップと、
第2の動作モードで前記カード型媒体とデータのやり取りを行う場合の通信速度である第2通信速度を、取得するステップと、
前記第1通信速度と前記第2通信速度のうち、どちらが速いかを判断するステップと、
前記第1の動作モードと前記第2の動作モードのうち、速いと判断された方の通信速度の動作モードで、前記カード型媒体とデータのやり取りをするステップと、
を情報処理装置に実行させるためのプログラムが記録された記録媒体。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6A】
【図6B】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図2】
【図3】
【図4】
【図5】
【図6A】
【図6B】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【公開番号】特開2007−183879(P2007−183879A)
【公開日】平成19年7月19日(2007.7.19)
【国際特許分類】
【出願番号】特願2006−2804(P2006−2804)
【出願日】平成18年1月10日(2006.1.10)
【出願人】(000002369)セイコーエプソン株式会社 (51,324)
【Fターム(参考)】
【公開日】平成19年7月19日(2007.7.19)
【国際特許分類】
【出願日】平成18年1月10日(2006.1.10)
【出願人】(000002369)セイコーエプソン株式会社 (51,324)
【Fターム(参考)】
[ Back to top ]