説明

携帯可能電子装置および携帯可能電子装置の制御方法

【課題】 ICカードにおける自己診断処理を分散化して自己診断処理の占有時間を分散化することができ、ICカードにおける処理全体を効率化することができる。
【解決手段】 制御プログラムあるいはハードウエア回路などで実現される種々の機能を有するICカードが、ある1つの機能による処理を実行しようとする直前に、当該機能が正常であるか否かを診断する当該機能に対する自己診断処理を行い、その自己診断処理により当該機能が正常であると診断された場合に、当該機能による処理を実行する。

【発明の詳細な説明】
【技術分野】
【0001】
この発明は、例えば、制御素子、通信インターフェース、不揮発性メモリなどを有するICチップが内蔵されたICカードなどの携帯可能電子装置および携帯可能電子装置の制御方法に関する。
【背景技術】
【0002】
一般に、携帯可能電子装置としてのICカードは、プラスチックなどで形成されたカード状の筐体内に制御素子及び各種メモリなどを有するICチップが埋め込まれている。このようなICカードには、当該ICカード内部のメモリに格納されているオペレーティングシステム(OS)、種々のアプリケーションプログラム、ファイル情報などのデータを診断(自己診断)する機能を有するものがある。従来、ICカードの発行処理時に、アプリケーションを実行するために必要な領域情報を不揮発性メモリに書込んでおき、当該ICカードが活性化するごとに、上記のような領域情報を元に自己診断を行う技術が提案されている(例えば、特許文献1)。
【0003】
しかしながら、上記のような従来の技術では、自己診断する領域を発行処理時に不揮発性メモリに書き込む必要がある。このため、上記従来の技術では、自己診断領域を発行処理時に予め設定しておかなければならないという問題がある。また、上記従来の技術では、活性化時に常に所定の自己診断処理を全て実行しなければならない。このため、上記従来の技術では、当該ICカードが特定の処理しが実行しない場合であっても、所定の自己診断を全て実行するために、当該ICカードが活性化する際の処理に時間がかかってしまうという問題点もある。
【特許文献1】特開2003−331236号公報
【発明の開示】
【発明が解決しようとする課題】
【0004】
本発明の一形態は、上記のような問題点を解決するものであり、効率的に処理を実行できる携帯可能電子装置および携帯可能電子装置の制御方法を提供することを目的とする。
【課題を解決するための手段】
【0005】
この発明の一形態としての携帯可能電子装置は、種々の処理手段を有するものにおいて、前記各処理手段が正常であるか否かを診断するための各処理手段に対応づけた種々の診断情報を記憶する診断情報記憶手段と、前記各処理手段のうちの1つの処理手段による処理を実行する場合に、前記診断情報記憶手段に記憶されている当該処理手段に対応する診断情報に基づいて当該処理手段を診断する診断手段と、この診断手段により当該処理手段が正常であると診断された場合、当該処理手段による処理を実行する実行手段とを有する。
【0006】
この発明の一形態としての携帯可能電子装置の制御方法は、種々の処理手段を有する携帯可能電子装置に用いられる方法であって、前記各処理手段のうちの1つの処理手段による処理を実行する場合に、前記各処理手段が正常であるか否かを診断するための各処理手段に対応づけた種々の診断情報を記憶する前記診断情報記憶手段に記憶されている当該処理手段に対応する診断情報に基づいて、当該処理手段を診断し、この診断により当該処理手段が正常であると診断された場合、当該処理手段による処理を実行する。
【発明の効果】
【0007】
この発明の一形態によれば、効率的に処理を実行できる携帯可能電子装置および携帯可能電子装置の制御方法を提供することができる。
【発明を実施するための最良の形態】
【0008】
以下、この発明の実施の形態について図面を参照して説明する。
図1は、本実施の形態に係るICカード(携帯可能電子装置)2、および、ICカード2との通信機能を有する外部装置としてのICカード処理装置1の構成例を概略的に示すブロック図である。
まず、上記ICカード処理装置1の構成について説明する。
上記ICカード処理装置1は、図1に示すように、端末装置11、ディスプレイ12、キーボード13、テンキー14、及び、カードリーダライタ15などを有している。
【0009】
上記端末装置11は、ICカード処理装置1全体の動作を制御するものである。上記端末装置11は、CPU、種々のメモリ及び各種インターフェースなどにより構成される。たとえば、上記端末装置11は、パーソナルコンピュータ(PC)により構成される。
上記端末装置11は、上記カードリーダライタ15によりICカード2へコマンドを送信する機能、ICカード2から受信したデータを基に種々の処理を行う機能などを有している。たとえば、上記端末装置11は、カードリーダライタ15を介してICカード2にデータの書き込みコマンドを送信することによりICカード2内の不揮発性メモリにデータを書き込む制御を行う。また、上記端末装置11は、ICカード2に読み取りコマンドを送信することによりICカード2からデータを読み出す制御を行う。
【0010】
上記ディスプレイ12は、上記端末装置11の制御により種々の情報を表示する表示装置である。上記キーボード13は、当該ICカード処理装置1の操作員が操作する操作部として機能し、操作員により種々の操作指示やデータなどが入力される。上記テンキー14は、使用者IDあるいはパスワードなど数字などの情報を入力する為の入力部として機能する。
【0011】
上記カードリーダライタ15は、上記ICカード2との通信を行うためのインターフェース装置である。上記カードリーダライタ15は、上記ICカード2の通信方式に応じたインターフェースにより構成される。たとえば、上記ICカード2が接触型のICカードである場合、上記カードリーダライタ15は、ICカード2のコンタクト部と物理的かつ電気的に接続するための接触部などにより構成される。また、上記ICカード2が非接触型のICカードである場合、上記カードリーダライタ15は、ICカード2との無線通信を行うためのアンテナおよび通信制御などにより構成される。上記カードリーダライタ15では、上記ICカード2に対する電源供給、クロック供給、リセット制御、データの送受信が行われるようになっている。このような機能によってカードリーダライタ15は、上記端末装置11による制御に基づいて上記ICカード2の活性化(起動)、種々のコマンドの送信、及び送信したコマンドに対する応答の受信などを行なう。
【0012】
次に、上記ICカード2について説明する。
上記ICカード2は、上記ICカード処理装置1などの上位機器から電力などの供給を受けた際、活性化される(動作可能な状態になる)ようになっている。例えば、上記ICカード2が接触型の通信によりICカード処理装置1と接続される場合、つまり、ICカード2が接触型のICカードで構成される場合、上記ICカード2は、通信インターフェースとしてのコンタクト部を介してICカード処理装置1からの動作電源及び動作クロックの供給を受けて活性化される。
【0013】
また、上記ICカード2が非接触型の通信方式によりICカード処理装置1と接続される場合、つまり、上記ICカード2が非接触式のICカードで構成される場合、上記ICカード2は、通信インターフェースとしてのアンテナ及び変復調回路などを介してICカード処理装置1からの電波を受信し、その電波から図示しない電源部により動作電源及び動作クロックを生成して活性化するようになっている。
【0014】
次に、上記ICカード2の構成例について説明する。
図2は、本実施の形態に係るICカード2の構成例を概略的に示すブロック図である。上記ICカード2は、本体Cを構成する筐体内にモジュールMが内蔵されている。上記モジュールMは、1つまたは複数のICチップCaと通信用の外部インターフェース(通信インターフェース)とが接続された状態で一体的に形成され、ICカード2の本体C内に埋設されている。また、上記ICカード2のモジュールMは、図2に示すように、制御部21、通信インターフェース22、ROM23、RAM24、不揮発性メモリ25などを有してしている。
【0015】
上記制御部21は、当該ICカード2全体の制御を司るものである。上記制御部21は、上記ROM23あるいは上記不揮発性メモリ25に記憶されている制御プログラムや制御データに基づいて動作することにより、種々の機能を実現する。また、各種の機能のうちの一部は、ハードウエア回路により実現されるものであっても良い。この場合、上記制御部21は、ハードウエア回路により実行される機能を制御する。
【0016】
上記通信インターフェース22は、上記ICカード処理装置1のカードリーダライタ15との通信を行うためのインターフェースである。当該ICカード2が接触型のICカードとして実現される場合、上記通信インターフェース22は、上記ICカード処理装置1のカードリーダライタ15と物理的かつ電気的に接触して信号の送受信を行うための通信制御部とコンタクト部とにより構成される。また、当該ICカード2が非接触型のICカードとして実現される場合、通信インターフェース22は、上記ICカード処理装置1のカードリーダライタ15との無線通信を行うための変復調回路などの通信制御部とアンテナとにより構成される。
【0017】
上記ROM23は、予め制御用のプログラムや制御データなどが記憶されている不揮発性のメモリである。上記ROM23は、製造段階で制御プログラムや制御データなどが記憶された状態でICカード2内に組み込まれるものである。つまり、上記ROM23に記憶されている制御プログラムや制御データは、予め当該ICカード2の仕様に応じて組み込まれる。
上記RAM24は、ワーキングメモリとして機能する揮発性のメモリである。また、上記RAM24は、制御部21が処理中のデータなどを一時保管するバッファとしても機能する。例えば、上記RAM24は、上記通信インターフェース22を介してICカード処理装置1から受信したデータを一時保管するようになっている。
【0018】
上記不揮発性メモリ25は、例えば、EEPROM(Electrically Erasable Programmable Read-Only Memory)あるいはフラッシュROMなどのデータの書き込み及び書換えが可能な不揮発性のメモリにより構成される。上記不揮発性メモリ25には、当該ICカード2の運用用途に応じて制御プログラムや種々のデータが書込まれる。たとえば、上記不揮発性メモリ25では、プログラムファイルあるいはデータファイルなどが定義され、それらのファイルに制御プログラムや種々のデータが書き込まれる。
【0019】
また、上記不揮発性メモリ25は、メモリ属性情報により領域ごとに属性が設定可能である。たとえば、上記不揮発性メモリ25には、データの書換えが不能な記憶領域(ROM領域)、再活性化時には保持がクリアされる記憶領域(RAM領域)、データの書換えが可能な不揮発性の記憶領域(不揮発性メモリ領域)などが設定される。上記ROM領域は、たとえば、1回のみ書込みが可能な属性の領域として設定される。上記RAM領域は、当該ICカード2が活性化するごとに、適宜、データが書込まれる属性の領域として設定される。上記不揮発性メモリは、所定の条件を満たした場合にデータが書込まれ、書換え命令に応じてデータの書き換えが可能な属性の領域として設定される。
【0020】
次に、上記制御部21により実行される各種のプログラムなどのデータ構成例について説明する。
図3は、上記ROM23または上記不揮発性メモリ25上のROM領域におけるデータ構成例を示す図である。ここでは、ROM23内が図3に示すような構成となっているものとする。
図3に示す例では、ROM23上の記憶領域は、格納するデータごとに複数の領域310、320、331、332、334、335、…、341、342、…、34nに分割されている。これらの各領域は、自己診断制御情報320により定義される。図3に示す例では、各領域310、320、331、332、334、335、…、341、342、…、34nには、自己診断プログラム、自己診断情報、および、各種の機能を実現するための各種の制御プログラムなどがそれぞれ格納されている。言い換えると、各領域310、320、331、332、334、335、…、341、342、…、34nは、各種の制御プログラムが実現する機能ブロックを構成している。
【0021】
上記領域310に格納されている自己診断プログラムは、各種の機能の自己診断処理を実行するためのプログラムである。ここで、自己診断プログラムは、各種の機能に応じて処理パラメータを変更することにより、各機能に対する自己診断処理が実現できるものとする。ただし、各機能ごとに自己診断プログラムが異なる場合、各機能ごとの自己診断プログラムが記憶されるものとする。たとえば、ハードウエア回路により実現される機能に対する自己診断処理は、ソフトウエア(制御プログラムおよび制御データ)により実現される機能に対する自己診断処理と異なることが想定される。つまり、ハードウエア回路に対する自己診断処理は、専用の自己診断プログラムが必要であることが想定される。このため、ハードウエア回路に対する自己診断処理を行う場合、当該ハードウエア回路用の自己診断プログラムが領域310に記憶される。
【0022】
上記領域(診断情報記憶手段)320に格納されている自己診断情報は、各機能を実現するもの(制御プログラムの記憶領域、制御データの記憶領域、あるいは、ハードウエアの構成)を示す情報である。つまり、上記自己診断情報は、各機能に対する自己診断として、各機能ごとに上記自己診断プログラムが自己診断すべき対象を示す情報である。すなわち、上記自己診断プログラムは、上記領域320に記憶されている自己診断情報を参照して各種の機能に対する自己診断処理を行うようになっている。
【0023】
また、図3に示す例では、各種の制御プログラムとして、ブート処理プログラム、プロトコル制御プログラム、共通処理プログラム、ファイル管理プログラム、フェーズ管理プログラム、…、各種アプリケーションプログラム(アプリケーションプログラム1〜n)などが示されている。たとえば、各領域(データ領域)331、332、334、335、…には、それぞれブート処理プログラム、プロトコル制御プログラム、共通処理プログラム、ファイル管理プログラム、フェーズ管理プログラム、…、が格納されている。なお、ブート処理プログラムは、当該ICカード2が活性化した場合に実行される処理であり、当該ICカード2の初期設定などの処理を行う。また、プロトコル制御プログラムは、当該ICカード2が外部と通信するためのプロトコル設定などの処理を行う。また、ファイル管理プログラムは、当該ICカード2内のメモリにおけるファイル管理などの処理を行う。なお、ファイル管理プログラムでは、たとえば、ISO7816で規定されるMF、DF、EFなどの各ファイルを取り扱うための処理を行う。
【0024】
また、上記領域341、342、…、34nには、それぞれ各種のアプリケーションプログラム(アプリケーションプログラム1〜n)が格納される。各アプリケーションプログラムは、当該ICカード2の運用形態に応じてインストールされるプログラムである。各アプリケーションプログラムは、当該ICカード2の発行時に書込まれているものであっても良いし、発行処理後に適宜インストールされるようにしても良い。ただし、後者の場合、アプリケーションプログラムはROM23には書込めないため、不揮発性メモリ25に書込まれ、それに対応する自己診断プログラムおよび自己診断情報なども不揮発性メモリ25に書込まれるものとする。この場合であっても、各プログラムの記憶領域および自己診断情報などが格納されるメモリ上の領域が異なるだけであるため、後述する処理は同様に実現可能である。
【0025】
次に、各種の機能を実行する場合のデータの格納領域の構成について説明する。
図4は、上記RAM24または上記不揮発性メモリ25上のRAM領域におけるデータ構成例を示す図である。ここでは、上記RAM24内が図3に示すような構成となっているものとする。
図4に示すように、上記RAM24には、各制御プログラムにより実現される機能ごとにワーキングメモリとして使用する領域(データ記憶領域)431、432、433、434、435、…、441、442、…、44nが設定される。図4に示す例では、図3に示す各種の制御プログラムに対応して、ブート処理用データ領域431、プロトコル制御用データ領域432、共通処理用データ領域433、ファイル管理用データ領域434、フェーズ管理用データ領域435、…、各種アプリケーション(アプリケーション1〜n)用データ領域441〜44nなどが設定されている。つまり、上記のような各領域431、432、433、434、435、…、441、442、…、44nは、それぞれ、ブート処理、プロトコル制御、共通処理、ファイル管理、フェーズ管理、アプリケーション1〜nのためのRAM領域として用いられる。
【0026】
次に、上記自己診断情報の構成について説明する。
図5は、上記自己診断情報のデータ構成例を示す図である。たとえば、図3に示す自己診断情報は、図5に示すような構成となっているものとする。
図5に示すように、上記自己診断情報では、各機能ごとに、使用する各種メモリの領域を示す情報が示される。図5に示す例では、図3に示す各種の制御プログラムに対応して、ROM領域を示すROM領域情報を格納するための領域331a、332a、333a、…、34na、RAM領域を示すRAM領域情報を格納するための領域331b、332b、333b、…、34nb、不揮発性メモリ領域を示す不揮発性メモリ領域情報を格納するための領域331c、332c、333c、…、34ncが示されている。つまり、図5に示す例では、自己診断情報は、ブート処理、プロトコル制御、共通処理、ファイル管理、フェーズ管理、各種アプリケーション(アプリケーション1〜n)などに対するROM領域、RAM領域および不揮発性メモリ領域を示す情報により構成されている。
【0027】
たとえば、ブート処理は、領域331aに格納されているROM領域情報で示されるROM領域に記憶されている制御プログラムにより実現される。また、ブート処理では、領域331bに格納されているRAM領域情報で示される領域がRAMとして用いられ、領域331cに格納されている不揮発性メモリ領域情報で示される領域が不揮発性メモリとして用いられる。言い換えると、ブート処理の機能は、領域331a、領域331b、領域331cに格納されている情報で示される構成により実現される。
【0028】
同様に、プロトコル制御、共通処理、…、アプリケーションなどの機能も、それぞれ領域332a、333a、…、34na、領域332b、333b、…、34nb、領域332c、333c、…、34ncに格納されている情報で示される構成により実現される。このように、上記自己診断情報は、各機能を実現するための構成、つまり、診断対象するものを示す情報を有している。このような自己診断情報を参照することにより、上記自己診断プログラムでは、診断対象とするメモリ上の領域などを容易に識別ことができる。なお、診断対象がハードウエア回路である場合、自己診断情報は、診断対象となるハードウエア回路を示す情報などから構成されるようにしても良い。
【0029】
次に、上記自己診断処理の一例について説明する。
図6は、自己診断処理の一例を説明するためのフローチャートである。
上述したように、各機能の自己診断処理は、自己診断プログラムにより自己診断情報を参照しつつ実行される。ここでは、各機能を実現するための構成として、各機能ごとに、ROM領域、RAM領域、不揮発性メモリ領域が自己診断情報として設定されているものとする。この場合、上記自己診断処理では、診断対象する機能の各メモリ領域(自己診断情報により示される各領域)におけるデータが正常か否かを診断するものとする。たとえば、図3及び図4に示すようなプロトコル制御、共通処理、ファイル管理、フェーズ管理、…、各アプリケーションなどの機能は、図6に示すような手順で自己診断処理が実行される。つまり、図3及び図4に示すような各機能の自己診断処理は、診断の対象する領域が異なるだけで、同様な手順で実行可能である。
【0030】
すなわち、ある機能(たとえば、プロトコル制御機能)に対する自己診断処理を実行する場合、上記制御部21は、図5に示すような自己診断情報から診断対象とする機能のROM領域情報を読み出す(ステップS1)。診断対象のROM領域情報を読み出すと、上記制御部21は、読み出した領域について自己診断処理を行う(ステップS2)。この自己診断処理では、たとえば、チェックサム、CRC(cyclic redundancy check code)などの診断(検査)手法により当該ROM領域におけるデータが正常であるか否かを判断する(ステップS3)。なお、データの診断(検査)を行う手法は、種々の手法が適用可能である。上記自己診断処理の結果として当該ROM領域のデータが正常でないと判断した場合(ステップS3、YES)、上記制御部21は、当該機能に対する自己診断結果が故障であると判定し、エラー処理を行う(ステップS11)。
【0031】
また、上記自己診断処理の結果として当該ROM領域のデータが正常であると判断した場合(ステップS3、NO)、上記制御部21は、診断対象とする機能のRAM領域に対する自己診断処理へ移行する。診断対象とする機能のRAM領域に対する自己診断処理を行う場合、上記制御部21は、図5に示すような自己診断情報から診断対象とする機能のRAM領域情報を読み出す(ステップS4)。診断対象とする機能のRAM領域情報を読み出すと、上記制御部21は、読み出した領域について自己診断処理を行う(ステップS5)。この自己診断処理も、たとえば、チェックサム、CRCなどにより当該RAM領域におけるデータが正常であるか否かを判断する(ステップS6)。上記自己診断処理の結果として当該RAM領域のデータが正常でないと判断した場合(ステップS6、YES)、上記制御部21は、診断対象とする機能に対する自己診断結果が故障であると判定し、エラー処理を行う(ステップS11)。
【0032】
また、上記自己診断処理の結果として当該RAM領域のデータが正常であると判断した場合(ステップS6、NO)、上記制御部21は、診断対象とする機能の不揮発性メモリ領域に対する自己診断処理へ移行する。診断対象とする機能の不揮発性メモリ領域に対する自己診断処理を行う場合、上記制御部21は、図5に示すような自己診断情報から診断対象とする機能の不揮発性メモリ領域情報を読み出す(ステップS7)。診断対象とする機能の不揮発性メモリ情報を読み出すと、上記制御部21は、読み出した領域について自己診断処理を行う(ステップS8)。この自己診断処理も、たとえば、チェックサム、CRCなどにより当該不揮発性メモリ領域におけるデータが正常であるか否かを判断する(ステップS9)。上記自己診断処理の結果として当該不揮発性メモリ領域のデータが正常でないと判断した場合(ステップS9、YES)、上記制御部21は、診断対象としている機能に対する自己診断結果が故障であると判定し、エラー処理を行う(ステップS11)。
【0033】
また、上記自己診断処理の結果として当該不揮発性メモリ領域のデータが正常であると判断した場合(ステップS9、NO)、上記制御部21は、診断対象としている機能全体に対する自己診断処理の結果が正常とあるとし(ステップS10)、当該自己診断処理を終了する。
上記のように、上記ICカード2では、自己診断情報として、各機能ごとに、各機能を実現するための各メモリにおけるデータ記憶領域を示す情報を保持している。これにより、上記ICカード2では、各機能を実行する直前に、実行しようとする機能に対する自己診断処理を適宜実行することができるようになっている。
【0034】
次に、上記のように構成されるICカード2における処理について説明する。
まず、自己診断処理を含む処理としての第1の処理例について説明する。
図7は、上記ICカード2における自己診断処理を含む第1の処理例を説明するためのフローチャートである。
まず、上記ICカード処理装置1から電源供給、動作クロック信号およびリセット信号等を受けると、上記ICカード2の制御部21は、まず、ブート処理(活性化処理)を実行する(ステップS21)。上記ブート処理は、上記ROM23に記憶されているブート処理プログラムを上記制御部21が実行することにより実現されるものとする。
【0035】
上記ブート処理が完了すると、上記制御部21は、自己診断プログラム及び自己診断情報によりブート処理の内容をチェックする自己診断処理を行う(ステップS22)。このブート処理機能に対する自己診断処理によりブート処理が正常に実行されていないと判断した場合、つまり、ブート処理の機能が故障している可能性があると判断した場合(ステップS23、YES)、上記制御部21は、エラー処理として、ブート処理が正常に機能していない旨を上記ICカード処理装置1へ送信する(ステップS30)。これは、たとえば、ATRなどにより送信される。これにより、上記ICカード処理装置1では、ブート処理機能に故障が発生している可能性があることを認識できる。なお、エラー処理としては、ICカード2の動作を強制的に停止するようにしても良い。
【0036】
また、上記ブート処理の自己診断処理によりブート処理が正常に実行されていると判断した場合(ステップS23、NO)、上記制御部21は、所定の処理手順あるいは上記ICカード処理装置1から供給されるコマンドに基づいて各種の機能による処理を適宜実行する(ステップS25〜S29)。
たとえば、プロトコル制御処理を行う場合(ステップS24、YES)、上記制御部21は、プロトコル制御機能の自己診断が実行済みか否かを判断する(ステップS31)。ここでは、自己診断を実行すべき各機能には、自己診断を実行したか否かを示す情報がセットされるフラグ(状態情報記憶手段)がそれぞれ設定されているものとする。これらのフラグは、たとえば、RAM24上に設定される。すなわち、プロトコル制御処理を行う場合(ステップS24、YES)、上記制御部21は、プロトコル制御に対応づけられているフラグの状態に基づいてプロトコル制御機能に対する自己診断が実行済みであるか否かを判断する(ステップS31)。
【0037】
上記判断によりプロトコル制御機能に対する自己診断が実行済みでないと判断した場合(ステップS31、NO)、上記制御部21は、自己診断プログラム及び自己診断情報に基づいてプロトコル制御機能に対する自己診断処理を実行し(ステップS32)、プロトコル制御機能が故障している可能性があるか否かを判断する(ステップS33)。
また、上記判断によりプログラム制御機能の自己診断が実行済みであると判断した場合(ステップS31、YES)、上記制御部21は、プロトコル制御機能に対する自己診断を省略し、既に実行済みの自己診断結果を参照してプロトコル制御機能が故障している可能性があるか否か判断する(ステップS33)。
【0038】
上記自己診断処理によりプロトコル制御機能が故障している可能性があると診断された場合(ステップS33、YES)、上記制御部21は、エラー処理として、プロトコル制御機能が故障している可能性がある旨を上記ICカード処理装置1へ送信する(ステップS30)。これにより、上記ICカード処理装置1では、プロトコル制御機能に故障が発生している可能性があることを認識できる。
上記自己診断処理によりプロトコル制御機能が正常であると診断された場合(ステップS33、NO)、上記制御部21は、プロトコル制御機能に対する自己診断が実行済みであることを示す情報をプロトコル制御に対応づけられているフラグにセットする(ステップS34)。
上記プロトコル制御機能に対する自己診断が実行済みであることを示す情報をフラグにセットすると、上記制御部21は、上記プロトコル制御プログラムによりプロトコル制御処理を実行する(ステップS35)。
【0039】
また、ファイル管理、…、アプリケーションnなどの機能を実行する場合(例えば、ステップS27、S29)についても、上記ステップS31〜S35と同様に、自己診断処理および自己診断結果に応じた処理を行うようになっている。つまり、上述したプロトコル制御機能の処理手順と同様に、その他の各機能の処理についても、処理を実行する直前に、自己診断プログラムおよび自己診断情報に基づいて自己診断処理が実行される。また、各機能に対する自己診断処理が実行されるごとに当該機能に対する自己診断処理が実行済みであるか否かを示すフラグが設定され、フラグの状態に応じて自己診断を実行するか否かが判断される。
【0040】
上記のような第1の処理例では、ICカード2が活性化した後、最初に各機能を実行する直前に、当該機能の自己診断を行うようになっている。これにより、無駄な自己診断処理を省略して利用状況に応じた自己診断処理を実行でき、効率的な処理を実現することができる。なお、上記ブート処理には、ICカードが活性化する際に実行される処理であり、ICカード2が動作するための初期設定処理が含まれる。このため、ブート処理機能に対する自己診断処理については、ブート処理終了後に実行され、ブート処理に対する自己診断の実行済みの有無をチェックするためのフラグの設定が省略されるようになっているものとする。
【0041】
次に、自己診断処理を含む処理としての第2の処理例について説明する。
図8は、上記ICカード2における自己診断処理を含む第2の処理例を説明するためのフローチャートである。
この第2の処理例では、各機能ごとに自己診断処理の実行回数を図示しないカウンタ(計数手段)によりカウントアップし、そのカウンタの値に基づいて自己診断処理を実行するか否かを判断する。すなわち、実行しようとする機能に対応づけたカウンタの値が所定値未満であれば、当該機能に対する自己診断処理を実行し、所定値以上であれば、当該機能に対する自己診断処理を省略する。
【0042】
なお、本第2の処理例は、各機能に対する自己診断処理をカウンタの値に基づいて制御する以外は、上記第1の処理例と同様である。従って、図8に示す第2の処理例において、図7と同様な処理内容の工程については対応箇所に同一符合を付して詳細な説明を省略するものとする。たとえば、図8に示す第2の処理例では、ブート処理および各種の機能による処理を開始する直前までの処理が図7に示す第1の処理例と同様である。
また、第2の処理例において、各機能を実行するための処理手順は、上記第1の処理例とほぼ同様である。このため、ここでは、各種の機能の一例として、図8に示すフローチャートを参照しつつ、プロトコル制御機能を実行するための処理手順としてのプロトコル制御処理(ステップS45)の例について説明する。
【0043】
すなわち、プロトコル制御処理を行う場合(ステップS24、YES)、上記制御部21は、プロトコル制御機能に対応するカウンタの値が所定値未満であるか否かを判断する(ステップS51)。この判断によりプロトコル制御機能に対応するカウンタの値が所定値未満であると判断した場合、つまり、プロトコル制御機能に対する自己診断の実行回数が所定回数未満であると判断した場合(ステップS51、YES)、上記制御部21は、自己診断プログラム及び自己診断情報に基づいてプロトコル制御機能に対する自己診断処理を実行し(ステップS32)、プロトコル制御機能が故障している可能性があるか否かを判断する(ステップS33)。
上記自己診断処理によりプロトコル制御機能が故障している可能性があると診断された場合(ステップS33、YES)、上記制御部21は、エラー処理として、プロトコル制御機能が故障している可能性がある旨を上記ICカード処理装置1へ送信する(ステップS30)。これにより、上記ICカード処理装置1では、プロトコル制御機能に故障が発生している可能性があることを認識できる。
また、上記自己診断処理によりプロトコル制御機能が正常であると診断された場合(ステップS33、NO)、上記制御部21は、プロトコル制御機能に対応するカウンタの値をカウントアップ(インクリメント)する(ステップS54)。プロトコル制御機能に対応するカウンタをカウントアップすると、上記制御部21は、上記プロトコル制御プログラムによりプロトコル制御処理を実行する(ステップS35)。
また、上記判断によりプログラム制御機能に対する自己診断処理の実行回数が所定値以上であると判断した場合(ステップS51、NO)、上記制御部21は、プロトコル制御機能に対する自己診断を省略し、既に実行済みの自己診断結果を参照してプロトコル制御機能が故障している可能性があるか否かを判断する(ステップS33)。
【0044】
なお、ファイル管理、…、アプリケーションnなどの機能を実行する場合(例えば、ステップS47、S49)についても、上記ステップS51、S32、S33、S54、S35と同様に、カウンタ値に基づく自己診断処理および自己診断結果に応じた処理を行うようになっている。つまり、上述したプロトコル制御機能の処理手順と同様に、その他の各機能の処理についても、各機能に対応づけたカウンタの値が所定値未満であるか否かにより、当該機能に対する自己診断処理を実行するか否かを判断する。
【0045】
上記のような第2の処理手順では、各機能を実行する直前に、当該機能に対応づけたカウンタの値が所定値未満であるか否かを判断し、カウンタの値が所定値未満であれば、当該機能に対する自己診断処理を実行し、カウンタの値が所定値以上であれば、当該機能に対する自己診断処理を省略するようになっている。これにより、無駄な自己診断処理を省略して利用状況に応じた自己診断処理を実行でき、効率的な処理を実現することができる。
【0046】
次に、自己診断処理を含む処理としての第3の処理例について説明する。
図9は、上記ICカード2における自己診断処理を含む第3の処理例を説明するためのフローチャートである。
この第3の処理例では、各機能に対する自己診断処理を実行するか否かを任意の値によって判断するものである。つまり、第3の処理例では、各機能に対する自己診断処理を任意の条件に基づいて実行するか否かを制御する。
【0047】
ここでは、乱数生成手段としての乱数生成部(図示しない)を設け、乱数生成部により生成された乱数に基づいて各機能に対する自己診断処理を実行するか否かを判断するものとする。すなわち、第3の処理例では、各機能を実行しようとする場合に、乱数生成部により乱数を生成し、生成した乱数が所定の条件を満たせば、当該機能に対する自己診断処理を実行し、生成した乱数が所定の条件を満たさなければ、当該機能に対する自己診断処理を省略する。また、乱数生成部は、ハードウエア回路により構成されるものであっても良いし、ROM23あるいは不揮発性メモリ25に予め記憶されているプログラムにより実現されるものであっても良い。ただし、各機能に対する自己診断処理を実行するか否かを判定するための条件は、乱数以外の任意の値を用いて判定するようにしても、同様な効果が期待的できる。
【0048】
また、本第3の処理例は、各機能に対する自己診断処理を実行するか否かを乱数に基づいて制御する以外は、上記第1の処理例と同様である。従って、図9に示す第3の処理例において、図7と同様な処理内容の工程については対応箇所に同一符合を付して詳細な説明を省略するものとする。たとえば、図9に示す第3の処理例では、ブート処理および各種の機能による処理を開始する直前までの処理が図7に示す第1の処理例と同様である。また、第3の処理例において、各機能を実行するための処理手順は、上記第1の処理例とほぼ同様である。このため、ここでは、各種の機能の一例として、図9に示すフローチャートを参照しつつ、プロトコル制御機能を実行するための処理手順としてのプロトコル制御処理(ステップS65)について説明する。
【0049】
すなわち、プロトコル制御処理を行う場合(ステップS24、YES)、上記制御部21は、プロトこのコル制御機能の自己診断が実施済みであるか否かを判断する(ステップS31)。この判断によりプロトコル制御機能の自己診断が実施済みであると判断した場合(ステップS31、YES)、上記制御部21は、プロトコル制御機能に対する自己診断処理を省略し、前回実施したプロトコル制御機能の自己診断結果を参照してプロトコル制御機能が故障している可能性があるか否かを判断する(ステップS33)。
【0050】
また、上記判断によりプロトコル制御機能の自己診断が実施されていないと判断した場合(ステップS31、NO)、上記制御部21は、上記のような乱数生成部(図示しない)により乱数を生成する(ステップS70)。上記乱数生成部により乱数を生成すると、上記制御部21は、生成された乱数が所定の条件を満たすか否かを判断する(ステップS71)。この所定の条件とは、適宜設定可能な条件である。たとえば、自己診断処理を実行する頻度を高くしたい場合には乱数が所定の条件を満たす確率が高くなるように設定し、自己診断処理の実行頻度を低くしたい場合には生成される乱数が所定の条件を満たす確率が低くなるように設定するようにすれば良い。
【0051】
上記判断により乱数が所定の条件を満たすと判断した場合(ステップS71、YES)、上記制御部21は、自己診断プログラム及び自己診断情報に基づいてプロトコル制御機能に対する自己診断処理を実行する(ステップS32)。上記自己診断処理によりプロトコル制御機能が正常であると診断された場合(ステップS33、NO)、上記制御部21は、上記プロトコル制御プログラムによりプロトコル制御処理を実行する(ステップS35)。また、上記自己診断処理によりプロトコル制御機能が故障している可能性があると診断された場合(ステップS33、YES)、上記制御部21は、エラー処理として、プロトコル制御機能が故障している可能性がある旨を上記ICカード処理装置1へ送信する(ステップS30)。これにより、上記ICカード処理装置1では、プロトコル制御機能に故障が発生している可能性があることを認識できる。
【0052】
また、上記判断により乱数が所定の条件を満たしていないと判断した場合(ステップS71、YES)、上記制御部21は、プロトコル制御機能に対する自己診断を省略し、上記ステップS33へ進み、前回実施したプロトコル制御機能の自己診断結果を参照してプロトコル制御機能が故障している可能性があるか否かを判断する(ステップS33)。
なお、ファイル管理、…、アプリケーションnなどの各種の機能を実行する場合(ステップS67、S69)についても、上記ステップS70、S71、S32、S33、S35と同様に、乱数を生成し、生成した乱数が所定の条件を満たす場合に、自己診断処理および自己診断結果に応じて処理を実行するようになっている。つまり、上述したプロトコル制御機能の処理手順と同様に、その他の各機能についても、乱数を生成し、生成した乱数が所定の条件を満たすか否かにより、当該機能に対する自己診断処理を実行するか否かを判断する。
【0053】
上記のような第3の処理例では、各機能を実行する直前に、乱数を生成し、生成した乱数が所定の条件を満たすか否かを判断し、生成した乱数が所定の条件を満たせば、当該機能に対する自己診断処理を実行し、生成した乱数が所定の条件を満たさなければ、当該機能に対する自己診断処理を省略するようになっている。これにより、無駄な自己診断処理を省略して利用状況に応じた自己診断処理を実行でき、効率的な処理を実現することができる。
【0054】
上記のような各処理例では、各機能を実行する場合に、必要な最低限の領域のみを適宜自己診断する。これにより、各処理例によれば、自己診断処理の占有時間を分散させ、処理全体を効率化することが可能となる。言い換えると、各処理例では、各機能毎に自己診断する領域を分割しておき、1つの機能による処理を実行する直前に、当該機能の領域に対する自己診断を行うことにより、活性化直後などの一時期に所定の全ての自己診断処理を実行せずに、自己診断処理の占有時間を分散させることが可能となる。この結果として、上記各処理例では、自己診断による処理の正確性を保ちつつ自己診断に要する処理時間などを効率化、短縮化することが可能となる。
【0055】
なお、各機能の自己診断処理は、各機能を実行する直前に必ず実施するようにしても良い。たとえば、図7に示す第1の処理例において、自己診断の実行の可否を判断する処理(ステップS31)と自己診断の実行状況を示すフラグをセットする処理(ステップS34)を省略すれば、各機能を実行する直前に自己診断処理を毎回実施するようにできる。さらには、特定の機能についてのみ毎回自己診断を実行するようにすることも可能である。
【0056】
また、上記のような各処理例は、当該ICカードの運用形態、あるいは、各機能に対する自己診断処理の重要性などに基づいて組合せて実施することも可能である。たとえば、ブート処理あるいはプロトコル制御処理などの機能については、第1の処理例の手順により活性化後に最初に実行する直前に必ず自己診断を実行し、各アプリケーションについては、第3の処理例で説明した処理手順により任意の値(乱数)に基づいて自己診断を実行するか否かを制御するというような形態も実現可能である。つまり、各機能による処理の重要度あるいは要求される信頼性などに応じて、各機能ごとに何れか処理例を適用ことが可能である。
【0057】
なお、この発明は、上述した実施の形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具現化できる。また、上記実施形態に開示されている複数の構成要素の適宜な組み合わせにより、種々の発明を形成できる。例えば、実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。更に、異なる実施形態に亘る構成要素を適宜組み合わせてもよい。
【図面の簡単な説明】
【0058】
【図1】ICカードと、ICカードとの通信機能を有するICカード処理装置の構成例を概略的に示すブロック図である。
【図2】図1に示すICカードの構成例を概略的に示すブロック図である。
【図3】図2に示すROMに記憶されるデータの構成例を示す図。
【図4】図2に示すRAM内、又は不揮発性メモリ内の構成例を示す図である。
【図5】自己診断情報の構成例を示す図。
【図6】自己診断処理の処理手順の例を説明するためのフローチャートである。
【図7】自己診断処理を含む第1の処理例を説明するためのフローチャートである。
【図8】自己診断処理を含む第2の処理例を説明するためのフローチャートである。
【図9】自己診断処理を含む第3の処理例を説明するためのフローチャートである。
【符号の説明】
【0059】
1…ICカード処理装置、2…ICカード、C…本体、M…モジュール、Ca…ICチップ、21…制御部、22…通信インターフェース、23…ROM、24…RAM、25…不揮発性メモリ

【特許請求の範囲】
【請求項1】
種々の処理手段を有する携帯可能電子装置において、
前記各処理手段が正常であるか否かを診断するための各処理手段に対応づけた種々の診断情報を記憶する診断情報記憶手段と、
前記各処理手段のうちの1つの処理手段による処理を実行する場合に、前記診断情報記憶手段に記憶されている当該処理手段に対応する診断情報に基づいて当該処理手段を診断する診断手段と、
この診断手段により当該処理手段が正常であると診断された場合、当該処理手段による処理を実行する実行手段と、
を有することを特徴とする携帯可能電子装置。
【請求項2】
さらに、前記処理手段として機能する制御プログラムを記憶するデータ記憶手段を有し、
前記診断情報記憶手段は、前記データ記憶手段に記憶されている前記処理手段として機能する前記制御プログラムの記憶領域を示す診断情報を記憶し、
前記診断手段は、前記診断情報記憶手段に記憶されている診断情報に基づいて特定される診断対象の処理手段として機能する制御プログラムの前記データ記憶手段における記憶領域を診断する、
ことを特徴とする前記請求項1に記載の携帯可能電子装置。
【請求項3】
前記処理手段は、ハードウエア回路により構成され、
前記診断手段は、診断対象の処理手段としてのハードウエア回路を診断する、
ことを特徴とする前記請求項1に記載の携帯可能電子装置。
【請求項4】
前記診断手段は、当該携帯可能電子装置が起動した後、各処理手段が最初に実行される場合に、各処理手段に対する診断をそれぞれ実行する、
ことを特徴とする前記請求項1乃至3に記載の携帯可能電子装置。
【請求項5】
さらに、前記各処理手段に対する診断処理が実行済みであるか否かを示す情報を記憶する状態記憶手段を有し、
前記診断手段は、各処理手段を実行する場合、前記状態記憶手段に当該処理手段に対する診断処理が実行済みでないことが記憶されていれば、当該処理手段に対する診断を実行する、
ことを特徴とする前記請求項4に記載の携帯可能電子装置。
【請求項6】
さらに、各処理手段に対する診断処理の実行回数を計数する計数手段を有し、
前記診断手段は、各処理手段による処理を実行する場合に、前記計数手段により計数されている診断処理の実行回数が所定の回数未満であれば、当該処理手段に対する診断を実行する、
ことを特徴とする前記請求項1乃至3に記載の携帯可能電子装置。
【請求項7】
さらに、乱数を生成する乱数生成手段を有し、
前記診断手段は、各処理手段により処理を実行する場合、前記乱数生成手段により生成された乱数が所定の条件を満たしていれば、当該処理手段に対する診断を実行する、
ことを特徴とする前記請求項1乃至3に記載の携帯可能電子装置。
【請求項8】
さらに、前記各手段を有するモジュールと、
前記モジュールが内蔵された本体と、
を具備することを特徴する請求項1乃至7記載の携帯可能電子装置。
【請求項9】
種々の処理手段を有する携帯可能電子装置に用いられる制御方法であって、
前記各処理手段のうちの1つの処理手段による処理を実行する場合に、前記各処理手段が正常であるか否かを診断するための各処理手段に対応づけた種々の診断情報を記憶する前記診断情報記憶手段に記憶されている当該処理手段に対応する診断情報に基づいて、当該処理手段を診断し、
この診断により当該処理手段が正常であると診断された場合、当該処理手段による処理を実行する、
を有することを特徴とする携帯可能電子装置の制御方法。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate


【公開番号】特開2008−310597(P2008−310597A)
【公開日】平成20年12月25日(2008.12.25)
【国際特許分類】
【出願番号】特願2007−157872(P2007−157872)
【出願日】平成19年6月14日(2007.6.14)
【出願人】(000003078)株式会社東芝 (54,554)
【Fターム(参考)】