(57)【要約】      （修正有）【課題】１つのファイルにおける規定の最大レコード数を超える数のレコードを書き込むことが可能な携帯可能電子装置、携帯可能電子装置のファイル管理方法及びＩＣカードを提供する。【解決手段】ＩＣカード１は、同一のファイル識別情報で、かつ、異なる使用順位情報が設定される複数のファイル管理情報をメモリ１０２に記憶しておき、外部装置２からコマンドが与えられた場合、アクセス対象とするファイルのファイル識別情報を有するファイル管理情報のうち使用順位が第１位となる使用順位情報のファイル管理情報で定義されている第１のファイルをアクセス対象とするか否かを判定し、前記第１のファイルがアクセス対象とならないと判定された場合、使用順位が第２位となる使用順位情報のファイル管理情報で定義されている第２のファイルをアクセス対象とするか否かを判定し、アクセス対象とすると判定されたファイルに対してコマンドに応じた処理を行う。【選択図】図１
2009032249.tif 000002
【特許請求の範囲】
【請求項１】
ファイル単位のデータを記憶する第１のメモリと、
同一のファイル識別情報で、かつ、異なる使用順位情報が設定される複数のファイル管理情報を記憶する第２のメモリと、
外部装置からコマンドが与えられた場合、アクセス対象とするファイルのファイル識別情報を有するファイル管理情報のうち使用順位が第１位となる使用順位情報のファイル管理情報で定義されている第１のファイルをアクセス対象とするか否かを判定する第１のアクセス判定部と、
前記第１の判定部により前記第１のファイルがアクセス対象とならないと判定された場合、アクセス対象とするファイルのファイル識別情報を有するファイル管理情報のうち使用順位が第２位となる使用順位情報のファイル管理情報で定義されている第２のファイルをアクセス対象とするか否かを判定する第２のアクセス判定部と、
前記第１あるいは第２のアクセス判定部によりアクセス対象とすると判定されたファイルに対してコマンドに応じた処理を行う処理部と、
を有することを特徴とする携帯可能電子装置。
【請求項２】
前記コマンドは、データの追記を要求する追記コマンドであり、
前記第１のアクセス判定部は、前記第１のファイル内にデータを追記するための空き領域が存在するか否かにより第１のファイルをアクセス対象とするか否かを判定し、
前記第２のアクセス判定部は、前記第２のファイル内にデータを追記するための空き領域が存在するか否かにより前記第２のファイルをアクセス対象とするか否かを判定する、
ことを特徴とする前記請求項１に記載の携帯可能電子装置。
【請求項３】
前記アクセス対象とするファイルは、レコード構造を有するファイルであり、
前記第１のアクセス判定部は、前記第１のファイル内にデータを格納するための空きレコードが存在するか否かにより前記第１のファイルをアクセス対象とするか否かを判定し、
前記第２のアクセス判定部は、前記第２のファイル内にデータを格納するための空きレコードが存在するか否かにより前記第２のファイルをアクセス対象とするか否かを判定する、
ことを特徴とする前記請求項１に記載の携帯可能電子装置。
【請求項４】
前記コマンドは、データの読出しを要求する読出コマンドであり、
前記第１のアクセス判定部は、前記第１のファイル内に読み出すべきデータの記憶領域が存在するか否かにより前記第１のファイルをアクセス対象とするか否かを判定し、
前記第２のアクセス判定部は、前記第２のファイル内に読み出すべきデータの記憶領域が存在するか否かにより前記第２のファイルをアクセス対象とするか否かを判定する、
ことを特徴とする前記請求項１に記載の携帯可能電子装置。
【請求項５】
前記アクセス対象とするファイルは、レコード構造を有するファイルであり、
前記第１のアクセス判定部は、前記第１のファイル内に読み出すべきデータが格納されているレコードが存在するか否かにより前記第１のファイルをアクセス対象とするか否かを判定し、
前記第２のアクセス判定部は、前記第２のファイル内に読み出すべきデータが格納されているレコードが存在するか否かにより前記第２のファイルをアクセス対象とするか否かを判定する、
ことを特徴とする前記請求項１に記載の携帯可能電子装置。
【請求項６】
さらに、カレントレコードを示す情報を記憶する第３のメモリを有し、
前記コマンドは、データを読出すべきレコードがカレントレコードを基準に指定されている読出コマンドであり、
前記第１のアクセス判定部は、前記第３のメモリに記憶されているカレントレコードを基準として前記読出コマンドで指定されたレコードを特定し、その特定したレコードが前記第１のファイル内に存在するか否かにより前記第１のファイルをアクセス対象とするか否かを判定し、
前記第２のアクセス判定部は、前記第３のメモリに記憶されているカレントレコードを基準として前記読出コマンドで指定されたレコードを特定し、その特定したレコードが前記第２のファイル内に存在するか否かにより前記第２のファイルをアクセス対象とするか否かを判定する、
ことを特徴とする前記請求項５に記載の携帯可能電子装置。
【請求項７】
携帯可能電子装置のファイル管理方法であって、
ファイル単位のデータを第１のメモリに記憶しておき、
同一のファイル識別情報で、かつ、異なる使用順位情報が設定される複数のファイル管理情報を第２のメモリに記憶しておき、
外部装置からコマンドが与えられた場合、アクセス対象とするファイルのファイル識別情報を有するファイル管理情報のうち使用順位が第１位となる使用順位情報のファイル管理情報で定義されている第１のファイルをアクセス対象とするか否かを判定し、
前記第１のファイルがアクセス対象とならないと判定された場合、アクセス対象とするファイルのファイル識別情報を有するファイル管理情報のうち使用順位が第２位となる使用順位情報のファイル管理情報で定義されている第２のファイルをアクセス対象とするか否かを判定し、
前記判定によりアクセス対象とすると判定されたファイルに対してコマンドに応じた処理を行う、
ことを特徴とする携帯可能電子装置のファイル管理方法。
【請求項８】
前記コマンドは、データの追記を要求する追記コマンドであり、
前記第１のファイルをアクセス対象するか否かの判定は、前記第１のファイル内にデータを追記するための空き領域が存在するか否かにより前記第１のファイルをアクセス対象とするか否かを判定し、
前記第２のファイルをアクセス対象するか否かの判定は、前記第２のファイル内にデータを追記するための空き領域が存在するか否かにより前記第２のファイルをアクセス対象とするか否かを判定する、
ことを特徴とする前記請求項７に記載の携帯可能電子装置のファイル管理方法。
【請求項９】
前記アクセス対象とするファイルは、レコード構造を有するファイルであり、
前記第１のファイルをアクセス対象とするか否かの判定は、前記第１のファイル内にデータを格納するための空きレコードが存在するか否かにより前記第１のファイルをアクセス対象とするか否かを判定し、
前記第２のファイルをアクセス対象とするか否かの判定は、前記第２のファイル内にデータを格納するための空きレコードが存在するか否かにより前記第２のファイルをアクセス対象とするか否かを判定する、
ことを特徴とする前記請求項７に記載の携帯可能電子装置のファイル管理方法。
【請求項１０】
前記コマンドは、データの読出しを要求する読出コマンドであり、
前記第１のファイルをアクセス対象とするか否かの判定は、前記第１のファイル内に読み出すべきデータの記憶領域が存在するか否かにより前記第１のファイルをアクセス対象とするか否かを判定し、
前記第２のファイルをアクセス対象とするか否かの判定は、前記第２のファイル内に読み出すべきデータの記憶領域が存在するか否かにより前記第２のファイルをアクセス対象とするか否かを判定する、
ことを特徴とする前記請求項７に記載の携帯可能電子装置のファイル管理方法。
【請求項１１】
前記アクセス対象とするファイルは、レコード構造を有するファイルであり、
前記第１のファイルをアクセス対象とするか否かの判定は、前記第１のファイル内に読み出すべきデータが格納されているレコードが存在するか否かにより前記第１のファイルをアクセス対象とするか否かを判定し、
前記第２のファイルをアクセス対象とするか否かの判定は、前記第２のファイル内に読み出すべきデータが格納されているレコードが存在するか否かにより前記第２のファイルをアクセス対象とするか否かを判定する、
ことを特徴とする前記請求項７に記載の携帯可能電子装置のファイル管理方法。
【請求項１２】
さらに、カレントレコードを示す情報を第３のメモリに記憶しておき、
前記コマンドは、データを読出すべきレコードがカレントレコードを基準に指定されている読出コマンドであり、
前記第１のファイルをアクセス対象とするか否かの判定は、前記第３のメモリに記憶されているカレントレコードを基準として前記読出コマンドで指定されたレコードを特定し、その特定したレコードが前記第１のファイル内に存在するか否かにより前記第１のファイルをアクセス対象とするか否かを判定し、
前記第２のファイルをアクセス対象とするか否かの判定は、前記第３のメモリに記憶されているカレントレコードを基準として前記読出コマンドで指定されたレコードを特定し、その特定したレコードが前記第２のファイル内に存在するか否かにより前記第２のファイルをアクセス対象とするか否かを判定する。
ことを特徴とする前記請求項１１に記載の携帯可能電子装置のファイル管理方法。
【請求項１３】
ファイル単位のデータを記憶する第１のメモリと、同一のファイル識別情報で、かつ、異なる使用順位情報が設定される複数のファイル管理情報を記憶する第２のメモリと、外部装置からコマンドが与えられた場合、アクセス対象とするファイルのファイル識別情報を有するファイル管理情報のうち使用順位が第１位となる使用順位情報のファイル管理情報で定義されている第１のファイルをアクセス対象とするか否かを判定する第１のアクセス判定部と、前記第１の判定部により前記第１のファイルがアクセス対象とならないと判定された場合、アクセス対象とするファイルのファイル識別情報を有するファイル管理情報のうち使用順位が第２位となる使用順位情報のファイル管理情報で定義されている第２のファイルをアクセス対象とするか否かを判定する第２のアクセス判定部と、前記第１あるいは第２のアクセス判定部によりアクセス対象とすると判定されたファイルに対してコマンドに応じた処理を行う処理部と、を有するモジュールと、
前記モジュールを収納した本体と、を有する、
ことを特徴とするＩＣカード。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、たとえば、外部装置から与えられるコマンドに応じて不揮発性メモリ内のファイルに対してアクセスするＩＣカードなどの携帯可能電子装置および携帯可能電子装置のファイル管理方法に関する。
【背景技術】
【０００２】
従来、ＩＣカードなどの携帯可能電子装置では、データを記憶するための書換え可能な不揮発性メモリおよび不揮発性メモリ内のデータに対する処理を実行する制御素子を有している。このようなＩＣカードなどの携帯可能電子装置では、不揮発性メモリに記憶するデータをファイル単位で管理する方法が一般的である（たとえば、特許第２６９５８５７号参照）。このようなファイル単位でデータを管理するＩＣカードでは、不揮発性メモリに格納されたデータに対して直接的にアクセスするものではない。つまり、ＩＣカードは、まず、所望のデータが格納されているファイルに対してアクセスする。ファイルにアクセスすると、ＩＣカードは、当該ファイルに格納されているデータに対して、読出しあるいは書込みなどを行う。
【０００３】
また、ＩＣカードは、外部装置からの処理命令であるコマンドに応じて動作するものである。たとえば、ＩＣカードは、外部からのコマンドに応じてファイル内に格納されているデータへのアクセスする処理を行う。ＩＣカードに与えられるコマンドは、所定の規格によって規定されている。すなわち、外部装置は、所定の規格で規定されているコマンドにより、ＩＣカードに対して所望のデータへのアクセスを要求する。これに対して、ＩＣカードは、外部装置からのコマンドを所定の規格に基づいて解釈し、当該コマンドに応じて処理を行う。
【０００４】
上記のように、ＩＣカードでは、特定の規格に基づいて動作するようになっている。たとえば、ＩＣカードの国際標準化規格であるＩＳＯ／ＩＥＣ７８１６−４では、データを記憶するためのファイル（ＥＦ：エレメンタリファイルと称されるデータファイル）の構造および形式が規定されている。また、ＩＳＯ／ＩＥＣ７８１６−４では、ＩＣカード内の各ファイルへのアクセスを要求するためのコマンドも規定されている。
【０００５】
上記ＩＳＯ／ＩＥＣ７８１６−４では、ＩＣカードにおけるデータファイル内のデータ構造として、データファイル内にデータを記憶する複数のレコードを有する構造（レコード構造）が規定されている。また、上記ＩＳＯ／ＩＥＣ７８１６−４では、上記のようなレコード構造のファイルへのアクセスを要求するコマンドも規定されている。ただし、上記ＩＳＯ／ＩＥＣ７８１６−４では、１つのデータファイルに格納可能なレコード数に制限がある。このため、上記ＩＳＯ／ＩＥＣ７８１６−４では、レコード構造のファイルへのアクセスを要求するコマンドにおいてアクセス対象として指定できるレコード数にも制限がある。
【０００６】
上記ＩＳＯ／ＩＥＣ７８１６−４では、１つのファイルに格納されるレコード数の最大数として、「２５４」個を想定している。つまり、上記ＩＳＯ／ＩＥＣ７８１６−４では、レコード番号が「１」から「２５４」までのレコード番号で定義される「２５４」個までのレコードが１つのファイルに格納されることを想定している。このため、上記ＩＳＯ／ＩＥＣ７８１６−４では、レコードへのアクセスを要求するコマンドにおいて、アクセス対象として指定可能なレコード番号の値は、１６進数で「０１」から「ＦＥ」まで、つまり、１０進数で「１」から「２５４」までとなっている。
【０００７】
一方、近年では、様々な用途でＩＣカードまたはそれに類する携帯可能電子装置が使用されるようになってきている。たとえば、上記ＩＳＯ／ＩＥＣ７８１６−４のような国際規格に従って動作するＩＣチップを埋め込んだ冊子が、旅券（パスポート）などとして利用される形態も考えられている。このように携帯可能電子装置が様々な用途で使用されるにつれて、携帯可能電子装置に、規格で想定されている以上のレコード数のデータを１つのファイルに記録したいという要望が強くなることが予想される。たとえば、ＩＣチップを埋め込んだパスポートに出国および入国などの情報を消去することなく追記していくという使用方法を想定した場合、当該パスポートのＩＣチップには、規格で想定されている数以上のレコード数のデータを１つのファイルに記録したいという状況が発生することが考えられる。また、セキュリティエリアへの入退出を管理するシステムに用いられるＩＣカード、あるいは、料金決済などの商取引を行うシステムに用いられるＩＣカードには、入退出の履歴情報を大量に記録したり、取引の履歴情報を大量に記録したりしたいという要求が発生することも予想される。
【０００８】
しかしながら、上述したような既存の規格では、各データファイルには、予め規定されているレコード数までのデータしか格納できない。すなわち、既存の規格に準じたシステムでは、１つのデータファイルでは予め規定されているレコード数までのデータしか取り扱うことができない。今後、ＩＣカードが広い分野で使用されることを想定すると、レコード構造のデータファイルにおいて格納できるレコード数の最大値が拡張可能であることが望ましい。さらには、既存システムの運用状況を考慮すると、上記のようなレコード数の最大数を拡張する場合であっても、上記ＩＳＯ／ＩＥＣ７８１６−４で規定されているような既存のコマンドで、データファイル内の各レコードにアクセス可能であることが望ましい。
【非特許文献１】ＩＳＯ／ＩＥＣ７８１６−４
【発明の開示】
【発明が解決しようとする課題】
【０００９】
この発明の一形態では、特定のファイルで管理可能なデータ量を容易に拡張することが可能な携帯可能電子装置、携帯可能電子装置のファイル管理方法およびＩＣカードを提供することを目的とする。
【課題を解決するための手段】
【００１０】
この発明の一形態としての携帯可能電子装置は、ファイル単位のデータを記憶する第１のメモリと、同一のファイル識別情報で、かつ、異なる使用順位情報が設定される複数のファイル管理情報を記憶する第２のメモリと、外部装置からコマンドが与えられた場合、アクセス対象とするファイルのファイル識別情報を有するファイル管理情報のうち使用順位が第１位となる使用順位情報のファイル管理情報で定義されている第１のファイルをアクセス対象とするか否かを判定する第１のアクセス判定部と、前記第１の判定部により前記第１のファイルがアクセス対象とならないと判定された場合、アクセス対象とするファイルのファイル識別情報を有するファイル管理情報のうち使用順位が第２位となる使用順位情報のファイル管理情報で定義されている第２のファイルをアクセス対象とするか否かを判定する第２のアクセス判定部と、前記第１あるいは第２のアクセス判定部によりアクセス対象とすると判定されたファイルに対してコマンドに応じた処理を行う処理部とを有する。
【００１１】
この発明の一形態としての携帯可能電子装置のファイル管理方法は、ファイル単位のデータを第１のメモリに記憶しておき、同一のファイル識別情報で、かつ、異なる使用順位情報が設定される複数のファイル管理情報を第２のメモリに記憶しておき、外部装置からコマンドが与えられた場合、アクセス対象とするファイルのファイル識別情報を有するファイル管理情報のうち使用順位が第１位となる使用順位情報のファイル管理情報で定義されている第１のファイルをアクセス対象とするか否かを判定し、前記第１のファイルがアクセス対象とならないと判定された場合、アクセス対象とするファイルのファイル識別情報を有するファイル管理情報のうち使用順位が第２位となる使用順位情報のファイル管理情報で定義されている第２のファイルをアクセス対象とするか否かを判定し、前記判定によりアクセス対象とすると判定されたファイルに対してコマンドに応じた処理を行う。
【００１２】
この発明の一形態としてのＩＣカードは、ファイル単位のデータを記憶する第１のメモリと、同一のファイル識別情報で、かつ、異なる使用順位情報が設定される複数のファイル管理情報を記憶する第２のメモリと、外部装置からコマンドが与えられた場合、アクセス対象とするファイルのファイル識別情報を有するファイル管理情報のうち使用順位が第１位となる使用順位情報のファイル管理情報で定義されている第１のファイルをアクセス対象とするか否かを判定する第１のアクセス判定部と、前記第１の判定部により前記第１のファイルがアクセス対象とならないと判定された場合、アクセス対象とするファイルのファイル識別情報を有するファイル管理情報のうち使用順位が第２位となる使用順位情報のファイル管理情報で定義されている第２のファイルをアクセス対象とするか否かを判定する第２のアクセス判定部と、前記第１あるいは第２のアクセス判定部によりアクセス対象とすると判定されたファイルに対してコマンドに応じた処理を行う処理部とを有するモジュールと、前記モジュールを収納した本体と、を有する。
【発明の効果】
【００１３】
この発明の一形態では、特定のファイルで管理可能なデータ量を容易に拡張することが可能な携帯可能電子装置、携帯可能電子装置のファイル管理方法およびＩＣカードを提供できる。
【発明を実施するための最良の形態】
【００１４】
以下、図面を参照して本発明の実施の形態について説明する。  
図１は、本発明の実施の形態に係る携帯可能電子装置としてのＩＣカード１およびＩＣカード１を含むＩＣカードシステムの構成例を示すブロック図である。  
上記ＩＣカード１は、外部装置としてのＩＣカードリーダライタ２からの電源供給により動作可能な状態となる。動作可能となったＩＣカード１は、上記ＩＣカードリーダライタ２からのコマンドに応じて種々の処理を行う。上記ＩＣカードリーダライタ２は、ＩＣカード１を動作させるための電源を供給するとともに、当該ＩＣカード１に対して種々の処理を要求するコマンドを供給する。
【００１５】
また、上記ＩＣカード１は、上記ＩＣカードリーダライタ２の接触部と物理的に接触して通信を行う接触式の携帯可能電子装置（接触式ＩＣカード）であっても良いし、アンテナおよび無線通信部等により上記ＩＣカードリーダライタ２と非接触の状態で通信を行う非接触式（contactless）の携帯可能電子装置（非接触式ＩＣカード）であっても良い。さらには、上記ＩＣカード１は、非接触式ＩＣカードとしての通信機能と接触式ＩＣカードとしての通信機能とを有する複合型のＩＣカード（デュアルインターフェースＩＣカード）であっても良い。なお、非接触式ＩＣカードと接触式ＩＣカードとは、外部装置との通信方式等が異なるだけである。このため、後述する処理例は、非接触式ＩＣカードであっても接触式ＩＣカードであっても同様に適用できる。
【００１６】
次に、上記ＩＣカード１の構成例について説明する。  
図１に示すように、上記ＩＣカード１は、カード状の本体ＢにモジュールＭが埋設された状態で形成されている。上記モジュールＭは、１つあるいは複数のＩＣチップ１０とインターフェース１１とが接続された状態で一体的に形成されたものである。上記ＩＣチップ１０は、ＣＰＵ（中央演算装置）１０１、データメモリ１０２、ＲＡＭ１０３、ＲＯＭ１０４、通信制御部１０６および電源部（図示しない）などを有している。上記ＩＣチップ１０の通信制御部１０６は、インターフェース１１に接続されている。
【００１７】
上記ＣＰＵ１０１は、ＩＣカード１全体の制御を司るものである。上記ＣＰＵ１０１は、上記ＲＯＭ１０４あるいはデータメモリ１０２に記憶された制御プログラムおよび制御データなどに基づいて動作する。上記のような制御プログラムを実行することにより、上記ＣＰＵ１０１は、種々の処理を行う処理部として機能する。
【００１８】
上記データメモリ１０２は、書換え可能な不揮発性のメモリである。上記データメモリ１０２は、たとえば、ＥＥＰＲＯＭ（エレクトリカリ・イレーザブル・アンド・プログラマブル・リード・オンリ・メモリ）あるいはフラッシュＲＯＭなどの消去（書換え）可能な不揮発性メモリで構成されている。上記データメモリ１０２には、当該ＩＣカード１の使用目的に応じた種々の情報が記憶される。たとえば、上記データメモリ１０２には、各種の機能を実現するためのアプリケーションデータなどが記憶される。また、上記データメモリ１０２には、各種データがファイルに格納された状態で記憶される。上記データメモリ１２内のファイル構造は、たとえば、ＩＳＯ／ＩＥＣ７８１６−４に基づくものである。
【００１９】
上記ＲＡＭ１０３は、高速なアクセスが可能な揮発性のメモリである。上記ＲＡＭ１０３は、データを一時的に記憶するためのバッファメモリとして機能する。たとえば、上記ＲＡＭ１０３は、ＩＣカードリーダライタ２との通信処理において送受信されるデータを一時的に記憶するバッファメモリとして機能する。また、上記ＲＡＭ１０３は、ＣＰＵ１０１による処理中のデータなどを一時的に保持するワーキングメモリとしても機能する。
【００２０】
上記ＲＯＭ１０４は、書換え不可能な不揮発性のメモリである。上記ＲＯＭ１０４はたとえば、マスクＲＯＭ（リード・オンリ・メモリ）などの読み出し専用のメモリで構成されている。上記ＲＯＭ１０４には、上記ＣＰＵ１０１により実行される制御プログラムなどが記憶されるプログラムメモリとして機能する。特に、上記ＲＯＭ１０４には、当該ＩＣカード１の仕様に応じた基本動作を司る制御プログラムおよび制御データなどが記憶される。たとえば、上記ＲＯＭ１０４には、外部から与えられるコマンドに応じた処理をＣＰＵ１０１が実行するための制御プログラムが記憶される。
【００２１】
上記通信制御部１０６は、上記インターフェース１１を介したＩＣカードリーダライタ２とのデータ通信を制御するものである。たとえば、当該ＩＣカード１が接触式ＩＣカードである場合、インターフェース１１としてのコンタクト部および通信制御部１０６としての通信制御回路などにより接触式の通信機能が実現される。また、当該ＩＣカード１が非接触式ＩＣカードで構成される場合、インターフェース１１としてのアンテナおよび通信制御部１０６としての変復調回路などにより非接触式の通信機能が実現される。
【００２２】
上記のような構成のＩＣカード１では、ＩＣカードリーダライタ２から上記データメモリ１０２へのデータの書込みを要求するコマンドが与えられた場合、上記ＣＰＵ１０１が上記ＲＯＭ１０４などに記憶されている制御プログラムを実行することにより、上記データメモリ１０２へのデータの書き込み処理を実行する。また、ＩＣカードリーダライタ２から上記データメモリ１０２に記憶されているデータの読み出しを要求するコマンドが与えられた場合、上記ＣＰＵ１０１が上記ＲＯＭ１０４に記憶されている制御プログラムを実行することにより、上記データメモリ１０２からのデータの読み出し処理を実行する。さらに、上記ＩＣカード１は、上記ＣＰＵ１０１が当該ＩＣカード１の用途などに応じてインストールされる処理プログラムを実行することにより、用途に応じた種々の処理を実現するようになっている。
【００２３】
図２は、ＩＣカード１の一形態としての接触式ＩＣカードの外観構成例を示す図である。図２に示すように、接触式ＩＣカードでは、インターフェース１１としてのコンタクト部が本体Ｂの表面上に露出するように形成されている。上記接触式ＩＣカードでは、表面に露出する上記コンタクト部に接続された１つあるいは複数のＩＣチップＣを有するモジュールＭがカード状の本体Ｂ内に内蔵されている。なお、接触式ＩＣカードにおけるインターフェース１１としてのコンタクト部は、図２に示すように、複数の端子を有している。たとえば、上記コンタクト部は、供給電圧端子Ｖｃｃ、グランド端子ＧＮＤ、リセット端子ＲＳＴ、入出力端子Ｉ／Ｏ、および、クロック端子ＣＬＫなどの端子により構成される。
【００２４】
図３は、ＩＣカード１の一形態としての非接触式ＩＣカードの構成例を示す図である。図３に示すように、非接触式ＩＣカードでは、カード状の本体Ｂ内に、点線で示すような、１つあるいは複数のＩＣチップＣとインターフェース１１としてのアンテナとを有するモジュールＭが埋め込まれている。これにより、非接触式ＩＣカードでは、アンテナで送受信する電波をＩＣチップＣで処理するようになっている。
【００２５】
次に、上記データメモリ１０２に記憶されるファイルの構成について説明する。  
図４は、上記データメモリ１０２に記憶されるファイルの構成例を模式的に示す図である。  
図４に示すように、ＩＣカード内のデータメモリ１０２には、マスターファイル（ＭＦ）を最上位階層とする階層構造で種々のファイルが管理される。図４に示す例では、最上位階層であるマスターファイルＭＦの次の階層に、２つのエレメンタリファイル（ＥＦ）ＥＦ１、ＥＦ２が存在している。なお、マスターファイルＭＦの次の階層にＤＦファイルを定義し、そのＤＦファイルの次の階層にエレメンタリファイルが定義されるようにしても良い。
【００２６】
上記エレメンタリファイルＥＦ１、ＥＦ２は、実データを格納するためのデータファイルである。つまり、上記データメモリ１０２では、図４に示すようなエレメンタリファイル内に実データが格納される。言い換えると、上記データメモリ１０２内では、実データがエレメンタリファイルごとに管理される。従って、実データにアクセスする場合、エレメンタリファイルを選択した状態であることが必要となる。
【００２７】
次に、上記エレメンタリファイル（データファイル）内におけるデータの構成について説明する。  
図５Ａおよび図５Ｂは、データファイル内におけるデータの構成例を模式的に示す図である。なお、ここでは、図５Ａは、図４に示すエレメンタリファイルＥＦ１におけるデータ１の構成例を示し、図５Ｂは、図４に示すエレメンタリファイルＥＦ２におけるデータ２の構成例を示しているものと想定する。また、図５Ａ及び図５Ｂに示すようなエレメンタリファイル（データファイル）は、上記データメモリ１０２に設けれられたデータ用の記憶領域に記憶されるものである。
【００２８】
図５Ａに示すエレメンタリファイルＥＦ１および図５Ｂに示すエレメンタリファイルＥＦ２では、実データがレコード番号「１」〜「２５４」までの２５４個のレコードとして格納されている。このように、データがレコードとして格納されるファイル内の構造をレコード構造と称するものとする。  
ここで、ＩＣカードの国際標準化規格であるＩＳＯ／ＩＥＣ７８１６−４では、エレメンタリファイル内におけるデータ構造として、以下のような構造が規定されている。
【００２９】
（Ｆ１）透過構造(Transparent structure)  
（Ｆ２）固定長順編成レコード構造(Linear structure with records of fixed size)：データファイル内において、固定長のレコードが順に並べられる構造である。このタイプのデータファイルでは、たとえば、固定長のレコードが順に追記される。  
（Ｆ３）可変長順編成レコード構造(Linear structure with records of variable size)：データファイル内において、可変長のレコードが順に並べられる構造である。このタイプのデータファイルでは、たとえば、可変長のレコードが順に追記される。  
（Ｆ４）固定長循環順編成レコード構造(Cyclic structure with records of fixed size)：データファイル内において、固定長のレコードが循環するように並べられる構造である。このタイプのデータファイルでは、たとえば、固定長のレコードが循環するように追記される（書換えられる）。  
（Ｆ５）ＴＬＶ構造(TLV structure)：データファイル内における各レコードがタグ、レングス、バリューから構成されるものである。
【００３０】
上記（Ｆ１）は、データの構造がレコード構造でなく透過構造である。上記（Ｆ２）〜（Ｆ５）は、データの構造がレコード構造である。すなわち、ＩＳＯ／ＩＥＣ７８１６−４では、レコード構造を有するエレメンタリファイル（データファイル）として、上記（Ｆ２）〜（Ｆ５）のような構造が規定されている。上記（Ｆ２）〜（Ｆ５）のようなレコード構造のデータファイルでは、実データが各レコードに格納される。ただし、ＩＳＯ／ＩＥＣ７８１６−４では、各データファイル内に格納できるレコード数の上限値が「２５４」（レコード番号「１」〜「２５４」）であることが規定されている。このため、図４に示すエレメンタリファイルＥＦ１及びＥＦ２のように、レコード番号「１」〜「２５４」のレコードが格納されているデータファイルには、新たにレコードを格納することができない（実データを格納するためのレコードを設けることができない）ようになっている。
【００３１】
次に、上記のようなレコード構造のデータファイルへのアクセスについて説明する。  
上述したように、ＩＣカード１は、外部装置からのコマンドに応じて動作するものである。このため、データファイルへのアクセス制御は、コマンドに対する処理として説明することができる。従って、ここでは、レコード構造を有するデータファイルに対したアクセスを要求するコマンドについて説明する。
【００３２】
たとえば、ＩＳＯ／ＩＥＣ７８１６−４では、レコード構造を有するデータファイルに対してアクセスを要求するコマンドとして、以下のようなコマンドが規定されている。  
（Ｃ１）ＲＥＡＤ  ＲＥＣＯＲＤ（Ｓ）  Ｃｏｍｍａｎｄ  
（Ｃ２）ＷＲＩＴＥ  ＲＥＣＯＲＤ  Ｃｏｍｍａｎｄ  
（Ｃ３）ＡＰＰＥＮＤ  ＲＥＣＯＲＤ  Ｃｏｍｍａｎｄ  
（Ｃ４）ＳＥＡＲＣＨ  ＲＥＣＯＲＤ  Ｃｏｍｍａｎｄ  
（Ｃ５）ＥＲＡＳＥ  ＲＥＣＯＲＤ（Ｓ）  Ｃｏｍｍａｎｄ  
上記した（Ｃ１）〜（Ｃ５）のコマンドのうち（Ｃ３）のＡＰＰＥＮＤ  ＲＥＣＯＲＤ  Ｃｏｍｍａｎｄを除くコマンドでは、アクセス対象とするレコード番号をコマンドで指定することができるようになっている。ただし、上述したように、ＩＳＯ／ＩＥＣ７８１６−４では、各データファイル内に格納できるレコード数の上限値が「２５４」個であることを想定している。このため、ＩＳＯ／ＩＥＣ７８１６−４では、上記各コマンドで指定できるレコード番号は、１６進数で「０１」から「ＦＥ」（すなわち、１０進数でレコード番号「１」から「２５４」）までとなっている。
【００３３】
一方、（Ｃ３）のＡＰＰＥＮＤ  ＲＥＣＯＲＤ  Ｃｏｍｍａｎｄでは、アクセス対象とするレコードをレコード番号で指定せずにアクセスを要求できる。このようなＡＰＰＥＮＤ  ＲＥＣＯＲＤ  Ｃｏｍｍａｎｄでは、特定の種類のデータ（たとえば、一連の処理内容を示す履歴情報）を順次記録することを要求するコマンドとして利用されることが多い。一般には、履歴情報が順次記録されるようなデータファイル（つまり、ＡＰＰＥＮＤ  ＲＥＣＯＲＤ  Ｃｏｍｍａｎｄでデータの追記が要求されるようなデータファイル）は、ＩＳＯ／ＩＥＣ７８１６−４で想定しているレコード数の上限値を超えるような状況が起こりうると考えられる。すなわち、ＡＰＰＥＮＤ  ＲＥＣＯＲＤ  Ｃｏｍｍａｎｄで順にデータを追記していくようなデータファイルでは、レコード数の上限が拡張できれば、データ管理の効率が向上できるものと考えられる。
【００３４】
本実施の形態のＩＣカードでは、特定のデータファイルに格納できるレコード数を拡張することができるものである。ここで、上記特定のデータファイルとは、必ずしも物理的に１つのデータファイルであることを示すものではない。上記特定のデータファイルとは、ＩＣカードリーダライタ２などの外部装置に１つのデータファイルと認識される複数のファイルを含むものとしている。たとえば、後述するように、同じファイル識別情報が与えられた２つのデータファイルは、外部装置からは１つのデータファイル（特定のデータファイル）と認識されると考えられる。
【００３５】
次に、上記エレメンタリファイルの管理形態について説明する。  
図６は、エレメンタリファイルを管理するための定義情報（管理情報）の構成例を示す図である。図６では、図５Ａに示すエレメンタリファイルＥＦ１および図５Ｂに示すエレメンタリファイルＥＦ２のファイル管理情報の例を示している。図６に示すようなファイル管理情報は、上記データメモリ１０２内に設けられた管理情報用の記憶領域に記憶される。
【００３６】
図６に示すように、各ファイルのファイル管理情報は、ファイル識別情報（Ｓｈｏｒｔ  ＥＦ  ｉｄｅｎｔｉｆｉｅｒ）、ファイル種別情報、レコード長情報、最大レコード数情報、および、使用順位情報などにより構成されている。上記ファイル識別情報は、ファイルを識別するための識別情報である。各データファイルは、上記ファイル識別情報により特定される。このため、上記ファイル識別情報が同じ複数のファイルについては、上記外部装置は、１つのファイルとして認識する。
【００３７】
上記ファイル種別情報は、当該ファイル内のデータ構造などを示す情報が格納される。たとえば、上記ファイル種別情報では、当該ファイル内のデータ構造がレコード構造である場合、上述した（Ｆ２）〜（Ｆ５）の何れかを示す情報である。上記レコード長情報は、当該ファイル内における各レコードのサイズを示す情報である。最大レコード数情報は、当該ファイル内に格納できるレコード数の最大数を示す情報である。上記使用順位情報は、当該ファイルの使用順位を示す情報である。上記使用順位情報は、上記ファイル識別情報が同一であるファイルが複数存在する場合に設定される。
【００３８】
また、本実施の形態では、上記ファイル識別情報が同一である複数のファイルのファイル管理情報では、使用順位情報以外の情報が同一であることを想定する。また、本実施の形態では、上記使用順位情報は、同一のファイル識別情報の各ファイルに対して「１」から順に整数値が設定されるものとする。たとえば、同一のファイル識別情報のファイルが２つ存在する場合、一方のファイルに対する使用順位情報が「１」と設定され、他方のファイルに対する使用順位情報が「２」に設定される。
【００３９】
図６に示す例では、エレメンタリファイルＥＦ１のファイル管理情報は、ファイル識別情報が「０１」、ファイル種別情報が「可変長順編成レコード構造」、レコード長が「１００バイト」、最大レコード数が「２５４」、使用順位情報が「１」である。また、エレメンタリファイルＥＦ２のファイル管理情報は、ファイル識別情報が「０１」、ファイル種別情報が「可変長順編成レコード構造」、レコード長が「１００バイト」、最大レコード数が「２５４」、使用順位情報が「２」である。
【００４０】
図６に示すように、エレメンタリファイルＥＦ１とエレメンタリファイルＥＦ２とは、使用順位情報のみが異なるファイルである。これらのようなファイルは、物理的には、２つのファイルであるが、論理的には１つのファイルとして扱われる。すなわち、ファイル識別情報が「０１」のファイルが選択されている状態では、エレメンタリファイルＥＦ１およびエレメンタリファイルＥＦ２の何れかが使用順位情報で設定される順序で実際のアクセス対象となる。
【００４１】
次に、上記のようなＩＣカード１における処理例について説明する。  
まず、ＩＣカード１における第１の処理例としてＡＰＰＥＮＤ  ＲＥＣＯＲＤ  Ｃｏｍｍａｎｄ（Ｃ３）に対する処理の流れについて説明する。  
図７は、上記ＩＣカード１におけるＡＰＰＥＮＤ  ＲＥＣＯＲＤ  Ｃｏｍｍａｎｄ（Ｃ３）に対する処理の流れを説明するためのフローチャートである。なお、以下の説明では、ＡＰＰＥＮＤ  ＲＥＣＯＲＤ  Ｃｏｍｍａｎｄ（Ｃ３）でアクセス対象とするファイル（カレントファイル）は、図６に示すようなファイル識別情報「０１」を持つ可変長順編成レコード構造を持つエレメンタリファイルであるものとする。また、ＡＰＰＥＮＤ  ＲＥＣＯＲＤ  Ｃｏｍｍａｎｄで追記すべきデータ（追記データ）は、ファイル識別情報が「０１」のファイルにレコードとして格納することができるサイズであるものとする。さらには、ＡＰＰＥＮＤ  ＲＥＣＯＲＤ  Ｃｏｍｍａｎｄでデータを追記するためのセキュリティ条件は必要ないものとする。
【００４２】
上記ＩＣカード１は、上記ＩＣカードリーダライタ２からの電源供給を受けて活性化される。活性化されたＩＣカード１では、上記ＩＣカードリーダライタ２からのコマンドが受信可能となる。この状態において、上記ＩＣカード１は、上記ＩＣカードリーダライタ２からコマンドを受信する。上記ＩＣカードリーダライタ２からコマンドを受信すると、上記ＩＣカード１のＣＰＵ１０１は、コマンドを判別する処理を行う。この場合、上記ＣＰＵ１０１は、コマンドを判別する処理により受信したコマンドがＡＰＰＥＮＤ  ＲＥＣＯＲＤ  Ｃｏｍｍａｎｄであることを判別する。上記ＩＣカードリーダライタ２から受信したコマンドがＡＰＰＥＮＤ  ＲＥＣＯＲＤ  Ｃｏｍｍａｎｄであると判定した場合、上記ＩＣカード１のＣＰＵ１０１は、図７に示すような流れの処理を実行する。
【００４３】
すなわち、上記ＡＰＰＥＮＤ  ＲＥＣＯＲＤ  Ｃｏｍｍａｎｄを受信すると、上記ＣＰＵ１０１は、上記データメモリ１０２に格納されている複数のファイル管理情報から、現在選択状態となっているファイル（カレントファイル）のファイル識別情報を有するファイル管理情報を検索する（ステップＳ１）。この検索処理によりカレントファイルのファイル識別情報を有するファイル管理情報が存在しないと判定した場合（ステップＳ２、ＮＯ）、上記ＣＰＵ１０１は、当該ＡＰＰＥＮＤ  ＲＥＣＯＲＤ  Ｃｏｍｍａｎｄに対する処理結果として、ファイルなしのエラーであることを示すレスポンス（応答）をＩＣカードリーダライタ２へ送信し、当該ＡＰＰＥＮＤ  ＲＥＣＯＲＤ  Ｃｏｍｍａｎｄに対する処理をエラー終了とする（ステップＳ３）。
【００４４】
上記検索処理において現在選択されているファイルのファイル識別情報を有するファイル管理情報が存在すると判定した場合（ステップＳ２、ＹＥＳ）、上記ＣＰＵ１０１では、カレントファイルと同一のファイル識別情報を有するファイル管理情報が複数存在するか否かを判定する（ステップＳ４）。  
この判定によりカレントファイルと同一のファイル識別情報を有するファイル管理情報が複数存在すると判定した場合（ステップＳ４、ＹＥＳ）、上記ＣＰＵ１０１は、それらのファイル管理情報のうち使用順位情報が最上位の使用順位となっているファイル管理情報のファイルをアクセス対象のファイルとして選択する（ステップＳ５）。また、カレントファイルのファイル識別情報を有するファイル管理情報が１つのみである場合（ステップＳ４、ＮＯ）、上記ＣＰＵ１０１は、当該ファイル管理情報のファイルをアクセス対象のファイルとして選択する。
【００４５】
たとえば、図６に示すように、ファイル識別情報が「０１」のファイル管理情報が複数存在する場合、上記ＣＰＵ１０１は、選択されているファイルのファイル識別情報が「０１」であれば、上記ステップＳ１〜Ｓ５の処理として、ファイル識別情報が「０１」で、かつ、使用順位情報が「０１」のファイルをアクセス対象のファイルとして選択する。
【００４６】
なお、カレントファイルのファイル識別情報を有するファイル管理情報が１つのみである場合、当該ＡＰＰＥＮＤ  ＲＥＣＯＲＤ  Ｃｏｍｍａｎｄがアクセス対象とするファイルとして選択可能なファイルは、１つのみである。この場合、図７に示す処理の流れでは、当該ファイルを使用順位「０１」として処理するようにすれば良い。
【００４７】
上記のような処理によりアクセス対象とするファイルが選択されると、上記ＣＰＵ１０１は、選択したファイル内に新たなレコードが追加可能であるか否かを判断する（ステップＳ６）。言い換えれば、上記ステップＳ６において、上記ＣＰＵ１０１は、選択したファイル内に追記可能な空きのレコード（空き領域）が存在するか否かを判定する処理を行う。
【００４８】
たとえば、１つのファイルに格納可能なレコードの最大数が２５４個である場合、上記ＣＰＵ１０１は、上記ステップＳ６の処理として、使用順位情報が「０１」のファイル内にレコード番号「１」〜「２５４」の「２５４」個のレコードが書込み済であるか否かを判定する。
【００４９】
上記判定により選択したファイルに新たなレコードが追記可能であると判定した場合（ステップＳ６、ＹＥＳ）、上記ＣＰＵ１０１は、受信したＡＰＰＥＮＤ  ＲＥＣＯＲＤ  Ｃｏｍｍａｎｄで指定されている追記すべきデータ（追記データ）を当該ファイル内の新たなレコードとして書込む処理を行う（ステップＳ７）。このような追記データのデータ書込み処理が成功した場合（ステップＳ８、ＹＥＳ）、上記ＣＰＵ１０１は、当該ＡＰＰＥＮＤ  ＲＥＣＯＲＤ  Ｃｏｍｍａｎｄに対する処理結果として、正常終了を示すレスポンスをＩＣカードリーダライタ２へ送信し、処理を終了する。また、上記追記データのデータ書込みが失敗した場合（ステップＳ８、ＮＯ）、上記ＣＰＵ１０１は、当該ＡＰＰＥＮＤ  ＲＥＣＯＲＤ  Ｃｏｍｍａｎｄに対する処理結果として、データの書込み失敗を示すレスポンスをＩＣカードリーダライタ２へ送信し、当該ＡＰＰＥＮＤ  ＲＥＣＯＲＤ  Ｃｏｍｍａｎｄに対する処理をエラー終了とする（ステップＳ９）。
【００５０】
また、上記判定により選択したファイルに新たなレコードが追記できないと判定した場合（ステップＳ６、ＮＯ）、上記ＣＰＵ１０１は、ファイル識別情報が選択したファイルのファイル識別情報と同様で、かつ、使用順位が選択したファイルの次であるファイル管理情報を検索する（ステップＳ１０）。
【００５１】
たとえば、図６に示すように、ファイル識別情報が「０１」のファイル管理情報が複数存在する場合、上記ＣＰＵ１０１は、選択されているファイルのファイル識別情報が「０１」で、かつ、使用順位情報が「０１」あれば、上記ステップＳ１０の処理として、ファイル識別情報が「０１」で、かつ、使用順位情報が「０２」のファイルをアクセス対象のファイルとして選択する。
【００５２】
上記検索処理により次の使用順位のファイルが存在しないと判定した場合（ステップＳ１１、ＮＯ）、上記ＣＰＵ１０１は、空きレコードなしのためエラーであることを示すレスポンス（応答）をＩＣカードリーダライタ２へ送信し、エラー終了とする（ステップＳ１２）。上記ステップＳ１２の処理は、選択されたファイル識別情報のファイルには既に最大数のレコードが格納されているため、データの追記（つまり、レコードの追加）ができない状態であることを当該ＡＰＰＥＮＤ  ＲＥＣＯＲＤ  Ｃｏｍｍａｎｄの送信元に通知する処理である。
【００５３】
また、上記検索処理により次の使用順位のファイルが検出された場合（ステップＳ１１、ＹＥＳ）、上記ＣＰＵ１０１は、検出した次の使用順位のファイルをアクセス対象のファイルとして選択し、上記ステップＳ６と同様に、選択したファイル内に新たなレコードが追加可能であるか否かを判定する（ステップＳ１３）。
【００５４】
上記判定により選択したファイルに新たなレコードが追記可能であると判定した場合（ステップＳ１３、ＹＥＳ）、上記ＣＰＵ１０１は、受信したＡＰＰＥＮＤ  ＲＥＣＯＲＤ  Ｃｏｍｍａｎｄで指定されている追記すべきデータ（追記データ）を当該ファイル内の新たなレコードとして書込む処理を行う（ステップＳ７）。このような追記データのデータ書込み処理が成功した場合（ステップＳ８、ＹＥＳ）、上記ＣＰＵ１０１は、当該ＡＰＰＥＮＤ  ＲＥＣＯＲＤ  Ｃｏｍｍａｎｄに対する処理結果として、正常終了を示すレスポンスをＩＣカードリーダライタ２へ送信し、処理を終了する。また、上記追記データのデータ書込みが失敗した場合（ステップＳ８、ＮＯ）、上記ＣＰＵ１０１は、当該ＡＰＰＥＮＤ  ＲＥＣＯＲＤ  Ｃｏｍｍａｎｄに対する処理結果として、データの書込み失敗を示すレスポンスをＩＣカードリーダライタ２へ送信し、当該ＡＰＰＥＮＤ  ＲＥＣＯＲＤ  Ｃｏｍｍａｎｄに対する処理をエラー終了とする（ステップＳ９）。
【００５５】
また、上記判定により選択したファイルに新たなレコードが追記できないと判定した場合（ステップＳ１３、ＮＯ）、上記ＣＰＵ１０１は、上記ステップＳ１０へ戻り、上述した処理を繰り返し実行する。たとえば、使用順位情報が「２」のファイル内にも最大数のレコード（レコード番号「１」〜「２５４」までの全レコード）が格納されている場合、上記ＣＰＵ１０１は、ステップＳ１０に戻り、さらに、次の使用順位である使用順位情報が「３」のファイル定義情報を検索する処理を行う。
【００５６】
上記のように、ＩＣカードは、ＡＰＰＥＮＤ  ＲＥＣＯＲＤ  Ｃｏｍｍａｎｄを受信した場合、カレントファイルのファイル識別情報を有するファイル管理情報のうち使用順位が第１位となる使用順位情報を有するファイル管理情報を検索する。使用順位が第１位のファイル管理情報を検出すると、上記ＩＣカードは、使用順位が第１位のファイル管理情報で定義されているファイルに空きレコードがあるか否かを判定する。この判定により使用順位が第１位のファイルに空きレコードがないと判定した場合、上記ＩＣカードは、使用順位が第２位となる使用順位情報を有するファイル管理情報を再検索する。使用順位が第２位となる使用順位情報を検出すると、上記ＩＣカードは、使用順位が第２位となる使用順位情報で定義されているファイルに空きレコードがあるか否かを判定する。この判定により使用順位が第２位のファイルに空きレコードが存在すると判定した場合、上記ＩＣカードは、使用順位が第２位のファイルにおける空きレコードにデータを書き込む。
【００５７】
すなわち、ＡＰＰＥＮＤ  ＲＥＣＯＲＤ  Ｃｏｍｍａｎｄを受信したＩＣカードは、使用順位が第１位のファイルに空きレコードがない場合、使用順位が第２位のファイルにおける空きレコードにデータを追記する。このような処理により、上記ＩＣカードでは、１つのファイル識別情報でアクセス可能なレコードとして、１つのファイルにおける規定の最大レコード数を超える数のレコードを書き込むことが可能となる。また、同一のファイル識別情報を有する複数のファイルは、コマンドの送信元である外部装置には１つのファイルとして認識される。従って、外部装置からすると、規定のコマンドで、規定の最大レコード数を超えるレコードをＩＣカードのカレントファイルに書き込むことができる。
【００５８】
次に、ＩＣカード１における第２の処理例としてＲＥＡＤ  ＲＥＣＯＲＤ  Ｃｏｍｍａｎｄ（Ｃ１）に対する処理の流れについて説明する。  
図８は、上記ＩＣカード１におけるＲＥＡＤ  ＲＥＣＯＲＤ  Ｃｏｍｍａｎｄ（Ｃ１）に対する処理の流れを説明するためのフローチャートである。  
ＲＥＡＤ  ＲＥＣＯＲＤ  Ｃｏｍｍａｎｄ（Ｃ１）では、レコード構造のデータファイルに対して読み出すべきデータのレコードを指定する方法として、レコード番号を指定する方法と、カレントレコードの前のレコードあるいは次のレコードを指定する方法とがある。なお、カレントレコードを示す情報は、たとえば、ＲＡＭ１０３などのメモリに保持され、各レコードへのアクセスに伴って随時更新されるものであるものとする。
【００５９】
以下の説明では、ＲＥＡＤ  ＲＥＣＯＲＤ  Ｃｏｍｍａｎｄ（Ｃ１）でアクセス対象とするファイル（カレントファイル）は、図６に示すようなファイル識別情報「０１」を持つ可変長順編成レコード構造を持つエレメンタリファイルであるものとする。さらに、ＲＥＡＤ  ＲＥＣＯＲＤ  Ｃｏｍｍａｎｄで読み出すべきデータは、カレントレコードを基準に次のレコードを読み出すことを要求するコマンドであるものとする。なお、使用順位が第１位のファイルにおける指定レコードから最終レコードまでの一括読出を要求する読出コマンド、あるいは、カレントレコードから最終レコードまでの一括読出を要求する読出コマンドに対する処理は、各レコードのデータを読出するための処理として、図８に示すような処理を繰り返し実行することにより実現できるものである。
【００６０】
上記ＩＣカード１は、上記ＩＣカードリーダライタ２からの電源供給を受けて活性化される。活性化されたＩＣカード１では、上記ＩＣカードリーダライタ２からのコマンドが受信可能となる。この状態において、上記ＩＣカード１は、上記ＩＣカードリーダライタ２からコマンドを受信する。上記ＩＣカードリーダライタ２からコマンドを受信すると、上記ＩＣカード１のＣＰＵ１０１は、受信したコマンドを判別する処理を行う。この場合、上記ＣＰＵ１０１は、コマンドを判別する処理により受信したコマンドがＲＥＡＤ  ＲＥＣＯＲＤ  Ｃｏｍｍａｎｄであることを判別するものとする。上記ＩＣカードリーダライタ２から受信したコマンドがＲＥＡＤ  ＲＥＣＯＲＤ  Ｃｏｍｍａｎｄであると判定した場合、上記ＩＣカード１のＣＰＵ１０１は、図８に示すような流れの処理を実行する。
【００６１】
すなわち、上記ＲＥＡＤ  ＲＥＣＯＲＤ  Ｃｏｍｍａｎｄを受信すると、上記ＣＰＵ１０１は、上記データメモリ１０２に格納されている複数のファイル管理情報から、現在選択状態となっているファイル（カレントファイル）のファイル識別情報を有するファイル管理情報を検索する（ステップＳ２１）。この検索処理によりカレントファイルのファイル識別情報を有するファイル管理情報が存在しないと判定した場合（ステップＳ２２、ＮＯ）、上記ＣＰＵ１０１は、当該ＲＥＡＤ  ＲＥＣＯＲＤ  Ｃｏｍｍａｎｄに対する処理結果として、ファイルなしのエラーであることを示すレスポンス（応答）をＩＣカードリーダライタ２へ送信し、当該ＲＥＡＤ  ＲＥＣＯＲＤ  Ｃｏｍｍａｎｄに対する処理をエラー終了とする（ステップＳ２３）。
【００６２】
上記検索処理において現在選択されているファイルのファイル識別情報を有するファイル管理情報が存在すると判定した場合（ステップＳ２２、ＹＥＳ）、上記ＣＰＵ１０１では、現在選択状態となっているファイルのファイル識別情報と同一なファイル識別情報のファイル管理情報が複数存在するか否かを判定する（ステップＳ２４）。  
この判定によりカレントファイルと同一のファイル識別情報を有するファイル管理情報が複数存在すると判定した場合（ステップＳ２４、ＹＥＳ）、上記ＣＰＵ１０１は、それらのファイル管理情報のうち使用順位情報が最上位の使用順位となっているファイル管理情報のファイルをアクセス対象のファイルとして選択する（ステップＳ２５）。また、カレントファイルのファイル識別情報を有するファイル管理情報が１つのみである場合（ステップＳ２４、ＮＯ）、上記ＣＰＵ１０１は、当該ファイル管理情報のファイルをアクセス対象のファイルとして選択する。
【００６３】
たとえば、図６に示すように、ファイル識別情報が「０１」のファイル管理情報が複数存在する場合、上記ＣＰＵ１０１は、カレントファイルのファイル識別情報が「０１」であれば、上記ステップＳ２１〜Ｓ２５の処理として、ファイル識別情報が「０１」で、かつ、使用順位情報が「０１」のファイルをアクセス対象のファイルとして選択する。
【００６４】
なお、カレントファイルのファイル識別情報を有するファイル管理情報が１つのみである場合、当該ＲＥＡＤ  ＲＥＣＯＲＤ  Ｃｏｍｍａｎｄがアクセス対象とするファイルとして選択可能なファイルは、１つのみである。この場合、図８に示す処理の流れでは、当該ファイルを使用順位「０１」として処理するようにすれば良い。
【００６５】
上記のような処理によりアクセス対象とするファイルが選択されると、上記ＣＰＵ１０１は、カレントレコードを示す情報をＲＡＭ１０３から取得する。上記ＣＰＵ１０１は、ＲＡＭ１０３から取得したカレントレコードを示す情報に基づいて当該ＲＥＡＤ  ＲＥＣＯＲＤ  Ｃｏｍｍａｎｄで指定されたレコードのレコード番号を判定する（ステップＳ２６）。すなわち、当該ＲＥＡＤ  ＲＥＣＯＲＤ  Ｃｏｍｍａｎｄがカレントレコードの次のレコードを指定する場合、上記ＣＰＵ１０１は、ＲＡＭ１０３から取得したカレントレコードを示す情報に基づいてカレントレコードの次のレコードを特定する。
【００６６】
たとえば、カレントレコードは、各ファイル内におけるレコード番号と各ファイルの使用順位を示す情報との組合せで示すようにしても良いし、各ファイル内の全レコードに通し番号を付与するようにしても良い。ただし、本実施の形態では、所定の規格で規定されている制限内でコマンドを運用（既存のコマンドを仕様を変更せずに使用）することを想定している。このため、コマンドでは、直接的に使用順位情報が「２」以降のファイルにおけるレコードを直接的に指定することはできない。しかし、カレントレコードを示す情報は、ＩＣカード内部で保持する情報であるため、使用順位が「２」以降のファイルにおけるレコードもカレントレコードとして保持することが可能である。たとえば、カレントレコードを示す情報は、使用順位が「ｎ」のファイルにおける各レコードのレコード番号を「１＋（各ファイルの最大レコード数）×（ｎ−１）」〜「最大レコード数＋（各ファイルの最大レコード数）×（ｎ−１）」と定義することが可能である。この場合、カレントレコードの次のレコードは、レコード番号がカレントレコード番号＋１であると判定される。
【００６７】
当該ＲＥＡＤ  ＲＥＣＯＲＤ  Ｃｏｍｍａｎｄで指定されたレコード番号（カレントレコードの次のレコード番号）を判定すると、上記ＣＰＵ１０１は、現在選択しているファイル（たとえば、ファイル識別番号が「０１」で、かつ、使用順位情報が「０１」のファイル）内に指定されたレコード番号のレコードが存在するか否かを判定する（ステップＳ２７）。
【００６８】
たとえば、使用順位が「ｎ」のファイルにおける各レコードのレコード番号が「１＋２５４×（ｎ−１）」〜「２５４＋２５４×（ｎ−１）」と定義される場合、上記ＣＰＵ１０１は、レコード番号が２５５以上であるか否かにより、指定されたレコードが使用順位「１」のファイルに存在するか否かが判定できる。なお、判定したレコード番号が２５４以下の場合、上記ＣＰＵ１０１は、使用順位が「０１」のファイル内に指定されたレコード番号が存在するか否かを判定する。
【００６９】
上記判定により選択されているファイルに指定されたレコードが存在すると判定した場合（ステップＳ２７、ＹＥＳ）、上記ＣＰＵ１０１は、受信したＲＥＡＤ  ＲＥＣＯＲＤ  Ｃｏｍｍａｎｄで指定されているレコード番号のデータを読み出す処理を行う（ステップＳ２８）。このようなデータの読出処理が成功した場合（ステップＳ２９、ＹＥＳ）、上記ＣＰＵ１０１は、当該ＲＥＡＤ  ＲＥＣＯＲＤ  Ｃｏｍｍａｎｄに対する処理結果として、読出したデータと正常終了を示す情報とをレスポンスとしてＩＣカードリーダライタ２へ送信し、処理を終了する。
【００７０】
また、上記データの読出し処理が失敗した場合（ステップＳ２９、ＮＯ）、上記ＣＰＵ１０１は、当該ＲＥＡＤ  ＲＥＣＯＲＤ  Ｃｏｍｍａｎｄに対する処理結果として、データの読出し失敗を示すレスポンスをＩＣカードリーダライタ２へ送信し、当該ＲＥＡＤ  ＲＥＣＯＲＤ  Ｃｏｍｍａｎｄに対する処理をエラー終了とする（ステップＳ３０）。
【００７１】
また、上記判定により選択されているファイルに指定されたレコードが存在しないと判定した場合（ステップＳ２７、ＮＯ）、上記ＣＰＵ１０１は、カレントファイルと同一のファイル識別情報で、かつ、使用順位が次のファイル管理情報を検索する（ステップＳ３１）。
【００７２】
たとえば、図６に示すように、ファイル識別情報が「０１」のファイル管理情報が複数存在する場合、上記ＣＰＵ１０１は、選択しているファイルのファイル識別情報が「０１」で、かつ、使用順位情報が「０１」あれば、上記ステップＳ３１の処理として、ファイル識別情報が「０１」で、かつ、使用順位情報が「０２」のファイルをアクセス対象のファイルとして選択する。
【００７３】
上記検索処理により次の使用順位のファイルが存在しないと判定した場合（ステップＳ３２、ＮＯ）、上記ＣＰＵ１０１は、指定されたレコードなしのためエラーであることを示すレスポンス（応答）をＩＣカードリーダライタ２へ送信し、エラー終了とする（ステップＳ３３）。上記ステップＳ３３の処理は、選択されたファイルは存在するが、選択されたファイル内に指定されたレコードが存在しないことを示すレスポンスを送信する処理である。
【００７４】
また、上記検索処理により次の使用順位のファイルが検出された場合（ステップＳ３２、ＹＥＳ）、上記ＣＰＵ１０１は、検出した次の使用順位のファイルをアクセス対象のファイルとして選択し、上記ステップＳ２７と同様に、選択したファイル内に指定されたレコードが存在するか否かを判定する（ステップＳ３４）。
【００７５】
上記判定により選択したファイルに指定されたレコードが存在すると判定した場合（ステップＳ３４、ＹＥＳ）、上記ＣＰＵ１０１は、上記ステップＳ２８へ進み、指定されたレコードのデータを読み出す処理を行う。データの読出し処理が成功した場合（ステップＳ２９、ＹＥＳ）、上記ＣＰＵ１０１は、読み出したデータと正常終了を示す情報とをレスポンスとしてＩＣカードリーダライタ２へ送信し、処理を終了する。また、データの読出しが失敗した場合（ステップＳ２９、ＮＯ）、上記ＣＰＵ１０１は、データの読出し失敗を示すレスポンスをＩＣカードリーダライタ２へ送信し、当該ＲＥＡＤ  ＲＥＣＯＲＤ  Ｃｏｍｍａｎｄに対する処理をエラー終了とする（ステップＳ３０）。
【００７６】
また、上記判定により選択したファイルに指定されたレコードが存在しないと判定した場合（ステップＳ３４、ＮＯ）、上記ＣＰＵ１０１は、上記ステップＳ３１へ戻り、上述した処理を繰り返し実行する。これにより、上記ＣＰＵ１０１は、使用順位の順番に、カレントファイルと同一のファイル識別情報のファイルから指定されたレコードを検索する処理が可能となる。
【００７７】
上記のように、本実施の形態のＩＣカードは、ＲＥＡＤ  ＲＥＣＯＲＤ  Ｃｏｍｍａｎｄを受信した場合、カレントファイルのファイル識別情報を有するファイル管理情報のうち使用順位が第１位となる使用順位情報を有するファイル管理情報を検索する。使用順位が第１位のファイル管理情報を検出すると、上記ＩＣカードは、使用順位が第１位のファイル管理情報で定義されているファイルに読み出すべきレコードがあるか否かを判定する。この判定により使用順位が第１位のファイルに読み出すべきレコードがないと判定した場合、上記ＩＣカードは、使用順位が第２位となる使用順位情報を有するファイル管理情報を再検索する。使用順位が第２位となる使用順位情報を検出すると、上記ＩＣカードは、使用順位が第２位となる使用順位情報で定義されているファイルに読み出すべきレコードがあるか否かを判定する。この判定により使用順位が第２位のファイルに読み出すべきレコードが存在すると判定した場合、上記ＩＣカードは、使用順位が第２位のファイルにおける読み出すべきレコードのデータを読み出す。
【００７８】
すなわち、ＲＥＡＤ  ＲＥＣＯＲＤ  Ｃｏｍｍａｎｄを受信したＩＣカードは、使用順位の順に、各ファイルから読み出すべきレコードがあるか否かを判定することにより、使用順位が第２位以降のファイルにおけるレコードのデータも読み出すことが可能となる。このような処理により、上記ＩＣカードでは、１つのファイル識別情報でアクセス可能なレコードが１つのファイルにおける規定の最大レコード数を超える場合であっても、所望のレコードを読み出すことが可能となる。
【００７９】
また、ＲＥＡＤ  ＲＥＣＯＲＤ  Ｃｏｍｍａｎｄでは、読出し対象とするレコードを、カレントレコードを基準として指定することが可能である。たとえば、ＲＥＡＤ  ＲＥＣＯＲＤ  Ｃｏｍｍａｎｄでは、読出し対象とするレコードをカレントレコードの次のレコードと指定することが可能である。また、カレントレコードを示す情報は、ＩＣカード内で保持される情報である。このため、ＩＣカードでは、使用順位が第２位以降のファイルにおけるレコードをカレントレコードとすることも可能である。つまり、ＩＣカード内において同一のファイル識別情報を有する複数のファイルを１つのファイルとして認識する外部装置であっても、カレントレコードを基準に読出し対象とするレコードを指定することにより、所定の規格で規定されたＲＥＡＤ  ＲＥＣＯＲＤ  Ｃｏｍｍａｎｄの仕様を変更することなく、使用順位が第２位以降のファイルにおけるレコードのデータを読出しを要求することが可能である。
【００８０】
上記のように、本実施の形態では、たとえば、国際標準化規格のＩＳＯ／ＩＥＣ７８１６−４などの所定の規格で規定されたＡＰＰＥＮＤ  ＲＥＣＯＲＤ  ＣｏｍｍａｎｄあるいはＲＥＡＤ  ＲＥＣＯＲＤ  Ｃｏｍｍａｎｄの仕様を変更することなく、規格上の最大値であるレコード番号「２５４」を超えるレコードを１つのファイル識別情報で管理することができる。
【００８１】
なお、上述した実施の形態は、使用順位の数、各ファイル内の最大レコード数、ファイル種別などを限定するものではない。すなわち、使用順位だけが異なるファイル管理情報は、任意の数のファイルを定義できる。たとえば、使用順位だけが異なるファイルを１０個定義した場合、それらのファイル定義情報では、使用順位情報として、「１」〜「１０」の値が順に設定される。また、最大レコード数は、「２５４」に限らず、任意の数に対して適用できる。また、ファイル種別としては、レコード構造のファイルであれば、上記実施の形態を適用できる。たとえば、可変長順編成レコード構造以外の構造のファイルにも、上記実施の形態を適用できる。
【図面の簡単な説明】
【００８２】
【図１】携帯可能電子装置としてのＩＣカードの構成を概略的に示すブロック図。
【図２】接触式ＩＣカードの構成例を示す図。
【図３】非接触式ＩＣカードの構成例を説明するための図。
【図４】データメモリ内におけるファイルの構成例を示す模式図。
【図５Ａ】ファイルに格納されたデータの構成例を模式的に示す図。
【図５Ｂ】ファイルに格納されたデータの構成例を模式的に示す図。
【図６】ファイル管理情報の構成例を模式的に示す図。
【図７】アペンドレコードコマンドに対する処理の流れを説明するためのフローチャート。
【図８】リードレコードコマンドに対する処理の流れを説明するためのフローチャート。
【符号の説明】
【００８３】
１…ＩＣカード（携帯可能電子装置）、２…ＩＣカードリーダライタ（外部装置）、１０…ＩＣチップ、Ｍ…モジュール、Ｂ…本体、１１…インターフェース、１２…データメモリ、１０１…ＣＰＵ、１０２…データメモリ、１０３…ＲＡＭ、１０４…ＲＯＭ、１０６…通信制御部。
【図１】
2009032249.tif 000003
【図２】
2009032249.tif 000004
【図３】
2009032249.tif 000005
【図４】
2009032249.tif 000006
【図５Ａ】
2009032249.tif 000007
【図５Ｂ】
2009032249.tif 000008
【図６】
2009032249.tif 000009
【図７】
2009032249.tif 000010
【図８】
2009032249.tif 000011