JPH04165487A - Icカードにおけるエラーチェック方法 - Google Patents
Icカードにおけるエラーチェック方法Info
- Publication number
- JPH04165487A JPH04165487A JP2293311A JP29331190A JPH04165487A JP H04165487 A JPH04165487 A JP H04165487A JP 2293311 A JP2293311 A JP 2293311A JP 29331190 A JP29331190 A JP 29331190A JP H04165487 A JPH04165487 A JP H04165487A
- Authority
- JP
- Japan
- Prior art keywords
- data
- sector
- error check
- error
- recorded
- 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.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims description 18
- 238000010586 diagram Methods 0.000 description 9
- 230000000295 complement effect Effects 0.000 description 4
- JZNZSKXIEDHOBD-HUUCEWRRSA-N 2-[4,10-bis(carboxymethyl)-7-[(2r,3s)-1,3,4-trihydroxybutan-2-yl]-1,4,7,10-tetrazacyclododec-1-yl]acetic acid Chemical compound OC[C@@H](O)[C@@H](CO)N1CCN(CC(O)=O)CCN(CC(O)=O)CCN(CC(O)=O)CC1 JZNZSKXIEDHOBD-HUUCEWRRSA-N 0.000 description 1
- 230000003247 decreasing effect Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
Landscapes
- Techniques For Improving Reliability Of Storages (AREA)
- Credit Cards Or The Like (AREA)
- Detection And Correction Of Errors (AREA)
Abstract
(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。
め要約のデータは記録されません。
Description
【発明の詳細な説明】
〔産業上の利用分野〕
本発明はICカードにおけるエラーチェック方法、特に
、エラーチェックコードに基づくエラーチェックを補間
することのできるチエツク方法に関する。
、エラーチェックコードに基づくエラーチェックを補間
することのできるチエツク方法に関する。
現在普及している磁気カードに代わって、将来は1.
Cカードの普及が見込まれている。このICカートは、
現在までにいくつかのタイプの共通仕様が定められてお
り、限られた用途については、既に実用化が図られてい
る。一般的なICカードは、CPU、、ROM、RAM
SEEPROM、そしてこれらの素子と外部の装置とを
接続するための入出力端子を備えている。ROMは書換
不能なメモリであり、CPUを制御するだめのプログラ
ムを保持するプログラムエリアとして用いられる。
Cカードの普及が見込まれている。このICカートは、
現在までにいくつかのタイプの共通仕様が定められてお
り、限られた用途については、既に実用化が図られてい
る。一般的なICカードは、CPU、、ROM、RAM
SEEPROM、そしてこれらの素子と外部の装置とを
接続するための入出力端子を備えている。ROMは書換
不能なメモリであり、CPUを制御するだめのプログラ
ムを保持するプログラムエリアとして用いられる。
RAMは書換可能なメモリであり、CPUが動作するた
めのワークエリアとして用いられる。また、EEPRO
′F、□1は、所定の書換電圧を印加することにより書
換可能となるメモリであり、ユーザーデータを記録する
ためのユーザエリアとして用いられる。このニーすエリ
アには、磁気カードに比べて大量のユーザデータを記録
することができ、また、カード自身がCPUを備えてい
る点て磁気カードと大きく異なり、今後は様々な利用が
期待されている。
めのワークエリアとして用いられる。また、EEPRO
′F、□1は、所定の書換電圧を印加することにより書
換可能となるメモリであり、ユーザーデータを記録する
ためのユーザエリアとして用いられる。このニーすエリ
アには、磁気カードに比べて大量のユーザデータを記録
することができ、また、カード自身がCPUを備えてい
る点て磁気カードと大きく異なり、今後は様々な利用が
期待されている。
〔発明が解決しようとする課題1
一般に、ICカードはユーザがポケットに入れて携帯し
たり、無造作に取り扱ったりすることが多く、過酷な環
境で取り扱われることになる。また、ICカード自身に
は、電源やクロックが内蔵されていないため、データの
読出しや書込み作業は、外部の装置から所定の入出力端
子を介して電源やクロックの供給を受けながら行われる
。したがって、この入出力端子における接触不良が一瞬
でも生じると、正しくデータを書込むことができない場
合がある。
たり、無造作に取り扱ったりすることが多く、過酷な環
境で取り扱われることになる。また、ICカード自身に
は、電源やクロックが内蔵されていないため、データの
読出しや書込み作業は、外部の装置から所定の入出力端
子を介して電源やクロックの供給を受けながら行われる
。したがって、この入出力端子における接触不良が一瞬
でも生じると、正しくデータを書込むことができない場
合がある。
このように、ICカードにおけるデータの記録は、一般
のコンピュータなどに比べて過酷な条件が課されること
になり、いわゆる「データ化け」と呼ばれる記録データ
の内容にエラーが生じる現象が起こりやすい。このため
、エラーチェックを十分に行う必要がある。従来の一般
的なエラーチェック方法は、所定長さのデータ列に対し
て、BCCコードなどのエラーチェックコードを生成し
てこれを付加し、このエラーチェックコードとともにデ
ータを記録する方法である。読出し時には、本来のデー
タとともにエラーチェックコードも読出し、読出したデ
ータから生成されるエラーチェックコードと、記録され
ていたエラーチェックコードとの同一性をチエツクして
いる。ところか、このようなエラーチェックコードによ
るエラーチェック方法は、完全なものではない。すなわ
ち、2か所において相補的なエラーが発生すると、両者
が相殺し合ってエラーが発見できない事態が生じる。
のコンピュータなどに比べて過酷な条件が課されること
になり、いわゆる「データ化け」と呼ばれる記録データ
の内容にエラーが生じる現象が起こりやすい。このため
、エラーチェックを十分に行う必要がある。従来の一般
的なエラーチェック方法は、所定長さのデータ列に対し
て、BCCコードなどのエラーチェックコードを生成し
てこれを付加し、このエラーチェックコードとともにデ
ータを記録する方法である。読出し時には、本来のデー
タとともにエラーチェックコードも読出し、読出したデ
ータから生成されるエラーチェックコードと、記録され
ていたエラーチェックコードとの同一性をチエツクして
いる。ところか、このようなエラーチェックコードによ
るエラーチェック方法は、完全なものではない。すなわ
ち、2か所において相補的なエラーが発生すると、両者
が相殺し合ってエラーが発見できない事態が生じる。
そこで本発明は、より信頼性の高いICカードにおける
エラーチェック方法を提供することを目的とする。
エラーチェック方法を提供することを目的とする。
本発明は、EEPROMによって構成される記憶領域内
に、複数のレコードから構成される1つのファイルデー
タを、ファイルデータについてのレコード数の情報を含
むディレクトリとともに記録するICカードにおいて、 所定のセクタ長を定義し、各レコードをセクタ長を1区
切りとするセクタデータに分割し、1レコード内におけ
るこのセクタデータ同士の連結情報を含んだ制御データ
を作成し、セクタデータおよび制御データに基づいて所
定のエラーチェックコードを作成し、セクタデータに制
御データおよびエラーチェックコードを付加してなる単
位データを、記録領域内に記録しておき、 この記録領域内に記録された各単位データを読出したと
きに、エラーチェックコードに基づく第1のエラーチェ
ックを行うとともに、読出した各単位データからそれぞ
れ制御データを抽出し、この制御データ内の連結情報に
基づいて、記録領域内に記録されているファイルデータ
のレコード数を算出し、この算出したレコード数とディ
レクトリ内のレコード数とを比較し、不一致が生じた場
合にデータの記録にエラーが生じていると認識する第2
のエラーチェックを行うようにしたものである。
に、複数のレコードから構成される1つのファイルデー
タを、ファイルデータについてのレコード数の情報を含
むディレクトリとともに記録するICカードにおいて、 所定のセクタ長を定義し、各レコードをセクタ長を1区
切りとするセクタデータに分割し、1レコード内におけ
るこのセクタデータ同士の連結情報を含んだ制御データ
を作成し、セクタデータおよび制御データに基づいて所
定のエラーチェックコードを作成し、セクタデータに制
御データおよびエラーチェックコードを付加してなる単
位データを、記録領域内に記録しておき、 この記録領域内に記録された各単位データを読出したと
きに、エラーチェックコードに基づく第1のエラーチェ
ックを行うとともに、読出した各単位データからそれぞ
れ制御データを抽出し、この制御データ内の連結情報に
基づいて、記録領域内に記録されているファイルデータ
のレコード数を算出し、この算出したレコード数とディ
レクトリ内のレコード数とを比較し、不一致が生じた場
合にデータの記録にエラーが生じていると認識する第2
のエラーチェックを行うようにしたものである。
第1のエラーチェックは、従来から行われているエラー
チェックコードに基づくチエツクである。
チェックコードに基づくチエツクである。
ところが、前述したように、この第1のエラーチェック
では、2か所において相補的なエラーが発生すると、両
者が相殺し合ってエラーが発見できない事態が生じる。
では、2か所において相補的なエラーが発生すると、両
者が相殺し合ってエラーが発見できない事態が生じる。
第2のエラーチェックは、本発明特有のエラーチェック
であり、記録された各制御データ内の連結情報に基づい
て、記録領域内に記録されているファイルデータのレコ
ード数の算出を行う。エラーが生じていなければ、この
レコード数は、ディレクトリ内のレコード数と一致する
はずである。両者が一致しなければ、制御データ内の連
結情報にエラーが生じていると判断できる。すなわち、
連結情報とセクタデータとにおいて相補的な2つのエラ
ーか生じていた場合、第1のエラーチェックではエラー
が発見されないが、第2のエラーチェックではこれが発
見されることになる。こうして、エラーチェックの信頼
性を高めることが可能になる。
であり、記録された各制御データ内の連結情報に基づい
て、記録領域内に記録されているファイルデータのレコ
ード数の算出を行う。エラーが生じていなければ、この
レコード数は、ディレクトリ内のレコード数と一致する
はずである。両者が一致しなければ、制御データ内の連
結情報にエラーが生じていると判断できる。すなわち、
連結情報とセクタデータとにおいて相補的な2つのエラ
ーか生じていた場合、第1のエラーチェックではエラー
が発見されないが、第2のエラーチェックではこれが発
見されることになる。こうして、エラーチェックの信頼
性を高めることが可能になる。
以下、本発明を図示する実施例に基づいて説明する。第
1図(a)は、−船釣なICカードを読取/書込装置に
接続した状態を示すブロック図である。ICカード10
内には、3種類のメモリ、すなわち、ROMII、RA
M12.EEPROMlBと、CPU14とが内蔵され
ている。ROM11は書換不能なメモリであり、CPU
14を制御するためのプログラムを保持するプログラム
エリアとして用いられる。RAM12は書換可能なメモ
リであり、CPUが動作するためのワークエリアとして
用いられる。また、EEPROMlBは、所定の書換電
圧を印加することにより書換可能となるメモリであり、
ユーザーデータを記録するためのユーザエリアとして用
いられる。
1図(a)は、−船釣なICカードを読取/書込装置に
接続した状態を示すブロック図である。ICカード10
内には、3種類のメモリ、すなわち、ROMII、RA
M12.EEPROMlBと、CPU14とが内蔵され
ている。ROM11は書換不能なメモリであり、CPU
14を制御するためのプログラムを保持するプログラム
エリアとして用いられる。RAM12は書換可能なメモ
リであり、CPUが動作するためのワークエリアとして
用いられる。また、EEPROMlBは、所定の書換電
圧を印加することにより書換可能となるメモリであり、
ユーザーデータを記録するためのユーザエリアとして用
いられる。
読取/書込装置20との間には、6本の信号線が接続さ
れるため、この信号線を接続するための6つの入出力端
子がICカード10上に設けられる。各信号線の用途は
次のとおりである。
れるため、この信号線を接続するための6つの入出力端
子がICカード10上に設けられる。各信号線の用途は
次のとおりである。
(1)信号線110
ICカード10と読取/書込装置20との間で双方向に
データを受は渡しするために用いられる。
データを受は渡しするために用いられる。
(2)信号線RST
読取/書込装置20側からICカード10側ヘリセツト
信号を与えるために用いられる。
信号を与えるために用いられる。
(3)信号線CLK
読取/書込装置20側からICカード10側ヘクロツク
信号を与えるために用いられる。
信号を与えるために用いられる。
(4)信号線VCC
読取/書込装置20側からICカード10側へvCC電
圧を供給するために用いられる。
圧を供給するために用いられる。
(5)信号線GND
読取/書込装置20側からICカード10側へGND電
圧を供給するために用いられる。
圧を供給するために用いられる。
(6)信号線VPP
現在は用いられていない。
第1図(b)は、第1図(a)に示されているEEPR
OMlB内のメモリマツプである。この実施例では、こ
のEEPROMlBには、アドレスr6000〜7FF
FJが割り当てられており、図では左上隅のアドレスr
6000Jから水平右方向に伸びる列に沿ってアドレス
が増加してゆき、右端に到達したら下段の次の列につい
ても同様に左から右へとアドレスが増加する。こうして
、最終アドレスが右下隅のアドレスr7 F F FJ
となっている。このEEPROMlBは、本来、ユーザ
データを記録するユーザエリアとして用いられるメモリ
であるが、実際には図に示すように、ユーザエリアの他
にシステムエリア1.2が設けられている。このシステ
ムエリア1.2には、ユーザのIDコード、暗証番号な
どのシステム情報が記録されるとともに、デイレクトリ
ポインタDPのための領域(図の一点鎖線で囲んだ領域
)が設けられている。
OMlB内のメモリマツプである。この実施例では、こ
のEEPROMlBには、アドレスr6000〜7FF
FJが割り当てられており、図では左上隅のアドレスr
6000Jから水平右方向に伸びる列に沿ってアドレス
が増加してゆき、右端に到達したら下段の次の列につい
ても同様に左から右へとアドレスが増加する。こうして
、最終アドレスが右下隅のアドレスr7 F F FJ
となっている。このEEPROMlBは、本来、ユーザ
データを記録するユーザエリアとして用いられるメモリ
であるが、実際には図に示すように、ユーザエリアの他
にシステムエリア1.2が設けられている。このシステ
ムエリア1.2には、ユーザのIDコード、暗証番号な
どのシステム情報が記録されるとともに、デイレクトリ
ポインタDPのための領域(図の一点鎖線で囲んだ領域
)が設けられている。
ユーザデータは、ファイル単位でユーザエリアに記録さ
れ、これに対応するディレクトリも同じくユーザエリア
に記録される。この実施例では、データはファイル単位
で、アドレスXから順方向(アドレスの増加方向)に順
次連続して記録されてゆき、これに対応するディレクト
リは、アドレスyから逆方向(アドレスの減少方向)に
順次連続して記録されてゆく (なお、第1図(b)で
は、各部のアドレス値を円で囲った小文字のアルファベ
ットで示している)。たとえば、最初のデータAを記録
する場合、図のようにアドレスXから順方向に記録され
、これに対応するディレクトリAは、アドレスyから逆
方向に記録される。続いて、二番目のデータBを記録す
る場合は、データAに続くアドレス2から順方向に記録
され、これに対応するディレクトリBは、ディレクトリ
Aに続くアドレスaから逆方向に記録される。デイレク
トリポインタは、最後に記録されたディレクトリに関す
るアドレス情報を示す機能を有する。前述の例では、デ
イレクトリポインタの値は、ディレクトリAを記録する
まではyを示し、ディレクトリAの記録後はaを示し、
ディレクトリBの記録後はbを示すように順次更新され
ることになる。
れ、これに対応するディレクトリも同じくユーザエリア
に記録される。この実施例では、データはファイル単位
で、アドレスXから順方向(アドレスの増加方向)に順
次連続して記録されてゆき、これに対応するディレクト
リは、アドレスyから逆方向(アドレスの減少方向)に
順次連続して記録されてゆく (なお、第1図(b)で
は、各部のアドレス値を円で囲った小文字のアルファベ
ットで示している)。たとえば、最初のデータAを記録
する場合、図のようにアドレスXから順方向に記録され
、これに対応するディレクトリAは、アドレスyから逆
方向に記録される。続いて、二番目のデータBを記録す
る場合は、データAに続くアドレス2から順方向に記録
され、これに対応するディレクトリBは、ディレクトリ
Aに続くアドレスaから逆方向に記録される。デイレク
トリポインタは、最後に記録されたディレクトリに関す
るアドレス情報を示す機能を有する。前述の例では、デ
イレクトリポインタの値は、ディレクトリAを記録する
まではyを示し、ディレクトリAの記録後はaを示し、
ディレクトリBの記録後はbを示すように順次更新され
ることになる。
第2図は1フアイルデータの構成を示す図である。第1
図(b)に示すように、データはファイル単位で、デー
タA、データB、・・・のように記録されるが、このう
ち1つのファイルデータ、たとえばデータAは、第2図
に示すように、第ルコード〜第nレコードまでのn個の
レコードから構成されている。また、実際に、EEFR
OM13内に記録されるときには、各レコードが複数の
セクタに分割されて記録される。第2図の例では、第ル
コードは、第1セクタ〜第mセクタまてのmセクタに分
割されて記録されることになる。第3図は、このデータ
Aを実際にEEPROM13に記録した状態を示すメモ
リマツプである。このような記録を行うには、まずセク
タ長(たとえば、10バイト)が定義される。そして、
各レコードは、このセクタ長を1区切りとするセクタデ
ータに分割される。このとき、第1セクタの先頭部には
、そのレコード長を示す2バイトのデータRL(Rec
ord Length)が付加される。第3図に示す例
では、第ルコードは2つのセクタに分割され、第2レコ
ードは5つのセクタに分割され、第3レコードは分割さ
れることなしに1つのセクタ内に収まり、第4レコード
は2つのセクタに分割されている。そして、いずれのレ
コードについても、第コセクタの先頭には、レコード長
RLが付加されている。この記録方法の特徴は、各セク
タデータの先頭部にRCB (Recorcl Con
trol Byte)なる制御データが付加され、後部
にB CC(block Check Cod、e)
なるエラーチェックコードが付加される点である。す
なわち、所定のセクタ長をもつセクタデータの先頭部に
制御データRCBを付加し、後部にエラーチェックフー
ドBCCを付加することにより1単位のデータが構成さ
れる。第3図に示す例では、横方向に1列に配されたデ
ータが1単位データを構成し、単位データ1,2が第ル
コードに対応し、単位データ3〜7が第2レコードに対
応し、単位データ8が第3レコードに対応し、単位デー
タ9,10が第4レコードに対応する。なお、ハツチン
グ部分は、データが記録されていない空領域である。
図(b)に示すように、データはファイル単位で、デー
タA、データB、・・・のように記録されるが、このう
ち1つのファイルデータ、たとえばデータAは、第2図
に示すように、第ルコード〜第nレコードまでのn個の
レコードから構成されている。また、実際に、EEFR
OM13内に記録されるときには、各レコードが複数の
セクタに分割されて記録される。第2図の例では、第ル
コードは、第1セクタ〜第mセクタまてのmセクタに分
割されて記録されることになる。第3図は、このデータ
Aを実際にEEPROM13に記録した状態を示すメモ
リマツプである。このような記録を行うには、まずセク
タ長(たとえば、10バイト)が定義される。そして、
各レコードは、このセクタ長を1区切りとするセクタデ
ータに分割される。このとき、第1セクタの先頭部には
、そのレコード長を示す2バイトのデータRL(Rec
ord Length)が付加される。第3図に示す例
では、第ルコードは2つのセクタに分割され、第2レコ
ードは5つのセクタに分割され、第3レコードは分割さ
れることなしに1つのセクタ内に収まり、第4レコード
は2つのセクタに分割されている。そして、いずれのレ
コードについても、第コセクタの先頭には、レコード長
RLが付加されている。この記録方法の特徴は、各セク
タデータの先頭部にRCB (Recorcl Con
trol Byte)なる制御データが付加され、後部
にB CC(block Check Cod、e)
なるエラーチェックコードが付加される点である。す
なわち、所定のセクタ長をもつセクタデータの先頭部に
制御データRCBを付加し、後部にエラーチェックフー
ドBCCを付加することにより1単位のデータが構成さ
れる。第3図に示す例では、横方向に1列に配されたデ
ータが1単位データを構成し、単位データ1,2が第ル
コードに対応し、単位データ3〜7が第2レコードに対
応し、単位データ8が第3レコードに対応し、単位デー
タ9,10が第4レコードに対応する。なお、ハツチン
グ部分は、データが記録されていない空領域である。
続いて、制御データRCBのビット構成を第4図を参照
して説明する。本実施例では、制御データRCBは1バ
イトのデータからなり、このうちの下位2ビツト(b
2 b 1)がチェーンビット、上位1ビツト(b8)
がチエツクビットとして使われており、中間のビット(
b3〜b7)は使用されていない。チエツクビットb8
は、後続するセクタデータが有効「0」か無効「1」か
を示すビットである。通常は、データの記録が行われれ
ば、チエツクビットb8は有効rOJとなる。したがっ
て、第3図に示す単位データ1〜10における制御デー
タRCBのチエツクビットb8は、いずれも「0」であ
る。将来、これらのデータが消去された場合、各チエツ
クビットb8は無効を示す「1」に書き換えられる。一
方、チェーンビットb2blは、ルコード内におけるセ
クタデータ同士の連結情報を示すものである。すなわぢ
、この2ビツトにより、次のような連結情報が示される
。
して説明する。本実施例では、制御データRCBは1バ
イトのデータからなり、このうちの下位2ビツト(b
2 b 1)がチェーンビット、上位1ビツト(b8)
がチエツクビットとして使われており、中間のビット(
b3〜b7)は使用されていない。チエツクビットb8
は、後続するセクタデータが有効「0」か無効「1」か
を示すビットである。通常は、データの記録が行われれ
ば、チエツクビットb8は有効rOJとなる。したがっ
て、第3図に示す単位データ1〜10における制御デー
タRCBのチエツクビットb8は、いずれも「0」であ
る。将来、これらのデータが消去された場合、各チエツ
クビットb8は無効を示す「1」に書き換えられる。一
方、チェーンビットb2blは、ルコード内におけるセ
クタデータ同士の連結情報を示すものである。すなわぢ
、この2ビツトにより、次のような連結情報が示される
。
00:チェーン無し・・・後続するセクタデータが、単
独でルコードを構成することを示す。
独でルコードを構成することを示す。
10:FIR3T・・・後続するセクタデータが、1つ
のレコードの最初のセクタデータであることを示す。
のレコードの最初のセクタデータであることを示す。
11:MIDDLE・・・後続するセクタデータが、1
つのレコードの真ん中部性の(別型すれば、最初でも最
後でもない)セクタデータであることを示す。
つのレコードの真ん中部性の(別型すれば、最初でも最
後でもない)セクタデータであることを示す。
01 : LAST・・・後続するセクタデータが、1
つのレコードの最後のセクタデータであることを示す。
つのレコードの最後のセクタデータであることを示す。
この連結情報の意味を、第3図の例に基づいて、より具
体的に説明しよう。第3図における制御データRCBの
欄のそれぞれに括弧書きで記載した2桁の数字は、この
チェーンピットを構成する2ビツトの数字である。単位
データ1のチェーンピットは「10」、すなわちrFI
R8TJである。
体的に説明しよう。第3図における制御データRCBの
欄のそれぞれに括弧書きで記載した2桁の数字は、この
チェーンピットを構成する2ビツトの数字である。単位
データ1のチェーンピットは「10」、すなわちrFI
R8TJである。
これは、後続するセクタデータが第ルコードの最初のセ
クタであることを示す。単位データ2のチェーンピット
は「01」、すなわち[L A S TJである。これ
は、後続するセクタデータが第ルコードの最後のセクタ
であることを示す。単位データ3のチェーンピットは「
10」、すなわち[FIR3TJである。これは、後続
するセクタデータが第2レコードの最初のセクタである
ことを示す。単位データ4〜6のチェーンピットは「1
1」、すなわちrMIDDLEJである。これは、後続
するセクタデータが第2レコードの真ん中部性のセクタ
であることを示す。単位データ7のチェーンピットはr
olJ、すなわちrLASTJである。これは、後続す
るセクタデータが第2レコードの最後のセクタであるこ
とを示す。
クタであることを示す。単位データ2のチェーンピット
は「01」、すなわち[L A S TJである。これ
は、後続するセクタデータが第ルコードの最後のセクタ
であることを示す。単位データ3のチェーンピットは「
10」、すなわち[FIR3TJである。これは、後続
するセクタデータが第2レコードの最初のセクタである
ことを示す。単位データ4〜6のチェーンピットは「1
1」、すなわちrMIDDLEJである。これは、後続
するセクタデータが第2レコードの真ん中部性のセクタ
であることを示す。単位データ7のチェーンピットはr
olJ、すなわちrLASTJである。これは、後続す
るセクタデータが第2レコードの最後のセクタであるこ
とを示す。
単位データ8のチェーンピットはrooJ、すなわち「
チェーン無し」である。これは、後続するセクタデータ
のみによって第3レコードが構成されることを示す。単
位データ9のチェーンピットは「10」、すなわち[F
IR3TJである。これは、後続するセクタデータが第
4レコードの最初のセクタであることを示す。そして最
後に、単位データ10のチェーンピットは「01」、す
なわちrLAsTJである。これは、後続するセクタデ
ータが第4レコードの最後のセクタであることを示す。
チェーン無し」である。これは、後続するセクタデータ
のみによって第3レコードが構成されることを示す。単
位データ9のチェーンピットは「10」、すなわち[F
IR3TJである。これは、後続するセクタデータが第
4レコードの最初のセクタであることを示す。そして最
後に、単位データ10のチェーンピットは「01」、す
なわちrLAsTJである。これは、後続するセクタデ
ータが第4レコードの最後のセクタであることを示す。
以上のように、制御データRCBは、後続するセクタデ
ータの属性を示すように決定される。−方、セクタデー
タの後部に付加されるエラーチェックコードBCCは、
制御データRCBをセクタデータの先頭部に付加して得
られるデータ列全体について、予め定められた所定の論
理演算を施すことにより発生されるコードである。この
エラーチエ・ツクコードBCCの発生方法については、
公知の技術であるため説明を省略する。
ータの属性を示すように決定される。−方、セクタデー
タの後部に付加されるエラーチェックコードBCCは、
制御データRCBをセクタデータの先頭部に付加して得
られるデータ列全体について、予め定められた所定の論
理演算を施すことにより発生されるコードである。この
エラーチエ・ツクコードBCCの発生方法については、
公知の技術であるため説明を省略する。
結局、1つのファイルデータAを記録するためには、こ
れを第ルコード〜第4レコードという4つのレコードに
分けて取扱い、かつ、各レコードを所定のセクタ長ごと
に分割してセクタデータを形成し、このセクタデータの
先頭部に制御データRCBを、後部にエラーチェックコ
ードBCCを、それぞれ付加して単位データを構成し、
これを実際のEEFROMに書込む作業を行うことにな
る。なお、このような方法でデータAを記録したら、第
1図(b)に示すように、これに対応するディレクトリ
Aも記録されることになる。なお、このディレクトリA
には、データAが記録されているアドレスに関する情報
の他に、データAを構成スるレコード数(この例では、
レコード数は4)も記録される。
れを第ルコード〜第4レコードという4つのレコードに
分けて取扱い、かつ、各レコードを所定のセクタ長ごと
に分割してセクタデータを形成し、このセクタデータの
先頭部に制御データRCBを、後部にエラーチェックコ
ードBCCを、それぞれ付加して単位データを構成し、
これを実際のEEFROMに書込む作業を行うことにな
る。なお、このような方法でデータAを記録したら、第
1図(b)に示すように、これに対応するディレクトリ
Aも記録されることになる。なお、このディレクトリA
には、データAが記録されているアドレスに関する情報
の他に、データAを構成スるレコード数(この例では、
レコード数は4)も記録される。
さて、以上のような方法でファイルデータAを記録して
おくと、読出したときに2とおりのエラーチェックを行
うことが可能になる。第1のエラーチェックは、エラー
チェックコードを利用したチエツクであり、従来から公
知の方法である。すなわち、第3図に示すデータを単位
データごとに読出し、読出した制御データとセクタデー
タからなるデータ列全体について、記録時と同一の論理
演算を施してエラーチェックコードを発生させ、これを
読出したエラーチェックコードと比較する方法である。
おくと、読出したときに2とおりのエラーチェックを行
うことが可能になる。第1のエラーチェックは、エラー
チェックコードを利用したチエツクであり、従来から公
知の方法である。すなわち、第3図に示すデータを単位
データごとに読出し、読出した制御データとセクタデー
タからなるデータ列全体について、記録時と同一の論理
演算を施してエラーチェックコードを発生させ、これを
読出したエラーチェックコードと比較する方法である。
この方法を、第5図を参照しながら更に詳しく説明する
。いま、第5図の1行目に示すようなビット列が正しい
状態で記録されたデータであるとする。この1行目のデ
ータを読出し、制御データRCBとセクタデータとに基
づいてエラーチェックコードBCCを発生させれば、こ
のコードBCCは記録されていたコードBCCと一致す
る。ところが、2行目に示すように、セクタデータの1
ビツトがいわゆる「データ化け」を起こした場合(この
例では、セクタデータの3ビツト目がOから1に変化し
てしまっている)を考える。この場合、この2行目のデ
ータを読出し、制御データRCBとセクタデータとに基
づいてエラーチェックコードBCCを発生させれば、こ
のコードBCCは記録されていたコードBCCとは一致
しなくなる。したがって、このような「データ化け」は
発見される。また、3行目に示すように、制御データR
CB内の1ビツトが「データ化け」を起こした場合も、
同様に発見される。ところが、4行目に示すように、セ
クタデータ内の2つのビットが「データ化け」を起こし
たり、5行目に示すように、セクタデータ内の1ビツト
と制御データRCB内の1ビツトが「データ化け」を起
こしたりした場合、2つの「データ化け」は相補的なも
のであり、データが異なってしまっているにもかかわら
ず、エラーチェックコートBCCは一致してしまう。す
なわち、4行目や5行目に示すようなエラーは、従来か
ら行われている第1のエラーチェックでは発見されない
。本発明は、この第1のエラーチェックを行った上に、
更に、次に述べるような第2のエラーチェックを行い、
上述の5行目に示すようなエラーを発見することができ
るようにしたものである。この第2のエラーチェックで
は、上述の4行目に示すようなエラーの発見まではでき
ない。したがって、100%の確率でエラーの発見がで
きるわけではない。しかしながら、従来から行われてい
る第1の工、ラーチェックに重ねてこの第2のエラーチ
ェックを行うことにより、エラー発見の確率は向上し、
信頼性をより高めることはできる。
。いま、第5図の1行目に示すようなビット列が正しい
状態で記録されたデータであるとする。この1行目のデ
ータを読出し、制御データRCBとセクタデータとに基
づいてエラーチェックコードBCCを発生させれば、こ
のコードBCCは記録されていたコードBCCと一致す
る。ところが、2行目に示すように、セクタデータの1
ビツトがいわゆる「データ化け」を起こした場合(この
例では、セクタデータの3ビツト目がOから1に変化し
てしまっている)を考える。この場合、この2行目のデ
ータを読出し、制御データRCBとセクタデータとに基
づいてエラーチェックコードBCCを発生させれば、こ
のコードBCCは記録されていたコードBCCとは一致
しなくなる。したがって、このような「データ化け」は
発見される。また、3行目に示すように、制御データR
CB内の1ビツトが「データ化け」を起こした場合も、
同様に発見される。ところが、4行目に示すように、セ
クタデータ内の2つのビットが「データ化け」を起こし
たり、5行目に示すように、セクタデータ内の1ビツト
と制御データRCB内の1ビツトが「データ化け」を起
こしたりした場合、2つの「データ化け」は相補的なも
のであり、データが異なってしまっているにもかかわら
ず、エラーチェックコートBCCは一致してしまう。す
なわち、4行目や5行目に示すようなエラーは、従来か
ら行われている第1のエラーチェックでは発見されない
。本発明は、この第1のエラーチェックを行った上に、
更に、次に述べるような第2のエラーチェックを行い、
上述の5行目に示すようなエラーを発見することができ
るようにしたものである。この第2のエラーチェックで
は、上述の4行目に示すようなエラーの発見まではでき
ない。したがって、100%の確率でエラーの発見がで
きるわけではない。しかしながら、従来から行われてい
る第1の工、ラーチェックに重ねてこの第2のエラーチ
ェックを行うことにより、エラー発見の確率は向上し、
信頼性をより高めることはできる。
第2のエラーチェックの原理は、制御データRCB内の
連結情報を利用して、レコード数を算出し、これをディ
レクトリ内に記録されたレコード数と比較するというも
のである。以下、この手順を、第6図の流れ図に基づい
て説明する。まず、ステップS1において、カウンタと
なる変数iを初期値0に設定する。この変数iによって
、レコード数を計数してゆくことになる。続くステップ
S2において、エラーチェックの対象となるファイルデ
ータが記録された領域から、制御データRCBの抽出が
行われる。上述の例によるデータAについての記録領域
には、第3図に示すように、10個の単位データが記録
されているので、この10個の単位データの1つ1つか
ら順番に制御データRCBが抽出されることになる。そ
して、ステップS3において、この抽出した制御データ
RCBのチエツクビットb8が「0」であるか否かが判
断される。前述したように、チエツクピットがrOJで
あれば、後続するセクタデータが有効であることを示す
。チエツクピットか「1」の場合には、後続するセクタ
データは無効、すなわち消去されているデータであるた
め、レコード数を計数する勘定に入れるべきではない。
連結情報を利用して、レコード数を算出し、これをディ
レクトリ内に記録されたレコード数と比較するというも
のである。以下、この手順を、第6図の流れ図に基づい
て説明する。まず、ステップS1において、カウンタと
なる変数iを初期値0に設定する。この変数iによって
、レコード数を計数してゆくことになる。続くステップ
S2において、エラーチェックの対象となるファイルデ
ータが記録された領域から、制御データRCBの抽出が
行われる。上述の例によるデータAについての記録領域
には、第3図に示すように、10個の単位データが記録
されているので、この10個の単位データの1つ1つか
ら順番に制御データRCBが抽出されることになる。そ
して、ステップS3において、この抽出した制御データ
RCBのチエツクビットb8が「0」であるか否かが判
断される。前述したように、チエツクピットがrOJで
あれば、後続するセクタデータが有効であることを示す
。チエツクピットか「1」の場合には、後続するセクタ
データは無効、すなわち消去されているデータであるた
め、レコード数を計数する勘定に入れるべきではない。
したがって、ステップS3において、チエツクピットが
「0」と判断された場合だけ、ステップS4の処理へと
進む。ステップS4では、チェーンビットb2b1か、
「00(チェーン無し)」または「10(F IRST
)Jであるか否かが判断される。これは、1レコードが
複数セクタに分割されて記録されていた場合に、レコー
ド数を重複して計数しないための処理である。ステップ
S4において、チェーンビットb2blが、「00(チ
ェーン無し)」またはrlO(F IRST)Jである
場合のみ、ステップS5におけるカウンタiの更新、す
なわち計数作業が行われる。1レコードが複数セクタに
分割されて記録されていた場合、いずれかの代表セクタ
を1回だけ計数すれば足りる。この実施例では、チェー
ンビットb2blが、[00(チェーン無し)」であれ
ば、複数セクタへの分割は行われていないのでそのまま
計数が行われ、rl O(F IRST)Jてあれば、
代表セクタとしてやはり計数が行われる。これに対し、
チェーンビットb2blが、rl 1 (MIDDLE
)Jやrol (LAST)Jであれば、既に「10(
F I R5T)Jで代表して計数が行われているため
、新たな計数は行わない。以上の計数手順を、ステップ
S6において、繰り返し行うことになる。
「0」と判断された場合だけ、ステップS4の処理へと
進む。ステップS4では、チェーンビットb2b1か、
「00(チェーン無し)」または「10(F IRST
)Jであるか否かが判断される。これは、1レコードが
複数セクタに分割されて記録されていた場合に、レコー
ド数を重複して計数しないための処理である。ステップ
S4において、チェーンビットb2blが、「00(チ
ェーン無し)」またはrlO(F IRST)Jである
場合のみ、ステップS5におけるカウンタiの更新、す
なわち計数作業が行われる。1レコードが複数セクタに
分割されて記録されていた場合、いずれかの代表セクタ
を1回だけ計数すれば足りる。この実施例では、チェー
ンビットb2blが、[00(チェーン無し)」であれ
ば、複数セクタへの分割は行われていないのでそのまま
計数が行われ、rl O(F IRST)Jてあれば、
代表セクタとしてやはり計数が行われる。これに対し、
チェーンビットb2blが、rl 1 (MIDDLE
)Jやrol (LAST)Jであれば、既に「10(
F I R5T)Jで代表して計数が行われているため
、新たな計数は行わない。以上の計数手順を、ステップ
S6において、繰り返し行うことになる。
第3図に示す例では、10回繰り返して行われ、そのう
ち、1回目(F I R3T) 、3回目(FIRST
) 、8回目(チェーン無し)、9回目(FIRST)
、においてのみ、ステップS5でiが更新される。この
結果、計数されたレコード数はi−4となる。最後に、
ステップS7において、デイレクトリム内に記録されて
いるレコード数と、この計数されたレコード数iとを比
較し、ステップS8で一致していれば、エラー無しと判
断してチエツクを終了する。不一致であれば、制御デー
タRCB内(あるいは、デイレクトリム内)にデータエ
ラーがあることが認識され、ステップS9における所定
のエラー処理を行うことになる。
ち、1回目(F I R3T) 、3回目(FIRST
) 、8回目(チェーン無し)、9回目(FIRST)
、においてのみ、ステップS5でiが更新される。この
結果、計数されたレコード数はi−4となる。最後に、
ステップS7において、デイレクトリム内に記録されて
いるレコード数と、この計数されたレコード数iとを比
較し、ステップS8で一致していれば、エラー無しと判
断してチエツクを終了する。不一致であれば、制御デー
タRCB内(あるいは、デイレクトリム内)にデータエ
ラーがあることが認識され、ステップS9における所定
のエラー処理を行うことになる。
たとえば、第3図に示す例において、単位データ5の制
御データRCBのチェーンピットが、本来は「11」で
あるべきところ「10」に変わる「データ化け」を起こ
し、同時に、セクタデータ内でも1ビット分の「データ
化け」を起こした場合を考えてみる。このように、同一
の単位データ内で2ビット分の「データ化け」が生じる
と、第1のエラーチェックではエラーが発見てきない。
御データRCBのチェーンピットが、本来は「11」で
あるべきところ「10」に変わる「データ化け」を起こ
し、同時に、セクタデータ内でも1ビット分の「データ
化け」を起こした場合を考えてみる。このように、同一
の単位データ内で2ビット分の「データ化け」が生じる
と、第1のエラーチェックではエラーが発見てきない。
ところが、第2のエラーチェックでは、このような「デ
ータ化け」か生じていると、単位データ5についての制
御データRCBを抽出したときに、rlO(F IRS
T)Jと判断され、lの更新が行われることになる。す
なわち、計数されたレコード数は4ではなく5となり不
一致が生じ、エラーが発見される。以上のように、第2
のエラーチェックを行えば、第1のエラーチェックで発
見されなかったエラーの発見が可能になり、エラーチェ
ックの信頼性をより高めることが可能になる。
ータ化け」か生じていると、単位データ5についての制
御データRCBを抽出したときに、rlO(F IRS
T)Jと判断され、lの更新が行われることになる。す
なわち、計数されたレコード数は4ではなく5となり不
一致が生じ、エラーが発見される。以上のように、第2
のエラーチェックを行えば、第1のエラーチェックで発
見されなかったエラーの発見が可能になり、エラーチェ
ックの信頼性をより高めることが可能になる。
以上、本発明を図示する一実施例に基づいて説明したが
、本発明はこの実施例のみに限定されるものではなく、
この他にも種々の態様で実施可能である。たとえば、上
述の実施例では、レコード数を計数する代表としてrl
O(F I R5T) Jを選んだが、rol (L
AST)Jを選ぶようにしてもかまわない。また、エラ
ーチェックコードとして、上述の実施例ではBCCコー
ドを例示したか、他のエラーチェックコードを用いても
勿論かまわない。
、本発明はこの実施例のみに限定されるものではなく、
この他にも種々の態様で実施可能である。たとえば、上
述の実施例では、レコード数を計数する代表としてrl
O(F I R5T) Jを選んだが、rol (L
AST)Jを選ぶようにしてもかまわない。また、エラ
ーチェックコードとして、上述の実施例ではBCCコー
ドを例示したか、他のエラーチェックコードを用いても
勿論かまわない。
以上のとおり本発明によれば、ICカードにおけるエラ
ーチェック方法において、エラーチェックコードに基づ
く第1のエラーチェックを行うとともに、連結情報に基
づいて算出したレコード数をディレクトリ内のレコード
数と比較する第2のエラーチェックを行うようにしたた
め、エラーチェックの信頼性を高めることが可能になる
。
ーチェック方法において、エラーチェックコードに基づ
く第1のエラーチェックを行うとともに、連結情報に基
づいて算出したレコード数をディレクトリ内のレコード
数と比較する第2のエラーチェックを行うようにしたた
め、エラーチェックの信頼性を高めることが可能になる
。
第1図(a)は−船釣なICカードを読取/書込装置に
接続した状態を示すブロック図、第1図(b)は同図(
a)に示されているEEPROM内のメモリマツプを示
す図、第2図は1つのファイルデータの構成を示す図、
第3図は記録された1つのファイルデータについてのメ
モリマツプの一例を示す図、第4図は第3図のメモリマ
ツプにおける制御データRCBのビット構成図、第5図
はエラーチェックコードによるチエツクの原理を説明す
る図、第6図は本発明特有のエラーチェックの手順を示
す流れ図である。 RCB・・・制御データ、RL・・・レコード長、BC
C・・・エラーチェックコード。 特許出願人 大日本印刷株式会社 出願人代理人 弁理士 志 村 浩V第 レコード 第2図 CB 第6図
接続した状態を示すブロック図、第1図(b)は同図(
a)に示されているEEPROM内のメモリマツプを示
す図、第2図は1つのファイルデータの構成を示す図、
第3図は記録された1つのファイルデータについてのメ
モリマツプの一例を示す図、第4図は第3図のメモリマ
ツプにおける制御データRCBのビット構成図、第5図
はエラーチェックコードによるチエツクの原理を説明す
る図、第6図は本発明特有のエラーチェックの手順を示
す流れ図である。 RCB・・・制御データ、RL・・・レコード長、BC
C・・・エラーチェックコード。 特許出願人 大日本印刷株式会社 出願人代理人 弁理士 志 村 浩V第 レコード 第2図 CB 第6図
Claims (1)
- 【特許請求の範囲】 EEPROMによって構成される記憶領域内に、複数
のレコードから構成される1つのファイルデータを、こ
のファイルデータについてのレコード数の情報を含むデ
ィレクトリとともに記録するICカードにおいて、 所定のセクタ長を定義し、各レコードを前記セクタ長を
1区切りとするセクタデータに分割し、1レコード内に
おけるこのセクタデータ同士の連結情報を含んだ制御デ
ータを作成し、前記セクタデータおよび前記制御データ
に基づいて所定のエラーチェックコードを作成し、前記
セクタデータに前記制御データおよび前記エラーチェッ
クコードを付加してなる単位データを、前記記録領域内
に記録しておき、 前記記録領域内に記録された各単位データを読出したと
きに、前記エラーチェックコードに基づく第1のエラー
チェックを行うとともに、読出した各単位データからそ
れぞれ制御データを抽出し、この制御データ内の連結情
報に基づいて、前記記録領域内に記録されているファイ
ルデータのレコード数を算出し、この算出したレコード
数と前記ディレクトリ内のレコード数とを比較し、不一
致が生じた場合にデータの記録にエラーが生じていると
認識する第2のエラーチェックを行うことを特徴とする
ICカードにおけるエラーチェック方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2293311A JP2864288B2 (ja) | 1990-10-29 | 1990-10-29 | Icカードにおけるエラーチェック方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2293311A JP2864288B2 (ja) | 1990-10-29 | 1990-10-29 | Icカードにおけるエラーチェック方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH04165487A true JPH04165487A (ja) | 1992-06-11 |
JP2864288B2 JP2864288B2 (ja) | 1999-03-03 |
Family
ID=17793196
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2293311A Expired - Lifetime JP2864288B2 (ja) | 1990-10-29 | 1990-10-29 | Icカードにおけるエラーチェック方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2864288B2 (ja) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0744425A (ja) * | 1993-07-29 | 1995-02-14 | Toshiba Corp | Icカードおよびicカード取扱装置 |
JP2005202822A (ja) * | 2004-01-19 | 2005-07-28 | Dainippon Printing Co Ltd | データ整合性検査を省けるicカードおよびicカード用プログラム |
-
1990
- 1990-10-29 JP JP2293311A patent/JP2864288B2/ja not_active Expired - Lifetime
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0744425A (ja) * | 1993-07-29 | 1995-02-14 | Toshiba Corp | Icカードおよびicカード取扱装置 |
JP2005202822A (ja) * | 2004-01-19 | 2005-07-28 | Dainippon Printing Co Ltd | データ整合性検査を省けるicカードおよびicカード用プログラム |
JP4601968B2 (ja) * | 2004-01-19 | 2010-12-22 | 大日本印刷株式会社 | データ整合性検査を省けるicカードおよびicカード用プログラム |
Also Published As
Publication number | Publication date |
---|---|
JP2864288B2 (ja) | 1999-03-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US4800520A (en) | Portable electronic device with garbage collection function | |
JP3122222B2 (ja) | メモリカード装置 | |
US4521872A (en) | Instruction storage | |
JPH04165487A (ja) | Icカードにおけるエラーチェック方法 | |
JP3471842B2 (ja) | データ管理装置、データ記憶装置およびデータ管理方法 | |
JP2808358B2 (ja) | Icカード | |
JPS6129024B2 (ja) | ||
JP3391475B2 (ja) | データの書き込み方法および読み出し方法ならびにこれらの方法を実施するデータ記録再生装置 | |
JP2910745B2 (ja) | 記憶装置及びデータ処理方法 | |
US5146458A (en) | Data transfer checking system | |
JP3130588B2 (ja) | 記憶媒体 | |
JPH09231113A (ja) | Icカード | |
JP2850049B2 (ja) | Icカード | |
JPH0435780B2 (ja) | ||
JP3129865B2 (ja) | データの検証方法 | |
JP3222592B2 (ja) | データの検証装置 | |
JPH0441375B2 (ja) | ||
JP4200362B2 (ja) | 記録媒体の記録制御方法、記録制御装置および電子機器 | |
JP2532057B2 (ja) | 誤り検出機能を備えたicカ−ド | |
JPS5987568A (ja) | Icカ−ド | |
JPH01273154A (ja) | Ecc回路付記憶装置 | |
JPS60258663A (ja) | メモリエラ−処理回路 | |
JPS60207989A (ja) | 電子装置の記録方式 | |
JPH06282702A (ja) | Cpuを内蔵した情報記録媒体 | |
JP2537198B2 (ja) | 携帯可能電子装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20081218 Year of fee payment: 10 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20091218 Year of fee payment: 11 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20101218 Year of fee payment: 12 |
|
EXPY | Cancellation because of completion of term |