JPH1040350A - Icカード及びコマンド実行方法 - Google Patents
Icカード及びコマンド実行方法Info
- Publication number
- JPH1040350A JPH1040350A JP8197318A JP19731896A JPH1040350A JP H1040350 A JPH1040350 A JP H1040350A JP 8197318 A JP8197318 A JP 8197318A JP 19731896 A JP19731896 A JP 19731896A JP H1040350 A JPH1040350 A JP H1040350A
- Authority
- JP
- Japan
- Prior art keywords
- command
- program
- application program
- card
- general
- 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.)
- Pending
Links
Abstract
(57)【要約】
【課題】 汎用プログラムにより処理されるコマンド
と、アプリケーション・プログラムにより処理されるコ
マンドの双方を使用可能なICカードを提供する。 【解決手段】 CPUと、前記CPUが実行可能な汎用
プログラムを格納する読み出し専用メモリと、前記CP
Uが実行可能なアプリケーション・プログラムを必要に
応じて格納される書き換え可能な不揮発性メモリとを備
えるICカードにおいて、前記読み出し専用メモリは、
外部より付与されたコマンドが前記汎用プログラム又は
前記アプリケーション・プログラムのいずれにより処理
可能かを判断する判断プログラムを有し、前記判断プロ
グラムの判断に基づいて、前記汎用プログラム又は前記
アプリケーション・プログラムを選択して実行すること
により前記コマンドを処理することを特徴とする。
と、アプリケーション・プログラムにより処理されるコ
マンドの双方を使用可能なICカードを提供する。 【解決手段】 CPUと、前記CPUが実行可能な汎用
プログラムを格納する読み出し専用メモリと、前記CP
Uが実行可能なアプリケーション・プログラムを必要に
応じて格納される書き換え可能な不揮発性メモリとを備
えるICカードにおいて、前記読み出し専用メモリは、
外部より付与されたコマンドが前記汎用プログラム又は
前記アプリケーション・プログラムのいずれにより処理
可能かを判断する判断プログラムを有し、前記判断プロ
グラムの判断に基づいて、前記汎用プログラム又は前記
アプリケーション・プログラムを選択して実行すること
により前記コマンドを処理することを特徴とする。
Description
【0001】
【発明の属する技術分野】本発明は、不揮発性メモリに
アプリケーション・プログラムを格納することが可能な
ICカードに関するものである。
アプリケーション・プログラムを格納することが可能な
ICカードに関するものである。
【0002】
【従来の技術】ICカードは、磁気カードに代わる新し
い情報記憶媒体として、近年注目を集めている。特に、
CPUを内蔵したICカードは、高度なセキュリティを
実現できることから、高度情報化社会の種々の分野にお
いて利用されることが期待されている。一般にICカー
ドは、ROM、RAM、EEPROMの3種類のメモリ
と、それらメモリにアクセスするCPUとを備えてい
る。EEPROMは、書き換え可能な不揮発性メモリで
あり、ICカードユーザに関する個人情報等のデータが
保存される。RAMは、CPUがプログラムを実行する
ときに作業領域として使用する揮発性のメモリである。
ROMは、読み出し専用メモリであり、CPUが実行す
べき処理を示すプログラムが格納されている。
い情報記憶媒体として、近年注目を集めている。特に、
CPUを内蔵したICカードは、高度なセキュリティを
実現できることから、高度情報化社会の種々の分野にお
いて利用されることが期待されている。一般にICカー
ドは、ROM、RAM、EEPROMの3種類のメモリ
と、それらメモリにアクセスするCPUとを備えてい
る。EEPROMは、書き換え可能な不揮発性メモリで
あり、ICカードユーザに関する個人情報等のデータが
保存される。RAMは、CPUがプログラムを実行する
ときに作業領域として使用する揮発性のメモリである。
ROMは、読み出し専用メモリであり、CPUが実行す
べき処理を示すプログラムが格納されている。
【0003】ICカードを使用するときは、ICカード
をリーダ・ライタに接続し、リーダ・ライタからコマン
ドをICカードに送信する。コマンドを受信したICカ
ードでは、CPUが、ROMに格納されているプログラ
ムのうち、コマンドに対応する部分を実行する。この結
果、コマンドの処理がなされ、EEPROMに新たなデ
ータを書き込むなどの処理が行われる。ROMが格納す
るプログラムは、ICカードの用途ごとに、つまり、実
行すべきコマンドの種類や内容により異なる。したがっ
て、ICカードの用途が多種多様化すると、それだけ多
くの種類のROMを用意することとなる。しかし、一般
にROMは、その開発に多大の費用を必要とするため、
ICカードの用途の多様化に合わせ、ROMを多品種少
量生産することとすれば、ROMの単価が上がり、IC
カードの製造原価が増大する。
をリーダ・ライタに接続し、リーダ・ライタからコマン
ドをICカードに送信する。コマンドを受信したICカ
ードでは、CPUが、ROMに格納されているプログラ
ムのうち、コマンドに対応する部分を実行する。この結
果、コマンドの処理がなされ、EEPROMに新たなデ
ータを書き込むなどの処理が行われる。ROMが格納す
るプログラムは、ICカードの用途ごとに、つまり、実
行すべきコマンドの種類や内容により異なる。したがっ
て、ICカードの用途が多種多様化すると、それだけ多
くの種類のROMを用意することとなる。しかし、一般
にROMは、その開発に多大の費用を必要とするため、
ICカードの用途の多様化に合わせ、ROMを多品種少
量生産することとすれば、ROMの単価が上がり、IC
カードの製造原価が増大する。
【0004】上記の問題に対し、従来ROMに格納され
ていたプログラムを2種類に大別し、一方をROMに、
他方をEEPROMに格納するICカードが提案されて
いる。ここで、2種類のプログラムの一方は、ICカー
ドの用途によらず汎用的に使用できるプログラム(以下
「汎用プログラム」という)である。また、他方は、I
Cカードの各種用途固有の処理を行うプログラム(以下
「アプリケーション・プログラム」という)である。上
記のICカードでは、全用途のICカードについて、同
一のROMを使用することとなるので、安価なROMを
用いた安価なICカードの生産が可能となる。一方、I
CカードのEEPROMには、各用途に対応したアプリ
ケーション・プログラムが書き込まれることから、用途
に応じた木目細かい処理を行うICカードを提供するこ
とも可能となる。
ていたプログラムを2種類に大別し、一方をROMに、
他方をEEPROMに格納するICカードが提案されて
いる。ここで、2種類のプログラムの一方は、ICカー
ドの用途によらず汎用的に使用できるプログラム(以下
「汎用プログラム」という)である。また、他方は、I
Cカードの各種用途固有の処理を行うプログラム(以下
「アプリケーション・プログラム」という)である。上
記のICカードでは、全用途のICカードについて、同
一のROMを使用することとなるので、安価なROMを
用いた安価なICカードの生産が可能となる。一方、I
CカードのEEPROMには、各用途に対応したアプリ
ケーション・プログラムが書き込まれることから、用途
に応じた木目細かい処理を行うICカードを提供するこ
とも可能となる。
【0005】
【発明が解決しようとする課題】しかし、前述した従来
のICカードでは、一旦、アプリケーション・プログラ
ムがEEPROMに導入された後は、ICカードはその
アプリケーション・プログラムにのみ従い動作する。し
たがって、アプリケーション・プログラム実行中は、そ
のアプリケーション・プログラムが処理できるコマンド
のみが使用可能であり、汎用プログラムにその処理内容
が定められているコマンドは使用することができなくな
る。このために、汎用性のあるコマンドが、アプリケー
ション・プログラムの導入、利用により使用できなくな
る場合があり、大変不便であるという問題があった。ま
た、このような不都合を回避する一つの方法として、ア
プリケーション・プログラムにも、汎用的なコマンドに
対応した処理内容を付加するという方法が考えられる。
しかし、この場合には、アプリケーション・プログラム
の規模が大きくなり、EEPROMのメモリ消費量が増
大すると同時に、アプリケーション・プログラムと汎用
プログラムとに重複する部分があるため、メモリの使用
効率が著しく悪くなるという問題があった。
のICカードでは、一旦、アプリケーション・プログラ
ムがEEPROMに導入された後は、ICカードはその
アプリケーション・プログラムにのみ従い動作する。し
たがって、アプリケーション・プログラム実行中は、そ
のアプリケーション・プログラムが処理できるコマンド
のみが使用可能であり、汎用プログラムにその処理内容
が定められているコマンドは使用することができなくな
る。このために、汎用性のあるコマンドが、アプリケー
ション・プログラムの導入、利用により使用できなくな
る場合があり、大変不便であるという問題があった。ま
た、このような不都合を回避する一つの方法として、ア
プリケーション・プログラムにも、汎用的なコマンドに
対応した処理内容を付加するという方法が考えられる。
しかし、この場合には、アプリケーション・プログラム
の規模が大きくなり、EEPROMのメモリ消費量が増
大すると同時に、アプリケーション・プログラムと汎用
プログラムとに重複する部分があるため、メモリの使用
効率が著しく悪くなるという問題があった。
【0006】そこで、本発明の課題は、汎用プログラム
により処理されるコマンドと、アプリケーション・プロ
グラムにより処理されるコマンドの双方を使用可能なI
Cカードを提供することである。
により処理されるコマンドと、アプリケーション・プロ
グラムにより処理されるコマンドの双方を使用可能なI
Cカードを提供することである。
【0007】
【課題を解決するための手段】前記課題を解決するため
に、請求項1に係る発明は、CPUと、前記CPUが実
行可能な汎用プログラムを格納する読み出し専用メモリ
と、前記CPUが実行可能なアプリケーション・プログ
ラムを必要に応じて格納される書き換え可能な不揮発性
メモリとを備えるICカードにおいて、前記読み出し専
用メモリは、外部より付与されたコマンドが前記汎用プ
ログラム又は前記アプリケーション・プログラムのいず
れにより処理可能かを判断する判断プログラムを有し、
前記判断プログラムの判断に基づいて、前記汎用プログ
ラム又は前記アプリケーション・プログラムを選択して
実行することにより前記コマンドを処理することを特徴
とする。
に、請求項1に係る発明は、CPUと、前記CPUが実
行可能な汎用プログラムを格納する読み出し専用メモリ
と、前記CPUが実行可能なアプリケーション・プログ
ラムを必要に応じて格納される書き換え可能な不揮発性
メモリとを備えるICカードにおいて、前記読み出し専
用メモリは、外部より付与されたコマンドが前記汎用プ
ログラム又は前記アプリケーション・プログラムのいず
れにより処理可能かを判断する判断プログラムを有し、
前記判断プログラムの判断に基づいて、前記汎用プログ
ラム又は前記アプリケーション・プログラムを選択して
実行することにより前記コマンドを処理することを特徴
とする。
【0008】請求項2に係る発明は、ICカードのコマ
ンド実行方法において、外部より付与されたコマンド
が、読み出し専用メモリに格納された汎用プログラム、
又は不揮発性メモリに格納されたアプリケーション・プ
ログラムのいずれにより処理可能かを判断し、前記判断
の結果に基づいて、前記汎用プログラム又は前記アプリ
ケーション・プログラムを選択して実行することにより
前記コマンドを処理することを特徴とする。
ンド実行方法において、外部より付与されたコマンド
が、読み出し専用メモリに格納された汎用プログラム、
又は不揮発性メモリに格納されたアプリケーション・プ
ログラムのいずれにより処理可能かを判断し、前記判断
の結果に基づいて、前記汎用プログラム又は前記アプリ
ケーション・プログラムを選択して実行することにより
前記コマンドを処理することを特徴とする。
【0009】
【発明の実施の形態】以下、図面等を参照して、本発明
に係る一実施形態について、さらに詳しく説明する。図
1は、本発明に係るICカードの構成を示す図である。
図1に示されるように、ICカード10は、読み出し専
用メモリであるROM12、揮発性メモリであるRAM
14、随時書き換え可能な不揮発性メモリであるEEP
ROM16、及びこれらのメモリにアクセスするCPU
18を備えている。
に係る一実施形態について、さらに詳しく説明する。図
1は、本発明に係るICカードの構成を示す図である。
図1に示されるように、ICカード10は、読み出し専
用メモリであるROM12、揮発性メモリであるRAM
14、随時書き換え可能な不揮発性メモリであるEEP
ROM16、及びこれらのメモリにアクセスするCPU
18を備えている。
【0010】また、ICカード10は、リーダ・ライタ
(不図示)と電気信号等の授受を行うための複数の接点
(Vcc〜GND)を備えている。ICカードをリーダ
・ライタに挿入すると、リーダ・ライタの接点がこのI
Cカードの接点と接続され、電気信号の授受が行われ
る。各接点には、それぞれ異なる電気信号が割り付けら
れている。例えば、Vccは、ICを動作させるために
必要な電源電圧の供給を受けるための接点であり、I/
Oは、CPUがリーダ・ライタとの通信を行うための接
点(シリアルポート)である。
(不図示)と電気信号等の授受を行うための複数の接点
(Vcc〜GND)を備えている。ICカードをリーダ
・ライタに挿入すると、リーダ・ライタの接点がこのI
Cカードの接点と接続され、電気信号の授受が行われ
る。各接点には、それぞれ異なる電気信号が割り付けら
れている。例えば、Vccは、ICを動作させるために
必要な電源電圧の供給を受けるための接点であり、I/
Oは、CPUがリーダ・ライタとの通信を行うための接
点(シリアルポート)である。
【0011】CPU18は、上記接点を介してコマンド
を付与される。コマンドとは、リーダ/ライタからIC
カードへ送られる情報であって、ICカードに所定の動
作させるためのものをいう。CPU18は、コマンドを
付与されると、ROM12又はEEPROM16に格納
されているプログラムを実行することによりそのコマン
ドを処理する。すなわち、CPU18は、EEPROM
16に格納されているデータを書き換える等のコマンド
に対応した所定の動作を行う。なお、本実施形態では、
CPU18が実行すべきプログラムを前述した汎用プロ
グラムとアプリケーション・プログラムとに分割し、汎
用プログラムをROM12に、アプリケーション・プロ
グラムをEEPROM16に格納している。
を付与される。コマンドとは、リーダ/ライタからIC
カードへ送られる情報であって、ICカードに所定の動
作させるためのものをいう。CPU18は、コマンドを
付与されると、ROM12又はEEPROM16に格納
されているプログラムを実行することによりそのコマン
ドを処理する。すなわち、CPU18は、EEPROM
16に格納されているデータを書き換える等のコマンド
に対応した所定の動作を行う。なお、本実施形態では、
CPU18が実行すべきプログラムを前述した汎用プロ
グラムとアプリケーション・プログラムとに分割し、汎
用プログラムをROM12に、アプリケーション・プロ
グラムをEEPROM16に格納している。
【0012】図2は、本実施形態の各メモリに割り付け
られているアドレスの一例を示す図である。本実施形態
では、例えばROM12にH’0000〜H’27F
F、RAM14にH’4000〜H’40FF、EEP
ROM16にH’6000からH’7FFFなるアドレ
スを割り当てている。なお、本明細書において数値の前
に「H’」が付されているときは、その数値は16進数
に基づいて標記されていることが意味される。
られているアドレスの一例を示す図である。本実施形態
では、例えばROM12にH’0000〜H’27F
F、RAM14にH’4000〜H’40FF、EEP
ROM16にH’6000からH’7FFFなるアドレ
スを割り当てている。なお、本明細書において数値の前
に「H’」が付されているときは、その数値は16進数
に基づいて標記されていることが意味される。
【0013】図3は、EEPROM16のメモリ・マッ
プを示す図である。本実施形態では、EEPROM16
の先頭の領域、すなわちH’6000からH’600F
をシステムエリアとして確保している。システムエリア
の先頭アドレスH’6000には、変数NOAが格納さ
れている。NOAは、EEPROM16に格納(登録)
されているアプリケーション・プログラムの個数を示す
変数である。NOAは、0に初期設定され、後述するよ
うに1のアプリケーション・プログラムがEEPROM
16に格納されるごとにその値を1ずつ加算される。ア
ドレスH’6001〜H’600Fまでの領域(RF
U)は、将来ICカードの使用を変更したときに、その
仕様において必要とされる各種パラメータ等を格納する
ための予備的な空白領域である。
プを示す図である。本実施形態では、EEPROM16
の先頭の領域、すなわちH’6000からH’600F
をシステムエリアとして確保している。システムエリア
の先頭アドレスH’6000には、変数NOAが格納さ
れている。NOAは、EEPROM16に格納(登録)
されているアプリケーション・プログラムの個数を示す
変数である。NOAは、0に初期設定され、後述するよ
うに1のアプリケーション・プログラムがEEPROM
16に格納されるごとにその値を1ずつ加算される。ア
ドレスH’6001〜H’600Fまでの領域(RF
U)は、将来ICカードの使用を変更したときに、その
仕様において必要とされる各種パラメータ等を格納する
ための予備的な空白領域である。
【0014】アドレスH’6010以降は、アプリケー
ション・プログラムを格納することが可能な領域であ
る。図3には、一例として、2つのアプリケーション・
プログラムが格納されている状態が示されている。第1
のアプリケーション・プログラムはH’6010〜H’
607Fの領域に、第2のアプリケーション・プログラ
ムは、H’6080〜H’60DBの領域に格納されて
いる。EEPROM16に格納されているアプリケーシ
ョン・プログラムは、an_lからapplicati
on program(以下「ap.pro.」と略
す)までの5つの情報から構成されている。an_l及
びapplication_name(以下「ap.n
a.」と略す)は、アプリケーション・プログラムを識
別するための情報である。すなわち、ap.na.は、
当該アプリケーション・プログラムの名前であり、an
_lは、ap.na.の長さ(バイト数)を示す1バイ
トのデータである。
ション・プログラムを格納することが可能な領域であ
る。図3には、一例として、2つのアプリケーション・
プログラムが格納されている状態が示されている。第1
のアプリケーション・プログラムはH’6010〜H’
607Fの領域に、第2のアプリケーション・プログラ
ムは、H’6080〜H’60DBの領域に格納されて
いる。EEPROM16に格納されているアプリケーシ
ョン・プログラムは、an_lからapplicati
on program(以下「ap.pro.」と略
す)までの5つの情報から構成されている。an_l及
びapplication_name(以下「ap.n
a.」と略す)は、アプリケーション・プログラムを識
別するための情報である。すなわち、ap.na.は、
当該アプリケーション・プログラムの名前であり、an
_lは、ap.na.の長さ(バイト数)を示す1バイ
トのデータである。
【0015】NA_ADDは、当該アプリケーション・
プログラムの次に格納されている、又は格納されるべき
アプリケーション・プログラムの先頭アドレスを示す2
バイトのデータである。図3の例では、第1のアプリケ
ーション・プログラムが有するNA_ADDは、第2番
目のアプリケーション・プログラムの先頭アドレスH’
6080を示している。また、第2番面のアプリケーシ
ョン・プログラムが有するNA_ADDは、将来第3番
目のアプリケーション・プログラムが格納されるべき領
域の先頭アドレスH’60DCを示している。なお、本
実施形態では、NA_ADDは、必ずap.na.の次
の領域に格納される。
プログラムの次に格納されている、又は格納されるべき
アプリケーション・プログラムの先頭アドレスを示す2
バイトのデータである。図3の例では、第1のアプリケ
ーション・プログラムが有するNA_ADDは、第2番
目のアプリケーション・プログラムの先頭アドレスH’
6080を示している。また、第2番面のアプリケーシ
ョン・プログラムが有するNA_ADDは、将来第3番
目のアプリケーション・プログラムが格納されるべき領
域の先頭アドレスH’60DCを示している。なお、本
実施形態では、NA_ADDは、必ずap.na.の次
の領域に格納される。
【0016】apl_lは、NA_ADDの次に格納さ
れる2バイトのデータであり、その直後に格納されてい
るap.pro.の長さ(バイト数)を示している。a
p.pro.は、アプリケーション・プログラムの処理
内容を示すプログラムと、そのプログラム実行時に参照
されるデータの集合である。図8は、ap.pro.の
構成を示す模式図である。ap.pro.は、プログラ
ム領域とデータ領域とから構成されている。プログラム
領域には、そのアプリケーション・プログラムに固有な
コマンドの処理内容等が格納されている。また、データ
領域には、アプリケーション・プログラムが取り扱うデ
ータが格納されている。例えば、アプリケーション・プ
ログラムがA銀行の預貯金に関するプログラムである場
合には、A銀行におけるICカード所有者の預金残高等
がデータ領域に格納される。
れる2バイトのデータであり、その直後に格納されてい
るap.pro.の長さ(バイト数)を示している。a
p.pro.は、アプリケーション・プログラムの処理
内容を示すプログラムと、そのプログラム実行時に参照
されるデータの集合である。図8は、ap.pro.の
構成を示す模式図である。ap.pro.は、プログラ
ム領域とデータ領域とから構成されている。プログラム
領域には、そのアプリケーション・プログラムに固有な
コマンドの処理内容等が格納されている。また、データ
領域には、アプリケーション・プログラムが取り扱うデ
ータが格納されている。例えば、アプリケーション・プ
ログラムがA銀行の預貯金に関するプログラムである場
合には、A銀行におけるICカード所有者の預金残高等
がデータ領域に格納される。
【0017】図4は、本実施形態で使用されるコマンド
の一例を示す図である。本実施形態で使用されるコマン
ドは、汎用コマンドと特定コマンドの2種類に大別され
る。汎用コマンドとは、ICカードの使用態様によら
ず、一般的に使用され得るコマンドをいう。汎用コマン
ドを付与された場合に、CPU18が処理すべき内容
は、ROM12に格納されている汎用プログラムに定め
られている。一方、特定コマンドとは、ICカードの特
定の使用態様に固有な処理を行うためのコマンドであ
る。例えば、アプリケーション・プログラムのデータ領
域にデータを書き込むためのコマンド、又は、データを
読み出すためのコマンドは特定コマンドとなり得る。ア
プリケーション・プログラムにより、データ領域におけ
るデータのフォーマットが相違することがあるからであ
る。特定コマンドに対応する処理内容は、アプリケーシ
ョン・プログラムのプログラム領域に定められている。
の一例を示す図である。本実施形態で使用されるコマン
ドは、汎用コマンドと特定コマンドの2種類に大別され
る。汎用コマンドとは、ICカードの使用態様によら
ず、一般的に使用され得るコマンドをいう。汎用コマン
ドを付与された場合に、CPU18が処理すべき内容
は、ROM12に格納されている汎用プログラムに定め
られている。一方、特定コマンドとは、ICカードの特
定の使用態様に固有な処理を行うためのコマンドであ
る。例えば、アプリケーション・プログラムのデータ領
域にデータを書き込むためのコマンド、又は、データを
読み出すためのコマンドは特定コマンドとなり得る。ア
プリケーション・プログラムにより、データ領域におけ
るデータのフォーマットが相違することがあるからであ
る。特定コマンドに対応する処理内容は、アプリケーシ
ョン・プログラムのプログラム領域に定められている。
【0018】図4に示すコマンドのうち、Select
コマンドは汎用コマンドであり、Writeコマンドと
Read_recordコマンド(以下「Readコマ
ンド」と略す)は特定コマンドである。Selectコ
マンドは、EEPROM16に格納されているアプリケ
ーション・プログラムから任意の1つを選択するための
コマンドである。Selectコマンドは、3つの情報
より構成されている。第1バイト目のINSは、コマン
ドを識別するための種別コードである。ここでは、IN
Sに例えば「H’A4」を割り当てている。また、第2
バイト目はan_l、第3バイト目以降は、ap.n
a.である。
コマンドは汎用コマンドであり、Writeコマンドと
Read_recordコマンド(以下「Readコマ
ンド」と略す)は特定コマンドである。Selectコ
マンドは、EEPROM16に格納されているアプリケ
ーション・プログラムから任意の1つを選択するための
コマンドである。Selectコマンドは、3つの情報
より構成されている。第1バイト目のINSは、コマン
ドを識別するための種別コードである。ここでは、IN
Sに例えば「H’A4」を割り当てている。また、第2
バイト目はan_l、第3バイト目以降は、ap.n
a.である。
【0019】Writeコマンドは、指定するデータを
アプリケーション・プログラムのデータ領域に書き込む
ためのコマンドである。Writeコマンドは、第1バ
イト目から順にINS、W_len及びN_dataの
3つの情報から構成されている。N_dataは、デー
タ領域に書き込まれるべきデータである。また、W_l
enは、N_dataの長さ(バイト数)を示す1バイ
トのデータである。なお、INSとしては、例えば
「H’B0」を割り当てている。Readコマンドは、
アプリケーション・プログラムのデータ領域から指定す
る長さのデータを読み出すためのコマンドである。Re
adコマンドは、INSとRead_lenの2つの情
報から構成される。Read_lenは、読み出すべき
データの長さ(バイト数)を示す1バイトデータであ
る。また、INSには、例えば「H’C0」を割り当て
ている。
アプリケーション・プログラムのデータ領域に書き込む
ためのコマンドである。Writeコマンドは、第1バ
イト目から順にINS、W_len及びN_dataの
3つの情報から構成されている。N_dataは、デー
タ領域に書き込まれるべきデータである。また、W_l
enは、N_dataの長さ(バイト数)を示す1バイ
トのデータである。なお、INSとしては、例えば
「H’B0」を割り当てている。Readコマンドは、
アプリケーション・プログラムのデータ領域から指定す
る長さのデータを読み出すためのコマンドである。Re
adコマンドは、INSとRead_lenの2つの情
報から構成される。Read_lenは、読み出すべき
データの長さ(バイト数)を示す1バイトデータであ
る。また、INSには、例えば「H’C0」を割り当て
ている。
【0020】上記のように、本実施形態では、汎用コマ
ンド及び特定コマンドの2種類のコマンドがあるため
に、リーダ・ライタからコマンドが受信された場合に、
ICカード10は、まずコマンドが汎用コマンドである
か、特定コマンドであるかを判別し、その判別結果に応
じたコマンド処理を行う。以下、本実施形態におけるコ
マンドの処理方法について、図5等を用いて説明する。
ンド及び特定コマンドの2種類のコマンドがあるため
に、リーダ・ライタからコマンドが受信された場合に、
ICカード10は、まずコマンドが汎用コマンドである
か、特定コマンドであるかを判別し、その判別結果に応
じたコマンド処理を行う。以下、本実施形態におけるコ
マンドの処理方法について、図5等を用いて説明する。
【0021】図5は、ROM12に格納されている汎用
プログラムの流れ図である。ICカード10とリーダ・
ライタとが接続され、リーダ・ライタによりICカード
がリセット(活性化)されると、CPU18は、まず初
期応答情報(ATR)をレスポンスとして出力する(S
502)。次に、CPU18は、リーダ・ライタからの
コマンド待ち状態となる(S504、S506)。リー
ダ・ライタからのコマンドを受信すると(S506:Y
es)、CPU18は、そのコマンドのINSが汎用コ
マンドのものであるか否かを確認する(S508)。例
えば図示の例では、INSが「A4」であるか否かが確
認される。INSが「A4」であると、コマンドがSe
lectコマンド(汎用コマンド)であると判断され、
ROM12に格納されている汎用プログラムを実行する
ことによりSelectコマンドの処理がなされる(S
510)。
プログラムの流れ図である。ICカード10とリーダ・
ライタとが接続され、リーダ・ライタによりICカード
がリセット(活性化)されると、CPU18は、まず初
期応答情報(ATR)をレスポンスとして出力する(S
502)。次に、CPU18は、リーダ・ライタからの
コマンド待ち状態となる(S504、S506)。リー
ダ・ライタからのコマンドを受信すると(S506:Y
es)、CPU18は、そのコマンドのINSが汎用コ
マンドのものであるか否かを確認する(S508)。例
えば図示の例では、INSが「A4」であるか否かが確
認される。INSが「A4」であると、コマンドがSe
lectコマンド(汎用コマンド)であると判断され、
ROM12に格納されている汎用プログラムを実行する
ことによりSelectコマンドの処理がなされる(S
510)。
【0022】一方、S508において、INSの内容が
汎用コマンドのINSに対応しなかった場合は、コマン
ドが特定コマンドであると判断され、S512の処理へ
移行する。S512では、既にSelectコマンドが
処理され、所定のアプリケーション・プログラムが選択
済みであるか否かが判断される。具体的には、RAM1
4の所定領域に、Selectコマンドを処理すること
により特定された、アプリケーション・プログラムのア
ドレスが存在するか否かが判断される。S512におい
て、アプリケーション・プログラムが選択済みであると
判断されると、受信されたコマンドのパラメータに基づ
いて、当該アプリケーション・プログラムが実行される
(S514)
汎用コマンドのINSに対応しなかった場合は、コマン
ドが特定コマンドであると判断され、S512の処理へ
移行する。S512では、既にSelectコマンドが
処理され、所定のアプリケーション・プログラムが選択
済みであるか否かが判断される。具体的には、RAM1
4の所定領域に、Selectコマンドを処理すること
により特定された、アプリケーション・プログラムのア
ドレスが存在するか否かが判断される。S512におい
て、アプリケーション・プログラムが選択済みであると
判断されると、受信されたコマンドのパラメータに基づ
いて、当該アプリケーション・プログラムが実行される
(S514)
【0023】一方、S512において、アプリケーショ
ンが選択されていないと判断されると、コマンド・エラ
ー・ステータスがRAM14の所定領域にレスポンス情
報として編集される(S516)。次に、S510、S
514又はS516のいずれかの処理が終了すると、R
AM14の所定領域に編集されたレスポンス情報が、リ
ーダ・ライタに送信される(S518)。レスポンス情
報が送信された後は、再びS504に戻り、S518ま
での処理が繰り返される。
ンが選択されていないと判断されると、コマンド・エラ
ー・ステータスがRAM14の所定領域にレスポンス情
報として編集される(S516)。次に、S510、S
514又はS516のいずれかの処理が終了すると、R
AM14の所定領域に編集されたレスポンス情報が、リ
ーダ・ライタに送信される(S518)。レスポンス情
報が送信された後は、再びS504に戻り、S518ま
での処理が繰り返される。
【0024】図6は、S510の処理内容、つまり、S
electコマンドが受信された場合にCPU18が実
行する処理内容を示す流れ図である。S510におい
て、CPU18は、はじめに変数search_add
ress(以下「s.a.」と略す)をアプリケーショ
ン・プログラムが格納されている領域の先頭アドレスに
初期設定する(S602)。本実施形態の場合には、
s.a.は、H’6010に設定される。次に、CPU
18は、EEPROM16のシステムエリアよりNOA
の値を読み出し(S604)、その値をもって変数co
unterを設定する。例えば図3に示すようにEEP
ROM16が2つのアプリケーション・プログラムを格
納している場合には、counterは2に初期設定さ
れる。
electコマンドが受信された場合にCPU18が実
行する処理内容を示す流れ図である。S510におい
て、CPU18は、はじめに変数search_add
ress(以下「s.a.」と略す)をアプリケーショ
ン・プログラムが格納されている領域の先頭アドレスに
初期設定する(S602)。本実施形態の場合には、
s.a.は、H’6010に設定される。次に、CPU
18は、EEPROM16のシステムエリアよりNOA
の値を読み出し(S604)、その値をもって変数co
unterを設定する。例えば図3に示すようにEEP
ROM16が2つのアプリケーション・プログラムを格
納している場合には、counterは2に初期設定さ
れる。
【0025】次に、CPU18は、Selectコマン
ドに指定されたアプリケーション・プログラムと同一の
ものがあるか否かについて、EEPROM16に格納さ
れているアプリケーション・プログラムを順次検索する
(S608〜S616)。具体的には、s.a.が示す
アドレスのan_l及びそのan_lに続くap.n
a.と、Selectコマンドのan_l及びap.n
a.とが比較される(S610)。比較の結果、一致し
ない場合には、counterの値を1だけデクリメン
トするとともに、s.a.にNA_ADDの内容を代入
する(S614、S616)。ここで、S616におけ
るNA_ADDは、S610においてs.a.が示した
アドレス以降に現れる最初のNA_ADDである。S6
16においてs.a.の内容を更新することにより、
s.a.は、次に格納されているアプリケーション・プ
ログラムの先頭アドレスを示すこととなる。
ドに指定されたアプリケーション・プログラムと同一の
ものがあるか否かについて、EEPROM16に格納さ
れているアプリケーション・プログラムを順次検索する
(S608〜S616)。具体的には、s.a.が示す
アドレスのan_l及びそのan_lに続くap.n
a.と、Selectコマンドのan_l及びap.n
a.とが比較される(S610)。比較の結果、一致し
ない場合には、counterの値を1だけデクリメン
トするとともに、s.a.にNA_ADDの内容を代入
する(S614、S616)。ここで、S616におけ
るNA_ADDは、S610においてs.a.が示した
アドレス以降に現れる最初のNA_ADDである。S6
16においてs.a.の内容を更新することにより、
s.a.は、次に格納されているアプリケーション・プ
ログラムの先頭アドレスを示すこととなる。
【0026】S610からS616までの処理は、S6
12において比較されたデータが一致するまで、又は、
S608においてcounterの値が0となるまで継
続される。S612において、比較されたデータが一致
した場合(S612:Yes)には、Selectコマ
ンドによって指定されたアプリケーション・プログラム
が発見され、s.a.はその先頭アドレスを示している
ことが意味される。そこで、CPU18は、s.a.に
an_lの長さ(バイト数)及びan_lが示す値、す
なわちap.na.の長さ(バイト数)、NA_ADD
の長さ、さらにはapl_lの長さを順次加算し、これ
を変数s.a.に代入する(S618)。この結果、
s.a.は、当該アプリケーション・プログラムにおけ
るap.pro.の先頭アドレスを示すこととなる。C
PU18は、このs.a.の内容をRAM14上の所定
領域に格納する(S620)。そして、Selectコ
マンドの処理が正常に終了した旨のステータスをRAM
14の所定領域にレスポンス情報として格納し(S62
2)、処理を終了する。
12において比較されたデータが一致するまで、又は、
S608においてcounterの値が0となるまで継
続される。S612において、比較されたデータが一致
した場合(S612:Yes)には、Selectコマ
ンドによって指定されたアプリケーション・プログラム
が発見され、s.a.はその先頭アドレスを示している
ことが意味される。そこで、CPU18は、s.a.に
an_lの長さ(バイト数)及びan_lが示す値、す
なわちap.na.の長さ(バイト数)、NA_ADD
の長さ、さらにはapl_lの長さを順次加算し、これ
を変数s.a.に代入する(S618)。この結果、
s.a.は、当該アプリケーション・プログラムにおけ
るap.pro.の先頭アドレスを示すこととなる。C
PU18は、このs.a.の内容をRAM14上の所定
領域に格納する(S620)。そして、Selectコ
マンドの処理が正常に終了した旨のステータスをRAM
14の所定領域にレスポンス情報として格納し(S62
2)、処理を終了する。
【0027】一方、S608において、counter
の値が0となった場合(S608:Yes)には、EE
PROM16に格納されているいずれのアプリケーショ
ン・プログラムもSelectコマンドが指定するもの
に該当しなかったことが意味される。この場合には、C
PU18は、該当するアプリケーション・プログラムが
なかった旨のエラーステータスをRAM14の所定領域
にレスポンス情報として格納し(S624)、処理を終
了する。
の値が0となった場合(S608:Yes)には、EE
PROM16に格納されているいずれのアプリケーショ
ン・プログラムもSelectコマンドが指定するもの
に該当しなかったことが意味される。この場合には、C
PU18は、該当するアプリケーション・プログラムが
なかった旨のエラーステータスをRAM14の所定領域
にレスポンス情報として格納し(S624)、処理を終
了する。
【0028】図7は、図5におけるS514において、
CPU18が実行する処理内容を示した流れ図である。
図5のS512において、アプリケーションが選択済み
であると判断されると、CPU18は、図6のS622
においてRAM14に格納されたs.a.の内容を取得
し、それに示されるアドレスをサブルーチンコールする
(S702)。これにより、そのアプリケーション・プ
ログラムの実行が開始され、受信されたコマンドの処理
が行なわれる。例えば、受信されたコマンドがWrit
eコマンドである場合には、アプリケーション・プログ
ラムのプログラム領域のうち、Writeコマンドの処
理に対応する部分(図8参照)等が実行される。この結
果、アプリケーション・プログラムのデータ領域には、
WriteコマンドのN_dataの内容が書き込まれ
る。また、受信されたコマンドがReadコマンドであ
る場合には、プログラム領域のうち、Readコマンド
の処理に対応する部分等が実行され、データ領域の先頭
からRead_lenバイトの情報がRAM14の所定
領域にレスポンス情報として編集される。
CPU18が実行する処理内容を示した流れ図である。
図5のS512において、アプリケーションが選択済み
であると判断されると、CPU18は、図6のS622
においてRAM14に格納されたs.a.の内容を取得
し、それに示されるアドレスをサブルーチンコールする
(S702)。これにより、そのアプリケーション・プ
ログラムの実行が開始され、受信されたコマンドの処理
が行なわれる。例えば、受信されたコマンドがWrit
eコマンドである場合には、アプリケーション・プログ
ラムのプログラム領域のうち、Writeコマンドの処
理に対応する部分(図8参照)等が実行される。この結
果、アプリケーション・プログラムのデータ領域には、
WriteコマンドのN_dataの内容が書き込まれ
る。また、受信されたコマンドがReadコマンドであ
る場合には、プログラム領域のうち、Readコマンド
の処理に対応する部分等が実行され、データ領域の先頭
からRead_lenバイトの情報がRAM14の所定
領域にレスポンス情報として編集される。
【0029】以上説明したように、本実施形態では、I
Cカードがコマンドを受信すると、はじめにそのコマン
ドが汎用コマンドであるのか、特定コマンドであるのか
が判断される。そして、汎用コマンドであると判断され
た場合には、ROM12に格納されている汎用プログラ
ムを実行することによりそのコマンドの処理を行い、一
方、特定コマンドであると判断された場合には、EEP
ROM16に格納されているアプリケーション・プログ
ラムを実行することによりそのコマンドの処理を行う。
Cカードがコマンドを受信すると、はじめにそのコマン
ドが汎用コマンドであるのか、特定コマンドであるのか
が判断される。そして、汎用コマンドであると判断され
た場合には、ROM12に格納されている汎用プログラ
ムを実行することによりそのコマンドの処理を行い、一
方、特定コマンドであると判断された場合には、EEP
ROM16に格納されているアプリケーション・プログ
ラムを実行することによりそのコマンドの処理を行う。
【0030】これにより、本実施形態では、汎用プログ
ラムに従いICカードを動作させていたときには使用可
能であったコマンドが、アプリケーション・プログラム
を導入・実行したために、使用できなくなるという従来
の不都合が消される。また、その結果として、アプリケ
ーション・プログラムは、汎用プログラムと重複したコ
マンドの処理内容を備える必要がなくなり、従来よりコ
ンパクトなものとなる。したがって、本実施形態は、ア
プリケーション・プログラムの導入による EEPRO
Mのメモリ消費量が最小限に抑制され、ICカードの限
られたメモリ 資源を有効に活用することが可能となっ
ている。
ラムに従いICカードを動作させていたときには使用可
能であったコマンドが、アプリケーション・プログラム
を導入・実行したために、使用できなくなるという従来
の不都合が消される。また、その結果として、アプリケ
ーション・プログラムは、汎用プログラムと重複したコ
マンドの処理内容を備える必要がなくなり、従来よりコ
ンパクトなものとなる。したがって、本実施形態は、ア
プリケーション・プログラムの導入による EEPRO
Mのメモリ消費量が最小限に抑制され、ICカードの限
られたメモリ 資源を有効に活用することが可能となっ
ている。
【0031】
【発明の効果】以上、詳しく説明したように、本発明に
よれば、アプリケーション・プログラムを導入した後
に、汎用プログラムにより処理されるコマンドと、アプ
リケーション・プログラムにより処理されるコマンドの
双方を使用可能なICカードを提供することが可能とな
った。
よれば、アプリケーション・プログラムを導入した後
に、汎用プログラムにより処理されるコマンドと、アプ
リケーション・プログラムにより処理されるコマンドの
双方を使用可能なICカードを提供することが可能とな
った。
【図1】本発明に係るICカードの構成を示す図であ
る。
る。
【図2】本発明に係るICカードの各メモリに割り付け
られているアドレスの一例を示す図である。
られているアドレスの一例を示す図である。
【図3】EEPROM16のメモリ・マップである。
【図4】本発明の実施形態で使用されるコマンドの一例
を示す図である。
を示す図である。
【図5】ROM12に格納されている汎用プログラムの
流れ図である。
流れ図である。
【図6】Selectコマンドが受信された場合にCP
U18が実行する処理内容を示す流れ図である。
U18が実行する処理内容を示す流れ図である。
【図7】図5のステップ514において、CPU18が
実行する処理内容を示す流れ図である。
実行する処理内容を示す流れ図である。
【図8】application programの構
成を示す模式図である。
成を示す模式図である。
10 ICカード 12 ROM 14 RAM 16 EEPROM 18 CPU
Claims (2)
- 【請求項1】 CPUと、 前記CPUが実行可能な汎用プログラムを格納する読み
出し専用メモリと、 前記CPUが実行可能なアプリケーション・プログラム
を必要に応じて格納される書き換え可能な不揮発性メモ
リとを備えるICカードにおいて、 前記読み出し専用メモリは、外部より付与されたコマン
ドが前記汎用プログラム又は前記アプリケーション・プ
ログラムのいずれにより処理可能かを判断する判断プロ
グラムを有し、 前記判断プログラムの判断に基づいて、前記汎用プログ
ラム又は前記アプリケーション・プログラムを選択して
実行することにより前記コマンドを処理することを特徴
とするICカード。 - 【請求項2】 ICカードのコマンド実行方法におい
て、 外部より付与されたコマンドが、読み出し専用メモリに
格納された汎用プログラム、又は不揮発性メモリに格納
されたアプリケーション・プログラムのいずれにより処
理可能かを判断し、 前記判断の結果に基づいて、前記汎用プログラム又は前
記アプリケーション・プログラムを選択して実行するこ
とにより前記コマンドを処理することを特徴とするコマ
ンド実行方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP8197318A JPH1040350A (ja) | 1996-07-26 | 1996-07-26 | Icカード及びコマンド実行方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP8197318A JPH1040350A (ja) | 1996-07-26 | 1996-07-26 | Icカード及びコマンド実行方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
JPH1040350A true JPH1040350A (ja) | 1998-02-13 |
Family
ID=16372469
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP8197318A Pending JPH1040350A (ja) | 1996-07-26 | 1996-07-26 | Icカード及びコマンド実行方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JPH1040350A (ja) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6769609B2 (en) | 1999-06-23 | 2004-08-03 | Fujitsu Limited | Portable card unit processing apparatus |
JP2005332083A (ja) * | 2004-05-18 | 2005-12-02 | Dainippon Printing Co Ltd | 共通コマンドアプリケーションを実装したマルチアプリケーション型icカード |
-
1996
- 1996-07-26 JP JP8197318A patent/JPH1040350A/ja active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6769609B2 (en) | 1999-06-23 | 2004-08-03 | Fujitsu Limited | Portable card unit processing apparatus |
JP2005332083A (ja) * | 2004-05-18 | 2005-12-02 | Dainippon Printing Co Ltd | 共通コマンドアプリケーションを実装したマルチアプリケーション型icカード |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US4748320A (en) | IC card | |
CN100456272C (zh) | 利用快闪存储器引导的系统和方法 | |
US20070233956A1 (en) | Memory card and data rewriting method | |
US6286757B1 (en) | Portable electronic apparatus | |
US6792565B1 (en) | Address conversion device for nonvolatile memory | |
TWI467579B (zh) | 電子裝置及其記憶體控制方法以及相關電腦可讀取儲存媒體 | |
TW584865B (en) | Semiconductor memory device and information device | |
JPH1040350A (ja) | Icカード及びコマンド実行方法 | |
US7281113B2 (en) | Microcomputer with built-in electrically rewritable nonvolatile memory | |
US7287098B2 (en) | Control method and electronic device enabling recognition of functions installed in the electronic device | |
JP3764206B2 (ja) | Icカード、プログラム導入方法及びプログラム実行方法 | |
JP3718564B2 (ja) | Icカード | |
JPS5848932B2 (ja) | メモリ拡張方式 | |
JPH103525A (ja) | Icカード、命令コード格納方法及び命令コード実行方法 | |
JPH103526A (ja) | Icカード | |
JP2002150246A (ja) | 携帯可能電子装置 | |
JPH103385A (ja) | Icカード及びアプリケーション・プログラム導入方法 | |
CN112650702A (zh) | 一种多口usb设备的端口绑定方法及系统 | |
JPH09269978A (ja) | Icカード及びその初期応答方法 | |
JP2000200213A (ja) | マイクロコンピュ―タ、デ―タ書換システム及びデ―タ書換方法 | |
JP2005234898A (ja) | Romにアプリケーションを実装したマルチアプリケーションicカードおよびプログラム | |
JP2000276560A (ja) | 携帯可能電子装置とファイル制御情報の記憶方法とファイル制御情報の検索方法 | |
JPH0855204A (ja) | Cpu付きicカード及びcpu付きicカードに於けるアクセス可能アドレス制限方法 | |
KR100235604B1 (ko) | 복수 개의 불휘발성 메모리들에 데이터를 동시에 기입할 수 있는 반도체 기입 장치 및 그것의 기입방법(semiconductor writing apparatus to be able to simultaneously write data to non volatile memories and a method of writing the same) | |
JPS62289999A (ja) | デ−タの書込方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20050706 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20050914 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20051110 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20060426 |