説明

携帯可能電子装置および携帯可能電子装置の制御方法

【課題】複数の外部インターフェース25、26で並行して通信を行うことができ、複数の外部インターフェース25、26での通信に応じた複数の処理を並行して行うことができる。
【解決手段】複数の外部インターフェース25、26を有するICカード10では、一方の外部インターフェース25(26)での通信開始要求を受けた際に他方の外部インターフェース26(25)が通信中である場合、通信中の外部インターフェース26(25)での通信に応じた処理を実行しているロジカルチャネルとは異なるロジカルチャネルで通信開始要求を受けた外部インターフェース25(26)での通信に応じた処理を行うようにしたものである。

【発明の詳細な説明】
【技術分野】
【0001】
この発明は、たとえば、種々の通信方式で外部装置とのデータ通信を行うための複数の外部インターフェースとCPUなどの制御素子とを有するICカードなどの携帯可能電子装置および携帯可能電子装置の制御方法に関する。
【背景技術】
【0002】
近年、複数の外部インターフェースを有するICカードが提案されている。たとえば、物理的に外部装置と接触してデータ通信を行う接触型の外部インターフェースと非接触(無線)で外部装置とのデータ通信を行う非接触型の外部インターフェースとを有するICカードが提案されている。このような複数の外部インターフェースを有するICカードでは、どの外部インターフェースでのアクセスに応じて動作するかが曖昧である。現状、複数の外部インターフェースを有するICカードでは、たとえば、先にアクセスされた外部インターフェースでのデータ通信を優先して動作したり、予め設定されている優先度が高い外部インターフェースでのデータ通信を優先して動作したりする想到される。しかしながら、現状では、上記のような複数の外部インターフェースを有するICカードでは、それらの外部インターフェースによる通信に応じた処理の実現方法が曖昧である。
【0003】
また、従来のICカードでは、新たな処理を開始する場合、ワーキングメモリ上のワーク領域をクリアするようになっている。このため、従来のICカードでは、新たな処理を開始する場合、それまでの処理状況(カレント情報等)がクリアされるようになっている。すなわち、従来のICカードでは、第1の外部インターフェースでの通信に応じて動作している途中で第2の外部インターフェースでの通信に応じて動作する場合、第1の外部インターフェースでの通信に応じた動作状態(処理内容)は、クリアされてしまうという問題がある。たとえば、非接触型の外部インターフェースでの通信に応じて動作している途中で接触型の外部インターフェースで外部装置からアクセスされた場合、従来のICカードでは、接触型の外部インターフェースでの外部装置との通信に応じて動作するためのイニシャル処理として、非接触型の外部インターフェースでの通信に応じた動作状態(処理結果)がクリアされてしまう。
【非特許文献1】ISO7816−3
【非特許文献2】ISO7816−4
【非特許文献3】ISO14443−3
【発明の開示】
【発明が解決しようとする課題】
【0004】
この発明の一形態では、上記のような問題点を解決するものであり、複数の外部インターフェースを有する場合であっても、各外部インターフェースでの通信に応じた各処理を効率的に実施することができる携帯可能電子装置および携帯可能電子装置の制御方法を提供することを目的する。
【課題を解決するための手段】
【0005】
この発明の一形態としての携帯可能電子装置は、外部装置との通信を行う第1の通信手段と、前記第1の通信手段とは異なる通信方式で外部装置との通信を行う第2の通信手段と、第1の記憶領域と前記第1の記憶領域とは異なる第2の記憶領域とを有する記憶手段と、前記第1の通信手段による外部装置との通信に応じた処理中に前記第2の通信手段による外部装置との通信に応じた処理を行う場合、前記第1の通信手段による外部装置との通信に応じた処理を前記記憶手段における前記第1の記憶領域を用いて実行し、前記第2の通信手段による外部装置との通信に応じた処理を前記記憶手段における前記第2の記憶領域を用いて実行する制御手段とを有する。
【0006】
この発明の一形態としての携帯可能電子装置の制御方法は、外部装置との通信を行う第1の通信手段と、前記第1の通信手段とは異なる通信方式で外部装置との通信を行う第2の通信手段と、前記第1あるいは第2の通信手段での通信に応じた処理に用いられる記憶領域が設けられている記憶手段とを有する携帯可能電子装置の制御方法であって、前記第1の通信手段による外部装置との通信に応じた処理を前記記憶手段における第1の記憶領域を用いて実行し、前記第1の通信手段による外部装置との通信に応じた処理中に前記第2の通信手段による外部装置との通信に応じた処理を行う場合、前記第2の通信手段による外部装置との通信に応じた処理を前記記憶手段における前記第1の記憶領域とは異なる第2の記憶領域を用いて実行する。
【発明の効果】
【0007】
この発明の一形態によれば、複数の外部インターフェースを有する場合であっても、各外部インターフェースでの通信に応じた各処理を効率的に実施することができる携帯可能電子装置及び携帯可能電子装置の制御方法を提供できる。
【発明を実施するための最良の形態】
【0008】
以下、本発明の実施の形態について図面を参照して説明する。
図1は、本実施の形態に係るICカードシステムの構成例を概略的に示すものである。
図1に示すICカードシステムは、ICカード10と外部装置12とから構成されている。上記ICカード10は、上記外部装置12からの要求に応じて種々の処理を行うようになっている。また、図1に示す例では、上記ICカード10と外部装置12とは、3つの通信方式によるデータ通信を行うためのインターフェースをそれぞれ具備している。ここでは、複数の通信方式によるデータ通信あるいは複数種類の通信方式によるデータ通信に応じた複数の処理を並行して実行できるようになっていることを想定する。
【0009】
次に、ICカード10の構成について説明する。
図1に示す例では、上記ICカード10は、制御素子21、プログラムメモリ22、ワーキングメモリ23、データメモリ24、第1外部インターフェース(I/F)25、第2外部インターフェース(I/F)26などを有している。また、上記ICカード10は、カード状の本体10a内に、制御素子21、プログラムメモリ22、ワーキングメモリ23、データメモリ24、第1外部インターフェース25、第2外部インターフェース26などを具備したモジュール10bが内蔵されている。また、上記モジュール10bは、1つあるいは複数のICチップなどにより構成されている。
【0010】
上記制御素子21は、当該ICカード10全体の制御を司るものである。上記制御素子21は、CPUなどにより構成される。上記制御素子21は、上記プログラムメモリ22あるいは上記データメモリ24に記憶されているプログラムを実行することにより種々の機能を実現している。
【0011】
上記プログラムメモリ22は、たとえば、マスクROM(リード・オンリ・メモリ)などの書換え不可能な固定メモリで構成されている。上記プログラムメモリ22は、上記制御素子にICカードとしての各種の基本的な処理を実行させるためのサブルーチンを備えた制御プログラムや制御データなどを記憶している。たとえば、上記プログラムメモリ22には、外部装置12から与えられるコマンドに応じた処理を実現するためのプログラムなどが記憶されている。また、上記プログラムメモリ22には、後述するロジカルチャネルごとに割当てた上記ワーキングメモリ23における記憶領域(ワーク領域)を規定するワーク領域設定テーブル22aを有している。なお、上記ワーク領域設定テーブル22aは、上記データメモリ24に設けるようにしても良い。
【0012】
上記ワーキングメモリ23は、制御素子21が処理を行なう際の処理データなどを一時的に保持するための作業用メモリである。上記ワーキングメモリ23は、たとえば、RAM(ランダム・アクセス・メモリ)などの揮発性メモリで構成されている。上記ワーキングメモリ23は、アドレスにより記憶領域が指定されるようになっている。
【0013】
また、上記ワーキングメモリ23には、通信動作フラグテーブル23aとチャネル制御情報テーブル23bとが設けられる。上記通信動作フラグテーブル23aには、上記第1外部インターフェース25および上記第2外部インターフェース26による通信状況を示す情報が記憶される。上記チャネル制御情報テーブル23bには、各ロジカルチャネルの制御情報として、ロジカルチャネルごとの使用状況を示す情報が記憶される。なお、上記通信動作フラグテーブル23aおよび上記チャネル制御情報テーブル23bは、上記データメモリ24に設けるようにしても良い。
【0014】
上記データメモリ24は、書換え可能な不揮発性メモリで構成される。たとえば、上記データメモリ24は、EEPROM(エレクトリカリ・イレーザブル・アンド・プログラマブル・リード・オンリ・メモリ)あるいはフラッシュROMなどの書換え可能な不揮発性メモリで構成される。上記データメモリ24には、各種のデータが記憶される。たとえば、上記データメモリ24には、当該ICカード10の運用形態に応じたデータなどが記憶される。
【0015】
上記第1外部インターフェース25および上記第2外部インターフェース26は、それぞれ異なる通信方式で外部とのデータ通信(データの入出力)を行うためのインターフェースである。上記第1外部インターフェース25及び上記第2外部インターフェース26には、種々の通信方式に準じたインターフェースが適用可能である。ここでは、上記第1外部インターフェース25は、接触型ICカードのインターフェースであり、上記第2外部インターフェース26は、非接触型ICカードのインターフェースであるものとする。
【0016】
すなわち、上記第1外部インターフェース25は、外部装置12と物理的に接触してデータ通信を行うためのインターフェースである。この場合、上記第1外部インターフェース25は、外部装置12と物理的に接触するためのコンタクト部などにより構成される。上記第1外部インターフェース25は、外部装置12と物理的に接触するコンタクト部を介して、データの入出力および電源やクロックパルスの入力を行うようになっている。なお、上記第1外部インターフェース25によるデータ通信及びデータ通信に応じた各種の処理は、たとえば、ISO/IECで規定されているものを想定する。
【0017】
また、上記第2外部インターフェース26は、非接触(無線)で外部装置とのデータ通信を行うためのインターフェースである。この場合、上記第2外部インターフェース26は、アンテナおよび変復調回路などにより構成される。上記第2外部インターフェース26は、外部装置12から送信された変調波を受信し、受信した変調波を復調して制御素子21へ供給する。また、上記第2外部インターフェース26は、制御素子21から供給された外部装置12へ送信するデータを変調し、変調した変調波を送信する。また、上記第
2外部インターフェース26では、受信した変調波から内部回路に供給するための電源やクロックパルスを生成するようになっている。なお、上記第2外部インターフェース26によるデータ通信及びデータ通信に応じた各種の処理も、たとえば、ISO/IECで規定されているものを想定する。
【0018】
なお、本実施の形態は、複数の外部インターフェースを有するICカードであれば適用できる。このため、ICカード10には、第1外部インターフェースあるいは第2外部インターフェースとして種々の外部インターフェースが適用できる。さらに、本実施の形態は、3つ以上の外部インターフェースを有するICカードにも適用できる。たとえば、本実施の形態は、第1外部インターフェース、第2外部インターフェース、あるいは、第3外部インターフェースとして、USB(ユニバーサル・シリアル・バス)のインターフェースを設けたICカードにも適用できる。
【0019】
次に、外部装置12の構成について説明する。
図1に示す構成例では、外部装置12は、制御装置31、第1のインターフェース装置32、第2のインターフェース装置33などを有している。上記制御装置31は、たとえば、電子計算機本体などにより構成される。上記制御装置31では、上記第1のインターフェース装置32あるいは上記第2のインターフェース装置33を介して上記ICカード10とのデータ通信を行うことにより、上記ICカード10に対して種々の処理を施すものである。
【0020】
上記第1のインターフェース装置32は、上記ICカード10の第1外部インターフェース25による上記ICカード10とのデータ通信を行うための装置である。ここでは、上記ICカード10の第1外部インターフェース25として接触型ICカードのインターフェースを想定しているため、上記第1のインターフェース装置32は、接触型ICカード用のリーダライタ(接触式ICカードR/W)などで構成されるものとする。
【0021】
上記第2のインターフェース装置33は、上記ICカード10の第2外部インターフェース26によるICカード10とのデータ通信を行うための装置である。ここでは、上記ICカード10の第2外部インターフェース26として非接触型ICカードのインターフェースを想定しているため、上記第2のインターフェース装置33は、非接触型ICカード用のリーダライタ(非接触式ICカードR/W)などで構成されるものとする。
【0022】
なお、図1に示すICカードシステムの構成例では、1つの外部装置12が第1のインターフェース装置と第2の外部インターフェース装置とを有している構成している。但し、本実施の形態は、ICカード10と複数の外部装置を有するICカードシステムについても適用できる。たとえば、ICカード10が、第1外部インターフェースに対応するインターフェースを有する第1の外部装置と第2外部インターフェースに対応するインターフェースを有する第2の外部装置と並行して通信処理を行って、各外部装置から要求されたコマンドをそれぞれ並行して実行するような形態であっても実施可能である。
【0023】
次に、上記通信動作フラグテーブル23aについて説明する。
図2は、上記通信動作フラグテーブル23aの構成例を示す図である。
図2に示すように、上記通信動作フラグテーブル23aには、各外部インターフェース25及び26による通信状況(各外部インターフェースの使用状況)を示す情報(フラグ)を記憶するようになっている。図2に示す通信動作フラグテーブル23aでは、第1外部インターフェース25に対応づけて、第1外部インターフェース25による通信状況を示す情報(フラグ)が記憶されるようになっている。また、図2に示す通信動作フラグテーブル23aでは、第2外部インターフェース26に対応づけて、第2外部インターフェース26による通信状況を示す情報(フラグ)が記憶されるようになっている。
【0024】
また、図2に示す通信動作フラグテーブル23aでは、各外部インターフェースによる通信が行われてない状態(未使用状態)を「0」とし、各外部インターフェースによる通信が行われている状態(使用状態)を「1」としている。従って、図2に示す通信動作フラグテーブル23aにおいて第1外部インターフェース25に対応づけたフラグが「1」である場合、第1外部インターフェース25による通信が行われている状態であることを示している。また、図2に示す通信動作フラグテーブル23aにおいて第2外部インターフェース26に対応づけたフラグが「1」である場合、第2外部インターフェース26による通信が行われている状態であることを示している。
【0025】
上記通信動作フラグテーブル23aは、上記制御素子21による制御に応じて書換えられる。外部装置12から第1外部インターフェース25(あるいは第2外部インターフェース26)を介した通信が開始された場合、上記制御素子21は、第1外部インターフェース25(あるいは第2外部インターフェース26)に対応づけたフラグを「1」に設定する。また、外部装置12との第1外部インターフェース25(あるいは第2外部インターフェース26)を介した通信を終了する場合、上記制御素子21は、第1外部インターフェース25(あるいは第2外部インターフェース26)に対応づけたフラグを「0」に設定する。
上記のような通信動作フラグテーブル23aによれば、常時、当該ICカード10と外部との通信状況が判別できる。たとえば、一方の外部インターフェース(第2外部インターフェース26あるいは第1外部インターフェース25)による通信を開始する場合、上記制御素子21は、他方の外部インターフェース(第1外部インターフェース25あるいは第2外部インターフェース26)による通信が行われている状態であるか否かを直ちに判別することができる。
【0026】
次に、上記チャネル制御情報テーブル23bについて説明する。
図3は、上記チャネル制御情報テーブル23bの構成例を示す図である。
上記チャネル制御情報テーブル23bには、各ロジカルチャネルの使用状況と各ロジカルチャネルで実行中の処理がどの外部インターフェースによる通信に応じた処理であるかが記憶される。上記チャネル制御情報テーブル23bでは、各ロジカルチャネルごとに、未使用であるか、第1外部インターフェースによる通信に応じた処理に使用中であるか、第2外部インターフェースによる通信に応じた処理に使用中であるかを示す情報が記憶されるようになっている。
【0027】
たとえば、図3に示すチャネル制御情報テーブル23bにおいて「0」が設定されているロジカルチャネルは、未使用の状態であることを示している。また、図3に示すチャネル制御情報テーブル23bにおいて「1」が設定されているロジカルチャネルは、第1外部インターフェース25による外部との通信に応じた処理を実行中であることを示している。また、図3に示すチャネル制御情報テーブル23bにおいて「2」が設定されているロジカルチャネルは、第2外部インターフェース26による外部との通信に応じた処理を実行中であることを示している。
【0028】
上記のようなチャネル制御情報テーブル23bによれば、上記制御素子21では、各ロジカルチャネルでの処理状況(各ロジカルチャネルの使用状況)を直ちに判別できる。たとえば、一方の外部インターフェース(第2外部インターフェース26あるいは第1外部インターフェース25)による外部との通信に応じた処理をあるロジカルチャネルで実行している場合、上記制御素子21は、他方の外部インターフェース(第1外部インターフェース25あるいは第2外部インターフェース26)による外部との通信に応じた処理を実行することができるロジカルチャネルを直ちに判別することができる。
【0029】
次に、上記ワーク領域設定テーブル22aについて説明する。
図4は、上記ワーク領域設定テーブル22aの構成例を示す図である。
上記ワーク領域設定テーブル22aには、各ロジカルチャネルでの処理に使用されるワーキングメモリ23における領域(ワーク領域)の設定情報が記憶される。上記チャネル制御情報テーブル23bでは、各ロジカルチャネルに対応づけて、各ロジカルチャネルでの処理に使用するワーク領域をワーキングメモリ23のアドレスなどにより指定するようになっている。
【0030】
たとえば、図4に示すワーク領域設定テーブル22aでは、ロジカルチャネル#0のワーク領域がワーキングメモリ23における100〜199番地、ロジカルチャネル#1のワーク領域がワーキングメモリ23における200〜299番地、ロジカルチャネル#2のワーク領域がワーキングメモリ23における300〜399番地、ロジカルチャネル#3のワーク領域がワーキングメモリ23における400〜499番地に、それぞれ設定されている。上記制御素子21では、上記ワーク領域設定テーブル22aを参照し、各ロジカルチャネルでの処理に使用するワーク領域を判別するようになっている。
【0031】
なお、上記ワーク領域設定テーブル22aは、上記データメモリ24に設けるようにしても良い。この場合、上記ワーク領域設定テーブル22aは、上記制御素子21の制御により動的に各ロジカルチャネルのワーク領域が設定されるようにしても良い。たとえば、各ロジカルチャネルでの処理内容に応じて、上記制御素子21が各ロジカルチャネルのワーク領域を変更するようにしても良い。
【0032】
次に、ICカード10におけるロジカルチャネルの概念について詳細に説明する。
上記ICカード10におけるロジカルチャネルとは、ISO/IEC7816−4で規定されているものである。上記ロジカルチャネルは、概略的に言えば、当該ICカード10において、上記制御素子21が各種の処理を実行可能な論理上のチャンネルである。上記ICカード10では、上記制御素子21が、各ロジカルチャネルごとに各種の処理を並列的に実施することができる。このため、上記ICカード10では、各ロジカルチャネルでの各処理内容(たとえば、カレント情報等)を保持するようになっている。
【0033】
一般に、1つの外部インターフェースだけを具備しているICカードでは、外部装置がロジカルチャネルを指定しない場合、デフォルトのロジカルチャネル(たとえば、ロジカルチャネル#0)で処理が実行される。このため、外部装置は、デフォルト以外のロジカルチャネルを使用して処理を実行させる場合、使用するロジカルチャネルを指定したマネージチャネル(ManageChannel)コマンドをICカード10に与えるようになっている。なお、本実施の形態では、ICカード10が4個のロジカルチャネル(#0、#1、#2、#3)をサポートしているものとする。さらに、デフォルトのロジカルチャネルとしてのロジカルチャネル(#0)は、常時使用可能で、ロジカルチャネル(#1、#2、#3)は、manage channelコマンドに応じた処理などにより使用するロジカルチャネルをオープンする処理(使用可能な状態にする処理)を行う必要があるものとする。
【0034】
また、ISO/IECでは、外部装置がICカード10に与えるコマンド(各種の処理を要求するコマンド)として、CLA、INS、P1、P2、Leなどにより構成されるコマンドを規定している。たとえば、上記ManageChannelコマンドも、CLA、INS、P1、P2、Leにより構成されるコマンドとして、ISO/IEC7816−4で規定されている。
【0035】
図5は、ISO/IEC7816−4で規定されているManageChannelコマンドのフォーマットを示す図である。また、図6は、ManageChannelコマンドにおけるCLAの構成を示す図である。図7は、ManageChannelコマンドにおけるP1およびP2の構成を示す図である。
【0036】
すなわち、ISO/IEC7816−4で規定されているManageChannelコマンドは、図5に示すように、CLA、INS、P1、P2、Leにより構成されている。
ISO/IEC7816−4で規定されているManageChannelコマンドのCLAは、1バイト(8ビット)のデータ(CLAバイト)で構成される。
【0037】
また、ManageChannelコマンドのCLAバイトでは、第1ビット(b1)及び第2ビット(b2)は、当該コマンドのロジカルチャネル番号を指定するものである。すなわち、図7に示すように、CLAバイトの第2ビット(b2)および第1ビット(b1)により使用するロジカルチャネル番号を表示する。したがって、「00」、「01」、「10」、「11」の最大4個のロジカルチャネル番号が設定可能である。本実施の形態では、「b2、b1」が「00」、「01」、「10」、「11」である場合、ロジカルチャネル番号「♯0」、「♯1」、「♯2」、「♯3」を指定するものとする。
【0038】
また、CLAバイトの第3ビット(b3)及び第4ビット(b4)は、セキュアメッセージング機能の指示ビット(SMデータ)である。なお、本実施の形態では、「b4、b3」が「00」であるものとする。CLAバイトの第5ビット(b5)、第6ビット(b6)、第7ビット(b7)及び第8ビット(b8)は、CLAコードと呼ばれ、コマンドのランクを示すデータである。例えば、図5に示すように、CLAコードが「0000」(CLAバイトが「0X」)である場合、ISOに準拠するコマンドであることを示し、CLAコードが「0000」でない場合、ISOに準拠しないコマンド(ISO以外のコマンド)であることを示している。
【0039】
なお、ISO/IEC7816−4で規定されている各種のコマンドのCLAも、図5に示すように構成されるものが多い。これらのコマンドのCLAバイトでは、図6に示すManageChannelコマンドのCLAバイトと同様に、b2−b1でロジカルチャネル番号を指定するようになっている。たとえば、ロジカルチャネルのデフォルトが「#0」であれば、CLAのb2−b1を「00」としたコマンドでは、デフォルトのロジカルチャネルでの処理をICカードに対して要求することが可能となる。
【0040】
また、ManageChannelコマンドのP1及びP2も、それぞれ1バイト(8ビット)のデータ(P1バイト及びP2バイト)で構成される。ManageChannelコマンドでは、図7に示すように、P1バイトおよびP2バイトにて、ロジカルチャネルの割付や各ロジカルチャネルのクローズを指定するようになっている。たとえば、ロジカルチャネルの割付を要求するManageChannelコマンドでは、図7に示すように、P1バイトの各ビット(b8−b1)とP2バイトの各ビット(b8−b1)を全て「0」とするようになっている。また、ロジカルチャネル(「#1」、「#2」、「#3」)のクローズを要求するManageChannelコマンドでは、図7に示すように、P1バイトの第8ビット(b8)を「1」とし、P2バイトの第1及び第2ビット(b2−b1)でクローズするロジカルチャネル(「#1」、「#2」、「#3」)のロジカルチャネル番号(「01」、「10」、「11」)を指定し、それ以外の各ビットを「0」とするようになっている。
【0041】
次に、上記ICカード10の動作について説明する。
上記ICカード10の上記制御素子21は、常時、各外部インターフェース(第1外部インターフェース25あるいは第2外部インターフェース26)により外部装置からの通信開始要求を受信したか否かを監視している。この状態において、ICカード10が何れかの外部インターフェース(第1外部インターフェース25あるいは第2外部インターフェース26)により外部装置12からの通信開始要求を受けたものとする(ステップS11、YES)。
【0042】
すると、上記ICカード10の制御素子21は、まず、上記通信動作フラグテーブル23aをチェックすることにより、通信開始要求を受けた外部インターフェース以外で通信中の外部インターフェースが有るか否かを判断する(ステップS12)。言い換えれば、上記ステップS12において、上記制御素子21は、通信中の外部インターフェースが存在するか否かと、通信中の外部インターフェースがある場合には通信開始要求を受けた外部インターフェースのみが通信中であるか否かを判断している。
【0043】
上記判断により通信開始要求を受けた外部インターフェース以外で通信中の外部インターフェースが無いと判断した場合(つまり、通信開始要求を受けた外部インターフェースのみが通信中である場合、あるいは、通信中の外部インターフェースが無いと判断した場合)(ステップS12、NO)、上記制御素子21は、ワーキングメモリ23を初期化する処理を行う(ステップS13)。ここでは、ワーキングメモリ23の初期化処理として、上記制御素子21は、チャネル制御情報テーブル23bにおけるチャネル制御情報をクリアし、かつ、ワーキングメモリ23における各ロジカルチャネルのワーク領域をクリアする。
【0044】
上記ワーキングメモリ23の初期化が完了すると、上記制御素子21は、上記通信動作フラグテーブル23aにおける通信開始要求を受けた外部インターフェースの通信動作フラグを「1」にセットする(ステップS14)。たとえば、上記第1外部インターフェース25により通信開始要求を受けた場合、上記制御素子21は、上記通信動作フラグテーブル23aにおける第1外部インターフェース25の通信動作フラグを通信中であることを示す「1」とする。通信開始要求を受けた外部インターフェースの通信動作フラグを「1」にセットすると、上記制御素子21は、通信開始要求を受けた外部インターフェースによる通信開始処理を行う(ステップS15)。
【0045】
たとえば、通信を開始する外部インターフェースがISO/IEC7816−3で規定されている接触型ICカード用の外部インターフェース(例えば、第1外部インターフェース25)であれば、上記制御素子21は、ISO/IEC7816−3で規定されている通信プロトコルに従った処理手順で初期応答データを外部装置12へ送信する処理を行う。この初期応答データを送信した後、上記ICカード10は、接触型ICカード用の外部インターフェース(例えば、第1外部インターフェース25)により接触型ICカードとしての動作が可能となる(接触型ICカード用の外部インターフェースで受信するISO/IEC7816−4で規定されるコマンドに応じた処理が可能な状態となる)。
【0046】
また、通信を開始する外部インターフェースがISO/IEC14443−3で規定されているタイプBの非接触型ICカード用の外部インターフェース(たとえば、第2外部インターフェース26)であれば、上記制御素子21は、ISO/IEC14443−3で規定されている通信プロトコルに従った処理手順で状態移行動作(idle→Ready Requested→Ready Declared→Active)を行う。この状態移行動作によって、アクティブ状態となると、上記ICカード10は、タイプBの非接触型ICカードとしての動作が可能となる(タイプBの非接触型ICカード用の外部インターフェースで受信するISO/IEC7816−4で規定されるコマンドに応じた処理が可能な状態となる)。
【0047】
また、通信開始要求を受けた外部インターフェースによる通信開始処理が行われた場合あるいは通信開始要求を受けた外部インターフェースの通信動作フラグを「1」にセットした場合、上記制御素子21は、上記チャネル制御情報テーブル23bに、デフォルトのロジカルチャネル(ここでは、ロジカルチャネル#0とする)のチャネル制御情報として、通信開始要求を受けた外部インターフェース(通信開始処理を行った外部インターフェース)で使用中であることを示す情報をセットする(ステップS16)。
【0048】
上記チャネル制御情報テーブル23bにおけるデフォルトのロジカルチャネル(ロジカルチャネル#0)を通信開始要求を受けた外部インターフェースで使用中にセットすると、上記制御素子21は、デフォルトのロジカルチャネル(ロジカルチャネル#0)のワーク領域を用いて、通信開始要求を受けた外部インターフェースによる通信に応じた処理(つまり、当該外部インターフェースで入入力するコマンドに応じた処理)を行う(ステップS17)。
【0049】
なお、以降の処理において上記外部装置12からManageChannelコマンドでロジカルチャネルの割付が要求されない場合、上記制御素子21は、当該外部インターフェースでの通信に応じた処理をデフォルトのロジカルチャネルで実行する。但し、上記外部装置12からManageChannelコマンドでロジカルチャネルの割付が要求された場合、上記制御素子21は、上記チャネル制御情報テーブル23bにより未使用のロジカルチャネルの有無を判別する。未使用のロジカルチャネルがある場合、上記制御素子21は、未使用のロジカルチャネルのチャネル制御情報を当該外部インターフェースで使用中として当該ロジカルチャネルのワーク領域をクリアし、当該ロジカルチャネルでの処理を行う。なお、未使用のロジカルチャネルが無い場合、上記制御素子21は、ロジカルチャネルの割付が不可である旨のエラーステータスを外部装置12へ通知する。
【0050】
また、上記ステップS12の判断により通信開始要求を受けた外部インターフェース以外で通信中の外部インターフェースが有ると判断した場合(ステップS12、YES)、上記制御素子21は、通信開始要求を受けた外部インターフェースも通信中であるか否かを判断する(ステップS21)。言い換えれば、上記ステップS21において、上記制御素子21は、通信開始要求を受けた外部インターフェースを含む複数の外部インターフェースが通信中であるか否か判断している。
【0051】
上記判断により通信開始要求を受けた外部インターフェースが通信中でないと判断した場合、つまり、通信開始要求を受けた外部インターフェース以外の外部インターフェースだけが通信中であると判断した場合(ステップS21、NO)、上記制御素子21は、上記通信動作フラグテーブル23aにおいて通信開始要求を受けた外部インターフェースの通信動作フラグを「1」にセットする(ステップS22)。通信開始要求を受けた外部インターフェースの通信動作フラグを「1」にセットすると、上記制御素子21は、当該外部インターフェースによる通信開始の処理を行う(ステップS23)。
【0052】
また、通信開始要求を受けた外部インターフェースによる通信開始処理が行われると、上記制御素子21は、上記チャネル制御情報テーブル23bにより割当て可能なロジカルチャネル(未使用状態のロジカルチャネル)があるか否かを判断する(ステップS24)。このステップ24の処理は、上記ステップS21の判断により通信開始要求を受けた外部インターフェース以外の他の外部インターフェースが通信中である場合の処理である。このため、上記ステップS24の段階において、デフォルトのロジカルチャネルは、既に通信中の他の外部インターフェースで使用されており、さらには、それ以外のロジカルチャネルも使用中である可能性がある。
【0053】
すなわち、上記チャネル制御情報テーブル23bにおいて全てのロジカルチャネルが使用中であれば、上記制御素子21は、割当て可能なロジカルチャネルが無いと判断する(ステップS24、NO)。この場合(ステップS24、NO)、上記制御素子21は、割当て可能なロジカルチャネルな無いため、通信開始要求を受けた外部インターフェースでの通信に応じた処理ができない状況である旨のエラーステータスを外部装置12へ送信する(ステップS25)。
【0054】
また、上記チャネル制御情報テーブル23bにおいて未使用のロジカルチャネルが存在する場合、つまり、割当て可能なロジカルチャネルが存在する場合(ステップS24、YES)、上記制御素子21は、未使用のロジカルチャネルの何れかを通信開始要求を受けた外部インターフェースでの通信に応じた処理に使用するロジカルチャネルとして、オープンするオープン処理を行う(ステップS27)。このオープン処理は、たとえば、割当て可能なロジカルチャネルを指定したManageChannelコマンドに対する処理と、同等な処理を行うことにより実現可能である。
【0055】
たとえば、デフォルトのロジカルチャネル(#0)以外の全てのロジカルチャネル(#1、#2、#3)が未使用である場合、上記制御素子21は、ロジカルチャネル(#1、#2、#3)のうち何れか(たとえば、ロジカルチャネル(#1))を割当てるものとし、当該ロジカルチャネル(#1)をオープンする処理を行う。この場合、上記制御素子21は、ロジカルチャネル(#1)を指定したManageChannelコマンドに対する処理と同等な処理を行う。これにより、上記ICカード10では、上記ロジカルチャネル(#1)が使用可能な状態(オープン)となる。
【0056】
上記オープン処理により通信開始要求を受けた外部インターフェースでの通信に応じた処理に使用するロジカルチャネルをオープンすると、上記制御素子21は、上記チャネル制御情報テーブル23bにおいて、オープンしたロジカルチャネルのチャネル制御情報を通信開始要求を受けた外部インターフェースで使用中にセットする(ステップS27)。なお、上記ステップS22の処理と上記ステップS23の処理と上記ステップS24〜S27の処理とは、任意の順序で実施することが可能である。たとえば、上記ステップS22の処理と上記ステップS24〜S27の処理とを実行した後に、上記ステップS23の処理を行うようにしても良し、上記ステップS24〜S27の処理の後に、上記ステップS22の処理と上記ステップS23の処理とを行うようにしても良い。
【0057】
上記チャネル制御情報テーブル23bにおいて通信開始要求を受けた外部インターフェースに割当てたロジカルチャネル(たとえば、ロジカルチャネル#1)を通信開始要求を受けた外部インターフェースで使用中にセットすると、上記制御素子21は、上記ワーク領域設定テーブル22aを参照して当該ロジカルチャネル(ロジカルチャネル#1)のワーク領域を判断する。通信開始要求を受けた外部インターフェースに割当てたロジカルチャネルのワーク領域を判断すると、上記制御素子21は、当該ロジカルチャネル(ロジカルチャネル#1)のワーク領域を用いて、通信開始要求を受けた外部インターフェースによる通信に応じた処理(つまり、当該外部インターフェースで受信するコマンドに応じた処理)を行う(ステップS28)。
【0058】
なお、この場合、上記制御素子21は、上記チャネル制御情報テーブル23bにおいて通信開始要求を受けた外部インターフェースで使用中にセットしたロジカルチャネル(たとえば、ロジカルチャネル#1)を、当該外部インターフェースでの通信に応じた処理のデフォルトのロジカルチャネルと擬制して処理を行うようにしても良い。これにより、デフォルト以外のロジカルチャネルがICカード内で設定されても、外部装置では、そのロジカルチャネルを意識せずに、当該外部インターフェースを介してコマンドを与えることが可能となる。つまり、外部装置からManageChannelコマンドが与えられなくとも、上記ICカードは、割当たロジカルチャネルで処理を実行できる。
【0059】
また、上記ステップS21の判断により通信開始要求を受けた外部インターフェースも通信中で有ると判断した場合、つまり、通信開始要求を受けた外部インターフェースを含む複数の外部インターフェースが通信中であると判断した場合(ステップS21、YES)、上記制御素子21は、上記チャネル制御情報テーブル23bにより通信開始要求を受けた外部インターフェースで使用しているロジカルチャネルを判別する(ステップS29)。上記ステップS29では、通信開始要求を受けた外部インターフェースも通信中であるため、上記チャネル制御情報テーブル23bには、通信開始要求を受けた外部インターフェースで使用するロジカルチャネルが既に設定されている。
【0060】
通信開始要求を受けた外部インターフェースで使用しているロジカルチャネルを判別すると、上記制御素子21は、上記ワーク領域設定テーブル22aを参照して当該ロジカルチャネルに対応するワーク領域を判別する。当該ロジカルチャネルに対応するワーク領域を判別すると、上記制御素子21は、当該ロジカルチャネルに対応するワーク領域をクリアする処理を行う(ステップS29)。当該ロジカルチャネルに対応するワーク領域をクリアすると、上記制御素子21は、通信開始要求を受けた外部インターフェースによる通信開始処理を行う(ステップS30)。
【0061】
この場合、上記チャネル制御情報テーブル23bでは、通信開始要求を受けた外部インターフェースで使用するロジカルチャネルが既に設定されている。このため、上記制御素子21は、上記チャネル制御情報テーブル23bに設定されている通信開始要求を受けた外部インターフェースで使用中と設定されているロジカルチャネルのワーク領域を用いて当該外部インターフェースでの通信に応じた処理を実行する(ステップS28)。
【0062】
なお、上記した動作例では、一方の外部インターフェースで通信中に他方の外部インターフェースで通信開始要求を受けた場合に、ICカードが、各外部インターフェースでの通信に応じた処理に使用されているロジカルチャネルを示すチャネル制御情報に基づいて、通信開始要求を受けた外部インターフェースにロジカルチャネルを割当てるようにしている。但し、通信を開始する外部インターフェースに割当てるロジカルチャネルは、外部装置がManageChannelコマンドを用いて割り付けをICカードに要求するようにしても良い。これは、外部装置が、ICカードにおけるロジカルチャネルの使用状況(通信を開始する外部インターフェース以外の外部インターフェースでの通信状況)を把握することにより実現可能である。
【0063】
たとえば、図1に示す構成の外部装置では、ICカードに対して一方の外部インターフェースで通信中に他方の外部インターフェースでの通信開始を要求する場合、少なくとも通信中の外部インターフェースで使用しているロジカルチャネル(あるいは、通信開始を要求する外部インターフェース以外の外部インターフェースで通信中であること)を把握している。このため、上記のような外部装置では、別の外部インターフェースで通信開始を要求する場合、ManageChannelコマンドで、通信中の外部インターフェースでの通信に応じた処理に使用していないロジカルチャネルを、通信開始を要求する外部インターフェースでの通信に応じた処理に割当てることを要求することが可能となる。また、上記のような動作は、たとえば、上述した処理手順においてステップS23の直後に、外部装置からICカードへManageChannelコマンドで通信を開始する外部インターフェースでの通信に応じた処理にロジカルチャネルを割当てることを要求することにより実現可能である。
【0064】
上記のように、本実施の形態の複数の外部インターフェースを有するICカードでは、一方の外部インターフェースでの通信開始要求を受けた際に他方の外部インターフェースが通信中である場合、通信中の外部インターフェースとは異なるロジカルチャネルで通信開始要求を受けた外部インターフェースでの通信に応じた処理を行うようにしたものである。これにより、複数の外部インターフェースで並行して通信を行うことができ、複数の外部インターフェースでの通信に応じた複数の処理を並行して行うことができる。
【0065】
さらに、上記ICカードでは、各ロジカルチャネルに予めワーキングメモリにおけるワーク領域をそれぞれ設定しておき、各外部インターフェースでの通信に応じた各処理にそれぞれロジカルチャネルが割当て、各外部インターフェースでの通信に応じた各処理を割り当てたロジカルチャネルに設定されているワーク領域を用いて実行するようにしたものである。これにより、外部装置がロジカルチャネルを指定しなくとも、ICカードでは、規定のロジカルチャネルを用いて各処理を並行して実行することができる。この結果として、複数の外部インターフェースでの通信に応じた処理が効率的に実施できる。
【図面の簡単な説明】
【0066】
【図1】本発明の実施の形態に係るICカードシステムの構成例を概略的に示すブロック図。
【図2】ワーク領域設定テーブルの構成例を示す図。
【図3】通信動作フラグテーブルの構成例を示す図。
【図4】チャネル制御情報テーブルの構成例を示す図。
【図5】ISO/IEC7816−4で規定されているコマンドのフォーマットを示す図。
【図6】CLAバイトのコーディングを説明するための図。
【図7】ManageChannelコマンドにおけるP1及びP2バイトの構成例を説明するための図。
【図8】ICカードの動作を説明するためのフローチャート。
【図9】ICカードの動作を説明するためのフローチャート。
【符号の説明】
【0067】
10…ICカード(携帯可能電子装置)、10a…本体、10b…モジュール、12…外部装置、21…制御素子(制御手段)、22…プログラムメモリ、22a…ワーク領域設定テーブル、23…ワーキングメモリ(記憶手段)、23a…通信動作フラグテーブル(通信状況記憶手段)、23b…チャネル制御情報テーブル(チャネル情報記憶手段)、24…データメモリ、25…第1外部インターフェース(第1の通信手段又は第2の通信手段)、26…第2外部インターフェース(第2の通信手段又は第1の通信手段)、31…制御装置、32…第1のインターフェース装置、33…第2のインターフェース装置

【特許請求の範囲】
【請求項1】
外部装置との通信を行う第1の通信手段と、
前記第1の通信手段とは異なる通信方式で外部装置との通信を行う第2の通信手段と、
第1の記憶領域と前記第1の記憶領域とは異なる第2の記憶領域とを有する記憶手段と、
前記第1の通信手段による外部装置との通信に応じた処理中に前記第2の通信手段による外部装置との通信に応じた処理を行う場合、前記第1の通信手段による外部装置との通信に応じた処理を前記記憶手段における前記第1の記憶領域を用いて実行し、前記第2の通信手段による外部装置との通信に応じた処理を前記記憶手段における前記第2の記憶領域を用いて実行する制御手段と、
を有することを特徴とする携帯可能電子装置。
【請求項2】
前記第1の通信手段および第2の通信手段は、互いに異なる通信方式の非接触型の通信方式で外部装置との通信を行うインターフェース、あるいは、接触型の通信方式で外部装置との通信を行うインターフェースの何れかである、
ことを特徴とする前記請求項1に記載の携帯可能電子装置。
【請求項3】
さらに、前記第1の通信手段による通信状況を示す情報と前記第2の通信手段による通信状況とを示す情報を記憶する通信状況記憶手段を有し、
前記制御手段は、前記第2の通信手段による通信開始要求を受けた場合、前記通信状況記憶手段に記憶されている情報に基づいて前記第1の通信手段が通信中であるか否かを判断し、前記第1の通信手段での外部装置との通信中であると判断した場合、前記第1の通信手段による外部装置との通信に応じた処理を前記記憶手段における前記第1の記憶領域を用いて実行し、前記第2の通信手段による外部装置との通信に応じた処理を前記記憶手段における前記第2の記憶領域を用いて実行する、
ことを特徴とする前記請求項1又は2に記載の携帯可能電子装置。
【請求項4】
前記記憶手段は、前記第1の記憶領域と前記第2の記憶領域とにそれぞれ異なるロジカルチャネルが設定され、
前記制御手段は、前記第1の通信手段による外部装置との通信に応じた処理中に前記第2の通信手段による外部装置との通信に応じた処理を行う場合、前記第1の通信手段による外部装置との通信に応じた処理と前記第2の通信手段による外部との通信に応じた処理とに異なるロジカルチャネルを割当て、割当てたロジカルチャネルが設定されている各記憶領域を用いて各処理を実行する、
ことを特徴とする前記請求項1乃至3に記載の携帯可能電子装置。
【請求項5】
前記制御手段は、前記第2の通信手段による通信開始要求を受けた際に前記第1の通信手段が通信中である場合、前記第1の通信手段による外部装置との通信に応じた処理に割当られているロジカルチャネル以外のロジカルチャネルを前記第2の通信手段による外部装置との通信に応じた処理に割当てる、
ことを特徴とする前記請求項4に記載の携帯可能電子装置。
【請求項6】
さらに、各ロジカルチャネルの使用状況を示す情報を記憶するチャネル情報記憶手段を有し、
前記制御手段は、前記第2の通信手段による通信開始要求を受けた際に前記第1の通信手段が通信中である場合、前記チャネル情報記憶手段に記憶されている情報に基づいて未使用のロジカルチャネルを前記第2の通信手段による外部装置との通信に応じた処理に割当てる、
ことを特徴とする前記請求項5に記載の携帯可能電子装置。
【請求項7】
前記各手段を有するモジュールと、
前記モジュールを内蔵した本体と、
を有することを特徴とする前記請求項1乃至6に記載の携帯可能電子装置。
【請求項8】
外部装置との通信を行う第1の通信手段と、前記第1の通信手段とは異なる通信方式で外部装置との通信を行う第2の通信手段と、前記第1あるいは第2の通信手段での通信に応じた処理に用いられる記憶領域が設けられている記憶手段とを有する携帯可能電子装置の制御方法であって、
前記第1の通信手段による外部装置との通信に応じた処理を前記記憶手段における第1の記憶領域を用いて実行し、前記第1の通信手段による外部装置との通信に応じた処理中に前記第2の通信手段による外部装置との通信に応じた処理を行う場合、前記第2の通信手段による外部装置との通信に応じた処理を前記記憶手段における前記第1の記憶領域とは異なる第2の記憶領域を用いて実行する、
ことを特徴とする携帯可能電子装置の制御方法。
【請求項9】
さらに、前記第1の通信手段による通信状況を示す情報と前記第2の通信手段による通信状況とを示す情報を記憶し、
前記第2の通信手段による通信開始要求を受けた場合、前記第1及び第2の通信手段による通信状況を示す情報に基づいて前記第1の通信手段が通信中であるか否かを判断し、
前記第1の通信手段での外部装置との通信中であると判断した場合、前記第1の通信手段による外部装置との通信に応じた処理は、前記記憶手段における前記第1の記憶領域を用いて実行し、前記第2の通信手段による外部装置との通信に応じた処理は、前記記憶手段における前記第2の記憶領域を用いて実行し、
前記第1の通信手段での外部装置との通信中でないと判断した場合、前記第2の通信手段による外部装置との通信に応じた処理は、前記記憶手段における前記第1の記憶領域を用いて実行する、
ことを特徴とする前記請求項8に記載の携帯可能電子装置の制御方法。
【請求項10】
さらに、前記第1の記憶領域と前記第2の記憶領域とにそれぞれ異なるロジカルチャネルが設定しておき、
前記第1の通信手段による外部装置との通信に応じた処理中に前記第2の通信手段による外部装置との通信に応じた処理を行う場合、前記第1の通信手段による外部装置との通信に応じた処理と前記第2の通信手段による外部との通信に応じた処理とに異なるロジカルチャネルを割当て、
前記第1の通信手段による外部装置との通信に応じた処理と前記第2の通信手段による外部との通信に応じた処理とは、それぞれに割当られているロジカルチャネルが設定されている各記憶領域を用いて各処理を実行する、
ことを特徴とする前記請求項8又は9に記載の携帯可能電子装置の制御方法。
【請求項11】
前記ロジカルチャネルの割当は、前記第2の通信手段による通信開始要求を受けた際に前記第1の通信手段が通信中である場合、前記第1の通信手段による外部装置との通信に応じた処理に割当られているロジカルチャネル以外のロジカルチャネルを前記第2の通信手段による外部装置との通信に応じた処理に割当てる、
ことを特徴とする前記請求項10に記載の携帯可能電子装置の制御方法。
【請求項12】
さらに、各ロジカルチャネルの使用状況を示す情報を記憶しておき、
前記ロジカルチャネルの割当は、前記第2の通信手段による通信開始要求を受けた際に前記第1の通信手段が通信中である場合、前記各ロジカルチャネルの使用情報を示す情報に基づいて未使用のロジカルチャネルを前記第2の通信手段による外部装置との通信に応じた処理に割当てる、
ことを特徴とする前記請求項11に記載の携帯可能電子装置の制御方法。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate