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