JPH11110499A - 度数カウンタおよび度数カウント方法 - Google Patents

度数カウンタおよび度数カウント方法

Info

Publication number
JPH11110499A
JPH11110499A JP27422897A JP27422897A JPH11110499A JP H11110499 A JPH11110499 A JP H11110499A JP 27422897 A JP27422897 A JP 27422897A JP 27422897 A JP27422897 A JP 27422897A JP H11110499 A JPH11110499 A JP H11110499A
Authority
JP
Japan
Prior art keywords
frequency
count
counter
data
binary counter
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.)
Withdrawn
Application number
JP27422897A
Other languages
English (en)
Inventor
Yoshihiro Masana
芳弘 正名
Seiichi Yamazaki
誠一 山崎
Keiichi Ito
啓一 伊藤
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.)
Oki Electric Industry Co Ltd
Original Assignee
Oki Electric Industry Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Oki Electric Industry Co Ltd filed Critical Oki Electric Industry Co Ltd
Priority to JP27422897A priority Critical patent/JPH11110499A/ja
Priority to US09/166,846 priority patent/US6314155B1/en
Priority to EP98118965A priority patent/EP0909034B1/en
Priority to DE69838867T priority patent/DE69838867T2/de
Publication of JPH11110499A publication Critical patent/JPH11110499A/ja
Withdrawn legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03KPULSE TECHNIQUE
    • H03K21/00Details of pulse counters or frequency dividers
    • H03K21/40Monitoring; Error detection; Preventing or correcting improper counter operation
    • H03K21/403Arrangements for storing the counting state in case of power supply interruption

Landscapes

  • Read Only Memory (AREA)
  • Electric Clocks (AREA)
  • Manipulation Of Pulses (AREA)

Abstract

(57)【要約】 【課題】 不揮発性メモリの書き換え回数を低減する。 【解決手段】 度数カウンタ1は、度数データをカウン
トアップするバイナリカウンタ20を有するバイナリカ
ウンタ部11と、度数データを格納するEEPROM4
0を有するEEPROMカウンタ部12とを備えてい
る。度数カウント処理において、EEPROM40の度
数データはデータバスL1を介してバイナリカウンタ2
0にロードされ、バイナリカウンタ20はロードされた
度数データを所定度数カウントアップする。そしてカウ
ントアップされた度数データはデータバスL1を介して
EEPROM40に書き込まれ、EEPROM40の度
数データが更新される。バイナリカウンタ20において
度数をカウントアップすることにより、1度の度数カウ
ント処理でEEPROM40の書き換えは1回で済むこ
とになり、書き換え回数を低減できる。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、プリペードカード
等のICカードに用いられる、EEPROM等の不揮発
性メモリを備えた度数カウンタ、およびこの度数カウン
タを用いた度数カウント方法に関するものであり、特に
ショッピングのプリペードカードのように最大カウント
度数が大きく、1回に大度数をカウントする用途に好適
な度数カウンタおよび度数カウント方法に関するもので
ある。
【0002】
【従来の技術】従来のICカード用度数カウンタおよび
度数カウント方法としては、例えば特開平7−1414
78号公報に開示されたものがある。図13は従来の度
数カウンタおよび度数カウント処理を説明する図であ
る。従来の度数カウンタおよび度数カウント処理は、図
13(a)のように、EEPROM等の電気的に書き換
え可能な不揮発性メモリで構成された8ビットの塗りつ
ぶし型のカウンタを複数段設け、度数のカウントごとに
1ビットずつ”1”を書き込み塗りつぶしていき、1つ
の段が8ビット塗りつぶれたら、図13(b)のように
次の段を1ビット塗りつぶし、そのあと図13(c)の
ように、全て塗りつぶされた段の塗りつぶし型カウンタ
を”0”にクリアするものであった。
【0003】
【発明が解決しようとする課題】しかしながら上記従来
の度数カウンタおよび度数カウント方法では、EEPR
OMの動作保証書き換え回数が1万回程度であるという
制限があるため、ショッピングのプリペードカードのよ
うに最大度数が10万程度と大きい用途に対応できない
という問題があった。また、最大度数が大きいとEEP
ROMで構成された度数カウンタが大きくなるという欠
点があった。また、上記従来の方法は1度数ずつカウン
トするので、ショッピングのプリペードカードのように
1度に数百度数〜数万度数という大きな度数をカウント
する場合には処理に時間がかかるという欠点があった。
【0004】本発明はこのような従来の問題を解決する
ものであり、不揮発性メモリの書き換え回数を低減する
ことを目的とするものである。さらに、最大度数に対す
る不揮発性メモリのメモリセル数を低減し、不揮発性メ
モリを小さくすることを目的とするものである。さらに
また、カウント処理時間を短縮することを目的とするも
のである。
【0005】
【課題を解決するための手段】上記の目的を達成するた
めに本発明の度数カウンタは、度数データを格納する書
き換え可能な不揮発性メモリと、カウント動作により、
第1の度数データを所定度数カウントアップまたはカウ
ントダウンした第2の度数データを生成するバイナリカ
ウンタとを備え、前記第1の度数データを前記不揮発性
メモリセルから前記バイナリカウンタにロードし、前記
バイナリカウンタが生成した第2の度数データを前記不
揮発性メモリに書き込むことを特徴とする。
【0006】また本発明の度数カウント方法は、度数デ
ータを格納する書き換え可能な不揮発性メモリと、バイ
ナリカウンタとを備えた度数カウンタを用い、前記第1
の度数データを前記不揮発性メモリセルから前記バイナ
リカウンタにロードする処理と、前記バイナリカウンタ
をカウント動作させることにより、前記第1の度数デー
タを第2の度数データまでカウントアップまたはカウン
トダウンする処理と、前記第2の度数データを前記不揮
発性メモリに書き込む処理とを含むことを特徴とする。
【0007】
【発明の実施の形態】
実施の形態1 図1は本発明の実施の形態1の度数カウンタ1を示すブ
ロック構成図である。度数カウンタ1は、バイナリカウ
ンタ部11と、EEPROMカウンタ部12と、ロード
フラグ13と、データバスL1と、制御線部L2とを有
する。バイナリカウンタ部11は、バイナリカウンタ2
0と、キャリーフラグ21とを有する。EEPROMカ
ウンタ部12は度数データを格納するEEPROM40
を有する。
【0008】データバスL1は、8ビットのバスライン
b0,b1…b7からなり、バイナリカウンタ部11お
よびEEPROMカウンタ部12に接続している。制御
線部L2は、バイナリカウンタ部11、EEPROMカ
ウンタ部12、およびロードフラグ13を制御するため
の各制御線と、ロードフラグ13およびキャリーフラグ
21の出力信号線とを有する。バイナリカウンタ部11
を制御するための制御線部L2の制御線は、カウントア
ップパルスUP0,UP1…UP7、カウントロード信
号LD0,LD1,LD2、カウントストア信号RD
0,RD1,RD2、およびクリア信号CLRを伝送す
る各制御線からなる。
【0009】図2はバイナリカウンタ部11の回路図例
である。図2において、バイナリカウンタ部11は、バ
イナリカウンタ20と、キャリーフラグ21と、データ
バスL1の8ビットのバスラインb0〜b7に接続する
ための各接続端子と、カウントアップパルスUP0〜U
P7、ロード信号LD0〜LD2、カウントストア信号
RD0〜RD2、およびクリア信号CLRの各入力端子
と、キャリーフラグ出力端子F2とを有する。
【0010】バイナリカウンタ20は、(n+1)(n
は正の整数)ビットのビットカウンタCNT0,CNT
1…CNTnと、ORゲート(図2では22,23…2
8)とを有する。図2では最大度数が10万度数程度の
度数カウントを想定しており、n+1=17である。
【0011】ビットカウンタCNT0〜CNT16は同
一の内部構成を有する。ビットカウンタCNTi(iは
0からnまでの任意の整数)は、カウントアップパルス
の入力端子Uと、カウントロード信号LD(LD0〜L
D2のいずれか)の入力端子Lと、カウントストア信号
RD(RD0〜RD2のいずれか)の入力端子Rと、ク
リア信号CLRの入力端子Cと、データ入出力端子b
と、キャリー出力端子cyとを有する。
【0012】ビットカウンタCNT0,CNT8,CN
T16の端子bはデータバスL1のバスラインb0に、
CNT1,9の端子bはバス接続端子b1に、CNT
2,CNT10の端子bはバスラインb2に、CNT
3,CNT11の端子bはバスラインb3に、CNT
4,CNT12の端子bはバスラインb4に、CNT
5,CNT13の端子bはバス接続端子b5に、CNT
6,CNT14の端子bはバスラインb6に、CNT
7,CNT15の端子bはバスラインb7にそれぞれ接
続されている。CNT0〜CNT7の端子Lには信号L
D0が、CNT8〜CNT15の端子Lには信号LD1
が、またCNT16の端子Lには信号LD2がそれぞれ
入力される。CNT0〜CNT7の端子Rには信号RD
0が、CNT8〜CNT15の端子Rには信号RD1
が、またCNT16の端子Rには信号RD2がそれぞれ
入力される。
【0013】ビットカウンタCNT0〜CNT16は、
CNTj(jは0からn−1までの任意の整数)の端子
cyを次ビットのCNT(j+1)の端子Uに直接ある
いはORゲート22〜28のいずれかを通して接続する
ことにより、従属接続されている。CNT0の端子Uに
は信号UP0が入力される。CNT0とCNT1、CN
T3とCNT4、およびCNT9〜CNT16は直接接
続されている。また、CNT1とCNT2、CNT2と
CNT3、CNT4〜CNT9は、それぞれORゲート
22〜28を通して接続されている。CNT2の端子U
にはORゲート22を通してカウントアップパルスUP
1が入力され、CNT3の端子UにはORゲート23を
通してパルスUP2が入力され、CNT5の端子Uには
ORゲート24を通してパルスUP3が入力され、CN
T6の端子UにはORゲート25を通してパルスUP4
が入力され、CNT7の端子UにはORゲート26を通
してパルスUP5が入力され、CNT8の端子UにはO
Rゲート27を通してパルスUP6が入力され、またC
NT9の端子UにはORゲート28を通してパルスUP
7が入力される。
【0014】カウントアップパルスUP0〜UP7は、
それぞれカウントステップ値20 、22 、23 、25
6 、27 、28 、29 のカウントアップを実行するた
めのパルスである。カウントロード信号LD0〜LD2
は、EEPROMカウンタ部12(図1参照)に格納さ
れている度数データをデータバスL1を通してバイナリ
カウンタ20にロードするための信号である。カウント
ストア信号RD0〜RD2は、バイナリカウンタ20の
度数カウントデータをデータバスL1を通してEEPR
OMカウンタ部12に格納するための信号である。クリ
ア信号CLRはバイナリカウンタ20をクリアするため
の信号である。
【0015】キャリーフラグ21は、NORゲート2
9,30を有し、バイナリカウンタ20がオーバーフロ
ーしたか否かを示すキャリーフラグ出力F2をNORゲ
ート30の出力端子に生成する。NORゲート29の第
1の入力端子はバイナリカウンタ20の最上位ビットの
ビットカウンタCNT16の端子cyに接続され、第2
の入力端子はNORゲート30の出力端子に接続されて
いる。NORゲート30の第1の入力端子はNORゲー
ト29の出力端子に接続され、また第2の入力端子には
信号LD2が入力され、第3の入力端子には信号CLR
が入力される。キャリーフラグ21は、カウントロード
信号LD2またはクリア信号CLRが”H”レベルにな
ると、オーバーフローしていないことを示す論理レベ
ル”0”(”L”レベル)にキャリーフラグ出力F2を
クリアし、ビットカウンタCNT16の端子cyが”
H”になると、オーバーフローしたことを示す論理レベ
ル”1”(”H”)にキャリーフラグ出力F2をセット
する。
【0016】図3はバイナリカウンタ20のビットカウ
ンタCNTiの回路例である。ビットカウンタCNTi
は、D型フリップフロップ(D−F/F)31と、AN
Dゲート32,34,36と、インバータゲート33
と、ORゲート35と、トライステートゲート37とを
有する。また、図2において説明した、端子bと、端子
Uと、端子Lと、端子Rと、端子Cと、端子cyとを有
する。
【0017】D−F/F31は、立ち下がりトリガ型の
D−F/Fであり、内部信号L31が入力されるデータ
入力端子Dと、内部信号L32が入力されるセット端子
SETと、内部信号L35が入力されるリセット端子R
STと、端子U(カウントアップパルスUPの入力端
子)に接続されたクロック入力端子CLKと、カウント
ビットQiを生成するデータ出力端子Qと、内部信号L
31を生成する反転データ出力端子QBとを有する。
【0018】ANDゲート32は、データ入出端子bに
接続された第1の入力端子と、端子L(カウントロード
信号LDの入力端子)に接続された第2の入力端子と、
内部信号L32を生成する出力端子とを有する。インバ
ータゲート33は、データ入出端子bに接続された入力
端子と、端子bの信号を反転させた内部信号L33を生
成する出力端子とを有する。ANDゲート34は、内部
信号L33が入力される(すなわちインバータゲート3
3を介してデータ入出端子bに接続された)第1の入力
端子と、端子Lに接続された第2の入力端子と、内部信
号L34を生成する出力端子とを有する。ORゲート3
5は、内部信号L34が入力される第1の入力端子と、
端子C(クリア信号CLRの入力端子)に接続された第
2の入力端子と、内部信号L35を生成する出力端子と
を有する。
【0019】ANDゲート36は、カウントビットQi
が入力される第1の入力端子と、端子Uに接続された第
2の入力端子と、端子cyに接続され、キャリー信号
(桁上がり信号)cyを生成する出力端子とを有する。
トライステートゲート37は、カウントビットQiが入
力される入力端子と、データ入出力端子bに接続された
出力端子と、端子R(カウントストア信号RDの入力端
子)に接続された制御端子とを有し、制御端子が”H”
レベル(つまり端子Rから入力される信号が”H”レベ
ル)のとき、入力端子のカウントビットQiを出力端子
に生成してデータ入出力端子bに与え、制御端子が”
L”レベル(つまり端子Rから入力される信号が”L”
レベル)のとき、入力端子と出力端子との間を高インピ
ーダンス状態にする。
【0020】次にビットカウンタCNTiの動作を説明
する。図4はビットカウンタCNTiの動作を説明する
ためのタイミングチャートである。図4には、端子L
(カウントロード信号LD)、端子U(カウントアップ
パルスUP)、端子端子R(カウントストア信号R
D)、カウントビットQi、およびキャリー信号cyの
各波形を示してある。度数カウンタ1(図1参照)にお
ける処理は、EEPROMカウンタ部12(図1参照)
のEEPROM40に記憶されている度数データをバイ
ナリカウンタ20にロードするカウントロード処理と、
ロードした度数データを加算すべき度数だけカウントア
ップするカウントアップ処理と、カウントアップされた
度数データを新たな度数データとしてEEPROM40
に書き込むカウントストア処理とに大別される。図4に
おけるL端子が”H”レベルとなるタイミングT2以前
の期間はカウントロード処理に対応し、タイミングT2
〜T7の期間はカウントアップ処理に対応し、R端子
が”H”レベルとなるタイミングT7以降の期間はカウ
ントストア処理に対応する。
【0021】まず端子UおよびRが”L”レベルであ
り、データバスL1(図1参照)により端子bが”H”
レベルになっているときに、カウントロード信号LDに
より端子Lを”L”から”H”に変化させると、AND
ゲート32の入力端子が全て”H”になるので、D−F
/F31の端子SET(内部信号L32)が”H”にな
る。従ってD−F/F31の端子Qは”H”にセットさ
れ、カウントビットQiは”H”になる。次に端子L
を”H”にしたまま、データバスL1により端子bを”
L”に変化させると(T1)、内部信号L33が”H”
になり、ANDゲート34の入力端子が全て”H”にな
るので、D−F/F31の端子RST(内部信号L3
5)が”H”になる(このとき端子SETは”L”にな
る)。従ってD−F/F31の端子Qは”L”にセット
され、カウントビットQiは”L”になる。
【0022】すなわち、ビットカウンタCNTiは、端
子Lが”H”になると、端子bに与えられたデータをD
−F/F31にセットする。従って、EEPROM40
に記憶された度数データのビットをデータバスL1を介
して端子bに与え、端子Lを”H”にすれば、上記の度
数データのビットを対応するビットカウンタCNTiに
ロードすることができる。図2のバイナリカウンタ20
のように、(n+1)個のビットカウンタCNT0〜C
NTnを用いてバイナリカウンタを構成すれば、端子L
を”H”にすることにより、このバイナリカウンタに
(n+1)ビットの度数データをロードすることができ
る。
【0023】次に、端子UおよびRを”L”にしたま
ま、端子Lを”H”レベルから”L”に変化させ、端子
bに上記のビットデータを与えることを停止すると(T
2)、トライステートゲート37の入出力端子間は高イ
ンピーダンス状態なので、端子bはフローティング状態
になるが、カウントビットQiはD−F/F31によ
り”L”に保持される。次に端子Uにカウントアップパ
ルスUPを与え、最初のパルスが立ち下がると(T
3)、D−F/F31の端子Qは”L”から”H”に変
化し、カウントビットQiは”H”になる。この最初の
パルスの期間、キャリー信号cyは”L”のままであ
る。次に信号UPの2個目のパルスが立ち上がると(T
4)、ANDゲート36の入力端子が全て”H”になる
ので、キャリー信号cyは”L”から”H”に変化す
る。次に2個目のパルスの立ち下がりで(T5)、カウ
ントビットQiは”L”に反転し、またキャリー信号c
yも”L”に反転する。さらに、3個目のパルスの立ち
下がりで(T6)、カウントビットQiが再び”H”に
なる。
【0024】すなわち、ビットカウンタCNTiは、端
子Uから入力されるカウントアップパルスの立ち下がり
ごとに、カウントビットQiを”H”および”L”に交
互に反転させ、カウントビットQiが”H”から”L”
に変化するときには、キャリーパルスをcyから出力す
る。従って、図2のバイナリカウンタ20のように、
(n+1)個のビットカウンタCNT0〜CNTnを従
属接続すれば、初段のビットカウンタCNT0に入力さ
れるカウントアップパルスUP0のパルスの立ち下がり
ごとに1(=20 )ずつカウントアップする(n+1)
ビットのバイナリカウンタを構成できる。さらに、ビッ
トカウンタCNTjの端子cyとCNT(j+1)の端
子Uとの従属接続部の間に図2のようにORゲートを設
け、ビットカウンタCNT(j+1)の端子UにORゲ
ートを通してカウントアップパルスUP(j+1)(初
段のビットカウンタCNT0に入力される信号UP0と
は独立な信号)を入力できるようにすれば、カウントア
ップパルスUP(j+1)のパルスの立ち下がりごと
に、カウントステップ値2j+1 ずつカウントアップする
ことも可能になる。従って、上記のように構成したバイ
ナリカウンタは、カウントアップパルスUPiによりカ
ウントステップ値2i のカウントアップが可能となる。
なお、ORゲートは全ての従属接続部に設ける必要はな
く、例えば使用頻度の高いカウントステップ値に対応す
る従属接続部に設ければ良い。図2のバイナリカウンタ
20では、CNT1〜CNT3およびCNT4〜CNT
9の各従属接続部にORゲートを設けており、例えばカ
ウントアップパルスUP0により1ずつカウントアップ
し、ビットカウンタCNT8に入力されるカウントアッ
プパルスUP6により28 ずつカウントアップする。
【0025】次に、端子LおよびUを”L”にしたま
ま、カウントストア信号RDにより端子Rを”L”か
ら”H”に変化させると(T7)、タイミングT3、T
5、T6でそれぞれ反転し”H”となったカウントビッ
トQiがトライステート37により端子bに出力され
る。
【0026】すなわち、ビットカウンタCNTiは、端
子Rが”H”になると、カウントビットQiを端子bに
出力する。従って、カウントアップされたカウントビッ
トQiをデータバスL1を介してEEPROM40に与
え、EEPROM40に書き込む(EEPROM40の
度数データを更新する)ことができる。
【0027】図1に戻り、EEPROMカウンタ部12
のEEPROM40は、例えば17ビットのメモリセル
s0,s1…s16(図示せず)を有する。メモリセル
s0は度数データの最下位ビットすなわちカウントビッ
トQ0が書き込まれるセルであり、メモリセルs16は
度数データの最上位ビットすなわちカウントビットQ1
6が書き込まれるセルである。メモリセルs0〜s16
は3つのバイトに分かれており、データの書き換えはバ
イト単位に実行される。メモリセルs0〜s7は下位バ
イト、メモリセルs8〜s15は中位バイト、メモリセ
ルs16は上位バイトである。ここでは、最上位ビット
を含む上位バイトのデータを書き換えてから、中位バイ
トおよび下位バイトのデータを書き換えるものとする。
各バイトにおけるデータの書き換えは、バイト中の全て
のメモリセルのデータを消去し、そのあとバイト中の所
定のメモリセルにデータを書き込むことにより実行され
る。また、データ消去状態を度数データのビット値1に
対応させ、データ書き込み状態をビット値0に対応させ
る。また、メモリセルs0〜s16が全てデータ書き込
み状態であるときを度数データの初期値(=0)に対応
させ、メモリセルs0〜s16が全てデータ消去状態で
あるときを度数データの最大値に対応させる。
【0028】ロードフラグ13の構成は、例えば図2に
示すキャリーフラグ21の構成と同じように2つのNO
Rゲートを組み合わせたもので良く、その出力をロード
フラグ出力F1とする。ロードフラグ出力F1は、ここ
では論理レベル”1”のときカウントロード処理が実行
済みであることを示し、論理レベル”0”のときカウン
トロード処理が未実行であることを示すものとする。
【0029】次に、本発明の実施の形態1における度数
カウント処理について説明する。図5は本発明の実施の
形態1における度数カウント処理を示すフローチャート
である。また、図6は図5のステップS1におけるカウ
ントロード処理の詳細を示すフローチャートであり、図
7は図5のステップS2におけるカウントアップ処理の
詳細を示すフローチャートであり、図8は図5のステッ
プS4におけるカウントストア処理の詳細を示すフロー
チャートである。
【0030】以下の説明においては、度数カウンタ1は
図示しないICカードに実装されているものとする。ま
た、ここでは図5のステップS1、S2、S4の各処理
をICカードのコマンド処理とし、図5の度数カウント
処理全体を図示しない上位装置が制御するものとする。
すなわち、ICカードは、上位装置からのコマンドに従
い、カウントロード処理、カウントアップ処理、カウン
トストア処理の3つのコマンド処理を実行するものとす
る。なお、ICカード自身が図5の度数カウント処理全
体を制御するようにしても良い。
【0031】まず、図5の度数カウント処理全体のフロ
ーを説明する。ステップS1において、上位装置がIC
カードにカウントロードコマンドを与えると、ICカー
ドは、度数データを出力させるための制御信号をEEP
ROMカウンタ部12に与え、カウントロード信号LD
をバイナリカウンタ部11に与え、またロードフラグ1
3にフラグセットのための制御信号を与える。EEPR
OMカウンタ部12は、EEPROM40に記憶されて
いる(n+1)ビットの度数データNaをデータバスL
1に出力し、バイナリカウンタ部11は度数データNa
をデータバスL1からバイナリカウンタ20にロードす
るとともに、キャリーフラグ21を”0”にクリアし、
またロードーフラグ13を”1”にセットする(カウン
トロード処理)。図2ではキャリーフラグ出力F2の”
0”は”L”レベルに対応し、”1”は”H”レベルに
対応する。
【0032】ロードされた更新前の度数データNaは、
0または1の係数a0 ,a1 …anを用い、 Na=a0 ×20 +a1 ×21 …+an ×2n (1) と表記できる。
【0033】次にステップS2において、上位装置がI
Cカードに度数Nc1をカウントアップさせるためのカウ
ントアップコマンドを与えると、ICカードはカウント
アップパルスUPをバイナリカウンタ部11に与え、バ
イナリカウンタ部11は度数Nc1のカウントアップを実
行する(カウントアップ処理)。このカウントアップ処
理においては、カウントステップ値20 ,21 …2n
内の1つ以上の所定のカウントステップ値でそれぞれ1
回ずつカウントアップを実行する。もしも、バイナリカ
ウンタ部11のバイナリカウンタ20がオーバーフロー
した場合には、フラグ部21によりキャリーフラグF2
が”1”にセットされる。
【0034】カウント度数Nc1は、0または1の係数c
0 ,c1 …cn を用い、 Nc1=c0 ×20 +c1 ×21 …+cn ×2n (2) と表記できる。上位装置は、更新前度数データNaに新
たに加算すべき度数Ndが与えられると、0または正の
整数である係数d0 ,d1 …dn を用い、加算度数Nd
を Nd=d0 ×20 +d1 ×21 …+dn ×2n (3) のように展開し、加算度数Ndの係数di に基づいて、
カウント度数Nc1の係数ci を決め、ci =1であれ
ば、カウントステップ値2i のカウントアップを1回実
行させる。di =0のときはci =0とし、di ≧1の
ときはci =1とする。従ってNc1≦Ndである。これ
に対し、EEPROM40に新たに書き込むべき度数デ
ータ(更新度数データ)はNa+Ndである。なお、バ
イナリカウンタ部11が図2の構成であるときは、
1 ,c4 ,c10〜cn 、およびd1 ,d4 ,d10〜d
n は常に0である。
【0035】次にステップS3において、上位装置は、
ステップS2のカウントアップ処理におけるカウント度
数Nc1が加算度数Ndに等しかったか、それともNdよ
りも小さかったかを認識しており、Nc1<Ndの場合に
は、ステップS2に戻り、カウント度数Nc2をカウント
アップさせるためのカウントアップコマンドをICカー
ドに与え、バイナリカウンタ部11は、さらに度数Nc2
のカウントアップを実行する。
【0036】カウント度数Nc2は、0または1の係数e
0 ,e1 …en を用い、 Nc2=e0 ×20 +e1 ×21 …+en ×2n (4) と表記できる。ICカードは、加算度数Ndから既にカ
ウントアップ済みの度数Nc1を差し引いたNd−Nc1
を、0または正の整数である係数f0 ,f1 …fnを用
い、 Nd−Nc1=f0 ×20 +f1 ×21 …+fn ×2n (5) のように展開し、係数fi に基づいて、最初のカウント
アップ処理と同様に、カウント度数Nc2の係数ei =1
であれば、カウントステップ値2i のカウントアップを
実施させる。
【0037】このように、カウント度数の合計Nc(=
Nc1+Nc2+…)が加算度数Ndに等しくなるまで、ス
テップS2およびS3を繰り返し、Nc=Ndになった
ら、ステップS4に進む。
【0038】なお、ステップS2およびS3を繰り返さ
ずに、ステップS2において、カウントステップ値2i
のカウントアップを、1回ではなく、(3)式の係数d
i の値と同じ回数だけ実施するようにしても良い。この
場合には、カウント度数Nc1は、加算度数Ndに等し
く、 Nc1=d0 ×20 +d1 ×21 …+dn ×2n (2)′ である。
【0039】次にステップS4において、上位装置がカ
ウントストアコマンドをICカードに与えると、ICカ
ードは、ロードフラグ13のロードフラグ出力F1とキ
ャリーフラグ21のキャリーフラグ出力F2とを調べ、
ロードフラグ出力F1が”1”であり、かつキャリーフ
ラグ出力F2が”0”であれば、カウントストア信号R
Dをバイナリカウンタ部11に与え、度数データを書き
込むための制御信号をEPROMカウンタ部12に与え
る。バイナリカウンタ部11は、カウントアップ処理に
おいて生成した更新度数データNa+Ndをデータバス
L1に出力し、EEPROMカウンタ部12は上記の更
新度数データNa+NdをEEPROM40に書き込む
(カウントストア処理)。また、ICカードは、ロード
フラグ出力F1が”0”であるか、またはキャリーフラ
グ出力F2が”1”であれば、上記のカウントストア処
理を実行させずに、図5の処理を終了する。
【0040】次に、図5のステップS1におけるカウン
トロード処理について、図1、図2、図6を用いて詳細
に説明する。まずステップS10において、EPROM
カウンタ部12は、ICカードからの制御信号に従い、
EEPROM40に記憶されている17ビットの更新前
度数データNa=[a1615…a0 ]([ ]は2進表
記を示す)の内の下位の8ビットa0 〜a7 をデータバ
スL1に出力する。バイナリカウンタ部11は、上位装
置がカウントロード信号LD0を”L”レベルから”
H”レベルに変化させると、上記のビットa0 〜a7
データバスL1からビットカウンタCNT0〜CNT7
にロードする。なお、更新前度数データNa=[a16
15…a0 ]のロードを実施する前に、ロードフラグ13
は、ICカードからの制御信号に従い、”0”にリセッ
トされる。
【0041】次にステップS11において、EPROM
カウンタ部12は更新前度数データNa=[a1615
0 ]の次の8ビットa8 〜a15をデータバスL1に出
力し、バイナリカウンタ部11は、上位装置によりカウ
ントロード信号LD1が”H”に変化すると、度数カウ
ンタ1は上記のビットa8 〜a15をビットカウンタCN
T8〜CNT7にロードする。
【0042】次にステップS12において、EPROM
カウンタ部12は更新前度数データNa=[a1615
0 ]の最上位ビットa16をデータバスL1に出力し、
バイナリカウンタ部11は、上位装置によりカウントロ
ード信号LD2が”H”レベルに変化すると、上記のビ
ットa16をビットカウンタCNT16にロードするとと
もに、キャリーフラグ21を論理レベル”0”(”L”
レベル)にリセットする。
【0043】最後にステップS13において、ロードフ
ラグ13が、ICカードからの制御信号に従い、”1”
にセットされる。このロードフラグ13は、上位装置
が、カウントストア処理のときに、カウントロード処理
が実施済みである否かを判定するのみに用いられるもの
である。以上により、カウントロード処理を終了する。
【0044】次に、図5のステップS2におけるカウン
トアップ処理について、図1ないし図3、および図7を
用いて詳細に説明する。上位装置は加算度数Ndが与え
られると、これを(3)式に準じて、 Nd=d0 ×20 +d2 ×22 +d3 ×23 +d5 ×25 +d6 ×26 +d7 ×27 +d8 ×28 +d9 ×29 (6) のように展開し、(6)式の係数d0 ,d2 ,d3 ,d
5 〜d9 に基づいて、(2)式に示すカウント度数Nc1
の係数c0 ,c2 ,c3 ,c5 〜c9 を決める。そし
て、度数Nc1をカウントアップするカウントアップコマ
ンドをICカードに与え、ICカードは図7のカウント
アップ処理を実行する。まずステップS20において、
カウントステップ値20 のカウントアップを実行させる
か否かをカウント度数Nc1の係数c0 の値に基づいて判
断する。c0 =0ならば、20 のカウントアップを実行
させずに、ステップS22に進む。またc0 =1なら
ば、ステップS21において、カウントアップパルスU
P0を1個出力する。このパルスUP0はビットカウン
タCNT0の端子Uに与えられ、バイナリカウンタ部1
1は20 のカウントアップを1回実行する。
【0045】次に、ステップS20〜S21と同様にし
て、ステップS22〜S23において、カウントステッ
プ値22 のカウントアップについての処理を実行する。
すなわち、ステップ22において、カウント度数Nc1の
係数c2 =0ならば、22 のカウントアップを実行させ
ずに、ステップS24に進む。またc2 =1ならば、ス
テップS23において、カウントアップパルスUP1を
1個出力する。このパルスUP1はORゲート22を通
してビットカウンタCNT2の端子Uに与えられ、バイ
ナリカウンタ部11は22 のカウントアップを1回実行
する。
【0046】以下同様に、ステップS24〜S25にお
いてカウントステップ値23 のカウントアップについて
の処理、ステップS26〜S27においてカウントステ
ップ値25 のカウントアップについての処理、ステップ
S28〜S29においてカウントステップ値26 のカウ
ントアップについての処理、ステップS30〜S31に
おいてカウントステップ値27 のカウントアップについ
ての処理、ステップS32〜S33においてカウントス
テップ値28 のカウントアップについての処理、ステッ
プS34〜S35においてカウントステップ値29 のカ
ウントアップについての処理、をそれぞれ実行する。以
上により、図7のカウントアップ処理を終了する。
【0047】また、上記のカウントアップ処理中に、ビ
ットカウンタCNT16に桁上がりが発生し、キャリー
パルスが出力されると、キャリーフラグ21が”
1”(”H”レベル)にセットされる。キャリーフラグ
出力F2は、カウントアップ処理の開始前に、ロード信
号LD2により”0”(”L”レベル)にクリアされて
いる。
【0048】なお、カウントステップ値2i のカウント
アップを、1回ではなく、(3)式の係数di の値と同
じ回数だけ実行するようにしても良い。この場合には、
ステップS21,S23,S25,S27,S29,S
31,S33、S35において、加算度数Ndの係数d
i の値と同じ個数のカウントアップパルスUPをビット
カウンタCNTiに入力してやれば良い。
【0049】図9は図2に示す構成のバイナリカウンタ
11におけるカウントアップ処理の一例を示すタイミン
グチャートであり、カウントアップパルスUP0〜UP
7、およびカウントビットQ0〜Q16の波形を示して
ある。図9において、EEPROM40からロードされ
た更新前度数データNaは1500=[0 00000
101 1101 1100]であり、従ってカウントロ
ードが終了した段階で、バイナリカウンタ20のカウン
トビットQ0,Q1,Q5,Q9,Q11〜Q16は”
L”レベルになっており、カウントビットQ2〜Q4,
Q6〜Q8,Q10は”H”レベルになっている。ま
た、加算度数Ndは1000である。
【0050】 Nd=1000 =0×20 +0×22 +1×23 +1×25 +1×26 +1×27 +1×28 +1×29 (7) と展開できる。加算度数Ndの係数が全て0または1な
ので、カウント度数Nciは加算度数Ndと等しくなり、 Nci=1×23 +1×25 +1×26 +1×27 +1×28 +1×29 (8) である。従って、図5のステップS2に示すカウントア
ップ処理を1回実行すれば、加算度数Ndをカウントア
ップでき、カウントステップ値23 ,25 ,26,2
7 ,28 ,29 のカウントアップを各1回ずつ実行すれ
ば良い。すなわち、カウントアップパルスUP2、UP
3、UP4、UP5、UP6、UP7を各1回ずつタイ
ミングをずらしてバイナリカウンタ20に入力すれば良
い。なお、ここではビットカウンタCNTiのキャリー
出力cyをCYiとして説明する。
【0051】まず、カウントアップパルスUP2が、O
Rゲート23を通してビットカウンタCNT3の端子U
に入力され、タイミングT8で立ち下がると、ビットカ
ウンタCNT3において、カウントビットQ3が”H”
から”L”に反転するとともにキャリーパルスCY3が
出力され、このパルスCY3によりビットカウンタCN
T4のカウントビットQ4が”H”から”L”に反転す
るとともにキャリーパルスCY4が出力され、このパル
スCY4によりビットカウンタCNT5のカウントビッ
トQ5が”L”から”H”に反転する。すなわち、カウ
ントアップパルスUP2によりカウントステップ値23
のカウントアップが1回実行され、23=8度数をカウ
ントアップしたことになる。
【0052】次に、カウントアップパルスUP3が、O
Rゲート24を通してビットカウンタCNT5に入力さ
れ、タイミングT9で立ち下がると、ビットカウンタC
NT5のカウントビットQ5が”H”から”L”に反転
し、キャリーパルスCY5〜CY7によりビットカウン
タCNT6〜CNT8のカウントビットQ6〜Q8がそ
れぞれ”H”から”L”に反転し、キャリーパルスCY
8によりビットカウンタCNT9のカウントビットQ9
が”L”から”H”に反転する。すなわち、カウントア
ップパルスUP3により、カウントステップ値25 のカ
ウントアップが1回実行され、25 =32度数をカウン
トアップしたことになる。
【0053】次に、カウントアップパルスUP4が、O
Rゲート25を通してビットカウンタCNT6に入力さ
れ、タイミングT10で立ち下がると、ビットカウンタ
CNT6のカウントビットQ6が”L”から”H”に反
転する。すなわち、カウントアップパルスUP4によ
り、カウントステップ値26 のカウントアップが1回実
行され、26 =64度数をカウントアップしたことにな
る。
【0054】次に、カウントアップパルスUP5が、O
Rゲート26を通してビットカウンタCNT7に入力さ
れ、タイミングT11で立ち下がると、ビットカウンタ
CNT7のカウントビットQ7が”L”から”H”に反
転する。すなわち、カウントアップパルスUP5によ
り、カウントステップ値27 のカウントアップが1回実
施され、27 =128度数をカウントアップしたことに
なる。
【0055】次に、カウントアップパルスUP6が、O
Rゲート27を通してビットカウンタCNT8に入力さ
れ、タイミングT12で立ち下がると、ビットカウンタ
CNT8のカウントビットQ8が”L”から”H”に反
転する。すなわち、カウントアップパルスUP6によ
り、カウントステップ値28 のカウントアップが1回実
行され、28 =256度数をカウントアップしたことに
なる。
【0056】次に、カウントアップパルスUP7が、O
Rゲート28を通してビットカウンタCNT8に入力さ
れ、タイミングT13で立ち下がると、ビットカウンタ
CNT9のカウントビットQ9が”H”から”L”に反
転し、キャリーパルスCY9によりビットカウンタCN
T10のカウントビットQ10が”H”から”L”に反
転し、キャリーパルスCY10によりビットカウンタC
NT11のカウントビットQ11が”L”から”H”に
反転する。すなわち、カウントアップパルスUP7によ
り、カウントステップ値29 のカウントアップが1回実
行され、29 =512度数をカウントアップしたことに
なる。以上により、バイナリカウンタ部11において、
EEPROM40からロードされた更新前度数データN
a=1500が加算度数Nd=1000だけカウントア
ップされ、更新度数データNa+Nd=2500=[0
0000 1001 1100 0100]が生成され
る。
【0057】次に、図5のステップS4におけるカウン
トストア処理について、図1ないし図3、および図8を
用いて詳細に説明する。ステップS50において、IC
カードは、ロードフラグ13のロードフラグ出力F1お
よびキャリーフラグ21のキャリーフラグ出力F2を調
べ、ロードフラグ出力F1が”0”、またはキャリーフ
ラグ出力F2が”1”であれば、ステップS51〜S5
3の処理を実行させずに、図8の処理を終了する。すな
わち、ICカードは、カウントストア信号RDを”H”
レベルにせず、従って、度数カウンタ1はバイナリカウ
ンタ部11の度数データをEEPROMカウンタ部12
に書き込まない。このように、カウントロード処理が実
施されていない場合と、バイナリカウンタ部11がカウ
ントアップによりオーバーフローした場合には、EEP
ROMカウンタ部12の度数データを更新しない。
【0058】また、ロードフラグ出力F1が”1”、か
つキャリーフラグ出力F2が”0”であれば、ICカー
ドはステップS51〜S53の処理を実行し、度数カウ
ンタ1はバイナリカウンタ部11が生成した更新度数デ
ータNa+NdをEEPROMカウンタ部12に書き込
む。
【0059】まずステップS51において、ICカード
がカウントストア信号RD2を”H”に変化させると、
ビットカウンタCNT16は、トライステートゲート3
7を通してカウントビットQ16をデータバスL1のバ
スラインb0に出力し、EEPROMカウンタ部12は
更新度数データNa+Ndの最上位ビットとなるカウン
トビットQ16をEEPROM40の上位バイトのメモ
リセルs16に書き込む。
【0060】次にステップS52において、ICカード
がカウントストア信号RD1を”H”に変化させると、
ビットカウンタCNT8〜CNT15は、トライステー
トゲート37を通してカウントビットQ8〜Q15をデ
ータバスL1のバスラインb0〜b7にそれぞれ出力
し、EEPROMカウンタ部12は更新度数データNa
+Ndの中位の8ビットとなるカウントビットQ8〜Q
15をEEPROM40の中位バイトのメモリセルs8
〜s15に書き込む。
【0061】最後にステップS53において、ICカー
ドがカウントストア信号RD0を”H”に変化させる
と、ビットカウンタCNT0〜CNT7は、トライステ
ートゲート37を通してカウントビットQ0〜Q7をデ
ータバスL1のバスラインb0〜b7にそれぞれ出力
し、EEPROMカウンタ部12は、ICカードからの
制御信号に従い、更新度数データNa+Ndの下位の8
ビットとなるカウントビットQ0〜Q7をEEPROM
40の下位バイトのメモリセルs0〜s7に書き込む。
以上により、EEPROM40の17ビットの度数デー
タが更新前データNaから更新度数データNa+Ndに
書き換えられる。
【0062】ところで、EEPROM40は上述したよ
うにバイトごとにデータを書き換えるものであり、その
書き換え手順はバイト中の全てのメモリセルを消去状態
にしてから所定のメモリセルを書き込み状態にするとい
うものである。また、ここではEEPROM40のメモ
リセルが消去状態のときをビット値1、書き込み状態の
ときをビット値0に対応させている。従って、例えば下
位バイトのデータ書き換え手順は、最初にメモリセルs
0〜s7の全てを1に書き換え、次にビット値0のカウ
ントビットに対応するメモリセルを0に書き換えるとい
うものであり、また上位バイトのデータ書き換え手順
は、最初にメモリセルs16を1に書き換え、次にカウ
ントビットQ15が0であればメモリセルs16を0に
書き換えるというものである。そこで、図8のカウンタ
ストア処理のように、度数データの最上位ビットを含む
バイト(ここでは上位バイト)を最初に書き換えるよう
にすれば、カウンタストア処理中のいかなる瞬間におい
てもEEPROM40の度数データの値が更新前度数デ
ータNaよりも小さくなることはない。従って、万が
一、カウントストア処理の途中でICカード抜き取り等
により度数カウンタ1の電源断が生じても、度数データ
が逆戻りする方向すなわち更新前度数データNaよりも
小さな値に更新されることがない。
【0063】このように実施の形態1によれば、度数カ
ウンタ1にバイナリカウンタ部11とEEPROMカウ
ンタ部12を設け、EEPROMカウンタ部12のEE
PROM40に記憶されている度数データをバイナリカ
ウンタ部11のバイナリカウンタ20にロードし、バイ
ナリカウンタ20において所定度数カウントアップし、
カウントアップされた度数データをEEPROM40に
書き込むようにしたので、1回の度数カウント処理でE
EPROM40の書き換えが1回となり、EEPROM
40の書き換え回数に1万回程度の制限があっても、1
0万度数程度の度数カウントに対応できる。またバイナ
リデータをEEPROM40に書き込むようにしたの
で、従来の度数カウンタよりEEPROM40のメモリ
セル数を低減でき、EEPROM40を小さくすること
ができる。
【0064】また、度数カウンタ1に、カウントロード
処理が実施されたか否かを示すロードフラグ13と、バ
イナリカウンタ20がオーバーフローしか否かを示すキ
ャリーフラグ21とを設け、カウントロード処理が実施
されていないときと、バイナリカウンタ20がオーバー
フローしたときには、EEPROM40の度数データを
更新しないようにしたことにより、EEPROM40の
度数データが逆戻りする方向(減少する方向)に更新さ
れることがなく、従って度数カウンタ1が実装されたI
Cカードの不正使用を防止することができる。
【0065】また、EEPROM40のデータ消去状態
を度数データのビット値1に対応させ、カウントストア
処理のときに、度数データの最上位ビットが書き込まれ
るEEPROM40の上位バイトを最初に更新するよう
にしたことにより、カウントストア処理中にICカード
抜き取り等により電源断が生じても、EEPROM40
の度数データが逆戻りすることはなく、従って度数カウ
ンタ1が実装されたICカードの不正使用を防止するこ
とができる。
【0066】また、バイナリカウンタ20の任意のビッ
トカウンタCNTiにORゲートを介してカウントアッ
プパルスを入力できる構成とし、カウントステップ値2
i のカウントアップができるようにしたことにより、従
来のように1度数ずつカウントアップする場合よりも、
度数カウント処理時間を短くすることができる。
【0067】実施の形態2 図10は本発明の実施の形態2の度数カウンタ2を示す
ブロック構成図であり、図1と同じものには同一符号を
付してある。度数カウンタ2は、図1の度数カウンタ1
において、リチャージフラグ14を設け、バイナリカウ
ンタ部11をバイナリカウンタ部15とした構成になっ
ており、バイナリカウンタ部15と、EEPROMカウ
ンタ部12と、ロードフラグ13およびリチャージフラ
グ14と、データバスL1と、制御線部L3とを有す
る。バイナリカウンタ部15は、図1のバイナリカウン
タ部1において、バイナリカウンタ20をバイナリカウ
ンタ50とした構成となっており、バイナリカウンタ5
0とキャリーフラグ21とを有する。リチャージフラグ
14は、例えばロードフラグ13と同じ構成であり、そ
の出力をリチャージフラグ出力F3とする。制御線部L
3は、図1の制御線部L2において、リチャージフラグ
14を制御するための制御線およびリチャージフラグ1
4の出力信号線を設けたものである。
【0068】図11はバイナリカウンタ部15の回路図
例であり、図2と同じものには同一符号を付してある。
バイナリカウンタ50と図2のバイナリカウンタ20と
は、ORゲート22〜28を入れるビット位置が異なる
だけであり、このほかの構成は同じである。バイナリカ
ウンタ50は、ビットカウンタCNT0〜CNT7の従
属接続部にそれぞれORゲート22〜28を設けてお
り、カウントアップパルスUP0〜UP7をビットカウ
ンタCNT0〜CNT7の端子U(図3参照)にそれぞ
れ入力する構成となっている。
【0069】バイナリカウンタ50の動作は、図2のバ
イナリカウンタ20の動作とほぼ同じであるが、ORゲ
ート22〜28の位置が異なるため、1回でカウントア
ップできる桁(カウントステップ値)が若干異なる。バ
イナリカウンタ50においては、カウントアップパルス
UP0によりカウントステップ値(度数)20 (=
1)、UP1により21(=2)、1個のUP2により
2 (=4)、UP3により23(=8)、UP4によ
り24 (=16)、UP5によりで25 (=32)、U
P6により26 (=64)、UP7により27 (=12
8)のカウントアップが可能である。すなわち、20
7 までの全ての桁を1回でカウントアップすることが
可能である。従って、カウントアップパルスUP0〜U
P7を選択的に制御することにより、図5のステップS
2に示す1回のカウントアップ処理で、度数1〜255
を自由にカウントアップできる。これは、8ビットの加
算器と同等の動作ができることを示している。
【0070】本発明の実施の形態2においては、度数カ
ウント処理の他に、リチャージ処理を追加し、度数カウ
ンタ2のEEPROMカウンタ部12に記憶されている
度数データを任意の値に変更できるようにした。これに
より、例えば度数カウンタ2を実装したICカードの再
利用が可能になる。なお、実施の形態2における度数カ
ウント処理は、上記実施の形態1と同様に図5に示すフ
ローにより実施される。
【0071】本発明の実施の形態2におけるリチャージ
処理について以下に説明する。図12は本発明の実施の
形態2におけるリチャージ処理を示すフローチャートで
ある。以下の説明においては、上記第1の実施形態と同
様に、度数カウンタ2はICカードに実装されているも
のとし、また図12のリチャージ処理をカウントアップ
処理とを上位装置が制御するものとし、図12のリチャ
ージ処理をICカードのコマンド処理とする。なお、I
Cカード自身が図12のリチャージ処理とカウントアッ
プ処理とを制御するようにしても良い。
【0072】リチャージフラグ14は、リチャージコマ
ンドの実施許可/不許可を与えるフラグであり、ここで
は論理レベル”0”のとき実施不許可、論理レベル”
1”のとき実施許可であるものとする。リチャージフラ
グ14は、ICカードの活性化時(ショッピング等に用
いられ、度数データが記憶されており、度数カウント処
理が可能なとき)にはクリアされ”0”になっている。
【0073】リチャージ処理を実行するためには、セキ
ュリティ上、パスワード照合や認証処理等の実行許可を
とる処理が必要であり、この処理を正しく実行すると、
リチャージフラグ14は”1”にセットされる。これは
度数カウンタが不正にリチャージされるのを防止するた
めである。
【0074】上位装置からリチャージコマンドが出され
ると、ICカードは図12のリチャージ処理を実施す
る。まず、ステップS60において、リチャージフラグ
14のリチャージフラグ出力F3が”1”かどうかを調
べる。リチャージフラグ出力F3が”0”ならば、リチ
ャージの実行不許可と判断し、図12の処理を終了す
る。またリチャージフラグ出力F3が”1”ならば、ス
テップS61〜S62の処理を実施する。
【0075】ステップS61において、ICカードは度
数カウンタ2にクリア信号CLRを出力し、このクリア
信号CLRにより、バイナリカウンタ部15のビットカ
ウンタCNT0〜CNT16はカウントビットQ0〜Q
16を”0”(”L”)にクリアし、またキャリーフラ
グ21を”0”(”L”)にクリアする。
【0076】次にステップS62において、ICカード
はロードフラグ13にフラグセットのための制御信号を
与え、ロードフラグ13を”1”にセットする。ステッ
プS61およびS62の処理により、バイナリカウンタ
50のカウント値は初期値(=0)に戻され、ロードフ
ラグ出力F1はカウントストア処理の許可を示す”1”
にセットされ、リチャージコマンド処理を終了する。
【0077】次にカウントストア処理を実行すると、E
EPROMカウンタ部12に初期値の度数データが書き
込まれ、度数カウンタ2がリチャージされたことにな
る。なお、カウントストア処理の前にカウントアップ処
理を実行すれば、度数カウンタ2を任意の値にリチャー
ジすることができる。なお、リチャージコマンド処理内
で、カウントストア処理まで行っても良いが、任意の値
にリチャージすることを考えると、EEPROMの書き
換え回数を少なくできるので、カウントストア処理を別
々に行ったほうが良い。
【0078】このように実施の形態2によれば、度数カ
ウンタ2にリチャージ処理の許可/不許可を示すリチャ
ージフラグ14を設け、パスワード照合等の処理が済ん
でリチャージが許可され、リチャージフラグ14がセッ
トされているときに、EEPROM40に初期値(=
0)あるいは任意の度数データを書き込むためのリチャ
ージ処理を実施できるようにしたことにより、ICカー
ドを再利用することができる。
【0079】また、カウントアップパルスUP0〜UP
7をバイナリカウンタ20のビットカウンタCNT0〜
CNT7の端子Uに入力できる構成とすることにより、
1〜256の任意のカウントステップ値でのカウントア
ップを可能とし、8ビットの加算器と同等の機能をカウ
ンタのみで実現したことにより、度数カウント処理の時
間を短縮することができる。
【0080】なお、上記実施の形態1および2では、カ
ウントアップにより度数をカウントしているが、カウン
トダウンでも良いことは言うまでもない。
【0081】また、カウントステップ値2i のカウント
をするためのORゲートのバイナリカウンタにおける位
置および数、ならびにバイナリカウンタのビット数すな
わちビットカウンタの数は、図2および図11に示すも
のに限定されるものではないく、任意に設定可能であ
る。さらに、ロードフラグ13、キャリーフラグ21、
およびリチャージフラグ14の極性も、上記実施の形態
1および2に限定されるものではない。
【0082】また、上記実施の形態1および2では、E
EPROM40の度数データの書き換えは、バイト単位
でデータを書き換えるバイトライトであるが、全ビット
を同時に書き換えるページライトとしても良い。ページ
ライトでは消去状態でICカード抜き取り等が発生した
場合に、全ビット値が1の使用完了状態になるので、よ
り安全である。
【0083】また、上記実施の形態1および2では、1
個のカウントアップコマンド処理で複数の桁のカウント
アップをしているが、1コマンド処理で1つの桁のカウ
ントアップをするようにしても良い。
【0084】
【発明の効果】以上説明したように本発明の請求項1記
載の度数カウンタおよび請求項7記載の度数カウント方
法によれば、度数カウンタにバイナリカウンタと不揮発
性メモリとを設け、不揮発性メモリに記憶されている度
数データをバイナリカウンタにロードし、バイナリカウ
ンタにおいて所定度数カウントアップし、カウントアッ
プされた度数データを不揮発性メモリに書き込むように
したので、1回の度数カウント処理での不揮発性メモリ
の書き換えが1回となり、大きな度数に対応できるとい
う効果がある。またバイナリデータを不揮発性メモリに
書き込むようにしたので、従来よりも不揮発性メモリの
メモリセル数を低減でき、不揮発性メモリを小さくでき
るという効果がある。
【0085】また、本発明の請求項2記載の度数カウン
タおよび請求項8記載の度数カウント方法によれば、度
数カウンタに、カウントロード処理が実施されたか否か
を示す第1のロードフラグと、バイナリカウンタがオー
バーフローしか否かを示す第2のフラグとを設け、カウ
ントロード処理が実施されていないときと、バイナリカ
ウンタがオーバーフローしたときには、不揮発性メモリ
の度数データを更新しないようにしたことにより、不揮
発性メモリの度数データが減少する方向に更新されるこ
とがなく、従って例えば度数カウンタをICに実装した
場合にICカードの不正使用を防止できるという効果が
ある。
【0086】また、本発明の請求項3記載の度数カウン
タおよび請求項9記載の度数カウント方法によれば、度
数カウンタにリチャージ処理の許可/不許可を示す第3
のフラグを設け、リチャージが許可され、第3のフラグ
がセットされているときに、不揮発性メモリに初期値
(=0)あるいは任意の度数データを書き込むためのリ
チャージ処理を実施できるようにしたことにより、例え
ば度数カウンタをICに実装した場合にICカードを再
利用できるという効果がある。
【0087】また、本発明の請求項4および5記載の度
数カウンタならびに請求項10記載の度数カウント方法
によれば、バイナリカウンタにおいてカウントステップ
値2i のカウントアップができるようにしたことによ
り、従来のように1度数ずつカウントアップする場合よ
りも、度数カウント処理時間を短くできるという効果が
ある。
【0088】また、本発明の請求項11および12記載
の度数カウント方法によれば、不揮発性メモリのデータ
消去状態を度数データのビット値1に対応させ、カウン
トストア処理のときに、度数データの最上位ビットが書
き込まれる不揮発性メモリのバイトを最初に、あるいは
不揮発性メモリの全てのメモリセルを同時に、更新する
ようにしたことにより、カウントストア処理中に電源断
が生じても、不揮発性メモリの度数データが減少する方
向に更新されることはなく、従って例えば度数カウンタ
をICに実装した場合にICカードの不正使用を防止で
きるという効果がある。
【図面の簡単な説明】
【図1】本発明の実施の形態1の度数カウンタを示すブ
ロック構成図である。
【図2】本発明の実施の形態1の度数カウンタにおける
バイナリカウンタ部の回路図例である。
【図3】本発明の実施の形態1の度数カウンタのバイナ
リカウンタ部におけるビットカウンタの回路図例であ
る。
【図4】本発明の実施の形態1の度数カウンタにおける
ビットカウンタの動作を説明するためのタイミングチャ
ートである。
【図5】本発明の実施の形態1の度数カウンタにおける
度数カウント処理を示すフローチャートである。
【図6】図5のステップS1におけるカウントロード処
理の詳細を示すフローチャートである。
【図7】図5のステップS2におけるカウントアップ処
理の詳細を示すフローチャートである。
【図8】図5のステップS4におけるカウントストア処
理の詳細を示すフローチャートである。
【図9】本発明の実施の形態1の度数カウンタにおける
カウントアップ処理を示すタイミングチャートである。
【図10】本発明の実施の形態2の度数カウンタを示す
ブロック構成図である。
【図11】本発明の実施の形態2の度数カウンタにおけ
るバイナリカウンタ部の回路図例である。
【図12】本発明の実施の形態2の度数カウンタにおけ
るリチャージ処理を示すフローチャートである。
【図13】従来の度数カウンタおよび度数カウント処理
を説明する図である。
【符号の説明】
1,2 度数カウンタ、 11,15 バイナリカウン
タ部、 12 EEPROMカウンタ部、 13 ロー
ドフラグ、 14 リチャージフラグ、 21キャリー
フラグ、 20,50 バイナリカウンタ、 31 D
型フリップフロップ、 40 EEPROM、 CNT
0〜CNT16 ビットカウンタ、UP0〜UP7 カ
ウントアップパルス。

Claims (12)

    【特許請求の範囲】
  1. 【請求項1】 度数データを格納する書き換え可能な不
    揮発性メモリと、 カウント動作により、第1の度数データを所定度数カウ
    ントアップまたはカウントダウンした第2の度数データ
    を生成するバイナリカウンタとを備え、 前記第1の度数データを前記不揮発性メモリセルから前
    記バイナリカウンタにロードし、前記バイナリカウンタ
    が生成した第2の度数データを前記不揮発性メモリに書
    き込むことを特徴とする度数カウンタ。
  2. 【請求項2】 前記第1の度数データのロードを開始す
    る前にクリアされ、前記第1の度数データがロードされ
    たあとにセットされる第1のフラグと、 前記カウント動作を開始する前にクリアされ、前記バイ
    ナリカウンタがオーバーフローするとセットされる第2
    のフラグとをさらに備えたことを特徴とする請求項1記
    載の度数カウンタ。
  3. 【請求項3】 前記バイナリカウンタのデータクリアが
    許可されたときにセットされ、前記データクリアが実施
    されたあとにクリアされる第3のフラグをさらに備えた
    ことを特徴とする請求項2記載の度数カウンタ。
  4. 【請求項4】 前記度数データが、(n+1)(nは正
    の整数)ビットのデータであり、 前記バイナリカウンタが、カウントステップ値2i (i
    は0〜nまでの任意の整数)のカウント動作をするもの
    であることを特徴とする請求項1記載の度数カウンタ。
  5. 【請求項5】 前記バイナリカウンタが、 従属接続された(n+1)個のフリップフロップを有
    し、 任意の前記フリップフロップに外部から動作クロックを
    入力することにより、前記カウントステップ値2i のカ
    ウント動作をするものであることを特徴とする請求項4
    記載の度数カウンタ。
  6. 【請求項6】 ICカードに実装されていることを特徴
    とする請求項1記載の度数カウンタ。
  7. 【請求項7】 度数データを格納する書き換え可能な不
    揮発性メモリと、バイナリカウンタとを備えた度数カウ
    ンタを用い、 前記第1の度数データを前記不揮発性メモリセルから前
    記バイナリカウンタにロードする処理と、 前記バイナリカウンタをカウント動作させることによ
    り、前記第1の度数データを第2の度数データまでカウ
    ントアップまたはカウントダウンする処理と、 前記不揮発性メモリの度数データを前記第2の度数デー
    タに更新する処理とを含むことを特徴とする度数カウン
    ト方法。
  8. 【請求項8】 前記度数カウンタに、第1のフラグと、
    前記バイナリカウンタがオーバーフローしたときにのみ
    セットされる第2のフラグとを設け、 前記バイナリカウンタに前記第1の度数データをロード
    したあとに前記第1のフラグをセットする処理をさらに
    含み、 前記第1のフラグがセットされており、かつ前記第2の
    フラグがクリアされているときにのみ、前記第2のデー
    タを前記不揮発性メモリに書き込む前記処理を実施する
    ことを特徴とする請求項7記載の度数カウント方法。
  9. 【請求項9】 前記度数カウンタに、第3のフラグを設
    け、 前記バイナリカウンタのデータクリアが許可されたら前
    記第3のフラグをセットする処理と、 前記第3のフラグがセットされているときにのみ、前記
    バイナリカカウンタをデータクリアする処理と、 前記バイナリカウンタがデータクリアされたあとに前記
    第1のフラグをセットする処理とをさらに含み、 前記第3のフラグがセットされているときにのみ、前記
    データクリア処理を実施することを特徴とする請求項8
    記載の度数カウント方法。
  10. 【請求項10】 前記度数データが、(n+1)ビット
    のデータであり、 前記バイナリカウンタが、カウントステップ値2i のカ
    ウント動作をするものであり、 カウントアップまたはカウントダウンする前記処理が、
    選択した1つまたは複数のカウントステップ値で、それ
    ぞれ所定回数ずつ前記バイナリカウンタをカウント動作
    させるものであることを特徴とする請求項7記載の度数
    カウント方法。
  11. 【請求項11】 前記度数データを更新する処理が、 前記不揮発性メモリのメモリセルをバイト単位で更新
    し、 前記メモリセルのデータ消去状態を前記度数データのビ
    ット値1に対応させ、 前記度数データの最上位ビットが書き込まれるバイトを
    最初に更新するものであることを特徴とする請求項7記
    載の度数カウント方法。
  12. 【請求項12】 前記度数データを更新する処理が、 前記不揮発性メモリのメモリセルを全て同時に更新し、 前記メモリセルのデータ消去状態を前記度数データのビ
    ット値1に対応させるものであることを特徴とする請求
    項7記載の度数カウント方法。
JP27422897A 1997-10-07 1997-10-07 度数カウンタおよび度数カウント方法 Withdrawn JPH11110499A (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
JP27422897A JPH11110499A (ja) 1997-10-07 1997-10-07 度数カウンタおよび度数カウント方法
US09/166,846 US6314155B1 (en) 1997-10-07 1998-10-06 Counting circuit with rewritable non-volatile memory, and counting method
EP98118965A EP0909034B1 (en) 1997-10-07 1998-10-07 Counting circuit with rewritable non-volatile memory and counting method
DE69838867T DE69838867T2 (de) 1997-10-07 1998-10-07 Zählerschaltung mit wiederbeschreibbarem Speicher und Zählverfahren

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP27422897A JPH11110499A (ja) 1997-10-07 1997-10-07 度数カウンタおよび度数カウント方法

Publications (1)

Publication Number Publication Date
JPH11110499A true JPH11110499A (ja) 1999-04-23

Family

ID=17538809

Family Applications (1)

Application Number Title Priority Date Filing Date
JP27422897A Withdrawn JPH11110499A (ja) 1997-10-07 1997-10-07 度数カウンタおよび度数カウント方法

Country Status (4)

Country Link
US (1) US6314155B1 (ja)
EP (1) EP0909034B1 (ja)
JP (1) JPH11110499A (ja)
DE (1) DE69838867T2 (ja)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100334535B1 (ko) * 2000-02-18 2002-05-03 박종섭 멀티 비트 카운터
US6922456B2 (en) * 2002-03-25 2005-07-26 Hewlett-Packard Development Company, L.P. Counter system and method
US7157953B1 (en) * 2005-04-12 2007-01-02 Xilinx, Inc. Circuit for and method of employing a clock signal

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4109283A (en) * 1976-05-21 1978-08-22 Rca Corporation Frequency counter for a television tuning system
US4456876A (en) * 1982-06-14 1984-06-26 At&T Technologies, Inc. Frequency counter
FR2605765A1 (fr) 1986-10-28 1988-04-29 Eurotechnique Sa Procede d'adressage d'une memoire et compteur d'adressage pour la mise en oeuvre du procede
DE3638505C2 (de) 1986-11-11 1995-09-07 Gao Ges Automation Org Datenträger mit integriertem Schaltkreis
FR2678094B1 (fr) 1991-06-20 1993-10-08 France Telecom Carte a memoire de comptage de donnees et appareil de lecture.
EP0662691B1 (en) 1993-12-28 1999-07-07 STMicroelectronics S.r.l. Count unit for non volatile memories

Also Published As

Publication number Publication date
DE69838867T2 (de) 2008-12-04
DE69838867D1 (de) 2008-01-31
EP0909034B1 (en) 2007-12-19
EP0909034A3 (en) 2000-04-12
US6314155B1 (en) 2001-11-06
EP0909034A2 (en) 1999-04-14

Similar Documents

Publication Publication Date Title
JPWO2006129779A1 (ja) 半導体記憶装置
JPWO2006129780A1 (ja) シーケンシャル書込においてベリファイ処理を行う不揮発性メモリ
JPH077904B2 (ja) パルス発生回路
JPH11110499A (ja) 度数カウンタおよび度数カウント方法
US5627795A (en) Timing generating device
US8520447B2 (en) Semiconductor memory device and method of operating the same
CN104051023A (zh) 侦测电路及侦测方法
CN117688744A (zh) 一种注塑设备工艺参数优化方法、装置、设备、存储介质
RU2313125C1 (ru) Генератор случайной последовательности
CN108962322B (zh) 使用非易失性存储器来实施非易失性计数器的方法和系统
JPS6095651A (ja) 記憶装置
US4195339A (en) Sequential control system
JPS5842890B2 (ja) デイジタル微分解析機
JP2001014841A (ja) データ記憶装置
GB2403082A (en) Arrangement and method for a digital delay line
US6229369B1 (en) Clock control circuit
US6917957B2 (en) Method and apparatus for performing modular division using counters
US5946369A (en) High-speed binary synchronous counter with precomputation of carry-independent terms
JP2002279792A (ja) 半導体集積回路装置
JPH1021146A (ja) 度数カウント装置
JP2005165502A (ja) Lut符号化方法及びlut符号化装置並びにlutカスケード論理回路
US6345008B1 (en) Fast reprogrammable FIFO status flags system
RU2231921C2 (ru) Троичное счетное устройство
KR100634925B1 (ko) 연속 카운트를 생성하기 위한 어셈블리
KR100247062B1 (ko) 링구조를 갖는 선입선출 방식 및 회로

Legal Events

Date Code Title Description
A300 Application deemed to be withdrawn because no request for examination was validly filed

Free format text: JAPANESE INTERMEDIATE CODE: A300

Effective date: 20041207