(57)【要約】【課題】  ＰＣカードを実装した組み込み機器において、組み込み機器発売時期以降、新たに発売されたＰＣカードに関しても、その発売時期以降に前記新たなカードを使用可能とする。【解決手段】  組み込み機器内部の読み書き可能な領域にドライバを書き込む領域を持ち、さらにネットワークに接続できる事により、そのドライバを必要なときに更新する機能を持つ。【選択図】  図１
2006202108.tif 000002
【特許請求の範囲】
【請求項１】
ＰＣカードもしくはＣＦカードを接続するスロットを有する組み込み機器において、機器内部にカードのクライアントドライバをダウンロードする事が出来る領域を持っている事を特徴とする組み込み機器。
【請求項２】
ＰＣカードもしくはＣＦカードを刺された時に、そのカード用のクライアントドライバを組み込み機器が持っていない場合、ネットワークに接続してさされたカード用のクライアントドライバをダウンロードしてくる事を特徴とする請求項１記載の組み込み機器。
【請求項３】
ダウンロードしてきたクライアントドライバがカードが使用後にすぐに消去する事を特徴とする請求項２記載の組み込み機器。
【請求項４】
ダウンロードしてきたクライアントドライバのうち、使用頻度が低いものから削除を行なう事を特徴とする請求項２記載の組み込み機器。
【請求項５】
ダウンロードしてきたクライアントドライバのうち、最終利用日時の古い物から削除を行なう事を特徴とする請求項２記載の組み込み機器。
【請求項６】
ダウンロードしてきたクライアントドライバの一覧を表示し、保存や削除をユーザーに選ばせる事を特徴とする請求項２記載の組み込み機器。
【発明の詳細な説明】
【技術分野】
【０００１】
ＰＣカードもしくはＣＦカードを持ち、ネットワークに接続する事が出来る組み込み機器に関する。
【背景技術】
【０００２】
従来のＰＣカードやＣＦカードを使用している組み込み機器に関しては、あらかじめＰＣカードコントローラーも１つに決まっており、その組み込み機器で使用されるであろうカードも限定されている為か、ＰＣ等で用いられているＰＣカードソフトウェアと呼ばれる、カードサービス・ソケットサービス・クライアントドライバを用いたシステムではなく、イネーブラと呼ばれるＰＣカードコントローラー限定・ＰＣカードの種類も限定された初期化ルーチンのようなものを使用してる場合が多い。また最近ではＰＣカードソフトウェア（カードサービス・ソケットサービス・クライアントドライバ）を組み込んだシステムも使用されてきてはいるが、組み込み機器では後からドライバを追加する事が基本的にしづらい為に、製品作成時には将来使用されるであろうデバイスドライバをすべて組み込んでしまっておく必要があった。
【０００３】
ここで、組み込み機器などで用いられているＰＣカードソフトウェアについて説明を行なう。ＰＣカードソフトウェアとは、カードサービス・ソケットサービス・クライアントドライバという３つのレイヤから構成されている。ソケットサービスは機種によって異なるハードウェアであるＰＣカードコントローラーの違いを吸収してカードサービスに対して統一したインターフェースを提供している。ソケットサービスはＰＣカードコントローラー等のハードに依存している為に、ＰＣカードコントローラー毎に必要であり、組み込み機器においては通常ＰＣカードコントローラーは一つしか載せていない為、組み込み機器内に一つだけ必要である。カードサービスはシステムが提供しているハードウェアリソースを管理し、ＰＣカードごとに必要なリソースを割り当てるためにクライアントドライバに対して統一したインターフェースを提供している。カードサービス・ソケットサービス・クライアントドライバをコントロールできる為に、組み込み機器ごとに一つだけ存在している。クライアントドライバは使用するＰＣカードごとに必要となるドライバで、カードサービスを利用してＰＣカードに対して設定を行なったりアクセスをする。クライアントドライバは使用されるであろうＰＣカードの機能ごとに必要とされる。
【０００４】
ここで従来の技術におけるカードサービス・ソケットサービスを使用している組み込み機器において、ＰＣカードが刺されたときの制御の流れについて、図２を用いて説明を行なう。
【０００５】
図２は従来の技術の全体の構成図である。２０１〜２０３はハードウェアレイヤで、２０１はＰＣカードである。２０２は組み込み機器につけられたＰＣカード用スロットである。２０３はＰＣカードの制御を行なうＰＣカードコントローラーである。２０４〜２０６はＰＣカードソフトウェアレイヤで、２０４はソケットサービスである。２０５はカードサービスである。２０６はカードサービスに登録されたクライアントドライバである。２０７〜２０８がソフトウェアレイヤで、２０７が組み込み機器を制御しているＯＳであり、２０８がそのＯＳの上にのっているアプリケーションである。２０９〜２１０はＰＣカード内部にあるレジスタやメモリ領域である。２０９はＰＣカードの中にある、ＰＣカードの情報を記述しているＣＩＳ（Card Infomation Structure：カード情報構造）である。２０９はＰＣカード上にあるリソースにアクセスする為に設定を行なう必要があるレジスタ、ＣＣＲ（カードコンフィグレーションレジスタ）である。
【０００６】
次にＰＣカードが組み込み機器に認識され、使用されるようになるまでの制御の流れについて説明する。
【０００７】
まず最初にＰＣカード（２０１）をスロット（２０２）に挿入した時にＰＣカードコントローラー（２０３）からカードサービス（２０５）に対してＰＣカードが挿入された事が通知される。そこでカードサービス（２０５）はクライアントドライバ（２０６）に対してＰＣカード（２０１）が挿入されたことを通知する。ＰＣカード（２０１）の挿入によって処理を渡されたクライアントドライバ（２０６）はカードサービスファンクションを使用して、ＰＣカード（２０１）内にあるＣＩＳ（２０９）を取得する。ＣＩＳ（２０９）の中にはそのカードの種類・メーカー等の情報が記述されている。クライアントドライバ（２０６）は取得したＣＩＳ（２０９）を元に、挿入されたＰＣカード（２０１）が自分の対象カードかを認識する。ＣＩＳを調べた結果、挿入されたカード（２０１）が自分が処理するカードでなかった場合、何も行なわずにカードサービス（２０５）に処理を戻す。カードサービス（２０５）はカードサービスに登録されている次のクライアントドライバ（２０６）にＰＣカード（２０１）の挿入を通知し、その後、カードサービス（２０５）はクライアントドライバ（２０６）に処理を渡す。上記処理を繰り返し行う。ここでもし、クライアントドライバ（２０６）がＣＩＳ（２０９）を取得して調べた結果、自分が処理するカードだった場合、カードサービス（２０５）に対して挿入されたＰＣカード（２０１）の初期化処理を行なう。
【０００８】
次にＰＣカードの初期化処理の流れを述べる。カードサービス（２０５）はクライアントドライバ（２０６）からの要求を受けて要求されたハードウェアリソースが割り当て可能かどうかを確認する。確認の結果、割り当てが可能であればソケットサービスファンクションを使ってソケットサービス（２０４）に指示を送る。ソケットサービス（２０４）はカードサービス（２０５）の指示を受けて対象ＰＣカード（２０１）に対してハードウェアリソースを割り当てる為にＰＣカード（２０１）内のＣＣＲ（２１０）の設定を行なう。カードサービス（２０５）はＰＣカード（２０１）に対するハードウェアリソースの割り当てを確認後、クライアントドライバ（２０６）に処理を戻す。以降はクライアントドライバ（２０６）が直接ＰＣカード（２０１）に対して処理を行なうようになる。
【０００９】
その後、組み込み機器で動作しているアプリケーション（２０８）は組み込み機器で使用されているＯＳ（２０７）を経由しクライアントドライバ（２０６）を経由してＰＣカード（２０１）を使用することが可能となる。
【００１０】
以上により、カードサービス・ソケットサービスを利用している組み込み機器はＰＣカードを組み込み機器で使用することが出来るようになる。
【００１１】
又、別の従来例としては、特許文献１をあげることが出来る。
【特許文献１】特開２００１−１２５８６５号公報
【発明の開示】
【発明が解決しようとする課題】
【００１２】
しかし組み込み機器では、ＰＣカードのクライアントドライバが組み込み機器の内部に入った形で作成している為に、組み込み機器の発売以降に発売されたＰＣカードに関してはクライアントドライバを持っていないために、そのＰＣカードを使用することが出来なかった。また、カードサービスには、基本的なジャンルごとの標準的なドライバを代用品として使用する機能を持ってはいるのであるが、あくまでも最低限の機能を保証するだけであり、個々のＰＣカードごとに持っている高度な機能に関しては使用することが出来なかった。
【課題を解決するための手段】
【００１３】
そこで本発明では、組み込み機器内部の読み書き可能な領域にドライバを書き込む領域を持ち、さらにネットワークに接続できる事により、そのドライバを必要なときに更新する機能を持つことにより、新しいＰＣカードもしくはＣＦカードを刺された時、そのＰＣカード用のクライアントドライバが組み込み機器本体内部に無いときには、ネットワークに接続して最新のドライバを入手することにより組み込み機器よりも後に発売された新しいのカード製品を使用することが出来る。
【発明の効果】
【００１４】
以上の実施例で説明したとおり、本発明により、組み込み機器において、組み込み機器発売以降に発売されたＰＣカードに関しても、クライアントドライバをサーバーよりダウンロードを行う事によって使用する事が可能となる。
【発明を実施するための最良の形態】
【００１５】
本発明の実施の一形態を以下の順序で図面を参照しながら説明する。まずは本発明の全体の構成図である図１を用いて本発明のＰＣカードを機器で利用する時の、内部での動作について説明を行なう。
【００１６】
本実施例の全体の構成図が図１である。１０１〜１０３はハードウェアレイヤで、１０１はＰＣカードである。１０２は組み込み機器につけられたＰＣカード用スロットである。１０３はＰＣカードの制御を行なうＰＣカードコントローラーである。
【００１７】
１０４〜１０６，１１１，１１２はＰＣカードソフトウェアレイヤで、１０４はソケットサービスである。１０５はカードサービスである。１０６はカードサービスに登録されたクライアントドライバである。１１１は組み込み機器内に存在しているクライアントドライバの管理を行っているクライアントドライバ差し替えサービスである。１１２はダウンロードされたクライアントドライバである。
【００１８】
１０７〜１０８がソフトウェアレイヤで、１０７が組み込み機器を制御しているＯＳであり、１０８がそのＯＳの上にのっているアプリケーションである。
【００１９】
１０９〜１１０はＰＣカード内部にあるレジスタやメモリ領域である。１０９はＰＣカードの中にある、ＰＣカードの情報を記述しているＣＩＳ（Card Infomation Structure：カード情報構造）である。１０９はＰＣカード上にあるリソースにアクセスする為に設定を行なう必要があるレジスタ、ＣＣＳ（カードコンフィグレーションレジスタ）である。
【００２０】
そして１１３，１１４はネットワークハードウェアレイヤーである。１１３はネットワークに接続する通信モジュールで最新のクライアントドライバのダウンロードを行う。１１４はネットワーク上にある最新のクライアントドライバが置いてあるサーバーである。
【００２１】
次に本実施例におけるＰＣカードが組み込み機器に認識され、使用されるようになるまでの制御の流れについて説明する。
【００２２】
まず最初にＰＣカード（１０１）をスロット（１０２）に挿入した時にＰＣカードコントローラー（１０３）からカードサービス（１０５）に対してＰＣカードが挿入された事が通知される。
【００２３】
そこでカードサービス（１０５）は、カードサービスに登録されているクライアントドライバに順番に通知を行う。今回の場合にはまず最初に登録されていたクライアントドライバ（１０６）に対してＰＣカード（１０１）が挿入されたことを通知したとする。
【００２４】
ここで、ＰＣカード（１０１）の挿入によって処理を渡されたクライアントドライバ（１０６）はカードサービスファンクションを使用して、ＰＣカード（１０１）内にあるＣＩＳ（１０９）を取得し、挿入されたＰＣカードのクライアントドライバに適合するかを判断する。そこで、挿入されたＰＣカードのクライアントドライバになれない場合にはカードサービスに処理を返し、カードサービスは、上記処理をカードサービスに登録されたクライアントドライバを登録された順番に処理を渡して調べていく。
【００２５】
従来の実施例では順番にクライアントドライバが調べていき、どのクライアントドライバも挿入されたＰＣカードのクライアントドライバに適合しない場合には、挿入されたＰＣカードを使用することが出来なかった。しかし、本実施例では、ＰＣカード（１０１）の挿入によって処理を渡されたクライアントドライバ（１０６）が適合しないためにカードサービスに処理を返した時に、カードサービスに登録されたクライアントドライバをすべてチェック済みだった場合には、カードサービスはクライアント差し替えサービス（１１１）に対して処理を渡す。
【００２６】
ここでクライアント差し替えサービスのアルゴリズムに関して図３も併用して説明を行う。ここで処理を渡された（３０１）クライアント差し替えサービス（１１１）はカードサービスファンクションを使用してＰＣカード（１０１）内にあるＣＩＳ（１０９）を取得する（３０２）。クライアント差し替えサービスは、取得したＣＩＳ（１０９）の情報から現在すでにダウンロードされているクライアントドライバが使用できかを判定する（３０３）。もしすでにダウンロードされているクライアントドライバが使用できる場合にはそのままクライアントドライバに処理を渡す（３０５）のであるが、そうでない場合、必要とされるクライアントドライバの情報を入手したクライアント差し替えサービス（１１１）は通信モジュール（１１３）を使用して、ネットワーク上に存在する最新のクライアントドライバを保持しているサーバー（１１４）にアクセスを行い、挿入されたＰＣカード（１０１）に適合するクライアントドライバを探し出し、組み込み機器内に用意されている書き込みが行える領域にダウンロードを行う（３０４）。その後、クライアント差し替えサービスは処理をクライアントに渡す（３０５）。
【００２７】
ダウンロードされたクライアントドライバ（１１２）はその後、クライアント差し替えサービス（１１１）を経由してカードサービスから処理を受け取り、カードサービスファンクションを使用して、ＰＣカード（１０１）内にあるＣＩＳ（１０９）を取得した後に、カードサービス（１０５）に対して挿入されたＰＣカード（１０１）の初期化処理を行なう。このＰＣカード初期化処理は、まずカードサービス（１０５）がクライアントドライバ（１１２）からの要求を受けて要求されたハードウェアリソースが割り当て可能かどうかを確認する。確認の結果、割り当てが可能であればソケットサービスファンクションを使ってソケットサービス（１０４）に指示を送る。ソケットサービス（１０４）はカードサービス（１０５）の指示を受けて対象ＰＣカード（１０１）に対してハードウェアリソースを割り当てる為にＰＣカード（１０１）内にあるＣＣＲ（１１０）に対して設定を行なう。カードサービス（１０５）はＰＣカード（１０１）に対するハードウェアリソースの割り当てを確認後、クライアントドライバ（１１２）に処理を戻す。以降はクライアントドライバ（１１２）が直接ＰＣカード（１０１）に対して処理を行なうようになる。
【００２８】
その後、組み込み機器で動作しているアプリケーション（１０８）は組み込み機器で使用されているＯＳ（１０７）を経由しクライアントドライバ（１１２）を経由してＰＣカード（１０１）を使用することが可能となる。
【００２９】
以上の様に本発明により、組み込み機器内にダウンロード領域を設け、サーバーに組み込み機器発売以降に発売されたＰＣカード用のクライアントドライバを用意しておくことによって、組み込み機器においても機器の発売日以降に発売されたＰＣカードを使用することが出来るようになる。
【００３０】
（その他の実施例）
次に本発明の他の実施例を述べる。この実施例の特徴を表す図を図４に示し、本発明の全体の構成図である図４を用いて本発明のＰＣカードを機器で利用する時の、内部での動作について説明を行なう。
【００３１】
本実施例の全体の構成図が図４である。４０１〜４０３はハードウェアレイヤで、４０１はＰＣカードである。４０２は組み込み機器につけられたＰＣカード用スロットである。４０３はＰＣカードの制御を行なうＰＣカードコントローラーである。
【００３２】
４０４〜４０６，４１１，４１２はＰＣカードソフトウェアレイヤで、４０４はソケットサービスである。４０５はカードサービスである。４０６はカードサービスに登録されたクライアントドライバである。４１１はクライアントドライバの追加処理を行っているクライアントドライバ差し替えクライアントである。４１２はダウンロードされたクライアントドライバである。
【００３３】
４０７〜４０８がソフトウェアレイヤで、４０７が組み込み機器を制御しているＯＳであり、４０８がそのＯＳの上にのっているアプリケーションである。
【００３４】
４０９〜４１０はＰＣカード内部にあるレジスタやメモリ領域である。４０９はＰＣカードの中にある、ＰＣカードの情報を記述しているＣＩＳ（Ｃａｒｄ  Ｉｎｆｏｍａｔｉｏｎ  Ｓｔｒｕｃｔｕｒｅ：カード情報構造）である。４０９はＰＣカード上にあるリソースにアクセスする為に設定を行なう必要があるレジスタ、ＣＣＳ（カードコンフィグレーションレジスタ）である。
【００３５】
そして４１３，４１４はネットワークハードウェアレイヤーである。４１３はネットワークに接続する通信モジュールで最新のクライアントドライバのダウンロードを行う。４１４はネットワーク上にある最新のクライアントドライバが置いてあるサーバーである。
【００３６】
次に図５を用いてこの実施例におけるクライアント差し替えクライアントのアルゴリズムを説明する。カードサービスから処理を渡された（３０１）クライアント差し替えクライアントはまず、ＰＣカード内のＣＩＳ情報を取得し（３０２）、ＰＣカードが必要としているクライアントドライバを知る。その後、現在すでに取得しているクライアントが使用できるかを判断し（３０３）、出来ない場合には通信モジュールを使用してサーバーにアクセスを行い、ＰＣカードが必要としているクライアントドライバをダウンロードする（３０４）。その後クライアント差し替えクライアントは、ダウンロードしてきたクライアントドライバをカードサービスに対して登録を行った後（３０５）。処理をカードサービスに返す（３０６）。この処理の為にダウンロードされたクライアントドライバは最初からカードサービスに登録されているクライアントドライバと同じように扱われ、ダウンロードされたクライアントドライバに処理が移って来ることにより、無事にＰＣカードを使用することが出来るようになる。
【００３７】
この実施例では、実施例１では、クライアント差し替えサービスがクライアントドライバとカードサービスの間で仲介を行い、クライアント差し替えサービスを経由してカードサービスに対してアクセスを行っていたのであるが、今回の実施例ではクライアント差し替えクライアントは１クライアントとして働き、ダウンロードされたクライアントドライバの情報だけを管理している。また、新しいクライアントドライバはダウンロードして後にカードサービスに登録されて使用されるために、通常のクライアントドライバと同じ構造で作られればいいことになる。
【００３８】
また、実施例１や他の実施例に関してさらに以下の様な様々な実装例が考えられる。
【００３９】
・今回刺されたＰＣカードに関してのダウンロードしたクライアントドライバを、カードの使用が終了した所で削除を行なう。これにより、クライアントドライバを書き込む領域は１つのクライアントドライバの分だけ用意すればよい。
【００４０】
・刺されたＰＣカードのクライアントドライバのダウンロードを行なう前の段階で、以前ダウンロードされたクライアントドライバの中で使用頻度が少ないクライアントドライバを削除し、その領域に今回刺されたＰＣカードのクライアントドライバをダウンロードする方法も考えられる。これによりクライアントドライバを書き込んでおく領域は最初から増える事が無い為、組み込み機器の様に書き込み領域を少なくしたい機器向けである。
【００４１】
・刺されたＰＣカードのクライアントドライバのダウンロードを行なう前の段階で、以前にダウンロードされたクライアントドライバの中で最終利用日時の一番古いクライアントドライバを削除し、その領域に今回指されたＰＣカードのクライアントドライバを書き込む方法も考えられる。この方法もクライアントドライバを書き込んでおく領域が最初から増える事が無い為、書き込み領域を出きるだけ少なくしたい組み込み機器向けである。
【００４２】
・また刺されたＰＣカードのクライアントドライバのダウンロードを行なう段階で、以前にダウンロードされたクライアントドライバの一覧を表示し、ユーザーにその一覧の中から削除するクライアントドライバを選択してもらい、選択されたクライアントドライバを削除し、その領域に今回指されたＰＣカードのクライアントドライバを書き込む方法も考えられる。この方法もクライアントドライバを書き込んでおく領域が最初から増える事が無い為、書き込み領域を出きるだけ少なくしたい組み込み機器向けである。またユーザーが自分で必要とするクライアントドライバを選択する事ができる。
【図面の簡単な説明】
【００４３】
【図１】本実施例１における組み込み機器のＰＣカードソフトウェアの構成図である。
【図２】従来の技術における組み込み機器のＰＣカードソフトウェアの構成図である。
【図３】本実施例１における組み込み機器のアルゴリズムである。
【図４】本実施例２における組み込み機器のＰＣカードソフトウェアの構成図である。
【図５】本実施例２における組み込み機器のアルゴリズムである。
【符号の説明】
【００４４】
１０１  ＰＣカード
１０２  スロット
１０３  ＰＣカードコントローラー
１０４  ソケットサービス
１０５  カードサービス
１０６  クライアントドライバ
１０７  リアルタイムＯＳ
１０８  アプリケーション
１０９  ＣＩＳ（Card Infomation Structure  カード情報構造）
１１０  ＣＣＲ  カードコンフィギュレーションレジスタ
１１１  クライアントドライバ差し替えサービス
１１２  ダウンロードされたクライアントドライバ
１１３  通信モジュール
１１４  サーバー
２０１  ＰＣカード
２０２  スロット
２０３  ＰＣカードコントローラー
２０４  ソケットサービス
２０５  カードサービス
２０６  クライアントドライバ
２０７  リアルタイムＯＳ
２０８  アプリケーション
２０９  ＣＩＳ（Card Infomation Structure  カード情報構造）
２１０  ＣＣＲ  カードコンフィギュレーションレジスタ
３０１〜３０５  実施例１のアルゴリズム
４０１  ＰＣカード
４０２  スロット
４０３  ＰＣカードコントローラー
４０４  ソケットサービス
４０５  カードサービス
４０６  クライアントドライバ
４０７  リアルタイムＯＳ
４０８  アプリケーション
４０９  ＣＩＳ（Card Infomation Structure  カード情報構造）
４１０  ＣＣＲ  カードコンフィギュレーションレジスタ
４１１  クライアントドライバ差し替えクライアント
４１２  クライアントドライバ
４１３  通信モジュール
４１４  サーバー
５０１〜５０７  実施例２におけるアルゴリズム
【図１】
2006202108.tif 000003
【図２】
2006202108.tif 000004
【図３】
2006202108.tif 000005
【図４】
2006202108.tif 000006
【図５】
2006202108.tif 000007