JP2007114961A - 携帯可能電子装置およびicカード - Google Patents
携帯可能電子装置およびicカード Download PDFInfo
- Publication number
- JP2007114961A JP2007114961A JP2005304674A JP2005304674A JP2007114961A JP 2007114961 A JP2007114961 A JP 2007114961A JP 2005304674 A JP2005304674 A JP 2005304674A JP 2005304674 A JP2005304674 A JP 2005304674A JP 2007114961 A JP2007114961 A JP 2007114961A
- Authority
- JP
- Japan
- Prior art keywords
- data
- writing
- data area
- write
- size
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
【課題】1回だけデータの書込みが許可されたデータ領域に対してデータの書込みを行なっている途中で書込みエラーが発生しても、当該データ領域のエラー発生アドレスよりも後ろの領域を有効に利用できる携帯可能電子装置およびICカードを提供する。
【解決手段】不揮発性メモリを有し、この不揮発性メモリには、1回だけバイナリデータの書込みが許可されたバイナリファイルが設定され、かつ、当該ファイルの先頭アドレスおよび当該ファイルのファイルサイズが格納されていて、これら先頭アドレスおよびファイルサイズに基づき当該ファイルに対するデータの書込みが行なわれるICカードにおいて、バイナリファイルにデータを書込む途中でエラーが発生した場合、エラー発生時のアドレスの次のアドレスを再設定先頭アドレスとして当該ファイルの先頭アドレスに設定するとともに、エラーが発生したバイトまでのバイト数をファイルサイズから減算した値を再設定ファイルサイズとして当該ファイルのファイルサイズに設定する。
【選択図】 図5
【解決手段】不揮発性メモリを有し、この不揮発性メモリには、1回だけバイナリデータの書込みが許可されたバイナリファイルが設定され、かつ、当該ファイルの先頭アドレスおよび当該ファイルのファイルサイズが格納されていて、これら先頭アドレスおよびファイルサイズに基づき当該ファイルに対するデータの書込みが行なわれるICカードにおいて、バイナリファイルにデータを書込む途中でエラーが発生した場合、エラー発生時のアドレスの次のアドレスを再設定先頭アドレスとして当該ファイルの先頭アドレスに設定するとともに、エラーが発生したバイトまでのバイト数をファイルサイズから減算した値を再設定ファイルサイズとして当該ファイルのファイルサイズに設定する。
【選択図】 図5
Description
本発明は、たとえば、書込み、書換え可能な不揮発性メモリおよびCPU(セントラル・プロセッシング・ユニット)などの制御素子を有するIC(集積回路)チップを内蔵し、外部から供給されるコマンドに基づいて各種処理を実行するICカードなどの携帯可能電子装置およびICカードに関する。
最近、携帯可能電子装置として、不揮発性メモリとしてのEEPROM、揮発性メモリとしてのRAM、これらのメモリに対してアクセス(データの読出しおよびまたは書込み等)を行なう制御素子としてのCPU、および、CPUの動作用プログラム等を格納したROMを有し、外部装置(ICカードリーダ・ライタ)から供給されるコマンドに基づいてデータの入出力等を行なう手段を備えたICチップを内蔵したICカードが産業各方面で利用されている。
この種のICカードにおいて、不揮発性メモリには、バイナリデータを1回だけ書込めて書換えができないバイナリファイル(データ領域)が定義されているとともに、当該ファイルの先頭アドレスおよび当該ファイルのファイルサイズが格納されている。そして、外部装置(ICカードリーダ・ライタ)から入力されるバイナリデータを1回だけ書込む機能を有するライトバイナリ(WRITE BINARY)コマンドを受信すると、上記先頭アドレスおよびファイルサイズに基づき、当該コマンドにて指定されたバイナリファイル(データ領域)の先頭アドレスから、指定された長さのバイナリデータを書込む。
この場合、ライトバイナリコマンドは1回書込みのコマンドであるため、瞬間的なノイズなどでエラーが発生した場合などの書込みエラー時には、その箇所の書込みができなくなってしまうので、書込みエラーを示すステータスワードを外部装置(ICカードリーダ・ライタ)へ出力する。
このように、従来は、ライトバイナリコマンドによりバイナリデータの1回書込みを行なっている途中で書込みエラーが発生した場合、そのバイナリファイルは書込みが失敗した状態から回復できないので、当該ファイルを破棄するようになっている(たとえば、非特許文献1参照)。
国際標準化規格 ISO/IEC7816
このように、従来は、ライトバイナリコマンドによりバイナリデータの1回書込みを行なっている途中で書込みエラーが発生した場合、そのバイナリファイルは書込みが失敗した状態から回復できないので、当該ファイルを破棄するようになっている(たとえば、非特許文献1参照)。
国際標準化規格 ISO/IEC7816
しかしながら、上記した従来の技術では、書込みエラーが発生しても、書込みエラーを示すステータスワードを外部へ出力するだけで、当該バイナリファイル(データ領域)を再利用するような処理は行なっていない。
したがって、瞬間的なノイズ等で書込みエラーが発生した場合には、書込み失敗ということで当該バイナリファイル(データ領域)が使用不可になってしまうという問題がある。
したがって、瞬間的なノイズ等で書込みエラーが発生した場合には、書込み失敗ということで当該バイナリファイル(データ領域)が使用不可になってしまうという問題がある。
そこで、本発明は、1回だけデータの書込みが許可されたデータ領域に対してデータの書込みを行なっている途中で書込みエラーが発生しても、当該データ領域のエラー発生アドレスよりも後ろの領域を有効に利用できる携帯可能電子装置およびICカードを提供することを目的とする。
本発明の携帯可能電子装置は、メモリを有し、このメモリには、1回だけデータの書込みが許可されたデータ領域が設定されているとともに、当該データ領域の先頭アドレスおよび当該データ領域のサイズが格納されていて、これら先頭アドレスおよびサイズに基づき当該データ領域に対するデータの書込みが行なわれる携帯可能電子装置であって、前記データ領域の先頭アドレスからデータを書込む途中でエラーが発生した場合、当該エラーが発生した際のアドレスから[前記データ領域の先頭アドレス+1]の値を減算した値を前記データ領域のサイズから減算して得た値を再設定サイズとして前記メモリ内のデータ領域のサイズに設定するとともに、当該エラーが発生したアドレスの次のアドレスを再設定先頭アドレスとして前記メモリ内のデータ領域の先頭アドレスに設定することを特徴とする。
本発明の携帯可能電子装置は、データを記憶するためのメモリと、このメモリに対してデータの読出しおよびまたは書込みを行なう制御素子を有し、外部から入力されるコマンドに対応した処理を実行してその結果を外部へ出力するもので、前記メモリには、1回だけデータの書込みが許可されたデータ領域が設定されているとともに、当該データ領域の先頭アドレスおよび当該データ領域のサイズが格納されていて、これら先頭アドレスおよびサイズに基づき当該データ領域に対するデータの書込みが行なわれる携帯可能電子装置であって、外部から入力されるデータを1回だけ書込む機能を有するコマンドを受信すると、当該コマンドにて指定された長さのデータを前記データ領域の先頭アドレスから書込む書込み手段と、この書込み手段によるデータの書込み途中でエラーが発生した場合、当該エラーが発生した際のアドレスから[前記データ領域の先頭アドレス+1]の値を減算した値を前記データ領域のサイズから減算して得た値を再設定サイズとして前記メモリ内のデータ領域のサイズに設定するサイズ再設定手段と、前記書込み手段によるデータの書込み途中でエラーが発生した場合、当該エラーが発生したアドレスの次のアドレスを再設定先頭アドレスとして前記メモリ内のデータ領域の先頭アドレスに設定する先頭アドレス再設定手段と、前記サイズ再設定手段および先頭アドレス再設定手段の処理が終了すると、エラー発生の応答を外部へ出力するエラー応答出力手段とを具備している。
また、本発明のICカードは、データを記憶するためのメモリと、このメモリに対してデータの読出しおよびまたは書込みを行なう制御素子を有し、外部から入力されるコマンドに対応した処理を実行してその結果を外部へ出力するもので、前記メモリには、1回だけデータの書込みが許可されたデータ領域が設定されているとともに、当該データ領域の先頭アドレスおよび当該データ領域のサイズが格納されていて、これら先頭アドレスおよびサイズに基づき当該データ領域に対するデータの書込みが行なわれるICカードであって、外部から入力されるデータを1回だけ書込む機能を有するコマンドを受信すると、当該コマンドにて指定された長さのデータを前記データ領域の先頭アドレスから書込む書込み手段と、この書込み手段によるデータの書込み途中でエラーが発生した場合、当該エラーが発生した際のアドレスから[前記データ領域の先頭アドレス+1]の値を減算した値を前記データ領域のサイズから減算して得た値を再設定サイズとして前記メモリ内のデータ領域のサイズに設定するサイズ再設定手段と、前記書込み手段によるデータの書込み途中でエラーが発生した場合、当該エラーが発生したアドレスの次のアドレスを再設定先頭アドレスとして前記メモリ内のデータ領域の先頭アドレスに設定する先頭アドレス再設定手段と、前記サイズ再設定手段および先頭アドレス再設定手段の処理が終了すると、エラー発生の応答を外部へ出力するエラー応答出力手段とを有したICモジュールと、このICモジュールを収納したICカード本体とを具備している。
本発明によれば、1回だけデータの書込みが許可されたデータ領域に対してデータの書込みを行なっている途中で書込みエラーが発生しても、当該データ領域のエラー発生アドレスよりも後ろの領域を有効に利用できる携帯可能電子装置およびICカードを提供できる。
以下、本発明の実施の形態について図面を参照して説明する。
まず、第1の実施の形態について説明する。
図1は、本発明に係る携帯可能電子装置としてのICカードを取扱うICカードシステムの構成例を示すものである。このICカードシステムは、ICカード11をカードリーダ・ライタ12を介してパーソナルコンピュータなどの端末装置13と接続可能にするとともに、端末装置13にキーボード14、CRT表示部15、プリンタ16を接続して構成される。
まず、第1の実施の形態について説明する。
図1は、本発明に係る携帯可能電子装置としてのICカードを取扱うICカードシステムの構成例を示すものである。このICカードシステムは、ICカード11をカードリーダ・ライタ12を介してパーソナルコンピュータなどの端末装置13と接続可能にするとともに、端末装置13にキーボード14、CRT表示部15、プリンタ16を接続して構成される。
図2は、ICカード11の構成を示すもので、制御素子としてのCPU101、記憶内容が書換え可能な記憶手段(メモリ)としてのデータメモリ102、ワーキングメモリ103、プログラムメモリ104、および、カードリーダ・ライタ12との電気的接触を得るためのコンタクト部105によって構成されている。そして、これらのうち、破線内の部分(CPU101、データメモリ102、ワーキングメモリ103、プログラムメモリ104)は1つ(あるいは複数)のICチップ106で構成され、さらに、このICチップ106とコンタクト部105とが一体的にICモジュール化されて、ICカード本体11a内に埋設されている。
データメモリ102は、たとえば、EEPROMなどの記憶内容が書換え可能な不揮発性メモリで構成されていて、各種アプリケーションデータなどがファイル構造で記憶される。
たとえば、データメモリ102には、バイナリデータを1回だけ書込めて書換えができないバイナリファイル(データ領域)が少なくとも1つ定義されているとともに、当該バイナファイルに対する定義情報が格納(記憶)されている。この定義情報は、たとえば、図3に示すように、少なくとも当該ファイルの先頭アドレス(以降、データ領域先頭アドレスと称す)および当該ファイルのファイルサイズから構成されている。
ここに、上記データ領域先頭アドレスは、当該ファイルのバイナリデータが格納されている領域の先頭アドレスを表す。上記ファイルサイズは、当該ファイルのバイナリデータが格納可能な大きさを表す。
たとえば、データメモリ102には、バイナリデータを1回だけ書込めて書換えができないバイナリファイル(データ領域)が少なくとも1つ定義されているとともに、当該バイナファイルに対する定義情報が格納(記憶)されている。この定義情報は、たとえば、図3に示すように、少なくとも当該ファイルの先頭アドレス(以降、データ領域先頭アドレスと称す)および当該ファイルのファイルサイズから構成されている。
ここに、上記データ領域先頭アドレスは、当該ファイルのバイナリデータが格納されている領域の先頭アドレスを表す。上記ファイルサイズは、当該ファイルのバイナリデータが格納可能な大きさを表す。
ワーキングメモリ103は、CPU101が処理を行なう際の処理データなどを一時的に保持するための作業用メモリであり、たとえば、RAMなどで構成される。
プログラムメモリ104は、たとえば、マスクROMなどの記憶内容が書換え不可能な不揮発性メモリで構成されており、CPU101の制御プログラムなどを記憶するものである。
プログラムメモリ104は、たとえば、マスクROMなどの記憶内容が書換え不可能な不揮発性メモリで構成されており、CPU101の制御プログラムなどを記憶するものである。
図4は、ライトバイナリ(WRITE BINARY)コマンドのフォーマットを示すものである。ライトバイナリコマンドは、コマンドを識別する機能などを持つ分類部(CLA:class)、命令部(INS:instruction)、パラメータデータ(P1、P2)、書込むデータの長さを表すデータ長(Lc)、および、書込みデータ(DATA)から構成されている。
次に、このような構成において、第1の実施の形態に係るライトバイナリコマンドに対するデータ書込み処理について図5に示すフローチャートを参照して説明する。
CPU101は、カードリーダ・ライタ12から入力されるライトバイナリコマンドを受信すると(ステップS1)、当該コマンドとしての正当性を確認すべく、コマンドフォーマットのチェックを行なう(ステップS2、S3)。このチェックでは、当該コマンドのCLA部およびINS部がライトバイナリコマンドを示すものかどうかを確認し、P1部およびP2部が機能外に設定されていないかを確認し、Lc部が「00」などの規定外に設定されていないかを確認し、DATA部がLc部で示されるデータ長のデータ列であるかを確認する。
CPU101は、カードリーダ・ライタ12から入力されるライトバイナリコマンドを受信すると(ステップS1)、当該コマンドとしての正当性を確認すべく、コマンドフォーマットのチェックを行なう(ステップS2、S3)。このチェックでは、当該コマンドのCLA部およびINS部がライトバイナリコマンドを示すものかどうかを確認し、P1部およびP2部が機能外に設定されていないかを確認し、Lc部が「00」などの規定外に設定されていないかを確認し、DATA部がLc部で示されるデータ長のデータ列であるかを確認する。
ステップS2、S3におけるチェックの結果、フォーマットに異常が発見された場合、CPU101は、フォーマットエラーを示すステータスワードを設定して(ステップS4)、その出力処理を実行し(ステップS5)、当該データ書込み処理を終了する。
ステップS2、S3におけるチェックの結果、フォーマットに異常が発見されなかった場合、CPU101は、当該コマンドのP1部およびP2部によって指定されたバイナリファイル(データ領域)をデータメモリ102内から検索し(ステップS6、S7)、指定されたバイナリファイルが発見できない場合は指定ファイル無しエラーを示すステータスワードを設定して(ステップS8)、その出力処理を実行し(ステップS5)、当該データ書込み処理を終了する。
指定されたバイナリファイルが発見できた場合、CPU101は、当該ファイルの定義情報の先頭アドレスを取得し、当該ファイルのファイルタイプをチェックする(ステップS9、S10)。このチェックの結果、ファイルタイプがバイナリではない場合、CPU101は、ファイルタイプエラーを示すステータスワードを設定して(ステップS11)、その出力処理を実行し(ステップS5)、当該データ書込み処理を終了する。
ステップS9、S10におけるチェックの結果、ファイルタイプがバイナリである場合、CPU101は、当該バイナリファイルに対しライトバイナリコマンドのDATA部に格納されたバイナリデータを書込む(ステップS12)。このデータ書込みは、データメモリ102内の当該ファイルの定義情報の先頭アドレスおよびファイルサイズに基づき、当該ファイルの先頭アドレスから行なわれる。
CPU101は、このデータ書込み処理の実行中に書込みエラーが発生したか否かをチェックし(ステップS13)、何らかの書込みエラーが発生した場合は、後述する書込み失敗処理を実行し(ステップS14)、その後、当該書込み失敗処理で設定された書込みエラーを示すステータスワードの出力処理を実行し(ステップS5)、当該データ書込み処理を終了する。
ステップS13におけるチェックの結果、何のエラーも無く書込み処理を終了した場合、CPU101は、書込み正常終了を示すステータスワードを設定して(ステップS15)、その出力処理を実行し(ステップS5)、当該データ書込み処理を終了する。
次に、図5のステップS14における書込み失敗処理について図6に示すフローチャートを参照して説明する。
CPU101は、まず、当該バイナリファイルの定義情報を参照することで、[ファイルサイズ−(エラー発生アドレス−(データ領域先頭アドレス+1))]の値を求め(ステップS21)、この求めた値を再設定ファイルサイズ(再設定サイズ)として、当該バイナリファイルの定義情報内のファイルサイズに設定する(ステップS22)。ここに、上記エラー発生アドレスは、当該バイナリファイルの書込みエラーが発生した際のアドレスを表す。
CPU101は、まず、当該バイナリファイルの定義情報を参照することで、[ファイルサイズ−(エラー発生アドレス−(データ領域先頭アドレス+1))]の値を求め(ステップS21)、この求めた値を再設定ファイルサイズ(再設定サイズ)として、当該バイナリファイルの定義情報内のファイルサイズに設定する(ステップS22)。ここに、上記エラー発生アドレスは、当該バイナリファイルの書込みエラーが発生した際のアドレスを表す。
次に、CPU101は、(エラー発生アドレス+1)の値を求め(ステップS23)、この求めた値を再設定先頭アドレスとして、当該バイナリファイルの定義情報内のデータ領域先頭アドレスに設定する(ステップS24)。その後、書込みエラーを示すステータスワードを設定して(ステップS25)、メイン処理に戻る。
なお、書込み失敗処理を行なった後に更新処理を行なう場合には、変更したデータ領域先頭アドレスとファイルサイズの値にしたがって、更新処理を行なう。
このように、第1の実施の形態によれば、エラー発生時のアドレスの次のアドレスを再設定先頭アドレスとして当該ファイルのデータ領域先頭アドレスに設定するとともに、エラーが発生したバイトまでのバイト数をファイルサイズから減算し、その減算結果を再設定ファイルサイズとして当該ファイルのファイルサイズに設定することにより、バイナリデータを書込むライトバイナリコマンドの実行時に書込みエラーが発生しても、エラー発生アドレスよりも後ろのファイル領域を有効に利用できる。
次に、第2の実施の形態について説明する。
図7は、データメモリ102に格納(記憶)されるバイナリファイル(データ領域)の定義情報を示している。第2の実施の形態に係る定義情報は、たとえば、少なくとも当該ファイルの先頭アドレス、当該ファイルのファイルサイズ、当該ファイルを複数のページ単位に分割した1ページ当たりのバイト数、当該ファイルの書込み完了ページ番号、および、当該ファイルのデータ書込み状態を示す書込み状態フラグから構成されている。
ここに、上記1ページ当たりのバイト数は、書込みを行なう際のページ単位として何バイトを設定するかを表す。上記書込み完了ページ番号は、何ページまで書込みを完了したかを表す。上記書込み状態フラグは、当該ファイルが書込み前の状態か、書込み中の状態か、書込み完了した状態かを表す。
図7は、データメモリ102に格納(記憶)されるバイナリファイル(データ領域)の定義情報を示している。第2の実施の形態に係る定義情報は、たとえば、少なくとも当該ファイルの先頭アドレス、当該ファイルのファイルサイズ、当該ファイルを複数のページ単位に分割した1ページ当たりのバイト数、当該ファイルの書込み完了ページ番号、および、当該ファイルのデータ書込み状態を示す書込み状態フラグから構成されている。
ここに、上記1ページ当たりのバイト数は、書込みを行なう際のページ単位として何バイトを設定するかを表す。上記書込み完了ページ番号は、何ページまで書込みを完了したかを表す。上記書込み状態フラグは、当該ファイルが書込み前の状態か、書込み中の状態か、書込み完了した状態かを表す。
次に、このような構成において、第2の実施の形態に係るライトバイナリコマンドに対するデータ書込み処理について図8に示すフローチャートを参照して説明する。
CPU101は、カードリーダ・ライタ12から入力されるライトバイナリコマンドを受信すると(ステップS31)、当該コマンドとしての正当性を確認すべく、コマンドフォーマットのチェックを行なう(ステップS32、S33)。このチェックでは、当該コマンドのCLA部およびINS部がライトバイナリコマンドを示すものかどうかを確認し、P1部およびP2部が機能外に設定されていないかを確認し、Lc部が「00」などの規定外に設定されていないかを確認し、DATA部がLc部で示されるデータ長のデータ列であるかを確認する。
CPU101は、カードリーダ・ライタ12から入力されるライトバイナリコマンドを受信すると(ステップS31)、当該コマンドとしての正当性を確認すべく、コマンドフォーマットのチェックを行なう(ステップS32、S33)。このチェックでは、当該コマンドのCLA部およびINS部がライトバイナリコマンドを示すものかどうかを確認し、P1部およびP2部が機能外に設定されていないかを確認し、Lc部が「00」などの規定外に設定されていないかを確認し、DATA部がLc部で示されるデータ長のデータ列であるかを確認する。
ステップS32、S33におけるチェックの結果、フォーマットに異常が発見された場合、CPU101は、フォーマットエラーを示すステータスワードを設定して(ステップS34)、その出力処理を実行し(ステップS35)、当該データ書込み処理を終了する。
ステップS32、S33におけるチェックの結果、フォーマットに異常が発見されなかった場合、CPU101は、当該コマンドのP1部およびP2部によって指定されたバイナリファイル(データ領域)をデータメモリ102内から検索し(ステップS36、S37)、指定されたバイナリファイルが発見できない場合は指定ファイル無しエラーを示すステータスワードを設定して(ステップS38)、その出力処理を実行し(ステップS35)、当該データ書込み処理を終了する。
指定されたバイナリファイルが発見できた場合、CPU101は、当該ファイルの定義情報の先頭アドレスを取得し、当該ファイルのファイルタイプをチェックする(ステップS39、S40)。このチェックの結果、ファイルタイプがバイナリではない場合、CPU101は、ファイルタイプエラーを示すステータスワードを設定して(ステップS41)、その出力処理を実行し(ステップS35)、当該データ書込み処理を終了する。
ステップS39、S40におけるチェックの結果、ファイルタイプがバイナリである場合、CPU101は、当該バイナリファイルの定義情報内の書込み状態フラグをチェックする(ステップS42、S43)。このチェックの結果、書込み状態フラグが書込み完了を示している場合、CPU101は、ファイル状態未対応を示すステータスワードを設定して(ステップS44)、その出力処理を実行し(ステップS35)、当該データ書込み処理を終了する。
ステップS42、S43におけるチェックの結果、書込み状態フラグが書込み中を示している場合、CPU101は、後述する書込み失敗処理を実行し(ステップS45)、その後、後述する書込み処理を実行する(ステップS46)。その後、当該書込み処理で設定された書込み正常終了を示すステータスワードの出力処理を実行し(ステップS35)、当該データ書込み処理を終了する。
ステップS42、S43におけるチェックの結果、書込み状態フラグが書込み前を示している場合、CPU101は、後述する書込み処理を実行し(ステップS46)、その後、当該書込み処理で設定された書込み正常終了を示すステータスワードの出力処理を実行し(ステップS35)、当該データ書込み処理を終了する。
次に、図8のステップS45における書込み失敗処理について図9に示すフローチャートを参照して説明する。
CPU101は、まず、当該バイナリファイルの定義情報を参照することで、[ファイルサイズ−(1ページ当たりのバイト数Χ(書込み完了ページ番号+1))の値を求め(ステップS51)、この求めた値を再設定ファイルサイズ(再設定サイズ)として、当該バイナリファイルの定義情報内のファイルサイズに設定する(ステップS52)。
CPU101は、まず、当該バイナリファイルの定義情報を参照することで、[ファイルサイズ−(1ページ当たりのバイト数Χ(書込み完了ページ番号+1))の値を求め(ステップS51)、この求めた値を再設定ファイルサイズ(再設定サイズ)として、当該バイナリファイルの定義情報内のファイルサイズに設定する(ステップS52)。
次に、CPU101は、[データ領域先頭アドレス+(1ページ当たりのバイト数Χ(書込み完了ページ番号+1))]の値を求め(ステップS53)、この求めた値を再設定先頭アドレスとして、当該バイナリファイルの定義情報内のデータ領域先頭アドレスに設定する(ステップS54)。
次に、CPU101は、当該バイナリファイルの定義情報内の書込み完了ページ番号をクリアし(ステップS55)、その後、当該バイナリファイルの定義情報内の書込み状態フラグを書込み前に設定し(ステップS56)、メイン処理に戻る。
次に、図8のステップS46における書込み処理について図10に示すフローチャートを参照して説明する。
CPU101は、まず、当該バイナリファイルの定義情報を参照することで、書込み状態フラグを書込み中に設定し(ステップS61)、その後、当該バイナリファイルに対しライトバイナリコマンドのDATA部に格納されたバイナリデータの1ページ当たりのバイト数分のデータを書込む(ステップS62)。このデータ書込みは、データメモリ102内の当該ファイルの定義情報に基づき、当該ファイルの先頭アドレスから行なわれる。
CPU101は、まず、当該バイナリファイルの定義情報を参照することで、書込み状態フラグを書込み中に設定し(ステップS61)、その後、当該バイナリファイルに対しライトバイナリコマンドのDATA部に格納されたバイナリデータの1ページ当たりのバイト数分のデータを書込む(ステップS62)。このデータ書込みは、データメモリ102内の当該ファイルの定義情報に基づき、当該ファイルの先頭アドレスから行なわれる。
次に、CPU101は、当該バイナリファイルの定義情報内の書込み完了ページ番号を「+1」し(ステップS63)、その後、当該データ書込み処理の実行中に書込みエラーが発生したか否かをチェックし(ステップS64)、何らかの書込みエラーが発生した場合、書込みエラーを示すステータスワードを設定し(ステップS65)、メイン処理に戻る。
ステップS64におけるチェックの結果、何のエラーも無く書込み処理を終了した場合、CPU101は、書込みバイト数を「−2」し(ステップS66)、書込みデータを書込み終了分(2バイト)詰める(ステップS67)。
次に、CPU101は、書込みデータ長が「0」以下か否かをチェックし(ステップS68)、書込みデータ長が「0」以下でない場合はステップS62に戻って上記同様な動作を繰り返す。
ステップS68におけるチェックの結果、書込みデータ長が「0」以下である場合、CPU101は、当該バイナリファイルの定義情報内の書込み状態フラグを書込み完了に設定し(ステップS69)、その後、書込み正常終了を示すステータスワードを設定して(ステップS70)、メイン処理に戻る。
なお、書込み失敗処理を行なった後に更新処理を行なう場合には、変更したデータ領域先頭アドレスとファイルサイズの値にしたがって、更新処理を行なう。
このように、第2の実施の形態によれば、あらかじめ書込み前に書込み完了ページを記憶するため、たとえば、セットされたICカードをカードリーダ・ライタ12から引き抜かれる等のエラー検知後に、どのページでエラーが発生したのかを把握することができる。よって、不正領域に対しての対処が可能になり、かつ、第1の実施の形態と同様、使用可能データ領域と不正データ領域とを切り分けることで、バイナリファイルを有効に利用することができる。
なお、前記実施の形態では、携帯可能電子装置として接触式のICカードに適用した場合について説明したが、本発明はこれに限定されるものではなく、非接触式のICカードなどへの応用も可能であり、また、PDAと称される携帯端末装置や携帯電話機などであっても適用でき、さらに、携帯可能電子装置の形状もカード型に限らず、冊子型、ブロック型あるいはタグ型など、他の形状であってもよい。
11…ICカード(携帯可能電子装置)、11a…ICカード本体、12…カードリーダ・ライタ、13…端末装置、14…キーボード、15…CRT表示部、16…プリンタ、101…CPU(制御素子)、102…データメモリ(記憶手段)、103…ワーキングメモリ、104…プログラムメモリ、105…コンタクト部、106…ICチップ。
Claims (5)
- メモリを有し、このメモリには、1回だけデータの書込みが許可されたデータ領域が設定されているとともに、当該データ領域の先頭アドレスおよび当該データ領域のサイズが格納されていて、これら先頭アドレスおよびサイズに基づき当該データ領域に対するデータの書込みが行なわれる携帯可能電子装置であって、
前記データ領域の先頭アドレスからデータを書込む途中でエラーが発生した場合、当該エラーが発生した際のアドレスから[前記データ領域の先頭アドレス+1]の値を減算した値を前記データ領域のサイズから減算して得た値を再設定サイズとして前記メモリ内のデータ領域のサイズに設定するとともに、当該エラーが発生したアドレスの次のアドレスを再設定先頭アドレスとして前記メモリ内のデータ領域の先頭アドレスに設定することを特徴とする携帯可能電子装置。 - データを記憶するためのメモリと、このメモリに対してデータの読出しおよびまたは書込みを行なう制御素子を有し、外部から入力されるコマンドに対応した処理を実行してその結果を外部へ出力するもので、前記メモリには、1回だけデータの書込みが許可されたデータ領域が設定されているとともに、当該データ領域の先頭アドレスおよび当該データ領域のサイズが格納されていて、これら先頭アドレスおよびサイズに基づき当該データ領域に対するデータの書込みが行なわれる携帯可能電子装置であって、
外部から入力されるデータを1回だけ書込む機能を有するコマンドを受信すると、当該コマンドにて指定された長さのデータを前記データ領域の先頭アドレスから書込む書込み手段と、
この書込み手段によるデータの書込み途中でエラーが発生した場合、当該エラーが発生した際のアドレスから[前記データ領域の先頭アドレス+1]の値を減算した値を前記データ領域のサイズから減算して得た値を再設定サイズとして前記メモリ内のデータ領域のサイズに設定するサイズ再設定手段と、
前記書込み手段によるデータの書込み途中でエラーが発生した場合、当該エラーが発生したアドレスの次のアドレスを再設定先頭アドレスとして前記メモリ内のデータ領域の先頭アドレスに設定する先頭アドレス再設定手段と、
前記サイズ再設定手段および先頭アドレス再設定手段の処理が終了すると、エラー発生の応答を外部へ出力するエラー応答出力手段と、
を具備したことを特徴とする携帯可能電子装置。 - データを記憶するためのメモリと、このメモリに対してデータの読出しおよびまたは書込みを行なう制御素子を有し、外部から入力されるコマンドに対応した処理を実行してその結果を外部へ出力するもので、前記メモリには、1回だけデータの書込みが許可されたデータ領域が設定されているとともに、当該データ領域の先頭アドレス、当該データ領域のサイズ、当該データ領域を複数のページ単位に分割した1ページ当たりのバイト数、当該データ領域の書込み完了ページ番号、および、当該データ領域のデータ書込み状態を示す書込み状態フラグが格納されていて、これらのデータに基づき当該データ領域に対するデータの書込みがページ単位で行なわれる携帯可能電子装置であって、
外部から入力されるデータを1回だけ書込む機能を有するコマンドを受信すると、当該コマンドにて指定されるデータ領域を前記メモリ内から検索し、当該データ領域の書込み状態フラグをチェックするチェック手段と、
このチェック手段によるチェックの結果、書込み状態フラグがデータ書込み中を示している場合、[前記1ページ当たりのバイト数Χ(前記書込み完了ページ番号+1)の値を前記データ領域のサイズから減算して得た値を再設定サイズとして前記メモリ内のデータ領域のサイズに設定するサイズ再設定手段と、
前記チェック手段によるチェックの結果、書込み状態フラグがデータ書込み中を示している場合、[前記データ領域の先頭アドレス+(前記1ページ当たりのバイト数Χ(前記書込み完了ページ番号+1))]の値を再設定先頭アドレスとして前記メモリ内のデータ領域の先頭アドレスに設定する先頭アドレス再設定手段と、
前記サイズ再設定手段および先頭アドレス再設定手段の処理が終了すると、前記書込み完了ページ番号をクリアするとともに前記書込み状態フラグをデータ書込み前に設定するフラグ設定手段と、
このフラグ設定手段の処理が終了すると、前記書込み状態フラグをデータ書込み中に設定した後、当該データ領域に対して先頭アドレスから1ページ当たりのバイト数分のデータの書込みを行なう書込み手段と、
この書込み手段によるデータの書込みが終了すると、前記書込み完了ページ番号を「+1」するとともに書込みバイト数を「−2」し、書込みデータを書込み終了分詰める処理を行なう処理手段と、
この処理手段による処理が終了すると、書込みデータ長が「0」以下か否かをチェックし、「0」以下でない場合は再び前記書込み手段による1ページ当たりのバイト数分のデータの書込み処理から実行するよう制御し、「0」以下の場合は前記書込み状態フラグをデータ書込み完了に設定して正常終了を示す応答を外部へ出力する第1の制御手段と、
前記チェック手段によるチェックの結果、書込み状態フラグがデータ書込み前を示している場合、前記書込み手段から第1の制御手段までの処理と同じ処理を行なうよう制御する第2の制御手段と、
を具備したことを特徴とする携帯可能電子装置。 - データを記憶するためのメモリと、このメモリに対してデータの読出しおよびまたは書込みを行なう制御素子を有し、外部から入力されるコマンドに対応した処理を実行してその結果を外部へ出力するもので、前記メモリには、1回だけデータの書込みが許可されたデータ領域が設定されているとともに、当該データ領域の先頭アドレスおよび当該データ領域のサイズが格納されていて、これら先頭アドレスおよびサイズに基づき当該データ領域に対するデータの書込みが行なわれるICカードであって、
外部から入力されるデータを1回だけ書込む機能を有するコマンドを受信すると、当該コマンドにて指定された長さのデータを前記データ領域の先頭アドレスから書込む書込み手段と、この書込み手段によるデータの書込み途中でエラーが発生した場合、当該エラーが発生した際のアドレスから[前記データ領域の先頭アドレス+1]の値を減算した値を前記データ領域のサイズから減算して得た値を再設定サイズとして前記メモリ内のデータ領域のサイズに設定するサイズ再設定手段と、前記書込み手段によるデータの書込み途中でエラーが発生した場合、当該エラーが発生したアドレスの次のアドレスを再設定先頭アドレスとして前記メモリ内のデータ領域の先頭アドレスに設定する先頭アドレス再設定手段と、前記サイズ再設定手段および先頭アドレス再設定手段の処理が終了すると、エラー発生の応答を外部へ出力するエラー応答出力手段とを有したICモジュールと、
このICモジュールを収納したICカード本体と、
を具備したことを特徴とするICカード。 - データを記憶するためのメモリと、このメモリに対してデータの読出しおよびまたは書込みを行なう制御素子を有し、外部から入力されるコマンドに対応した処理を実行してその結果を外部へ出力するもので、前記メモリには、1回だけデータの書込みが許可されたデータ領域が設定されているとともに、当該データ領域の先頭アドレス、当該データ領域のサイズ、当該データ領域を複数のページ単位に分割した1ページ当たりのバイト数、当該データ領域の書込み完了ページ番号、および、当該データ領域のデータ書込み状態を示す書込み状態フラグが格納されていて、これらのデータに基づき当該データ領域に対するデータの書込みがページ単位で行なわれるICカードであって、
外部から入力されるデータを1回だけ書込む機能を有するコマンドを受信すると、当該コマンドにて指定されるデータ領域を前記メモリ内から検索し、当該データ領域の書込み状態フラグをチェックするチェック手段と、このチェック手段によるチェックの結果、書込み状態フラグがデータ書込み中を示している場合、[前記1ページ当たりのバイト数Χ(前記書込み完了ページ番号+1)の値を前記データ領域のサイズから減算して得た値を再設定サイズとして前記メモリ内のデータ領域のサイズに設定するサイズ再設定手段と、前記チェック手段によるチェックの結果、書込み状態フラグがデータ書込み中を示している場合、[前記データ領域の先頭アドレス+(前記1ページ当たりのバイト数Χ(前記書込み完了ページ番号+1))]の値を再設定先頭アドレスとして前記メモリ内のデータ領域の先頭アドレスに設定する先頭アドレス再設定手段と、前記サイズ再設定手段および先頭アドレス再設定手段の処理が終了すると、前記書込み完了ページ番号をクリアするとともに前記書込み状態フラグをデータ書込み前に設定するフラグ設定手段と、このフラグ設定手段の処理が終了すると、前記書込み状態フラグをデータ書込み中に設定した後、当該データ領域に対して先頭アドレスから1ページ当たりのバイト数分のデータの書込みを行なう書込み手段と、この書込み手段によるデータの書込みが終了すると、前記書込み完了ページ番号を「+1」するとともに書込みバイト数を「−2」し、書込みデータを書込み終了分詰める処理を行なう処理手段と、この処理手段による処理が終了すると、書込みデータ長が「0」以下か否かをチェックし、「0」以下でない場合は再び前記書込み手段による1ページ当たりのバイト数分のデータの書込み処理から実行するよう制御し、「0」以下の場合は前記書込み状態フラグをデータ書込み完了に設定して正常終了を示す応答を外部へ出力する第1の制御手段と、前記チェック手段によるチェックの結果、書込み状態フラグがデータ書込み前を示している場合、前記書込み手段から第1の制御手段までの処理と同じ処理を行なうよう制御する第2の制御手段とを有したICモジュールと、
このICモジュールを収納したICカード本体と、
を具備したことを特徴とするICカード。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2005304674A JP2007114961A (ja) | 2005-10-19 | 2005-10-19 | 携帯可能電子装置およびicカード |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2005304674A JP2007114961A (ja) | 2005-10-19 | 2005-10-19 | 携帯可能電子装置およびicカード |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2007114961A true JP2007114961A (ja) | 2007-05-10 |
Family
ID=38097088
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2005304674A Pending JP2007114961A (ja) | 2005-10-19 | 2005-10-19 | 携帯可能電子装置およびicカード |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2007114961A (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
SG168456A1 (en) * | 2009-07-15 | 2011-02-28 | Toshiba Kk | Portable electronic device, smartcard and control method for portable electronic device |
-
2005
- 2005-10-19 JP JP2005304674A patent/JP2007114961A/ja active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
SG168456A1 (en) * | 2009-07-15 | 2011-02-28 | Toshiba Kk | Portable electronic device, smartcard and control method for portable electronic device |
US8645624B2 (en) | 2009-07-15 | 2014-02-04 | Kabushiki Kaisha Toshiba | Portable electronic device, smartcard and control method for portable electronic device |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP3057100B1 (en) | Memory device and operating method of same | |
JP5624685B2 (ja) | Icカード及びicカード処理システム | |
JP2007114961A (ja) | 携帯可能電子装置およびicカード | |
JP4868979B2 (ja) | 携帯可能電子装置およびicカード | |
JP4764034B2 (ja) | 携帯可能電子装置、icカードおよび携帯可能電子装置の自己診断方法 | |
JP2008310596A (ja) | 携帯可能電子装置および携帯可能電子装置の制御方法 | |
JP4738249B2 (ja) | 携帯可能電子装置、icカードおよびicモジュール | |
JP4460850B2 (ja) | Icカードとicカードの処理方法 | |
US7346730B2 (en) | Mobile electronic device | |
JP4836707B2 (ja) | 携帯可能電子装置およびicカード | |
JP4950730B2 (ja) | 携帯可能電子装置、携帯可能電子装置におけるファイルアクセス方法およびicカード | |
JP2008299416A (ja) | 携帯可能電子装置、携帯可能電子装置におけるファイルアクセス方法およびicカード | |
JP3130588B2 (ja) | 記憶媒体 | |
JP2004334745A (ja) | Icカード | |
JP4810108B2 (ja) | Icカードとその制御方法 | |
JP5075404B2 (ja) | 携帯可能電子装置、携帯可能電子装置におけるファイルアクセス方法およびicカード | |
JP6926945B2 (ja) | Icカードおよびターミナル装置 | |
JP2005056144A (ja) | フラッシュメモリ搭載電子装置、そのメモリデータ管理方法およびプログラム | |
JP2008152452A (ja) | 携帯可能電子装置、携帯可能電子装置の制御方法およびicカード | |
JP6984328B2 (ja) | 電子情報記憶媒体、icカード、外部機器、データ書き込み方法及びデータ書き込みプログラム | |
JP2007122394A (ja) | 携帯可能電子装置およびicカード | |
JPS62289999A (ja) | デ−タの書込方法 | |
JP6015461B2 (ja) | 情報記録媒体、データ読み書き方法、及びデータ読み書きプログラム | |
JP6252341B2 (ja) | 電子情報記憶媒体、情報処理方法、及び情報処理プログラム | |
JP5492172B2 (ja) | 携帯可能電子装置、icカードおよびicモジュール |