(57)【要約】【課題】データの書込み途中において書込み失敗が発生しても、データ領域を再利用でき、効率的なデータ書込み処理が可能となる携帯可能電子装置およびＩＣカードを提供する。【解決手段】１回だけデータの書込みが許可されたバイナリＥＦに対して特にデータ長の長いデータを書込む際に書込み異常（書込み失敗）が発生した場合、内部に記録した前回の書込み先頭アドレスおよび書込み最終アドレスを利用することで、書込み失敗している領域を見付け出し、再度ライトバイナリコマンドを受付ける。【選択図】      図２
2008047042.tif 000002
【特許請求の範囲】
【請求項１】
１回だけデータの書込みが許可されたデータ領域が少なくとも１つ以上設定されているメモリと、
前記１回だけデータの書込みが許可されたデータ領域に対するデータの書込み先頭アドレスおよび書込み最終アドレスを記憶するためのアドレス記憶手段と、
前記１回だけデータの書込みが許可されたデータ領域に対してデータの書込みを指示する命令を受信した場合、当該命令内の特定情報に基づき今回のデータ書込み範囲を示す書込み先頭アドレスおよび書込み最終アドレスを求めるアドレス算出手段と、
このアドレス算出手段により算出された書込み先頭アドレスおよび書込み最終アドレスを前記アドレス記憶手段に書込むアドレス書込み手段と、
前記受信した命令により指定された長さのデータを前記１回だけデータの書込みが許可されたデータ領域に対して書込む処理を行なう書込み処理手段と、
この書込み処理手段によるデータの書込みが正常に終了した場合、前記アドレス記憶手段内の書込み先頭アドレスおよび書込み最終アドレスを特定の値に初期化する初期化手段と、
前記１回だけデータの書込みが許可されたデータ領域に対してデータの書込みを指示する命令を再度受信した場合、当該命令に対して前記アドレス算出手段により算出された今回の書込み先頭アドレスおよび書込み最終アドレスが前記アドレス記憶手段内の前回の書込み先頭アドレスおよび書込み最終アドレスと一致するか否かを判定する第１の判定手段と、
この第１の判定手段による判定の結果、今回の書込み先頭アドレスおよび書込み最終アドレスが前回の書込み先頭アドレスおよび書込み最終アドレスと一致する場合、当該データ領域に対する前回のデータ書込み処理が正常に終了しなかったものと判断して、当該データ領域内のデータを前記再度受信した命令にて指定された長さのデータに書換える処理を行なう書換え処理手段と、
を具備したことを特徴とする携帯可能電子装置。
【請求項２】
１回だけデータの書込みが許可されたデータ領域が少なくとも１つ以上設定されているメモリと、
前記１回だけデータの書込みが許可されたデータ領域に対するデータの書込み先頭アドレスおよび書込み最終アドレスを記憶するためのアドレス記憶手段と、
前記１回だけデータの書込みが許可されたデータ領域に対してデータの書込みを指示する命令を受信した場合、当該命令内の特定情報に基づき今回のデータ書込み範囲を示す書込み先頭アドレスおよび書込み最終アドレスを求めるアドレス算出手段と、
このアドレス算出手段により算出された書込み先頭アドレスおよび書込み最終アドレスを前記アドレス記憶手段に書込むアドレス書込み手段と、
前記受信した命令により指定された長さのデータを前記１回だけデータの書込みが許可されたデータ領域に対して書込む処理を行なう書込み処理手段と、
前記１回だけデータの書込みが許可されたデータ領域に対してデータの書込みを指示する命令を再度受信した場合、当該命令に対して前記アドレス算出手段により算出された今回の書込み先頭アドレスおよび書込み最終アドレスが前記アドレス記憶手段内の前回の書込み先頭アドレスおよび書込み最終アドレスの範囲内であるか否かを判定する第２の判定手段と、
この第２の判定手段による判定の結果、今回の書込み先頭アドレスおよび書込み最終アドレスが前回の書込み先頭アドレスおよび書込み最終アドレスの範囲内である場合、当該データ領域に対する前回のデータ書込み処理に書込み失敗があったか否かを判定する第３の判定手段と、
この第３の判定手段による判定の結果、前回のデータ書込み処理に書込み失敗があった場合、当該データ領域内のデータを前記再度受信した命令にて指定された長さのデータに書換える処理を行なう書換え処理手段と、
を具備したことを特徴とする携帯可能電子装置。
【請求項３】
前記第３の判定手段は、当該データ領域において、前記アドレス記憶手段内の前回の書込み最終アドレスから前方に所定長分連続してデータ未書込み状態を示す特定データが存在した場合に前回のデータ書込み処理に書込み失敗があったと判定することを特徴とする請求項２記載の携帯可能電子装置。
【請求項４】
前記第３の判定手段は、当該データ領域において、前記アドレス記憶手段内の前回の書込み先頭アドレスから書込み最終アドレスの間に所定長分連続してデータ未書込み状態を示す特定データが存在した場合に前回のデータ書込み処理の途中で書込み失敗があったと判定することを特徴とする請求項２記載の携帯可能電子装置。
【請求項５】
前記第３の判定手段は、前回の命令受信時に当該命令により書込むデータにおいてデータ未書込み状態を示す特定データを検索することにより当該特定データが連続する数を記憶しておき、今回の命令受信時に当該データ領域においてデータ未書込み状態を示す特定データを検索することにより、前記アドレス記憶手段内の前回の書込み先頭アドレスから書込み最終アドレスの間に連続してデータ未書込み状態を示す特定データが前記記憶しておいた数以上存在する場合に前回のデータ書込み処理の途中で書込み失敗があったと判定することを特徴とする請求項２記載の携帯可能電子装置。
【請求項６】
１回だけデータの書込みが許可されたデータ領域が少なくとも１つ以上設定されているメモリと、前記１回だけデータの書込みが許可されたデータ領域に対するデータの書込み先頭アドレスおよび書込み最終アドレスを記憶するためのアドレス記憶手段と、前記１回だけデータの書込みが許可されたデータ領域に対してデータの書込みを指示する命令を受信した場合、当該命令内の特定情報に基づき今回のデータ書込み範囲を示す書込み先頭アドレスおよび書込み最終アドレスを求めるアドレス算出手段と、このアドレス算出手段により算出された書込み先頭アドレスおよび書込み最終アドレスを前記アドレス記憶手段に書込むアドレス書込み手段と、前記受信した命令により指定された長さのデータを前記１回だけデータの書込みが許可されたデータ領域に対して書込む処理を行なう書込み処理手段と、この書込み処理手段によるデータの書込みが正常に終了した場合、前記アドレス記憶手段内の書込み先頭アドレスおよび書込み最終アドレスを特定の値に初期化する初期化手段と、前記１回だけデータの書込みが許可されたデータ領域に対してデータの書込みを指示する命令を再度受信した場合、当該命令に対して前記アドレス算出手段により算出された今回の書込み先頭アドレスおよび書込み最終アドレスが前記アドレス記憶手段内の前回の書込み先頭アドレスおよび書込み最終アドレスと一致するか否かを判定する第１の判定手段と、この第１の判定手段による判定の結果、今回の書込み先頭アドレスおよび書込み最終アドレスが前回の書込み先頭アドレスおよび書込み最終アドレスと一致する場合、当該データ領域に対する前回のデータ書込み処理が正常に終了しなかったものと判断して、当該データ領域内のデータを前記再度受信した命令にて指定された長さのデータに書換える処理を行なう書換え処理手段とを有して構成されるＩＣモジュールと、
このＩＣモジュールを収納したＩＣカード本体と、
を具備したことを特徴とするＩＣカード。
【請求項７】
１回だけデータの書込みが許可されたデータ領域が少なくとも１つ以上設定されているメモリと、前記１回だけデータの書込みが許可されたデータ領域に対するデータの書込み先頭アドレスおよび書込み最終アドレスを記憶するためのアドレス記憶手段と、前記１回だけデータの書込みが許可されたデータ領域に対してデータの書込みを指示する命令を受信した場合、当該命令内の特定情報に基づき今回のデータ書込み範囲を示す書込み先頭アドレスおよび書込み最終アドレスを求めるアドレス算出手段と、このアドレス算出手段により算出された書込み先頭アドレスおよび書込み最終アドレスを前記アドレス記憶手段に書込むアドレス書込み手段と、前記受信した命令により指定された長さのデータを前記１回だけデータの書込みが許可されたデータ領域に対して書込む処理を行なう書込み処理手段と、前記１回だけデータの書込みが許可されたデータ領域に対してデータの書込みを指示する命令を再度受信した場合、当該命令に対して前記アドレス算出手段により算出された今回の書込み先頭アドレスおよび書込み最終アドレスが前記アドレス記憶手段内の前回の書込み先頭アドレスおよび書込み最終アドレスの範囲内であるか否かを判定する第２の判定手段と、この第２の判定手段による判定の結果、今回の書込み先頭アドレスおよび書込み最終アドレスが前回の書込み先頭アドレスおよび書込み最終アドレスの範囲内である場合、当該データ領域に対する前回のデータ書込み処理に書込み失敗があったか否かを判定する第３の判定手段と、この第３の判定手段による判定の結果、前回のデータ書込み処理に書込み失敗があった場合、当該データ領域内のデータを前記再度受信した命令にて指定された長さのデータに書換える処理を行なう書換え処理手段とを有して構成されるＩＣモジュールと、
このＩＣモジュールを収納したＩＣカード本体と、
を具備したことを特徴とするＩＣカード。
【請求項８】
前記第３の判定手段は、当該データ領域において、前記アドレス記憶手段内の前回の書込み最終アドレスから前方に所定長分連続してデータ未書込み状態を示す特定データが存在した場合に前回のデータ書込み処理に書込み失敗があったと判定することを特徴とする請求項７記載のＩＣカード。
【請求項９】
前記第３の判定手段は、当該データ領域において、前記アドレス記憶手段内の前回の書込み先頭アドレスから書込み最終アドレスの間に所定長分連続してデータ未書込み状態を示す特定データが存在した場合に前回のデータ書込み処理の途中で書込み失敗があったと判定することを特徴とする請求項７記載のＩＣカード。
【請求項１０】
前記第３の判定手段は、前回の命令受信時に当該命令により書込むデータにおいてデータ未書込み状態を示す特定データを検索することにより当該特定データが連続する数を記憶しておき、今回の命令受信時に当該データ領域においてデータ未書込み状態を示す特定データを検索することにより、前記アドレス記憶手段内の前回の書込み先頭アドレスから書込み最終アドレスの間に連続してデータ未書込み状態を示す特定データが前記記憶しておいた数以上存在する場合に前回のデータ書込み処理の途中で書込み失敗があったと判定することを特徴とする請求項７記載のＩＣカード。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、たとえば、書換え可能な不揮発性メモリおよびＣＰＵ（セントラル・プロセッシング・ユニット）などの制御素子を有するＩＣ（集積回路）チップを内蔵し、外部から供給されるコマンド（命令）に基づき各種処理を実行してその処理結果を外部へ出力するＩＣカードなどの携帯可能電子装置およびＩＣカードに関する。
【背景技術】
【０００２】
最近、携帯可能電子装置として、書換え可能な不揮発性メモリとしてのＥＥＰＲＯＭ、揮発性メモリとしてのＲＡＭ、これらのメモリに対してアクセス（データの読出しおよびまたは書込み等）を行なう制御素子としてのＣＰＵ、および、ＣＰＵの動作用プログラム等を格納したＲＯＭを有し、外部装置（ＩＣカードリーダ・ライタ）から供給されるコマンド（命令）に対応した処理を実行して、その処理結果を外部装置へ出力する手段を備えたＩＣチップを内蔵したＩＣカードが産業各方面で利用されている。
【０００３】
この種のＩＣカードにおいて、不揮発性メモリには、メモリ容量が大容量で、バイナリデータを１回だけ書込めて書換えができないデータ領域（バイナリ・エレメンタリ・ファイル）が設定されているものがある（たとえば、非特許文献１参照）。  
このような１回だけデータの書込みが許可されたデータ領域に対して、たとえば、特に画像データ等のデータ長が長いデータを書込む場合、分割して外部から入力されたデータを順次書込むことになる。その書込み途中において、通信異常等でデータの書込みが中断された場合、再度同一コマンドを実行しても途中までデータが書込まれているため、書込み異常となり、当該ＩＣカードを再利用することはできない。
【非特許文献１】日本工業規格準拠  ＪＩＣＳＡＰ  外部端子付きＩＣカード仕                        様（平成１０年７月  第１．１版）
【特許文献１】特開平１０−２１４２３２号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
しかし、上記した従来の技術では、１回だけデータの書込みが許可されたデータ領域に対して特にデータ長の長いデータを書込む途中において、通信異常等でデータの書込みが中断された場合、再度同一コマンドを実行しても途中までデータが書込まれているため、書込み異常（書込み失敗）となり、当該ＩＣカードを再利用することはできず、効率的ではないという問題がある。
【０００５】
そこで、本発明は、たとえば、１回だけデータの書込みが許可されたデータ領域に対して特にデータ長の長いデータを書込む際に書込み異常（書込み失敗）が発生した場合、内部に記録した前回の書込み先頭アドレスおよび書込み最終アドレスを利用することで、書込み失敗している領域を見付け出し、再度書込み命令を受付けることにより、データ領域を再利用でき、効率的なデータ書込み処理が可能となる携帯可能電子装置およびＩＣカードを提供することを目的とする。
【課題を解決するための手段】
【０００６】
本発明の携帯可能電子装置は、１回だけデータの書込みが許可されたデータ領域が少なくとも１つ以上設定されているメモリと、前記１回だけデータの書込みが許可されたデータ領域に対するデータの書込み先頭アドレスおよび書込み最終アドレスを記憶するためのアドレス記憶手段と、前記１回だけデータの書込みが許可されたデータ領域に対してデータの書込みを指示する命令を受信した場合、当該命令内の特定情報に基づき今回のデータ書込み範囲を示す書込み先頭アドレスおよび書込み最終アドレスを求めるアドレス算出手段と、このアドレス算出手段により算出された書込み先頭アドレスおよび書込み最終アドレスを前記アドレス記憶手段に書込むアドレス書込み手段と、前記受信した命令により指定された長さのデータを前記１回だけデータの書込みが許可されたデータ領域に対して書込む処理を行なう書込み処理手段と、この書込み処理手段によるデータの書込みが正常に終了した場合、前記アドレス記憶手段内の書込み先頭アドレスおよび書込み最終アドレスを特定の値に初期化する初期化手段と、前記１回だけデータの書込みが許可されたデータ領域に対してデータの書込みを指示する命令を再度受信した場合、当該命令に対して前記アドレス算出手段により算出された今回の書込み先頭アドレスおよび書込み最終アドレスが前記アドレス記憶手段内の前回の書込み先頭アドレスおよび書込み最終アドレスと一致するか否かを判定する第１の判定手段と、この第１の判定手段による判定の結果、今回の書込み先頭アドレスおよび書込み最終アドレスが前回の書込み先頭アドレスおよび書込み最終アドレスと一致する場合、当該データ領域に対する前回のデータ書込み処理が正常に終了しなかったものと判断して、当該データ領域内のデータを前記再度受信した命令にて指定された長さのデータに書換える処理を行なう書換え処理手段とを具備している。
【０００７】
また、本発明の携帯可能電子装置は、１回だけデータの書込みが許可されたデータ領域が少なくとも１つ以上設定されているメモリと、前記１回だけデータの書込みが許可されたデータ領域に対するデータの書込み先頭アドレスおよび書込み最終アドレスを記憶するためのアドレス記憶手段と、前記１回だけデータの書込みが許可されたデータ領域に対してデータの書込みを指示する命令を受信した場合、当該命令内の特定情報に基づき今回のデータ書込み範囲を示す書込み先頭アドレスおよび書込み最終アドレスを求めるアドレス算出手段と、このアドレス算出手段により算出された書込み先頭アドレスおよび書込み最終アドレスを前記アドレス記憶手段に書込むアドレス書込み手段と、前記受信した命令により指定された長さのデータを前記１回だけデータの書込みが許可されたデータ領域に対して書込む処理を行なう書込み処理手段と、前記１回だけデータの書込みが許可されたデータ領域に対してデータの書込みを指示する命令を再度受信した場合、当該命令に対して前記アドレス算出手段により算出された今回の書込み先頭アドレスおよび書込み最終アドレスが前記アドレス記憶手段内の前回の書込み先頭アドレスおよび書込み最終アドレスの範囲内であるか否かを判定する第２の判定手段と、この第２の判定手段による判定の結果、今回の書込み先頭アドレスおよび書込み最終アドレスが前回の書込み先頭アドレスおよび書込み最終アドレスの範囲内である場合、当該データ領域に対する前回のデータ書込み処理に書込み失敗があったか否かを判定する第３の判定手段と、この第３の判定手段による判定の結果、前回のデータ書込み処理に書込み失敗があった場合、当該データ領域内のデータを前記再度受信した命令にて指定された長さのデータに書換える処理を行なう書換え処理手段とを具備している。
【０００８】
また、本発明のＩＣカードは、１回だけデータの書込みが許可されたデータ領域が少なくとも１つ以上設定されているメモリと、前記１回だけデータの書込みが許可されたデータ領域に対するデータの書込み先頭アドレスおよび書込み最終アドレスを記憶するためのアドレス記憶手段と、前記１回だけデータの書込みが許可されたデータ領域に対してデータの書込みを指示する命令を受信した場合、当該命令内の特定情報に基づき今回のデータ書込み範囲を示す書込み先頭アドレスおよび書込み最終アドレスを求めるアドレス算出手段と、このアドレス算出手段により算出された書込み先頭アドレスおよび書込み最終アドレスを前記アドレス記憶手段に書込むアドレス書込み手段と、前記受信した命令により指定された長さのデータを前記１回だけデータの書込みが許可されたデータ領域に対して書込む処理を行なう書込み処理手段と、この書込み処理手段によるデータの書込みが正常に終了した場合、前記アドレス記憶手段内の書込み先頭アドレスおよび書込み最終アドレスを特定の値に初期化する初期化手段と、前記１回だけデータの書込みが許可されたデータ領域に対してデータの書込みを指示する命令を再度受信した場合、当該命令に対して前記アドレス算出手段により算出された今回の書込み先頭アドレスおよび書込み最終アドレスが前記アドレス記憶手段内の前回の書込み先頭アドレスおよび書込み最終アドレスと一致するか否かを判定する第１の判定手段と、この第１の判定手段による判定の結果、今回の書込み先頭アドレスおよび書込み最終アドレスが前回の書込み先頭アドレスおよび書込み最終アドレスと一致する場合、当該データ領域に対する前回のデータ書込み処理が正常に終了しなかったものと判断して、当該データ領域内のデータを前記再度受信した命令にて指定された長さのデータに書換える処理を行なう書換え処理手段とを有して構成されるＩＣモジュールと、このＩＣモジュールを収納したＩＣカード本体とを具備している。
【０００９】
また、本発明のＩＣカードは、１回だけデータの書込みが許可されたデータ領域が少なくとも１つ以上設定されているメモリと、前記１回だけデータの書込みが許可されたデータ領域に対するデータの書込み先頭アドレスおよび書込み最終アドレスを記憶するためのアドレス記憶手段と、前記１回だけデータの書込みが許可されたデータ領域に対してデータの書込みを指示する命令を受信した場合、当該命令内の特定情報に基づき今回のデータ書込み範囲を示す書込み先頭アドレスおよび書込み最終アドレスを求めるアドレス算出手段と、このアドレス算出手段により算出された書込み先頭アドレスおよび書込み最終アドレスを前記アドレス記憶手段に書込むアドレス書込み手段と、前記受信した命令により指定された長さのデータを前記１回だけデータの書込みが許可されたデータ領域に対して書込む処理を行なう書込み処理手段と、前記１回だけデータの書込みが許可されたデータ領域に対してデータの書込みを指示する命令を再度受信した場合、当該命令に対して前記アドレス算出手段により算出された今回の書込み先頭アドレスおよび書込み最終アドレスが前記アドレス記憶手段内の前回の書込み先頭アドレスおよび書込み最終アドレスの範囲内であるか否かを判定する第２の判定手段と、この第２の判定手段による判定の結果、今回の書込み先頭アドレスおよび書込み最終アドレスが前回の書込み先頭アドレスおよび書込み最終アドレスの範囲内である場合、当該データ領域に対する前回のデータ書込み処理に書込み失敗があったか否かを判定する第３の判定手段と、この第３の判定手段による判定の結果、前回のデータ書込み処理に書込み失敗があった場合、当該データ領域内のデータを前記再度受信した命令にて指定された長さのデータに書換える処理を行なう書換え処理手段とを有して構成されるＩＣモジュールと、このＩＣモジュールを収納したＩＣカード本体とを具備している。
【発明の効果】
【００１０】
本発明によれば、たとえば、１回だけデータの書込みが許可されたデータ領域に対して特にデータ長の長いデータを書込む際に書込み異常（書込み失敗）が発生した場合、内部に記録した前回の書込み先頭アドレスおよび書込み最終アドレスを利用することで、書込み失敗している領域を見付け出し、再度書込み命令を受付けることにより、データ領域を再利用でき、効率的なデータ書込み処理が可能となる携帯可能電子装置およびＩＣカードを提供できる。
【発明を実施するための最良の形態】
【００１１】
以下、本発明の実施の形態について図面を参照して説明する。  
図１は、本発明の実施の形態に係る携帯可能電子装置としてのＩＣカードを取扱うＩＣカードシステムの構成例を示すものである。このＩＣカードシステムは、ＩＣカード１１をカードリーダ・ライタ１２を介してパーソナルコンピュータなどの端末装置１３と接続可能にするとともに、端末装置１３にキーボード１４、ＣＲＴ表示部１５、プリンタ１６を接続して構成される。
【００１２】
図２は、ＩＣカード１１の構成を示すもので、制御素子としてのＣＰＵ１０１、記憶内容が書換え可能な記憶手段（メモリ）としてのデータメモリ１０２、ワーキングメモリ１０３、プログラムメモリ１０４、および、カードリーダ・ライタ１２との電気的接触を得るためのコンタクト部１０５によって構成されている。そして、これらのうち、破線内の部分（ＣＰＵ１０１、データメモリ１０２、ワーキングメモリ１０３、プログラムメモリ１０４）は１つ（あるいは複数）のＩＣチップ１０６で構成され、さらに、このＩＣチップ１０６とコンタクト部１０５とが一体的にＩＣモジュール化されて、ＩＣカード本体１１ａ内に埋設されている。
【００１３】
データメモリ１０２は、たとえば、ＥＥＰＲＯＭなどの記憶内容が書換え可能な不揮発性メモリで構成されていて、各種アプリケーションデータなどがファイル構造で記憶される。
【００１４】
たとえば、データメモリ１０２には、メモリ容量が大容量で、バイナリデータを１回だけ書込めて書換えができないデータ領域（バイナリ・エレメンタリ・ファイル、以下バイナリＥＦと略称する）が少なくとも１つ以上設定されていて、このバイナリＥＦには画像データ等（たとえば、１０Ｋバイトあるいは２０Ｋバイト以上の顔画像等）のデータ長が長いデータが格納されるものとする。
【００１５】
ワーキングメモリ１０３は、ＣＰＵ１０１が処理を行なう際の処理データなどを一時的に保持するための作業用メモリであり、たとえば、ＲＡＭなどで構成される。  
プログラムメモリ１０４は、たとえば、マスクＲＯＭなどの記憶内容が書換え不可能な不揮発性メモリで構成されており、ＣＰＵ１０１の制御プログラムなどを記憶するものである。
【００１６】
図３は、データメモリ１０２内に前記バイナリＥＦを定義するためのＥＦ定義情報の構成例を示すものである。たとえば、図３に示す例では、３つのＥＦ定義情報２１，２２，２３は、データメモリ１０２内に格納されていて、当該バイナリＥＦを識別するための識別情報である「ＥＦＩＤ」、データメモリ１０２において当該バイナリＥＦが定義される位置を示す情報である「先頭アドレス」、当該バイナリＥＦの大きさ（格納可能なデータ長）を示す情報である「サイズ」、当該バイナリＥＦに対し前回データを書込んだ際の先頭のアドレスを示す情報である「前回書込み先頭アドレス」、および、当該バイナリＥＦに対し前回データを書込んだ際の最終のアドレスを示す情報である「前回書込み最終アドレス」を有して構成される。
【００１７】
たとえば、図３に示す例では、ＥＦ定義情報２１は、ＥＦＩＤが「０００１」、先頭アドレスが「８０００」、サイズが「１０００」となっている。これは、データメモリ１０２におけるアドレス「８０００」から「１０００」バイト分の領域、つまり、アドレス「８０００〜８ＦＦＦ」までが「ＥＦＩＤ＝０００１」のバイナリＥＦであることを定義することを示している。また、図３に示す例では、ＥＦ定義情報２１は、前回書込み先頭アドレスおよび前回書込み最終アドレスは共に初期値として特定の値（たとえば、オールＦＦ）が書込まれている状態を示している。
【００１８】
図３に示す例では、ＥＦ定義情報２２は、ＥＦＩＤが「０００２」、先頭アドレスが「９０００」、サイズが「２００」となっている。これは、データメモリ１０２におけるアドレス「９０００」から「２００」バイト分の領域、つまり、アドレス「９０００〜９１ＦＦ」までが「ＥＦＩＤ＝０００２」のバイナリＥＦであることを定義することを示している。また、図３に示す例では、ＥＦ定義情報２２は、前回書込み先頭アドレスおよび前回書込み最終アドレスは共に初期値として特定の値（たとえば、オールＦＦ）が書込まれている状態を示している。
【００１９】
図３に示す例では、ＥＦ定義情報２３は、ＥＦＩＤが「０００３」、先頭アドレスが「９２００」、サイズが「１００」となっている。これは、データメモリ１０２におけるアドレス「９２００」から「１００」バイト分の領域、つまり、アドレス「９２００〜９２ＦＦ」までが「ＥＦＩＤ＝０００３」のバイナリＥＦであることを定義することを示している。また、図３に示す例では、ＥＦ定義情報２３は、前回書込み先頭アドレスおよび前回書込み最終アドレスは共に初期値として特定の値（たとえば、オールＦＦ）が書込まれている状態を示している。
【００２０】
図４は、データメモリ１０２の１回だけデータの書込みが許可されたデータ領域（バイナリＥＦ）に対してバイナリデータを書込む際のライトバイナリ（WRITE BINARY）コマンド（命令）のフォーマットを示すものである。ライトバイナリコマンドは、外部のカードリーダ・ライタ１２から入力されるもので、コマンドを識別する機能などを持つ分類部（ＣＬＡ：ｃｌａｓｓ）、命令部（ＩＮＳ：ｉｎｓｔｒｕｃｔｉｏｎ）、パラメータデータ（Ｐ１、Ｐ２）、書込むデータの長さを表すデータ長（Ｌｃ）、および、書込みデータ（ＤＡＴＡ）から構成されている。
【００２１】
ＣＬＡ部およびＩＮＳ部には、当該コマンドの種類を示す情報が格納される。図４に示す例では、ＣＬＡ部およびＩＮＳ部には、ライトバイナリコマンドであることを示す「００」および「Ｄ０」が格納されている。
【００２２】
Ｐ１部およびＰ２部には、当該コマンドの処理パラメータを示す情報が格納される。すなわち、Ｐ１部には、データの書込み対象となるバイナリＥＦを指定する情報（ＥＦＩＤを示す情報）が格納される。図４に示す例では、Ｐ１部には、「８１（１６進数）＝１００００００１（２進数）」が格納されている。なお、図４に示す例では、Ｐ１部における値の２進数の下５桁がＥＦの識別情報（ＥＦＩＤ）を示すものとする。つまり、図４に示す例では、Ｐ１部はＥＦＩＤとして「００００１」を指定している。
【００２３】
また、Ｐ２部には、Ｐ１部で指定されるバイナリＥＦにおけるデータの書込む位置（アドレス）を示す情報としてのオフセット値が格納される。図４に示す例では、Ｐ２部には、Ｐ１部で指定される「ＥＦＩＤ＝０００１」のバイナリＥＦにおけるオフセット値を示す情報として「００」が格納されている。すなわち、図４に示す例では、ＥＦＩＤが「００００１で」、かつ、オフセット値が「０」である。このため、図４に示すライトバイナリコマンドでは、Ｐ１部およびＰ２部において、データの書込み開始位置として、「ＥＦＩＤ＝０００１」のバイナリＥＦに対する先頭アドレスを指定している。
【００２４】
また、Ｌｃ部には、バイナリデータとして書込むべきデータ全体の長さ（データ長）を示す情報が格納される。ＤＡＴＡ部には、書込むべきデータのうち最初の部分のデータが格納される。この場合、ＤＡＴＡ部には、所定の長さまでのデータが格納されるものとする。つまり、Ｌｃ部で指定されている長さのデータが必ずしもＤＡＴＡ部に全てが格納されているわけではない。バイナリデータとして書込むべきデータ全体の長さが、ＤＡＴＡ部に格納しきれない長さであれば、ＤＡＴＡ部には、書込むべきデータのうち最初の部分のデータが格納される。
【００２５】
たとえば、図４に示す例では、Ｌｃ部にはデータ長として「１０００」が指定されている。これは、書込むべきバイナリデータ全体のデータ長が「１０００」であることを示している。また、ＤＡＴＡ部には、データ長が「１００」のデータが格納されている。ここでは、ＤＡＴＡ部に格納可能なデータ長が「１００」であるとする。この場合、図４に示すように、ライトバイナリコマンドのＤＡＴＡ部には、書込むべきバイナリデータ全体のうち先頭からデータ長が「１００」までのデータだけしか格納されていない。
【００２６】
したがって、書込むべきバイナリデータのうち残りの「９００」のデータは、当該ライトバイナリコマンドとは、別にＩＣカード１１に供給する必要がある。このため、ライトバイナリコマンドでは、当該コマンドのＤＡＴＡ部に格納しきれない残りのデータ（バイナリデータ）を続けてＩＣカード１１に供給できるようになっている。ここでは、当該ライトバイナリコマンドに続けて、データ長が「１００」のデータが順次送信されるようになっているものとする。
【００２７】
図５は、図４に示すライトバイナリコマンドに続いて送信されるべきデータ（コマンド）の例を示す図である。図４に示すライトバイナリコマンドで指定された書込むべきバイナリデータ全体は、図５に示すようなデータ長が「１００」のデータごとに分割される。これらのデータ長が「１００」のデータは、ライトバイナリコマンドに続いて順次送信されるようになっている。
【００２８】
すなわち、ライトバイナリコマンドのＤＡＴＡ部に格納しきれないデータ長が大きなバイナリデータは、所定のデータ長に基づいて分割され、ライトバイナリコマンドに続いて順次、カードリーダ・ライタ１２からＩＣカード１１へ供給されるようになっている。これにより、ＩＣカード１１では、ライトバイナリコマンドのＬｃ部で指定されている長さのバイナリデータを、ライトバイナリコマンドのＤＡＴＡ部、および、ライトバイナリコマンドに続く送信データとして順次受信する。この場合、ＩＣカード１１は、受信したデータを書込む処理を行なうようになっている。
【００２９】
次に、このような構成において、第１の実施の形態に係るライトバイナリコマンドに対するデータ書込み処理について図６および図７に示すフローチャートを参照して説明する。  
ＣＰＵ１０１は、カードリーダ・ライタ１２からのリセット解除により活性化されると、カードリーダ・ライタ１２に対し初期応答データを送信する（ステップＳ１）。初期応答データを正常に送信すると、ＣＰＵ１０１は、カードリーダ・ライタ１２から入力されるコマンドの受信を待機し、コマンドを正常に受信すると（ステップＳ２）、当該コマンドのＣＬＡ部およびＩＮＳ部によりコマンドの種類を確認する（ステップＳ３）。確認の結果、受信したコマンドがライトバイナリコマンド以外の場合、ＣＰＵ１０１は、対応するコマンド処理を実行するが（ステップＳ４）、ここでは説明を省略する。
【００３０】
ステップＳ３における確認の結果、受信したコマンドがライトバイナリコマンドの場合、ＣＰＵ１０１は、当該コマンドのＰ１部およびＰ２部によって指定されたバイナリＥＦがデータメモリ１０２内に存在するか否かをチェックし（ステップＳ５）、指定されたバイナリＥＦが存在しない場合は所定のエラー処理を実行し（ステップＳ６）、ステップＳ２のコマンド受信待ち状態に戻る。
【００３１】
ステップＳ５におけるチェックの結果、指定されたバイナリＥＦが存在する場合、ＣＰＵ１０１は、今回受信したコマンドにより書込まれる対象ＥＦの書込み先頭アドレスおよび書込み最終アドレスを計算する（ステップＳ７）。この計算は、当該ＥＦのＥＦ定義情報内の先頭アドレスに受信したコマンドのＰ１部内のオフセット値を加算することで書込み先頭アドレスが得られ（先頭アドレス＋オフセット値＝書込み先頭アドレス）、また、当該ＥＦのＥＦ定義情報内の先頭アドレスに受信したコマンドのＰ１部内のオフセット値とＬｃ部内のデータ長を加算することで書込み最終アドレスが得られる（先頭アドレス＋オフセット値＋データ長＝書込み最終アドレス）。
【００３２】
次に、ＣＰＵ１０１は、当該ＥＦのＥＦ定義情報内に前回書込み先頭アドレスおよび前回書込み最終アドレスが書込まれているか否かを確認する（ステップＳ８）。この確認の結果、両アドレスが書込まれている場合はステップＳ９に進み、両アドレスが書込まれていない場合、前回のデータ書込みは正常に終わったものと判断してステップＳ１０に進む。
【００３３】
ステップＳ９では、ステップＳ７で計算された今回の書込み対象ＥＦの書込み先頭アドレスおよび書込み最終アドレスが、当該ＥＦのＥＦ定義情報内に書込まれている前回書込み先頭アドレスおよび前回書込み最終アドレスと一致しているか否かを確認する。
【００３４】
この確認の結果、両アドレスが不一致の場合、新たなＥＦに対するデータ書込みであると判断してステップＳ１０に進み、両アドレスが一致の場合、コマンドのやり直しと判断してステップＳ１１に進む。
【００３５】
ステップＳ１０では、今回書込む対象ＥＦが未書込み状態であるか、つまりデータ未書込み状態を示す特定データ（たとえば、オールＦＦ）であるか否かを確認する。この確認の結果、今回書込む対象ＥＦが未書込み状態でない場合、ＣＰＵ１０１は、所定のエラー処理を実行し（ステップＳ１２）、ステップＳ２のコマンド受信待ち状態に戻る。  
ステップＳ１０における確認の結果、今回書込む対象ＥＦが未書込み状態である場合、ステップＳ１１に進む。
【００３６】
ステップＳ１１では、ステップＳ７で計算された今回の書込み対象ＥＦの書込み先頭アドレスおよび書込み最終アドレスを、当該ＥＦのＥＦ定義情報の前回書込み先頭アドレスおよび前回書込み最終アドレスとして書込む。
【００３７】
次に、ＣＰＵ１０１は、受信したコマンドのＰ２部に格納されているオフセット値で指定される先頭アドレスから当該コマンドのＤＡＴＡ部に格納されているデータを書込む処理を行なう（ステップＳ１３）。  
たとえば、図４に示すようなライトバイナリコマンドを受信した場合、データメモリ１０２における「ＥＦＩＤ＝０００１」のバイナリＥＦの先頭アドレス「８０００」からＤＡＴＡ部に格納されているデータ（全データ長「１０００」のうちの最初のデータ長「１００」分のデータ）を書込む処理を行なう。
【００３８】
ステップＳ１３の書込み処理が終了すると、ＣＰＵ１０１は、全データの受信および書込み処理が完了したか否かを確認する（ステップＳ１４）。この確認は、当該コマンドのＬｃ部に格納されているデータ長のデータ（つまり、全データ長分のバイナリデータ）の書込みが完了したか否かにより判断される。
【００３９】
ステップＳ１４における確認の結果、全データの受信および書込み処理が完了していない場合、ＣＰＵ１０１は、受信した分のデータの書込み終了を示すレスポンスをカードリーダ・ライタ１２に送信し、次のデータ（バイナリデータ）の受信待ち状態となる。カードリーダ・ライタ１２では、ＩＣカード１１からの書込み終了を示すレスポンスに応じて次のデータ（バイナリデータ）を送信する処理を行なう。
【００４０】
上記データ受信待ち状態において、カードリーダ・ライタ１２から次のデータが送信されると、ＣＰＵ１０１は、当該データを受信する受信処理を行なう（ステップＳ１５）。この受信処理において、ＣＰＵ１０１は、データが正常に受信されているか否かをチェックする処理を行なっている（ステップＳ１６）。
【００４１】
ステップＳ１６におけるチェックの結果、カードリーダ・ライタ１２から送信されたデータが正常に受信されたと判断した場合、ＣＰＵ１０１は、ステップＳ１３に戻り、受信したデータの書込み処理を行なう。
【００４２】
ステップＳ１６におけるチェックの結果、データの受信処理において通信異常が発生したと判断した場合、つまり、バイナリデータの受信途中で通信異常が発生した場合、ＣＰＵ１０１は、所定のエラー処理を実行し（ステップＳ１７）、ステップＳ２のコマンド受信待ち状態に戻る。
【００４３】
このように、ＣＰＵ１０１は、ライトバイナリコマンドで指定された全データが受信済みと判断されるまで、ステップＳ１３〜Ｓ１６の処理を繰り返し実行する。これにより、通信エラーなどのエラーが発生しなければ、複数に分割されて供給されるバイナリデータをライトバイナリコマンドで指定された条件にしたがってデータメモリ１０２に書込むことができる。
【００４４】
ステップＳ１４において、全データ（ライトバイナリコマンドのＬｃ部で指定されたデータ長のバイナリデータ）の受信および書込み処理がすべて終了したと判断した場合、ＣＰＵ１０１は、受信したライトバイナリコマンドに対する全ての処理が正常に終了したものと判断する。
【００４５】
この場合、ＣＰＵ１０１は、当該ライトバイナリコマンドで指定されていたＥＦの定義情報における前回書込み先頭アドレスおよび前回書込み最終アドレスを特定の値（たとえば、オールＦＦ）に初期化する処理を行なうとともに、正常終了処理を行ない（ステップＳ１８）、ステップＳ２のコマンド受信待ち状態に戻る。ここに、正常終了処理としては、たとえば、当該ライトバイナリコマンドで指定された全データの書込みが終了した旨をカードリーダ・ライタ１２に通知する処理などを行なう。
【００４６】
次に、第２の実施の形態に係るライトバイナリコマンドに対するデータ書込み処理について図８および図９に示すフローチャートを参照して説明する。  
ＣＰＵ１０１は、カードリーダ・ライタ１２からのリセット解除により活性化されると、カードリーダ・ライタ１２に対し初期応答データを送信する（ステップＳ２１）。初期応答データを正常に送信すると、ＣＰＵ１０１は、カードリーダ・ライタ１２から入力されるコマンドの受信を待機し、コマンドを正常に受信すると（ステップＳ２２）、当該コマンドのＣＬＡ部およびＩＮＳ部によりコマンドの種類を確認する（ステップＳ２３）。確認の結果、受信したコマンドがライトバイナリコマンド以外の場合、ＣＰＵ１０１は、対応するコマンド処理を実行するが（ステップＳ２４）、ここでは説明を省略する。
【００４７】
ステップＳ２３における確認の結果、受信したコマンドがライトバイナリコマンドの場合、ＣＰＵ１０１は、当該コマンドのＰ１部およびＰ２部によって指定されたバイナリＥＦがデータメモリ１０２内に存在するか否かをチェックし（ステップＳ２５）、指定されたバイナリＥＦが存在しない場合は所定のエラー処理を実行し（ステップＳ２６）、ステップＳ２のコマンド受信待ち状態に戻る。
【００４８】
ステップＳ２５におけるチェックの結果、指定されたバイナリＥＦが存在する場合、ＣＰＵ１０１は、今回受信したコマンドにより書込まれる対象ＥＦの書込み先頭アドレスおよび書込み最終アドレスを計算する（ステップＳ２７）。この計算は、当該ＥＦのＥＦ定義情報内の先頭アドレスに受信したコマンドのＰ１部内のオフセット値を加算することで書込み先頭アドレスが得られ（先頭アドレス＋オフセット値＝書込み先頭アドレス）、また、当該ＥＦのＥＦ定義情報内の先頭アドレスに受信したコマンドのＰ１部内のオフセット値とＬｃ部内のデータ長を加算することで書込み最終アドレスが得られる（先頭アドレス＋オフセット値＋データ長＝書込み最終アドレス）。
【００４９】
次に、ＣＰＵ１０１は、当該ＥＦのＥＦ定義情報内に前回書込み先頭アドレスおよび前回書込み最終アドレスが書込まれているか否かを確認する（ステップＳ２８）。この確認の結果、両アドレスが書込まれている場合はステップＳ２９に進み、両アドレスが書込まれていない場合、前回のデータ書込みは正常に終わったものと判断してステップＳ３０に進む。
【００５０】
ステップＳ２９では、ステップＳ２７で計算された今回の書込み対象ＥＦの書込み先頭アドレスおよび書込み最終アドレスが、当該ＥＦのＥＦ定義情報内に書込まれている前回書込み先頭アドレスおよび前回書込み最終アドレスの範囲内であるか否かを確認する。
【００５１】
この確認の結果、今回の書込み先頭アドレスおよび書込み最終アドレスが前回書込み先頭アドレスおよび前回書込み最終アドレスの範囲内である場合はステップＳ３１に進み、今回の書込み先頭アドレスおよび書込み最終アドレスが前回書込み先頭アドレスおよび前回書込み最終アドレスの範囲内でない場合、新たなＥＦに対するデータ書込みであると判断してステップＳ３１に進む。
【００５２】
ステップＳ３０では、今回書込む対象ＥＦが未書込み状態であるか、つまりデータ未書込み状態を示す特定データ（たとえば、オールＦＦ）であるか否かを確認する。この確認の結果、今回書込む対象ＥＦが未書込み状態でない場合、ＣＰＵ１０１は、所定のエラー処理を実行し（ステップＳ３３）、ステップＳ２２のコマンド受信待ち状態に戻る。  
ステップＳ３０における確認の結果、今回書込む対象ＥＦが未書込み状態である場合、ステップＳ３２に進む。
【００５３】
ステップＳ３１では、前回のデータ書込み処理が途中で失敗したか否かを確認する。この確認の結果、前回書込み処理が途中で失敗している場合、ＣＰＵ１０１は、コマンドのやり直しと判断してステップＳ３２に進む。  
ステップＳ３１における確認の結果、前回書込み処理の失敗がない場合、ＣＰＵ１０１は、新たなＥＦに対するデータ書込みであると判断してステップＳ３０に進む。
【００５４】
ここに、ステップＳ３１における前回書込み処理失敗の確認方法（判定方法）は、データ未書込み状態が特定データ（たとえば、オールＦＦ）であることから、当該ＥＦにおいて前回書込み最終アドレスから前方にあらかじめ定められた所定バイト分特定データ（ＦＦ）が連続して存在するか否かをチェックし、所定バイト分特定データ（ＦＦ）が連続して存在する場合、最後までデータ書込みができなかったものと判断して、書込み失敗と判定する。
【００５５】
ステップＳ３２では、ステップＳ２７で計算された今回の書込み対象ＥＦの書込み先頭アドレスおよび書込み最終アドレスを、当該ＥＦのＥＦ定義情報の前回書込み先頭アドレスおよび前回書込み最終アドレスとして書込む。
【００５６】
次に、ＣＰＵ１０１は、受信したコマンドのＰ２部に格納されているオフセット値で指定される先頭アドレスから当該コマンドのＤＡＴＡ部に格納されているデータを書込む処理を行なう（ステップＳ３４）。  
たとえば、図４に示すようなライトバイナリコマンドを受信した場合、データメモリ１０２における「ＥＦＩＤ＝０００１」のバイナリＥＦの先頭アドレス「８０００」からＤＡＴＡ部に格納されているデータ（全データ長「１０００」のうちの最初のデータ長「１００」分のデータ）を書込む処理を行なう。
【００５７】
ステップＳ３４の書込み処理が終了すると、ＣＰＵ１０１は、全データの受信および書込み処理が完了したか否かを確認する（ステップＳ３５）。この確認は、当該コマンドのＬｃ部に格納されているデータ長のデータ（つまり、全データ長分のバイナリデータ）の書込みが完了したか否かにより判断される。
【００５８】
ステップＳ３５における確認の結果、全データの受信および書込み処理が完了していない場合、ＣＰＵ１０１は、受信した分のデータの書込み終了を示すレスポンスをカードリーダ・ライタ１２に送信し、次のデータ（バイナリデータ）の受信待ち状態となる。カードリーダ・ライタ１２では、ＩＣカード１１からの書込み終了を示すレスポンスに応じて次のデータ（バイナリデータ）を送信する処理を行なう。
【００５９】
上記データ受信待ち状態において、カードリーダ・ライタ１２から次のデータが送信されると、ＣＰＵ１０１は、当該データを受信する受信処理を行なう（ステップＳ３６）。この受信処理において、ＣＰＵ１０１は、データが正常に受信されているか否かをチェックする処理を行なっている（ステップＳ３７）。
【００６０】
ステップＳ３７におけるチェックの結果、カードリーダ・ライタ１２から送信されたデータが正常に受信されたと判断した場合、ＣＰＵ１０１は、ステップＳ３４に戻り、受信したデータの書込み処理を行なう。
【００６１】
ステップＳ３７におけるチェックの結果、データの受信処理において通信異常が発生したと判断した場合、つまり、バイナリデータの受信途中で通信異常が発生した場合、ＣＰＵ１０１は、所定のエラー処理を実行し（ステップＳ３８）、ステップＳ２２のコマンド受信待ち状態に戻る。
【００６２】
このように、ＣＰＵ１０１は、ライトバイナリコマンドで指定された全データが受信済みと判断されるまで、ステップＳ３４〜Ｓ３７の処理を繰り返し実行する。これにより、通信エラーなどのエラーが発生しなければ、複数に分割されて供給されるバイナリデータをライトバイナリコマンドで指定された条件にしたがってデータメモリ１０２に書込むことができる。
【００６３】
ステップＳ３５において、全データ（ライトバイナリコマンドのＬｃ部で指定されたデータ長のバイナリデータ）の受信および書込み処理がすべて終了したと判断した場合、ＣＰＵ１０１は、受信したライトバイナリコマンドに対する全ての処理が正常に終了したものと判断して、正常終了処理を行ない（ステップＳ３９）、ステップＳ２２のコマンド受信待ち状態に戻る。ここに、正常終了処理としては、たとえば、当該ライトバイナリコマンドで指定された全データの書込みが終了した旨をカードリーダ・ライタ１２に通知する処理などを行なう。
【００６４】
次に、第３の実施の形態に係るライトバイナリコマンドに対するデータ書込み処理について説明する。
【００６５】
第３の実施の形態は、前述した第２の実施の形態におけるステップＳ３１の処理、すなわち、前回書込み処理失敗の確認方法（判定方法）が異なるもので、その外は第２の実施の形態と同様であるので説明は省略し、異なる部分についてだけ詳細に説明する。
【００６６】
受信したデータを書込み対象ＥＦに書込む際にまれに、書込み処理を失敗しているが、ＩＣカード１１からカードリーダ・ライタ１２へのレスポンスは正常である場合も考えられる。その際は、途中に未書込み状態が存在する。このような場合に適用されるのが第３の実施の形態に係る前回書込み処理失敗の確認方法（判定方法）であり、以下、それについて説明する。
【００６７】
まず、第１の方法として、データ未書込み状態が特定データ（たとえば、オールＦＦ）であることから、当該ＥＦにおいて前回書込み先頭アドレスから前回書込み最終アドレスまでの間に、あらかじめ定められた所定バイト分特定データ（ＦＦ）が存在するか否かをチェックし、所定バイト分特定データ（ＦＦ）が存在する場合、書込み途中でデータ書込みができなかったものと判断して、書込み失敗と判定する。
【００６８】
次に、第２の方法として、ライトバイナリコマンドを受信した際に、当該コマンドのＤＡＴＡ部に格納されているデータに対してＦＦ検索処理を実施することで連続するＦＦの最大数を求め、この求めた最大のＦＦ連続数を記録しておく。すなわち、この例の場合、ＥＦ定義情報は図１０に示すように、図３の構成に「ＦＦ検知長」が付加された構成となっており、このＦＦ検知長に上記求めた最大のＦＦ連続数を格納しておくものである。
【００６９】
そして、次回のライトバイナリコマンド受信時に、当該ＥＦにおいて前回書込み先頭アドレスから前回書込み最終アドレスまでの間に連続して存在するＦＦの数を求め、この求めたＦＦ連続数が当該ＥＦのＥＦ定義情報内のＦＦ検知長（最大のＦＦ連続数）よりも大きいか否かを判定し、求めたＦＦ連続数がＥＦ定義情報内のＦＦ検知長よりも大きい場合、書込み途中でデータ書込みができなかったものと判断して、書込み失敗と判定する。
【００７０】
なお、図１０に示す例では、ＦＦ検知長は初期値として特定の値（たとえば、数値「０」）が書込まれている状態を示している。
【００７１】
以上説明したように、上記実施の形態によれば、１回だけデータの書込みが許可されたバイナリＥＦに対して特にデータ長の長いデータを書込む際に書込み異常（書込み失敗）が発生した場合、内部に記録した前回の書込み先頭アドレスおよび書込み最終アドレスを利用することで、書込み失敗している領域を見付け出し、再度ライトバイナリコマンドを受付けることにより、バイナリＥＦを再利用でき、効率的なデータ書込み処理が可能となる。
【００７２】
なお、前記実施の形態では、携帯可能電子装置として接触式のＩＣカードに適用した場合について説明したが、本発明はこれに限定されるものではなく、非接触式のＩＣカードなどへの応用も可能であり、また、ＰＤＡと称される携帯端末装置や携帯電話機などであっても適用でき、さらに、携帯可能電子装置の形状もカード型に限らず、冊子型、ブロック型あるいはタグ型など、他の形状であってもよい。
【図面の簡単な説明】
【００７３】
【図１】本発明の実施の形態に係る携帯可能電子装置としてのＩＣカードを取扱うＩＣカードシステムの構成例を示すブロック図。
【図２】ＩＣカードの構成を概略的に示すブロック図。
【図３】ＥＦ定義情報の構成例を概略的に示す図。
【図４】ライトバイナリコマンドのフォーマットを示す模式図。
【図５】ライトバイナリコマンドに続く送信データの例を示す図。
【図６】第１の実施の形態に係るライトバイナリコマンドに対するデータ書込み処理について説明するフローチャート。
【図７】第１の実施の形態に係るライトバイナリコマンドに対するデータ書込み処理について説明するフローチャート。
【図８】第２の実施の形態に係るライトバイナリコマンドに対するデータ書込み処理について説明するフローチャート。
【図９】第２の実施の形態に係るライトバイナリコマンドに対するデータ書込み処理について説明するフローチャート。
【図１０】第３の実施の形態に係るＥＦ定義情報の構成例を概略的に示す図。
【符号の説明】
【００７４】
１１…ＩＣカード（携帯可能電子装置）、１１ａ…ＩＣカード本体、１２…カードリーダ・ライタ、１３…端末装置、１４…キーボード、１５…ＣＲＴ表示部、１６…プリンタ、１０１…ＣＰＵ（制御素子）、１０２…データメモリ（記憶手段）、１０３…ワーキングメモリ、１０４…プログラムメモリ、１０５…コンタクト部、１０６…ＩＣチップ、２１，２２，２３…ＥＦ定義情報。
【図１】
2008047042.tif 000003
【図２】
2008047042.tif 000004
【図３】
2008047042.tif 000005
【図４】
2008047042.tif 000006
【図５】
2008047042.tif 000007
【図６】
2008047042.tif 000008
【図７】
2008047042.tif 000009
【図８】
2008047042.tif 000010
【図９】
2008047042.tif 000011
【図１０】
2008047042.tif 000012