(57)【要約】【課題】ＩＣカードのデータ書き換えの際に異常が生じたとしても、データを修復し、かつ国際規格に規定された初期応答情報を返信すべき制限時間を守ることが可能な情報処理装置及びデータ処理方法を提供する。【解決手段】書き換え処理が正常に終了しなかった場合、ＩＣカード１は、リーダライタ２からリセット信号を受信し当該リセット信号に対する初期応答情報をリーダライタ２へ応答し当該応答後にコマンドを受信すると、当該コマンドの受信から当該コマンドに応じたコマンド処理の処理結果を送信するまでの間に、退避領域に退避されたデータの消去処理、退避領域に退避されたデータの書き換え対象領域への書き込み処理、または退避領域を書き換え対象領域に変更する領域変更処理を実行する。【選択図】図３
2015146071.tif 000002
【特許請求の範囲】
【請求項１】
外部機器との間で通信可能な情報処理装置であって、
メモリの書き換え対象領域のデータの書き換え処理を実行するデータ書換手段であって、前記書き換え対象領域のデータを前記書き換え対象領域とは異なる領域に書き込んだ後に前記書き換え対象領域のデータを書き換える前記書き換え処理、書き込みデータを前記書き換え対象領域とは異なる領域に書き込んだ後に前記書き込みデータにより前記書き換え対象領域のデータを書き換える前記書き換え処理、または書き込みデータを前記書き換え対象領域とは異なる領域に書き込んだ後に当該書き込みデータが書き込まれた領域を前記書き換え対象領域に変更する前記書き換え処理を実行するデータ書換手段と、
前記書き換え処理が正常に終了しなかった場合において、前記外部機器からリセット信号を受信するリセット受信手段と、
前記リセット受信手段により受信されたリセット信号に対する初期応答情報を前記外部機器へ応答する応答手段と、
前記応答手段による応答後に、前記外部機器からコマンドを受信するコマンド受信手段と、
前記コマンド受信手段により受信されたコマンドに応じたコマンド処理を実行し、当該コマンド処理の処理結果を前記外部機器へ送信するコマンド処理手段と、
を備え、
前記コマンド処理手段は、前記書き換え処理が正常に終了しなかった場合において、前記コマンドの受信から前記処理結果を送信するまでの間に、前記書き換え対象領域とは異なる領域に書き込まれた前記データの消去処理、前記書き換え対象領域とは異なる領域に書き込まれた前記データの前記書き換え対象領域への書き込み処理、または前記書き換え対象領域とは異なる領域を前記書き換え対象領域に変更する領域変更処理を実行することを特徴とする情報処理装置。
【請求項２】
前記書き換え処理が正常に終了しなかった場合において、前記コマンドが前記応答後に最初に受信されたコマンドである場合に、前記コマンド処理手段は、前記消去処理、書き込み処理、または領域変更処理を実行することを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記消去処理、書き込み処理、または領域変更処理と、前記コマンド処理とに要する処理時間が、予め設定された時間を超える場合に、前記外部機器に対して待ち時間の延長要求を送信する延長要求送信手段を更に備えることを特徴とする請求項１または２に記載の情報処理装置。
【請求項４】
外部機器との間で通信可能な情報処理装置に含まれるコンピュータにより実行されるデータ処理方法であって、
メモリの書き換え対象領域のデータの書き換え処理を実行するデータ書換手段であって、前記書き換え対象領域のデータを前記書き換え対象領域とは異なる領域に書き込んだ後に前記書き換え対象領域のデータを書き換える前記書き換え処理、書き込みデータを前記書き換え対象領域とは異なる領域に書き込んだ後に前記書き込みデータにより前記書き換え対象領域のデータを書き換える前記書き換え処理、または書き込みデータを前記書き換え対象領域とは異なる領域に書き込んだ後に当該書き込みデータが書き込まれた領域を前記書き換え対象領域に変更する前記書き換え処理を実行するデータ書換ステップと、
前記書き換え処理が正常に終了しなかった場合において、前記外部機器からリセット信号を受信するリセット受信ステップと、
前記リセット受信ステップにより受信されたリセット信号に対する初期応答情報を前記外部機器へ応答する応答ステップと、
前記応答ステップによる応答後に、前記外部機器からコマンドを受信するコマンド受信ステップと、
前記コマンド受信ステップにより受信されたコマンドに応じたコマンド処理を実行し、当該コマンド処理の処理結果を前記外部機器へ送信するコマンド処理ステップと、
を含み、
前記コマンド処理ステップにおいては、前記書き換え処理が正常に終了しなかった場合において、前記コマンドの受信から前記処理結果を送信するまでの間に、前記書き換え対象領域とは異なる領域に書き込まれた前記データの消去処理、前記書き換え対象領域とは異なる領域に書き込まれた前記データの前記書き換え対象領域への書き込み処理、または前記書き換え対象領域とは異なる領域を前記書き換え対象領域に変更する領域変更処理を実行することを特徴とするデータ処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、外部機器との間で通信可能なＩＣカードの技術分野に関する。
【背景技術】
【０００２】
一般に、ＩＣカードは外部機器（例えば、ＩＣカードリーダライタ）からのデータ書き換えコマンドと書き換えデータを受信すると、ＩＣカードのＣＰＵあるいはシーケンサによる書き換え処理手続きを経て、不揮発性メモリのデータを書き換える。ＩＣカードに内蔵される不揮発性メモリの書き換えには、数ミリ秒の時間が必要である。ＩＣカードのＣＰＵあるいはシーケンサは、書き換え終了までに必要な時間あるいは書き換え終了を示す信号を受信した後、書き換えたデータをベリファイし、書き換え結果の正常／異常を外部機器へ返信する。
【０００３】
一般的なＩＣカードには偽造や鍵漏洩を防止するためのプログラムやセンサーが組み込まれているため、使用している最中に発生した物理的な衝撃や信号ノイズによって動作が中断する場合がある。接触式ＩＣカードは、外部機器の電極から電源を供給され、電極を通じて信号を送受信しているため、電極の接点不良や電極に印加されるノイズが動作停止の原因となる。また、非接触式ＩＣカードは外部機器（例えば、無線ＩＣカードリーダライタ）に近づくことにより、磁界をエネルギーとして無結線状態で動作する。このため、非接触式ＩＣカードは、外部機器から離れて、動作に必要なエネルギーの供給を受けなくなると動作が途中で中断する。書き込み処理が停止すると、書き込み途中であったメモリ上のデータの信頼性が損なわれるため、以降に継続してＩＣカードを使用することが不可能になってしまう。
【０００４】
特許文献１に開示されたＩＣカードでは、書き換え処理を実施する際に、書き換え対象領域のデータを退避させた後に、書き換え処理を実行し、書き換え処理が正常に終了しなかった場合には、動作可能となった時点で、書き換え対象領域を退避データによって書き戻し、退避していたデータを消去することにより、データの信頼性を保持している。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００８−９５２１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
ところが、ＩＣカード等の国際規格ISO/IEC 7816-3及びISO/IEC 14443-3 では、ＩＣカードが起動されてから初期応答情報を返さなければならない時間が規定されており、この規定時間内に初期応答情報を返信しなければ、ＩＣカードは外部機器との通信を確立することができない。そのため、書き戻しデータが少量であれば、特許文献１に開示されたＩＣカードのように、動作可能となった時点において書き戻し処理を実行する方式は有効であるが、書き戻しデータがある一定量を超えると、国際規格に規定されている制限時間を超えてしまうため、ＩＣカードが外部機器との通信を確立することができなくなる。
【０００７】
特に、トランザクションの概念を実現する場合には、複数のデータが同時に更新された状態になるか、あるいは更新されていなかった状態にならなければならないため、メモリ容量が少ないＩＣカードと言えども、容易に制限時間を超えてしまうという問題があった。
【０００８】
そこで、本発明は、ＩＣカードのデータ書き換えの際に異常が生じたとしても、データを修復し、かつ国際規格に規定された初期応答情報を返信すべき制限時間を守ることが可能な情報処理装置及びデータ処理方法を提供することを目的とする。
【課題を解決するための手段】
【０００９】
上記課題を解決するために、請求項１に記載の発明は、外部機器との間で通信可能な情報処理装置であって、メモリの書き換え対象領域のデータの書き換え処理を実行するデータ書換手段であって、前記書き換え対象領域のデータを前記書き換え対象領域とは異なる領域に書き込んだ後に前記書き換え対象領域のデータを書き換える前記書き換え処理、書き込みデータを前記書き換え対象領域とは異なる領域に書き込んだ後に前記書き込みデータにより前記書き換え対象領域のデータを書き換える前記書き換え処理、または書き込みデータを前記書き換え対象領域とは異なる領域に書き込んだ後に当該書き込みデータが書き込まれた領域を前記書き換え対象領域に変更する前記書き換え処理を実行するデータ書換手段と、前記書き換え処理が正常に終了しなかった場合において、前記外部機器からリセット信号を受信するリセット受信手段と、前記リセット受信手段により受信されたリセット信号に対する初期応答情報を前記外部機器へ応答する応答手段と、前記応答手段による応答後に、前記外部機器からコマンドを受信するコマンド受信手段と、前記コマンド受信手段により受信されたコマンドに応じたコマンド処理を実行し、当該コマンド処理の処理結果を前記外部機器へ送信するコマンド処理手段と、を備え、前記コマンド処理手段は、前記書き換え処理が正常に終了しなかった場合において、前記コマンドの受信から前記処理結果を送信するまでの間に、前記書き換え対象領域とは異なる領域に書き込まれた前記データの消去処理、前記書き換え対象領域とは異なる領域に書き込まれた前記データの前記書き換え対象領域への書き込み処理、または前記書き換え対象領域とは異なる領域を前記書き換え対象領域に変更する領域変更処理を実行することを特徴とする。
【００１０】
請求項２に記載の発明は、請求項１に記載の情報処理装置において、前記書き換え処理が正常に終了しなかった場合において、前記コマンドが前記応答後に最初に受信されたコマンドである場合に、前記コマンド処理手段は、前記消去処理、書き込み処理、または領域変更処理を実行することを特徴とする。
【００１１】
請求項３に記載の発明は、請求項１または２に記載の情報処理装置において、前記消去処理、書き込み処理、または領域変更処理と、前記コマンド処理とに要する処理時間が、予め設定された時間を超える場合に、前記外部機器に対して待ち時間の延長要求を送信する延長要求送信手段を更に備えることを特徴とする。
【００１２】
請求項４に記載の発明は、外部機器との間で通信可能な情報処理装置に含まれるコンピュータにより実行されるデータ処理方法であって、メモリの書き換え対象領域のデータの書き換え処理を実行するデータ書換手段であって、前記書き換え対象領域のデータを前記書き換え対象領域とは異なる領域に書き込んだ後に前記書き換え対象領域のデータを書き換える前記書き換え処理、書き込みデータを前記書き換え対象領域とは異なる領域に書き込んだ後に前記書き込みデータにより前記書き換え対象領域のデータを書き換える前記書き換え処理、または書き込みデータを前記書き換え対象領域とは異なる領域に書き込んだ後に当該書き込みデータが書き込まれた領域を前記書き換え対象領域に変更する前記書き換え処理を実行するデータ書換ステップと、前記書き換え処理が正常に終了しなかった場合において、前記外部機器からリセット信号を受信するリセット受信ステップと、前記リセット受信ステップにより受信されたリセット信号に対する初期応答情報を前記外部機器へ応答する応答ステップと、前記応答ステップによる応答後に、前記外部機器からコマンドを受信するコマンド受信ステップと、前記コマンド受信ステップにより受信されたコマンドに応じたコマンド処理を実行し、当該コマンド処理の処理結果を前記外部機器へ送信するコマンド処理ステップと、を含み、前記コマンド処理ステップにおいては、前記書き換え処理が正常に終了しなかった場合において、前記コマンドの受信から前記処理結果を送信するまでの間に、前記書き換え対象領域とは異なる領域に書き込まれた前記データの消去処理、前記書き換え対象領域とは異なる領域に書き込まれた前記データの前記書き換え対象領域への書き込み処理、または前記書き換え対象領域とは異なる領域を前記書き換え対象領域に変更する領域変更処理を実行することを特徴とする。
【発明の効果】
【００１３】
本発明によれば、ＩＣカードのデータ書き換えの際に異常が生じたとしても、データを修復し、かつ国際規格に規定された初期応答情報を返信すべき制限時間を守ることができる。
【図面の簡単な説明】
【００１４】
【図１】ＩＣカード１の概要構成例を示す図である。
【図２】ＣＰＵ１１の書き換え処理の一例を示すフローチャートである。
【図３】ＩＣカード１の起動時（再起動時）におけるＣＰＵ１１の処理の一例を示すフローチャートである。
【図４】コマンドの受信から処理結果の送信までにおける処理の流れを示すシーケンス図である。
【発明を実施するための形態】
【００１５】
以下、図面を参照して本発明の実施形態について詳細に説明する。以下に説明する実施形態は、ＩＣカードに対して本発明を適用した場合の実施の形態である。
【００１６】
先ず、図１を参照して、本実施形態に係るＩＣカードの構成及び機能等について説明する。図１は、ＩＣカード１の概要構成例を示す図である。ＩＣカード１は、金融、通信、交通等の様々な分野で用いられるＩＣカードの他、携帯電話機やスマートホン等の携帯端末に搭載されるＩＣカードとして適用可能である。ＩＣカード１は、リーダライタ２（外部機器の一例）との間で通信可能になっている。
【００１７】
ＩＣカード１に搭載されるＩＣチップＣ（本発明の情報処理装置の一例）は、図１に示すように、ＣＰＵ(Central Processing Unit)１１、ＲＯＭ(Read Only Memory)１２、ＲＡＭ(Random Access Memory)１３、不揮発性メモリ１４、及びＩ／Ｏ回路１５等を備えている。不揮発性メモリ１４は、例えばフラッシュメモリであるが、ＥＥＰＲＯＭであってもよい。Ｉ／Ｏ回路１５は、ＩＳＯ／ＩＥＣ７８１６等によって定められた、Ｃ１〜Ｃ８の８個の端子を有する。ここで、Ｃ１端子は電源端子（ＶＣＣ）であり、Ｃ５端子はグランド端子（ＧＮＤ）である。また、Ｃ２端子は、リセット端子（ＲＳＴ）であり、リーダライタ２からリセット信号を入力するために用いられる。また、Ｃ３端子は、クロック端子（ＣＬＫ）であり、クロック信号を入力するために用いられる。Ｃ７端子は、リーダライタ２との間の通信のために用いられる。なお、この例では、接触式のＩＣカードの例を示したが、外部機器に近づくことにより、磁界をエネルギーとして無結線状態で電源供給され（電圧印加され）、動作する非接触式ＩＣカードであってもよい。
【００１８】
ＲＯＭ１２又は不揮発性メモリ１４は、オペレーティングシステム、及び各種アプリケーションプログラムが記憶される。また、不揮発性メモリ１４には、書き換え対象領域と、書き換え対象領域とは異なる領域とが含まれる。書き換え対象領域には、データが記憶される。書き換え対象領域とは異なる領域には、上記データの退避先として当該データが記憶される退避領域が含まれる。なお、書き換え対象領域とは異なる領域には、退避領域以外の領域も存在するが、説明を省略する。ＲＡＭ１３には、退避領域に退避されるデータ等が一時的に記憶される。
【００１９】
ＣＰＵ１１は、上記オペレーティングシステム及び各種アプリケーションプログラムを実行することで、本発明におけるデータ書換手段、リセット受信手段、応答手段、コマンド処理手段、及び延長要求送信手段として機能する。これにより、ＣＰＵ１１は、リーダライタ２からＩ／Ｏ回路１５を介してリセット信号を受信すると、当該受信されたリセット信号に対する初期応答情報をリーダライタ２へ応答する。そして、ＣＰＵ１１は、上記応答後に、リーダライタ２からＩ／Ｏ回路１５を介してコマンドを受信すると、当該受信されたコマンドに応じたコマンド処理を実行し、当該コマンド処理の処理結果をリーダライタ２へ送信する。また、例えば、上記コマンドが書き換えコマンドであった場合、上記コマンド処理において、ＣＰＵ１１は、書き換え対象領域のデータ（つまり、既に書き込まれているデータ）を退避領域に退避させた後（つまり、書き込み完了後）後に当該データを書き換える書き換え処理（いわゆるロールバック方式の一例）を実行する。または、ＣＰＵ１１は、書き込みデータ（つまり、新たに書き込まれるデータ）を書き換え対象領域とは異なる領域（一時的な領域）に書き込んだ後（つまり、書き込み完了後）に、書き込みデータにより書き換え対象領域（本領域）のデータを書き換える（つまり、更新する）書き換え処理（いわゆるロールフォワード方式の一例）を実行する。または、ＣＰＵ１１は、書き込みデータを書き換え対象領域（本領域）とは異なる領域（一時的な領域）に書き込んだ後に当該書き込みデータが書き込まれた領域を書き換え対象領域に変更（当該一時的な領域を本領域に変更するようにアドレス変更）する書き換え処理（いわゆるロールフォワード方式の他の例）を実行する。
【００２０】
そして、ＣＰＵ１１は、書き換え処理中に、例えば不揮発性メモリ１４の故障や不具合等が発生することにより、書き換え処理が正常に終了しなかった場合、再起動により、再び、リーダライタ２からリセット信号を受信して、当該受信されたリセット信号に対する初期応答情報をリーダライタ２へ応答し、上記応答後に、リーダライタ２からコマンドを受信することになるが、この場合、ＣＰＵ１１は、当該コマンドの受信から当該コマンドに応じたコマンド処理の処理結果を送信するまでの間に、上記退避領域に退避された上記データの消去処理、または退避領域に退避された上記データの書き換え対象領域への書き戻し処理（書き込み処理）を実行する。或いは、ＣＰＵ１１は、当該コマンドの受信から当該コマンドに応じたコマンド処理の処理結果を送信するまでの間に、上記一時的な領域に書き込まれた書き込みデータの消去処理、上記一時的な領域に書き込まれた書き込みデータの書き換え対象領域（本領域）への書き込み処理（つまり、一時的な領域の内容を使用して更新を実施）、または上記一時的な領域を書き換え対象領域（本領域）に変更する領域変更処理を実行する。つまり、消去処理、書き込み処理（例えば、書き戻し処理など）、または領域変更処理は、起動直後に実行されるのではなく、起動してから受信されたコマンド（例えば最初に受信されたコマンド）に応じたコマンド処理が実行される直前または直後に実行される。
【００２１】
従来一般に、コンピュータにおけるスタートアップチェックは、起動時（電源投入時）に全ての項目（ＲＡＭやＩ／Ｏ等チェック）が行われ、正常であれば、アイドル状態に移行してコマンド受付可能状態となるが、本実施形態では、消去処理、書き込み処理（例えば、書き戻し処理）、または領域変更処理に限っては起動時に実行されるのではなく（ＲＡＭやＩ／Ｏ等チェック等のスタートアップチェックは従来と同様、起動時に行われる）、起動してから受信されたコマンドに応じたコマンド処理が実行される直前または直後に実行されるように構成した。そのため、ＩＣカード１のデータ書き換えの際に異常が生じたとしても、データを修復し、かつ国際規格に規定された初期応答情報を返信すべき制限時間を守ることが可能となる。ただし、この構成では、例えば書き戻しデータがある一定量を超えると、コマンド処理の実行中に処理時間が国際規格ISO/IEC 7816-3及びISO/IEC 14443-3に規定されている待ち時間（ブロック待ち時間）を超える場合がありうる。したがって、待ち時間を超えると予想された場合、つまり、上記消去処理、書き込み処理（例えば、書き戻し処理）、または領域変更処理とコマンド処理とに要する処理時間が、予め設定された時間を超える場合には、ＣＰＵ１１は、リーダライタ２に対して待ち時間の延長要求を送信する。この待ち時間の延長要求は、国際規格で定められている。リーダライタ２は、待ち時間の延長要求を判断し、これに応じたことを示す結果をＩＣカード１へ返信する。これにより、ＣＰＵ１１は、上記消去処理、書き込み処理（例えば、書き戻し処理）、または領域変更処理とコマンド処理とが完了するまで、必要に応じて、待ち時間の延長要求を送出しながら処理を実行することになる。
【００２２】
次に、図２を参照して、本実施形態に係るＩＣカード１におけるＣＰＵ１１の書き換え処理について説明する。図２は、ＣＰＵ１１の書き換え処理の一例を示すフローチャートである。図２に示す処理は、例えば書き換えコマンドが受信された場合に開始される。図２に示す処理が開始すると、ＣＰＵ１１は、カウンターを初期化（例えば“１”にセット）する（ステップＳ１）。次いで、ＣＰＵ１１は、書き換え対象領域のデータを退避領域に退避させる（ステップＳ２）。次いで、ＣＰＵ１１は、退避領域への退避が正常に終了したか否かを判定する（ステップＳ３）。そして、退避領域への退避が正常に終了したと判定された場合（ステップＳ３：ＹＥＳ）、ステップＳ４へ進む。一方、不揮発性メモリ１４の故障や不具合等により、退避領域への退避が正常に終了しないと判定された場合（ステップＳ３：ＮＯ）、図２に示す処理が終了し、コマンド処理を終了させることになる。なお、コマンド処理の終了にあたっては、ＣＰＵ１１は、カウンターの値に応じてステータスワードを応答する。例えば、カウンターが“０”の場合、ＣＰＵ１１は、正常終了を示すステータスワードを応答する。一方、カウンターが“０”以外の場合、ＣＰＵ１１は、エラーを示すステータスワードを応答する。
【００２３】
ステップＳ４では、ＣＰＵ１１は、カウンターを加算（例えば“１”を加算）する。次いで、ＣＰＵ１１は、書き換え対象領域のデータを書き換える（ステップＳ５）。次いで、ＣＰＵ１１は、書き換え対象領域のデータの書き換えが正常に終了したか否かを判定する（ステップＳ６）。そして、書き換え対象領域のデータの書き換えが正常に終了したと判定された場合（ステップＳ６：ＹＥＳ）、ステップＳ７へ進む。一方、不揮発性メモリ１４の故障や不具合等により、書き換え対象領域のデータの書き換えが正常に終了しないと判定された場合（ステップＳ６：ＮＯ）、図２に示す処理が終了し、コマンド処理を終了させることになる。
【００２４】
ステップＳ７では、ＣＰＵ１１は、カウンターを加算（例えば“１”を加算）する。次いで、ＣＰＵ１１は、退避領域に退避されたデータを消去する（ステップＳ８）。次いで、ＣＰＵ１１は、データの消去が正常に終了したか否かを判定する（ステップＳ９）。そして、データの消去が正常に終了したと判定された場合（ステップＳ９：ＹＥＳ）、カウンターがリセット（例えば“０”にリセット）され（ステップＳ１０）、図２に示す処理が終了する。一方、不揮発性メモリ１４の故障や不具合等により、データの消去が正常に終了しないと判定された場合（ステップＳ９：ＮＯ）、図２に示す処理が終了し、コマンド処理を終了させることになる。
【００２５】
次に、図３を参照して、本実施形態に係るＩＣカード１の起動時（再起動時）の処理について説明する。図３は、ＩＣカード１の起動時（再起動時）におけるＣＰＵ１１の処理の一例を示すフローチャートである。
【００２６】
図２に示す書き換え処理が正常に終了しなかった場合（電源遮断が発生した場合を含む）において、再起動により図３が開始されると、ＣＰＵ１１は、リーダライタ２から送信されたリセット信号を受信する（ステップＳ１１）。次いで、第１コマンド受信情報を初期化（例えば“０”にセット）する（ステップＳ１２）。次いで、ＣＰＵ１１は、ステップＳ１１で受信されたリセット信号に対する初期応答情報をリーダライタ２へ応答（送信）し（ステップＳ１３）、コマンド受信待ち状態となる（ステップＳ１４）。そして、ＣＰＵ１１は、リーダライタ２から送信されたコマンドを受信した場合（ステップＳ１５）、第１コマンド受信情報が初期化された値（例えば“０”）であるか否かを判定する（ステップＳ１６）。そして、第１コマンド受信情報が初期化された値（例えば“０”）であると判定された場合（ステップＳ１６：ＹＥＳ）、つまり、ステップＳ１５で受信されたコマンドが再起動後に最初に受信されたコマンド（第１コマンド）である場合、ステップＳ１７へ進む。これにより、最初に受信されたコマンド（第１コマンド）の場合に、上記消去処理又は書き戻し処理が実行されるので、データを迅速に修復し、その後は不要となった処理（消去処理または書き戻し処理）を省略することができる。一方、第１コマンド受信情報が初期化された値（例えば“０”）でないと判定された場合（ステップＳ１６：ＮＯ）、ステップＳ２１へ進む。
【００２７】
ステップＳ１７では、ＣＰＵ１１は、カウンター値を判定する。そして、ＣＰＵ１１は、カウンター値が“１”又は“３”であると判定した場合、上記退避領域に退避されたデータを消去（削除）し（ステップＳ１８）、ステップＳ２０へ進む。一方、ＣＰＵ１１は、カウンター値が“２”であると判定した場合、退避領域に退避されたデータを、書き換え対象領域への書き戻し（ステップＳ１９）、ステップＳ２０へ進む。一方、カウンター値が“０”であると判定した場合、そのまま、ステップＳ２０へ進む。
【００２８】
ステップＳ２０では、ＣＰＵ１１は、第１コマンド受信情報を加算（例えば“１”を加算）する。次いで、ＣＰＵ１１は、ステップＳ１５で受信されたコマンドに応じたコマンド処理を実行し（ステップＳ２１）、当該コマンド処理の処理結果をリーダライタ２へ送信し（ステップＳ２２）、ステップＳ１４に戻る。
【００２９】
次に、図４を参照して、消去処理または書き戻し処理とコマンド処理とに要する処理時間がリーダライタ２の待ち時間を超える場合に、リーダライタ２に対して待ち時間の延長要求がされる場合におけるＣＰＵ１１の処理について説明する。図４は、コマンドの受信から処理結果の送信までにおける処理の流れを示すシーケンス図である。
【００３０】
図４に示すように、ＩＣカード１において、リーダライタ２からコマンドが受信されると（ステップＳ１０１）、タイマーが初期化されタイマーのカウントが開始される（ステップＳ１０２）。ステップＳ１０１で受信されたコマンドが、上述した第１コマンドである場合、書き戻し処理が開始される（ステップＳ１０３）。そして、書き戻し処理が行われているときに（ステップＳ１０４）、タイマーがリミット値に到達した（つまり、タイマーのカウントがカウントアップした）場合、割込み処理が開始され、タイマーが停止され（ステップＳ１０５）、待ち時間の延長要求がリーダライタ２へ送信される（ステップＳ１０６）。そして、リーダライタ２から待ち時間の延長応答が受信されると（ステップＳ１０７）、タイマーが初期化され、タイマーのカウントが開始され、さらに割込み前の処理（つまり、書き戻し処理）に戻る（ステップＳ１０８）。そして、上記ステップＳ１０４〜Ｓ１０８と同様に、ステップＳ１０９〜Ｓ１１３の処理が行われる。そして、書き戻し処理が完了した場合、上記第１コマンドに応じたコマンド処理が実行され（ステップＳ１１４）、当該コマンド処理が完了した場合、コマンド処理の処理結果の送信処理が実行され（ステップＳ１１５）、タイマー停止（ステップＳ１１６及びＳ１１７）がされた後に、上記処理結果がリーダライタ２へ送信され、次にコマンドの受信待ちになる（ステップＳ１１８）。
【００３１】
以上説明したように、上記実施形態によれば、書き換え処理が正常に終了しなかった場合、ＩＣカード１は、リーダライタ２からリセット信号を受信し当該リセット信号に対する初期応答情報をリーダライタ２へ応答し当該応答後にコマンドを受信すると、当該コマンドの受信から当該コマンドに応じたコマンド処理の処理結果を送信するまでの間に、例えば、退避領域に退避されたデータの消去処理、または退避領域に退避されたデータの書き換え対象領域への書き戻し処理等を実行するように構成したので、ＩＣカード１のデータ書き換えの際に異常が生じたとしても、データを修復し、かつ国際規格に規定された初期応答情報を返信すべき制限時間を守ることができる。
【符号の説明】
【００３２】
１  ＩＣカード
２  リーダライタ
１１  ＣＰＵ
１２  ＲＯＭ
１３  ＲＡＭ
１４  不揮発性メモリ
１５  Ｉ／Ｏ回路
【図１】
2015146071.tif 000003
【図４】
2015146071.tif 000004
【図２】
2015146071.tif 000005
【図３】
2015146071.tif 000006