JP4176889B2 - Icカード - Google Patents
Icカード Download PDFInfo
- Publication number
- JP4176889B2 JP4176889B2 JP34233998A JP34233998A JP4176889B2 JP 4176889 B2 JP4176889 B2 JP 4176889B2 JP 34233998 A JP34233998 A JP 34233998A JP 34233998 A JP34233998 A JP 34233998A JP 4176889 B2 JP4176889 B2 JP 4176889B2
- Authority
- JP
- Japan
- Prior art keywords
- program
- application
- card
- interpreter
- cpu
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Description
【発明の属する技術分野】
本発明はICカードに関し、特に、CPUとメモリとを有し、メモリ内に格納されたアプリケーションプログラムをCPUによって実行させることにより、種々の処理を行うICカードに関する。
【0002】
【従来の技術】
キャッシュカードやクレジットカードとして利用されてきた磁気カードに代わって、光カードやICカードが普及し始めている。特に、CPUを内蔵したICカードは、高度なセキュリティを確保することができるため、高額な商取引にも利用することができる利点を有する。
【0003】
現在、一般に利用されているCPUを有するICカードには、メモリとして、ROM,EEPROM,RAMが内蔵されている。通常、ROMには、CPUに実行させるべき基本的なプログラムが格納され、EEPROMには、ユーザデータや種々のアプリケーションプログラムが格納され、RAMはCPUの作業領域として利用される。EEPROMは書換可能なメモリであるため、ここにユーザごとに必要なデータやアプリケーションプログラムを格納することができる。ICカードに内蔵されたCPUは、いわゆるマシン語のコードを直接実行することにより、種々の処理を行う。ところが、アプリケーションプログラムは、通常、CPUに依存しない汎用言語で記述される。したがって、CPUは、このアプリケーションプログラムを直接解釈して実行することはできない。そこで、一般的なICカードでは、アプリケーションプログラムをCPUが解釈できる形式に翻訳し、これをCPUに実行させる機能をもった解釈実行用プログラム(インタープリタプログラム)が用意されている。
【0004】
ICカードにデータやプログラムを書き込んだり、これらを読み出したりする際には、いわゆるリーダライタ装置と呼ばれる外部装置が用いられる。この外部装置とICカードとの間では、物理的な伝送線を介してまたは非接触な伝送路を介して、相互にデータやプログラムの伝送が行われる。通常、外部装置からICカードへの情報伝送は、コマンドという形式で与えられ、種々の指示やデータは、このコマンドの中の一情報としてICカード側へと伝えられる。これに対して、ICカードから外部装置への情報伝送は、レスポンスという形式で与えられ、処理結果やデータは、このレスポンスの中の一情報として外部装置側へと伝えられる。
【0005】
【発明が解決しようとする課題】
前述したように、従来の一般的なICカードでは、ROM内の解釈実行用プログラムを用いて、アプリケーションプログラムをマシン語のコードに逐次翻訳し、これをCPUに実行させるという方式が採られている。したがって、ROM内の解釈実行用プログラムが解釈可能な所定の言語で記述されたアプリケーションプログラムであれば、これを常にマシン語のコードに翻訳してCPUに実行させることが可能である。しかしながら、このROM内の解釈実行用プログラムが対応していない別な言語で記述されたアプリケーションプログラムについては、全く実行することができない。
【0006】
従来は、同一のICカードで実行させるアプリケーションプログラムは、すべて同一の言語で記述するのが一般的であった。しかしながら、最近は、ICカードの内蔵メモリの集積度も向上してきており、多数のアプリケーションプログラムをICカード内にロードしておき、必要に応じてこれらを選択して実行させるという環境が一般化しつつある。このような環境下では、同一のICカードで実行させるアプリケーションプログラムをすべて同一の言語で記述するという制約は、ソフトウエアの開発効率を低下させる要因となり好ましくない。特に、最近は、JAVA、MEL、といったCPUに依存しない種々の汎用言語が普及しつつあり、個々のアプリケーションプログラムごとに、それぞれ最も適した言語を用いて開発が行われるようになってきている。このため、複数の言語に対応できるICカードが望まれており、また、そのICカードがどのような言語に対応しているかを外部から認識することが可能なICカードが望まれている。
【0007】
そこで本発明は、複数の言語で記述されたアプリケーションプログラムに対応し、かつ、対応言語を外部から認識することが可能なICカードを提供することを目的とする。
【0008】
【課題を解決するための手段】
(1) 本発明の第1の態様は、CPUと書換可能なメモリと書換不能なメモリとを有し、
CPUに依存しない所定の言語で記述されたアプリケーションプログラムを、外部から取り込み、このアプリケーションプログラムを書換可能なメモリへ格納する機能と、
所定の言語で記述されたアプリケーションプログラムを、CPUが解釈できる形式に翻訳し、これを内蔵CPUに実行させる機能をもったインタープリタプログラムを用い、書換可能なメモリ内に格納されたアプリケーションプログラムを実行する機能と、
を有するICカードにおいて、
メモリ内に、
それぞれ異なる言語の翻訳に対応した複数n個のインタープリタプログラムと、これら各インタープリタプログラムを特定するための複数n個の識別コードと、
このn個の識別コードを外部に報知する処理を行う報知用プログラムと、
外部からロードアプリケーションコマンドが与えられたときに、所定のアプリケーションプログラムと、当該アプリケーションプログラムの翻訳が可能なインタープリタプログラムを特定するための識別コードと、を外部から取り込み、書換可能なメモリへ格納する処理を行うアプリケーション格納プログラムと、
外部からアプリケーション選択コマンドが与えられたときに、書換可能なメモリに格納されているいずれかのアプリケーションプログラムを選択する処理を行うアプリケーション選択プログラムと、
外部から特定のアプリケーションに対するコマンドが与えられたときに、アプリケーション選択プログラムによって選択されている選択アプリケーションプログラムを、当該選択アプリケーションプログラムについて格納されている識別コードによって特定されるインタープリタプログラムを用いて実行するアプリケーション実行プログラムと、
を格納したものである。
【0009】
(2) 本発明の第2の態様は、上述の第1の態様に係るICカードにおいて、
外部装置との間でデータの送受を行うためのI/O信号線を介して、報知用プログラムがn個の識別コードを外部装置へ伝達するようにしたものである。
【0010】
(3) 本発明の第3の態様は、上述の第2の態様に係るICカードにおいて、
外部装置からCPUにリセット信号が与えられた場合に、I/O信号線を介して外部装置へリセット信号に対する応答信号を返す機能を利用し、報知用プログラムが、この応答信号に、n個の識別コードを付加するようにしたものである。
【0011】
【発明の実施の形態】
以下、本発明を図示する実施形態に基づいて説明する。図1は、一般的なICカード10と、外部装置(リーダライタ装置)20との間で、情報の伝送を行っている状態を示すブロック図である。この例では、ICカード10は、種々の演算処理機能をもったCPU11と、外部装置20に対する情報の送受を行うI/Oインターフェイス12と、ROM13,EEPROM14,RAM15なるメモリとを備えている。ROM13は書換不能な不揮発性メモリであり、CPU11は、このROM13内に格納されている基本プログラムに基づいて所定の処理を実行する。EEPROM14は、書換可能な不揮発性メモリであり、ユーザデータや種々のアプリケーションプログラムが格納される。アプリケーションプログラムは、CPU11に依存しない汎用言語で記述されており、これをCPU11に実行させるためには、プログラムの内容をCPU11が解釈できる形式に翻訳し、これをCPU11に実行させる処理を行う解釈実行プログラムが必要になる。通常、逐次実行型の解釈実行プログラムは、インタープリタプログラムと呼ばれており、本実施形態でも、このインタープリタプログラムにより解釈実行が行われる。後述するように、本実施形態では、複数のインタープリタプログラムが、ROM13内に用意されている。また、RAM15は、CPU11が種々の処理を実行する際の作業領域として利用される書換可能な揮発性メモリである。
【0012】
ICカード10と外部装置20とは、物理的な信号線による接続、赤外線による接続、電磁気を利用した非接触型接続、などの方法によって互いに接続され、情報の送受が行われる。図1に示す例では、5本の物理的な信号線によって両者が接続されている。ここで、信号線VccおよびCLKは、外部装置20からICカード10に、電源電圧VccおよびクロックCLKを供給するための線であり、信号線RSTは、外部装置20からICカード10へ、CPU11に対するリセット信号を供給するための線である。一方、信号線I/Oは、外部装置20からICカード10に対して所定のコマンドを送信する信号伝送路として機能するとともに、ICカード10から外部装置20に対して所定のレスポンスを送信する信号伝送路として機能する線である。また、信号線GNDは、外部装置20とICカード10とで共通の電源接地レベルを確保するための線である。
【0013】
ICカード10が外部装置20に接続されると、ICカード10内の各構成要素に、電源電圧VccおよびクロックCLKが供給される。外部装置20側から信号線RSTを通じてリセット信号を与えると、ICカード10側のCPU11はリセットルーチンを実行し、コマンドを受け入れる準備ができたことを示すために、このリセットに対する応答信号であるATR(Answer To Reset )信号を、信号線I/Oを通じて外部装置20へと返す処理を行う。外部装置20は、このATR信号を受けた後、必要な処理を行うためのコマンドを信号線I/Oを通じてICカード10側へと送信する。送信されたコマンドは、I/Oインターフェイス12を介してCPU11に与えられ、ROM13内の基本プログラムに従って、与えられたコマンドに応じた処理が実行される。コマンドの処理結果は、レスポンスという形式で、CPU11からI/Oインターフェイス12を介して、外部装置20へと送信される。
【0014】
図2は、ROM13内に用意されている基本プログラムの構成例を示すメモリマップである。図示の例では、ROM13内には5つの領域が定義されており、個々の領域には、それぞれ特定の機能を実行するための基本プログラムが格納されている。これらの基本プログラムは、CPU11が直接実行することができるマシン語で記述されている。
【0015】
まず、リセット処理領域13aには、信号線RSTを通じてCPU11にリセット信号が与えられたときに、CPU11が最初に実行すべきリセット処理プログラムが格納されている。このリセット処理プログラムは、必要な初期設定を行うとともに、上述したATR信号を送信する機能を有する。ATR信号は、数バイトからなる特定のコード(以下、ATR固定情報と呼ぶ)から構成され、リセット処理領域13aには、このATR固定情報自身も格納されている。この実施形態では、図3に示すような5バイト(XXは特定の1バイトコードを示す)からなるATR固定情報がリセット処理領域13aに格納されており、ATR信号の送信処理は、この5バイトからなるATR固定情報を、I/Oインターフェイス12および信号線I/Oを介して外部装置20側へと送信する処理ということになる。外部装置20は、この特定の5バイトからなるコードを受信することによって、ATR信号の受信とみなし、コマンドの送信処理を開始することになる。
【0016】
一方、通信制御処理領域13bには、I/Oインターフェイス12を介した外部装置20との通信処理を行うための通信制御処理プログラムが格納されている。CPU11は、このプログラムに基づいて、外部装置20との間での情報の送受に必要な処理を実行することになる。上述したATR信号の送信処理も、この通信制御処理プログラムの一部を利用して行われることになる。
【0017】
また、ロードアプリケーションコマンド処理領域13cには、外部装置20から、図4に示すようなフォーマットをもった「ロードアプリケーションコマンド」が与えられた場合に実行されるプログラムが格納されている。このプログラムは、CPUに依存しない所定の言語で記述されたアプリケーションプログラムを、外部装置20から取り込み、このアプリケーションプログラムをEEPROM14へ格納するための処理プログラムである。図4に示す「ロードアプリケーションコマンド」の先頭の1バイトはコマンドコードであり、当該コマンドが、「ロードアプリケーションコマンド」であることを示す特定の1バイトコードからなる。続く16バイトには、このアプリケーションの名前を示す文字列が記述される。その次の1バイトであるインタープリタ識別コードは、このアプリケーションプログラムを解釈実行するために必要なインタープリタプログラム(解釈実行用プログラム)を特定するためのコードである。次の2バイトは、後続するアプリケーションプログラムの長さLaを示すデータであり、この後に、長さLaバイトのアプリケーションプログラム本体が続くことになる。
【0018】
アプリケーション選択コマンド処理領域13dには、外部装置20から、図5に示すようなフォーマットをもった「アプリケーション選択コマンド」が与えられた場合に実行されるプログラムが格納されている。このプログラムは、特定のアプリケーションプログラムを選択する指示を、外部装置20から取り込み、選択されたアプリケーションプログラムを、必要な解釈実行用プログラムを利用して、CPU11に実行させるための環境を整えるプログラムである。図5に示す「アプリケーション選択コマンド」の先頭の1バイトはコマンドコードであり、当該コマンドが、「アプリケーション選択コマンド」であることを示す特定の1バイトコードからなる。次の16バイトには、選択対象となる特定のアプリケーションの名前を示す文字列が記述される。
【0019】
最後のインタプリタ格納領域13eには、複数のインタープリタプログラムが格納されている。上述したように、インタープリタプログラムは、所定の言語で記述されたアプリケーションプログラムを、CPU11が解釈できる形式に翻訳し、これをCPU11に実行させる機能をもった解釈実行プログラムであり、特定の言語にのみ対応している。本発明に係るICカードのひとつの特徴は、それぞれ異なる言語に対応した複数のインタープリタプログラム(解釈実行プログラム)を内蔵させた点にある。図2に示す例では、インタープリタプログラム格納領域13eには、合計n個のインタープリタプログラムが格納されており、これらのインタープリタプログラムはいずれも対応言語を異にするものである。別言すれば、このICカード10は、nとおりの異なる言語で記述されたアプリケーションプログラムに対応していることになる。
【0020】
図2において、第1のインタープリタプログラム1が格納されている領域をみると、この領域内の先頭の1バイトには、この第1のインタープリタプログラム1についてのインタープリタ識別コード(たとえば、F1)が格納されており、次の2バイトには、この第1のインタープリタプログラム1の長さ(この例の場合、Li1)が格納されており、続くLi1バイトの領域には、この第1のインタープリタプログラム1の本体部分(CPU11が直接実行できるマシン語のプログラム)が格納されている。同様にして、たとえば、第nのインタープリタプログラムnが格納されている領域をみると、この領域内の先頭の1バイトには、この第nのインタープリタプログラムnについてのインタープリタ識別コード(たとえば、Fn)が格納されており、次の2バイトには、この第nのインタープリタプログラムnの長さ(この例の場合、Lin)が格納されており、続くLinバイトの領域には、この第nのインタープリタプログラムnの本体部分が格納されている。
【0021】
図6は、上述した「ロードアプリケーションコマンド」を実行した後のEEPROM14内の状態の一例を示すメモリマップである。図示の例では、EEPROM14内には、アプリケーション登録領域14aとデータ記録領域14bとが設けられている。アプリケーション登録領域14aは、「ロードアプリケーションコマンド」の実行により、外部装置20からロードしたアプリケーションプログラムを登録するための領域であり、図示の例では、3つのアプリケーションX〜Zが登録された状態が示されている(アプリケーションYの登録領域の図示は省略)。図4に示すようなフォーマットをもった1つの「ロードアプリケーションコマンド」を実行することにより、1つのアプリケーションが登録されることになる。図6に示すアプリケーション登録領域14aの先頭に格納された16バイトからなるアプリケーションの名前、次の1バイトからなるインタープリタ識別コード、その次の2バイトからなるアプリケーションプログラムの長さ、そしてこれに後続するアプリケーションプログラムの本体は、いずれも、図4に示す「ロードアプリケーションコマンド」内に含まれていた情報である。
【0022】
この図6に示す例では、アプリケーションXは、識別コード「F3」で示される第3番目のインタープリタによって解釈実行が可能な言語で記述されており、プログラム本体の長さはLaXバイトである。一方、アプリケーションZは、識別コード「F2」で示される第2番目のインタープリタによって解釈実行が可能な言語で記述されており、プログラム本体の長さはLaZバイトである。このように、アプリケーションXとZとは、それぞれ異なる言語によって記述されたプログラムであるが、本発明に係るICカードでは、これらの言語に対応したインタープリタプログラムがROM13内に用意されている限り、いずれのアプリケーションプログラムも支障なく実行することができる。
【0023】
なお、データ記録領域14bは、ユーザデータや管理データを格納するための領域であり、アプリケーションX〜Zは、これらのデータを用いて所定の処理を実行することになる。
【0024】
さて、上述したように、本発明に係るICカードでは、ROM13内に用意されているインタープリタプログラムが対応している言語で記述されたアプリケーションプログラムであれば実行することが可能であるが、ROM13内のインタープリタプログラムが対応していない言語で記述されたアプリケーションプログラムは実行することができない。たとえば、図6に示すEEPROM14にロードされたアプリケーションプログラムXを実行するためには、このプログラムXのインタープリタ識別コードがF3であることから、F3なるインタープリタ識別コードをもったインタープリタプログラムがROM13内に用意されていなければならない。もし、そのようなインタープリタプログラムが用意されていなければ、プログラムXは実行不能であり、せっかくEEPROM14内にロードした意味はなくなってしまう。
【0025】
そこで、本発明では、内蔵しているインタープリタプログラム(解釈実行プログラム)が対応する言語を、外部に報知する機能をもたせるようにしている。この機能が本発明の重要な特徴である。たとえば、図2に示すように、nとおりのインタープリタプログラムがROM13内に用意されている場合には、これらのインタープリタプログラムが解釈実行可能なnとおりの言語が何であるか、という情報を外部に報知することができる。
【0026】
このような情報を外部に報知する方法としては、種々の方法が考えられるが、本実施形態では、外部装置20との間でデータの送受を行うための信号線I/Oを介して、対応する言語を示すコードを外部装置20へ伝達する方法を採っている。ロードアプリケーションコマンドを用いて、EEPROM14内に特定のアプリケーションプログラムをロードさせる処理を行うのは外部装置20であるため、上述の方法により、対応言語を示すコードを外部装置20へ直接伝達するようにすれば、外部装置20に極めて有用な情報を与えることができる。すなわち、外部装置20側では、この対応言語を示すコードに基づいて、特定の言語で記述されたアプリケーションプログラムが、ICカード10内で実行可能かどうかを事前に確認することができ、実行可能である場合にのみ、当該アプリケーションプログラムについてのロードアプリケーションコマンドを送信する処理を実行することができる。
【0027】
本実施形態では、更に効率的な処理が可能になるように、対応言語を示すコードの送信タイミングについても工夫を凝らしている。すなわち、前述したように、外部装置20からCPU11にリセット信号が与えられると、このリセット信号に対する応答信号、すなわちATR信号が、信号線I/Oを通じて外部装置20側へと返されることになるが、本実施形態では、このATR信号に、対応言語を示すコードを付加するようにしている。図7は、このようなコードを付加したATR信号の一例を示す。先頭の5バイトは、図3に示すATR固定情報であり、従来のICカードにおいてATR信号として返送されていた通常の情報である。続く3バイトの情報が、本発明に固有の情報であり、対応言語を示すコード、すなわち、インタープリタ識別コードである。図示の例の場合、3とおりのインタープリタ識別コードF1,F2,F3が付加されているが、これは、ROM13内にこの3とおりのインタープリタ識別コードに対応する3とおりのインタープリタプログラムが用意されていた場合の例である。図2に示すROM13のように、nとおりのインタープリタプログラムが用意されている場合には、合計nバイトからなるインタープリタ識別コードが付加されることになる。
【0028】
外部装置20は、このようなATR信号を受信することにより、ICカード10側のコマンド受信準備が整ったことを確認することができ、また、このICカード10がどのような言語で記述されたアプリケーションプログラムを実行可能であるかという情報を得ることができる。対応言語を外部に報知する手段として、ATR信号を利用することは、次の2つの点でメリットがある。第1のメリットは、現在普及している規格では、ICカード10と外部装置20とを接続し、両者間の交信を開始する際には、必ず外部装置20側からリセット信号を送信し、ICカード10側からATR信号を返信することになっているため、ATR信号の送信は不可欠の手順であるという点である。別言すれば、ATR信号の送信手順は、規格上必ず行わねばならない手順であるため、この必須の手順に便乗して対応言語を示す情報を送信するようにすれば、余分な手順を付加する必要が一切ない、というメリットが得られることになる。そして、第2のメリットは、ICカード10と外部装置20とを接続した後、ICカード10側から最初に送信される信号がこのATR信号であるため、初期段階において、対応言語を外部装置20側に報知することができるという点である。すなわち、アプリケーションプログラムをEEPROM14内にロードする処理は、必ず、このATR信号の送信処理の後に行われることになるので、外部装置20は、ロードアプリケーションコマンドを送信する時点では、必ず対応言語を示す情報を入手していることになる。したがって、ICカードが対応していない言語で記述されたアプリケーションプログラムを誤ってロードするような無駄な手順を必ず避けることが可能になる。
【0029】
最後に、図8および図9の流れ図を参照しながら、このICカード10内で実行される処理動作を説明する。まず、ICカード10が外部装置20に接続され、信号線RSTを通じてCPU11がリセットされると、ROM13のリセット処理領域13a内のリセットルーチンが実行され、ステップS1において、ATR情報の編集処理が行われる。この編集処理は、図7に示すようなATR信号を作成する処理であり、具体的には、リセット処理領域13a内に格納された5バイトのATR固定情報(図3参照)に、インタープリタ格納領域13e内に格納された複数のインタープリタについての各インタープリタ識別コードを付加する処理ということになる。こうして、図7に示すようなATR信号が準備できたら、ステップS2において、このATR信号が信号線I/Oを介して送信されることになる。外部装置20は、このATR信号の受信により、ICカード10側が準備完了であることを認識するとともに、ICカード10の対応言語を認識することができる。
【0030】
外部装置20は、続いて、信号線I/Oを介して、所望のコマンドを送信することになる。ICカード10は、ステップS3において、コマンドの受信を確認し、コマンドを受信するまで待機状態となる。外部装置20側からコマンドが与えられると、そのコマンドの先頭1バイトに相当するコマンドコードを認識し、このコマンドコードに基づいて、与えられたコマンドがどのようなコマンドであるかを把握し、必要な処理を実行する。
【0031】
与えられたコマンドが、図4に示すような「ロードアプリケーションコマンド」であった場合には、ステップS4からステップS5へと進み、ROM13内のロードアプリケーションコマンド処理領域13c内に用意されたマシン語プログラムに基づいて、EEPROM14内のアプリケーション登録領域14a内に、与えられたアプリケーションに関する情報をロードする処理を行う。
【0032】
また、与えられたコマンドが、図5に示すような「アプリケーション選択コマンド」であった場合には、ステップS6からステップS7へと進み、ROM13内のアプリケーション選択コマンド処理領域13d内に用意されたマシン語プログラムに基づいて、EEPROM14内のアプリケーション登録領域14a内にロードされている複数のアプリケーションを検索し、選択コマンドで指定された名前と一致するアプリケーションを該当アプリケーションとして選択する処理を行う。
【0033】
なお、与えられたコマンドが、上述した2つのコマンドのいずれでもなかった場合には、これを特定のアプリケーションプログラムに対するコマンドであると認識し、まず、ステップS8において、選択済のアプリケーションの有無が調べられる。既にアプリケーションの選択が行われている場合には、ステップS9へと進み、当該アプリケーションが実行される。一方、アプリケーションの選択が行われていない場合には、ステップS8からステップS10へと進み、「与えられたコマンドは解釈できない」旨のエラーがセットされる。かくして、最終的に、ステップS11において、与えられたコマンドに対する処理結果を示すレスポンスを、外部装置20に対して送信した後、ステップS3へと戻り、次のコマンド受信を待つ状態になる。エラーがセットされていた場合には、ステップS11では、エラーを示すレスポンスが送信されることになる。
【0034】
図9は、ステップS9のアプリケーション実行処理の手順を詳細に示す流れ図である。まず、ステップS12において、選択されたアプリケーションの「インタープリタ識別コード」と同一の「インタープリタ識別コード」をもつインタープリタプログラムを、ROM13内から検索する処理が行われる。そして、該当するインタープリタがあれば、ステップS13からステップS14へと進み、ROM13内のこの該当インタープリタプログラムを実行することにより、与えられたコマンドの解釈実行が行われる。一方、該当するインタープリタがなければ(外部装置20には、対応言語が報知されているので、通常、このような事態は生じ得ないはずであるが)、選択されたアプリケーションプログラムは、現時点では解釈実行することができないので、ステップS13からステップS15へと進み、「実行に必要なインタープリタが存在しない」旨のエラーをセットする。このエラーは、ステップS11において、レスポンスとして送信されることになる。
【0035】
以上、本発明を図示する実施形態に基づいて説明したが、本発明はこの実施形態に限定されるものではなく、この他にも種々の態様で実施可能である。たとえば、上述の実施形態では、インタープリタプログラムをROM13内に予め用意するようにしているが、外部装置20側からインタープリタプログラムをEEPROM14内にロードすることができるような機能を設けておき、必要に応じて、EEPROM14内のインタープリタプログラムを利用して、アプリケーションプログラムを実行するようにしてもかまわない。この場合、ATR信号を利用して報知するインタープリタ識別コードには、ROM13内のインタープリタだけでなく、その時点でEEPROM14内にロードされているインタープリタの識別コードも含ませるようにする。
【0036】
また、上述の実施形態では、アプリケーションプログラムについての解釈実行用プログラムとして、逐次実行型のインタープリタプログラムを用いた例を述べたが、マシン語への翻訳をまとめて行った後にこれを実行させるようなコンパイラプログラムを用いてもかまわない。
【0037】
【発明の効果】
以上のとおり本発明に係るICカードによれば、複数の解釈実行プログラムを内蔵させるとともに、その対応言語を外部に報知する機能をもたせるようにしたため、複数の言語に記述されたアプリケーションプログラムに対応し、かつ、対応言語を外部から認識することが可能なICカードを実現することができる。
【図面の簡単な説明】
【図1】一般的なICカード10と、外部装置(リーダライタ装置)20との間で、情報の伝送を行っている状態を示すブロック図である。
【図2】本発明に係るICカード内のROMに用意されているプログラムの構成例を示すメモリマップである。
【図3】図2のメモリマップのリセット処理領域13a内に用意されているATR固定情報の一例を示す図である。
【図4】本発明に係るICカードで実行されるロードアプリケーションコマンドのフォーマット例を示す図である。
【図5】本発明に係るICカードで実行されるアプリケーション選択コマンドのフォーマット例を示す図である。
【図6】本発明に係るICカード内のEEPROMの状態の一例を示すメモリマップである。
【図7】本発明に係るICカードから外部装置へと返送されるATR信号の一例を示す図である。
【図8】本発明に係るICカードの動作を示す第1の流れ図である。
【図9】本発明に係るICカードの動作を示す第2の流れ図である。
【符号の説明】
10…ICカード
11…CPU
12…I/Oインターフェイス
13…ROM
13a…リセット処理領域
13b…通信制御処理領域
13c…ロードアプリケーションコマンド処理領域
13d…アプリケーション選択コマンド処理領域
13e…インタープリタ格納領域
14…EEPROM
14a…アプリケーション登録領域
14b…データ記録領域
15…RAM
20…外部装置(リーダライタ装置)
CLK…クロック供給用信号線
GND…接地電源用信号線
I/O…データ伝送用信号線
RST…リセット信号線
Vcc…電源供給用信号線
Claims (3)
- CPUと書換可能なメモリと書換不能なメモリとを有し、
前記CPUに依存しない所定の言語で記述されたアプリケーションプログラムを、外部から取り込み、このアプリケーションプログラムを前記書換可能なメモリへ格納する機能と、
所定の言語で記述されたアプリケーションプログラムを、前記CPUが解釈できる形式に翻訳し、これを前記内蔵CPUに実行させる機能をもったインタープリタプログラムを用い、前記書換可能なメモリ内に格納されたアプリケーションプログラムを実行する機能と、
を有するICカードにおいて、
メモリ内には、
それぞれ異なる言語の翻訳に対応した複数n個のインタープリタプログラムと、これら各インタープリタプログラムを特定するための複数n個の識別コードと、
前記n個の識別コードを外部に報知する処理を行う報知用プログラムと、
外部からロードアプリケーションコマンドが与えられたときに、所定のアプリケーションプログラムと、当該アプリケーションプログラムの翻訳が可能なインタープリタプログラムを特定するための識別コードと、を外部から取り込み、前記書換可能なメモリへ格納する処理を行うアプリケーション格納プログラムと、
外部からアプリケーション選択コマンドが与えられたときに、前記書換可能なメモリに格納されているいずれかのアプリケーションプログラムを選択する処理を行うアプリケーション選択プログラムと、
外部から特定のアプリケーションに対するコマンドが与えられたときに、前記アプリケーション選択プログラムによって選択されている選択アプリケーションプログラムを、当該選択アプリケーションプログラムについて格納されている識別コードによって特定されるインタープリタプログラムを用いて実行するアプリケーション実行プログラムと、
が格納されていることを特徴とするICカード。 - 請求項1に記載のICカードにおいて、
外部装置との間でデータの送受を行うためのI/O信号線を介して、報知用プログラムがn個の識別コードを前記外部装置へ伝達することを特徴とするICカード。 - 請求項2に記載のICカードにおいて、
外部装置からCPUにリセット信号が与えられた場合に、I/O信号線を介して前記外部装置へ前記リセット信号に対する応答信号を返す機能を有し、報知用プログラムが、この応答信号に、n個の識別コードを付加するようにしたことを特徴とするICカード。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP34233998A JP4176889B2 (ja) | 1998-11-16 | 1998-11-16 | Icカード |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP34233998A JP4176889B2 (ja) | 1998-11-16 | 1998-11-16 | Icカード |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2000148944A JP2000148944A (ja) | 2000-05-30 |
JP4176889B2 true JP4176889B2 (ja) | 2008-11-05 |
Family
ID=18352969
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP34233998A Expired - Fee Related JP4176889B2 (ja) | 1998-11-16 | 1998-11-16 | Icカード |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP4176889B2 (ja) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP2395427A1 (en) * | 2010-06-08 | 2011-12-14 | Gemalto SA | Method for connecting to a remote server from a browser enabled with a browser's extension on a host device |
-
1998
- 1998-11-16 JP JP34233998A patent/JP4176889B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2000148944A (ja) | 2000-05-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2008186052A (ja) | 記憶装置、データ処理装置、データ処理システムおよびプログラム | |
US9183400B2 (en) | IC card and IC card control method | |
US8931705B2 (en) | IC card, mobile electronic device and data processing method in IC card | |
US4949240A (en) | Data storage system having circuitry for dividing received data into sequential wards each stored in storage region identified by chain data | |
JP4742469B2 (ja) | 複数のosを用いるicカード、icカード処理装置および処理方法 | |
JP4176889B2 (ja) | Icカード | |
JP4590201B2 (ja) | データキャリア及びデータキャリアのプログラム | |
JP3512252B2 (ja) | Cpuを内蔵した情報記録媒体 | |
KR19990048136A (ko) | 식별번호 저장기능을 갖는 컴퓨터 시스템 및 그 방법 | |
JP4071377B2 (ja) | Icカード | |
JP2010211516A (ja) | 携帯可能電子装置および携帯可能電子装置におけるアクセス制御方法 | |
JP4836707B2 (ja) | 携帯可能電子装置およびicカード | |
JP2011060136A (ja) | 携帯可能電子装置、および、携帯可能電子装置におけるデータ管理方法 | |
JP4868979B2 (ja) | 携帯可能電子装置およびicカード | |
JP4203165B2 (ja) | Icカード | |
KR20030035171A (ko) | 스마트 카드와 이의 os 프로그램 저장/삭제 및 실행방법 | |
JP2012133656A (ja) | 携帯可能電子装置及びicカード | |
JP2005322273A (ja) | Icカード | |
JP7397402B2 (ja) | 電子情報記憶媒体、データ送信方法、及びプログラム | |
KR100654544B1 (ko) | 이동단말기에 구비된 RFID tag의 데이터 저장방법 | |
JP2005301657A (ja) | 複数のコマンドテーブルを書き換え可能なメモリに記憶したicカードおよびコマンドの実行方法 | |
JP2022132923A (ja) | Icカード | |
JP6125865B2 (ja) | 情報処理装置、情報処理システム、および情報処理方法 | |
JP2002236885A (ja) | Icカードリーダライタおよびそのデータ伝送方法 | |
JP2000172790A (ja) | 端末装置とicカード処理システムとアプリケーションのインストール方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20051111 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20080130 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20080205 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20080402 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20080812 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20080821 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110829 Year of fee payment: 3 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110829 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120829 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120829 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130829 Year of fee payment: 5 |
|
LAPS | Cancellation because of no payment of annual fees |