(57)【要約】 【課題】  効率的に非接触通信を行うことができる携帯可能電子装置、非接触ＩＣカード、および携帯可能電子装置のコマンド処理方法を提供する。【解決手段】  携帯可能電子装置は、通信手段と、第１のコマンド処理手段と、判断手段と、第２のコマンド処理手段と、応答処理手段とを有する。通信手段は、外部装置と非接触でデータ通信を行う。第１のコマンド処理手段は、外部装置から受信した第１のコマンドに応じた処理を実行する。判断手段は、外部装置から受信した第１のコマンドのデータ部に第２のコマンドが含まれるか否かを判断する。第２のコマンド処理手段は、判断手段により第１のコマンドのデータ部に第２のコマンドが含まれると判断した場合、第２のコマンドに応じた処理を実行する。応答処理手段は、第１のコマンド処理手段により実行した第１のコマンドの処理結果を示すレスポンスのデータ部に第２のコマンド処理手段で実行した第２のコマンドの処理結果をセットして外部装置へ送信する。【選択図】図１
2012064048.tif 000002
【特許請求の範囲】
【請求項１】
携帯可能電子装置において、
外部装置と非接触でデータ通信を行う通信手段と、
前記通信手段により前記外部装置から受信した第１のコマンドに応じた処理を実行する第１のコマンド処理手段と、
前記通信手段により前記外部装置から受信した前記第１のコマンドのデータ部に第２のコマンドが含まれるか否かを判断する判断手段と、
前記判断手段により前記第１のコマンドのデータ部に第２のコマンドが含まれると判断した場合、前記第２のコマンドに応じた処理を実行する第２のコマンド処理手段と、
前記第１のコマンド処理手段により実行した第１のコマンドの処理結果を示すレスポンスのデータ部に前記第２のコマンド処理手段で実行した第２のコマンドの処理結果をセットして前記外部装置へ送信する応答処理手段と、
を有することを特徴とする携帯可能電子装置。
【請求項２】
前記第１のコマンドは、当該携帯可能電子装置を通信先に指定した衝突回避処理のためのコマンドであり、
前記第２のコマンドは、前記第１のコマンドのデータ部に添付される、
ことを特徴とする前記請求項１に記載の携帯可能電子装置。
【請求項３】
前記第１のコマンドは、通信のパラメータを設定するためのコマンドであり、
前記第２のコマンドは、前記第１のコマンドのデータ部に添付される、
ことを特徴とする前記請求項１又は２の何れかに記載の携帯可能電子装置。
【請求項４】
ＩＣカードであって、
外部装置と非接触でデータ通信を行う通信手段と、前記通信手段により前記外部装置から受信した第１のコマンドに応じた処理を実行する第１のコマンド処理手段と、前記通信手段により前記外部装置から受信した前記第１のコマンドのデータ部に第２のコマンドが含まれるか否かを判断する判断手段と、前記判断手段により前記第１のコマンドのデータ部に第２のコマンドが含まれると判断した場合、前記第２のコマンドに応じた処理を実行する第２のコマンド処理手段と、前記第１のコマンド処理手段により実行した第１のコマンドの処理結果を示すレスポンスのデータ部に前記第２のコマンド処理手段で実行した第２のコマンドの処理結果をセットして前記外部装置へ送信する応答処理手段とを有するモジュールと、
前記モジュールを具備する本体と、
を有することを特徴とするＩＣカード。
【請求項５】
外部装置と非接触でデータ通信を行う携帯可能電子装置のコマンド処理方法であって、
前記外部装置から受信した第１のコマンドに応じた処理を実行し、
前記外部装置から受信した前記第１のコマンドのデータ部に第２のコマンドが含まれるか否かを判断し、
前記判断により前記第１のコマンドのデータ部に第２のコマンドが含まれると判断した場合、前記第２のコマンドに応じた処理を実行し、
前記第１のコマンドに対する処理結果を示すレスポンスのデータ部に、前記第２のコマンドに対する処理結果をセットして前記外部装置へ送信する、
ことを特徴とする携帯可能電子装置のコマンド処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は、携帯可能電子装置、非接触ＩＣカード、および携帯可能電子装置のコマンド処理方法に関する。
【背景技術】
【０００２】
非接触ＩＣカードは、データの書き込み或は書き換えが可能な不揮発性メモリおよび制御素子などを有し、非接触通信によって外部装置との通信を行う。非接触ＩＣカードは、外部から与えられるコマンドに応じて処理を実行する。非接触ＩＣカードが実行可能な処理は、たとえば、ＩＳＯ／ＩＥＣ１４４４３で規定される。ＩＳＯ／ＩＥＣ１４４４３では、外部装置が通信可能な複数の非接触ＩＣカードの中から選択する１つの非接触ＩＣカードと通信するための初期化及び衝突回避（アンチコリジョン）処理と、それに引き続き行われるブロック伝送プロトコル（Ｔ＝ＣＬ）によるコマンド処理とが規定されている。
【先行技術文献】
【非特許文献】
【０００３】
【非特許文献１】ＩＳＯ／ＩＥＣ１４４４３
【発明の概要】
【発明が解決しようとする課題】
【０００４】
効率的に非接触通信を行うことができる携帯可能電子装置、非接触ＩＣカード、および携帯可能電子装置のコマンド処理方法を提供することを目的とする。
【課題を解決するための手段】
【０００５】
実施形態によれば、携帯可能電子装置は、通信手段と、第１のコマンド処理手段と、判断手段と、第２のコマンド処理手段と、応答処理手段とを有する。通信手段は、外部装置と非接触でデータ通信を行う。第１のコマンド処理手段は、前記通信手段により前記外部装置から受信した第１のコマンドに応じた処理を実行する。判断手段は、前記通信手段により前記外部装置から受信した前記第１のコマンドのデータ部に第２のコマンドが含まれるか否かを判断する。第２のコマンド処理手段は、前記判断手段により前記第１のコマンドのデータ部に第２のコマンドが含まれると判断した場合、前記第２のコマンドに応じた処理を実行する。応答処理手段は、前記第１のコマンド処理手段により実行した第１のコマンドの処理結果を示すレスポンスのデータ部に前記第２のコマンド処理手段で実行した第２のコマンドの処理結果をセットして前記外部装置へ送信する。
【図面の簡単な説明】
【０００６】
【図１】図１は、ＩＣカード（携帯可能電子装置）およびＩＣカード処理装置の構成例を概略的に示すブロック図である。
【図２】図２は、ＩＣカードのハードウエア構成例を概略的に示すブロック図である。
【図３】図３は、ＡＴＴＲＩＢコマンドの構成例を示す。
【図４】図４は、コマンドのデータ部に格納されるコマンドの例を示す。
【図５】図５は、ＡＴＴＲＩＢコマンドに対するレスポンスの構成例を示す。
【図６】図６は、ＡＴＴＲＩＢコマンドに対する処理例を説明するためのフローチャートである。
【図７】図７（Ａ）、（Ｂ）、（Ｃ）は、ＡＴＴＲＩＢコマンドに対するレスポンスにおけるＨｉｇｈｅｒ  Ｌａｙｅｒ  Ｒｅｓｐｏｎｓｅの例を示す。
【図８】図８は、非接触ＩＣカードのデータメモリに３つのアプリケーションが格納されている状態を示す。
【図９】図９は、ＳＥＬＥＣＴコマンドの例を示す。
【図１０】図１０は、ＳＥＬＥＣＴコマンドに対するレスポンスの構成を示す。
【図１１】図１１は、ＳＥＬＥＣＴコマンドに対する処理例を説明するためのフローチャートである。
【図１２】図１２は、ＲＡＴＳコマンドの例を示す。
【図１３】図１３は、ＲＡＴＳコマンドに対するレスポンスの構成を示す。
【図１４】図１４は、ＲＡＴＳコマンドに対する処理例を説明するためのフローチャートである。
【発明を実施するための形態】
【０００７】
以下、実施の形態について、図面を参照して説明する。  
図１は、本実施の形態に係るＩＣカード（携帯可能電子装置）２、および、ＩＣカード２との通信機能を有する外部装置としてのＩＣカード処理装置１の構成例を概略的に示すブロック図である。  
まず、上記ＩＣカード処理装置１の構成について説明する。  
上記ＩＣカード処理装置１は、図１に示すように、端末装置１１、カードリーダライタ１２、キーボード１３、ディスプレイ１４、および、プリンタ１５などを有している。
【０００８】
上記端末装置１１は、ＩＣカード処理装置１全体の動作を制御するものである。上記端末装置１１は、ＣＰＵ、種々のメモリ及び各種インターフェースなどにより構成される。たとえば、上記端末装置１１は、パーソナルコンピュータ（ＰＣ）により構成される。  
上記端末装置１１は、上記カードリーダライタ１２によりＩＣカード２へコマンドを送信する機能、ＩＣカード２から受信したデータを基に種々の処理を行う機能などを有している。たとえば、上記端末装置１１は、カードリーダライタ１２を介してＩＣカード２にデータの書き込みコマンドを送信することによりＩＣカード２内の不揮発性メモリにデータを書き込む制御を行う。また、上記端末装置１１は、ＩＣカード２に読み取りコマンドを送信することによりＩＣカード２からデータを読み出す制御を行う。
【０００９】
上記カードリーダライタ１２は、上記ＩＣカード２との通信を行うためのインターフェース装置である。上記カードリーダライタ１２は、上記ＩＣカード２の通信方式に応じたインターフェースにより構成される。上記ＩＣカード２が非接触型のＩＣカードである場合、上記カードリーダライタ１２は、ＩＣカード２との無線通信を行うためのアンテナおよび通信制御などにより構成される。上記カードリーダライタ１２では、上記ＩＣカード２に対する電源供給、クロック供給、リセット制御、データの送受信が行われるようになっている。このような機能によってカードリーダライタ１２は、上記端末装置１１による制御に基づいて上記ＩＣカード２の活性化（起動）、種々のコマンドの送信、及び送信したコマンドに対する応答の受信などを行なう。
【００１０】
上記キーボード１３は、当該ＩＣカード処理装置１の操作員が操作する操作部として機能し、操作員により種々の操作指示やデータなどが入力される。上記ディスプレイ１４は、上記端末装置１１の制御により種々の情報を表示する表示装置である。上記プリンタ１５は、処理結果などの各種データを印刷出力するためのものである。
【００１１】
次に、上記ＩＣカード２のハードウエア構成例について説明する。  
上記ＩＣカード２は、上記ＩＣカード処理装置１などの上位機器から電力などの供給を受けた際、活性化される（動作可能な状態になる）ようになっている。上記ＩＣカード２は、非接触型の通信方式によりＩＣカード処理装置１と接続する非接触ＩＣカードである。つまり、非接触ＩＣカードとしてのＩＣカード２は、通信インターフェースとしてのアンテナ及び変復調回路などを介してＩＣカード処理装置１からの電波を受信し、その電波から図示しない電源部により動作電源及び動作クロックを生成して活性化する。
【００１２】
図２は、本実施の形態に係るＩＣカード２のハードウエア構成例を概略的に示すブロック図である。  
上記ＩＣカード２は、本体Ｂを構成する筐体内にモジュールＭが内蔵されている。上記モジュールＭは、１つまたは複数のＩＣチップＣと通信用の外部インターフェース（通信インターフェース）とが接続された状態で一体的に形成され、ＩＣカード２の本体Ｂ内に埋設されている。また、上記ＩＣカード２のモジュールＭは、図２に示すように、制御素子２１、データメモリ２２、ワーキングメモリ２３、プログラムメモリ２４、および、通信部２５などを有してしている。
【００１３】
上記制御素子２１は、当該ＩＣカード２全体の制御を司るものである。上記制御素子２１は、上記プログラムメモリ２４あるいは上記データメモリ２２に記憶されている制御プログラムおよび制御データに基づいて動作することにより、種々の機能を実現する。たとえば、上記制御素子２１は、オペレーティングシステムのプログラムを実行することにより、当該ＩＣカード２の基本的な動作制御を行う。また、上記制御素子２１は、当該ＩＣカード２の利用目的に応じたアプリケーションプログラムを実行することにより、当該ＩＣカード２の運用形態に応じた種々の動作制御を行う。
【００１４】
上記データメモリ２２は、例えば、ＥＥＰＲＯＭ（Ｅｌｅｃｔｒｉｃａｌｌｙ  Ｅｒａｓａｂｌｅ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｒｅａｄ−Ｏｎｌｙ  Ｍｅｍｏｒｙ）あるいはフラッシュＲＯＭなどのデータの書き込み及び書換えが可能な不揮発性のメモリにより構成される。上記データメモリ２２には、当該ＩＣカード２の運用用途に応じた制御プログラム（アプリケーションプログラム）あるいは種々のデータが書込まれる。上記データメモリ２２には、当該ＩＣカード２の規格に応じた種々のファイルが定義され、それらのファイルに種々のデータが書き込まれる。
【００１５】
上記ワーキングメモリ２３は、ＲＡＭなどの揮発性のメモリである。また、上記ワーキングメモリ２３は、制御素子２１が処理中のデータなどを一時保管するバッファとして機能する。  
上記プログラムメモリ２４は、予め制御用のプログラムや制御データなどが記憶される。プログラムメモリ２４は、たとえば、マスクＲＯＭなどの不揮発性のメモリである。上記プログラムメモリ２４には、当該ＩＣカードの製造段階で制御プログラムあるいは制御データなどが記憶された状態でＩＣカード２内に組み込まれる。つまり、上記プログラムメモリ２４に記憶されている制御プログラムあるいは制御データは、当該ＩＣカードの基本的な動作を司るものであり、予め当該ＩＣカード２の仕様に応じて組み込まれるものである。
【００１６】
上記通信部２５は、上記ＩＣカード処理装置１のカードリーダライタ１２との通信を行うためのインターフェースである。通信部２５は、上記ＩＣカード処理装置１のカードリーダライタ１２との無線通信を行うための変復調回路などの通信制御部および電波を送受信するためのアンテナなどにより構成される。
【００１７】
次に、ＩＣカード処理装置１とＩＣカード２との通信処理について説明する。  
ＩＣカード処理装置１とＩＣカード２とは、非接触通信により通信を行う。ＩＣカード処理装置１は、複数のＩＣカード２と非接触通信が可能な状態となりえる。ＩＣカード処理装置と特定の非接触ＩＣカードとが確実に通信を行うためには、初期化・衝突回避（アンチコリジョン）処理が必要となる。たとえば、ＩＳＯ１４４４３  Ｔｙｐｅ  Ｂでは、ＩＣカード処理装置１と１つの非接触ＩＣカード２とが通信を確立するための初期化・衝突回避（アンチコリジョン）処理に用いられるコマンドとして、ＡＴＴＲＩＢコマンドが規定されている。
【００１８】
図３は、ＡＴＴＲＩＢコマンドの構成例を示す。ＡＴＴＲＩＢコマンドは、初期化及び衝突回避（アンチコリジョン）処理に用いられるコマンドの一例である。図３に示す例において、ＡＴＴＲＩＢコマンドは、コマンド識別部３０１、カード識別部３０２、パラメータ部３０３、データ部３０４、およびチェックコード部３０５を有する。
【００１９】
コマンド識別部３０１は、当該コマンドがＡＴＴＲＩＢコマンドであることを示す識別情報が格納される。図３では、コマンド識別部３０１には、当該コマンドがＡＴＴＲＩＢコマンドであることを示すコマンド識別子（「１Ｄ」）が格納されている。図３に示すように、ＩＳＯ１４４４３  Ｔｙｐｅ  Ｂでは、ＡＴＴＲＩＢコマンドのコマンド識別子が「１Ｄ」に規定されている。カード識別部３０２は、当該コマンドの送信先を特定するための識別情報が格納される。図３に示す例において、カード識別部３０２には、非接触通信の通信相手を１つの非接触ＩＣカード２に特定するための当該非接触ＩＣカード２の識別情報（Ｉｄｅｎｔｉｆｉｅｒ）が格納される。パラメータ部３０３は、非接触通信におけるパラメータを格納する領域である。図３に示す例では、パラメータ部３０３には４つのパラメータが格納できる。
【００２０】
データ部３０４は、データを格納できる領域である。ＡＴＴＲＩＢコマンドのデータ部３０４は、Ｈｉｇｈｅｒ  Ｌａｙｅｒ  ＩＮＦ（ＩＮＦｏｒｍａｔｉｏｎ）と称する。一般に、ＩＣカード処理装置１と非接触ＩＣカード２とが通信を確立するだけの処理では、データ部３０４としてのＨｉｇｈｅｒ  Ｌａｙｅｒ  ＩＮＦは、未使用（空き状態）となっていることが多い。本実施の形態では、データ部３０４には、非接触ＩＣカード２が実行可能なコマンドを格納する。データ部３０４には、１又は複数のコマンドが格納できる。データ部３０４に格納される各コマンドは、コマンドＡＰＤＵ（ａｐｐｌｉｃａｔｉｏｎ  ｐｒｏｔｏｃｏｌ  ｄａｔａ  ｕｎｉｔ）である。また、チェックコード部３０５は、コマンド（ＡＴＴＲＩＢコマンド）全体のデータをチェックするためのコード情報が格納される。
【００２１】
また、データ部３０４には、所定のフォーマットのデータが格納できる。すなわち、データ部３０４には、所定のフォーマットで１又は複数のコマンドを格納できる。たとえば、データ部３０４には、各コマンドがＴＬＶ構造のデータ（以下、ＴＬＶデータとも称する）として格納する。ＴＬＶ構造のデータとは、Ｔａｇのデータ、Ｌｅｎｇｔｈのデータ、およびＶａｌｕｅのデータが順に並べられたデータ列である。Ｔａｇは、当該データ列の識別情報を示す。Ｌｅｎｇｔｈは、直後に続くＶａｌｕｅのデータの長さを示す。Ｖａｌｕｅのデータは、実際のデータ値である。
【００２２】
図４は、コマンドのデータ部３０４にデータとして格納されるコマンドの例を示す。  
図４に示すように、各コマンドＡＰＤＵは、ＴＬＶデータにおけるＶａｌｕｅとしてデータ部３０４に格納される。コマンド（第１のコマンド）のデータ部３０４に複数のコマンド（第２のコマンド）を格納する場合、データ部３０４には、各コマンドＡＰＤＵをＶａｌｕｅとする複数のＴＬＶデータが連結して格納される。また、コマンドＡＰＤＵをＶａｌｕｅとするＴＬＶデータは、Ｔａｇの値がコマンドであることを示す値（情報）に設定される。
【００２３】
各コマンドＡＰＤＵは、図４に示すように、ＣＬＡ部４０１、ＩＮＳ部４０２、Ｐ１部４０３、Ｐ２部４０４、Ｌｃ部４０５、Ｄａｔａ部４０６、Ｌｅ部４０７を有する。ＣＬＡ部４０１およびＩＮＳ部４０２には、コマンドの内容を示す情報が格納される。Ｐ１部４０３およびＰ２部４０４には、当該コマンドにおけるパラメータが格納される。Ｌｃ部４０５には、データの長さを示す情報が格納される。Ｄａｔａ部４０６には、当該コマンドの処理に用いられるデータが格納される。
【００２４】
図５は、図３に示すＡＴＴＲＩＢコマンドに対するレスポンスの構成例を示す。  
図５に示す構成例において、ＡＴＴＲＩＢコマンドに対するレスポンスは、識別部５０１、データ部５０２、チェックコード部５０３を有する。識別部５０１には、ＭＢＬＩおよびＣＩＤなどの当該レスポンスの識別情報が格納される。データ部５０２は、データを格納できる領域である。ＡＴＴＲＩＢコマンドに対するレスポンスのデータ部５０２はＨｉｇｈｅｒ  Ｌａｙｅｒ  Ｒｅｓｐｏｎｓｅと称する。
【００２５】
本実施の形態において、データ部５０２には、ＡＴＴＲＩＢコマンドのデータ部３０４に格納されていた各コマンドに対する処理結果を示すレスポンスデータが格納される。データ部５０２には、各コマンドに対するレスポンスデータが所定のデータフォーマット（例えば、１又は複数のＴＬＶ構造）で格納される。チェックコード部５０３は、当該レスポンス全体のデータをチェックするためのコード情報が格納される。
【００２６】
次に、非接触ＩＣカード２におけるＡＴＴＲＩＢコマンドに対する処理について説明する。  
図６は、非接触ＩＣカード２におけるＡＴＴＲＩＢコマンドに対する処理例を説明するためのフローチャートである。  
ＩＣカード処理装置１との通信圏内に入ると、非接触ＩＣカード２は、ＩＣカード処理装置１からの電波を通信部２５のアンテナにより受信する（ステップＳ６０１）。非接触ＩＣカード２は、受信した電波から生成した電源電力により起動する（ステップＳ６０２）。電源電力が供給された非接触ＩＣカード２の制御素子２１は、当該非接触ＩＣカード２を識別（特定）するためのカード識別情報をＩＣカード処理装置１へ送信する（ステップＳ６０３）。カード識別情報は、データメモリ２２或はプログラムメモリ２４に予め記憶した固定値であっても良いし、動的（例えばランダム）に生成する値であっても良い。
【００２７】
カード識別情報を送信した後、非接触ＩＣカード２は、ＩＣカード処理装置１からのコマンド待ちの状態となる。ＩＣカード処理装置１は、カード識別情報を取得した非接触ＩＣカード（通信可能な非接触ＩＣカード）から通信先とする１つの非接触ＩＣカードを決定する。ＩＣカード処理装置１は、コマンドにおいて通信先とする非接触ＩＣカードのカード識別情報を指定する。
【００２８】
ＩＣカード処理装置１は、初期化及びアンチコリジョン処理を行うため、通信先の非接触ＩＣカードのカード識別情報を指定したＡＴＴＲＩＢコマンドを送信する。ＩＣカード処理装置１は、ＡＴＴＲＩＢコマンドのデータ部（Ｈｉｇｈｅｒ  Ｌａｙｅｒ  ＩＮＦ）に１又は複数のコマンドＡＰＤＵを格納できる。たとえば、ＩＣカード処理装置１は、ＡＴＴＲＩＢコマンドの次に必要となるコマンドをＨｉｇｈｅｒ  Ｌａｙｅｒ  ＩＮＦに格納する。ＡＴＴＲＩＢコマンドの次に必要となるコマンドとしては、たとえば、非接触通信をサポートしているアプリケーションリストの出力を要求するコマンドなどがありうる。
【００２９】
ＩＣカード処理装置１との通信を行う非接触ＩＣカード２は、カード識別情報を送信した後、ＩＣカード処理装置１からＡＴＴＲＩＢコマンドを受信する（ステップＳ６０４）。ＡＴＴＲＩＢコマンドを受信すると、非接触ＩＣカード２の制御素子２１は、ＡＴＴＲＩＢコマンドのカード識別部３０２に格納されている識別情報と当該非接触ＩＣカード２のカード識別情報とが一致するか否かを判断する（ステップＳ６０５）。カード識別情報が一致しないと判断した場合（ステップＳ６０５、ＮＯ）、制御素子２１は、コマンド受信待ちの状態となる。
【００３０】
カード識別情報が一致すると判断した場合（ステップＳ６０５、ＹＥＳ）、制御素子２１は、受信したＡＴＴＲＩＢコマンドのパラメータ部３０３に格納されているパラメータが妥当な値であるか否かを判断する（ステップＳ６０６）。受信したＡＴＴＲＩＢコマンドのパラメータが妥当な値でないと判断された場合（ステップＳ６０６、ＮＯ）、制御素子２１は、パラメータの値がエラーである旨のレスポンスを送信し（ステップＳ６０７）、コマンド受信待ちの状態となる。
【００３１】
また、受信したＡＴＴＲＩＢコマンドのパラメータが妥当な値であると判断した場合（ステップＳ６０６、ＹＥＳ）、制御素子２１は、受信したＡＴＴＲＩＢコマンドのデータ部３０４にデータがあるか否かを判断する（ステップＳ６０９）。受信したＡＴＴＲＩＢコマンドにデータ（Ｈｉｇｈｅｒ  Ｌａｙｅｒ  ＩＮＦ）がないと判断した場合（ステップＳ６０９、ＮＯ）、制御素子２１は、当該ＡＴＴＲＩＢコマンドの処理結果として正常終了した旨のレスポンスデータをＩＣカード処理装置１へ送信し（ステップＳ６１５）、コマンド受信待ちの状態となる。
【００３２】
受信したＡＴＴＲＩＢコマンドのデータ部３０４にデータが存在すると判断した場合（ステップＳ６０９、ＹＥＳ）、制御素子２１は、ＡＴＴＲＩＢコマンドのデータ部３０４に存在する各データ（たとえば、ＴＬＶ構造のデータ列単位の各データ）を順次取得（抽出）する（ステップＳ６１０）。１つのデータを取得すると、制御素子２１は、当該データがコマンド（第２のコマンド）であるか否かを判定する（ステップＳ６１１）。たとえば、制御素子２１は、データ部３０４に含まれる各データがコマンドであるか否かを当該データの識別情報により判定する。データ部３０４に格納するデータがＴＬＶデータである場合、各ＴＬＶデータがコマンドであるか否かは、各ＴＬＶデータのＴａｇで示すようにしても良い。この場合、制御素子２１は、各データのＴａｇの値により、各データがコマンドであるか否かを判定できる。
【００３３】
ＡＴＴＲＩＢコマンドのデータ部３０４から抽出したデータがコマンドでないと判定した場合（ステップＳ６１１、ＮＯ）、制御素子２１は、データ部３０４に次のデータがあれるか否かを判断する（ステップＳ６１３）。データ部３０４に次のデータがあれば（ステップＳ６１３、ＹＥＳ）、制御素子２１は、上記ステップＳ６１０へ戻り、データ部３０４に存在する次のデータについて、上記ステップＳ６１０〜Ｓ６１３の処理を行う。
【００３４】
また、ＡＴＴＲＩＢコマンドのデータ部３０４から抽出したデータがコマンドであると判断した場合（ステップＳ６１１、ＹＥＳ）、制御素子２１は、当該コマンド（第２のコマンド）に応じたコマンド処理を実行する（ステップＳ６１２）。たとえば、データ部３０４には、当該非接触ＩＣカードがサポートしているアプリケーションリストの出力を要求するコマンドが格納できる。このようなコマンドがデータ部３０４に添付されている場合、制御素子２１は、当該ＡＴＴＲＩＢコマンドの処理とともに、アプリケーションリストの選出処理も実行する。
【００３５】
また、非接触ＩＣカード２は、データ部３０４に含まれるコマンド（第２のコマンド）に応じたコマンド処理の結果をＡＴＴＲＩＢコマンドのレスポンスとしてＩＣカード処理装置１へ出力する。このため、制御素子２１は、第２のコマンドに応じたコマンド処理の結果を示す情報をワーキングメモリ２３などのメモリに保存する。
【００３６】
データ部３０４の次のデータが無くなった場合、つまり、データ部３０４内の全データについてＳ６１０〜Ｓ６１２の処理を行った場合（ステップＳ６１３、ＮＯ）、制御素子２１は、当該ＡＴＴＲＩＢコマンドに対するレスポンス（ＡＴＴＲＩＢレスポンス）におけるデータ部５０２に第２のコマンドに応じて実行した処理の結果をセットする（ステップＳ６１４）。各第２のコマンドに対する処理結果は、ＡＴＴＲＩＢコマンドに添付された各第２のコマンドに対応づけた識別情報を付与したデータ（例えば、ＴＬＶ構造のデータ）とする。
【００３７】
第２のコマンドに対する処理結果をデータ部にセットしたＡＴＴＲＩＢレスポンスを作成すると、制御素子２１は、作成したＡＴＴＲＩＢレスポンスをＩＣカード処理装置１へ送信する（ステップＳ６１５）。また、ＡＴＴＲＩＢコマンドのデータ部３０４にコマンドが存在しなかった場合（ステップＳ６０９、ＮＯ）、制御素子２１は、データ部５０２を省略したＡＴＴＲＩＢレスポンスをＩＣカード処理装置１へ送信する（ステップＳ６１５）。
【００３８】
図７（Ａ）、（Ｂ）、（Ｃ）は、ＡＴＴＲＩＢコマンドに対するレスポンスのデータ部５０２として出力するデータ（Ｈｉｇｈｅｒ  Ｌａｙｅｒ  Ｒｅｓｐｏｎｓｅ）の例を示す。図７（Ａ）、（Ｂ）、（Ｃ）は、ＡＴＴＲＩＢコマンドのデータ部３０４に格納したコマンドＡＰＤＵとしてのＳＥＬＥＣＴコマンドで、非接触カードをサポートしているアプリケーションのリストを出力するＰＰＳＥ（Ｐｒｏｘｉｍｉｔｙ Ｐａｙｍｅｎｔ Ｓｙｓｔｅｍ Ｅｎｖｉｒｏｎｍｅｎｔ）を選択した例を示す。
【００３９】
また、図８は、非接触ＩＣカード２のデータメモリ２２に３つのアプリケーション１、２、３が格納されている状態を示す。３つのアプリケーション１、２、３は、それぞれ非接触ＩＣカードとしてアプリケーションである。図７（Ａ）、（Ｂ）、（Ｃ）は、図８に示すようなデータメモリ２２を有する非接触ＩＣカード２に、アプリケーションリストを要求するコマンドを含むＡＴＴＲＩＢコマンドに対するＨｉｇｈｅｒ  Ｌａｙｅｒ  Ｒｅｓｐｏｎｓｅの例を示している。
【００４０】
図７（Ａ）は、Ｈｉｇｈｅｒ  Ｌａｙｅｒ  Ｒｅｓｐｏｎｓｅの構成を概略的に示す。図７（Ａ）に示す例では、Ｈｉｇｈｅｒ  Ｌａｙｅｒ  Ｒｅｓｐｏｎｓｅは、ＴＬＶ構造のデータ列（ＴＬＶデータとも称する）である。また、図７（Ａ）に示す例では、複数のアプリケーションのリストを出力するために、ＴＬＶデータが入れ子構造となっている。各ＴＬＶデータでは、Ｔａｇの値によりＶａｌｕｅの意味を示す。
【００４１】
図７（Ｂ）は、Ｈｉｇｈｅｒ  Ｌａｙｅｒ  Ｒｅｓｐｏｎｓｅの具体例を示す図である。図７（Ｂ）に示す例では、Ｈｉｇｈｅｒ  Ｌａｙｅｒ  Ｒｅｓｐｏｎｓｅ全体がＴａｇ「６Ｆ」のデータ列として定義される。図７（Ｂ）に示すＴａｇが「６Ｆ」のＨｉｇｈｅｒ  Ｌａｙｅｒ  Ｒｅｓｐｏｎｓｅは、ＦＣＩ（Ｆｉｌｅ Ｃｏｎｔｒｏｌ Ｉｎｆｏｒｍａｔｉｏｎ） Ｔｅｍｐｌｅｔｅのデータである。ＦＣＩ Ｔｅｍｐｌｅｔｅは、Ｔａｇが「８４」のデータ列とＴａｇが「Ａ５」のデータ列を有する。さらに、Ｔａｇが「Ａ５」のデータ列は、Ｔａｇが「ＢＦ０Ｃ」のデータを有する。図７（Ｂ）に示す例では、Ｔａｇが「ＢＦ０Ｃ」のデータは、ＦＣＩ Ｉｓｓｕｅｒ Ｄｉｓｃｒｅｔｉｏｎａｒｙ Ｄａｔａである。ＦＣＩ Ｉｓｓｕｅｒ Ｄｉｓｃｒｅｔｉｏｎａｒｙ Ｄａｔａは、図７（Ｃ）に示すデータとなっている。図７（Ｃ）では、Ｔａｇが「ＢＦ０Ｃ」のＦＣＩ Ｉｓｓｕｅｒ Ｄｉｓｃｒｅｔｉｏｎａｒｙ Ｄａｔａとして、２つのアプリケーションがＴＬＶデータで示されている。
【００４２】
このように、ＡＴＴＲＩＢコマンドのデータ部（Ｈｉｇｈｅｒ  Ｌａｙｅｒ  ＩＮＦ）にアプリケーションリストを要求するコマンドが添付されていた場合（含まれていた場合）、ＡＴＴＲＩＢコマンドのレスポンスにおいて、図７に示すようなＨｉｇｈｅｒ  Ｌａｙｅｒ  Ｒｅｓｐｏｎｓｅによって、当該非接触ＩＣカードが具備しているアプリケーションリストを提示できる。
【００４３】
次に、１又は複数のコマンドを添付できる初期化及び衝突回避（アンチコリジョン）処理に用いられるコマンドの他の例について説明する。  
図９は、ＩＳＯ１４４４３  Ｔｙｐｅ  Ａで用いられるＳＥＬＥＣＴコマンドの例を示す。  
図９に示すＳＥＬＥＣＴコマンドは、初期化及び衝突回避（アンチコリジョン）処理に用いられるコマンドの一例である。図９に示す例において、ＳＥＬＥＣＴコマンドは、定義部９０１、パラメータ部９０２、識別部９０３、データ部９０４、およびチェックコード部９０５を有する。ただし、現行のＩＳＯ１４４４３  Ｔｙｐｅ  Ａにおいては、ＳＥＬＥＣＴコマンドについてデータ部の規定が無い。つまり、図９のＳＥＬＥＣＴコマンドは、現行のＩＳＯ１４４４３  Ｔｙｐｅ  Ａで規定されるＳＥＬＥＣＴコマンドにデータ部を付加した構成となっている。
【００４４】
定義部９０１は、Ｃａｓｃａｄｅ  Ｌｅｖｅｌ（ＣＬ）を示す。図９に示す例では、Ｃａｓｃａｄｅ  Ｌｅｖｅｌは、「ＳＥＬ」となっており、当該コマンドがＳＥＬＥＣＴコマンドであることを示している。なお、ＩＳＯ１４４４３  Ｔｙｐｅ  Ａでは、「ＳＥＬ」がＳＥＬＥＣＴコマンドを示す旨が規定されている。パラメータ部９０２は、Ｎｕｍｂｅｒ  ｏｆ  Ｖａｌｉｄ  Ｂｉｔ（ＮＶＢ）を示す。識別部９０３は、Ｃａｓｃａｄｅ  Ｌｅｖｅｌ  ｎ（ＣＬｎ）のＵｎｉｑｕｅ  Ｉｄｅｎｔｉｆｉｅｒ（ＵＩＤ）を示す。すなわち、識別部９０３は、固有識別情報（ＵＩＤ）を示す。
【００４５】
データ部９０４は、データを格納できる領域である。図９に示す例では、ＳＥＬＥＣＴコマンドにおけるデータ部９０４は、Ｈｉｇｈｅｒ  Ｌａｙｅｒ  ＩＮＦ（ＩＮＦｏｒｍａｔｉｏｎ）と称するものとする。また、チェックコード部９０５は、当該コマンド（ＳＥＬＥＣＴコマンド）全体のデータをチェックするためのコード情報（ＣＲＣ  Ａ）が格納される。
【００４６】
本実施の形態において、データ部９０４には、所定のフォーマットのデータが格納できる。データ部９０４には、所定のフォーマットで１又は複数のコマンド（コマンドＡＰＤＵ）を格納できる。たとえば、データ部９０４には、各コマンドをＴＬＶデータとして格納する。データ部９０４に格納される各ＴＬＶデータは、Ｔａｇの値によりＶａｌｕｅのデータがコマンドであるか否かが判断される。
【００４７】
図１０は、図９に示すＳＥＬＥＣＴコマンドに対するレスポンスの構成を示す。  
図１０に示す構成例において、ＳＥＬＥＣＴコマンドに対するレスポンスは、識別部１００１、データ部１００２、チェックコード部１００３を有する。識別部１００１には、コマンドに対する処理を示す情報が格納される。図１０に示す例では、ＳＥＬＥＣＴコマンドに対する処理が終了したことを示す情報（ＳＡＫ：Ｓｅｌｅｃｔ  ＡｃＫｎｏｗｌｅｄｇｅ）が格納される。なお、ＩＳＯ１４４４３  Ｔｙｐｅ  Ａでは、「ＳＡＫ」がＳＥＬＥＣＴコマンドのレスポンスである旨が規定されている。
【００４８】
データ部１００２は、データを格納できる領域である。データ部１００２は、図９に示すＳＥＣＬＥＴコマンドのＨｉｇｈｅｒ  Ｌａｙｅｒ  ＩＮＦに対応するレスポンス（Ｈｉｇｈｅｒ  Ｌａｙｅｒ  Ｒｅｓｐｏｎｓｅ）である。すなわち、データ部１００２は、受信したコマンドのデータ部（Ｈｉｇｈｅｒ  Ｌａｙｅｒ  ＩＮＦ）９０４に添付された１又は複数のコマンドに対するレスポンスを含む。また、データ部１００２には、各コマンドに対するレスポンスデータが所定のデータフォーマット（例えば、ＴＬＶ構造）で格納される。チェックコード部１００３は、当該レスポンス全体のデータをチェックするためのコード情報が格納される。
【００４９】
次に、非接触ＩＣカード２におけるＳＥＬＥＣＴコマンドに対する処理について説明する。  
図１１は、非接触ＩＣカード２におけるＳＥＬＥＣＴコマンドに対する処理例を説明するためのフローチャートである。  
ここでは、まず、非接触ＩＣカード２は、ＩＣカード処理装置１からＳＥＬＥＣＴコマンドを受信したものする（ステップＳ１１０１）。非接触ＩＣカード２の制御素子２１は、受信したコマンドにおける定義部９０１に格納された「ＳＥＬ」という情報により、受信したコマンドが図９に示すようなＳＥＬＥＣＴコマンドであると認識する。ＳＥＬＥＣＴコマンドは、たとえば、図９で示すように、Ｈｉｇｈｅｒ  Ｌａｙｅｒ  ＩＮＦとしてデータ部を有するものとする。このＨｉｇｈｅｒ  Ｌａｙｅｒ  ＩＮＦには、１又は複数のコマンド（第２のコマンド）が格納できる。
【００５０】
ＳＥＬＥＣＴコマンドを受信すると、非接触ＩＣカード２の制御素子２１は、受信したＳＥＬＥＣＴコマンドに含まれるＵＩＤの照合を行う（ステップＳ１１０２）。ＵＩＤの照合に失敗した場合、制御素子２１は、当該非接触ＩＣカード２を次のコマンド受信待ちの状態とする。また、ＵＩＤの照合に成功した場合（ステップＳ１１０２、ＹＥＳ）、制御素子２１は、受信したＳＥＬＥＣＴコマンドにデータ（Ｈｉｇｈｅｒ  Ｌａｙｅｒ  ＩＮＦ）があるか否かを判断する（ステップＳ１１０３）。
【００５１】
受信したＳＥＬＥＣＴコマンドにデータがないと判断した場合（ステップＳ１１０３、ＮＯ）、制御素子２１は、当該ＳＥＬＥＣＴコマンドの処理結果として正常終了した旨のレスポンスデータをＩＣカード処理装置１へ送信し（ステップＳ１１０９）、コマンド受信待ちの状態とする。
【００５２】
受信したＳＥＬＥＣＴコマンドのデータ部９０４にデータが存在すると判断した場合（ステップＳ１１０３、ＹＥＳ）、制御素子２１は、ＳＥＬＥＣＴコマンドのデータ部９０４に存在する各データ（たとえば、ＴＬＶ構造のデータ列単位の各データ）を順次取得（抽出）する（ステップＳ１１０４）。ＳＥＬＥＣＴコマンドのデータ部９０４から１つのデータを取得すると、制御素子２１は、当該データがコマンド（第２のコマンド）であるか否かを判定する（ステップＳ１１０５）。たとえば、制御素子２１は、データ部９０４に含まれる各データがコマンドであるか否かを当該データの識別情報により判定する。データ部９０４にＴＬＶ構造のデータを格納する場合、各データがコマンドであるか否かは、各データのＴａｇで示すようにしても良い。この場合、制御素子２１は、各データのＴａｇの値により、各データがコマンドであるか否かを判定できる。
【００５３】
ＳＥＬＥＣＴコマンドのデータ部９０４から抽出したデータがコマンドでないと判定した場合（ステップＳ１１０５、ＮＯ）、制御素子２１は、データ部９０４に次のデータがあれるか否かを判断する（ステップＳ１１０７）。データ部９０４に次のデータがあれば（ステップＳ１１０５、ＹＥＳ）、制御素子２１は、上記ステップＳ１１０４へ戻り、データ部９０４に存在する次のデータについて、上記ステップＳ１１０４〜Ｓ１１０７の処理を行う。
【００５４】
また、ＳＥＬＥＣＴコマンドのデータ部９０４から抽出したデータがコマンドであると判断した場合（ステップＳ１１０５、ＹＥＳ）、制御素子２１は、当該コマンド（第２のコマンド）に応じたコマンド処理を実行する（ステップＳ１１０６）。制御素子２１は、データ部９０４に添付されたコマンド（第２のコマンド）に応じた処理結果をＳＥＬＥＣＴコマンドのレスポンス（ＳＡＫ）に含めてＩＣカード処理装置１へ出力する。このため、制御素子２１は、第２のコマンドに応じた実行した処理結果を示す情報をワーキングメモリ２３などのメモリに保存する。
【００５５】
ＳＥＬＥＣＴコマンドのデータ部９０４に次のデータが無くなった場合、つまり、データ部９０４内の全データについてＳ１１０５〜Ｓ１１０７の処理を行った場合（ステップＳ１１０７、ＮＯ）、制御素子２１は、当該ＳＥＬＥＣＴコマンドに対するレスポンスにおけるデータ部１００２に第２のコマンドに応じて実行した処理の結果を示す情報をセットする（ステップＳ１１０８）。各第２のコマンドに対する処理結果は、ＳＥＬＥＣＴコマンドに添付された各第２のコマンドに対応づけた識別情報を付与したデータ（例えば、ＴＬＶ構造のデータ）とする。
【００５６】
第２のコマンドに対する処理結果をデータ部にセットしたレスポンスを作成すると、制御素子２１は、作成したレスポンスをＩＣカード処理装置１へ送信する（ステップＳ１１０９）。また、ＳＥＬＥＣＴコマンドのデータ部９０４にコマンドが存在しなかった場合、制御素子２１は、データ部１００２を省略したレスポンスをＩＣカード処理装置１へ送信しても良い。
【００５７】
図１２は、ＩＳＯ１４４４３  Ｔｙｐｅ  Ａで用いられるＲＡＴＳ（Ｒｅｑｕｅｓｔ ｆｏｒ Ａｎｓｗｅｒ Ｔｏ Ｓｅｌｅｃｔ）コマンドの例を示す。  
図１２に示すＲＡＴＳコマンドは、初期化及び衝突回避（アンチコリジョン）処理に用いられるコマンドの一例である。図１２に示す例において、ＲＡＴＳコマンドは、定義部１２０１、パラメータ部１２０２、データ部１２０３、およびチェックコード部１２０４を有する。ただし、現行のＩＳＯ１４４４３  Ｔｙｐｅ  Ａにおいては、ＲＡＴＳコマンドについてデータ部の規定が無い。このため、図１２に示すＲＡＴＳコマンドは、現行のＩＳＯ１４４４３  Ｔｙｐｅ  Ａで規定されるＲＡＴＳコマンドにデータ部を付加した構成となっている。
【００５８】
定義部１２０１は、Ｓｔａｒｔ  Ｂｙｔｅを示す。図１２に示す例では、Ｓｔａｒｔ  Ｂｙｔｅは、「Ｅ０」となっている。パラメータ部１２０２は、設定すべきパラメータ（Ｐａｒａｍｅｔｅｒ）を示す。データ部１２０３は、データを格納できる領域である。図１２に示す例では、ＲＡＴＳコマンドにおけるデータ部１２０３は、Ｈｉｇｈｅｒ  Ｌａｙｅｒ  ＩＮＦ（ＩＮＦｏｒｍａｔｉｏｎ）と称するものとする。また、チェックコード部１２０４は、当該コマンド（ＲＡＴＳコマンド）全体のデータをチェックするためのコード情報（ＣＲＣ  Ａ）が格納される。
【００５９】
本実施の形態において、データ部１２０３には、所定のフォーマットのデータが格納できる。データ部１２０３には、所定のフォーマットで１又は複数のコマンド（コマンドＡＰＤＵ）を格納できる。たとえば、データ部１２０３には、各コマンドがＴＬＶ構造のデータとして格納する。ＴＬＶ構造のデータとは、Ｔａｇのデータ、Ｌｅｎｇｔｈのデータ、およびＶａｌｕｅのデータが順に並べられたデータ列である。Ｔａｇは、当該データ列の識別情報を示す。Ｌｅｎｇｔｈは、直後に続くＶａｌｕｅのデータの長さを示す。Ｖａｌｕｅのデータは、実際のデータ値である。データ部１２０３に格納されるＴＬＶデータは、Ｔａｇによりコマンドであるか否かが判断される。
【００６０】
図１３は、図１２に示すＲＡＴＳコマンドに対するレスポンスの構成を示す。  
図１３に示す構成例において、ＲＡＴＳコマンドに対するレスポンス（ＡＴＳ）は、ＴＬ  １３０１、Ｔ０  １３０２、ＴＡ（１）１３０３、ＴＢ（１）１３０４、ＴＣ（１）１３０５、Ｔ１  １３０６、…、Ｔｋ  １３０７を有する。Ｔ０  １３０２に続く、ＴＡ（１）１３０３からＴＣ（１）１３０５は、インターフェースバイト（Ｉｎｔｅｒｆａｃｅ  Ｂｙｔｅｓ）である。Ｔ１  １３０６からＴｋ  １３０７までは、ヒストリカルバイト（Ｈｉｓｔｏｒｉｃａｌ  Ｂｙｔｅｓ）である。
【００６１】
データ部１３０８は、データを格納できる領域である。データ部１３０８は、図１２に示すＲＡＴＳコマンドのＨｉｇｈｅｒ  Ｌａｙｅｒ  ＩＮＦに対応するレスポンス（Ｈｉｇｈｅｒ  Ｌａｙｅｒ  Ｒｅｓｐｏｎｓｅ）である。すなわち、データ部１３０８は、受信したコマンドのデータ部（Ｈｉｇｈｅｒ  Ｌａｙｅｒ  ＩＮＦ）１２０３に添付された１又は複数のコマンドに対するレスポンスを含む。また、データ部１３０８には、各コマンドに対する処理結果を示す情報が所定のデータフォーマット（例えば、ＴＬＶ構造）で格納される。チェックコード部１３０９は、当該レスポンス全体のデータをチェックするためのコード情報が格納される。
【００６２】
次に、非接触ＩＣカード２におけるＲＡＴＳコマンドに対する処理について説明する。  
図１４は、非接触ＩＣカード２におけるＲＡＴＳコマンドに対する処理例を説明するためのフローチャートである。  
ここでは、まず、非接触ＩＣカード２は、ＩＣカード処理装置１からＲＡＴＳコマンドを受信したものする（ステップＳ１４０１）。ＲＡＴＳコマンドは、たとえば、図１２で示すように、Ｈｉｇｈｅｒ  Ｌａｙｅｒ  ＩＮＦとしてデータ部１２０３を付加できる。このＨｉｇｈｅｒ  Ｌａｙｅｒ  ＩＮＦには、１又は複数のコマンド（第２のコマンド）が格納できる。
【００６３】
ＲＡＴＳコマンドを受信すると、非接触ＩＣカード２の制御素子２１は、受信したＲＡＴＳコマンドのパラメータ部１２０２に含まれるパラメータを設定する（ステップＳ１４０２）。パラメータ部１２０２で指定されたパラメータを設定すると、制御素子２１は、受信したＲＡＴＳコマンドにデータ（Ｈｉｇｈｅｒ  Ｌａｙｅｒ  ＩＮＦ）があるか否かを判断する（ステップＳ１４０３）。
【００６４】
受信したＲＡＴＳコマンドにデータがないと判断した場合（ステップＳ１４０３、ＮＯ）、制御素子２１は、当該ＲＡＴＳコマンドの処理結果として正常終了した旨のレスポンスデータをＩＣカード処理装置１へ送信し（ステップＳ１４０９）、コマンド受信待ちの状態とする。
【００６５】
受信したＲＡＴＳコマンドのデータ部１２０３にデータが存在すると判断した場合（ステップＳ１４０３、ＹＥＳ）、制御素子２１は、ＲＡＴＳコマンドのデータ部１２０３に存在する各データ（たとえば、ＴＬＶ構造のデータ列単位の各データ）を順次取得（抽出）する（ステップＳ１４０４）。ＲＡＴＳコマンドのデータ部１２０３から１つのデータを取得すると、制御素子２１は、当該データがコマンド（第２のコマンド）であるか否かを判定する（ステップＳ１４０５）。たとえば、制御素子２１は、データ部１２０３に含まれる各データがコマンドであるか否かを当該データの識別情報により判定する。データ部１２０３にＴＬＶ構造のデータを格納する場合、各データがコマンドであるか否かは、各データのＴａｇで示すようにしても良い。この場合、制御素子２１は、各データのＴａｇの値により、各データがコマンドであるか否かを判定できる。
【００６６】
ＲＡＴＳコマンドのデータ部１２０３から抽出したデータがコマンドでないと判定した場合（ステップＳ１４０５、ＮＯ）、制御素子２１は、データ部１２０３に次のデータがあれるか否かを判断する（ステップＳ１４０７）。データ部１２０３に次のデータがあれば（ステップＳ１４０５、ＹＥＳ）、制御素子２１は、上記ステップＳ１４０４へ戻り、データ部１２０３に存在する次のデータについて、上記ステップＳ１４０４〜Ｓ１４０７の処理を行う。
【００６７】
また、ＲＡＴＳコマンドのデータ部１２０３から抽出したデータがコマンドであると判断した場合（ステップＳ１４０５、ＹＥＳ）、制御素子２１は、当該コマンド（第２のコマンド）に応じたコマンド処理を実行する（ステップＳ１４０６）。制御素子２１は、データ部１２０３に添付されたコマンド（第２のコマンド）に応じた処理結果をＲＡＴＳコマンドのレスポンス（ＡＴＳ）に含めてＩＣカード処理装置１へ出力する。このため、制御素子２１は、第２のコマンドに応じた実行した処理結果を示す情報をワーキングメモリ２３などのメモリに保存する。
【００６８】
ＲＡＴＳコマンドのデータ部１２０３に次のデータが無くなった場合、つまり、データ部１２０３内の全データについてＳ１４０５〜Ｓ１４０７の処理を行った場合（ステップＳ１４０７、ＮＯ）、制御素子２１は、当該ＲＡＴＳコマンドに対するレスポンスにおけるデータ部１３０８に第２のコマンドに応じて実行した処理の結果を示す情報をセットする（ステップＳ１４０８）。各第２のコマンドに対する処理結果は、ＲＡＴＳコマンドに添付された各第２のコマンドに対応づけた識別情報を付与したデータ（例えば、ＴＬＶ構造のデータ）とする。
【００６９】
第２のコマンドに対する処理結果をデータ部１３０８にセットしたレスポンス（ＡＴＳ）を作成すると、制御素子２１は、作成したレスポンスをＩＣカード処理装置１へ送信する（ステップＳ１４０９）。また、ＲＡＴＳコマンドのデータ部１２０３にコマンドが存在しなかった場合、制御素子２１は、データ部１３０８を省略したレスポンスをＩＣカード処理装置１へ送信しても良い。
【００７０】
上記のように、本実施形態の非接触ＩＣカードは、外部装置から第１のコマンドを受信した場合、当該第１のコマンドに応じた処理を実行するともに、前記第１のコマンドに１又は複数の第２のコマンドが含まれるか否かを判断する。非接触ＩＣカードは、第１のコマンドに第２のコマンドが含まれる場合には、各第２のコマンドに応じた処理を実行する。非接触ＩＣカードは、第１のコマンドに対するレスポンスのデータ部に第２のコマンドに対する処理結果を示す情報をセットして前記外部装置へ送信する。本実施形態によれば、非接触ＩＣカードと非接触ＩＣカード処理装置との通信回数を削減でき、非接触通信によるコマンド処理を効率的に実行することができる。
【００７１】
また、上記第１のコマンドとしては、初期化・衝突回避処理のためのコマンドを適用でき、第２のコマンドとしては、初期化・衝突回避処理により通信が確立した後に実行すべきコマンドを適用できる。これより、初期化・衝突回避処理のためのコマンドで、初期化・衝突回避処理により通信が確立した後に実行すべきコマンドの送信してしまうことができ、初期化・衝突回避処理および初期化・衝突回避処理後の処理において、非接触ＩＣカードと非接触ＩＣカード処理装置との通信回数を削減でき、非接触通信によるコマンド処理を効率的に実行することができる。
【００７２】
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【符号の説明】
【００７３】
Ｂ…本体、Ｍ…モジュール、Ｃ…ＩＣチップ、１…ＩＣカード処理装置（外部装置）、２…ＩＣカード（非接触ＩＣカード、携帯可能電子装置）、２１…制御素子、２２…データメモリ、２３…ワーキングメモリ、２４…プログラムメモリ、２５…通信部。
【図１】
2012064048.tif 000003
【図２】
2012064048.tif 000004
【図３】
2012064048.tif 000005
【図４】
2012064048.tif 000006
【図５】
2012064048.tif 000007
【図６】
2012064048.tif 000008
【図７】
2012064048.tif 000009
【図８】
2012064048.tif 000010
【図９】
2012064048.tif 000011
【図１０】
2012064048.tif 000012
【図１１】
2012064048.tif 000013
【図１２】
2012064048.tif 000014
【図１３】
2012064048.tif 000015
【図１４】
2012064048.tif 000016