JPH0954809A - バーコード検出装置及び検出方法 - Google Patents

バーコード検出装置及び検出方法

Info

Publication number
JPH0954809A
JPH0954809A JP7204933A JP20493395A JPH0954809A JP H0954809 A JPH0954809 A JP H0954809A JP 7204933 A JP7204933 A JP 7204933A JP 20493395 A JP20493395 A JP 20493395A JP H0954809 A JPH0954809 A JP H0954809A
Authority
JP
Japan
Prior art keywords
numerical value
bar code
light
input
signal
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
Application number
JP7204933A
Other languages
English (en)
Other versions
JP3083464B2 (ja
Inventor
Shinichi Sato
伸一 佐藤
Mitsuo Watanabe
光雄 渡辺
Isao Iwaguchi
功 岩口
Ichiro Shinoda
一郎 篠田
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.)
Fujitsu Ltd
Original Assignee
Fujitsu 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 Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP07204933A priority Critical patent/JP3083464B2/ja
Priority to US08/628,109 priority patent/US6059187A/en
Publication of JPH0954809A publication Critical patent/JPH0954809A/ja
Application granted granted Critical
Publication of JP3083464B2 publication Critical patent/JP3083464B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • 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/14Methods or arrangements for sensing record carriers, e.g. for reading patterns by electromagnetic radiation, e.g. optical sensing; by corpuscular radiation using light without selection of wavelength, e.g. sensing reflected white light
    • G06K7/1404Methods for optical code recognition
    • G06K7/146Methods for optical code recognition the method including quality enhancement steps
    • G06K7/1486Setting the threshold-width for bar codes to be decoded
    • 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/14Methods or arrangements for sensing record carriers, e.g. for reading patterns by electromagnetic radiation, e.g. optical sensing; by corpuscular radiation using light without selection of wavelength, e.g. sensing reflected white light

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Health & Medical Sciences (AREA)
  • Electromagnetism (AREA)
  • General Health & Medical Sciences (AREA)
  • Toxicology (AREA)
  • Artificial Intelligence (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Cash Registers Or Receiving Machines (AREA)

Abstract

(57)【要約】 (修正有) 【課題】反射光情報の中からバーコード以外の要因によ
ることが明らかなものを論理的に除去し、処理効率を上
げる。 【解決手段】入力判定回路104は、検出されてくるバ
ーコードに対し、バー同士の幅を比較し、それらの比が
所定条件、例えば0.2倍から5.0倍の範囲内である
かどうかをチェックし、所定条件を満しているバーコー
ドに対してのみ、処理を続行してデータの復調を行う。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、バーコードに光を
照射して反射光の強度変化を検出することによってバー
コードを読み取ってこれをデータに復調するバーコード
検出装置及びバーコード検出方法に関する。本発明は、
特に、バーコード以外の要因によって生じた反射光強度
変化情報を論理的に除去することによって、バーコード
の復調を効率良く行わせることができるバーコード検出
装置及びバーコード検出方法に関する。
【0002】
【従来の技術】近年、流通業等におけるPOSシステム
に代表されるように、商品等の管理をバーコードによっ
て行うことが一般化している。例えば、商店のPOSシ
ステムでは、商品の種類や販売価格等の情報をバーコー
ドのフォーマットにコード化して商品に貼り付けてお
く。そして、レジにてこのバーコードを読み取ることに
よって、精算を行うとともに、商品の売り上げ数をリア
ルタイムで集計し、在庫管理や仕入れ管理に役立てるよ
うにしている。
【0003】ところで、このようなバーコードを読み取
るためのバーコードリーダーは、バーコードが貼り付け
られている商品が小さい場合に用いられる固定型と、商
品が大きい場合等に用いられるハンディ型に大別され
る。このうち固定型の場合には、操作者がバーコードの
方向をあまり意識しなくてもバーコードの読み取りがで
きるように、読み取り用の照射光を多数方向に走査する
機構が用いられている。即ち、読み取り照射光としての
レーザービームを、ポリゴンミラーと固定反射鏡を併用
して、ポリゴンミラーの一反射面での走査中に多数の方
向に走査するようにしているのである。そして、このよ
うな走査中にレーザビームの商品表面での反射光を受光
し、この受光された反射光の強度変化情報(以下、「反
射光情報」と言う)を復調処理回路においてバーコード
用の復調アルゴリズムによって復調して、バーコードに
コード化されていたデータを抽出するようにしていた。
【0004】このような固定式のバーコードリーダーで
は、バーコード読み取りを迅速に行えるように高性能化
することが、求められている。そのため、従来より、ポ
リゴンミラーを高速回転させてレーザ走査速度を高める
ことにより、バーコードリーダ上を通過する商品のバー
コードにレーザービームがヒットする確率(バーコード
の走査確率)を高めようとする試みがなされている。
【0005】
【発明が解決しようとする課題】しかしながら、このよ
うに高速走査を行うと単位時間当たりにおけるバーコー
ドの走査確率は向上するものの、走査周期当たりにおけ
るバーコードの走査確率は一定であるため、単位時間当
たりにおける全反射光情報が増大してしまう。復調回路
は、このように増大化した反射光情報を全て復調処理し
なければならないので、その処理負荷を無駄に増加させ
てしまっていたとともに、ハードウェア規模増大の必要
を生じてコスト増を招いていた。
【0006】また、バーコードリーダーの高性能化の要
請より、バーコードによる反射光情報(以下、「バーコ
ード反射光情報」という)の断片を繋ぎ合わせて一個の
バーコード全体に対応するデータを再現する様な、複雑
な復調処理が行われるようになった。このような複雑な
復調処理は、それ自体復調処理回路の負荷を増大させる
ので、バーコード以外の要因による反射光情報に対して
も実行されるのであると無駄に処理負荷を増大させるこ
とになっていた。
【0007】本発明の課題は、以上の問題点に鑑み、復
調回路に入力する前に、反射光情報の中からバーコード
以外の要因によることが明らかなものを論理的に除去す
ることによって反射光情報中におけるバーコード反射光
情報の含有率を高め、復調回路の処理効率を向上させる
ことができるバーコード検出装置及びバーコード検出方
法を提供することである。
【0008】
【課題を解決するための手段】本発明によるバーコード
検出装置は、上記課題を解決するため、図1の原理図に
示した通り、バーコード(101)が形成された物体面
(100)を走査して、その走査軌跡における前記物体
面(100)上の明暗パターンを検出する明暗パターン
検出手段(102)と、この明暗パターン検出手段(1
02)によって検出された明暗パターンを構成する各明
部と各暗部の幅を順次数値に変換する数値変換手段(1
03)と、この数値変換手段(103)によって変換さ
れた前記各数値を順次入力するとともに、入力された数
値がその前に入力された数値に対して所定のバーコード
の規格条件を満たしているかどうかを判定する判定手段
(104)と、この判定手段(104)によって前記所
定のバーコードの規格条件を満たしていると判定された
前記数値を抽出する抽出手段(105)と、この抽出手
段(105)によって抽出された前記数値に基づいてデ
ータの復調を行うデータ復調手段(106)とを備えた
ことを特徴とする。
【0009】本発明のバーコード検出装置によれば、明
暗パターン検出手段(102)は、バーコード(10
1)が形成された物体面(100)を走査して、その走
査軌跡における前記物体面(100)上の明暗パターン
を検出する。数値変換手段(103)は、この明暗パタ
ーン検出手段(102)によって検出された明暗パター
ンを構成する各明部と各暗部の幅を順次数値に変換す
る。判定手段(104)は、この数値変換手段(10
3)によって変換された前記各数値を順次入力するとと
もに、入力された数値がその前に入力された数値に対し
て所定のバーコードの規格条件を満たしているかどうか
を判定する。抽出手段(105)は、この判定手段(1
04)によって前記所定のバーコードの規格条件を満た
していると判定された前記数値のみを抽出する。従っ
て、バーコードを構成するバーに起因する可能性の全く
ない数値を除去し、バーコードを構成するバーに起因す
る可能性のある数値のみを次段のデータ復調手段に伝え
ることができる。データ復調手段(106)は、この抽
出手段(105)によって抽出された前記数値に基づい
てデータの復調を行う。従って、このデータ復調手段に
よる復調処理の効率が向上する。
【0010】明暗パターン検出手段は、明暗パターンを
光学的に読み取っても良いが、その場合において、発光
部から出射される照射光を走査しても良いし、受光部を
走査しても良い。発光部から出射される照射光を走査す
る場合には、前記明暗パターン検出手段は、走査する光
によって前記物体面を照射する光照射手段と、物体面か
らの前記光の反射光を光電変換する受光手段と、この受
光手段による光電変換の結果得られた電気信号を、明部
を示す第1の信号状態と暗部を示す第2の信号状態から
なる信号に変換する信号変換手段とから構成されても良
い(請求項2に対応)。また、発光部と受光部とを手動
で走査するハンディ型としても良い。
【0011】数値変換手段103における幅と数値との
変換率は、その変換率がほぼ一定となっていれば任意で
ある。判定手段において判定条件となるバーコードの規
格条件とは、JAN(Japanarticle Number)コード,
UPCコード,EANコードやITF(InterleavedTwo
of Five)コード等によって定まる規格条件であり、各
コードによって定められたバーコードを構成するバー同
士の最大比の範囲に入力された数値が収まっているかど
うかということである。例えば、JANコードの場合
は、バー同士の最大比は1:4であるので、入力された
数値が前記その前に入力された数値の0.2倍乃至5.
0倍の範囲内であるという条件を用いることができる
(請求項7に対応)。この範囲を超えた場合には、この
入力された数値がバーコードを構成するバーに対応して
いないことが明らかだからである。
【0012】判定手段は、入力された数値を明暗の区別
には拘わらずその直前に入力された数値と比較しても良
いし、明部は明部同士,暗部は暗部同士で比較しても良
い。後者の場合には、判定手段は、入力された数値が明
部の数値である場合にはその直前に入力された明部の数
値に対して前記所定のバーコードの規格条件を満たして
いるかどうかを判定し、入力された数値が暗部の数値で
ある場合にはその直前に入力された暗部の数値に対して
前記所定のバーコードの規格条件を満たしているかどう
かを判定する(請求項3に対応)。
【0013】抽出手段は、前記入力された数値がその前
に入力された数値に対して前記所定のバーコードの規格
条件を満たしているとの判定が前記判定手段により所定
の複数回にわたり連続してなされた場合にのみ、この複
数回の判定において判定対象とされた数値及び比較対象
とされた数値を抽出するよう構成されても良い(請求項
4に対応)。一回の判定であると偶然に条件を満たす確
率が高いが、複数回連続して条件を満たすと、偶然によ
る確率は低くなり、バーコード自体に基づく数値である
蓋然性が高くなるからである。この場合、例えば、連続
する判定の回数を15回とすることができる。また、抽
出手段は、前記複数回の判定において判定対象とされた
数値及び比較対象とされた数値に加え、その直前の数値
及びその直後の数値をも抽出しても良い(請求項5に対
応)。このような値はバーコードの前後に付加されたマ
ージンである可能性が高いからである。また、抽出手段
は、前記複数回の判定において判定対象とされた数値及
び比較対象とされた数値の直後の数値に、データの不連
続を示すフラグを付しても良い(請求項6に対応)。こ
のようにすれば、復調手段は、データの不連続位置を知
ることができるので、復調処理をこの不連続位置で区切
ることができ、その結果復調誤りを防ぐことができるか
らである。
【0014】本発明によるバーコード検出方法は、バー
コードが形成された物体面を走査し、その走査軌跡にお
ける前記物体面上の明暗パターンを検出し、この明暗パ
ターン検出手段によって検出された明暗パターンを構成
する各明部と各暗部の幅を順次数値に変換し、変換され
た数値がその前に変換された数値に対して所定のバーコ
ードの規格条件を満たしているかどうかを判定し、変換
された数値がその前に変換された数値に対して所定のバ
ーコードの規格条件を満たしている場合にはこの数値を
抽出し、この抽出された数値に基づいてデータの復調を
行うことを特徴とする(請求項8に対応)。
【0015】
【発明の実施の形態】以下、図面に基づいて、本発明の
実施の態様の説明を行う。
【0016】
【実施形態1】図2は本発明の第1実施形態によるバー
コード検出装置の概略構成を示すブロック図である。
【0017】(全体構成)図2において、レーザー光源
1は、レーザービームLを出射する半導体レーザであ
る。このレーザ光源1から出射されたレーザービームL
は、走査/集光光学系2に入射される。この走査/集光
光学系2は、ポリゴンミラーによってレーザービームL
を偏向するとともに、偏向されたレーザビームを複数の
固定ミラーで種々の方向に反射させる光学系である。こ
の走査/集光光学系2によると、ポリゴンミラーの一反
射面による偏向周期内で、この走査/集光光学系2の上
方に向けて、複数の方向へのレーザビーム走査が連続的
に高速で行われる。即ち、これらレーザー光源1及び走
査/集光光学系2が、走査する光によって物体面を照射
する光照射手段に相当する。このようにして走査された
レーザビームLが商品3の表面に当たると、この表面に
おいてレーザビームLが乱反射され、その反射光Rの一
部が走査/集光光学系2に戻る。走査/集光光学系2
は、この反射光Rを光検知器4にリレーする。光検知器
4は、レーザビームL(反射光R)と同じ波長の光のみ
を透過するフィルタが被せられたホトダイオードであ
り、反射光Rの強度変化に応じた電流を二値化回路5に
入力する。即ち、これら走査/集光光学系2及び光検知
器4が、物体面からの光の反射光を光電変換する受光手
段に相当する。
【0018】二値化回路5は、光検知器4から入力され
た電流値を電圧値に変換するとともに、変換された電圧
値を所定のしきい値と比較して、方形波信号に波形整形
する。この方形波信号は、反射光Rの強度が商品3上の
バーコード3a中の白バーの反射率に対応する場合には
“H”を示し、反射光Rの強度が商品3上のバーコード
3a中の黒バーの反射率に対応する場合には“L”を示
す。二値化回路5は、この方形波信号の立ち上がり(白
エッジ)と立ち下がり(黒エッジ)とを夫々検出し、白
エッジに同期して白エッジパルス(WEG)(第1の信
号状態)を出力するとともに、黒エッジに同期して黒エ
ッジパルス(BEG)(第2の信号状態)を出力する。
即ち、この二値化回路5が、明暗パターン検出手段に相
当する。
【0019】バー幅カウンタ6は、二値化回路5から入
力された白エッジパルス(WEG)及び黒エッジパルス
(BEG)に基づいて、白エッジパルス(WEG)のタ
イミングから黒エッジパルス(BEG)のタイミングま
での時間(バーコード3a中の白バーの幅に対応するも
のと期待される),及び黒エッジパルス(BEG)のタ
イミングから白エッジパルス(WEG)のタイミングま
での時間(バーコード3a中の黒バーの幅に対応するも
のと期待される)を測定する。なお、バー幅カウンタ6
は、これらバー幅に対応する時間を計測するためにクロ
ック7からのクロック数をカウントし、これらバー幅に
対応するカウント値を出力する。即ち、バー幅カウンタ
6が、明暗パターン検出手段によって検出された明暗パ
ターンを構成する各明部と各暗部の幅を、前記走査が行
われた順番に従って、順次数値に変換する数値変換手段
に、相当する。
【0020】フィルター回路8は、バー幅カウンタ6か
ら入力された各カウント値を論理的に判定し、明らかに
バーコード3aからの反射光R以外の要因による強度変
化を示すカウンタ値を除去し、バーコード3aの各バー
の幅を示すカウント値である蓋然性が高いものだけを抽
出して次段に渡すフィルター回路である。
【0021】FIFOメモリ回路9は、フィルター回路
8を通過したカウント値を一旦保持するとともに、保持
した順序に従ってカウント値を出力する先入れ先出しメ
モリであり、バッファとして機能している。
【0022】バーコード認識/復調回路10は、FIF
Oメモリ回路9から読み出された各カウント値に対して
所定の認識/復調プログラムを実行して、バーコードに
コード化されていた各種のデータを取り出すプロセッサ
である。即ち、バーコード認識/復調回路10が、抽出
手段によって抽出された数値に基づいてデータの復調を
行うデータ復調手段に、相当する。
【0023】次に、これらのうち、バー幅カウンタ6,
フィルター回路8,FIFOメモり回路9,及びバーコ
ード認識/復調回路10の構成を、更に詳細に説明す
る。
【0024】(バー幅カウンタ)図3は、バー幅カウン
タ6の詳細構成を示すブロック図である。図3に示すよ
うに、二値化回路5から入力された白エッジパルス(W
EG)及び黒エッジパルス(BEG)は、夫々シーケン
サ21及びR−Sフリップフロップ23に入力する。ま
た、クロック回路7から入力された40MHzのクロッ
ク信号は、バイナリカウンタ20及びシーケンサ21に
入力する。
【0025】R−Sフリップフロップ23は、白エッジ
パルス(WEG)が入力されると、“白”を意味する信
号“1”を出力し、黒エッジパルス(BEG)が入力さ
れると、“黒”を意味する信号“0”を出力する。この
R−Sフリップフロップ23の出力(色識別信号)は、
フィルタ回路8に送信される。
【0026】シーケンサ21は、色の変換点が来ると、
フィルタ回路8に対してデータレディ信号(DRDY)
を出力するとともに、ANDゲート24を介してバイナ
リカウンタ20の“EN”端子に入力していたイネーブ
ル信号を一旦“0”とする。なお、この色の変換点と
は、白エッジパルス(WEG)受信した直後に黒エッジ
パルス(BEG)を受信した時点,及び、黒エッジパル
ス(BEG)受信した直後に白エッジパルス(WEG)
を受信した時点をいう。従って、シーケンサ21は、白
エッジパルス(WEG)又は黒エッジパルス(BEG)
を連続して受信した場合には、最初のパルスのみを色の
変換点として扱い、それ以降のものを無視する。
【0027】シーケンサ21は、FIFOメモリ回路9
からデータ書き込み完了(次のデータの書き込み準備完
了)を示すインプットレディ信号(IR)を受信する
と、バイナリカウンタ20の“LOAD”端子にロード
指示信号(パルス)を入力するとともに、イネーブル信
号を“1”とする。
【0028】バイナリカウンタ20は、11ビットの二
進カウンタであり、“EN”端子に入力されているイネ
ーブル信号が“1”の期間中に“CLK”端子から受信
したパルスをカウントして、バー幅カウント値としてフ
ィルタ回路8に出力する。このバイナリカウンタ20
は、イネーブル信号が“0”となると、パルスのカウン
トを中止する。
【0029】なお、上述したように、シーケンサ21
は、色の変換点が来ても、インプットレディ信号(I
R)をFIFOメモリ回路9から受信するまではイネー
ブル信号を“1”としないので、そのタイムラグの間に
おいてバイナリカウンタ20のカウントは停止したまま
となっている。しかしながら、この色の変換点が来てか
らインプットレディ信号(IR)が入力されるまで,即
ち、イネーブル信号が“1”とされるまでのタイムラグ
は、常時一定である。そのため、イネーブル信号が
“1”になるのと同時に“LOAD”端子にロード指示
信号が入力されると、バイナリカウンタ20は、このタ
イムラグの時間に対応するカウント値を初期値としてセ
ットする。そして、以後、このセットされた初期値を基
に、イネーブル信号が“0”となるまでカウントアップ
を行うのである。従って、バー幅カウント値は、色の変
換点からの時間を正しく示すようになるのである。ま
た、初期値セットがなされる前に出力されていたバー幅
カウント値は、この初期値セットによって上書きされる
ことになる。
【0030】また、レーザビームLが全く反射されなか
った場合やバーコード3a以外の面によって反射された
場合には、色の変換点から次の色の変換点までの時間が
11ビットで計測される時間を越えてしまう場合があり
得る。そのため、バー幅カウント値が11ビットの最大
カウント値(212−1)まで達すると、バイナリカウン
タ20の“RC”端子から出力されるリップルキャリア
ウト信号が“0”となるように構成されている。リップ
ルキャリアウト信号が“0”となると、ANDゲート2
4が閉じるので、バイナリカウンタ20の“EN”端子
に入力される信号が“0”となり、バイナリカウンタ2
0によるカウントが中止される。
【0031】以上のように、バー幅カウンタ6からフィ
ルター回路8へは、バー幅カウント値及び色識別信号が
送信される。
【0032】(フィルター回路)図4は、フィルター回
路8の詳細構成を示すブロック図である。この図4から
明らかなように、バー幅カウンタ20から入力されたバ
ー幅カウント値及び色識別信号は、フィルター回路8内
においてバッファ“BF15”に書き込まれる。このバ
ッファ“BF15”は、16段に直列接続されたバッフ
ァ列“BF15”〜“BF0”30の先頭をなしてい
る。これら各バッファ30には、バー幅カウンタ6のシ
ーケンサ21からのデータレディ信号(DRDY)が入
力される。そして、このデータレディ信号(DRDY)
を受信する毎に、各バッファ30は、その時点において
自己に書き込まれているバー幅カウント値及び色識別信
号を、次段のバッファ30に書き込む。即ち、各バッフ
ァ“BF15”〜“BF0”は、全体として、12ビッ
トパラレルの16段構成のシフトレジスタとして機能す
る。従って、バッファ“BF15”に書き込まれたバー
幅カウント値及び色識別信号は、データレディ信号(D
RDY)が16回発生すると、最後尾のバッファ“BF
0”からFIFOメモリ回路9に向けて出力される。
【0033】これら各バッファ30のうちバッファ“B
F15”及びバッファ“BF13”の出力は、比較回路
31にも入力される。この比較回路31は、新たにバッ
ファ“BF15”に入力されたバー幅カウント値が、2
つ前に入力されたバー幅カウント値(バッファ“BF1
3”の出力)に比して0.2倍〜5.0倍の範囲内とい
う所定のバーコードの規格条件を満たしているかどうか
を判定する回路である。このように、バッファ“BF1
5”の出力及びバッファ“BF13”の出力を比較する
のは、これらが同じ色のバーの幅を示しているからであ
る。また、0.2倍〜5.0倍としたのは、JANコー
ド及びUPCコードの規約では、バーコード内において
1キャラクタは7モジュールの単位幅で表されるととも
に、これら各モジュールを白又は黒に割り振ることによ
って7モジュール内で2本の黒バー及び2本の白バーを
形成しなくてはならないからである。即ち、この規約か
らすると、バーの最小幅は1モジュール,最大幅は4モ
ジュールとなり、その比率は最大1:4となるから、バ
ッファ“BF15”の出力がバッファ“BF13”の出
力に対して0.2倍〜5.0倍の範囲を超えることがあ
り得ず、超えた場合にはバーコード以外の要因によるも
のとみなすことができるからである。比較回路31の出
力は、バッファ“BF15”の出力がバッファ“BF1
3”の出力に対して0.2倍〜5.0倍の範囲内である
場合には“1”となり、範囲外の場合には“0”とな
る。
【0034】比較回路31からの出力信号は、リザルト
レジスタ“RR14”に入力される。このリザルトレジ
スタ“RR14”は、13段に直列接続されたリザルト
レジスタ列“RR14”〜“RR2”の先頭をなしてい
る。これら各リザルトレジスタ32には、バー幅カウン
タ6のシーケンサ21からのデータレディ信号(DRD
Y)が入力される。そして、このデータレディ信号(D
RDY)を受信する毎に、各リザルトレジスタ32は、
その時点において自己に書き込まれている比較器31に
よる比較結果(1/0)を、次段のリザルトレジスタ3
2に書き込む。即ち、各リザルトレジスタ“RR14”
〜“RR2”は、全体として、13段構成のシフトレジ
スタとして機能する。この結果、これらのリザルトレジ
スタ32には、比較回路31による過去13回分の比較
結果(H/L)が記録されていることになる。即ち、現
時点におけるバッファ“BF15”〜“BF1”までの
出力(バー幅カウント値)に対する比較結果が記録され
ているのである。従って、これら各リザルトレジスタ
“RR14”〜“RR2”の出力が全て“1”である場
合には、各バー幅カウント値が15個連続して相互に
0.2倍〜5.0倍の範囲内であるということになり、
15本の連続したバーコード(白バー及び黒バーが交互
に連続したバーコード)から得られたバー幅カウント値
である蓋然性が極めて高いと判断できる。
【0035】そこで、各リザルトレジスタ“RR14”
〜“RR2”の出力は、NAND回路33に入力され
て、それらの論理積(の反転値)が出力される。即ち、
NAND回路33の出力が“0”の場合には、各バッフ
ァに保持されているバー幅カウント値がバーコードから
得られたものである蓋然性が高いことを表し、出力が
“1”の場合には、バーコードから得られたバー幅カウ
ント値である蓋然性が低いことを表す。即ち、これらバ
ッファ列30,比較回路31,リザルトレジスタ列3
2,NAND回路33が、判定手段を構成する。
【0036】このNAND回路33の出力信号は、クリ
ア信号として、カウンタ36の“CLR”端子に入力さ
れる。また、このカウンタ36の“CLK”端子には、
クロックの代わりに、バー幅カウンタ6のシーケンサ2
1からのデータレディ信号(DRDY)が入力されてい
る。また、このカウンタ36の“RC”端子からは常時
論理値“0”の信号が出力されている。この“RC”端
子の出力は、インバーター34によって反転されて、A
NDゲート35に制御信号として入力されているととも
に、カウンタ36の“EN”端子にイネーブル信号とし
て入力している。
【0037】そして、このカウンタ36は、その“E
N”端子に入力されるイネーブル信号の信号状態が
“1”であり且つ“CLR”端子に入力されるクリア信
号の信号状態が“1”である期間中にデータレディ信号
(DRDY)のパルス数を受信すると、その内部におい
てカウント値をカウントアップする。このカウント値
は、“CLR”端子に入力されるクリア信号が“0”と
なるとリセットされ、カウント値が“17”に達する
と、“RC”端子から論理値“1”の信号(リップルキ
ャリアアウト信号)を出力する。従って、このリップル
キャリアアウト信号が出力されるとイネーブル信号の信
号状態が“0”になるので、カウンタ36のカウントが
中止されるとともに、ANDゲート35が閉じることと
なる。なお、このカウンタ36は、NAND33からの
出力が再度“0”となることによりリセットされ、“R
C”端子から出力される信号の論理値が“0”となり、
ANDゲート35を再び開ける。
【0038】ANDゲート35は、バー幅カウンタ6の
シーケンサ21からのデータレディ信号(DRDY)の
通過を許可/阻止する機能を有している。このANDゲ
ート35を通過した出力は、SIFTIN信号としてF
IFOメモリ回路9に入力される。そして、このSIF
TIN信号(DRDY信号)が入力されることによっ
て、次段のFIFOメモリ回路9は、バッファ“BF
0”から出力されている信号(バー幅カウント値及び色
識別信号,これらがまだバッファ“BF0”に書き込ま
れていない時点においてはスタック信号)を読み込む。
【0039】即ち、一旦、各リザルトレジスタ“RR1
4”〜“RR2”の出力が全て“1”(NAND回路3
3の出力が“0”)となり、バッファ“BF15”〜
“BF1”に保持されているバー幅カウント値がバーコ
ードによるものである蓋然性が高くなった場合には、A
NDゲート35が開いてSIFTIN信号(DRDY信
号)がFIFOメモリ回路9に入力されるので、バッフ
ァ“BF0”から次々に出力されるバー幅カウント値が
FIFOメモリ回路9によって読み込まれる。従って、
これらカウンタ36,インバータ34,及びANDゲー
ト35が、判定手段によって所定のバーコードの規格条
件を満たしていると判定された数値を抽出する抽出手
段,特に、バーコードの規格条件を満たしているとの判
定が判定手段により所定の複数回にわたり連続してなさ
れた場合のみこの複数回の判定において判定対象とされ
た数値及び比較対象とされた数値を抽出する抽出手段
に、相当する。
【0040】なお、この場合、NAND回路33による
判定に、バッファ“BF0”に保持されている信号(バ
ー幅カウント値及び色識別信号,これらがまだバッファ
“BF0”に書き込まれていない時点においてはスタッ
ク信号)は全く関与していない。従って、これらの信号
(複数回の判定において判定対象とされた数値及び比較
対象とされた数値の直前の数値)がバーコード3aによ
るものである保障は全くない。このような信号までFI
FOメモリ回路9に読み取らせるのは、これらの信号が
バーコード3aの両側に各1キャラクタ分確保されてい
るマージン(白バー)によるものである可能性があるか
らである。
【0041】また、一旦NAND回路33の出力が
“0”になった後でバッファ“BF13”の出力に対す
る比が0.2倍〜5.0倍の範囲を超えるバー幅カウン
ト値がバッファ“BF15”から出力されてNAND回
路33の出力が“1”に戻ると、その時のデータレディ
信号(DRDY)を含めて以後受信したデータレディ信
号(DRDY)の総計が16個になるまでは、データレ
ディ信号(DRDY)受信に同期して、各バッファ30
に書き込まれたバー幅カウント値及び色識別情報は各バ
ッファ30間をFIFOメモリ回路9に向けてシフトさ
れ、順次バッファ“BF0”から出力される。
【0042】即ち、NAND回路33の出力が“1”に
戻った時点においてバッファ“BF14”に保持されて
いた、バーコードによるものである蓋然性の高いバー幅
カウント値及び色識別情報は、データレディ信号(DR
DY)の総計が17個になる前に、確実にバッファ“B
F0”から出力されて、FIFOメモリ回路9によって
読み込まれる。それに加えて、NAND回路33の出力
を“1”にした直接の原因である、バッファ“BF1
5”から出力されたバー幅カウント値及び色識別情報
も、データレディ信号(DRDY)の総計が17個にな
る直前に、バッファ“BF0”から出力されて、FIF
Oメモリ回路9によって読み込まれる。このような信号
(複数回の判定において判定対象とされた数値及び比較
対象とされた数値の直後の数値)までFIFOメモリ回
路9によって読み取らせるのは、上述したようにこれら
の信号がマージンによるものである可能性があるからで
ある。
【0043】なお、それ以降にバッファ“BF15”に
書き込まれたバー幅カウント値及び色識別情報は、それ
がバッファ“BF0”から出力されるまでに再度NAN
D回路33の出力が再度“0”になれば、FIFOメモ
リ回路9によって読み取られるが、“1”のままである
とFIFOメモリ回路9によって読み取られることなく
破棄される。
【0044】以上に述べたフィルター回路8を、そこで
実現されるアルゴリズムに相当するフィルタリングプロ
グラムを実行するプロセッサに置き換えることも、可能
である。図5は、このようなフィルタリングプログラム
を示すフローチャートである。このプログラムは、バー
コードリーダーの主電源を投入することによりスタート
する。そして、最初のS001において、バー幅カウン
タ6のシーケンサ21からのデータレディ信号(DRD
Y)の入力を待つ。そして、入力があった場合には、次
のS002において、カウント値(カウンタ36のカウ
ント値に相当)が“17”に達しているかどうかをチェ
ックし、“17”であればそのまま処理をS004に進
め、“17”でなければS003においてカウント値を
“1”つインクリメントした後に処理をS004に進め
る。
【0045】S004では、各バッファ30に相当する
変数(BF0〜BF15)の書き換えを行う。即ち、バ
ー幅カウンタ6のバイナリカウンタ20から読み込んだ
バー幅カウンタ値を変数BF15に代入するとともに、
以前に変数BF15に代入されていた値を変数BF14
にシフトする。以下、同様に、BF14→BF13→…
…BF1→BF0の順に、各変数に代入されていた値を
シフトする。なお、変数BF0の値は、このプロセッサ
の出力となる。
【0046】次のS005では、現時点におけるBF1
5の値とBF13の値とが以下の関係式を満足している
か否かをチェックする。 0.2×BF15 < BF14 < 5.0×BF15 このチェックは、比較回路31に相当する処理である。
そして、上記関係式を満たされた場合には、S006に
おいて変数RESULTを“1”とセットし、上記関係
式が満たされない場合には、S007において変数RE
SULTを“0”とセットする。
【0047】何れの場合であっても、次のS008にお
いて、各リザルトレジスタ32に相当する変数(RR2
〜RR14)の書き換えを行う。即ち、S006又はS
007においてセットされた変数RESULTの値を変
数RR14に代入するとともに、以前に変数RR14に
代入されていた値を変数RR13にシフトする。以下、
同様に、RR13→RR12→……RR3→RR2の順
に、各変数に代入されていた値をシフトする。
【0048】次のS009では、現時点における各変数
RR2乃至RR14の値が全て“1”であるかどうかを
チェックする。このチェックは、NAND回路33に相
当する処理である。そして、各変数RR2乃至RR14
の値が全て“1”である場合には、S010においてカ
ウント値を“0”にリセットして処理をS011に進
め、各変数RR2乃至RR14の値の全てが“1”でな
い場合には、そのまま処理をS011に進める。
【0049】S011では、カウント値が“17”であ
るかを再チェックする。このチェックは、カウンタ36
に相当する処理である。そして、カウント値が“17”
でなければ、FIFOメモリ回路9に対するSIFTI
N信号を、S012において“H”とした後でS013
において“L”とする。即ち、パルスを一個出力する。
これに対してカウント値が“17”であれば、S013
において、SIFTIN信号を“L”のままとする。
【0050】以上の後に、次のバー幅カウント値を読み
込むために、処理がS001に戻される。そして、バー
コードリーダーの主電源が落とされるまでに、以上のル
ープ処理が繰り返されるのである。
【0051】(FIFOメモリ回路)FIFOメモリ回
路9の入出力信号を図6に示す。図6において“BCD
0〜10”は、フィルター回路8のバッファ“BF0”
の出力のうち、バー幅カウント値を示す信号を示す。ま
た、“B/W”は、フィルター回路8のバッファ“BF
0”の出力のうち、色識別信号を示す。これらの各信号
は、フィルター回路8のANDゲートからSFTIN信
号(DRDY信号)が送信されてきた時に、FIFOメ
モり回路9によって読み取られる。また、これら信号を
読み取ると、FIFOメモリ回路9は、インプットレデ
ィ信号(IR)をバー幅カウンタ6のシーケンサ21に
向けて送出する。
【0052】このFIFOメモリ回路9と次段のバーコ
ード認識/復調回路10との間は、16ビットの外部バ
スEBによって接続されている。そして、FIFOメモ
リ回路9は、最先に読み込んだバー幅カウント値及び色
識別信号を、外部バスEBを介してバーコード認識/復
調回路10に向けて出力すると、これら情報の取り込み
を指示する信号(OR)をバーコード認識/復調回路1
0に対して発行する。そして、バーコード認識/復調回
路10がこれらの信号の取り込み完了を示す信号(SE
TOUT)を通知してくると、次のバー幅カウント値及
び色識別信号をバーコード認識/復調回路10に向けて
出力する。
【0053】なお、FIFOメモリ回路9とバーコード
認識/復調回路10とを接続する外部バスEBには、ま
た、外部RAM46及び外部ROM47が接続されてい
る。
【0054】(バーコード認識/復調回路)次に、図6
を用いて、バーコード認識/復調回路10の詳細な構成
を説明する。
【0055】このバーコード認識/復調回路10は、3
2ビットの内部バスLBによって夫々接続されたCPU
43,RAM44,ユニバーサル・アシンクロノウス・
レシーバ・トランスミッター(UART)45,ダイレ
クト・メモリ・アクセス・コントローラ(DMAC)4
1,及びタイマー42,並びに、この内部バスLBと外
部バスEBとの間に接続されたバスステートコントロー
ラ(BSC)40から、構成されている。
【0056】CPU43は、RISCチップから構成さ
れ、バーコード認識/復調回路10全体の制御を行い、
FIFOメモリ回路9から送信されたバー幅カウント値
及び色識別信号に基づくバーコードの認識/復調処理を
実行する。
【0057】バスステートコントローラ(BSC)40
は、内部バスLBと外部バスEBの状態を管理する出入
力インタフェースである。ダイレクト・メモリ・アクセ
ス・コントローラ(DMAC)41は、FIFOメモリ
回路9から信号の取り込みを指示する信号(OR)が入
力されると、バスステートコントローラ40を制御し
て、FIFOメモリ回路9から送信されて来ているバー
幅カウント値及び色識別信号をCPU43に転送する。
この転送が完了すると、信号の取り込み完了を示す信号
(SETOUT)を、FIFOメモリ回路9に通知す
る。
【0058】タイマー42は、バーコード認識/復調回
路10内での各種処理に用いられる時間情報を生成する
装置である。ユニバーサル・アシンクロノウス・レシー
バ・トランスミッター(UART)45は、パラレル情
報として復調されたキャラクタ情報をシリアル信号に変
換して図示せぬRS−232Cポートから外部に出力す
るパラレル/シリアルインタフェースである。次に、C
PU43において実行されるバーコード認識/復調処理
プログラムの内容を、図7のフローチャートに基づいて
説明する。
【0059】図7のフローチャートは、バーコードリー
ダーに主電源が投入されることによりスタートする。そ
して、最初のS101において、FIFOメモリ回路9
からデータ(バー幅カウント値及び色識別情報)を一つ
読み込む。そして、次のS102では、S101にて読
み込んだ情報及び過去数回にわたって読み込んだ情報が
スタートコードに該当するかどうかをチェックする。な
お、FIFOメモリ回路9から読み込んだバー幅カウン
ト値は、バーコード3aに対するレーザービームLの走
査方向によっては全体に伸長していることがあり得るの
で、このチェックを行う際には、バー幅カウント値を所
定の基準値に基づいて正規化する。このチェックの結果
スタートコードに該当していなければ、処理をS101
に戻すが、スタートコードに該当していた場合には、S
103においてFIFOメモリ回路9からデータ(バー
幅カウント値及び色識別情報)を1キャラクター分(白
バー2本及び黒バー2本に当たる4個のバー幅カウント
値及び色識別情報)読み込む。
【0060】次のS104では、S103にて読み込ん
だ1キャラクター分のデータの長さをチェックする。即
ち、1キャラクター分のデータが7モジュールでない場
合は、何らかのエラーが生じた場合であるかバーコード
3a以外によるバー幅カウント値が偶然スタートコード
と同じパターンになった場合であるので、処理をS10
1に戻す。これに対して、1キャラクター分のデータが
7モジュールである場合には、そのデータがバーコード
3aによるバー幅カウント値であると認められるので、
S105において、そのデータのパターンに対応するキ
ャラクターに変換してRAM44に格納する。
【0061】次のS106では、S103にて読み込ん
だデータがストップデータに該当するかどうかをチェッ
クする。そして、ストップコードでない場合には、処理
をS103に戻す。これに対して、ストップコードであ
る場合には、S107において、RAM44に格納して
いたキャラクタ(読み取りバーコードデータ)を、ユニ
バーサル・アシンクロノウス・レシーバ・トランスミッ
ター(UART)45を介して外部に送信する。そし
て、次のバーコードの復調を行うために、処理をS10
1に戻す。
【0062】
【実施例】次に、以上のように構成した第1実施形態の
作用を、具体的数値が入力された場合の実施例として、
説明する。
【0063】(初期状態)いま、使用者がバーコードリ
ーダーの電源を投入したとする。するとレーザー光源1
から出射されたレーザービームLが、走査/集光光学系
2によってあらゆる方向に走査される。但し、この時点
では、レーザービームLが走査された先には商品3が存
在していないので、反射光Rは光検知器4によって受光
されない。従って、二値化回路5内部で生成される二値
信号は“L”レベルのままであってエッジが生じていな
いので、この二値化回路5からは何も出力されない。
【0064】(商品表面の走査開始)次に、使用者が商
品3のバーコード3aが付されている面を走査/集光光
学系2上に翳すと、この面の走査がなされる。
【0065】そして、レーザービームLがこの商品3の
面上における白い模様に当たると、反射光Rが走査/集
光光学系2に戻って光検知器4に受光される。すると、
二値化回路5から白エッジパルス(WEG)が出力さ
れ、バー幅カウンタ6のシーケンサ21に入力される。
すると、このシーケンサ21は、この白エッジパルス
(WEG)の受信に従って、一個のデータレディ信号
(DRDY)をフィルタ回路8に向けて出力する。する
と、初期時点でのバイナリカウンタ20のカウンタ値
“0”が、フィルタ回路8のバッファ“BF15”に書
き込まれる。
【0066】なお、初期状態においてフィルタ回路8中
の全バッファ30及び全リザルトレジスタ32の値は全
て“0”となっているが、カウンタ36のカウント値は
“0”なので、ANDゲート35が開いており、このデ
ータレディ信号(DRDY)がSFTIN信号としてF
IFOメモリ回路9に通知される。すると、FIFOメ
モリ回路9は、フィルター回路8中のバッファ“BF
0”の出力“0”を読み込み、インプットレディ信号
(IR)をバー幅カウンタ6のシーケンサ21に通知す
る。シーケンサ21は、このインプットレディ信号(I
R)に応じて、バイナリカウンタ20に初期値をセット
させてカウントを開始させる。
【0067】次に、レーザービームBが商品3の面上に
おける黒い模様に当たると、光検知器4に入射される反
射光Rの光量が所定のしきい値よりも低くなり、二値化
回路5から黒エッジパルス(BEG)が出力され、バー
幅カウンタ6のシーケンサ21に入力される。すると、
このシーケンサ21は、この黒エッジパルス(BEG)
の受信に従って、一個のデータレディ信号(DRDY)
をフィルタ回路8に向けて出力する。すると、現時点で
のバイナリカウンタ20のカウンタ値“5”が、フィル
タ回路8のバッファ“BF15”に書き込まれる。
【0068】なお、この時点では、カウンタ36のカウ
ント値は“1”となり、ANDゲート35は開いたまま
であるので、このデータレディ信号(DRDY)がSF
TIN信号としてFIFOメモリ回路9に通知される。
すると、FIFOメモリ回路9は、フィルター回路8中
のバッファ“BF0”の出力“0”を読み込み、インプ
ットレディ信号(IR)をバー幅カウンタ6のシーケン
サ21に通知する。シーケンサ21は、このインプット
レディ信号(IR)に応じて、バイナリカウンタ20の
カウンタ値を初期値によって上書きして、カウントを再
開させる。
【0069】以上のようにして商品3の面上の走査が進
み、バー幅カウンタ6からフィルター回路8に対して、
“5”→“10”→“100”→“200”→“30”
というパターンのバー幅カウント値が、6回繰り返して
入力されたとする。このバー幅カウント値のパターンを
検証すると、“100”及び“30”,並びに“30”
及び“10”は0.2倍から5.0倍の範囲内である
が、“5”及び“100”,“10”及び“200”,
並びに“200”及び“5”は0.2倍から5.0倍の
範囲外となる。従って、リザルトレジスタ“RR14”
に入力される比較回路31の比較結果は、“0”→
“0”→“0”→“0”→“1”→“0”→“1”→
“0”→“0”→“1”→“0”→“1”→“0”→
“0”→“1”→“0”→“1”→“0”→“0”→
“1”→“0”→“1”→“0”→“0”→“1”とな
る。なお、初期時において“0”が連続するのは、入力
されたバー幅カウント値を初期設定値“0”と比較して
いるからである。
【0070】比較回路31による比較結果が上記したパ
ターンであると、全リザルトレジスタ32の出力が全て
“1”となることがないので、カウンタ36のカウント
値はクリアされることなく、インクリメントし続ける。
その結果、4巡目の“5”がフィルター回路8に入力し
た時点では、カウンタ36のカウント値が“16”であ
るのでANDゲート35が開いたままになっており、そ
の時点までにバッファ“BF0”から出力されたデータ
(“0”→“0”→“0”→“0”→“0”→“0”→
“0”→“0”→“0”→“0”→“0”→“0”→
“0”→“0”→“0”→“5”)はFIFOメモリ回
路9によって読み取られる。しかし、次の“10”がフ
ィルター回路8に入力した時点では、カウンタ36のカ
ウント値が“17”となるので、ANDゲート35が閉
じられて、SFTIN信号のFIFOメモリ回路9への
送信が停止される。従って、それ以後にバッファ“BF
0”から出力されるバー幅カウンタ値はFIFOメモリ
回路9よって読み取られることなく破棄される。
【0071】(バーコードの走査開始)次に、商品3上
のバーコード3aがレーザービームLによって走査さ
れ、“1000”→“101”→“112”→“10
3”→“104”→“205”→“306”→“10
7”→“208”→“209”→“200”→“10
1”→“402”→“103”→“104”→“10
5”→“1000”の順で、バー幅カウント値がフィル
ター回路8に入力されたとする。なお、“1000”
は、バーコード3aの前後に付されたマージン(白バ
ー)を示す。また、“1000”に挟まれた15個のバ
ー幅カウント値は、バーコード3aからの反射光Rによ
るものなので、一個置きに隣り合ったもの同士の比が、
0.2倍〜5.0倍の範囲内に収まっている。
【0072】このようなパターンのバー幅カウント値が
各バッファ30内をシフトされていくと、“105”が
入力された時点で、全てのリザルトレジスタ32の出力
が“1”となり、NAND回路33の出力が“0”とな
る。即ち、バーコードの条件を満たすバーが15本連続
しているので、これらがバーコードを構成している蓋然
性が高いものと判定されたことになる。従って、カウン
タ36のカウンタ値がクリアされるとともに、“RC”
端子からの出力が“0”となり、ANDゲート35が開
き、FIFOメモリ回路9にSFTIN信号が供給され
るようになる。この時点でバッファ“BF0”から出力
されているバー幅カウント値は“1000”であるの
で、この“1000”を含めてこれ以降に出力されるバ
ー幅カウント値がFIFOメモリ回路9に読み取られ
る。
【0073】但し、次に“1000”がフィルター回路
8に入力されると、この“1000”は二個前に入力さ
れた“104”に比して5.0倍以上であるので、リザ
ルトレジスタ“RR14”に“0”が書き込まれる。す
ると、NAND回路33の出力が“1”となり、カウン
タ36がカウント可能状態となる。この時点では、同時
にDRDY信号が入力されるので、カウント値が“1”
となる。従って、以後カウント値が“16”になるまで
にバッファ“BF0”から出力されるバー幅カウント値
は、破棄されることなくFIFOメモリ回路9に読み取
られる。なお、この時点でバッファ“BF0”から出力
されているバー幅カウント値は、“101”である。
【0074】(商品表面の走査)バーコード3aの走査
が完了すると、レーザービームLは、商品3の表面にお
Kるバーコード3a以外の部分を走査することになる。
ここでは、上述したのと同じく、“5”→“10”→
“100”→“200”→“30”というパターンのバ
ー幅カウント値が、繰り返しフィルター回路8に入力さ
れるとする。
【0075】上述したように、このようなパターンのバ
ー幅カウント値がフィルター回路8に入力しても、全て
のリザルトレジスタ32の出力が全て“1”になること
はない。従って、カウンタ36は、クリアされることな
くカウント値をインクリメントし続ける。
【0076】上記パターンを繰り返すバー幅カウント値
が入力されると、それに従って、各バッファ30に保持
されているバーコードを構成するバー幅カウント値は、
各バッファ30間を次々とシフトされ、バッファ“BF
0”から出力される。このようにバッファ“BF0”か
ら出力されたバー幅カウント値は、カウンタ36のカウ
ント値が“16”になるまでは、FIFOメモリ回路9
によって読み取られる。従って、“101”→“11
2”→“103”→“104”→“205”→“30
6”→“107”→“208”→“209”→“20
0”→“101”→“402”→“103”→“10
4”→“105”→“1000”の順で、バーコード
(及びマージン)を構成するバー幅カウント値が、FI
FOメモリ回路9によって読み取られる。そして、それ
以降のバー幅カウント値,即ち、商品表面の模様による
バー幅カウント値は、カウンタ36のカウント値が“1
7”になって、“RC”端子から出力される信号が
“1”となり、ANDゲート35が閉じられるので、F
IFOメモリ回路9に読み取られることなく破棄され
る。
【0077】以上の実施例によって示されるのように、
本実施形態によれば、バーコードリーダーの主電源投入
直後においては、カウンタ36のカウンタ値が“17”
に達していないので、バーコードを構成しないバー幅カ
ウント値(バッファ30の初期値を含む)がFIFOメ
モリ回路9によって読み込まれてしまうことがあるが、
一旦カウンタ36のカウント値が“17”に達した後で
は、バーコードを構成する蓋然性の高い15個連続のバ
ー幅カウント値及び色識別情報と、その前後に一個づつ
付されるマージンを構成する蓋然性の高いバー幅カウン
ト値及び色識別情報のみが、FIFOメモリ回路9によ
って読み取られることになる。従って、バーコード認識
/復調回路10が処理対象とするバー幅カウント値及び
色識別情報は、バーコード及びマージンを構成する蓋然
性が高いもののみになる。実験的には、バーコード認識
/復調回路10に入力されるデータ(バー幅カウント値
及び色識別情報)の量を半分に減らすことができた。
【0078】従って、バーコード認識/復調回路10の
処理効率が向上し、走査速度を高速化したりバーコード
認識/復調処理を複雑化させる余裕が生じる。
【0079】
【実施形態2】上記第1実施形態では、バーコードを構
成する蓋然性の低いデータを削除するとデータの連続性
が断絶するが、外見上この連続性の断絶が見えず、連続
したデータと区別をすることができなくなってしまう。
その結果、バーコード認識/復調回路10がデータの誤
読(復調誤り)をしてしまう可能性が生じる。本発明の
第2の実施の形態は、この問題点に鑑みてなされたもの
であり、データの連続性が断絶した時点のデータに不連
続を示すフラグ“ERR”をセットすることを特徴とし
ている。
【0080】図8は、この第2実施形態におけるフィル
ター回路8の構成を示すブロック図である。この図8か
ら明らかなように、この第2実施形態によるフィルター
回路8は、第1実施形態によるフィルター回路8と比較
して、第1実施形態におけるカウンタ36と全く同じ第
1カウンタ36に加えて第2カウンタ38を設け、この
第2カウンタ38の“RC”端子から出力されるリップ
ルキャリアウト信号をエラーフラグとしてバッファ“B
F0”から出力する点で相違している。図8におけるそ
の他の構成は、第1実施形態におけるフィルタ8の構成
と全く同じであるので、同じ引用番号を付してその説明
を省略する。
【0081】第2カウンタ38は、第1カウンタ36と
同じく、データレディ信号(DRDY)がその“CL
K”端子に入力され、NAND回路33の出力がその
“CLR”端子に入力され、その“RC”端子の出力が
インバータ37によって反転されてその“EN”端子に
入力される。そして、第2カウンタ38は、第1カウン
タ36と同じ動作を行う。但し、第1カウンタ36は、
カウント値が“17”になった時点で端子“RC”から
出力されるリップルキャリアウト信号を“1”とするの
に対し、第2カウンタ38は、カウント値が“16”に
なった時点で端子“RC”から出力されるリップルキャ
リアウト信号を“1”とする。
【0082】一方、バッファ“BF0”は、他のバッフ
ァ“BF1”〜“BF15”が12ビットパラレルであ
るのに比して13ビットパラレルの構成になっている。
そして、この13番目のビットに、第2カウンタ38か
ら出力されるリップルキャリアウト信号が書き込まれ、
データの不連続を示すフラグ“ERR”としてFIFO
メモリ回路9に対して出力されるのである。
【0083】以上の構成により、第1カウンタ36のカ
ウンタ値が“17”になってANDゲート35が閉じら
れる直前にバッファ“BF0”から出力されるデータ
に、フラグ“ERR”がセットされることになる。従っ
て、FIFOメモリ回路9に読み込まれる連続性のある
データのうちの最後のもの(複数回の判定において判定
対象とされた数値及び比較対象とされた数値の直後の数
値)にはフラグ“ERR”がセットされているので、バ
ーコード認識/復調回路10は、連続性の断絶の位置を
知り、データの誤読(復調誤り)をすることなく、バー
コード認識/復調処理を実行することができる。
【0084】以上に述べたフィルター回路8を、そこで
実現されるアルゴリズムに相当するフィルタリングプロ
グラムを実行するプロセッサに置き換えることも、可能
である。図9は、このようなフィルタリングプログラム
を示すフローチャートである。このプログラムは、バー
コードリーダーの主電源を投入することによりスタート
する。そして、最初のS201において、バー幅カウン
タ6のシーケンサ21からのデータレディ信号(DRD
Y)の入力を待つ。そして、入力があった場合には、次
のS202において、カウント値(第1カウンタ36の
カウント値に相当)が“17”に達しているかどうかを
チェックし、“17”であればそのまま処理をS204
に進め、“17”でなければS203においてカウント
値を“1”つインクリメントした後に処理をS204に
進める。
【0085】S204では、各バッファ30に相当する
変数(BF0〜BF15)の書き換えを行う。即ち、バ
ー幅カウンタ6のバイナリカウンタ20から読み込んだ
バー幅カウンタ値を変数BF15に代入するとともに、
以前に変数BF15に代入されていた値を変数BF14
にシフトする。以下、同様に、BF14→BF13→…
…BF1→BF0の順に、各変数に代入されていた値を
シフトする。
【0086】次のS205では、現時点におけるBF1
5の値とBF13の値とが以下の関係式を満足している
か否かをチェックする。 0.2×BF15 < BF14 < 5.0×BF15 このチェックは、比較回路31に相当する処理である。
そして、上記関係式を満たされた場合には、S206に
おいて変数RESULTを“1”とセットし、上記関係
式が満たされない場合には、S207において変数RE
SULTを“0”とセットする。
【0087】何れの場合であっても、次のS208にお
いて、各リザルトレジスタ32に相当する変数(RR2
〜RR14)の書き換えを行う。即ち、S206又はS
207においてセットされた変数RESULTの値を変
数RR14に代入するとともに、以前に変数RR14に
代入されていた値を変数RR13にシフトする。以下、
同様に、RR13→RR12→……RR3→RR2の順
に、各変数に代入されていた値をシフトする。
【0088】次のS209では、現時点における各変数
RR2乃至RR14の値が全て“1”であるかどうかを
チェックする。このチェックは、NAND回路33に相
当する処理である。そして、各変数RR2乃至RR14
の値が全て“1”である場合には、S210においてカ
ウント値を“0”にリセットして処理をS211に進
め、各変数RR2乃至RR14の値の全てが“1”でな
い場合には、そのまま処理をS211に進める。
【0089】S211では、カウント値が“16”であ
るかをチェックする。このチェックは、第2カウンタ3
8に相当する処理である。そして、カウント値が“1
6”でなければ、S213において、出力するデータの
フラグ“ERR”を“0”にセットし、カウント値が
“16”であれば、S212において、出力するデータ
のフラグ“ERR”を“1”にセットする。
【0090】何れの場合においても、次のS214で
は、カウント値が“17”であるかをチェックする。こ
のチェックは、第1カウンタ36に相当する処理であ
る。そして、カウント値が“17”でなければ、FIF
Oメモリ回路9に対するSIFTIN信号を、S215
において“H”とした後でS216において“L”とす
る。即ち、パルスを一個出力する。これに対してカウン
ト値が“17”であれば、S216において、SIFT
IN信号を“L”のままとする。
【0091】以上の後に、次のバー幅カウント値を読み
込むために、処理がS201に戻される。そして、バー
コードリーダーの主電源が落とされるまでに、以上のル
ープ処理が繰り返されるのである。
【0092】図10は、本第2実施形態におけるバーコ
ード認識/復調回路10のCPU43において実行され
るバーコード認識/復調処理プログラムの内容を示すフ
ローチャートである。
【0093】図10のフローチャートは、バーコードリ
ーダーに主電源が投入されることによりスタートする。
そして、最初のS301において、FIFOメモリ回路
9からデータ(バー幅カウント値及び色識別情報)を一
つ読み込む。そして、次のS302では、S301にて
読み込んだ情報及び過去数回にわたって読み込んだ情報
がスタートコードに該当するかどうかをチェックする。
なお、FIFOメモリ回路9から読み込んだバー幅カウ
ント値は、バーコード3aに対するレーザービームLの
走査方向によっては全体に伸長していることがあり得る
ので、このチェックを行う際には、バー幅カウント値を
所定の基準値に基づいて正規化する。このチェックの結
果スタートコードに該当していなければ、処理をS30
1に戻すが、スタートコードに該当していた場合には、
S303においてFIFOメモリ回路9からデータ(バ
ー幅カウント値及び色識別情報)を1キャラクター分
(白バー2本及び黒バー2本に当たる4個のバー幅カウ
ント値及び色識別情報)読み込む。
【0094】次のS304では、S303にて読み込ん
だデータに付されたフラグ“ERR”が“0”であるか
どうかをチェックする。そして、“ERR”=“1”で
あれば、そのデータは連続するデータの末端であり、1
5本連続するバーコード3aを構成するデータには含ま
れないもの(マージン等)であるので、処理をS301
に戻す。これに対して、“ERR”=“0”であれば、
そのデータは連続するデータの中間であるので、処理を
S305に進める。
【0095】S305では、S303にて読み込んだ1
キャラクター分のデータの長さをチェックする。即ち、
1キャラクター分のデータが7モジュールでない場合
は、何らかのエラーが生じた場合であるかバーコード3
a以外によるバー幅カウント値が偶然スタートコードと
同じパターンになった場合であるので、処理をS301
に戻す。これに対して、1キャラクター分のデータが7
モジュールである場合には、そのデータがバーコード3
aによるバー幅カウント値であると認められるので、S
306において、そのデータのパターンに対応するキャ
ラクターに変換してRAM44に格納する。
【0096】次のS307では、S303にて読み込ん
だデータがストップデータに該当するかどうかをチェッ
クする。そして、ストップコードでない場合には、処理
をS303に戻す。これに対して、ストップコードであ
る場合には、S308において、RAM44に格納して
いたキャラクタ(読み取りバーコードデータ)を、ユニ
バーサル・アシンクロノウス・レシーバ・トランスミッ
ター(UART)45を介して外部に送信する。そし
て、次のバーコードの復調を行うために、処理をS30
1に戻す。
【0097】本第2実施形態におけるその他の構成及び
作用は、第1実施形態のものと全く同一なので、その説
明を省略する。
【0098】
【発明の効果】以上のように構成された本発明のバーコ
ード検出装置及びバーコード検出方法によると、復調回
路に入力する前に、反射光情報の中からバーコード以外
の要因によることが明らかなものを論理的に除去するこ
とができ、それによって反射光情報中におけるバーコー
ド反射光情報の含有率を高めることができ、復調回路の
処理効率を向上させることができる。
【図面の簡単な説明】
【図1】 本発明の原理を示す原理図
【図2】 本発明の第1の実施形態によるバーコードリ
ーダーのブロック図
【図3】 図2のバー幅カウンタの詳細な構成を示すブ
ロック図
【図4】 図2のフィルター回路の詳細な構成を示すブ
ロック図
【図5】 図2のフィルター回路と等価なプログラムの
内容を示すフローチャート
【図6】 図2のFIFOメモリ回路及びバーコード認
識/復調回路の詳細な構成を示すブロック図
【図7】 図6のCPUで実行されるバーコード認識/
復調処理の内容を示すフローチャート
【図8】 本発明の第2の実施形態によるバーコードリ
ーダーのフィルター回路の詳細な構成を示すブロック図
【図9】 図8のフィルター回路と等価なプログラムの
内容を示すフローチャート
【図10】 本発明の第2の実施形態によるバーコード
リーダーのバーコード認識/復調回路におけるCPUで
実行されるバーコード認識/復調処理の内容を示すフロ
ーチャート
【符号の説明】
1 レーザー光源 2 走査/集光光学系 3a バーコード 4 光検知器 5 二値化回路 6 バー幅カウンタ 8 フィルター回路 10 バーコード認識/復調回路 20 バイナリカウンタ 30 バッファ 31 比較回路 32 リザルトレジスタ 33 NAND回路 33 カウンタ 34 ANDゲート
───────────────────────────────────────────────────── フロントページの続き (72)発明者 岩口 功 神奈川県川崎市中原区上小田中1015番地 富士通株式会社内 (72)発明者 篠田 一郎 神奈川県川崎市中原区上小田中1015番地 富士通株式会社内

Claims (8)

    【特許請求の範囲】
  1. 【請求項1】バーコードが形成された物体面を走査し
    て、その走査軌跡における前記物体面上の明暗パターン
    を検出する明暗パターン検出手段と、 この明暗パターン検出手段によって検出された明暗パタ
    ーンを構成する各明部と各暗部の幅を順次数値に変換す
    る数値変換手段と、 この数値変換手段によって変換された前記各数値を順次
    入力するとともに、入力された数値がその前に入力され
    た数値に対して所定のバーコードの規格条件を満たして
    いるかどうかを判定する判定手段と、 この判定手段によって前記所定のバーコードの規格条件
    を満たしていると判定された前記数値を抽出する抽出手
    段と、 この抽出手段によって抽出された前記数値に基づいてデ
    ータの復調を行うデータ復調手段とを備えたことを特徴
    とするバーコード検出装置。
  2. 【請求項2】前記明暗パターン検出手段は、 走査する光によって前記物体面を照射する光照射手段
    と、 物体面からの前記光の反射光を光電変換する受光手段
    と、 この受光手段による光電変換の結果得られた電気信号
    を、明部を示す第1の信号状態と暗部を示す第2の信号
    状態からなる信号に変換する信号変換手段とからなるこ
    とを特徴とする請求項1記載のバーコード検出装置。
  3. 【請求項3】前記判定手段は、入力された数値が明部の
    数値である場合にはその直前に入力された明部の数値に
    対して前記所定のバーコードの規格条件を満たしている
    かどうかを判定し、入力された数値が暗部の数値である
    場合にはその直前に入力された暗部の数値に対して前記
    所定のバーコードの規格条件を満たしているかどうかを
    判定することを特徴とする請求項1記載のバーコード検
    出装置。
  4. 【請求項4】前記抽出手段は、前記入力された数値がそ
    の前に入力された数値に対して前記所定のバーコードの
    規格条件を満たしているとの判定が前記判定手段により
    所定の複数回にわたり連続してなされた場合にのみ、こ
    の複数回の判定において判定対象とされた数値及び比較
    対象とされた数値を抽出することを特徴とする請求項1
    又は3記載のバーコード検出装置。
  5. 【請求項5】前記抽出手段は、前記複数回の判定におい
    て判定対象とされた数値及び比較対象とされた数値に加
    え、その直前の数値及びその直後の数値をも抽出するこ
    とを特徴とする請求項4記載のバーコード検出装置。
  6. 【請求項6】前記抽出手段は、前記複数回の判定におい
    て判定対象とされた数値及び比較対象とされた数値の直
    後の数値に、データの不連続を示すフラグを付すことを
    特徴とする請求項5記載のバーコード検出装置。
  7. 【請求項7】前記所定のバーコードの規格条件は、前記
    入力された数値が前記その前に入力された数値の0.2
    倍乃至5.0倍の範囲内であるという条件であることを
    特徴とする請求項1乃至6の何れかに記載のバーコード
    検出装置。
  8. 【請求項8】バーコードが形成された物体面を走査し、 その走査軌跡における前記物体面上の明暗パターンを検
    出し、 この明暗パターン検出手段によって検出された明暗パタ
    ーンを構成する各明部と各暗部の幅を順次数値に変換
    し、 変換された数値がその前に変換された数値に対して所定
    のバーコードの規格条件を満たしているかどうかを判定
    し、 変換された数値がその前に変換された数値に対して所定
    のバーコードの規格条件を満たしている場合にはこの数
    値を抽出し、 この抽出された数値に基づいてデータの復調を行うこと
    を特徴とするバーコード検出方法。
JP07204933A 1995-08-10 1995-08-10 バーコード検出装置及び検出方法 Expired - Lifetime JP3083464B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP07204933A JP3083464B2 (ja) 1995-08-10 1995-08-10 バーコード検出装置及び検出方法
US08/628,109 US6059187A (en) 1995-08-10 1996-04-09 Apparatus for and method of detecting bar code

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP07204933A JP3083464B2 (ja) 1995-08-10 1995-08-10 バーコード検出装置及び検出方法

Publications (2)

Publication Number Publication Date
JPH0954809A true JPH0954809A (ja) 1997-02-25
JP3083464B2 JP3083464B2 (ja) 2000-09-04

Family

ID=16498766

Family Applications (1)

Application Number Title Priority Date Filing Date
JP07204933A Expired - Lifetime JP3083464B2 (ja) 1995-08-10 1995-08-10 バーコード検出装置及び検出方法

Country Status (2)

Country Link
US (1) US6059187A (ja)
JP (1) JP3083464B2 (ja)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CA2282392A1 (en) * 1997-03-07 1998-09-11 Kurt Hecht Symbology scanning system for efficiently locating coded symbologies
JP3447928B2 (ja) * 1997-09-22 2003-09-16 富士通株式会社 バーコード読み取り装置
US6478224B1 (en) * 2001-03-02 2002-11-12 Psc Scanning, Inc. Symbology-independent method and apparatus for identifying potential bar code data
US8196836B2 (en) * 2007-06-28 2012-06-12 Fuji Xerox Co., Ltd. Image processing apparatus, image processing method and computer-readable medium

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3882464A (en) * 1974-04-04 1975-05-06 Computer Identics Corp Size ratio label reading system
JPS576977A (en) * 1980-06-13 1982-01-13 Fujitsu Ltd Bar code reading system
JPS58223876A (ja) * 1982-06-23 1983-12-26 Casio Comput Co Ltd バ−コ−ド認識装置
JPS6011973A (ja) * 1983-07-01 1985-01-22 Nec Corp バ−コ−ド読取装置
US4717818A (en) * 1986-06-26 1988-01-05 International Business Machines Corporation Bar code label identification circuit
US4859840A (en) * 1987-10-30 1989-08-22 Alps Electric Co., Ltd. Code reading apparatus
JP2886545B2 (ja) * 1989-03-03 1999-04-26 富士通株式会社 マージン認識方法及びバーコード読取り装置
US5196685A (en) * 1990-05-02 1993-03-23 Eastman Kodak Company Bar code reader
US5218190A (en) * 1990-09-28 1993-06-08 Symbol Technologies, Inc. Means and method for non-contact bar code label verification
EP0498678B1 (en) * 1991-02-08 2000-05-10 Fujitsu Limited High speed scan bar code reader which can read more than one type of bar code
JP3230612B2 (ja) * 1992-09-02 2001-11-19 オリンパス光学工業株式会社 2次元バーコードリーダ

Also Published As

Publication number Publication date
JP3083464B2 (ja) 2000-09-04
US6059187A (en) 2000-05-09

Similar Documents

Publication Publication Date Title
US6095419A (en) Bar code reading apparatus for reading plural code systems
EP0029455B1 (en) Symbol processing system
EP0029456B1 (en) Slot scanning system
JP2000357205A (ja) バーコード読取装置及びバーコード読取方法
JPH07101437B2 (ja) 符号読取装置
JP3470738B2 (ja) バーコード読取装置及びバーコード読取方法
KR100319414B1 (ko) 바코드판독방법
US6343742B2 (en) Bar code reader and bar code reading method
JP3083464B2 (ja) バーコード検出装置及び検出方法
US5780832A (en) Bar code reading apparatus
KR100308415B1 (ko) 바코드판독장치,바코드판독방법및컴퓨터판독가능매체
US6070801A (en) Bar code reader, bar code reading method and computer readable medium
JP3448404B2 (ja) バーコード読取装置及びバーコード読取方法
JP3292635B2 (ja) バーコード読取装置
JPS61290578A (ja) バ−コ−ド読取装置
JP2003036416A (ja) バーコード読取装置
EP1117059A1 (en) Bar code reader and bar code reading method
KR900004659B1 (ko) 바 코드 스캐너 전 처리회로
JPS621080A (ja) バ−コ−ド読取装置
JP2732914B2 (ja) バーコードリーダー
JPS63266585A (ja) 読み取り制御方式
JPS61290577A (ja) バ−コ−ド読取装置
JPH07334609A (ja) バーコード読取装置
JP2002352185A (ja) バーコード読取装置
JPH01266686A (ja) バーコード読取装置

Legal Events

Date Code Title Description
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20000613

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

Free format text: PAYMENT UNTIL: 20090630

Year of fee payment: 9

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

Free format text: PAYMENT UNTIL: 20100630

Year of fee payment: 10

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

Free format text: PAYMENT UNTIL: 20110630

Year of fee payment: 11

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

Free format text: PAYMENT UNTIL: 20120630

Year of fee payment: 12

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

Free format text: PAYMENT UNTIL: 20120630

Year of fee payment: 12

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

Free format text: PAYMENT UNTIL: 20130630

Year of fee payment: 13

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

Free format text: PAYMENT UNTIL: 20140630

Year of fee payment: 14

EXPY Cancellation because of completion of term