(57)【要約】【課題】端末の要求に応じて実行されている一連の処理が途中で中断された場合であっても、適切に処理を再開可能なＩＣカードを提供する。【解決手段】ＩＣカードは、電力を受信する電力受信手段と、端末と通信を行う通信手段と、所定の処理を実行するためのプログラムを記憶するプログラム記憶領域を有する第１の記憶手段と、前記記憶されたプログラムを用いて演算処理を行う処理手段と、前記演算処理が行われる際に用いられるワーク領域を有し、電力を受信できない場合であっても記憶内容を保持する不揮発モードと電力を受信できない場合に記憶内容を消去する揮発モードとを切り換えることが可能な第２の記憶手段とを備える。そして、端末から送信されたコマンドデータに含まれる設定情報に基づいて前記第２の記憶手段を前記不揮発モードあるいは前記揮発モードに設定するように制御する。【選択図】図１
2012022356.tif 000002
【特許請求の範囲】
【請求項１】
電力を受信する電力受信手段と、
端末と通信を行う通信手段と、
所定の処理を実行するためのプログラムを記憶するプログラム記憶領域を有する第１の記憶手段と、
前記プログラム記憶手段に記憶されたプログラムを用いて演算処理を行う処理手段と、
前記処理手段により演算処理が行われる際に用いられるワーク領域を有し、前記電力受信手段により電力を受信できない場合であっても記憶内容を保持する不揮発モードと前記電力受信手段により電力を受信できない場合に記憶内容を消去する揮発モードとを切り換えることが可能な第２の記憶手段と、
を備え、
前記端末から送信されたコマンドデータに含まれる設定情報に基づいて前記第２の記憶手段を前記不揮発モードあるいは前記揮発モードに設定するように制御することを特徴とするＩＣカード。
【請求項２】
前記コマンドデータに含まれる前記演算処理手段での実行が求められる処理内容を示す識別情報を前記第２の記憶手段に記憶し、
前記処理手段は、前記識別情報に対応するプログラムを前記プログラム記憶領域から読み出し、前記プログラムを用いて演算処理を開始することを特徴とする請求項１に記載のＩＣカード。
【請求項３】
前記コマンドデータを受信した後に前記電力受信手段による電力供給が停止し、その後に前記電力受信手段による電力供給が再開したとき、前記第２の記憶手段が前記不揮発モードに設定され、かつ、前記ワーク領域にデータが記憶されている場合、前記処理手段は、前記ワーク領域に記憶されたデータを用いて演算処理を行い、前記端末へ送信するレスポンスデータを生成し、生成したレスポンスデータを前記第２の記憶手段に記憶し、
前記通信手段により新たにコマンドデータを受信し、新たに受信したコマンドデータに含まれる識別情報と、前記第２の記憶手段に記憶された識別情報が対応する場合に、前記第２の記憶手段に記憶したレスポンスデータを前記通信手段により送信するように制御することを特徴とする請求項２に記載のＩＣカード。
【請求項４】
前記新たに受信したコマンドデータには前記設定情報が含まれていないことを特徴とする請求項３に記載のＩＣカード。
【請求項５】
前記コマンドデータを受信した後に前記電力受信手段による電力供給が停止し、その後に前記電力受信手段による電力供給が再開したとき、前記第２の記憶手段が前記不揮発モードに設定され、かつ、前記ワーク領域にデータが記憶されている場合、前記処理手段は、前記ワーク領域に記憶されたデータを用いて演算処理を行い、前記端末へ送信するレスポンスデータを生成し、生成したレスポンスデータを前記第２の記憶手段に記憶し、
前記通信手段により新たにコマンドデータを受信し、新たに受信したコマンドデータに前記設定情報が含まれている場合、前記処理手段は、前記新たに受信したコマンドデータに含まれる識別情報に対応するプログラムを用いて演算処理を行い、前記端末へ送信するレスポンスデータを新たに生成し、前記新たに生成されたレスポンスデータを前記通信手段により送信することを特徴とする請求項２に記載のＩＣカード。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、端末との通信を行うＩＣカードに関する。
【背景技術】
【０００２】
ＩＣカードは一般に電池などの電源を持たず、ＩＣカードを搭載した端末から電源を供給された上で、端末から受信したコマンドを順次処理していく。そのため、端末からの電源供給が切断された場合には、処理が中止されてしまう。このような場合に、途中まで処理を行っていたにもかかわらず、ＩＣカードの揮発メモリの内容が初期状態に戻ってしまい、端末は中止した処理を最初からやり直さなければならないとすると、処理に余分な時間を要することになる。
【０００３】
特許文献１には、ＩＣカードの実行状態の保存機能と、実行状態の復帰機能をもたせ、ＩＣカードの処理の中断と処理の途中からの再開を可能とするＣＰＵ付きＩＣカードが開示されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開平８−５０６４１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
ＩＣカードは、端末からのコマンドを受けることで演算を開始し、内部での演算処理を経てレスポンスを送出する。ここで、その一連の過程の最中に電源が遮断され、処理が中止する場合を考える。この場合、端末はコマンドを送出したにもかかわらずＩＣカードからレスポンスを受信できないことを検出できるが、（１）ＩＣカードがコマンドを正しく受け取る前に電源が遮断、（２）ＩＣカードがコマンドを受信し演算処理中に電源が遮断、（３）ＩＣカードが演算処理を完了しレスポンスを送出したが端末が正しく受信する前に電源が遮断、のいずれの原因によりレスポンスを受信できないのかを判断することができない。このため、電源遮断時の状態をＩＣカード内に保存している場合であっても、端末とＩＣカードの間で同期をとって処理を再開できないという問題が発生する可能性がある。
【０００６】
本発明は、端末の要求に応じてで実行されている一連の処理が途中で中断された場合であっても、適切に処理を再開可能なＩＣカードを提供することを目的とする。
【課題を解決するための手段】
【０００７】
ＩＣカードは、電力を受信する電力受信手段と、端末と通信を行う通信手段と、所定の処理を実行するためのプログラムを記憶するプログラム記憶領域を有する第１の記憶手段と、前記記憶されたプログラムを用いて演算処理を行う処理手段と、前記演算処理が行われる際に用いられるワーク領域を有し、電力を受信できない場合であっても記憶内容を保持する不揮発モードと電力を受信できない場合に記憶内容を消去する揮発モードとを切り換えることが可能な第２の記憶手段とを備える。そして、端末から送信されたコマンドデータに含まれる設定情報に基づいて前記第２の記憶手段を前記不揮発モードあるいは前記揮発モードに設定するように制御する。
【発明の効果】
【０００８】
本発明によれば、端末の要求に応じて実行されている一連の処理が途中で中断された場合であっても、適切に処理を再開可能なＩＣカードを提供することができる。
【図面の簡単な説明】
【０００９】
【図１】ＩＣカードの構成例を示す図である。
【図２】ＩＣカードにおける処理フロー例を示す図である。
【発明を実施するための形態】
【００１０】
図１は、ＩＣカードの構成例を示す図である。ＩＣカード１は、演算処理部１０と、通信部１１と、記憶部１２と、電力受信部１３とを有しており、これらが通信用バスなどで相互に接続されている。端末２はＩＣカード1と通信を行う装置であり、たとえば接触ＩＣカード用リーダライタ端末、非接触ＩＣカード用リーダライタ端末、携帯電話などである。端末２はコマンドデータをＩＣカード１に送信し、ＩＣカード１はレスポンスを端末２に送信する。
【００１１】
演算処理部１０は、ＩＣカード1全体の制御を司る。演算処理部１０としては、例えばマイクロプロセッサを用いる。
【００１２】
通信部１１は、ＩＣカード１が端末２と通信を行うためのものであり、例えば接触ＩＣカード用の通信規格であるＩＳＯ／ＩＥＣ７８１６に則った通信や、あるいは非接触ＩＣカード用の通信規格であるＩＳＯ１４４４３に則った通信を行うモジュールなどが用いられる。通信部１１は、例えば端末２からの処理開始要求や処理結果を示すレスポンスの送信要求などの要求を通知するコマンドデータを受信する。
【００１３】
記憶部１２はＩＣカード１が処理を行うために必要なデータを格納するための不揮発メモリであり、半導体メモリ等から構成される。記憶部１２は不揮発領域１２０と、揮発性設定可能領域１３０を有する。なお、不揮発領域１２０と揮発性設定可能領域１３０は物理的に個別の構成になっていてもよいし、ソフトウェアやレジスタの設定などで論理的に区別されていてもよい。
【００１４】
不揮発領域１２０はＩＣカード１への電源供給が停止した場合においても記憶内容を保持する領域である。揮発性設定可能領域１３０は、不揮発メモリとして動作させるか、あるいは、揮発メモリとして動作させるか、を選択することが可能な領域である。本例では、揮発性設定可能領域１３０が揮発メモリとして動作する場合を揮発モードと称し、不揮発メモリとして動作する場合を不揮発モードと称する。なお、揮発性設定可能領域１３０の切り替えは、ハードウェア制御により行ってもよいし、ソフトウェア制御により行っても良い。
【００１５】
不揮発領域１２０は、実行プログラム格納領域１２１と不揮発データ格納領域１２２と揮発性設定情報格納領域１２３を有する。実行プログラム格納領域１２１は、例えば決済処理プログラムなど、演算処理部１０により実行されるプログラムが格納される。不揮発データ格納領域１２２は、電源供給が停止した場合でも保持することが必要なデータを記憶する領域である。揮発性設定情報格納領域１２３には、揮発性設定可能領域１３０が揮発モードであるか、不揮発モードであるかを示す情報である揮発性設定情報が格納される。
【００１６】
揮発性設定可能領域１３０は、ワーク領域１３１と、コマンドデータ格納領域１３２と、レスポンスデータ格納領域１３３が格納される。ワーク領域１３１は、演算処理部１０の演算処理に必要な一時領域やＩＣカード１の制御に必要なプログラムカウンタなどのレジスタ等を記憶する。
【００１７】
端末２から送信されるコマンドデータには、演算処理部１０での演算処理の実行を求めるプログラムを示すプログラム識別情報や、１つのプログラムを複数の範囲に分けて実行する場合に分割された範囲それぞれを示すシーケンス識別情報など、ＩＣカード１での実行が求められる処理内容を示す識別情報が含まれる。コマンドデータ格納領域１３２は、この識別情報を格納する領域である。なお、これに限定するものではなく、コマンドデータ格納領域１３２に、識別情報の他にコマンドデータの一部または全部を記憶するようにしても良い。
【００１８】
レスポンスデータ格納領域１３３は、ＩＣカード１が送信しようとするレスポンスデータを格納する領域である。なお、レスポンスデータは、送出後もレスポンスデータ格納領域１３３に保持される。一方、ワーク領域１３１に記憶されたデータは、レスポンスデータ格納領域１３３にレスポンスデータが格納された後に消去されてもよい。
【００１９】
電力受信部１３は、端末２から電力を受け取り、ＩＣカード１全体に電力を供給する。電力受信部１３は、図示していないが、例えば電源供給用の接触端子や無線電力を受信するアンテナを備える。なお、電力受信部１３はその構成の一部または全部を通信部１１と共有していてもよい。また、データ通信を行う端末２以外の装置から電力を受けるようにして良いし、ＩＣカード１の内部の電池から電源供給されるものであってもよい。
【００２０】
図２は、ＩＣカード１における処理フロー例を示す図である。
【００２１】
ＩＣカード１が、端末２に挿入あるいは端末２が発する電磁界に入るなどにより、電力受信部１３を介してＩＣカード１に電源が供給されると（S１０００）、演算処理部１０は揮発性設定情報格納領域１２３に記憶された揮発性設定情報を読み出し（S１００１）、揮発性設定可能領域１３０が揮発モードであるか不揮発モードであるかを判定する（S１００２）。
【００２２】
揮発性設定可能領域１３０が不揮発モードである場合（S１００２ ＮＯ）、ワーク領域１３１にデータが保持されているかどうか、あるいはデータが保持されていない終了状態であるかを判定する（Ｓ１００３）。あるいはこの判定はプログラムカウンタの読み出しによって行われても良い。ワーク領域１３１が終了状態ではない場合（Ｓ１００３ ＮＯ）、演算処理部１０は、演算処理の途中で電源供給が停止したと判定し、ワーク領域１３１に保持されているデータを用いて演算処理を実行してレスポンスデータを生成し（Ｓ１００４）、生成したレスポンスデータをレスポンスデータ格納領域１３３に格納する（Ｓ１００５）。
【００２３】
演算処理部１０は、レスポンスデータの格納後（Ｓ１００５）、あるいは揮発モードであると判定された場合（Ｓ１００２ ＹＥＳ）やワーク領域１３１が終了状態であると判定された場合（Ｓ１００３ ＹＥＳ）、端末２からのコマンドデータの受信を待つ待機状態になるように制御する（Ｓ１００６）。
【００２４】
このように、電源供給がされた際に揮発性設定可能領域１３０のモードやワーク領域１３１の状態を検出することにより、前回、電源供給が停止された際に、データ処理が途中で停止してしまった場合でも、端末２からの指示なしに処理を再開することができる。なお、ＩＣカード１が販売後に初めて電源が供給された場合には、Ｓ１００１〜Ｓ１００５を省略するようにしても良い。
【００２５】
また、本例によれば、電源が供給された際に、端末２からのコマンドデータの受信に関わらず、演算途中の処理を再開するため、端末２からレスポンス送信要求を含むコマンドデータを受信した場合に、早急に対応するレスポンスデータを送信することができる。但し、この処理手順に限定するものではなく、コマンドデータを受信した後に、Ｓ１００１〜Ｓ１００５の処理を実行するようにしても良い。
【００２６】
通信部１１により端末２から送信されたコマンドデータを受信すると（Ｓ１００６ ＹＥＳ）、コマンドデータに揮発性設定可能領域１３０を揮発モードにするか不揮発モードにするかを指定する揮発性選択フラグが含まれるか否かを判定する（Ｓ１００７）。この揮発性選択フラグは、端末２において、ＩＣカード１での実行を求める処理内容あるいはプログラムが選択された場合に、端末２のユーザ指示に応じて、あるいは選択された処理等に応じて自動的に、処理開始を求めるコマンドデータに含められる。一方、端末２は、レスポンス送信を要求するコマンドを送信する場合には、揮発性選択フラグを含めないように制御する。従って、ＩＣカード２において、揮発性選択フラグの有無により、新たな処理の開始を要求されているのか、既に実行を求められた処理に対するレスポンス送信を求められているのかを判別することができる。
【００２７】
コマンドデータに揮発性選択フラグが含まれている場合（Ｓ１００７ ＹＥＳ）、揮発性設定情報格納領域１２３に記憶された揮発性設定情報を更新する（Ｓ１００８）。なお、揮発性選択フラグで示されているモードが揮発性設定情報格納領域１２３に格納されている揮発性設定情報で示されるモードと一致するか否かの照合を行い、一致している場合は更新を省略するようにしてもよい。
【００２８】
更新された揮発性設定情報に基づいて、揮発性設定可能領域１３０を揮発モードあるいは不揮発モードに設定する（Ｓ１００９）。なお、例えば不揮発モードに設定する場合、揮発性設定可能領域１３０の一部または全部を所定の初期状態に書き換えることが望ましい。また、揮発性設定領域１３０の内容がＩＣカード１の内部で暗号化されているとき、Ｓ１００９のタイミングで内部暗号鍵の設定を更新し、揮発性設定領域１３０の内容を再暗号化してもよい。
【００２９】
Ｓ１００６において受信したコマンドデータに含まれる識別情報をコマンドデータ格納領域１３２に保存する（Ｓ１０１０）。なお、この際、識別情報に限らずコマンドデータ全体を格納するようにしても良いし、格納するデータの一部または全部を暗号化したり、ハッシュ値などのデータとともに保存するようにしてもよい。
【００３０】
演算処理部１０は、識別情報に基づき、ワーク領域１３１を用いて演算処理を行って、レスポンスデータを生成する（Ｓ１０１１）。例えば、識別情報に対応するプログラムを実行プログラム格納領域１２１から読み出し、演算処理部１０において実行する。
【００３１】
生成したレスポンスデータをレスポンスデータ格納領域１３３に保存し（Ｓ１０１２）、通信部１１から端末２へレスポンスデータを送信する（Ｓ１０１３）。レスポンスデータを送信後、Ｓ１００６に移行し、新たなコマンドデータの受信を待つ待機状態になる。
【００３２】
ここで、Ｓ１００９において揮発性設定可能領域１３０を不揮発モードに設定した場合、Ｓ１０１０〜Ｓ１０の間に、ＩＣカード１への電源供給が遮断された場合であっても、揮発性設定可能領域１３０に記憶されたデータはそのまま保持され、電源供給が再開された場合に、前述のＳ１００１〜Ｓ１００５の処理により、再度始めからプログラムの実行を行うことなく、電源遮断までの演算処理により得られたデータを用いて処理を行うことができる。
【００３３】
また、本例によれば、端末はレスポンス送信を求める要求を含めたコマンドデータを送信することにより、ＩＣカードから対応するレスポンスデータを受信することができるため、端末側でレスポンスを受信できない場合のＩＣカード側の状況を把握する必要がない。仮に端末側でＩＣカード側の状況を把握しようとする場合、コマンドデータを送信してからレスポンスデータを受信するまでの間に、例えば演算開始や演算終了、レスポンスデータ格納などのＩＣカード１の状況を示すデータをＩＣカード１から複数回送信しなければならず、また端末１においてそれらの情報を保持し、状況に応じたコマンドデータを送信しなければならないため、ＩＣカード１および端末２双方の処理が煩雑化する可能性があある。
【００３４】
一方、Ｓ１００９において揮発性設定可能領域１３０を揮発モードに設定した場合、電源供給が遮断された場合、コマンドデータ格納領域１３２やレスポンスデータ格納領域１３３に記憶されたデータは保持されないため、Ｓ１０１０とＳ１０１２の両方または一方を省略して実行するようにしても良い。
【００３５】
Ｓ１００７においてコマンドデータにフラグが含まれていないと判定した場合は、演算処理部１０は、コマンドデータ格納領域１３２に記憶されている識別情報を読み出し、Ｓ１００６において受信したコマンドデータに含まれる識別情報が一致するかどうかを照合する（Ｓ１０１４）。識別情報が一致した場合（Ｓ１０１５ ＹＥＳ）、Ｓ１０１３に移行し、レスポンスデータ格納領域１３３に格納されたレスポンスデータを読み出して送信する。一方、コマンドデータ格納領域１３２に受信した識別情報とは別の識別情報が記憶されている場合や、コマンドデータ格納領域１３２に識別情報が記憶されていない場合、演算処理部１０は、Ｓ１０１０に移行し、新たに演算処理を行う。
【００３６】
電源供給が停止されるまで、演算処理部１０は図２に示す処理を繰り返すように制御する。
【００３７】
以上説明したように、本例によれば、端末の要求に応じてＩＣカードで実行されている一連の処理の途中で電源が遮断された場合であっても、電源の再供給時に、適切に処理を再開することができる。
【符号の説明】
【００３８】
１…ＩＣカード、２…端末、１０…演算処理部、１１…通信部、１２…記憶部、１３…電力受信部、１２０…不揮発領域、１２１…実行プログラム格納領域、１２２…不揮発データ格納領域、１２３…揮発性設定情報領域、１３０…揮発性設定可能領域、１３１…ワーク領域、１３２…コマンドデータ格納領域、１３３…レスポンスデータ格納領域
【図１】
2012022356.tif 000003
【図２】
2012022356.tif 000004