説明

携帯可能電子装置および携帯可能電子装置におけるコマンド処理方法

【課題】複数のI/O端子C7、C6による複数の通信方式を有するICカード2であっても、各種の通信方式で受信するコマンドに対して効率的な処理が実現できるICカード2およびICカード2におけるコマンド処理方法を提供できる。
【解決手段】外部装置1との通信を行うための複数のI/O端子C7、C6を有するICカード2が、ある通信方式のI/O端子C7で受信した第1のコマンドを処理中に別の通信方式のI/O端子C6で第2のコマンドを受信した場合、受信した第2のコマンドの内容、あるいは、実行中の第1のコマンドの内容、あるいは、第1のコマンドと第2のコマンドとの組合せに対応づけて、第2のコマンドに対する処理方法が規定されている処理判定テーブル22aに基づいて、第2のコマンドに対する処理方法を判定する。

【発明の詳細な説明】
【技術分野】
【0001】
この発明は、たとえば、種々の通信方式で外部装置とのデータ通信を行うための複数の外部インターフェースとCPUなどの制御素子とを有するICカードなどの携帯可能電子装置および携帯可能電子装置におけるコマンド処理方法に関する。
【背景技術】
【0002】
近年、複数の外部インターフェースを有するICカードが提案されている。たとえば、物理的に外部装置と接触してデータ通信を行う接触型のICカードにおいては、複数のI/O端子により複数種類の通信を行うことが可能なものがある。具体例として、ISO/IEC7816シリーズでは、C7(I/O)、C6(SPU I/O)、C4+C8(AUX1+AUX2)の3種類のI/O端子が規定されている。このような場合、複数のI/O端子による外部装置との同時接続が想定される。
【0003】
しかしながら、現状では、同時期に複数のI/O端子で受信した複数のコマンドに対する各処理をどのように実行すべきであるかは、規定されていない。つまり、あるI/O端子で受信した第1のコマンドに対する処理を実行中に別のI/O端子で第2のコマンドを受信した場合、第2のコマンドに対してどのように処理するべきかは明確な規定がない。このため、異なる通信方式で通信可能な複数のI/O端子を有するICカードでは、同時期に複数のI/O端子で別々に受信した各コマンドに対して最適な処理を実現するものが要望されている。
【非特許文献1】ISO/IEC7816
【発明の開示】
【発明が解決しようとする課題】
【0004】
この発明の一形態では、上記のような問題点を解決するものであり、複数の外部インターフェースを有する場合であっても、各外部インターフェースで受信した複数のコマンドに対する処理を効率的に実施することができる携帯可能電子装置および携帯可能電子装置におけるコマンド処理方法を提供することを目的する。
【課題を解決するための手段】
【0005】
この発明の一形態としての携帯可能電子装置は、外部装置との通信を行う複数の通信手段と、前記複数の通信手段のうち第1の通信手段により受信した第1のコマンドを処理中に前記複数の通信手段のうち第1の通信手段とは異なる第2の通信手段により第2のコマンドを受信した場合、前記第2のコマンドの内容に基づいて前記第2のコマンドに対する処理方法を判定する判定手段と、この判定手段により判定した処理方法に基づいて前記第2のコマンドを処理する処理手段とを有する。
【0006】
この発明の一形態としての携帯可能電子装置は、外部装置との通信を行う複数の通信手段と、前記複数の通信手段のうち第1の通信手段により受信した第1のコマンドを処理中に前記複数の通信手段のうち第1の通信手段とは異なる第2の通信手段により第2のコマンドを受信した場合、前記第1のコマンドの内容に基づいて前記第2のコマンドに対する処理方法を判定する判定手段と、この判定手段により判定した処理方法に基づいて前記第2のコマンドを処理する処理手段とを有する。
【0007】
この発明の一形態としての携帯可能電子装置は、外部装置との通信を行う複数の通信手段と、前記複数の通信手段のうち第1の通信手段により受信した第1のコマンドを処理中に前記複数の通信手段のうち第1の通信手段とは異なる第2の通信手段により第2のコマンドを受信した場合、前記第1のコマンドの内容および前記第2のコマンドの種別に基づいて前記第2のコマンドに対する処理方法を判定する判定手段と、この判定手段により判定した処理方法に基づいて前記第2のコマンドを処理する処理手段とを有する。
【0008】
この発明の一形態としての携帯可能電子装置は、外部装置との通信を行う複数の通信手段と、前記複数の通信手段のうち第1の通信手段により受信した第1のコマンドを処理中に前記複数の通信手段のうち第1の通信手段とは異なる第2の通信手段により第2のコマンドを受信した場合、前記第2のコマンドのコマンドデータを実行待ちのコマンドデータとして順次記憶する記憶手段と、前記実行中の第1のコマンドの処理が完了した場合に、前記記憶手段に記憶されているコマンドデータに応じた処理を順に実行する処理手段とを有する。
【0009】
この発明の一形態としての携帯可能電子装置におけるコマンド処理方法は、外部装置との通信を行う複数の通信手段を有し、それらの通信手段により外部装置から受信したコマンドに応じた処理を行う携帯可能電子装置に用いられるコマンド処理方法であって、前記複数の通信手段のうち第1の通信手段により受信した第1のコマンドを処理中に前記複数の通信手段のうち第1の通信手段とは異なる第2の通信手段により第2のコマンドを受付け、前記第1の通信手段により受信した第1のコマンドを処理中に前記第2の通信手段により第2のコマンドを受信した場合、前記第2のコマンドの内容に基づいて前記第2のコマンドに対する処理方法を判定し、この判定した処理方法に基づいて前記第2のコマンドを処理する。
【0010】
この発明の一形態としての携帯可能電子装置におけるコマンド処理方法は、外部装置との通信を行う複数の通信手段を有し、それらの通信手段により外部装置から受信したコマンドに応じた処理を行うための携帯可能電子装置に用いられる方法であって、前記複数の通信手段のうち第1の通信手段により受信した第1のコマンドを処理中に前記複数の通信手段のうち第1の通信手段とは異なる第2の通信手段により第2のコマンドを受付け、前記第1の通信手段により受信した第1のコマンドを処理中に前記第2の通信手段により第2のコマンドを受信した場合、前記第1のコマンドの内容に基づいて前記第2のコマンドに対する処理方法を判定し、この判定した処理方法に基づいて前記第2のコマンドを処理する。
【0011】
この発明の一形態としての携帯可能電子装置におけるコマンド処理方法は、外部装置との通信を行う複数の通信手段を有し、それらの通信手段により外部装置から受信したコマンドに応じた処理を行う携帯可能電子装置に用いられる方法であって、前記複数の通信手段のうち第1の通信手段により受信した第1のコマンドを処理中に前記複数の通信手段のうち第1の通信手段とは異なる第2の通信手段により第2のコマンドを受付け、前記第1の通信手段により受信した第1のコマンドを処理中に前記第2の通信手段により第2のコマンドを受信した場合、前記第1のコマンドの内容および前記第2のコマンドの内容に基づいて前記第2のコマンドに対する処理方法を判定し、この判定した処理方法に基づいて前記第2のコマンドを処理する。
【0012】
この発明の一形態としての携帯可能電子装置におけるコマンド処理方法は、外部装置との通信を行う複数の通信手段を有し、それらの通信手段により外部装置から受信したコマンドに応じた処理を行う携帯可能電子装置に用いられる方法であって、前記複数の通信手段のうち第1の通信手段により受信した第1のコマンドを処理中に前記複数の通信手段のうち第1の通信手段とは異なる第2の通信手段により第2のコマンドを受付け、前記第1の通信手段により受信した第1のコマンドを処理中に前記第2の通信手段により第2のコマンドを受信した場合、前記第2のコマンドのコマンドデータを実行待ちのコマンドデータとして記憶手段に順次記憶し、前記実行中の第1のコマンドの処理が完了した場合に、前記記憶手段に記憶されているコマンドデータに応じた処理を順に実行する。
【発明の効果】
【0013】
この発明の一形態によれば、複数の外部インターフェースで受信した複数のコマンドに対する処理を効率的に実施することができる携帯可能電子装置及び携帯可能電子装置の制御方法を提供できる。
【発明を実施するための最良の形態】
【0014】
以下、本発明の実施の形態について図面を参照して説明する。
図1は、本実施の形態に係るICカードシステムおよびICカードの構成例を概略的に示すものである。
図1に示すICカードシステムは、外部装置1とICカード2とから構成されている。上記ICカード2は、上記外部装置1からの処理要求(コマンド)に応じて種々の処理を行うようになっている。また、上記ICカード2と外部装置1とは、複数の通信方式によるデータ通信を行うためのインターフェースをそれぞれ具備しているものとする。また、図1に示す例では、ICカード2は、複数の入出力端子(I/O端子)からなるコンタクト部を有する接触型のICカードである。これらの端子では、それぞれ種々の通信方式により外部装置との通信が可能となっているものとする。
【0015】
次に、ICカード2の構成について説明する。
図1に示す構成例では、上記ICカード2は、制御素子21、プログラムメモリ22、ワーキングメモリ23、データメモリ24、接触部25などを有している。また、上記ICカード2は、カード状の本体2a内に、制御素子21、プログラムメモリ22、ワーキングメモリ23、データメモリ24、コンタクト部25を有するモジュール2bが内蔵されている。上記モジュール2bは、1つあるいは複数のICチップなどにより構成されている。上記モジュール2bは、上記コンタクト部25が本体2aの表面に露出するように本体2a内に埋設されている。
【0016】
上記制御素子21は、当該ICカード2全体の制御を司るものである。上記制御素子21は、CPUなどにより構成される。上記制御素子21は、上記プログラムメモリ22あるいは上記データメモリ24に記憶されているプログラムを実行することにより種々の機能を実現している。
【0017】
上記プログラムメモリ22は、たとえば、マスクROM(リード・オンリ・メモリ)などの書換え不可能な固定メモリで構成されている。上記プログラムメモリ22は、上記制御素子にICカードとしての各種の基本的な処理を実行させるためのサブルーチンを備えた制御プログラムや制御データなどを記憶している。たとえば、上記プログラムメモリ22には、外部装置1から与えられるコマンドに応じた処理を実現するためのプログラムなどが記憶されている。また、上記プログラムメモリ22には、あるI/O端子で受信したコマンドの処理を実行中に別のI/O端子で受信したコマンドに対する処理方法を判定するための処理判定テーブル22aを有している。なお、上記処理判定テーブル22aは、上記データメモリ24に設けるようにしても良い。
【0018】
上記ワーキングメモリ23は、制御素子21が処理を行なう際の処理データなどを一時的に保持するための作業用メモリである。上記ワーキングメモリ23は、たとえば、RAM(ランダム・アクセス・メモリ)などの揮発性メモリで構成されている。
【0019】
上記データメモリ24は、書換え可能な不揮発性メモリで構成される。たとえば、上記データメモリ24は、EEPROM(エレクトリカリ・イレーザブル・アンド・プログラマブル・リード・オンリ・メモリ)あるいはフラッシュROMなどの書換え可能な不揮発性メモリで構成される。上記データメモリ24には、各種のデータが記憶される。たとえば、上記データメモリ24には、当該ICカード2の運用形態に応じたデータなどが記憶される。
【0020】
上記コンタクト部25は、外部装置1と物理的に接触してデータ通信を行うためのインターフェース部である。上記コンタクト部25は、それぞれ異なる通信方式で外部とのデータ通信(データの入出力)を行うための複数のI/O端子を有している。たとえば、図1に示す例では、I/O端子C6は、SWP(シングルワイヤープロトコル)と呼ばれる通信方式による通信を行うインターフェースとして用いられる。I/O端子C7は、シリアル通信を行うためのインターフェースとして用いられる。I/O端子C4及びC8は、USB(ユニバーサル・シリアル・バス)と呼ばれる接続方式による通信を行うためのインターフェースとして用いられる。また、たとえば、I/O端子C2及びC3には、非接触型ICカードとしての通信を行うためのアンテナが接続されるようにしても良い。この場合、I/O端子C2及びC3は、非接触型ICカードとしての通信を行うためのインターフェースとして用いられる。
【0021】
次に、上記外部装置1から上記ICカード2に与えられるコマンドのフォーマット例について説明する。
図2は、コマンドのフォーマットの例として、データの書込みを要求するコマンドの構成例を示している。なお、図2に示すコマンドのフォーマットは、ISO/IEC7816で規定されているものである。
【0022】
図2に示す例では、ICカード2に与えられるコマンドは、「CLA」部、「INS」部、「P1」部、「P2」部、「Lc」部、「Data」部などにより構成される。上記「CLA」部及び「INS」部は、コマンドの種別(処理内容)を示すコード情報(CLA/INSコード)が格納される。「CLA」コードは準拠する規格などを指定するコード情報である。また、「INS」コードは実行すべき種別(処理内容)を指定するコード情報である。たとえば、図2に示すようなINSコードが「DC」である場合、当該コマンドはデータの書込みを要求するコマンドであることを示している。
【0023】
上記「P1」部及び「P2」部には、処理に関わるパラメータを示す情報がセットされる。たとえば、「P1」及び「P2」では、アクセスすべきレコードあるいはオフセット値などのアクセスすべき情報を指定するための情報がセットされる。すなわち、図2に示すフォーマットのコマンドに対しては、CLA/INSコードで指定される処理を、「P1」及び「P2」で指定されるパラメータに従って実行するようになっている。また、「Lc」部には、「Data」部の長さを示す情報がセットされる。「Data」部には、書込みデータあるいは書換えデータなどが格納される。従って、図2に示すコマンドは、「P1」部及び「P2」部で指定する領域に対して、「Data」部に格納されているデータを書込む処理を要求するものである。なお、例えば、リード系のコマンドなどの「Data」が不要なコマンドでは「Data」が省略される。
【0024】
次に、上記処理判定テーブル22aについて説明する。
上記処理判定テーブル22aは、ある通信方式のI/O端子で受信したコマンドを実行中に別の通信方式のI/O端子でコマンドを受信した場合の処理方法を規定するものである。たとえば、シリアルI/O(C7)で受信した第1のコマンドを実行中にSWP(C6:SPU I/O)で第2のコマンドを受信した場合、第2のコマンドに対する処理は、処理判定テーブル22aで規定されている処理方法に基づいて実行される。従って、処理判定テーブル22aでは、第1のコマンドの内容、あるいは、第2のコマンドの内容、あるいは、第1のコマンドと第2のコマンドとの組合せに対応づけて、処理内容を示す情報が格納される。
【0025】
図3は、処理判定テーブル22aの第1の構成例を示す図である。
図3に示す処理判定テーブル22aでは、第2のコマンドの内容に対応づけて、第2のコマンドに対する処理方法を示す情報が格納されている。つまり、図3に示す処理判定テーブル22aでは、あるI/O端子で受信したコマンド(第1のコマンド)を実行中に別のI/O端子でコマンド(第2のコマンド)を受信した場合に、第2のコマンドに対する処理方法を、第2のコマンドの内容に基づいて判定するための情報が記憶されている。たとえば、シリアルI/O(C7)で受信したコマンド(第1のコマンド)を実行中にSWP(C6)でコマンド(第2のコマンド)を受信した場合、第2のコマンドに対する処理方法は、当該第2のコマンドの内容に対応づけて処理判定テーブル22aに記憶されている処理方法が採用される。
【0026】
また、図3に示す例では、第2のコマンドの内容を示す情報はCLA/INSコード(処理内容を示す情報)である。ただし、処理判定テーブル22aにおいて、受信した第2のコマンドの内容を示す情報は、「P1」及び「P2」部のデータ(処理パラメータ)であっても良いし、CLA/INSコードと「P1」及び「P2」のパラメータとの組合せであっても良いし、第2のコマンドのアクセス対象となるデータであって良いし、第2のコマンドのアクセス対象となるデータとそのデータに対する処理内容との組合せであっても良い。なお、図3に示す例では、処理判定テーブル22aでは、第2のコマンドのCLA/INSコード(処理内容を示す情報)に対応づけて、第2のコマンドの処理方法を示す情報が格納されている。
【0027】
また、第2のコマンドの内容に応じた、第2のコマンドに対する処理方法の設定例としては、以下の(1−1)、(1−2)、(1−3)のような設定が考えられる。
【0028】
(1−1)第2のコマンドを処理受付不可と設定される第2のコマンドの例としては、いつでも処理可能なコマンドが想定される。つまり、アクセス条件がなく、コマンド処理が以降のコマンド処理に影響を与えないコマンドが考えられる。
【0029】
(1−2)第2のコマンドを実行待ち行列に追加すると設定される第2のコマンドの例としては、コマンド処理は即実行しなくとも良いが、コマンド処理が以降のコマンド処理に影響を与えるコマンドが考えられる。
【0030】
(1−3)実行中のコマンド処理を中断して直に第2のコマンドを実行すると設定される第2のコマンドの例としては、現時点で即コマンド処理を実施すべきコマンドが考えられる。たとえば、金融アプリケーションのユーザが取引を実施するコマンドなどが想定される。
【0031】
図4は、処理判定テーブル22aの第2の構成例を示す図である。
図4に示す処理判定テーブル22aでは、実行中のコマンド(第1のコマンド)を示す情報に対応づけて、第2のコマンドに対する処理方法を示す情報が格納されている。つまり、図4に示す処理判定テーブル22aでは、あるI/O端子で受信したコマンド(第1のコマンド)を実行中に別のI/O端子でコマンド(第2のコマンド)を受信した場合に、第2のコマンドに対する処理方法を、第1のコマンドの内容に基づいて判定するための情報が格納されている。たとえば、シリアルI/O(C7)で受信したコマンド(第1のコマンド)を実行中にSWP(C6)でコマンド(第2のコマンド)を受信した場合、第2のコマンドに対する処理方法は、実行中の第1のコマンドの内容に対応づけて処理判定テーブル22aに記憶されている処理方法が採用される。
【0032】
また、図4に示す処理判定テーブル22aにおいて、第1のコマンドの内容を示す情報は、CLA/INSコード(処理内容を示す情報)であっても良いし、「P1」及び「P2」部のデータ(処理パラメータ)であっても良いし、CLA/INSコードと「P1」及び「P2」のパラメータとの組合せであっても良いし、第1のコマンドのアクセス対象となるデータであって良いし、第1のコマンドのアクセス対象となるデータとそのデータに対する処理内容を示す情報との組合せであっても良い。
【0033】
また、第1のコマンドの内容に応じた、第2のコマンドに対する処理方法の設定例としては、以下の(2−1)、(2−2)、(2−3)のような設定が考えられる。
【0034】
(2−1)第2のコマンドを処理受付不可とすると設定される第1のコマンドの例としては、コマンドの処理時間が不定なコマンド、不揮発性メモリの状態を変化させるコマンドなどが考えれられる。コマンドの処理時間が不定なコマンドでは、第1のコマンドの処理時間が不定のため、第2のコマンドの待ち時間が不定となるためである。また、不揮発性メモリの状態を変化させるコマンドは、処理を中止するとメモリ内のデータが中度半端な状態となってしまう可能性がある。たとえば、書込みコマンドなどを中断させると、データ列の書込みが中度半端な状態となってしまう。このため、書込みコマンドなどの不揮発性メモリの状態を変化させる第1のコマンドは、第2のコマンドの処理受付を不可する。
【0035】
(2−2)第2のコマンドを実行待ち行列に追加すると設定される第1のコマンドの例としては、コマンドの処理時間が一定(第2のコマンドの通信で待ち時間に影響がない範囲)で、コマンド処理が以降のコマンド処理に影響を与えるコマンドが考えられる。これは、第1のコマンドの処理時間が一定であれば、第2のコマンドの待ち時間が確定し、安全な処理が可能であるためである。
【0036】
(2−3)実行中のコマンド処理を中断して直に第2のコマンドを実行すると設定される第1のコマンドの例としては、いつでも処理が可能なコマンドが考えられる。つまり、アクセス条件がなく、コマンド処理が以降のコマンド処理に影響を与えないコマンドが想定される。たとえば、読出しコマンドなどのような不揮発性メモリ内のデータに変化を与えないようなコマンドは、中断後も再度実行可能である。このため、不揮発性メモリ内のデータに変化を与えないような第1のコマンドは、第2のコマンドを優先して実行するような運用が可能である。
【0037】
図5は、処理判定テーブル22aの第3の構成例を示す図である。
図5に示す処理判定テーブル22aでは、実行中のコマンド(第1のコマンド)を示す情報と受信したコマンド(第2のコマンド)を示す情報に対応づけて、第2のコマンドに対する処理方法を示す情報が格納されている。つまり、図5に示す処理判定テーブル22aでは、あるI/O端子で受信したコマンド(第1のコマンド)を実行中に別のI/O端子でコマンド(第2のコマンド)を受信した場合に、第2のコマンドに対する処理方法を、第1のコマンドおよび第2のコマンドの内容に基づいて判定するための情報が格納されている。たとえば、シリアルI/O(C7)で受信したコマンド(第1のコマンド)を実行中にSWP(C6)でコマンド(第2のコマンド)を受信した場合、第2のコマンドに対する処理方法は、第1のコマンド及び第2のコマンドの内容に対応づけて処理判定テーブル22aに記憶されている処理方法が採用される。
【0038】
また、図5に示す処理判定テーブル22aにおいて、第1のコマンドの内容を示す情報は、CLA/INSコード(処理内容を示す情報)、「P1」及び「P2」部のデータ(処理パラメータ)、CLA/INSコードと「P1」及び「P2」との組合せ、アクセス対象となるデータ、あるいは、アクセス対象となるデータとそのデータに対する処理内容を示す情報との組合せなどが想定される。同様に、図5に示す処理判定テーブル22aにおいて、第2のコマンドの内容を示す情報は、CLA/INSコード(処理内容を示す情報)、「P1」及び「P2」部のデータ(処理パラメータ)、CLA/INSコードと「P1」及び「P2」のパラメータとの組合せ、アクセス対象となるデータ、あるいは、アクセス対象となるデータとそのデータに対する処理内容を示す情報との組合せなどが想定される。これらの情報の組合せにより、図5に示すような処理判定テーブル22aでは、第1のコマンドの内容および第2のコマンドの内容を特定するような情報が格納され、それらの情報に対応して第2のコマンドに対する処理方法を示す情報が格納されている。
【0039】
なお、第1のコマンド及び第2のコマンドの組合せに応じた、第2のコマンドに対する処理方法の設定例としては、上述した(1−1)、(1−2)、(1−3)のコマンドと、(2−1)、(2−2)、(2−3)のコマンドとの組合せが考えられる。これらの第1のコマンドと第2のコマンドとの組合せについては、各コマンドの処理の特徴あるいは運用形態などに応じて設定が可能である。
【0040】
また、図3、図4あるいは図5で示すような処理判定テーブル22aは、ICカード2がサポートしている通信方式の数あるいは種類に応じて、以下のような設計方法が可能である。
【0041】
まず、上記処理判定テーブル22aは、各通信方式のI/O端子ごとに設定することが可能である。たとえば、シリアルI/OとSWPとを有するICカードでは、シリアルI/Oで受信したコマンドを実行中にSWPで受信したコマンドに対する処理を判定するためのSWP用の処理判定テーブルと、SWPで受信したコマンドを実行中にシリアルI/Oで受信したコマンドに対する処理方法を判定するためのシリアルI/O用の処理判定テーブルとを設けるようにしても良い。また、3つ以上の通信方式をサポートしているICカードでは、各通信方式用の処理判定テーブルをそれぞれ設けるようにしても良い。
【0042】
さらに、3つ以上の通信方式をサーボートしているICカードでは、各通信方式用の処理判定テーブルとして、他の通信方式に対応する処理判定テーブルをそれぞれ設定するようにしても良い。たとえば、第1、第2、第3の通信方式をサポートしている場合、第1の通信方式用の処理判定テーブルとして、第2の通信方式に対する第1の通信方式用のテーブルと第3の通信方式に対する第1の通信方式用のテーブルとを設けるようにしても良い。ここで、第2(第3)の通信方式に対する第1の通信方式用のテーブルとは、第2(第3)の通信方式で受信したコマンドを実行中に第1の通信方式で受信したコマンドに対する処理方法を判定するためのテーブルであることを意味している。このように、3つ以上の通信方式をサポートする場合、各通信方式の相互関係に応じて、各通信方式に対する処理判定テーブルをそれぞれ設けることにより、各通信方式に対する優先度などに応じた最適な処理方法の設定が可能となる。
【0043】
次に、上記のようなICカード2におけるコマンド処理の流れについて説明する。
上述したような複数の通信方式による通信が可能な複数のI/O端子を有するICカード2では、各通信方式によりコマンドが受信可能となっている。たとえば、上記ICカード2は、1つの通信方式で受信したコマンドの処理を実行中であっても、別の通信方式でコマンドが受信可能となっている。また、ICカード2では、ある通信方式のI/O端子で受信したコマンドに対する処理が完了するまで、そのI/O端子では次のコマンドを受信しないようになっているものとする。
【0044】
すなわち、上記ICカード2では、ある通信方式で受信したコマンドを実行中に同じ通信方式で別のコマンドを受信することはないが、ある通信方式で受信したコマンドの実行中に別の通信方式で別のコマンドを受信することが可能であるもとする。たとえば、ICカード2が、I/O端子(C7)でシリアルI/Oによる通信機能とI/O端子(C6)でSWPによる通信機能とをサポートする場合を想定する。このような場合、ICカード2では、シリアルI/O(C7)で受信したコマンドを実行中であっても、SWP(C6)でコマンドを受信することが可能となっている。
【0045】
以下の説明では、説明を簡単化するため、ICカード2が第1の通信手段としてのシリアルI/O(C7)と第2の通信手段としてのSWP(C6)とを有しているものとする。また、ここでは、ICカード2が、SWP(C6)で受信したコマンドに対する処理を行う場合を想定して説明するものとする。
なお、以下に説明する処理例は、同時期に複数の通信方式でコマンドを受信可能なICカードに適用できるものである。たとえば、ICカード2が、さらに、USB(C4+C8)などの別の通信手段を具備している場合であっても図6に示すような処理が実現可能である。また、以下の説明におけるシリアルI/O(C7)とSWP(C6)とを置き換えても同様な処理が実現可能である。
【0046】
図6は、ICカード2におけるコマンド処理の流れを説明するためのフローチャートである。
まず、ICカード2のコンタクト部25において何れかのI/O端子(ここではSWP(C6)とする)がコマンド受信待ちの状態であるものとする(ステップS10)。この状態においてSWP(C6)で外部装置1からのコマンド(第2のコマンド)を受信した場合(ステップS11)、制御素子21は、別の通信方式のI/O端子(ここではシリアルI/O(C7)とする)で受信したコマンドに対する処理の実行中であるか否かを判断する(ステップS12)。
【0047】
この判断によりシリアルI/O(C7)で受信したコマンドに対する処理が実行中でないと判断した場合(ステップS12、NO)、制御素子21は、通常のコマンド処理として、SWP(C6)で受信したコマンドに応じた処理を実行し(ステップS20)、その処理結果を示すレスポンスデータを当該コマンドの送信元である外部装置1へ送信する(ステップS21)。
【0048】
また、上記判断によりシリアルI/O(C7)で受信したコマンド(第1のコマンド)に対する処理が実行中であると判断した場合(ステップS12、YES)、制御素子21は、第2のコマンドに対する処理方法を判定する処理を行う。この処理方法の判定処理は、上記処理判定テーブル22aに記憶されている内容に従って実行される。
【0049】
たとえば、図3に示す処理判定テーブル22aのように、受信した第2のコマンドに対する内容に対応づけて処理方法が規定されている場合、上記制御素子21は、第2のコマンドの内容を参照し(ステップS13)、第2のコマンドの内容に対応付けられている処理方法を処理判定テーブル22aに基づいて判定する(ステップS14)。すなわち、この場合、上記制御素子21は、第2のコマンドの内容に基づいて第2のコマンドに対する処理方法を判定するようになっている。
【0050】
また、図4に示す処理判定テーブル22aのように、実行中の第1のコマンドに対する内容に対応づけて処理方法が規定されている場合、上記制御素子21は、実行中の第1のコマンドの内容を参照し(ステップS13)、第1のコマンドの内容に対応付けられている処理方法を処理判定テーブル22aに基づいて判定する(ステップS14)。すなわち、この場合、上記制御素子21は、第1のコマンドの内容に基づいて第2のコマンドに対する処理方法を判定するようになっている。
【0051】
また、図5に示す処理判定テーブル22aのように、実行中の第1のコマンドの内容と受信した第2のコマンドの内容との組み合わせに対応づけて処理方法が規定されている場合、上記制御素子21は、第1のコマンドおよび第2のコマンドの内容を参照し(ステップS13)、第1のコマンドおよび第2のコマンドの組合せに対応付けられている第2のコマンドに対する処理方法を処理判定テーブル22aに基づいて判定する(ステップS14)。すなわち、この場合、上記制御素子21は、第1のコマンドおよび第2のコマンドの組合せに基づいて第2のコマンドに対する処理方法を判定するようになっている。
【0052】
上記のような判定により第2のコマンドに対する処理方法として第2のコマンドを受付け不可(実行不可)と判定した場合(ステップS15、YES)、上記制御素子21は、別の通信方式としてのシリアルI/Oで受信したコマンドの処理を実行中であるため第2のコマンドの受付が不可である旨の情報を第2のコマンドの送信元である外部装置1へ送信し(ステップS16)、第2のコマンドに対する処理を終了する。
【0053】
また、上記第2のコマンドに対する処理方法として第2のコマンドを実行待ち状態とすると判定した場合(ステップS17、YES)、上記制御素子21は、第2のコマンドのコマンドデータを実行待ち行例に追記する(ステップS18)。実行待ち行列は、たとえば、ワーキングメモリ23内に設けられる記憶領域である。この実行待ち行列には、コマンドデータが順に蓄積(追記)される。たとえば、コマンドの実行中に、実行中のコマンドを受信した通信方式以外の複数の通信方式で実行待ちとすべき複数のコマンドを受信した場合、それらのコマンドデータは、実行待ち行例に順に蓄積される。なお、ICカード2がサポートする通信方式が2つだけである場合、ICカード2の制御素子21は、実行中の第1のコマンドが完了した際に、実行待ちの第2のコマンドを直ちに実行することが可能である。
【0054】
また、実行待ち行例に蓄積された各コマンドデータは、実行中のコマンド処理の終了後、順に処理が実行される。すなわち、実行待ち行例にコマンドデータを蓄積すると、上記制御素子21は、第2のコマンドに対する処理として、実行中の第1のコマンドの終了を待つ(ステップS19)。この状態において第1のコマンドの処理が終了すると、上記制御素子21は、実行待ち行例に蓄積した第2のコマンドとしてのコマンドデータに対する処理を実行する(ステップS20)。ただし、実行待ち行列において、第2のコマンドのコマンドデータの前に別のコマンドデータが蓄積されている場合、そのコマンドデータに対する処理後に、第2のコマンドに対する処理が実行されるようになっている。
【0055】
上記実行待ち行列に蓄積した第2のコマンドのコマンドデータに対する処理を実行すると、制御素子21は、第2のコマンドに対する処理結果を示すレスポンスデータを第2のコマンドの送信元である外部装置1に送信し(ステップS21)、第2のコマンドに対する処理を終了する。
【0056】
また、上記第2のコマンドに対する処理方法として実行中の第1のコマンドに対する処理を中断して第2のコマンドを直ちに実行すると判定した場合(ステップS22、YES)、上記制御素子21は、実行中の第1のコマンドに対する処理を中断する処理を行う(ステップS23)。実行中の第1のコマンドを中断する処理は、たとえば、実行中の第1のコマンドに対する処理を中断し、当該処理が中断されたことを第1のコマンドの送信元である外部装置1に通知する。なお、中断した第1のコマンドについては、コマンドデータを実行待ち行列に蓄積し、第2のコマンドの終了後に処理を再開(再実行)するようにしても良い。
【0057】
上記第1のコマンドに対する処理を中断すると、上記制御素子21は、第2のコマンドに対する処理を実行する(ステップS20)。上記制御素子21は、第2のコマンドに対する処理結果を含むレスポンスデータを第2のコマンドの送信元である外部装置1へ送信し(ステップS21)、当該第2のコマンドに対する処理を終了する。
【0058】
上記のように、本実施例に係るICカード2では、第1の通信方式(たとえばシリアルI/OのI/O端子(C7))で受信した第1のコマンドを処理中に第2の通信方式(たとえばSWPのI/O端子(C6))で第2のコマンドを受信した場合、受信した第2のコマンドの内容、あるいは、実行中の第1のコマンドの内容、あるいは、第1のコマンドと第2のコマンドとの組合せに対応づけて処理方法が規定されている処理判定テーブル22aに基づいて、受信した第2のコマンドに対する処理方法を判定するようにしたものである。
これにより、上記ICカード2では、シリアルI/OのI/O端子で受信したコマンドを実行中にSWPのI/O端子で受信したコマンドを、最適な処理方法で処理することができる。
【図面の簡単な説明】
【0059】
【図1】本発明の実施の形態に係るICカードシステムおよびICカードの構成例を概略的に示すブロック図。
【図2】コマンドのフォーマット例を示す図。
【図3】処理判定テーブルの第1の構成例を示す図。
【図4】処理判定テーブルの第2の構成例を示す図。
【図5】処理判定テーブルの第3の構成例を示す図。
【図6】コマンド処理の流れを説明するためのフローチャート。
【符号の説明】
【0060】
1…外部装置、2…ICカード(携帯可能電子装置)、2a…本体、2b…モジュール、21…制御素子(判定手段、処理手段)、22…プログラムメモリ、22a…処理判定テーブル、23…ワーキングメモリ(記憶手段)、24…データメモリ、25…コンタクト部、C1、C2、C3、C4、C5、C6、C7、C8…I/O端子(複数の通信手段)。

【特許請求の範囲】
【請求項1】
外部装置との通信を行う複数の通信手段と、
前記複数の通信手段のうち第1の通信手段により受信した第1のコマンドを処理中に前記複数の通信手段のうち第1の通信手段とは異なる第2の通信手段により第2のコマンドを受信した場合、前記第2のコマンドの内容に基づいて前記第2のコマンドに対する処理方法を判定する判定手段と、
この判定手段により判定した処理方法に基づいて前記第2のコマンドを処理する処理手段と、
を有することを特徴とする携帯可能電子装置。
【請求項2】
前記判定手段は、前記第2のコマンドの内容として、前記第2のコマンドの種別、あるいは、前記第2のコマンドの指定パラメータに基づいて、前記第2のコマンドに対する処理方法を判定する、
ことを特徴とする前記請求項1に記載の携帯可能電子装置。
【請求項3】
外部装置との通信を行う複数の通信手段と、
前記複数の通信手段のうち第1の通信手段により受信した第1のコマンドを処理中に前記複数の通信手段のうち第1の通信手段とは異なる第2の通信手段により第2のコマンドを受信した場合、前記第1のコマンドの内容に基づいて前記第2のコマンドに対する処理方法を判定する判定手段と、
この判定手段により判定した処理方法に基づいて前記第2のコマンドを処理する処理手段と、
を有することを特徴とする携帯可能電子装置。
【請求項4】
前記判定手段は、前記第1のコマンドの内容として、前記第1のコマンドの種別、あるいは、前記第1のコマンドの指定パラメータに基づいて、前記第2のコマンドに対する処理方法を判定する、
ことを特徴とする前記請求項3に記載の携帯可能電子装置。
【請求項5】
外部装置との通信を行う複数の通信手段と、
前記複数の通信手段のうち第1の通信手段により受信した第1のコマンドを処理中に前記複数の通信手段のうち第1の通信手段とは異なる第2の通信手段により第2のコマンドを受信した場合、前記第1のコマンドの内容および前記第2のコマンドの種別に基づいて前記第2のコマンドに対する処理方法を判定する判定手段と、
この判定手段により判定した処理方法に基づいて前記第2のコマンドを処理する処理手段と、
を有することを特徴とする携帯可能電子装置。
【請求項6】
前記判定手段は、前記第1のコマンドと前記第2のコマンドとの組合せとして、前記第1のコマンドの種別あるいは前記第1のコマンドの指定パラメータと、前記第2のコマンドの種別あるいは前記第2のコマンドの指定パラメータとに基づいて、前記第2のコマンドに対する処理方法を判定する、
ことを特徴とする前記請求項5に記載の携帯可能電子装置。
【請求項7】
前記判定手段は、処理方法の1つとして、前記第2のコマンドの受付けを不可するか否かを判定し、
前記処理手段は、前記判定手段により前記第2のコマンドの受付を不可とすると判定された場合、前記第2の通信手段により前記第2のコマンドの送信元に対して前記第2のコマンドが処理不可である旨を送信する、
ことを特徴とする前記請求項1乃至6の何れかに記載の携帯可能電子装置。
【請求項8】
前記判定手段は、処理方法の1つとして、前記第1のコマンドの処理を中断して第2のコマンドを実行するか否かを判定し、
前記処理手段は、前記判定手段により前記第1のコマンドの処理を中断して前記第2のコマンドを実行すると判定された場合、前記第1のコマンドに対する処理を中断し、前記第2のコマンドに対する処理を実行する、
ことを特徴とする前記請求項1乃至7の何れかに記載の携帯可能電子装置。
【請求項9】
前記判定手段は、処理方法の1つとして、前記第2のコマンドを実行待ち状態とするか否かを判定し、
前記処理手段は、前記判定手段により前記第2のコマンドを実行待ち状態とすると判定された場合、前記第1のコマンドの処理が完了した後に、前記第2のコマンドに対する実行する、
ことを特徴とする前記請求項1乃至8の何れかに記載の携帯可能電子装置。
【請求項10】
外部装置との通信を行う複数の通信手段と、
前記複数の通信手段のうち第1の通信手段により受信した第1のコマンドを処理中に前記複数の通信手段のうち第1の通信手段とは異なる第2の通信手段により第2のコマンドを受信した場合、前記第2のコマンドのコマンドデータを実行待ちのコマンドデータとして順次記憶する記憶手段と、
前記実行中の第1のコマンドの処理が完了した場合に、前記記憶手段に記憶されているコマンドデータに応じた処理を順に実行する処理手段と、
を有することを特徴とする携帯可能電子装置。
【請求項11】
外部装置との通信を行う複数の通信手段を有し、それらの通信手段により外部装置から受信したコマンドに応じた処理を行う携帯可能電子装置に用いられるコマンド処理方法であって、
前記複数の通信手段のうち第1の通信手段により受信した第1のコマンドを処理中に前記複数の通信手段のうち第1の通信手段とは異なる第2の通信手段により第2のコマンドを受付け、
前記第1の通信手段により受信した第1のコマンドを処理中に前記第2の通信手段により第2のコマンドを受信した場合、前記第2のコマンドの内容に基づいて前記第2のコマンドに対する処理方法を判定し、
この判定した処理方法に基づいて前記第2のコマンドを処理する、
ことを特徴とする携帯可能電子装置におけるコマンド処理方法。
【請求項12】
外部装置との通信を行う複数の通信手段を有し、それらの通信手段により外部装置から受信したコマンドに応じた処理を行う携帯可能電子装置に用いられるコマンド処理方法であって、
前記複数の通信手段のうち第1の通信手段により受信した第1のコマンドを処理中に前記複数の通信手段のうち第1の通信手段とは異なる第2の通信手段により第2のコマンドを受付け、
前記第1の通信手段により受信した第1のコマンドを処理中に前記第2の通信手段により第2のコマンドを受信した場合、前記第1のコマンドの内容に基づいて前記第2のコマンドに対する処理方法を判定し、
この判定した処理方法に基づいて前記第2のコマンドを処理する、
ことを特徴とする携帯可能電子装置におけるコマンド処理方法。
【請求項13】
外部装置との通信を行う複数の通信手段を有し、それらの通信手段により外部装置から受信したコマンドに応じた処理を行う携帯可能電子装置に用いられるコマンド処理方法であって、
前記複数の通信手段のうち第1の通信手段により受信した第1のコマンドを処理中に前記複数の通信手段のうち第1の通信手段とは異なる第2の通信手段により第2のコマンドを受付け、
前記第1の通信手段により受信した第1のコマンドを処理中に前記第2の通信手段により第2のコマンドを受信した場合、前記第1のコマンドの内容および前記第2のコマンドの内容に基づいて前記第2のコマンドに対する処理方法を判定し、
この判定した処理方法に基づいて前記第2のコマンドを処理する、
ことを特徴とする携帯可能電子装置におけるコマンド処理方法。
【請求項14】
外部装置との通信を行う複数の通信手段を有し、それらの通信手段により外部装置から受信したコマンドに応じた処理を行う携帯可能電子装置に用いられるコマンド処理方法であって、
前記複数の通信手段のうち第1の通信手段により受信した第1のコマンドを処理中に前記複数の通信手段のうち第1の通信手段とは異なる第2の通信手段により第2のコマンドを受付け、
前記第1の通信手段により受信した第1のコマンドを処理中に前記第2の通信手段により第2のコマンドを受信した場合、前記第2のコマンドのコマンドデータを実行待ちのコマンドデータとして記憶手段に順次記憶し、
前記実行中の第1のコマンドの処理が完了した場合に、前記記憶手段に記憶されているコマンドデータに応じた処理を順に実行する、
ことを特徴とする携帯可能電子装置におけるコマンド処理方法。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate