(57)【要約】【課題】効率良く自己診断を行えるＩＣカードおよび携帯可能電子装置を提供することを目的とする。【解決手段】実施形態によれば、ＩＣカードは、通信インターフェースと、制御手段と、記憶手段と、自己診断実行手段と、コマンド処理手段とを有する。通信インターフェースは、外部装置に通信接続する。制御手段は、外部装置からの動作電源及び動作クロックを受けて活性化した後に外部装置からのコマンド受信待ち状態とする。記憶手段は、活性化後に実施すべき複数の自己診断処理の実施状況を記憶する。自己診断実行手段は、外部装置からのコマンドの受信待ち状態において前記記憶手段で未実施の状態となっている自己診断処理を順番に実行する。コマンド処理手段は、通信手段により外部装置からコマンドを受信した場合、記憶手段に記憶した各自己診断処理の実施状況によらずに受信したコマンドに対する処理を実行する。【選択図】図３
2014059731.tif 000002
【特許請求の範囲】
【請求項１】
外部装置に通信接続する通信インターフェースと、
前記外部装置からの動作電源及び動作クロックを受けて活性化した後に前記外部装置からのコマンド受信待ち状態とする制御手段と、
前記活性化後に実施すべき複数の自己診断処理の実施状況を記憶する記憶手段と、
前記外部装置からのコマンドの受信待ち状態において前記記憶手段で未実施の状態となっている自己診断処理を順番に実行する自己診断実行手段と、
前記通信手段により前記外部装置からコマンドを受信した場合、前記記憶手段に記憶した各自己診断処理の実施状況によらずに受信したコマンドに対する処理を実行するコマンド処理手段と、
を有するＩＣカード。
【請求項２】
さらに、前記活性化後に複数の自己診断処理のうち一部の自己診断処理を実行する第２の自己診断実行手段を有し、
前記制御手段は、前記第２の自己診断実行手段により実行した一部の自己診断処理が正常終了した場合、前記外部装置からのコマンド受信待ち状態とする、
前記請求項１に記載のＩＣカード。
【請求項３】
前記コマンド処理手段は、前記自己診断実行手段により自己診断処理を実行中にコマンドを受信した場合、実行中の１つの自己診断処理が終了した後、前記通信手段により前記外部装置から受信するコマンドに対する処理を実行する、
前記請求項１又は２の何れか１項に記載のＩＣカード。
【請求項４】
前記自己診断実行手段は、前記自己診断処理を実行中にコマンドを受信した場合、実行中の自己診断処理を中止し、
前記コマンド処理手段は、前記自己診断処理の中止後に前記通信手段により前記外部装置から受信するコマンドに対する処理を実行する、
前記請求項１又は２の何れか１項に記載のＩＣカード。
【請求項５】
外部装置に通信接続する通信インターフェースと、
コマンド毎にコマンド処理を実行する前に実施しておくべき自己診断処理を示す情報を記憶する記憶手段と、
前記外部装置からの動作電源及び動作クロックを受けて活性化した後に前記外部装置からのコマンド受信待ち状態とする制御手段と、
前記外部装置からコマンドを受信した場合、前記記憶手段により受信したコマンドを実行する前に実施しておくべき自己診断処理を特定し、特定した自己診断処理を完了させる自己診断実行手段と、
前記自己診断実行手段により実施しておくべき自己診断処理が完了した後、前記外部装置から受信したコマンドに対する処理を実行するコマンド処理手段と、
を有するＩＣカード。
【請求項６】
さらに、前記活性化後に実施すべき複数の自己診断処理の実施状況を記憶する第２の記憶手段を有し、
前記自己診断実行手段は、前記受信したコマンドを実行する前に実施しておくべき自己診断処理として特定した自己診断処理のうち未実施の自己診断処理を前記第２の記憶手段により判断し、未実施であると判断した自己診断処理を実行する、
前記請求項５に記載のＩＣカード。
【請求項７】
さらに、前記外部装置からのコマンドの受信待ちが継続した状態において前記第２の記憶手段で未実施の状態となっている自己診断処理を順番に実行する第２の自己診断実行手段を有する、
前記請求項６に記載のＩＣカード。
【請求項８】
さらに、前記活性化後に複数の自己診断処理のうち一部の自己診断処理を実行する第
３の自己診断実行手段を有し、
前記制御手段は、前記第３の自己診断実行手段により実行した一部の自己診断処理が正常終了した場合、前記外部装置からのコマンド受信待ち状態とする、
前記請求項５乃至７の何れか１項に記載のＩＣカード。
【請求項９】
前記コマンド処理手段は、前記第２の自己診断実行手段により自己診断処理を実行中にコマンドを受信した場合、実行中の１つの自己診断処理が終了した後、前記通信手段により前記外部装置から受信するコマンドに対する処理を実行する、
前記請求項７又は８の何れか１項に記載のＩＣカード。
【請求項１０】
前記第２の自己診断実行手段は、前記自己診断処理を実行中にコマンドを受信した場合、実行中の自己診断処理を中止し、
前記コマンド処理手段は、前記自己診断処理の中止後に前記通信手段により前記外部装置から受信するコマンドに対する処理を実行する、
前記請求項７又は８の何れか１項に記載のＩＣカード。
【請求項１１】
外部装置に通信接続する通信インターフェースと、前記外部装置からの動作電源及び動作クロックを受けて活性化した後に前記外部装置からのコマンド受信待ち状態とする制御手段と、前記活性化後に実施すべき複数の自己診断処理の実施状況を記憶する記憶手段と、前記外部装置からのコマンドの受信待ち状態において前記記憶手段で未実施の状態となっている自己診断処理を順番に実行する自己診断実行手段と、前記通信手段により前記外部装置からコマンドを受信した場合、前記記憶手段に記憶した各自己診断処理の実施状況によらずに受信したコマンドに対する処理を実行するコマンド処理手段とを有するモジュールと、
前記モジュールを有する本体と、
を有するＩＣカード。
【請求項１２】
外部装置に通信接続する通信インターフェースと、コマンド毎にコマンド処理を実行する前に実施しておくべき自己診断処理を示す情報を記憶する記憶手段と、前記外部装置からの動作電源及び動作クロックを受けて活性化した後に前記外部装置からのコマンド受信待ち状態とする制御手段と、前記外部装置からコマンドを受信した場合、前記記憶手段により受信したコマンドを実行する前に実施しておくべき自己診断処理を特定し、特定した自己診断処理を完了させる自己診断実行手段と、前記自己診断実行手段により実施しておくべき自己診断処理が完了した後、前記外部装置から受信したコマンドに対する処理を実行するコマンド処理手段と、を有するモジュールと、
前記モジュールを有する本体と、
を有するＩＣカード。
【請求項１３】
外部装置からのコマンドに応じた処理を行う携帯可能電子装置において、
前記外部装置に通信接続する通信インターフェースと、
前記外部装置からの動作電源及び動作クロックを受けて活性化した後に前記外部装置からのコマンド受信待ち状態とする制御手段と、
前記活性化後に実施すべき複数の自己診断処理の実施状況を記憶する記憶手段と、
前記外部装置からのコマンドの受信待ち状態において前記記憶手段で未実施の状態となっている自己診断処理を順番に実行する自己診断実行手段と、
前記通信手段により前記外部装置からコマンドを受信した場合、前記記憶手段に記憶した各自己診断処理の実施状況によらずに受信したコマンドに対する処理を実行するコマンド処理手段と、
を有する携帯可能電子装置。
【請求項１４】
外部装置からのコマンドに応じた処理を行う携帯可能電子装置において、
前記外部装置に通信接続する通信インターフェースと、
コマンド毎にコマンド処理を実行する前に実施しておくべき自己診断処理を示す情報を記憶する記憶手段と、
前記外部装置からの動作電源及び動作クロックを受けて活性化した後に前記外部装置からのコマンド受信待ち状態とする制御手段と、
前記外部装置からコマンドを受信した場合、前記記憶手段により受信したコマンドを実行する前に実施しておくべき自己診断処理を特定し、特定した自己診断処理を完了させる自己診断実行手段と、
前記自己診断実行手段により実施しておくべき自己診断処理が完了した後、前記外部装置から受信したコマンドに対する処理を実行するコマンド処理手段と、
を有する携帯可能電子装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は、ＩＣカードおよび携帯可能電子装置に関する。
【背景技術】
【０００２】
一般的なＩＣカードは、外部装置からの電源及び動作クロックを受けてＣＰＵなどの電子回路が動作可能な状態（活性化）になる。ＩＣカードは、活性化すると、まず、ＣＰＵやコプロセッサ、通信装置などの内部回路に異常がないかチェックを行い、さらには、内蔵するメモリに記録されているプログラムやデータに異常がないかをチェックする自己診断処理を行う。このような自己診断が正常であれば、当該ＩＣカードは、外部装置からの命令を受付ける。
【０００３】
しかしながら、ＩＣカードは、その用途によっては電源が供給されてから命令を受け取って処理を開始するまでに許容される時間が短くなることもある。例えば、交通機関で用いられるＩＣカードでは、移動中に処理を完了させるため、上位装置（改札機）と通信を開始してから数ミリ秒〜数十ミリ秒後には処理を開始しなければならないような運用形態もある。この様な運用形態においては、従来のＩＣカードでは、活性化後に自己診断を行うための時間を十分に確保できないという問題が生じる可能性がある。
【先行技術文献】
【非特許文献】
【０００４】
【非特許文献１】ＩＳＯ／ＩＥＣ  ７８１６
【非特許文献２】ＩＳＯ／ＩＥＣ  １４４４３
【発明の概要】
【発明が解決しようとする課題】
【０００５】
本発明の実施形態では、効率良く自己診断を行えるＩＣカードおよび携帯可能電子装置を提供することを目的とする。
【課題を解決するための手段】
【０００６】
実施形態によれば、ＩＣカードは、通信インターフェースと、制御手段と、記憶手段と、自己診断実行手段と、コマンド処理手段とを有する。通信インターフェースは、外部装置に通信接続する。制御手段は、外部装置からの動作電源及び動作クロックを受けて活性化した後に外部装置からのコマンド受信待ち状態とする。記憶手段は、活性化後に実施すべき複数の自己診断処理の実施状況を記憶する。自己診断実行手段は、外部装置からのコマンドの受信待ち状態において前記記憶手段で未実施の状態となっている自己診断処理を順番に実行する。コマンド処理手段は、通信手段により外部装置からコマンドを受信した場合、記憶手段に記憶した各自己診断処理の実施状況によらずに受信したコマンドに対する処理を実行する。
【図面の簡単な説明】
【０００７】
【図１】実施形態に係るＩＣカードとＩＣカード処理装置とを有するＩＣカードシステムの構成例を示す図である。
【図２】実施形態に係るＩＣカードの構成例を示すブロック図である。
【図３】実施形態に係るＩＣカードの第１の処理例を説明するためのフローチャートである。
【図４】実施形態に係るＩＣカードのＲＡＭが保持する自己診断の実施状況管理テーブルの例を示す図である。
【図５】実施形態に係るＩＣカードの第２の処理例を説明するためのフローチャートである。
【図６】実施形態に係るＩＣカードの第３の処理例を説明するためのフローチャートである。
【図７】実施形態に係るＩＣカードの第４の処理例を説明するためのフローチャートである。
【図８】実施形態に係るＩＣカードの不揮発性メモリが保持する自己診断のコマンド別管理テーブルの例を示す図である。
【図９】実施形態に係るＩＣカードの第５の処理例を説明するためのフローチャートである。
【図１０】実施形態に係るＩＣカードの第５の処理例を説明するためのフローチャートである。
【発明を実施するための形態】
【０００８】
以下、実施形態について、図面を参照して説明する。  
図１は、本実施形態に係る携帯可能電子装置としてのＩＣカード２と、ＩＣカード２と通信を行う外部装置（上位装置）としてのＩＣカード処理装置１の構成について説明するためのブロック図である。
【０００９】
ＩＣカード２は、運用形態としては、たとえば、キャッシュカード、クレジットカード、ＩＤカード、定期券、乗車券として用いられるＳＦ（ストアードフェア）カードなどが想定される。また、ＩＣカード処理装置１は、ＩＣカード２にコマンドを与え、与えたコマンドに対するレスポンスを受けて処理を行う装置である。たとえば、ＩＣカード処理装置１は、運用形態としては、たとえば、クレジットカード処理機、自動テラーマシン（ＡＴＭ）、個人認証装置、通行制御装置あるいは改札装置などが想定される。
【００１０】
まず、ＩＣカード処理装置１の構成について説明する。  
ＩＣカード処理装置１は、基本的な構成として、図１に示すように、制御部１１、ディスプレイ１２、操作部１３及びカードリーダライタ１４などを有する。なお、ＩＣカード処理装置１は、上述したような様々な運用形態が想定されるものであり、図１に示すような構成に加えて、運用形態に応じた構成を具備するようにして良い。
【００１１】
制御部１１は、ＩＣカード処理装置１全体の動作を制御するものである。制御部１１は、ＣＰＵ、種々のメモリ及び各種インターフェースなどにより構成される。たとえば、制御部１１は、パーソナルコンピュータ（ＰＣ）により構成されるようにしても良い。制御部１１は、ＣＰＵがメモリに記憶されたプログラムを実行することにより種々の処理機能を実現するものである。たとえば、制御部１１は、カードリーダライタ１４によりＩＣカード２へコマンドを送信する機能、ＩＣカード２から受信するレスポンスなどのデータを基に種々の処理を行う機能などを有する。
【００１２】
ディスプレイ１２は、制御部１１の制御により種々の情報を表示する表示装置である。ディスプレイ１２は、たとえば、液晶モニタなどである。  
操作部１３は、ＩＣカード処理装置１の使用者によって、種々の操作指示及び暗証番号などが入力される。操作部１３は、入力された操作指示及び暗証番号などのデータを制御部１１へ送信する。操作部１３は、たとえば、キーボード、テンキー、及び、タッチパネルなどである。
【００１３】
カードリーダライタ１４は、ＩＣカード２との通信を行うためのインターフェース装置である。カードリーダライタ１４は、ＩＣカード２の通信方式に応じたインターフェースにより構成される。たとえば、ＩＣカード２が接触型のＩＣカードである場合、カードリーダライタ１４は、ＩＣカード２のコンタクト部と物理的かつ電気的に接続するための接触部などにより構成される。
【００１４】
また、ＩＣカード２が非接触型のＩＣカードである場合、カードリーダライタ１４は、ＩＣカード２との無線通信を行うためのアンテナおよび通信制御部などにより構成される。カードリーダライタ１４では、ＩＣカード２に対する電源供給、クロック供給、リセット制御、データの送受信が行われるようになっている。このような機能によってカードリーダライタ１４は、制御部１１による制御に基づいてＩＣカード２の活性化（起動）、種々のコマンドの送信、及び送信したコマンドに対する応答（レスポンス）の受信などを行なう。
【００１５】
次に、ＩＣカード２について説明する。  
ＩＣカード２は、ＩＣカード処理装置１などの上位機器から電源および動作クロックの供給を受けて活性化される（動作可能な状態になる）ようになっている。例えば、ＩＣカード２が接触型の通信によりＩＣカード処理装置１と接続される場合、つまり、ＩＣカード２が接触型のＩＣカードで構成される場合、ＩＣカード２は、通信インターフェースとしてのコンタクト部を介してＩＣカード処理装置１からの動作電源及び動作クロックの供給を受けて活性化される。
【００１６】
また、ＩＣカード２が非接触型の通信方式によりＩＣカード処理装置１と接続される場合、つまり、ＩＣカード２が非接触式のＩＣカードで構成される場合、ＩＣカード２は、通信インターフェースとしてのアンテナ及び変復調回路などを介してＩＣカード処理装置１からの電波を受信し、その電波から図示しない電源部により動作電源及び動作クロックを生成して活性化するようになっている。
【００１７】
次に、ＩＣカード２の構成例について説明する。  
図２は、実施形態に係るＩＣカード２の構成例を概略的に示すブロック図である。ＩＣカード２は、プラスチックなどで形成されたカード状の本体Ｃを有する。ＩＣカード２は、本体Ｃ内にモジュールＭが内蔵されている。モジュールＭは、１つまたは複数のＩＣチップＣａと通信用の外部インターフェース（通信インターフェース）とが接続された状態で一体的に形成され、ＩＣカード２の本体Ｃ内に埋設されている。
【００１８】
図２に示す構成例において、ＩＣカード２は、ＣＰＵ２１、ＲＯＭ２２、ＲＡＭ２３、不揮発性メモリ２４、外部Ｉ/Ｆ２５およびコプロセッサ２６を備えている。これらの各部は、データバスを介して互いに接続されている。また、ＣＰＵ２１、ＲＯＭ２２、ＲＡＭ２３、不揮発性メモリ２４およびコプロセッサ２６は、１つ又は複数のＩＣチップＣａにより構成され、外部Ｉ/Ｆ２５の一部を構成するコンタクト部あるいはアンテナに接続された状態でモジュールＭを構成している。
【００１９】
ＣＰＵ２１は、ＩＣカード２全体の制御を司る制御部として機能する。ＣＰＵ２１は、ＲＯＭ２２あるいは不揮発性メモリ２４に記憶されている制御プログラム及び制御データに基づいて種々の処理を行う。たとえば、ＣＰＵ２１は、ＲＯＭ２２に記憶されているプログラムを実行することにより、ＩＣカード２の動作制御あるいはＩＣカード２の運用形態に応じた種々の処理を行う。なお、各種の機能のうちの一部は、ハードウエア回路により実現されるものであっても良い。この場合、ＣＰＵ２１は、ハードウエア回路により実行される機能を制御する。
【００２０】
ＲＯＭ２２は、予め制御用のプログラム及び制御データなどを記憶する不揮発性のメモリである。ＲＯＭ２２は、製造段階で制御プログラム及び制御データなどを記憶した状態でＩＣカード２に組み込まれる。即ち、ＲＯＭ２２に記憶される制御プログラム及び制御データは、予めＩＣカード２の仕様に応じて組み込まれる。
【００２１】
ＲＡＭ２３は、揮発性のメモリである。ＲＡＭ２３は、ＣＰＵ２１の処理中のデータなどを一時的に格納する。たとえば、ＲＡＭ２３は、受信用バッファ、計算用バッファ、送信用バッファなどを備える。受信用バッファとしては、外部Ｉ/Ｆ２５を通じてＩＣカード処理装置１から送信されたコマンドを保持する。計算用バッファとしては、ＣＰＵ２１が種々の計算をするため一時的な結果を保持する。送信用バッファとしては、外部Ｉ/Ｆ２５を通じてＩＣカード処理装置１に送信するデータを保持する。また、ＲＡＭ２３は、複数の自己診断処理の実施状況を管理する自己診断の実施状況管理テーブル２３ａを記憶する。自己診断の実施状況管理テーブル２３ａの構成例については後述するものとする。
【００２２】
不揮発性メモリ２４は、例えば、ＥＥＰＲＯＭあるいはフラッシュＲＯＭなどのデータの書き込み及び書換えが可能な不揮発性のメモリにより構成される。不揮発性メモリ２４は、ＩＣカード２の運用用途に応じて制御プログラム、アプリケーション、及び種々のデータを格納する。不揮発性メモリ２４には、プログラム領域、データ領域などが定義され、各領域にプログラムファイル及びデータファイルなどが作成される。作成された各ファイルには制御プログラム及び種々のデータなどが書き込まれる。たとえば、データ領域には、共通データ、鍵データ、アプリケーションデータなどがファイルデータとして記憶される。
【００２３】
また、不揮発性メモリ２４は、各種のコマンドに対応するコマンド処理を実行する前に実施しておくべき自己診断処理を示す自己診断のコマンド別管理テーブル２４ａを記憶する。自己診断のコマンド別管理テーブル２４ａの構成例については後述するものとする。なお、自己診断のコマンド別管理テーブル２４ａは、ＲＯＭなどに記憶するようにしても良い。
【００２４】
外部Ｉ/Ｆ２５は、ＩＣカード処理装置１のカードリーダライタ１４との通信を行うためのインターフェース（通信回路）である。ＩＣカード２が接触型のＩＣカードとして実現される場合、外部Ｉ/Ｆ２５は、ＩＣカード処理装置１のカードリーダライタ１４と物理的かつ電気的に接触して信号の送受信を行うための通信制御部（ＩＣチップＣａに含まれる回路部分）とコンタクト部とにより構成される。また、ＩＣカード２が非接触型のＩＣカードとして実現される場合、外部Ｉ/Ｆ２５は、ＩＣカード処理装置１のカードリーダライタ１４との無線通信を行うための変復調回路などの通信制御部（ＩＣチップＣａに含まれる回路部分）とアンテナとにより構成される。
【００２５】
コプロセッサ２６は、暗号処理を実行するためのプロセッサである。コプロセッサ２６は、たとえば、暗号化及び復号化を用いた認証処理、あるいは、暗号化されたデータの読み出し処理などに用いられる。
【００２６】
次に、本実施形態に係るＩＣカード２における第１の処理例について説明する。  
第１の処理例では、ＩＣカード２は、活性化後に自己診断処理を実行せず、直ちにＡＴＲ（Answer To Reset）信号を出力してコマンドの受信待ち状態になる。ＡＴＲ信号は、上位装置（ＩＣカード処理装置）１へコマンドの受信が可能な状態であることを示す信号である。ＡＴＲ信号を出力した後、コマンド受信待ち状態になってから所定時間が経過した時点でＩＣカード処理装置１からのコマンド受信が無ければ、ＩＣカード２は、複数の自己診断処理を順番に１つずつ実行する。複数の自己診断処理は、ＩＣカード２が実行すべき自己診断処理を比較的短時間で処理可能なモジュールに分割したものである。
【００２７】
１つの自己診断処理が完了した時点で、ＩＣカード処理装置１からのコマンドを受信している場合、或いはコマンドの受信を開始している場合、ＩＣカードは、受信したコマンドの処理を実行し、コマンドを受信していなければ次の自己診断処理を実行する。また、１つのコマンドの処理を実行した後に、一定時間内に次のコマンドを受信しなかった場合、ＩＣカード２は、再び次の未実施の自己診断処理を実行する。
【００２８】
図３は、実施形態に係るＩＣカード２における第１の処理例を説明するためのフローチャートである。  
ＩＣカード２は、ＩＣカード処理装置１からの動作電源及び動作クロックを受けて活性化する（ステップＳ２００）。活性化すると、ＩＣカード２のＣＰＵ２１は、ＲＡＭ２３上に自己診断の実施状況管理テーブル２３ａを作成し（ステップＳ２０１）、外部Ｉ／Ｆ２５によりＩＣカード処理装置１へＡＴＲ信号を出力する（ステップＳ２０２）。
【００２９】
自己診断の実施状況管理テーブル２３ａは、各種の自己診断処理の実施状況を示すテーブルである。本実施形態においては、ＩＣカード２が実行すべき自己診断処理は、短時間で処理可能な複数の自己診断処理（例えば、各種の機能ごとの自己診断処理）に分割されているものとする。自己診断の実施状況管理テーブル２３ａは、分割された個々の自己診断処理ごとに実施状況を記憶（管理）するものである。
【００３０】
図４は、自己診断の実施状況管理テーブル２３ａの構成例を示す図である。図４に示す自己診断の実施状況管理テーブル２３ａの例では、実行順序と自己診断の内容（自己診断項目）と実施状況を示す情報とが対応づけて記憶される。ＣＰＵ２１は、自己診断の実施状況管理テーブル２３ａを参照することにより、各自己診断処理が実施済みか未実施かを判定できる。
【００３１】
第１の処理例においては、ＣＰＵ２１は、活性化直後、各自己診断処理の実施状況を未実施の状態とした自己診断の実施状況管理テーブル２３ａを作成し、ＡＴＲ信号を出力する。すなわち、ＩＣカード２からのＡＴＲ信号を受信したＩＣカード処理装置１は、当該ＩＣカード２がコマンドに対する処理が実行可能な状態となったものと認識するようになっている。
【００３２】
ＡＴＲ信号を出力した後、ＩＣカード２のＣＰＵ２１は、ＩＣカード処理装置１からのコマンド受信待ちの状態となる（ステップＳ２０３）。ＩＣカード処理装置１からのコマンドの受信がなければ（ステップＳ２０４、ＮＯ）、ＣＰＵ２１は、コマンド受信待ち状態で所定時間が経過したか否かを判断する（ステップＳ２０５）。ここで、所定時間は、自己診断処理を実行するタイミングを判断するための時間であり、所定時間が経過したか否かは、ＩＣカード処理装置１から与えられる動作クロックが所定数に達したか否かにより判断するようにしても良い。
【００３３】
コマンド受信待ちの状態で所定時間が経過したと判断した場合（ステップＳ２０５、ＹＥＳ）、ＣＰＵ２１は、図４に示すような自己診断の実施状況管理テーブル２３ａを参照して、自己診断処理を全て完了しているか否かを判断する（ステップＳ２０６）。全ての自己診断処理を完了していると判断した場合（ステップＳ２０６、ＹＥＳ）、ＣＰＵ２１は、ステップＳ２０３へ戻り、コマンド受信待ち状態とする。
【００３４】
また、全ての自己診断処理を完了していないと判断した場合（ステップＳ２０６、ＮＯ）、ＣＰＵ２１は、自己診断処理の管理テーブル２３ａを参照して、未実施の自己診断処理から次に実行すべき自己診断処理を決定する（ステップＳ２０７）。たとえば、図４に示す構成例であれば、ＣＰＵ２１は、未実施の自己診断処理のうち最も実行順序が上位の自己診断処理を決定すれば良い。ただし、未実施の自己診断処理から次に実行すべき自己診断処理を決定する方法は、上述の方法に限定されるものではなく、例えば、アプリケーションごとに設定した実行順序により決定するようにしても良し、上位装置から指定される実行順序により決定するようにしても良い。
【００３５】
実行すべき自己診断処理を決定すると、ＣＰＵ２１は、実行を決定した自己診断処理を実行する（ステップＳ２０８）。自己診断処理が正常終了した場合（ステップＳ２０９、ＹＥＳ）、ＣＰＵ２１は、自己診断の実施状況管理テーブル２３ａに、正常終了した自己診断処理を実施済みとして登録する（ステップＳ２１０）。たとえば、図４に示す構成の自己診断の実施状況管理テーブル２３ａであれば、ＣＰＵ２１は、正常終了した自己診断処理に対応する自己診断項目の実施状況を「未」から「完了」に書き換える。
【００３６】
また、実行した自己診断処理がエラーとなった場合（ステップＳ２０９、ＮＯ）、ＣＰＵ２１は、動作を停止し、当該ＩＣカード２を以後の処理が実行不能な状態にする処理（ＨＡＬＴ）を行う（ステップＳ２１１）。また、自己診断処理がエラーとなった場合、ＩＣカード処理装置１との通信が可能な状態であれば、ＣＰＵ２１は、エラーとなった機能を停止するとともに、エラーとなった自己診断処理の内容をＩＣカード処理装置１へ通知するようにしても良い。この場合、ＩＣカード処理装置１は、ＩＣカード２からのエラーとなった自己診断処理（停止された機能）を示す通知を受けて、エラーとなった機能以外で所望の処理が実行できるか否か判断したり、エラーとなった機能以外で実行可能な処理のコマンドをＩＣカード２へ供給したりするようにしても良い。これにより、ＩＣカード処理装置１は、ＩＣカード２における自己診断でエラーが発生しても一部の機能を停止したままで、エラーとなった機能以外での処理を継続させることが可能となる。
【００３７】
自己診断処理が完了したことを実施状況管理テーブル２３ａに登録すると、ＣＰＵ２１は、自己診断処理を実行中にＩＣカード処理装置１からのコマンドを受信したか否かを判断する（ステップＳ２１２）。第１の処理例では、ＣＰＵ２１は、自己診断処理を実行中にＩＣカード処理装置１からのコマンドを受信した場合であっても、自己診断処理を実行中に受信したコマンドをＲＡＭ２３などに保持しておき、実行中の自己診断処理を中断させずに完了させるものとする。
【００３８】
自己診断処理中にコマンドを受信していなければ（ステップＳ２１２、ＮＯ）、ＣＰＵ２１は、ステップＳ２０３へ戻り、次のコマンドの受信待ち状態となる。また、ＣＰＵ２１は、ステップＳ２１２においてコマンドを受信していないと判断した場合には、ステップＳ２０６に戻るようにしても良い。この場合、コマンドの受信がない間、ＣＰＵ２１は、１つの自己診断処理を実行するたびに所定時間コマンドの受信待ち状態とすることなく、複数の自己診断処理を連続的に実行できる。
【００３９】
また、コマンドを受信したと判断した場合（ステップＳ２０４、ＹＥＳ）（ステップＳ２１２、ＹＥＳ）、ＣＰＵ２１は、受信したコマンドに対応する処理を実行する（ステップＳ２１３）。たとえば、ＣＰＵ２１は、コマンド処理として、受信したコマンドの処理内容を解釈し、解釈したコマンドの処理内容に従って処理を実行し、実行した処理内容を示すレスポンスを生成し、生成したレスポンスをＩＣカード処理装置１へ送信する。コマンド処理を終了すると、ＣＰＵ２１は、ステップＳ２０３へ戻り、上述した処理を繰り返す。
【００４０】
上記のような第１の処理例のＩＣカードは、活性化した後、自己診断処理を実行する前にＡＴＲ信号を出力し、ＡＴＲ信号を出力した後、受信したコマンドを実行するとともに、コマンドの受信待ち状態で複数の自己診断処理を１件ずつ順番に実行する。また、各自己診断処理の実施状況をテーブルに保持し、コマンドの待ち時間に未実行の自己診断処理を順番に実行する。
【００４１】
これにより、第１の処理例によれば、ＩＣカードは、活性化後、コマンド処理が実行可能となるまでの時間が短時間となり、上位装置に対して高速な応答が可能となる。また、第１の処理例によれば、自己診断処理をコマンドの受信待ち時間に行えるため、効率よく処理が行える。
【００４２】
次に、本実施形態に係るＩＣカード２における第２の処理例について説明する。  
第２の処理例では、ＩＣカード２は、第１の処理例と同様に、活性化後に自己診断処理を実行せずにＡＴＲ信号を出力してコマンドの受信待ち状態になり、コマンド受信待ち状態になってから所定時間が経過した時点でコマンド受信が無ければ、複数の自己診断処理を順番に１つずつ実行する。第２の処理例においては、自己診断処理の実行中に、コマンドの受信を開始したことを検知した場合、若しくはコマンドの受信を完了したことを検知した場合、ＩＣカード２は、実行中の自己診断処理を中止して受信したコマンドに対するコマンド処理を実行する。
【００４３】
図５は、実施形態に係るＩＣカード２における第２の処理例を説明するためのフローチャートである。  
ＩＣカード２は、ＩＣカード処理装置１からの動作電源及び動作クロックを受けて活性化する（ステップＳ３００）。活性化すると、ＩＣカード２のＣＰＵ２１は、ＲＡＭ２３上に自己診断の実施状況管理テーブル２３ａを作成し（ステップＳ３０１）、外部Ｉ／Ｆ２５によりＩＣカード処理装置１へＡＴＲ（Answer To Reset）信号を出力する（ステップＳ３０２）。この段階では、自己診断の実施状況管理テーブル２３ａは、初期状態のままであり各種の自己診断処理の実施状況が「未」となっている。
【００４４】
ＡＴＲ信号を出力した後、ＩＣカード２のＣＰＵ２１は、ＩＣカード処理装置１からのコマンド受信待ちの状態となる（ステップＳ３０３）。ＩＣカード処理装置１からのコマンドの受信がなければ（ステップＳ３０４、ＮＯ）、ＣＰＵ２１は、コマンド受信待ち状態で所定時間が経過したか否かを判断する（ステップＳ３０５）。コマンド受信待ちの状態で所定時間が経過したと判断した場合（ステップＳ３０５、ＹＥＳ）、ＣＰＵ２１は、自己診断の実施状況管理テーブル２３ａを参照して自己診断処理を全て完了しているか否かを判断する（ステップＳ３０６）。全ての自己診断処理を完了していると判断した場合（ステップＳ３０６、ＹＥＳ）、ＣＰＵ２１は、ステップＳ３０３へ戻り、コマンド受信待ち状態とする。
【００４５】
全ての自己診断処理を完了していないと判断した場合（ステップＳ３０６、ＮＯ）、ＣＰＵ２１は、自己診断処理の実施状況管理テーブル２３ａを参照して、未実行の自己診断処理のうち次に実行すべき自己診断処理を決定する（ステップＳ３０７）。実行すべき自己診断処理を決定すると、ＣＰＵ２１は、実行を決定した自己診断処理を開始する（ステップＳ３０８）。
【００４６】
第２の処理例では、ＣＰＵ２１は、自己診断処理を実行中もＩＣカード処理装置１からのコマンドの受信を検知する。自己診断処理を実行中にコマンドの受信（コマンドの受信開始或いは受信完了）が検知されず（ステップＳ３０９、ＮＯ）、自己診断処理を終了した場合（ステップＳ３１０、ＹＥＳ）、ＣＰＵ２１は、自己診断処理が正常終了したか否かを判断する（ステップＳ３１１）。
【００４７】
自己診断処理が正常終了した場合（ステップＳ３１１、ＹＥＳ）、ＣＰＵ２１は、自己診断の実施状況管理テーブル２３ａに、正常終了した自己診断処理を実施済みとして登録する（ステップＳ３１２）。また、自己診断処理がエラーとなった場合（ステップＳ３１１、ＮＯ）、ＣＰＵ２１は、動作を停止し、当該ＩＣカード２を以後の処理が実行不能な状態にする処理（ＨＡＬＴ）を行う（ステップＳ３１３）。なお、自己診断処理がエラーとなった場合、ＩＣカード処理装置１との通信が可能な状態であれば、ＣＰＵ２１は、エラーとなった自己診断処理の内容をＩＣカード処理装置１へ通知するようにしても良い。
【００４８】
自己診断処理が完了したことを実施状況管理テーブル２３ａに登録すると、ＣＰＵ２１は、ステップＳ３０３へ戻り、次のコマンドの受信待ち状態となる。また、ＣＰＵ２１は、自己診断処理が完了したことを登録した場合には、ステップＳ３０６に戻るようにしても良い。この場合、コマンドの受信がない間、ＣＰＵ２１は、１つの自己診断処理を完了するたびに所定時間コマンドの受信待ち状態とすることなく、複数の自己診断処理を連続的に実行できる。
【００４９】
また、自己診断処理の実行中にコマンドの受信（コマンドの受信開始或いは受信完了）を検知した場合（ステップＳ３０９、ＹＥＳ）、ＣＰＵ２１は、実行中の自己診断処理を中止し、受信したコマンドに対応する処理を実行する（ステップＳ３１４）。実行中の自己診断処理を中止した場合、実施状況管理テーブル２３ａは、更新されず、当該自己診断処理の実施状況が未実施のままとなる。これにより、次に実行すべき自己診断処理を決定する場合には当該自己診断処理は未実施の処理として認識され、再実行される。
【００５０】
また、ＣＰＵ２１は、コマンド処理として、コマンドの受信処理を完了し、受信したコマンドの処理内容を解釈し、解釈したコマンドの処理内容に従って処理を実行し、実行した処理内容を示すレスポンスを生成し、生成したレスポンスをＩＣカード処理装置１へ送信する。このようなコマンド処理を終了すると、ＣＰＵ２１は、ステップＳ３０３へ戻り、上述した処理を繰り返す。
【００５１】
上記のような第２の処理例のＩＣカードは、活性化した後に自己診断処理を実行せずにＡＴＲ信号を出力してコマンドの受信待ち状態とし、コマンドの受信待ち状態において複数の自己診断処理を１件ずつ順番に実行する。さらに、自己診断処理の実行中もコマンドの受信を検知し、自己診断処理の実行中にコマンドを受信した場合、実行中の自己診断処理を中止し、受信したコマンドに対する処理を実行する。
【００５２】
これにより、第２の処理例によれば、ＩＣカードは、活性化後、すぐにコマンド処理が可能となり、自己診断処理の実行中であってもコマンドを受信すると自己診断処理を中止してすぐにコマンド処理を実行できる。この結果として、ＩＣカードは、上位装置に対する高速な応答を可能としつつ、自己診断処理を効率よく実行できる。
【００５３】
次に、本実施形態に係るＩＣカード２における第３の処理例について説明する。  
第３の処理例では、ＩＣカード２は、活性化後に一部の自己診断処理（例えばＣＰＵ機能確認）を実行し、その一部の自己診断処理が完了した後、ＡＴＲ信号を出力してコマンドの受信待ち状態とする。ＡＴＲ信号を出力した後、ＩＣカード２は、第１の処理例あるいは第２の処理例と同様に、コマンド受信待ち状態になってから所定時間が経過した時点でコマンド受信が無ければ、複数の自己診断処理を順番に１つずつ実行する。
【００５４】
図６は、実施形態に係るＩＣカード２における第３の処理例を説明するためのフローチャートである。  
ＩＣカード２は、ＩＣカード処理装置１からの動作電源及び動作クロックを受けて活性化する（ステップＳ４００）。活性化すると、ＩＣカード２のＣＰＵ２１は、ＲＡＭ２３上に自己診断の実施状況管理テーブル２３ａを作成する（ステップＳ４０１）。また、ＣＰＵ２１は、複数の自己診断処理のうち、ＡＴＲ信号を出力する前に完了しておくべき自己診断処理を選定し、選定した一部の自己診断処理を実行する（ステップＳ４０２）。ＡＴＲ信号を出力する前に完了しておくべき一部の自己診断処理は、たとえば、ＩＣカードの基本的な動作を司る機能をチェックする自己診断処理（例えば、ＣＰＵ機能確認）であり、予め設定されるものとする。
【００５５】
ＡＴＲ信号を出力する前に実行する自己診断処理の実行中にエラーが発生した場合（ステップＳ４０３、ＮＯ）、ＣＰＵ２１は、動作を停止し、当該ＩＣカード２を以後の処理が実行不能な状態にする処理（ＨＡＬＴ）を行い、ＩＣカード２の動作を停止する（ステップＳ４０４）。ここで、ＡＴＲ信号を出力する前に実行するステップＳ４０２の自己診断処理は、ＩＣカード２の基本的な機能であるため、ＩＣカード２は処理を続けることなくＨＡＬＴ（ＣＰＵ停止）とする。
【００５６】
ＡＴＲ信号を出力する前に実行すべき自己診断処理が正常終了した場合（ステップＳ４０３、ＹＥＳ）、ＣＰＵ２１は、自己診断の実施状況管理テーブル２３ａにおける正常終了した各自己診断処理の実施状況を示す情報を「完了」に書き換える（ステップＳ４０５）。ただし、ステップＳ４０２で実行する自己診断処理は、ＡＴＲ信号を出力する前に必ず完了させておく自己診断であるため、自己診断の実施状況管理テーブル２３ａで管理しなくても良い。この場合、ステップＳ４０５の処理は省略される。
【００５７】
自己診断の実施状況管理テーブル２３ａの更新が完了すると、ＣＰＵ２１は、外部Ｉ／Ｆ２５によりＩＣカード処理装置１へＡＴＲ（Answer To Reset）信号を出力する（ステップＳ４０６）。ＡＴＲ信号を出力した後、ＩＣカード２のＣＰＵ２１は、ＩＣカード処理装置１からのコマンド受信待ちの状態となる（ステップＳ４０７）。
【００５８】
ＩＣカード処理装置１からのコマンドの受信がなければ（ステップＳ４０８、ＮＯ）、ＣＰＵ２１は、コマンド受信待ち状態で所定時間が経過したか否かを判断する（ステップＳ４０９）。コマンド受信待ちの状態で所定時間が経過したと判断した場合（ステップＳ４０９、ＹＥＳ）、ＣＰＵ２１は、自己診断の実施状況管理テーブル２３ａを参照して、自己診断処理を全て完了しているか否かを判断する（ステップＳ４１０）。全ての自己診断処理を完了していると判断した場合（ステップＳ４１０、ＹＥＳ）、ＣＰＵ２１は、ステップＳ４０７へ戻り、コマンド受信待ち状態とする。
【００５９】
また、全ての自己診断処理を完了していないと判断した場合（ステップＳ４１０、ＮＯ）、ＣＰＵ２１は、自己診断処理の管理テーブル２３ａを参照して、未実行の自己診断処理のうち次に実行すべき自己診断処理を決定する（ステップＳ４１１）。実行すべき自己診断処理を決定すると、ＣＰＵ２１は、実行を決定した自己診断処理を実行する（ステップＳ４１２）。実行した自己診断処理が正常終了した場合（ステップＳ４１３、ＹＥＳ）、ＣＰＵ２１は、自己診断の実施状況管理テーブル２３ａに、正常終了した自己診断処理の実施状況を示す情報を「完了」に書き換える（ステップＳ４１４）。
【００６０】
また、実行した自己診断処理がエラーとなった場合（ステップＳ４１３、ＮＯ）、ＣＰＵ２１は、動作を停止し、当該ＩＣカード２を以後の処理が実行不能な状態にする処理（ＨＡＬＴ）を行う（ステップＳ４１５）。また、自己診断処理がエラーとなった場合、ＩＣカード処理装置１との通信が可能な状態であれば、ＣＰＵ２１は、エラーとなった機能を停止するとともに、エラーとなった自己診断処理の内容をＩＣカード処理装置１へ通知するようにしても良い。この場合、ＩＣカード処理装置１は、ＩＣカード２からのエラーとなった自己診断処理を示す通知を受けて、エラーとなった機能以外で実行可能な処理であればコマンドをＩＣカード２へ供給するようにしても良い。これにより、ＩＣカード２は、自己診断でエラーとなった場合であっても、エラーとなった機能以外で処理を継続することが可能となる。
【００６１】
自己診断処理が完了したことを登録すると、ＣＰＵ２１は、自己診断処理を実行中にＩＣカード処理装置１からのコマンドを受信したか否かを判断する（ステップＳ４１６）。コマンドを受信していなければ（ステップＳ４１６、ＮＯ）、ＣＰＵ２１は、ステップＳ４０７へ戻り、次のコマンドの受信待ち状態となる。また、ＣＰＵ２１は、ステップＳ４１６においてコマンドを受信していないと判断した場合には、ステップＳ４１０に戻るようにしても良い。この場合、コマンドの受信がない間、ＣＰＵ２１は、１つの自己診断処理を実行するたびに所定時間コマンドの受信待ち状態とすることなく、複数の自己診断処理を連続的に実行できる。
【００６２】
コマンドを受信したと判断した場合（ステップＳ４０８、ＹＥＳ）（ステップＳ４１６、ＹＥＳ）、ＣＰＵ２１は、受信したコマンドに対応する処理を実行する（ステップＳ４１７）。コマンド処理を終了すると、ＣＰＵ２１は、ステップＳ４０７へ戻り、上述した処理を繰り返す。
【００６３】
なお、第３の処理例は、第２の処理例を組み合わせて実施しても良い。すなわち、第３の処理例として説明したステップＳ４１１〜Ｓ４１６の処理は、第１の処理例で説明したＳ２０７〜Ｓ２１２に相当する処理であるが、ステップＳ４１１〜Ｓ４１６の処理は、第２の処理例で説明したＳ３０７〜Ｓ３１３に相当する処理に置き換えても実施するようにしても良い。
【００６４】
上記のような第３の処理例のＩＣカードは、活性化した後、一部の自己診断処理（例えば、ＣＰＵ機能チェックなどのＩＣカードの基本的な動作を司る機能の自己診断）を実行し、それらの一部の自己診断処理が正常終了した後にＡＴＲ信号を出力する。ＡＴＲ信号を出力した後、ＩＣカードは、受信したコマンドを随時実行するとともに、コマンドの受信待ち状態において複数の自己診断処理を１件ずつ順番に実行する。
【００６５】
これにより、第３の処理例によれば、ＩＣカードは、活性化後に基本的な動作を司る機能をチェックする一部の自己診断処理を実施することができ、基本的な動作を保障した状態でコマンドに対する処理を高速に行うことができる。この結果として、ＩＣカード２の基本的な動作を保障しつつ、上位装置に対する高速な応答が実現できる。
【００６６】
次に、本実施形態に係るＩＣカード２における第４の処理例について説明する。  
第４の処理例では、ＩＣカード２は、活性化後に自己診断処理を実行せず、直ちにＡＴＲ信号を出力してコマンドの受信待ち状態になる。コマンド受信待ち状態になった後、コマンドを受信すると、ＩＣカード２は、受信したコマンドに応じた自己診断処理を完了させ、その自己診断処理が完了してからコマンド処理を実行するものである。
【００６７】
図７は、実施形態に係るＩＣカード２における第４の処理例を説明するためのフローチャートである。  
ＩＣカード２は、ＩＣカード処理装置１からの動作電源及び動作クロックを受けて活性化する（ステップＳ５００）。活性化すると、ＩＣカード２のＣＰＵ２１は、ＲＡＭ２３上に自己診断の実施状況管理テーブル２３ａを作成し（ステップＳ５０１）、外部Ｉ／Ｆ２５によりＩＣカード処理装置１へＡＴＲ（Answer To Reset）信号を出力する（ステップＳ５０２）。
【００６８】
ＡＴＲ信号を出力した後、ＩＣカード２のＣＰＵ２１は、ＩＣカード処理装置１からのコマンド受信待ちの状態となる（ステップＳ５０３）。ＩＣカード処理装置１からのコマンドの受信があった場合（ステップＳ５０４、ＹＥＳ）、ＣＰＵ２１は、受信したコマンドの処理内容を解釈する（ステップＳ５０５）。受信したコマンドの処理内容を解釈すると、ＣＰＵ２１は、受信したコマンドが不適切な処理内容であるか否かを判断する（ステップＳ５０６）。たとえば、ＣＰＵ２１は、受信したコマンドにおけるパラメータ値が適切であるか、あるいは、受信したコマンドの実行順序などが正当であるかなどにより、受信したコマンドが不適切な内容であるか否かを判断する。受信したコマンドが不適切であると判断した場合（ステップＳ５０６、ＹＥＳ）、ＣＰＵ２１は、エラー内容などを示す情報を含むレスポンスを送信するなどのエラー処理を行う（ステップＳ５０７）。
【００６９】
受信したコマンドが不適切なものでないと判断した場合（ステップＳ５０６、ＮＯ）、ＣＰＵ２１は、自己診断のコマンド別管理テーブル２４ａを参照して、解釈したコマンドの処理内容に対してコマンド処理の実行前に実施しておくべき自己診断処理を判断する（ステップＳ５０８）。
【００７０】
自己診断のコマンド別管理テーブル２４ａは、各コマンドについてコマンド処理を実行する前に実施しておくべき自己診断処理を示す情報を格納したテーブルである。たとえば、自己診断のコマンド別管理テーブル２４ａには、各コマンドのコマンド処理で使用する機能に対応する自己診断処理を示す情報を設定する。本実施形態においては、ＩＣカード２が実行すべき自己診断処理は、例えば、各種の機能ごとの自己診断処理に分割されており、自己診断のコマンド別管理テーブル２４ａは、コマンド別に分割された個々の自己診断処理が実行すべきか否かを示す情報を記憶するものとする。
【００７１】
図８は、自己診断のコマンド別管理テーブル２４ａの構成例を示す図である。図８に示す自己診断のコマンド別管理テーブル２４ａの例では、コマンド（コマンドに対する処理内容）ごとに、各自己診断処理（自己診断項目）を実施すべきか不要であるかを示す情報が格納されている。たとえば、図８に示す例では、アプリケーションの選択を要求するコマンドに対しては、ＣＰＵ機能確認、プログラム領域のＣＲＣチェックおよび共通データのデータ領域のＣＲＣチェックの自己診断処理が実施すべきで、その他の自己診断処理が不要と設定されている。
【００７２】
実施すべき自己診断処理を判断すると、ＣＰＵ２１は、さらに、自己診断の実施状況管理テーブル２３ａを参照して、実施しておくべきと判断した各自己判断処理のうち未処理の自己診断処理を実際に実行すべき自己判断処理として特定する（ステップＳ５０９）。実際に実行すべきる自己判断処理を特定すると、ＣＰＵ２１は、実行すべき自己診断処理を実行する（ステップＳ５１０）。
【００７３】
自己診断処理の実行中にエラーが発生した場合（ステップＳ５１１、ＮＯ）、ＣＰＵ２１は、動作を停止し、当該ＩＣカード２を以後の処理が実行不能な状態にする処理（ＨＡＬＴ）を行う（ステップＳ５１２）。また、自己診断処理がエラーとなった場合であってもＩＣカード処理装置１との通信が可能な状態であれば、ＣＰＵ２１は、エラーとなった機能を停止するとともに、エラーとなった自己診断処理の内容をＩＣカード処理装置１へ通知するようにしても良い。
【００７４】
自己診断処理が正常終了した場合（ステップＳ５１１、ＹＥＳ）、ＣＰＵ２１は、自己診断の実施状況管理テーブル２３ａにおける正常終了した各自己診断処理の実施状況を示す情報を「完了」に書き換える（ステップＳ５１３）。自己診断の実施状況管理テーブル２３ａの更新が完了すると、ＣＰＵ２１は、受信したコマンドに対する処理を実行する（ステップＳ５１４）。コマンドに対する処理を実行すると、ＣＰＵ２１は、当該コマンドに対する処理結果を示す情報を含むレスポンスを生成し、生成したレスポンスを外部Ｉ／Ｆ２５によりＩＣカード処理装置１へ出力する（ステップＳ５１５）。受信したコマンドに対するレスポンスを送信した後、ＣＰＵ２１は、ステップＳ５０３へ戻り、上述した処理を繰り返す。
【００７５】
上記のような第４の処理例のＩＣカードは、活性化した後、自己診断処理を実行する前にＡＴＲ信号を出力する。ＡＴＲ信号を出力した後、ＩＣカードは、コマンドを受信するごとに、当該コマンドの処理を実行する前に実施しておくべき自己診断処理を判断し、実施しておくべきと判断した自己診断処理のうち未実施の自己診断処理をコマンド処理を実行する前に実行する。
【００７６】
これにより、第４の処理例によれば、ＩＣカードは、活性化後、直ぐにＡＴＲ信号を出力することにより上位装置に対する高速な応答が可能となり、受信したコマンドに応じて必要な自己診断処理を実行することにより、コマンドの実行前にコマンドに応じた自己診断を確実に実施することができる。
【００７７】
次に、本実施形態に係るＩＣカード２における第５の処理例について説明する。  
第５の処理例としては、第１の処理例と第４の処理例とを組み合わせた処理が考えられる。つまり、第５の処理例では、ＩＣカード２は、活性化後に自己診断処理を実行せずにＡＴＲ信号を出力してコマンドの受信待ち状態になる。受信待ち状態になってから所定時間が経過してもコマンド受信が無ければ、ＩＣカード２は、複数の自己診断処理を順番に１つずつ実行し、コマンドの受信が有れば、受信したコマンドに応じた自己診断処理のうち未実施の自己診断処理を完了させてからコマンド処理を実行するものである。
【００７８】
図９及び図１０は、実施形態に係るＩＣカード２における第５の処理例を説明するためのフローチャートである。  
図９に示すステップＳ６００〜Ｓ６１２は、第１の処理例として説明したステップＳ２００〜Ｓ２１２に相当する処理であり、図１０に示すＳ６１５〜Ｓ６２５は、第４の処理例として説明した図７のステップＳ５０５〜Ｓ５１５に相当する処理である。このため、第５の処理例としては、各ステップについての詳細な説明は省略するものとする。
【００７９】
上記のような第５の処理例によれば、ＩＣカードは、活性化後の上位装置に対する高速応答を実現でき、かつ、コマンドの実行前にコマンドに応じた自己診断を確実に実施することができる。
【００８０】
次に、本実施形態に係るＩＣカード２における第６の処理例について説明する。  
第６の処理例としては、第２の処理例と第４の処理例とを組み合わせた処理が考えられる。つまり、第６の処理例では、ＩＣカード２は、活性化後に自己診断処理を実行せずにＡＴＲ信号を出力してコマンドの受信待ち状態になる。受信待ち状態になってから所定時間が経過してもコマンド受信が無ければ、ＩＣカード２は、複数の自己診断処理を順番に実行し、コマンド待ち時間に実行した自己診断処理の実行中にコマンドの受信を検知した場合には、実行中の自己診断処理を中止して受信したコマンドに対するコマンド処理を実行する。さらに、コマンドを受信した場合、ＩＣカード２は、受信したコマンドに応じた自己診断処理のうち未実施の自己診断処理を完了させてからコマンド処理を実行するものである。
【００８１】
たとえば、第６の処理例として、ＩＣカード２は、第２の処理例として説明した図５のステップＳ３００〜Ｓ３１３に相当する処理を実行しつつ、コマンドを受信した場合には、第４の処理例として説明した図７のステップＳ５０５〜Ｓ５１５に相当する処理を実行するようにすれば良い。  
上記のような第６の処理例によれば、ＩＣカードは、活性化後の上位装置への高速応答を実現でき、かつ、コマンドの実行前にコマンドに応じた自己診断を確実に実施することができる。
【００８２】
次に、本実施形態に係るＩＣカード２における第７の処理例について説明する。  
第７の処理例としては、第３の処理例と第４の処理例とを組み合わせた処理が考えられる。つまり、第７の処理例では、ＩＣカード２は、活性化後に一部の自己診断処理（例えばＩＣカードの基本的な動作を司る機能の確認）を実行し、その一部の自己診断処理が完了した後、ＡＴＲ信号を出力してコマンドの受信待ち状態とする。ＡＴＲ信号を出力した後、ＩＣカード２は、コマンド受信待ち状態が所定時間継続すれば、複数の自己診断処理を順番に実行し、コマンドを受信した場合には、受信したコマンドに応じた自己診断処理のうち未実施の自己診断処理を完了させてからコマンド処理を実行するものである。
【００８３】
たとえば、第７の処理例として、ＩＣカード２は、第３の処理例として説明した図６のステップＳ４００〜Ｓ４１６に相当する処理を実行しつつ、コマンドを受信した場合には、第４の処理例として説明した図７のステップＳ５０５〜Ｓ５１５に相当する処理を実行するようにすれば良い。  
上記のような第７の処理例によれば、ＩＣカードは、活性化後にＩＣカードの基本的な動作を司る機能を確認する自己診断を確実に行った上での上位装置への高速な応答を実現でき、かつ、コマンド処理の実行前にはコマンドに応じた自己診断処理を確実に完了しておくようにすることができる。
【００８４】
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【符号の説明】
【００８５】
１…ＩＣカード処理装置（外部装置）、２…ＩＣカード（携帯可能電子装置）、１１…制御部、１２…ディスプレイ、１３…操作部、１４…カードリーダライタ、Ｃ…ＩＣカード本体、Ｍ…ＩＣモジュール、Ｃａ…ＩＣチップ、２１…ＣＰＵ、２２…ＲＯＭ、２３…ＲＡＭ、２３ａ…自己診断の実施状況管理テーブル、２４…不揮発性メモリ、２４ａ…自己診断のコマンド別管理テーブル、２５…外部Ｉ/Ｆ、２６…コプロセッサ。
【図１】
2014059731.tif 000003
【図２】
2014059731.tif 000004
【図３】
2014059731.tif 000005
【図４】
2014059731.tif 000006
【図５】
2014059731.tif 000007
【図６】
2014059731.tif 000008
【図７】
2014059731.tif 000009
【図８】
2014059731.tif 000010
【図９】
2014059731.tif 000011
【図１０】
2014059731.tif 000012