(57)【要約】【課題】  ＩＣカードにおける自己診断処理を分散化して自己診断処理の占有時間を分散化することができ、ＩＣカードにおける処理全体を効率化することができる。【解決手段】  制御プログラムあるいはハードウエア回路などで実現される種々の機能を有するＩＣカードが、ある１つの機能による処理を実行しようとする直前に、当該機能が正常であるか否かを診断する当該機能に対する自己診断処理を行い、その自己診断処理により当該機能が正常であると診断された場合に、当該機能による処理を実行する。【選択図】      図２
2008310597.tif 000002
【特許請求の範囲】
【請求項１】
種々の処理手段を有する携帯可能電子装置において、
前記各処理手段が正常であるか否かを診断するための各処理手段に対応づけた種々の診断情報を記憶する診断情報記憶手段と、
前記各処理手段のうちの１つの処理手段による処理を実行する場合に、前記診断情報記憶手段に記憶されている当該処理手段に対応する診断情報に基づいて当該処理手段を診断する診断手段と、
この診断手段により当該処理手段が正常であると診断された場合、当該処理手段による処理を実行する実行手段と、
を有することを特徴とする携帯可能電子装置。
【請求項２】
さらに、前記処理手段として機能する制御プログラムを記憶するデータ記憶手段を有し、
前記診断情報記憶手段は、前記データ記憶手段に記憶されている前記処理手段として機能する前記制御プログラムの記憶領域を示す診断情報を記憶し、
前記診断手段は、前記診断情報記憶手段に記憶されている診断情報に基づいて特定される診断対象の処理手段として機能する制御プログラムの前記データ記憶手段における記憶領域を診断する、
ことを特徴とする前記請求項１に記載の携帯可能電子装置。
【請求項３】
前記処理手段は、ハードウエア回路により構成され、
前記診断手段は、診断対象の処理手段としてのハードウエア回路を診断する、
ことを特徴とする前記請求項１に記載の携帯可能電子装置。
【請求項４】
前記診断手段は、当該携帯可能電子装置が起動した後、各処理手段が最初に実行される場合に、各処理手段に対する診断をそれぞれ実行する、
ことを特徴とする前記請求項１乃至３に記載の携帯可能電子装置。
【請求項５】
さらに、前記各処理手段に対する診断処理が実行済みであるか否かを示す情報を記憶する状態記憶手段を有し、
前記診断手段は、各処理手段を実行する場合、前記状態記憶手段に当該処理手段に対する診断処理が実行済みでないことが記憶されていれば、当該処理手段に対する診断を実行する、
ことを特徴とする前記請求項４に記載の携帯可能電子装置。
【請求項６】
さらに、各処理手段に対する診断処理の実行回数を計数する計数手段を有し、
前記診断手段は、各処理手段による処理を実行する場合に、前記計数手段により計数されている診断処理の実行回数が所定の回数未満であれば、当該処理手段に対する診断を実行する、
ことを特徴とする前記請求項１乃至３に記載の携帯可能電子装置。
【請求項７】
さらに、乱数を生成する乱数生成手段を有し、
前記診断手段は、各処理手段により処理を実行する場合、前記乱数生成手段により生成された乱数が所定の条件を満たしていれば、当該処理手段に対する診断を実行する、
ことを特徴とする前記請求項１乃至３に記載の携帯可能電子装置。
【請求項８】
さらに、前記各手段を有するモジュールと、
前記モジュールが内蔵された本体と、
を具備することを特徴する請求項１乃至７記載の携帯可能電子装置。
【請求項９】
種々の処理手段を有する携帯可能電子装置に用いられる制御方法であって、
前記各処理手段のうちの１つの処理手段による処理を実行する場合に、前記各処理手段が正常であるか否かを診断するための各処理手段に対応づけた種々の診断情報を記憶する前記診断情報記憶手段に記憶されている当該処理手段に対応する診断情報に基づいて、当該処理手段を診断し、
この診断により当該処理手段が正常であると診断された場合、当該処理手段による処理を実行する、
を有することを特徴とする携帯可能電子装置の制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、例えば、制御素子、通信インターフェース、不揮発性メモリなどを有するＩＣチップが内蔵されたＩＣカードなどの携帯可能電子装置および携帯可能電子装置の制御方法に関する。
【背景技術】
【０００２】
一般に、携帯可能電子装置としてのＩＣカードは、プラスチックなどで形成されたカード状の筐体内に制御素子及び各種メモリなどを有するＩＣチップが埋め込まれている。このようなＩＣカードには、当該ＩＣカード内部のメモリに格納されているオペレーティングシステム（ＯＳ）、種々のアプリケーションプログラム、ファイル情報などのデータを診断（自己診断）する機能を有するものがある。従来、ＩＣカードの発行処理時に、アプリケーションを実行するために必要な領域情報を不揮発性メモリに書込んでおき、当該ＩＣカードが活性化するごとに、上記のような領域情報を元に自己診断を行う技術が提案されている（例えば、特許文献１）。
【０００３】
しかしながら、上記のような従来の技術では、自己診断する領域を発行処理時に不揮発性メモリに書き込む必要がある。このため、上記従来の技術では、自己診断領域を発行処理時に予め設定しておかなければならないという問題がある。また、上記従来の技術では、活性化時に常に所定の自己診断処理を全て実行しなければならない。このため、上記従来の技術では、当該ＩＣカードが特定の処理しが実行しない場合であっても、所定の自己診断を全て実行するために、当該ＩＣカードが活性化する際の処理に時間がかかってしまうという問題点もある。
【特許文献１】特開２００３−３３１２３６号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
本発明の一形態は、上記のような問題点を解決するものであり、効率的に処理を実行できる携帯可能電子装置および携帯可能電子装置の制御方法を提供することを目的とする。
【課題を解決するための手段】
【０００５】
この発明の一形態としての携帯可能電子装置は、種々の処理手段を有するものにおいて、前記各処理手段が正常であるか否かを診断するための各処理手段に対応づけた種々の診断情報を記憶する診断情報記憶手段と、前記各処理手段のうちの１つの処理手段による処理を実行する場合に、前記診断情報記憶手段に記憶されている当該処理手段に対応する診断情報に基づいて当該処理手段を診断する診断手段と、この診断手段により当該処理手段が正常であると診断された場合、当該処理手段による処理を実行する実行手段とを有する。
【０００６】
この発明の一形態としての携帯可能電子装置の制御方法は、種々の処理手段を有する携帯可能電子装置に用いられる方法であって、前記各処理手段のうちの１つの処理手段による処理を実行する場合に、前記各処理手段が正常であるか否かを診断するための各処理手段に対応づけた種々の診断情報を記憶する前記診断情報記憶手段に記憶されている当該処理手段に対応する診断情報に基づいて、当該処理手段を診断し、この診断により当該処理手段が正常であると診断された場合、当該処理手段による処理を実行する。
【発明の効果】
【０００７】
この発明の一形態によれば、効率的に処理を実行できる携帯可能電子装置および携帯可能電子装置の制御方法を提供することができる。
【発明を実施するための最良の形態】
【０００８】
以下、この発明の実施の形態について図面を参照して説明する。  
図１は、本実施の形態に係るＩＣカード（携帯可能電子装置）２、および、ＩＣカード２との通信機能を有する外部装置としてのＩＣカード処理装置１の構成例を概略的に示すブロック図である。  
まず、上記ＩＣカード処理装置１の構成について説明する。  
上記ＩＣカード処理装置１は、図１に示すように、端末装置１１、ディスプレイ１２、キーボード１３、テンキー１４、及び、カードリーダライタ１５などを有している。
【０００９】
上記端末装置１１は、ＩＣカード処理装置１全体の動作を制御するものである。上記端末装置１１は、ＣＰＵ、種々のメモリ及び各種インターフェースなどにより構成される。たとえば、上記端末装置１１は、パーソナルコンピュータ（ＰＣ）により構成される。  
上記端末装置１１は、上記カードリーダライタ１５によりＩＣカード２へコマンドを送信する機能、ＩＣカード２から受信したデータを基に種々の処理を行う機能などを有している。たとえば、上記端末装置１１は、カードリーダライタ１５を介してＩＣカード２にデータの書き込みコマンドを送信することによりＩＣカード２内の不揮発性メモリにデータを書き込む制御を行う。また、上記端末装置１１は、ＩＣカード２に読み取りコマンドを送信することによりＩＣカード２からデータを読み出す制御を行う。
【００１０】
上記ディスプレイ１２は、上記端末装置１１の制御により種々の情報を表示する表示装置である。上記キーボード１３は、当該ＩＣカード処理装置１の操作員が操作する操作部として機能し、操作員により種々の操作指示やデータなどが入力される。上記テンキー１４は、使用者ＩＤあるいはパスワードなど数字などの情報を入力する為の入力部として機能する。
【００１１】
上記カードリーダライタ１５は、上記ＩＣカード２との通信を行うためのインターフェース装置である。上記カードリーダライタ１５は、上記ＩＣカード２の通信方式に応じたインターフェースにより構成される。たとえば、上記ＩＣカード２が接触型のＩＣカードである場合、上記カードリーダライタ１５は、ＩＣカード２のコンタクト部と物理的かつ電気的に接続するための接触部などにより構成される。また、上記ＩＣカード２が非接触型のＩＣカードである場合、上記カードリーダライタ１５は、ＩＣカード２との無線通信を行うためのアンテナおよび通信制御などにより構成される。上記カードリーダライタ１５では、上記ＩＣカード２に対する電源供給、クロック供給、リセット制御、データの送受信が行われるようになっている。このような機能によってカードリーダライタ１５は、上記端末装置１１による制御に基づいて上記ＩＣカード２の活性化（起動）、種々のコマンドの送信、及び送信したコマンドに対する応答の受信などを行なう。
【００１２】
次に、上記ＩＣカード２について説明する。  
上記ＩＣカード２は、上記ＩＣカード処理装置１などの上位機器から電力などの供給を受けた際、活性化される（動作可能な状態になる）ようになっている。例えば、上記ＩＣカード２が接触型の通信によりＩＣカード処理装置１と接続される場合、つまり、ＩＣカード２が接触型のＩＣカードで構成される場合、上記ＩＣカード２は、通信インターフェースとしてのコンタクト部を介してＩＣカード処理装置１からの動作電源及び動作クロックの供給を受けて活性化される。
【００１３】
また、上記ＩＣカード２が非接触型の通信方式によりＩＣカード処理装置１と接続される場合、つまり、上記ＩＣカード２が非接触式のＩＣカードで構成される場合、上記ＩＣカード２は、通信インターフェースとしてのアンテナ及び変復調回路などを介してＩＣカード処理装置１からの電波を受信し、その電波から図示しない電源部により動作電源及び動作クロックを生成して活性化するようになっている。
【００１４】
次に、上記ＩＣカード２の構成例について説明する。  
図２は、本実施の形態に係るＩＣカード２の構成例を概略的に示すブロック図である。上記ＩＣカード２は、本体Ｃを構成する筐体内にモジュールＭが内蔵されている。上記モジュールＭは、１つまたは複数のＩＣチップＣａと通信用の外部インターフェース（通信インターフェース）とが接続された状態で一体的に形成され、ＩＣカード２の本体Ｃ内に埋設されている。また、上記ＩＣカード２のモジュールＭは、図２に示すように、制御部２１、通信インターフェース２２、ＲＯＭ２３、ＲＡＭ２４、不揮発性メモリ２５などを有してしている。
【００１５】
上記制御部２１は、当該ＩＣカード２全体の制御を司るものである。上記制御部２１は、上記ＲＯＭ２３あるいは上記不揮発性メモリ２５に記憶されている制御プログラムや制御データに基づいて動作することにより、種々の機能を実現する。また、各種の機能のうちの一部は、ハードウエア回路により実現されるものであっても良い。この場合、上記制御部２１は、ハードウエア回路により実行される機能を制御する。
【００１６】
上記通信インターフェース２２は、上記ＩＣカード処理装置１のカードリーダライタ１５との通信を行うためのインターフェースである。当該ＩＣカード２が接触型のＩＣカードとして実現される場合、上記通信インターフェース２２は、上記ＩＣカード処理装置１のカードリーダライタ１５と物理的かつ電気的に接触して信号の送受信を行うための通信制御部とコンタクト部とにより構成される。また、当該ＩＣカード２が非接触型のＩＣカードとして実現される場合、通信インターフェース２２は、上記ＩＣカード処理装置１のカードリーダライタ１５との無線通信を行うための変復調回路などの通信制御部とアンテナとにより構成される。
【００１７】
上記ＲＯＭ２３は、予め制御用のプログラムや制御データなどが記憶されている不揮発性のメモリである。上記ＲＯＭ２３は、製造段階で制御プログラムや制御データなどが記憶された状態でＩＣカード２内に組み込まれるものである。つまり、上記ＲＯＭ２３に記憶されている制御プログラムや制御データは、予め当該ＩＣカード２の仕様に応じて組み込まれる。  
上記ＲＡＭ２４は、ワーキングメモリとして機能する揮発性のメモリである。また、上記ＲＡＭ２４は、制御部２１が処理中のデータなどを一時保管するバッファとしても機能する。例えば、上記ＲＡＭ２４は、上記通信インターフェース２２を介してＩＣカード処理装置１から受信したデータを一時保管するようになっている。
【００１８】
上記不揮発性メモリ２５は、例えば、ＥＥＰＲＯＭ（Electrically  Erasable  Programmable  Read-Only  Memory）あるいはフラッシュＲＯＭなどのデータの書き込み及び書換えが可能な不揮発性のメモリにより構成される。上記不揮発性メモリ２５には、当該ＩＣカード２の運用用途に応じて制御プログラムや種々のデータが書込まれる。たとえば、上記不揮発性メモリ２５では、プログラムファイルあるいはデータファイルなどが定義され、それらのファイルに制御プログラムや種々のデータが書き込まれる。
【００１９】
また、上記不揮発性メモリ２５は、メモリ属性情報により領域ごとに属性が設定可能である。たとえば、上記不揮発性メモリ２５には、データの書換えが不能な記憶領域（ＲＯＭ領域）、再活性化時には保持がクリアされる記憶領域（ＲＡＭ領域）、データの書換えが可能な不揮発性の記憶領域（不揮発性メモリ領域）などが設定される。上記ＲＯＭ領域は、たとえば、１回のみ書込みが可能な属性の領域として設定される。上記ＲＡＭ領域は、当該ＩＣカード２が活性化するごとに、適宜、データが書込まれる属性の領域として設定される。上記不揮発性メモリは、所定の条件を満たした場合にデータが書込まれ、書換え命令に応じてデータの書き換えが可能な属性の領域として設定される。
【００２０】
次に、上記制御部２１により実行される各種のプログラムなどのデータ構成例について説明する。  
図３は、上記ＲＯＭ２３または上記不揮発性メモリ２５上のＲＯＭ領域におけるデータ構成例を示す図である。ここでは、ＲＯＭ２３内が図３に示すような構成となっているものとする。  
図３に示す例では、ＲＯＭ２３上の記憶領域は、格納するデータごとに複数の領域３１０、３２０、３３１、３３２、３３４、３３５、…、３４１、３４２、…、３４ｎに分割されている。これらの各領域は、自己診断制御情報３２０により定義される。図３に示す例では、各領域３１０、３２０、３３１、３３２、３３４、３３５、…、３４１、３４２、…、３４ｎには、自己診断プログラム、自己診断情報、および、各種の機能を実現するための各種の制御プログラムなどがそれぞれ格納されている。言い換えると、各領域３１０、３２０、３３１、３３２、３３４、３３５、…、３４１、３４２、…、３４ｎは、各種の制御プログラムが実現する機能ブロックを構成している。
【００２１】
上記領域３１０に格納されている自己診断プログラムは、各種の機能の自己診断処理を実行するためのプログラムである。ここで、自己診断プログラムは、各種の機能に応じて処理パラメータを変更することにより、各機能に対する自己診断処理が実現できるものとする。ただし、各機能ごとに自己診断プログラムが異なる場合、各機能ごとの自己診断プログラムが記憶されるものとする。たとえば、ハードウエア回路により実現される機能に対する自己診断処理は、ソフトウエア（制御プログラムおよび制御データ）により実現される機能に対する自己診断処理と異なることが想定される。つまり、ハードウエア回路に対する自己診断処理は、専用の自己診断プログラムが必要であることが想定される。このため、ハードウエア回路に対する自己診断処理を行う場合、当該ハードウエア回路用の自己診断プログラムが領域３１０に記憶される。
【００２２】
上記領域（診断情報記憶手段）３２０に格納されている自己診断情報は、各機能を実現するもの（制御プログラムの記憶領域、制御データの記憶領域、あるいは、ハードウエアの構成）を示す情報である。つまり、上記自己診断情報は、各機能に対する自己診断として、各機能ごとに上記自己診断プログラムが自己診断すべき対象を示す情報である。すなわち、上記自己診断プログラムは、上記領域３２０に記憶されている自己診断情報を参照して各種の機能に対する自己診断処理を行うようになっている。
【００２３】
また、図３に示す例では、各種の制御プログラムとして、ブート処理プログラム、プロトコル制御プログラム、共通処理プログラム、ファイル管理プログラム、フェーズ管理プログラム、…、各種アプリケーションプログラム（アプリケーションプログラム１〜ｎ）などが示されている。たとえば、各領域（データ領域）３３１、３３２、３３４、３３５、…には、それぞれブート処理プログラム、プロトコル制御プログラム、共通処理プログラム、ファイル管理プログラム、フェーズ管理プログラム、…、が格納されている。なお、ブート処理プログラムは、当該ＩＣカード２が活性化した場合に実行される処理であり、当該ＩＣカード２の初期設定などの処理を行う。また、プロトコル制御プログラムは、当該ＩＣカード２が外部と通信するためのプロトコル設定などの処理を行う。また、ファイル管理プログラムは、当該ＩＣカード２内のメモリにおけるファイル管理などの処理を行う。なお、ファイル管理プログラムでは、たとえば、ＩＳＯ７８１６で規定されるＭＦ、ＤＦ、ＥＦなどの各ファイルを取り扱うための処理を行う。
【００２４】
また、上記領域３４１、３４２、…、３４ｎには、それぞれ各種のアプリケーションプログラム（アプリケーションプログラム１〜ｎ）が格納される。各アプリケーションプログラムは、当該ＩＣカード２の運用形態に応じてインストールされるプログラムである。各アプリケーションプログラムは、当該ＩＣカード２の発行時に書込まれているものであっても良いし、発行処理後に適宜インストールされるようにしても良い。ただし、後者の場合、アプリケーションプログラムはＲＯＭ２３には書込めないため、不揮発性メモリ２５に書込まれ、それに対応する自己診断プログラムおよび自己診断情報なども不揮発性メモリ２５に書込まれるものとする。この場合であっても、各プログラムの記憶領域および自己診断情報などが格納されるメモリ上の領域が異なるだけであるため、後述する処理は同様に実現可能である。
【００２５】
次に、各種の機能を実行する場合のデータの格納領域の構成について説明する。  
図４は、上記ＲＡＭ２４または上記不揮発性メモリ２５上のＲＡＭ領域におけるデータ構成例を示す図である。ここでは、上記ＲＡＭ２４内が図３に示すような構成となっているものとする。  
図４に示すように、上記ＲＡＭ２４には、各制御プログラムにより実現される機能ごとにワーキングメモリとして使用する領域（データ記憶領域）４３１、４３２、４３３、４３４、４３５、…、４４１、４４２、…、４４ｎが設定される。図４に示す例では、図３に示す各種の制御プログラムに対応して、ブート処理用データ領域４３１、プロトコル制御用データ領域４３２、共通処理用データ領域４３３、ファイル管理用データ領域４３４、フェーズ管理用データ領域４３５、…、各種アプリケーション（アプリケーション１〜ｎ）用データ領域４４１〜４４ｎなどが設定されている。つまり、上記のような各領域４３１、４３２、４３３、４３４、４３５、…、４４１、４４２、…、４４ｎは、それぞれ、ブート処理、プロトコル制御、共通処理、ファイル管理、フェーズ管理、アプリケーション１〜ｎのためのＲＡＭ領域として用いられる。
【００２６】
次に、上記自己診断情報の構成について説明する。  
図５は、上記自己診断情報のデータ構成例を示す図である。たとえば、図３に示す自己診断情報は、図５に示すような構成となっているものとする。  
図５に示すように、上記自己診断情報では、各機能ごとに、使用する各種メモリの領域を示す情報が示される。図５に示す例では、図３に示す各種の制御プログラムに対応して、ＲＯＭ領域を示すＲＯＭ領域情報を格納するための領域３３１ａ、３３２ａ、３３３ａ、…、３４ｎａ、ＲＡＭ領域を示すＲＡＭ領域情報を格納するための領域３３１ｂ、３３２ｂ、３３３ｂ、…、３４ｎｂ、不揮発性メモリ領域を示す不揮発性メモリ領域情報を格納するための領域３３１ｃ、３３２ｃ、３３３ｃ、…、３４ｎｃが示されている。つまり、図５に示す例では、自己診断情報は、ブート処理、プロトコル制御、共通処理、ファイル管理、フェーズ管理、各種アプリケーション（アプリケーション１〜ｎ）などに対するＲＯＭ領域、ＲＡＭ領域および不揮発性メモリ領域を示す情報により構成されている。
【００２７】
たとえば、ブート処理は、領域３３１ａに格納されているＲＯＭ領域情報で示されるＲＯＭ領域に記憶されている制御プログラムにより実現される。また、ブート処理では、領域３３１ｂに格納されているＲＡＭ領域情報で示される領域がＲＡＭとして用いられ、領域３３１ｃに格納されている不揮発性メモリ領域情報で示される領域が不揮発性メモリとして用いられる。言い換えると、ブート処理の機能は、領域３３１ａ、領域３３１ｂ、領域３３１ｃに格納されている情報で示される構成により実現される。
【００２８】
同様に、プロトコル制御、共通処理、…、アプリケーションなどの機能も、それぞれ領域３３２ａ、３３３ａ、…、３４ｎａ、領域３３２ｂ、３３３ｂ、…、３４ｎｂ、領域３３２ｃ、３３３ｃ、…、３４ｎｃに格納されている情報で示される構成により実現される。このように、上記自己診断情報は、各機能を実現するための構成、つまり、診断対象するものを示す情報を有している。このような自己診断情報を参照することにより、上記自己診断プログラムでは、診断対象とするメモリ上の領域などを容易に識別ことができる。なお、診断対象がハードウエア回路である場合、自己診断情報は、診断対象となるハードウエア回路を示す情報などから構成されるようにしても良い。
【００２９】
次に、上記自己診断処理の一例について説明する。  
図６は、自己診断処理の一例を説明するためのフローチャートである。  
上述したように、各機能の自己診断処理は、自己診断プログラムにより自己診断情報を参照しつつ実行される。ここでは、各機能を実現するための構成として、各機能ごとに、ＲＯＭ領域、ＲＡＭ領域、不揮発性メモリ領域が自己診断情報として設定されているものとする。この場合、上記自己診断処理では、診断対象する機能の各メモリ領域（自己診断情報により示される各領域）におけるデータが正常か否かを診断するものとする。たとえば、図３及び図４に示すようなプロトコル制御、共通処理、ファイル管理、フェーズ管理、…、各アプリケーションなどの機能は、図６に示すような手順で自己診断処理が実行される。つまり、図３及び図４に示すような各機能の自己診断処理は、診断の対象する領域が異なるだけで、同様な手順で実行可能である。
【００３０】
すなわち、ある機能（たとえば、プロトコル制御機能）に対する自己診断処理を実行する場合、上記制御部２１は、図５に示すような自己診断情報から診断対象とする機能のＲＯＭ領域情報を読み出す（ステップＳ１）。診断対象のＲＯＭ領域情報を読み出すと、上記制御部２１は、読み出した領域について自己診断処理を行う（ステップＳ２）。この自己診断処理では、たとえば、チェックサム、ＣＲＣ（cyclic redundancy check code）などの診断（検査）手法により当該ＲＯＭ領域におけるデータが正常であるか否かを判断する（ステップＳ３）。なお、データの診断（検査）を行う手法は、種々の手法が適用可能である。上記自己診断処理の結果として当該ＲＯＭ領域のデータが正常でないと判断した場合（ステップＳ３、ＹＥＳ）、上記制御部２１は、当該機能に対する自己診断結果が故障であると判定し、エラー処理を行う（ステップＳ１１）。
【００３１】
また、上記自己診断処理の結果として当該ＲＯＭ領域のデータが正常であると判断した場合（ステップＳ３、ＮＯ）、上記制御部２１は、診断対象とする機能のＲＡＭ領域に対する自己診断処理へ移行する。診断対象とする機能のＲＡＭ領域に対する自己診断処理を行う場合、上記制御部２１は、図５に示すような自己診断情報から診断対象とする機能のＲＡＭ領域情報を読み出す（ステップＳ４）。診断対象とする機能のＲＡＭ領域情報を読み出すと、上記制御部２１は、読み出した領域について自己診断処理を行う（ステップＳ５）。この自己診断処理も、たとえば、チェックサム、ＣＲＣなどにより当該ＲＡＭ領域におけるデータが正常であるか否かを判断する（ステップＳ６）。上記自己診断処理の結果として当該ＲＡＭ領域のデータが正常でないと判断した場合（ステップＳ６、ＹＥＳ）、上記制御部２１は、診断対象とする機能に対する自己診断結果が故障であると判定し、エラー処理を行う（ステップＳ１１）。
【００３２】
また、上記自己診断処理の結果として当該ＲＡＭ領域のデータが正常であると判断した場合（ステップＳ６、ＮＯ）、上記制御部２１は、診断対象とする機能の不揮発性メモリ領域に対する自己診断処理へ移行する。診断対象とする機能の不揮発性メモリ領域に対する自己診断処理を行う場合、上記制御部２１は、図５に示すような自己診断情報から診断対象とする機能の不揮発性メモリ領域情報を読み出す（ステップＳ７）。診断対象とする機能の不揮発性メモリ情報を読み出すと、上記制御部２１は、読み出した領域について自己診断処理を行う（ステップＳ８）。この自己診断処理も、たとえば、チェックサム、ＣＲＣなどにより当該不揮発性メモリ領域におけるデータが正常であるか否かを判断する（ステップＳ９）。上記自己診断処理の結果として当該不揮発性メモリ領域のデータが正常でないと判断した場合（ステップＳ９、ＹＥＳ）、上記制御部２１は、診断対象としている機能に対する自己診断結果が故障であると判定し、エラー処理を行う（ステップＳ１１）。
【００３３】
また、上記自己診断処理の結果として当該不揮発性メモリ領域のデータが正常であると判断した場合（ステップＳ９、ＮＯ）、上記制御部２１は、診断対象としている機能全体に対する自己診断処理の結果が正常とあるとし（ステップＳ１０）、当該自己診断処理を終了する。  
上記のように、上記ＩＣカード２では、自己診断情報として、各機能ごとに、各機能を実現するための各メモリにおけるデータ記憶領域を示す情報を保持している。これにより、上記ＩＣカード２では、各機能を実行する直前に、実行しようとする機能に対する自己診断処理を適宜実行することができるようになっている。
【００３４】
次に、上記のように構成されるＩＣカード２における処理について説明する。  
まず、自己診断処理を含む処理としての第１の処理例について説明する。  
図７は、上記ＩＣカード２における自己診断処理を含む第１の処理例を説明するためのフローチャートである。  
まず、上記ＩＣカード処理装置１から電源供給、動作クロック信号およびリセット信号等を受けると、上記ＩＣカード２の制御部２１は、まず、ブート処理（活性化処理）を実行する（ステップＳ２１）。上記ブート処理は、上記ＲＯＭ２３に記憶されているブート処理プログラムを上記制御部２１が実行することにより実現されるものとする。
【００３５】
上記ブート処理が完了すると、上記制御部２１は、自己診断プログラム及び自己診断情報によりブート処理の内容をチェックする自己診断処理を行う（ステップＳ２２）。このブート処理機能に対する自己診断処理によりブート処理が正常に実行されていないと判断した場合、つまり、ブート処理の機能が故障している可能性があると判断した場合（ステップＳ２３、ＹＥＳ）、上記制御部２１は、エラー処理として、ブート処理が正常に機能していない旨を上記ＩＣカード処理装置１へ送信する（ステップＳ３０）。これは、たとえば、ＡＴＲなどにより送信される。これにより、上記ＩＣカード処理装置１では、ブート処理機能に故障が発生している可能性があることを認識できる。なお、エラー処理としては、ＩＣカード２の動作を強制的に停止するようにしても良い。
【００３６】
また、上記ブート処理の自己診断処理によりブート処理が正常に実行されていると判断した場合（ステップＳ２３、ＮＯ）、上記制御部２１は、所定の処理手順あるいは上記ＩＣカード処理装置１から供給されるコマンドに基づいて各種の機能による処理を適宜実行する（ステップＳ２５〜Ｓ２９）。  
たとえば、プロトコル制御処理を行う場合（ステップＳ２４、ＹＥＳ）、上記制御部２１は、プロトコル制御機能の自己診断が実行済みか否かを判断する（ステップＳ３１）。ここでは、自己診断を実行すべき各機能には、自己診断を実行したか否かを示す情報がセットされるフラグ（状態情報記憶手段）がそれぞれ設定されているものとする。これらのフラグは、たとえば、ＲＡＭ２４上に設定される。すなわち、プロトコル制御処理を行う場合（ステップＳ２４、ＹＥＳ）、上記制御部２１は、プロトコル制御に対応づけられているフラグの状態に基づいてプロトコル制御機能に対する自己診断が実行済みであるか否かを判断する（ステップＳ３１）。
【００３７】
上記判断によりプロトコル制御機能に対する自己診断が実行済みでないと判断した場合（ステップＳ３１、ＮＯ）、上記制御部２１は、自己診断プログラム及び自己診断情報に基づいてプロトコル制御機能に対する自己診断処理を実行し（ステップＳ３２）、プロトコル制御機能が故障している可能性があるか否かを判断する（ステップＳ３３）。  
また、上記判断によりプログラム制御機能の自己診断が実行済みであると判断した場合（ステップＳ３１、ＹＥＳ）、上記制御部２１は、プロトコル制御機能に対する自己診断を省略し、既に実行済みの自己診断結果を参照してプロトコル制御機能が故障している可能性があるか否か判断する（ステップＳ３３）。
【００３８】
上記自己診断処理によりプロトコル制御機能が故障している可能性があると診断された場合（ステップＳ３３、ＹＥＳ）、上記制御部２１は、エラー処理として、プロトコル制御機能が故障している可能性がある旨を上記ＩＣカード処理装置１へ送信する（ステップＳ３０）。これにより、上記ＩＣカード処理装置１では、プロトコル制御機能に故障が発生している可能性があることを認識できる。  
上記自己診断処理によりプロトコル制御機能が正常であると診断された場合（ステップＳ３３、ＮＯ）、上記制御部２１は、プロトコル制御機能に対する自己診断が実行済みであることを示す情報をプロトコル制御に対応づけられているフラグにセットする（ステップＳ３４）。  
上記プロトコル制御機能に対する自己診断が実行済みであることを示す情報をフラグにセットすると、上記制御部２１は、上記プロトコル制御プログラムによりプロトコル制御処理を実行する（ステップＳ３５）。
【００３９】
また、ファイル管理、…、アプリケーションｎなどの機能を実行する場合（例えば、ステップＳ２７、Ｓ２９）についても、上記ステップＳ３１〜Ｓ３５と同様に、自己診断処理および自己診断結果に応じた処理を行うようになっている。つまり、上述したプロトコル制御機能の処理手順と同様に、その他の各機能の処理についても、処理を実行する直前に、自己診断プログラムおよび自己診断情報に基づいて自己診断処理が実行される。また、各機能に対する自己診断処理が実行されるごとに当該機能に対する自己診断処理が実行済みであるか否かを示すフラグが設定され、フラグの状態に応じて自己診断を実行するか否かが判断される。
【００４０】
上記のような第１の処理例では、ＩＣカード２が活性化した後、最初に各機能を実行する直前に、当該機能の自己診断を行うようになっている。これにより、無駄な自己診断処理を省略して利用状況に応じた自己診断処理を実行でき、効率的な処理を実現することができる。なお、上記ブート処理には、ＩＣカードが活性化する際に実行される処理であり、ＩＣカード２が動作するための初期設定処理が含まれる。このため、ブート処理機能に対する自己診断処理については、ブート処理終了後に実行され、ブート処理に対する自己診断の実行済みの有無をチェックするためのフラグの設定が省略されるようになっているものとする。
【００４１】
次に、自己診断処理を含む処理としての第２の処理例について説明する。  
図８は、上記ＩＣカード２における自己診断処理を含む第２の処理例を説明するためのフローチャートである。  
この第２の処理例では、各機能ごとに自己診断処理の実行回数を図示しないカウンタ（計数手段）によりカウントアップし、そのカウンタの値に基づいて自己診断処理を実行するか否かを判断する。すなわち、実行しようとする機能に対応づけたカウンタの値が所定値未満であれば、当該機能に対する自己診断処理を実行し、所定値以上であれば、当該機能に対する自己診断処理を省略する。
【００４２】
なお、本第２の処理例は、各機能に対する自己診断処理をカウンタの値に基づいて制御する以外は、上記第１の処理例と同様である。従って、図８に示す第２の処理例において、図７と同様な処理内容の工程については対応箇所に同一符合を付して詳細な説明を省略するものとする。たとえば、図８に示す第２の処理例では、ブート処理および各種の機能による処理を開始する直前までの処理が図７に示す第１の処理例と同様である。  
また、第２の処理例において、各機能を実行するための処理手順は、上記第１の処理例とほぼ同様である。このため、ここでは、各種の機能の一例として、図８に示すフローチャートを参照しつつ、プロトコル制御機能を実行するための処理手順としてのプロトコル制御処理（ステップＳ４５）の例について説明する。
【００４３】
すなわち、プロトコル制御処理を行う場合（ステップＳ２４、ＹＥＳ）、上記制御部２１は、プロトコル制御機能に対応するカウンタの値が所定値未満であるか否かを判断する（ステップＳ５１）。この判断によりプロトコル制御機能に対応するカウンタの値が所定値未満であると判断した場合、つまり、プロトコル制御機能に対する自己診断の実行回数が所定回数未満であると判断した場合（ステップＳ５１、ＹＥＳ）、上記制御部２１は、自己診断プログラム及び自己診断情報に基づいてプロトコル制御機能に対する自己診断処理を実行し（ステップＳ３２）、プロトコル制御機能が故障している可能性があるか否かを判断する（ステップＳ３３）。  
上記自己診断処理によりプロトコル制御機能が故障している可能性があると診断された場合（ステップＳ３３、ＹＥＳ）、上記制御部２１は、エラー処理として、プロトコル制御機能が故障している可能性がある旨を上記ＩＣカード処理装置１へ送信する（ステップＳ３０）。これにより、上記ＩＣカード処理装置１では、プロトコル制御機能に故障が発生している可能性があることを認識できる。  
また、上記自己診断処理によりプロトコル制御機能が正常であると診断された場合（ステップＳ３３、ＮＯ）、上記制御部２１は、プロトコル制御機能に対応するカウンタの値をカウントアップ（インクリメント）する（ステップＳ５４）。プロトコル制御機能に対応するカウンタをカウントアップすると、上記制御部２１は、上記プロトコル制御プログラムによりプロトコル制御処理を実行する（ステップＳ３５）。  
また、上記判断によりプログラム制御機能に対する自己診断処理の実行回数が所定値以上であると判断した場合（ステップＳ５１、ＮＯ）、上記制御部２１は、プロトコル制御機能に対する自己診断を省略し、既に実行済みの自己診断結果を参照してプロトコル制御機能が故障している可能性があるか否かを判断する（ステップＳ３３）。
【００４４】
なお、ファイル管理、…、アプリケーションｎなどの機能を実行する場合（例えば、ステップＳ４７、Ｓ４９）についても、上記ステップＳ５１、Ｓ３２、Ｓ３３、Ｓ５４、Ｓ３５と同様に、カウンタ値に基づく自己診断処理および自己診断結果に応じた処理を行うようになっている。つまり、上述したプロトコル制御機能の処理手順と同様に、その他の各機能の処理についても、各機能に対応づけたカウンタの値が所定値未満であるか否かにより、当該機能に対する自己診断処理を実行するか否かを判断する。
【００４５】
上記のような第２の処理手順では、各機能を実行する直前に、当該機能に対応づけたカウンタの値が所定値未満であるか否かを判断し、カウンタの値が所定値未満であれば、当該機能に対する自己診断処理を実行し、カウンタの値が所定値以上であれば、当該機能に対する自己診断処理を省略するようになっている。これにより、無駄な自己診断処理を省略して利用状況に応じた自己診断処理を実行でき、効率的な処理を実現することができる。
【００４６】
次に、自己診断処理を含む処理としての第３の処理例について説明する。  
図９は、上記ＩＣカード２における自己診断処理を含む第３の処理例を説明するためのフローチャートである。  
この第３の処理例では、各機能に対する自己診断処理を実行するか否かを任意の値によって判断するものである。つまり、第３の処理例では、各機能に対する自己診断処理を任意の条件に基づいて実行するか否かを制御する。
【００４７】
ここでは、乱数生成手段としての乱数生成部（図示しない）を設け、乱数生成部により生成された乱数に基づいて各機能に対する自己診断処理を実行するか否かを判断するものとする。すなわち、第３の処理例では、各機能を実行しようとする場合に、乱数生成部により乱数を生成し、生成した乱数が所定の条件を満たせば、当該機能に対する自己診断処理を実行し、生成した乱数が所定の条件を満たさなければ、当該機能に対する自己診断処理を省略する。また、乱数生成部は、ハードウエア回路により構成されるものであっても良いし、ＲＯＭ２３あるいは不揮発性メモリ２５に予め記憶されているプログラムにより実現されるものであっても良い。ただし、各機能に対する自己診断処理を実行するか否かを判定するための条件は、乱数以外の任意の値を用いて判定するようにしても、同様な効果が期待的できる。
【００４８】
また、本第３の処理例は、各機能に対する自己診断処理を実行するか否かを乱数に基づいて制御する以外は、上記第１の処理例と同様である。従って、図９に示す第３の処理例において、図７と同様な処理内容の工程については対応箇所に同一符合を付して詳細な説明を省略するものとする。たとえば、図９に示す第３の処理例では、ブート処理および各種の機能による処理を開始する直前までの処理が図７に示す第１の処理例と同様である。また、第３の処理例において、各機能を実行するための処理手順は、上記第１の処理例とほぼ同様である。このため、ここでは、各種の機能の一例として、図９に示すフローチャートを参照しつつ、プロトコル制御機能を実行するための処理手順としてのプロトコル制御処理（ステップＳ６５）について説明する。
【００４９】
すなわち、プロトコル制御処理を行う場合（ステップＳ２４、ＹＥＳ）、上記制御部２１は、プロトこのコル制御機能の自己診断が実施済みであるか否かを判断する（ステップＳ３１）。この判断によりプロトコル制御機能の自己診断が実施済みであると判断した場合（ステップＳ３１、ＹＥＳ）、上記制御部２１は、プロトコル制御機能に対する自己診断処理を省略し、前回実施したプロトコル制御機能の自己診断結果を参照してプロトコル制御機能が故障している可能性があるか否かを判断する（ステップＳ３３）。
【００５０】
また、上記判断によりプロトコル制御機能の自己診断が実施されていないと判断した場合（ステップＳ３１、ＮＯ）、上記制御部２１は、上記のような乱数生成部（図示しない）により乱数を生成する（ステップＳ７０）。上記乱数生成部により乱数を生成すると、上記制御部２１は、生成された乱数が所定の条件を満たすか否かを判断する（ステップＳ７１）。この所定の条件とは、適宜設定可能な条件である。たとえば、自己診断処理を実行する頻度を高くしたい場合には乱数が所定の条件を満たす確率が高くなるように設定し、自己診断処理の実行頻度を低くしたい場合には生成される乱数が所定の条件を満たす確率が低くなるように設定するようにすれば良い。
【００５１】
上記判断により乱数が所定の条件を満たすと判断した場合（ステップＳ７１、ＹＥＳ）、上記制御部２１は、自己診断プログラム及び自己診断情報に基づいてプロトコル制御機能に対する自己診断処理を実行する（ステップＳ３２）。上記自己診断処理によりプロトコル制御機能が正常であると診断された場合（ステップＳ３３、ＮＯ）、上記制御部２１は、上記プロトコル制御プログラムによりプロトコル制御処理を実行する（ステップＳ３５）。また、上記自己診断処理によりプロトコル制御機能が故障している可能性があると診断された場合（ステップＳ３３、ＹＥＳ）、上記制御部２１は、エラー処理として、プロトコル制御機能が故障している可能性がある旨を上記ＩＣカード処理装置１へ送信する（ステップＳ３０）。これにより、上記ＩＣカード処理装置１では、プロトコル制御機能に故障が発生している可能性があることを認識できる。
【００５２】
また、上記判断により乱数が所定の条件を満たしていないと判断した場合（ステップＳ７１、ＹＥＳ）、上記制御部２１は、プロトコル制御機能に対する自己診断を省略し、上記ステップＳ３３へ進み、前回実施したプロトコル制御機能の自己診断結果を参照してプロトコル制御機能が故障している可能性があるか否かを判断する（ステップＳ３３）。  
なお、ファイル管理、…、アプリケーションｎなどの各種の機能を実行する場合（ステップＳ６７、Ｓ６９）についても、上記ステップＳ７０、Ｓ７１、Ｓ３２、Ｓ３３、Ｓ３５と同様に、乱数を生成し、生成した乱数が所定の条件を満たす場合に、自己診断処理および自己診断結果に応じて処理を実行するようになっている。つまり、上述したプロトコル制御機能の処理手順と同様に、その他の各機能についても、乱数を生成し、生成した乱数が所定の条件を満たすか否かにより、当該機能に対する自己診断処理を実行するか否かを判断する。
【００５３】
上記のような第３の処理例では、各機能を実行する直前に、乱数を生成し、生成した乱数が所定の条件を満たすか否かを判断し、生成した乱数が所定の条件を満たせば、当該機能に対する自己診断処理を実行し、生成した乱数が所定の条件を満たさなければ、当該機能に対する自己診断処理を省略するようになっている。これにより、無駄な自己診断処理を省略して利用状況に応じた自己診断処理を実行でき、効率的な処理を実現することができる。
【００５４】
上記のような各処理例では、各機能を実行する場合に、必要な最低限の領域のみを適宜自己診断する。これにより、各処理例によれば、自己診断処理の占有時間を分散させ、処理全体を効率化することが可能となる。言い換えると、各処理例では、各機能毎に自己診断する領域を分割しておき、１つの機能による処理を実行する直前に、当該機能の領域に対する自己診断を行うことにより、活性化直後などの一時期に所定の全ての自己診断処理を実行せずに、自己診断処理の占有時間を分散させることが可能となる。この結果として、上記各処理例では、自己診断による処理の正確性を保ちつつ自己診断に要する処理時間などを効率化、短縮化することが可能となる。
【００５５】
なお、各機能の自己診断処理は、各機能を実行する直前に必ず実施するようにしても良い。たとえば、図７に示す第１の処理例において、自己診断の実行の可否を判断する処理（ステップＳ３１）と自己診断の実行状況を示すフラグをセットする処理（ステップＳ３４）を省略すれば、各機能を実行する直前に自己診断処理を毎回実施するようにできる。さらには、特定の機能についてのみ毎回自己診断を実行するようにすることも可能である。
【００５６】
また、上記のような各処理例は、当該ＩＣカードの運用形態、あるいは、各機能に対する自己診断処理の重要性などに基づいて組合せて実施することも可能である。たとえば、ブート処理あるいはプロトコル制御処理などの機能については、第１の処理例の手順により活性化後に最初に実行する直前に必ず自己診断を実行し、各アプリケーションについては、第３の処理例で説明した処理手順により任意の値（乱数）に基づいて自己診断を実行するか否かを制御するというような形態も実現可能である。つまり、各機能による処理の重要度あるいは要求される信頼性などに応じて、各機能ごとに何れか処理例を適用ことが可能である。
【００５７】
なお、この発明は、上述した実施の形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具現化できる。また、上記実施形態に開示されている複数の構成要素の適宜な組み合わせにより、種々の発明を形成できる。例えば、実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。更に、異なる実施形態に亘る構成要素を適宜組み合わせてもよい。
【図面の簡単な説明】
【００５８】
【図１】ＩＣカードと、ＩＣカードとの通信機能を有するＩＣカード処理装置の構成例を概略的に示すブロック図である。
【図２】図１に示すＩＣカードの構成例を概略的に示すブロック図である。
【図３】図２に示すＲＯＭに記憶されるデータの構成例を示す図。
【図４】図２に示すＲＡＭ内、又は不揮発性メモリ内の構成例を示す図である。
【図５】自己診断情報の構成例を示す図。
【図６】自己診断処理の処理手順の例を説明するためのフローチャートである。
【図７】自己診断処理を含む第１の処理例を説明するためのフローチャートである。
【図８】自己診断処理を含む第２の処理例を説明するためのフローチャートである。
【図９】自己診断処理を含む第３の処理例を説明するためのフローチャートである。
【符号の説明】
【００５９】
１…ＩＣカード処理装置、２…ＩＣカード、Ｃ…本体、Ｍ…モジュール、Ｃａ…ＩＣチップ、２１…制御部、２２…通信インターフェース、２３…ＲＯＭ、２４…ＲＡＭ、２５…不揮発性メモリ
【図１】
2008310597.tif 000003
【図２】
2008310597.tif 000004
【図３】
2008310597.tif 000005
【図４】
2008310597.tif 000006
【図５】
2008310597.tif 000007
【図６】
2008310597.tif 000008
【図７】
2008310597.tif 000009
【図８】
2008310597.tif 000010
【図９】
2008310597.tif 000011