JP4645883B2 - Semiconductor integrated circuit, data storage method, and data communication apparatus - Google Patents

Semiconductor integrated circuit, data storage method, and data communication apparatus Download PDF

Info

Publication number
JP4645883B2
JP4645883B2 JP2004207613A JP2004207613A JP4645883B2 JP 4645883 B2 JP4645883 B2 JP 4645883B2 JP 2004207613 A JP2004207613 A JP 2004207613A JP 2004207613 A JP2004207613 A JP 2004207613A JP 4645883 B2 JP4645883 B2 JP 4645883B2
Authority
JP
Japan
Prior art keywords
data
storage area
stored
storage
area
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2004207613A
Other languages
Japanese (ja)
Other versions
JP2006031276A (en
Inventor
宏昭 濱田
征二 江坂
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.)
Sony Corp
Original Assignee
Sony Corp
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 Sony Corp filed Critical Sony Corp
Priority to JP2004207613A priority Critical patent/JP4645883B2/en
Publication of JP2006031276A publication Critical patent/JP2006031276A/en
Application granted granted Critical
Publication of JP4645883B2 publication Critical patent/JP4645883B2/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Landscapes

  • Techniques For Improving Reliability Of Storages (AREA)

Description

本発明は半導体集積回路、データ記憶方法及びデータ通信装置に関し、例えば不揮発性メモリを有するICカードやそのリーダライタがデータを記憶する際に適用して好適なものである。   The present invention relates to a semiconductor integrated circuit, a data storage method, and a data communication apparatus, and is suitable for application when, for example, an IC card having a nonvolatile memory or a reader / writer thereof stores data.

近年、電子マネーシステムや交通システム等においてIC(Integrated Circuit)カードが広く利用されている。かかるICカードは、例えばEEPROM(Electrically Erasable and Programmable ROM)等の不揮発性メモリを有し、この不揮発性メモリにシステムで利用するデータ(例えば課金データ等)を記憶すると共に、リーダライタとの間でこのデータをやり取りする。   In recent years, IC (Integrated Circuit) cards are widely used in electronic money systems and transportation systems. Such an IC card has a non-volatile memory such as an EEPROM (Electrically Erasable and Programmable ROM), for example, and stores data (for example, billing data) used in the system in the non-volatile memory and between the reader / writer. Exchange this data.

また、かかるICカードの中には、リーダライタと非接触で通信を行い得る非接触型のものがあり、例えばリーダライタから送信される電磁波により電力を発生して動作するものもある。   Some of these IC cards are non-contact type capable of communicating with a reader / writer in a non-contact manner. For example, some IC cards operate by generating electric power by electromagnetic waves transmitted from the reader / writer.

このように電磁波を受信して動作するICカードの場合、当然のことながら電磁波を受信している状態でしか動作し得ない。ゆえに、かかる非接触型のICカードにおいては、例えば不揮発性メモリにデータを書き込んでいる途中で、電磁波の受信状態が悪化することにより電源が瞬断される状況が想定し得、このような場合、書込途中のデータが破壊され、データの整合性に欠陥が生じる恐れがある。   In the case of an IC card that operates by receiving electromagnetic waves in this way, it can of course only operate in a state of receiving electromagnetic waves. Therefore, in such a non-contact type IC card, for example, a situation in which the power supply is momentarily interrupted due to deterioration of the electromagnetic wave reception state while data is being written to the nonvolatile memory can be assumed. Data in the middle of writing may be destroyed, resulting in a defect in data consistency.

そこで従来、不揮発性メモリ上に、第1の記憶領域と第2の記憶領域とを設け、例えば第1の記憶領域に更新前のデータが記憶されている場合、更新後のデータを第2の記憶領域に書き込んで記憶させることにより、第2の記憶領域に更新後のデータを書き込んでいる途中に動作終了してこのデータが破壊された場合でも、第1の記憶領域に記憶させている更新前のデータを用いるようにしてデータの整合性を維持する方法が提案されている(例えば特許文献1参照)。
特開平11−25003号公報
Therefore, conventionally, a first storage area and a second storage area are provided on a nonvolatile memory. For example, when data before update is stored in the first storage area, By writing to the storage area and storing it, even if the operation ends while the updated data is being written to the second storage area and this data is destroyed, the update stored in the first storage area A method for maintaining data consistency by using previous data has been proposed (see, for example, Patent Document 1).
Japanese Patent Laid-Open No. 11-25003

ところで、実際上ICカードの制御部が不揮発性メモリに記憶させるためのデータを当該不揮発性メモリに供給し終えてから、この不揮発性メモリに対するデータの記憶が完全に終了するまでには所定時間を有する。つまりデータを供給し終えた後、この所定時間(以下、これをウェイト時間とも呼ぶ)経過した後でなければ、この供給したデータが正常に記憶されたことを保証できない。このため従来の方法を用いて、例えば第2の記憶領域に更新後のデータを供給し終えてからウェイト時間経過する前にICカードの電源が瞬断されると、この更新後のデータが完全には記憶されていないため、例えばある一定期間はこの第2の記憶領域からこの更新後のデータが正常に読み出せることによりこの第2の記憶領域に記憶させた更新後のデータを用いることができるが、その後このデータの値が変化して破壊される場合があり、このような場合、データの整合性に欠陥を生じる恐れがある。   By the way, in practice, a predetermined time is required from when the control unit of the IC card finishes supplying the data to be stored in the nonvolatile memory to the nonvolatile memory until the storage of the data in the nonvolatile memory is completely completed. Have. In other words, it is not possible to guarantee that the supplied data has been normally stored until the predetermined time (hereinafter also referred to as the wait time) has elapsed after the data has been supplied. For this reason, if the power supply of the IC card is momentarily cut off before the wait time elapses after the updated data is supplied to the second storage area, for example, the updated data is completely deleted. Is stored in the second storage area. For example, the updated data stored in the second storage area can be used by reading the updated data from the second storage area normally for a certain period of time. However, there is a case where the value of this data is changed and then destroyed, and in such a case, there is a risk of causing a defect in data integrity.

このように従来の方法を用いても、データの整合性を確実に維持することができるとは言い難いという問題があった。   As described above, even if the conventional method is used, there is a problem that it is difficult to say that data consistency can be reliably maintained.

本発明は以上の点を考慮してなされたもので、データの整合性を一段と確実に維持し得る半導体集積回路、データ記憶方法及びデータ通信装置を提案しようとするものである。   The present invention has been made in view of the above points, and an object of the present invention is to propose a semiconductor integrated circuit, a data storage method, and a data communication apparatus that can maintain data consistency more reliably.

かかる課題を解決するため本発明の半導体集積回路においては、データを記憶するための複数の記憶領域を有する記憶部と、更新前のデータを記憶部の第1の記憶領域に記憶させている場合には、更新後のデータを記憶部の第2の記憶領域に供給し、更新前のデータを当該第2の記憶領域に記憶させている場合には、更新後のデータを第1の記憶領域に供給して記憶させる記憶制御手段とを設け、記憶制御手段が、第1の記憶領域又は第2の記憶領域に更新後のデータを供給して完全に記憶させた後に、第1の記憶領域及び第2の記憶領域のどちらに更新後のデータを記憶させたのかを判定するための第1の判定データを記憶部の第3の記憶領域に供給して記憶させ、さらに記憶制御手段が、第1の記憶領域及び第2の記憶領域に対して、当該第1の記憶領域及び当該第2の記憶領域のどちらに更新後のデータを記憶させたのかを判定するための第2の判定データを供給して記憶させ、さらに複数の記憶領域に対して、記憶させたデータの誤りを検出するための誤り検出データを供給して記憶させ、さらに第3の記憶領域に記憶させた第1の判定データ又は誤り検出データが破壊されていた場合に、第1の記憶領域及び第2の記憶領域に記憶させたデータ、第2の判定データ及び誤り検出データをもとに、第3の記憶領域に記憶させた第1の判定データ及び誤り検出データを修復する修復手段を設けるようにした。 In order to solve such a problem, in the semiconductor integrated circuit of the present invention, a storage unit having a plurality of storage areas for storing data and data before update are stored in the first storage area of the storage unit In the case where the updated data is supplied to the second storage area of the storage unit and the pre-update data is stored in the second storage area, the updated data is stored in the first storage area. Storage control means for supplying and storing the first storage area after the storage control means supplies the updated data to the first storage area or the second storage area and completely stores it. And the first determination data for determining whether the updated data is stored in which of the second storage areas is supplied to and stored in the third storage area of the storage unit. For the first storage area and the second storage area, Supply and store the second determination data for determining whether the updated data is stored in which of the first storage area and the second storage area, and for a plurality of storage areas, The error detection data for detecting the error of the stored data is supplied and stored, and the first determination data or the error detection data stored in the third storage area is destroyed. The first determination data and error detection data stored in the third storage area are restored based on the data stored in the storage area and the second storage area, the second determination data, and the error detection data. It was so that providing a repair means.

また本発明のデータ記憶方法においては、データを記憶するための複数の記憶領域を有する記憶部に対してデータを記憶するデータ記憶方法において、更新前のデータを記憶部の第1の記憶領域に記憶させている場合には、更新後のデータを記憶部の第2の記憶領域に供給し、更新前のデータを当該第2の記憶領域に記憶させている場合には、更新後のデータを第1の記憶領域に供給して記憶させる第1の記憶ステップと、第1の記憶領域又は第2の記憶領域に更新後のデータを供給して完全に記憶させた後に、第1の記憶領域及び第2の記憶領域のどちらに更新後のデータを記憶させたのかを判定するための第1の判定データを記憶部の第3の記憶領域に供給して記憶させる第2の記憶ステップと設け、第1の記憶ステップでは、第1の記憶領域及び第2の記憶領域に対して、当該第1の記憶領域及び当該第2の記憶領域のどちらに更新後のデータを記憶させたのかを判定するための第2の判定データを供給して記憶させ、さらに第1の記憶ステップ及び第2の記憶ステップでは、複数の記憶領域に対して、記憶させたデータの誤りを検出するための誤り検出データを供給して記憶させ、さらに第3の記憶領域に記憶させた第1の判定データ又は誤り検出データが破壊されていた場合に、第1の記憶領域及び第2の記憶領域に記憶させたデータ、第2の判定データ及び誤り検出データをもとに、第3の記憶領域に記憶させた第1の判定データ及び誤り検出データを修復する修復ステップを設けるようにした。 In the data storage method of the present invention, in the data storage method for storing data in a storage unit having a plurality of storage areas for storing data, the pre-update data is stored in the first storage area of the storage unit. When the data is stored, the updated data is supplied to the second storage area of the storage unit, and when the data before the update is stored in the second storage area, the updated data is stored in the second storage area. A first storage step for supplying and storing the first storage area; and the first storage area after the updated data is supplied and completely stored in the first storage area or the second storage area. And a second storage step for supplying and storing the first determination data for determining which of the second storage area the updated data is stored in the third storage area of the storage unit In the first storage step, the first Second determination data for determining whether the updated data is stored in the first storage area or the second storage area is supplied to the area and the second storage area. In the first storage step and the second storage step, error detection data for detecting an error in the stored data is supplied to and stored in the plurality of storage areas, and the third storage step When the first determination data or the error detection data stored in the storage area is destroyed, the data, the second determination data, and the error detection data stored in the first storage area and the second storage area are based on, and in so that providing a repair step of repairing the first determination data and error detection data stored in the third memory area.

さらに本発明のデータ通信装置においては、外部装置と通信する通信手段と、データを記憶するための複数の記憶領域を有する記憶部と、通信手段により受信した外部装置からの命令に応じて、更新前のデータを記憶部の第1の記憶領域に記憶させている場合には、更新後のデータを記憶部の第2の記憶領域に供給し、更新前のデータを当該第2の記憶領域に記憶させている場合には、更新後のデータを第1の記憶領域に供給して記憶させる記憶制御手段とを設け、記憶制御手段が、第1の記憶領域又は第2の記憶領域に更新後のデータを供給して完全に記憶させた後に、第1の記憶領域及び第2の記憶領域のどちらに更新後のデータを記憶させたのかを判定するための第1の判定データを記憶部の第3の記憶領域に供給して記憶させ、さらに記憶制御手段が、第1の記憶領域及び第2の記憶領域に対して、当該第1の記憶領域及び当該第2の記憶領域のどちらに更新後のデータを記憶させたのかを判定するための第2の判定データを供給して記憶させ、さらに複数の記憶領域に対して、記憶させたデータの誤りを検出するための誤り検出データを供給して記憶させ、さらに第3の記憶領域に記憶させた第1の判定データ又は誤り検出データが破壊されていた場合に、第1の記憶領域及び第2の記憶領域に記憶させたデータ、第2の判定データ及び誤り検出データをもとに、第3の記憶領域に記憶させた第1の判定データ及び誤り検出データを修復する修復手段を設けるようにした。
Further, in the data communication device of the present invention, the communication unit that communicates with the external device, the storage unit having a plurality of storage areas for storing data, and the update according to the command from the external device received by the communication unit When the previous data is stored in the first storage area of the storage unit, the updated data is supplied to the second storage area of the storage unit, and the pre-update data is stored in the second storage area. Storage means for supplying the updated data to the first storage area and storing the updated data if stored, and the storage control means is updated to the first storage area or the second storage area After the first data is supplied and completely stored, the first determination data for determining whether the updated data is stored in the first storage area or the second storage area is stored in the storage unit. is stored is supplied to the third memory area, further The storage control unit determines whether the updated data is stored in the first storage area or the second storage area with respect to the first storage area and the second storage area. Second determination data is supplied and stored, and further, error detection data for detecting errors in the stored data is supplied to and stored in a plurality of storage areas, and further stored in the third storage area When the first determination data or the error detection data is destroyed, based on the data stored in the first storage area and the second storage area, the second determination data and the error detection data, It was so that providing a repair means to repair the first determination data and error detection data stored in the third memory area.

このように第1の記憶領域又は第2の記憶領域に対して更新後のデータを完全に記憶させた後に、第3の記憶領域に第1の記憶領域又は第2の記憶領域のどちらに更新後のデータを記憶させたのかを判定するための第1の判定データを記憶させるようにしたことにより、この第1の判定データが示す記憶領域に記憶されているデータが、正常に記憶された更新後のデータであると保証できる。   After the updated data is completely stored in the first storage area or the second storage area in this way, the third storage area is updated to either the first storage area or the second storage area. By storing the first determination data for determining whether the subsequent data is stored, the data stored in the storage area indicated by the first determination data is stored normally. It can be guaranteed that the data is updated.

本発明によれば、第1の記憶領域又は第2の記憶領域に対して更新後のデータを完全に記憶させた後に、第3の記憶領域に第1の記憶領域又は第2の記憶領域のどちらに更新後のデータを記憶させたのかを判定するための第1の判定データを記憶させるようにしたことにより、この第1の判定データが示す記憶領域に記憶されているデータが、正常に記憶された更新後のデータであると保証し得るので、常に正常に記憶された新しいデータを用いることができ、かくしてデータの整合性を一段と確実に維持し得る半導体集積回路、データ記憶方法及びデータ通信装置を実現できる。   According to the present invention, after the updated data is completely stored in the first storage area or the second storage area, the first storage area or the second storage area is stored in the third storage area. By storing the first determination data for determining which of the updated data is stored, the data stored in the storage area indicated by the first determination data is normally Since it can be assured that the stored data is updated, it is possible to always use normally stored new data, and thus the semiconductor integrated circuit, the data storage method and the data which can maintain the data consistency more reliably A communication device can be realized.

以下図面について、本発明の一実施の形態を詳述する。   Hereinafter, an embodiment of the present invention will be described in detail with reference to the drawings.

(1)データ通信システム
(1−1)システム構成
図1において、1は全体としてデータ通信システムを示し、パーソナルコンピュータ構成のコントローラ2に接続されたリーダライタ3に、非接触型のICカード4が近接されると、当該リーダライタ3とICカード4との間で認証処理を実行する。その結果、リーダライタ3とICカード4との認証が成功すると、コントローラ2は、当該リーダライタ3を介してICカード4に対し各種データの書込命令や読出命令を与える。
(1) Data Communication System (1-1) System Configuration In FIG. 1, reference numeral 1 denotes a data communication system as a whole, and a non-contact type IC card 4 is connected to a reader / writer 3 connected to a controller 2 having a personal computer configuration. When approaching, authentication processing is executed between the reader / writer 3 and the IC card 4. As a result, if the authentication between the reader / writer 3 and the IC card 4 is successful, the controller 2 gives various data write commands and read commands to the IC card 4 via the reader / writer 3.

このリーダライタ3にはICチップ10が搭載されており、このICチップ10の内部に、全体を統括的に制御するCPU(Central Processing Unit)11、プログラム等を格納するROM(Read Only Memory)12、一時作業領域となるRAM(Random Access Memory)13、各種データの暗号化を行う暗号回路14、各種データを記憶するEEPROM(Electrically Erasable and Programmable ROM)15、コントローラ2と各種データやコマンドをやり取りするコントローラインタフェース部16、及びICカード4と各種データやコマンドをやり取りするICカードインタフェース部17がバス18を介して接続されている。   An IC chip 10 is mounted on the reader / writer 3. Inside the IC chip 10, a central processing unit (CPU) 11 that performs overall control and a read only memory (ROM) 12 that stores programs and the like. A random access memory (RAM) 13 serving as a temporary work area, an encryption circuit 14 for encrypting various data, an EEPROM (Electrically Erasable and Programmable ROM) 15 for storing various data, and various data and commands are exchanged with the controller 2. A controller interface unit 16 and an IC card interface unit 17 that exchanges various data and commands with the IC card 4 are connected via a bus 18.

さらにICチップ10の外部には、コントローラ2と通信するための有線通信用の通信処理回路及び通信接続端子等からなるコントローラ通信部19、及びICカード4と通信するための無線通信用のアナログ送受信回路及びアンテナ素子からなるICカード通信部20が設けられ、これらがそれぞれICチップ10内のコントローラインタフェース部16及びICカードインタフェース部17に接続されている。   Further, outside the IC chip 10, a controller communication unit 19 including a communication processing circuit for wired communication and a communication connection terminal for communicating with the controller 2, and analog transmission / reception for wireless communication for communicating with the IC card 4 An IC card communication unit 20 including a circuit and an antenna element is provided, and these are connected to the controller interface unit 16 and the IC card interface unit 17 in the IC chip 10, respectively.

これによりリーダライタ3は、コントローラインタフェース部16及びコントローラ通信部19を介してコントローラ2と通信し得、またICカードインタフェース部17及びICカード通信部20を介してICカード4と通信し得るようになされている。   Thus, the reader / writer 3 can communicate with the controller 2 via the controller interface unit 16 and the controller communication unit 19, and can communicate with the IC card 4 via the IC card interface unit 17 and the IC card communication unit 20. Has been made.

一方、ICカード4にもICチップ30が搭載されており、このICチップ30の内部に、全体を統括的に制御するCPU31、プログラム等を格納するROM32、一時作業領域となるRAM33、各種データの暗号化を行う暗号回路34、各種データを記憶するEEPROM35、及びリーダライタ3と各種データやコマンドをやり取りするリーダライタインタフェース部36がバス37を介して接続されている。   On the other hand, an IC chip 30 is also mounted on the IC card 4. Inside the IC chip 30, a CPU 31 that controls the entire system, a ROM 32 that stores programs, a RAM 33 that serves as a temporary work area, and various data An encryption circuit 34 that performs encryption, an EEPROM 35 that stores various data, and a reader / writer interface unit 36 that exchanges various data and commands with the reader / writer 3 are connected via a bus 37.

さらにICチップ30の外部には、リーダライタ3と通信するための無線通信用のアナログ送受信回路及びアンテナ素子からなるリーダライタ通信部38が設けられ、これがICチップ30内のリーダライタインタフェース部36に接続されている。   Further, a reader / writer communication unit 38 including an analog transmission / reception circuit for wireless communication and an antenna element for communicating with the reader / writer 3 is provided outside the IC chip 30, and this is connected to the reader / writer interface unit 36 in the IC chip 30. It is connected.

これによりICカード4は、リーダライタインタフェース部36及びリーダライタ通信部38を介してリーダライタ3と通信し得るようになされている。   Thus, the IC card 4 can communicate with the reader / writer 3 via the reader / writer interface unit 36 and the reader / writer communication unit 38.

(1−2)EEPROMのメモリマップ構成
次にリーダライタ3及びICカード4に内蔵されているEEPROM15及び35のメモリマップ構成について説明する。なお、本実施の形態におけるEEPROM15及び35のメモリマップ構成は同一であるので、ここではICカード4のEEPROM35についてのみ説明し、リーダライタ3のEEPROM15についての説明は省略する。
(1-2) Memory Map Configuration of EEPROM Next, the memory map configuration of the EEPROMs 15 and 35 incorporated in the reader / writer 3 and the IC card 4 will be described. Since the memory map configurations of the EEPROMs 15 and 35 in the present embodiment are the same, only the EEPROM 35 of the IC card 4 will be described here, and the description of the EEPROM 15 of the reader / writer 3 will be omitted.

EEPROM35は、図2に示すように、1又は複数のページからなる複数の領域に分割されており、後述する選択面フラグを格納するステータス領域SAと、リーダライタ3とやり取りする種々のデータを格納する複数のデータ領域A、B、C、…とで構成される。   As shown in FIG. 2, the EEPROM 35 is divided into a plurality of areas composed of one or a plurality of pages, and stores a status area SA for storing a selection plane flag, which will be described later, and various data exchanged with the reader / writer 3. Are composed of a plurality of data areas A, B, C,.

さらにデータ領域A、B、C、…は、それぞれ1面A1、B1、C1、…と2面A2、B2、C2、…とに分割されており、ICカード4ではこれら2つの面を交互に用いてデータの更新を行う。   Further, each of the data areas A, B, C,... Is divided into one surface A1, B1, C1,... And two surfaces A2, B2, C2,. To update the data.

すなわちICカード4のCPU31は、例えばあるデータをデータ領域Aの1面A1に記憶させておき、このデータの更新時、1面A1からこのデータをRAM33上に読み出して更新し、このROM33上で更新したデータを2面A2に記憶させる。そして、どちらの面に更新後のデータを記憶させたのかを示す選択面フラグをステータス領域SAに記憶させる。   That is, the CPU 31 of the IC card 4 stores, for example, certain data on the first surface A1 of the data area A, and when updating this data, reads this data from the first surface A1 onto the RAM 33 and updates it. The updated data is stored in the second surface A2. Then, a selection surface flag indicating which surface the updated data is stored in is stored in the status area SA.

このように、かかるEEPROM35においては、データの格納領域を2面ずつ設けておくことにより、更新後のデータを一方の面に書き込んで記憶している途中に、書き込みエラーが生じてこの更新後のデータが破壊された場合でも、他方の面に保持している更新前のデータを用いてデータを復旧させることができる。   In this way, in the EEPROM 35, by providing two data storage areas for each side, a write error occurs while the updated data is written and stored on one side, and this updated Even when data is destroyed, it is possible to recover the data using the pre-update data held on the other side.

なお、かかるEEPROM35は、読出及び書込が1ページ単位で行われるものであり、本実施の形態の場合、ステータス領域SA、及びデータ領域A、B、C、…の各面にそれぞれ1ページずつ割り当てている。   In the EEPROM 35, reading and writing are performed in units of one page. In the case of this embodiment, one page is provided for each of the status area SA and the data areas A, B, C,. Assigned.

(1−2−1)ステータス領域の構成
次にステータス領域SAの構成について詳述する。図3に示すようにステータス領域SAには、その先頭からデータ領域A、B、C、…のそれぞれに対応する選択面フラグAF、BF、CF、…が格納され、最後にこのステータス領域SAに対する誤り検出のためのチェックサムCSが格納される。なお、以降の説明においては、選択面フラグAF、BF、CF、…とチェックサムCSとをまとめてステータス領域SAのデータとも呼ぶ。
(1-2-1) Configuration of Status Area Next, the configuration of the status area SA will be described in detail. As shown in FIG. 3, the status area SA stores selection plane flags AF, BF, CF,... Corresponding to the data areas A, B, C,. A checksum CS for error detection is stored. In the following description, the selection surface flags AF, BF, CF,... And the checksum CS are collectively referred to as data in the status area SA.

この選択面フラグAF、BF、CF、…は、上述したように、それぞれ対応するデータ領域A、B、C、…の2つの面のどちらが現在選択すべき面(以下、これを選択面とも呼ぶ)であるのかを示すフラグであり、このフラグの値が「00H」である場合に1面A1、B1、C1、…を示し、この値が「FFH」である場合に2面A2、B2、C2、…を示す。   As described above, the selection plane flags AF, BF, CF,..., Which of the two areas of the corresponding data areas A, B, C,. ). When the value of this flag is “00H”, it indicates one side A1, B1, C1,..., And when this value is “FFH”, two sides A2, B2,. C2, ... are shown.

すなわちICカード4のCPU31は、例えば読み出した選択面フラグAFの値が「00H」であれば、データ領域Aの1面A1を選択し、この値が、「FFH」であれば、データ領域Aの2面A2を選択する。   That is, the CPU 31 of the IC card 4 selects one surface A1 of the data area A if, for example, the value of the read selection surface flag AF is “00H”, and if this value is “FFH”, the data area A 2 side A2 is selected.

またチェックサムCSは、ステータス領域SA内の選択面フラグAF、BF、CF、…の合計値であり、当該選択面フラグAF、BF、CF、…の更新時に毎回計算されて、更新した選択面フラグAF、BF、CF、…と共にステータス領域SAに書き込まれて記憶される。そして、このチェックサムCSと実際に計算した合計値とが一致すれば、ステータス領域SAに記憶されている選択面フラグAF、BF、CF、…の値が正常であることを示し、一致しなければ、ステータス領域SAに記憶されている選択面フラグAF、BF、CF、…の値が異常であることを示す。   The checksum CS is the total value of the selection plane flags AF, BF, CF,... In the status area SA, and is calculated every time the selection plane flags AF, BF, CF,. Along with the flags AF, BF, CF,... Are written and stored in the status area SA. If the checksum CS matches the actually calculated total value, it indicates that the values of the selection plane flags AF, BF, CF,... Stored in the status area SA are normal and must match. For example, it indicates that the values of the selection plane flags AF, BF, CF,... Stored in the status area SA are abnormal.

(1−2−2)データ領域の構成
続いてデータ領域A、B、C、…の構成について詳述する。なお、本実施の形態におけるデータ領域A、B、C、…の構成は全て同一であるので、ここではデータ領域Aについて説明し、データ領域B、C、…についての説明は省略する。
(1-2-2) Configuration of Data Area Next, the configuration of the data areas A, B, C,. Since the data areas A, B, C,... In this embodiment are all the same, the data area A will be described here, and the description of the data areas B, C,.

図4に示すようにデータ領域Aは、同様の構成でなる1面A1及び2面A2に分割されており、1面A1の先頭からデータDA1が格納され、その後にカウンタCA1が格納され、最後に1面A1に対する誤り検出のためのチェックサムCSA1が格納される。また同様に2面A2の先頭からデータDA2が格納され、その後にカウンタCA2が格納され、最後に2面A2に対する誤り検出のためのチェックサムCSA2が格納される。なお、以降の説明においては、データDA1とカウンタCA1とチェックサムCSA1とをまとめて1面A1のデータとも呼び、またデータDA2とカウンタCA2とチェックサムCSA2とをまとめて2面A2のデータとも呼ぶ。   As shown in FIG. 4, the data area A is divided into a plane A1 and a plane A2 having the same configuration. The data DA1 is stored from the top of the plane A1, and then the counter CA1 is stored. 1 stores a checksum CSA1 for error detection on the first plane A1. Similarly, data DA2 is stored from the top of the second surface A2, followed by a counter CA2, and finally a checksum CSA2 for error detection for the second surface A2. In the following description, the data DA1, the counter CA1, and the checksum CSA1 are collectively referred to as data on the first surface A1, and the data DA2, the counter CA2, and the checksum CSA2 are collectively referred to as data on the second surface A2. .

このカウンタCA1及びCA2は、データDA1とデータDA2とに記憶されているデータのどちらが新しいデータであるのかを示す値であり、データを更新する毎に、1ずつインクリメントされる。例えば1面A1のデータを更新して、2面A2に書き込む場合には、1面A1のカウンタCA1に1インクリメントした値をカウンタCA2の値として、2面A2に書き込む。この結果、このときのカウンタCA2の値は、カウンタCA1の値+1となるので、2面A2に記憶されているデータが新しいデータであると認識できる。   The counters CA1 and CA2 are values indicating which of the data stored in the data DA1 and data DA2 is new data, and are incremented by 1 each time the data is updated. For example, when the data on the first surface A1 is updated and written on the second surface A2, the value incremented by 1 in the counter CA1 on the first surface A1 is written on the second surface A2 as the value of the counter CA2. As a result, the value of the counter CA2 at this time becomes the value of the counter CA1 + 1, so that the data stored in the two surfaces A2 can be recognized as new data.

(2)データ更新処理
次に、データ領域A、B、C、…におけるデータの更新処理の手順について、図5のフローチャートを用いて詳細に説明する。なお、ここでは一例として、データ領域Aのデータ(1面A1のデータ、及び2面A2のデータ)を更新する際の手順を述べる。
(2) Data Update Processing Next, data update processing procedures in the data areas A, B, C,... Will be described in detail with reference to the flowchart of FIG. As an example, a procedure for updating data in the data area A (data on the first surface A1 and data on the second surface A2) will be described.

ICカード4のCPU31は、例えば外部からデータ領域Aに対するデータ更新命令を受け付けると、データ更新処理手順RT1を開始してステップSP1に移る。   For example, when the CPU 31 of the IC card 4 receives a data update command for the data area A from the outside, the CPU 31 starts a data update processing procedure RT1 and proceeds to step SP1.

ステップSP1においてCPU31は、ステータス領域SAのデータを読み出して、選択面フラグAFを参照することによりデータ領域Aの選択面を認識し、次のステップSP2に移る。なお、ここでは一例として参照した選択面フラグAFの値が「00H」であり、1面A1を選択面として認識したものとする。   In step SP1, the CPU 31 reads the data in the status area SA, refers to the selection plane flag AF, recognizes the selection plane in the data area A, and moves to the next step SP2. Here, it is assumed that the value of the selection plane flag AF referred to as an example is “00H” and one plane A1 is recognized as the selection plane.

ステップSP2においてCPU31は、データ領域Aの選択面として認識した1面A1のデータ(データDA1、カウンタCA1、及びチェックサムCSA1)を読み出してRAM33上にコピーし、次のステップSP3に移る。   In step SP2, the CPU 31 reads out the data (data DA1, counter CA1, and checksum CSA1) of one surface A1 recognized as the selected surface of the data area A, copies it to the RAM 33, and proceeds to the next step SP3.

ステップSP3においてCPU31は、RAM33上にコピーした1面A1のデータDA1を編集すると共に、カウンタCA1を1インクリメントし、さらにデータDA1及びカウンタCA1をもとにチェックサムCSA1を再計算して次のステップSP4に移る。   In step SP3, the CPU 31 edits the data DA1 of the first surface A1 copied onto the RAM 33, increments the counter CA1 by 1, and recalculates the checksum CSA1 based on the data DA1 and the counter CA1. Move to SP4.

ステップSP4においてCPU31は、RAM33上で編集したデータDA1と、1インクリメントしたカウンタCA1と、再計算したチェックサムCSA1とを、それぞれ2面A2のデータDA2、カウンタCA2、及びチェックサムCSA2としてEEPROM35に供給して2面A2に書き込ませ、次のステップSP5に移る。   In step SP4, the CPU 31 supplies the data DA1 edited on the RAM 33, the counter CA1 incremented by 1 and the recalculated checksum CSA1 to the EEPROM 35 as the data DA2, the counter CA2 and the checksum CSA2 of the two surfaces A2, respectively. Then, the data is written on the second surface A2, and the process proceeds to the next step SP5.

ステップSP5においてCPU31は、2面A2に対するデータ(データDA2、カウンタCA2、及びチェックサムCSA2)の記憶が保証されるまでのウェイト時間待機する。すなわち2面A2に対するデータの書込処理はこのステップSP4とステップSP5とを経た時点で正常に終了したことになり、このとき2面2Aに対して正常にデータが記憶されたことを保証できる。このようにしてウェイト時間待機後、CPU31は、次のステップSP6に移る。   In step SP5, the CPU 31 waits for a wait time until the storage of data (data DA2, counter CA2, and checksum CSA2) for the two surfaces A2 is guaranteed. That is, the data writing process for the second surface A2 is normally completed at the time when the step SP4 and the step SP5 are performed. At this time, it can be guaranteed that the data is normally stored for the second surface 2A. After waiting for the wait time in this way, the CPU 31 proceeds to next step SP6.

ステップSP6においてCPU31は、ステータス領域SAのデータを読み出してRAM33上にコピーし、次のステップSP7に移る。   In step SP6, the CPU 31 reads the data in the status area SA, copies it to the RAM 33, and proceeds to the next step SP7.

ステップSP7においてCPU31は、RAM33上にコピーしたステータス領域SAの選択面フラグAFの値を「00H」から「FFH」に編集すると共に、編集した選択面フラグAFと、選択面フラグBF、CF、…とをもとにチェックサムCSを再計算して次のステップSP8に移る。   In step SP7, the CPU 31 edits the value of the selection plane flag AF of the status area SA copied onto the RAM 33 from “00H” to “FFH”, and edits the selected selection plane flag AF and the selection plane flags BF, CF,. Based on the above, the checksum CS is recalculated and the process proceeds to the next step SP8.

ステップSP8においてCPU31は、RAM33上で編集した選択面フラグAFと、選択面フラグBF、CF、…と、再計算したチェックサムCSとを、EEPROM35に供給してステータス領域SAに書き込ませ、次のステップSP9に移る。   In step SP8, the CPU 31 supplies the selection surface flag AF edited on the RAM 33, the selection surface flags BF, CF,..., And the recalculated checksum CS to the EEPROM 35 to be written in the status area SA. Control goes to step SP9.

ステップSP9においてCPU31は、ステータス領域SAに対するウェイト時間待機する。すなわちステータス領域SAに対するデータの書込処理も、このステップSP8とステップSP9とを経た時点で正常に終了したことになり、このときステータス領域SAに対して正常にデータが記憶されたことを保証できる。このようにしてウェイト時間待機後、CPU31は、次のステップSP10に移り、このデータ更新処理を終了する。   In step SP9, the CPU 31 waits for a wait time for the status area SA. In other words, the data writing process for the status area SA is also normally completed at the time of passing through step SP8 and step SP9, and at this time, it can be guaranteed that the data is normally stored in the status area SA. . After waiting for the wait time in this way, the CPU 31 proceeds to the next step SP10 and ends this data update process.

このようにこのデータ更新処理においては、データ領域Aの2面A2に更新後のデータを供給した後、ウェイト時間待機してから、更新後のデータを2面A2に記憶させたことを示す選択面フラグAFをステータス領域SAに記憶させるようにした。これによりステータス領域SAのチェックサムCSが正しければ、選択面フラグAFから選択面が2面A2であると判定し得ると共に、この2面A2に対して正常にデータが記憶されたことを保証できる。一方、ステータス領域SAのチェックサムCSが正しくなければ、ステータス領域SAに対するデータの書込途中でデータ更新処理が中断したことを意味し、選択面フラグAFからデータ領域Aの選択面を判定することはできないが、その場合の対策については後述する。   As described above, in this data update process, after the updated data is supplied to the second surface A2 of the data area A, the wait time is waited and then the updated data is stored in the second surface A2. The surface flag AF is stored in the status area SA. As a result, if the checksum CS of the status area SA is correct, it can be determined from the selection surface flag AF that the selected surface is the two surfaces A2, and it can be assured that data has been normally stored for the two surfaces A2. . On the other hand, if the checksum CS of the status area SA is not correct, it means that the data update process has been interrupted while data is being written to the status area SA, and the selection plane of the data area A is determined from the selection plane flag AF. However, countermeasures in that case will be described later.

(3)選択面判定処理
上述したように非接触型のICカード4においては、EEPROM35に対するデータ更新処理の途中で、電磁波の受信状態が悪化すること等により電源が瞬断される状況が想定し得、例えばステータス領域SAやデータ領域A、B、C、…の各面に対する書込処理の途中でデータ更新処理が中断された場合、ステータス領域SAのデータやデータ領域A、B、C、…の各面のデータが破壊される恐れがある。
(3) Selection surface determination process As described above, in the non-contact type IC card 4, it is assumed that the power supply is momentarily cut off during the data update process for the EEPROM 35 due to the deterioration of the electromagnetic wave reception state. For example, when the data update process is interrupted in the middle of the writing process for each surface of the status area SA and the data areas A, B, C,. There is a risk that the data on each side of this will be destroyed.

特にステータス領域SAのデータが破壊された場合、上述したように、選択面フラグAF、BF、CF、…からはデータ領域A、B、C、…それぞれの選択面を判定することができなくなる。   In particular, when the data in the status area SA is destroyed, as described above, the selection planes of the data areas A, B, C,... Cannot be determined from the selection plane flags AF, BF, CF,.

そこで本実施の形態のICカード4においては、電源投入時に、毎回ステータス領域SA及びデータ領域A、B、C、…の各面の状態を調べ、これらの状態に応じて、データ領域A、B、C、…それぞれの選択面を判定する選択面判定機能を有しており、以下、この選択面判定機能における処理(以下、これを選択面判定処理とも呼ぶ)の流れについて図6のフローチャートを用いて説明する。   Therefore, in the IC card 4 of the present embodiment, each time the status area SA and the data areas A, B, C,... Are checked each time the power is turned on, the data areas A, B are determined according to these states. , C,... Has a selection surface determination function for determining each selection surface, and the flow of processing in this selection surface determination function (hereinafter also referred to as selection surface determination processing) is shown in the flowchart of FIG. It explains using.

ICカード4のCPU31は、例えば電源が投入されると、この選択面判定処理手順RT2を開始してステップSP20に移る。ステップSP20においてCPU31は、ステータス領域SA及びデータ領域A、B、C、…の各面の状態を調べる。なお、ここでは、説明の便宜上、ステータス領域SAとデータ領域Aの1面A1及び2面A2の状態とを調べる場合を一例として説明する。   For example, when the power is turned on, the CPU 31 of the IC card 4 starts this selection surface determination processing procedure RT2 and proceeds to step SP20. In step SP20, the CPU 31 checks the status of each surface of the status area SA and the data areas A, B, C,. Here, for convenience of explanation, a case where the status area SA and the states of the first surface A1 and the second surface A2 of the data region A are examined will be described as an example.

すなわちCPU31は、このステップSP20において、ステータス領域SAの状態として選択面フラグAF、BF、CF、…の値とチェックサムCSとを調べ、またデータ領域Aの1面A1及び2面A2の状態としてデータDA1及びDA2の値とチェックサムCSA1及びCSA2とを調べる。   That is, in this step SP20, the CPU 31 examines the values of the selection plane flags AF, BF, CF,... And the checksum CS as the status of the status area SA, and sets the status of the first plane A1 and the second plane A2 of the data area A. The values of the data DA1 and DA2 and the checksums CSA1 and CSA2 are checked.

そしてCPU31は、選択面フラグAF、BF、CF、…の値が全て「0」である場合(すなわちまだ何も記憶されていない状態)、及びステータス領域SAのチェックサムCSが正しい場合に、このステータス領域SAの状態を「有効」とし、このチェックサムCSが正しくない場合に、このステータス領域SAの状態を「破壊」とする。   When the values of the selection plane flags AF, BF, CF,... Are all “0” (that is, nothing is stored yet) and when the checksum CS of the status area SA is correct, the CPU 31 When the status of the status area SA is “valid” and the checksum CS is not correct, the status of the status area SA is “destructed”.

またCPU31は、1面A1のデータDA1の値が全て「0」である場合(すなわちまだ何も記憶されていない状態)に1面A1の状態を「未定義」とし、1面A1のデータDA1の値に「0」以外の値が存在し、かつチェックサムCSA1が正しい場合に1面A1の状態を「有効」とし、チェックサムCSA1が正しくない場合に1面A1の状態を「破壊」とする。さらにCPU31は、2面A2の状態(「未定義」、「有効」、「破壊」)も1面A1と同様に調べる。   Further, the CPU 31 sets the state of the first surface A1 to “undefined” when the values of the data DA1 of the first surface A1 are all “0” (that is, a state where nothing is stored yet), and the data DA1 of the first surface A1. If there is a value other than “0” and the checksum CSA1 is correct, the state of the first surface A1 is “valid”, and if the checksum CSA1 is incorrect, the state of the first surface A1 is “destructed”. To do. Further, the CPU 31 checks the state of the second surface A2 (“undefined”, “valid”, “destruction”) in the same manner as the first surface A1.

このようにしてこのステップSP20でステータス領域SAとデータ領域Aの1面A1及び2面A2の状態を調べた後、CPU31は、次のステップSP21に移る。   After checking the statuses of the status area SA and the data area A on the first surface A1 and the second surface A2 in this step SP20, the CPU 31 proceeds to the next step SP21.

ステップSP21においてCPU31は、ステータス領域SAの状態が「破壊」であるか否かを判定する。ここで肯定結果を得ると、このことは、ステータス領域SAのデータが破壊されていることを表しており、このときCPU31はステップSP22に移る。   In step SP21, the CPU 31 determines whether or not the status area SA is in a “destroyed” state. If an affirmative result is obtained here, this indicates that the data in the status area SA has been destroyed. At this time, the CPU 31 proceeds to step SP22.

ステップSP22においてCPU31は、データ領域Aの1面A1及び2面A2のうち少なくともどちらか一方の状態が「破壊」であるか否かを判定する。ここで肯定結果を得ると、このことはステータス領域SAのデータが破壊され、かつデータ領域Aのデータも破壊されていることを表しており、このときCPU31はステップSP23に移る。   In step SP22, the CPU 31 determines whether at least one of the first surface A1 and the second surface A2 of the data area A is “destructive”. If a positive result is obtained here, this indicates that the data in the status area SA has been destroyed and the data in the data area A has also been destroyed. At this time, the CPU 31 proceeds to step SP23.

ステップSP23においてCPU31は、ステータス領域SAとデータ領域Aの両方のデータが破壊されていることから、例えば単に上述のデータ更新処理が中断されたのではなく、EEPROM35の復旧が困難な状態であると判断して選択面を判定せずに、例えばこのことをリーダライタ3に通知し、ステップSP24に移ってこの選択面判定処理を終了する。因みに、このようにステータス領域SAとデータ領域Aの両方の状態が「破壊」である場合として想定されるのは、例えばデータが改竄された場合や、EEPROM35に対する書込回数が上限を超えて寿命に達している場合である。   In step SP23, since both the data in the status area SA and the data area A are destroyed, the CPU 31 does not simply interrupt the data update process described above, for example, and it is difficult to recover the EEPROM 35. For example, this is notified to the reader / writer 3 without judging the selected surface and the process proceeds to step SP24, where the selected surface determining process is terminated. Incidentally, it is assumed that the status area SA and the data area A are both “destroyed” as described above, for example, when the data is falsified or when the number of times of writing to the EEPROM 35 exceeds the upper limit. This is the case.

これに対してステップSP22で否定結果を得ると、このことはデータ領域Aの1面A1及び2面A2の状態がそれぞれ「有効」又は「未定義」のどちらかであること、すなわちステータス領域SAのデータは破壊されているもののデータ領域Aのデータは破壊されていないことを表しており、このときCPU31はステップSP25に移る。   On the other hand, if a negative result is obtained in step SP22, this means that the states of the first surface A1 and the second surface A2 of the data area A are either “valid” or “undefined”, that is, the status area SA. This indicates that the data in the data area A is not destroyed, but the CPU 31 proceeds to step SP25.

ステップSP25においてCPU31は、1面A1及び2面A2の状態がどちらも「有効」であるか否かを判定する。ここで肯定結果を得ると、このことは、ステータス領域SAのデータは破壊されているもののデータ領域Aのデータは破壊されておらず、さらに1面A1及び2面A2のそれぞれに「0」以外の値を有するデータDA1及びDA2が正常に記憶され、カウンタCA1及びCA2が正常にインクリメントされていることを表しており、このときCPU31はステップSP26に移る。因みに、このようにステータス領域SAの状態が「破壊」であるものの、データ領域Aの両面の状態が「有効」である場合として想定されるのは、例えばステータス領域SAに対してデータを書き込んでいる途中で上述のデータ更新処理が電源の瞬断等により中断した場合である。   In step SP25, the CPU 31 determines whether or not the states of the first surface A1 and the second surface A2 are both “valid”. If an affirmative result is obtained here, this means that the data in the status area SA is destroyed but the data in the data area A is not destroyed, and each of the first face A1 and the second face A2 is other than “0”. This indicates that the data DA1 and DA2 having the values are normally stored and the counters CA1 and CA2 are normally incremented. At this time, the CPU 31 proceeds to step SP26. Incidentally, it is assumed that the status area SA is “destructed” as described above, but the status of both sides of the data area A is “valid”, for example, data is written to the status area SA. This is a case where the above-described data update process is interrupted due to an instantaneous power interruption or the like.

ステップSP26においてCPU31は、1面A1のカウンタCA1と2面A2のカウンタCA2との値を比較し、この値が大きい方の面を選択面と判定して次のステップSP27に移る。   In step SP26, the CPU 31 compares the values of the counter CA1 of the first surface A1 and the counter CA2 of the second surface A2, determines that the surface having the larger value is the selected surface, and proceeds to the next step SP27.

これに対してステップSP25で否定結果を得ると、このことはデータ領域Aの1面A1及び2面A2の状態のうち少なくともどちらか一方が「未定義」であることを表しており、このときCPU31はステップSP28に移る。   On the other hand, if a negative result is obtained in step SP25, this indicates that at least one of the states of the first surface A1 and the second surface A2 of the data area A is “undefined”. The CPU 31 moves to step SP28.

ステップSP28においてCPU31は、1面A1及び2面A2の状態がどちらも「未定義」であるか否かを判定する。ここで肯定結果を得ると、このことは1面A1及び2面A2のどちらにもデータが記憶されていないことを表しており、このときCPU31は、ステップSP29に移る。   In step SP28, the CPU 31 determines whether or not the states of the first surface A1 and the second surface A2 are both “undefined”. If an affirmative result is obtained here, this means that data is not stored in either the first side A1 or the second side A2, and the CPU 31 proceeds to step SP29.

ステップSP29においてCPU31は、データ領域Aのどちらか一方の面(例えば1面A1)を選択面と判定し、次のステップSP27に移る。なお、ここでは一例として1面A1を選択面と判定したが、2面A2を選択面としてもよい。因みに、このようにステータス領域SAの状態が「破壊」であるものの、データ領域Aの両面の状態が「未定義」である場合として想定されるのは、例えばデータ領域BやCに対するデータ更新処理が電源の瞬断等により中断した場合である。   In step SP29, the CPU 31 determines that one of the surfaces of the data area A (for example, one surface A1) is the selected surface, and proceeds to the next step SP27. Here, as an example, the first surface A1 is determined as the selection surface, but the second surface A2 may be the selection surface. Incidentally, it is assumed that the state of the status area SA is “destructed”, but the state of both sides of the data area A is “undefined”, for example, data update processing for the data areas B and C, for example. Is interrupted due to a momentary power interruption or the like.

これに対してステップSP28で否定結果を得ると、このことはデータ領域Aの1面A1及び2面A2の状態の一方が「未定義」であり他方が「有効」であることを表しており、このときCPU31はステップSP30に移る。因みに、このようにステータス領域SAの状態が「破壊」であるものの、データ領域Aの一方の面の状態が「有効」であり他方の面の状態が「未定義」である場合として想定されるのは、例えばステータス領域SAに対してデータを書き込んでいる途中で上述のデータ更新処理が電源の瞬断等により中断した場合である。   On the other hand, if a negative result is obtained in step SP28, this indicates that one of the states A1 and A2 of the data area A is “undefined” and the other is “valid”. At this time, the CPU 31 proceeds to step SP30. Incidentally, it is assumed that the state of the status area SA is “destructive” as described above, but the state of one side of the data area A is “valid” and the state of the other side is “undefined”. This is the case, for example, when the above-described data update processing is interrupted due to a momentary power interruption or the like while data is being written to the status area SA.

ステップSP30においてCPU31は、1面A1及び2面A2のうち状態が「有効」である方を選択面と判定して次のステップSP27に移る。   In step SP30, the CPU 31 determines that one of the first surface A1 and the second surface A2 whose state is “valid” is the selected surface, and proceeds to the next step SP27.

ステップSP27においてCPU31は、選択面が1面A1であるのかあるいは2面A2であるのかに応じてステータス領域SAの選択面フラグAFを編集すると共に、同様に判定したデータ領域B、C、…の選択面に応じて選択面フラグBF、CF、…を編集し、チェックサムCSを再計算してステータス領域SAのデータを修復し、次のステップSP24に移ってこの選択面判定処理を終了する。   In step SP27, the CPU 31 edits the selection plane flag AF of the status area SA according to whether the selection plane is the first plane A1 or the second plane A2, and the data areas B, C,. In accordance with the selected surface, the selected surface flags BF, CF,... Are edited, the checksum CS is recalculated to restore the data in the status area SA, and the process proceeds to the next step SP24 to end the selected surface determination process.

このようにステップSP21で否定結果を得た場合(すなわちステータス領域SAのデータが破壊されている場合)には、データ領域Aのデータが破壊されていなければ、当該データ領域Aの1面A1及び2面A2の状態に応じて選択面を判定すると共に、その判定結果に応じてステータス領域SAのデータを修復するようになされている。   As described above, when a negative result is obtained in step SP21 (that is, when the data in the status area SA is destroyed), if the data in the data area A is not destroyed, one side A1 of the data area A and The selected surface is determined according to the state of the two surfaces A2, and the data of the status area SA is repaired according to the determination result.

一方、ステップSP21で肯定結果を得ると、このことは、ステータス領域SAのデータが破壊されていないことを表しており、このときCPU31はステップSP31に移る。   On the other hand, if a positive result is obtained in step SP21, this indicates that the data in the status area SA has not been destroyed. At this time, the CPU 31 proceeds to step SP31.

ステップSP31においてCPU31は、ステータス領域SAの選択面フラグAFの値と、データ領域Aの1面A1及び2面A2の状態とに応じて選択面を判定する。ここで、この場合の選択面の判定基準を図7の表に示す。   In step SP31, the CPU 31 determines the selected surface according to the value of the selected surface flag AF in the status area SA and the states of the first surface A1 and the second surface A2 in the data region A. Here, the criterion of the selection surface in this case is shown in the table of FIG.

すなわち選択面フラグAFの値が「00H」であり選択面として1面A1を示している場合、CPU31は、1面A1の状態が「有効」又は「未定義」(CASE1、2、3、7、8、9)であれば、選択面フラグAFの示す通り選択面を1面A1と判定する。また1面A1の状態が「破壊」(CASE4、5、6)であれば、選択面フラグAFが1面A1を示しているにもかかわらず1面A1のデータが破壊されており、単にデータ更新処理が中断された場合であるとは考えにくいので、CPU31は選択面を判定せずに、例えばこのことをリーダライタ3に通知する。   That is, when the value of the selection surface flag AF is “00H” and the first surface A1 is indicated as the selection surface, the CPU 31 determines that the state of the first surface A1 is “valid” or “undefined” (CASE 1, 2, 3, 7 , 8, 9), the selected surface is determined as one surface A1 as indicated by the selected surface flag AF. If the state of the first surface A1 is “destructed” (CASE 4, 5, 6), the data on the first surface A1 is destroyed even though the selection surface flag AF indicates the first surface A1, and the data is simply the data. Since it is unlikely that the update process is interrupted, the CPU 31 notifies the reader / writer 3 of this, for example, without determining the selection surface.

またCPU31は、選択面フラグAFの値が「FFH」であり選択面として2面A2を示している場合も、選択面フラグAFが1面A1を示している場合と同様に、2面A2の状態が「有効」又は「未定義」(CASE10、12、13、15、16、18)であれば、選択面フラグAFの示す通り選択面を2面A2と判定し、2面A2の状態が「破壊」(CASE11、14、17)であれば、選択面を判定せずに、例えばこのことをリーダライタ3に通知する。   In addition, when the value of the selection surface flag AF is “FFH” and the two surfaces A2 are indicated as the selection surface, the CPU 31 indicates that the selection surface flag AF indicates the first surface A1 as well as the two surfaces A2. If the state is “valid” or “undefined” (CASE 10, 12, 13, 15, 16, 18), the selected surface is determined to be the second surface A2 as indicated by the selection surface flag AF, and the state of the second surface A2 is If it is “destruction” (CASE 11, 14, 17), for example, this is notified to the reader / writer 3 without determining the selected surface.

このようにしてCPU31は、ステータス領域SAの状態が「有効」である場合の選択面を判定した後、次のステップSP24に移ってこの選択面判定処理を終了する。   In this way, after determining the selection surface when the status area SA is “valid”, the CPU 31 proceeds to the next step SP24 and ends the selection surface determination processing.

かくしてCPU31は、電源の瞬断等により例えばステータス領域SAの書込処理の途中でデータ更新処理が中断されて、ステータス領域SAのデータが破壊されたとしても、残ったデータ領域Aの1面A1及び2面A2のデータをもとに選択面を判定することができ、さらにこの判定結果をもとにステータス領域SAのデータを復旧することもできる。   Thus, even if the data update process is interrupted in the middle of the writing process of the status area SA, for example, due to a momentary power interruption, etc., and the data in the status area SA is destroyed, one surface A1 of the remaining data area A1. The selected surface can be determined based on the data of the second surface A2, and the data of the status area SA can be restored based on the determination result.

なお、ここではデータ領域Aの1面A1及び2面A2に対するデータ更新処理及び選択面判定処理について述べたが、実際には、データ領域B、C、…に対しても、同様のデータ更新処理及び選択面判定処理を実行するようになされている。   Although the data update processing and selection surface determination processing for the first surface A1 and the second surface A2 of the data area A have been described here, actually, the same data update processing is performed for the data areas B, C,. In addition, a selection surface determination process is executed.

ここで、実際に上述のデータ更新処理(図5)の途中で電源の瞬断等が起こることによりこのデータ更新処理が中断された場合について説明する。   Here, a case where the data update process is interrupted due to an instantaneous power interruption or the like during the above-described data update process (FIG. 5) will be described.

まず図5に示したステップSP1のステータス領域SAのデータを読み出している途中で、データ更新処理が中断した場合、このときまだEEPROM35に対する書込処理が開始されていないので、ステータス領域SA、及びデータ領域Aのデータ破壊は起こらず、再度電源投入されたときに、データ更新処理実行前の状態に戻ることができる。   First, when the data update process is interrupted while the data in the status area SA in step SP1 shown in FIG. 5 is being read, the writing process to the EEPROM 35 has not started yet, so the status area SA and the data Data destruction of the area A does not occur, and when the power is turned on again, it can return to the state before the data update process is executed.

またステップSP2のデータ領域Aの1面A1のデータを読み出している途中や、ステップSP3のRAM33上にコピーした1面A1のデータの編集途中で、データ更新処理が中断した場合も、このときまだEEPROM35に対する書込処理が開始されていないので、ステータス領域SA、及びデータ領域Aのデータ破壊は起こらず、再度電源投入されたときに、データ更新処理実行前の状態に戻ることができる。   Even if the data update process is interrupted during the reading of the data on the first surface A1 in the data area A in step SP2 or the editing of the data on the first surface A1 copied to the RAM 33 in step SP3, the data update process is still in this state. Since the writing process to the EEPROM 35 is not started, the data in the status area SA and the data area A is not destroyed, and when the power is turned on again, the state before executing the data update process can be restored.

さらにステップSP4のデータ領域Aの2面A2に対してデータを供給して書き込ませている途中で、データ更新処理が中断した場合、このとき2面A2に記憶させたデータは破壊されている可能性があるものの、1面A1及びステータス領域SAにはデータ更新処理実行前のデータが保持されているので、例えば再度電源投入されたときに、選択面判定処理でステータス領域SAの選択面フラグAFをもとに1面A1を選択面と判定し得、これによりデータ更新処理実行前の状態に戻ることができる。   Further, if the data update process is interrupted while data is being supplied and written to the two surfaces A2 of the data area A in step SP4, the data stored in the two surfaces A2 at this time may be destroyed. However, since the data before execution of the data update process is held in the one plane A1 and the status area SA, for example, when the power is turned on again, the selection plane flag AF in the status area SA is selected in the selection plane determination process. Based on the above, it is possible to determine that the first surface A1 is the selected surface, thereby returning to the state before the data update processing is executed.

さらにステップSP5の2面A2のウェイト時間待機している途中で、データ更新処理が中断した場合、このとき2面A2に対するデータの書込処理がまだ完全に終了していないため、例えば再度電源投入されたときに、最初から2面A2のデータが破壊されている場合や、しばらくこのデータが正常に読み出せるもののその後このデータの値が変化して破壊される場合がある。しかしながらこの場合も、ステータス領域SAにはデータ更新処理実行前のデータとして1面A1を示す選択面フラグAFが保持されているので、再度電源投入されたときに、選択面判定処理でこの選択面フラグAFをもとに1面A1を選択面と判定し得、これにより2面A2のデータを使用せずに、データ更新処理実行前の状態に戻ることができる。   Further, if the data update process is interrupted while waiting for the wait time for the second side A2 in step SP5, the data writing process for the second side A2 has not been completely completed at this time. When this is done, there is a case where the data on the second surface A2 has been destroyed from the beginning, or the data can be read normally for a while, but then the value of this data changes and is destroyed. However, in this case as well, since the selection surface flag AF indicating the first surface A1 is held in the status area SA as data before execution of the data update processing, when the power is turned on again, this selected surface is determined by the selection surface determination processing. Based on the flag AF, it is possible to determine the first surface A1 as the selected surface, thereby returning to the state before executing the data update process without using the data of the second surface A2.

さらにステップSP6のステータス領域SAのデータを読み出している途中や、ステップSP7でRAM33上にコピーしたステータス領域SAのデータの編集途中で、データ更新処理が中断した場合、このときEEPROM35に対する書込処理は実行されていないので、ステータス領域SA、及びデータ領域Aのデータ破壊は起こらない。そしてこのときステータス領域SAには、データ更新処理実行前のデータとして1面A1を示す選択面フラグAFが保持されているので、再度電源投入されたときに、選択面判定処理で1面A1を選択面と判定し得、データ更新処理実行前の状態に戻ることができる。   Further, when the data update process is interrupted while the data in the status area SA in step SP6 is being read or during the editing of the data in the status area SA copied to the RAM 33 in step SP7, the writing process to the EEPROM 35 is performed at this time. Since it is not executed, data destruction of the status area SA and the data area A does not occur. At this time, since the selection surface flag AF indicating the first surface A1 is held in the status area SA as data before execution of the data update processing, when the power is turned on again, the first surface A1 is selected by the selection surface determination processing. It can be determined that the selected surface, and the state before the execution of the data update process can be returned.

さらにステップSP8のステータス領域SAに対してデータを供給して書き込ませている途中で、データ更新処理が中断した場合、このときステータス領域SAに記憶させたデータは破壊されている可能性があるものの、データ領域Aの1面A1及び2面A2には正常に記憶されたデータが保持されている。従って例えば再度電源投入されたときに、選択面判定処理で1面A1及び2面A2のカウンタCA1及びCA2の値をもとに選択面(この場合2面A2)を判定し得、さらにこの判定結果をもとにステータス領域SAのデータを修復することで、データ更新処理が正常に終了した状態と同じ状態にすることができる。   Furthermore, if the data update process is interrupted while data is being supplied and written to the status area SA in step SP8, the data stored in the status area SA at this time may be destroyed. The first and second surfaces A1 and A2 of the data area A hold normally stored data. Therefore, for example, when the power is turned on again, the selected surface (in this case, the second surface A2) can be determined based on the values of the counters CA1 and CA2 of the first surface A1 and the second surface A2 in the selected surface determination process. By repairing the data in the status area SA based on the result, it is possible to make the data update process the same as the state where the data update process is normally completed.

さらにステップSP9のステータス領域SAの書込ウェイト時間待機している途中で、データ更新処理が中断した場合、このときステータス領域SAに対するデータの書込処理がまだ完全に終了していないため、例えば再度電源投入されたときに、最初からステータス領域SAのデータが破壊されている場合や、しばらくこのデータが正常に読み出せるもののその後このデータの値が変化して破壊される場合がある。しかしながらステータス領域SAのデータが正常に読み出せるときには、このステータス領域SAの選択面フラグAFから選択面を判定し得、その後ステータス領域SAのデータが破壊されたときには、1面A1及び2面A2のカウンタCA1及びCA2の値をもとに選択面(この場合2面A2)を判定し得、さらにこの判定結果をもとにステータス領域SAのデータを修復することで、データ更新処理が正常に終了した状態と同じ状態にすることができる。   Further, if the data update process is interrupted while waiting for the write wait time of the status area SA in step SP9, the data write process for the status area SA has not been completely completed at this time, so for example again When the power is turned on, the data in the status area SA may be destroyed from the beginning, or the data can be normally read for a while, but then the value of this data is changed and destroyed. However, when the data of the status area SA can be read normally, the selected surface can be determined from the selection surface flag AF of the status area SA. After that, when the data of the status area SA is destroyed, the first surface A1 and the second surface A2 The selected surface (2 surfaces A2 in this case) can be determined based on the values of the counters CA1 and CA2, and the data update process is normally completed by restoring the data in the status area SA based on the determination result. It is possible to make it the same state as the above.

このようにCPU31は、データ更新処理が中断されることによりステータス領域SAのデータやデータ領域Aの各面のデータのいずれかが破壊されても、残ったデータをもとに、EEPROM35のデータを復旧させることができる。   In this way, even if either the data in the status area SA or the data on each side of the data area A is destroyed due to the interruption of the data update process, the CPU 31 uses the remaining data to store the data in the EEPROM 35. It can be restored.

(4)動作及び効果
以上の構成において、ICカード4のCPU31は、例えばデータ領域Aの1面A1のデータを更新する際、まずこの1面A1のデータをRAM33上に読み出して更新し、この更新したデータをデータ領域Aの2面A2に供給して書き込ませる。
(4) Operation and Effect In the above configuration, when the CPU 31 of the IC card 4 updates the data on the first surface A1 of the data area A, for example, the data on the first surface A1 is first read and updated on the RAM 33. The updated data is supplied to and written on the two surfaces A2 of the data area A.

そしてCPU31は、2面A2におけるウェイト時間待機した後、ステータス領域SAのデータをRAM33上に読み出して選択面フラグAFを、1面A1を示す「00H」から2面A2を示す「FFH」に更新し、この更新したデータをステータス領域SAに供給して書き込ませる。   The CPU 31 waits for the wait time on the second surface A2, and then reads the data in the status area SA onto the RAM 33 and updates the selection surface flag AF from “00H” indicating the first surface A1 to “FFH” indicating the second surface A2. Then, the updated data is supplied to the status area SA for writing.

このようにCPU31は、データ領域Aの2面A2に更新したデータを供給した後、ウェイト時間待機してデータを完全に記憶させてから、この更新したデータを2面A2に正常に記憶させたことを示す選択面フラグAFをステータス領域SAに書き込むようにした。これによりステータス領域SAのデータが破壊されていなければ、選択面フラグAFの示す2面A2が、更新したデータが正常に記憶されている面であると保証し得る。   As described above, after supplying the updated data to the second surface A2 of the data area A, the CPU 31 waits for the wait time to completely store the data, and then stores the updated data normally on the second surface A2. The selected surface flag AF indicating that the state is written in the status area SA. As a result, if the data in the status area SA is not destroyed, it can be assured that the two surfaces A2 indicated by the selected surface flag AF are surfaces on which the updated data is normally stored.

またCPU31は、例えば電源投入時、ステータス領域SAの状態と、データ領域Aの1面A1及び2面A2の状態とを調べる。つまりCPU31は、ステータス領域SAの選択面フラグAF、BF、CF、…の値が全て「0」である場合及びステータス領域SAのチェックサムCSが正しい場合に、このステータス領域SAの状態を「有効」とし、このチェックサムCSが正しくない場合に、このステータス領域SAの状態を「破壊」とする。またCPU31は、1面A1のデータDA1の値が全て「0」である場合に1面A1の状態を「未定義」とし、1面A1のデータDA1の値に「0」以外の値が存在しかつチェックサムCSA1が正しい場合に1面A1の状態を「有効」とし、チェックサムCSA1が正しくない場合に1面A1の状態を「破壊」とする。さらにCPU31は、同様に2面A2の状態(「未定義」、「有効」、「破壊」)も調べる。   For example, when the power is turned on, the CPU 31 checks the status of the status area SA and the status of the first and second planes A1 and A2 of the data area A. That is, the CPU 31 changes the status of the status area SA to “valid” when the selection plane flags AF, BF, CF,... Of the status area SA are all “0” and when the checksum CS of the status area SA is correct. If the checksum CS is not correct, the status area SA is set to “destructed”. Further, the CPU 31 sets the state of the first screen A1 to “undefined” when all the values of the data DA1 of the first screen A1 are “0”, and the value of the data DA1 of the first screen A1 has a value other than “0”. If the checksum CSA1 is correct, the state of the first surface A1 is “valid”, and if the checksum CSA1 is not correct, the state of the first surface A1 is “destructed”. Further, the CPU 31 similarly checks the state (“undefined”, “valid”, “destructed”) of the two surfaces A2.

そしてCPU31は、これらの状態に応じて1面A1及び2面A2のどちらが、更新したデータが正常に記憶されている面(すなわち選択面)であるのかを判定する。   Then, the CPU 31 determines which of the first surface A1 and the second surface A2 is a surface in which updated data is normally stored (that is, a selected surface) according to these states.

これによりCPU31は、電源の瞬断等により例えばステータス領域SAの書込処理の途中でデータ更新処理が中断されて、ステータス領域SAのデータが破壊されたとしても、残ったデータ領域Aの1面A1及び2面A2の状態をもとに選択面を判定することができ、さらにこの判定結果をもとにステータス領域SAのデータを復旧することもできる。   Thus, even if the data update process is interrupted in the middle of the writing process of the status area SA, for example, due to a momentary power interruption, etc., and the data in the status area SA is destroyed, one surface of the remaining data area A The selected surface can be determined based on the states of A1 and 2 surfaces A2, and the data of the status area SA can be restored based on the determination result.

以上の構成によれば、ICカード4のCPU31は、データ領域Aの1面A1又は2面A2に対して更新後のデータを供給した後、ウェイト時間待機してデータを完全に記憶させてから、1面A1又は2面A2のどちらに更新後のデータを記憶させたのかを判定するための選択面フラグAFをステータス領域SAに書き込むようにしたことにより、この選択面フラグAFの示す面に記憶されているデータが、正常に記憶されている更新後のデータであると保証し得るので、常に正常に記憶されている新しいデータを用いることができ、かくしてデータの整合性を一段と確実に維持することができる。   According to the above configuration, after the CPU 31 of the IC card 4 supplies the updated data to the first surface A1 or the second surface A2 of the data area A and waits for the wait time to completely store the data. Since the selection plane flag AF for determining whether the updated data is stored in the first plane A1 or the second plane A2 is written in the status area SA, the selection plane flag AF is displayed on the plane indicated by the selection plane flag AF. It can be guaranteed that the stored data is the updated data that is stored normally, so that new data that is stored normally can be used at all times, thus further ensuring the integrity of the data. can do.

(5)他の実施の形態
なお上述の実施の形態においては、不揮発性メモリとしてEEPROM15及び35を用いるようにした場合について述べたが、本発明はこれに限らず、フラッシュメモリや、MRAM(Magnetic RAM)、FeRAM(Ferroelectric RAM)等、この他種々の不揮発性メモリを用いるようにしてもよい。
(5) Other Embodiments In the above-described embodiment, the case where the EEPROMs 15 and 35 are used as the nonvolatile memories has been described. However, the present invention is not limited to this, and the present invention is not limited to this. Various other nonvolatile memories such as RAM) and FeRAM (Ferroelectric RAM) may be used.

また上述の実施の形態においては、EEPROM15及び35を有するリーダライタ3及びICカード4に本発明を適用するようにした場合について述べたが、本発明はこれに限らず、不揮発性メモリを有する種々の装置(例えば携帯電話機や、ノートブック型パーソナルコンピュータ、PDA等)や、ICチップ等に適用するようにしてもよい。   In the above-described embodiment, the case where the present invention is applied to the reader / writer 3 and the IC card 4 having the EEPROMs 15 and 35 has been described. However, the present invention is not limited to this, and various types of nonvolatile memories are provided. The present invention may be applied to the above devices (for example, cellular phones, notebook personal computers, PDAs, etc.), IC chips, and the like.

さらに上述の実施の形態においては、ステータス領域SAと、データ領域A、B、C、…それぞれの各面に1ページずつ割り当てた場合について述べたが、本発明はこれに限らず、これらに複数のページを割り当てるようにしてもよい。   Further, in the above-described embodiment, the case where one page is assigned to each surface of the status area SA and the data areas A, B, C,... Is not limited to this, and the present invention is not limited thereto. You may make it allocate this page.

さらに上述の実施の形態においては、ステータス領域SAに第1の判定データとしての選択面フラグAF、BF、CF、…を書き込んで記憶させるようにした場合について述べたが、本発明はこれに限らず、各データ領域のどちらの面を選択面とするのかを示すデータであればよい。   Further, in the above-described embodiment, the case where the selection plane flags AF, BF, CF,... As the first determination data are written and stored in the status area SA has been described, but the present invention is not limited to this. Instead, any data may be used as long as it indicates which surface of each data area is the selected surface.

さらに上述の実施の形態においては、ステータス領域SAに書き込まれたデータや、データ領域A、B、C、…の各面に書き込まれたデータの誤りを検出するための誤り検出データとしてチェックサムを用いるようにした場合について述べたが、本発明はこれに限らず、CRCやハッシュ関数等、この他種々の誤り検出データを用いるようにしてもよい。   Further, in the above-described embodiment, a checksum is used as error detection data for detecting errors in data written in the status area SA and data written in each surface of the data areas A, B, C,. Although the case where it was made to use was described, this invention is not restricted to this, You may make it use other various error detection data, such as CRC and a hash function.

さらに上述の実施の形態においては、データ領域Aの1面A1及び2面A2に第2の判定データとしてのカウンタCA1及びカウンタCA2を書き込んで記憶させるようにした場合について述べたが、本発明はこれに限らず、各データ領域のどちらの面を選択面とするのかを示すデータであればよい。   Further, in the above-described embodiment, the case where the counter CA1 and the counter CA2 as the second determination data are written and stored in the first surface A1 and the second surface A2 of the data area A has been described. However, the present invention is not limited to this, and any data may be used as long as it indicates which surface of each data area is the selected surface.

さらに上述の実施の形態においては、電源投入時に選択面判定処理を実行するようにした場合について述べたが、本発明はこれに限らず、例えば、データ更新処理の実行前に毎回選択面判定処理を実行するようにしてもよい。   Furthermore, in the above-described embodiment, the case where the selection surface determination process is executed when the power is turned on has been described. However, the present invention is not limited to this. For example, the selection surface determination process is performed every time before the data update process is executed. May be executed.

さらに上述の実施の形態においては、第1の記憶領域としての1面A1、B1、C1、…、第2の記憶領域としての2面A2、B2、C2、…、及び第3の記憶領域としてのステータス領域SAを有する記憶部としてのEEPROM35や、記憶制御手段、判定手段及び修復手段としてのCPU31により半導体集積回路としてのICチップ30を構成するようにした場合について述べたが、本発明はこれに限らず、この他種々の構成を用いるようにしてもよい。   Further, in the above-described embodiment, the first storage area A1, B1, C1,..., The second storage area A2, B2, C2,..., And the third storage area. The case where the EEPROM 35 as the storage unit having the status area SA and the CPU 31 as the storage control means, the determination means, and the repair means constitute the IC chip 30 as the semiconductor integrated circuit has been described. Not limited to this, various other configurations may be used.

さらに上述の実施の形態においては、外部装置としてのリーダライタ3と通信する通信手段としてのリーダライタ通信部38や、第1の記憶領域としての1面A1、B1、C1、…、第2の記憶領域としての2面A2、B2、C2、…、及び第3の記憶領域としてのステータス領域SAを有する記憶部としてのEEPROM35や、記憶制御手段、判定手段及び修復手段としてのCPU31によりデータ通信装置としてのICカード4を構成するようにした場合について述べたが、本発明はこれに限らず、この他種々の構成を用いるようにしてもよい。   Further, in the above-described embodiment, the reader / writer communication unit 38 as a communication unit that communicates with the reader / writer 3 as an external device, and the first surface A1, B1, C1,. The data communication device includes the EEPROM 35 as the storage unit having the two surfaces A2, B2, C2,... As the storage area and the status area SA as the third storage area, and the CPU 31 as the storage control means, determination means, and restoration means. However, the present invention is not limited to this, and various other configurations may be used.

さらに本発明はデータ通信装置としてのリーダライタ3にも適用できるので、この場合、外部装置としてのコントローラ2やICカード4と通信する通信手段としてコントローラ通信部19及びICカード通信部20を用いると共に、半導体集積回路としてのICチップ10内に設けられた第1の記憶領域としての1面A1、B1、C1、…、第2の記憶領域としての2面A2、B2、C2、…、及び第3の記憶領域としてのステータス領域SAを有する記憶部としてEEPROM15を用い、記憶制御手段、判定手段及び修復手段としてCPU11を用いるようにしてもよく、またこの他種々の構成を用いるようにしてもよい。   Further, the present invention can be applied to the reader / writer 3 as a data communication device. In this case, the controller communication unit 19 and the IC card communication unit 20 are used as communication means for communicating with the controller 2 and the IC card 4 as external devices. , One surface A1, B1, C1,... As a first storage area provided in an IC chip 10 as a semiconductor integrated circuit, two surfaces A2, B2, C2,. The EEPROM 15 may be used as the storage unit having the status area SA as the third storage area, and the CPU 11 may be used as the storage control unit, the determination unit, and the restoration unit, and various other configurations may be used. .

本発明は、複数の記憶領域を用いてデータの書き替えを行うデータ記憶装置において広く利用できる。   The present invention can be widely used in data storage devices that rewrite data using a plurality of storage areas.

本発明によるデータ通信システムの構成を示す略線図である。It is a basic diagram which shows the structure of the data communication system by this invention. EEPROMのメモリマップ構成を示す略線図である。It is a basic diagram which shows the memory map structure of EEPROM. ステータス領域の構成を示す略線図である。It is a basic diagram which shows the structure of a status area | region. データ領域の構成を示す略線図である。It is a basic diagram which shows the structure of a data area. データ更新処理手順を示すフローチャートである。It is a flowchart which shows a data update process procedure. 選択面判定処理手順を示すフローチャートである。It is a flowchart which shows the selection surface determination processing procedure. 選択面の判定基準を示す略線図である。It is a basic diagram which shows the criteria of a selection surface.

符号の説明Explanation of symbols

1……データ通信システム、2……コントローラ、3……リーダライタ、4……ICカード、10、30……ICチップ、11、31……CPU、12、32……ROM、13、33……RAM、15、35……EEPROM、A、B、C……データ領域、A1、B1、C1……1面、A2、B2、C2……2面、AF、BF、CF……選択面フラグ、CA1、CA2……カウンタ、CS、CSA1、CSA2……チェックサム、DA1、DA2……データ、SA……ステータス領域。
DESCRIPTION OF SYMBOLS 1 ... Data communication system, 2 ... Controller, 3 ... Reader / writer, 4 ... IC card, 10, 30 ... IC chip, 11, 31 ... CPU, 12, 32 ... ROM, 13, 33 ... ... RAM, 15, 35 ... EEPROM, A, B, C ... Data area, A1, B1, C1 ... 1 side, A2, B2, C2 ... 2 side, AF, BF, CF ... Selected side flag , CA1, CA2 ... counter, CS, CSA1, CSA2 ... checksum, DA1, DA2 ... data, SA ... status area.

Claims (6)

データを記憶するための複数の記憶領域を有する記憶部と、
更新前のデータを上記記憶部の第1の記憶領域に記憶させている場合には、更新後のデータを上記記憶部の第2の記憶領域に供給し、更新前のデータを当該第2の記憶領域に記憶させている場合には、更新後のデータを上記第1の記憶領域に供給して記憶させる記憶制御手段と
を具え、
上記記憶制御手段は、
上記第1の記憶領域又は上記第2の記憶領域に上記更新後のデータを供給して完全に記憶させた後に、上記第1の記憶領域及び上記第2の記憶領域のどちらに更新後のデータを記憶させたのかを判定するための第1の判定データを上記記憶部の第3の記憶領域に供給して記憶させ
さらに上記記憶制御手段は、
上記第1の記憶領域及び上記第2の記憶領域に対して、当該第1の記憶領域及び当該第2の記憶領域のどちらに更新後のデータを記憶させたのかを判定するための第2の判定データを供給して記憶させ、さらに上記複数の記憶領域に対して、記憶させたデータの誤りを検出するための誤り検出データを供給して記憶させ、
さらに上記第3の記憶領域に記憶させた上記第1の判定データ又は上記誤り検出データが破壊されていた場合に、上記第1の記憶領域及び上記第2の記憶領域に記憶させた上記データ、上記第2の判定データ及び上記誤り検出データをもとに、上記第3の記憶領域に記憶させた上記第1の判定データ及び上記誤り検出データを修復する修復手段を具える
半導体集積回路。
A storage unit having a plurality of storage areas for storing data;
When the pre-update data is stored in the first storage area of the storage unit, the updated data is supplied to the second storage area of the storage unit, and the pre-update data is supplied to the second storage area. In the case of storing in the storage area, the storage control means for supplying the updated data to the first storage area and storing it,
The storage control means includes
After the updated data is supplied and completely stored in the first storage area or the second storage area, the updated data is stored in either the first storage area or the second storage area. The first determination data for determining whether or not is stored is supplied to and stored in the third storage area of the storage unit ,
Further, the storage control means includes
A second for determining whether the updated data is stored in the first storage area or the second storage area with respect to the first storage area and the second storage area Supply and store determination data, and further supply and store error detection data for detecting errors in the stored data for the plurality of storage areas,
Furthermore, when the first determination data or the error detection data stored in the third storage area is destroyed, the data stored in the first storage area and the second storage area, A semiconductor integrated circuit comprising repair means for repairing the first determination data and the error detection data stored in the third storage area based on the second determination data and the error detection data .
さらに上記第1の記憶領域及び上記第2の記憶領域に記憶させた上記データ、上記第2の判定データ及び上記誤り検出データと、上記第3の記憶領域に記憶させた上記第1の判定データ及び上記誤り検出データとをもとに、上記第1の記憶領域及び上記第2の記憶領域のどちらに更新後のデータが正常に記憶されているのかを判定する判定手段を具える
求項1に記載の半導体集積回路。
Furthermore, the data stored in the first storage area and the second storage area, the second determination data and the error detection data, and the first determination data stored in the third storage area And determining means for determining whether the updated data is normally stored in the first storage area or the second storage area based on the error detection data.
The semiconductor integrated circuit according to Motomeko 1.
データを記憶するための複数の記憶領域を有する記憶部に対してデータを記憶するデータ記憶方法において、
更新前のデータを上記記憶部の第1の記憶領域に記憶させている場合には、更新後のデータを上記記憶部の第2の記憶領域に供給し、更新前のデータを当該第2の記憶領域に記憶させている場合には、更新後のデータを上記第1の記憶領域に供給して記憶させる第1の記憶ステップと、
上記第1の記憶領域又は上記第2の記憶領域に上記更新後のデータを供給して完全に記憶させた後に、上記第1の記憶領域及び上記第2の記憶領域のどちらに更新後のデータを記憶させたのかを判定するための第1の判定データを上記記憶部の第3の記憶領域に供給して記憶させる第2の記憶ステップと
を具え
上記第1の記憶ステップでは、
上記第1の記憶領域及び上記第2の記憶領域に対して、当該第1の記憶領域及び当該第2の記憶領域のどちらに更新後のデータを記憶させたのかを判定するための第2の判定データを供給して記憶させ、
さらに上記第1の記憶ステップ及び上記第2の記憶ステップでは、
上記複数の記憶領域に対して、記憶させたデータの誤りを検出するための誤り検出データを供給して記憶させ、
さらに上記第3の記憶領域に記憶させた上記第1の判定データ又は上記誤り検出データが破壊されていた場合に、上記第1の記憶領域及び上記第2の記憶領域に記憶させた上記データ、上記第2の判定データ及び上記誤り検出データをもとに、上記第3の記憶領域に記憶させた上記第1の判定データ及び上記誤り検出データを修復する修復ステップを具える
データ記憶方法。
In a data storage method for storing data in a storage unit having a plurality of storage areas for storing data,
When the pre-update data is stored in the first storage area of the storage unit, the updated data is supplied to the second storage area of the storage unit, and the pre-update data is supplied to the second storage area. A first storage step of storing the updated data in the first storage area when stored in the storage area;
After the updated data is supplied and completely stored in the first storage area or the second storage area, the updated data is stored in either the first storage area or the second storage area. Including a second storage step of supplying and storing first determination data for determining whether or not is stored in the third storage area of the storage unit ,
In the first storing step,
A second for determining whether the updated data is stored in the first storage area or the second storage area with respect to the first storage area and the second storage area Supply and store judgment data,
Furthermore, in the first storage step and the second storage step,
Supply and store error detection data for detecting errors in stored data for the plurality of storage areas,
Furthermore, when the first determination data or the error detection data stored in the third storage area is destroyed, the data stored in the first storage area and the second storage area, A data storage method comprising a repairing step of repairing the first determination data and the error detection data stored in the third storage area based on the second determination data and the error detection data .
さらに上記第1の記憶領域及び上記第2の記憶領域に記憶させた上記データ、上記第2の判定データ及び上記誤り検出データと、上記第3の記憶領域に記憶させた上記第1の判定データ及び上記誤り検出データとをもとに、上記第1の記憶領域及び上記第2の記憶領域のどちらに更新後のデータが正常に記憶されているのかを判定する判定ステップを具える
求項に記載のデータ記憶方法。
Furthermore, the data stored in the first storage area and the second storage area, the second determination data and the error detection data, and the first determination data stored in the third storage area And a determination step of determining whether the updated data is normally stored in the first storage area or the second storage area based on the error detection data.
Data storage method according to Motomeko 3.
外部装置と通信する通信手段と、
データを記憶するための複数の記憶領域を有する記憶部と、
上記通信手段により受信した外部装置からの命令に応じて、更新前のデータを上記記憶部の第1の記憶領域に記憶させている場合には、更新後のデータを上記記憶部の第2の記憶領域に供給し、更新前のデータを当該第2の記憶領域に記憶させている場合には、更新後のデータを上記第1の記憶領域に供給して記憶させる記憶制御手段と
を具え、
上記記憶制御手段は、
上記第1の記憶領域又は上記第2の記憶領域に上記更新後のデータを供給して完全に記憶させた後に、上記第1の記憶領域及び上記第2の記憶領域のどちらに更新後のデータを記憶させたのかを判定するための第1の判定データを上記記憶部の第3の記憶領域に供給して記憶させ、
さらに上記記憶制御手段は、
上記第1の記憶領域及び上記第2の記憶領域に対して、当該第1の記憶領域及び当該第2の記憶領域のどちらに更新後のデータを記憶させたのかを判定するための第2の判定データを供給して記憶させ、さらに上記複数の記憶領域に対して、記憶させたデータの誤りを検出するための誤り検出データを供給して記憶させ、
さらに上記第3の記憶領域に記憶させた上記第1の判定データ又は上記誤り検出データが破壊されていた場合に、上記第1の記憶領域及び上記第2の記憶領域に記憶させた上記データ、上記第2の判定データ及び上記誤り検出データをもとに、上記第3の記憶領域に記憶させた上記第1の判定データ及び上記誤り検出データを修復する修復手段を具える
データ通信装置。
A communication means for communicating with an external device;
A storage unit having a plurality of storage areas for storing data;
When the pre-update data is stored in the first storage area of the storage unit according to the command from the external device received by the communication means, the updated data is stored in the second storage unit of the storage unit. A storage control means for supplying to the storage area and storing the pre-update data in the second storage area, supplying the updated data to the first storage area;
The storage control means includes
After the updated data is supplied and completely stored in the first storage area or the second storage area, the updated data is stored in either the first storage area or the second storage area. Is supplied to the third storage area of the storage unit to store the first determination data for determining whether or not
Further, the storage control means includes
A second for determining whether the updated data is stored in the first storage area or the second storage area with respect to the first storage area and the second storage area Supply and store determination data, and further supply and store error detection data for detecting errors in the stored data for the plurality of storage areas,
Furthermore, when the first determination data or the error detection data stored in the third storage area is destroyed, the data stored in the first storage area and the second storage area, A data communication device comprising a restoration means for restoring the first determination data and the error detection data stored in the third storage area based on the second determination data and the error detection data .
さらに上記第1の記憶領域及び上記第2の記憶領域に記憶させた上記データ、上記第2の判定データ及び上記誤り検出データと、上記第3の記憶領域に記憶させた上記第1の判定データ及び上記誤り検出データとをもとに、上記第1の記憶領域及び上記第2の記憶領域のどちらに更新後のデータが正常に記憶されているのかを判定する判定手段を具える
求項に記載のデータ通信装置。
Furthermore, the data stored in the first storage area and the second storage area, the second determination data and the error detection data, and the first determination data stored in the third storage area And determining means for determining whether the updated data is normally stored in the first storage area or the second storage area based on the error detection data.
Data communication apparatus according to Motomeko 5.
JP2004207613A 2004-07-14 2004-07-14 Semiconductor integrated circuit, data storage method, and data communication apparatus Expired - Fee Related JP4645883B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2004207613A JP4645883B2 (en) 2004-07-14 2004-07-14 Semiconductor integrated circuit, data storage method, and data communication apparatus

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2004207613A JP4645883B2 (en) 2004-07-14 2004-07-14 Semiconductor integrated circuit, data storage method, and data communication apparatus

Publications (2)

Publication Number Publication Date
JP2006031276A JP2006031276A (en) 2006-02-02
JP4645883B2 true JP4645883B2 (en) 2011-03-09

Family

ID=35897563

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2004207613A Expired - Fee Related JP4645883B2 (en) 2004-07-14 2004-07-14 Semiconductor integrated circuit, data storage method, and data communication apparatus

Country Status (1)

Country Link
JP (1) JP4645883B2 (en)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7089423B2 (en) * 2018-07-12 2022-06-22 ルネサスエレクトロニクス株式会社 Information processing device and control method

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0651927U (en) * 1991-07-15 1994-07-15 横河電機株式会社 Non-volatile memory controller
JPH0830515A (en) * 1994-07-20 1996-02-02 Toshiba Corp Data processor using flash eeprom
JPH10124403A (en) * 1996-10-24 1998-05-15 Hitachi Ltd Writing method for block deletion type flash memory
JPH10240629A (en) * 1997-02-27 1998-09-11 Mitsubishi Electric Corp Intra-memory information updating method

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0651927U (en) * 1991-07-15 1994-07-15 横河電機株式会社 Non-volatile memory controller
JPH0830515A (en) * 1994-07-20 1996-02-02 Toshiba Corp Data processor using flash eeprom
JPH10124403A (en) * 1996-10-24 1998-05-15 Hitachi Ltd Writing method for block deletion type flash memory
JPH10240629A (en) * 1997-02-27 1998-09-11 Mitsubishi Electric Corp Intra-memory information updating method

Also Published As

Publication number Publication date
JP2006031276A (en) 2006-02-02

Similar Documents

Publication Publication Date Title
US8006030B2 (en) Memory controller for identifying the last valid page/segment in a physical block of a flash memory
KR100531192B1 (en) Non-volatile memory control method
US20080175065A1 (en) Method and apparatus for storing page data
US7903474B2 (en) Redundant purge for flash storage device
JP4570891B2 (en) Storage device
US10176876B2 (en) Memory control method and apparatus for programming and erasing areas
JP4645883B2 (en) Semiconductor integrated circuit, data storage method, and data communication apparatus
JP5660521B2 (en) Nonvolatile semiconductor memory device and memory management method
US9443604B2 (en) Electronic device and data-management method thereof
JP6233134B2 (en) Electronic information storage medium, information processing method, and information processing program
JP3376331B2 (en) Storage method using flash memory and storage medium storing storage control program
JP2008310596A (en) Portable electronic equipment and control method for potable electronic equipment
US7353348B2 (en) Nonvolatile memory and card reader provided with the same
JP4637526B2 (en) Memory card and nonvolatile storage device
JP4266742B2 (en) ELECTRONIC DEVICE WITH FLASH MEMORY, MEMORY DATA MANAGEMENT METHOD, AND PROGRAM
JP2003085511A (en) Ic card, and method for writing data in ic card
US20070088905A1 (en) System and method for purging a flash storage device
US20050262315A1 (en) Mobile electronic device
EP1344224B1 (en) Method for the secure updating of data areas in a non volatile memory and device to perform such a method
JP4713878B2 (en) Portable electronic device
JP7322923B2 (en) Secure element, transaction control method and device
JP2006107363A (en) Portable electronic device and memory access method used in the same
JP2017138763A (en) Electronic information storage medium, data writing method, and data writing program
CN110362181B (en) Electronic device, memory system having the same, and method of operating the same
JP2001022653A (en) Non-volatile semiconductor storage device

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20070614

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20100907

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100909

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20101025

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20101111

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20101124

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20131217

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20131217

Year of fee payment: 3

LAPS Cancellation because of no payment of annual fees