JPH0327951B2 - - Google Patents

Info

Publication number
JPH0327951B2
JPH0327951B2 JP11272882A JP11272882A JPH0327951B2 JP H0327951 B2 JPH0327951 B2 JP H0327951B2 JP 11272882 A JP11272882 A JP 11272882A JP 11272882 A JP11272882 A JP 11272882A JP H0327951 B2 JPH0327951 B2 JP H0327951B2
Authority
JP
Japan
Prior art keywords
bar
register
recognized
width value
constant
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 - Lifetime
Application number
JP11272882A
Other languages
Japanese (ja)
Other versions
JPS593590A (en
Inventor
Shigeru Yamada
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.)
Casio Computer Co Ltd
Original Assignee
Casio Computer 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 Casio Computer Co Ltd filed Critical Casio Computer Co Ltd
Priority to JP11272882A priority Critical patent/JPS593590A/en
Publication of JPS593590A publication Critical patent/JPS593590A/en
Publication of JPH0327951B2 publication Critical patent/JPH0327951B2/ja
Granted legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H01ELECTRIC ELEMENTS
    • H01LSEMICONDUCTOR DEVICES NOT COVERED BY CLASS H10
    • H01L21/00Processes or apparatus adapted for the manufacture or treatment of semiconductor or solid state devices or of parts thereof
    • H01L21/02Manufacture or treatment of semiconductor devices or of parts thereof
    • H01L21/02041Cleaning
    • H01L21/02057Cleaning during device manufacture
    • H01L21/0206Cleaning during device manufacture during, before or after processing of insulating layers
    • H01L21/02063Cleaning during device manufacture during, before or after processing of insulating layers the processing being the formation of vias or contact holes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06KGRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
    • G06K7/00Methods or arrangements for sensing record carriers, e.g. for reading patterns
    • G06K7/10Methods or arrangements for sensing record carriers, e.g. for reading patterns by electromagnetic radiation, e.g. optical sensing; by corpuscular radiation
    • G06K7/10544Methods or arrangements for sensing record carriers, e.g. for reading patterns by electromagnetic radiation, e.g. optical sensing; by corpuscular radiation by scanning of the records by radiation in the optical part of the electromagnetic spectrum
    • G06K7/10821Methods or arrangements for sensing record carriers, e.g. for reading patterns by electromagnetic radiation, e.g. optical sensing; by corpuscular radiation by scanning of the records by radiation in the optical part of the electromagnetic spectrum further details of bar or optical code scanning devices
    • G06K7/10881Methods or arrangements for sensing record carriers, e.g. for reading patterns by electromagnetic radiation, e.g. optical sensing; by corpuscular radiation by scanning of the records by radiation in the optical part of the electromagnetic spectrum further details of bar or optical code scanning devices constructional details of hand-held scanners

Landscapes

  • Physics & Mathematics (AREA)
  • Engineering & Computer Science (AREA)
  • Electromagnetism (AREA)
  • General Physics & Mathematics (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Computer Hardware Design (AREA)
  • Manufacturing & Machinery (AREA)
  • Power Engineering (AREA)
  • Condensed Matter Physics & Semiconductors (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Toxicology (AREA)
  • Artificial Intelligence (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Theoretical Computer Science (AREA)

Description

【発明の詳細な説明】 本発明はバーコード認識装置に関する。[Detailed description of the invention] The present invention relates to a barcode recognition device.

POSシステム等においては、商品の区分、価
格などをバーコードを用いてラベルに記録してい
る。上記バーコードは、JAN規格と共に、NW
−7規格のものが一般に使用されている。この
NW−7規格においては、第1図に示すように細
いバーを“0”、太いバーを“1”として白黒合
計7本のバーにより1キヤラクタを構成してい
る。そして、上記バーコードは光学的にその読取
りが行なわれる。上記のようにPOSシステムに
おいてバーコードを使用することにより、販売商
品の値段合計、集計等の演算処理を迅速、かつ、
確実に行なうことができる。しかして、上記バー
コードの読取装置として、定置スキヤナとハンド
スキヤナが一般に使用されている。上記ハンドス
キヤナに手動でバーコード上で捜査するので、走
査速度が変化し、バーコードのパターンと読取つ
た後の電気的なパターンとの間に長短のずれが生
じ、読取り精度が低下する。このような問題を無
くすために、従来ではバーの幅値を次のようにし
て求めている。
In POS systems, etc., product classification, price, etc. are recorded on labels using barcodes. The barcode above is the same as the JAN standard.
-7 standard is generally used. this
In the NW-7 standard, as shown in FIG. 1, one character is composed of a total of seven black and white bars, with thin bars being "0" and thick bars being "1". The barcode is read optically. As mentioned above, by using barcodes in a POS system, calculation processing such as totaling the price of sold products and aggregation can be done quickly and
It can be done reliably. Therefore, stationary scanners and hand scanners are generally used as barcode reading devices. Since the hand scanner manually scans the barcode, the scanning speed changes, and a length difference occurs between the barcode pattern and the electrical pattern after it is read, reducing the reading accuracy. In order to eliminate such problems, the bar width value has conventionally been determined as follows.

(a) 前回バーの幅値に定数Kを掛けてスレツシユ
ホールド値THを求めると共に、前回バーの幅
値に定数1/Kを掛けてスレツシユホールド値
TLを求める。
(a) Multiply the width value of the previous bar by a constant K to obtain the threshold value T H , and multiply the width value of the previous bar by a constant 1/K to obtain the threshold value.
Find T L.

(b) 上記スレツシユホールド値TH、TLで、今読
取つたバーの幅値Mを比較して次のようにその
幅を決定する。
(b) Compare the width value M of the bar just read with the threshold values T H and T L to determine the width as follows.

M<TL……前回バーより小さい。M<T L ...Smaller than the previous bar.

M>TH……前回バーより大きい。M>T H ...Bigger than the previous bar.

TH>M>TL……前回バーと等しい。T H > M > T L ...Equal to the previous bar.

従つて、上記スレツシユホールド値をどの値に
選定するかによつて、読取精度に大きな違いが生
じる。すなわち、細いバーと太いバーの中間にス
レツシユホールド値を設定することによつて読取
り精度を向上することができる。しかして、従来
においては、前回バーの幅値に常に一定の定数K
及び1/Kを掛けてスレツシユホールド値TH、TL
を求めている。このため例えば前回バーの幅値が
大きい場合に小さい方のスレツシユホールド値
TLが細いバーと太いバーの中間の値となるよう
に定数を設定しても、前回バーの幅値及び今回バ
ーの幅値が小さい場合においてはスレツシユホー
ルド値TLと細いバーの幅値との差が小さく、つ
まり、マージンが小さくなつて読取り精度が低下
する。
Therefore, depending on which threshold value is selected, there is a large difference in reading accuracy. That is, by setting the threshold value between the thin bar and the thick bar, reading accuracy can be improved. However, in the past, a constant constant K was always applied to the width value of the previous bar.
and 1/K to obtain the threshold values T H , T L
I'm looking for. Therefore, for example, if the previous bar width value is large, the smaller threshold value
Even if you set a constant so that T L is an intermediate value between the thin bar and the thick bar, if the previous bar width value and the current bar width value are small, the threshold hold value T L and the thin bar width The difference between the two values is small, that is, the margin is small and the reading accuracy is reduced.

本発明は上記の点に鑑みてなされたもので、バ
ーの幅値の大小の比がx:1で構成されるバーコ
ードを認識する場合において、速度変動に対する
許容値を大きくして走査速度が多少変化してもバ
ーコードの読取りを正確に行なうことができ、操
作性及び信頼性を向上させることができるバーコ
ード読取装置を提供することを目的とする。
The present invention has been made in view of the above points, and when recognizing a bar code in which the ratio of bar width values is x:1, the scanning speed is increased by increasing the tolerance value for speed fluctuation. It is an object of the present invention to provide a barcode reading device that can accurately read barcodes even if there are some changes, and can improve operability and reliability.

以下図面を参照して本発明の一実施例を説明す
る。第2図において11は光一電変換機能を備え
たハンドスキヤナ用ペンで、このペン11の出力
はA/D変換回路12によりデジタル信号に変換
され、パルス検出回路13へ送られる。このパル
ス検出回路13は、入力信号の各パルスの前縁及
び後縁を検出し、その検出信号をCPU14へ出
力する。このCPU14は、内部にレジスタD,
ZフラグFF,FS、アドレスレジスタAW,AR,AZ
を備えている。上記アドレスレジスタAW,AR
は、CPU14に接続されているメモリ15のア
ドレスを指定するためのもので、AWは書込みア
ドレス、ARは読出しアドンスを指定する。また、
上記アドレスレジスタAZは、レジスタZのアド
レス指定用である。そして、上記CPU14には
カウンタ16が接続され、CPU14からのクロ
ツクパルスφを常時カウントするようになつてい
る。CPU14は、パルス検出回路13からパル
ス信号が入力される毎にカウンタ16のカウント
内容を読出してメモリ15に書込み、同時にカウ
ンタ16をクリアする。また、上記CPU14に
はYレジスタ17、Xレジスタ18、フリツプフ
ロツプ19が接続される。上記Yレジスタ17
は、今回バーの幅値が書込まれるもので、その保
持データは比較回路20へ送られる。Xレジスタ
18は前回バーの幅値が書込まれるもので、その
保持データは、乗算回路21,22へ入力され
る。また、乗算回路21には、定数記憶部23か
ら定数KHが与えられている。上記定数KHの値は、
細いバーの幅を「1」、太いバーの幅を「x」と
した時、KH=1+x/2となるように設定される。
An embodiment of the present invention will be described below with reference to the drawings. In FIG. 2, reference numeral 11 denotes a hand scanner pen having an optical-to-electronic conversion function, and the output of this pen 11 is converted into a digital signal by an A/D conversion circuit 12 and sent to a pulse detection circuit 13. This pulse detection circuit 13 detects the leading edge and trailing edge of each pulse of the input signal, and outputs the detection signal to the CPU 14. This CPU 14 internally has registers D,
Z flag F F , F S , address register A W , A R , A Z
It is equipped with The above address registers A W , A R
is for specifying the address of the memory 15 connected to the CPU 14, AW specifies the write address, and AR specifies the read add. Also,
The address register A Z is for addressing register Z. A counter 16 is connected to the CPU 14 to constantly count the clock pulses φ from the CPU 14. Each time a pulse signal is input from the pulse detection circuit 13, the CPU 14 reads out the count contents of the counter 16 and writes them into the memory 15, and at the same time clears the counter 16. Further, a Y register 17, an X register 18, and a flip-flop 19 are connected to the CPU 14. Y register 17 above
, the bar width value is written this time, and the held data is sent to the comparator circuit 20. The width value of the previous bar is written in the X register 18, and the data held therein is input to the multiplication circuits 21 and 22. Further, the multiplier circuit 21 is given a constant K H from the constant storage section 23 . The value of the above constant K H is
When the width of the thin bar is "1" and the width of the thick bar is "x", it is set so that K H =1+x/2.

上記乗算回路21は、CPU14からの指令に従
つて入力データに対する乗算を行ない、その乗算
結果をレジスタ24を介して比較回路20へ出力
する。一方、上記フリツプフロツプ19は、
CPU14の制御によつてセツトあるいはリセツ
トされるもので、そのQ側出力はアンド回路2
5、側出力はアンド回路26へ入力される。ま
た、上記アンド回路25には定数記憶部27から
定数KLが入力され、アンド回路26には定数記
憶部28から定数KL′が入力される。上記定数KL
はKL=1+x/2xとなるように設定され、定数KL′ は、KL′=2/1+xとなるように設定される。そ して、上記アンド回路25,26の出力はオア回
路29を介して乗算回路22へ入力される。この
乗算回路22はCPU14からの指令に従つて入
力データに対する演算を行ない、その乗算結果を
レジスタ30を介して比較回路20へ出力する。
この比較回路20は、Yレジスタ17に保持され
ている今回バーの幅値とレジスタ24,30の保
持データとを第3図に示すように比較判断し、そ
の比較結果に応じて信号S1〜S3をCPU14へ出
力する。CPU14は、上記比較結果信号S1〜S3
に応じてバーコードの認識を行ない、最終的にレ
ジスタDに書込む。そして、所定桁のキヤラクタ
認識を終了すると、レジスタDに保持されている
バーコード認識結果のデータラインDLを介して
演算処理部(図示せず)へ送られる。
The multiplication circuit 21 multiplies input data according to instructions from the CPU 14, and outputs the multiplication result to the comparison circuit 20 via the register 24. On the other hand, the flip-flop 19 is
It is set or reset under the control of the CPU 14, and its Q side output is sent to the AND circuit 2.
5, the side output is input to the AND circuit 26. Further, the constant K L is inputted to the AND circuit 25 from the constant storage section 27 , and the constant K L ' is inputted from the constant storage section 28 to the AND circuit 26 . The above constant K L
is set so that K L =1+x/2x, and the constant K L ' is set so that K L '=2/1+x. The outputs of the AND circuits 25 and 26 are input to the multiplication circuit 22 via the OR circuit 29. The multiplication circuit 22 performs calculations on input data according to instructions from the CPU 14, and outputs the multiplication results to the comparison circuit 20 via the register 30.
This comparison circuit 20 compares and judges the width value of the current bar held in the Y register 17 and the data held in the registers 24 and 30 as shown in FIG . Output S 3 to CPU 14. The CPU 14 receives the comparison result signals S 1 to S 3
The bar code is recognized in accordance with the bar code and finally written to register D. When the character recognition of a predetermined digit is completed, the barcode recognition result held in the register D is sent to the arithmetic processing unit (not shown) via the data line DL.

次に上記実施例の動作について説明する。ペン
11により例えば商品のラベル等に記録されてい
るバーコード上を走査すると、バーコードはペン
11において電気信号に変換され、A/D変換回
路12へ送られる。このA/D変換回路12は、
ペン11で読取つたバーコード信号をバーコード
の各パターンに対応した時間幅を持つパルス信号
に変換し、パルス検出回路13へ出力する。この
パルス検出回路13は、入力される各パルス信号
の立上り及び立下りを検出し、その検出信号を
CPU14へ入力する。このCPU14は、カウン
タ16に常時クロツパルスφを与えてカウント動
作させており、パルス検出回路13からパルス検
出信号が入力される毎にカウンタ16のカウント
内容を読出してメモリ15へ送り、アドレスレジ
スタAWによつて指定されるアドレスに順次書込
み、同時にカウンタ16をクリアする。このよう
にしてメモリ15には、ペン11で読取つたバー
コードの幅に対応するカウント値が順次書込まれ
る。そして、ペン11の走査によつてバーコード
がメモリ15に書込まれると、CPU14は第4
図に示すフローに従つてバーコードの認識処理を
開始する。
Next, the operation of the above embodiment will be explained. When a barcode recorded on, for example, a product label is scanned with the pen 11, the barcode is converted into an electrical signal by the pen 11 and sent to the A/D conversion circuit 12. This A/D conversion circuit 12 is
The barcode signal read by the pen 11 is converted into a pulse signal having a time width corresponding to each pattern of the barcode, and is output to the pulse detection circuit 13. This pulse detection circuit 13 detects the rising edge and falling edge of each input pulse signal, and converts the detected signal into
Input to CPU14. This CPU 14 constantly supplies a clock pulse φ to the counter 16 to cause it to perform a counting operation, and each time a pulse detection signal is input from the pulse detection circuit 13, the CPU 14 reads out the count contents of the counter 16, sends it to the memory 15, and stores the count in the address register A W The data is sequentially written to the addresses specified by , and the counter 16 is cleared at the same time. In this way, count values corresponding to the width of the barcode read by the pen 11 are sequentially written into the memory 15. Then, when the barcode is written into the memory 15 by scanning the pen 11, the CPU 14
Barcode recognition processing is started according to the flow shown in the figure.

まず、第4図のステツプA1に示すように、
CPU14はアドレスレジスタARに「1」を書込
み、続いてステツプA2に示すように、レジスタ
Z、フラグFF,FSをクリアすると共に、フリツ
プフロツプ19(F/F)をリセツトする。次い
でステツプA3に示すようにアドレスレジスタAR
の内容に従つてメモリ15をアドレスを指定し、
その保持データをXレジスタ18に読出すと共
に、ステツプA4に示すように乗算回路21,2
2に乗算命令を与える。この乗算命令により、乗
算回路21は、Xレジスタ18に保持されている
バー幅値と定数記憶部23からの定数KHとの乗
算を行ない、その乗算結果をレジスタ24に書込
む。一方、乗算回路22は、この時フリツプフロ
ツプ19がリセツトされてアンド回路26のゲー
トが開かれ、定数記憶部28からの定数KL′が入
力されているので、Xレジスタ18の保持されて
いるバー幅値と定数KL′との乗算を行ない、その
乗算結果をレジスタ30に書込む。しかして、
CPU14は上記乗算命令を出力した後、ステツ
プA5に示すようにアドレスレジスタARの内容を
「+2」する。次いで、ステツプA6に進み、アド
レスレジスタARの指定アドレスに応じてメモリ
15の内容をYレジスタ17に読出す。上記ステ
ツプA5に示すようにアドレスレジスタARの内容
を「+2」することによつてYレジスタ17に
は、その時Xレジスタ18に保持されている白あ
るいは黒のバーと同種のバーの幅値がメモリ15
から読出される。そして、CPU14からステツ
プA7に示すように比較回路20に対して比較命
令が出力される。この比較命令により比較回路2
0は、Yレジスタ17とレジスタ24,30との
内容比較を第3図に示すように行ない、その比較
結果に応じて信号S1〜S3をCPU14へ出力する。
CPU14は上記比較結果信号S1〜S3によつてス
テツプA3に示すコード決定処理を行ない、その
結果をレジスタZに書込む。このコード決定処理
については詳細を後述する。しかして、上記コー
ド決定処理を終了すると、ステツプA9に進み、
アドレスレジスタARの内容が「7n」(nは1から
順次増大する整数)以上になつたか否か、つま
り、NW−7規格において白黒合計7本のバーコ
ードの認識を終了したか否かを判断する。上記ス
テツプA9において、アドレスレジスタARの内容
が「7n」に達してないと判断された場合はステ
ツプA10に進み、アドレスレジスタARの内容を
「−1」し、ステツプA3へ戻る。すなわち、最初
にメモリ15の1番地及び3番地に保持されてい
るバーコードについて認識処理を行なつたものと
すれば、ステツプA10においてアドレスレジスタ
ARの内容を「−1」することにより、次はメモ
リ15の2番地及び4番地に保持されているバー
コードについて認識処理が行なわれている。以
下、同様にしてメモリ15に保持されているバー
コードについて順次認識処理される。そして、ア
ドレスレジスタARの内容が「7n」以上になると、
ステツプA9の判断結果がYESとなり、ステツプ
A11へ進む。このステツプA11では、レジスタZ
に保持されているコード認識結果をデコード、つ
まり10進の値に変換し、ステツプA12に示すよ
うにレジスタDに書込む。そして、ステツプA13
において、所定キヤラクタ分、つまり1ラベル分
の処理が終了したか否かを判断し、未だ終了して
いなければステツプA2に戻り、次のコードに対
する認識処理を開始する。そして、ステツプA13
において1ラベル分のデコードが終了したと判断
されるとステツプA14に進み、レジスタDに保持
されている認識結果をデータラインDLを介して
データ処理部へ転送する。続いてステツプA15
進み、メモリM及びレジスタDをクリアして認識
処理を終了し、ステツプA1に戻る。
First, as shown in step A1 of Figure 4,
The CPU 14 writes "1" to the address register AR , and then, as shown in step A2 , clears the register Z, flags F F and F S , and resets the flip-flop 19 (F/F). Then address register A R as shown in step A3
Address the memory 15 according to the contents of
The held data is read out to the X register 18, and as shown in step A4 , the multiplier circuits 21 and 2
Give a multiplication instruction to 2. In response to this multiplication instruction, the multiplication circuit 21 multiplies the bar width value held in the X register 18 by the constant K H from the constant storage section 23 and writes the multiplication result into the register 24 . On the other hand, since the flip-flop 19 is reset at this time, the gate of the AND circuit 26 is opened, and the constant K L ' from the constant storage section 28 is input, the multiplier circuit 22 inputs the constant K L ' held in the X register 18. The width value is multiplied by the constant K L ', and the multiplication result is written into the register 30. However,
After outputting the multiplication instruction, the CPU 14 increments the contents of the address register AR by "+2" as shown in step A5 . Next, the process proceeds to step A6 , where the contents of the memory 15 are read into the Y register 17 in accordance with the designated address of the address register AR . As shown in step A5 above, by incrementing the contents of the address register A R by 2, the width value of the same type of bar as the white or black bar held in the X register 18 at that time is stored in the Y register 17. is memory 15
Read from. Then, the CPU 14 outputs a comparison command to the comparison circuit 20 as shown in step A7 . By this comparison command, the comparison circuit 2
0 compares the contents of the Y register 17 and the registers 24 and 30 as shown in FIG. 3, and outputs signals S 1 to S 3 to the CPU 14 in accordance with the comparison result.
The CPU 14 performs the code determination process shown in step A3 using the comparison result signals S1 to S3 , and writes the result to the register Z. Details of this code determination process will be described later. After completing the above code determination process, the process proceeds to step A9 .
Checks whether the content of the address register A R has become equal to or greater than "7n" (n is an integer that increases sequentially from 1), that is, whether recognition of a total of seven black and white barcodes according to the NW-7 standard has been completed. to decide. If it is determined in step A9 above that the contents of address register A R have not reached "7n", proceed to step A10 , set the contents of address register A R to "-1", and return to step A3 . . That is, assuming that recognition processing is first performed on the barcodes held at addresses 1 and 3 of the memory 15, the address registers are recognized in step A10 .
By subtracting "-1" from the contents of AR , the barcodes held at addresses 2 and 4 of the memory 15 are next recognized. Thereafter, the barcodes held in the memory 15 are sequentially recognized in the same manner. Then, when the contents of address register A R exceeds "7n",
The judgment result of step A 9 is YES, and the step
A Proceed to 11 . In this step A 11 , register Z
The code recognition result held in is decoded, that is, converted into a decimal value, and written to register D as shown in step A12 . And step A 13
At this point, it is determined whether or not the processing for a predetermined character, that is, for one label, has been completed. If the processing has not been completed yet, the process returns to step A2 and the recognition processing for the next code is started. And step A 13
When it is determined that decoding for one label has been completed, the process proceeds to step A14 , where the recognition result held in register D is transferred to the data processing section via data line DL. The process then proceeds to step A15 , where the memory M and register D are cleared to complete the recognition process, and the process returns to step A1 .

次に上記ステツプA8におけるコード決定処理
の詳細を第5図のフローチヤートに従つて説明す
る。まず、ステツプB1において、比較回路20
から送られてくる信号がS1,S2,S3の何れである
かを判断し、比較出力がS1の場合、つまりYレジ
スタ17の内容がレジスタ30の保持データより
小さい場合はステツプB2、比較出力がS2の場合、
つまりYレジスタ17の内容がレジスタ24の保
持データより大きい場合はステツプB3、比較出
力がS3の場合、つまりYレジスタ17の内容が前
回バーと同じである場合はステツプS4へ進み、そ
れぞれフラグFFが「0」か「1」か、つまり初
回のコード決定か否かを判断する。しかして、上
記ステツプB4において、FFが「0」(初回のコー
ド決定)と判断された場合はステツプB5へ進み、
アドレスレジスタAZに「1」を書込み、続いて
ステツプB6においてアドレスレジスタAZにより
アドレス指定されるレジスタZ内に“0”を書込
む。その後ステツプB7へ進み、アドレスレジス
タAZに「+1」すると共に、ステツプB8におい
てフラグFFに「1」をセツトする。次いでステ
ツプB9へ進み、アドレスレジスタAZによりアド
レス指定されるレジスタZ内に“0”を書込む。
すなわち、最初のバーと次のバーが等しく、“1”
か“0”か判別できなかつた場合、上記ステツプ
B6,B9においてレジスタZに一旦“0”が書込
まれる。また、上記ステツプB4において、フラ
グFFが「1」(2回目以降)であると判断された
場合はステツプB10に進み、フラグFSが「1」か
「0」か、つまり前回バーが“1”又は“0”に
確定しているか否か判断され、「0」(未確定)の
場合は上記ステツプB9へ進み「1」(確定)の場
合はステツプB11に進み、今回バーとして前回バ
ーと同じ値をレジスタZに書込む。そして、上記
ステツプB9はB11の処理を終了すると、ステツプ
B12へ進み、レジスタZに保持されている前回バ
ーの値が“0”か“1”かを判断し、“0”であ
ればステツプB13でフリツプフロツプ19をリセ
ツトし、“1”であればステツプB14でセツトす
る。その後、ステツプB15に示すようにアドレス
レジスタAZの内容を「+1」し、第4図のステ
ツプA9に戻る。
Next, details of the code determination process in step A8 will be explained in accordance with the flowchart of FIG. First, in step B1 , the comparison circuit 20
If the comparison output is S1 , that is, if the content of the Y register 17 is smaller than the data held in the register 30 , proceed to step B. 2 , if the comparison output is S 2 ,
In other words, if the content of the Y register 17 is greater than the data held in the register 24, the process goes to step B3 , and if the comparison output is S3 , that is, if the content of the Y register 17 is the same as the previous bar, the process goes to step S4 . It is determined whether the flag F F is "0" or "1", that is, whether or not the code is determined for the first time. Therefore, in step B4 above, if F F is determined to be "0" (first code determination), proceed to step B5 ,
A ``1'' is written in the address register A Z , followed by a ``0'' in the register Z addressed by the address register A Z in step B6 . Thereafter, the process proceeds to step B7 , where the address register AZ is incremented by 1, and the flag FF is set to 1 in step B8 . The program then proceeds to step B9 and writes "0" into register Z addressed by address register A Z.
That is, the first bar and the next bar are equal and “1”
If it is not possible to determine whether the
At B 6 and B 9 , "0" is once written into register Z. In addition, in step B4 , if it is determined that the flag F It is determined whether or not the value has been determined to be “1” or “0”. If it is “0” (unconfirmed), proceed to step B 9 above, and if it is “1” (confirmed), proceed to step B 11 , and this time. Write the same value as the previous bar to register Z as a bar. Then, when the above step B9 completes the process of B11 , the step
Proceeding to step B12 , it is determined whether the previous bar value held in register Z is "0" or "1", and if it is "0", the flip-flop 19 is reset in step B13 ; If so, set it in step B14 . Thereafter, as shown in step B15 , the contents of address register AZ are incremented by 1, and the process returns to step A9 in FIG.

また、比較回路20の出力がS1、つまり今回バ
ーが前回バーより小さい場合は、ステツプB1
経てステツプB2に進み、フラグFFにより初回の
コード決定か、2回目以降かの判断が行なわれ
る。このステツプB2において初回のコード決定
であると判断された場合はステツプB16に進み、
アドレスレジスタAZに「1」を書込み、続いて
ステツプB17において、アドレスレジスタAZ
によりアドレス指定されるレジスタZ内に最初の
バー(前回バー)として“1”を書込む。次いで
ステツプB13に進み、アドレスレジスタAZに「+
1」すると共に、ステツプB19においてフラグFF
に「1」をセツトする。その後、ステツプB20
進み、アドレスレジスタAZによりアドレス指定
されるレジスタZに今回バーとして“0”を書込
む。また、上記ステツプB2でフラグFFが「1」
(2回目以降のコード決定)と判断された場合は
ステツプB21に進み、フラグFSが「0」か「1」
か、つまり前回バーが“1”又は“0”に確定し
ているか否かを判断する。前回バーが確定してい
ない場合にはステツプB22に示すようにレジスタ
Z内のそれまでのデータを“1”に書換え、その
後ステツプB20に進む。すなわち、ステツプB22
に進んだ場合には、前回までのバーが全て等し
く、“1”か“0”か判別できず、ステツプB6
B9において一旦“0”がレジスタZに書込まれ
ているが、比較信号S1が出力されることによつて
今回バーが前回バーより小さいと判別されるの
で、ステツプB22ではレジスタZ内における前回
までのバーを全て“1”に書換える。また、ステ
ツプB21で前回バーが確定していると判断された
場合は、直ちにステツプB20に進む。このステツ
プB20では上記したようにレジスタZに今回バー
として“0”を書込み、その後、ステツプB23
フラグFSに「1」をセツトして上記ステツプB12
へ進む。
If the output of the comparison circuit 20 is S 1 , that is, the current bar is smaller than the previous bar, the process goes to step B 1 and then to step B 2 , where flag F F determines whether the code is determined for the first time or for the second time or later. It is done. If it is determined in step B 2 that this is the first code determination, proceed to step B 16 .
Write "1" to address register A Z , and then in step B17, address register A Z
Write "1" as the first bar (previous bar) into the register Z addressed by . Next, proceed to step B13 and write "+" to address register A Z.
1” and flag F F at step B19 .
Set "1" to "1". Thereafter, the process proceeds to step B20 , where "0" is written as the current bar into the register Z addressed by the address register AZ . Also, in step B2 above, flag F F is set to "1".
If it is determined that the code has been determined for the second time or later, the process proceeds to step B21 , and the flag F S is set to ``0'' or ``1''.
In other words, it is determined whether the previous bar has been determined to be "1" or "0". If the previous bar has not been determined, the previous data in the register Z is rewritten to "1" as shown in step B22 , and the process then proceeds to step B20 . i.e. step B 22
If you proceed to step B 6 , all the bars up to the previous time are equal and it is not possible to determine whether they are “1” or “0”.
At step B9 , "0" has been written in register Z, but by outputting the comparison signal S1 , it is determined that the current bar is smaller than the previous bar, so in step B22 , the register Z is written. Rewrite all the bars up to the previous time to "1". If it is determined in step B21 that the previous bar has been determined, the process immediately proceeds to step B20 . In this step B20 , as described above, "0" is written in the register Z as the current bar, and then in step B23 , "1" is set in the flag F S , and then in the above step B12.
Proceed to.

さらに、比較回路20の出力がS2、つまり、今
回バーが前回バーより大きい場合は、ステツプ
B1を経てステツプB3へ進み、フラグFFにより初
回のコード決定か、2回目以降かの判断が行なわ
れる。このステツプB3において初回のコード決
定であると判断された場合はステツプB24に進
み、アドレスレジスタAZに「1」を書込み、続
いてステツプB25においてアドレスレジスタAZ
よりアドレス指定されるレジスタZ内に最初のバ
ーとして“0”を書込む。次いでステツプB26
進み、アドレスレジスタAZに「+1」すると共
にステツプB27においてフラブFFに「1」をセツ
トする。その後ステツプB28に示すようにレジス
タZに今回バーとして“1”を書込み、上記ステ
ツプB23へ進む。以下同様にして各バーに対する
コード決定処理が行なわれる。
Furthermore, if the output of the comparison circuit 20 is S 2 , that is, the current bar is larger than the previous bar, the step
Proceeding to step B3 via B1 , a flag FF is used to determine whether the code is determined for the first time or for the second time or later. If it is determined in step B3 that the code has been determined for the first time, the process proceeds to step B24 , where "1" is written in address register AZ , and then in step B25 , the register addressed by address register AZ is Write “0” in Z as the first bar. Next, the program proceeds to step B26 , where the address register AZ is incremented by "+1", and in step B27 , the flag FF is set to "1". Thereafter, as shown in step B28 , "1" is written in register Z as the current bar, and the process proceeds to step B23 . Thereafter, code determination processing for each bar is performed in the same manner.

本発明では、定数KLを記憶する定数記憶部2
7及び定数KL′を記憶する定数記憶部28を備
え、前回バーが“1”であるか、“0”であるか
によつてフリツプフロツプ19をセツトあるいは
リセツトし、定数KL,KL′の選択を行なつてい
る。第6図は前回バーが“1”の場合、第7図は
前回バーが“0”の場合、のスレツシユホールド
値TL,THと認識の幅値との対応関係を示したも
ので、第6図a、第7図aは定数がKH,KLの場
合、第6図b、第7図bは定数KH,KL′の場合で
ある。
In the present invention, the constant storage unit 2 that stores the constant K L
7 and a constant K L ', and sets or resets the flip-flop 19 depending on whether the previous bar was "1" or "0", and stores the constants K L and K L '. are making choices. Figure 6 shows the correspondence between the threshold values T L and T H and the recognition width value when the previous bar is "1" and Figure 7 when the previous bar is "0". , FIGS. 6a and 7a are for the constants K H and K L , and FIGS. 6 b and 7 b are for the constants K H and K L '.

しかして、細いバー(“0”)の幅を「1」、太
いバー(“1”)の幅をxとしたとき、太いバーと
細いバーの中間値KHは、 KH=1+x/2 となる。前回のバーの幅値が小さい場合は、前回
バーの幅値を乗じて大きい方のスレツシユホール
ド値THを求めることができる。すなわち、 TH=1×KH=1+x/2 となる。また、前回バーの幅値の大きい場合は、
小さい方のスレツシユホールド値TLが上記中間
の値1+x/2と等しくなるような定数をKLとすれ ば、 TL=x×KL=1+x/2 ∴KL=1+x/2x となる。
Therefore, when the width of the thin bar (“0”) is “1” and the width of the thick bar (“1”) is x, the intermediate value K H between the thick bar and the thin bar is K H = 1 + x/2. becomes. If the width value of the previous bar is small, the larger threshold value T H can be obtained by multiplying by the width value of the previous bar. That is, T H =1×K H =1+x/2. Also, if the previous bar width value is large,
If K L is a constant such that the smaller threshold value T L is equal to the above intermediate value 1+x/2, then T L = x×K L =1+x/2 ∴K L =1+x/2x. .

さらに、今回バーの幅値が小さかつた場合で、
かつ前回バーが小さくても大きくても、その差β
を等しくするための定数をKL′とすると、 β=1−1×KL′=x・KL′−1 ∴KL′=2/1+x=1/KH となる。なお、NW−7規格では、太いバーの幅
xはx=2.2に設定されている。
Furthermore, if the bar width value is small this time,
And whether the previous bar is small or large, the difference β
Let K L ′ be a constant for making them equal, β=1−1×K L ′=x·K L ′−1 ∴K L ′=2/1+x=1/K H . Note that in the NW-7 standard, the width x of the thick bar is set to x=2.2.

従つて本発明では、小さい方のスレツシユホー
ルド値TLを設定する定数として、2種の定数KL
KL′を定数記憶部27,28に記憶させ、前回バ
ーの幅値が大きい(“1”)時は第6図aに示すよ
うに定数KLを選択してスレツシユホールド値TL
を求め、前回バーの幅値が小さい(“0”)時は第
7図bに示すように定数KL′を選択してスレツシ
ユホールド値TLを求めている。このように前回
バーの幅値に応じて定数KL,KL′を選択すること
により、バーコードがどのように組合された場合
でも理想的なスレツシユホールド値を求めること
ができる。
Therefore, in the present invention, two types of constants K L ,
K L ' is stored in the constant storage units 27 and 28, and when the previous bar width value was large (“1”), the constant K L is selected as shown in FIG. 6a and the threshold value T L is set.
, and when the previous bar width value was small (“0”), the constant K L ′ is selected as shown in FIG. 7b to find the threshold value T L . By selecting the constants K L and K L ' according to the width value of the previous bar in this way, an ideal threshold value can be obtained no matter how the bar codes are combined.

なお、上記実施例では、定数KH,KL,KL′を
固定とした場合について示したが、その他、例え
ばバーコードの大小の比を検出して定数KH,KL
KL′の値を可変するようにしてもよい。このよう
な構成とすることにより、例えばラベルに印刷さ
れたバーコードが、印刷時の誤差等によつてコー
ド幅が規定値からずれている場合でも、バーコー
ドの認識を正確に行なうことができる。
In the above embodiment, the constants K H , K L , K L ′ are fixed, but in other cases, for example, the ratio of the size of the barcode is detected and the constants K H , K L ,
The value of K L ′ may also be made variable. With this configuration, even if the barcode printed on a label has a code width that deviates from the specified value due to errors during printing, the barcode can be recognized accurately. .

また、本発明はハンドスキヤナのみならず、定
置スキヤナに実施することができ、その場合には
走査駆動部を高精度に設計しなくても、バーコー
ドの読取りを正確に行なうことができる。
Furthermore, the present invention can be implemented not only in hand scanners but also in stationary scanners, in which case barcodes can be read accurately even if the scanning drive section is not designed with high precision.

さらに、上記実施例では、光学的なバーコード
を読取る場合について示したが、磁気的なバーコ
ードを用いる場合であつても実施し得るものであ
る。
Further, in the above embodiment, the case where an optical barcode is read is shown, but the present invention can be implemented even when a magnetic barcode is used.

以上述べたように本発明によれば、バーの幅値
の大小の比がx:1で構成されるバーコードを認
識する場合において、前回バーの幅値に応じてス
レツシユホールド値設定用の定数を選択するよう
にしたので、常に理想的なスレツシユホールド値
を求めることができ、バーコードの認識を正確に
行なうことができる。
As described above, according to the present invention, when recognizing a barcode in which the ratio of bar width values is x:1, the threshold value setting for setting the threshold value is determined according to the previous bar width value. Since a constant is selected, an ideal threshold value can always be found, and barcodes can be recognized accurately.

【図面の簡単な説明】[Brief explanation of the drawing]

第1図はNW−7規格によるバーコードを示す
図、第2図ないし第7図は本発明の一実施例を示
すもので、第2図は回路構成図、第3図は比較回
路の比較動作を示す図、第4図及び第5図は動作
内容を示すフローチヤート、第6図a,b及び第
7図a,bはスレツシユホールド値の設定状態を
示す図である。 11……ハンドスキヤナ用ペン、14……
CPU、15……メモリ、16……カウンタ、1
7,18,24,30……レジスタ、20……比
較回路、23,27,28……定数記憶部、D,
Z……レジスタ、FF,FS……フラグ、AW
AR,AZ……アドレスレジスタ。
Fig. 1 is a diagram showing a bar code according to the NW-7 standard, Figs. 2 to 7 show an embodiment of the present invention, Fig. 2 is a circuit configuration diagram, and Fig. 3 is a comparison of comparison circuits. FIGS. 4 and 5 are flowcharts showing the operation contents, and FIGS. 6a and 7b and 7a and 7b are diagrams showing the setting state of the threshold value. 11... Hand scanner pen, 14...
CPU, 15...Memory, 16...Counter, 1
7, 18, 24, 30...Register, 20...Comparison circuit, 23, 27, 28...Constant storage section, D,
Z...Register, F F , FS...Flag, A W ,
A R , A Z ...Address register.

Claims (1)

【特許請求の範囲】 1 バーの幅値の大小の比がx:1で構成される
バーコードを認識するバーコード認識装置におい
て、バーの幅値を読み取る読取手段と、読み取ら
れた被認識バーの幅値を記憶する被認識バー記憶
手段と、既にバーの幅値の大小が認識された認識
バーの幅値を記憶する認識バー記憶手段と、この
認識バーの大小によつて定数1+x/2x又は2/1+x を選択する選択手段と、前記認識バー記憶手段内
の幅値と前記選択手段で選択された定数とを乗算
して第1のスレツシユホールド値を求め、更に前
記認識バー記憶手段内の幅値と定数1+x/2とを 乗算して第2のスレツシユホールド値を求める乗
算手段と、前記被認識バー記憶手段内の幅値と前
記第1及び第2のスレツシユホールド値を比較し
て認識バーに対する被認識バーの大きさを判別す
る比較手段とを備え、被認識バーの判別後にこの
被認識バーの幅値を前記認識バー記憶手段へ、ま
たその大小を示す信号を前記選択手段へ導びき、
前記読取手段で読み取られた次の被認識バーの認
識を実行するバーコード認識装置。
[Claims] 1. A barcode recognition device that recognizes a barcode in which the ratio of bar width values is x:1, comprising a reading means for reading a bar width value, and a read bar to be recognized. recognition bar storage means for storing the width value of the recognition bar, a recognition bar storage means for storing the width value of the recognition bar whose width value has already been recognized, and a constant 1+x/2x depending on the size of the recognition bar. or 2/1+x; multiplying the width value in the recognition bar storage means by the constant selected by the selection means to obtain a first threshold value; multiplying means for multiplying the width value in the bar by a constant 1+x/2 to obtain a second threshold value; and multiplying the width value in the recognized bar storage means and the first and second threshold values. and a comparison means for determining the size of the recognized bar with respect to the recognition bar, and after determining the recognized bar, the width value of the recognized bar is stored in the recognized bar storage means, and a signal indicating the size thereof is sent to the recognized bar storage means. Guide you to the means of selection,
A barcode recognition device that recognizes the next bar to be recognized read by the reading means.
JP11272882A 1982-06-30 1982-06-30 Bar code recognizer Granted JPS593590A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP11272882A JPS593590A (en) 1982-06-30 1982-06-30 Bar code recognizer

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP11272882A JPS593590A (en) 1982-06-30 1982-06-30 Bar code recognizer

Publications (2)

Publication Number Publication Date
JPS593590A JPS593590A (en) 1984-01-10
JPH0327951B2 true JPH0327951B2 (en) 1991-04-17

Family

ID=14594048

Family Applications (1)

Application Number Title Priority Date Filing Date
JP11272882A Granted JPS593590A (en) 1982-06-30 1982-06-30 Bar code recognizer

Country Status (1)

Country Link
JP (1) JPS593590A (en)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS59170973A (en) * 1983-03-17 1984-09-27 Nec Home Electronics Ltd Bar code reader
JPS61101880A (en) * 1984-10-24 1986-05-20 Sato :Kk Bar code reading method and its devices
JPH01123262U (en) * 1988-02-13 1989-08-22

Also Published As

Publication number Publication date
JPS593590A (en) 1984-01-10

Similar Documents

Publication Publication Date Title
US7050046B1 (en) Device and method for recognizing characters input through a touch screen
US4533825A (en) Bar code recognition apparatus
US4607385A (en) Character recognition apparatus
US6332152B1 (en) Arithmetic unit and data processing unit
CA2044935C (en) Bar-code reading apparatus
US4567360A (en) Optical reading apparatus
JPH0327951B2 (en)
EP0725336A2 (en) Information processor
JPS6122347B2 (en)
EP0388506A2 (en) Normalizer
JPS593589A (en) Bar code reader
JP2779898B2 (en) Barcode reader
JP2742140B2 (en) Optical reader
JPS6227435B2 (en)
JPS642181Y2 (en)
JPS62206690A (en) Address control system for video memory
JP2689158B2 (en) Barcode reader
JPH01116777A (en) Final display deciding circuit
JPH0420506B2 (en)
JPH034958B2 (en)
JPS6334678A (en) Bar code reader
JPS58225487A (en) Bar code reader
JPS5852261B2 (en) Program processing method
JPS5851371A (en) Book processing system
JPS59188785A (en) Reference level setting system of comparator circuit