(57)【要約】【課題】  複数のＯＳを備えたＩＣカードにおいて、ＯＳ間で発行処理を委任することができるＩＣカードを提供する。【解決手段】  デュアルインターフェースＩＣカード１には、ＯＳとして、接触ＯＳ２０と非接触ＯＳ２１とが実装されている。コモンカーネル３０は、接触ＯＳ２０と非接触ＯＳ２１とで共通のカーネルである。接触ＯＳ２０および非接触ＯＳ２１の双方にアクセス可能なコモンカーネル３０が、コモンバッファ１４２に発行データを格納する機能、コモンバッファ１４２に格納された発行データを処理する機能を備えた接触委任モジュール３００、非接触委任モジュール３０１を備えることで、接触ＯＳ２０は非接触ＯＳ２１に、そして、非接触ＯＳ２１は接触ＯＳ２０に、コモンカーネル３０を介して発行処理を委任することができる。【選択図】      図３
2007087120.tif 000002
【特許請求の範囲】
【請求項１】
複数の通信手段を備え、それぞれの通信手段で実行される複数のオペレーティングシステム（ＯＳ）を実装したＩＣカードにおいて、
前記ＩＣカードは、揮発性メモリに設けられ、前記ＩＣカードに実装されたすべてのＯＳからアクセス可能なＩ／Ｆ領域に発行データを格納する機能、前記Ｉ／Ｆ領域に格納された発行データをＯＳに受け渡し処理する機能を備えた委任モジュールを、実装されているＯＳごとに備え、
前記ＩＣカードが動作している前記通信手段に対応したＯＳである主ＯＳが端末装置から受信した発行コマンドの処理をできないときは、前記主ＯＳの前記委任モジュールが前記Ｉ／Ｆ領域に、前記発行データとして前記発行コマンドの一部もしくはすべてを格納し、前記主ＯＳから指示された他のＯＳの前記委任モジュールが、前記Ｉ／Ｆ領域に格納された前記発行データをＯＳに受け渡し処理することで、前記主ＯＳが他のＯＳに発行処理を委任することを特徴とするＩＣカード。
【請求項２】
請求項１の発明に記載のＩＣカードにおいて、前記ＩＣカードに備えられた複数の前記通信手段には、接触型の手段と非接触型の手段とを少なくとも含むことを特徴とするＩＣカード。
【請求項３】
複数の通信手段を備え、それぞれの通信手段で実行される複数のオペレーティングシステム（ＯＳ）を実装したＩＣカードにおいて、前記ＩＣカードが動作している前記通信手段に対応したＯＳである主ＯＳが、他のＯＳに発行処理を委任する発行委任方法であって、
端末装置から受信した発行コマンドの処理が可能であるか、前記主ＯＳが判断するステップ、
前記主ＯＳが発行データの処理をできないときは、前記主ＯＳが、発行データとして、前記発行コマンドの一部もしくはすべてを、揮発性メモリに設けられ、前記ＩＣカードに実装されたすべてのＯＳからアクセス可能なＩ／Ｆ領域に格納するステップ、
前記Ｉ／Ｆ領域に格納された前記発行データが、前記主ＯＳから委任された前記主ＯＳ以外のＯＳに受け渡されるステップ、
前記主ＯＳから委任されたＯＳが、前記Ｉ／Ｆ領域に格納された前記発行データを処理し、発行処理のレスポンスデータを前記Ｉ／Ｆ領域に格納するステップ、
前記Ｉ／Ｆ領域に格納されている前記レスポンスデータが、前記ＩＣカードが動作している前記通信手段で前記端末装置に送信されるステップ、
を備えていることを特徴とする前記発行委任方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数の通信Ｉ／Ｆを有し、それぞれの通信Ｉ／Ｆに対応した複数のＯＳを実装したＩＣカードに関し、更に詳しくは、このようなＩＣカードを発行処理する技術に関する。
【背景技術】
【０００２】
金融用途で普及している接触ＩＣカードの機能と、交通用途（定期券）やドアゲートシステムで普及している非接触ＩＣカードの機能とを兼ね備えたデュアルインターフェースＩＣカードが普及しつつある。接触ＩＣカードの機能と非接触ＩＣカードの機能を一枚のＩＣカードに集約することで、ＩＣカードのユーザは複数枚のＩＣカードを所持することから開放され、また、カード発行会社からすると、ＩＣカードの発行枚数が抑えられることで、ＩＣカードの発行に係るコストを削減できる。
【０００３】
好ましくは、デュアルインターフェースＩＣカードに実装されたアプリケーションは、基幹となる一つのオペレーティングシステム(OＳ: Operating System)によって管理されることが望ましい。しかし、接触通信インターフェース(IF: InterFace)で動作するアプリケーションの規格（例えば、ファイルシステム）と、非接触Ｉ／Ｆで動作するアプリケーションの規格とがそれぞれ異なると、一枚のデュアルインターフェースＩＣカードには、接触Ｉ／Ｆで動作するＯＳと非接触Ｉ／Ｆで動作するＯＳとを実装しなければならないケースが生じる。
【０００４】
特許文献１では、上述したデュアルインターフェースＩＣカードのように、複数の通信Ｉ／Ｆを有し、それぞれの通信Ｉ／Ｆに対応した複数のＯＳを実装したＩＣカードにおいて、ＩＣカードが動作している通信Ｉ／Ｆに対応したＯＳを速やかに選択・起動することができる発明が開示されている。
【０００５】
特許文献１の発明を用いることで、デュアルインターフェースＩＣカードに代表される複数の通信Ｉ／Ｆを有するＩＣカードの利便性は高められる。しかし、このようなＩＣカードを発行する時は、通信Ｉ／Ｆがそれぞれ異なるリーダライタを複数備えたＩＣカード発行機を用い、それぞれの通信Ｉ／Ｆに対応したＯＳごとに、個別にデータを書き込まなければならない。
【０００６】
製造するＩＣカードの通信Ｉ／Ｆが定まっていれば、通信Ｉ／Ｆに対応した幾つかのリーダライタのみをＩＣカード発行機は備えていればよいが、新規の通信Ｉ／ＦをＩＣカードが備えるときは、ＩＣカード発行機も新規に購入もしくは改造しなければならず、ＩＣカード製造者が所有する設備が肥大してしまう問題があった。加えて、それぞれの通信Ｉ／Ｆに対応したＯＳごとに、個別にデータを書き込むことで、発行処理時間がかかってしまう問題もあった。
【特許文献１】特開２００４−３１８３０７号公報
【発明の開示】
【発明が解決しようとする課題】
【０００７】
そこで、このような問題を鑑みて、本発明は、デュアルインターフェースＩＣカードに代表される複数の通信Ｉ／Ｆを備え、それぞれの通信Ｉ／Ｆに対応したＯＳが実装されたＩＣカードにおいても、ＩＣカードを発行するときは、一つの通信Ｉ／Ｆを利用するだけで、すべての発行を行うことができるＩＣカードおよびＩＣカードプログラムを提供することを目的とする。
【課題を解決するための手段】
【０００８】
上述の課題を解決する第１の発明は、複数の通信手段を備え、それぞれの通信手段で実行される複数のオペレーティングシステム（ＯＳ）を実装したＩＣカードにおいて、前記ＩＣカードは、揮発性メモリに設けられ、前記ＩＣカードに実装されたすべてのＯＳからアクセス可能なＩ／Ｆ領域に発行データを格納する機能、前記Ｉ／Ｆ領域に格納された発行データをＯＳに受け渡し処理する機能を備えた委任モジュールを、実装されているＯＳごとに備え、前記ＩＣカードが動作している前記通信手段に対応したＯＳである主ＯＳが端末装置から受信した発行コマンドの処理をできないときは、前記主ＯＳの前記委任モジュールが前記Ｉ／Ｆ領域に、前記発行データとして前記発行コマンドの一部もしくはすべてを格納し、前記主ＯＳから指示された他のＯＳの前記委任モジュールが、前記Ｉ／Ｆ領域に格納された前記発行データをＯＳに受け渡し処理することで、前記主ＯＳが他のＯＳに発行処理を委任することを特徴とする。
【０００９】
好ましくは、第１の発明に記載のＩＣカードにおいて、前記ＩＣカードに備えられた複数の前記通信手段には、接触型の手段と非接触型の手段とを少なくとも含むことを特徴とする。
【００１０】
また、第２の発明は、複数の通信手段を備え、それぞれの通信手段で実行される複数のオペレーティングシステム（ＯＳ）を実装したＩＣカードにおいて、前記ＩＣカードが動作している前記通信手段に対応したＯＳである主ＯＳが、他のＯＳに発行処理を委任する発行委任方法であって、前記発行委任方法は、
端末装置から受信した発行コマンドの処理が可能であるか、前記主ＯＳが判断するステップ、
前記主ＯＳが発行データの処理をできないときは、前記主ＯＳが、発行データとして、前記発行コマンドの一部もしくはすべてを、揮発性メモリに設けられ、前記ＩＣカードに実装されたすべてのＯＳからアクセス可能なＩ／Ｆ領域に格納するステップ、
前記Ｉ／Ｆ領域に格納された前記発行データが、前記主ＯＳから委任された前記主ＯＳ以外のＯＳに受け渡されるステップ、
前記主ＯＳから委任されたＯＳが、前記Ｉ／Ｆ領域に格納された前記発行データを処理し、発行処理のレスポンスデータを前記Ｉ／Ｆ領域に格納するステップ、
前記Ｉ／Ｆ領域に格納されている前記レスポンスデータが、前記ＩＣカードが動作している前記通信手段で前記端末装置に送信されるステップ、
を備えていることを特徴とする。
【発明の効果】
【００１１】
上述した本発明によれば、デュアルインターフェースＩＣカードに代表される複数の通信Ｉ／Ｆを備え、それぞれの通信Ｉ／Ｆに対応したＯＳが実装されたＩＣカードにおいて、ＩＣカードが前記委任モジュールを備えることで、各々のＯＳは他のＯＳに前記委任モジュールを介して発行処理を委任することができ、ＩＣカードを発行するときは、一つの通信Ｉ／Ｆを利用するだけで、すべての発行を行うことができる。
【発明を実施するための最良の形態】
【００１２】
ここから、本発明をデュアルインターフェースＩＣカードに適用した実施の形態について、図を参照しながら詳細に説明する。図１は、本発明が適用されたデュアルインターフェースＩＣカード１（以下、デュアルカード１と略す）を説明する図である。
【００１３】
図１（ａ）に示したように、デュアルカード１とはキャッシュカードサイズのカードで、デュアルカード１には、接触通信Ｉ／Ｆと非接触通信Ｉ／Ｆの２つの通信Ｉ／Ｆを有するＩＣチップ１０が実装されている。デュアルカード１が接触通信Ｉ／Ｆで動作するときは、ＩＣカードのコンタクト端子１ａが利用され、非接触通信Ｉ／Ｆで動作するときは、デュアルカード１に内蔵されたアンテナ１ｂが利用される。
【００１４】
図２は、デュアルカード１に実装されるＩＣチップ１０のブロック図である。ＩＣチップ１０には、中央演算装置１１（Central Processing Unit、以下ＣＰＵと記す）に、バス１７を介して、読み出し専用メモリ１６（Read Only Memory、以下ROMと記す）、書換え可能なメモリとしてＥＥＰＲＯＭ１５（Electrically Erasable Programmable Read-Only Memoryの略）、揮発性メモリとしてランダムアクセスメモリ１４（Random Access Memory、以下ＲＡＭと記す）、図外の端末装置とデータを通信するための接触Ｉ／Ｆ回路１２および非接触Ｉ／Ｆ回路１３が接続されている。
【００１５】
なお、本発明は、ＩＣチップ１０の仕様を限定するものではなく、デュアルカード１の用途に適した仕様のＩＣチップ１０を選択することができる。例えばＲＯＭ１６およびＥＥＰＲＯＭ１５の容量については限定しないし、書換え可能なメモリは強誘電体メモリまたはフラッシュメモリ等のＥＥＰＲＯＭ以外のメモリであっても構わない。またＩＣチップ１０はタイマー回路、暗号演算回路等の図示していない他のデバイスを備えていても構わない。
【００１６】
図３は、図１で示したデュアルカード１のソフトウェアブロック図である。デュアルカード１には、ＯＳとして、デュアルカード１が接触Ｉ／Ｆで動作しているときに動作するＯＳである接触ＯＳ２０と、デュアルカード１が非接触Ｉ／Ｆで動作しているときに動作するＯＳである非接触ＯＳ２１との２つのＯＳが実装されている。
【００１７】
それぞれのＯＳは、図外の端末装置から受信したコマンドを処理するためのプログラムの集まりであるコマンドライブラリを有し、このコマンドライブラリの中には、少なくともデュアルカード１の発行時にのみ使用される発行コマンドが含まれている。今後、接触ＯＳ２０が有するコマンドライブラリを接触コマンドＬＩＢ２００(LIB: Library)と呼び、非接触ＯＳ２１が有するコマンドライブラリを非接触コマンドＬＩＢ２０１と記す。
【００１８】
図３で示したコモンカーネル３０とは、接触ＯＳ２０および非接触ＯＳ２１の中核となるプログラムで、接触ＯＳ２０および非接触ＯＳ２１の双方から利用されるプログラムである。コモンカーネル３０は、図２で示したＩＣチップ１０のハードウェア資源を制御する機能を有し、ＲＡＭ１４・ＥＥＰＲＯＭ１５にデータを書込む機能、端末装置とデータ通信するため機能などを、接触ＯＳ２０および非接触ＯＳ２１に提供する。
【００１９】
デュアルカード１では、コモンカーネル３０は、端末装置とデータ通信するためのプログラムとして、接触Ｉ／Ｆ回路１２を利用し、コンタクト端子１ａを介して、ＩＳＯ／ＩＥＣ７８１６などの規格に準じた接触データ通信を行う接触通信モジュール３１０と、非接触Ｉ／Ｆ回路１３を利用し、アンテナ１ｂを介して、ＩＳＯ／ＩＥＣ１４４４３などの規格に準じた非接触データ通信を行う非接触通信モジュール３１１とを備える。
【００２０】
本発明に係るデュアルカード１において特筆すべき点は、コモンカーネル３０は、揮発性メモリであるＲＡＭ１４に設けられたコモンバッファ１４２に発行データを格納する機能、コモンバッファ１４２に格納された発行データを処理する機能を備えた委任モジュールを、実装されているＯＳごとに備えている点である。図３では、接触ＯＳ２０用の委任モジュールを接触委任モジュール３００と記し、非接触ＯＳ２１用の委任モジュールを非接触委任モジュール３０１と記している。
【００２１】
上述しているように、接触ＯＳ２０および非接触ＯＳ２１の双方にアクセス可能なコモンカーネル３００が、接触委任モジュール３０１および非接触委任モジュール３１１を備えることで、接触ＯＳ２０は非接触ＯＳ２１に、そして、非接触ＯＳ２１は接触ＯＳ２０に、コモンカーネル３０を介して発行処理を委任することができる。
【００２２】
図４は、図１で示したデュアルカード１のメモリマップである。図４に示したように、ＩＣチップ１０のＲＯＭ１６には、コモンカーネル３０、接触ＯＳ２０および非接触ＯＳ２１のプログラムコードが、それぞれ異なる物理アドレス空間上にマッピングされ、ＩＣチップ１０のＥＥＰＲＯＭ１５は、接触ＯＳ２０が利用する接触データ領域１５０と非接触ＯＳ２１が利用する非接触データ領域１５１とが、それぞれ異なる物理アドレス空間上にマッピングされている。
【００２３】
ＩＣチップ１０のＲＡＭ１４は、少なくとも発行時に接触ＯＳ２０が利用する専用の領域である接触ワーク領域１４０と、少なくとも発行時に非接触ＯＳ２１が利用する専用の領域である非接触ワーク領域１４１とが設けられている。加えて、ＲＡＭ１４には、接触通信モジュール３１０および非接触通信モジュール３１１が、端末装置から受信したコマンドを一時的に記憶するための領域である送受信バッファ１４３と、上述のコモンバッファ１４２が設けられている。
【００２４】
ＲＡＭ１４に設けられたコモンバッファ１４２とは、接触委任モジュール３００と非接触委任モジュール間でデータ（発行データとレスポンスデータ）を受け渡すときに利用されるバッファである。
【００２５】
例えば、接触ＯＳ２０から非接触ＯＳ２１に発行処理の委任があると、接触委任モジュール３００によって、少なくとも、非接触ＯＳ２１用の発行コマンドを含む発行データが、コモンバッファ１４２に格納され、発行データが非接触委任モジュール３０１に受け渡される。そして、コモンバッファ１４２に格納された発行データを非接触ＯＳ２１が処理したときのレスポンスデータは、非接触委任モジュール３０１によって、コモンバッファ１４２に格納され、接触委任モジュール３００に受け渡される。
【００２６】
ここから、図５を用いて、デュアルカード１の発行手順について詳細に説明する。図５は、接触Ｉ／Ｆでデュアルカード１を発行するときの手順を示したフロー図である。この手順の最初のステップＳ１は、デュアルカード１が接触Ｉ／Ｆで活性化されるステップである。このステップでは、デュアルカード１はＩＳＯ／ＩＥＣ７８１６の手順に従い、端末装置によって活性化され、端末装置からのコマンド受信待ちの状態になる。
【００２７】
次に実行されるＬ１からＬ２まのループは、デュアルカード１の発行処理が発行完了になるまで、繰り返し実行されるループである。
【００２８】
このループの最初のステップＳ２は、接触Ｉ／Ｆで動作しているデュアルカード１が端末装置から発行コマンドを受信するステップである。このステップでは、デュアルカード１のコモンカーネル３０に備えられた接触通信モジュール３１０が端末装置から発行コマンドを受信し、受信した発行コマンドはＲＡＭ１４の送受信バッファ１４３に格納される。
【００２９】
次のステップＳ３は、接触コマンドＬＩＢ２００が、送受信バッファ１４３に格納された発行コマンドの処理が可能であるか確認するステップである。このステップでは、コモンカーネル３０から接触ＯＳ２０に処理が移行し、接触ＯＳ２０の接触コマンドＬＩＢ２００は、ＲＡＭ１４の送受信バッファ１４３に格納された発行コマンドのコマンド識別子などを参照し、受信した発行コマンドが処理できるコマンドであるか確認する。
【００３０】
ステップＳ３で、接触コマンドＬＩＢ２００が、送受信バッファ１４３に格納された発行コマンドの処理をできる場合はステップＳ４に進み、できない場合はステップＳ１０に進み、発行コマンドの処理を非接触ＯＳ２１に委任するステップＳ１０の発行委任処理が実行される。
【００３１】
送受信バッファ１４３に格納された発行コマンドの処理を接触コマンドＬＩＢ２００ができる場合に実行されるステップＳ４は、送受信バッファ１４３に格納された発行コマンドを、接触コマンドＬＩＢ２００が処理するステップである。このステップでは、接触コマンドＬＩＢ２００の発行コマンドを処理するプログラムが、ＲＡＭ１４の接触ワーク領域１４０を利用し、ＥＥＰＲＯＭ１５の接触データ領域１５０に初期データの書き込み、もしくは、初期ファイルの生成などの処理を行い、デュアルカード１は、接触ＯＳ２０によって発行される。
【００３２】
ステップＳ４の次に実行されるステップＳ５は、接触ＯＳ２０が発行コマンドのレスポンスデータを送受信バッファ１４３に格納するステップである。このステップでは、接触コマンドＬＩＢ２００は処理した発行コマンドのレスポンスデータを送受信バッファ１４３に格納し、処理をコモンカーネル３０に移行する。
【００３３】
ステップＳ５の次に実行されるステップＳ６は、接触コマンドＬＩＢ２００が処理した発行コマンドのレスポンスデータが送信されるステップである。このステップでは、コモンカーネル３０の接触通信モジュール３１０が、送受信バッファ１４３に格納されたレスポンスデータを端末装置に送信する。
【００３４】
ここから、図６を参照しながら、図５のステップＳ１０で実行される発行委任処理について詳細に説明する。図６は、発行委任処理の詳細な手順を示したフロー図である。この手順の最初のステップＳ１１は、接触委任モジュール３００がコモンバッファ１４２に発行データを格納するステップである。このステップでは、送受信バッファ１４３に格納されている発行コマンドの一部またはすべてを発行データとして、接触委任モジュール３００はコモンバッファ１４２に格納する。なお、コモンバッファ１４２に格納される発行データには、少なくとも、非接触ＯＳ２１用の発行コマンドが含まれる。
【００３５】
次のステップＳ１２は、接触委任モジュール３００が接触委任モジュール３０１に、コモンバッファ１４２に格納された発行データの処理を委任するステップである。このステップでは、コモンカーネル３０の接触委任モジュール３００は、コモンカーネル３０の非接触委任モジュール３０１を呼出し、コモンバッファ１４２に格納された発行データの処理を非接触委任モジュール３０１に委任する。
【００３６】
次のステップＳ１３は、非接触委任モジュール３０１が非接触コマンドＬＩＢ２０１を呼出し、コモンバッファ１４２に格納された発行データを処理するステップである。このステップでは、非接触コマンド処理ＬＩＢ２０１の発行コマンドを処理するプログラムが、ＲＡＭ１４の非接触ワーク領域１４１を利用し、ＥＥＰＲＯＭ１５の非接触データ領域１５１にデータの書き込み、初期ファイルの生成などの、コモンバッファ１４２に格納された発行データに対応する処理を行い、デュアルカード１は、非接触ＯＳ２１によって発行される。
【００３７】
次のステップＳ１４は、非接触委任モジュール３０１が、コモンバッファ１４２に格納された発行データを処理したときのレスポンスデータをコモンバッファ１４２に格納するステップである。このステップでは、非接触委任モジュール３０１は、非接触コマンドＬＩＢ２０１から、このレスポンスデータを受け取り、レスポンスデータをコモンバッファ１４２に格納する。
【００３８】
次のステップＳ１５は、接触委任モジュール３００が、コモンバッファ１４２に格納されたレスポンスデータを送受信バッファ１４３にコピーするステップである。このステップでは、非接触委任モジュール３０１から接触委任モジュール３００に処理が戻り、接触委任モジュール３００は、コモンバッファ１４２のレスポンスデータを送受信バッファ１４３にコピーする。
【００３９】
次のステップＳ１６は、送受信バッファ１４３に格納されたレスポンスデータが、端末装置に送信されるステップである。このステップでは、接触通信モジュール２００が、送受信バッファ１４３に格納されたレスポンスデータを、端末装置に送信する。このステップをもって、発行委任処理は終了する。
【００４０】
これまで述べた実施の形態は、一つの実施の形態にしかすぎない。これまで述べた実施の形態では、図１に示したように、ＩＣカードをキャッシュカードサイズのデュアルカード１としているが、ＩＣカードは、ＩＣカードのＩＣチップ近傍を短冊状に切り取った形状のＳＩＭ（Subscriber Identity Module）であっても構わない。
【００４１】
加えて、これまで述べた実施の形態においては、ＩＣカードに備えらている通信Ｉ／Ｆを接触Ｉ／Ｆと非接触Ｉ／Ｆとしているが、本発明は何ら通信Ｉ／Ｆに依存するものではない。接触Ｉ／Ｆは、ＩＳＯ／ＩＥＣ７８１６規格に準拠した通信でもよく、また、ＵＳＢ規格に準拠した通信でもよい。
【図面の簡単な説明】
【００４２】
【図１】デュアルカードを説明する図。
【図２】デュアルカードに実装されるＩＣチップのブロック図。
【図３】デュアルカードのソフトウェアブロック図。
【図４】デュアルカードのメモリマップ。
【図５】接触Ｉ／Ｆでデュアルカードを発行するときの手順を示したフロー図。
【図６】発行委任処理の詳細な手順を示したフロー図。
【符号の説明】
【００４３】
１  デュアルカード
１０  ＩＣチップ
１４  ＲＡＭ
１４２  コモンバッファ
１４３  送受信バッファ
１５  ＥＥＰＲＯＭ
１６  ＲＯＭ
２０  接触ＯＳ
２００  接触コマンドＬＩＢ
２１  非接触ＯＳ
２０１  非接触コマンドＬＩＢ
３０  コモンカーネル
３００  接触委任モジュール
３０１  非接触委任モジュール
３１０  接触通信モジュール
３１１  非接触委任モジュール
【図１】
2007087120.tif 000003
【図２】
2007087120.tif 000004
【図３】
2007087120.tif 000005
【図４】
2007087120.tif 000006
【図５】
2007087120.tif 000007
【図６】
2007087120.tif 000008