(57)【要約】【課題】  正確にプログラムを実行し、且つ、処理時間を短縮させた携帯可能電子装置および携帯可能電子装置の制御方法を提供する。【解決手段】  複数のモジュールを含むプログラムを第１のメモリに記憶しておき、処理要求を受信した際、前記プログラムの複数のモジュールを予め定められた順番で実行し、前記プログラムの各モジュール毎の処理結果を第２のメモリに追記記憶する。前記プログラムの各モジュールを実行する際、前段までの全てのモジュールが実行されているか否かを前記第２のメモリの記憶内容に基づいて判定し、前段までの全てのモジュールが実行されていると判定した場合、前記プログラムの次のモジュールの実行を許可する。【選択図】      図２
2008243096.tif 000002
【特許請求の範囲】
【請求項１】
外部装置からの処理要求に応じて処理を実行する携帯可能電子装置において、
複数のモジュールを含むプログラムが記憶される第１のメモリと、
前記プログラムの各モジュール毎の処理結果が記憶される第２のメモリと、
外部装置とデータの送受信を行なう通信手段と、
前記通信手段により処理要求を受信した際、前記プログラムの複数のモジュールを予め定められた順番で実行する処理手段と、
前記プログラムのモジュールの内、前段までの全てのモジュールが実行されているか否かを前記第２のメモリの記憶内容に基づいて判定する判定手段と、
前記判定手段により前段までの全てのモジュールが実行されていると判定した場合、前記処理手段に前記プログラムの次のモジュールの実行を許可する制御手段と、
前記処理手段による処理結果を前記第２のメモリに追記記憶する記憶手段と、
を具備する携帯可能電子装置。
【請求項２】
前記通信手段により処理要求を受信した際、前記第２のメモリの記憶内容を初期化する初期化手段をさらに具備する請求項１に記載の携帯可能電子装置。
【請求項３】
上記制御手段は、前記判定手段により前段までの全てのモジュールが実行されていないと判定した場合、前記プログラムを実行する処理の継続を禁止する手段を具備する請求項１に記載の携帯可能電子装置。
【請求項４】
前記第２のメモリに記憶される前記処理手段による処理結果は、モジュールを実行したか否かの情報を１ビットとしたフラグである請求項１に記載の携帯可能電子装置。
【請求項５】
前記フラグは、各モジュール毎に異なるビットにより構成される請求項４に記載の携帯可能電子装置。
【請求項６】
外部装置からの処理要求に応じて処理を実行する携帯可能電子装置の制御方法において、
複数のモジュールを含むプログラムを第１のメモリに記憶し、
前記プログラムの各モジュール毎の処理結果を第２のメモリに記憶し、
外部装置とデータの送受信を行ない、
外部装置より処理要求を受信した際、前記プログラムの複数のモジュールを予め定められた順番で実行し、
前記プログラムのモジュールの内、前段までの全てのモジュールが実行されているか否かを前記第２のメモリの記憶内容に基づいて判定し、
前段までの全てのモジュールが実行されていると判定した場合、前記プログラムの次のモジュールの実行を許可し、
処理結果を前記第２のメモリに追記記憶する、
携帯可能電子装置の制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、例えば、制御素子、通信インターフェース、メモリなどを有するＩＣチップが内蔵され、外部装置からの処理要求に応じて処理を実行するＩＣカードなどの携帯可能電子装置に関する。
【背景技術】
【０００２】
一般的に、携帯可能電子装置としてのＩＣカードは、プラスチックなどで形成されたカード状の本体と本体に埋め込まれたＩＣチップとを有している。ＩＣチップは、電源が無い状態でもデータを保持することができるＥＥＰＲＯＭ（Ｅｌｅｃｔｒｉｃａｌｌｙ  Ｅｒａｓａｂｌｅ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｒｅａｄ−Ｏｎｌｙ  Ｍｅｍｏｒｙ）、あるいはフラッシュＲＯＭなどの不揮発性メモリを有している。不揮発性メモリには、種々のプログラムやプログラムで用いられるデータが記録されている。近年、不揮発性メモリの小型化等の技術が進歩し、ＩＣカードに記憶容量の大きい不揮発性メモリを設けることが可能となっている。これにより、ＩＣカードは、大量のデータを扱うことができることから、次世代のカードとして広く注目を集めている。
【０００３】
たとえば、ＩＣカードは、エレクトロニック・パース（電子貨幣、電子マネー）、電子商取引（エレクトロニック・コマース）、及び企業内部のプライベートセキュリティシステム（ドアセキュリティシステム、ネットワーク上のアクセス管理など）に用いられている。これらの用途においては、セキュリティが極めて重要となる。しかし、従来のＩＣカードは、他の電子機器からの電磁波や、熱、振動などの強度が想定値を超えた場合、誤動作を起こす場合があった。悪意のある者が故意にＩＣカードに誤動作を起こさせた場合、ＩＣカードに記憶されている情報が不正に読み出されてしまう可能性がある。そこで、誤動作の種類に応じて適切に処理を継続もしくは停止する情報処理装置が提供されている（たとえば、特許文献１参照）。
【特許文献１】特開２００２−３３４３１７号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
上記した情報処理装置は、同様の分岐処理を複数回繰り返すことにより、処理を通過してしまう誤動作を検知している。しかし、分岐の多いプログラムを実行する場合、上記した情報処理装置は、処理に余分な時間がかかるという問題がある。また、分岐処理を繰り返す回数を超えて処理を通過してしまった場合、その誤動作を検知することができないという問題もある。この場合、ＩＣカードに記憶されている情報が漏洩してしまう可能性がある。
【０００５】
そこで、本発明の目的は、正確にプログラムを実行し、且つ、処理時間を短縮させた携帯可能電子装置および携帯可能電子装置の制御方法を提供することにある。
【課題を解決するための手段】
【０００６】
本発明の一実施形態としての携帯可能電子装置は、外部装置からの処理要求に応じて処理を実行する携帯可能電子装置において、複数のモジュールを含むプログラムが記憶される第１のメモリと、前記プログラムの各モジュール毎の処理結果が記憶される第２のメモリと、外部装置とデータの送受信を行なう通信手段と、前記通信手段により処理要求を受信した際、前記プログラムの複数のモジュールを予め定められた順番で実行する処理手段と、前記プログラムのモジュールの内、前段までの全てのモジュールが実行されているか否かを前記第２のメモリの記憶内容に基づいて判定する判定手段と、前記判定手段により前段までの全てのモジュールが実行されていると判定した場合、前記処理手段に前記プログラムの次のモジュールの実行を許可する制御手段と、前記処理手段による処理結果を前記第２のメモリに追記記憶する記憶手段とを具備する。
【０００７】
また、本発明の一実施形態としての携帯可能電子装置の制御方法は、外部装置からの処理要求に応じて処理を実行する携帯可能電子装置の制御方法において、複数のモジュールを含むプログラムを第１のメモリに記憶し、前記プログラムの各モジュール毎の処理結果を第２のメモリに記憶し、外部装置とデータの送受信を行ない、外部装置より処理要求を受信した際、前記プログラムの複数のモジュールを予め定められた順番で実行し、前記プログラムのモジュールの内、前段までの全てのモジュールが実行されているか否かを前記第２のメモリの記憶内容に基づいて判定し、前段までの全てのモジュールが実行されていると判定した場合、前記プログラムの次のモジュールの実行を許可し、処理結果を前記第２のメモリに追記記憶する。
【発明の効果】
【０００８】
この発明の形態によれば、正確に処理を実行し、且つ、処理時間を短縮させた携帯可能電子装置および携帯可能電子装置の制御方法を提供することができる。
【発明を実施するための最良の形態】
【０００９】
以下、図面を参照しながら、本発明の一実施形態に係る携帯可能電子装置および携帯可能電子装置の制御方法について詳細に説明する。
【００１０】
始めに、携帯可能電子装置としてのＩＣカードを処理するＩＣカード処理装置について詳細に説明する。  
図１は、本実施形態に係るＩＣカード２との通信機能を有する外部装置としてのＩＣカード処理装置１を概略的に示すブロック図である。  
ＩＣカード処理装置１は、端末装置１１、ディスプレイ１２、キーボード１３、及び、カードリーダライタ１４などを有している。
【００１１】
端末装置１１は、ＣＰＵ、種々のメモリ及び各種インターフェースなどを有する装置により構成され、ＩＣカード処理装置１全体の動作を制御する。端末装置１１は、カードリーダライタ１４によりＩＣカード２へ処理コマンドを送信する機能、ＩＣカード２から受信したデータを基に種々の処理を行う機能などを有している。  
たとえば、端末装置１１は、カードリーダライタ１４を介してＩＣカード２にデータの書き込みコマンドを送信することによりＩＣカード２内の不揮発性メモリにデータを書き込む。また、端末装置１１は、ＩＣカード２に読み取りコマンドを送信することによりＩＣカード２からデータを読み出す。
【００１２】
ディスプレイ１２は、端末装置１１の制御により種々の情報を表示する表示装置である。キーボード１３は、ＩＣカード処理装置１の操作者が操作する操作部として機能し、操作者により種々の操作指示やデータなどが入力される。
【００１３】
カードリーダライタ１４は、ＩＣカード２との通信を行うためのインターフェース装置である。カードリーダライタ１４は、ＩＣカード２に対する電源供給、クロック供給、リセット制御、および、データの送受信を行う。このような機能によってカードリーダライタ１４は、端末装置１１による制御に基づいてＩＣカード２の活性化（起動）、種々の処理コマンドの送信、及び送信した処理コマンドに対する応答の受信などを行なう。
【００１４】
次に、ＩＣカード２の構成例について説明する。  
図２は、図１に示すＩＣカード２の構成例を概略的に示すブロック図である。ＩＣカード２は、カード状の本体２１と、本体２１内に内蔵されたＩＣモジュール２２とを備えている。ＩＣモジュール２２は、１つまたは複数のＩＣチップ２３と、通信部２４とを供え、これらは互いに接続された状態で一体的に形成されている。ＩＣチップ２３は、通信部２４、制御部２５、ＲＡＭ２６、ＲＯＭ２７、および不揮発性メモリ２８などを有している。
【００１５】
通信部２４は、ＩＣカード処理装置１のカードリーダライタ１４との通信を行うためのインターフェースであり、通信手段として機能する。ＩＣカード２が接触式のＩＣカードとして実現される場合、通信部２４は、ＩＣカード処理装置１のカードリーダライタ１４と接触して信号の送受信を行うための通信制御部と外部インターフェースとしてのコンタクト部とにより構成される。また、ＩＣカード２が非接触式のＩＣカードとして実現される場合、通信部２４は、ＩＣカード処理装置１のカードリーダライタ１４との無線通信を行うための通信制御部と外部インターフェースとしてのアンテナとにより構成される。
【００１６】
ＩＣカード２は、ＩＣカード処理装置１などの上位機器から電力などの供給を受けた際、活性化される（動作可能な状態になる）ようになっている。例えば、ＩＣカード２が接触式通信によりＩＣカード処理装置１と接続される場合、つまり、ＩＣカード２が接触式のＩＣカードで構成される場合、ＩＣカード２は、通信部としてのコンタクト部などを介してＩＣカード処理装置１からの動作電源及び動作クロックの供給を受けて活性化される。
【００１７】
また、ＩＣカード２が非接触式の通信方式によりＩＣカード処理装置１と接続される場合、つまり、ＩＣカード２が非接触式のＩＣカードで構成される場合、ＩＣカード２は、通信部としてのアンテナなどを介してＩＣカード処理装置１からの電波を受信し、その電波から図示しない電源部により動作電源及び動作クロックを生成して活性化するようになっている。
【００１８】
制御部２５は、ＩＣカード２全体の制御を司るものである。制御部２５は、ＲＯＭ２７あるいは不揮発性メモリ２８に記憶されている制御プログラムや制御データに基づいて動作することにより、種々の処理手段として機能する。
【００１９】
ＲＡＭ２６は、ワーキングメモリとして機能する揮発性のメモリである。また、ＲＡＭ２６は、制御部２５が処理中のデータなどを一時保管するバッファメモリとしても機能する。例えば、ＲＡＭ２６は、通信部２４を介してＩＣカード処理装置１から受信したデータを一時保管する。また、ＲＡＭ２６は、ＩＣカード２が実行しているプログラムの処理状況を示すビットフラグが記憶されるビットフラグ記憶領域２６ａを含んでいる。
【００２０】
ＲＯＭ２７は、予め制御用のプログラムや制御データなどが記憶されている不揮発性のメモリである。ＲＯＭ２７は、製造段階で制御プログラムや制御データなどが記憶された状態でＩＣカード２内に組み込まれている。つまり、ＲＯＭ２７に記憶されている制御プログラムや制御データは、予めＩＣカード２の仕様に応じて組み込まれる。
【００２１】
不揮発性メモリ２８は、例えば、ＥＥＰＲＯＭあるいはフラッシュＲＯＭなどの、データの書き込み及び書換えが可能な不揮発性のメモリにより構成される。不揮発性メモリ２８には、ＩＣカード２の運用用途に応じて制御プログラムや種々のデータが書込まれる。たとえば、不揮発性メモリ２８では、プログラムファイルやデータファイルなどが定義され、それらのファイルに制御プログラムや種々のデータが書き込まれる。制御部２５は、この制御プログラムを実行することにより処理手段として機能する。
【００２２】
ＲＯＭ２７あるいは不揮発性メモリ２８には、制御プログラムの他に、ＩＣカード２が行なう処理を実現するためのプログラム（実行プログラム）と、それを監視するためのプログラム（監視プログラム）とが記憶されている。実行プログラムは、処理を実行するための複数のモジュールにより構成されている。制御部２５は、実行プログラムを起動すると、目的に応じて複数のモジュールの中から必要なモジュールを選択し、適切な順番に並び替えて処理を実行する。
【００２３】
監視プログラムは、制御部２５による実行プログラムの処理状況を監視するためのプログラムにより構成されている。制御部２５は、監視プログラムを起動することにより、ビットフラグ記憶領域２６ａを参照して前段のモジュールが実行されているか否かを判定する判定手段、前段のモジュールが実行されていると判定した場合に次のモジュールの実行を許可する制御手段、および、制御部２５による処理結果をビットフラグ記憶領域２６ａに追記記憶する記憶手段として機能する。また、制御部２５は、通信部２４によりＩＣカード処理装置１から処理コマンドを受信した場合、ビットフラグ記憶領域２６ａのビットフラグを初期化する（全て０にする）初期化手段として機能する。
【００２４】
なお、ビットフラグは、１ビットを１つのフラグと見立てたビットの集合である。ここでは、ビットフラグ記憶領域２６ａは、モジュールを実行したか否かの情報（処理結果）を１ビットとして記憶している。複数のモジュールが存在する場合、各モジュール毎に１ビットが処理結果を記憶するための領域として対応付けられる。制御部２５は、処理コマンドを受信すると実行プログラムを起動し、必要なモジュールを順番に並び替え、実行したモジュールに対応するビットフラグを立てる（ビットを１にする）。ここで、制御部２５は、最初に実行するモジュールの処理結果をビットフラグ記憶領域２６ａの１ビット目、２番目に実行するモジュールの処理結果をビットフラグ記憶領域２６ａの２ビット目、・・・、に記憶する。つまり、通過されたモジュールに対応するビットフラグは、初期化された状態（０）のままとなる。
【００２５】
即ち、制御部２５は、モジュールを実行する際に前段のモジュールに対応するビットフラグを読み、ビットフラグが１である場合、前段のモジュールが実行されていると判断し、モジュールを実行する。
【００２６】
なお、本実施形態では、モジュールを実行したことを示す情報をビットフラグとしてＲＡＭ２６に記憶するとしたが、如何なる形で記憶してもよい。例えば、ビットフィールドなどを用いてもよい。ビットフィールドはビットフラグに比べて容量性がいい為、記憶領域の使用を抑えることができる。
【００２７】
次に、ＩＣカード２の動作について説明する。  
図３は、図２に示すＩＣカード２の動作例を説明するためのフローチャートである。なお、ここでは、実行プログラムのモジュールが３つである場合について説明する。
【００２８】
まず、ＩＣカード処理装置１からの電源供給、動作クロック信号およびリセット信号等を受けて、ＩＣカード２が活性化された状態であるものとする。すると、ＩＣカード２は、ＩＣカード処理装置１からのコマンドを待つ待機状態となる（ステップＳ１１）。この状態において、ＩＣカード２は、ＩＣカード処理装置１から送信された処理コマンドと処理用のデータとを通信部２４により受信する。すると（ステップＳ１１、ＹＥＳ）、ＩＣカード２の制御部２５は、受信した処理コマンドに応じた実行プログラムをＲＯＭ２７あるいは不揮発性メモリ２８から読み込み、起動する（ステップＳ１２）。制御部２５は、実行プログラムを起動すると、ＲＡＭ２６のビットフラグ記憶領域２６ａのビットを全て０にする（ステップＳ１３）。
【００２９】
次に、制御部２５は、ビットフラグ記憶領域２６ａのビットが「・・・０００」であるかどうか判定する（ステップＳ１４）。ビットフラグ記憶領域２６ａのビットが「・・・０００」であると判定した場合（ステップＳ１４、ＹＥＳ）、制御部２５は、起動した実行プログラムのモジュールＡを実行する（ステップＳ１５）。モジュールＡを実行し終わると同時に、制御部２５は、ビットフラグ記憶領域２６ａの最下位のビットを１にする（ステップＳ１６）。
【００３０】
続いて、制御部２５は、ビットフラグ記憶領域２６ａのビットが「・・・００１」であるかどうか判定する（ステップＳ１７）。ビットフラグ記憶領域２６ａのビットが「・・・００１」であると判定した場合（ステップＳ１７、ＹＥＳ）、制御部２５は、起動した実行プログラムのモジュールＢを実行する（ステップＳ１８）。モジュールＢを実行し終わると同時に、制御部２５は、ビットフラグ記憶領域２６ａの最下位から２番目のビットを１にする（ステップＳ１９）。
【００３１】
続いて、制御部２５は、ビットフラグ記憶領域２６ａのビットが「・・・０１１」であるかどうか判定する（ステップＳ２０）。ビットフラグ記憶領域２６ａのビットが「・・・０１１」であると判定した場合（ステップＳ２０、ＹＥＳ）、制御部２５は、起動した実行プログラムのモジュールＣを実行する（ステップＳ２１）。モジュールＣを実行し終わると同時に、制御部２５は、ビットフラグ記憶領域２６ａの最下位から３番目のビットを１にする（ステップＳ２２）。
【００３２】
最後に、制御部２５は、ビットフラグ記憶領域２６ａのビットが「・・・１１１」であるかどうか判定する（ステップＳ２３）。即ち、制御部２５は、実行プログラムのモジュールの数だけ、ビットフラグ記憶領域２６ａの最下位のビットから１が並んでいるか否かを判定する。ビットフラグ記憶領域２６ａのビットが「・・・１１１」であると判定した場合（ステップＳ２３、ＹＥＳ）、制御部２５は、モジュールＡ、Ｂ、およびＣは正常に処理されたと判断し、モジュールＡ、Ｂ、およびＣの処理結果をＩＣカード処理装置１に送信する（ステップＳ２４）。
【００３３】
ステップＳ１４、ステップＳ１７、ステップＳ２０、およびステップＳ２３において、ＮＯだった場合、制御部２５は、モジュールＡ、Ｂ、およびＣのいずれかが正常に処理されなかったと判断し、警告をＩＣカード処理装置１に送信する（ステップＳ２５）。
【００３４】
上記のように、本実施形態のＩＣカード２では、制御部２５は、処理コマンドを受信すると実行プログラムを起動し、ＲＡＭ２６内のビットフラグ記憶領域２６ａのビットを全て０にする。制御部２５は、実行プログラム内のモジュールを実行する前に、前段までの全てのモジュールが実行されているかを判定し、実行されていると判定した場合、モジュールを実行する。制御部２５は、モジュールを実行すると、実行したモジュールに対応するビットフラグ記憶領域２６ａのビットを１にする。上記の処理を繰り返し、最後に、実行プログラム中のモジュール全てが実行されたか否かをビットフラグ記憶領域２６ａを参照して判断し、全て実行されたと判断された場合、処理結果をＩＣカード処理装置１に送信する。
【００３５】
このようなＩＣカード２によれば、モジュールを実行する毎にモジュールを実行したことを示すフラグを立て、且つ、モジュールを実行する際に前段までのモジュールが実行されているか否かをフラグに基づいて判断し、モジュールが通過された場合、プログラムを中断する。これにより、プログラム中のモジュールを通過してしまうことを防ぐことができる。この結果として、正確にプログラムを実行し、且つ、処理時間を短縮させた携帯可能電子装置および携帯可能電子装置の制御方法を提供することができる。
【００３６】
なお、この発明は、上記実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具現化できる。また、上記実施形態に開示されている複数の構成要素の適宜な組み合わせにより、種々の発明を形成できる。例えば、実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。更に、異なる実施形態に亘る構成要素を適宜組み合わせてもよい。
【００３７】
上述した実施形態では携帯可能電子装置はＩＣカードとして説明した。しかし、携帯可能電子装置は、これに限らず、例えばパスポート、クレジットカード、キャッシュカード、ＩＤカード、及び携帯電話など、情報を記憶する為のメモリと、処理装置との通信手段を有するものであれば、本発明は適用され得る。
【図面の簡単な説明】
【００３８】
【図１】図１は、本実施形態に係るＩＣカード処理装置の構成例を概略的に示すブロック図である。
【図２】図２は、図１に示すＩＣカードの構成例を概略的に示すブロック図である。
【図３】図３は、図２に示すＩＣカードの動作例を説明するためのフローチャートである。
【符号の説明】
【００３９】
１…ＩＣカード処理装置、２…ＩＣカード、２４…通信部、２５…制御部、２６…ＲＡＭ、２６ａ…ビットフラグ記憶領域、２７…ＲＯＭ、２８…不揮発性メモリ。
【図１】
2008243096.tif 000003
【図２】
2008243096.tif 000004
【図３】
2008243096.tif 000005