説明

カードシステム

【課題】 初期設定過程を効率化し、性能を向上させることが可能なカードシステムを提供する。
【解決手段】 多種のカード11を接続可能なホスト10内において、アプリケーション10a、ファイルシステム10b、デバイスドライバ10c、およびホストコントローラ10dに加えて、記憶機能を備えたレジストリ[1]13,[2]14を設け、前記レジストリ[1]13には、前記カード11が接続された回数をカードの種類毎に記憶した情報と、前記カード11の動作電圧を設定する際のコマンド発行周期の情報とを記憶し、前記レジストリ[2]14には、接続されたカード11のカード識別情報、カード特性情報及びアプリケーション関連情報などを累積して複数カード分記憶する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、カードシステムに関し、特に、多種のカードに対応したホストを含むカードシステムに適用して有効な技術に関するものである。
【背景技術】
【0002】
本発明者が検討したところによれば、カードシステムの技術に関しては、以下のようなものが考えられる。
【0003】
例えば、互換性があるカードとして、SDIO(Secure Digital I/O)カード、SD(Secure Digital)メモリカード、およびMMC(MultiMediaCard(登録商標))カードなどが知られている。SDIOカードは、例えばGPS(Global Positioning System)機能やBluetooth機能等を実現する外付けI/O機器として用いられ、SDメモリカード(以降、SDカードと略す場合有り)およびMMCカードは、外付けのメモリ機器として用いられる。
【0004】
SDIOカードおよびSDカードは、MMCカードに対して、データピン数等が増加しているが、ピン配置等で上位互換性を保った仕様となっている。つまり、これらのカードは、同一のカードスロットで駆動することが可能であり、これによって、これら全てのカードを駆動可能なホスト機器が存在している。このようなホスト機器は、カード駆動する際に、まずカードスロットに接続されたカードの仕様を認識し、カードの仕様に応じた最適な動作設定を行う。
【発明の開示】
【発明が解決しようとする課題】
【0005】
ところで、前記のようなカードシステムの技術について、本発明者が検討した結果、以下のようなことが明らかとなった。
【0006】
例えば、SDIOカード規格、SDカード規格、及びMMCカード規格では、カードがホストに接続され、ホストとカードがアプリケーションレベルで通信可能になるまでには、ある一定の処理過程が必要となる。それを初期設定過程と定義する。特に、SDIOカード規格に準拠し、SDIOカードの他にもSDカードとMMCカードを駆動可能なシステムにおいて、SDモード及びMMCモードでの初期設定過程は、(1)ホストがカードの種類を識別する過程、(2)ホストがカードの動作電圧を設定する過程、(3)ホストがカードから情報を取得する過程、(4)ホストがカードの通信モードを設定する過程から構成される。
【0007】
なお、SDモード及びMMCモードとは、SDカード規格及びMMCカード規格で定義された動作モードであり、その他にもSPIモードが定義されているが、一般的にはSDモードおよびMMCモードの方が広く用いられている。以下、前述した各初期設定過程について詳細を説明する。
【0008】
(1)ホストがカードの種類を識別する過程
図5は、本発明の前提として検討した技術のカードシステムにおいて、ホストがカードの種類を識別する過程を示す処理フロー図である。本過程では、ホストがカードに、対応する種別のカードしか応答しないコマンドを発行し、そのレスポンスの有無によりカードの種別を判定する。発行するコマンドは、図5に示すように、SDIOカードに対応するコマンドとして引数を0としたCMD5(0)と、SDカードに対応するコマンドとして引数を0としたACMD41(0)と、MMCカードに対応するコマンドとして引数を0としたCMD1(0)である。
【0009】
レスポンスが無い場合、ホストはタイムアウト時間だけ待たなければならないので、コマンド発行の順序により本過程に必要な時間は異なる。規格ではタイムアウト時間は64クロックと定義されているが、一般のシステムでは、各カードとの互換性やレスポンスの遅延等を考慮して数msec程度に設定されている。例えば、SDIOカードが接続された場合、図5に示すCMD5を最初に発行するシステムAでは、タイムアウトを待つことなく本過程が完了するので効率がよいが、ACMD41→CMD1→CMD5という順序でコマンドを発行するシステムBでは、2度のタイムアウトを待つことになるので効率が良くない。通常、コマンドの発行の順序はシステムにより固定となっている。
【0010】
(2)ホストがカードの動作電圧を設定する過程
図6は、本発明の前提として検討した技術のカードシステムにおいて、ホストがカードの動作電圧を設定する過程を示す処理フロー図である。ホストとカードは同じ電圧で動作しなければならず、本過程は、ホストがカードと同じ電圧で動作するように設定する過程となっている。以下、図6中の番号に対応させて説明を行う。
【0011】
[1]ホストは、自身が動作している動作電圧(以下、WV)を引数とした動作電圧の設定コマンド(以下、CMDV)を発行する。このコマンドは、SDIOカードの場合はCMD5、SDカードの場合はACMD41、MMCカードの場合はCMD1である。
【0012】
[2]カードは、CMDVを受信するとWVを解析し、WVで動作する準備をする。
【0013】
[3]カードは、動作準備が完了しているか否かを確認する。動作準備が完了していれば、下記[4]の処理に移行し、そうでなければ、下記[5]の処理に移行する。
【0014】
[4]カードは、動作準備が完了していれば、動作電圧設定中であることを示すビジーフラグをクリアする。
【0015】
[5]カードは、ビジーフラグの情報を含むレスポンスをホストに送信する。
【0016】
[6]ホストは、レスポンスを受信する。
【0017】
[7]ホストは、レスポンスを解析し、ビジーフラグがクリアされているかどうかを調べる。クリアされていれば本過程は終了する。また、クリアされてなければ前記[1]〜[7]の処理を再度実行する。
【0018】
カードが動作可能になるまでの時間は、動作電圧とカードの特性により異なるが、通常、ホストは、前記[1]〜[7]の処理を複数回繰り返すことになる。
【0019】
(3)ホストがカードから情報を取得する過程
ホストは、カードから各種カード規格で定義された、個々のカードを区別するカード識別情報、動作電圧や転送サイズなどのカード特性情報、及び各種カードの応用規格で定義されたアプリケーション固有のアプリケーション関連情報を取得する。これらの情報およびその取得方法は、SDIOカードの場合と、SDカードまたはMMCカードの場合とで異なっている。
【0020】
(3−1)SDIOカードの場合
図7は、本発明の前提として検討した技術のカードシステムにおいて、SDIOカードから情報を取得する際の処理の一例を説明するための図である。図7に示すように、ホスト70は、SDIOカード71からカード識別情報をCMD3、CMD52、及びCMD53により取得する。取得されたカード識別情報70aには、簡易な識別IDとしてRCA(Relative Card Address)が、詳細な識別IDとしてCIS(Card Information Structure)等が含まれる。
【0021】
また、ホスト70は、SDIOカード71からカード特性情報をCMD5、CMD52、及びCMD53により取得する。取得されたカード特性情報70bには、カードの動作可能な電圧範囲を示すOCR(Operation Condition Register)、転送サイズなど情報を格納するCCCR(Card Common Control Registers)、ファンクションの機能を格納するFBR(Function Basic Registers)などが含まれる。
【0022】
さらに、ホスト70は、SDIOカード71からアプリケーション関連情報をCMD52やCMD53により取得する。取得されたアプリケーション関連情報70cには、SDIOカードの応用規格で定義されたGPSやBluetoothなどのアプリケーションに関連する情報が含まれる。
【0023】
(3−2)メモリカード(SDカードまたはMMCカード)の場合
図8は、本発明の前提として検討した技術のカードシステムにおいて、SDカードまたはMMCカードから情報を取得する際の処理の一例を説明するための図である。図8に示すように、ホスト80は、メモリカード81からカード識別情報をCMD2(またはCMD10)により取得する。取得されたカード識別情報80aには、CID(Card IDentification)レジスタが含まれる。
【0024】
また、ホスト80は、メモリカード81からカード特性情報をCMD9などにより取得し、アプリケーション関連情報をCMD18などにより取得する。取得されたカード特性情報80bには、カードの動作可能な電圧範囲を示すOCR、転送サイズなどの情報を格納するCSD(Card Specific Data)レジスタなどが含まれ、取得されたアプリケーション関連情報80cには、ファイルシステムに関連する情報を格納するFAT(File Allocation Table)やRootDirectoryなどの情報が含まれる。
【0025】
(4)ホストがカードの通信モードを設定する過程
ホストはカードから取得した情報を基に、通信時のモードを設定する。このモード設定の方法は、SDIOカードの場合と、SDカードまたはMMCカードの場合とで異なっている。
【0026】
(4−1)SDIOカードの場合
図9は、本発明の前提として検討した技術のカードシステムにおいて、SDIOカードの通信モードを設定する際の処理の一例を説明するための図である。図9に示すように、ホスト70は、取得されたカード特性情報70bを基に、クロックの周波数、バス幅、ファンクションを有効にするなどの設定を行う。また、取得されたアプリケーション関連情報70cを基に、ファンクションからの割り込み受付やファンクション固有の動作モードの設定をCMD52やCMD53により行う。
【0027】
(4−2)メモリカード(SDカードまたはMMCカード)の場合
図10は、本発明の前提として検討した技術のカードシステムにおいて、SDカードまたはMMCカードの通信モードを設定する際の処理の一例を説明するための図である。図10に示すように、ホスト80は、取得されたカード特性情報80bに基づくクロックの周波数、転送ブロックサイズなどの設定や、取得されたアプリケーション関連情報80cに基づくファイルシステムのマウント処理などをCMD16、CMD24、及びCMD25により行う。
【0028】
以上のような初期設定過程を経ることによってカードの実使用が可能となる。しかしながら、このような初期設定過程は、特に、前述したような複数種類のカードに対応し、更にカードの交換頻度が高いシステムにおいて、その性能を低下させるものとして問題となってくる。具体的には、例えば下記(1)〜(3)のような問題点が挙げられる。
【0029】
(1)ホストがカードの種類を識別する動作において、ホストがカードを種別する順序は、通常、システム毎に固定であるため、使用するカードが、前述したようにタイムアウト待ちを必要とするカードに偏った場合に多くの時間が浪費されてしまう。
【0030】
(2)ホストがカードの動作電圧を設定する過程において、カードの動作準備が完了するまでに、無駄なコマンドとレスポンスのやり取りが繰り返されてしまう。
【0031】
(3)過去に接続されたカードであっても、そのカードが再接続される毎にカードから情報を取得しているので、その取得のためコマンド、レスポンス、及びデータのやり取りが繰り返されている。
【0032】
そこで、本発明の目的は、初期設定過程を効率化し、性能を向上させることが可能なカードシステムを提供することにある。
【0033】
本発明の前記ならびにその他の目的と新規な特徴は、本明細書の記述および添付図面から明らかになるであろう。
【課題を解決するための手段】
【0034】
本願において開示される発明のうち、代表的なものの概要を簡単に説明すれば、次のとおりである。
【0035】
本発明によるメモリシステムは、複数種類のカードを制御可能なホストを含み、ホストは、複数種類のカードの中のいずれかの種類のカードが接続された際に、接続されたカードの種類を識別し、複数種類のカードが接続された回数をカードの種類毎にカウントする機能と、このカードの種類毎にカウントした接続回数を記憶する機能と、カードの種類を識別する際に、前記記憶する機能に格納されているカードの種類毎の接続回数に基づいて、複数種類のカードにそれぞれ対応した複数種類の識別コマンドを発行する順番を決定する機能とを有するものである。
【0036】
これによって、カードの種類を識別する際に発行する、各カードにそれぞれ対応した識別コマンドを、最適な順序で発行することが可能となる。したがって、カードが識別されるまでの時間が短縮され、初期設定過程を効率化することができる。
【0037】
ここで、前記識別コマンドを発行する順番を決定する機能は、例えば、前記記憶する機能に格納されている接続回数が多いものに該当するカードの種類から順番に、このカードの種類に対応した識別コマンドを発行するものとなっている。
【0038】
すなわち、カードが接続された際に、これまでに接続された回数が多いカードの種類が、現在接続されている可能性が高いと推測して、このカード種類に対応した識別コマンドから順番に発行を行う。これによって、接続されたカードの種類を早期に識別できる可能性が確率的に高くなり、初期設定過程を効率化することができる。
【0039】
なお、前記カウントする機能と前記識別コマンドを発行する順番を決定する機能は、例えば、ホストに設けられたデバイスドライバが、ホストが備えたコンピュータを用いてプログラム処理を行うことによって実現することができる。この場合、ソフトウエアの機能追加で対応できるため、容易に実現が可能となる。
【0040】
また、本発明によるメモリシステムは、カードを制御するホストを含み、ホストは、カードの初期設定を行う場合に、カードの動作電圧を設定するコマンドをカードに向けて発行する際の周期を記憶する機能と、カードの動作電圧の設定が完了するまでに要した時間をカウントする機能と、このカウントした時間に基づいて前記記憶する機能に格納されている周期を補正する機能とを有するものである。
【0041】
これによって、動作電圧を設定する際に、コマンド発行の周期を最適化することができ、ホストとカード間において通常では複数回必要となるコマンド送受信の回数を減らすことが可能になる。したがって、省電力化等が図れ、初期設定過程を効率化することが可能になる。
【0042】
また、本発明によるメモリシステムは、カードを制御するホストを含み、ホストは、各カードから取得したカード識別情報とこのカード識別情報に対応した各種設定情報を複数のカード分記憶する機能を備え、カードの初期設定を行う際に、カードから取得したカード識別情報が前記記憶する機能に含まれている場合は、カード識別情報に対応して前記記憶する機能に格納されている各種設定情報を用いることでカードの初期設定を行い、そうでない場合は、カードから各種設定情報を取得し、この取得した各種設定情報をカード識別情報に対応させて前記記憶する機能に格納するものである。
【0043】
これによって、過去に少なくとも1度接続されたカードが再度接続された場合、カード初期設定の動作において、カードから情報を取得する過程の効率化が得られる。
【発明の効果】
【0044】
本願において開示される発明のうち、代表的なものによって得られる効果を簡単に説明すれば以下のとおりである。
【0045】
ホスト内に、カードの種類毎の接続回数を記憶する機能や、カードの動作電圧を設定する際のコマンド発行の周期を記憶する機能や、カードの各種設定情報等を複数のカード分記憶する機能などを設けることで、初期設定過程が時間や電力等の面で効率化され、カードシステムの性能を向上させることが可能になる。
【発明を実施するための最良の形態】
【0046】
以下、本発明の実施の形態を図面に基づいて詳細に説明する。なお、実施の形態を説明するための全図において、同一の部材には原則として同一の符号を付し、その繰り返しの説明は省略する。
【0047】
図1は、本発明の一実施の形態によるカードシステムにおいて、その構成の一例を示す概略図である。図1に示すカードシステムは、ホスト10とカード11から構成され、ホスト10とカード11の間がコマンド線12aおよびデータ線12b等によって接続されている。カード11は、例えば、SDIOカード、SDカード、及びMMCカードの中のいずれかである。ホスト10は、アプリケーション10aと、ファイルシステム10bと、デバイスドライバ10cと、ホストコントローラ10dに加え、レジストリ[1]13と、レジストリ[2]14を有する構成となっている。
【0048】
アプリケーション10aは、例えばフォルダやファイルの操作を行う機能を備えたエクスプローラ、及び音楽データの再生機能等を備えたオーディオプレーヤーなどといったSDカードおよびMMCカード向けのソフトウエアや、カーナビゲーションやデジタルカメラなどの制御機能を備えたSDIOカード向けのソフトウエアである。
【0049】
ファイルシステム10bは、アプリケーション10aがデータをファイルとして扱えるように、デバイスドライバ10cとの間で入出力したデータをファイルに変換するシステムソフトウエアである。具体例としては、FAT16やFAT32などのFAT(File Allocation Table)規格に準拠したものなどが挙げられる。
【0050】
デバイスドライバ10cは、トランザクションやコマンドシーケンスの管理、及びホストコントローラ10dの制御などをするソフトウエアである。そして、本発明においては、更に、レジストリ[1]13とレジストリ[2]14に登録された情報を基に初期設定過程の最適化を図る機能、及び新規に接続されたカードの情報をレジストリ[1]13とレジストリ[2]14に登録する機能が設けられている。
【0051】
ホストコントローラ10dは、デバイスドライバ10cの制御を受け、コマンド線12aおよびデータ線12bを介してカード11との間でコマンドの送信、レスポンスの受信、およびデータの送受信などを行うハードウエアである。
【0052】
レジストリ[1]13およびレジストリ[2]14は、例えば、図2に示すような構成となっている。図2は、図1のカードシステムにおいて、レジストリの構成の一例を示す概略図である。
【0053】
図2に示すように、レジストリ[1]13は、接続されたカードに対してその種別毎の接続回数をカウントし、それらのカウントした値(以降、種別カウンタの値と呼ぶ)が格納される種別カウンタの記憶領域13aと、カードが指定された動作電圧で動作可能になるまでの時間の平均値(平均待ち時間)が格納される平均待ち時間の記憶領域13bとを備えている。このレジストリ[1]13のサイズは、例えば、16バイトで、その内容は、種別カウンタの記憶領域13aが4バイト×3(=カード種別数)、平均待ち時間の記憶領域13bが4バイトである。
【0054】
また、レジストリ[2]14は、カード識別情報の記憶領域14aや、各種設定情報の記憶領域としてカード特性情報の記憶領域14bおよびアプリケーション関連情報の記憶領域14cとを有するものとなっている。本レジストリのサイズは、例えば、接続可能なカードの最大数を800個とした場合、カード1個につき128バイトを前提として100Kバイトである。この128バイトの内訳は、例えば、カード識別情報の記憶領域14aが32バイト、カード特性情報の記憶領域14bが32バイト、アプリケーション関連情報の記憶領域14cが64バイトである。
【0055】
本発明では、このようなカードシステムを用いて、カードがホストに接続された後、ホストとカードがアプリケーションレベルで通信可能になるまでの初期設定過程を効率化することを特徴としている。すなわち、下記(1)〜(3)のような手法によって効率化を図る。
【0056】
(1)ホストがカードの種類を識別する過程において、レジストリ[1]13の種別カウンタの記憶領域13aを参照し、例えば、種別カウンタの値が大きいものに該当するカード種類の順序で識別コマンドを発行することで、使用するカードの偏りに伴う効率低下の改善を図る。
【0057】
(2)ホストがカードの動作電圧を設定する過程において、レジストリ[1]13の平均待ち時間の記憶領域13bを参照し、その平均待ち時間の周期で動作電圧の設定コマンドを発行することで、カードの動作準備が完了するまでの無駄なコマンドとレスポンスを省略し、電力の削減を図る。
【0058】
(3)カードが新規に接続されたとき、カード識別情報、カード特性情報およびアプリケーション関連情報を、レジストリ[2]14内の対応する記憶領域14a,14b,14cに登録する。そして、これらの情報が登録済みのカードが再度接続された場合には、レジストリ[2]14に保存しておいたカード特性情報とアプリケーション関連情報をロードし参照することにより、カード情報取得のためのコマンド、レスポンス、及びデータのやり取りを省略し、時間の短縮と電力の削減を図る。
【0059】
以上のような手法は、より具体的には、例えば図3に示すような動作によって実現することができる。図3は、図1のカードシステムにおいて、その動作の一例を示す処理フロー図である。図3の処理フローは、例えば、図1のデバイスドライバ10cによって実現される。なお、デバイスドライバ10cを含め、アプリケーション10aおよびファイルシステム10bといったソフトウエアの処理は、例えばホスト10が備えたマイクロプロセッサ又はマイクロコンピュータ等のコンピュータ(図1には図示せず)を用いて実行される。以下、図3の処理フローについて、図3中の番号に対応させて説明を行う。
【0060】
[1]ホスト10が、カード11を検出する。
【0061】
[2]レジストリ[1]13から種別カウンタの記憶領域13aをロードする。レジストリ[1]13の種別カウンタの記憶領域13aは、そのサイズを4バイト×3(=カード種別数)とした場合、カードの接続回数を0回から最大FFFFFFFF’h(16進数表示)回まで格納することができる。
【0062】
[3]過去に接続された回数の最も大きい種別のカードが、再度接続される確率が高いと考えられる。そこで、種別カウンタの値が最も大きいカード種別に対応するカード識別コマンド(識別コマンド)を発行する。例えば、SDIOカードの種別カウンタの値が最も大きければ、SDIOカードに対応するコマンドであるCMD5を発行する(図5参照)。もし、CMD5発行の結果、レスポンスがなければ(SDIOカードでなければ)、次に種別カウンタの値が大きいカードに対応する識別コマンドを発行する。なお、種別カウンタの値が等しいカードが2個以上あれば、SDIOカード>SDカード>MMCカードという優先順位にする。
【0063】
[4]カード種類の識別が完了後、対応する種別カウンタの値を1増やし、レジストリ[1]13の種別カウンタの記憶領域13aを更新する。
【0064】
[5]レジストリ[1]13から平均待ち時間の記憶領域13bをロードする。平均待ち時間の記憶領域13bは、μsec単位でそのサイズを4バイトとすると、0μsecから最大10sec程度まで格納することができる。
【0065】
[6]一般的にカードが指定された動作電圧で動作可能になるまでの時間の偏りは小さい。そこで、平均待ち時間に対応する周期で、カードの種別に対応する動作電圧の設定コマンドを発行する。また、並行して、本動作電圧の設定に要する時間を計測しておく。
【0066】
[7]前記[6]の処理に要した実際の時間(=R(N)μsec)と、レジストリ[1]13からロードした平均待ち時間(=D(N)μsec)と、各種別カウンタの値の総計(=N)から、平均待ち時間(=D(N+1)μsec)を再計算し、レジストリ[1]13の平均待ち時間の記憶領域13bを再計算した値に更新する。更新計算は、D(N+1)={R(N)+D(N)×N}/(N+1)となる。
【0067】
[8]カード11からカード識別情報(ID=X)を取得する。ここで、SDIOカードであれば、RCAやCISをCMD3やCMD52により取得する。SDカードやMMCカードであれば、CIDをCMD2やCMD10により取得する。
【0068】
[9]レジストリ[2]14の各記憶領域14a〜14cからカード識別情報および各種設定情報をロードする。これらの情報は、カード1個あたり128バイトで、その内容は、カード識別情報が32バイト、カード特性情報が32バイト、アプリケーション関連情報が64バイトである。
【0069】
[10]カード11から取得したカード識別情報(ID=X)が、レジストリ[2]14のカード識別情報の記憶領域14aに登録されているかを検索する。
【0070】
[11]登録されていれば、レジストリ[2]14から、(ID=X)に対応するカード特性情報とアプリケーション関連情報をロードし、カード11にアクセスすること無しにカード11の情報が得られる。
【0071】
[12]登録されていなければ、カード11にアクセスしてカード特性情報とアプリケーション関連情報を取得する。
【0072】
[13]カード11から取得したカード識別情報、カード特性情報、及びアプリケーション関連情報をレジストリ[2]の各記憶領域14a〜14cに新規に登録する。
【0073】
[14]ホスト10は、前記[13]の処理までに取得した情報を基に、クロック周波数、バス幅などの通信をするためのモードをカード11に設定し、初期設定過程が終了する。
【0074】
以上に説明した構成および動作により、例えば次のような効果を得ることができる。
【0075】
(1)カード初期設定の動作において、使用するカードの偏りに伴う効率低下が改善できる。すなわち、前述した図3の[3]の処理により、レスポンスタイムアウトを待つ確率が小さくなり、カードの種類を識別する過程の効率化が得られる。これにより、数msec程度の時間短縮を図ることができる。
【0076】
(2)カード初期設定の動作において、カードの動作準備が完了するまでの無駄なコマンドとレスポンスが省略でき、カードの動作電圧を設定する過程の効率化が得られる。すなわち、前述した図3の[6]の処理により、カードの動作電圧を設定する際の無駄なコマンドとレスポンスのやり取りが減少し、電力の削減が得られる。
【0077】
(3)過去に少なくとも1度接続されたカードが再度接続された場合、カード初期設定の動作において、カードから情報を取得する過程の効率化が得られる。すなわち、前述した図3の[11]の処理により、カードの情報を取得するまでに繰り返されるコマンド、レスポンス、及びデータのやり取りが減少する。特に、ファイルシステムのマウントが省略される場合、10Kバイト程度の読み出し動作が省略できるので、数msec程度の時間短縮と数100μJ程度のエネルギー削減が得られる。
【0078】
(4)前記(1),(3)により短縮された時間を製品の他機能(マルチメディアデータのデコード、SDIOファンクションのアプリケーションの動作等)で使用することが可能になる。
【0079】
(5)前記(2),(3)により、カードシステムの省電力化を図ることが可能になる。また、データのやり取りの減少により、メモリカードの劣化が防止できる。
【0080】
つぎに、これまでに説明した構成および動作を変形(応用)した構成および動作の一例を下記(1)〜(3)に示す。
【0081】
(1)レジストリ[1]に確率分布を適用する例
図4は、図1〜図3のカードシステムにおいて、レジストリ[1]13に確率分布を適用した場合の構成および動作の一例を説明するための図である。前述した図1〜図3のカードシステムの説明では、レジストリ[1]13の種別カウンタの値や平均待ち時間をそのまま用いて、カードの種類の識別や動作電圧の設定を行う例を示した。
【0082】
ここでは、図4に示すように、レジストリ[1]13の種別カウンタの値、及び平均待ち時間をそのまま用いるのではなく、種別カウンタの値と乱数の値(=N)、及び平均待ち時間と乱数の値(=N’)を2項分布やローレンツ分布などの確率分布関数に入力し、その計算した結果P及びP’を使用する。これにより、使用するカードの偏りに伴う効率低下を更に改善し、またカードの動作電圧を設定する際の待ち時間の精度を更に高めることが可能になる。このような手法は、特に、レジストリ[1]13に登録されている情報が少ない場合に有効となる。なお、乱数の生成は、例えば、SDカードのCPRM処理(デジタルコンテンツの著作権を保護する暗号化技術)に用いる乱数などを使用するとよい。
【0083】
(2)カードの認識を行う際にユーザー選択機能を付加する例
アプリケーションなどに応じてユーザーが特定の種類のカードを優先し、初期設定を行いたい場合が考えられる。その場合、ホスト10上にディップスイッチ等を設けることにより、図1〜図3のカードシステムで説明した各機能に加えて、ユーザーがどのカードを優先し初期設定を行うかを選択できる機能を付加することができる。
【0084】
(3)システム規模に対応してレジストリ領域を選択する例
近年、携帯電話をはじめとするメモリ領域が乏しい組み込みシステム、またPC(Personal Computer)などのハードディスクまで含めると数Gバイトの領域を持つシステムなど、さまざまなシステムにカードインタフェースは搭載されている。そこで、システムの規模に対応して確保するレジストリを選択することも可能である。
【0085】
例えば、メモリ領域が乏しいシステムには、図1における種別カウンタの記憶領域13aと平均待ち時間の記憶領域13bを含んだレジストリ[1]13のみを割り当てる。その場合、16バイトのメモリを使用するだけで、カードの種類を識別する過程と動作電圧を設定する過程の効率化が図れる。また、メモリ領域が豊富なシステムでは、例えば、図1のレジストリ[2]14において、サポートカード数を増やしたりアプリケーション関連情報の記憶領域14cを拡張し、効率化の程度を増すこともできる。
【0086】
以上、本発明者によってなされた発明を実施の形態に基づき具体的に説明したが、本発明は前記実施の形態に限定されるものではなく、その要旨を逸脱しない範囲で種々変更可能であることはいうまでもない。
【産業上の利用可能性】
【0087】
本発明のカードシステムは、例えば、多種のファンクションを持つSDIOカードに対応したホストシステムや、I/O機能とメモリモジュールを備えたコンボカードに対応したホストシステムなどのように、初期設定時に多種類のカードの識別とカードの詳細な情報の取得が必要なホストシステムに適用して特に有益なものであり、これに限らず、例えば、I/Oカードとメモリカードに対応したMS(Memory Stick)ホストシステムや、交換頻度が高いカードに対応したホストシステムなどを含めカードシステム全般に広く適用可能である。
【図面の簡単な説明】
【0088】
【図1】本発明の一実施の形態によるカードシステムにおいて、その構成の一例を示す概略図である。
【図2】図1のカードシステムにおいて、レジストリの構成の一例を示す概略図である。
【図3】図1のカードシステムにおいて、その動作の一例を示す処理フロー図である。
【図4】図1〜図3のカードシステムにおいて、レジストリ[1]に確率分布を適用した場合の構成および動作の一例を説明するための図である。
【図5】本発明の前提として検討した技術のカードシステムにおいて、ホストがカードの種類を識別する過程を示す処理フロー図である。
【図6】本発明の前提として検討した技術のカードシステムにおいて、ホストがカードの動作電圧を設定する過程を示す処理フロー図である。
【図7】本発明の前提として検討した技術のカードシステムにおいて、SDIOカードから情報を取得する際の処理の一例を説明するための図である。
【図8】本発明の前提として検討した技術のカードシステムにおいて、SDカードまたはMMCカードから情報を取得する際の処理の一例を説明するための図である。
【図9】本発明の前提として検討した技術のカードシステムにおいて、SDIOカードの通信モードを設定する際の処理の一例を説明するための図である。
【図10】本発明の前提として検討した技術のカードシステムにおいて、SDカードまたはMMCカードの通信モードを設定する際の処理の一例を説明するための図である。
【符号の説明】
【0089】
10,70,80 ホスト
10a アプリケーション
10b ファイルシステム
10c デバイスドライバ
10d ホストコントローラ
11,71,81 カード
12a コマンド線
12b データ線
13 レジストリ[1]
13a 種別カウンタの記憶領域
13b 平均待ち時間の記憶領域
14 レジストリ[2]
14a カード識別情報の記憶領域
14b カード特性情報の記憶領域
14c アプリケーション関連情報の記憶領域
70a,80a 取得されたカード識別情報
70b,80b 取得されたカード特性情報
70c,80c 取得されたアプリケーション関連情報

【特許請求の範囲】
【請求項1】
複数種類のカードを制御可能なホストを含むカードシステムであって、
前記ホストは、
前記複数種類のカードの中のいずれかの種類のカードが接続された際に、前記接続されたカードの種類を識別し、前記複数種類のカードの接続回数を前記カードの種類毎にカウントする機能と、
前記カードの種類毎にカウントした接続回数を記憶する機能と、
前記カードの種類を識別する際に、前記記憶する機能に格納されているカードの種類毎の接続回数に基づいて、前記複数種類のカードにそれぞれ対応した複数種類の識別コマンドを発行する順番を決定する機能とを有することを特徴とするカードシステム。
【請求項2】
請求項1記載のカードシステムにおいて、
前記識別コマンドを発行する順番を決定する機能は、前記記憶する機能に格納されているカードの種類毎の接続回数が多いものに該当するカードの種類から順番に、前記該当するカードの種類に対応した識別コマンドを発行することを特徴とするカードシステム。
【請求項3】
請求項1または2記載のカードシステムにおいて、
前記カウントする機能と前記識別コマンドを発行する順番を決定する機能は、前記ホストに設けられたデバイスドライバが、前記ホストが備えたコンピュータを用いてプログラム処理を行うことによって実現されることを特徴とするカードシステム。
【請求項4】
カードを制御するホストを含むカードシステムであって、
前記ホストは、
前記カードの初期設定を行う際に、前記カードの動作電圧を設定するコマンドを前記カードに向けて発行する周期を記憶する機能と、
前記カードの動作電圧の設定が完了するまでに要した時間をカウントする機能と、
前記カウントした時間に基づいて前記記憶する機能に格納されている周期を補正する機能とを有することを特徴とするカードシステム。
【請求項5】
複数のカードを制御するホストを含むカードシステムであって、
前記ホストは、
各カードから取得したカード識別情報と前記カード識別情報に対応した各種設定情報を複数のカード分記憶する機能を備え、
カードの初期設定を行う際に、前記初期設定を行うカードから取得したカード識別情報が前記記憶する機能に含まれている場合は、前記カード識別情報に対応して前記記憶する機能に格納されている各種設定情報を用いることで前記カードの初期設定を行い、そうでない場合は、前記初期設定を行うカードから各種設定情報を取得し、前記取得した各種設定情報を前記カード識別情報に対応させて前記記憶する機能に格納することを特徴とするカードシステム。

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図1】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate


【公開番号】特開2006−119963(P2006−119963A)
【公開日】平成18年5月11日(2006.5.11)
【国際特許分類】
【出願番号】特願2004−307985(P2004−307985)
【出願日】平成16年10月22日(2004.10.22)
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
1.Bluetooth
【出願人】(503121103)株式会社ルネサステクノロジ (4,790)
【Fターム(参考)】