JPH1063793A - Icカード及びicカードのコマンド確立方法 - Google Patents

Icカード及びicカードのコマンド確立方法

Info

Publication number
JPH1063793A
JPH1063793A JP8219760A JP21976096A JPH1063793A JP H1063793 A JPH1063793 A JP H1063793A JP 8219760 A JP8219760 A JP 8219760A JP 21976096 A JP21976096 A JP 21976096A JP H1063793 A JPH1063793 A JP H1063793A
Authority
JP
Japan
Prior art keywords
command
card
cpu
information
program
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
Application number
JP8219760A
Other languages
English (en)
Inventor
Masaki Wakamatsu
雅樹 若松
Hirotsugu Harima
博嗣 針間
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Dai Nippon Printing Co Ltd
Original Assignee
Dai Nippon Printing Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Dai Nippon Printing Co Ltd filed Critical Dai Nippon Printing Co Ltd
Priority to JP8219760A priority Critical patent/JPH1063793A/ja
Publication of JPH1063793A publication Critical patent/JPH1063793A/ja
Pending legal-status Critical Current

Links

Abstract

(57)【要約】 【課題】 不揮発性メモリに格納されたプログラムによ
り処理すべきコマンドの1次情報を受信した場合にもコ
マンドを的確に確立する。 【解決手段】 不揮発性メモリに格納されたプログラム
により処理されるべきコマンドの1次情報を受信したと
きは、そのプログラムを実行することによりコマンドの
種別を特定し(S612、S614)、特定された種別
より、コマンドを確立するために2次情報を必要とする
か否かを決定する(S616)を有することを特徴とす
る。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、CPUが実行可能
なプログラムを不揮発性メモリに必要に応じて格納する
ことが可能であり、1次情報のみから構成されるコマン
ド、又は1次情報及びそれに続く2次情報から構成され
るコマンドを外部から受信するICカードに関するもの
である。
【0002】
【従来の技術】ICカードは、磁気カードに代わる新し
い情報記憶媒体として、近年注目を集めている。特に、
CPUを内蔵したICカードは、高度なセキュリティを
実現できることから、高度情報化社会の種々の分野にお
いて利用されることが期待されている。一般にICカー
ドは、ROM、RAM、EEPROMの3種類のメモリ
と、それらメモリにアクセスするCPUとを備えてい
る。EEPROMは、書き換え可能な不揮発性メモリで
あり、ICカードユーザに関する個人情報等のデータが
保存される。RAMは、CPUがプログラムを実行する
ときに作業領域として使用する揮発性のメモリである。
ROMは、読み出し専用メモリであり、CPUが実行す
べき処理を示すプログラムが格納されている。
【0003】一般に、ICカードは、リーダ・ライタ等
の外部機器と通信によりコマンドとレスポンスの送受信
を行い、これにより、EEPROMへのデータの書き込
み、書き換えその他の動作を行う。ICカードと外部機
器との通信手順については、ISO規格に定められてお
り、その1つにISO7816 part3 のT=0
プロトコルがある。
【0004】図10は、ISO7816 part3
に定義されているT=0プロトコルで使用されるコマン
ドのフォーマットを示す図である。T=0プロトコルで
は、コマンドを2種類に大別することができる。1つ
は、5バイトヘッダーのみから構成されるコマンドであ
る(case1及びcase2参照)。5バイトヘッダ
ーとは、5バイトから構成され、最初にICカードに送
信されるコマンドの1次情報である。5バイトヘッダー
は、コマンドのクラスを示すCLA、種別を示すIN
S、パラメータP1、P2、及び5バイトヘッダーの後
に続くデータの長さを示すLの5つの1バイトデータよ
り構成されている。もう一方の種類のコマンドは、5バ
イトヘッダーとコマンドデータとから構成されるコマン
ドである(case3及びcase4参照)。コマンド
データは、5バイトヘッダーの後に続いて送受信される
コマンドの2次情報である。コマンドデータとしては、
例えばコマンドがICカードへのデータの書き込み処理
を行うものであるときは、その書き込まれるべきデータ
が該当する。
【0005】また、T=0プロトコルでは、ICカード
と外部機器の行う通信の手順に4つのケースがある。図
11は、その4つのケースの通信手順を示す図である。
第1のケースは、コマンド及びレスポンスのいずれもが
データを伴わない場合の通信手順を定めたものである。
第1のケースでは、はじめに、外部機器からICカード
へコマンドの5バイトヘッダーが送信される。このケー
スでは、コマンドが5バイトヘッダーのみから構成され
るので、ICカードは、5バイトヘッダーを受信した段
階で直ちにコマンドを確立し、これを実行する。また、
ICカードは、コマンド実行後に、コマンドが正常に処
理されたか否かを知らせるステータス・ワード(SW
1、SW2)を返信し、通信は終了する。
【0006】第2のケースは、レスポンスにデータが含
まれている場合の通信手順を定めたものである。第2の
ケースでは、5バイトヘッダーの5バイト目の「L」
は、読み出したいデータの長さを示している。ICカー
ドは、5バイトヘッダーを受信すると、まずその中の
「INS」を送信し、次に「L」に対応する長さのデー
タを送信する。最後にステータス・ワードが返され、通
信は終了する。第1ケースと同様にこのケースでも、I
Cカードは5バイトヘッダーを受信した段階で直ちにコ
マンドを確立する。
【0007】第3のケースは、コマンドが5バイトヘッ
ダーの後にデータを伴い、一方、レスポンスはデータを
伴わないケースである。第3のケースでは、ICカード
が5バイトヘッダーを受信し、その中のINSを外部機
器に返信すると、続いて外部機器がデータをICカード
へ送信する。ICカードは、そのデータを全部受信した
段階で始めてコマンドを確立する。データの受信が終了
した後に、ICカードから外部機器へステータス・ワー
ドが返され、通信は終了する。
【0008】第4のケースは、コマンドが5バイトヘッ
ダーの後にデータを伴い、かつ、レスポンスもデータを
伴うケースである。第4のケースは、外部機器からデー
タが送信され、そのコマンドがICカードにおいて確立
されるまでは、第3のケースと同じである。次にICカ
ードは、レスポンスとして返すデータの長さ情報を含ん
だステータス・ワードを返信する。外部機器は、受け取
った長さ情報を用いて、再び5バイトヘッダーを用意
し、今度は第2のケースと同様の通信手順にしたがっ
て、ICカードからデータを受け取る。
【0009】このように、T=0プロトコルによる通信
では、最初に1次情報としての5バイトヘッダーがIC
カードに送信される。ICカードでは、5バイトヘッダ
ーの内容(CLA、INS)を確認し、コマンドが第1
から第4のいずれのケースであるか、すなわち、コマン
ドが5バイトヘッダーの他に2次情報としてのデータを
伴うのか否かをまず判断する。この判断により、その後
の通信手順の内容、コマンドを確立する時期が決まるか
らである。各々のコマンドがT=0プロトコルの4つの
ケースのうち、どのケースに該当するかは、カードの設
計段階において事前に取り決められる。また、その取り
決めに従いコマンドと通信手順の各ケースとの対応関係
を判断するプログラムは、予め専用メモリに格納される
のが常である。
【0010】一方、ICカードの用途は、今後ますます
多様化することが予想され、このような多様化に対応す
べく、アプリケーション・プログラムを導入可能なIC
カードが本願出願人により特開平7−210642に開
示されている。アプリケーション・プログラムとは、E
EPROM等の書き換え可能なメモリに格納される、C
PUが実行可能なプログラムである。アプリケーション
・プログラムは、ICカードが製造された後に、必要に
応じてICカードに導入される。アプリケーション・プ
ログラム導入することにより、ICカードは、その使用
態様に合わせ、任意のアプリケーション(コマンド処
理)を実行可能になるという利益を取得する。
【0011】
【発明が解決しようとする課題】しかし、前述したアプ
リケーション・プログラムを導入可能なICカードで
は、アプリケーション・プログラムによって実行可能と
なる新しいコマンドが、図11に示した通信手順のいず
れのケースに従うかは、ICカードのROMを設計段階
において知ることはできない。このために、ICカード
がアプリケーション・プログラムによって処理されるべ
きコマンドの5バイトヘッダーを受信した場合に、その
段階で直ちにコマンドを確立すべきか、さらに後から送
信されるコマンドデータを受信してからコマンドを確立
すべきか、決定できないという問題があった。
【0012】そこで、本発明の課題は、不揮発性メモリ
に格納されたプログラムにより処理すべきコマンドの1
次情報を受信した場合に、さらに2次情報を受信すべき
か否かを的確に決定し、コマンドを確立するICカード
を提供することにある。
【0013】
【課題を解決するための手段】前記課題を解決するため
に、請求項1に係る発明は、CPUと、前記CPUが実
行可能なプログラムを格納する読み出し専用メモリと、
前記CPUが実行可能なプログラムを必要に応じて格納
する書き換え可能な不揮発性メモリとを備え、コマンド
種別情報を含む1次情報のみから構成されるコマンド、
又は前記1次情報及びそれに続く2次情報から構成され
るコマンドを外部から受信するICカードにおいて、前
記不揮発性メモリに格納されたプログラムにより処理さ
れるべき前記コマンドの前記1次情報を受信したとき
は、そのプログラムを実行することにより前記コマンド
の種別を特定し、特定された前記種別より、前記コマン
ドを確立するために前記2次情報を必要とするか否かを
決定するを有することを特徴とする。
【0014】請求項2に係る発明は、CPUと、前記C
PUが実行可能なプログラムを格納する読み出し専用メ
モリと、前記CPUが実行可能なプログラムを必要に応
じて格納する書き換え可能な不揮発性メモリとを備え、
コマンド種別情報を含む1次情報のみから構成されるコ
マンド、又は前記1次情報及び2次情報から構成される
コマンドを外部から受信するICカードのコマンド確立
方法において、外部から前記コマンドの1次情報を受信
し、前記1次情報に基づき前記コマンドが前記不揮発性
メモリに格納されているプログラムにより処理可能であ
るか否かを判断し、処理可能と判断された場合には、そ
のプログラムを実行することにより前記コマンドの種別
を特定し、特定された前記種別に基づき前記コマンドが
前記2次情報を伴うか否かを判断し、前記コマンドが前
記2次情報を伴わないと判断された場合は、前記1次情
報のみをもって前記コマンドを確立し、前記コマンドが
前記2次情報を伴うと判断された場合は、前記2次情報
を受信して前記コマンドを確立することを特徴とする。
【0015】
【発明の実施の形態】以下、図面等を参照して、本発明
の一実施形態について、さらに詳しく説明する。図1
は、本発明に係るICカードの構成を示す図である。図
1に示されるように、ICカード10は、読み出し専用
メモリであるROM12、揮発性メモリであるRAM1
4、随時書き換え可能な不揮発性メモリであるEEPR
OM16、及びこれらのメモリにアクセスするCPU1
8を備えている。
【0016】また、ICカード10は、リーダ・ライタ
(不図示)と電気信号等の授受を行うための複数の接点
(Vcc〜GND)を備えている。ICカードをリーダ
・ライタに挿入すると、リーダ・ライタの接点がこのI
Cカードの接点と接続され、電気信号の授受が行われ
る。各接点には、それぞれ異なる電気信号が割り付けら
れている。例えば、Vccは、ICを動作させるために
必要な電源電圧の供給を受けるための接点であり、I/
Oは、CPUがリーダ・ライタとの通信を行うための接
点(シリアルポート)である。なお、本実施形態のIC
カード10は、リーダ・ライタ等の外部機器とT=0プ
ロトコルに従い通信を行う。
【0017】CPU18は、上記接点を介してコマンド
を付与される。CPU18は、コマンドを付与される
と、ROM12又はEEPROM16に格納されている
プログラムを実行することによりそのコマンドを処理す
る。なお、本実施形態では、CPU18が実行すべきプ
ログラムは、ROM12及びEEPROM16に格納さ
れている。ROM12に格納されているプログラムは、
主に、ICカードの使用態様によらない汎用的な動作に
関するプログラム(以下「汎用プログラム」という)で
ある。一方、EEPROM16に格納されているプログ
ラムは、前述したアプリケーション・プログラムであ
る。
【0018】図2は、本実施形態の各メモリに割り付け
られているアドレスの一例を示す図である。本実施形態
では、例えばROM12にH’0000〜H’27F
F、RAM14にH’4000〜H’40FF、EEP
ROM16にH’6000からH’7FFFなるアドレ
スを割り当てている。なお、本明細書において数値の前
に「H’」が付されているときは、その数値は16進数
に基づいて標記されていることが意味される。
【0019】図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カードの使用を変更したときに、その
仕様において必要とされる各種パラメータ等を格納する
ための予備的な空白領域である。
【0020】アドレス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バイ
トのデータである。
【0021】NA_ADDは、当該アプリケーション・
プログラムの次に格納されている、又は格納されるべき
アプリケーション・プログラムの先頭アドレスを示す2
バイトのデータである。図3の例では、第1のアプリケ
ーション・プログラムが有するNA_ADDは、第2番
目のアプリケーション・プログラムの先頭アドレスH’
6080を示している。また、第2番面のアプリケーシ
ョン・プログラムが有するNA_ADDは、将来第3番
目のアプリケーション・プログラムが格納されるべき領
域の先頭アドレスH’60DCを示している。なお、本
実施形態では、NA_ADDは、必ずap.na.の次
の領域に格納される。apl_lは、NA_ADDの次
に格納される2バイトのデータであり、その直後に格納
されているap.pro.の長さ(バイト数)を示して
いる。ap.pro.は、アプリケーション・プログラ
ムの処理内容を示すプログラムと、そのプログラム実行
時に参照されるデータの集合である。
【0022】図4は、本実施形態で使用されるAppl
ication Loadコマンド(以下「A.L.コ
マンド」と略す)及びSelectコマンドのフォーマ
ットを示す図である。A.L.コマンドは、アプリケー
ション・プログラムをEEPROM16に格納するため
のコマンドである。また、Selectコマンドは、E
EPROM16に格納されている特定のアプリケーショ
ン・プログラムを選択するためのコマンドである。A.
L.コマンドは、5バイトヘッダーと、その5バイトヘ
ッダーに続く4つの情報、すなわち、an_l、ap.
na.、apl_l及びap.pro.から構成されて
いる。一方、Selectコマンドは、5バイトヘッダ
ーと、それに続く2つの情報、すなわち、an_l及び
ap.na.から構成されている。なお、本実施形態で
は、一例としてA.L.コマンドのINSに「H’A
4」を、SelectコマンドのINSに「H’F0」
をそれぞれ割り当てている。
【0023】図5は、ROM12に格納されている汎用
プログラムの流れ図である。以下、図5に基づき、IC
カード10の動作の概要について説明する。ICカード
10とリーダ・ライタとが接続され、リーダ・ライタに
よりICカードがリセット(活性化)されると、CPU
18は、まず初期応答情報(ATR)をレスポンスとし
て出力する(S502)。次に、CPU18は、リーダ
・ライタからのコマンド待ち状態となる(S504)。
リーダ・ライタからのコマンドを受信すると、CPU1
8は、そのコマンドがROM12の汎用プログラム、又
はEEPROMのアプリケーション・プログラムにおい
て定義されているか否かを判断する(S506)。その
結果、受信されたコマンドが未定義のコマンドであると
判断されると(S506:Yes)、CPU18は、コ
マンドエラーステータスをRAM14の所定領域にレス
ポンスデータとして編集する(S508)。
【0024】S506において、受信されたコマンドが
未定義のコマンドでないと判断されると(S506:N
o)、次に、そのコマンドの種別が確認される(S51
0)。具体的には、コマンドのINSの値が確認され
る。ここで、INSが「H’A4」である場合は、S5
12へ移行して、Selectコマンドの処理が行われ
る。また、INSが「H’F0」である場合は、S51
6へ移行して、A.L.コマンドの処理が行われる。一
方、INSが上記2つの値以外の場合には、当該コマン
ドは、アプリケーション・プログラムにより実行される
べきコマンドであると判断される。この結果、CPU1
8は、S514へ進み、受信したコマンドを選択済みの
アプリケーション・プログラムへ引き渡し、そのアプリ
ケーション・プログラムを実行することにより、コマン
ドに対応した処理を行う。S510、S512、S51
4又はS516のいずれかの処理が終了すると、CPU
18は、RAM14の所定領域に編集されているレスポ
ンス情報をリーダ・ライタへ返信する(S518)。ま
た、S518の処理が終了すると、CPU18は再びS
504へ戻り、S518までの処理を繰り返す。
【0025】図6は、図5のS504において行われる
処理をより詳細に示した流れ図である。はじめに、CP
U18は、コマンドの5バイトヘッダーを受信するまで
待機している(S602、S604)。5バイトヘッダ
ーが受信されると、その中のINSの値が確かめられる
(S606)。INSの値が「H’A4」又は「H’F
0」のいずれでもない場合には、受信されたコマンド
は、汎用プログラムにおいて定義されていないコマンド
であると判断し、S608へ移行する(S606:Ye
s)。
【0026】S608では、EEPROM16に格納さ
れているアプリケーション・プログラムのいずれかが選
択されているか否かが確認される。アプリケーション・
プログラムが選択されていないと判断されると、受信し
たコマンドを処理する適当なプログラムが存在しないこ
ととなるので、CPU18は、RAM14の所定の領域
に未定義コマンド・エラー・ステータスをレスポンスと
して編集する。一方、S608において、アプリケーシ
ョン・プログラムが選択済みであると判断されると、受
信された5バイトヘッダーは、その選択済みのアプリケ
ーション・プログラムに引き渡される(S512)。具
体的には、後述するSelectコマンド処理により記
憶されたSelect_addressがサブルーチン
・コールされ、これによりアプリケーション・プログラ
ムが実行される。実行されたアプリケーション・プログ
ラムは、5バイトヘッダーのCLA及びINSの一方又
は双方の内容を参照し、これらより、そのコマンドの種
別を特定する。より具体的には、そのコマンドが、IS
O7816に定義されているT=0プロトコルの4つの
通信手順のうち、いずれのケースで取り扱われるべきも
のであるかが特定される。特定された種別は、コマンド
種別データとしてアプリケーション・プログラムより返
される(S614)。
【0027】次に、得られたコマンド種別データに基づ
き、そのコマンドが図11に示した4つの通信手段のう
ち、いずれのケースに従い授受されるかが判断される。
第1又は第2のケースに従う場合、すなわち、そのコマ
ンドが5バイトヘッダーの後にコマンドデータを伴わな
い場合(S616:Yes)には、直ちに受信済みの5
バイトヘッダーがコマンドとして確立される(S61
8)。上記以外の場合、すなわち、コマンドが第3又は
第4のケースに従い授受される場合(S616:No)
には、コマンドは、5バイトヘッダーの後にコマンドデ
ータを伴うことになる。そこで、CPU18は、5バイ
トヘッダーのINSを端末装置へ送信し(S620)、
5バイトヘッダーに続くべきコマンドのデータが送信さ
れるのを待つ(S622、S624)。データが受信さ
れると(S624:Yes)、5バイトヘッダーと受信
されたコマンドデータとが合わせてコマンドとして確立
される(S626)
【0028】一方、S606において、INSの値が
「「H’A4」又は「H’F0」のいずれかであった場
合には(S606:Yes)、CPU18は、直接S6
20からS626までの処理へ移行し、A.L.コマン
ド又はSelectコマンドを確立する。
【0029】図7は、図5のS516の処理内容、つま
り、A.L.コマンドが受信された場合にCPU18が
実行する処理内容を示す流れ図である。CPU18は、
A.L.コマンドが受信されると、まずシステムエリア
のアドレスH’6000を参照し、NOAのデータを読
み出す(S702)。次に、CPU18は、2つの変数
search_address(以下「s.a.」と略
す)及びcounterを初期設定する。s.a.は、
アプリケーション・プログラムを格納する領域の先頭ア
ドレスH’6010に初期設定される(S704)。ま
た、counterは、S702において取得されたN
OAの値に初期設定される(S706)。
【0030】次に、アプリケーション・プログラムを新
たに格納することが可能なEEPROM16上の領域の
先頭アドレスが特定される(S708〜S712)。具
体的には、s.a.にNA_ADDの内容を代入し、c
ounterの値を1だけデクリメントする一連の処理
(S710、S712)が、counterの値が0と
なるまで(S708:Yes)繰り返される。なお、S
710におけるNA_ADDは、S708においてs.
a.が示すアドレス以降に現れる最初のNA_ADD、
すなわち、s.a.によって特定されるアプリケーショ
ン・プログラムが有するNA_ADDである。S708
からS712間での処理は、例えば、図3に示した例で
は、2回繰り返されて行われる。すなわち、s.a.の
内容は、1回目の処理により、第2番目のアプリケーシ
ョン・プログラムの先頭アドレスであるH’6080に
更新される。また、2回目の処理では、第3番目のアプ
リケーション・プログラムを格納することが可能である
領域の先頭アドレス、H’60DCに更新される。
【0031】次に、上記処理により特定されたアドレス
以降に、アプリケーション・プログラムを書き込む処理
が実行される(S714〜S736)。まず、変数wr
ite_address(以下「w.a.」と略す)に
s.a.の値が代入され(S714)、そのw.a.が
示すアドレスにA.L.コマンドのan_lが書き込ま
れる(S716)。書き込みが終了すると、次にw.
a.は、an_lの長さ(バイト数)を加算することに
より更新される(S718)。
【0032】次に、更新されたw.a.が示すアドレス
よりA.L.コマンドのap.na.の内容が書き込ま
れる(S720)。書き込みが終了すると、w.a.
は、an_lの示す値だけ、すなわち、書き込んだa
p.na.の長さ(バイト数)を加算することにより再
び更新される(S724)。次に、後にNA_ADDを
上記ap.na.の直後に書き込むための処理が行われ
る。すなわち、更新されたw.a.の値は、変数NA_
ADD_addressに代入され(S724)、その
後に、NA_ADDの長さ(2バイト)がw.a.に加
算される(S726)。
【0033】次に、w.a.が示すアドレスに、A.
L.コマンドのapl_lの内容が書き込まれ(S72
8)、その後にw.a.にapl_lの長さが加算され
る(S730)。さらに、w.a.が示すアドレスに、
ap.pro.が書き込まれ(S732)、w.a.に
apl_lが示す値が加算される(S734)。次に、
w.a.の値は、NA_ADD_addressが示す
アドレスに書き込まれる(S736)。また、システム
・エリアのNOAが1だけ加算され、EEPROM16
に格納されているアプリケーション・プログラムが1つ
増えたことが記録される(S738)。最後に、アプリ
ケーション・プログラムが正常に終了した旨のステータ
スが、RAM14の所定領域にレスポンス情報として編
集され(S740)、A.L.コマンド処理が終了され
る。
【0034】図8は、図5のS512の処理内容、つま
り、Selectコマンドが受信された場合にCPU1
8が実行する処理内容を示す流れ図である。S512に
おいて、CPU18は、はじめにs.a.をアプリケー
ション・プログラムが格納されている領域の先頭アドレ
スに初期設定する(S802)。本実施形態の場合に
は、s.a.は、H’6010に設定される。次に、C
PU18は、EEPROM16のシステムエリアよりN
OAの値を読み出し(S804)、その値をもって変数
counterを設定する。例えば図3に示すようにE
EPROM16が2つのアプリケーション・プログラム
を格納している場合には、counterは2に初期設
定される。
【0035】次に、CPU18は、Selectコマン
ドに指定されたアプリケーション・プログラムと同一の
ものがあるか否かについて、EEPROM16に格納さ
れているアプリケーション・プログラムを順次検索する
(S808〜S816)。具体的には、s.a.が示す
アドレスのan_l及びそのan_lに続くap.n
a.と、Selectコマンドのan_l及びap.n
a.とが比較される(S810)。比較の結果、一致し
ない場合には、counterの値を1だけデクリメン
トするとともに、s.a.にNA_ADDの内容を代入
する(S814、S816)。ここで、S816におけ
るNA_ADDは、S810においてs.a.が示した
アドレス以降に現れる最初のNA_ADDである。S8
16においてs.a.の内容を更新することにより、
s.a.は、次に格納されているアプリケーション・プ
ログラムの先頭アドレスを示すこととなる。
【0036】S810からS816までの処理は、S8
12において比較されたデータが一致するまで、又は、
S808においてcounterの値が0となるまで継
続される。S812において、比較されたデータが一致
した場合(S812:Yes)には、Selectコマ
ンドによって指定されたアプリケーション・プログラム
が発見され、s.a.はその先頭アドレスを示している
ことが意味される。そこで、CPU18は、s.a.に
an_lの長さ(バイト数)及びan_lが示す値、す
なわちap.na.の長さ(バイト数)、NA_ADD
の長さ、さらにはapl_lの長さを順次加算し、これ
を変数s.a.に代入する(S818)。この結果、
s.a.は、当該アプリケーション・プログラムにおけ
るap.pro.の先頭アドレスを示すこととなる。C
PU18は、このs.a.の内容をRAM14上の所定
領域に格納する(S820)。そして、Selectコ
マンドの処理が正常に終了した旨のステータスをRAM
14の所定領域にレスポンス情報として格納し(S82
2)、処理を終了する。
【0037】一方、S808において、counter
の値が0となった場合(S808:Yes)には、EE
PROM16に格納されているいずれのアプリケーショ
ン・プログラムもSelectコマンドが指定するもの
に該当しなかったことが意味される。この場合には、C
PU18は、該当するアプリケーション・プログラムが
なかった旨のエラーステータスをRAM14の所定領域
にレスポンス情報として格納し(S824)、処理を終
了する。
【0038】図9は、図5におけるS514において、
CPU18が実行する処理内容を示した流れ図である。
図5のS512において、アプリケーションが選択済み
であると判断されると、CPU18は、図8のS822
においてRAM14に格納されたs.a.の内容を取得
し、それに示されるアドレスをサブルーチンコールする
(S902)。これにより、そのアプリケーション・プ
ログラムが実行される。
【0039】以上説明したように、本実施形態のICカ
ード10は、EEPROM16にアプリケーション・プ
ログラムを導入し、実行することが可能なICカードで
ある。また、ICカード10は、リーダ・ライタ等の外
部機器とT=0プロトコルに従い通信を行う。T=0プ
ロトコルにおいて、コマンドは、最初に1次情報として
ICカードに送信される5バイトヘッダーと、その5バ
イトヘッダーの後から2次情報として送信されるコマン
ドデータとから構成される。ただし、コマンドデータ
は、全てのコマンドに備えられているものではなく、種
別によっては、5バイトヘッダーのみから構成されるコ
マンドもある。
【0040】ICカード10は、アプリケーション・プ
ログラムによって処理されるべきコマンドの1次情報
(5バイトヘッダー)を受信すると、該当するアプリケ
ーション・プログラムを実行し、受信した1次情報を引
き渡す。アプリケーション・プログラムは、その1次情
報よりコマンドの種別を特定し、コマンド種別データを
返値として返す。そして、返されたコマンド種別データ
より、コマンドがさらに2次情報を有するか否か、そし
て、コマンドを受信した1次情報のみで確立すべきか、
あるいは、さらに2次情報を受信して確立すべきかが決
定される。つまり、本実施形態では、アプリケーション
・プログラムにおいてのみ定義され、実行されるコマン
ドをT=0プロトコルに従い送信した場合にも、コマン
ドが1次情報のみから構成されるのか、又は2次情報を
も有するのかを判別し、的確にコマンドを確立すること
が可能となっている。
【0041】
【発明の効果】以上詳しく説明したように、本発明によ
れば、不揮発性メモリに格納されたプログラムにより処
理されるべきコマンドを受信した場合にも、そのコマン
ドを的確に確立することが可能である。
【図面の簡単な説明】
【図1】本発明に係るICカードの構成を示す図であ
る。
【図2】ICカード10の各メモリに割り付けられたア
ドレスの例を示す図である。
【図3】EEPROM16のメモリ・マップを示す図で
ある。
【図4】Application Loadコマンド及
びSelectコマンドのフォーマットを示す図であ
る。
【図5】ROM12に格納されている汎用プログラムの
流れ図である。
【図6】図5のS504において行われる処理を示した
流れ図である。
【図7】図5のS516における処理内容を示す流れ図
である。
【図8】図5のS512における処理内容を示す流れ図
である。
【図9】図5におけるS514における処理内容を示し
た流れ図である。
【図10】T=0プロトコルで使用されるコマンドのフ
ォーマットを示す図である。
【図11】T=0プロトコルにおける通信手順の4つの
ケースを示す図である。
【符号の説明】
10 ICカード 12 ROM 14 RAM 16 EEPROM 18 CPU

Claims (2)

    【特許請求の範囲】
  1. 【請求項1】 CPUと、 前記CPUが実行可能なプログラムを格納する読み出し
    専用メモリと、 前記CPUが実行可能なプログラムを必要に応じて格納
    する書き換え可能な不揮発性メモリとを備え、 コマンド種別情報を含む1次情報のみから構成されるコ
    マンド、又は前記1次情報及びそれに続く2次情報から
    構成されるコマンドを外部から受信するICカードにお
    いて、 前記不揮発性メモリに格納されたプログラムにより処理
    されるべき前記コマンドの前記1次情報を受信したとき
    は、 そのプログラムを実行することにより前記コマンドの種
    別を特定し、 特定された前記種別より、前記コマンドを確立するため
    に前記2次情報を必要とするか否かを決定するを有する
    ことを特徴とするICカード。
  2. 【請求項2】 CPUと、前記CPUが実行可能なプロ
    グラムを格納する読み出し専用メモリと、前記CPUが
    実行可能なプログラムを必要に応じて格納する書き換え
    可能な不揮発性メモリとを備え、コマンド種別情報を含
    む1次情報のみから構成されるコマンド、又は前記1次
    情報及び2次情報から構成されるコマンドを外部から受
    信するICカードのコマンド確立方法において、 外部から前記コマンドの1次情報を受信し、 前記1次情報に基づき前記コマンドが前記不揮発性メモ
    リに格納されているプログラムにより処理可能であるか
    否かを判断し、 処理可能と判断された場合には、そのプログラムを実行
    することにより前記コマンドの種別を特定し、 特定された前記種別に基づき前記コマンドが前記2次情
    報を伴うか否かを判断し、 前記コマンドが前記2次情報を伴わないと判断された場
    合は、前記1次情報のみをもって前記コマンドを確立
    し、 前記コマンドが前記2次情報を伴うと判断された場合
    は、前記2次情報を受信して前記コマンドを確立するこ
    とを特徴とするICカードのコマンド確立方法。
JP8219760A 1996-08-21 1996-08-21 Icカード及びicカードのコマンド確立方法 Pending JPH1063793A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP8219760A JPH1063793A (ja) 1996-08-21 1996-08-21 Icカード及びicカードのコマンド確立方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP8219760A JPH1063793A (ja) 1996-08-21 1996-08-21 Icカード及びicカードのコマンド確立方法

Publications (1)

Publication Number Publication Date
JPH1063793A true JPH1063793A (ja) 1998-03-06

Family

ID=16740580

Family Applications (1)

Application Number Title Priority Date Filing Date
JP8219760A Pending JPH1063793A (ja) 1996-08-21 1996-08-21 Icカード及びicカードのコマンド確立方法

Country Status (1)

Country Link
JP (1) JPH1063793A (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2002093390A1 (fr) * 2001-05-14 2002-11-21 Renesas Technology Corp. Processeur de donnees et procede pour mettre a jour une table de donnees
JP2008052527A (ja) * 2006-08-25 2008-03-06 Nidec Sankyo Corp カード状媒体処理装置及びその制御方法

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2002093390A1 (fr) * 2001-05-14 2002-11-21 Renesas Technology Corp. Processeur de donnees et procede pour mettre a jour une table de donnees
JP2008052527A (ja) * 2006-08-25 2008-03-06 Nidec Sankyo Corp カード状媒体処理装置及びその制御方法

Similar Documents

Publication Publication Date Title
JP2007242024A (ja) Icカード、携帯端末機及び携帯端末機の制御方法
US8931705B2 (en) IC card, mobile electronic device and data processing method in IC card
US20160198477A1 (en) Communications device and communications system
JP3480746B2 (ja) 携帯可能電子装置
JP2007094601A (ja) Icタグ、icタグの制御方法及びicタグシステム
JP7131548B2 (ja) 通信装置および方法
CN101385038A (zh) Ic卡,具有ic卡的终端及其初始化的方法
CN101401113B (zh) 支持大尺寸存储器的ic芯片及其方法
JPH1063793A (ja) Icカード及びicカードのコマンド確立方法
JP2003044801A (ja) 複数の情報伝達手段を備えた可搬情報処理装置
JP4590201B2 (ja) データキャリア及びデータキャリアのプログラム
JP7468754B1 (ja) 電子情報記憶媒体、icチップ、icカード、受信ブロック処理方法、及びプログラム
US20030103385A1 (en) Method pf processing a write command
JP3764206B2 (ja) Icカード、プログラム導入方法及びプログラム実行方法
CN109684888B (zh) 一种与智能卡通信的方法及读卡器
JP2005301657A (ja) 複数のコマンドテーブルを書き換え可能なメモリに記憶したicカードおよびコマンドの実行方法
JP7468757B1 (ja) 電子情報記憶媒体、icチップ、icカード、レスポンス送信方法、及びプログラム
CN118194888A (zh) 刷卡控制方法、刷卡方法、卡终端设备及nfc读卡器
JPH1040350A (ja) Icカード及びコマンド実行方法
JP7397402B2 (ja) 電子情報記憶媒体、データ送信方法、及びプログラム
JP7439798B2 (ja) 電子情報記憶媒体、アプリケーション選択処理方法、及びプログラム
JPH09282426A (ja) Icカード及びその通信方法
JP7487837B1 (ja) 電子情報記憶媒体、icチップ、icカード、鍵データ格納方法、及びプログラム
JP2002304605A (ja) Icカード
US20050015548A1 (en) Method for transmitting data, particularly over an air interface