(57)【要約】【課題】自己診断の処理時間を著しく短縮することができる携帯可能電子装置およびＩＣカードを提供する。【解決手段】メモリと、このメモリに対してデータの読出しおよびまたは書込みを行なうＣＰＵを有し、カードリーダ・ライタからコマンドが入力されると、このコマンドに対応した処理を実行してその処理結果をカードリーダ・ライタへ出力し、かつ、少なくとも１つ以上のアプリケーションが登録されているとともに、これらアプリケーションごとに当該アプリケーションが動作するためのプログラムを格納したプログラム領域および当該アプリケーションが使用する作業用メモリ領域を有していて、カードリーダ・ライタから入力されるアプリケーション選択コマンドにより所望のアプリケーションが選択可能なＩＣカードにおいて、アプリケーション選択コマンドによりアプリケーションが選択された際、当該選択されたアプリケーションが利用するメモリ領域を自己診断する。【選択図】      図１０
2006252284.tif 000002
【特許請求の範囲】
【請求項１】
メモリと、このメモリに対してデータの読出しおよびまたは書込みを行なう制御素子を有し、外部からコマンドが入力されると、このコマンドに対応した処理を実行してその処理結果を外部へ出力し、かつ、少なくとも１つ以上のアプリケーションが登録されているとともに、これらアプリケーションごとに使用するメモリ領域を有していて、外部から入力されるアプリケーション選択コマンドにより所望のアプリケーションが選択可能な携帯可能電子装置において、
外部からのアプリケーション選択コマンドによりアプリケーションが選択された際、当該選択されたアプリケーションが利用するメモリ領域を正常に動作するか否か自己診断する自己診断手段を具備したことを特徴とする携帯可能電子装置。
【請求項２】
前記メモリ領域とは、当該アプリケーションが動作するためのプログラムを格納したプログラム領域および当該アプリケーションが使用する作業用メモリ領域であることを特徴とする請求項１記載の携帯可能電子装置。
【請求項３】
前記自己診断手段は、アプリケーションごとに対応するメモリ領域が自己診断されているか否かを示す自己診断履歴テーブルを持つことを特徴とする請求項１記載の携帯可能電子装置。
【請求項４】
前記自己診断手段は、複数のアプリケーションが選択される場合で、各アプリケーションが使用するメモリ領域が重複する場合には、既に自己診断が済んでいるメモリ領域は自己診断しないことを特徴とする請求項１記載の携帯可能電子装置。
【請求項５】
メモリと、このメモリに対してデータの読出しおよびまたは書込みを行なう制御素子を有し、外部装置からコマンドが入力されると、このコマンドに対応した処理を実行してその処理結果を外部装置へ出力し、かつ、少なくとも１つ以上のアプリケーションが登録されているとともに、これらアプリケーションごとに当該アプリケーションが動作するためのプログラムを格納したプログラム領域および当該アプリケーションが使用する作業用メモリ領域を有していて、外部装置から入力されるアプリケーション選択コマンドにより所望のアプリケーションが選択可能な携帯可能電子装置において、
当該携帯可能電子装置の活性化後、前記外部装置に対して初期応答データを出力する初期応答出力手段と、
この初期応答出力手段により初期応答データが出力された後、前記外部装置からアプリケーション選択コマンドが入力されると、当該アプリケーション選択コマンドにより指定されたアプリケーションが登録されているか否かを判定する第１の判定手段と、
この第１の判定手段による判定の結果、指定されたアプリケーションが登録されている場合、当該指定されたアプリケーションのプログラム領域は自己診断済か否かを判定する第２の判定手段と、
この第２の判定手段による判定の結果、指定されたアプリケーションのプログラム領域が自己診断済でない場合、当該プログラム領域を正常に動作するか否か自己診断する第１の自己診断手段と、
前記第２の判定手段による判定の結果、指定されたアプリケーションのプログラム領域が自己診断済の場合、あるいは、前記第１の自己診断手段による自己診断が終了すると、当該指定されたアプリケーションの作業用メモリ領域は自己診断済か否かを判定する第３の判定手段と、
この第３の判定手段による判定の結果、指定されたアプリケーションの作業用メモリ領域が自己診断済でない場合、当該作業用メモリ領域を正常に動作するか否か自己診断する第２の自己診断手段と、
前記第３の判定手段による判定の結果、指定されたアプリケーションの作業用メモリ領域が自己診断済の場合、あるいは、前記第２の自己診断手段による自己診断が終了した後、前記外部装置からコマンドが入力されると、当該コマンドに対する処理を実行するコマンド処理手段と、
を具備したことを特徴とする携帯可能電子装置。
【請求項６】
当該携帯可能電子装置の活性化後、前記初期応答出力手段により初期応答データが出力されるまでの間に少なくともデータの送受信に必要な機能に対してのみ正常に動作するか否かの自己診断を行なう第３の自己診断手段をさらに具備したことを特徴とする請求項５記載の携帯可能電子装置。
【請求項７】
メモリと、このメモリに対してデータの読出しおよびまたは書込みを行なう制御素子を有し、外部からコマンドが入力されると、このコマンドに対応した処理を実行してその処理結果を外部へ出力し、かつ、少なくとも１つ以上のアプリケーションが登録されているとともに、これらアプリケーションごとに使用するメモリ領域を有していて、外部から入力されるアプリケーション選択コマンドにより所望のアプリケーションが選択可能なＩＣカードにおいて、
外部からのアプリケーション選択コマンドによりアプリケーションが選択された際、当該選択されたアプリケーションが利用するメモリ領域を正常に動作するか否か自己診断する自己診断手段を有したＩＣモジュールと、
このＩＣモジュールを収納したＩＣカード本体と、
を具備したことを特徴とするＩＣカード。
【請求項８】
メモリと、このメモリに対してデータの読出しおよびまたは書込みを行なう制御素子を有し、外部装置からコマンドが入力されると、このコマンドに対応した処理を実行してその処理結果を外部装置へ出力し、かつ、少なくとも１つ以上のアプリケーションが登録されているとともに、これらアプリケーションごとに当該アプリケーションが動作するためのプログラムを格納したプログラム領域および当該アプリケーションが使用する作業用メモリ領域を有していて、外部装置から入力されるアプリケーション選択コマンドにより所望のアプリケーションが選択可能なＩＣカードにおいて、
当該ＩＣカードの活性化後、前記外部装置に対して初期応答データを出力する初期応答出力手段と、この初期応答出力手段により初期応答データが出力された後、前記外部装置からアプリケーション選択コマンドが入力されると、当該アプリケーション選択コマンドにより指定されたアプリケーションが登録されているか否かを判定する第１の判定手段と、この第１の判定手段による判定の結果、指定されたアプリケーションが登録されている場合、当該指定されたアプリケーションのプログラム領域は自己診断済か否かを判定する第２の判定手段と、この第２の判定手段による判定の結果、指定されたアプリケーションのプログラム領域が自己診断済でない場合、当該プログラム領域を正常に動作するか否か自己診断する第１の自己診断手段と、前記第２の判定手段による判定の結果、指定されたアプリケーションのプログラム領域が自己診断済の場合、あるいは、前記第１の自己診断手段による自己診断が終了すると、当該指定されたアプリケーションの作業用メモリ領域は自己診断済か否かを判定する第３の判定手段と、この第３の判定手段による判定の結果、指定されたアプリケーションの作業用メモリ領域が自己診断済でない場合、当該作業用メモリ領域を正常に動作するか否か自己診断する第２の自己診断手段と、前記第３の判定手段による判定の結果、指定されたアプリケーションの作業用メモリ領域が自己診断済の場合、あるいは、前記第２の自己診断手段による自己診断が終了した後、前記外部装置からコマンドが入力されると、当該コマンドに対する処理を実行するコマンド処理手段とを有したＩＣモジュールと、
このＩＣモジュールを収納したＩＣカード本体と、
を具備したことを特徴とするＩＣカード。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、たとえば、書込み、書換えが可能な不揮発性メモリおよびＣＰＵ（セントラル・プロセッシング・ユニット）などの制御素子を有し、選択的に外部との間でデータの入出力を行なう手段を備えたＩＣチップを内蔵した、いわゆるＩＣカードと称される携帯可能電子装置に係り、特に複数のアプリケーションが登録されている携帯可能電子装置に関する。
【背景技術】
【０００２】
最近、携帯可能電子装置として、不揮発性メモリ（ＥＥＰＲＯＭ）、揮発性メモリ（ＲＡＭ）、これらのメモリに対してデータの読出しおよびまたは書込みなどを行なう制御素子（ＣＰＵ）、および、ＣＰＵの動作用プログラムなどを格納したＲＯＭを有し、選択的に外部との間でデータの入出力を行なう手段を備えたＩＣチップを内蔵したＩＣカードが産業各方面で利用されている。  
一般に、この種のＩＣカードは、コマンドやレスポンスを用いて、外部装置（ＩＣカードリーダ・ライタ）との間でデータの入出力を行なうようになっている。
【０００３】
ところで、このようなＩＣカードは、正常に動作するか否かの自己診断を行なう自己診断機能を備えていないのが一般的であるが、最近、そのような自己診断機能を備えたものが開発されている（たとえば、特許文献１、特許文献２参照）。  
特許文献１に記載されたＩＣカードは、活性化後に外部装置に対して行なわれる初期応答データの出力前に全ての自己診断を実施するものであり、特許文献２に記載されたＩＣカードは、活性化後、初期応答データの出力に使用するレジスタなどの自己診断を実施した後、初期応答データの先頭バイトのみを出力してから残りの自己診断を実施するものである。
【０００４】
一般に、ＩＣカードにおける自己診断の内容は、ＲＯＭ、ＲＡＭ、ＣＰＵ、ＥＥＰＲＯＭなどが正しく動作するか否かを確認するものである。自己診断の例として、ＲＯＭは、全てのＲＯＭデータに対してＣＲＣ（Cyclic Redundancy Code：巡回符号）計算を行なうことにより、あらかじめ計算しておいたＣＲＣデータと比較し、両者が一致している場合はＲＯＭデータに問題がないとするものである。
【０００５】
また、ＲＡＭは、全てのバイトに対してデータが正しく書込まれ、読出されるか検査する。たとえば、各バイトにデータ「０ｘＡＡ」を書込み、書込後に読出し、次にデータ「０ｘ５５」を書込み、書込後に読出し、問題ないかを確認する。ＣＰＵは、各レジスタに対してＲＡＭと同様の確認を行なう。ＥＥＰＲＯＭに対しても、自己診断可能な領域に対してＲＡＭと同様の確認を行なう。
【特許文献１】特開昭６３−１８０１８５号公報
【特許文献２】特開昭６３−２３４３７５号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
従来のＩＣカードにおける自己診断のタイミングは、上述したように、リセット解除後から初期応答データの出力前まで、あるいは、初期応答データの出力中に実施している。自己診断を実施できるタイミングは、国際標準仕様であるＩＳＯ−７８１６−３で規定されているタイミングの範囲で、ＩＣカードが独自で実施している。ＩＳＯ−７８１６−３に記載されているタイミングとは、リセット解除後から初期応答データの先頭までは、４００〜４００００クロック以内で行なうこと、初期応答データは、１ビットが３７２クロックで構成されるビットの間隔で送信すること、などである。  
このため、リソースであるＲＡＭ、ＥＥＰＲＯＭ、ＲＯＭのメモリサイズが大きくなると、自己診断の処理時間が長くなり、上記のタイミングでは全てを自己診断するのは困難となっている。
【０００７】
そこで、本発明は、動作するために最低限必要な機能のみに自己診断を行ない、その他の診断はアプリケーションが選択された場合に実行し、新たなアプリケーションが必要としている新たなリソースに対して自己診断を実施することで、リソースが増えた場合でも、活性化時に全てのリソースに対して自己診断するのではなく必要の範囲で順次診断を実施するので、自己診断の処理時間を著しく短縮することができる携帯可能電子装置およびＩＣカードを提供することを目的とする。
【課題を解決するための手段】
【０００８】
本発明の携帯可能電子装置は、メモリと、このメモリに対してデータの読出しおよびまたは書込みを行なう制御素子を有し、外部からコマンドが入力されると、このコマンドに対応した処理を実行してその処理結果を外部へ出力し、かつ、少なくとも１つ以上のアプリケーションが登録されているとともに、これらアプリケーションごとに使用するメモリ領域を有していて、外部から入力されるアプリケーション選択コマンドにより所望のアプリケーションが選択可能な携帯可能電子装置において、外部からのアプリケーション選択コマンドによりアプリケーションが選択された際、当該選択されたアプリケーションが利用するメモリ領域を正常に動作するか否か自己診断する自己診断手段を具備している。
【０００９】
また、本発明の携帯可能電子装置は、メモリと、このメモリに対してデータの読出しおよびまたは書込みを行なう制御素子を有し、外部装置からコマンドが入力されると、このコマンドに対応した処理を実行してその処理結果を外部装置へ出力し、かつ、少なくとも１つ以上のアプリケーションが登録されているとともに、これらアプリケーションごとに当該アプリケーションが動作するためのプログラムを格納したプログラム領域および当該アプリケーションが使用する作業用メモリ領域を有していて、外部装置から入力されるアプリケーション選択コマンドにより所望のアプリケーションが選択可能な携帯可能電子装置において、当該携帯可能電子装置の活性化後、前記外部装置に対して初期応答データを出力する初期応答出力手段と、この初期応答出力手段により初期応答データが出力された後、前記外部装置からアプリケーション選択コマンドが入力されると、当該アプリケーション選択コマンドにより指定されたアプリケーションが登録されているか否かを判定する第１の判定手段と、この第１の判定手段による判定の結果、指定されたアプリケーションが登録されている場合、当該指定されたアプリケーションのプログラム領域は自己診断済か否かを判定する第２の判定手段と、この第２の判定手段による判定の結果、指定されたアプリケーションのプログラム領域が自己診断済でない場合、当該プログラム領域を正常に動作するか否か自己診断する第１の自己診断手段と、前記第２の判定手段による判定の結果、指定されたアプリケーションのプログラム領域が自己診断済の場合、あるいは、前記第１の自己診断手段による自己診断が終了すると、当該指定されたアプリケーションの作業用メモリ領域は自己診断済か否かを判定する第３の判定手段と、この第３の判定手段による判定の結果、指定されたアプリケーションの作業用メモリ領域が自己診断済でない場合、当該作業用メモリ領域を正常に動作するか否か自己診断する第２の自己診断手段と、前記第３の判定手段による判定の結果、指定されたアプリケーションの作業用メモリ領域が自己診断済の場合、あるいは、前記第２の自己診断手段による自己診断が終了した後、前記外部装置からコマンドが入力されると、当該コマンドに対する処理を実行するコマンド処理手段とを具備している。
【００１０】
また、本発明のＩＣカードは、メモリと、このメモリに対してデータの読出しおよびまたは書込みを行なう制御素子を有し、外部からコマンドが入力されると、このコマンドに対応した処理を実行してその処理結果を外部へ出力し、かつ、少なくとも１つ以上のアプリケーションが登録されているとともに、これらアプリケーションごとに使用するメモリ領域を有していて、外部から入力されるアプリケーション選択コマンドにより所望のアプリケーションが選択可能なＩＣカードにおいて、外部からのアプリケーション選択コマンドによりアプリケーションが選択された際、当該選択されたアプリケーションが利用するメモリ領域を正常に動作するか否か自己診断する自己診断手段を有したＩＣモジュールと、このＩＣモジュールを収納したＩＣカード本体とを具備している。
【００１１】
さらに、本発明のＩＣカードは、メモリと、このメモリに対してデータの読出しおよびまたは書込みを行なう制御素子を有し、外部装置からコマンドが入力されると、このコマンドに対応した処理を実行してその処理結果を外部装置へ出力し、かつ、少なくとも１つ以上のアプリケーションが登録されているとともに、これらアプリケーションごとに当該アプリケーションが動作するためのプログラムを格納したプログラム領域および当該アプリケーションが使用する作業用メモリ領域を有していて、外部装置から入力されるアプリケーション選択コマンドにより所望のアプリケーションが選択可能なＩＣカードにおいて、当該ＩＣカードの活性化後、前記外部装置に対して初期応答データを出力する初期応答出力手段と、この初期応答出力手段により初期応答データが出力された後、前記外部装置からアプリケーション選択コマンドが入力されると、当該アプリケーション選択コマンドにより指定されたアプリケーションが登録されているか否かを判定する第１の判定手段と、この第１の判定手段による判定の結果、指定されたアプリケーションが登録されている場合、当該指定されたアプリケーションのプログラム領域は自己診断済か否かを判定する第２の判定手段と、この第２の判定手段による判定の結果、指定されたアプリケーションのプログラム領域が自己診断済でない場合、当該プログラム領域を正常に動作するか否か自己診断する第１の自己診断手段と、前記第２の判定手段による判定の結果、指定されたアプリケーションのプログラム領域が自己診断済の場合、あるいは、前記第１の自己診断手段による自己診断が終了すると、当該指定されたアプリケーションの作業用メモリ領域は自己診断済か否かを判定する第３の判定手段と、この第３の判定手段による判定の結果、指定されたアプリケーションの作業用メモリ領域が自己診断済でない場合、当該作業用メモリ領域を正常に動作するか否か自己診断する第２の自己診断手段と、前記第３の判定手段による判定の結果、指定されたアプリケーションの作業用メモリ領域が自己診断済の場合、あるいは、前記第２の自己診断手段による自己診断が終了した後、前記外部装置からコマンドが入力されると、当該コマンドに対する処理を実行するコマンド処理手段とを有したＩＣモジュールと、このＩＣモジュールを収納したＩＣカード本体とを具備している。
【発明の効果】
【００１２】
本発明によれば、動作するために最低限必要な機能のみに自己診断を行ない、その他の診断はアプリケーションが選択された場合に実行し、新たなアプリケーションが必要としている新たなリソースに対して自己診断を実施することで、リソースが増えた場合でも、活性化時に全てのリソースに対して自己診断するのではなく必要の範囲で順次診断を実施するので、自己診断の処理時間を著しく短縮することができる携帯可能電子装置およびＩＣカードを提供できる。
【発明を実施するための最良の形態】
【００１３】
以下、本発明の実施の形態について図面を参照して説明する。  
図１は、本実施の形態に係る携帯可能電子装置としてのＩＣカードを取扱うＩＣカードシステムの構成例を示すものである。このＩＣカードシステムは、ＩＣカード１０をカードリーダ・ライタ１１を介してパーソナルコンピュータなどの端末装置１２と接続可能にするとともに、端末装置１２にキーボード１３、ＣＲＴ表示部１３、プリンタ１５を接続して構成される。
【００１４】
図２は、ＩＣカード１０の構成を示すもので、制御部としての制御素子１０１（以下、単にＣＰＵともいう）、データメモリ１０２、ワーキングメモリ１０３、プログラムメモリ１０４、および、カードリーダ・ライタ１２との電気的接触を得るためのコンタクト部１０５によって構成されている。そして、これらのうち、破線内の部分（制御素子１０１、データメモリ１０２、ワーキングメモリ１０３、プログラムメモリ１０４）は１つ（あるいは複数）のＩＣチップで構成され、さらに、このＩＣチップとコンタクト部１０５とが一体的にＩＣモジュール化されて、ＩＣカード本体Ｃ内に埋設されている。
【００１５】
データメモリ１０２は、各種データの記憶に使用され、たとえば、ＥＥＰＲＯＭなどの記憶内容が書換え可能な不揮発性メモリで構成されている。以下、データメモリ１０２を単にＥＥＰＲＯＭともいう。
【００１６】
ワーキングメモリ１０３は、制御素子１０１が処理を行なう際の処理データなどを一時的に保持するための作業用メモリであり、たとえば、ＲＡＭなどで構成される。以下、ワーキングメモリ１０３を単にＲＡＭともいう。
【００１７】
プログラムメモリ１０４は、たとえば、マスクＲＯＭなどの記憶内容が書換え不可能な不揮発性メモリで構成されており、制御素子１０１の制御プログラム、および、複数のアプリケーションプログラムなどを記憶するものである。以下、プログラムメモリ１０４を単にＲＯＭともいう。
【００１８】
図３は、データメモリ１０２の構成を示している。データメモリ１０２は、複数のアプリケーションに関するデータがファイル構造で記憶される。図３の例では、たとえば、２つのクレジット用アプリケーションが登録された状態を示している。  
すなわち、最上位がマスタファイル（ＭＦ：Ｍａｓｔｅｒ  Ｆｉｌｅ）２０１で、その配下には、各アプリケーションごとに設定されるフォルダとしてアプリケーションファイル（以下、単にＡＤＦ（Ａｐｐｌｉｃａｔｉｏｎ  Ｄｅｄｉｃａｔｅｄ  Ｆｉｌｅ）ともいう）２０２，２０３が設けられ、さらに、これらアプリケーションファイル２０２，２０３の配下には、それぞれ実際にアプリケーションで仕様されるエレメンタリファイル（以下、単にＥＦ（Ｅｌｅｍｅｎｔａｒｙ  Ｆｉｌｅ）ともいう）２０４，２０５，２０６、２０７，２０８，２０９が設けられている構成になっている。
【００１９】
図４は、本実施の形態におけるメモリマップを示しており、使用メモリ領域を示すアドレスとそのメモリの種類を示している。
図５は、本実施の形態におけるアプリケーションプログラム登録テーブルを示していて、アプリケーションの名称とそのアプリケーションが使用するプログラム領域およびＲＡＭ領域とからなり、これは例えばＲＯＭ内に設けられている。
図６は、本実施の形態におけるアプリケーションプログラムデータ格納フォーマットの一例を示しており、プログラムデータとＣＲＣ（巡回符号）データとで構成されている。
図７は、ＲＡＭ自己診断履歴テーブルを示していて、アプリケーションごとに使用するＲＡＭ領域の自己診断診断が実施されたか否かの履歴が格納されており、これは例えばＲＡＭ内に設けられている。
図８は、アプリケーションプログラムの自己診断履歴テーブルを示していて、アプリケーションごとにアプリケーションプログラム領域の自己診断が実施されたか否かの履歴が格納されており、これは例えばＲＡＭ内に設けられている。
【００２０】
図９は、アプリケーション（ファイル）選択コマンドのフォーマット例を示している。図示するように、コマンド分類部ＣＬＡ（ｃｌａｓｓ）、命令部ＩＮＳ（ｉｎｓｔｒｕｃｔｉｏｎ）、パラメータ部Ｐ１，Ｐ２、データ長Ｌｅ、および、データ（アプリケーション名）Ｄａｔａから構成されており、ＣＬＡ／ＩＮＳ＝００／Ａ４の場合がアプリケーション選択コマンドである。パラメータＰ１が「０４」の場合がＡＤＦ選択、「００」の場合がＤＦ選択であり、「０２」の場合がＥＦ選択である。本例では、ＡＤＦ選択の場合に自己診断を行なう。ＡＤＦ選択以外の場合は、そのパラメータに対応した処理を行なう。
【００２１】
次に、上記のような構成において、図１０〜図１１に示すフローチャートを参照してＩＣカード１０の動作について説明する。
【００２２】
まず、カードリーダ・ライタ１１からの活性化動作（リセット解除）により、当該ＩＣカード１０は活性化される（ステップＳ１）。活性化されると、ＣＰＵ１０１は、自身の自己診断を行なう（ステップＳ２）。ＣＰＵ１０１の自己診断としては、レジスタにデータが正常に書込まれ、正常に読出されるか確認を行なう。たとえば、データ「０ｘＡＡ」を書込み、読出し、次にデータ「０ｘ５５」を書込み、読出す。これにより、レジスタ内のデータがビットごとに干渉しないで正常に動作することを確認する。正常に行なわれなかった場合は、その時点で動作を停止する。
【００２３】
ステップＳ２における自己診断の結果、正常であることが確認されると、ＣＰＵ１０１は、データの送信、受信のみに必要なＲＡＭの領域（ＲＡＭの一部の領域）に対し自己診断を行なう（ステップＳ３）。ＲＡＭの自己診断としては、自己診断する領域のＲＡＭの各バイトに対して、データが正常に書込まれ、正常に読出されるか確認を行なう。たとえば、データ「０ｘＡＡ」を書込み、読出し、次にデータ「０ｘ５５」を書込み、読出す。これにより、各バイトのデータがビットごとに干渉しないで正常に動作することを確認する。確認する領域で異常が発生した場合は、その時点で動作を停止する。
【００２４】
ステップＳ３における自己診断の結果、正常であることが確認されると、ＣＰＵ１０１は、カードリーダ・ライタ１１に対して初期応答データを送信し（ステップＳ４）、その後、カードリーダ・ライタ１１から送信されるコマンドの受信を待機する（ステップＳ５）。
【００２５】
カードリーダ・ライタ１１からのコマンドを受信すると、ＣＰＵ１０１は、まず、コマンドがＣＬＡ／ＩＮＳコードからアプリケーション選択コマンドであるか確認する（ステップＳ６）。アプリケーション選択コマンド以外の場合は各コマンド処理を実行する（ステップＳ７）。
【００２６】
アプリケーション選択コマンドの場合、ＣＰＵ１０１は、パラメータＰ１が「０４」、すなわちＡＤＦ選択であるか確認し（ステップＳ８）、ＡＤＦ選択以外の場合は、そのパラメータに対応した処理を行なう（ステップＳ９）。
【００２７】
ＡＤＦ選択であった場合、ＣＰＵ１０１は、図５に示すアプリケーションプログラム登録テーブルから指定されたアプリケーションが登録されているか確認する（ステップＳ１０）。たとえば、アプリケーション選択コマンドが図９の例であった場合、アプリケーション名が「Ａ００００００００５１１２２３３」であるので、そのアプリケーション名であるＡＤＦとそれに対するプログラム領域、使用ＲＡＭ領域が図５に示すように登録されている。
【００２８】
なお、指定されたアプリケーションが登録されていない場合、ＣＰＵ１０１は、指定されたＡＤＦは存在しないことを意味するエラー処理を行ない（ステップＳ１）、そのステータスをカードリーダ・ライタ１１へ送信する（ステップＳ１２）。
【００２９】
図５に示すように、指定されたアプリケーションが登録されている場合、ＣＰＵ１０１は、指定されたＡＤＦのプログラムが格納されているプログラム領域の自己診断が既に実施されているか確認する（ステップＳ１３）。この確認は、ＲＡＭ内に格納されている図８に示すアプリケーションプログラムの自己診断履歴テーブルを参照する。この確認の結果、自己診断が既に実施されている場合は、当該プログラム領域の自己診断はスキップする。
【００３０】
指定されたＡＤＦのプログラムが格納されているプログラム領域の自己診断が実施されていない場合、ＣＰＵ１０１は、当該プログラム領域の自己診断を行なう（ステップＳ１４）。プログラム領域の自己診断は、アプリケーションプログラムデータ格納フォーマットは図６に示すように構成されているので、全領域データの最後にＣＲＣデータをあらかじめ格納しておき、自己診断時に全データのＣＲＣを計算し、あらかじめ登録しておいたＣＲＣデータと比較し、一致していれば正常と判断するものである。  
上記自己診断の結果、正常である場合、ＣＰＵ１０１は、図８に示すアプリケーションプログラムの自己診断履歴テーブルに実施済を意味するデータをセットする。  
上記自己診断の結果、異常である場合、ＣＰＵ１０１は、自己診断異常を示すエラー処理を行ない（ステップＳ１５）、そのステータスをカードリーダ・ライタ１１へ送信する（ステップＳ１２）。
【００３１】
上記自己診断の結果、正常である場合、ＣＰＵ１０１は、指定されたＡＤＦで使用するＲＡＭ領域の自己診断が既に実施されているか確認する（ステップＳ１６）。この確認は、ＲＡＭ内に格納されている図７に示すＲＡＭ自己診断履歴テーブルを参照する。この確認の結果、自己診断が既に実施されている場合は、当該ＲＡＭ領域の自己診断はスキップする。
【００３２】
指定されたＡＤＦで使用するＲＡＭ領域の自己診断が実施されていない場合、ＣＰＵ１０１は、当該ＲＡＭ領域の自己診断を行なう（ステップＳ１７）。この場合、まず、図７に示すＲＡＭ自己診断履歴テーブルを参照することで、当該ＲＡＭ領域が他のアプリケーションで既に自己診断されているかの確認を行なう。この確認の結果、当該ＲＡＭ領域が他のアプリケーションで自己診断済であった場合、図５のアプリケーションプログラム登録テーブルを参照することにより、他のアプリケーションで使用した領域（自己診断済のＲＡＭ領域）のアドレスを記憶し、今回自己診断するＲＡＭ領域のアドレスと比較して、オーバーラップしていないＲＡＭ領域のみを自己診断する。
【００３３】
ここで、図１２〜図１６を参照して具体例を説明する。  
まず、図１２の具体例１は、今回指定されたアプリケーション名が「Ａ００００００００５１１２２３３」であるが、全てのアプリケーションで使用するＲＡＭ領域が「未実施」の場合である。したがって、この場合、ＲＡＭの自己診断領域は、図５のアプリケーションプログラム登録テーブルから「０ｘ００００−０ｘ２ＦＦＦ」のアドレスとなる。
【００３４】
次に、図１３の具体例２は、同じく今回指定されたアプリケーション名が「Ａ００００００００５１１２２３３」であるが、他のアプリケーションの１つ、図１３の例ではアプリケーション名が「Ａ００００００００５４４５５６６」のアプリケーションで使用するＲＡＭ領域が「実施済」の場合である。したがって、この場合、ＲＡＭの自己診断領域は、図５のアプリケーションプログラム登録テーブルから、「０ｘ００００−０ｘ２ＦＦＦ」と「０ｘ００００−０ｘ１ＦＦＦ」との差である「０ｘ２０００−０ｘ２ＦＦＦ」のアドレスとなる。
【００３５】
次に、図１４の具体例３は、同じく今回指定されたアプリケーション名が「Ａ００００００００５１１２２３３」であるが、他のアプリケーションの１つ、図１４の例ではアプリケーション名が「Ａ００００００００５７７８８９９」のアプリケーションで使用するＲＡＭ領域が「実施済」の場合である。したがって、この場合、ＲＡＭの自己診断領域は、図５のアプリケーションプログラム登録テーブルから、今回指定されたアプリケーションのＲＡＭ領域「０ｘ００００−０ｘ２ＦＦＦ」は既に「実施済」のＲＡＭ領域「０ｘ００００−０ｘ３ＦＦＦ」に含まれているので、無しとなる。すなわち、今回指定されたアプリケーションのＲＡＭ領域の自己診断はスキップする。
【００３６】
次に、図１５の具体例４は、同じく今回指定されたアプリケーション名が「Ａ００００００００５１１２２３３」であるが、他の全てのアプリケーション、図１５の例ではアプリケーション名が「Ａ００００００００５４４５５６６」、「Ａ００００００００５７７８８９９」のアプリケーションで使用するＲＡＭ領域が「実施済」の場合である。したがって、この場合、ＲＡＭの自己診断領域は、図１４の具体例３と同様に、今回指定されたアプリケーションのＲＡＭ領域「０ｘ００００−０ｘ２ＦＦＦ」は既に「実施済」のＲＡＭ領域「０ｘ００００−０ｘ３ＦＦＦ」に含まれているので、無しとなる。すなわち、今回指定されたアプリケーションのＲＡＭ領域の自己診断はスキップする。
【００３７】
次に、図１６の具体例５は、同じく今回指定されたアプリケーション名が「Ａ００００００００５１１２２３３」であるが、当該アプリケーションで使用するＲＡＭ領域は既に他のアプリケーションにより「実施済」で、他の全てのアプリケーション、図１６の例ではアプリケーション名が「Ａ００００００００５４４５５６６」、「Ａ００００００００５７７８８９９」のアプリケーションで使用するＲＡＭ領域が「未実施」の場合である。したがって、この場合、ＲＡＭの自己診断領域は、今回指定されたアプリケーションのＲＡＭ領域「０ｘ００００−０ｘ２ＦＦＦ」は既に「実施済」であるので、無しとなる。すなわち、今回指定されたアプリケーションのＲＡＭ領域の自己診断はスキップする。
【００３８】
ステップＳ１７におけるＲＡＭ領域の自己診断は、自己診断する領域の各バイトに対して、データが正常に書込まれ、正常に読出されるか確認を行なう。たとえば、データ「０ｘＡＡ」を書込み、読出し、次にデータ「０ｘ５５」を書込み、読出す。これにより、各バイトのデータがビットごとに干渉しないで正常に動作することを確認する。
【００３９】
上記自己診断の結果、正常である場合、ＣＰＵ１０１は、図７に示すＲＡＭ自己診断履歴テーブルに実施済を意味するデータをセットする。そして、ＣＰＵ１０１は、当該コマンドに対する処理を実行し（ステップＳ１９）、当該コマンド処理に対するレスポンスをカードリーダ・ライタ１１へ送信し（ステップＳ２０）、ステップＳ５に戻る。
【００４０】
上記自己診断の結果、異常である場合、ＣＰＵ１０１は、自己診断異常を示すエラー処理を行ない（ステップＳ１８）、そのステータスをカードリーダ・ライタ１１へ送信する（ステップＳ１２）。
【００４１】
以上説明したように、上記実施の形態によれば、ＩＣカードの活性化後、当該ＩＣカードが動作するために最低限必要な機能のみに自己診断を行ない、その他の診断はアプリケーションが選択された場合に実行し、新たなアプリケーションが必要としている新たなリソースに対して自己診断を実施する。  
したがって、今後、ＩＣカードのリソースが増えた場合でも、活性化時に全てのリソースに対して自己診断するのではなく、必要の範囲で順次診断を実施することで、自己診断の処理時間を著しく短縮することができる。
【図面の簡単な説明】
【００４２】
【図１】本発明の実施の形態に係るＩＣカードを取扱うＩＣカードシステムの構成を概略的に示すブロック図。
【図２】ＩＣカードの構成を概略的に示すブロック図。
【図３】データメモリ内のファイル構成の概念を模式的に示す図。
【図４】メモリマップを説明する図。
【図５】アプリケーションプログラム登録テーブルを説明する図。
【図６】アプリケーションプログラムデータ格納フォーマットの一例を示す図。
【図７】ＲＡＭ自己診断履歴テーブルを説明する図。
【図８】アプリケーションプログラムの自己診断履歴テーブルを説明する図。
【図９】アプリケーション選択コマンドのフォーマット例を示す図。
【図１０】動作を説明するフローチャート。
【図１１】動作を説明するフローチャート。
【図１２】動作の具体例１を説明する図。
【図１３】動作の具体例２を説明する図。
【図１４】動作の具体例３を説明する図。
【図１５】動作の具体例４を説明する図。
【図１６】動作の具体例５を説明する図。
【符号の説明】
【００４３】
１０…ＩＣカード（携帯可能電子装置）、１１…カードリーダ・ライタ（外部装置）、１２…端末装置、１３…キーボード、１４…ＣＲＴ表示部、１５…プリンタ、１０１…制御素子（ＣＰＵ）、１０２…データメモリ（ＥＥＰＲＯＭ）、１０３…ワーキングメモリ（ＲＡＭ）、１０４…プログラムメモリ（ＲＯＭ）、１０５…コンタク部、２０１…マスタファイル（ＭＦ）、２０２，２０３…アプリケーションファイル（ＡＤＦ）、２０４〜２０９…エレメンタリファイル（ＥＦ）。
【図１】
2006252284.tif 000003
【図２】
2006252284.tif 000004
【図３】
2006252284.tif 000005
【図４】
2006252284.tif 000006
【図５】
2006252284.tif 000007
【図６】
2006252284.tif 000008
【図７】
2006252284.tif 000009
【図８】
2006252284.tif 000010
【図９】
2006252284.tif 000011
【図１０】
2006252284.tif 000012
【図１１】
2006252284.tif 000013
【図１２】
2006252284.tif 000014
【図１３】
2006252284.tif 000015
【図１４】
2006252284.tif 000016
【図１５】
2006252284.tif 000017
【図１６】
2006252284.tif 000018