(57)【要約】【課題】  初期設定過程を効率化し、性能を向上させることが可能なカードシステムを提供する。【解決手段】  多種のカード１１を接続可能なホスト１０内において、アプリケーション１０ａ、ファイルシステム１０ｂ、デバイスドライバ１０ｃ、およびホストコントローラ１０ｄに加えて、記憶機能を備えたレジストリ［１］１３，［２］１４を設け、前記レジストリ［１］１３には、前記カード１１が接続された回数をカードの種類毎に記憶した情報と、前記カード１１の動作電圧を設定する際のコマンド発行周期の情報とを記憶し、前記レジストリ［２］１４には、接続されたカード１１のカード識別情報、カード特性情報及びアプリケーション関連情報などを累積して複数カード分記憶する。【選択図】  図１
2006119963.tif 000002
【特許請求の範囲】
【請求項１】
複数種類のカードを制御可能なホストを含むカードシステムであって、
前記ホストは、
前記複数種類のカードの中のいずれかの種類のカードが接続された際に、前記接続されたカードの種類を識別し、前記複数種類のカードの接続回数を前記カードの種類毎にカウントする機能と、
前記カードの種類毎にカウントした接続回数を記憶する機能と、
前記カードの種類を識別する際に、前記記憶する機能に格納されているカードの種類毎の接続回数に基づいて、前記複数種類のカードにそれぞれ対応した複数種類の識別コマンドを発行する順番を決定する機能とを有することを特徴とするカードシステム。
【請求項２】
請求項１記載のカードシステムにおいて、
前記識別コマンドを発行する順番を決定する機能は、前記記憶する機能に格納されているカードの種類毎の接続回数が多いものに該当するカードの種類から順番に、前記該当するカードの種類に対応した識別コマンドを発行することを特徴とするカードシステム。
【請求項３】
請求項１または２記載のカードシステムにおいて、
前記カウントする機能と前記識別コマンドを発行する順番を決定する機能は、前記ホストに設けられたデバイスドライバが、前記ホストが備えたコンピュータを用いてプログラム処理を行うことによって実現されることを特徴とするカードシステム。
【請求項４】
カードを制御するホストを含むカードシステムであって、
前記ホストは、
前記カードの初期設定を行う際に、前記カードの動作電圧を設定するコマンドを前記カードに向けて発行する周期を記憶する機能と、
前記カードの動作電圧の設定が完了するまでに要した時間をカウントする機能と、
前記カウントした時間に基づいて前記記憶する機能に格納されている周期を補正する機能とを有することを特徴とするカードシステム。
【請求項５】
複数のカードを制御するホストを含むカードシステムであって、
前記ホストは、
各カードから取得したカード識別情報と前記カード識別情報に対応した各種設定情報を複数のカード分記憶する機能を備え、
カードの初期設定を行う際に、前記初期設定を行うカードから取得したカード識別情報が前記記憶する機能に含まれている場合は、前記カード識別情報に対応して前記記憶する機能に格納されている各種設定情報を用いることで前記カードの初期設定を行い、そうでない場合は、前記初期設定を行うカードから各種設定情報を取得し、前記取得した各種設定情報を前記カード識別情報に対応させて前記記憶する機能に格納することを特徴とするカードシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、カードシステムに関し、特に、多種のカードに対応したホストを含むカードシステムに適用して有効な技術に関するものである。
【背景技術】
【０００２】
本発明者が検討したところによれば、カードシステムの技術に関しては、以下のようなものが考えられる。
【０００３】
例えば、互換性があるカードとして、ＳＤＩＯ（Ｓｅｃｕｒｅ  Ｄｉｇｉｔａｌ  Ｉ／Ｏ）カード、ＳＤ（Ｓｅｃｕｒｅ  Ｄｉｇｉｔａｌ）メモリカード、およびＭＭＣ（ＭｕｌｔｉＭｅｄｉａＣａｒｄ（登録商標））カードなどが知られている。ＳＤＩＯカードは、例えばＧＰＳ（Ｇｌｏｂａｌ  Ｐｏｓｉｔｉｏｎｉｎｇ  Ｓｙｓｔｅｍ）機能やＢｌｕｅｔｏｏｔｈ機能等を実現する外付けＩ／Ｏ機器として用いられ、ＳＤメモリカード（以降、ＳＤカードと略す場合有り）およびＭＭＣカードは、外付けのメモリ機器として用いられる。
【０００４】
ＳＤＩＯカードおよびＳＤカードは、ＭＭＣカードに対して、データピン数等が増加しているが、ピン配置等で上位互換性を保った仕様となっている。つまり、これらのカードは、同一のカードスロットで駆動することが可能であり、これによって、これら全てのカードを駆動可能なホスト機器が存在している。このようなホスト機器は、カード駆動する際に、まずカードスロットに接続されたカードの仕様を認識し、カードの仕様に応じた最適な動作設定を行う。
【発明の開示】
【発明が解決しようとする課題】
【０００５】
ところで、前記のようなカードシステムの技術について、本発明者が検討した結果、以下のようなことが明らかとなった。
【０００６】
例えば、ＳＤＩＯカード規格、ＳＤカード規格、及びＭＭＣカード規格では、カードがホストに接続され、ホストとカードがアプリケーションレベルで通信可能になるまでには、ある一定の処理過程が必要となる。それを初期設定過程と定義する。特に、ＳＤＩＯカード規格に準拠し、ＳＤＩＯカードの他にもＳＤカードとＭＭＣカードを駆動可能なシステムにおいて、ＳＤモード及びＭＭＣモードでの初期設定過程は、（１）ホストがカードの種類を識別する過程、（２）ホストがカードの動作電圧を設定する過程、（３）ホストがカードから情報を取得する過程、（４）ホストがカードの通信モードを設定する過程から構成される。
【０００７】
なお、ＳＤモード及びＭＭＣモードとは、ＳＤカード規格及びＭＭＣカード規格で定義された動作モードであり、その他にもＳＰＩモードが定義されているが、一般的にはＳＤモードおよびＭＭＣモードの方が広く用いられている。以下、前述した各初期設定過程について詳細を説明する。
【０００８】
（１）ホストがカードの種類を識別する過程
図５は、本発明の前提として検討した技術のカードシステムにおいて、ホストがカードの種類を識別する過程を示す処理フロー図である。本過程では、ホストがカードに、対応する種別のカードしか応答しないコマンドを発行し、そのレスポンスの有無によりカードの種別を判定する。発行するコマンドは、図５に示すように、ＳＤＩＯカードに対応するコマンドとして引数を０としたＣＭＤ５（０）と、ＳＤカードに対応するコマンドとして引数を０としたＡＣＭＤ４１（０）と、ＭＭＣカードに対応するコマンドとして引数を０としたＣＭＤ１（０）である。
【０００９】
レスポンスが無い場合、ホストはタイムアウト時間だけ待たなければならないので、コマンド発行の順序により本過程に必要な時間は異なる。規格ではタイムアウト時間は６４クロックと定義されているが、一般のシステムでは、各カードとの互換性やレスポンスの遅延等を考慮して数ｍｓｅｃ程度に設定されている。例えば、ＳＤＩＯカードが接続された場合、図５に示すＣＭＤ５を最初に発行するシステムＡでは、タイムアウトを待つことなく本過程が完了するので効率がよいが、ＡＣＭＤ４１→ＣＭＤ１→ＣＭＤ５という順序でコマンドを発行するシステムＢでは、２度のタイムアウトを待つことになるので効率が良くない。通常、コマンドの発行の順序はシステムにより固定となっている。
【００１０】
（２）ホストがカードの動作電圧を設定する過程
図６は、本発明の前提として検討した技術のカードシステムにおいて、ホストがカードの動作電圧を設定する過程を示す処理フロー図である。ホストとカードは同じ電圧で動作しなければならず、本過程は、ホストがカードと同じ電圧で動作するように設定する過程となっている。以下、図６中の番号に対応させて説明を行う。
【００１１】
［１］ホストは、自身が動作している動作電圧（以下、ＷＶ）を引数とした動作電圧の設定コマンド（以下、ＣＭＤＶ）を発行する。このコマンドは、ＳＤＩＯカードの場合はＣＭＤ５、ＳＤカードの場合はＡＣＭＤ４１、ＭＭＣカードの場合はＣＭＤ１である。
【００１２】
［２］カードは、ＣＭＤＶを受信するとＷＶを解析し、ＷＶで動作する準備をする。
【００１３】
［３］カードは、動作準備が完了しているか否かを確認する。動作準備が完了していれば、下記［４］の処理に移行し、そうでなければ、下記［５］の処理に移行する。
【００１４】
［４］カードは、動作準備が完了していれば、動作電圧設定中であることを示すビジーフラグをクリアする。
【００１５】
［５］カードは、ビジーフラグの情報を含むレスポンスをホストに送信する。
【００１６】
［６］ホストは、レスポンスを受信する。
【００１７】
［７］ホストは、レスポンスを解析し、ビジーフラグがクリアされているかどうかを調べる。クリアされていれば本過程は終了する。また、クリアされてなければ前記［１］〜［７］の処理を再度実行する。
【００１８】
カードが動作可能になるまでの時間は、動作電圧とカードの特性により異なるが、通常、ホストは、前記［１］〜［７］の処理を複数回繰り返すことになる。
【００１９】
（３）ホストがカードから情報を取得する過程
ホストは、カードから各種カード規格で定義された、個々のカードを区別するカード識別情報、動作電圧や転送サイズなどのカード特性情報、及び各種カードの応用規格で定義されたアプリケーション固有のアプリケーション関連情報を取得する。これらの情報およびその取得方法は、ＳＤＩＯカードの場合と、ＳＤカードまたはＭＭＣカードの場合とで異なっている。
【００２０】
（３−１）ＳＤＩＯカードの場合
図７は、本発明の前提として検討した技術のカードシステムにおいて、ＳＤＩＯカードから情報を取得する際の処理の一例を説明するための図である。図７に示すように、ホスト７０は、ＳＤＩＯカード７１からカード識別情報をＣＭＤ３、ＣＭＤ５２、及びＣＭＤ５３により取得する。取得されたカード識別情報７０ａには、簡易な識別ＩＤとしてＲＣＡ（Ｒｅｌａｔｉｖｅ  Ｃａｒｄ  Ａｄｄｒｅｓｓ）が、詳細な識別ＩＤとしてＣＩＳ（Ｃａｒｄ  Ｉｎｆｏｒｍａｔｉｏｎ  Ｓｔｒｕｃｔｕｒｅ）等が含まれる。
【００２１】
また、ホスト７０は、ＳＤＩＯカード７１からカード特性情報をＣＭＤ５、ＣＭＤ５２、及びＣＭＤ５３により取得する。取得されたカード特性情報７０ｂには、カードの動作可能な電圧範囲を示すＯＣＲ（Ｏｐｅｒａｔｉｏｎ  Ｃｏｎｄｉｔｉｏｎ  Ｒｅｇｉｓｔｅｒ）、転送サイズなど情報を格納するＣＣＣＲ（Ｃａｒｄ  Ｃｏｍｍｏｎ  Ｃｏｎｔｒｏｌ  Ｒｅｇｉｓｔｅｒｓ）、ファンクションの機能を格納するＦＢＲ（Ｆｕｎｃｔｉｏｎ  Ｂａｓｉｃ  Ｒｅｇｉｓｔｅｒｓ）などが含まれる。
【００２２】
さらに、ホスト７０は、ＳＤＩＯカード７１からアプリケーション関連情報をＣＭＤ５２やＣＭＤ５３により取得する。取得されたアプリケーション関連情報７０ｃには、ＳＤＩＯカードの応用規格で定義されたＧＰＳやＢｌｕｅｔｏｏｔｈなどのアプリケーションに関連する情報が含まれる。
【００２３】
（３−２）メモリカード（ＳＤカードまたはＭＭＣカード）の場合
図８は、本発明の前提として検討した技術のカードシステムにおいて、ＳＤカードまたはＭＭＣカードから情報を取得する際の処理の一例を説明するための図である。図８に示すように、ホスト８０は、メモリカード８１からカード識別情報をＣＭＤ２（またはＣＭＤ１０）により取得する。取得されたカード識別情報８０ａには、ＣＩＤ（Ｃａｒｄ  ＩＤｅｎｔｉｆｉｃａｔｉｏｎ）レジスタが含まれる。
【００２４】
また、ホスト８０は、メモリカード８１からカード特性情報をＣＭＤ９などにより取得し、アプリケーション関連情報をＣＭＤ１８などにより取得する。取得されたカード特性情報８０ｂには、カードの動作可能な電圧範囲を示すＯＣＲ、転送サイズなどの情報を格納するＣＳＤ（Ｃａｒｄ  Ｓｐｅｃｉｆｉｃ  Ｄａｔａ）レジスタなどが含まれ、取得されたアプリケーション関連情報８０ｃには、ファイルシステムに関連する情報を格納するＦＡＴ（Ｆｉｌｅ  Ａｌｌｏｃａｔｉｏｎ  Ｔａｂｌｅ）やＲｏｏｔＤｉｒｅｃｔｏｒｙなどの情報が含まれる。
【００２５】
（４）ホストがカードの通信モードを設定する過程
ホストはカードから取得した情報を基に、通信時のモードを設定する。このモード設定の方法は、ＳＤＩＯカードの場合と、ＳＤカードまたはＭＭＣカードの場合とで異なっている。
【００２６】
（４−１）ＳＤＩＯカードの場合
図９は、本発明の前提として検討した技術のカードシステムにおいて、ＳＤＩＯカードの通信モードを設定する際の処理の一例を説明するための図である。図９に示すように、ホスト７０は、取得されたカード特性情報７０ｂを基に、クロックの周波数、バス幅、ファンクションを有効にするなどの設定を行う。また、取得されたアプリケーション関連情報７０ｃを基に、ファンクションからの割り込み受付やファンクション固有の動作モードの設定をＣＭＤ５２やＣＭＤ５３により行う。
【００２７】
（４−２）メモリカード（ＳＤカードまたはＭＭＣカード）の場合
図１０は、本発明の前提として検討した技術のカードシステムにおいて、ＳＤカードまたはＭＭＣカードの通信モードを設定する際の処理の一例を説明するための図である。図１０に示すように、ホスト８０は、取得されたカード特性情報８０ｂに基づくクロックの周波数、転送ブロックサイズなどの設定や、取得されたアプリケーション関連情報８０ｃに基づくファイルシステムのマウント処理などをＣＭＤ１６、ＣＭＤ２４、及びＣＭＤ２５により行う。
【００２８】
以上のような初期設定過程を経ることによってカードの実使用が可能となる。しかしながら、このような初期設定過程は、特に、前述したような複数種類のカードに対応し、更にカードの交換頻度が高いシステムにおいて、その性能を低下させるものとして問題となってくる。具体的には、例えば下記（１）〜（３）のような問題点が挙げられる。
【００２９】
（１）ホストがカードの種類を識別する動作において、ホストがカードを種別する順序は、通常、システム毎に固定であるため、使用するカードが、前述したようにタイムアウト待ちを必要とするカードに偏った場合に多くの時間が浪費されてしまう。
【００３０】
（２）ホストがカードの動作電圧を設定する過程において、カードの動作準備が完了するまでに、無駄なコマンドとレスポンスのやり取りが繰り返されてしまう。
【００３１】
（３）過去に接続されたカードであっても、そのカードが再接続される毎にカードから情報を取得しているので、その取得のためコマンド、レスポンス、及びデータのやり取りが繰り返されている。
【００３２】
そこで、本発明の目的は、初期設定過程を効率化し、性能を向上させることが可能なカードシステムを提供することにある。
【００３３】
本発明の前記ならびにその他の目的と新規な特徴は、本明細書の記述および添付図面から明らかになるであろう。
【課題を解決するための手段】
【００３４】
本願において開示される発明のうち、代表的なものの概要を簡単に説明すれば、次のとおりである。
【００３５】
本発明によるメモリシステムは、複数種類のカードを制御可能なホストを含み、ホストは、複数種類のカードの中のいずれかの種類のカードが接続された際に、接続されたカードの種類を識別し、複数種類のカードが接続された回数をカードの種類毎にカウントする機能と、このカードの種類毎にカウントした接続回数を記憶する機能と、カードの種類を識別する際に、前記記憶する機能に格納されているカードの種類毎の接続回数に基づいて、複数種類のカードにそれぞれ対応した複数種類の識別コマンドを発行する順番を決定する機能とを有するものである。
【００３６】
これによって、カードの種類を識別する際に発行する、各カードにそれぞれ対応した識別コマンドを、最適な順序で発行することが可能となる。したがって、カードが識別されるまでの時間が短縮され、初期設定過程を効率化することができる。
【００３７】
ここで、前記識別コマンドを発行する順番を決定する機能は、例えば、前記記憶する機能に格納されている接続回数が多いものに該当するカードの種類から順番に、このカードの種類に対応した識別コマンドを発行するものとなっている。
【００３８】
すなわち、カードが接続された際に、これまでに接続された回数が多いカードの種類が、現在接続されている可能性が高いと推測して、このカード種類に対応した識別コマンドから順番に発行を行う。これによって、接続されたカードの種類を早期に識別できる可能性が確率的に高くなり、初期設定過程を効率化することができる。
【００３９】
なお、前記カウントする機能と前記識別コマンドを発行する順番を決定する機能は、例えば、ホストに設けられたデバイスドライバが、ホストが備えたコンピュータを用いてプログラム処理を行うことによって実現することができる。この場合、ソフトウエアの機能追加で対応できるため、容易に実現が可能となる。
【００４０】
また、本発明によるメモリシステムは、カードを制御するホストを含み、ホストは、カードの初期設定を行う場合に、カードの動作電圧を設定するコマンドをカードに向けて発行する際の周期を記憶する機能と、カードの動作電圧の設定が完了するまでに要した時間をカウントする機能と、このカウントした時間に基づいて前記記憶する機能に格納されている周期を補正する機能とを有するものである。
【００４１】
これによって、動作電圧を設定する際に、コマンド発行の周期を最適化することができ、ホストとカード間において通常では複数回必要となるコマンド送受信の回数を減らすことが可能になる。したがって、省電力化等が図れ、初期設定過程を効率化することが可能になる。
【００４２】
また、本発明によるメモリシステムは、カードを制御するホストを含み、ホストは、各カードから取得したカード識別情報とこのカード識別情報に対応した各種設定情報を複数のカード分記憶する機能を備え、カードの初期設定を行う際に、カードから取得したカード識別情報が前記記憶する機能に含まれている場合は、カード識別情報に対応して前記記憶する機能に格納されている各種設定情報を用いることでカードの初期設定を行い、そうでない場合は、カードから各種設定情報を取得し、この取得した各種設定情報をカード識別情報に対応させて前記記憶する機能に格納するものである。
【００４３】
これによって、過去に少なくとも１度接続されたカードが再度接続された場合、カード初期設定の動作において、カードから情報を取得する過程の効率化が得られる。
【発明の効果】
【００４４】
本願において開示される発明のうち、代表的なものによって得られる効果を簡単に説明すれば以下のとおりである。
【００４５】
ホスト内に、カードの種類毎の接続回数を記憶する機能や、カードの動作電圧を設定する際のコマンド発行の周期を記憶する機能や、カードの各種設定情報等を複数のカード分記憶する機能などを設けることで、初期設定過程が時間や電力等の面で効率化され、カードシステムの性能を向上させることが可能になる。
【発明を実施するための最良の形態】
【００４６】
以下、本発明の実施の形態を図面に基づいて詳細に説明する。なお、実施の形態を説明するための全図において、同一の部材には原則として同一の符号を付し、その繰り返しの説明は省略する。
【００４７】
図１は、本発明の一実施の形態によるカードシステムにおいて、その構成の一例を示す概略図である。図１に示すカードシステムは、ホスト１０とカード１１から構成され、ホスト１０とカード１１の間がコマンド線１２ａおよびデータ線１２ｂ等によって接続されている。カード１１は、例えば、ＳＤＩＯカード、ＳＤカード、及びＭＭＣカードの中のいずれかである。ホスト１０は、アプリケーション１０ａと、ファイルシステム１０ｂと、デバイスドライバ１０ｃと、ホストコントローラ１０ｄに加え、レジストリ［１］１３と、レジストリ［２］１４を有する構成となっている。
【００４８】
アプリケーション１０ａは、例えばフォルダやファイルの操作を行う機能を備えたエクスプローラ、及び音楽データの再生機能等を備えたオーディオプレーヤーなどといったＳＤカードおよびＭＭＣカード向けのソフトウエアや、カーナビゲーションやデジタルカメラなどの制御機能を備えたＳＤＩＯカード向けのソフトウエアである。
【００４９】
ファイルシステム１０ｂは、アプリケーション１０ａがデータをファイルとして扱えるように、デバイスドライバ１０ｃとの間で入出力したデータをファイルに変換するシステムソフトウエアである。具体例としては、ＦＡＴ１６やＦＡＴ３２などのＦＡＴ（Ｆｉｌｅ  Ａｌｌｏｃａｔｉｏｎ  Ｔａｂｌｅ）規格に準拠したものなどが挙げられる。
【００５０】
デバイスドライバ１０ｃは、トランザクションやコマンドシーケンスの管理、及びホストコントローラ１０ｄの制御などをするソフトウエアである。そして、本発明においては、更に、レジストリ［１］１３とレジストリ［２］１４に登録された情報を基に初期設定過程の最適化を図る機能、及び新規に接続されたカードの情報をレジストリ［１］１３とレジストリ［２］１４に登録する機能が設けられている。
【００５１】
ホストコントローラ１０ｄは、デバイスドライバ１０ｃの制御を受け、コマンド線１２ａおよびデータ線１２ｂを介してカード１１との間でコマンドの送信、レスポンスの受信、およびデータの送受信などを行うハードウエアである。
【００５２】
レジストリ［１］１３およびレジストリ［２］１４は、例えば、図２に示すような構成となっている。図２は、図１のカードシステムにおいて、レジストリの構成の一例を示す概略図である。
【００５３】
図２に示すように、レジストリ［１］１３は、接続されたカードに対してその種別毎の接続回数をカウントし、それらのカウントした値（以降、種別カウンタの値と呼ぶ）が格納される種別カウンタの記憶領域１３ａと、カードが指定された動作電圧で動作可能になるまでの時間の平均値（平均待ち時間）が格納される平均待ち時間の記憶領域１３ｂとを備えている。このレジストリ［１］１３のサイズは、例えば、１６バイトで、その内容は、種別カウンタの記憶領域１３ａが４バイト×３（＝カード種別数）、平均待ち時間の記憶領域１３ｂが４バイトである。
【００５４】
また、レジストリ［２］１４は、カード識別情報の記憶領域１４ａや、各種設定情報の記憶領域としてカード特性情報の記憶領域１４ｂおよびアプリケーション関連情報の記憶領域１４ｃとを有するものとなっている。本レジストリのサイズは、例えば、接続可能なカードの最大数を８００個とした場合、カード１個につき１２８バイトを前提として１００Ｋバイトである。この１２８バイトの内訳は、例えば、カード識別情報の記憶領域１４ａが３２バイト、カード特性情報の記憶領域１４ｂが３２バイト、アプリケーション関連情報の記憶領域１４ｃが６４バイトである。
【００５５】
本発明では、このようなカードシステムを用いて、カードがホストに接続された後、ホストとカードがアプリケーションレベルで通信可能になるまでの初期設定過程を効率化することを特徴としている。すなわち、下記（１）〜（３）のような手法によって効率化を図る。
【００５６】
（１）ホストがカードの種類を識別する過程において、レジストリ［１］１３の種別カウンタの記憶領域１３ａを参照し、例えば、種別カウンタの値が大きいものに該当するカード種類の順序で識別コマンドを発行することで、使用するカードの偏りに伴う効率低下の改善を図る。
【００５７】
（２）ホストがカードの動作電圧を設定する過程において、レジストリ［１］１３の平均待ち時間の記憶領域１３ｂを参照し、その平均待ち時間の周期で動作電圧の設定コマンドを発行することで、カードの動作準備が完了するまでの無駄なコマンドとレスポンスを省略し、電力の削減を図る。
【００５８】
（３）カードが新規に接続されたとき、カード識別情報、カード特性情報およびアプリケーション関連情報を、レジストリ［２］１４内の対応する記憶領域１４ａ，１４ｂ，１４ｃに登録する。そして、これらの情報が登録済みのカードが再度接続された場合には、レジストリ［２］１４に保存しておいたカード特性情報とアプリケーション関連情報をロードし参照することにより、カード情報取得のためのコマンド、レスポンス、及びデータのやり取りを省略し、時間の短縮と電力の削減を図る。
【００５９】
以上のような手法は、より具体的には、例えば図３に示すような動作によって実現することができる。図３は、図１のカードシステムにおいて、その動作の一例を示す処理フロー図である。図３の処理フローは、例えば、図１のデバイスドライバ１０ｃによって実現される。なお、デバイスドライバ１０ｃを含め、アプリケーション１０ａおよびファイルシステム１０ｂといったソフトウエアの処理は、例えばホスト１０が備えたマイクロプロセッサ又はマイクロコンピュータ等のコンピュータ（図１には図示せず）を用いて実行される。以下、図３の処理フローについて、図３中の番号に対応させて説明を行う。
【００６０】
［１］ホスト１０が、カード１１を検出する。
【００６１】
［２］レジストリ［１］１３から種別カウンタの記憶領域１３ａをロードする。レジストリ［１］１３の種別カウンタの記憶領域１３ａは、そのサイズを４バイト×３（＝カード種別数）とした場合、カードの接続回数を０回から最大ＦＦＦＦＦＦＦＦ’ｈ（１６進数表示）回まで格納することができる。
【００６２】
［３］過去に接続された回数の最も大きい種別のカードが、再度接続される確率が高いと考えられる。そこで、種別カウンタの値が最も大きいカード種別に対応するカード識別コマンド（識別コマンド）を発行する。例えば、ＳＤＩＯカードの種別カウンタの値が最も大きければ、ＳＤＩＯカードに対応するコマンドであるＣＭＤ５を発行する（図５参照）。もし、ＣＭＤ５発行の結果、レスポンスがなければ（ＳＤＩＯカードでなければ）、次に種別カウンタの値が大きいカードに対応する識別コマンドを発行する。なお、種別カウンタの値が等しいカードが２個以上あれば、ＳＤＩＯカード＞ＳＤカード＞ＭＭＣカードという優先順位にする。
【００６３】
［４］カード種類の識別が完了後、対応する種別カウンタの値を１増やし、レジストリ［１］１３の種別カウンタの記憶領域１３ａを更新する。
【００６４】
［５］レジストリ［１］１３から平均待ち時間の記憶領域１３ｂをロードする。平均待ち時間の記憶領域１３ｂは、μｓｅｃ単位でそのサイズを４バイトとすると、０μｓｅｃから最大１０ｓｅｃ程度まで格納することができる。
【００６５】
［６］一般的にカードが指定された動作電圧で動作可能になるまでの時間の偏りは小さい。そこで、平均待ち時間に対応する周期で、カードの種別に対応する動作電圧の設定コマンドを発行する。また、並行して、本動作電圧の設定に要する時間を計測しておく。
【００６６】
［７］前記［６］の処理に要した実際の時間（＝Ｒ（Ｎ）μｓｅｃ）と、レジストリ［１］１３からロードした平均待ち時間（＝Ｄ（Ｎ）μｓｅｃ）と、各種別カウンタの値の総計（＝Ｎ）から、平均待ち時間（＝Ｄ（Ｎ＋１）μｓｅｃ）を再計算し、レジストリ［１］１３の平均待ち時間の記憶領域１３ｂを再計算した値に更新する。更新計算は、Ｄ（Ｎ＋１）＝｛Ｒ（Ｎ）＋Ｄ（Ｎ）×Ｎ｝／（Ｎ＋１）となる。
【００６７】
［８］カード１１からカード識別情報（ＩＤ＝Ｘ）を取得する。ここで、ＳＤＩＯカードであれば、ＲＣＡやＣＩＳをＣＭＤ３やＣＭＤ５２により取得する。ＳＤカードやＭＭＣカードであれば、ＣＩＤをＣＭＤ２やＣＭＤ１０により取得する。
【００６８】
［９］レジストリ［２］１４の各記憶領域１４ａ〜１４ｃからカード識別情報および各種設定情報をロードする。これらの情報は、カード１個あたり１２８バイトで、その内容は、カード識別情報が３２バイト、カード特性情報が３２バイト、アプリケーション関連情報が６４バイトである。
【００６９】
［１０］カード１１から取得したカード識別情報（ＩＤ＝Ｘ）が、レジストリ［２］１４のカード識別情報の記憶領域１４ａに登録されているかを検索する。
【００７０】
［１１］登録されていれば、レジストリ［２］１４から、（ＩＤ＝Ｘ）に対応するカード特性情報とアプリケーション関連情報をロードし、カード１１にアクセスすること無しにカード１１の情報が得られる。
【００７１】
［１２］登録されていなければ、カード１１にアクセスしてカード特性情報とアプリケーション関連情報を取得する。
【００７２】
［１３］カード１１から取得したカード識別情報、カード特性情報、及びアプリケーション関連情報をレジストリ［２］の各記憶領域１４ａ〜１４ｃに新規に登録する。
【００７３】
［１４］ホスト１０は、前記［１３］の処理までに取得した情報を基に、クロック周波数、バス幅などの通信をするためのモードをカード１１に設定し、初期設定過程が終了する。
【００７４】
以上に説明した構成および動作により、例えば次のような効果を得ることができる。
【００７５】
（１）カード初期設定の動作において、使用するカードの偏りに伴う効率低下が改善できる。すなわち、前述した図３の［３］の処理により、レスポンスタイムアウトを待つ確率が小さくなり、カードの種類を識別する過程の効率化が得られる。これにより、数ｍｓｅｃ程度の時間短縮を図ることができる。
【００７６】
（２）カード初期設定の動作において、カードの動作準備が完了するまでの無駄なコマンドとレスポンスが省略でき、カードの動作電圧を設定する過程の効率化が得られる。すなわち、前述した図３の［６］の処理により、カードの動作電圧を設定する際の無駄なコマンドとレスポンスのやり取りが減少し、電力の削減が得られる。
【００７７】
（３）過去に少なくとも１度接続されたカードが再度接続された場合、カード初期設定の動作において、カードから情報を取得する過程の効率化が得られる。すなわち、前述した図３の［１１］の処理により、カードの情報を取得するまでに繰り返されるコマンド、レスポンス、及びデータのやり取りが減少する。特に、ファイルシステムのマウントが省略される場合、１０Ｋバイト程度の読み出し動作が省略できるので、数ｍｓｅｃ程度の時間短縮と数１００μＪ程度のエネルギー削減が得られる。
【００７８】
（４）前記（１），（３）により短縮された時間を製品の他機能（マルチメディアデータのデコード、ＳＤＩＯファンクションのアプリケーションの動作等）で使用することが可能になる。
【００７９】
（５）前記（２），（３）により、カードシステムの省電力化を図ることが可能になる。また、データのやり取りの減少により、メモリカードの劣化が防止できる。
【００８０】
つぎに、これまでに説明した構成および動作を変形（応用）した構成および動作の一例を下記（１）〜（３）に示す。
【００８１】
（１）レジストリ［１］に確率分布を適用する例
図４は、図１〜図３のカードシステムにおいて、レジストリ［１］１３に確率分布を適用した場合の構成および動作の一例を説明するための図である。前述した図１〜図３のカードシステムの説明では、レジストリ［１］１３の種別カウンタの値や平均待ち時間をそのまま用いて、カードの種類の識別や動作電圧の設定を行う例を示した。
【００８２】
ここでは、図４に示すように、レジストリ［１］１３の種別カウンタの値、及び平均待ち時間をそのまま用いるのではなく、種別カウンタの値と乱数の値（＝Ｎ）、及び平均待ち時間と乱数の値（＝Ｎ’）を２項分布やローレンツ分布などの確率分布関数に入力し、その計算した結果Ｐ及びＰ’を使用する。これにより、使用するカードの偏りに伴う効率低下を更に改善し、またカードの動作電圧を設定する際の待ち時間の精度を更に高めることが可能になる。このような手法は、特に、レジストリ［１］１３に登録されている情報が少ない場合に有効となる。なお、乱数の生成は、例えば、ＳＤカードのＣＰＲＭ処理（デジタルコンテンツの著作権を保護する暗号化技術）に用いる乱数などを使用するとよい。
【００８３】
（２）カードの認識を行う際にユーザー選択機能を付加する例
アプリケーションなどに応じてユーザーが特定の種類のカードを優先し、初期設定を行いたい場合が考えられる。その場合、ホスト１０上にディップスイッチ等を設けることにより、図１〜図３のカードシステムで説明した各機能に加えて、ユーザーがどのカードを優先し初期設定を行うかを選択できる機能を付加することができる。
【００８４】
（３）システム規模に対応してレジストリ領域を選択する例
近年、携帯電話をはじめとするメモリ領域が乏しい組み込みシステム、またＰＣ（Ｐｅｒｓｏｎａｌ  Ｃｏｍｐｕｔｅｒ）などのハードディスクまで含めると数Ｇバイトの領域を持つシステムなど、さまざまなシステムにカードインタフェースは搭載されている。そこで、システムの規模に対応して確保するレジストリを選択することも可能である。
【００８５】
例えば、メモリ領域が乏しいシステムには、図１における種別カウンタの記憶領域１３ａと平均待ち時間の記憶領域１３ｂを含んだレジストリ［１］１３のみを割り当てる。その場合、１６バイトのメモリを使用するだけで、カードの種類を識別する過程と動作電圧を設定する過程の効率化が図れる。また、メモリ領域が豊富なシステムでは、例えば、図１のレジストリ［２］１４において、サポートカード数を増やしたりアプリケーション関連情報の記憶領域１４ｃを拡張し、効率化の程度を増すこともできる。
【００８６】
以上、本発明者によってなされた発明を実施の形態に基づき具体的に説明したが、本発明は前記実施の形態に限定されるものではなく、その要旨を逸脱しない範囲で種々変更可能であることはいうまでもない。
【産業上の利用可能性】
【００８７】
本発明のカードシステムは、例えば、多種のファンクションを持つＳＤＩＯカードに対応したホストシステムや、Ｉ／Ｏ機能とメモリモジュールを備えたコンボカードに対応したホストシステムなどのように、初期設定時に多種類のカードの識別とカードの詳細な情報の取得が必要なホストシステムに適用して特に有益なものであり、これに限らず、例えば、Ｉ／Ｏカードとメモリカードに対応したＭＳ（Ｍｅｍｏｒｙ  Ｓｔｉｃｋ）ホストシステムや、交換頻度が高いカードに対応したホストシステムなどを含めカードシステム全般に広く適用可能である。
【図面の簡単な説明】
【００８８】
【図１】本発明の一実施の形態によるカードシステムにおいて、その構成の一例を示す概略図である。
【図２】図１のカードシステムにおいて、レジストリの構成の一例を示す概略図である。
【図３】図１のカードシステムにおいて、その動作の一例を示す処理フロー図である。
【図４】図１〜図３のカードシステムにおいて、レジストリ［１］に確率分布を適用した場合の構成および動作の一例を説明するための図である。
【図５】本発明の前提として検討した技術のカードシステムにおいて、ホストがカードの種類を識別する過程を示す処理フロー図である。
【図６】本発明の前提として検討した技術のカードシステムにおいて、ホストがカードの動作電圧を設定する過程を示す処理フロー図である。
【図７】本発明の前提として検討した技術のカードシステムにおいて、ＳＤＩＯカードから情報を取得する際の処理の一例を説明するための図である。
【図８】本発明の前提として検討した技術のカードシステムにおいて、ＳＤカードまたはＭＭＣカードから情報を取得する際の処理の一例を説明するための図である。
【図９】本発明の前提として検討した技術のカードシステムにおいて、ＳＤＩＯカードの通信モードを設定する際の処理の一例を説明するための図である。
【図１０】本発明の前提として検討した技術のカードシステムにおいて、ＳＤカードまたはＭＭＣカードの通信モードを設定する際の処理の一例を説明するための図である。
【符号の説明】
【００８９】
１０，７０，８０  ホスト
１０ａ  アプリケーション
１０ｂ  ファイルシステム
１０ｃ  デバイスドライバ
１０ｄ  ホストコントローラ
１１，７１，８１  カード
１２ａ  コマンド線
１２ｂ  データ線
１３  レジストリ［１］
１３ａ  種別カウンタの記憶領域
１３ｂ  平均待ち時間の記憶領域
１４  レジストリ［２］
１４ａ  カード識別情報の記憶領域
１４ｂ  カード特性情報の記憶領域
１４ｃ  アプリケーション関連情報の記憶領域
７０ａ，８０ａ  取得されたカード識別情報
７０ｂ，８０ｂ  取得されたカード特性情報
７０ｃ，８０ｃ  取得されたアプリケーション関連情報
【図２】
2006119963.tif 000003
【図３】
2006119963.tif 000004
【図４】
2006119963.tif 000005
【図５】
2006119963.tif 000006
【図６】
2006119963.tif 000007
【図１】
2006119963.tif 000008
【図７】
2006119963.tif 000009
【図８】
2006119963.tif 000010
【図９】
2006119963.tif 000011
【図１０】
2006119963.tif 000012