JP2003036416A - バーコード読取装置 - Google Patents
バーコード読取装置Info
- Publication number
- JP2003036416A JP2003036416A JP2002192271A JP2002192271A JP2003036416A JP 2003036416 A JP2003036416 A JP 2003036416A JP 2002192271 A JP2002192271 A JP 2002192271A JP 2002192271 A JP2002192271 A JP 2002192271A JP 2003036416 A JP2003036416 A JP 2003036416A
- Authority
- JP
- Japan
- Prior art keywords
- light
- data
- dark pattern
- bar
- pattern data
- 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.)
- Pending
Links
Abstract
(57)【要約】
【課題】走査方向の頻繁な修正を要することなく短時間
でバーコードの読取りを完了することができるバーコー
ド読取装置及び読取方法を提供する。 【解決手段】バーコード認識/復調回路10は、走査/
集光光学系2によってバーコード3aを走査して得られ
た種々のデータ列のうち、スタートバーを含むがエンド
バーをふくまないもの,及び、エンドバーを含むがスタ
ートバーを含まないものを、相互に比較する。そして、
両データ列の桁数の総和を検出し、これが読み取り対象
とするタイプのバーコードの桁数よりも多いかどうかを
チェックする。そして、多い場合は、両データ列の重複
部分のデータが一致しているかどうかをチェックする。
そして、データが一致している場合には、これら両デー
タ列に基づいて、バーコード全体に対応する読み取りデ
ータを合成する。
でバーコードの読取りを完了することができるバーコー
ド読取装置及び読取方法を提供する。 【解決手段】バーコード認識/復調回路10は、走査/
集光光学系2によってバーコード3aを走査して得られ
た種々のデータ列のうち、スタートバーを含むがエンド
バーをふくまないもの,及び、エンドバーを含むがスタ
ートバーを含まないものを、相互に比較する。そして、
両データ列の桁数の総和を検出し、これが読み取り対象
とするタイプのバーコードの桁数よりも多いかどうかを
チェックする。そして、多い場合は、両データ列の重複
部分のデータが一致しているかどうかをチェックする。
そして、データが一致している場合には、これら両デー
タ列に基づいて、バーコード全体に対応する読み取りデ
ータを合成する。
Description
【0001】
【発明の属する技術分野】本発明は、スタートバー及び
エンドバーによって挟まれてなるバーコードの読取装置
及び読取方法に関し、特に、スタートバーを含むがエン
ドバーを含まない読取データとエンドバーを含むがスタ
ートバーを含まない読取データとを合成することによっ
てバーコード全体による読取データを獲得するバーコー
ドの読取装置に関する。
エンドバーによって挟まれてなるバーコードの読取装置
及び読取方法に関し、特に、スタートバーを含むがエン
ドバーを含まない読取データとエンドバーを含むがスタ
ートバーを含まない読取データとを合成することによっ
てバーコード全体による読取データを獲得するバーコー
ドの読取装置に関する。
【0002】
【従来の技術】近年、流通業等におけるPOSシステム
に代表されるように、商品等の管理をバーコードによっ
て行うことが一般化している。例えば、商店のPOSシ
ステムでは、商品の種類や販売価格等の情報をバーコー
ドのフォーマットにコード化して商品に貼り付けてお
く。そして、レジにてこのバーコードを読み取ることに
よって、精算を行うとともに、商品の売り上げ数をリア
ルタイムで集計し、在庫管理や仕入れ管理に役立てるよ
うにしている。
に代表されるように、商品等の管理をバーコードによっ
て行うことが一般化している。例えば、商店のPOSシ
ステムでは、商品の種類や販売価格等の情報をバーコー
ドのフォーマットにコード化して商品に貼り付けてお
く。そして、レジにてこのバーコードを読み取ることに
よって、精算を行うとともに、商品の売り上げ数をリア
ルタイムで集計し、在庫管理や仕入れ管理に役立てるよ
うにしている。
【0003】ところで、このようなバーコードは、WP
CコードやUPCコードやEANコード等の固定長コー
ドと、可変長のセカンドコードに大別される。この可変
長コードとは、規格上長さ(バーの数)の定めがないコ
ードであり、例えば、ITF(Interleaved Two of Fiv
e)コード,CODE39,NW7,CODE128,
等が挙げられる。
CコードやUPCコードやEANコード等の固定長コー
ドと、可変長のセカンドコードに大別される。この可変
長コードとは、規格上長さ(バーの数)の定めがないコ
ードであり、例えば、ITF(Interleaved Two of Fiv
e)コード,CODE39,NW7,CODE128,
等が挙げられる。
【0004】上記した固定長コードは、前後両端に付加
されるガードバーと中間部に挿入されるセンターバーと
を有し、各ガードバーとセンターバーとの間に各々4又
は6キャラクタのデータキャラクタが格納されている。
この場合、前半のデータキャラクタのみが読み取られて
も、このデータキャラクタが先端側のガードバー及びセ
ンターバーに挟まれていることから、バーコードを構成
するデータであると認識され得る。同様に、後半のデー
タキャラクタのみが読み取られても、このデータキャラ
クタがセンターバー及び後端側のガードバーに挟まれて
いることから、バーコードを構成するデータであると認
識され得る。従って、バーコードを構成する前半のデー
タキャラクタ及び後半のデータキャラクタを別個に読み
取ったデータに基づいて、バーコード全体による読取デ
ータを合成することができる。
されるガードバーと中間部に挿入されるセンターバーと
を有し、各ガードバーとセンターバーとの間に各々4又
は6キャラクタのデータキャラクタが格納されている。
この場合、前半のデータキャラクタのみが読み取られて
も、このデータキャラクタが先端側のガードバー及びセ
ンターバーに挟まれていることから、バーコードを構成
するデータであると認識され得る。同様に、後半のデー
タキャラクタのみが読み取られても、このデータキャラ
クタがセンターバー及び後端側のガードバーに挟まれて
いることから、バーコードを構成するデータであると認
識され得る。従って、バーコードを構成する前半のデー
タキャラクタ及び後半のデータキャラクタを別個に読み
取ったデータに基づいて、バーコード全体による読取デ
ータを合成することができる。
【0005】これに対して、セカンドコードは、図9に
示すように、前端側にスタートバー(スタートキャラク
タ)SB,後端側にエンドバー(エンドキャラクタ)E
Bを有し、両バーの間に可変長のデータキャラクタDC
を格納している。そして、従来のバーコード読取装置
は、固定長コードの場合と同じように、両端がバーに囲
まれているデータのみを、バーコードを構成するデータ
キャラクタDCであると認識していた。
示すように、前端側にスタートバー(スタートキャラク
タ)SB,後端側にエンドバー(エンドキャラクタ)E
Bを有し、両バーの間に可変長のデータキャラクタDC
を格納している。そして、従来のバーコード読取装置
は、固定長コードの場合と同じように、両端がバーに囲
まれているデータのみを、バーコードを構成するデータ
キャラクタDCであると認識していた。
【0006】従って、従来のバーコード読取装置は、図
10において“C”によって示されるように、スタート
バーSB及びエンドバーEBによって挟まれたバーコー
ド全体を一気に読み取ったデータキャラクタのみしか、
バーコードを構成するデータであると認識できなかっ
た。即ち、図10において“A”によって示されるスタ
ートバーを含むがエンドバーを含まない読取データ,及
び、“B”によって示されるエンドバーを含むがスター
トバーを含まない読取データは、バーコードを構成する
データキャラクタDCとは認識されないので、これらデ
ータに基づいてバーコード全体による読取りデータを合
成することができなかった。
10において“C”によって示されるように、スタート
バーSB及びエンドバーEBによって挟まれたバーコー
ド全体を一気に読み取ったデータキャラクタのみしか、
バーコードを構成するデータであると認識できなかっ
た。即ち、図10において“A”によって示されるスタ
ートバーを含むがエンドバーを含まない読取データ,及
び、“B”によって示されるエンドバーを含むがスター
トバーを含まない読取データは、バーコードを構成する
データキャラクタDCとは認識されないので、これらデ
ータに基づいてバーコード全体による読取りデータを合
成することができなかった。
【0007】この従来のバーコード読取装置によるデー
タ読取処理を、図15に示す。このデータ読取処理のス
タート後最初のS501では、初期設定を実行する。即
ち、読取り対象のセカンドコードのデータキャラクタ長
(読取桁数)を設定する。
タ読取処理を、図15に示す。このデータ読取処理のス
タート後最初のS501では、初期設定を実行する。即
ち、読取り対象のセカンドコードのデータキャラクタ長
(読取桁数)を設定する。
【0008】次のS502では、スタートバーの検出を
待つ。即ち、読み取ったデータがスタートバーを含んで
いたかどうかをチェックする。スタートバーが検出され
た場合に実行されるS503では、エンドバーの検出を
チェックする。即ち、読み取ったデータがエンドバーを
含んでいたかどうかをチェックする。エンドバーが検出
されなかった場合には、読み取ったデータが両バーを含
んでいないため、バーコードを構成するデータである保
障がないとして、処理をS502に戻す。
待つ。即ち、読み取ったデータがスタートバーを含んで
いたかどうかをチェックする。スタートバーが検出され
た場合に実行されるS503では、エンドバーの検出を
チェックする。即ち、読み取ったデータがエンドバーを
含んでいたかどうかをチェックする。エンドバーが検出
されなかった場合には、読み取ったデータが両バーを含
んでいないため、バーコードを構成するデータである保
障がないとして、処理をS502に戻す。
【0009】両バーが検出された場合に実行されるS5
04では、第1キャラクタ(スタートバーに隣接するキ
ャラクタ)の長さをチェックする。そして、第1キャラ
クタの長さが規格外であると、処理をS502に戻す。
これに対して、第1キャラクタの長さが規格通りである
と、S505において、第1キャラクタを対応するデー
タに変換する。
04では、第1キャラクタ(スタートバーに隣接するキ
ャラクタ)の長さをチェックする。そして、第1キャラ
クタの長さが規格外であると、処理をS502に戻す。
これに対して、第1キャラクタの長さが規格通りである
と、S505において、第1キャラクタを対応するデー
タに変換する。
【0010】次のS506では、隣接キャラクタの長さ
をチェックする。そして、このキャラクタの長さが規格
外であると、処理をS502に戻す。これに対して、こ
のキャラクタの長さが規格通りであると、S507にお
いて、このキャラクタを対応するデータに変換する。
をチェックする。そして、このキャラクタの長さが規格
外であると、処理をS502に戻す。これに対して、こ
のキャラクタの長さが規格通りであると、S507にお
いて、このキャラクタを対応するデータに変換する。
【0011】次のS508では、S505及びS507
によるデータ復調が良好であるかどうかをチェックす
る。そして、データ復調が不調であると、処理をS50
2に戻す。
によるデータ復調が良好であるかどうかをチェックす
る。そして、データ復調が不調であると、処理をS50
2に戻す。
【0012】これに対してデータ復調が良好であると、
S509において、隣接キャラクタ(S507による処
理対象となったキャラクタに隣接するキャラクタ)がエ
ンドキャラクタ(エンドバー)又はスタートキャラクタ
(スタートバー)であるか否かを、チェックする。そし
て、エンドキャラクタ及びスタートキャラクタ以外であ
る場合には、処理をS506に戻し、この隣接キャラク
タに対する復調を行う。
S509において、隣接キャラクタ(S507による処
理対象となったキャラクタに隣接するキャラクタ)がエ
ンドキャラクタ(エンドバー)又はスタートキャラクタ
(スタートバー)であるか否かを、チェックする。そし
て、エンドキャラクタ及びスタートキャラクタ以外であ
る場合には、処理をS506に戻し、この隣接キャラク
タに対する復調を行う。
【0013】これに対して、エンドキャラクタ又はスタ
ートキャラクタである場合には、全てのデータキャラク
タの復調が完了したとして、S510において、復調し
たデータを格納する。そして、次のS511において、
復調したデータをデータ処理装置に送信し、次のバーコ
ードの復調のために処理をS502に戻す。
ートキャラクタである場合には、全てのデータキャラク
タの復調が完了したとして、S510において、復調し
たデータを格納する。そして、次のS511において、
復調したデータをデータ処理装置に送信し、次のバーコ
ードの復調のために処理をS502に戻す。
【0014】
【発明が解決しようとする課題】しかしながら、一般的
にセカンドバーは、その幅W(図9参照)が狭いトラン
ケートラベルである。従って、例えば固定式の走査装置
によってバーコード上を種々の方向に走査して得られる
種々のデータの中でも、図10において“C”で示され
るようにスタートバーSB及びエンドバーEBを含む読
取りデータ(以下、「連続読みデータ」という)は、極
端に少ない。従って、従来の読取り装置では、バーコー
ドの読取りが完了するまでに長時間を要したり、読取り
が完了するまでに何度も走査方向を修正しなければなら
なかった。
にセカンドバーは、その幅W(図9参照)が狭いトラン
ケートラベルである。従って、例えば固定式の走査装置
によってバーコード上を種々の方向に走査して得られる
種々のデータの中でも、図10において“C”で示され
るようにスタートバーSB及びエンドバーEBを含む読
取りデータ(以下、「連続読みデータ」という)は、極
端に少ない。従って、従来の読取り装置では、バーコー
ドの読取りが完了するまでに長時間を要したり、読取り
が完了するまでに何度も走査方向を修正しなければなら
なかった。
【0015】本発明の課題は、以上の問題点に鑑み、デ
ータの誤読を極力抑える手段を採用することにより、図
10において“A”によって示されるスタートバーを含
むがエンドバーを含まない読取データ,及び、“B”に
よって示されるエンドバーを含むがスタートバーを含ま
ない読取データに基づいてバーコード全体による読取り
データの合成を可能とし、走査方向の頻繁な修正を要す
ることなく短時間でバーコードの読取りを完了すること
ができるバーコード読取装置を、提供することである。
ータの誤読を極力抑える手段を採用することにより、図
10において“A”によって示されるスタートバーを含
むがエンドバーを含まない読取データ,及び、“B”に
よって示されるエンドバーを含むがスタートバーを含ま
ない読取データに基づいてバーコード全体による読取り
データの合成を可能とし、走査方向の頻繁な修正を要す
ることなく短時間でバーコードの読取りを完了すること
ができるバーコード読取装置を、提供することである。
【0016】
【課題を解決するための手段】本発明によるバーコード
読取装置は、上記課題を解決するため、図1の原理図に
示した通り、第1のバー(100a)及び第2のバー
(100b)によって両端が挟まれたバーコード(10
0)を走査して、その走査軌跡における明暗パターンデ
ータ列を検出する明暗パターン検出手段(101)と、
前記明暗パターン検出手段によって検出された前記明暗
パターンデータ列をキャラクタ毎に分断して対応する前
記他の形式のデータに変換するデータ変換手段と、前記
第1のバー(100a)を含むが前記第2のバー(10
0b)を含まない前記データ変換手段によって変換され
た第1の明暗パターンデータ列と前記第2のバー(10
0b)を含むが前記第1のバー(100a)を含まない
前記データ変換手段によって変換された第2の明暗パタ
ーンデータ列とが前記明暗パターン検出手段(101)
によって検出されたときに、同じデータからなる重複部
がこれら第1の明暗パターンデータ列と第2の明暗パタ
ーンデータ列とに夫々含まれているか否かを判定する重
複部判定手段(102)と、前記第1の明暗パターンデ
ータ列及び第2の明暗パターンデータ列に前記重複部が
夫々含まれているとこの重複部判定手段(102)によ
って判定された場合に、これら第1の明暗パターンデー
タ列及び第2の明暗パターンデータ列を結合する結合手
段(103)と、前記重複部のキャラクタ数のしきい値
を予め設定するしきい値設定手段と、前記第1の明暗パ
ターンデータ列と前記第2の明暗パターンデータ列とに
夫々含まれている重複部のキャラクタ数が前記しきい値
より少ないかどうかを比較する比較手段と、前記比較手
段による比較の結果、前記重複部のキャラクタ数が前記
しきい値より少なかった場合に、前記重複部判定手段に
よる前記判定を新たに前記明暗パターン検出手段によっ
て検出された前記第1の明暗パターンデータ列と前記第
2の明暗パターンデータ列に対して実行させる判定再実
行手段とを備えたことを特徴とする。
読取装置は、上記課題を解決するため、図1の原理図に
示した通り、第1のバー(100a)及び第2のバー
(100b)によって両端が挟まれたバーコード(10
0)を走査して、その走査軌跡における明暗パターンデ
ータ列を検出する明暗パターン検出手段(101)と、
前記明暗パターン検出手段によって検出された前記明暗
パターンデータ列をキャラクタ毎に分断して対応する前
記他の形式のデータに変換するデータ変換手段と、前記
第1のバー(100a)を含むが前記第2のバー(10
0b)を含まない前記データ変換手段によって変換され
た第1の明暗パターンデータ列と前記第2のバー(10
0b)を含むが前記第1のバー(100a)を含まない
前記データ変換手段によって変換された第2の明暗パタ
ーンデータ列とが前記明暗パターン検出手段(101)
によって検出されたときに、同じデータからなる重複部
がこれら第1の明暗パターンデータ列と第2の明暗パタ
ーンデータ列とに夫々含まれているか否かを判定する重
複部判定手段(102)と、前記第1の明暗パターンデ
ータ列及び第2の明暗パターンデータ列に前記重複部が
夫々含まれているとこの重複部判定手段(102)によ
って判定された場合に、これら第1の明暗パターンデー
タ列及び第2の明暗パターンデータ列を結合する結合手
段(103)と、前記重複部のキャラクタ数のしきい値
を予め設定するしきい値設定手段と、前記第1の明暗パ
ターンデータ列と前記第2の明暗パターンデータ列とに
夫々含まれている重複部のキャラクタ数が前記しきい値
より少ないかどうかを比較する比較手段と、前記比較手
段による比較の結果、前記重複部のキャラクタ数が前記
しきい値より少なかった場合に、前記重複部判定手段に
よる前記判定を新たに前記明暗パターン検出手段によっ
て検出された前記第1の明暗パターンデータ列と前記第
2の明暗パターンデータ列に対して実行させる判定再実
行手段とを備えたことを特徴とする。
【0017】本発明のバーコード読取装置によれば、明
暗パターン検出手段(101)は、第1のバー(100
a)及び第2のバー(100b)によって両端が挟まれ
たバーコード(100)を走査して、その走査軌跡にお
ける明暗パターンデータ列を検出する。この明暗パター
ン検出手段(101)によって検出され、データ変換手
段によって変換された明暗パターンデータ列が、第1の
バー(100a)を含むが第2のバー(100b)を含
まない走査軌跡における第1の明暗パターンデータ列,
及び、第2のバー(100b)を含むが第1のバー(1
00a)を含まない走査軌跡における第2の明暗パター
ンデータ列であった場合に、重複部判定手段(102)
は、同じデータからなる重複部がこれら第1の明暗パタ
ーンデータ列と第2の明暗パターンデータ列とに夫々含
まれているか否かを判定する。また、該記重複部に含ま
れるキャラクタ数のしきい値を予めしきい値設定手段で
設定し、前記第1の明暗パターンデータ列と前記第2の
明暗パターンデータ列とに夫々含まれている重複部のキ
ャラクタ数が前記しきい値より少ないかどうかを比較手
段で比較し、前記比較手段による比較の結果、前記重複
部のキャラクタ数が前記しきい値より少なかった場合、
判定再実行手段によって前記重複部判定手段による前記
判定を、新たに前記明暗パターン検出手段によって検出
された前記第1の明暗パターンデータ列と前記第2の明
暗パターンデータ列に対して実行させる。このように重
複部判定手段(102)が、前記第1の明暗パターンデ
ータ列及び第2の明暗パターンデータ列に前記重複部が
夫々含まれていると判定し、且つ、重複部に含まれてい
るキャラクタ数がしきい値より多い場合には、これら第
1の明暗パターンデータ列及び第2の明暗パターンデー
タ列を結合する。この結果、第1の明暗パターンデータ
列と第2の明暗パターンデータ列とが充分にオーバーラ
ップしている場合のみ、結合を行うことになる。よっ
て、データの誤読が極力抑えられるので、これらの明暗
パターンデータ列に基づいてバーコード全体による読取
りデータを合成することが可能となる。従って、走査方
向の頻繁な修正を要することなく短時間でバーコードの
読取りを完了することができるようになる。また、重複
したキャラクタ数がしきい値より少ない場合には、再度
明暗パターンデータ列を読み出して判定することができ
るので、誤読データの混入の可能性があったとしても、
その混入を防止することができる。
暗パターン検出手段(101)は、第1のバー(100
a)及び第2のバー(100b)によって両端が挟まれ
たバーコード(100)を走査して、その走査軌跡にお
ける明暗パターンデータ列を検出する。この明暗パター
ン検出手段(101)によって検出され、データ変換手
段によって変換された明暗パターンデータ列が、第1の
バー(100a)を含むが第2のバー(100b)を含
まない走査軌跡における第1の明暗パターンデータ列,
及び、第2のバー(100b)を含むが第1のバー(1
00a)を含まない走査軌跡における第2の明暗パター
ンデータ列であった場合に、重複部判定手段(102)
は、同じデータからなる重複部がこれら第1の明暗パタ
ーンデータ列と第2の明暗パターンデータ列とに夫々含
まれているか否かを判定する。また、該記重複部に含ま
れるキャラクタ数のしきい値を予めしきい値設定手段で
設定し、前記第1の明暗パターンデータ列と前記第2の
明暗パターンデータ列とに夫々含まれている重複部のキ
ャラクタ数が前記しきい値より少ないかどうかを比較手
段で比較し、前記比較手段による比較の結果、前記重複
部のキャラクタ数が前記しきい値より少なかった場合、
判定再実行手段によって前記重複部判定手段による前記
判定を、新たに前記明暗パターン検出手段によって検出
された前記第1の明暗パターンデータ列と前記第2の明
暗パターンデータ列に対して実行させる。このように重
複部判定手段(102)が、前記第1の明暗パターンデ
ータ列及び第2の明暗パターンデータ列に前記重複部が
夫々含まれていると判定し、且つ、重複部に含まれてい
るキャラクタ数がしきい値より多い場合には、これら第
1の明暗パターンデータ列及び第2の明暗パターンデー
タ列を結合する。この結果、第1の明暗パターンデータ
列と第2の明暗パターンデータ列とが充分にオーバーラ
ップしている場合のみ、結合を行うことになる。よっ
て、データの誤読が極力抑えられるので、これらの明暗
パターンデータ列に基づいてバーコード全体による読取
りデータを合成することが可能となる。従って、走査方
向の頻繁な修正を要することなく短時間でバーコードの
読取りを完了することができるようになる。また、重複
したキャラクタ数がしきい値より少ない場合には、再度
明暗パターンデータ列を読み出して判定することができ
るので、誤読データの混入の可能性があったとしても、
その混入を防止することができる。
【0018】以下、本発明の構成要件を説明する。
(明暗パターン検出手段)明暗パターン検出手段は、明
暗パターンを光学的に読み取っても良いが、その場合に
おいて、発光部から出射される照射光を走査しても良い
し、受光部を走査しても良い。 (バーコード)バーコードは、所定の固定パターンから
なる第1のバー及び第2のバーによって挟まれたバーコ
ードであれば良いので、固定長であるか可変長であるか
を問わない。可変長のバーコードとする場合には、CO
DE128,CODE39,ITF,NW7,等とする
ことができる。
暗パターンを光学的に読み取っても良いが、その場合に
おいて、発光部から出射される照射光を走査しても良い
し、受光部を走査しても良い。 (バーコード)バーコードは、所定の固定パターンから
なる第1のバー及び第2のバーによって挟まれたバーコ
ードであれば良いので、固定長であるか可変長であるか
を問わない。可変長のバーコードとする場合には、CO
DE128,CODE39,ITF,NW7,等とする
ことができる。
【0019】これらの何れであっても、バーコードは、
他の形式のデータ(コードデータ)に夫々対応する複数
のキャラクタから構成されている。この場合、バーコー
ド読取装置は、明暗パターン検出手段によって検出され
た明暗パターンデータ列をこのキャラクタ毎に分断して
対応する他の形式のデータに変換するデータ変換手段を
更に備えていても良い。その場合、重複部判定手段は、
このデータ変換手段によって他の形式のデータに変換さ
れた前記第1の明暗パターンデータ列及び前記第2の明
暗パターンデータ列に対して前記判定を行う。このよう
にすれば、キャラクタを構成し得ないノイズを除去した
上で処理を進めることができるので、データの誤読を更
に防止することができる。
他の形式のデータ(コードデータ)に夫々対応する複数
のキャラクタから構成されている。この場合、バーコー
ド読取装置は、明暗パターン検出手段によって検出され
た明暗パターンデータ列をこのキャラクタ毎に分断して
対応する他の形式のデータに変換するデータ変換手段を
更に備えていても良い。その場合、重複部判定手段は、
このデータ変換手段によって他の形式のデータに変換さ
れた前記第1の明暗パターンデータ列及び前記第2の明
暗パターンデータ列に対して前記判定を行う。このよう
にすれば、キャラクタを構成し得ないノイズを除去した
上で処理を進めることができるので、データの誤読を更
に防止することができる。
【0020】また、このバーコード読取装置の読取対象
たるバーコードのキャラクタ数を特定するキャラクタ数
特定手段を更に備えても良い。 (重複部判定手段)重複部判定手段は、第1の明暗パタ
ーンデータ列のキャラクタ数と第2の明暗パターンデー
タ列のキャラクタ数との総和を算出する総和算出手段
と、キャラクタ数特定手段によって特定されたキャラク
タ数と総和算出手段によって算出された総和とを比較す
る比較手段とを有するとともに、比較手段による比較の
結果前記総和が前記特定されたキャラクタ数を超えてい
た場合のみ上述の判定を行うようにしても良い。前記総
和が前記特定されたバーコードのキャラクタ数を超えて
いなければ重複部はあり得ないので、上述の判定を行う
意味がないからである。
たるバーコードのキャラクタ数を特定するキャラクタ数
特定手段を更に備えても良い。 (重複部判定手段)重複部判定手段は、第1の明暗パタ
ーンデータ列のキャラクタ数と第2の明暗パターンデー
タ列のキャラクタ数との総和を算出する総和算出手段
と、キャラクタ数特定手段によって特定されたキャラク
タ数と総和算出手段によって算出された総和とを比較す
る比較手段とを有するとともに、比較手段による比較の
結果前記総和が前記特定されたキャラクタ数を超えてい
た場合のみ上述の判定を行うようにしても良い。前記総
和が前記特定されたバーコードのキャラクタ数を超えて
いなければ重複部はあり得ないので、上述の判定を行う
意味がないからである。
【0021】また、重複部判定手段は、第1の明暗パタ
ーンデータ列のキャラクタ数と第2の明暗パターンデー
タ列のキャラクタ数との総和を算出する総和算出手段
と、キャラクタ数特定手段によって特定されたキャラク
タ数に対応する合成桁数を設定する合成桁数設定手段
と、この合成桁数設定手段によって設定された合成桁数
と総和算出手段によって算出された総和とを比較する比
較手段とを有するとともに、比較手段による比較の結果
前記総和が前記合成桁数を超えていた場合のみ前記判定
を行うようにしても良い。合成桁数を可変にすることに
より、重複部のキャラクタ数の下限値を可変にすること
ができる。その結果、設定されたバーコードのキャラク
タ数に応じて重複部のキャラクタ数の下限値を可変にす
ることによって、誤読によるデータの混入を更に防止す
ることができるからである。
ーンデータ列のキャラクタ数と第2の明暗パターンデー
タ列のキャラクタ数との総和を算出する総和算出手段
と、キャラクタ数特定手段によって特定されたキャラク
タ数に対応する合成桁数を設定する合成桁数設定手段
と、この合成桁数設定手段によって設定された合成桁数
と総和算出手段によって算出された総和とを比較する比
較手段とを有するとともに、比較手段による比較の結果
前記総和が前記合成桁数を超えていた場合のみ前記判定
を行うようにしても良い。合成桁数を可変にすることに
より、重複部のキャラクタ数の下限値を可変にすること
ができる。その結果、設定されたバーコードのキャラク
タ数に応じて重複部のキャラクタ数の下限値を可変にす
ることによって、誤読によるデータの混入を更に防止す
ることができるからである。
【0022】なお、この合成桁数設定手段は、キャラク
タ数特定手段によって特定された前記キャラクタ数が大
きくなるにつれて前記合成桁数を大きく設定するように
することが望ましい。特定されたキャラクタ数が大きく
なると両明暗パターンデータ列において、誤読によって
偶然同じパターンが混入してしまう確率も高くなるか
ら、しきい値をより高くすることによって誤読データの
混入を防止できるからである。
タ数特定手段によって特定された前記キャラクタ数が大
きくなるにつれて前記合成桁数を大きく設定するように
することが望ましい。特定されたキャラクタ数が大きく
なると両明暗パターンデータ列において、誤読によって
偶然同じパターンが混入してしまう確率も高くなるか
ら、しきい値をより高くすることによって誤読データの
混入を防止できるからである。
【0023】本発明の構成に、以下の構成要件を加えて
も良い。 <有効キャラクタ数設定手段,廃棄手段>キャラクタ数
特定手段によって特定されたキャラクタ数に対応する明
暗パターンデータ列の有効キャラクタ数を設定する有効
キャラクタ数設定手段と、この有効キャラクタ数設定手
段によって設定された有効キャラクタ数未満のキャラク
タ数の明暗パターンデータ列を廃棄する廃棄手段とを更
に備えても良い。このようにすれば、極端に短い明暗パ
ターンデータ列を除去することができる。このような短
い明暗パターンデータ列は、誤読データと外見上見分け
がつかない場合がある。従って、このような短い明暗パ
ターンデータ列を除去することによって、誤読データの
混入を極力抑えることができるからである。
も良い。 <有効キャラクタ数設定手段,廃棄手段>キャラクタ数
特定手段によって特定されたキャラクタ数に対応する明
暗パターンデータ列の有効キャラクタ数を設定する有効
キャラクタ数設定手段と、この有効キャラクタ数設定手
段によって設定された有効キャラクタ数未満のキャラク
タ数の明暗パターンデータ列を廃棄する廃棄手段とを更
に備えても良い。このようにすれば、極端に短い明暗パ
ターンデータ列を除去することができる。このような短
い明暗パターンデータ列は、誤読データと外見上見分け
がつかない場合がある。従って、このような短い明暗パ
ターンデータ列を除去することによって、誤読データの
混入を極力抑えることができるからである。
【0024】なお、有効キャラクタ数設定手段は、キャ
ラクタ数特定手段によって特定された前記キャラクタ数
が大きくなるにつれて前記有効キャラクタ数を大きく設
定するようにすることが望ましい。特定されたキャラク
タ数が大きくなると誤読によるデータが明暗パターンデ
ータ列と一見同じ形態をとる可能性も高くなるから、し
きい値をより高くすることによって誤読データの混入を
防止できるからである。 <しきい値決定手段,比較手段,判定再実行手段>キャ
ラクタ数特定手段によって特定されたキャラクタ数に対
応する重複部のキャラクタ数のしきい値を設定するしき
い値設定手段と、第1の明暗パターンデータ列と第2の
明暗パターンデータ列とに夫々含まれている重複部のキ
ャラクタ数がしきい値より少ないかどうかを比較する比
較手段と、この比較手段による比較の結果、重複部のキ
ャラクタ数がしきい値より少なかった場合に、重複部判
定手段による上述の判定を新たに明暗パターン検出手段
によって検出された第1の明暗パターンデータ列と第2
の明暗パターンデータ列に対して実行させる判定再実行
手段とを更に備えても良い。このように構成すれば、重
複したキャラクタ数がしきい値より少ない場合には、再
度明暗パターンデータ列を読み出して判定することがで
きるので、誤読データの混入の可能性があったとして
も、その混入を防止することができる。また、このしき
い値は、キャラクタ数設定手段によって設定されたキャ
ラクタ数に応じて可変するので、バーコードのキャラク
タ数に応じて誤読データの混入の可能性を極力抑えるこ
とができる。
ラクタ数特定手段によって特定された前記キャラクタ数
が大きくなるにつれて前記有効キャラクタ数を大きく設
定するようにすることが望ましい。特定されたキャラク
タ数が大きくなると誤読によるデータが明暗パターンデ
ータ列と一見同じ形態をとる可能性も高くなるから、し
きい値をより高くすることによって誤読データの混入を
防止できるからである。 <しきい値決定手段,比較手段,判定再実行手段>キャ
ラクタ数特定手段によって特定されたキャラクタ数に対
応する重複部のキャラクタ数のしきい値を設定するしき
い値設定手段と、第1の明暗パターンデータ列と第2の
明暗パターンデータ列とに夫々含まれている重複部のキ
ャラクタ数がしきい値より少ないかどうかを比較する比
較手段と、この比較手段による比較の結果、重複部のキ
ャラクタ数がしきい値より少なかった場合に、重複部判
定手段による上述の判定を新たに明暗パターン検出手段
によって検出された第1の明暗パターンデータ列と第2
の明暗パターンデータ列に対して実行させる判定再実行
手段とを更に備えても良い。このように構成すれば、重
複したキャラクタ数がしきい値より少ない場合には、再
度明暗パターンデータ列を読み出して判定することがで
きるので、誤読データの混入の可能性があったとして
も、その混入を防止することができる。また、このしき
い値は、キャラクタ数設定手段によって設定されたキャ
ラクタ数に応じて可変するので、バーコードのキャラク
タ数に応じて誤読データの混入の可能性を極力抑えるこ
とができる。
【0025】なお、しきい値設定手段は、前記キャラク
タ数設定手段によって設定された前記キャラクタ数が大
きくなるにつれて前記しきい値のキャラクタ数を大きく
設定することが望ましい。設定されたキャラクタ数が大
きくなると各明暗パターンデータ列に含まれるキャラク
タが誤読によって偶然同じ形態をとる可能性も高くなる
から、しきい値をより高くすることによって誤読データ
の混入を防止できるからである。
タ数設定手段によって設定された前記キャラクタ数が大
きくなるにつれて前記しきい値のキャラクタ数を大きく
設定することが望ましい。設定されたキャラクタ数が大
きくなると各明暗パターンデータ列に含まれるキャラク
タが誤読によって偶然同じ形態をとる可能性も高くなる
から、しきい値をより高くすることによって誤読データ
の混入を防止できるからである。
【0026】本発明によるバーコード読取方法は、第1
のバー及び第2のバーによって両端が挟まれたバーコー
ドを走査して、その走査軌跡における明暗パターンデー
タ列を検出し、前記第1のバーを含むが前記第2のバー
を含まない前記走査軌跡における第1の明暗パターンデ
ータ列と前記第2のバーを含むが前記第2のバーを含ま
ない走査軌跡における第2の明暗パターンデータ列とが
前記明暗パターン検出手段によって検出されたときに、
同じデータからなる重複部がこれら第1の明暗パターン
データ列と第2の明暗パターンデータ列とに夫々含まれ
ているか否かを判定し、前記第1の明暗パターンデータ
列及び第2の明暗パターンデータ列に前記重複部が含ま
れていると判定された場合に、これら第1の明暗パター
ンデータ列及び第2の明暗パターンデータ列を結合す
る。
のバー及び第2のバーによって両端が挟まれたバーコー
ドを走査して、その走査軌跡における明暗パターンデー
タ列を検出し、前記第1のバーを含むが前記第2のバー
を含まない前記走査軌跡における第1の明暗パターンデ
ータ列と前記第2のバーを含むが前記第2のバーを含ま
ない走査軌跡における第2の明暗パターンデータ列とが
前記明暗パターン検出手段によって検出されたときに、
同じデータからなる重複部がこれら第1の明暗パターン
データ列と第2の明暗パターンデータ列とに夫々含まれ
ているか否かを判定し、前記第1の明暗パターンデータ
列及び第2の明暗パターンデータ列に前記重複部が含ま
れていると判定された場合に、これら第1の明暗パター
ンデータ列及び第2の明暗パターンデータ列を結合す
る。
【0027】
【発明の実施の形態】以下、図面に基づいて、本発明の
実施の態様の説明を行う。
実施の態様の説明を行う。
【0028】[実施形態1]図2は本発明の第1実施形
態によるバーコード読取装置の概略構成を示すブロック
図である。 (全体構成)図2において、レーザー光源1は、レーザ
ービームLを出射する半導体レーザである。このレーザ
光源1から出射されたレーザービームLは、走査/集光
光学系2に入射される。この走査/集光光学系2は、ポ
リゴンミラーによってレーザービームLを偏向するとと
もに、偏向されたレーザビームを複数の固定ミラーで種
々の方向に反射させる光学系である。この走査/集光光
学系2によると、ポリゴンミラーの一反射面による偏向
周期内で、この走査/集光光学系2の上方に向けて、複
数の方向へのレーザビーム走査が連続的に高速で行われ
る。このようにして走査されたレーザビームLが商品3
の表面に当たると、この表面においてレーザビームLが
乱反射され、その反射光Rの一部が走査/集光光学系2
に戻る。
態によるバーコード読取装置の概略構成を示すブロック
図である。 (全体構成)図2において、レーザー光源1は、レーザ
ービームLを出射する半導体レーザである。このレーザ
光源1から出射されたレーザービームLは、走査/集光
光学系2に入射される。この走査/集光光学系2は、ポ
リゴンミラーによってレーザービームLを偏向するとと
もに、偏向されたレーザビームを複数の固定ミラーで種
々の方向に反射させる光学系である。この走査/集光光
学系2によると、ポリゴンミラーの一反射面による偏向
周期内で、この走査/集光光学系2の上方に向けて、複
数の方向へのレーザビーム走査が連続的に高速で行われ
る。このようにして走査されたレーザビームLが商品3
の表面に当たると、この表面においてレーザビームLが
乱反射され、その反射光Rの一部が走査/集光光学系2
に戻る。
【0029】走査/集光光学系2は、この反射光Rを光
検知器4にリレーする。光検知器4は、レーザビームL
(反射光R)と同じ波長の光のみを透過するフィルタが
被せられたホトダイオードであり、反射光Rの強度変化
に応じた電流を二値化回路5に入力する。
検知器4にリレーする。光検知器4は、レーザビームL
(反射光R)と同じ波長の光のみを透過するフィルタが
被せられたホトダイオードであり、反射光Rの強度変化
に応じた電流を二値化回路5に入力する。
【0030】二値化回路5は、光検知器4から入力され
た電流値を電圧値に変換するとともに、変換された電圧
値を所定のしきい値と比較して、方形波信号に波形整形
する。この方形波信号は、反射光Rの強度が商品3上の
バーコード3a中の白バーの反射率に対応する場合には
“H”を示し、反射光Rの強度が商品3上のバーコード
3a中の黒バーの反射率に対応する場合には“L”を示
す。二値化回路5は、この方形波信号の立ち上がり(白
エッジ)と立ち下がり(黒エッジ)とを夫々検出し、白
エッジに同期して白エッジパルス(WEG)を出力する
とともに、黒エッジに同期して黒エッジパルス(BE
G)を出力する。
た電流値を電圧値に変換するとともに、変換された電圧
値を所定のしきい値と比較して、方形波信号に波形整形
する。この方形波信号は、反射光Rの強度が商品3上の
バーコード3a中の白バーの反射率に対応する場合には
“H”を示し、反射光Rの強度が商品3上のバーコード
3a中の黒バーの反射率に対応する場合には“L”を示
す。二値化回路5は、この方形波信号の立ち上がり(白
エッジ)と立ち下がり(黒エッジ)とを夫々検出し、白
エッジに同期して白エッジパルス(WEG)を出力する
とともに、黒エッジに同期して黒エッジパルス(BE
G)を出力する。
【0031】バー幅カウンタ6は、二値化回路5から入
力された白エッジパルス(WEG)及び黒エッジパルス
(BEG)に基づいて、白エッジパルス(WEG)のタ
イミングから黒エッジパルス(BEG)のタイミングま
での時間(バーコード3a中の白バーの幅に対応するも
のと期待される),及び黒エッジパルス(BEG)のタ
イミングから白エッジパルス(WEG)のタイミングま
での時間(バーコード3a中の黒バーの幅に対応するも
のと期待される)を測定する。なお、バー幅カウンタ6
は、これらバー幅に対応する時間を計測するためにクロ
ック7からのクロック数をカウントし、これらバー幅に
対応するカウント値を出力する。
力された白エッジパルス(WEG)及び黒エッジパルス
(BEG)に基づいて、白エッジパルス(WEG)のタ
イミングから黒エッジパルス(BEG)のタイミングま
での時間(バーコード3a中の白バーの幅に対応するも
のと期待される),及び黒エッジパルス(BEG)のタ
イミングから白エッジパルス(WEG)のタイミングま
での時間(バーコード3a中の黒バーの幅に対応するも
のと期待される)を測定する。なお、バー幅カウンタ6
は、これらバー幅に対応する時間を計測するためにクロ
ック7からのクロック数をカウントし、これらバー幅に
対応するカウント値を出力する。
【0032】フィルター回路8は、バー幅カウンタ6か
ら入力された各カウント値を論理的に判定し、明らかに
バーコード3aからの反射光R以外の要因による強度変
化を示すカウンタ値を除去し、バーコード3aの各バー
の幅を示すカウント値である蓋然性が高いものだけを抽
出して次段に渡すフィルター回路である。これらレーザ
ー光源1,走査/集光光学系2,光検知器4,二値化回
路5,バー幅カウンタ6,クロック7,及びフィルター
回路8から、バーコード3aを走査してその走査軌跡に
おける明暗パターン列を検出する明暗パターン検出手段
が構成される。
ら入力された各カウント値を論理的に判定し、明らかに
バーコード3aからの反射光R以外の要因による強度変
化を示すカウンタ値を除去し、バーコード3aの各バー
の幅を示すカウント値である蓋然性が高いものだけを抽
出して次段に渡すフィルター回路である。これらレーザ
ー光源1,走査/集光光学系2,光検知器4,二値化回
路5,バー幅カウンタ6,クロック7,及びフィルター
回路8から、バーコード3aを走査してその走査軌跡に
おける明暗パターン列を検出する明暗パターン検出手段
が構成される。
【0033】FIFOメモリ回路9は、フィルター回路
8を通過したカウント値を一旦保持するとともに、保持
した順序に従ってカウント値を出力する先入れ先出しメ
モリであり、バッファとして機能している。
8を通過したカウント値を一旦保持するとともに、保持
した順序に従ってカウント値を出力する先入れ先出しメ
モリであり、バッファとして機能している。
【0034】バーコード認識/復調回路10は、FIF
Oメモリ回路9から読み出された各カウント値に対して
所定の認識/復調プログラムを実行して、バーコードに
コード化されていた各種のデータを取り出すプロセッサ
である。
Oメモリ回路9から読み出された各カウント値に対して
所定の認識/復調プログラムを実行して、バーコードに
コード化されていた各種のデータを取り出すプロセッサ
である。
【0035】次に、これらのうち、FIFOメモり回路
9,及びバーコード認識/復調回路10の構成を、更に
詳細に説明する。 (FIFOメモリ回路)FIFOメモリ回路9の入出力
信号を図3に示す。図3において“BCD0〜10”
は、フィルター回路8から出力されたバー幅を示すカウ
ント値を示す。また、“B/W”は、フィルター回路8
から出力されたバー色(白/黒)を示色識別信号を示
す。これらの各信号は、フィルター回路8からSFTI
N信号が送信されてきた時に、FIFOメモり回路9に
よって読み取られる。また、これら信号を読み取ると、
FIFOメモリ回路9は、インプットレディ信号(I
R)をバー幅カウンタ6に向けて送出する。
9,及びバーコード認識/復調回路10の構成を、更に
詳細に説明する。 (FIFOメモリ回路)FIFOメモリ回路9の入出力
信号を図3に示す。図3において“BCD0〜10”
は、フィルター回路8から出力されたバー幅を示すカウ
ント値を示す。また、“B/W”は、フィルター回路8
から出力されたバー色(白/黒)を示色識別信号を示
す。これらの各信号は、フィルター回路8からSFTI
N信号が送信されてきた時に、FIFOメモり回路9に
よって読み取られる。また、これら信号を読み取ると、
FIFOメモリ回路9は、インプットレディ信号(I
R)をバー幅カウンタ6に向けて送出する。
【0036】このFIFOメモリ回路9と次段のバーコ
ード認識/復調回路10との間は、16ビットの外部バ
スEBによって接続されている。そして、FIFOメモ
リ回路9は、最先に読み込んだバー幅カウント値及び色
識別信号を、外部バスEBを介してバーコード認識/復
調回路10に向けて出力すると、これら情報の取り込み
を指示するアウトプットレディ信号(OR)をバーコー
ド認識/復調回路10に対して発行する。そして、バー
コード認識/復調回路10がこれらの信号の取り込み完
了を示す信号(SETOUT)を通知してくると、次の
バー幅カウント値及び色識別信号をバーコード認識/復
調回路10に向けて出力する。
ード認識/復調回路10との間は、16ビットの外部バ
スEBによって接続されている。そして、FIFOメモ
リ回路9は、最先に読み込んだバー幅カウント値及び色
識別信号を、外部バスEBを介してバーコード認識/復
調回路10に向けて出力すると、これら情報の取り込み
を指示するアウトプットレディ信号(OR)をバーコー
ド認識/復調回路10に対して発行する。そして、バー
コード認識/復調回路10がこれらの信号の取り込み完
了を示す信号(SETOUT)を通知してくると、次の
バー幅カウント値及び色識別信号をバーコード認識/復
調回路10に向けて出力する。
【0037】なお、FIFOメモリ回路9とバーコード
認識/復調回路10とを接続する外部バスEBには、ま
た、外部RAM46及び外部ROM47が接続されてい
る。この外部RAM46は、FIFOメモリ回路9から
送信されてきたデータを一次格納するランダムアクセス
メモリである。また、外部ROM47は、図4乃至図7
に示されるプログラム,及び図8に示される最小有効デ
ータ桁数テーブルを格納するリードオンリーメモリであ
る。 (バーコード認識/復調回路)次に、図3を用いて、バ
ーコード認識/復調回路10の詳細な構成を説明する。
このバーコード認識/復調回路10は、32ビットの
内部バスLBによって夫々接続されたCPU43,RA
M44,ユニバーサル・アシンクロノウス・レシーバ・
トランスミッター(UART)45,ダイレクト・メモ
リ・アクセス・コントローラ(DMAC)41,及びタ
イマー42,並びに、この内部バスLBと外部バスEB
との間に接続されたバスステートコントローラ(BS
C)40から、構成されている。
認識/復調回路10とを接続する外部バスEBには、ま
た、外部RAM46及び外部ROM47が接続されてい
る。この外部RAM46は、FIFOメモリ回路9から
送信されてきたデータを一次格納するランダムアクセス
メモリである。また、外部ROM47は、図4乃至図7
に示されるプログラム,及び図8に示される最小有効デ
ータ桁数テーブルを格納するリードオンリーメモリであ
る。 (バーコード認識/復調回路)次に、図3を用いて、バ
ーコード認識/復調回路10の詳細な構成を説明する。
このバーコード認識/復調回路10は、32ビットの
内部バスLBによって夫々接続されたCPU43,RA
M44,ユニバーサル・アシンクロノウス・レシーバ・
トランスミッター(UART)45,ダイレクト・メモ
リ・アクセス・コントローラ(DMAC)41,及びタ
イマー42,並びに、この内部バスLBと外部バスEB
との間に接続されたバスステートコントローラ(BS
C)40から、構成されている。
【0038】CPU43は、RISCチップから構成さ
れ、バーコード認識/復調回路10全体の制御を行う。
また、FIFOメモリ回路9から送信されたバー幅カウ
ント値及び色識別信号に対して、図8に示される最小有
効データ桁数テーブルを参照して、図4乃至図7に示さ
れるバーコードの認識/復調処理を実行する。
れ、バーコード認識/復調回路10全体の制御を行う。
また、FIFOメモリ回路9から送信されたバー幅カウ
ント値及び色識別信号に対して、図8に示される最小有
効データ桁数テーブルを参照して、図4乃至図7に示さ
れるバーコードの認識/復調処理を実行する。
【0039】バスステートコントローラ(BSC)40
は、内部バスLBと外部バスEBの状態を管理する出入
力インタフェースである。ダイレクト・メモリ・アクセ
ス・コントローラ(DMAC)41は、FIFOメモリ
回路9から信号の取り込みを指示する信号(OR)が入
力されると、バスステートコントローラ40を制御し
て、FIFOメモリ回路9から送信されて来ているバー
幅カウント値及び色識別信号をCPU43に転送する。
この転送が完了すると、信号の取り込み完了を示す信号
(SETOUT)を、FIFOメモリ回路9に通知す
る。
は、内部バスLBと外部バスEBの状態を管理する出入
力インタフェースである。ダイレクト・メモリ・アクセ
ス・コントローラ(DMAC)41は、FIFOメモリ
回路9から信号の取り込みを指示する信号(OR)が入
力されると、バスステートコントローラ40を制御し
て、FIFOメモリ回路9から送信されて来ているバー
幅カウント値及び色識別信号をCPU43に転送する。
この転送が完了すると、信号の取り込み完了を示す信号
(SETOUT)を、FIFOメモリ回路9に通知す
る。
【0040】タイマー42は、バーコード認識/復調回
路10内での各種処理に用いられる時間情報を生成する
装置である。ユニバーサル・アシンクロノウス・レシー
バ・トランスミッター(UART)45は、パラレル情
報として復調されたキャラクタ情報をシリアル信号に変
換して図示せぬRS−232Cポートから外部に出力す
るパラレル/シリアルインタフェースである。
路10内での各種処理に用いられる時間情報を生成する
装置である。ユニバーサル・アシンクロノウス・レシー
バ・トランスミッター(UART)45は、パラレル情
報として復調されたキャラクタ情報をシリアル信号に変
換して図示せぬRS−232Cポートから外部に出力す
るパラレル/シリアルインタフェースである。
【0041】次に、CPU43において実行されるバー
コード認識/復調処理プログラムの内容を、図4乃至図
7のフローチャートに基づいて説明する。図7のフロー
チャートは、バーコード読取装置に主電源が投入される
ことによりスタートする。そして、最初のS001にお
いて、初期設定を行う。ここで、例えば図示せぬディッ
プスイッチによる設定に応じて、このバーコード読取装
置が読取対象とするバーコードを構成するキャラクタの
桁数(読取桁数情報)を設定する(キャラクタ数特定手
段に相当)。
コード認識/復調処理プログラムの内容を、図4乃至図
7のフローチャートに基づいて説明する。図7のフロー
チャートは、バーコード読取装置に主電源が投入される
ことによりスタートする。そして、最初のS001にお
いて、初期設定を行う。ここで、例えば図示せぬディッ
プスイッチによる設定に応じて、このバーコード読取装
置が読取対象とするバーコードを構成するキャラクタの
桁数(読取桁数情報)を設定する(キャラクタ数特定手
段に相当)。
【0042】次のS002では、外部RAM46に格納
されているデータ列(一方向のバーコード走査によって
読み出された一連のカウント値列及び色識別信号列,明
暗パターンデータ列に相当)のうち最も古いものが、ス
タートバー(第1のバー)を含んでいるかどうかをチェ
ックする。そして、スタートバーが検出された時には、
このデータ列がバーコードからの反射光に基づく蓋然性
が高いとして、処理をS004に進める。これに対して
スタートバーが検出されなかった場合には、S003に
おいて、同じデータ列がエンドバー(第2のバー)を含
んでいるかどうかをチェックする。そして、エンドバー
が検出された場合には、このデータ列がバーコードから
の反射光に基づく蓋然性が高いとして、処理をS004
に進める。これに対して、エンドバーが検出されなかっ
た場合には、バーコード以外の箇所からの反射光に基づ
くデータであるとみなし、このデータ列を破棄して処理
をS002に戻す。
されているデータ列(一方向のバーコード走査によって
読み出された一連のカウント値列及び色識別信号列,明
暗パターンデータ列に相当)のうち最も古いものが、ス
タートバー(第1のバー)を含んでいるかどうかをチェ
ックする。そして、スタートバーが検出された時には、
このデータ列がバーコードからの反射光に基づく蓋然性
が高いとして、処理をS004に進める。これに対して
スタートバーが検出されなかった場合には、S003に
おいて、同じデータ列がエンドバー(第2のバー)を含
んでいるかどうかをチェックする。そして、エンドバー
が検出された場合には、このデータ列がバーコードから
の反射光に基づく蓋然性が高いとして、処理をS004
に進める。これに対して、エンドバーが検出されなかっ
た場合には、バーコード以外の箇所からの反射光に基づ
くデータであるとみなし、このデータ列を破棄して処理
をS002に戻す。
【0043】S004では、バー(S002から処理が
直接入ってきた場合にはスタートバー,S003から処
理が入ってきた場合にはエンドバー)に隣接するキャラ
クタの長さが、所定のバーコードの規格条件を満たして
いるかどうかをチェックする。そして、このキャラクタ
の長さが所定の規格条件を満たしていない場合には、こ
のデータ列がバーコード以外の箇所からの反射光に基づ
くデータであるとみなし、このデータ列を破棄して処理
をS002に戻す。
直接入ってきた場合にはスタートバー,S003から処
理が入ってきた場合にはエンドバー)に隣接するキャラ
クタの長さが、所定のバーコードの規格条件を満たして
いるかどうかをチェックする。そして、このキャラクタ
の長さが所定の規格条件を満たしていない場合には、こ
のデータ列がバーコード以外の箇所からの反射光に基づ
くデータであるとみなし、このデータ列を破棄して処理
をS002に戻す。
【0044】これに対して、キャラクタの長さが所定の
規格条件を満たしている場合には、S005において、
このキャラクタを対応するデータに変換する(明暗パタ
ーンデータ列をキャラクタ毎に分断して対応する他の形
式のデータに変換するデータ変換手段に相当)。
規格条件を満たしている場合には、S005において、
このキャラクタを対応するデータに変換する(明暗パタ
ーンデータ列をキャラクタ毎に分断して対応する他の形
式のデータに変換するデータ変換手段に相当)。
【0045】次のS006では、S005にてデータに
変換したキャラクタに隣接するキャラクタの長さが、所
定のバーコードの規格条件を満たしているかどうかをチ
ェックする。そして、このキャラクタの長さが所定の規
格条件を満たしていない場合には、処理をS009に進
める。
変換したキャラクタに隣接するキャラクタの長さが、所
定のバーコードの規格条件を満たしているかどうかをチ
ェックする。そして、このキャラクタの長さが所定の規
格条件を満たしていない場合には、処理をS009に進
める。
【0046】これに対して、キャラクタの長さが所定の
規格条件を満たしている場合には、S007において、
このキャラクタを対応するデータに変換し(データ変換
手段に相当)、次のS008において、S005又はS
007のデータ復調が良好に行われたかどうかをチェッ
クする。そして、復調が不調であった場合には、処理を
009に進め、復調が良好であった場合には、処理をS
011に進める。
規格条件を満たしている場合には、S007において、
このキャラクタを対応するデータに変換し(データ変換
手段に相当)、次のS008において、S005又はS
007のデータ復調が良好に行われたかどうかをチェッ
クする。そして、復調が不調であった場合には、処理を
009に進め、復調が良好であった場合には、処理をS
011に進める。
【0047】S011では、更に隣接するキャラクタが
エンドバーであるかどうかをチェックする。そして、隣
接するキャラクタがエンドバーの構成を満たしていない
場合には、処理をS006に戻す。これに対してエンド
バーが検出された場合には、連続読みによりバーコード
が一気に読めたものとして、処理をS012に進める。
エンドバーであるかどうかをチェックする。そして、隣
接するキャラクタがエンドバーの構成を満たしていない
場合には、処理をS006に戻す。これに対してエンド
バーが検出された場合には、連続読みによりバーコード
が一気に読めたものとして、処理をS012に進める。
【0048】これに対して、S009では、S001に
て設定した読取桁数情報に基づいて、図8に示す最小有
効データ桁数テーブルを参照し、対応する「最小有効デ
ータ桁数」情報を読み出す(有効キャラクタ桁数設定手
段に相当)。この「最小有効データ桁数」とは、2個の
データ列に基づいてバーコードを合成する場合におい
て、各データ列を有効として扱うために必要な最小限の
長さ(キャラクタ桁数)である。なお、図10A,Bに
示すように、2個のデータ列に分割してバーコードを読
むことを「分割読み」という。
て設定した読取桁数情報に基づいて、図8に示す最小有
効データ桁数テーブルを参照し、対応する「最小有効デ
ータ桁数」情報を読み出す(有効キャラクタ桁数設定手
段に相当)。この「最小有効データ桁数」とは、2個の
データ列に基づいてバーコードを合成する場合におい
て、各データ列を有効として扱うために必要な最小限の
長さ(キャラクタ桁数)である。なお、図10A,Bに
示すように、2個のデータ列に分割してバーコードを読
むことを「分割読み」という。
【0049】なお、図8の最小有効データ桁数テーブル
では、読取桁数情報(バーコード全体の桁数)の大小に
略正比例させて最小有効データ桁数を増減するようにし
ている。これは、誤読によるデータを排除して、バーコ
ードからの反射光による蓋然性の高いデータ列のみから
バーコードを合成するためである。即ち、図11に示す
バーコード1,バーコード2においてバーコードを分割
読みして得られたデータ列A,データ列Bは、何れも、
バーコードを1/3以上読んで得られているので、バー
コード以外の部分からのデータ列が偶然同じ形態になる
可能性は低いが、バーコード3におけるデータ列Aは、
1/3未満であるので、バーコード以外の部分からのデ
ータ列が偶然同じ形態になる可能性が高い。そこで、読
取桁数に応じて最小有効データ桁数を増減させるように
したのである。
では、読取桁数情報(バーコード全体の桁数)の大小に
略正比例させて最小有効データ桁数を増減するようにし
ている。これは、誤読によるデータを排除して、バーコ
ードからの反射光による蓋然性の高いデータ列のみから
バーコードを合成するためである。即ち、図11に示す
バーコード1,バーコード2においてバーコードを分割
読みして得られたデータ列A,データ列Bは、何れも、
バーコードを1/3以上読んで得られているので、バー
コード以外の部分からのデータ列が偶然同じ形態になる
可能性は低いが、バーコード3におけるデータ列Aは、
1/3未満であるので、バーコード以外の部分からのデ
ータ列が偶然同じ形態になる可能性が高い。そこで、読
取桁数に応じて最小有効データ桁数を増減させるように
したのである。
【0050】次のS010では、このデータ列中におけ
る現時点での復調済みデータ列の桁数(キャラクタ数)
がS009において読み出した「最小有効データ桁数」
より大きいか否かをチェックする。そして、復調済みデ
ータ列の桁数(キャラクタ数)が最小有効データ桁数以
下である場合には、バーコードからのデータ列と偶然同
じ形態になった可能性の高いデータ列を排除してデータ
誤読を防止すべく、このデータ列を破棄して処理をS0
02に戻す(有効キャラクタ数未満のキャラクタ数の明
暗パターンデータ列を廃棄する廃棄手段に相当)。これ
に対して、復調済みデータ列の桁数(キャラクタ数)が
最小有効データ桁数より大きい場合には、バーコードを
分割読みして得られたデータ列である可能性が高いとし
て、処理をS012に進める。
る現時点での復調済みデータ列の桁数(キャラクタ数)
がS009において読み出した「最小有効データ桁数」
より大きいか否かをチェックする。そして、復調済みデ
ータ列の桁数(キャラクタ数)が最小有効データ桁数以
下である場合には、バーコードからのデータ列と偶然同
じ形態になった可能性の高いデータ列を排除してデータ
誤読を防止すべく、このデータ列を破棄して処理をS0
02に戻す(有効キャラクタ数未満のキャラクタ数の明
暗パターンデータ列を廃棄する廃棄手段に相当)。これ
に対して、復調済みデータ列の桁数(キャラクタ数)が
最小有効データ桁数より大きい場合には、バーコードを
分割読みして得られたデータ列である可能性が高いとし
て、処理をS012に進める。
【0051】S012では、図5に示すバーコード合成
処理サブルーチンを実行する。図5において最初のS1
01では、S012での処理対象となっている復調デー
タ列がスタートバー及びエンドバーの一方のみを通過す
るように走査して得られたデータ列であるかどうかをチ
ェックする。そして、スタートバー及びエンドバーの双
方を通過するように走査して得られたデータ列である場
合には、連続読みによってバーコードが一気に読まれた
場合であるので、S111において変数iを“0”にリ
セットしてこのサブルーチンを終了する。
処理サブルーチンを実行する。図5において最初のS1
01では、S012での処理対象となっている復調デー
タ列がスタートバー及びエンドバーの一方のみを通過す
るように走査して得られたデータ列であるかどうかをチ
ェックする。そして、スタートバー及びエンドバーの双
方を通過するように走査して得られたデータ列である場
合には、連続読みによってバーコードが一気に読まれた
場合であるので、S111において変数iを“0”にリ
セットしてこのサブルーチンを終了する。
【0052】これに対して、スタートバー及びエンドバ
ーの一方のみを通過するように走査して得られたデータ
列である場合には、S102において、この復調データ
列がスタートバーを通過するように走査して得られたデ
ータ列であるかどうかをチェックする。そして、スター
トバーを通過したデータ列である場合には、S103に
おいてこのスタートバーを含むデータ列(第1の明暗パ
ターンデータ列)をRAM44に格納し、エンドバーを
通過したデータ列である場合には、S104においてこ
のエンドバーを含むデータ列(第2の明暗パターンデー
タ列)をRAM44に格納する。
ーの一方のみを通過するように走査して得られたデータ
列である場合には、S102において、この復調データ
列がスタートバーを通過するように走査して得られたデ
ータ列であるかどうかをチェックする。そして、スター
トバーを通過したデータ列である場合には、S103に
おいてこのスタートバーを含むデータ列(第1の明暗パ
ターンデータ列)をRAM44に格納し、エンドバーを
通過したデータ列である場合には、S104においてこ
のエンドバーを含むデータ列(第2の明暗パターンデー
タ列)をRAM44に格納する。
【0053】何れの場合においても、次のS105で
は、スタートバーを通過したデータ列及びエンドバーを
通過したデータ列が揃ったか否かをチェックする。そし
て、各バーを通過したデータ列が未だ揃っていない場合
には、処理をS002に戻し、次のデータ列に対する復
調処理を実行する。
は、スタートバーを通過したデータ列及びエンドバーを
通過したデータ列が揃ったか否かをチェックする。そし
て、各バーを通過したデータ列が未だ揃っていない場合
には、処理をS002に戻し、次のデータ列に対する復
調処理を実行する。
【0054】これに対して各バーを通過したデータ列が
揃った場合には、S106において、図6に示すデータ
桁数チェックサブルーチンを実行する。このデータ桁数
チェックサブルーチンにおいて最初のS201では、ス
タートバーを通過したデータ列の桁数(キャラクタ数)
とエンドバーを通過したデータ列の桁数(キャラクタ
数)とを合算する(総和算出手段に相当)。次のS20
2では、S201にて合算した総和がS001にて設定
した読取桁数を超えているか否かをチェックする(比較
手段に相当)。そして、この総和が読取桁数以下の場合
には、データ列同士の重複部分が全くない。従って、両
データ列が同一のバーコードによるデータ列である保障
が全くない。そのため、データ誤読を排除すべく、処理
をS002に戻し、現在RAM44に格納されているデ
ータ列に代わる他のデータ列に対する復調処理を実行す
る。これに対して、総和が読取桁数を超えている場合に
は、データ列同士の重複部分がある可能性が高い。その
ため、このデータ桁数チェックサブルーチンを終了し
て、図5のS106にリターンする。S106の次に実
行されるS107では、データ重複部をチェックする。
このデータ重複部とは、図11において斜線部分として
示すように、2つのデータ列の各々によって重複して読
み取られる部分である。即ち、ここでは、スタートバー
を通過したデータ列の末端部分のデータ,及びエンドバ
ーを通過したデータ列の末端部分のデータが一致してい
るかどうかをチェックするのである。なお、このデータ
重複部の桁数(キャラクタ数)は、両データ列の桁数の
総数から読取桁数を減算した数に等しい。このチェック
の結果、重複部分がなかった場合,又は重複部の桁数が
両データ列の桁数の総数から読取桁数を減算した数と一
致しない場合は、同一のバーコードに基づくデータ以外
のデータが混入する可能性が高いとして、S108にお
いて処理をS002に戻し、現在RAM44に格納され
ているデータ列に代わる他のデータ列に対する復調処理
を実行する。これに対して、重複部の桁数が両データ列
の桁数の総数から読取桁数を減算した数と一致している
場合には、処理をS109に進める。即ち、これらS1
06乃至S108が、同じデータからなる重複部が第1
の明暗パターンデータ列と第2の明暗パターンデータ列
とに夫々含まれているか否かを判定する重複部判定手段
に相当する。
揃った場合には、S106において、図6に示すデータ
桁数チェックサブルーチンを実行する。このデータ桁数
チェックサブルーチンにおいて最初のS201では、ス
タートバーを通過したデータ列の桁数(キャラクタ数)
とエンドバーを通過したデータ列の桁数(キャラクタ
数)とを合算する(総和算出手段に相当)。次のS20
2では、S201にて合算した総和がS001にて設定
した読取桁数を超えているか否かをチェックする(比較
手段に相当)。そして、この総和が読取桁数以下の場合
には、データ列同士の重複部分が全くない。従って、両
データ列が同一のバーコードによるデータ列である保障
が全くない。そのため、データ誤読を排除すべく、処理
をS002に戻し、現在RAM44に格納されているデ
ータ列に代わる他のデータ列に対する復調処理を実行す
る。これに対して、総和が読取桁数を超えている場合に
は、データ列同士の重複部分がある可能性が高い。その
ため、このデータ桁数チェックサブルーチンを終了し
て、図5のS106にリターンする。S106の次に実
行されるS107では、データ重複部をチェックする。
このデータ重複部とは、図11において斜線部分として
示すように、2つのデータ列の各々によって重複して読
み取られる部分である。即ち、ここでは、スタートバー
を通過したデータ列の末端部分のデータ,及びエンドバ
ーを通過したデータ列の末端部分のデータが一致してい
るかどうかをチェックするのである。なお、このデータ
重複部の桁数(キャラクタ数)は、両データ列の桁数の
総数から読取桁数を減算した数に等しい。このチェック
の結果、重複部分がなかった場合,又は重複部の桁数が
両データ列の桁数の総数から読取桁数を減算した数と一
致しない場合は、同一のバーコードに基づくデータ以外
のデータが混入する可能性が高いとして、S108にお
いて処理をS002に戻し、現在RAM44に格納され
ているデータ列に代わる他のデータ列に対する復調処理
を実行する。これに対して、重複部の桁数が両データ列
の桁数の総数から読取桁数を減算した数と一致している
場合には、処理をS109に進める。即ち、これらS1
06乃至S108が、同じデータからなる重複部が第1
の明暗パターンデータ列と第2の明暗パターンデータ列
とに夫々含まれているか否かを判定する重複部判定手段
に相当する。
【0055】S109では、図7に示す一致回数チェッ
クサブルーチンを実行する。一致回数チェックサブルー
チンは、読取桁数及び重複部の桁数(キャラクタの数)
に応じて、データ合成実行条件としての重複部のデータ
の一致回数を可変とするための処理である。即ち、図1
2に示すバーコード1とバーコード2とでは、読取桁数
に差異があるので、読取桁数に対する重複部の割合に差
異が生じる。そして、バーコード2のように読取桁数に
対する重複部の割合が小さいと、両データの重複部分が
ともに誤読によって生じた可能性があり得る。そこで、
このような場合には、再度データ復調を行って再度重複
部データの一致が確認されることを、データ合成の条件
とするのである。同様に、図12に示すバーコード2と
バーコード3とでは、重複部の桁数に差異があるので、
読取桁数に対する重複部の割合に差異が生じる。バーコ
ード3のように読取桁数に対する重複部の割合が大きい
と、両データの重複部分がともに誤読によって生じた可
能性が低くなる。そこで、このような場合には、今回重
複部データの一致が確認されたことのみを、データ合成
の条件とするのである。
クサブルーチンを実行する。一致回数チェックサブルー
チンは、読取桁数及び重複部の桁数(キャラクタの数)
に応じて、データ合成実行条件としての重複部のデータ
の一致回数を可変とするための処理である。即ち、図1
2に示すバーコード1とバーコード2とでは、読取桁数
に差異があるので、読取桁数に対する重複部の割合に差
異が生じる。そして、バーコード2のように読取桁数に
対する重複部の割合が小さいと、両データの重複部分が
ともに誤読によって生じた可能性があり得る。そこで、
このような場合には、再度データ復調を行って再度重複
部データの一致が確認されることを、データ合成の条件
とするのである。同様に、図12に示すバーコード2と
バーコード3とでは、重複部の桁数に差異があるので、
読取桁数に対する重複部の割合に差異が生じる。バーコ
ード3のように読取桁数に対する重複部の割合が大きい
と、両データの重複部分がともに誤読によって生じた可
能性が低くなる。そこで、このような場合には、今回重
複部データの一致が確認されたことのみを、データ合成
の条件とするのである。
【0056】この一致回数チェックサブルーチンに入っ
て最初のS301重複部のデータ同士の一致回数を示す
変数iを1つインクリメントする。なお、この変数iの
初期値は0である。
て最初のS301重複部のデータ同士の一致回数を示す
変数iを1つインクリメントする。なお、この変数iの
初期値は0である。
【0057】次のS302では、読取桁数が5桁以下で
あるかどうかをチェックする(しきい値設定手段に相
当)。そして、5桁以下である場合には、S303にお
いて、重複部の桁数が3桁以上であるかどうかをチェッ
クする(比較手段に相当)。このチェックの結果、重複
部の桁数が3桁以上であると処理をS307に進め、3
桁未満であると処理をS308に進める。
あるかどうかをチェックする(しきい値設定手段に相
当)。そして、5桁以下である場合には、S303にお
いて、重複部の桁数が3桁以上であるかどうかをチェッ
クする(比較手段に相当)。このチェックの結果、重複
部の桁数が3桁以上であると処理をS307に進め、3
桁未満であると処理をS308に進める。
【0058】これに対して、S302にて読取桁数が5
桁を超えると判定した場合には、S304において、読
取桁数が10桁以下であるかどうかをチェックする(し
きい値設定手段に相当)。そして、10桁以下である場
合には、S305において、重複部の桁数が4桁以上で
あるかどうかをチェックする(比較手段に相当)。この
チェックの結果、重複部の桁数が4桁以上であると処理
をS307に進め、4桁未満であると処理をS308に
進める。一方、読取桁数が10桁を超える場合には、S
306において、重複部の桁数が5桁以上であるかどう
かをチェックする(比較手段に相当)。このチェックの
結果、重複部の桁数が5桁以上であると処理をS307
に進め、5桁未満であると処理をS308に進める。
桁を超えると判定した場合には、S304において、読
取桁数が10桁以下であるかどうかをチェックする(し
きい値設定手段に相当)。そして、10桁以下である場
合には、S305において、重複部の桁数が4桁以上で
あるかどうかをチェックする(比較手段に相当)。この
チェックの結果、重複部の桁数が4桁以上であると処理
をS307に進め、4桁未満であると処理をS308に
進める。一方、読取桁数が10桁を超える場合には、S
306において、重複部の桁数が5桁以上であるかどう
かをチェックする(比較手段に相当)。このチェックの
結果、重複部の桁数が5桁以上であると処理をS307
に進め、5桁未満であると処理をS308に進める。
【0059】S307では、参照値kを“1”にセット
する。また、S308では、参照値kを“2”にセット
する。何れの場合においても、次のS309では、現時
点における一致回数iと参照値kとを比較する。一致回
数iが参照値k未満である場合には、再度データ列を復
調してデータの一致を再確認すべく、処理をS002に
戻す。この場合には、変数iの値を保持しつつ、RAM
44に格納されているデータ列をクリアして、新たに復
調されたデータ列を格納する(重複部判定手段による判
定を新たに明暗パターン検出手段によって検出された第
1の明暗パターンデータ列と第2の明暗パターンデータ
列に対して実行させる判定再実行手段に相当する。)。
これに対して、一致回数iが参照値k以上である場合に
は、データ重複部がデータ誤読による可能性がないこと
の確認がとれてデータ誤読の可能性が低くなったとし
て、この一致回数チェックサブルーチンを終了して処理
を図5に戻す。この結果、読取桁数が大きくなればなる
ほど、重複部の一致の確認を一回のみで可とできる重複
部の桁数が大きくなる。
する。また、S308では、参照値kを“2”にセット
する。何れの場合においても、次のS309では、現時
点における一致回数iと参照値kとを比較する。一致回
数iが参照値k未満である場合には、再度データ列を復
調してデータの一致を再確認すべく、処理をS002に
戻す。この場合には、変数iの値を保持しつつ、RAM
44に格納されているデータ列をクリアして、新たに復
調されたデータ列を格納する(重複部判定手段による判
定を新たに明暗パターン検出手段によって検出された第
1の明暗パターンデータ列と第2の明暗パターンデータ
列に対して実行させる判定再実行手段に相当する。)。
これに対して、一致回数iが参照値k以上である場合に
は、データ重複部がデータ誤読による可能性がないこと
の確認がとれてデータ誤読の可能性が低くなったとし
て、この一致回数チェックサブルーチンを終了して処理
を図5に戻す。この結果、読取桁数が大きくなればなる
ほど、重複部の一致の確認を一回のみで可とできる重複
部の桁数が大きくなる。
【0060】処理が戻された図5のバーコード合成サブ
ルーチンでは、S109の後に実行されるS110にお
いて、データの合成を実行する。即ち、スタートバーを
通過したデータ列の重複部に、エンドバーを通過したデ
ータ列の重複部に続く部分を結合して、バーコード全体
に対応する一連のデータ列を合成するのである(第1の
明暗パターンデータ列及び第2の明暗パターンデータ列
を結合する結合手段に相当)。このように合成されたデ
ータ列は、連続読みによって一気に読まれたデータ列と
同じ構成を有している。
ルーチンでは、S109の後に実行されるS110にお
いて、データの合成を実行する。即ち、スタートバーを
通過したデータ列の重複部に、エンドバーを通過したデ
ータ列の重複部に続く部分を結合して、バーコード全体
に対応する一連のデータ列を合成するのである(第1の
明暗パターンデータ列及び第2の明暗パターンデータ列
を結合する結合手段に相当)。このように合成されたデ
ータ列は、連続読みによって一気に読まれたデータ列と
同じ構成を有している。
【0061】次のS111では、一個のバーコードの合
成が完了したことから、次のバーコードの読み出しに備
えて、変数iを0にリセットする。この後で、このバー
コード合成サブルーチンを終了して、処理を図4に戻
す。
成が完了したことから、次のバーコードの読み出しに備
えて、変数iを0にリセットする。この後で、このバー
コード合成サブルーチンを終了して、処理を図4に戻
す。
【0062】処理が戻された図4のメインルーチンで
は、S012の後に実行されるS013において、デー
タ送信を実行する。即ち、RAM44に格納されている
データ列(連続読みにより一気に読み取られたデータ
列,又は、S012において合成されたデータ列)を、
ユニバーサル・アシンクロノウス・レシーバ・トランス
ミッター(UART)45を介して外部に送信する。そ
して、次のバーコードの読み取りを行うために、処理を
S002に戻す。
は、S012の後に実行されるS013において、デー
タ送信を実行する。即ち、RAM44に格納されている
データ列(連続読みにより一気に読み取られたデータ
列,又は、S012において合成されたデータ列)を、
ユニバーサル・アシンクロノウス・レシーバ・トランス
ミッター(UART)45を介して外部に送信する。そ
して、次のバーコードの読み取りを行うために、処理を
S002に戻す。
【0063】以上のように構成された本実施形態による
バーコードリーダによると、スタートバー及びエンドバ
ーの何れか一方のみしか含んでいないためにバーコード
に基づくデータ列であるとは直ちにみなすことができな
い分割読みのデータ列であっても、重複部同士のデータ
内容をチェックする(S202,S108)ことによ
り、一個のバーコードに基づく一連のデータ列として合
成することができる。この重複部は、バーコードの読取
桁数を特定することにより、分割読みのデータ列の桁数
の総和を算出するだけで、容易に抽出することができ
る。
バーコードリーダによると、スタートバー及びエンドバ
ーの何れか一方のみしか含んでいないためにバーコード
に基づくデータ列であるとは直ちにみなすことができな
い分割読みのデータ列であっても、重複部同士のデータ
内容をチェックする(S202,S108)ことによ
り、一個のバーコードに基づく一連のデータ列として合
成することができる。この重複部は、バーコードの読取
桁数を特定することにより、分割読みのデータ列の桁数
の総和を算出するだけで、容易に抽出することができ
る。
【0064】また、各分割読みのデータ列(スタートバ
ー及びエンドバーの何れか一方のみを含むデータ列)
は、最小有効データ桁数に基づく選別を予め受けている
(S010)ので、この最小有効データ桁数以上の桁数
のもののみとなっており、バーコード以外の部分からの
反射光に基づく誤読データが混入する余地が小さくな
る。なお、この最小有効データ桁数は読取桁数の大小に
略正比例して定まる(S009)ので、バーコードの桁
数との相対的関係で、信頼性が十分なデータ列のみから
データ合成を行うことができる。
ー及びエンドバーの何れか一方のみを含むデータ列)
は、最小有効データ桁数に基づく選別を予め受けている
(S010)ので、この最小有効データ桁数以上の桁数
のもののみとなっており、バーコード以外の部分からの
反射光に基づく誤読データが混入する余地が小さくな
る。なお、この最小有効データ桁数は読取桁数の大小に
略正比例して定まる(S009)ので、バーコードの桁
数との相対的関係で、信頼性が十分なデータ列のみから
データ合成を行うことができる。
【0065】また、分割読みデータ列の重複部のデータ
内容のチェックについては、読取桁数の大小,及び、重
複部の桁数の大小に応じて、データ合成に必要な合格回
数が変化する(S309)。即ち、重複部の桁数が同じ
とした場合、読取桁数が大きくなると、データ合成に必
要な合格回数が2回となる。また、読取桁数が同じとし
た場合、重複部の桁数が小さくなると、データ合成に必
要な合格回数が2回となる。従って、読取桁数と重複部
の桁数との相対関係で、チェック回数を可変させてデー
タ合成の信頼性を高くしたので、バーコード以外の部分
からの反射光に基づく誤読データが混入する余地が小さ
くなる。
内容のチェックについては、読取桁数の大小,及び、重
複部の桁数の大小に応じて、データ合成に必要な合格回
数が変化する(S309)。即ち、重複部の桁数が同じ
とした場合、読取桁数が大きくなると、データ合成に必
要な合格回数が2回となる。また、読取桁数が同じとし
た場合、重複部の桁数が小さくなると、データ合成に必
要な合格回数が2回となる。従って、読取桁数と重複部
の桁数との相対関係で、チェック回数を可変させてデー
タ合成の信頼性を高くしたので、バーコード以外の部分
からの反射光に基づく誤読データが混入する余地が小さ
くなる。
【0066】[実施形態2]上記第1実施形態では、読
取桁数の大小に拘わらず、分割読みの両データ列の総和
が読取桁数を超えていれば良いとしていた(S20
2)。従って、重複部の桁数は最小限1あればよく、
只、事後的に図7の一致回数チェックにおいて、この重
複部の桁数に応じて、データ合成に必要な重複部のデー
タ内容の合格回数を可変するのみであった。
取桁数の大小に拘わらず、分割読みの両データ列の総和
が読取桁数を超えていれば良いとしていた(S20
2)。従って、重複部の桁数は最小限1あればよく、
只、事後的に図7の一致回数チェックにおいて、この重
複部の桁数に応じて、データ合成に必要な重複部のデー
タ内容の合格回数を可変するのみであった。
【0067】本第2実施形態では、読取桁数の大小に応
じて、重複部に必要とされる桁数を可変させることを特
徴とする。図14は、本第2実施形態における外部RO
M47(図3参照)に格納されている合成桁数テーブル
を示す。この図14から明らかなように、読取桁数が増
加すると、これに略正比例して、「合成桁数」が増え
る。この「合成桁数」とはスタートバーを通過したデー
タの桁数とエンドバーを通過したデータの桁数との総和
の下限値を定めるものである。従って、読取桁数が増加
すると、これに略正比例して、重複部の桁数が増加する
のである。
じて、重複部に必要とされる桁数を可変させることを特
徴とする。図14は、本第2実施形態における外部RO
M47(図3参照)に格納されている合成桁数テーブル
を示す。この図14から明らかなように、読取桁数が増
加すると、これに略正比例して、「合成桁数」が増え
る。この「合成桁数」とはスタートバーを通過したデー
タの桁数とエンドバーを通過したデータの桁数との総和
の下限値を定めるものである。従って、読取桁数が増加
すると、これに略正比例して、重複部の桁数が増加する
のである。
【0068】図13は、合成桁数テーブルを参照して重
複部の桁数をチェックするために図5のS106におい
て実行されるデータ桁数チェックサブルーチンを示すフ
ローチャートであり、第1実施形態による図6のフロー
チャートに対応するものである。このデータ桁数チェッ
クサブルーチンに入って最初のS401では、S001
において設定された読取桁数を基に図14の合成桁数テ
ーブルを参照して、この読取桁数に対応する合成桁数情
報を読み出す(合成桁数設定手段に相当)。
複部の桁数をチェックするために図5のS106におい
て実行されるデータ桁数チェックサブルーチンを示すフ
ローチャートであり、第1実施形態による図6のフロー
チャートに対応するものである。このデータ桁数チェッ
クサブルーチンに入って最初のS401では、S001
において設定された読取桁数を基に図14の合成桁数テ
ーブルを参照して、この読取桁数に対応する合成桁数情
報を読み出す(合成桁数設定手段に相当)。
【0069】次のS402では、スタートバーを通過し
たデータ列の桁数(キャラクタ数)とエンドバーを通過
したデータ列の桁数(キャラクタ数)とを合算する(総
和算出手段に相当)。次のS403では、S402にて
合算した総和がS401にて読み出された合成桁数を超
えているか否かをチェックする(比較手段に相当)。そ
して、この総和が読取桁数以下の場合では、データ列同
士の重複部分が全くないか、読取桁数に比して重複部の
桁数が十分ではない。従って、仮に重複部のデータが互
いに一致しても偶然一致しただけである可能性を否定を
することができない。そのため、データ誤読を排除すべ
く、処理をS002に戻し、現在RAM44に格納され
ているデータ列に代わる他のデータ列に対する復調処理
を実行する。これに対して、総和が合成桁数を超えてい
る場合には、偶然ではそのデータ同士が一致し得ない程
度の桁数を、重複部が持つこととなる。そのため、この
データ桁数チェックサブルーチンを終了して、図5のS
106にリターンする。
たデータ列の桁数(キャラクタ数)とエンドバーを通過
したデータ列の桁数(キャラクタ数)とを合算する(総
和算出手段に相当)。次のS403では、S402にて
合算した総和がS401にて読み出された合成桁数を超
えているか否かをチェックする(比較手段に相当)。そ
して、この総和が読取桁数以下の場合では、データ列同
士の重複部分が全くないか、読取桁数に比して重複部の
桁数が十分ではない。従って、仮に重複部のデータが互
いに一致しても偶然一致しただけである可能性を否定を
することができない。そのため、データ誤読を排除すべ
く、処理をS002に戻し、現在RAM44に格納され
ているデータ列に代わる他のデータ列に対する復調処理
を実行する。これに対して、総和が合成桁数を超えてい
る場合には、偶然ではそのデータ同士が一致し得ない程
度の桁数を、重複部が持つこととなる。そのため、この
データ桁数チェックサブルーチンを終了して、図5のS
106にリターンする。
【0070】このように、本第2実施例においては、読
取桁数の大小に応じてデータ内容の一致を要する重複部
の桁数を可変するようにしている(S401)。従っ
て、バーコードの桁数との相対的関係で、信頼性が十分
なデータ列のみからデータ合成を行うことができる。即
ち、図12に示すバーコード1とバーコード2とでは、
重複部の桁数が同じであってもバーコード全体の桁数が
相違しているので、バーコード全体に対する重複部の割
合が相違する。即ち、バーコード2における重複部の割
合は、バーコード1における重複部の割合よりも小さ
い。従って、バーコード1においてデータの誤読がない
としても、バーコード2においては重複部のデータ同士
の誤読によって偶然一致しているだけである可能性が高
い。そこで、その場合には、バーコード3として示すよ
うに、重複部として必要な桁数を増やすことにより、偶
然によって重複部のデータ同士が一致することがないよ
うにしているのである。
取桁数の大小に応じてデータ内容の一致を要する重複部
の桁数を可変するようにしている(S401)。従っ
て、バーコードの桁数との相対的関係で、信頼性が十分
なデータ列のみからデータ合成を行うことができる。即
ち、図12に示すバーコード1とバーコード2とでは、
重複部の桁数が同じであってもバーコード全体の桁数が
相違しているので、バーコード全体に対する重複部の割
合が相違する。即ち、バーコード2における重複部の割
合は、バーコード1における重複部の割合よりも小さ
い。従って、バーコード1においてデータの誤読がない
としても、バーコード2においては重複部のデータ同士
の誤読によって偶然一致しているだけである可能性が高
い。そこで、その場合には、バーコード3として示すよ
うに、重複部として必要な桁数を増やすことにより、偶
然によって重複部のデータ同士が一致することがないよ
うにしているのである。
【0071】本第2実施形態におけるその他のハード構
成及び処理内容は、第1実施形態のものと同一であるの
で、その説明を省略する。
成及び処理内容は、第1実施形態のものと同一であるの
で、その説明を省略する。
【0072】
【発明の効果】以上のように構成された本発明のバーコ
ード読取装置及びバーコード読取方法によると、第1の
バーを含むが第2のバーを含まない第1の明暗パターン
データ列,及び、第2のバーを含むが第1のバーを含ま
ない第2の明暗パターンデータ列を、両者が同じデータ
からなる重複部を有している場合のみ相互に結合するよ
うにした。その結果、データの誤読が極力抑えられるの
で、これらデータ列に基づいてバーコード全体による読
取りデータを合成することが可能となった。従って、走
査方向の頻繁な修正を要することなく短時間でバーコー
ドの読取りを完了することができるようになる。
ード読取装置及びバーコード読取方法によると、第1の
バーを含むが第2のバーを含まない第1の明暗パターン
データ列,及び、第2のバーを含むが第1のバーを含ま
ない第2の明暗パターンデータ列を、両者が同じデータ
からなる重複部を有している場合のみ相互に結合するよ
うにした。その結果、データの誤読が極力抑えられるの
で、これらデータ列に基づいてバーコード全体による読
取りデータを合成することが可能となった。従って、走
査方向の頻繁な修正を要することなく短時間でバーコー
ドの読取りを完了することができるようになる。
【図1】本発明の原理を示す原理図
【図2】本発明の第1の実施形態によるバーコードリー
ダーのブロック図
ダーのブロック図
【図3】図2のFIFOメモリ回路及びバーコード認識
/復調回路の詳細な構成を示すブロック図
/復調回路の詳細な構成を示すブロック図
【図4】図3のCPUで実行されるバーコード認識/復
調処理プログラムの内容を示すフローチャート
調処理プログラムの内容を示すフローチャート
【図5】図4のS012で実行されるバーコード合成サ
ブルーチンの内容を示すフローチャート
ブルーチンの内容を示すフローチャート
【図6】図5のS106で実行されるデータ桁数チェッ
クサブルーチンの内容を示すフローチャート
クサブルーチンの内容を示すフローチャート
【図7】図5のS109で実行される一致回数チェック
サブルーチンの内容を示すフローチャート
サブルーチンの内容を示すフローチャート
【図8】図3の外部RAMに格納された最小有効データ
桁数テーブルを示す図
桁数テーブルを示す図
【図9】セカンドコードの構成を示す図
【図10】セカンドコードを読み取るための走査方向を
示す図
示す図
【図11】読み取り桁数と最小有効データとの関係の説
明図
明図
【図12】読み取り桁数と重複部の桁数との関係の説明
図
図
【図13】本発明の第2の実施形態において図5のS1
06で実行されるデータ桁数チェックサブルーチンの内
容を示すフローチャート
06で実行されるデータ桁数チェックサブルーチンの内
容を示すフローチャート
【図14】本発明の第2の実施形態において図3の外部
RAMに格納された合成桁数テーブルを示す図
RAMに格納された合成桁数テーブルを示す図
【図15】従来のバーコードリーダーにおいて実行され
るバーコード認識/復調処理プログラムの内容を示すフ
ローチャート
るバーコード認識/復調処理プログラムの内容を示すフ
ローチャート
1 レーザー光源
2 走査/集光光学系
3a バーコード
4 光検知器
5 二値化回路
6 バー幅カウンタ
8 フィルター回路
10 バーコード認識/復調回路
43 CPU
44 RAM
47 外部ROM
─────────────────────────────────────────────────────
フロントページの続き
(72)発明者 岩口 功
神奈川県川崎市中原区上小田中1015番地
富士通株式会社内
(72)発明者 篠田 一郎
神奈川県川崎市中原区上小田中1015番地
富士通株式会社内
Fターム(参考) 5B072 AA01 AA02 CC24 DD01 DD02
EE11 FF02 FF33 LL01 LL12
LL20
Claims (4)
- 【請求項1】第1のバー及び第2のバーによって両端が
挟まれたバーコードを走査して、その走査軌跡における
明暗パターンデータ列を検出する明暗パターン検出手段
と、 前記明暗パターン検出手段によって検出された前記明暗
パターンデータ列をキャラクタ毎に分断して対応する前
記他の形式のデータに変換するデータ変換手段と、 前記第1のバーを含むが前記第2のバーを含まない前記
データ変換手段によって変換された第1の明暗パターン
データ列と前記第2のバーを含むが前記第1のバーを含
まない前記データ変換手段によって変換された第2の明
暗パターンデータ列とが前記明暗パターン検出手段によ
って検出されたときに、同じデータからなる重複部がこ
れら第1の明暗パターンデータ列と第2の明暗パターン
データ列とに夫々含まれているか否かを判定する重複部
判定手段と、 前記第1の明暗パターンデータ列及び第2の明暗パター
ンデータ列に前記重複部が夫々含まれているとこの重複
部判定手段によって判定された場合に、これら第1の明
暗パターンデータ列及び第2の明暗パターンデータ列を
結合する結合手段と、 前記重複部のキャラクタ数のしきい値を予め設定するし
きい値設定手段と、 前記第1の明暗パターンデータ列と前記第2の明暗パタ
ーンデータ列とに夫々含まれている重複部のキャラクタ
数が前記しきい値より少ないかどうかを比較し、前記重
複部のキャラクタ数がしきい値以上であった場合に前記
第1の明暗パターンデータ列及び前記第2の明暗パター
ンデータ列の読み取りを完了させる比較手段と、 前記比較手段による比較の結果、前記重複部のキャラク
タ数が前記しきい値より少なかった場合に、前記重複部
判定手段による前記判定を新たに前記明暗パターン検出
手段によって検出された前記第1の明暗パターンデータ
列と前記第2の明暗パターンデータ列に対して実行させ
る判定再実行手段と、を備えたことを特徴とするバーコ
ード読取装置。 - 【請求項2】読取対象バーコードのキャラクタ数を特定
するキャラクタ数特定手段を更に備えることを特徴とす
る請求項1記載のバーコード読取装置。 - 【請求項3】前記しきい値設定手段は、前記キャラクタ
数特定手段によって特定された前記キャラクタ数が大き
くなるにつれて前記しきい値のキャラクタ数を大きく設
定することを特徴とする請求項2記載のバーコード読取
装置。 - 【請求項4】前記しきい値設定手段が、前記第1の明暗
パターンデータ列と第2の明暗パターンデータ列とに重
複部が含まれていると判定した場合に、このパターン列
の一致回数を1つ増加させる処理を行い、 前記比較手段が、前記重複部のキャラクタ数を比較した
結果、しきい値以上の場合に参照値を1とし、しきい値
未満の場合に参照値を2とし、前記一致回数と参照値を
比較して一致回数が参照値以上の場合には前記読み取り
を完了させ、 前記一致回数が参照値未満の場合には前記判定際実行手
段が、前記しきい値設定手段による判定及び前記比較手
段による比較を再度実行させることを特徴とする請求項
1から3のいずれかに記載のバーコード読取装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002192271A JP2003036416A (ja) | 2002-07-01 | 2002-07-01 | バーコード読取装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002192271A JP2003036416A (ja) | 2002-07-01 | 2002-07-01 | バーコード読取装置 |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP23732695A Division JP3470738B2 (ja) | 1995-09-14 | 1995-09-14 | バーコード読取装置及びバーコード読取方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2003036416A true JP2003036416A (ja) | 2003-02-07 |
Family
ID=19195526
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2002192271A Pending JP2003036416A (ja) | 2002-07-01 | 2002-07-01 | バーコード読取装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2003036416A (ja) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2008010513A1 (fr) * | 2006-07-19 | 2008-01-24 | B-Core Inc. | symbole optique, objet auquel il est rattaché, procédé de rattachement du symbole optique à un OBJET, procédé de décodage dudit symbole, dispositif et programme associés |
WO2015098241A1 (ja) * | 2013-12-25 | 2015-07-02 | ウイングアーク1st株式会社 | コード読取装置およびコード読取用プログラム |
-
2002
- 2002-07-01 JP JP2002192271A patent/JP2003036416A/ja active Pending
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2008010513A1 (fr) * | 2006-07-19 | 2008-01-24 | B-Core Inc. | symbole optique, objet auquel il est rattaché, procédé de rattachement du symbole optique à un OBJET, procédé de décodage dudit symbole, dispositif et programme associés |
US8113432B2 (en) | 2006-07-19 | 2012-02-14 | B-Core Inc. | Apparatus for recognizing an optical recognition code in which a code symbol of a 1-dimensional color bit code indicative of certain data is divided into a plurality of code symbols |
WO2015098241A1 (ja) * | 2013-12-25 | 2015-07-02 | ウイングアーク1st株式会社 | コード読取装置およびコード読取用プログラム |
CN105900111A (zh) * | 2013-12-25 | 2016-08-24 | 文雅科番株式会社 | 代码读取装置和代码读取用程序 |
US9582703B2 (en) | 2013-12-25 | 2017-02-28 | Wingarc1St Inc. | Code reading device and code reading program |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3470738B2 (ja) | バーコード読取装置及びバーコード読取方法 | |
US6095419A (en) | Bar code reading apparatus for reading plural code systems | |
US4488678A (en) | Method and apparatus for reading a bar code | |
EP0043124B1 (en) | Method for decoding bar-coded labels | |
US5929421A (en) | Method and apparatus for recognizing and assembling optical code information from partially scanned segments | |
US20070071320A1 (en) | Detection method of two-dimensional code, detection device for the same, and storage medium storing detection program for the same | |
JPH03204790A (ja) | 部分走査からバーコード記号を復号する方法 | |
US6247646B1 (en) | Bar code reader, and bar code reading method | |
EP0943132B1 (en) | Method and apparatus for decoding bar code symbols using ratio analysis of module size | |
US5537431A (en) | Method and apparatus for bar code reading and decoding | |
EP0653721A2 (en) | Digitizer for bar code reader | |
US6343742B2 (en) | Bar code reader and bar code reading method | |
US6206286B1 (en) | Bar code reader | |
JPH09161001A (ja) | バーコード読取装置 | |
KR100308415B1 (ko) | 바코드판독장치,바코드판독방법및컴퓨터판독가능매체 | |
JP2003036416A (ja) | バーコード読取装置 | |
US5393968A (en) | Method and device for reading bar code | |
JPH09179926A (ja) | バーコード復調方法並びにバーコード読取装置 | |
US6070801A (en) | Bar code reader, bar code reading method and computer readable medium | |
JP3083464B2 (ja) | バーコード検出装置及び検出方法 | |
JP4154871B2 (ja) | バーコード読取方法およびバーコード読取装置 | |
JPH07230522A (ja) | バーコード復調方法及び装置 | |
EP1117059B1 (en) | Bar code reader and bar code reading method | |
JP3472691B2 (ja) | バーコード読取装置及びバーコード読取方法 | |
JP2641991B2 (ja) | バーコード読取装置のデータ処理方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20040607 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20040713 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20040913 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20050105 |