(57)【特許請求の範囲】
【請求項１】
データを記憶する揮発性メモリと、
命令を解釈して実行するプログラムのうち不揮発性メモリに対しデータを処理するための一部のプログラムを除く残りのプログラムがあらかじめ格納され、かつ、特定領域に前記不揮発性メモリに対しデータを処理するための一部のプログラムが本来とは異なる状態に変換されてあらかじめ格納された前記不揮発性メモリと、
外部から命令が入力されると、前記不揮発性メモリの特定領域に本来とは異なる状態に変換されて格納されている前記不揮発性メモリに対しデータを処理するための一部のプログラムを本来の状態に変換してから前記揮発性メモリの特定領域に展開するとともに、前記不揮発性メモリに格納された当該命令を解釈して実行するプログラムを実行し、当該プログラムの実行中に前記揮発性メモリの特定領域に格納された本来の状態に変換された前記不揮発性メモリに対しデータを処理するための一部のプログラムを呼び出すことで当該プログラムを実行する処理手段と、
を具備し、
前記不揮発性メモリに対しデータを処理するための一部のプログラムは、前記不揮発性メモリに対し外部から入力されるデータを書込む書込み処理を行なうためのプログラム、および、前記不揮発性メモリ内のデータを外部へ読出す読出し処理を行なうためのプログラムであり、
前記不揮発性メモリは、プログラム呼び出しプログラム領域を備え、
前記処理手段は、前記プログラム呼び出しプログラム領域に格納されたプログラム呼び出しプログラムに基づき、前記不揮発性メモリに対しデータを処理するための一部のプログラムを呼び出す携帯可能電子装置。
【請求項２】
前記揮発性メモリの特定領域は、前記一部のプログラムが格納されていないときにホールト（ＨＡＬＴ）処理が施されている請求項１記載の携帯可能電子装置。
【請求項３】
前記揮発性メモリの特定領域に対するホールト（ＨＡＬＴ）処理は、命令処理の終了時にその都度実施される請求項１記載の携帯可能電子装置。
【請求項４】
データを記憶する揮発性メモリと、命令を解釈して実行するプログラムのうち不揮発性メモリに対しデータを処理するための一部のプログラムを除く残りのプログラムがあらかじめ格納され、かつ、特定領域に前記不揮発性メモリに対しデータを処理するための一部のプログラムが本来とは異なる状態に変換されてあらかじめ格納された前記不揮発性メモリと、外部から命令が入力されると、前記不揮発性メモリの特定領域に本来とは異なる状態に変換されて格納されている前記不揮発性メモリに対しデータを処理するための一部のプログラムを本来の状態に変換してから前記揮発性メモリの特定領域に展開するとともに、前記不揮発性メモリに格納された当該命令を解釈して実行するプログラムを実行し、当該プログラムの実行中に前記揮発性メモリの特定領域に格納された本来の状態に変換された前記不揮発性メモリに対しデータを処理するための一部のプログラムを呼び出すことで当該プログラムを実行する処理手段とを有して構成されるＩＣモジュールと、
このＩＣモジュールを収納したＩＣカード本体と、
を具備し、
前記不揮発性メモリに対しデータを処理するための一部のプログラムは、前記不揮発性メモリに対し外部から入力されるデータを書込む書込み処理を行なうためのプログラム、および、前記不揮発性メモリ内のデータを外部へ読出す読出し処理を行なうためのプログラムであり、
前記不揮発性メモリは、プログラム呼び出しプログラム領域を備え、
前記処理手段は、前記プログラム呼び出しプログラム領域に格納されたプログラム呼び出しプログラムに基づき、前記不揮発性メモリに対しデータを処理するための一部のプログラムを呼び出すＩＣカード。
【請求項５】
データを記憶する揮発性メモリと、
命令を解釈して実行するプログラムのうち不揮発性メモリに対しデータを処理するための一部のプログラムを除く残りのプログラムがあらかじめ格納され、かつ、特定領域に前記不揮発性メモリに対しデータを処理するための一部のプログラムが本来とは異なる状態に変換されてあらかじめ格納された前記不揮発性メモリと、
外部から命令が入力されると、前記不揮発性メモリの特定領域に本来とは異なる状態に変換されて格納されている前記不揮発性メモリに対しデータを処理するための一部のプログラムを本来の状態に変換してから前記揮発性メモリの特定領域に展開するとともに、前記不揮発性メモリに格納された当該命令を解釈して実行するプログラムを実行し、当該プログラムの実行中に前記揮発性メモリの特定領域に格納された本来の状態に変換された前記不揮発性メモリに対しデータを処理するための一部のプログラムを呼び出すことで当該プログラムを実行する処理手段と、
を具備し、
前記不揮発性メモリに対しデータを処理するための一部のプログラムは、前記不揮発性メモリに対し外部から入力されるデータを書込む書込み処理を行なうためのプログラム、および、前記不揮発性メモリ内のデータを外部へ読出す読出し処理を行なうためのプログラムであり、
前記不揮発性メモリは、プログラム呼び出しプログラム領域を備え、
前記処理手段は、前記プログラム呼び出しプログラム領域に格納されたプログラム呼び出しプログラムに基づき、前記不揮発性メモリに対しデータを処理するための一部のプログラムを呼び出すＩＣモジュール。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は、携帯可能電子装置、ＩＣカードおよびＩＣモジュールに関する。
【背景技術】
【０００２】
最近、携帯可能電子装置として、データメモリとしてのＥＥＰＲＯＭ、ワーキングメモリとしてのＲＡＭ、これらのメモリに対してアクセス（データの読出しおよびまたは書込み等）を行なう制御素子としてのＣＰＵ、および、ＣＰＵの動作用プログラム（コマンドを解釈して実行するプログラム等）を格納したプログラムメモリとしてのＲＯＭを有し、外部のカードリーダ・ライタから入力されるコマンドを解釈してデータの書込み処理や読出し処理を実行し、その結果を外部のカードリーダ・ライタへ出力するＩＣカードが産業各方面で利用されている。
【０００３】
一般に、この種のＩＣカードにあっては、たとえば、データメモリ内にファイルを創生するファイル創生コマンドなどに対してメモリ書込みに関連する処理を行なうプログラム（プログラムコード）、あるいは、書込みコマンドや読出しコマンドに対してメモリ書込み処理や読出し処理を行なうプログラムなど、コマンドを解釈して実行するプログラムは、あらかじめＲＯＭに格納されているのが普通である。
【０００４】
しかしながら、従来は、上記したように、コマンドを解釈して実行するプログラムはＲＯＭにあらかじめ格納されており、そのため、ハードウェアの誤動作などの際にプログラムカウンタの値によっては、データメモリへのデータ誤書込み、あるいは、データメモリ内のデータの誤読出しを行なうことがあるという問題がある。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００３−２２４２５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
本発明が解決しようとする課題は、ハードウェアの誤動作などによるデータの誤書込みや誤読出しを未然に防止することができる携帯可能電子装置、ＩＣカードおよびＩＣモジュールを提供することを目的とする。
【課題を解決するための手段】
【０００７】
実施形態に係る携帯可能電子装置は、データを記憶する揮発性メモリと、命令を解釈して実行するプログラムのうち不揮発性メモリに対しデータを処理するためのプログラムを除く残りのプログラムがあらかじめ格納され、かつ、特定領域に前記不揮発性メモリに対しデータを処理するためのプログラムが本来とは異なる状態に変換されてあらかじめ格納された前記不揮発性メモリと、外部から命令が入力されると、前記不揮発性メモリの特定領域に本来とは異なる状態に変換されて格納されている前記不揮発性メモリに対しデータを処理するためのプログラムを本来の状態に変換してから前記揮発性メモリの特定領域に展開するとともに、前記不揮発性メモリに格納された当該命令を解釈して実行するプログラムを実行し、当該プログラムの実行中に前記揮発性メモリの特定領域に格納された本来の状態に変換された前記不揮発性メモリに対しデータを処理するためのプログラムを参照あるいは呼び出すことで当該プログラムを実行する処理手段とを具備する。
【図面の簡単な説明】
【０００８】
【図１】実施形態に係る携帯可能電子装置としてのＩＣカードを取扱うＩＣカードシステムの構成例を示すブロック図。
【図２】実施形態に係るＩＣカードの構成例を示すブロック図。
【図３】実施形態に係るＩＣカードに入力されるコマンドのフォーマットの一例を示す図。
【図４】実施形態に係るワーキングメモリの構成を概略的に示す模式図。
【図５】第１の実施形態に係るプログラムメモリの構成およびワーキングメモリのプログラム格納領域との関係を示す模式図。
【図６】第１の実施形態に係るコマンド処理の流れを説明するフローチャート。
【図７】第２の実施形態に係るプログラムメモリの構成およびワーキングメモリのプログラム格納領域との関係を示す模式図。
【図８】第２の実施形態に係るコマンド処理の流れを説明するフローチャート。
【発明を実施するための形態】
【０００９】
以下、実施形態に係る携帯可能電子装置としてのＩＣカードについて図面を参照して説明する。  
まず、第１の実施形態について説明する。
【００１０】
図１は、本実施形態に係る携帯可能電子装置としてのＩＣカードを取扱うＩＣカードシステムの構成例を示すものである。このＩＣカードシステムは、ＩＣカード１０１をカードリーダ・ライタ１０２を介してパーソナルコンピュータなどの端末装置１０３と接続可能にするとともに、端末装置１０３にキーボード１０４、ＣＲＴ表示部１０５、プリンタ１０６を接続して構成される。
【００１１】
図２は、ＩＣカード１０１の構成例を示すもので、制御手段としての制御素子（たとえば、ＣＰＵ）２０１、記憶手段としてのデータメモリ２０２、ワーキングメモリ２０３、プログラムメモリ２０４、および、カードリーダ・ライタ１０２との通信を行なうための通信部２０５によって構成されている。そして、これらのうち、破線内の部分（制御素子２０１、データメモリ２０２、ワーキングメモリ２０３、プログラムメモリ２０４）は１つ（あるいは複数）のＩＣチップ２０６で構成され、さらに、このＩＣチップ２０６と通信部２０５とが接続された状態で一体的にＩＣモジュール２０７化されて、ＩＣカード本体（図示省略）内に埋設されている。
【００１２】
制御素子２０１は、各種の判定処理や判断処理およびメモリへの書込みや読出しなどのデータ処理等を行なう制御部である。
【００１３】
データメモリ２０２は、アプリケーションデータなどの各種データの記憶に使用され、たとえば、ＥＥＰＲＯＭ（エレクトリカリ・イレーザブル・アンド・プログラマブル・リード・オンリ・メモリ）などの消去（書換え）可能な不揮発性メモリで構成されている。
【００１４】
ワーキングメモリ２０３は、制御素子２０１が処理を行なう際の処理データや外部から入力されるプログラムの一部などを一時的に保持するための作業用メモリであり、たとえば、ＲＡＭ（ランダム・アクセス・メモリ）などの揮発性メモリで構成されている。
【００１５】
プログラムメモリ２０４は、たとえば、マスクＲＯＭ（リード・オンリ・メモリ）などの書換え不可能な不揮発性メモリで構成されており、制御素子２０１が実行するコマンド処理プログラム（コマンドを解釈して実行するプログラム等）や固定の設定データなどが記憶される。
【００１６】
通信部２０５は、ＩＣカード１０１が非接触式（無線式）ＩＣカードの場合にはアンテナ部として構成され、カードリーダ・ライタ１０２から送信された変調波を非接触で受信したり外部へ変調波を発信したりするようになっている。また、この通信部２０５で受信した変調波から内部回路に供給するための電源やクロックを生成するようになっている。また、接触式ＩＣカードの場合にはコンタクト部として構成され、カードリーダ・ライタ１０２に設けられたＩＣカード端子部（図示しない）と接触することにより電源やクロックを得るようになっている。
【００１７】
図３は、ＩＣカード１０１に外部から入力されるコマンドのフォーマットの一例を示すものである。図３において、３０１はクラスバイト（ＣＬＡ）、３０２はインストラクションバイト（ＩＮＳ）、３０３，３０４はパラメータバイト（Ｐ１，Ｐ２）、３０５はＬｃフィールド、３０６はコマンドデータフィールド、３０７はＬｅフィールドと呼ばれ、コマンドデータフィールド３０６にダウンロードする一部のプログラムが暗号化されて格納される。
【００１８】
図４は、ワーキングメモリ２０３の構成を概略的に示すものである。ワーキングメモリ２０３は、外部から受信したコマンドを一時格納するコマンドバッファ領域４０１、および、コマンドに付加されて入力される一部のプログラムを一時的に格納するプログラム格納領域４０２を有している。
【００１９】
図５は、第１の実施形態に係るプログラムメモリ２０４の構成、および、ワーキングメモリ２０３のプログラム格納領域４０２との関係を示している。プログラムメモリ２０４は、コマンド処理プログラムが格納されているコマンド処理プログラム領域５０１、コマンドに付加されて入力される暗号化された一部のプログラムを復号化する復号化処理プログラムが格納されている復号化処理プログラム領域５０２、ワーキングメモリ２０３のプログラム格納領域４０２に格納された一部のプログラムを呼び出すためのプログラム呼び出しプログラムが格納されているプログラム呼び出しプログラム領域５０３、コマンド処理プログラムが格納されているコマンド処理プログラム領域５０４を有していて、その順番にプログラム処理が実行される。
【００２０】
次に、上記のような構成において、第１の実施形態に係るコマンド処理について図６に示すフローチャートを参照して説明する。
【００２１】
まず、プログラムメモリ２０４のコマンド処理プログラム領域５０１，５０４には、コマンド処理プログラム（コマンドを解釈して実行するプログラム）のうち一部のプログラム（たとえば、データの書込み処理プログラムおよびデータの読出し処理プログラム）を除く残りのプログラムがあらかじめ格納されているものとする。また、上記一部のプログラムは、コマンドのコマンドデータフィールド３０６に暗号化されて格納され、コマンドとともに入力されるものとする。
【００２２】
さて、カードリーダ・ライタ１０２から送信されるコマンドを受信すると（ステップＳ１）、制御素子２０１は、受信したコマンドをワーキングメモリ２０３のコマンドバッファ領域４０１に格納した後（ステップＳ２）、プログラムメモリ２０４のコマンド処理プログラム領域５０１に格納されたプログラムに基づくコマンド処理を開始する（ステップＳ３）。
【００２３】
ステップＳ３の処理が終了すると、制御素子２０１は、復号化処理プログラム領域５０２に格納されたプログラムの処理に進み、コマンドに付加されて入力された一部のプログラムの復号化処理を行なう（ステップＳ４）。すなわち、ワーキングメモリ２０３のコマンドバッファ領域４０１に格納されているコマンドのコマンドデータフィールド３０６内の暗号化されたデータ（すなわち、一部のプログラム）を復号化する。
【００２４】
次に、制御素子２０１は、復号化した一部のプログラムをワーキングメモリ２０３のプログラム格納領域４０２に格納する（ステップＳ５）。  
ステップＳ５の処理が終了すると、制御素子２０１は、プログラム呼び出しプログラム領域５０３に格納されたプログラムの処理に進む（ステップＳ６）。すなわち、ワーキングメモリ２０３のプログラム格納領域４０２に格納された一部のプログラムを呼び出して、そのプログラム処理（たとえば、データメモリ２０２に対するデータ書込み処理やデータ読出し処理等）を実施する。
【００２５】
ステップＳ６の処理が終了すると、制御素子２０１は、プログラムメモリ２０４のコマンド処理プログラム領域５０４に格納されたプログラムに基づくコマンド処理に戻る（ステップＳ７）。
【００２６】
ステップＳ７の処理が終了すると、制御素子２０１は、ワーキングメモリ２０３のプログラム格納領域４０２に対しホールト（ＨＡＬＴ）処理を実施し（ステップＳ８）、コマンド処理を全て終了する。
【００２７】
このように、第１の実施形態によれば、コマンドを解釈して実行するプログラムのうち一部のプログラムを除く残りのプログラムはプログラムメモリ２０４に格納し、一部のプログラムは外部から入力されるコマンドによりワーキングメモリ２０３のプログラム格納領域４０２に格納し、当該コマンドを解釈して実行するプログラムの実行中にワーキングメモリ２０３のプログラム格納領域４０２に格納された一部のプログラムを参照あるいは呼び出して処理を実行することで、ハードウェアの誤動作などによるデータメモリ２０２に対するデータの誤書込みや誤読出しを未然に防止することができる。
【００２８】
次に、第２の実施形態について説明する。  
第２の実施形態の第１の実施形態と異なる点は、第１の実施形態のように一部のプログラムをコマンドに付加して入力するのではなく、一部のプログラムをプログラムメモリ２０４の特定領域にあらかじめ格納しておき、コマンドが入力されると、その特定領域内の一部のプログラムをワーキングメモリ２０３のプログラム格納領域４０２に展開して使用する点にあり、その外は第１の実施形態と同様であるので説明は省略し、異なる点についてだけ以下に説明する。
【００２９】
図７は、第２の実施形態に係るプログラムメモリ２０４の構成、および、ワーキングメモリ２０３のプログラム格納領域４０２との関係を示している。プログラムメモリ２０４は、コマンド処理プログラムが格納されているコマンド処理プログラム領域５０１、一部のプログラムが本来とは異なる状態に変換されて、たとえば、暗号化されて格納されているとともに、その暗号化された一部のプログラムを復号化してワーキングメモリ２０３のプログラム格納領域４０２に展開するプログラム展開処理プログラムが格納されているプログラム展開処理プログラム領域５０５、ワーキングメモリ２０３のプログラム格納領域４０２に格納された一部のプログラムを呼び出すためのプログラム呼び出しプログラムが格納されているプログラム呼び出しプログラム領域５０３、コマンド処理プログラムが格納されているコマンド処理プログラム領域５０４を有していて、その順番にプログラム処理が実行される。
【００３０】
次に、上記のような構成において、第２の実施形態に係るコマンド処理について図８に示すフローチャートを参照して説明する。
【００３１】
まず、プログラムメモリ２０４のコマンド処理プログラム領域５０１，５０４には、コマンド処理プログラム（コマンドを解釈して実行するプログラム）のうち一部のプログラム（たとえば、データの書込み処理プログラムおよびデータの読出し処理プログラム）を除く残りのプログラムがあらかじめ格納されているものとする。また、上記一部のプログラムは、プログラムメモリ２０４のプログラム展開処理プログラム領域５０５にあらかじめ暗号化されて格納されているものとする。
【００３２】
さて、カードリーダ・ライタ１０２から送信されるコマンドを受信すると（ステップＳ１１）、制御素子２０１は、受信したコマンドをワーキングメモリ２０３のコマンドバッファ領域４０１に格納した後（ステップＳ１２）、プログラムメモリ２０４のコマンド処理プログラム領域５０１に格納されたプログラムに基づくコマンド処理を開始する（ステップＳ１３）。
【００３３】
ステップＳ１３の処理が終了すると、制御素子２０１は、プログラム展開処理プログラム領域５０５に格納されたプログラムの処理に進み、展開する一部のプログラムの変換処理（復号化）を行なう（ステップＳ１４）。すなわち、プログラムメモリ２０４のプログラム展開処理プログラム領域５０５に暗号化されて格納されている一部のプログラムを復号化する。
【００３４】
次に、制御素子２０１は、復号化した一部のプログラムをワーキングメモリ２０３のプログラム格納領域４０２に格納（展開）する（ステップＳ１５）。  
ステップＳ１５の処理が終了すると、制御素子２０１は、プログラム呼び出しプログラム領域５０３に格納されたプログラムの処理に進む（ステップＳ１６）。すなわち、ワーキングメモリ２０３のプログラム格納領域４０２に格納された一部のプログラムを呼び出して、そのプログラム処理（たとえば、データメモリ２０２に対するデータ書込み処理やデータ読出し処理等）を実施する。
【００３５】
ステップＳ１６の処理が終了すると、制御素子２０１は、プログラムメモリ２０４のコマンド処理プログラム領域５０４に格納されたプログラムに基づくコマンド処理に戻る（ステップＳ１７）。
【００３６】
ステップＳ１７の処理が終了すると、制御素子２０１は、ワーキングメモリ２０３のプログラム格納領域４０２に対しホールト（ＨＡＬＴ）処理を実施し（ステップＳ１８）、コマンド処理を全て終了する。
【００３７】
このように、第２の実施形態によれば、コマンドを解釈して実行するプログラムのうち一部のプログラムを除く残りのプログラムはプログラムメモリ２０４に格納するとともに、一部のプログラムはプログラムメモリ２０４のプログラム展開処理プログラム領域５０５に格納しておき、コマンドが入力されると、プログラムメモリ２０４のプログラム展開処理プログラム領域５０５に格納されている一部のプログラムをワーキングメモリ２０３のプログラム格納領域４０２に展開し、当該コマンドを解釈して実行するプログラムの実行中にワーキングメモリ２０３のプログラム格納領域４０２に格納された一部のプログラムを参照あるいは呼び出して処理を実行することで、ハードウェアの誤動作などによるデータメモリ２０２に対するデータの誤書込みや誤読出しを未然に防止することができる。
【００３８】
なお、前記実施形態では、携帯可能情報処理媒体として非接触式ＩＣカードに適用した場合について説明したが、これに限定されるものではなく、たとえば、非接触式ＩＣカードの機能を備えたＰＤＡと称される携帯端末装置や携帯電話機などであっても適用でき、また、カード型に限らず、冊子型、ブロック形あるいはタグ型であってもよい。
【００３９】
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行なうことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれると同様に、特許請求の範囲に記載された発明とその均等の範囲に含まれるものである。
【符号の説明】
【００４０】
１０１…ＩＣカード（携帯可能電子装置）、１０２…カードリーダ・ライタ、１０３…端末装置、１０４…キーボード、１０５…ＣＲＴ表示部、１０６…プリンタ、２０１…制御素子（ＣＰＵ）、２０２…データメモリ、２０３…ワーキングメモリ、２０４…プログラムメモリ、２０５…通信部、２０６…ＩＣチップ、２０７…ＩＣモジュール。
【図１】
0005492172.tif 000002
【図２】
0005492172.tif 000003
【図３】
0005492172.tif 000004
【図４】
0005492172.tif 000005
【図５】
0005492172.tif 000006
【図６】
0005492172.tif 000007
【図７】
0005492172.tif 000008
【図８】
0005492172.tif 000009