JPH1063793A - Ic card, and command establishing method for ic card - Google Patents

Ic card, and command establishing method for ic card

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
information
program
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.)
Pending
Application number
JP8219760A
Other languages
Japanese (ja)
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/en
Publication of JPH1063793A publication Critical patent/JPH1063793A/en
Pending legal-status Critical Current

Links

Abstract

PROBLEM TO BE SOLVED: To accurately establish a command even in the case of receiving the command to be processed by the program of a nonvolatile memory, by executing the program with the primary information of the command, specifying the kind of the command, and deciding whether or not secondary information is required. SOLUTION: At the time of receiving the primary information (5-byte header) of the command to be processed by an application program (S606), this IC card executes the pertinent application program and delivers the received primary information (S608). The application program specifies the kind of the command by the primary information and returns command kind data as a return value (S614). Then, by the returned command kind data, whether or not the command is provided with the secondary information further and then whether to establish the command only by the received primary information or to establish it by further receiving the secondary information are decided (S616).

Description

【発明の詳細な説明】DETAILED DESCRIPTION OF THE INVENTION

【0001】[0001]

【発明の属する技術分野】本発明は、CPUが実行可能
なプログラムを不揮発性メモリに必要に応じて格納する
ことが可能であり、1次情報のみから構成されるコマン
ド、又は1次情報及びそれに続く2次情報から構成され
るコマンドを外部から受信するICカードに関するもの
である。
BACKGROUND OF THE INVENTION 1. Field of the Invention The present invention enables a program executable by a CPU to be stored in a non-volatile memory as required, and a command consisting of only primary information, or a primary information and The present invention relates to an IC card that receives a command composed of subsequent secondary information from the outside.

【0002】[0002]

【従来の技術】ICカードは、磁気カードに代わる新し
い情報記憶媒体として、近年注目を集めている。特に、
CPUを内蔵したICカードは、高度なセキュリティを
実現できることから、高度情報化社会の種々の分野にお
いて利用されることが期待されている。一般にICカー
ドは、ROM、RAM、EEPROMの3種類のメモリ
と、それらメモリにアクセスするCPUとを備えてい
る。EEPROMは、書き換え可能な不揮発性メモリで
あり、ICカードユーザに関する個人情報等のデータが
保存される。RAMは、CPUがプログラムを実行する
ときに作業領域として使用する揮発性のメモリである。
ROMは、読み出し専用メモリであり、CPUが実行す
べき処理を示すプログラムが格納されている。
2. Description of the Related Art In recent years, an IC card has attracted attention as a new information storage medium replacing a magnetic card. Especially,
Since an IC card with a built-in CPU can realize high security, it is expected to be used in various fields of the advanced information society. Generally, an IC card includes three types of memories, a ROM, a RAM, and an EEPROM, and a CPU that accesses the memories. The EEPROM is a rewritable non-volatile memory, and stores data such as personal information on IC card users. The RAM is a volatile memory used as a work area when the CPU executes a program.
The ROM is a read-only memory, and stores a program indicating a process to be executed by the CPU.

【0003】一般に、ICカードは、リーダ・ライタ等
の外部機器と通信によりコマンドとレスポンスの送受信
を行い、これにより、EEPROMへのデータの書き込
み、書き換えその他の動作を行う。ICカードと外部機
器との通信手順については、ISO規格に定められてお
り、その1つにISO7816 part3 のT=0
プロトコルがある。
In general, an IC card sends and receives commands and responses by communication with an external device such as a reader / writer, and thereby performs operations such as writing and rewriting data to an EEPROM. The communication procedure between the IC card and the external device is defined in the ISO standard, and one of them is T = 0 of ISO7816 part3.
There is a protocol.

【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カードへのデータの書き込み処理
を行うものであるときは、その書き込まれるべきデータ
が該当する。
[0004] FIG. 10 is a diagram showing an ISO7816 part3.
FIG. 4 is a diagram showing a format of a command used in the T = 0 protocol defined in FIG. In the T = 0 protocol, commands can be roughly classified into two types. One is a command composed of only a 5-byte header (see case 1 and case 2). The 5-byte header is composed of 5 bytes and is primary information of a command transmitted first to the IC card. The 5-byte header includes CLA indicating the class of the command and IN indicating the type.
S, parameters P1, P2, and five 1-byte data L indicating the length of data following the 5-byte header. The other type of command is a command composed of a 5-byte header and command data (see case 3 and case 4). The command data is secondary information of a command transmitted and received following the 5-byte header. As command data,
For example, when the command is a process for writing data to an IC card, the data to be written corresponds to the command.

【0005】また、T=0プロトコルでは、ICカード
と外部機器の行う通信の手順に4つのケースがある。図
11は、その4つのケースの通信手順を示す図である。
第1のケースは、コマンド及びレスポンスのいずれもが
データを伴わない場合の通信手順を定めたものである。
第1のケースでは、はじめに、外部機器からICカード
へコマンドの5バイトヘッダーが送信される。このケー
スでは、コマンドが5バイトヘッダーのみから構成され
るので、ICカードは、5バイトヘッダーを受信した段
階で直ちにコマンドを確立し、これを実行する。また、
ICカードは、コマンド実行後に、コマンドが正常に処
理されたか否かを知らせるステータス・ワード(SW
1、SW2)を返信し、通信は終了する。
In the T = 0 protocol, there are four cases in the communication procedure between the IC card and the external device. FIG. 11 is a diagram showing communication procedures in the four cases.
The first case defines a communication procedure when neither a command nor a response accompanies data.
In the first case, first, a 5-byte header of the command is transmitted from the external device to the IC card. In this case, since the command is composed of only the 5-byte header, the IC card immediately establishes and executes the command upon receiving the 5-byte header. Also,
After executing the command, the IC card informs the status word (SW) of whether or not the command has been normally processed.
1, SW2), and the communication ends.

【0006】第2のケースは、レスポンスにデータが含
まれている場合の通信手順を定めたものである。第2の
ケースでは、5バイトヘッダーの5バイト目の「L」
は、読み出したいデータの長さを示している。ICカー
ドは、5バイトヘッダーを受信すると、まずその中の
「INS」を送信し、次に「L」に対応する長さのデー
タを送信する。最後にステータス・ワードが返され、通
信は終了する。第1ケースと同様にこのケースでも、I
Cカードは5バイトヘッダーを受信した段階で直ちにコ
マンドを確立する。
The second case defines a communication procedure when data is included in the response. In the second case, "L" at the fifth byte of the 5-byte header
Indicates the length of data to be read. When receiving the 5-byte header, the IC card transmits "INS" therein, and then transmits data having a length corresponding to "L". Finally, a status word is returned and the communication ends. In this case, as in the first case, I
The C card establishes the command immediately upon receiving the 5-byte header.

【0007】第3のケースは、コマンドが5バイトヘッ
ダーの後にデータを伴い、一方、レスポンスはデータを
伴わないケースである。第3のケースでは、ICカード
が5バイトヘッダーを受信し、その中のINSを外部機
器に返信すると、続いて外部機器がデータをICカード
へ送信する。ICカードは、そのデータを全部受信した
段階で始めてコマンドを確立する。データの受信が終了
した後に、ICカードから外部機器へステータス・ワー
ドが返され、通信は終了する。
The third case is when the command is accompanied by data after the 5-byte header, while the response is accompanied by no data. In the third case, when the IC card receives the 5-byte header and returns the INS therein to the external device, the external device subsequently transmits data to the IC card. The IC card establishes a command only after receiving all the data. After the data reception ends, a status word is returned from the IC card to the external device, and the communication ends.

【0008】第4のケースは、コマンドが5バイトヘッ
ダーの後にデータを伴い、かつ、レスポンスもデータを
伴うケースである。第4のケースは、外部機器からデー
タが送信され、そのコマンドがICカードにおいて確立
されるまでは、第3のケースと同じである。次にICカ
ードは、レスポンスとして返すデータの長さ情報を含ん
だステータス・ワードを返信する。外部機器は、受け取
った長さ情報を用いて、再び5バイトヘッダーを用意
し、今度は第2のケースと同様の通信手順にしたがっ
て、ICカードからデータを受け取る。
[0008] The fourth case is a case where a command accompanies data after a 5-byte header, and a response accompanies data. The fourth case is the same as the third case until data is transmitted from the external device and the command is established in the IC card. Next, the IC card returns a status word including the length information of the data to be returned as a response. The external device prepares a 5-byte header again using the received length information, and then receives data from the IC card according to the same communication procedure as in the second case.

【0009】このように、T=0プロトコルによる通信
では、最初に1次情報としての5バイトヘッダーがIC
カードに送信される。ICカードでは、5バイトヘッダ
ーの内容(CLA、INS)を確認し、コマンドが第1
から第4のいずれのケースであるか、すなわち、コマン
ドが5バイトヘッダーの他に2次情報としてのデータを
伴うのか否かをまず判断する。この判断により、その後
の通信手順の内容、コマンドを確立する時期が決まるか
らである。各々のコマンドがT=0プロトコルの4つの
ケースのうち、どのケースに該当するかは、カードの設
計段階において事前に取り決められる。また、その取り
決めに従いコマンドと通信手順の各ケースとの対応関係
を判断するプログラムは、予め専用メモリに格納される
のが常である。
As described above, in the communication using the T = 0 protocol, first, a 5-byte header as primary information is stored in the IC.
Sent to the card. For IC cards, the contents of the 5-byte header (CLA, INS) are checked, and the command
To the fourth case, that is, whether the command involves data as secondary information in addition to the 5-byte header. This is because the content of the subsequent communication procedure and the timing of establishing the command are determined by this determination. Which of the four cases of the T = 0 protocol each command corresponds to is determined in advance in the card design stage. A program for determining the correspondence between the command and each case of the communication procedure according to the agreement is usually stored in a dedicated memory in advance.

【0010】一方、ICカードの用途は、今後ますます
多様化することが予想され、このような多様化に対応す
べく、アプリケーション・プログラムを導入可能なIC
カードが本願出願人により特開平7−210642に開
示されている。アプリケーション・プログラムとは、E
EPROM等の書き換え可能なメモリに格納される、C
PUが実行可能なプログラムである。アプリケーション
・プログラムは、ICカードが製造された後に、必要に
応じてICカードに導入される。アプリケーション・プ
ログラム導入することにより、ICカードは、その使用
態様に合わせ、任意のアプリケーション(コマンド処
理)を実行可能になるという利益を取得する。
[0010] On the other hand, the use of IC cards is expected to be further diversified in the future.
A card is disclosed by the present applicant in Japanese Patent Application Laid-Open No. Hei 7-210642. The application program is E
C stored in a rewritable memory such as an EPROM
The PU is an executable program. The application program is introduced into the IC card as needed after the IC card is manufactured. By introducing an application program, the IC card obtains the advantage that any application (command processing) can be executed according to the usage mode.

【0011】[0011]

【発明が解決しようとする課題】しかし、前述したアプ
リケーション・プログラムを導入可能なICカードで
は、アプリケーション・プログラムによって実行可能と
なる新しいコマンドが、図11に示した通信手順のいず
れのケースに従うかは、ICカードのROMを設計段階
において知ることはできない。このために、ICカード
がアプリケーション・プログラムによって処理されるべ
きコマンドの5バイトヘッダーを受信した場合に、その
段階で直ちにコマンドを確立すべきか、さらに後から送
信されるコマンドデータを受信してからコマンドを確立
すべきか、決定できないという問題があった。
However, in the IC card in which the above-mentioned application program can be introduced, it is difficult to determine whether a new command executable by the application program follows the communication procedure shown in FIG. However, the ROM of the IC card cannot be known at the design stage. For this purpose, when the IC card receives a 5-byte header of a command to be processed by the application program, the command should be established immediately at that stage, or the command data should be received after receiving the command data transmitted later. There was a problem that it could not be decided whether to establish.

【0012】そこで、本発明の課題は、不揮発性メモリ
に格納されたプログラムにより処理すべきコマンドの1
次情報を受信した場合に、さらに2次情報を受信すべき
か否かを的確に決定し、コマンドを確立するICカード
を提供することにある。
It is an object of the present invention to provide one of the commands to be processed by a program stored in a nonvolatile memory.
It is an object of the present invention to provide an IC card which, when receiving the next information, accurately determines whether to receive the secondary information and establishes the command.

【0013】[0013]

【課題を解決するための手段】前記課題を解決するため
に、請求項1に係る発明は、CPUと、前記CPUが実
行可能なプログラムを格納する読み出し専用メモリと、
前記CPUが実行可能なプログラムを必要に応じて格納
する書き換え可能な不揮発性メモリとを備え、コマンド
種別情報を含む1次情報のみから構成されるコマンド、
又は前記1次情報及びそれに続く2次情報から構成され
るコマンドを外部から受信するICカードにおいて、前
記不揮発性メモリに格納されたプログラムにより処理さ
れるべき前記コマンドの前記1次情報を受信したとき
は、そのプログラムを実行することにより前記コマンド
の種別を特定し、特定された前記種別より、前記コマン
ドを確立するために前記2次情報を必要とするか否かを
決定するを有することを特徴とする。
According to one aspect of the present invention, there is provided a CPU, a read-only memory for storing a program executable by the CPU,
A rewritable nonvolatile memory for storing a program that can be executed by the CPU as necessary, and a command comprising only primary information including command type information;
Or, when receiving the primary information of the command to be processed by a program stored in the non-volatile memory in an IC card that receives a command composed of the primary information and subsequent secondary information from the outside Executing the program to specify the type of the command, and determining whether the secondary information is required to establish the command based on the specified type. And

【0014】請求項2に係る発明は、CPUと、前記C
PUが実行可能なプログラムを格納する読み出し専用メ
モリと、前記CPUが実行可能なプログラムを必要に応
じて格納する書き換え可能な不揮発性メモリとを備え、
コマンド種別情報を含む1次情報のみから構成されるコ
マンド、又は前記1次情報及び2次情報から構成される
コマンドを外部から受信するICカードのコマンド確立
方法において、外部から前記コマンドの1次情報を受信
し、前記1次情報に基づき前記コマンドが前記不揮発性
メモリに格納されているプログラムにより処理可能であ
るか否かを判断し、処理可能と判断された場合には、そ
のプログラムを実行することにより前記コマンドの種別
を特定し、特定された前記種別に基づき前記コマンドが
前記2次情報を伴うか否かを判断し、前記コマンドが前
記2次情報を伴わないと判断された場合は、前記1次情
報のみをもって前記コマンドを確立し、前記コマンドが
前記2次情報を伴うと判断された場合は、前記2次情報
を受信して前記コマンドを確立することを特徴とする。
According to a second aspect of the present invention, the CPU,
A read-only memory storing a program executable by the PU, and a rewritable nonvolatile memory storing a program executable by the CPU as necessary;
In an IC card command establishment method for receiving a command composed of only primary information including command type information or a command composed of the primary information and the secondary information from outside, the primary information of the command from outside is provided. And determines whether or not the command can be processed by a program stored in the non-volatile memory based on the primary information. If it is determined that the command can be processed, the program is executed. By specifying the type of the command by this, it is determined whether or not the command accompanies the secondary information based on the specified type, if it is determined that the command does not accompany the secondary information, The command is established only with the primary information, and when it is determined that the command accompanies the secondary information, the secondary information is received and the command is received. And establishes the command.

【0015】[0015]

【発明の実施の形態】以下、図面等を参照して、本発明
の一実施形態について、さらに詳しく説明する。図1
は、本発明に係るICカードの構成を示す図である。図
1に示されるように、ICカード10は、読み出し専用
メモリであるROM12、揮発性メモリであるRAM1
4、随時書き換え可能な不揮発性メモリであるEEPR
OM16、及びこれらのメモリにアクセスするCPU1
8を備えている。
Hereinafter, an embodiment of the present invention will be described in more detail with reference to the drawings. FIG.
FIG. 1 is a diagram showing a configuration of an IC card according to the present invention. As shown in FIG. 1, an IC card 10 includes a ROM 12 that is a read-only memory and a RAM 1 that is a volatile memory.
4. EEPR, a non-volatile memory that can be rewritten at any time
OM16 and CPU 1 accessing these memories
8 is provided.

【0016】また、ICカード10は、リーダ・ライタ
(不図示)と電気信号等の授受を行うための複数の接点
(Vcc〜GND)を備えている。ICカードをリーダ
・ライタに挿入すると、リーダ・ライタの接点がこのI
Cカードの接点と接続され、電気信号の授受が行われ
る。各接点には、それぞれ異なる電気信号が割り付けら
れている。例えば、Vccは、ICを動作させるために
必要な電源電圧の供給を受けるための接点であり、I/
Oは、CPUがリーダ・ライタとの通信を行うための接
点(シリアルポート)である。なお、本実施形態のIC
カード10は、リーダ・ライタ等の外部機器とT=0プ
ロトコルに従い通信を行う。
The IC card 10 has a plurality of contacts (Vcc to GND) for exchanging electric signals with a reader / writer (not shown). When the IC card is inserted into the reader / writer, the contacts of the reader / writer
It is connected to the contacts of the C card, and exchanges electrical signals. Different electrical signals are assigned to the respective contacts. For example, Vcc is a contact for receiving supply of a power supply voltage necessary for operating the IC,
O is a contact (serial port) for the CPU to communicate with the reader / writer. Note that the IC of the present embodiment
The card 10 communicates with an external device such as a reader / writer according to the T = 0 protocol.

【0017】CPU18は、上記接点を介してコマンド
を付与される。CPU18は、コマンドを付与される
と、ROM12又はEEPROM16に格納されている
プログラムを実行することによりそのコマンドを処理す
る。なお、本実施形態では、CPU18が実行すべきプ
ログラムは、ROM12及びEEPROM16に格納さ
れている。ROM12に格納されているプログラムは、
主に、ICカードの使用態様によらない汎用的な動作に
関するプログラム(以下「汎用プログラム」という)で
ある。一方、EEPROM16に格納されているプログ
ラムは、前述したアプリケーション・プログラムであ
る。
The CPU 18 is given a command via the above-mentioned contact. When given a command, the CPU 18 executes the program stored in the ROM 12 or the EEPROM 16 to process the command. In the present embodiment, programs to be executed by the CPU 18 are stored in the ROM 12 and the EEPROM 16. The program stored in the ROM 12 is
It is mainly a program related to general-purpose operation that does not depend on the use mode of the IC card (hereinafter, referred to as “general-purpose program”). On the other hand, the program stored in the EEPROM 16 is the above-described application program.

【0018】図2は、本実施形態の各メモリに割り付け
られているアドレスの一例を示す図である。本実施形態
では、例えばROM12にH’0000〜H’27F
F、RAM14にH’4000〜H’40FF、EEP
ROM16にH’6000からH’7FFFなるアドレ
スを割り当てている。なお、本明細書において数値の前
に「H’」が付されているときは、その数値は16進数
に基づいて標記されていることが意味される。
FIG. 2 is a diagram showing an example of addresses allocated to the respective memories according to the present embodiment. In the present embodiment, for example, H'0000 to H'27F
F, H'4000-H'40FF in RAM 14, EEP
Addresses from H'6000 to H'7FFF are assigned to the ROM 16. In the present specification, when “H ′” is added before a numerical value, it means that the numerical value is indicated based on a hexadecimal number.

【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カードの使用を変更したときに、その
仕様において必要とされる各種パラメータ等を格納する
ための予備的な空白領域である。
FIG. 3 is a diagram showing a memory map of the EEPROM 16. In the present embodiment, the EEPROM 16
, Ie, H'6000 to H'600F
Is secured as a system area. A variable NOA is stored at the head address H'6000 of the system area. NOA is stored (registered) in EEPROM 16
This is a variable indicating the number of application programs being executed. NOA is initialized to 0, and one application program is stored in the EEPROM as described later.
The value is incremented by one each time the value is stored in 16. Area from address H'6001 to H'600F (RF
U) is a preliminary blank area for storing various parameters and the like required in the specifications when the use of the IC card is changed in the future.

【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バイ
トのデータである。
The area after address H'6010 is an area in which an application program can be stored. FIG. 3 shows two applications as an example.
The state where the program is stored is shown. First
Application programs are H'6010-H '
The second application program is stored in the area of H'6080 to H'60DB in the area of 607F. The application program stored in the EEPROM 16 is converted from an_l to an application
on program (hereinafter abbreviated as “ap.pro.”). an_l and application_name (hereinafter “ap.n
a. ") Is information for identifying the application program. That is, ap. na. Is
The name of the application program, an
_L is ap. na. Is 1-byte data indicating the length (number of bytes).

【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.は、アプリケーション・プログラ
ムの処理内容を示すプログラムと、そのプログラム実行
時に参照されるデータの集合である。
NA_ADD is the application
2 indicating the start address of the application program stored or to be stored next to the program
It is byte data. In the example of FIG. 3, NA_ADD of the first application program is the start address H ′ of the second application program.
6080 is shown. NA_ADD of the second application program indicates the start address H'60DC of the area where the third application program is to be stored in the future. In the present embodiment, NA_ADD is always ap. na. Is stored in the next area. apl_l is 2-byte data stored next to NA_ADD, and is stored immediately after ap. pro. Indicates the length (number of bytes). ap. pro. Is a set of a program indicating the processing content of the application program and data referred to when the program is executed.

【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」
をそれぞれ割り当てている。
FIG. 4 shows the configuration of Appl used in this embodiment.
It is a figure which shows the format of the Choice Load command (hereinafter abbreviated as "AL command") and the Select command. A. L. The command is a command for storing the application program in the EEPROM 16. The Select command is E
This is a command for selecting a specific application program stored in the EPROM 16. A.
L. The command includes a 5-byte header and four pieces of information following the 5-byte header: an_l, ap.
na. , Apl_l and ap. pro. It is composed of On the other hand, the Select command has a 5-byte header followed by two pieces of information, namely, an_l and ap. na. It is composed of In the present embodiment, as an example, A.I. L. The command INS displays "H'A
4 ”as“ H'F0 ”in the INS of the Select command.
Are assigned respectively.

【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)。
FIG. 5 is a flowchart of a general-purpose program stored in the ROM 12. Hereinafter, based on FIG.
An outline of the operation of the card 10 will be described. When the IC card 10 and the reader / writer are connected and the IC card is reset (activated) by the reader / writer, the CPU
18 first outputs the initial response information (ATR) as a response (S502). Next, the CPU 18 waits for a command from the reader / writer (S504).
When receiving a command from the reader / writer, the CPU 1
8 judges whether the command is defined in the general-purpose program in the ROM 12 or the application program in the EEPROM (S506). As a result, when it is determined that the received command is an undefined command (S506: Yes), the CPU 18 edits the command error status in a predetermined area of the RAM 14 as response data (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までの処理を繰り返す。
If it is determined in S506 that the received command is not an undefined command (S506: N
o) Next, the type of the command is confirmed (S51).
0). Specifically, the value of the INS of the command is confirmed. Here, when INS is “H′A4”, S5
Then, the process proceeds to step S12, and the process of the Select command is performed. If INS is "H'F0", the process goes to S51.
6, and L. Command processing is performed. On the other hand, when INS is other than the above two values, it is determined that the command is a command to be executed by the application program. As a result, CPU1
In step S514, the process transfers the received command to the selected application program, and executes the application program to perform a process corresponding to the command. S510, S512, S51
4 or S516, the CPU
18 returns the response information edited in the predetermined area of the RAM 14 to the reader / writer (S518). When the processing in S518 ends, the CPU 18 again executes S
Returning to 504, the processing up to S518 is repeated.

【0025】図6は、図5のS504において行われる
処理をより詳細に示した流れ図である。はじめに、CP
U18は、コマンドの5バイトヘッダーを受信するまで
待機している(S602、S604)。5バイトヘッダ
ーが受信されると、その中のINSの値が確かめられる
(S606)。INSの値が「H’A4」又は「H’F
0」のいずれでもない場合には、受信されたコマンド
は、汎用プログラムにおいて定義されていないコマンド
であると判断し、S608へ移行する(S606:Ye
s)。
FIG. 6 is a flowchart showing the processing performed in step S504 of FIG. 5 in more detail. First, CP
U18 waits until receiving the 5-byte header of the command (S602, S604). When the 5-byte header is received, the value of INS therein is confirmed (S606). If the value of INS is "H'A4" or "H'F
If it is not any of "0", it is determined that the received command is not defined in the general-purpose program, and the process proceeds to S608 (S606: Ye).
s).

【0026】S608では、EEPROM16に格納さ
れているアプリケーション・プログラムのいずれかが選
択されているか否かが確認される。アプリケーション・
プログラムが選択されていないと判断されると、受信し
たコマンドを処理する適当なプログラムが存在しないこ
ととなるので、CPU18は、RAM14の所定の領域
に未定義コマンド・エラー・ステータスをレスポンスと
して編集する。一方、S608において、アプリケーシ
ョン・プログラムが選択済みであると判断されると、受
信された5バイトヘッダーは、その選択済みのアプリケ
ーション・プログラムに引き渡される(S512)。具
体的には、後述するSelectコマンド処理により記
憶されたSelect_addressがサブルーチン
・コールされ、これによりアプリケーション・プログラ
ムが実行される。実行されたアプリケーション・プログ
ラムは、5バイトヘッダーのCLA及びINSの一方又
は双方の内容を参照し、これらより、そのコマンドの種
別を特定する。より具体的には、そのコマンドが、IS
O7816に定義されているT=0プロトコルの4つの
通信手順のうち、いずれのケースで取り扱われるべきも
のであるかが特定される。特定された種別は、コマンド
種別データとしてアプリケーション・プログラムより返
される(S614)。
In S608, it is confirmed whether any of the application programs stored in the EEPROM 16 has been selected. application·
If it is determined that a program has not been selected, there is no suitable program for processing the received command, so that the CPU 18 edits the undefined command error status in a predetermined area of the RAM 14 as a response. . On the other hand, if it is determined in S608 that the application program has been selected, the received 5-byte header is delivered to the selected application program (S512). Specifically, Select_address stored by Select command processing to be described later is called as a subroutine, whereby the application program is executed. The executed application program refers to the contents of one or both of the CLA and INS of the 5-byte header, and specifies the type of the command based on these contents. More specifically, the command is IS
It is specified which of the four communication procedures of the T = 0 protocol defined in O7816 is to be handled in which case. The specified type is returned from the application program as command type data (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)
Next, based on the obtained command type data, it is determined which case of the four communication means shown in FIG. 11 the command is transmitted / received.
When following the first or second case, that is, when the command is not accompanied by command data after the 5-byte header (S616: Yes), the received 5
A byte header is established as a command (S61
8). In cases other than the above, that is, when commands are transmitted and received according to the third or fourth case (S616: No)
The command will have command data after the 5-byte header. Then, the CPU 18 transmits the INS of the 5-byte header to the terminal device (S620),
It waits for command data to be transmitted following the 5-byte header (S622, S624). When the data is received (S624: Yes), the 5-byte header and the received command data are established as a command together (S626).

【0028】一方、S606において、INSの値が
「「H’A4」又は「H’F0」のいずれかであった場
合には(S606:Yes)、CPU18は、直接S6
20からS626までの処理へ移行し、A.L.コマン
ド又はSelectコマンドを確立する。
On the other hand, if the value of INS is either "H'A4" or "H'F0" in S606 (S606: Yes), the CPU 18 proceeds directly to S6.
20 to S626. L. Command or Select command is established.

【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)。
FIG. 7 shows the processing contents of S516 of FIG. L. 9 is a flowchart showing the contents of processing executed by a CPU 18 when a command is received. The CPU 18
A. L. When the command is received, first, the data of the NOA is read by referring to the address H'6000 in the system area (S702). Next, the CPU 18 initializes two variables search_address (hereinafter abbreviated as “sa”) and counter. s. a. Is
The initial address is set to the start address H'6010 of the area for storing the application program (S704). The counter is the N acquired in S702.
Initially, the value of OA is set (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に更新される。
Next, the start address of an area on the EEPROM 16 in which an application program can be newly stored is specified (S708 to S712). Specifically, s. a. Substitute the contents of NA_ADD for c
A series of processing for decrementing the value of counter by 1 (S710, S712) is repeated until the value of counter becomes 0 (S708: Yes). Note that S
NA_ADD at 710 is equal to s.
a. The first NA_ADD appearing after the address indicated by
That is, s. a. Is NA_ADD of the application program specified by. S708
The process from to S712 is performed twice, for example, in the example shown in FIG. That is, s. a. Is updated to H'6080 which is the start address of the second application program by the first processing. In the second processing, the start address of the area in which the third application program can be stored is updated to 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)。
Next, a process of writing an application program is executed after the address specified by the above process (S714 to S736). First, the variable wr
item_address (hereinafter abbreviated as “wa.”) to s. a. Is substituted (S714), and w. a. The address indicated by A. L. The command an_l is written (S716). When writing is completed, w.
a. Is updated by adding the length (the number of bytes) of 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)。
Next, the updated w. a. From the address indicated by A. L. Command ap. na. Is written (S720). When writing is completed, w. a.
Is only the value indicated by an_l, that is, the written a
p. na. Is updated again by adding the length (the number of bytes) (S724). Next, later, NA_ADD is stored in the above ap. na. The processing for writing is performed immediately after. That is, the updated w. a. Is the value of the variable NA_
ADD_address (S724), and then the length (2 bytes) of NA_ADD is set to 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.コマンド処理が終了され
る。
Next, w. a. The address indicated by A.
L. The contents of the command apl_l are written (S72).
8), followed by w. a. Is added to the length of apl_l (S730). Further, w. a. At the address indicated by
ap. pro. Is written (S732), and w. a. Is added to the value indicated by apl_l (S734). next,
w. a. Is written to the address indicated by NA_ADD_address (S736). Also, the NOA of the system area is incremented by 1, and the EEPROM 16
Is recorded that the number of application programs stored in is increased by one (S738). Finally, a status indicating that the application program has been normally completed is edited as response information in a predetermined area of the RAM 14 (S740). L. The command processing ends.

【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に初期設
定される。
FIG. 8 shows the contents of the processing in S512 of FIG. 5, that is, the CPU 1 when the Select command is received.
8 is a flowchart showing the contents of the processing executed by the control unit 8; In S512, the CPU 18 first sets s. a. Is initially set to the start address of the area where the application program is stored (S802). In the case of this embodiment, s. a. Is set to H′6010. Next, C
PU 18 is N more than the system area of EEPROM 16.
The value of OA is read (S804), and a variable counter is set with the value. For example, as shown in FIG.
If EPROM 16 stores two application programs, counter is initialized to two.

【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.は、次に格納されているアプリケーション・プ
ログラムの先頭アドレスを示すこととなる。
Next, the CPU 18 sequentially searches the application programs stored in the EEPROM 16 as to whether or not there is an application program specified in the Select command (S808 to S816). Specifically, s. a. An_l of the address indicated by ap. n
a. And the Select command an_l and ap. n
a. Are compared (S810). As a result of the comparison, if they do not match, the value of counter is decremented by 1 and s. a. Is substituted for the content of NA_ADD (S814, S816). Here, NA_ADD in S816 is equal to s. a. Is the first NA_ADD appearing after the address shown. S8
16 at s. a. By updating the content of
s. a. Indicates the start address of the application program stored next.

【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)、処理を終了する。
The processing from S810 to S816 is performed in S8
Until the data compared in 12 match, or
The processing is continued until the value of the counter becomes 0 in S808. If the compared data match in S812 (S812: Yes), the application program specified by the Select command is found, and s. a. Means the start address. Therefore, the CPU 18 sets s. a. The length (number of bytes) of an_l and the value indicated by an_l, that is, ap. na. Length (number of bytes), NA_ADD
, And the length of apl_l are sequentially added, and this is added to the variable s. a. (S818). As a result,
s. a. Is ap. In the application program. pro. Indicates the start address of C
PU18 has this s. a. Is stored in a predetermined area on the RAM 14 (S820). Then, the status indicating that the processing of the Select command has been completed normally is stored in the RAM.
14 as response information (S82).
2), end the process.

【0037】一方、S808において、counter
の値が0となった場合(S808:Yes)には、EE
PROM16に格納されているいずれのアプリケーショ
ン・プログラムもSelectコマンドが指定するもの
に該当しなかったことが意味される。この場合には、C
PU18は、該当するアプリケーション・プログラムが
なかった旨のエラーステータスをRAM14の所定領域
にレスポンス情報として格納し(S824)、処理を終
了する。
On the other hand, in S808, the counter
Is 0 (S808: Yes), the EE
This means that none of the application programs stored in the PROM 16 corresponded to those specified by the Select command. In this case, C
The PU 18 stores an error status indicating that there is no corresponding application program in a predetermined area of the RAM 14 as response information (S824), and ends the processing.

【0038】図9は、図5におけるS514において、
CPU18が実行する処理内容を示した流れ図である。
図5のS512において、アプリケーションが選択済み
であると判断されると、CPU18は、図8のS822
においてRAM14に格納されたs.a.の内容を取得
し、それに示されるアドレスをサブルーチンコールする
(S902)。これにより、そのアプリケーション・プ
ログラムが実行される。
FIG. 9 is a flow chart showing processing in S514 in FIG.
3 is a flowchart showing the processing executed by a CPU 18;
If it is determined in S512 of FIG. 5 that the application has been selected, the CPU 18 proceeds to S822 of FIG.
At s. a. Is obtained, and the address indicated by the content is called as a subroutine (S902). Thereby, the application program is executed.

【0039】以上説明したように、本実施形態のICカ
ード10は、EEPROM16にアプリケーション・プ
ログラムを導入し、実行することが可能なICカードで
ある。また、ICカード10は、リーダ・ライタ等の外
部機器とT=0プロトコルに従い通信を行う。T=0プ
ロトコルにおいて、コマンドは、最初に1次情報として
ICカードに送信される5バイトヘッダーと、その5バ
イトヘッダーの後から2次情報として送信されるコマン
ドデータとから構成される。ただし、コマンドデータ
は、全てのコマンドに備えられているものではなく、種
別によっては、5バイトヘッダーのみから構成されるコ
マンドもある。
As described above, the IC card 10 of the present embodiment is an IC card capable of introducing an application program into the EEPROM 16 and executing the program. Further, the IC card 10 communicates with an external device such as a reader / writer according to the T = 0 protocol. In the T = 0 protocol, a command is composed of a 5-byte header transmitted to the IC card as primary information first, and command data transmitted as secondary information after the 5-byte header. However, the command data is not provided for all commands, and some commands include only a 5-byte header depending on the type.

【0040】ICカード10は、アプリケーション・プ
ログラムによって処理されるべきコマンドの1次情報
(5バイトヘッダー)を受信すると、該当するアプリケ
ーション・プログラムを実行し、受信した1次情報を引
き渡す。アプリケーション・プログラムは、その1次情
報よりコマンドの種別を特定し、コマンド種別データを
返値として返す。そして、返されたコマンド種別データ
より、コマンドがさらに2次情報を有するか否か、そし
て、コマンドを受信した1次情報のみで確立すべきか、
あるいは、さらに2次情報を受信して確立すべきかが決
定される。つまり、本実施形態では、アプリケーション
・プログラムにおいてのみ定義され、実行されるコマン
ドをT=0プロトコルに従い送信した場合にも、コマン
ドが1次情報のみから構成されるのか、又は2次情報を
も有するのかを判別し、的確にコマンドを確立すること
が可能となっている。
When receiving the primary information (5 byte header) of the command to be processed by the application program, the IC card 10 executes the corresponding application program and delivers the received primary information. The application program specifies the command type from the primary information and returns the command type data as a return value. Then, based on the returned command type data, whether the command further has secondary information, and whether the command should be established only with the primary information that has received the command,
Alternatively, it is determined whether the secondary information should be further received and established. That is, in the present embodiment, even when a command defined and executed only in the application program and transmitted according to the T = 0 protocol is transmitted, the command is composed of only the primary information or has the secondary information. It is possible to determine whether or not, and to establish a command accurately.

【0041】[0041]

【発明の効果】以上詳しく説明したように、本発明によ
れば、不揮発性メモリに格納されたプログラムにより処
理されるべきコマンドを受信した場合にも、そのコマン
ドを的確に確立することが可能である。
As described above in detail, according to the present invention, even when a command to be processed by a program stored in a nonvolatile memory is received, the command can be accurately established. is there.

【図面の簡単な説明】[Brief description of the drawings]

【図1】本発明に係るICカードの構成を示す図であ
る。
FIG. 1 is a diagram showing a configuration of an IC card according to the present invention.

【図2】ICカード10の各メモリに割り付けられたア
ドレスの例を示す図である。
FIG. 2 is a diagram showing an example of an address assigned to each memory of the IC card 10;

【図3】EEPROM16のメモリ・マップを示す図で
ある。
FIG. 3 is a diagram showing a memory map of the EEPROM 16;

【図4】Application Loadコマンド及
びSelectコマンドのフォーマットを示す図であ
る。
FIG. 4 is a diagram illustrating a format of an Application Load command and a Select command.

【図5】ROM12に格納されている汎用プログラムの
流れ図である。
FIG. 5 is a flowchart of a general-purpose program stored in a ROM 12;

【図6】図5のS504において行われる処理を示した
流れ図である。
FIG. 6 is a flowchart showing a process performed in S504 of FIG. 5;

【図7】図5のS516における処理内容を示す流れ図
である。
FIG. 7 is a flowchart showing processing contents in S516 of FIG. 5;

【図8】図5のS512における処理内容を示す流れ図
である。
FIG. 8 is a flowchart showing processing contents in S512 of FIG. 5;

【図9】図5におけるS514における処理内容を示し
た流れ図である。
FIG. 9 is a flowchart showing processing contents in S514 in FIG. 5;

【図10】T=0プロトコルで使用されるコマンドのフ
ォーマットを示す図である。
FIG. 10 is a diagram showing a format of a command used in a T = 0 protocol.

【図11】T=0プロトコルにおける通信手順の4つの
ケースを示す図である。
FIG. 11 is a diagram showing four cases of a communication procedure in the T = 0 protocol.

【符号の説明】[Explanation of symbols]

10 ICカード 12 ROM 14 RAM 16 EEPROM 18 CPU 10 IC card 12 ROM 14 RAM 16 EEPROM 18 CPU

Claims (2)

【特許請求の範囲】[Claims] 【請求項1】 CPUと、 前記CPUが実行可能なプログラムを格納する読み出し
専用メモリと、 前記CPUが実行可能なプログラムを必要に応じて格納
する書き換え可能な不揮発性メモリとを備え、 コマンド種別情報を含む1次情報のみから構成されるコ
マンド、又は前記1次情報及びそれに続く2次情報から
構成されるコマンドを外部から受信するICカードにお
いて、 前記不揮発性メモリに格納されたプログラムにより処理
されるべき前記コマンドの前記1次情報を受信したとき
は、 そのプログラムを実行することにより前記コマンドの種
別を特定し、 特定された前記種別より、前記コマンドを確立するため
に前記2次情報を必要とするか否かを決定するを有する
ことを特徴とするICカード。
1. A CPU comprising: a CPU; a read-only memory for storing a program executable by the CPU; and a rewritable nonvolatile memory for storing a program executable by the CPU as necessary. In an IC card that receives a command composed of only primary information including the following or a command composed of the primary information and the subsequent secondary information from the outside, the command is processed by a program stored in the nonvolatile memory. When the primary information of the command to be received is received, the type of the command is identified by executing the program, and the secondary information is required to establish the command from the identified type. Determining whether or not to do so.
【請求項2】 CPUと、前記CPUが実行可能なプロ
グラムを格納する読み出し専用メモリと、前記CPUが
実行可能なプログラムを必要に応じて格納する書き換え
可能な不揮発性メモリとを備え、コマンド種別情報を含
む1次情報のみから構成されるコマンド、又は前記1次
情報及び2次情報から構成されるコマンドを外部から受
信するICカードのコマンド確立方法において、 外部から前記コマンドの1次情報を受信し、 前記1次情報に基づき前記コマンドが前記不揮発性メモ
リに格納されているプログラムにより処理可能であるか
否かを判断し、 処理可能と判断された場合には、そのプログラムを実行
することにより前記コマンドの種別を特定し、 特定された前記種別に基づき前記コマンドが前記2次情
報を伴うか否かを判断し、 前記コマンドが前記2次情報を伴わないと判断された場
合は、前記1次情報のみをもって前記コマンドを確立
し、 前記コマンドが前記2次情報を伴うと判断された場合
は、前記2次情報を受信して前記コマンドを確立するこ
とを特徴とするICカードのコマンド確立方法。
2. A command type information, comprising: a CPU; a read-only memory for storing a program executable by the CPU; and a rewritable nonvolatile memory for storing a program executable by the CPU as necessary. A method for establishing a command of an IC card for receiving a command consisting of only primary information including a primary information or a command consisting of the primary information and secondary information from outside, comprising: receiving primary information of the command from outside; Determining whether or not the command can be processed by a program stored in the non-volatile memory based on the primary information, and executing the program if determined that the command can be processed; Identifying the type of command, determining whether the command accompanies the secondary information based on the identified type, If it is determined that the command does not involve the secondary information, the command is established using only the primary information. If the command is determined to involve the secondary information, the command is A command establishment method for an IC card, comprising receiving and establishing the command.
JP8219760A 1996-08-21 1996-08-21 Ic card, and command establishing method for ic card Pending JPH1063793A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP8219760A JPH1063793A (en) 1996-08-21 1996-08-21 Ic card, and command establishing method for ic card

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP8219760A JPH1063793A (en) 1996-08-21 1996-08-21 Ic card, and command establishing method for ic card

Publications (1)

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

Family

ID=16740580

Family Applications (1)

Application Number Title Priority Date Filing Date
JP8219760A Pending JPH1063793A (en) 1996-08-21 1996-08-21 Ic card, and command establishing method for ic card

Country Status (1)

Country Link
JP (1) JPH1063793A (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2002093390A1 (en) * 2001-05-14 2002-11-21 Renesas Technology Corp. Data processor and data table update method
JP2008052527A (en) * 2006-08-25 2008-03-06 Nidec Sankyo Corp Card type medium processor and its control method

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2002093390A1 (en) * 2001-05-14 2002-11-21 Renesas Technology Corp. Data processor and data table update method
JP2008052527A (en) * 2006-08-25 2008-03-06 Nidec Sankyo Corp Card type medium processor and its control method

Similar Documents

Publication Publication Date Title
US20050088285A1 (en) Mobile communication terminal with RFID function and RFID programming method in the same
JP2007242024A (en) Ic card, portable terminal, and control method of portable terminal
US20120194321A1 (en) Ic tag, method of controlling the ic tag, and ic tag system
US8931705B2 (en) IC card, mobile electronic device and data processing method in IC card
JP6516133B2 (en) Communication device and communication system
JP7131548B2 (en) Communication device and method
EP1500227B1 (en) Method for recognizing electronic appliance in multiple control system
JPH1063793A (en) Ic card, and command establishing method for ic card
EP1146421A2 (en) Control method and electronic device to enhance the functionality of a main processor
JP2003044801A (en) Portable information processor provided with a plurality of information transmitting means
JP4590201B2 (en) Data carrier and data carrier program
CN109684888B (en) Method for communicating with smart card and card reader
JP3718564B2 (en) IC card
JP7501764B1 (en) ELECTRONIC INFORMATION STORAGE MEDIUM, IC CHIP, IC CARD, DATA TRANSMISSION/RECEPTION METHOD, AND PROGRAM
JP2005301657A (en) Ic card having multiple command tables stored in rewritable memory and executing method for command
JP2002150246A (en) Portable electronic device
JP2003533807A (en) How to handle write commands
KR100757533B1 (en) Smart card for supporting high speed communication
JPH1040350A (en) Ic card and method for executing command
JP7397402B2 (en) Electronic information storage medium, data transmission method, and program
JP7439798B2 (en) Electronic information storage medium, application selection processing method, and program
JP7468754B1 (en) ELECTRONIC INFORMATION STORAGE MEDIUM, IC CHIP, IC CARD, RECEPTION BLOCK PROCESSING METHOD, AND PROGRAM
JP2002304605A (en) Ic card
JP7468765B1 (en) ELECTRONIC INFORMATION STORAGE MEDIUM, IC CHIP, IC CARD, ALL-IN-ONE DATA UPDATE METHOD, AND PROGRAM
US20050015548A1 (en) Method for transmitting data, particularly over an air interface