説明

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

【課題】 ICカード処理装置からのコマンドに応じてICカードが不揮発性メモリ上のデータ格納領域へのデータの書き込みを行う処理に要する時間を短縮することができる。
【解決手段】 外部装置から受信したコマンドに基づいてデータを不揮発性メモリ上のデータ格納領域に書き込む必要がある場合、不揮発性メモリ上のバッファ領域に当該データを書き込み、上記バッファ領域へのデータの書き込みが終了した際にバッファ領域への書き込み完了を示す応答データを外部装置へ出力し、当該データをデータ格納領域に書き込むようにしたものである。

【発明の詳細な説明】
【技術分野】
【0001】
この発明は、例えば、外部装置との通信機能を有し、外部装置からのコマンドに応じてデータを不揮発性メモリに書込む処理を行うICカードなどの携帯可能電子装置及び携帯可能電子装置の制御方法に関する。
【背景技術】
【0002】
従来、ICカードなどの携帯可能電子装置では、種々のデータを不揮発性メモリ上に書き込んで運用している。このようなICカードなどの携帯可能電子装置に用いられる不揮発性メモリには、その運用時において、ICカード処理装置などの外部装置からのコマンドに応じてデータの書き込みが行われるようになっている。例えば、従来のICカードでは、以下のような手順にて不揮発性メモリへのデータの書込処理を行っている。
【0003】
まず、外部装置からの電源およびクロックの供給を受けて活性化されたICカードは、外部装置からのコマンドを受信すると、そのコマンドに対する処理を実行する。そのコマンドに対する処理内容に応じて不揮発性メモリに書き込む必要があるデータについては、一旦不揮発性メモリ上のバッファ領域に書き込み、バッファ領域に書き込んだ内容と同じデータを不揮発性メモリ上のデータ格納領域に書き込む。これにより、不揮発性メモリ上のデータ格納領域へのデータの書き込みが完了すると、コマンドの実行結果を示すステータスとコマンドの処理に応じたレスポンスデータを処理結果として外部装置へ出力する。
【0004】
このように、従来のICカードでは、ICカードが外部装置からコマンドを受信してから処理結果を外部装置へ出力するまで、不揮発性メモリ上のバッファ領域とデータ格納領域とにデータの書き込みを行っている。つまり、コマンドを受信してから不揮発性メモリへのデータの書き込みを2度行ってからコマンドに対する処理結果を出力するため、コマンド受信から処理結果の出力までの処理時間が長いという問題がある。さらに、上記のような処理手順を行うようにすると、外部装置とICカードとからなるシステム全体としてコマンド処理にかかる時間長くなってしまうという問題点もある。
【0005】
また、データ書き込みの処理時間を短縮するために、全てのデータをバッファ領域を経由せずに直接データ格納領域に書き込んでしまうと、コマンド処理途中(データの書き込み中)に電源が遮断などの不具合が生じた場合、コマンド実行前のデータあるいはコマンド実行後のデータを保持(保証)できないという問題が発生する。特に、ICカードの運用時においては、どのような環境でコマンド処理が行われるかが不明であるため、書き込みデータを保証する手順が重要である。従って、従来のICカードでは、データ格納領域に書き込む全てのデータをバッファ領域に一旦書き込んでから、データ格納領域に書き込むようにしている。この結果、2度の不揮発性メモリへの書き込み処理が生じて上述のような理由からコマンドの処理に時間がかかってしまうという問題点もある。
【先行技術文献】
【特許文献】
【0006】
【特許文献1】特開2003−216511号公報
【発明の概要】
【発明が解決しようとする課題】
【0007】
この発明は、外部装置からのコマンドに応じた不揮発性メモリへのデータの書き込み処理にかかる時間を短縮することができ、外部装置とのデータの送受信によって行われるコマンド処理を効率的に行うことができる携帯可能電子装置および携帯可能電子装置の制御方法を提供することを目的とする。
【課題を解決するための手段】
【0008】
この発明の携帯可能電子装置は、データが書き込まれるデータ格納領域と、前記データ格納領域に書き込むべきデータが一旦書き込まれるバッファ領域と、を有する書換え可能な不揮発性メモリと、外部装置からのコマンドを受信する受信手段と、この受信手段により外部装置から受信したコマンドに基づいて前記データ格納領域に書き込むべきデータを前記バッファ領域に書き込むバッファ書込手段と、このバッファ書込手段により前記バッファ領域へのデータの書き込みが完了した場合、書込み完了を示す応答データを前記外部装置へ送信する送信手段と、前記バッファ書込手段により前記バッファ領域に書き込んだデータを前記データ格納領域に書き込むデータ書込手段とを有する。
【0009】
この発明の携帯可能電子装置の制御方法は、書換え可能な不揮発性メモリを有する携帯可能電子装置の制御方法であって、外部装置からのコマンドを受信し、この外部装置から受信したコマンドに基づいて前記不揮発性メモリ上のデータ格納領域に書き込むべきデータを前記不揮発性メモリ上のバッファ領域に書き込み、前記不揮発性メモリ上の前記バッファ領域へのデータの書き込みが完了した場合、書込み完了を示す応答データを前記外部装置へ送信し、前記不揮発性メモリ上の前記バッファ領域に書き込んだデータを前記データ格納領域に書き込む処理を行う。
【発明の効果】
【0010】
この発明は、外部装置からのコマンドに応じた不揮発性メモリへのデータの書き込み処理にかかる時間を短縮することができ、外部装置とのデータの送受信によって行われるコマンド処理を効率的に行うことができる携帯可能電子装置および携帯可能電子装置の制御方法を提供できる。
【図面の簡単な説明】
【0011】
【図1】この発明の実施の形態に係る携帯可能電子装置としてのICカードとICカードとの通信を行う外部装置としてのICカード処理装置の構成例を概略的に示すブロック図。
【図2】ICカード処理装置とICカードとの処理を時系列的に示した図。
【図3】コマンド処理の処理手順を説明するためのフローチャート。
【図4】ICカードが活性化した際の処理手順を説明するためのフローチャート。
【発明を実施するための形態】
【0012】
以下、この発明を実施するための最良の形態について図面を参照して詳細に説明する。
図1は、この発明の実施の形態に係る携帯可能電子装置としてのICカード2とICカード2との通信を行う外部装置としてのICカード処理装置1の構成例を概略的に示すブロック図である。
【0013】
上記ICカード処理装置1は、ICカード2と通信する上位機器(外部装置)としての端末機器である。例えば、上記ICカード処理装置1は、ICカード2にデータを書き込む場合、ICカード2へ書込み要求と書込みデータからなる書込みコマンドを送信し、その書込みコマンドに対する応答をICカード2から受信するようになっている。上記ICカード処理装置1は、制御部11、表示部12、操作部13、及びインターフェース部14を有している。例えば、上記ICカード処理装置1は、制御部11、表示部12、操作部13を有するPCと、そのPCに接続されたリーダライタ装置としてのインターフェース部14とにより構成される。
【0014】
上記制御部11は、CPUや種々のメモリなどにより構成される。上記制御部11は、当該ICカード2内の各部を制御することにより、上記ICカード2と送受信するコマンドを制御する機能、及び、ICカード2から受信したデータを基に種々の処理を行う機能などを有している。上記表示部12は、ディスプレイ装置により構成され、上記制御部11による表示制御に基づいて種々のデータを表示する。上記操作部13は、キーボード等により構成され、オペレータなどにより種々の操作指示やデータなどが入力される。上記インターフェース部14は、上記ICカード2とのインターフェース装置である。上記インターフェース部14は、例えば、上記ICカード2への電源供給、クロック供給、リセット制御、データの送受信を行うようになっている。
【0015】
また、上記ICカード2は、図1に示すように、制御部21、RAM22、ROM23、不揮発性メモリ24、およびインターフェース25などから構成される。上記制御部21、RAM22、ROM23、不揮発性メモリ24、およびインターフェース25は、例えば、ICチップ(図示しない)により構成され、ICカード2の筐体内に埋設されている。
【0016】
上記制御部21は、ICカード2全体の制御を司るものである。上記制御部21は、上記ROM23あるいは不揮発性メモリ24に記憶された制御プログラムに基づいて動作する。上記RAM22は、ワーキングメモリとして機能する揮発性のメモリである。上記RAM22は、上記制御部21が処理中のデータなどを一時保管するバッファとして機能し、例えば、上記インターフェース25により上記ICカード処理装置1から受信したデータを一時保管するようになっている。
【0017】
上記ROM23は、予め制御用のプログラムや制御データなどが記憶されている不揮発性のメモリである。上記ROM23は、製造段階でICカード2内に組み込まれるものであり、上記ROM23に記憶されている制御プログラムは、予め当該ICカード2の仕様に応じて組み込まれるものである。
【0018】
上記不揮発性メモリ24は、例えば、EEPROMあるいはフラッシュROMなどのデータの書込み及び書き換えが可能な不揮発性のメモリにより構成される。上記不揮発性メモリ24には、当該ICカード2の運用用途に応じてプログラムファイルやデータファイルなどが定義され、それらのファイルにデータが書き込まれる。
【0019】
また、上記不揮発性メモリ24には、バッファ指定領域24a、バッファ管理領域24b、バッファ領域24c、およびデータ格納領域24dが設けられている。上記バッファ指定領域24a、バッファ管理領域24b、バッファ領域24c及びデータ格納領域24dは、主に、当該ICカード2の運用時に使用されるメモリ領域である。
【0020】
上記バッファ指定領域24aは、バッファ領域24cに一旦記憶した後にデータ格納領域24dに記憶する必要がある領域を示す情報が格納される。つまり、上記不揮発性メモリのデータ格納領域24dに記憶するデータは、上記バッファ指定領域24aに記憶されている情報を参照して、バッファ領域24cに一旦書き込んでからデータ格納領域24dに書き込む必要があるか否かが判断される。
【0021】
上記バッファ管理領域24bは、使用中のバッファ領域の範囲を示す情報が格納される。上記バッファ管理領域24bには、バッファ領域24cにデータを書き込んだ際にその範囲を示す情報が書き込まれ、さらに、その情報により示される範囲のデータがデータ格納領域24dに書き込まれた際に初期化(削除)されるようになっている。つまり、上記バッファ管理領域24bに記録されている情報によってバッファ領域のどの範囲が使用中があるかが判断されるようになっている。
【0022】
上記バッファ領域24cは、上記データ格納領域24d内の所定の領域に書き込むべきデータを一時的に格納する領域である。
上記データ格納領域24dは、上記ICカード処理装置1からの要求に基づいてデータが書き込まれる領域である。すなわち、上記ICカード処理装置1からデータの書込みコマンドを受信した場合、その書込みコマンドにより書き込むべきデータは、一旦バッファ領域24cに書き込まれた後、上記データ格納領域24dの指定位置に書き込まれるようになっている。
【0023】
上記インターフェース25は、ICカード処理装置1などの上位機器との通信を行う通信インターフェースである。上記インターフェース25は、ICカード本体に設けられている図示しないコンタクト部あるいはアンテナ等を介して上位機器とのデータの送受信を行うものである。
【0024】
また、上記ICカード2は、上記ICカード処理装置1などの上位機器から電力などの供給を受けた際、活性化される(動作可能な状態になる)ようになっている。例えば、上記ICカード2が接触式通信により上記ICカード処理装置1と接続される場合、つまり、上記ICカード2が接触式のICカードで構成される場合、上記ICカード2は、上記インターフェース25としてのコンタクト部を介してICカード処理装置1からの動作電源および動作クロックの供給を受けて活性化される。
【0025】
また。ICカード2が非接触式の通信方式により上記ICカード処理装置1と接続される場合、つまり、上記ICカード2が非接触式のICカードで構成される場合、上記ICカード2は、上記インターフェース25としてのアンテナおよび通信制御部等を介してICカード処理装置1からの電波を受信し、その電波から図示しない電源部により動作電源および動作クロックを生成して活性化するようになっている。
【0026】
次に、ICカード処理装置1およびICカード2の処理について概略的に説明する。
図2は、上記ICカード処理装置1と上記ICカード2との処理を時系列的に示した図である。
まず、ICカード処理装置1とICカード2とは、ICカード2を活性化させて通信可能な状態とするイニシャル処理を行う。すなわち、上記ICカード処理装置1のインターフェース部14とICカード2のインターフェース25とが接続されると、上記ICカード処理装置1は、ICカード2に対して電源及びクロックを供給する。上記ICカード処理装置1とICカード2とが通信状態となると、上記ICカード処理装置1は、ICカード2に対してリセット信号を送信する。
【0027】
これに対して、上記ICカード2は、上記ICカード処理装置1からのリセット信号を受信し、上記ICカード処理装置1から受信したリセット信号に基づいてリセット処理を実行する。リセット信号に基づくリセット処理が終了すると、上記ICカード2は、ATR信号をICカード処理装置1へ送信する。
【0028】
上記ICカード2からのATR信号を受信したICカード処理装置1では、所定の起動時の処理を実行する。以上のようなイニシャル処理によって、上記ICカード2がリセットされ、上記ICカード処理装置1とICカード2とがコマンドの送受信やコマンドに基づく処理が実行可能な状態となる。この状態において、ICカード処理装置1とICカード2との間でコマンド処理が行われる。
【0029】
すなわち、コマンド処理において、上記ICカード処理装置1は、コマンドデータ(例えば、データの書込み要求と書込みデータ)を上記ICカード2へ送信する。このコマンドデータを受信したICカード2では、コマンドに応じた処理を実行するとともに、書込みデータをバッファ領域24cに書き込む。
【0030】
当該コマンドの処理における書込みデータのバッファ領域24cへの書込みが完了すると、上記ICカード2は、上記バッファ領域24cへの書込み完了を示すステータスと処理結果などのデータ(レスポンスデータ)を上記ICカード処理装置1へ送信する。このようなステータスを送信したICカード2では、上記バッファ領域24cに書き込んだデータを上記データ格納領域24dの指定された領域に書き込む処理を行う。
【0031】
一方、上記ICカード2からバッファ領域24cへの書込み完了を示すステータスと処理結果などのデータ(レスポンスデータ)を受信した上記ICカード処理装置1では、上記レスポンスデータに基づく処理を実行する。
【0032】
上記のようなコマンド処理によれば、ICカード2内でのデータ格納領域24dへのデータの書込みと、ICカード処理装置1でのレスポンスデータに基づく処理が並行して実施される。これにより、ICカード処理装置1とICカード2とのデータの送受信による処理が処理全体として短縮される。言い換えると、ICカード処理装置1がレスポンスデータに基づく処理を行っている間に、ICカード2内でデータ格納領域24dへのデータの書込みを行うようにしたため、データ格納領域24dへのデータの書込み処理にかかる時間を全体として短縮できる。
【0033】
次に、上記のようなコマンド処理の処理手順について詳細に説明する。
図3は、コマンド処理の処理手順を説明するためのフローチャートである。
まず、ICカード処理装置1が上記インターフェース部14によりICカード2に対してコマンドデータ(コマンド)を送信したものとする(ステップS10)。上記ICカード処理装置1からのコマンドデータを受けた際(ステップS11)、上記ICカード2の制御部21は、データ格納領域24dへのデータ書込み処理中であるか否かを判断する(ステップS12)。ここで、データ書込み処理とは、前回受信したコマンドデータに基づくデータ格納領域24dへのデータ書込み処理である。
【0034】
上記判断によりデータ格納領域24dへのデータ書込み処理中であると判断した場合(ステップS12、YES)、上記ICカード2の制御部21は、実行中のデータ格納領域24dへのデータ書込み処理と並行して当該コマンドデータの受信処理が可能であるか否かを判断する(ステップS13)。
【0035】
この判断により並行処理が不可能であると判断した場合(ステップS13、NO)、上記ICカード2の制御部21は、実行中のデータ格納領域24dへのデータ書込み処理を中断する(ステップS14)。なお、上記データ格納領域24dへのデータ書込み処理は、後述するように不揮発性メモリとしてのバッファ領域24cに書き込まれているデータをデータ格納領域24dに書き込む処理であるため、一旦中断して他の処理を先に実行することが可能である。
【0036】
実行中のデータ格納領域24dへのデータ書込み処理を中断すると、上記ICカード2の制御部21は、上記インターフェース25を介して上記ICカード処理装置1からのコマンドデータを受信する受信処理を行う(ステップS15)。この受信処理において、上記ICカード2の制御部21は、上記ICカード処理装置1からのコマンドデータを上記インターフェース25を介して受信し、受信したコマンドデータを一旦RAM22に取り込む。
【0037】
ここで、上記ICカード処理装置1からのコマンドデータの受信処理が完了すると、上記ICカード2の制御部21は、中断していたデータ格納領域24dへのデータ書込み処理を再開する(ステップS16)。このデータ書込み処理が完了すると、上記ICカード2の制御部21は、ステップS18へ進み、上記ステップS15で受信したコマンドデータに基づくコマンド処理を実行する(ステップS18)。
【0038】
また、上記判断によりデータ格納領域24dへのデータ書込み処理中でないと判断した場合(ステップS12、NO)、あるいは、並行処理(データ格納領域24dへのデータ書込み処理とコマンドデータの受信処理との並行処理)が可能であると判断した場合(ステップS13、YES)、上記ICカード2の制御部21は、上記インターフェース25を介して上記ICカード処理装置1からのコマンドデータを受信する受信処理を行う(ステップS17)。この受信処理において、上記ICカード2の制御部21は、上記ICカード処理装置1からのコマンドデータを上記インターフェース25を介して受信し、受信したコマンドデータを一旦RAM22に取り込む。
【0039】
上記ステップS16でデータ書込み処理が完了した際、あるいは、上記ステップS17で上記ICカード処理装置1からのコマンドデータの受信処理が完了した際、上記ICカード2の制御部21は、当該コマンドデータに基づくコマンド処理を実行する(ステップS18)。このコマンド処理の処理結果に基づき、上記ICカード2の制御部21は、上記不揮発性メモリ24のデータ格納領域24dに書き込むべきデータがあるか否かを判断する(ステップS19)。
【0040】
この判断により上記データ格納領域24dに書き込むべきデータがあると判断した場合(ステップS19、YES)、上記ICカード2の制御部21は、当該データの書込み領域(データ格納領域における書込み位置を示すアドレス)と上記バッファ指定領域24aに記憶されている指定領域を示す情報とに基づいて当該データをバッファ領域24cを経由して書き込む必要があるか否かを判断する(ステップS20)。
【0041】
ここで、上記バッファ指定領域24aには、上記バッファ領域24cに一旦記録してからデータ格納領域24dに書き込む必要があるデータをデータ格納領域24dにおける領域(指定領域)を示す情報として記憶されている。つまり、データ格納領域24dでは、種々のデータがそれぞれ所定の領域に記憶されるようになっており、それらのデータには、データ書込み処理中の電源切断などによるエラーによって正常なデータが書き込まれなかった場合にICカードの正常な動作ができなくなってしまうようなものがある。
【0042】
このようなデータは、バッファ領域24cに一旦書き込んでからデータ格納領域24dに書き込むようにすることにより、データ書込み処理中にエラーが起きた場合であってもバッファ領域24cに記憶されているデータによって正常なデータに復帰することが可能となっている。従って、上記バッファ指定領域24aには、バッファ領域24cを経由してデータ格納領域24dに書き込むべきデータをデータ格納領域における領域を示す情報(アドレス情報)として格納されている。
【0043】
上記判断により当該データを一旦バッファ領域24cへ書込む必要であると判断した場合(ステップS20、YES)、上記ICカード2の制御部21は、当該データをバッファ領域24cへ書込むデータ書込み処理を行う(ステップS21)。このバッファ領域24cへのデータ書込み処理が完了すると、上記ICカード2の制御部21は、当該データを書き込んだバッファ領域24cにおける領域(書込み範囲)を示す情報や当該データを書き込むべき上記データ格納領域24dにおける書き込み領域を示す情報などをバッファ管理情報として上記バッファ管理領域24bに記憶する(ステップS22)。
【0044】
この場合、上記バッファ領域24cへのデータ書込み処理が完了すると、上記ICカード2の制御部21は、上記インターフェース25により上記バッファ領域24cへの書込み処理の完了を示すステータスとコマンド処理により得られたデータ(レスポンスデータ)とを処理結果として上記ICカード処理装置1へ送信する(ステップS23)。
【0045】
また、上記判断によりデータ格納領域24dに書き込むべきデータがバッファ領域24cを経由する必要がないと判断した場合(ステップS20、NO)、つまり、当該データをバッファ領域24cに書き込まずに直接データ格納領域24dに書き込むことが可能であると判断した場合、上記ICカードの制御部21は、当該データを直接的に上記データ格納領域の所定の領域に書き込むデータ書込み処理を行う(ステップS24)。
【0046】
この場合、上記データ格納領域24dへの直接のデータ書込み処理が完了すると、上記ICカード2の制御部21は、上記インターフェース25によりコマンドの実行結果を示すステータスとコマンド処理により得られたデータ(レスポンスデータ)とを処理結果として上記ICカード処理装置1へ送信する(ステップS23)。
【0047】
なお、上記コマンド処理によりデータ格納領域24dに書き込みべきデータがないと判断された場合、上記ICカード2の制御部21は、上記インターフェース25によりコマンドの実行結果を示すステータスとコマンド処理により得られたデータ(レスポンスデータ)を処理結果として上記ICカード処理装置1へ送信する(ステップS23)。
【0048】
このような動作のICカード2に対して、上記ICカード処理装置1では、上記インターフェース部14により上記ICカード2からの当該コマンドに対する処理結果を受信する(ステップS25)。上記ICカード2からコマンドに対する処理結果(レスポンスデータ)を受信した場合、上記ICカード処理装置1の制御部11は、上記ICカード2から受信したコマンドに対する処理結果としてのレスポンスデータに基づいて種々の処理を実行する(ステップS26)。
【0049】
上記コマンドに対する処理結果(レスポンスデータ)を送信した場合、上記ICカード2の上記制御部21は、上記バッファ管理領域24bに記憶されている情報に基づいて上記バッファ領域24cに書き込んだデータがあるか否かを判断する(ステップS27)。この判断によりバッファ領域24cに書き込んだデータがあると判断した場合、上記ICカード2の制御部21は、上記バッファ管理領域24bに記憶されている情報に基づいて上記バッファ領域24cに記憶されているデータを正規の記憶領域であるデータ格納領域24dの所定領域に書込む処理を行う(ステップS28)。
【0050】
つまり、上記データ格納領域24dに書き込むべきデータをバッファ領域24cに記憶した場合、上記ICカード2の上記制御部21は、上記バッファ領域24cへの書込み処理の完了を示すステータスとコマンド処理により得られたデータとを処理結果として上記ICカード処理装置1へ送信した後、上記バッファ領域24cに書き込んだデータをデータ格納領域24dに書込む処理を行うようになっている(ステップS28)。
【0051】
さらに、上記バッファ領域24cに書き込まれているデータのデータ格納領域24dへの書込みが完了すると、上記ICカード2の制御部21は、上記バッファ管理領域24bに記憶している当該データに対するバッファ管理情報を初期化(削除)する(ステップS29)。
【0052】
上記のような処理によれば、バッファ領域への書き込みが完了した際に、ICカード処理装置1へコマンド処理の完了を示す応答データを送信し、当該ICカード処理装置が応答データに対する処理を行って次のコマンドを受信するまでの間に、バッファ領域に書き込んだデータのデータ格納領域への書き込みを行うことができる。これにより、ICカード処理装置におけるICカードからの応答データに基づく処理と、ICカードにおけるデータ格納領域へのデータの書き込み処理と、並行して行うことができ、システム全体としてコマンドに対する処理を高速化、効率化できる。
【0053】
なお、上記ICカード処理装置におけるICカードでのコマンドに対する処理結果に基づく処理は、ICカード内での不揮発性メモリへのデータの書込み処理に比べて処理時間がかかるものが多い。例えば、ICカードからの応答データに応じたICカード処理装置での処理の処理時間がICカードでのデータ格納領域へのデータ書き込み処理の処理時間よりも長ければ、ICカードでのデータ格納領域へのデータ書き込み処理に要する時間分がシステム全体の処理時間として短縮することが可能となる。このように、ICカード2でのデータ格納領域へのデータの書込み処理とICカード処理装置1での処理とを並行して行うようにしたことにより、ICカードとICカード処理装置とからなるシステム全体としてのコマンド処理の処理時間を短縮することができ、コマンド処理の効率化を図ることができる。
【0054】
次に、上記のようなICカード2が活性化された際の動作について説明する。
上記ICカード2は、上述しように、ICカード処理装置1などの上位機器からの電源供給を受けて活性化するようになっている。このため、図3を用いて説明したようなコマンド処理の途中で電源が遮断された場合、つまり、処理中にICカード処理装置1からの電源供給が瞬断された場合、当該ICカード2の不揮発性メモリ24においては、実行中のコマンド処理によるデータの状態が様々な状態となりうる。
【0055】
例えば、バッファ領域24cへの書込みが完了していない状態で電源が遮断された場合、上記ICカード2では、バッファ領域24cにもデータ格納領域24dにもコマンド処理後のデータが記憶されていない状態となっている。また、バッファ領域24cへの書込みは完了しているが、データ格納領域24dへのデータの書込みが完了していない場合、当該ICカード2では、バッファ領域24cにはコマンド処理後のデータが記憶されているが、データ格納領域24dには当該データが記憶されていない状態となっている。
【0056】
上記のようなコマンド処理の途中での電源遮断に対応するため、上記ICカード2では、活性化した際に不揮発性メモリ24におけるデータの状態に応じた処理を行うようになっている。以下、ICカード2が活性化した際の処理について説明する。
【0057】
図4は、上記ICカード2が活性化した際の処理手順を説明するためのフローチャートである。
すなわち、上記ICカード処理装置1と上記ICカード2とが互いのインターフェースを介して接続されると、上述したようなイニシャル処理が行われる(ステップS31)。このイニシャル処理によって上記ICカード2が活性化される。活性化したICカード2の制御部21は、まず、上記バッファ管理領域24bに記憶されているバッファ管理情報を読み出す(ステップS32)。これにより、上記ICカード2の制御部21は、上記バッファ管理領域24bにバッファ管理情報が記憶されているか否かによって使用中のバッファ領域が存在するか否かを判断する(ステップS33)。この判断では、上記バッファ管理領域24bにおけるバッファ管理情報の有無によって上記データ格納領域24dへの書込みが完了していないデータがバッファ領域24cに存在するか否かを判断している。
【0058】
上記判断により使用中のバッファ領域24cが存在すると判断した場合(ステップS33、YES)、上記ICカード2の制御部21は、上記バッファ管理領域24bに記憶されているバッファ管理情報に基づいて、上記バッファ領域24cに記憶されているデータをデータ格納領域24dに書き込む処理を行う(ステップS34)。
【0059】
すなわち、上記ICカード2の制御部21は、上記バッファ管理領域24bに記憶されているバッファ管理情報に基づいて、上記バッファ領域24cにおけるデータが書き込まれている範囲(領域)を判断し、その範囲に書き込まれているデータをデータ格納領域24dの指定領域に書き込む処理を行うようになっている。
【0060】
このようなバッファ領域24cに書き込まれているデータをデータ格納領域の指定領域に書き込む処理が完了すると、上記ICカード2の制御部21は、上記バッファ管理領域24bの当該バッファ管理情報を初期化(削除)する(ステップS35)。これにより、当該ICカード2は、通常のコマンド処理が可能な状態となる(ステップS36)。
【0061】
上記のような処理によれば、前回、上記バッファ領域24cにのみデータが書き込まれている状態で電源が遮断された場合(例えば、バッファ領域24cのデータをデータ格納領域24dに書込み中に電源が遮断された場合)、当該ICカードは、再度活性化した際に、上記バッファ領域24cに書き込まれているデータをデータ格納領域24dの正規の領域に書き込むことができる。この結果、上記ICカード2では、上記データ格納領域24dに前回のコマンド処理に伴うデータが書き込まれた状態で次回以降のコマンド処理を実行することができる。
【0062】
また、前回、上記バッファ領域24cにも正常なデータが書き込まれていない状態で電源が遮断された場合(例えば、バッファ領域24cへの書込み中に電源が遮断された場合)には、当該ICカード2は、前回のコマンド処理が実行されていない状態(前回のコマンド処理に伴うデータが書き込まれていない状態)で次回以降のコマンド処理を実行することができる。従って、上記のような処理により、不正なデータがデータ格納領域24dに書き込まれた状態でICカード2が動作することを防止できる。
【0063】
次に、上記データ格納領域24dへのデータ書込み処理においてエラーが発生した場合について説明する。
例えば、データ格納領域24dへのデータ書込み処理中に不具合が発生した場合、そのデータは、バッファ領域24cに保持されている。このため、データ格納領域24dへのデータ書込み処理中に電源遮断などが起きた場合には、図4で説明したような動作によって、バッファ領域24cに記憶されているデータをデータ格納領域24dに再度書込みことにより正常に行うことができる。しかしながら、上記データ格納領域24dにおけるメモリ素子の動作不良などによって正常なデータの書込みができないような場合、ICカード処理装置1ではコマンド処理の完了を示す通知を受けているにもかかわらずに、実際にはデータ格納領域24dに正常なデータが書き込まれていないという状態が生じる。
【0064】
このような場合、上記ICカード2の制御部21は、上記データ格納領域24dへのデータ書込みのエラーに対するエラー処理を行う。このような場合のエラー処理としては、例えば、上記データ格納領域24dへの書込みエラーが発生した後、次のコマンドを上記ICカード処理装置1から受信した際に上記ICカード処理装置1へ書込みエラーが生じていることを通知するようにすれば良い。この場合、当該ICカード2からICカード処理装置1へ書込みエラーを通知した後、従来の書込み処理のエラーに対する処理と同様な処理を行う。これにより、当該ICカード2で発生した書き込みエラーに対する回復処理を行うことができる。
【0065】
また、上記データ格納領域24dへの書込みデータに対するエラー処理としては、上記バッファ領域24cに上記データ格納領域24dに書き込むべきデータが正常な状態が書き込まれているため、当該データが書き込まれているバッファ領域24c上の領域を正規のデータ格納領域24dとして使用するようにしても良い。この場合、上記不揮発性メモリ24におけるバッファ領域24c及びデータ格納領域24dを定義する情報を変更することにより、書き込みエラーから回復することができる。
【0066】
上記のように、本実施の形態では、電源が切られてもデータを保持する事が可能で、かつ、書換可能な不揮発性メモリ、外部装置との通信用のインターフェース、および、制御部を有するICカードにおいて、上記不揮発性メモリに、データを格納するデータ格納領域と、そのデータ格納領域に書き込むべきデータを一時的に書き込むバッファ領域とを設け、上記インターフェースにより上記外部装置から受信したコマンドに対応する処理の結果としてデータをデータ格納領域に書き込む必要がある場合、上記制御部は、上記バッファ領域に当該データを書き込み、コマンド処理とバッファ領域へのデータの書き込みが終了した際にバッファ領域への書き込み完了を示す応答データを外部装置へ出力してから、上記バッファ領域に書き込んだデータを上記データ格納領域に書き込む処理を行うようにしたものである。
【0067】
これにより、バッファ領域に書き込んだデータをデータ格納領域に書き込み処理は、外部装置から次のコマンドを受信するまでの間(コマンド受信待ち状態の間)に、行うことができる。従って、データ格納領域へのデータの書き込みを外部装置への応答データの出力後に行う事が可能となり、外部装置からコマンドを受信してからICカードが応答データを出力するまでの時間(コマンド処理に要する時間)を短縮できる。
【0068】
さらに、データ格納領域へデータ書き込み中に、外部装置から他のコマンドを受信した場合、データ格納領域へのデータ書き込み処理を中断し、外部装置からのコマンドの受信処理を行ってから前記データ格納領域へデータの書き込みを再開し、その書き込みが終了後に、受信したコマンドに対する処理を実行するようにしたものである。これにより、データ格納領域へのデータの書き込み中に次にコマンドが供給される場合であっても、データ格納領域へのデータの書き込み処理とコマンドの受信処理とを正常に行うことができ、コマンドに対する処理の時間を短縮することができる。
【0069】
さらに、データ格納領域に書き込むべきデータのうちバッファ領域に一旦書き込む必要があるデータを示す情報をバッファ指定領域に記憶しておき、不揮発性メモリへのデータの書き込みを行う際、バッファ書き込み指定領域を参照して、バッファ領域への書き込みが必要か否かを判断し、バッファ領域への書き込みが必要と判断したデータはバッファ領域を経由してデータ格納領域へ書き込み、バッファ領域への書き込みが必要でないと判断したデータはバッファ領域を経由せずに直接データ格納領域に書き込むようにしたものである。これにより、バッファ領域へ書き込む必要があるデータを最小限に抑える事が可能となり、すべてのデータがバッファ領域を経由する場合に比べて、処理時間を短縮する事が可能となり、コマンドに対する処理を効率化できる。
【0070】
さらに、バッファ領域に書き込んだデータ格納領域に書き込むべきデータに対するバッファ管理情報を記憶し、当該データのデータ格納領域への書き込みが完了したら当該バッファ管理情報を初期化するバッファ管理領域を設けて、バッファ領域のデータを管理するようにしたものである。これにより、データ格納領域へのデータの書き込み中に電源遮断などによってICカードが不活性状態になっても、不揮発性メモリ内のデータを保証することができる。
【0071】
さらに、ICカードが不活性状態から活性状態になった際に、バッファ管理領域の情報を基に、バッファ領域を参照してデータ格納領域に書き込みべきデータが存在するか否かを判断し、データ格納領域に書き込むべきデータが存在する場合には、当該バッファ管理情報に基づいてデータ格納領域への当該データの書き込み処理を行うようにしたものである。これにより、ICカードが活性化した際に、バッファ領域のデータ格納領域に書き込むべきデータをデータ格納領域に書き込むようにしたため、データを保証することができるとともに、ICカード内の処理を効率化することが可能となる。
【符号の説明】
【0072】
1…ICカード処理装置(外部装置)、2…ICカード(携帯可能電子装置)、11…制御部、12…表示部、13…操作部、14…インターフェース部、21…制御部、22…RAM、23…ROM、24…不揮発性メモリ、24a…バッファ指定領域、24b…バッファ管理領域、24c…バッファ領域、24d…データ格納領域、25…インターフェース

【特許請求の範囲】
【請求項1】
携帯可能電子装置において、
データが書き込まれるデータ格納領域と、前記データ格納領域に書き込むべきデータが一旦書き込まれるバッファ領域と、を有する書換え可能な不揮発性メモリと、
外部装置からのコマンドを受信する受信手段と、
この受信手段により外部装置から受信したコマンドに基づいて前記データ格納領域に書き込むべきデータを前記バッファ領域に書き込むバッファ書込手段と、
このバッファ書込手段により前記バッファ領域へのデータの書き込みが完了した場合、書込み完了を示す応答データを前記外部装置へ送信する送信手段と、
前記バッファ書込手段により前記バッファ領域に書き込んだデータを前記データ格納領域に書き込むデータ書込手段と、
を具備することを特徴とする携帯可能電子装置。
【請求項2】
さらに、前記バッファ書込手段により前記バッファ領域に書き込まれているデータに対するバッファ管理情報を記憶する前記不揮発性メモリ上のバッファ管理領域と、
当該携帯可能電子装置が起動した際、前記バッファ管理領域に記憶されているバッファ管理情報に基づいて前記バッファ領域に前記データ格納領域に書き込むべきデータが存在するか否かを判断する判断手段と、
前記判断手段により前記バッファ領域に前記データ格納領域に書き込むべきデータが存在すると判断した場合、前記バッファ管理領域に記憶されている前記バッファ管理情報に基づいて前記データ書込手段により前記バッファ領域に書き込まれているデータを前記データ格納領域に書き込む処理手段と、
を具備することを特徴とする前記請求項1に記載の携帯可能電子装置。
【請求項3】
さらに、前記処理手段による前記バッファ管理情報に基づく前記データ格納領域へのデータの書き込みが完了した場合、前記バッファ管理領域における当該バッファ管理情報を初期化する初期化手段、
を具備することを特徴とする前記請求項2に記載の携帯可能電子装置。
【請求項4】
書換え可能な不揮発性メモリを有する携帯可能電子装置の制御方法であって、
外部装置からのコマンドを受信し、
この外部装置から受信したコマンドに基づいて前記不揮発性メモリ上のデータ格納領域に書き込むべきデータを前記不揮発性メモリ上のバッファ領域に書き込み、
前記不揮発性メモリ上の前記バッファ領域へのデータの書き込みが完了した場合、書込み完了を示す応答データを前記外部装置へ送信し、
前記不揮発性メモリ上の前記バッファ領域に書き込んだデータを前記データ格納領域に書き込む処理を行う、
ことを特徴とする携帯可能電子装置の制御方法。
【請求項5】
さらに、前記不揮発性メモリ上のバッファ指定領域に記憶されている前記データ格納領域に書き込むべきデータのうち前記バッファ領域への書き込みが必要なデータを示すバッファ指定情報に基づいて、前記外部装置から供給されたコマンドに基づいて前記データ格納領域に書き込むべきデータを前記バッファ領域に書き込むか否かを判断し、
前記判断により前記データ格納領域に書き込むべきデータを前記バッファ領域に書き込まないと判断した場合、前記バッファ領域への当該データの書き込みを行わずに、前記データ格納領域への当該データの書き込みを行う、
ことを特徴とする前記請求項4に記載の携帯可能電子装置の制御方法。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate


【公開番号】特開2011−198375(P2011−198375A)
【公開日】平成23年10月6日(2011.10.6)
【国際特許分類】
【出願番号】特願2011−97026(P2011−97026)
【出願日】平成23年4月25日(2011.4.25)
【分割の表示】特願2004−188027(P2004−188027)の分割
【原出願日】平成16年6月25日(2004.6.25)
【出願人】(000003078)株式会社東芝 (54,554)
【Fターム(参考)】