(57)【要約】【課題】  ＩＣカード処理装置からのコマンドに応じてＩＣカードが不揮発性メモリ上のデータ格納領域へのデータの書き込みを行う処理に要する時間を短縮することができる。【解決手段】  外部装置から受信したコマンドに基づいてデータを不揮発性メモリ上のデータ格納領域に書き込む必要がある場合、不揮発性メモリ上のバッファ領域に当該データを書き込み、上記バッファ領域へのデータの書き込みが終了した際にバッファ領域への書き込み完了を示す応答データを外部装置へ出力し、当該データをデータ格納領域に書き込むようにしたものである。【選択図】      図１
2006011818.tif 000002
【特許請求の範囲】
【請求項１】
メモリを有する携帯可能電子装置において、
データが書き込まれる前記メモリ上のデータ格納領域と、
前記データ格納領域に書き込むべきデータが一旦書き込まれる前記メモリ上のバッファ領域と、
外部装置からのコマンドを受信する受信手段と、
この受信手段により外部装置から受信したコマンドに基づいて前記データ格納領域に書き込むべきデータを前記バッファ領域に書き込むバッファ書込手段と、
このバッファ書込手段により前記バッファ領域へのデータの書き込みが完了した際に、前記外部装置に当該コマンドに対する応答データを送信する送信手段と、
この送信手段により応答データを送信した後に、前記バッファ領域に書き込んだデータを前記データ格納領域に書き込むデータ書込手段と、
を具備することを特徴とする携帯可能電子装置。
【請求項２】
さらに、前記データ書込手段による前記データ格納領域へのデータの書き込み中に前記外部装置から他のコマンドが供給された場合、前記データ書込手段による前記データ格納領域へのデータの書き込みを中断する中断手段と、
前記中断手段により前記データ格納領域へのデータの書き込みを中断した状態において前記受信手段による前記外部装置からの他のコマンドの受信が完了した後、前記データ書込手段による当該データの書き込みを再開する再開手段と、
を具備することを特徴とする前記請求項１に記載の携帯可能電子装置。
【請求項３】
さらに、前記再開手段により再開した前記データ格納領域へのデータの書き込みが完了した後に、前記中断手段により前記データ格納領域へのデータの書き込みを中断した状態で前記受信手段により受信したコマンドに応じた処理を実行する実行手段、
を具備することを特徴とする前記請求項２に記載の携帯可能電子装置。
【請求項４】
さらに、前記データ格納領域に書き込むべきデータのうち前記バッファ領域への書き込みが必要なデータを示す情報が記憶されている前記メモリ上のバッファ指定領域と、
このバッファ指定領域に記憶されている情報に基づいて前記外部装置から供給されたコマンドに基づいて前記データ格納領域に書き込むべきデータを前記バッファ領域に書き込むか否かを判断する判断手段と、を有し、
前記判断手段により前記データ格納領域に書き込むべきデータを前記バッファ領域に書き込まないと判断した場合に、前記バッファ書込手段による前記バッファ領域への当該データの書き込みを行わずに、前記データ書込手段により前記データ格納領域への当該データの書き込みを行う処理手段と、
を具備することを特徴とする前記請求項１に記載の携帯可能電子装置。
【請求項５】
さらに、前記バッファ書込手段により前記バッファ領域に書き込まれているデータに対するバッファ管理情報を記憶する前記メモリ上のバッファ管理領域と、
当該携帯可能電子装置が起動した際、前記バッファ管理領域に記憶されているバッファ管理情報に基づいて前記バッファ領域に前記データ格納領域に書き込むべきデータが存在するか否かを判断する判断手段と、
前記判断手段により前記バッファ領域に前記データ格納領域に書き込むべきデータが存在すると判断した場合、前記バッファ管理領域に記憶されている前記バッファ管理情報に基づいて前記データ書込手段により前記バッファ領域に書き込まれているデータを前記データ格納領域に書き込む処理手段と、
を具備することを特徴とする前記請求項１に記載の携帯可能電子装置。
【請求項６】
さらに、前記処理手段による前記バッファ管理情報に基づく前記データ格納領域へのデータの書き込みが完了した場合、前記バッファ管理領域における当該バッファ管理情報を初期化する初期化手段、
を具備することを特徴とする前記請求項５に記載の携帯可能電子装置。
【請求項７】
メモリを有する携帯可能電子装置の制御方法であって、
外部装置からのコマンドを受信し、
この外部装置から受信したコマンドに基づいて前記メモリ上のデータ格納領域に書き込むべきデータを前記メモリ上のバッファ領域に書き込み、
前記バッファ領域へのデータの書き込みが完了した際に、前記外部装置に当該コマンドに対する応答データを送信し、
前記応答データを前記外部装置へ送信した後に、前記バッファ領域に書き込んだデータを前記データ格納領域に書き込む処理を行う、
ことを特徴とする携帯可能電子装置の制御方法。
【請求項８】
さらに、前記データ格納領域へのデータの書き込み中に前記外部装置から他のコマンドが供給された場合に、前記データ格納領域へのデータの書き込みを中断し、
前記データ格納領域へのデータの書き込みを中断した状態において前記外部装置からの前記他のコマンドの受信が完了した後に、前記データ格納領域へのデータの書き込みを再開する、
ことを特徴とする前記請求項７に記載の携帯可能電子装置の制御方法。
【請求項９】
さらに、前記メモリ上のバッファ指定領域に記憶されている前記データ格納領域に書き込むべきデータのうち前記バッファ領域への書き込みが必要なデータを示すバッファ指定情報に基づいて、前記外部装置から供給されたコマンドに基づいて前記データ格納領域に書き込むべきデータを前記バッファ領域に書き込むか否かを判断し、
前記判断により前記データ格納領域に書き込むべきデータを前記バッファ領域に書き込まないと判断した場合、前記バッファ領域への当該データの書き込みを行わずに、前記データ格納領域への当該データの書き込みを行う、
ことを特徴とする前記請求項７に記載の携帯可能電子装置の制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、例えば、外部装置との通信機能を有し、外部装置からのコマンドに応じてデータを不揮発性メモリに書込む処理を行うＩＣカードなどの携帯可能電子装置及び携帯可能電子装置の制御方法に関する。
【背景技術】
【０００２】
従来、ＩＣカードなどの携帯可能電子装置では、種々のデータを不揮発性メモリ上に書き込んで運用している。このようなＩＣカードなどの携帯可能電子装置に用いられる不揮発性メモリには、その運用時において、ＩＣカード処理装置などの外部装置からのコマンドに応じてデータの書き込みが行われるようになっている。例えば、従来のＩＣカードでは、以下のような手順にて不揮発性メモリへのデータの書込処理を行っている。
【０００３】
まず、外部装置からの電源およびクロックの供給を受けて活性化されたＩＣカードは、外部装置からのコマンドを受信すると、そのコマンドに対する処理を実行する。そのコマンドに対する処理内容に応じて不揮発性メモリに書き込む必要があるデータについては、一旦不揮発性メモリ上のバッファ領域に書き込み、バッファ領域に書き込んだ内容と同じデータを不揮発性メモリ上のデータ格納領域に書き込む。これにより、不揮発性メモリ上のデータ格納領域へのデータの書き込みが完了すると、コマンドの実行結果を示すステータスとコマンドの処理に応じたレスポンスデータを処理結果として外部装置へ出力する。
【０００４】
このように、従来のＩＣカードでは、ＩＣカードが外部装置からコマンドを受信してから処理結果を外部装置へ出力するまで、不揮発性メモリ上のバッファ領域とデータ格納領域とにデータの書き込みを行っている。つまり、コマンドを受信してから不揮発性メモリへのデータの書き込みを２度行ってからコマンドに対する処理結果を出力するため、コマンド受信から処理結果の出力までの処理時間が長いという問題がある。さらに、上記のような処理手順を行うようにすると、外部装置とＩＣカードとからなるシステム全体としてコマンド処理にかかる時間長くなってしまうという問題点もある。
【０００５】
また、データ書き込みの処理時間を短縮するために、全てのデータをバッファ領域を経由せずに直接データ格納領域に書き込んでしまうと、コマンド処理途中（データの書き込み中）に電源が遮断などの不具合が生じた場合、コマンド実行前のデータあるいはコマンド実行後のデータを保持（保証）できないという問題が発生する。特に、ＩＣカードの運用時においては、どのような環境でコマンド処理が行われるかが不明であるため、書き込みデータを保証する手順が重要である。従って、従来のＩＣカードでは、データ格納領域に書き込む全てのデータをバッファ領域に一旦書き込んでから、データ格納領域に書き込むようにしている。この結果、２度の不揮発性メモリへの書き込み処理が生じて上述のような理由からコマンドの処理に時間がかかってしまうという問題点もある。
【特許文献１】特開２００３−２１６５１１号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
この発明は、外部装置からのコマンドに応じた不揮発性メモリへのデータの書き込み処理にかかる時間を短縮することができ、外部装置とのデータの送受信によって行われるコマンド処理を効率的に行うことができる携帯可能電子装置および携帯可能電子装置の制御方法を提供することを目的とする。
【課題を解決するための手段】
【０００７】
この発明の携帯可能電子装置は、メモリを有するものにおいて、データが書き込まれる前記メモリ上のデータ格納領域と、前記データ格納領域に書き込むべきデータが一旦書き込まれる前記メモリ上のバッファ領域と、外部装置からのコマンドを受信する受信手段と、この受信手段により外部装置から受信したコマンドに基づいて前記データ格納領域に書き込むべきデータを前記バッファ領域に書き込むバッファ書込手段と、このバッファ書込手段により前記バッファ領域へのデータの書き込みが完了した際に、前記外部装置に当該コマンドに対する応答データを送信する送信手段と、この送信手段により応答データを送信した後に、前記バッファ領域に書き込んだデータを前記データ格納領域に書き込むデータ書込手段とを有する。
【０００８】
この発明の携帯可能電子装置の制御方法は、メモリを有する携帯可能電子装置の制御方法であって、外部装置からのコマンドを受信し、この外部装置から受信したコマンドに基づいて前記メモリ上のデータ格納領域に書き込むべきデータを前記メモリ上のバッファ領域に書き込み、前記バッファ領域へのデータの書き込みが完了した際に、前記外部装置に当該コマンドに対する応答データを送信し、前記応答データを前記外部装置へ送信した後に、前記バッファ領域に書き込んだデータを前記データ格納領域に書き込む処理を行う。
【発明の効果】
【０００９】
この発明は、外部装置からのコマンドに応じた不揮発性メモリへのデータの書き込み処理にかかる時間を短縮することができ、外部装置とのデータの送受信によって行われるコマンド処理を効率的に行うことができる携帯可能電子装置および携帯可能電子装置の制御方法を提供できる。
【発明を実施するための最良の形態】
【００１０】
以下、この発明を実施するための最良の形態について図面を参照して詳細に説明する。  
図１は、この発明の実施の形態に係る携帯可能電子装置としてのＩＣカード２とＩＣカード２との通信を行う外部装置としてのＩＣカード処理装置１の構成例を概略的に示すブロック図である。
【００１１】
上記ＩＣカード処理装置１は、ＩＣカード２と通信する上位機器（外部装置）としての端末機器である。例えば、上記ＩＣカード処理装置１は、ＩＣカード２にデータを書き込む場合、ＩＣカード２へ書込み要求と書込みデータからなる書込みコマンドを送信し、その書込みコマンドに対する応答をＩＣカード２から受信するようになっている。上記ＩＣカード処理装置１は、制御部１１、表示部１２、操作部１３、及びインターフェース部１４を有している。例えば、上記ＩＣカード処理装置１は、制御部１１、表示部１２、操作部１３を有するＰＣと、そのＰＣに接続されたリーダライタ装置としてのインターフェース部１４とにより構成される。
【００１２】
上記制御部１１は、ＣＰＵや種々のメモリなどにより構成される。上記制御部１１は、当該ＩＣカード２内の各部を制御することにより、上記ＩＣカード２と送受信するコマンドを制御する機能、及び、ＩＣカード２から受信したデータを基に種々の処理を行う機能などを有している。上記表示部１２は、ディスプレイ装置により構成され、上記制御部１１による表示制御に基づいて種々のデータを表示する。上記操作部１３は、キーボード等により構成され、オペレータなどにより種々の操作指示やデータなどが入力される。上記インターフェース部１４は、上記ＩＣカード２とのインターフェース装置である。上記インターフェース部１４は、例えば、上記ＩＣカード２への電源供給、クロック供給、リセット制御、データの送受信を行うようになっている。
【００１３】
また、上記ＩＣカード２は、図１に示すように、制御部２１、ＲＡＭ２２、ＲＯＭ２３、不揮発性メモリ２４、およびインターフェース２５などから構成される。上記制御部２１、ＲＡＭ２２、ＲＯＭ２３、不揮発性メモリ２４、およびインターフェース２５は、例えば、ＩＣチップ（図示しない）により構成され、ＩＣカード２の筐体内に埋設されている。
【００１４】
上記制御部２１は、ＩＣカード２全体の制御を司るものである。上記制御部２１は、上記ＲＯＭ２３あるいは不揮発性メモリ２４に記憶された制御プログラムに基づいて動作する。上記ＲＡＭ２２は、ワーキングメモリとして機能する揮発性のメモリである。上記ＲＡＭ２２は、上記制御部２１が処理中のデータなどを一時保管するバッファとして機能し、例えば、上記インターフェース２５により上記ＩＣカード処理装置１から受信したデータを一時保管するようになっている。
【００１５】
上記ＲＯＭ２３は、予め制御用のプログラムや制御データなどが記憶されている不揮発性のメモリである。上記ＲＯＭ２３は、製造段階でＩＣカード２内に組み込まれるものであり、上記ＲＯＭ２３に記憶されている制御プログラムは、予め当該ＩＣカード２の仕様に応じて組み込まれるものである。
【００１６】
上記不揮発性メモリ２４は、例えば、ＥＥＰＲＯＭあるいはフラッシュＲＯＭなどのデータの書込み及び書き換えが可能な不揮発性のメモリにより構成される。上記不揮発性メモリ２４には、当該ＩＣカード２の運用用途に応じてプログラムファイルやデータファイルなどが定義され、それらのファイルにデータが書き込まれる。
【００１７】
また、上記不揮発性メモリ２４には、バッファ指定領域２４ａ、バッファ管理領域２４ｂ、バッファ領域２４ｃ、およびデータ格納領域２４ｄが設けられている。上記バッファ指定領域２４ａ、バッファ管理領域２４ｂ、バッファ領域２４ｃ及びデータ格納領域２４ｄは、主に、当該ＩＣカード２の運用時に使用されるメモリ領域である。
【００１８】
上記バッファ指定領域２４ａは、バッファ領域２４ｃに一旦記憶した後にデータ格納領域２４ｄに記憶する必要がある領域を示す情報が格納される。つまり、上記不揮発性メモリのデータ格納領域２４ｄに記憶するデータは、上記バッファ指定領域２４ａに記憶されている情報を参照して、バッファ領域２４ｃに一旦書き込んでからデータ格納領域２４ｄに書き込む必要があるか否かが判断される。
【００１９】
上記バッファ管理領域２４ｂは、使用中のバッファ領域の範囲を示す情報が格納される。上記バッファ管理領域２４ｂには、バッファ領域２４ｃにデータを書き込んだ際にその範囲を示す情報が書き込まれ、さらに、その情報により示される範囲のデータがデータ格納領域２４ｄに書き込まれた際に初期化（削除）されるようになっている。つまり、上記バッファ管理領域２４ｂに記録されている情報によってバッファ領域のどの範囲が使用中があるかが判断されるようになっている。
【００２０】
上記バッファ領域２４ｃは、上記データ格納領域２４ｄ内の所定の領域に書き込むべきデータを一時的に格納する領域である。  
上記データ格納領域２４ｄは、上記ＩＣカード処理装置１からの要求に基づいてデータが書き込まれる領域である。すなわち、上記ＩＣカード処理装置１からデータの書込みコマンドを受信した場合、その書込みコマンドにより書き込むべきデータは、一旦バッファ領域２４ｃに書き込まれた後、上記データ格納領域２４ｄの指定位置に書き込まれるようになっている。
【００２１】
上記インターフェース２５は、ＩＣカード処理装置１などの上位機器との通信を行う通信インターフェースである。上記インターフェース２５は、ＩＣカード本体に設けられている図示しないコンタクト部あるいはアンテナ等を介して上位機器とのデータの送受信を行うものである。
【００２２】
また、上記ＩＣカード２は、上記ＩＣカード処理装置１などの上位機器から電力などの供給を受けた際、活性化される（動作可能な状態になる）ようになっている。例えば、上記ＩＣカード２が接触式通信により上記ＩＣカード処理装置１と接続される場合、つまり、上記ＩＣカード２が接触式のＩＣカードで構成される場合、上記ＩＣカード２は、上記インターフェース２５としてのコンタクト部を介してＩＣカード処理装置１からの動作電源および動作クロックの供給を受けて活性化される。
【００２３】
また。ＩＣカード２が非接触式の通信方式により上記ＩＣカード処理装置１と接続される場合、つまり、上記ＩＣカード２が非接触式のＩＣカードで構成される場合、上記ＩＣカード２は、上記インターフェース２５としてのアンテナおよび通信制御部等を介してＩＣカード処理装置１からの電波を受信し、その電波から図示しない電源部により動作電源および動作クロックを生成して活性化するようになっている。
【００２４】
次に、ＩＣカード処理装置１およびＩＣカード２の処理について概略的に説明する。  
図２は、上記ＩＣカード処理装置１と上記ＩＣカード２との処理を時系列的に示した図である。  
まず、ＩＣカード処理装置１とＩＣカード２とは、ＩＣカード２を活性化させて通信可能な状態とするイニシャル処理を行う。すなわち、上記ＩＣカード処理装置１のインターフェース部１４とＩＣカード２のインターフェース２５とが接続されると、上記ＩＣカード処理装置１は、ＩＣカード２に対して電源及びクロックを供給する。上記ＩＣカード処理装置１とＩＣカード２とが通信状態となると、上記ＩＣカード処理装置１は、ＩＣカード２に対してリセット信号を送信する。
【００２５】
これに対して、上記ＩＣカード２は、上記ＩＣカード処理装置１からのリセット信号を受信し、上記ＩＣカード処理装置１から受信したリセット信号に基づいてリセット処理を実行する。リセット信号に基づくリセット処理が終了すると、上記ＩＣカード２は、ＡＴＲ信号をＩＣカード処理装置１へ送信する。
【００２６】
上記ＩＣカード２からのＡＴＲ信号を受信したＩＣカード処理装置１では、所定の起動時の処理を実行する。以上のようなイニシャル処理によって、上記ＩＣカード２がリセットされ、上記ＩＣカード処理装置１とＩＣカード２とがコマンドの送受信やコマンドに基づく処理が実行可能な状態となる。この状態において、ＩＣカード処理装置１とＩＣカード２との間でコマンド処理が行われる。
【００２７】
すなわち、コマンド処理において、上記ＩＣカード処理装置１は、コマンドデータ（例えば、データの書込み要求と書込みデータ）を上記ＩＣカード２へ送信する。このコマンドデータを受信したＩＣカード２では、コマンドに応じた処理を実行するとともに、書込みデータをバッファ領域２４ｃに書き込む。
【００２８】
当該コマンドの処理における書込みデータのバッファ領域２４ｃへの書込みが完了すると、上記ＩＣカード２は、上記バッファ領域２４ｃへの書込み完了を示すステータスと処理結果などのデータ（レスポンスデータ）を上記ＩＣカード処理装置１へ送信する。このようなステータスを送信したＩＣカード２では、上記バッファ領域２４ｃに書き込んだデータを上記データ格納領域２４ｄの指定された領域に書き込む処理を行う。
【００２９】
一方、上記ＩＣカード２からバッファ領域２４ｃへの書込み完了を示すステータスと処理結果などのデータ（レスポンスデータ）を受信した上記ＩＣカード処理装置１では、上記レスポンスデータに基づく処理を実行する。
【００３０】
上記のようなコマンド処理によれば、ＩＣカード２内でのデータ格納領域２４ｄへのデータの書込みと、ＩＣカード処理装置１でのレスポンスデータに基づく処理が並行して実施される。これにより、ＩＣカード処理装置１とＩＣカード２とのデータの送受信による処理が処理全体として短縮される。言い換えると、ＩＣカード処理装置１がレスポンスデータに基づく処理を行っている間に、ＩＣカード２内でデータ格納領域２４ｄへのデータの書込みを行うようにしたため、データ格納領域２４ｄへのデータの書込み処理にかかる時間を全体として短縮できる。
【００３１】
次に、上記のようなコマンド処理の処理手順について詳細に説明する。  
図３は、コマンド処理の処理手順を説明するためのフローチャートである。  
まず、ＩＣカード処理装置１が上記インターフェース部１４によりＩＣカード２に対してコマンドデータ（コマンド）を送信したものとする（ステップＳ１０）。上記ＩＣカード処理装置１からのコマンドデータを受けた際（ステップＳ１１）、上記ＩＣカード２の制御部２１は、データ格納領域２４ｄへのデータ書込み処理中であるか否かを判断する（ステップＳ１２）。ここで、データ書込み処理とは、前回受信したコマンドデータに基づくデータ格納領域２４ｄへのデータ書込み処理である。
【００３２】
上記判断によりデータ格納領域２４ｄへのデータ書込み処理中であると判断した場合（ステップＳ１２、ＹＥＳ）、上記ＩＣカード２の制御部２１は、実行中のデータ格納領域２４ｄへのデータ書込み処理と並行して当該コマンドデータの受信処理が可能であるか否かを判断する（ステップＳ１３）。
【００３３】
この判断により並行処理が不可能であると判断した場合（ステップＳ１３、ＮＯ）、上記ＩＣカード２の制御部２１は、実行中のデータ格納領域２４ｄへのデータ書込み処理を中断する（ステップＳ１４）。なお、上記データ格納領域２４ｄへのデータ書込み処理は、後述するように不揮発性メモリとしてのバッファ領域２４ｃに書き込まれているデータをデータ格納領域２４ｄに書き込む処理であるため、一旦中断して他の処理を先に実行することが可能である。
【００３４】
実行中のデータ格納領域２４ｄへのデータ書込み処理を中断すると、上記ＩＣカード２の制御部２１は、上記インターフェース２５を介して上記ＩＣカード処理装置１からのコマンドデータを受信する受信処理を行う（ステップＳ１５）。この受信処理において、上記ＩＣカード２の制御部２１は、上記ＩＣカード処理装置１からのコマンドデータを上記インターフェース２５を介して受信し、受信したコマンドデータを一旦ＲＡＭ２２に取り込む。
【００３５】
ここで、上記ＩＣカード処理装置１からのコマンドデータの受信処理が完了すると、上記ＩＣカード２の制御部２１は、中断していたデータ格納領域２４ｄへのデータ書込み処理を再開する（ステップＳ１６）。このデータ書込み処理が完了すると、上記ＩＣカード２の制御部２１は、ステップＳ１８へ進み、上記ステップＳ１５で受信したコマンドデータに基づくコマンド処理を実行する（ステップＳ１８）。
【００３６】
また、上記判断によりデータ格納領域２４ｄへのデータ書込み処理中でないと判断した場合（ステップＳ１２、ＮＯ）、あるいは、並行処理（データ格納領域２４ｄへのデータ書込み処理とコマンドデータの受信処理との並行処理）が可能であると判断した場合（ステップＳ１３、ＹＥＳ）、上記ＩＣカード２の制御部２１は、上記インターフェース２５を介して上記ＩＣカード処理装置１からのコマンドデータを受信する受信処理を行う（ステップＳ１７）。この受信処理において、上記ＩＣカード２の制御部２１は、上記ＩＣカード処理装置１からのコマンドデータを上記インターフェース２５を介して受信し、受信したコマンドデータを一旦ＲＡＭ２２に取り込む。
【００３７】
上記ステップＳ１６でデータ書込み処理が完了した際、あるいは、上記ステップＳ１７で上記ＩＣカード処理装置１からのコマンドデータの受信処理が完了した際、上記ＩＣカード２の制御部２１は、当該コマンドデータに基づくコマンド処理を実行する（ステップＳ１８）。このコマンド処理の処理結果に基づき、上記ＩＣカード２の制御部２１は、上記不揮発性メモリ２４のデータ格納領域２４ｄに書き込むべきデータがあるか否かを判断する（ステップＳ１９）。
【００３８】
この判断により上記データ格納領域２４ｄに書き込むべきデータがあると判断した場合（ステップＳ１９、ＹＥＳ）、上記ＩＣカード２の制御部２１は、当該データの書込み領域（データ格納領域における書込み位置を示すアドレス）と上記バッファ指定領域２４ａに記憶されている指定領域を示す情報とに基づいて当該データをバッファ領域２４ｃを経由して書き込む必要があるか否かを判断する（ステップＳ２０）。
【００３９】
ここで、上記バッファ指定領域２４ａには、上記バッファ領域２４ｃに一旦記録してからデータ格納領域２４ｄに書き込む必要があるデータをデータ格納領域２４ｄにおける領域（指定領域）を示す情報として記憶されている。つまり、データ格納領域２４ｄでは、種々のデータがそれぞれ所定の領域に記憶されるようになっており、それらのデータには、データ書込み処理中の電源切断などによるエラーによって正常なデータが書き込まれなかった場合にＩＣカードの正常な動作ができなくなってしまうようなものがある。
【００４０】
このようなデータは、バッファ領域２４ｃに一旦書き込んでからデータ格納領域２４ｄに書き込むようにすることにより、データ書込み処理中にエラーが起きた場合であってもバッファ領域２４ｃに記憶されているデータによって正常なデータに復帰することが可能となっている。従って、上記バッファ指定領域２４ａには、バッファ領域２４ｃを経由してデータ格納領域２４ｄに書き込むべきデータをデータ格納領域における領域を示す情報（アドレス情報）として格納されている。
【００４１】
上記判断により当該データを一旦バッファ領域２４ｃへ書込む必要であると判断した場合（ステップＳ２０、ＹＥＳ）、上記ＩＣカード２の制御部２１は、当該データをバッファ領域２４ｃへ書込むデータ書込み処理を行う（ステップＳ２１）。このバッファ領域２４ｃへのデータ書込み処理が完了すると、上記ＩＣカード２の制御部２１は、当該データを書き込んだバッファ領域２４ｃにおける領域（書込み範囲）を示す情報や当該データを書き込むべき上記データ格納領域２４ｄにおける書き込み領域を示す情報などをバッファ管理情報として上記バッファ管理領域２４ｂに記憶する（ステップＳ２２）。
【００４２】
この場合、上記バッファ領域２４ｃへのデータ書込み処理が完了すると、上記ＩＣカード２の制御部２１は、上記インターフェース２５により上記バッファ領域２４ｃへの書込み処理の完了を示すステータスとコマンド処理により得られたデータ（レスポンスデータ）とを処理結果として上記ＩＣカード処理装置１へ送信する（ステップＳ２３）。
【００４３】
また、上記判断によりデータ格納領域２４ｄに書き込むべきデータがバッファ領域２４ｃを経由する必要がないと判断した場合（ステップＳ２０、ＮＯ）、つまり、当該データをバッファ領域２４ｃに書き込まずに直接データ格納領域２４ｄに書き込むことが可能であると判断した場合、上記ＩＣカードの制御部２１は、当該データを直接的に上記データ格納領域の所定の領域に書き込むデータ書込み処理を行う（ステップＳ２４）。
【００４４】
この場合、上記データ格納領域２４ｄへの直接のデータ書込み処理が完了すると、上記ＩＣカード２の制御部２１は、上記インターフェース２５によりコマンドの実行結果を示すステータスとコマンド処理により得られたデータ（レスポンスデータ）とを処理結果として上記ＩＣカード処理装置１へ送信する（ステップＳ２３）。
【００４５】
なお、上記コマンド処理によりデータ格納領域２４ｄに書き込みべきデータがないと判断された場合、上記ＩＣカード２の制御部２１は、上記インターフェース２５によりコマンドの実行結果を示すステータスとコマンド処理により得られたデータ（レスポンスデータ）を処理結果として上記ＩＣカード処理装置１へ送信する（ステップＳ２３）。
【００４６】
このような動作のＩＣカード２に対して、上記ＩＣカード処理装置１では、上記インターフェース部１４により上記ＩＣカード２からの当該コマンドに対する処理結果を受信する（ステップＳ２５）。上記ＩＣカード２からコマンドに対する処理結果（レスポンスデータ）を受信した場合、上記ＩＣカード処理装置１の制御部１１は、上記ＩＣカード２から受信したコマンドに対する処理結果としてのレスポンスデータに基づいて種々の処理を実行する（ステップＳ２６）。
【００４７】
上記コマンドに対する処理結果（レスポンスデータ）を送信した場合、上記ＩＣカード２の上記制御部２１は、上記バッファ管理領域２４ｂに記憶されている情報に基づいて上記バッファ領域２４ｃに書き込んだデータがあるか否かを判断する（ステップＳ２７）。この判断によりバッファ領域２４ｃに書き込んだデータがあると判断した場合、上記ＩＣカード２の制御部２１は、上記バッファ管理領域２４ｂに記憶されている情報に基づいて上記バッファ領域２４ｃに記憶されているデータを正規の記憶領域であるデータ格納領域２４ｄの所定領域に書込む処理を行う（ステップＳ２８）。
【００４８】
つまり、上記データ格納領域２４ｄに書き込むべきデータをバッファ領域２４ｃに記憶した場合、上記ＩＣカード２の上記制御部２１は、上記バッファ領域２４ｃへの書込み処理の完了を示すステータスとコマンド処理により得られたデータとを処理結果として上記ＩＣカード処理装置１へ送信した後、上記バッファ領域２４ｃに書き込んだデータをデータ格納領域２４ｄに書込む処理を行うようになっている（ステップＳ２８）。
【００４９】
さらに、上記バッファ領域２４ｃに書き込まれているデータのデータ格納領域２４ｄへの書込みが完了すると、上記ＩＣカード２の制御部２１は、上記バッファ管理領域２４ｂに記憶している当該データに対するバッファ管理情報を初期化（削除）する（ステップＳ２９）。
【００５０】
上記のような処理によれば、バッファ領域への書き込みが完了した際に、ＩＣカード処理装置１へコマンド処理の完了を示す応答データを送信し、当該ＩＣカード処理装置が応答データに対する処理を行って次のコマンドを受信するまでの間に、バッファ領域に書き込んだデータのデータ格納領域への書き込みを行うことができる。これにより、ＩＣカード処理装置におけるＩＣカードからの応答データに基づく処理と、ＩＣカードにおけるデータ格納領域へのデータの書き込み処理と、並行して行うことができ、システム全体としてコマンドに対する処理を高速化、効率化できる。
【００５１】
なお、上記ＩＣカード処理装置におけるＩＣカードでのコマンドに対する処理結果に基づく処理は、ＩＣカード内での不揮発性メモリへのデータの書込み処理に比べて処理時間がかかるものが多い。例えば、ＩＣカードからの応答データに応じたＩＣカード処理装置での処理の処理時間がＩＣカードでのデータ格納領域へのデータ書き込み処理の処理時間よりも長ければ、ＩＣカードでのデータ格納領域へのデータ書き込み処理に要する時間分がシステム全体の処理時間として短縮することが可能となる。このように、ＩＣカード２でのデータ格納領域へのデータの書込み処理とＩＣカード処理装置１での処理とを並行して行うようにしたことにより、ＩＣカードとＩＣカード処理装置とからなるシステム全体としてのコマンド処理の処理時間を短縮することができ、コマンド処理の効率化を図ることができる。
【００５２】
次に、上記のようなＩＣカード２が活性化された際の動作について説明する。  
上記ＩＣカード２は、上述しように、ＩＣカード処理装置１などの上位機器からの電源供給を受けて活性化するようになっている。このため、図３を用いて説明したようなコマンド処理の途中で電源が遮断された場合、つまり、処理中にＩＣカード処理装置１からの電源供給が瞬断された場合、当該ＩＣカード２の不揮発性メモリ２４においては、実行中のコマンド処理によるデータの状態が様々な状態となりうる。
【００５３】
例えば、バッファ領域２４ｃへの書込みが完了していない状態で電源が遮断された場合、上記ＩＣカード２では、バッファ領域２４ｃにもデータ格納領域２４ｄにもコマンド処理後のデータが記憶されていない状態となっている。また、バッファ領域２４ｃへの書込みは完了しているが、データ格納領域２４ｄへのデータの書込みが完了していない場合、当該ＩＣカード２では、バッファ領域２４ｃにはコマンド処理後のデータが記憶されているが、データ格納領域２４ｄには当該データが記憶されていない状態となっている。
【００５４】
上記のようなコマンド処理の途中での電源遮断に対応するため、上記ＩＣカード２では、活性化した際に不揮発性メモリ２４におけるデータの状態に応じた処理を行うようになっている。以下、ＩＣカード２が活性化した際の処理について説明する。
【００５５】
図４は、上記ＩＣカード２が活性化した際の処理手順を説明するためのフローチャートである。  
すなわち、上記ＩＣカード処理装置１と上記ＩＣカード２とが互いのインターフェースを介して接続されると、上述したようなイニシャル処理が行われる（ステップＳ３１）。このイニシャル処理によって上記ＩＣカード２が活性化される。活性化したＩＣカード２の制御部２１は、まず、上記バッファ管理領域２４ｂに記憶されているバッファ管理情報を読み出す（ステップＳ３２）。これにより、上記ＩＣカード２の制御部２１は、上記バッファ管理領域２４ｂにバッファ管理情報が記憶されているか否かによって使用中のバッファ領域が存在するか否かを判断する（ステップＳ３３）。この判断では、上記バッファ管理領域２４ｂにおけるバッファ管理情報の有無によって上記データ格納領域２４ｄへの書込みが完了していないデータがバッファ領域２４ｃに存在するか否かを判断している。
【００５６】
上記判断により使用中のバッファ領域２４ｃが存在すると判断した場合（ステップＳ３３、ＹＥＳ）、上記ＩＣカード２の制御部２１は、上記バッファ管理領域２４ｂに記憶されているバッファ管理情報に基づいて、上記バッファ領域２４ｃに記憶されているデータをデータ格納領域２４ｄに書き込む処理を行う（ステップＳ３４）。
【００５７】
すなわち、上記ＩＣカード２の制御部２１は、上記バッファ管理領域２４ｂに記憶されているバッファ管理情報に基づいて、上記バッファ領域２４ｃにおけるデータが書き込まれている範囲（領域）を判断し、その範囲に書き込まれているデータをデータ格納領域２４ｄの指定領域に書き込む処理を行うようになっている。
【００５８】
このようなバッファ領域２４ｃに書き込まれているデータをデータ格納領域の指定領域に書き込む処理が完了すると、上記ＩＣカード２の制御部２１は、上記バッファ管理領域２４ｂの当該バッファ管理情報を初期化（削除）する（ステップＳ３５）。これにより、当該ＩＣカード２は、通常のコマンド処理が可能な状態となる（ステップＳ３６）。
【００５９】
上記のような処理によれば、前回、上記バッファ領域２４ｃにのみデータが書き込まれている状態で電源が遮断された場合（例えば、バッファ領域２４ｃのデータをデータ格納領域２４ｄに書込み中に電源が遮断された場合）、当該ＩＣカードは、再度活性化した際に、上記バッファ領域２４ｃに書き込まれているデータをデータ格納領域２４ｄの正規の領域に書き込むことができる。この結果、上記ＩＣカード２では、上記データ格納領域２４ｄに前回のコマンド処理に伴うデータが書き込まれた状態で次回以降のコマンド処理を実行することができる。
【００６０】
また、前回、上記バッファ領域２４ｃにも正常なデータが書き込まれていない状態で電源が遮断された場合（例えば、バッファ領域２４ｃへの書込み中に電源が遮断された場合）には、当該ＩＣカード２は、前回のコマンド処理が実行されていない状態（前回のコマンド処理に伴うデータが書き込まれていない状態）で次回以降のコマンド処理を実行することができる。従って、上記のような処理により、不正なデータがデータ格納領域２４ｄに書き込まれた状態でＩＣカード２が動作することを防止できる。
【００６１】
次に、上記データ格納領域２４ｄへのデータ書込み処理においてエラーが発生した場合について説明する。  
例えば、データ格納領域２４ｄへのデータ書込み処理中に不具合が発生した場合、そのデータは、バッファ領域２４ｃに保持されている。このため、データ格納領域２４ｄへのデータ書込み処理中に電源遮断などが起きた場合には、図４で説明したような動作によって、バッファ領域２４ｃに記憶されているデータをデータ格納領域２４ｄに再度書込みことにより正常に行うことができる。しかしながら、上記データ格納領域２４ｄにおけるメモリ素子の動作不良などによって正常なデータの書込みができないような場合、ＩＣカード処理装置１ではコマンド処理の完了を示す通知を受けているにもかかわらずに、実際にはデータ格納領域２４ｄに正常なデータが書き込まれていないという状態が生じる。
【００６２】
このような場合、上記ＩＣカード２の制御部２１は、上記データ格納領域２４ｄへのデータ書込みのエラーに対するエラー処理を行う。このような場合のエラー処理としては、例えば、上記データ格納領域２４ｄへの書込みエラーが発生した後、次のコマンドを上記ＩＣカード処理装置１から受信した際に上記ＩＣカード処理装置１へ書込みエラーが生じていることを通知するようにすれば良い。この場合、当該ＩＣカード２からＩＣカード処理装置１へ書込みエラーを通知した後、従来の書込み処理のエラーに対する処理と同様な処理を行う。これにより、当該ＩＣカード２で発生した書き込みエラーに対する回復処理を行うことができる。
【００６３】
また、上記データ格納領域２４ｄへの書込みデータに対するエラー処理としては、上記バッファ領域２４ｃに上記データ格納領域２４ｄに書き込むべきデータが正常な状態が書き込まれているため、当該データが書き込まれているバッファ領域２４ｃ上の領域を正規のデータ格納領域２４ｄとして使用するようにしても良い。この場合、上記不揮発性メモリ２４におけるバッファ領域２４ｃ及びデータ格納領域２４ｄを定義する情報を変更することにより、書き込みエラーから回復することができる。
【００６４】
上記のように、本実施の形態では、電源が切られてもデータを保持する事が可能で、かつ、書換可能な不揮発性メモリ、外部装置との通信用のインターフェース、および、制御部を有するＩＣカードにおいて、上記不揮発性メモリに、データを格納するデータ格納領域と、そのデータ格納領域に書き込むべきデータを一時的に書き込むバッファ領域とを設け、上記インターフェースにより上記外部装置から受信したコマンドに対応する処理の結果としてデータをデータ格納領域に書き込む必要がある場合、上記制御部は、上記バッファ領域に当該データを書き込み、コマンド処理とバッファ領域へのデータの書き込みが終了した際にバッファ領域への書き込み完了を示す応答データを外部装置へ出力してから、上記バッファ領域に書き込んだデータを上記データ格納領域に書き込む処理を行うようにしたものである。
【００６５】
これにより、バッファ領域に書き込んだデータをデータ格納領域に書き込み処理は、外部装置から次のコマンドを受信するまでの間（コマンド受信待ち状態の間）に、行うことができる。従って、データ格納領域へのデータの書き込みを外部装置への応答データの出力後に行う事が可能となり、外部装置からコマンドを受信してからＩＣカードが応答データを出力するまでの時間（コマンド処理に要する時間）を短縮できる。
【００６６】
さらに、データ格納領域へデータ書き込み中に、外部装置から他のコマンドを受信した場合、データ格納領域へのデータ書き込み処理を中断し、外部装置からのコマンドの受信処理を行ってから前記データ格納領域へデータの書き込みを再開し、その書き込みが終了後に、受信したコマンドに対する処理を実行するようにしたものである。これにより、データ格納領域へのデータの書き込み中に次にコマンドが供給される場合であっても、データ格納領域へのデータの書き込み処理とコマンドの受信処理とを正常に行うことができ、コマンドに対する処理の時間を短縮することができる。
【００６７】
さらに、データ格納領域に書き込むべきデータのうちバッファ領域に一旦書き込む必要があるデータを示す情報をバッファ指定領域に記憶しておき、不揮発性メモリへのデータの書き込みを行う際、バッファ書き込み指定領域を参照して、バッファ領域への書き込みが必要か否かを判断し、バッファ領域への書き込みが必要と判断したデータはバッファ領域を経由してデータ格納領域へ書き込み、バッファ領域への書き込みが必要でないと判断したデータはバッファ領域を経由せずに直接データ格納領域に書き込むようにしたものである。これにより、バッファ領域へ書き込む必要があるデータを最小限に抑える事が可能となり、すべてのデータがバッファ領域を経由する場合に比べて、処理時間を短縮する事が可能となり、コマンドに対する処理を効率化できる。
【００６８】
さらに、バッファ領域に書き込んだデータ格納領域に書き込むべきデータに対するバッファ管理情報を記憶し、当該データのデータ格納領域への書き込みが完了したら当該バッファ管理情報を初期化するバッファ管理領域を設けて、バッファ領域のデータを管理するようにしたものである。これにより、データ格納領域へのデータの書き込み中に電源遮断などによってＩＣカードが不活性状態になっても、不揮発性メモリ内のデータを保証することができる。
【００６９】
さらに、ＩＣカードが不活性状態から活性状態になった際に、バッファ管理領域の情報を基に、バッファ領域を参照してデータ格納領域に書き込みべきデータが存在するか否かを判断し、データ格納領域に書き込むべきデータが存在する場合には、当該バッファ管理情報に基づいてデータ格納領域への当該データの書き込み処理を行うようにしたものである。これにより、ＩＣカードが活性化した際に、バッファ領域のデータ格納領域に書き込むべきデータをデータ格納領域に書き込むようにしたため、データを保証することができるとともに、ＩＣカード内の処理を効率化することが可能となる。
【図面の簡単な説明】
【００７０】
【図１】この発明の実施の形態に係る携帯可能電子装置としてのＩＣカードとＩＣカードとの通信を行う外部装置としてのＩＣカード処理装置の構成例を概略的に示すブロック図。
【図２】ＩＣカード処理装置とＩＣカードとの処理を時系列的に示した図。
【図３】コマンド処理の処理手順を説明するためのフローチャート。
【図４】ＩＣカードが活性化した際の処理手順を説明するためのフローチャート。
【符号の説明】
【００７１】
１…ＩＣカード処理装置（外部装置）、２…ＩＣカード（携帯可能電子装置）、１１…制御部、１２…表示部、１３…操作部、１４…インターフェース部、２１…制御部、２２…ＲＡＭ、２３…ＲＯＭ、２４…不揮発性メモリ、２４ａ…バッファ指定領域、２４ｂ…バッファ管理領域、２４ｃ…バッファ領域、２４ｄ…データ格納領域、２５…インターフェース
【図１】
2006011818.tif 000003
【図２】
2006011818.tif 000004
【図３】
2006011818.tif 000005
【図４】
2006011818.tif 000006