(57)【特許請求の範囲】
【請求項１】
外部装置とデータ通信を行う通信手段と、
前記通信手段によるデータ通信を複数の論理チャネルから選択する論理チャネルを用いて実行する制御手段と、
前記外部装置からのコマンドによってアクセス対象となるデータ単位でデータを記憶するデータ記憶手段と、
前記通信手段により受信したコマンドが指定するデータへのアクセスを当該コマンドで指定する論理チャネルで実行するコマンド処理手段と、
前記データ記憶手段に記憶した各データに対する各論理チャネルからの使用状況を記憶し、各データに対応づけて、使用している論理チャネルを示す情報を記憶する第１の記憶手段と、
前記第１の記憶手段に記憶された情報を参照し、前記コマンドが指定するデータが当該コマンドの第１の論理チャネル以外の第２の論理チャネルで使用中のためにアクセス不可となった場合、当該コマンドのレスポンスメッセージに第２の論理チャネルで使用中のためにアクセス不可となった旨を示す情報を付加して出力する応答手段と、
を有し、
前記コマンド処理手段は、第１のデータへのアクセスを所定の論理チャネルで実行して前記第１のデータが前記所定の論理チャネルで使用中であることを示す第１の情報を前記第１の記憶手段に記憶させ、続いて第２のデータへのアクセスを前記所定の論理チャネルで実行して前記第２のデータが前記所定の論理チャネルで使用中であることを示す第２の情報を前記第１の記憶手段に記憶させ前記第１の情報を前記第１のデータが未使用であることを示す第３の情報へ更新するＩＣカード。
【請求項２】
前記応答手段は、前記コマンド処理手段によるコマンドの実行結果を示すレスポンスメッセージに、当該コマンドの論理チャネルでアクセス不可となったデータの使用状況を示す情報を付加して出力する、
前記請求項１に記載のＩＣカード。
【請求項３】
さらに、前記論理チャネルごとにアクセス不可となったデータを示す情報を記憶する第２の記憶手段を有し、
前記応答手段は、前記第２の記憶手段に記憶した情報により当該コマンドの論理チャネルでアクセス不可となったデータを特定し、前記第１の記憶手段に記憶した情報により前記特定したアクセス不可となったデータの使用状況を示す情報を決定する、
前記請求項２に記載のＩＣカード。
【請求項４】
前記第１の記憶手段は、各データに対応づけて、使用している論理チャネルを示す情報、あるいは、未使用を示す情報の何れかを記憶する、
前記請求項３に記載のＩＣカード。
【請求項５】
前記第２の記憶手段は、各論理チャネルに対応づけて、アクセス不可となったデータを示す情報と当該データを使用中の論理チャネルを示す情報とを記憶する、
前記請求項３又は４の何れかに記載のＩＣカード。
【請求項６】
前記第２の記憶手段は、当該論理チャネルでアクセス不可となっていたデータへのアクセスが成功した場合、前記アクセス不可となったデータを示す情報を当該データへのアクセス成功を示す情報に書き換える、
前記請求項３乃至５の何れか１項に記載のＩＣカード。
【請求項７】
前記レスポンスメッセージは、データ部とステータス部とを有し、
前記応答手段は、前記第２の記憶手段に記憶するアクセス不可となったデータの使用状況を示す情報を前記レスポンスメッセージのデータ部に付加する、
前記請求項３乃至６の何れか１項に記載のＩＣカード。
【請求項８】
前記応答手段は、前記アクセス不可となったデータの使用状況を示す情報を前記データ部に付加する場合、前記ステータス部にはコマンドの処理結果とともに前記データの使用状況を示す情報を付加した事を示すステータスを格納する、
前記請求項７に記載のＩＣカード。
【請求項９】
外部装置とデータ通信を行う通信手段と、前記通信手段によるデータ通信を複数の論理チャネルから選択する論理チャネルを用いて実行する制御手段と、前記外部装置からのコマンドによってアクセス対象となるデータ単位でデータを記憶するデータ記憶手段と、前記通信手段により受信したコマンドが指定するデータへのアクセスを当該コマンドで指定する論理チャネルで実行するコマンド処理手段と、前記データ記憶手段に記憶した各データに対する各論理チャネルからの使用状況を記憶し、各データに対応づけて、使用している論理チャネルを示す情報を記憶する第１の記憶手段と、前記第１の記憶手段に記憶された情報を参照し、前記コマンドが指定するデータが当該コマンドの第１の論理チャネル以外の第２の論理チャネルで使用中のためにアクセス不可となった場合、当該コマンドのレスポンスメッセージに第２の論理チャネルで使用中のためにアクセス不可となった旨を示す情報を付加して出力する応答手段と、を有するモジュールと、
前記モジュールを具備する本体と、
を有し、前記コマンド処理手段は、第１のデータへのアクセスを所定の論理チャネルで実行して前記第１のデータが前記所定の論理チャネルで使用中であることを示す第１の情報を前記第１の記憶手段に記憶させ、続いて第２のデータへのアクセスを前記所定の論理チャネルで実行して前記第２のデータが前記所定の論理チャネルで使用中であることを示す第２の情報を前記第１の記憶手段に記憶させ前記第１の情報を前記第１のデータが未使用であることを示す第３の情報へ更新するＩＣカード。
【請求項１０】
外部装置とデータ通信を行う通信手段と、
前記通信手段によるデータ通信を複数の論理チャネルから選択する論理チャネルを用いて実行する制御手段と、
前記外部装置からのコマンドによってアクセス対象となるデータ単位でデータを記憶するデータ記憶手段と、
前記通信手段により受信したコマンドが指定するデータへのアクセスを当該コマンドで指定する論理チャネルで実行するコマンド処理手段と、
前記データ記憶手段に記憶した各データに対する各論理チャネルからの使用状況を記憶し、各データに対応づけて、使用している論理チャネルを示す情報を記憶する第１の記憶手段と、
前記第１の記憶手段に記憶された情報を参照し、前記コマンドが指定するデータが当該コマンドの第１の論理チャネル以外の第２の論理チャネルで使用中のためにアクセス不可となった場合、当該コマンドのレスポンスメッセージに第２の論理チャネルで使用中のためにアクセス不可となった旨を示す情報を付加して出力する応答手段と、
を有し、
前記コマンド処理手段は、第１のデータへのアクセスを所定の論理チャネルで実行して前記第１のデータが前記所定の論理チャネルで使用中であることを示す第１の情報を前記第１の記憶手段に記憶させ、続いて第２のデータへのアクセスを前記所定の論理チャネルで実行して前記第２のデータが前記所定の論理チャネルで使用中であることを示す第２の情報を前記第１の記憶手段に記憶させ前記第１の情報を前記第１のデータが未使用であることを示す第３の情報へ更新する携帯可能電子装置。
【請求項１１】
外部装置とデータ通信を行う通信手段と、前記外部装置からのコマンドによってアクセス対象となるデータ単位でデータを記憶するデータ記憶手段と、外部装置とのデータ通信を複数の論理チャネルから選択する論理チャネルを用いて実行する制御手段と、前記データ記憶手段に記憶した各データに対する各論理チャネルからの使用状況を記憶し、各データに対応づけて、使用している論理チャネルを示す情報を記憶する第１の記憶手段とを有するＩＣカードのコマンド処理方法であって、
前記通信手段により受信したコマンドが指定するデータへのアクセスを当該コマンドで指定する論理チャネルで実行する処理において、第１のデータへのアクセスを所定の論理チャネルで実行して前記第１のデータが前記所定の論理チャネルで使用中であることを示す第１の情報を前記第１の記憶手段に記憶させ、続いて第２のデータへのアクセスを前記所定の論理チャネルで実行して前記第２のデータが前記所定の論理チャネルで使用中であることを示す第２の情報を前記第１の記憶手段に記憶させ前記第１の情報を前記第１のデータが未使用であることを示す第３の情報へ更新し、
前記第１の記憶手段に記憶された情報を参照し、前記コマンドが指定するデータが当該コマンドの第１の論理チャネル以外の第２の論理チャネルで使用中のためにアクセス不可となった場合、当該コマンドのレスポンスメッセージに第２の論理チャネルで使用中のためにアクセス不可となった旨を示す情報を付加して出力する、
ＩＣカードのコマンド処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は、ＩＣカード、携帯可能電子装置及びＩＣカードのコマンド処理方法に関する。
【背景技術】
【０００２】
従来、ＩＣカードでは、複数のチャネルごとに継続的な処理を行う論理チャネル機能を有するものある。論理チャネル機能をサポートするＩＣカードは、別の論理チャネルで使用中の共有不可のファイルにアクセスするコマンドを受信した場合、当該ファイルへのアクセスができないため、コマンド処理の異常終了を応答する。従来、ＩＣカードは、別の論理チャネルで使用中の共有不可のファイルへのアクセスを伴うコマンドを実行したい場合、当該コマンドの処理が成功するまでリトライを繰り返す。
【先行技術文献】
【非特許文献】
【０００３】
【非特許文献１】ＩＳＯ／ＩＥＣ  ７８１６−４
【発明の概要】
【発明が解決しようとする課題】
【０００４】
この発明の実施形態では、コマンドに対する応答においてアクセス不可となったファイルの状態を通知できるＩＣカード、携帯可能電子装置及びＩＣカードのコマンド処理方法を提供することを目的とする。
【課題を解決するための手段】
【０００５】
実施形態によれば、ＩＣカードは、通信手段と、制御手段と、データ記憶手段と、コマンド処理手段と、応答手段とを有する。通信手段は、外部装置とデータ通信を行う。制御手段と、通信手段によるデータ通信を複数の論理チャネルから選択する論理チャネルを用いて実行する。データ記憶手段と、外部装置からのコマンドによってアクセス対象となるデータ単位でデータを記憶する。コマンド処理手段と、通信手段により受信したコマンドが指定するデータへのアクセスを当該コマンドで指定する論理チャネルで実行する。応答手段と、コマンドが指定するデータが当該コマンドの論理チャネル以外の論理チャネルで使用中のためにアクセス不可となった場合、当該コマンドのレスポンスメッセージに別の論理チャネルで使用中のためにアクセス不可となった旨を示す情報を付加して出力する。
【図面の簡単な説明】
【０００６】
【図１】図１は、本実施形態に係るＩＣカードと通信を行うＩＣカード処理装置の構成例を示す図である。
【図２】図２は、本実施形態に係るＩＣカードの構成例を示すブロック図である。
【図３】図３は、データメモリに格納されるファイルの構造例を示す図である。
【図４】図４は、ＤＦに付加されたＦＣＩの構成例を示す図である。
【図５】図５は、ＥＦに付加されたＦＣＩの構成例を示す図である。
【図６】図６は、各ファイル（ＥＦ）の使用状況を示す使用状況テーブルの例を示す図である。
【図７】図７は、各論理チャネルにおける各ＥＦへのアクセスの成功／不成功を示すアクセス情報を格納するアクセス状況テーブルの例を示す図である。
【図８】図８は、コマンドに対する応答としてのレスポンスメッセージの構成例を示す図である。
【図９】図９は、リードコマンドに対するレスポンスメッセージの第１の例である。
【図１０】図１０は、リードコマンドに対するレスポンスメッセージの第２の例である。
【図１１】図１１は、リードコマンドに対するレスポンスメッセージの第３の例である。
【図１２】図１２は、ＩＣカード処理装置から順次与えられる複数のコマンドに対する処理内容を説明するためのシーケンス図である。
【図１３】図１３（ａ）は、使用状況テーブルの状態の例を示す図である。図１３（ｂ）は、アクセス状況テーブルの状態の例を示す図である。
【図１４】図１４（ａ）は、使用状況テーブルの状態の例を示す図である。図１３乃至図１９（ｂ）は、アクセス状況テーブルの状態の例を示す図である。
【図１５】図１５（ａ）は、使用状況テーブルの状態の例を示す図である。図１５（ｂ）は、アクセス状況テーブルの状態の例を示す図である。
【図１６】図１６（ａ）は、使用状況テーブルの状態の例を示す図である。図１６（ｂ）は、アクセス状況テーブルの状態の例を示す図である。
【図１７】図１７（ａ）は、使用状況テーブルの状態の例を示す図である。図１７（ｂ）は、アクセス状況テーブルの状態の例を示す図である。
【図１８】図１８（ａ）は、使用状況テーブルの状態の例を示す図である。図１３乃至図１９（ｂ）は、アクセス状況テーブルの状態の例を示す図である。
【図１９】図１９（ａ）は、使用状況テーブルの状態の例を示す図である。図１９（ｂ）は、アクセス状況テーブルの状態の例を示す図である。
【図２０】図２０は、ＩＣカードがコマンドを受信した場合の処理の流れを説明するためのフローチャートである。
【発明を実施するための形態】
【０００７】
以下、この発明の実施の形態について図面を参照して説明する。  
図１は、本実施の形態に係るＩＣカード（携帯可能電子装置）２、および、ＩＣカード２との通信機能を有する外部装置としてのＩＣカード処理装置１の構成例を概略的に示すブロック図である。  
まず、上記ＩＣカード処理装置１の構成について説明する。  
ＩＣカード処理装置１は、図１に示すように、端末装置１１、カードリーダライタ１２、キーボード１３、ディスプレイ１４、および、プリンタ１５などを有する。
【０００８】
端末装置１１は、ＩＣカード処理装置１全体の動作を制御するものである。端末装置１１は、ＣＰＵ、種々のメモリ及び各種インターフェースなどにより構成される。たとえば、端末装置１１は、パーソナルコンピュータ（ＰＣ）により構成される。  
端末装置１１は、カードリーダライタ１２によりＩＣカード２へコマンドを送信する機能、ＩＣカード２から受信したデータを基に種々の処理を行う機能などを有している。たとえば、端末装置１１は、カードリーダライタ１２を介してＩＣカード２にデータの書き込みコマンドを送信することによりＩＣカード２内の不揮発性メモリにデータを書き込む制御を行う。また、端末装置１１は、ＩＣカード２に読み取りコマンドを送信することによりＩＣカード２からデータを読み出す制御を行う。
【０００９】
カードリーダライタ１２は、ＩＣカード２との通信を行うためのインターフェース装置である。カードリーダライタ１２は、ＩＣカード２の通信方式に応じたインターフェースにより構成される。たとえば、ＩＣカード２が接触型のＩＣカードである場合、カードリーダライタ１２は、ＩＣカード２のコンタクト部と物理的かつ電気的に接続するための接触部などにより構成される。また、上記ＩＣカード２が非接触型のＩＣカードである場合、カードリーダライタ１２は、ＩＣカード２との無線通信を行うためのアンテナおよび通信制御などにより構成される。カードリーダライタ１２では、ＩＣカード２に対する電源供給、クロック供給、リセット制御、データの送受信が行われるようになっている。このような機能によってカードリーダライタ１２は、端末装置１１による制御に基づいて上記ＩＣカード２の活性化（起動）、種々のコマンドの送信、及び送信したコマンドに対する応答の受信などを行なう。
【００１０】
キーボード１３は、当該ＩＣカード処理装置１の操作員が操作する操作部として機能し、操作員により種々の操作指示やデータなどが入力される。ディスプレイ１４は、端末装置１１の制御により種々の情報を表示する表示装置である。プリンタ１５は、処理結果などの各種データを印刷出力するためのものである。
【００１１】
次に、ＩＣカード２の構成例について説明する。  
ＩＣカード２は、ＩＣカード処理装置１などの上位機器からの電力供給を受けて活性化される（動作可能な状態になる）。例えば、ＩＣカード２が接触型の通信によりＩＣカード処理装置１と接続される場合、つまり、ＩＣカード２が接触型のＩＣカードである場合、ＩＣカード２は、通信インターフェースとしてのコンタクト部を介してＩＣカード処理装置１からの動作電源及び動作クロックの供給を受けて活性化される。
【００１２】
また、ＩＣカード２が非接触型の通信方式によりＩＣカード処理装置１と接続される場合、つまり、ＩＣカード２が非接触型のＩＣカードである場合、ＩＣカード２は、通信インターフェースとしてのアンテナ及び変復調回路などを介してＩＣカード処理装置１からの電波を受信し、その電波から図示しない電源部により動作用の電力及び動作クロックを生成して活性化する。
【００１３】
図２は、本実施の形態に係るＩＣカード２のハードウエア構成例を概略的に示すブロック図である。  
ＩＣカード２は、プラスチックなどで形成されたカード状の筐体（本体）Ｂ内にモジュールＭが内蔵されている。モジュールＭは、１つまたは複数のＩＣチップＣと通信用の外部インターフェース（通信インターフェース）とが接続された状態で一体的に形成され、本体Ｂ内に埋設されている。また、ＩＣカード２のモジュールＭは、図２に示すように、制御素子２１、データメモリ２２、ワーキングメモリ２３、プログラムメモリ２４、および、通信部２５などを有してしている。
【００１４】
制御素子２１は、当該ＩＣカード２全体の制御を司るものである。制御素子２１は、プログラムメモリ２４あるいはデータメモリ２２に記憶されている制御プログラムおよび制御データに基づいて動作することにより、種々の機能を実現する。たとえば、制御素子２１は、オペレーティングシステムのプログラムを実行することにより、当該ＩＣカード２の基本的な動作制御を行う。また、制御素子２１は、当該ＩＣカード２の利用目的に応じたアプリケーションプログラムを実行することにより、当該ＩＣカード２の運用形態に応じた種々の動作制御を行う。
【００１５】
また、制御素子２１は、複数の論理チャネルを用いて通信制御およびコマンド処理を実行する機能を有する。論理チャネルは、外部との物理的な通信インターフェースを用いた通信制御において論理的に定義されるチャネルである。制御素子２１は、複数の論理チャネルのうち選択される各論理チャネルごとに通信制御およびコマンド処理などの処理を実行できる。なお、論理チャネルの機能は、ＩＣカードの標準規格の１つであるＩＳＯ／ＩＥＣ  ７８１６−４で規定されるもので実現できる。
【００１６】
データメモリ２２は、例えば、ＥＥＰＲＯＭ（Electrically  Erasable  Programmable  Read-Only  Memory）あるいはフラッシュＲＯＭなどのデータの書き込み及び書換えが可能な不揮発性のメモリにより構成される。データメモリ２２には、当該ＩＣカード２の運用用途に応じた制御プログラムあるいは種々のデータが書込まれる。データメモリ２２には、当該ＩＣカード２の規格に応じた種々のファイルが定義され、それらのファイルに種々のデータが書き込まれる。上記データメモリ２２に格納されるファイルの例については、後述する。
【００１７】
ワーキングメモリ２３は、ＲＡＭなどの揮発性のメモリである。また、ワーキングメモリ（ＲＡＭ）２３は、制御素子２１が処理中のデータなどを一時保管するバッファとして機能する。ワーキングメモリ２３には、各ファイルへのアクセス状況、通信チャネルの使用状況、および、処理状況などを示す種々のテーブルが設けられる。ワーキングメモリ２３に設けられるテーブルの例については、後述する。
【００１８】
プログラムメモリ２４は、予め制御用のプログラムや制御データなどが記憶されているマスクＲＯＭなどの不揮発性のメモリである。プログラムメモリ（ＲＯＭ）２４には、当該ＩＣカードの製造段階で制御プログラムあるいは制御データなどが記憶された状態でＩＣカード２内に組み込まれる。つまり、プログラムメモリ２４に記憶されている制御プログラムあるいは制御データは、当該ＩＣカードの基本的な動作を司るものであり、予め当該ＩＣカード２の仕様に応じて組み込まれる。
【００１９】
通信部２５は、ＩＣカード処理装置１のカードリーダライタ１２との通信を行うためのインターフェースである。当該ＩＣカード２が接触型のＩＣカードとして実現される場合、通信部２５は、ＩＣカード処理装置１のカードリーダライタ１２と物理的かつ電気的に接触して信号の送受信を行うための通信制御部とコンタクト部とにより構成される。また、当該ＩＣカード２が非接触型のＩＣカードとして実現される場合、通信部２５は、ＩＣカード処理装置１のカードリーダライタ１２との無線通信を行うための変復調回路などの通信制御部および電波を送受信するためのアンテナなどにより構成される。
【００２０】
次に、データメモリ２２に格納されるファイルについて説明する。  
図３は、データメモリ２２に格納されるファイルの構造例を示す図である。  
図３に示すように、データメモリ２２には、ＭＦ（Master File）３１、ＤＦ(Dedicated File)３２およびＥＦ(Elementary File)３３〜３６などからなる階層構造を有する複数のファイル群が定義され、ＤＦ及びＥＦに対応するＦＣＩ（Ｆｉｌｅ  Ｃｏｎｔｒｏｌ  Ｉｎｆｏｒｍａｔｉｏｎ）４２〜４６が設けられている。なお、図３に示すようなファイル構造は、ＩＣカードの国際的な標準規格であるＩＳＯ／ＩＥＣ  ７８１６−４で規定されている。
【００２１】
図３に示す例では、最上階層のマスターファイル（ＭＦ）３１の次の階層には、ＤＦ３２が存在する。たとえば、１つのＤＦは、当該ＩＣカード２が具備する１つのアプリケーションを実現するためのデータが格納される。複数のアプリケーションによって複数の機能を実現しているＣカードは、各アプリケーションに対応する複数のＤＦをデータメモリ２２内に設けるようにして良い。
【００２２】
また、図３に示す例では、ＤＦ３２の配下としてＤＦ３２の次の階層に、第１のＥＦ（ＥＦ＃１）３３、第２のＥＦ（ＥＦ＃２）３４、第３のＥＦ（ＥＦ＃３）３５、および第４のＥＦ（ＥＦ＃４）３６が存在している。上記各ＥＦ３３〜３６は、各種のデータを格納するためのデータファイルである。上記各ＥＦ３３〜３６には、所定のデータ構造のうち何れかのデータ構造でデータが格納される。たとえば、ＥＦ３３〜３６は、識別子（タグ（Tag））、長さ情報（レングス(Length)）、および、データ部（バリュー（Value））が順に連結されるＴＬＶ構造のオブジェクトデータが格納されるファイルであっても良いし、バイナリーデータを記憶するファイルであっても良い。
【００２３】
また、ＤＦ３２、および、各ＥＦ３３〜３６には、それぞれＦＣＩ４２〜４６が付加される。ＦＣＩ４２〜４６は、それぞれ対応するファイル（ＤＦ３２、ＥＦ３３〜３６）に関する制御情報である。たとえば、ＦＣＩ４２〜４６には、対応するファイルにおけるセキュリティ条件などの情報が格納される。なお、ＦＣＩについても、ＩＣカードの標準規格の１つであるＩＳＯ／ＩＥＣ  ７８１６−４で規定されているもので良い。
【００２４】
次に、ＦＣＩ４２〜４６の例について説明する。  
図４は、ＤＦ３２に付加されたＦＣＩ４２の構成例を示す図である。  
図４に示す構成例において、ＦＣＩ４２は、たとえば、ＦＣＰ（Ｆｉｌｅ  Ｃｏｎｔｒｏｌ  Ｐａｒａｍｅｔｅｒ）テンプレート形式でＦＣＩ情報が格納され、「Ｆｉｌｅ  ｄｅｓｃｒｉｐｔｏｒ  ｂｙｔｅ」にて、対応するファイルとしてのＤＦが共有可能（Ｓｈａｒｅａｂｌｅ ｆｉｌｅ）である事を示している。すなわち、図４は、ファイルの共有を許可するＦＣＩの構成例を示すものである。
【００２５】
図５は、ＥＦ３３に付加されたＦＣＩ４３の構成例を示す図である。  
図５に示す構成例においても、ＦＣＩ４３は、ＦＣＰ（Ｆｉｌｅ  Ｃｏｎｔｒｏｌ  Ｐａｒａｍｅｔｅｒ）テンプレート形式でＦＣＩ情報が格納され、「Ｆｉｌｅ  ｄｅｓｃｒｉｐｔｏｒ  ｂｙｔｅ」にて、対応するファイルとしてのＥＦが共有不可（Ｎｏｔ sｈａｒｅａｂｌｅ ｆｉｌｅ）である事を示している。すなわち、図５は、ファイルの共有を不可とするＦＣＩの構成例を示すものである。
【００２６】
次に、各ファイルの使用状況あるいは各論理チャネルにおけるファイルへのアクセス状況を示すテーブルについて説明する。  
まず、ＩＣカード２内の各ファイルに対する使用状況を示す使用状況テーブル２６の構成例について説明する。  
図６は、各ファイル（ＥＦ）の使用状況を示す使用状況テーブル２６の例を示す図である。図６に示すような使用状況テーブル２６は、たとえば、ＲＡＭ（ワーキングメモリ）２３内に設定される。また、使用状況テーブル２６は、ＩＣカード２内において、制御素子２１がアクセス可能な書換え可能なメモリに設ければよく、例えば、データメモリ２２に設けても良い。
【００２７】
使用状況テーブル２６では、各ＥＦについて、使用中であるか、未使用であるかを示す情報を記憶する。また、使用状況テーブル２６は、使用されているＥＦについては、当該ＥＦを使用している論理チャネルを示す情報を記憶する。たとえば、使用状況テーブル２６は、各ＥＦを示すＥＦＩＤ（ファイル識別情報）に対応づけて、各ＥＦの使用状況を示すステータス（Ｓｔａｔｕｓ）の値を記憶する。
【００２８】
図６に示す例では、「Ｓｔａｔｕｓ＝０ｘ００〜０ｘ１３」である場合、当該ＥＦは、使用中であることを示し、さらに、当該ＥＦは、「Ｓｔａｔｕｓ」の値が示すチャネル番号の論理チャネルで使用されていることを示す。また、「Ｓｔａｔｕｓ＝０ｘＦＦ」である場合、当該ＥＦは、未使用であることを示す。なお、「Ｓｔａｔｕｓ＝ｏｔｈｅｒｓ」は、ＲＦＵを示す。
【００２９】
また、使用状況テーブル２６は、各ＥＦのＥＦＩＤを格納し、各ＥＦＩＤに対するステータス（Ｓｔａｔｕｓ）の初期値として、未使用を示す値「０ｘＦＦ」を格納する。この状態の使用状況テーブル２６には、何れかの論理チャネルで使用されたＥＦに対して、使用した論理チャネルを示す情報をステータスとして書き込まれるようにすれば良い。たとえば、図６に示すように、論理チャネル「＃１」でＥＦＩＤが「０ｘ０００１」の第１のＥＦ３３が使用された場合、第１のＥＦ３３のステータス（Ｓｔａｔｕｓ）の値は、論理チャネル「１」で使用中であることを示す「０ｘ０１」に書き換えられる。
【００３０】
次に、各論理チャネルに対する各ファイルへのアクセス状況を示すアクセス情報を格納するアクセス状況テーブルの構成例について説明する。  
図７は、各論理チャネルにおける各ＥＦへのアクセスの成功／不成功を示すアクセス情報を格納するアクセス状況テーブル２７の例を示す図である。  
図７に示すようなアクセス状況テーブル２７は、たとえば、ＲＡＭ（ワーキングメモリ）２３内に設けられる。また、アクセス状況テーブル２７は、ＩＣカード２内において、制御素子２１がアクセス可能な書換え可能なメモリに設ければ良く、例えば、データメモリ２２に設けても良い。
【００３１】
アクセス状況テーブル２７は、各論理チャネルにおいて、アクセスが成功したファイル（ＥＦ）、あるいは、アクセスが失敗したファイル（ＥＦ）を示す情報とステータスとをアクセス情報として記憶する。アクセス状況テーブル２７では、アクセスが失敗したファイルについては、当該ファイルを使用している論理チャネルを示す情報（論理チャネル番号）をステータス（Ｓｔａｔｕｓ）の値として記憶する。
【００３２】
図７に示す例では、「Ｓｔａｔｕｓ＝０ｘ００〜０ｘ１３」である場合、当該論理チャネルでは、ＥＦＩＤで示すＥＦにはアクセスできなかった（アクセス不可であった）ことを示し、さらに、当該ＥＦを使用している論理チャネルを示す情報（論理チャネル番号）を示す。また、「Ｓｔａｔｕｓ＝０ｘＦＦ」である場合、当該論理チャネルにおいては、ＥＦＩＤで示すＥＦにアクセスが成功したことを示す。ただし、「ＥＦＩＤ＝０ｘＦＦＦＦ」かつ「Ｓｔａｔｕｓ＝０ｘＦＦ」である場合、当該論理チャネルは、未使用である（使用中のＥＦが無い）ことを示す。
【００３３】
次に、本実施形態に係るＩＣカード２の動作について説明する。  
ＩＣカード２は、論理チャネルごとに処理を実行する機能を有する。すなわち、ＩＣカード２は、外部装置としてのＩＣカード処理装置からのコマンドを受信し、指定されている論理チャネルでの処理として受信したコマンドで要求される処理を実行する。指定ＥＦへのアクセスを伴う処理を要求するコマンド（例えば、リードコマンド、アップデートコマンドなど）を受信した場合、ＩＣカード２は、コマンドで指定されたＥＦが共有不可でかつ他の論理チャネルで使用中であれば、当該指定ＥＦへのアクセスを不可とし、指定されたＥＦが他の論理チャネルで使用中のためにアクセスを不可とする旨の情報を付加した応答を出力する。
【００３４】
さらに、コマンドで指定されたＥＦが他の論理チャネルで使用中であるためにアクセス不可となった場合（他の論理チャネルで使用中のためにアクセスを不可とする旨を応答した場合）、ＩＣカード２は、それ以降の処理において、同一論理チャネルを介した別のコマンド（例えば、別のＥＦへのアクセスを要求するコマンド）の処理に対するレスポンスメッセージ（以下、単にレスポンスとも称する）に、前述のアクセス不可となったＥＦの使用状況を示す情報（たとえば、アクセス不可となったＥＦが他の論理チャネルで未だ使用中であるか未使用となったかを示す情報）を付加して応答する。
【００３５】
図８は、コマンドに対する応答としてのレスポンスメッセージの構成例を示す図である。  
図８では、本実施形態を適用したＩＣカード２が出力するレスポンスメッセージの例として、リードコマンドに対するレスポンスメッセージのデータ形式の構成例を示している。なお、レスポンスメッセージのデータ形式は、ＩＣカードに用いられる規格によって規定されるもので良い。たとえば、レスポンスメッセージのデータ形式は、ＩＳＯ／ＩＥＣ  ７８１６−３（ＩＳＯ／ＩＥＣ  ７８１６−３  １２．１  Ａｐｐｌｉｃａｔｉｏｎ  ｐｒｏｔｏｃｏｌ  ｄａｔａ  ｕｎｉｔ）とＩＳＯ／ＩＥＣ  ７８１６−４（ＩＳＯ／ＩＥＣ  ７８１６−４  ５．１  Ｃｏｍｍａｎｄ−ｒｅｓｐｏｎｓｅ  ｐａｉｒｓ）とで規定されているＡＰＤＵ（Ａｐｐｌｉｃａｔｉｏｎ  Ｐｒｏｔｏｃｏｌ  Ｄａｔａ  Ｕｎｉｔ）に準拠するもの良い。上述の規格において、レスポンスデータメッセージは、データ部（Ｄａｔａ  ｆｉｌｅｄ）、および、ステータス部（ＳＷ１−ＳＷ２：Ｓｔａｔｕｓ  ｂｙｔｅｓ）で構成される。
【００３６】
図８に示す例において、レスポンスメッセージのデータ形式（レスポンスデータ）は、データ部（Ｒｅｓｐｏｎｓｅ  ｄａｔａ  ｆｉｌｅｄ）とステータス部（Ｒｅｓｐｏｎｓｅ  ｔｒａｉｌｅｒ）とにより構成される。なお、図８は、リードコマンドに対するレスポンスメッセージの構成例を示している。  
レスポンスメッセージのデータ部（Ｒｅｓｐｏｎｓｅ  ｄａｔａ  ｆｉｌｅｄ）は、「Ｄａｔａ１」、「Ｄａｔａ２」および「Ｄａｔａ３」を有する。「Ｄａｔａ１」には、例えば、コマンドの実行結果（例えば、リードコマンドの処理として読み出したデータ）を格納する。「Ｄａｔａ２」には指定されたＥＦの識別子（ＥＦ  ＩＤ）を格納する。「Ｄａｔａ３」には、指定ＥＦのステータス（指定ＥＦを使用している論理チャネル番号、或いは、未使用）を格納する。たとえば、指定されたＥＦが使用中である場合、「Ｄａｔａ３＝０ｘ００〜０ｘ１３」として、当該ＥＦを使用している論理チャネル番号をＤａｔａ３の値に設定する。また、ＥＦが未使用である場合、「Ｄａｔａ３＝０ｘＦＦ」とセットされる。なお、「Ｄａｔａ３＝ｏｔｈｅｒｓ」はＲＦＵである。
【００３７】
また、レスポンスのステータス部（Ｒｅｓｐｏｎｓｅ  ｔｒａｉｌｅｒ）は、ＳＷ１およびＳＷ２として、コマンドの実行結果などを表す情報を格納する。  
たとえば、「ＳＷ１−ＳＷ２＝０ｘ９０００」である場合、コマンドが正常終了したことを示す（コマンドがリードコマンドであれば、読出し正常終了を示す）。  
また、本実施形態においては、「ＳＷ１−ＳＷ２＝０ｘ９００１」である場合、当該コマンドが正常終了（読出し正常終了）で、かつ、当該コマンド以前にアクセス不可となったＥＦとそのＥＦの使用状況を示す情報をデータ部に格納したことを示す。つまり、「ＳＷ１−ＳＷ２＝０ｘ９００１」である場合、コマンドが正常終了で、「Ｒｅｓｐｏｎｓｅ  ｄａｔａ  ｆｉｌｅｄ」の最後の３ｂｙｔｅ（レスポンスメッセージのデータ部）に、当該コマンドの実行以前に実行されたコマンドで既に別の論理チャネルを介して使用されていたためにアクセスできなかったファイルの識別子とそのファイルの現在の状態とを示す情報を格納したことを示す。
【００３８】
また、「ＳＷ１−ＳＷ２＝０ｘ６９ＦＦ」である場合、指定されたＥＦが他の論理チャネルで使用中のためにアクセス不可となってコマンドが異常終了となったことを示す。さらに、レスポンスメッセージのステータス部が「ＳＷ１−ＳＷ２＝０ｘ６９ＦＦ」である場合、当該レスポンスメッセージのデータ部には、アクセス不可となったＥＦとそのＥＦを使用中の論理チャネルを示す情報とをデータ部に格納する。たとえば、リードコマンドのレスポンスのステータス部が「ＳＷ１−ＳＷ２＝０ｘ６９ＦＦ」である場合、当該レスポンスのデータ部には、当該リードコマンドで指定されたＥＦがアクセス不可であった事と当該指定ＥＦを使用している別の論理チャネルを示す情報とを付加する。
【００３９】
図９乃至１１は、リードコマンドに対するレスポンスメッセージの例である。  
図９は、レスポンスメッセージの第１の具体例を示す図である。図９は、リードコマンドで指定されたＥＦ（ＥＦＩＤ：０ｘ０００１）が共有不可で、かつ、別の論理チャネルで使用中の場合のレスポンスメッセージの例を示している。  
図９に示すレスポンスメッセージでは、「Ｄａｔａ２＝０ｘ０００１」であり、「Ｄａｔａ３＝０ｘ０１」がＥＦＩＤ：０ｘ０００１であり、「ＳＷ１−ＳＷ２＝０ｘ６９ＦＦ」である。従って、上述した定義によれば、図９に示すレスポンスメッセージは、コマンドがアクセス対象とするＥＦＩＤが「０ｘ０００１」のＥＦが共有不可で、かつ、別の論理チャネル「＃１」で使用中であるため、コマンドが実行できなかった（指定のＥＦにアクセス不可であった）ことを意味する。なお、図９に示す例では、リードコマンドが実行されなかったため、読出したデータが格納されるべき「Ｄａｔａ１」はデータ無しとなる。
【００４０】
図１０は、レスポンスメッセージの第２の具体例を示す図である。図１０は、リードコマンドで指定されたＥＦＩＤが０ｘ０００１以外のＥＦに対するコマンド処理が成功した場合のレスポンスメッセージの例を示している。さらに、図１０に示すレスポンスメッセージは、コマンドの実行結果を示す情報に、別の論理チャネルで使用中であったＥＦの現在の状況を示す情報が付加されている。図１０に示す例では、別の論理チャネルで使用中であったＥＦが、現在も別の論理チャネルで使用中であることを示す内容となっている。
【００４１】
図１０に示すレスポンスメッセージでは、「Ｄａｔａ１」には指定のＥＦ（ＥＦＩＤが０ｘ０００１以外のＥＦ）から読み出したデータが格納され、「Ｄａｔａ２＝０ｘ０００１」であり、「Ｄａｔａ３＝０ｘ０１」であり、「ＳＷ１−ＳＷ２＝０ｘ６９ＦＦ」である。従って、上述した定義によれば、図１０に示すレスポンスメッセージは、「ＳＷ１−ＳＷ２＝０ｘ９００１」であるため、当該コマンド自体は正常終了であることと、当該コマンド以前にアクセス不可となったＥＦ（ＥＦＩＤ：０ｘ０００１）が論理チャネル＃１で使用中であることとを示している。
【００４２】
図１１は、レスポンスメッセージの第３の具体例を示す図である。図１１は、リードコマンドで指定されたＥＦＩＤが０ｘ０００１以外のＥＦに対するコマンド処理が成功した場合のレスポンスメッセージの例を示している。図１１に示すレスポンスメッセージは、コマンドの実行結果を示す情報に、別の論理チャネルで使用中であったＥＦの現在の状況を示す情報が付加されている。図１１に示す例は、別の論理チャネルで使用中であったＥＦが、現在は未使用となっていることを示す内容となっている。
【００４３】
すなわち、図１１に示す例では、「Ｄａｔａ１」には指定のＥＦ（ＥＦＩＤが０ｘ０００１以外のＥＦ）から読み出したデータが格納されるとともに、「Ｄａｔａ２＝０ｘ０００１」であり、「Ｄａｔａ３＝０ｘＦＦ」であり、「ＳＷ１−ＳＷ２＝０ｘ９００１」である。従って、上述した定義によれば、図１１に示すレスポンスメッセージは、「ＳＷ１−ＳＷ２＝０ｘ９００１」であるため、当該コマンド自体は正常終了であることと、当該コマンド以前にアクセス不可となったＥＦ（ＥＦＩＤ：０ｘ０００１）が未使用となっていることとを示している。
【００４４】
次に、使用状況テーブル２６及びアクセス状況テーブル２７の状態の遷移と各テーブルの状態に応じたレスポンスメッセージの例について説明する。  
図１２は、ＩＣカード処理装置１から順次与えられる複数のコマンドに対する処理内容を説明するためのシーケンス図である。図１２は、論理チャネル＃１でＥＦ＃１を使用した後、別の論理チャネル＃２でＥＦ＃１へのアクセスが成功するまでの事例を示すシーケンス図となっている。また、図１３乃至図１９は、図１２に示す処理の各過程における使用状況テーブル２６の状態、および、アクセス状況テーブル２７の状態の例を示す図である。
【００４５】
なお、図１２に示す処理において、ＤＦ、ＥＦ＃１〜ＥＦ＃４は図３に記載のＤＦ３２、第１〜第４のＥＦ３３〜３６に対応し、ＤＦ３２のＦＣＩ４１は図４に示すように共有可能であり、第１のＥＦ（ＥＦ＃１）のＦＣＩ４３は図５に示すように共有不可であるものとする。
【００４６】
まず、ＩＣカード２では、使用状況テーブル２６およびアクセス状況テーブル２７が初期状態であるものとする。図１３（ａ）は、使用状況テーブル２６が初期状態となっている例を示すものであり、図１３（ｂ）は、アクセス状況テーブル２７が初期状態となっている例を示す。この状態において、ＩＣカード処理装置１がＩＣカード２に対して論理チャネル＃１を使用してＥＦ＃１を指定するリードコマンドを送信するものとする。
【００４７】
ＩＣカード２は、通信部２５により論理チャネル＃１を使用してＥＦ＃１を読み出すことを要求するリードコマンドを受信する（ステップＳ１１）。ＩＣカード２の制御素子２１は、受信したリードコマンドに従って論理チャネル＃１を使用してＥＦ＃１からデータを読み出すことが可能であるか否かを判断する。論理チャネル＃１でＥＦ＃１にアクセス可能である場合、制御素子２１は、ＥＦ＃１からデータを読み出すコマンド処理を実行する（ステップＳ１２）。なお、このコマンド処理は、テーブル２６を更新した後に実行するようにしても良い。
【００４８】
また、制御素子２１は、ＥＦ＃１へアクセスするコマンド処理に伴って、使用状況テーブル２６を更新する。つまり、制御素子２１は、使用状況テーブル２６におけるＥＦ＃１のステータス値を論理チャネル＃１で使用中であることを示す値に更新する（ステップＳ１３）。図１４（ａ）は、使用状況テーブル２６において、ＥＦ＃１（ＥＦＩＤ＝０ｘ０００１）のステータス値が論理チャネル＃１で使用中であることを示す値（０ｘ０１）に更新され、図１４（ｂ）は、アクセス状況テーブル２７が初期状態のままとなっている例を示す。
【００４９】
リードコマンドに対する処理が正常終了すると、制御素子２１は、コマンド処理結果を示すレスポンスを当該コマンドの送信元であるＩＣカード処理装置１へ送信する（ステップＳ１４）。ここで、論理チャネル＃１でのＥＦ＃１からのデータの読出が正常終了したものとすると、制御素子２１は、読み出したデータをデータ部にセットし、かつ、正常終了を示すステータスをステータス部にセットしたレスポンスメッセージをＩＣカード処理装置１へ送信する。
【００５０】
次に、ＩＣカード処理装置１がＩＣカード２に対して論理チャネル＃２を使用してＥＦ＃１を指定したリードコマンドを送信するものとする。このリードコマンドを通信部２５により受信すると（ステップＳ２１）、ＩＣカード２の制御素子２１は、受信したリードコマンドに従って論理チャネル＃２を使用してＥＦ＃１からデータを読み出すことが可能であるか否かを判断する。ここでは、論理チャネル＃１でＥＦ＃１を使用中であるため、制御素子２１は、当該コマンドに対するコマンド処理として、論理チャネル＃２でのＥＦ＃１へのアクセスが不可であるものと判断する（ステップＳ２２）。
【００５１】
この場合、制御素子２１は、アクセス状況テーブル２７における論理チャネル＃２に対するアクセス情報を、ＥＦ＃１が論理チャネル＃１で使用中であることを示す情報に更新する（ステップ２３）。図１５（ａ）は、使用状況テーブル２６が図１４（ａ）に示す状態のままであることを示し、図１５（ｂ）は、アクセス状況テーブル２７において、論理チャネル＃２に対するＥＦＩＤがＥＦ＃１のＥＦＩＤ（０ｘ０００１）に更新され、かつ、ステータスが論理チャネル＃１で使用中であることを示す情報（０ｘ０１）に更新されている状態を示す。
【００５２】
リードコマンドで指定されたＥＦが別の論理チャネルで使用中のためアクセスできなった場合、制御素子２１は、コマンドが異常終了である事を示す情報と指定されたＥＦを使用している論理チャネルを示す情報とを含むレスポンスメッセージをＩＣカード処理装置１へ送信する（ステップＳ２４）。たとえば、制御素子２１は、コマンドが異常終了である事と指定されたＥＦ＃１が論理チャネル＃１が使用中である事とを示す図９に示すようなレスポンスメッセージを作成し、ＩＣカード処理装置１へ送信する。
【００５３】
次に、ＩＣカード処理装置１がＩＣカード２に対して論理チャネル＃２を使用してＥＦ＃２を指定したリードコマンドを送信するものとする。このリードコマンドを通信部２５により受信すると（ステップＳ３１）、ＩＣカード２の制御素子２１は、受信したリードコマンドに従って論理チャネル＃２を使用してＥＦ＃２からデータを読み出すことが可能であるか否かを判断する。ここではＥＦ＃２が未使用であるため、制御素子２１は、論理チャネル＃２でのＥＦ＃２からデータを読み出すコマンド処理を実行する（ステップＳ３２）。このコマンド処理は、テーブル２６を更新した後に実行するようにしても良い。
【００５４】
また、制御素子２１は、ＥＦ＃１へアクセスするコマンド処理に伴って、使用状況テーブル２６を更新する。つまり、制御素子２１は、使用状況テーブル２６におけるＥＦ＃２のステータス値を論理チャネル＃２で使用中であることを示す値に更新する（ステップＳ１３）。図１６（ａ）は、図１５（ａ）に示す使用状況テーブル２６に対して、ＥＦ＃２（ＥＦＩＤ＝０ｘ０００２）のステータス値を論理チャネル＃２で使用中であることを示す値（０ｘ０２）に更新した状態を示す。また、図１６（ｂ）は、アクセス状況テーブル２７が図１５（ｂ）に示す状態のままであることを示している。
【００５５】
リードコマンドに対する処理が正常終了すると、制御素子２１は、アクセス状況テーブル２７を確認し、他の論理チャネルでの使用によりアクセスが不可となったＥＦが存在するか否かを判断する。他の論理チャネル（論理チャネル＃２以外のチャネル）での使用によりアクセスが不可となったＥＦが存在する場合、制御素子２１は、コマンドが正常終了である事を示す情報と、他の論理チャネルでの使用によりアクセスが不可となったＥＦの現在の状況を示す情報とを含むレスポンスメッセージをＩＣカード処理装置１へ送信する（ステップＳ３４）。たとえば、制御素子２１は、図１６（ｂ）に示すアクセス状況テーブルを参照して、以前にアクセスが不可となったＥＦ＃１が現在も論理チャネル＃１で使用中である事を確認する。この場合、制御素子２１は、コマンドが正常終了である事と、以前にアクセス不可となったＥＦ＃１が現在も論理チャネル＃１で使用中である事とを示す図１０に示すようなレスポンスメッセージを作成し、ＩＣカード処理装置１へ送信する。
【００５６】
次に、ＩＣカード処理装置１がＩＣカード２に対して論理チャネル＃１を使用してＥＦ＃４を指定したリードコマンドを送信するものとする。このリードコマンドを通信部２５により受信すると（ステップＳ４１）、ＩＣカード２の制御素子２１は、受信したリードコマンドに従って論理チャネル＃１を使用してＥＦ＃４からデータを読み出すことが可能であるか否かを判断する。ここではＥＦ＃４が未使用であるため、制御素子２１は、論理チャネル＃１でのＥＦ＃４からデータを読み出すコマンド処理を実行する（ステップＳ４２）。このコマンド処理は、テーブル２６を更新した後に実行するようにしても良い。
【００５７】
また、制御素子２１は、ＥＦ＃４へアクセスするのに伴って、使用状況テーブル２６を更新する。つまり、制御素子２１は、使用状況テーブル２６におけるＥＦ＃４のステータス値を論理チャネル＃１で使用中であることを示す値に更新するとともに、論理チャネル＃１で使用中であったＥＦ＃１のステータス値を未使用状態にする（ステップＳ３３）。これは、論理チャネル＃１が使用するＥＦがＥＦ＃４に変更されるのに伴って、ＥＦ＃１が解放させることを意味している。図１７（ａ）は、図１６（ａ）に示す使用状況テーブル２６に対して、ＥＦ＃４（ＥＦＩＤ＝０ｘ０００４）のステータス値を論理チャネル＃１で使用中であることを示す値（０ｘ０１）に更新し、かつ、ＥＦ＃１（ＥＦＩＤ＝０ｘ０００１）のステータス値を未使用（０ｘＦＦ）に更新した状態を示す。また、図１７（ｂ）は、アクセス状況テーブル２７が図１６（ｂ）に示す状態のままであることを示している。
【００５８】
リードコマンドに対する処理が正常終了すると、制御素子２１は、アクセス状況テーブル２７を確認し、他の論理チャネル（論理チャネル＃１以外のチャネル）での使用によりアクセスが不可となったＥＦが存在するか否かを判断する。ここでは、図１７（ｂ）に示すように、他の論理チャネル（論理チャネル＃１以外のチャネル）での使用によりアクセスが不可となっているＥＦが存在しないため、制御素子２１は、コマンドが正常終了である事を示すレスポンスメッセージをＩＣカード処理装置１へ送信する（ステップＳ４４）。
【００５９】
次に、ＩＣカード処理装置１がＩＣカード２に対して論理チャネル＃２を使用してＥＦ＃３を指定したリードコマンドを送信するものとする。このリードコマンドを通信部２５により受信すると（ステップＳ５１）、ＩＣカード２の制御素子２１は、受信したリードコマンドに従って論理チャネル＃２を使用してＥＦ＃３からデータを読み出すことが可能であるか否かを判断する。ここではＥＦ＃３が未使用であるため、制御素子２１は、論理チャネル＃２でＥＦ＃３からデータを読み出すコマンド処理を実行する（ステップＳ５２）。このコマンド処理は、テーブル２７を更新した後に実行するようにしても良い。
【００６０】
また、制御素子２１は、ＥＦ＃３へアクセスするのに伴って、使用状況テーブル２６を更新する。ここでは、制御素子２１は、使用状況テーブル２６におけるＥＦ＃３のステータス値を論理チャネル＃２で使用中であることを示す値に更新するとともに、論理チャネル＃２で使用中であったＥＦ＃２のステータス値を未使用状態（０ｘＦＦ）にする（ステップＳ５３）。これは、論理チャネル＃２が使用するＥＦがＥＦ＃４に変更されるのに伴って、ＥＦ＃２が論理チャネル＃２から解放されることを意味している。図１８（ａ）は、図１７（ａ）に示す使用状況テーブル２６に対して、ＥＦ＃３（ＥＦＩＤ＝０ｘ０００３）のステータス値を論理チャネル＃２で使用中であることを示す値（０ｘ０２）に更新し、かつ、ＥＦ＃２（ＥＦＩＤ＝０ｘ０００２）のステータス値を未使用（０ｘＦＦ）に更新した状態を示す。また、図１８（ｂ）は、アクセス状況テーブル２７が図１７（ｂ）に示す状態のままであることを示している。
【００６１】
リードコマンドに対する処理が正常終了すると、制御素子２１は、アクセス状況テーブル２７を確認し、他の論理チャネル（論理チャネル＃２以外のチャネル）での使用によりアクセスが不可となったＥＦが存在するか否かを判断する。他の論理チャネル（論理チャネル＃２以外のチャネル）での使用によりアクセスが不可となったＥＦが存在する場合、制御素子２１は、コマンドが正常終了である事を示す情報と、他の論理チャネルでの使用によりアクセスが不可となったＥＦの現在の状況を示す情報とを含むレスポンスメッセージをＩＣカード処理装置１へ送信する（ステップＳ５４）。
【００６２】
ここでは、図１８（ｂ）に示すように、論理チャネル＃１での使用によりアクセスが不可となったＥＦとしてＥＦ＃１が存在する。制御素子２１は、図１８（ｂ）に示すアクセス状況テーブルに示される以前にアクセスが不可となったＥＦ＃１について、現在の使用状況を図１８（ａ）に示す使用状況テーブル２６を参照して確認する。図１８（ａ）に示す例では、ＥＦ＃１は現在の状況が未使用となっている。このため、制御素子２１は、コマンドが正常終了である事と、以前にアクセス不可となったＥＦ＃１が現在は未使用（アクセス可の状態）である事とを示す図１１に示すようなレスポンスメッセージを作成し、ＩＣカード処理装置１へ送信する。
【００６３】
次に、ＩＣカード処理装置１がＩＣカード２に対して論理チャネル＃２を使用してＥＦ＃１を指定したリードコマンドを送信するものとする。このリードコマンドを通信部２５により受信すると（ステップＳ６１）、ＩＣカード２の制御素子２１は、受信したリードコマンドに従って論理チャネル＃２を使用してＥＦ＃１からデータを読み出すことが可能であるか否かを判断する。ここではＥＦ＃１が未使用であるため、制御素子２１は、論理チャネル＃２でＥＦ＃１からデータを読み出すコマンド処理を実行する（ステップＳ６２）。このコマンド処理は、テーブル２６、２７を更新した後に実行するようにしても良い。
【００６４】
制御素子２１は、論理チャネル＃２でＥＦ＃１へアクセスするのに伴って、使用状況テーブル２６及びアクセス状況テーブル２７を更新する（ステップＳ６３、Ｓ６４）。すなわち、制御素子２１は、論理チャネル＃２でＥＦ＃１へアクセスするのに伴って、使用状況テーブル２６を更新する（ステップＳ６３）。ここでは、制御素子２１は、使用状況テーブル２６におけるＥＦ＃１のステータス値を論理チャネル＃２で使用中であることを示す値（０ｘ０２）に更新するとともに、論理チャネル＃２で使用中であったＥＦ＃３のステータス値を未使用状態（０ｘＦＦ）にする。これは、論理チャネル＃２が使用するＥＦがＥＦ＃１に変更されるのに伴って、ＥＦ＃３が論理チャネル＃２から解放されることを意味している。図１９（ａ）は、図１８（ａ）に示す使用状況テーブル２６に対して、ＥＦ＃１（ＥＦＩＤ＝０ｘ０００１）のステータス値を論理チャネル＃２で使用中であることを示す値（０ｘ０２）に更新し、かつ、ＥＦ＃３（ＥＦＩＤ＝０ｘ０００３）のステータス値を未使用（０ｘＦＦ）に更新した状態を示す。
【００６５】
また、制御素子２１は、論理チャネル＃２でＥＦ＃１へアクセスするのに伴ってアクセス状況テーブル２７を更新する（ステップＳ６４）。つまり、制御素子２１は、図１８（ｂ）に示すアクセス状況テーブル２７では論理チャネル＃２に対するアクセス情報としてＥＦ＃１が格納されている。このため、論理チャネル＃２でのＥＦ＃１へのアクセスが成功した場合、アクセス状況テーブル２７は、論理チャネル＃２に対するアクセス情報として格納されているＥＦ＃１へのアクセスが成功した事を示す情報に更新する。図１９（ｂ）は、図１８（ａ）に示すアクセス状況テーブル２７において存在していた論理チャネル＃２に対するアクセス情報をＥＦ＃１のＥＦＩＤとアクセス成功を示すステータスとに書き換える。また、アクセス状況テーブル２７において存在していた論理チャネル＃２に対するＥＦ＃１に関する情報は削除するようにしても良い。これにより、アクセス状況テーブル２７には、論理チャネル＃２においてアクセス不可となったままのＥＦが存在しなくなる。
【００６６】
リードコマンドに対する処理が正常終了すると、制御素子２１は、アクセス状況テーブル２７を確認し、他の論理チャネル（論理チャネル＃２以外のチャネル）での使用によりアクセスが不可となったＥＦが存在するか否かを判断する。ここでは、図１９（ｂ）に示すように、他の論理チャネル（論理チャネル＃２以外のチャネル）での使用によりアクセスが不可となっているＥＦが存在しないため、制御素子２１は、コマンドが正常終了である事を示すレスポンスメッセージをＩＣカード処理装置１へ送信する（ステップＳ６５）。
【００６７】
次に、ＩＣカード２がコマンドを受信した場合の処理の流れについて説明する。  
図２０は、ＩＣカード２がコマンドを受信した場合の処理の流れを説明するためのフローチャートである。  
まず、ＩＣカード２がＩＣカード処理装置１からコマンドを受信したものとする。ここでは、コマンドは、指定の論理チャネルを使用して指定するＥＦへのアクセスを要求するコマンドであるものとする。たとえば、リードコマンド、あるいはアップデートコマンドなどが想定される。
【００６８】
通信部２５によりコマンドを受信すると、制御素子２１は、使用状況テーブル２６から受信したコマンドが指定するＥＦ（当該コマンドがアクセス対象とするＥＦ）のステータスを確認する（ステップＳ７１）。なお、当該受信コマンドでは、使用する論理チャネルの論理チャネル番号が指定されているものとする。
【００６９】
受信したコマンドが指定するＥＦ（以下、指定ＥＦとも称する）のステータスが未使用である場合（ステップＳ７２、ＹＥＳ）、制御素子２１は、使用状況テーブル２６において、当該指定ＥＦのステータスを当該コマンドが使用する論理チャネル（以下、指定チャネルとも称する）の論理チャネル番号に更新する（ステップＳ７３）。これにより、当該指定ＥＦは、当該指定チャネルの論理チャネル番号で使用中に設定される。さらに、制御素子２１は、使用状況テーブル２６において、当該指定ＥＦ以外で当該指定チャネルがステータスに設定されているＥＦのステータスを未使用に更新する（ステップＳ７４）。これにより、使用状況テーブル２６において、当該指定チャネルで使用中のＥＦは、当該コマンドの指定ＥＦに更新される。
【００７０】
さらに、制御素子２１は、アクセス状況テーブル２７において、指定チャネルに対するアクセス情報として、ＥＦＩＤを当該指定ＥＦのＥＦＩＤに更新し、ステータスをアクセス成功を示す情報に更新する（ステップＳ７５）。使用状況テーブル２６およびアクセス状況テーブル２７の更新が完了すると、制御素子２１は、当該受信コマンドに対応するコマンド処理を実行する（ステップＳ７６）。たとえば、受信コマンドがリードコマンドであれば、制御素子２１は、指定ＥＦのデータを読み出して、レスポンスメッセージのデータ部における「Ｄａｔａ１」として格納する。なお、レスポンスメッセージは、たとえば、ＲＡＭ２３上で作成される。
【００７１】
コマンド処理が終了すると、制御素子２１は、アクセス状況テーブル２７における指定チャネルのＥＦＩＤとステータスとを確認する（ステップＳ７７）。当該指定チャネルに対するステータスがアクセス成功である場合（ステップＳ７８、ＹＥＳ）、制御素子２１は、当該コマンドのレスポンスメッセージのデータ部に当該指定チャネルでアクセス不可となったＥＦがないことを示すデータをセットする（ステップＳ７９）。たとえば、制御素子２１は、データ部における「Ｄａｔａ２」には該当するファイルなしを示す「０ｘＦＦＦＦ」をセットし、「Ｄａｔａ３」には未使用を示す「０ｘＦＦ」をセットする。
【００７２】
さらに、制御素子２１は、上記のようにデータ部をセットしたレスポンスメッセージのステータス部に正常終了を示すステータスをセットする（ステップＳ８０）。たとえば、制御素子２１は、正常終了を示すステータスとして「０ｘ９０００」をセットする。レスポンスメッセージが完成すると、制御素子２１は、作成したレスポンスメッセージをコマンドの送信元であるＩＣカード処理装置１へ送信する（ステップＳ８１）。
【００７３】
また、アクセス状況テーブル２７の確認結果として当該指定チャネルに対するステータスがアクセス成功でないことを確認した場合（ステップＳ７８、ＮＯ）、制御素子２１は、当該コマンドのレスポンスメッセージのデータ部に当該指定チャネルでアクセス不可となったＥＦを示す情報とアクセス不可となったＥＦの現在の使用状況を示す情報とをセットする（ステップＳ８２）。たとえば、制御素子２１は、レスポンスメッセージのデータ部における「Ｄａｔａ２」にはアクセス状況テーブル２７に記憶されている当該指定チャネルに対応するＥＦＩＤ（アクセス不可となったＥＦのＥＦＩＤ）をセットし、「Ｄａｔａ３」には使用状況テーブル２６に記憶されている当該ＥＦのステータスをセットする。
【００７４】
さらに、制御素子２１は、上記のようにデータ部をセットしたレスポンスメッセージのステータス部にコマンドの正常終了とアクセス不可となったＥＦの情報を付加した事とを示すステータスをセットする（ステップＳ８３）。たとえば、制御素子２１は、正常終了とアクセス不可となったＥＦの情報の付加とを示すステータスとして「０ｘ９００１」をセットする。このようなレスポンスメッセージが完成すると、制御素子２１は、作成したレスポンスメッセージをコマンドの送信元であるＩＣカード処理装置１へ送信する（ステップＳ８１）。
【００７５】
また、受信したコマンドの指定ＥＦのステータスが未使用でない場合（ステップＳ７２、ＮＯ）、制御素子２１は、指定ＥＦのステータスが当該コマンドで使用される論理チャネル（指定チャネル）の論理チャネル番号であるか否かを判断する（ステップＳ８４）。指定ＥＦのスタータスが指定チャネルの論理チャネル番号である場合、つまり、指定ＥＦを使用中の論理チャネルが指定チャネルと一致する場合（ステップＳ８４、ＹＥＳ）、制御素子２１は、ステップＳ７６へ進み、コマンド処理を実行する。
【００７６】
また、指定ＥＦのスタータスが指定チャネルの論理チャネル番号でない場合、つまり、指定ＥＦを使用中の論理チャネルが当該コマンドの指定チャネルと一致しない場合（ステップＳ８４、ＮＯ）、制御素子２１は、アクセス状況テーブル２７における当該指定チャネルのステータスを確認する（ステップＳ８５）。当該指定チャネルに対するステータスがアクセス成功である場合（ステップＳ８６、ＹＥＳ）、制御素子２１は、アクセス状況テーブル２７において、指定チャネルに対するアクセス情報におけるＥＦＩＤを当該指定ＥＦのＥＦＩＤに更新し、ステータスを当該指定ＥＦを使用中の論理チャネルを示す情報（論理チャネル番号）に更新する（ステップＳ８７）。
【００７７】
アクセス状況テーブルを更新した場合、あるいは、当該指定チャネルに対するステータスが既にアクセス成功でない場合（ステップＳ８６、ＮＯ）、制御素子２１は、当該コマンドのレスポンスメッセージのデータ部にアクセス不可となったＥＦ（指定ＥＦ）を示す情報とアクセス不可となったＥＦの現在の使用状況（使用中の論理チャネル）を示す情報とをセットする（ステップＳ８８）。たとえば、制御素子２１は、レスポンスメッセージのデータ部における「Ｄａｔａ２」にはアクセス不可となったＥＦのＥＦＩＤをセットし、「Ｄａｔａ３」には使用状況テーブル２６に記憶されている当該ＥＦのステータス（使用中の論理チャネル番号）をセットする。
【００７８】
さらに、制御素子２１は、上記のようにデータ部をセットしたレスポンスメッセージのステータス部にコマンドの異常終了とアクセス不可となったＥＦの情報を付加した事とを示すステータスをセットする（ステップＳ８９）。たとえば、制御素子２１は、正常終了とアクセス不可となったＥＦの情報の付加とを示すステータスとして「０ｘ６９ＦＦ」をセットする。このようなレスポンスメッセージが完成すると、制御素子２１は、作成したレスポンスメッセージをコマンドの送信元であるＩＣカード処理装置１へ送信する（ステップＳ８１）。
【００７９】
上述したように、本実施形態では、外部から指示された命令を解釈して実行し、その結果を応答するＩＣカードが、外部装置との物理的な通信インターフェースによる通信制御を論理的な複数の通信チャネルを介して実行できる機能を装備する。ＩＣカードは、１つの論理チャネルを介したファイルアクセスに対する応答において当該ファイルが別論理チャネルで使用中であることをコマンドに対するレスポンスメッセージのステータスバイトで示す。さらに、ＩＣカードは、ファイルが別論理チャネルで使用中である事をレスポンスメッセージのステータスバイトで示された以降、前述のファイルに同一論理チャネルを介してアクセスするまで、同一論理チャネルを介したコマンド実行のレスポンスメッセージに前述のファイルの使用状態を付加する。
【００８０】
また、レスポンスメッセージには、複数ファイルの使用状態をレスポンスに付加できるようにしても良い。  
さらには、ファイル単位だけではなく、ファイル内に格納されるデータ単位である、データオブジェクト単位、あるいは、レコード単位で、論理チャネルの使用状況を管理するようにしても良い。この場合、データオブジェクト単位、あるいは、レコード単位で、論理チャネルの使用状況をレスポンスメッセージに付加するようにしても良い。
【００８１】
上記実施形態によれば、ファイルアクセスを伴うコマンドに対する応答において、ファイルが別論理チャネルで使用中である通知することができ、ある論理チャネルを使ったあるコマンドでアクセス対象のファイルが既に別の論理チャネルで使用中であるためにアクセス不可となった場合には、アクセス不可となった論理チャネルを介して実行される以降のコマンドに対するレスポンスメッセージにアクセス不可となったファイルの使用状態を付加できる。この結果として、別の論理チャネルで使用中のためにアクセス不可となったファイルの使用状況を随時認識することができ、当該ファイルへのアクセスのためにリトライを繰り返す必要がなく、効率よくコマンド処理を実行できる。
【００８２】
すなわち、上記実施形態によれば、別の論理チャネルで使用中のためにアクセス不可となったファイルの使用状態をその後の各コマンドのレスポンスメッセージに付加できるため、ファイルのアクセスに失敗した場合であっても成功するまでリトライを繰り返す必要がなく、全体の処理時間が向上できる。
【００８３】
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【符号の説明】
【００８４】
１…ＩＣカード処理装置（外部装置）、２…ＩＣカード（携帯可能電子装置）、１１…制御部、１２…ディスプレイ、１３…キーボード、１４…カードリーダライタ、１５…認証情報入力部、Ｂ…本体、Ｍ…ＩＣモジュール、２１…制御素子、２２…データメモリ（ＥＥＰＲＯＭ）、２３…ワーキングメモリ（ＲＡＭ）、２４…プログラムメモリ（ＲＯＭ）、２５…通信部。
【図１】
0005971687.tif 000002
【図２】
0005971687.tif 000003
【図３】
0005971687.tif 000004
【図４】
0005971687.tif 000005
【図５】
0005971687.tif 000006
【図６】
0005971687.tif 000007
【図７】
0005971687.tif 000008
【図８】
0005971687.tif 000009
【図９】
0005971687.tif 000010
【図１０】
0005971687.tif 000011
【図１１】
0005971687.tif 000012
【図１２】
0005971687.tif 000013
【図１３】
0005971687.tif 000014
【図１４】
0005971687.tif 000015
【図１５】
0005971687.tif 000016
【図１６】
0005971687.tif 000017
【図１７】
0005971687.tif 000018
【図１８】
0005971687.tif 000019
【図１９】
0005971687.tif 000020
【図２０】
0005971687.tif 000021