JP4645883B2 - Semiconductor integrated circuit, data storage method, and data communication apparatus - Google Patents
Semiconductor integrated circuit, data storage method, and data communication apparatus Download PDFInfo
- 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
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参照)。
ところで、実際上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,
このリーダライタ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チップ10の外部には、コントローラ2と通信するための有線通信用の通信処理回路及び通信接続端子等からなるコントローラ通信部19、及びICカード4と通信するための無線通信用のアナログ送受信回路及びアンテナ素子からなるICカード通信部20が設けられ、これらがそれぞれICチップ10内のコントローラインタフェース部16及びICカードインタフェース部17に接続されている。
Further, outside the
これによりリーダライタ3は、コントローラインタフェース部16及びコントローラ通信部19を介してコントローラ2と通信し得、またICカードインタフェース部17及びICカード通信部20を介してICカード4と通信し得るようになされている。
Thus, the reader /
一方、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チップ30の外部には、リーダライタ3と通信するための無線通信用のアナログ送受信回路及びアンテナ素子からなるリーダライタ通信部38が設けられ、これがICチップ30内のリーダライタインタフェース部36に接続されている。
Further, a reader /
これによりICカード4は、リーダライタインタフェース部36及びリーダライタ通信部38を介してリーダライタ3と通信し得るようになされている。
Thus, the
(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
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 /
さらにデータ領域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
このように、かかるEEPROM35においては、データの格納領域を2面ずつ設けておくことにより、更新後のデータを一方の面に書き込んで記憶している途中に、書き込みエラーが生じてこの更新後のデータが破壊された場合でも、他方の面に保持している更新前のデータを用いてデータを復旧させることができる。
In this way, in the
なお、かかるEEPROM35は、読出及び書込が1ページ単位で行われるものであり、本実施の形態の場合、ステータス領域SA、及びデータ領域A、B、C、…の各面にそれぞれ1ページずつ割り当てている。
In the
(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
またチェックサム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
ステップSP1においてCPU31は、ステータス領域SAのデータを読み出して、選択面フラグAFを参照することによりデータ領域Aの選択面を認識し、次のステップSP2に移る。なお、ここでは一例として参照した選択面フラグAFの値が「00H」であり、1面A1を選択面として認識したものとする。
In step SP1, the
ステップSP2においてCPU31は、データ領域Aの選択面として認識した1面A1のデータ(データDA1、カウンタCA1、及びチェックサムCSA1)を読み出してRAM33上にコピーし、次のステップSP3に移る。
In step SP2, the
ステップSP3においてCPU31は、RAM33上にコピーした1面A1のデータDA1を編集すると共に、カウンタCA1を1インクリメントし、さらにデータDA1及びカウンタCA1をもとにチェックサムCSA1を再計算して次のステップSP4に移る。
In step SP3, the
ステップSP4においてCPU31は、RAM33上で編集したデータDA1と、1インクリメントしたカウンタCA1と、再計算したチェックサムCSA1とを、それぞれ2面A2のデータDA2、カウンタCA2、及びチェックサムCSA2としてEEPROM35に供給して2面A2に書き込ませ、次のステップSP5に移る。
In step SP4, the
ステップSP5においてCPU31は、2面A2に対するデータ(データDA2、カウンタCA2、及びチェックサムCSA2)の記憶が保証されるまでのウェイト時間待機する。すなわち2面A2に対するデータの書込処理はこのステップSP4とステップSP5とを経た時点で正常に終了したことになり、このとき2面2Aに対して正常にデータが記憶されたことを保証できる。このようにしてウェイト時間待機後、CPU31は、次のステップSP6に移る。
In step SP5, the
ステップSP6においてCPU31は、ステータス領域SAのデータを読み出してRAM33上にコピーし、次のステップSP7に移る。
In step SP6, the
ステップSP7においてCPU31は、RAM33上にコピーしたステータス領域SAの選択面フラグAFの値を「00H」から「FFH」に編集すると共に、編集した選択面フラグAFと、選択面フラグBF、CF、…とをもとにチェックサムCSを再計算して次のステップSP8に移る。
In step SP7, the
ステップSP8においてCPU31は、RAM33上で編集した選択面フラグAFと、選択面フラグBF、CF、…と、再計算したチェックサムCSとを、EEPROM35に供給してステータス領域SAに書き込ませ、次のステップSP9に移る。
In step SP8, the
ステップSP9においてCPU31は、ステータス領域SAに対するウェイト時間待機する。すなわちステータス領域SAに対するデータの書込処理も、このステップSP8とステップSP9とを経た時点で正常に終了したことになり、このときステータス領域SAに対して正常にデータが記憶されたことを保証できる。このようにしてウェイト時間待機後、CPU31は、次のステップSP10に移り、このデータ更新処理を終了する。
In step SP9, the
このようにこのデータ更新処理においては、データ領域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
特にステータス領域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カード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
すなわちCPU31は、このステップSP20において、ステータス領域SAの状態として選択面フラグAF、BF、CF、…の値とチェックサムCSとを調べ、またデータ領域Aの1面A1及び2面A2の状態としてデータDA1及びDA2の値とチェックサムCSA1及びCSA2とを調べる。
That is, in this step SP20, the
そして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
またCPU31は、1面A1のデータDA1の値が全て「0」である場合(すなわちまだ何も記憶されていない状態)に1面A1の状態を「未定義」とし、1面A1のデータDA1の値に「0」以外の値が存在し、かつチェックサムCSA1が正しい場合に1面A1の状態を「有効」とし、チェックサムCSA1が正しくない場合に1面A1の状態を「破壊」とする。さらにCPU31は、2面A2の状態(「未定義」、「有効」、「破壊」)も1面A1と同様に調べる。
Further, the
このようにしてこのステップ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
ステップSP21においてCPU31は、ステータス領域SAの状態が「破壊」であるか否かを判定する。ここで肯定結果を得ると、このことは、ステータス領域SAのデータが破壊されていることを表しており、このときCPU31はステップSP22に移る。
In step SP21, the
ステップSP22においてCPU31は、データ領域Aの1面A1及び2面A2のうち少なくともどちらか一方の状態が「破壊」であるか否かを判定する。ここで肯定結果を得ると、このことはステータス領域SAのデータが破壊され、かつデータ領域Aのデータも破壊されていることを表しており、このときCPU31はステップSP23に移る。
In step SP22, the
ステップ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
これに対してステップ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
ステップ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
ステップSP26においてCPU31は、1面A1のカウンタCA1と2面A2のカウンタCA2との値を比較し、この値が大きい方の面を選択面と判定して次のステップSP27に移る。
In step SP26, the
これに対してステップ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
ステップSP28においてCPU31は、1面A1及び2面A2の状態がどちらも「未定義」であるか否かを判定する。ここで肯定結果を得ると、このことは1面A1及び2面A2のどちらにもデータが記憶されていないことを表しており、このときCPU31は、ステップSP29に移る。
In step SP28, the
ステップSP29においてCPU31は、データ領域Aのどちらか一方の面(例えば1面A1)を選択面と判定し、次のステップSP27に移る。なお、ここでは一例として1面A1を選択面と判定したが、2面A2を選択面としてもよい。因みに、このようにステータス領域SAの状態が「破壊」であるものの、データ領域Aの両面の状態が「未定義」である場合として想定されるのは、例えばデータ領域BやCに対するデータ更新処理が電源の瞬断等により中断した場合である。
In step SP29, the
これに対してステップ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
ステップSP30においてCPU31は、1面A1及び2面A2のうち状態が「有効」である方を選択面と判定して次のステップSP27に移る。
In step SP30, the
ステップSP27においてCPU31は、選択面が1面A1であるのかあるいは2面A2であるのかに応じてステータス領域SAの選択面フラグAFを編集すると共に、同様に判定したデータ領域B、C、…の選択面に応じて選択面フラグBF、CF、…を編集し、チェックサムCSを再計算してステータス領域SAのデータを修復し、次のステップSP24に移ってこの選択面判定処理を終了する。
In step SP27, the
このようにステップ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
ステップSP31においてCPU31は、ステータス領域SAの選択面フラグAFの値と、データ領域Aの1面A1及び2面A2の状態とに応じて選択面を判定する。ここで、この場合の選択面の判定基準を図7の表に示す。
In step SP31, the
すなわち選択面フラグ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
また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
このようにしてCPU31は、ステータス領域SAの状態が「有効」である場合の選択面を判定した後、次のステップSP24に移ってこの選択面判定処理を終了する。
In this way, after determining the selection surface when the status area SA is “valid”, the
かくして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
またステップ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
さらにステップ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
さらにステップ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
(4)動作及び効果
以上の構成において、ICカード4のCPU31は、例えばデータ領域Aの1面A1のデータを更新する際、まずこの1面A1のデータをRAM33上に読み出して更新し、この更新したデータをデータ領域Aの2面A2に供給して書き込ませる。
(4) Operation and Effect In the above configuration, when the
そしてCPU31は、2面A2におけるウェイト時間待機した後、ステータス領域SAのデータをRAM33上に読み出して選択面フラグAFを、1面A1を示す「00H」から2面A2を示す「FFH」に更新し、この更新したデータをステータス領域SAに供給して書き込ませる。
The
このように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
また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
そしてCPU31は、これらの状態に応じて1面A1及び2面A2のどちらが、更新したデータが正常に記憶されている面(すなわち選択面)であるのかを判定する。
Then, the
これにより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
(5)他の実施の形態
なお上述の実施の形態においては、不揮発性メモリとしてEEPROM15及び35を用いるようにした場合について述べたが、本発明はこれに限らず、フラッシュメモリや、MRAM(Magnetic RAM)、FeRAM(Ferroelectric RAM)等、この他種々の不揮発性メモリを用いるようにしてもよい。
(5) Other Embodiments In the above-described embodiment, the case where the
また上述の実施の形態においては、EEPROM15及び35を有するリーダライタ3及びICカード4に本発明を適用するようにした場合について述べたが、本発明はこれに限らず、不揮発性メモリを有する種々の装置(例えば携帯電話機や、ノートブック型パーソナルコンピュータ、PDA等)や、ICチップ等に適用するようにしてもよい。
In the above-described embodiment, the case where the present invention is applied to the reader /
さらに上述の実施の形態においては、ステータス領域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
さらに上述の実施の形態においては、外部装置としてのリーダライタ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 /
さらに本発明はデータ通信装置としてのリーダライタ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 /
本発明は、複数の記憶領域を用いてデータの書き替えを行うデータ記憶装置において広く利用できる。 The present invention can be widely used in data storage devices that rewrite data using a plurality of storage areas.
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
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に記載の半導体集積回路。 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 .
請求項3に記載のデータ記憶方法。 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 .
請求項5に記載のデータ通信装置。 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.
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)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP7089423B2 (en) * | 2018-07-12 | 2022-06-22 | ルネサスエレクトロニクス株式会社 | Information processing device and control method |
Citations (4)
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 |
-
2004
- 2004-07-14 JP JP2004207613A patent/JP4645883B2/en not_active Expired - Fee Related
Patent Citations (4)
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 |