説明

携帯可能電子装置およびICカード

【課題】たとえば、1回だけデータの書込みが許可されたデータ領域に対して大量のデータを書込む際に、データ書込みの途中で通信異常等により全てのデータが書込めなかった場合、同じ領域内で逆方向からデータを書込むことにより、データ領域を再利用できる携帯可能電子装置およびICカードを提供する。
【解決手段】データを記憶するためのメモリと、このメモリに対してデータの読出しおよびまたは書込みを行なう制御素子を有し、外部から入力されるコマンドに対応した処理を実行してその結果を外部へ出力し、かつ、前記メモリには、1回だけデータの書込みが許可されたデータ領域が少なくとも1つ以上設定されているICカードにおいて、1回だけデータの書込みが許可されたデータ領域に対してデータ(特に画像データ等の大量のデータ)を書込む際に、データ書込みの途中で通信異常等により全てのデータが書込めなかった場合、同じ領域内で逆方向からデータを書込む。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、たとえば、書込み、書換え可能な不揮発性メモリおよびCPU(セントラル・プロセッシング・ユニット)などの制御素子を有するIC(集積回路)チップを内蔵し、外部から供給されるコマンドに基づき各種処理を実行してその結果を外部へ出力するICカードなどの携帯可能電子装置およびICカードに関する。
【背景技術】
【0002】
最近、携帯可能電子装置として、不揮発性メモリとしてのEEPROM、揮発性メモリとしてのRAM、これらのメモリに対してアクセス(データの読出しおよびまたは書込み等)を行なう制御素子としてのCPU、および、CPUの動作用プログラム等を格納したROMを有し、外部装置(ICカードリーダ・ライタ)から供給されるコマンドに対応した処理を実行してその結果を外部装置へ出力する手段を備えたICチップを内蔵したICカードが産業各方面で利用されている。
【0003】
この種のICカードにおいて、不揮発性メモリには、メモリ容量が大容量で、バイナリデータを1回だけ書込めて書換えができないデータ領域(バイナリ・エレメンタリ・ファイル)が設定されているものがある(たとえば、非特許文献1参照)。
このような1回だけデータの書込みが許可されたデータ領域に対して、たとえば、特に画像データ等の長いデータを書込む場合、分割して外部から入力されたデータを順次書込むことになる。その書込み途中において、通信異常等でデータの書込みが中断された場合、再度同一コマンドを実行しても途中までデータが書込まれているため、書込み異常となり、当該ICカードを再利用することはできない。
【非特許文献1】日本工業規格準拠 JICSAP 外部端子付きICカード 仕様(平成10年7月 第1.1版)
【発明の開示】
【発明が解決しようとする課題】
【0004】
しかし、上記した従来の技術では、1回だけデータの書込みが許可されたデータ領域に対して特に長いデータを書込む途中において、データの書込みが中断された場合、再度同一コマンドを実行しても途中までデータが書込まれているため、書込み異常となり、当該ICカードを再利用することはできず、効率的ではないという問題がある。
【0005】
そこで、本発明は、たとえば、1回だけデータの書込みが許可されたデータ領域に対して大量のデータを書込む際に、データ書込みの途中で通信異常等により全てのデータが書込めなかった場合、同じ領域内で逆方向からデータを書込むことにより、データ領域を再利用できる携帯可能電子装置およびICカードを提供することを目的とする。
【課題を解決するための手段】
【0006】
本発明の携帯可能電子装置は、データを記憶するためのメモリと、このメモリに対してデータの読出しおよびまたは書込みを行なう制御素子を有し、外部から入力されるコマンドに対応した処理を実行してその結果を外部へ出力し、かつ、前記メモリには、1回だけデータの書込みが許可されたデータ領域が少なくとも1つ以上設定されている携帯可能電子装置において、前記データ領域におけるデータの並び方向が「先頭アドレスから最終アドレスに向う」あるいは「最終アドレスから先頭アドレスに向う」あるいは「両方向で書込み不能」であるかを表すもので、初期状態は「先頭アドレスから最終アドレスに向う」に設定されている第1の識別子と、前記メモリの1回だけデータの書込みが許可されたデータ領域に対してデータの書込みを行なう際、前記第1の識別子の状態をチェックする第1のチェック手段と、この第1のチェック手段によるチェックの結果、第1の識別子がデータの並び方向が「先頭アドレスから最終アドレスに向う」となっていた場合、先頭アドレスからの並び方向で当該データ領域に対してデータを書込む第1の書込み手段と、この第1の書込み手段によるデータの書込み時に書込みエラーが発生した場合、前記第1の識別子をデータの並び方向は「最終アドレスから先頭アドレスに向う」に切換え設定する第1の制御手段と、前記第1のチェック手段によるチェックの結果、第1の識別子がデータの並び方向は「最終アドレスから先頭アドレスに向う」となっていた場合、最終アドレスからの並び方向で当該データ領域に対してデータを書込む第2の書込み手段と、この第2の書込み手段によるデータの書込み時に書込みエラーが発生した場合、前記第1の識別子を「両方向で書込み不能」に切換え設定する第2の制御手段とを具備している。
【0007】
また、本発明のICカードは、データを記憶するためのメモリと、このメモリに対してデータの読出しおよびまたは書込みを行なう制御素子を有し、外部から入力されるコマンドに対応した処理を実行してその結果を外部へ出力し、かつ、前記メモリには、1回だけデータの書込みが許可されたデータ領域が少なくとも1つ以上設定されているICカードにおいて、前記データ領域におけるデータの並び方向が「先頭アドレスから最終アドレスに向う」あるいは「最終アドレスから先頭レスに向う」あるいは「両方向で書込み不能」であるかを表すもので、初期状態は「先頭アドレスから最終アドレスに向う」に設定されている第1の識別子と、前記メモリの1回だけデータの書込みが許可されたデータ領域に対してデータの書込みを行なう際、前記第1の識別子の状態をチェックする第1のチェック手段と、この第1のチェック手段によるチェックの結果、第1の識別子がデータの並び方向が「先頭アドレスから最終アドレスに向う」となっていた場合、先頭アドレスからの並び方向で当該データ領域に対してデータを書込む第1の書込み手段と、この第1の書込み手段によるデータの書込み時に書込みエラーが発生した場合、前記第1の識別子をデータの並び方向は「最終アドレスから先頭アドレスに向う」に切換え設定する第1の制御手段と、前記第1のチェック手段によるチェックの結果、第1の識別子がデータの並び方向は「最終アドレスから先頭アドレスに向う」となっていた場合、最終アドレスからの並び方向で当該データ領域に対してデータを書込む第2の書込み手段と、この第2の書込み手段によるデータの書込み時に書込みエラーが発生した場合、前記第1の識別子を「両方向で書込み不能」に切換え設定する第2の制御手段とを有したICモジュールと、このICモジュールを収納したICカード本体とを具備している。
【発明の効果】
【0008】
本発明によれば、たとえば、1回だけデータの書込みが許可されたデータ領域に対して大量のデータを書込む際に、データ書込みの途中で通信異常等により全てのデータが書込めなかった場合、同じ領域内で逆方向からデータを書込むことにより、データ領域を再利用できる携帯可能電子装置およびICカードを提供できる。
【発明を実施するための最良の形態】
【0009】
以下、本発明の実施の形態について図面を参照して説明する。
まず、第1の実施の形態について説明する。
図1は、本実施の形態に係る携帯可能電子装置としてのICカードを取扱うICカードシステムの構成例を示すものである。このICカードシステムは、ICカード11をカードリーダ・ライタ12を介してパーソナルコンピュータなどの端末装置13と接続可能にするとともに、端末装置13にキーボード14、CRT表示部15、プリンタ16を接続して構成される。
【0010】
図2は、ICカード11の構成を示すもので、制御素子としてのCPU101、記憶内容が書換え可能な記憶手段(メモリ)としてのデータメモリ102、ワーキングメモリ103、プログラムメモリ104、および、カードリーダ・ライタ12との電気的接触を得るためのコンタクト部105によって構成されている。そして、これらのうち、破線内の部分(CPU101、データメモリ102、ワーキングメモリ103、プログラムメモリ104)は1つ(あるいは複数)のICチップ106で構成され、さらに、このICチップ106とコンタクト部105とが一体的にICモジュール化されて、ICカード本体11a内に埋設されている。
【0011】
データメモリ102は、たとえば、EEPROMなどの記憶内容が書換え可能な不揮発性メモリで構成されていて、各種アプリケーションデータなどがファイル構造で記憶される。
【0012】
たとえば、データメモリ102には、メモリ容量が大容量で、バイナリデータを1回だけ書込めて書換えができないデータ領域(バイナリ・エレメンタリ・ファイル)EFが少なくとも1つ設定されていて、このデータ領域EFには画像データ等(たとえば、10Kバイトあるいは20Kバイト以上の顔画像等)の長いデータが格納されるものとする。
【0013】
また、データ領域EFには、当該データ領域EFにおけるデータの並び方向が「先頭アドレスから最終アドレスに向う」あるいは「最終アドレスから先頭アドレスに向う」あるいは「両方向で書込み不能」であるかを表すもので、初期状態は「先頭アドレスから最終アドレスに向う」に設定されている第1の識別子としてのフラグF1、および、当該データ領域EFに対するデータの書込み時にセットされ、当該データの書込み終了時にクリアされる第2の識別子としてのフラグF2がそれぞれ格納されている。なお、フラグF1は、データの書込み処理および読出し処理の双方に適用される。
【0014】
ワーキングメモリ103は、CPU101が処理を行なう際の処理データなどを一時的に保持するための作業用メモリであり、たとえば、RAMなどで構成される。
プログラムメモリ104は、たとえば、マスクROMなどの記憶内容が書換え不可能な不揮発性メモリで構成されており、CPU101の制御プログラムなどを記憶するものである。
【0015】
図3は、データメモリ102の1回だけデータの書込みが許可されたデータ領域に対してバイナリデータを書込む際のライトバイナリ(WRITE BINARY)コマンドのフォーマットを示すものである。ライトバイナリコマンドは、カードリーダ・ライタ12から入力されるもので、コマンドを識別する機能などを持つ分類部(CLA:class)、命令部(INS:instruction)、パラメータデータ(P1、P2)、書込むデータの長さを表すデータ長(Lc)、および、書込みデータ(DATA)から構成されている。
【0016】
次に、このような構成において、第1の実施の形態に係るライトバイナリコマンドに対するデータ書込み処理について、図4、図5に示すフローチャートおよび図6、図7に示すデータ領域にデータを書込む際のイメージ図を参照して説明する。
【0017】
CPU101は、カードリーダ・ライタ12からのリセット解除により活性化されると、カードリーダ・ライタ12に対し初期応答データを送信する(ステップS1)。初期応答データを正常に送信すると、CPU101は、カードリーダ・ライタ12から入力されるコマンドの受信を待機し、コマンドを正常に受信すると(ステップS2)、当該コマンドのCLA部およびINS部によりコマンドの種類を確認する(ステップS3)。確認の結果、受信したコマンドがライトバイナリコマンド以外の場合、CPU101は、対応するコマンド処理を実行するが、ここでは説明を省略する。
【0018】
ステップS3における確認の結果、受信したコマンドがライトバイナリコマンドの場合、CPU101は、当該コマンドのP1部およびP2部によって指定されたデータ領域(バイナリファイル)EFがデータメモリ102内に存在するか否かをチェックし(ステップS4)、指定されたデータ領域EFが存在しない場合は当該処理を終了し、ステップS2のコマンド受信待ち状態に戻る。
【0019】
ステップS4におけるチェックの結果、指定されたデータ領域EFが存在する場合、CPU101は、当該データ領域EF内のフラグF2の状態をチェックする(ステップS5、図6(a)参照)。今回は、最初の書込み処理のため、フラグF2はクリア状態である。
【0020】
ステップS5におけるチェックの結果、フラグF2がクリア状態の場合、CPU101は、当該データ領域EF内のフラグF1の状態をチェックする(ステップS6)。今回は、最初の書込みのため、フラグF1は初期状態であり、データの並び方向は「先頭アドレスから最終アドレスに向う」となっている。
【0021】
ステップS6におけるチェックの結果、フラグF1がデータの並び方向は「先頭アドレスから最終アドレスに向う」となっていた場合、CPU101は、受信したライトバイナリコマンドのP1部およびP2部の値とLc部の値(書込みサイズ)とフラグF1の状態に基づき、当該データ領域EFの先頭アドレスから見た書込み先範囲が当該データ領域EFのサイズ未満(先頭アドレスから見た書込み先範囲が領域オーバ)であるか否かをチェックし(ステップS7、図6(b)参照)、先頭アドレスから見た書込み先範囲が領域オーバである場合は当該処理を終了し、ステップS2のコマンド受信待ち状態に戻る。
【0022】
ステップS7におけるチェックの結果、先頭アドレスから見た書込み先範囲が領域オーバでない場合、CPU101は、当該データ領域EFの先頭アドレスから見た書込み先範囲が全て初期値であるか否かをチェックし(ステップS8)、先頭アドレスから見た書込み先範囲が全て初期値でない場合は当該処理を終了し、ステップS2のコマンド受信待ち状態に戻る。
【0023】
ステップS8におけるチェックの結果、先頭アドレスから見た書込み先範囲が全て初期値である場合、CPU101は、データの書込み処理を開始する。すなわち、まず、当該データ領域EF内のフラグF2をセットする(ステップS9、図6(c)参照)。次に、CPU101は、フラグF1の示すデータの並び方向(先頭アドレスから)で、当該データ領域EFに対してデータを書込む(ステップS10、図6(c)参照)。
【0024】
次に、CPU101は、全てのデータを正常に書込んだか否かをチェックし(ステップS11)、通信不良等で途中で書き終わってしまった場合は、当該データ領域EF内のフラグF1をデータの並び方向は「最終アドレスから先頭アドレスに向う」に切換え設定し、その後、フラグF2をクリアし、ステップS2のコマンド受信待ち状態に戻る(ステップS12,S13、図6(d),(e)参照)。
【0025】
ステップS11におけるチェックの結果、全てのデータを正常に書込んだ場合、CPU101は、フラグF1はそのままで、フラグF2をクリアし(ステップS13)、ステップS2のコマンド受信待ち状態に戻る。以上で書込み処理を終了する。
【0026】
なお、上記データ書込み処理の時、当該ICカード11が処理を行なえないような強制終了(たとえば、書込み中に電源をオフされる等)があった場合、フラグF2はセットされたままの状態となる。
【0027】
次に、前回、書込み失敗(ただし、当該ICカード11は終了処理実施)した場合に同じデータ領域EFに対してデータ書込み処理を行なう場合について説明する。
【0028】
前述同様、ステップS1〜S4と進み、指定されたデータ領域EFが存在する場合、CPU101は、当該データ領域EF内のフラグF2の状態をチェックする(ステップS5、図7(a)参照)。今回は、2回目の書込み処理で、前回の書込み失敗により終了処理が行なわれているため、フラグF2はクリア状態である。
【0029】
したがって、CPU101は、続けて当該データ領域EF内のフラグF1の状態をチェックする(ステップS6)。今回は、2回目の書込み処理で、前回の書込み失敗により終了処理が行なわれていて、フラグF1がデータの並び方向は「先頭アドレスから最終アドレスに向う」となっていないため、CPU101は、フラグF1がデータの並び方向は「最終アドレスから先頭アドレスに向う」となっているか否かをチェック(ステップS14)。
【0030】
ステップS14におけるチェックの結果、フラグF1がデータの並び方向は「最終アドレスから先頭アドレスに向う」となっていない場合、CPU101は当該処理を終了し、ステップS2のコマンド受信待ち状態に戻る。
【0031】
ステップS14におけるチェックの結果、フラグF1がデータの並び方向は「最終アドレスから先頭アドレスに向う」となっている場合、CPU101は、受信したライトバイナリコマンドのオフセット値と書込みサイズとフラグF1の状態に基づき、当該データ領域EFの最終アドレスから見た書込み先範囲が当該データ領域EFのサイズ未満(最終アドレスから見た書込み先範囲が領域オーバ)であるか否かをチェックし(ステップS15、図7(b)参照)、最終アドレスから見た書込み先範囲が領域オーバである場合は当該処理を終了し、ステップS2のコマンド受信待ち状態に戻る。
【0032】
ステップS15におけるチェックの結果、最終アドレスから見た書込み先範囲が領域オーバでない場合、CPU101は、当該データ領域EFの最終アドレスから見た書込み先範囲が全て初期値であるか否かをチェックし(ステップS16)、最終アドレスから見た書込み先範囲が全て初期値でない場合は当該処理を終了し、ステップS2のコマンド受信待ち状態に戻る。
【0033】
ステップS16におけるチェックの結果、最終アドレスから見た書込み先範囲が全て初期値である場合、CPU101は、データの書込み処理を開始する。すなわち、まず、当該データ領域EF内のフラグF2をセットする(ステップS17、図7(c)参照)。次に、CPU101は、フラグF1の示すデータの並び方向(最終アドレスから)で、当該データ領域EFに対してデータを書込む(ステップS18、図7(c)参照)。
【0034】
次に、CPU101は、全てのデータを正常に書込んだか否かをチェックし(ステップS19)、通信不良等で途中で書き終わってしまった場合は、当該データ領域EF内のフラグF1を「両方向で書込み不能」に切換え設定し、その後、フラグF2をクリアし、ステップS2のコマンド受信待ち状態に戻る(ステップS20,S21、図7(d)参照)。
【0035】
ステップS19におけるチェックの結果、全てのデータを正常に書込んだ場合、CPU101は、フラグF1はそのままで、フラグF2をクリアし(ステップS21、図7(e)参照)、ステップS2のコマンド受信待ち状態に戻る。以上で書込み処理を終了する。
【0036】
次に、前回、書込み失敗(ただし、当該ICカード11は強制終了)した場合に同じデータ領域EFに対してデータ書込み処理を行なう場合について説明する。
【0037】
前述同様、ステップS1〜S4と進み、指定されたデータ領域EFが存在する場合、CPU101は、当該データ領域EF内のフラグF2の状態をチェックする(ステップS5、図7(a)参照)。今回は、2回目の書込み処理であるが、前回の書込み失敗(強制終了)により終了処理が行なわれていないため、フラグF2はセット状態である。
【0038】
したがって、CPU101は、続けて当該データ領域EF内のフラグF1の状態をチェックする(ステップS22)。このチェックの結果、フラグF1がデータの並び方向は「先頭アドレスから最終アドレスに向う」となっている場合、CPU101は、フラグF1をデータの並び方向は「最終アドレスから先頭アドレスに向う」に切換え設定し(ステップS23)、その後、フラグF2をクリアし(ステップS24)、ステップS14に進む。
【0039】
ステップS22におけるチェックの結果、フラグF1がデータの並び方向は「先頭アドレスから最終アドレスに向う」となっていない場合、CPU101は、フラグF1を「両方向で書込み不能」に切換え設定し(ステップS25)、その後、フラグF2をクリアし(ステップS26)、ステップS2のコマンド受信待ち状態に戻る。
【0040】
ステップS14では、フラグF1がデータの並び方向は「最終アドレスから先頭アドレスに向う」となっているか否かをチェックし、フラグF1がデータの並び方向は「最終アドレスから先頭アドレスに向う」となっていない場合、CPU101は当該処理を終了し、ステップS2のコマンド受信待ち状態に戻る。
【0041】
ステップS14におけるチェックの結果、フラグF1がデータの並び方向は「最終アドレスから先頭アドレスに向う」となっている場合、CPU101は、受信したライトバイナリコマンドのP1部およびP2部の値とLc部の値(書込みサイズ)とフラグF1の状態に基づき、当該データ領域EFの最終アドレスから見た書込み先範囲が当該データ領域EFのサイズ未満(最終アドレスから見た書込み先範囲が領域オーバ)であるか否かをチェックし(ステップS15、図7(b)参照)、最終アドレスから見た書込み先範囲が領域オーバである場合は当該処理を終了し、ステップS2のコマンド受信待ち状態に戻る。
【0042】
ステップS15におけるチェックの結果、最終アドレスから見た書込み先範囲が領域オーバでない場合、CPU101は、当該データ領域EFの最終アドレスから見た書込み先範囲が全て初期値であるか否かをチェックし(ステップS16)、最終アドレスから見た書込み先範囲が全て初期値でない場合は当該処理を終了し、ステップS2のコマンド受信待ち状態に戻る。
【0043】
ステップS16におけるチェックの結果、最終アドレスから見た書込み先範囲が全て初期値である場合、CPU101は、データの書込み処理を開始する。すなわち、まず、当該データ領域EF内のフラグF2をセットする(ステップS17、図7(c)参照)。次に、CPU101は、フラグF1の示すデータの並び方向(最終アドレスから)で、当該データ領域EFに対してデータを書込む(ステップS18、図7(c)参照)。
【0044】
次に、CPU101は、全てのデータを正常に書込んだか否かをチェックし(ステップS19)、通信不良等で途中で書き終わってしまった場合は、当該データ領域EF内のフラグF1を「両方向で書込み不能」に切換え設定し、その後、フラグF2をクリアし、ステップS2のコマンド受信待ち状態に戻る(ステップS20,S21、図7(d)参照)。
【0045】
ステップS19におけるチェックの結果、全てのデータを正常に書込んだ場合、CPU101は、フラグF1はそのままで、フラグF2をクリアし(ステップS21、図7(e)参照)、ステップS2のコマンド受信待ち状態に戻る。以上で書込み処理を終了する。
【0046】
なお、2度、書込み失敗した場合に同じデータ領域EFに対してデータ書込みを行なう場合、フラグF1の状態が「両方向で不能」と判断した時点でコマンド処理を終了する。
【0047】
次に、第2の実施の形態について説明する。
第2の実施の形態では、さらに、データ領域EFには、初期状態が「データ領域は初期化状態」に設定され、データの書込みが終了した際に「データ領域は書込み済」に切換え設定される第3の識別子としてのフラグF3が格納されている。
【0048】
以下、第2の実施の形態に係るライトバイナリコマンドに対するデータ書込み処理について説明するが、前述した第1の実施の形態(図4、図5)と同一部分は説明を省略し、異なる部分について図8に示すフローチャートおよび図9に示すデータ領域にデータを書込む際のイメージ図を参照して説明する。
【0049】
前述した第1の実施の形態と異なる部分は、図8に示すように、ステップS15とステップS16との間にステップS27の処理が追加され、ステップS18とステップS19との間にステップS28の処理が追加された点が異なり、その他は同一である。
【0050】
すなわち、前述した第1の実施の形態と同様、ステップS1〜S14と進み、フラグF1がデータの並び方向は「最終アドレスから先頭アドレスに向う」となっている場合、CPU101は、受信したライトバイナリコマンドのP1部およびP2部の値とLc部の値(書込みサイズ)とフラグF1の状態に基づき、当該データ領域EFの最終アドレスから見た書込み先範囲が当該データ領域EFのサイズ未満(最終アドレスから見た書込み先範囲が領域オーバ)であるか否かをチェックし(ステップS15、図9(b)参照)、最終アドレスから見た書込み先範囲が領域オーバである場合は当該処理を終了し、ステップS2のコマンド受信待ち状態に戻る。
【0051】
ステップS15におけるチェックの結果、最終アドレスから見た書込み先範囲が領域オーバでない場合、CPU101は、当該データ領域EF内のフラグF3の状態をチェックし(ステップS27)、フラグF3が「データ領域は初期化状態」に設定されている場合、データの書込み処理を開始する。ステップS27におけるチェックの結果、フラグF3が「データ領域は書込み済」に設定されている場合、CPU101は、ステップS16の処理を行なった後、データの書込み処理を開始する。
【0052】
すなわち、まず、当該データ領域EF内のフラグF2をセットする(ステップS17、図9(c)参照)。次に、CPU101は、フラグF1の示すデータの並び方向(最終アドレスから)で、当該データ領域EFに対してデータを書込む(ステップS18、図9(c)参照)。このとき、CPU101は、フラグF3を「データ領域は書込み済」に切換え設定する(ステップS28)。
【0053】
次に、CPU101は、全てのデータを正常に書込んだか否かをチェックし(ステップS19)、通信不良等で途中で書き終わってしまった場合は、当該データ領域EF内のフラグF1を「両方向で書込み不能」に切換え設定し、その後、フラグF2をクリアし、ステップS2のコマンド受信待ち状態に戻る(ステップS20,S21)。
【0054】
ステップS19におけるチェックの結果、全てのデータを正常に書込んだ場合、CPU101は、フラグF1はそのままで、フラグF2をクリアし(ステップS21、図9(d)参照)、ステップS2のコマンド受信待ち状態に戻る。以上で書込み処理を終了する。
【0055】
なお、フラグF3は、ステップS6におけるチェックの結果、フラグF1がデータの並び方向は「先頭アドレスから最終アドレスに向う」となっていた場合には、状態チェックは行なわない。
【0056】
このように、ステップS27によるチェックの結果、フラグF3が「データ領域は初期化状態」となっていた場合、当該データ領域EFにデータが書込まれていてもそれを無視して最終アドレスからの並び方向でデータを書込み、フラグF3が「データ領域は書込み済」となっていた場合、当該データ領域EFの最終アドレスから見た書込み先範囲が全て初期値であることを確認して、最終アドレスからの並び方向でデータを書込むものである。
【0057】
以上説明したように、上記実施の形態によれば、1回だけデータの書込みが許可されたデータ領域に対してデータ(特に画像データ等の大量のデータ)を書込む際に、データ書込みの途中で通信異常等により全てのデータが書込めなかった場合、同じ領域内で逆方向からデータを書込むことにより、データ領域を再利用でき、非常に効率的である。
【0058】
なお、前記実施の形態では、携帯可能電子装置として接触式のICカードに適用した場合について説明したが、本発明はこれに限定されるものではなく、非接触式のICカードなどへの応用も可能であり、また、PDAと称される携帯端末装置や携帯電話機などであっても適用でき、さらに、携帯可能電子装置の形状もカード型に限らず、冊子型、ブロック型あるいはタグ型など、他の形状であってもよい。
【図面の簡単な説明】
【0059】
【図1】本発明に係る携帯可能電子装置としてのICカードを取扱うICカードシステムの構成例を示すブロック図。
【図2】ICカードの構成を概略的に示すブロック図。
【図3】ライトバイナリコマンドのフォーマットを示す模式図。
【図4】第1の実施の形態に係るライトバイナリコマンドに対するデータ書込み処理について説明するフローチャート。
【図5】第1の実施の形態に係るライトバイナリコマンドに対するデータ書込み処理について説明するフローチャート。
【図6】第1の実施の形態に係るライトバイナリコマンドに対するデータ書込み処理においてデータ領域にデータを書込む際のイメージ図。
【図7】第1の実施の形態に係るライトバイナリコマンドに対するデータ書込み処理においてデータ領域にデータを書込む際のイメージ図。
【図8】第2の実施の形態に係るライトバイナリコマンドに対するデータ書込み処理について説明する要部のフローチャート。
【図9】第2の実施の形態に係るライトバイナリコマンドに対するデータ書込み処理においてデータ領域にデータを書込む際のイメージ図。
【符号の説明】
【0060】
11…ICカード(携帯可能電子装置)、11a…ICカード本体、12…カードリーダ・ライタ、13…端末装置、14…キーボード、15…CRT表示部、16…プリンタ、101…CPU(制御素子)、102…データメモリ(記憶手段)、103…ワーキングメモリ、104…プログラムメモリ、105…コンタクト部、106…ICチップ、EF…データ領域(バイナリ・エレメンタリ・ファイル)、F1…フラグ(第1の識別子)、F2…フラグ(第2の識別子)、F3…フラグ(第3の識別子)。

【特許請求の範囲】
【請求項1】
データを記憶するためのメモリと、このメモリに対してデータの読出しおよびまたは書込みを行なう制御素子を有し、外部から入力されるコマンドに対応した処理を実行してその結果を外部へ出力し、かつ、前記メモリには、1回だけデータの書込みが許可されたデータ領域が少なくとも1つ以上設定されている携帯可能電子装置において、
前記データ領域におけるデータの並び方向が「先頭アドレスから最終アドレスに向う」あるいは「最終アドレスから先頭アドレスに向う」あるいは「両方向で書込み不能」であるかを表すもので、初期状態は「先頭アドレスから最終アドレスに向う」に設定されている第1の識別子と、
前記メモリの1回だけデータの書込みが許可されたデータ領域に対してデータの書込みを行なう際、前記第1の識別子の状態をチェックする第1のチェック手段と、
この第1のチェック手段によるチェックの結果、第1の識別子がデータの並び方向が「先頭アドレスから最終アドレスに向う」となっていた場合、先頭アドレスからの並び方向で当該データ領域に対してデータを書込む第1の書込み手段と、
この第1の書込み手段によるデータの書込み時に書込みエラーが発生した場合、前記第1の識別子をデータの並び方向は「最終アドレスから先頭アドレスに向う」に切換え設定する第1の制御手段と、
前記第1のチェック手段によるチェックの結果、第1の識別子がデータの並び方向は「最終アドレスから先頭アドレスに向う」となっていた場合、最終アドレスからの並び方向で当該データ領域に対してデータを書込む第2の書込み手段と、
この第2の書込み手段によるデータの書込み時に書込みエラーが発生した場合、前記第1の識別子を「両方向で書込み不能」に切換え設定する第2の制御手段と、
を具備したことを特徴とする携帯可能電子装置。
【請求項2】
前記第1の書込み手段あるいは第2の書込み手段によるデータの書込み時にセットされ、当該データの書込み終了時にクリアされる第2の識別子と、
前記1回だけデータの書込みが許可されたデータ領域に対してデータの書込みを行なう際、前記第2の識別子の状態をチェックする第2のチェック手段と、
この第2のチェック手段によるチェックの結果、第2の識別子がセットされている場合、前記第1の識別子をデータの並び方向は「最終アドレスから先頭アドレスに向う」に切換え設定する第3の制御手段とをさらに具備し、
前記第1のチェック手段は、前記第2のチェック手段によるチェックの結果、第2の識別子がクリアされている場合、前記第1の識別子の状態をチェックすることを特徴とする請求項1記載の携帯可能電子装置。
【請求項3】
初期状態が「1回だけデータの書込みが許可されたデータ領域は初期化状態」に設定され、前記第2の書込み手段によるデータの書込みが終了した際に「1回だけデータの書込みが許可されたデータ領域は書込み済」に切換え設定される第3の識別子と、
前記第1のチェック手段によるチェックの結果、第1の識別子がデータの並び方向は「最終アドレスから先頭アドレスに向う」となっていた場合、前記第3の識別子の状態をチェックする第3のチェック手段とをさらに具備し、
前記第2の書込み手段は、前記第3のチェック手段によるチェックの結果、第3の識別子が「1回だけデータの書込みが許可されたデータ領域は初期化状態」となっていた場合、当該データ領域にデータが書込まれていてもそれを無視して最終アドレスからの並び方向でデータを書込み、第3の識別子が「1回だけデータの書込みが許可されたデータ領域は書込み済」となっていた場合、当該データ領域の最終アドレスから見た書込み先範囲が全て初期値であることを確認して、最終アドレスからの並び方向でデータを書込むことを特徴とする請求項1記載の携帯可能電子装置。
【請求項4】
データを記憶するためのメモリと、このメモリに対してデータの読出しおよびまたは書込みを行なう制御素子を有し、外部から入力されるコマンドに対応した処理を実行してその結果を外部へ出力し、かつ、前記メモリには、1回だけデータの書込みが許可されたデータ領域が少なくとも1つ以上設定されているICカードにおいて、
前記データ領域におけるデータの並び方向が「先頭アドレスから最終アドレスに向う」あるいは「最終アドレスから先頭アドレスに向う」あるいは「両方向で書込み不能」であるかを表すもので、初期状態は「先頭アドレスから最終アドレスに向う」に設定されている第1の識別子と、前記メモリの1回だけデータの書込みが許可されたデータ領域に対してデータの書込みを行なう際、前記第1の識別子の状態をチェックする第1のチェック手段と、この第1のチェック手段によるチェックの結果、第1の識別子がデータの並び方向が「先頭アドレスから最終アドレスに向う」となっていた場合、先頭アドレスからの並び方向で当該データ領域に対してデータを書込む第1の書込み手段と、この第1の書込み手段によるデータの書込み時に書込みエラーが発生した場合、前記第1の識別子をデータの並び方向は「最終アドレスから先頭アドレスに向う」に切換え設定する第1の制御手段と、前記第1のチェック手段によるチェックの結果、第1の識別子がデータの並び方向は「最終アドレスから先頭アドレスに向う」となっていた場合、最終アドレスからの並び方向で当該データ領域に対してデータを書込む第2の書込み手段と、この第2の書込み手段によるデータの書込み時に書込みエラーが発生した場合、前記第1の識別子を「両方向で書込み不能」に切換え設定する第2の制御手段とを有したICモジュールと、
このICモジュールを収納したICカード本体と、
を具備したことを特徴とするICカード。
【請求項5】
前記ICモジュールは、さらに、
前記第1の書込み手段あるいは第2の書込み手段によるデータの書込み時にセットされ、当該データの書込み終了時にクリアされる第2の識別子と、前記1回だけデータの書込みが許可されたデータ領域に対してデータの書込みを行なう際、前記第2の識別子の状態をチェックする第2のチェック手段と、この第2のチェック手段によるチェックの結果、第2の識別子がセットされている場合、前記第1の識別子をデータの並び方向は「最終アドレスから先頭アドレスに向う」に切換え設定する第3の制御手段とを具備し、
前記第1のチェック手段は、前記第2のチェック手段によるチェックの結果、第2の識別子がクリアされている場合、前記第1の識別子の状態をチェックすることを特徴とする請求項4記載のICカード。
【請求項6】
前記ICモジュールは、さらに、
初期状態が「1回だけデータの書込みが許可されたデータ領域は初期化状態」に設定され、前記第2の書込み手段によるデータの書込みが終了した際に「1回だけデータの書込みが許可されたデータ領域は書込み済」に切換え設定される第3の識別子と、前記第1のチェック手段によるチェックの結果、第1の識別子がデータの並び方向は「最終アドレスから先頭アドレスに向う」となっていた場合、前記第3の識別子の状態をチェックする第3のチェック手段とをさらに具備し、
前記第2の書込み手段は、前記第3のチェック手段によるチェックの結果、第3の識別子が「1回だけデータの書込みが許可されたデータ領域は初期化状態」となっていた場合、当該データ領域にデータが書込まれていてもそれを無視して最終アドレスからの並び方向でデータを書込み、第3の識別子が「1回だけデータの書込みが許可されたデータ領域は書込み済」となっていた場合、当該データ領域の最終アドレスから見た書込み先範囲が全て初期値であることを確認して、最終アドレスからの並び方向でデータを書込むことを特徴とする請求項4記載のICカード。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate


【公開番号】特開2007−122394(P2007−122394A)
【公開日】平成19年5月17日(2007.5.17)
【国際特許分類】
【出願番号】特願2005−313458(P2005−313458)
【出願日】平成17年10月27日(2005.10.27)
【出願人】(000003078)株式会社東芝 (54,554)
【Fターム(参考)】