(57)【要約】【課題】  静電気などのノイズによってＣＰＵに不正な割り込みが生じた場合においても確実にバーコードの二重読みを防止することができるバーコードスキャナおよびその制御方法を提供すること。【解決手段】  フォトセンサがバーコードからの反射光を受光して出力する電気信号を２値化した後にバーコードを構成するバーおよびスペースの幅情報に変換する。次に、この幅情報をメモリに記憶し、バーコードを構成する全てのバーおよびスペースの幅情報が記憶され終えたことに応じて割込信号生成部が割込信号を出力する。この割込信号をＣＰＵが受信したとき、逐次メモリからバー又はスペースの幅情報を読み出すと共に当該幅情報をメモリから消去する。そして、全ての幅情報を読み出した後、これらの幅情報をバーコード情報にデコードする。【選択図】    図５
2009230283.tif 000002
【特許請求の範囲】
【請求項１】
受光したバーコードからの反射光を電気信号に変換して出力する受光手段と、
この受光手段が出力した前記電気信号を前記バーコードを構成するバーおよびスペースに対応する信号に２値化する２値化手段と、
この２値化手段が２値化した前記電気信号をバーコードを構成する各バーおよびスペースの幅情報に変換して出力する幅情報変換手段と、
この幅情報変換手段が出力した前記幅情報を記憶する記憶手段と、
この記憶手段に前記バーコードを構成する全てのバーおよびスペースの前記幅情報を記憶し終えたことに応じて割込信号を出力する割込み手段と、
この割込み手段が出力した前記割込信号を受信したときに前記記憶手段から前記幅情報を読み出す読出制御手段と、
この読出制御手段が読み出した前記幅情報を前記記憶手段から消去する消去制御手段と、
前記読出制御手段が読み出した前記幅情報をバーコード情報にデコードするデコード手段と、
を備えてなることを特徴とするバーコードスキャナ。
【請求項２】
前記消去制御手段は、前記読出制御手段が前記記憶手段から一つのバー又はスペースの前記幅情報を読み出す度に前記記憶手段から当該幅情報を消去することを特徴とする請求項１に記載のバーコードスキャナ。
【請求項３】
前記幅情報変換手段、前記記憶手段および前記割込み手段がＦＰＧＡにより具現され、
前記読出制御手段は、前記割込信号を受信したときに前記ＦＰＧＡに前記幅情報の読み出しを要求して前記幅情報を前記記憶手段から読み出させ、この幅情報を前記消去制御手段が前記記憶手段から消去することを特徴とする請求項１に記載のバーコードスキャナ。
【請求項４】
前記記憶手段を複数有し、
前記読出制御手段が特定の前記記憶手段から前記幅情報を読み出すに際して、前記幅情報変換手段が出力する前記幅情報を記憶するための前記記憶手段を当該特定の前記記憶手段から他の前記記憶手段に切り換えるメモリ切り換え制御手段をさらに備えてなることを特徴とする請求項１に記載のバーコードスキャナ。
【請求項５】
受光したバーコードからの反射光を電気信号に変換して出力する受光ステップと、
出力された前記電気信号を前記バーコードを構成するバーおよびスペースに対応する信号に２値化する２値化ステップと、
２値化された前記電気信号をバーコードを構成する各バーおよびスペースの幅情報に変換して出力する幅情報変換ステップと、
出力された前記幅情報を所定の記憶手段に記憶する記憶ステップと、
前記バーコードを構成する全てのバーおよびスペースの前記幅情報が前記記憶手段に記憶され終えたことに応じて割込信号を出力する割込みステップと、
出力された前記割込信号を制御手段が受信したとき、前記記憶手段から前記幅情報を読み出す読出ステップと、
読み出された前記幅情報を前記記憶手段から消去する消去ステップと、
前記読出ステップにて読み出された前記幅情報をバーコード情報にデコードするデコードステップと、
を備えてなることを特徴とするバーコードスキャナの制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、バーコードの読み取りに使用されるバーコードスキャナおよびその制御方法に関する。
【背景技術】
【０００２】
従来、流通業などにおける物品の管理には、複数種の幅のバーとスペースとを組み合わせてなるバーコードが用いられている。バーコードは、専用のバーコードスキャナにより読み取られて上位機器にバーコード情報が入力され、情報処理される。一般的に、バーコードスキャナは、バーコードに赤外線などを照射して得られる反射光をフォトセンサにより認識してバーおよびスペースについての２値化されたデータを生成し、このデータを内部に備えたデコード用のＦＰＧＡ（Field Programmable Gate Array）またはＡＳＩＣ（Application Specific Integrated Circuit）によりバーおよびスペースの幅情報に変換した後、上位機器で認識可能なバーコード情報にデコードしている。
【０００３】
さて、バーコードをバーコードスキャナで読み取る際、長時間バーコードをバーコードスキャナから発せられる赤外線にかざすと、一旦スキャナが認識したバーコードを再度読み取る二重読みが発生することがある。たとえば小売店などでは、商品に付されたバーコードをバーコードスキャナで読み取ることでその商品の商品データを商品販売処理装置に入力し販売処理しているため、このような二重読みが発生すると、同一商品に対して二重に課金されるなどの不都合が生じる。
【０００４】
上記二重読みの問題に対処するため、たとえば特許文献１に記載のバーコードデコーダの二重読み防止装置が提案されている。この二重読み防止装置は、バーコードから読み取ったデータをデータバッファに記憶し、新たに読み取ったデータとの一致／不一致を判断して、不一致であるとき若しくは予め設定した基準回数をスキャン回数が超えたときに新たに読み取ったデータを出力するように構成されている。
【特許文献１】特開平４−２９７９６９号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
ところで、上記デコーダ用のＦＰＧＡまたはＡＳＩＣでは、２値化されたデータから得られる幅情報を逐次的にメモリに記憶し、一つのバーコードを構成する全てのバーおよびスペースから幅情報を取得し終えた際にＣＰＵ（Central Processing Unit）へ所定の割込信号を発する。そして、この割込信号を検知したＣＰＵが上記メモリから幅情報を取得して上位機器で認識可能なバーコード情報にデコードしている。
【０００６】
しかしながら、ＣＰＵは、上記割込信号ではなく静電気が基盤上の回路パターン近傍で発生した際に生じるノイズなどの不正割込みによってもメモリから幅情報を取得してしまう。このようなＣＰＵの誤読取が発生すると、メモリから既に読み取った幅情報を再度読み取るために二重読みが発生することとなる。また、上記特許文献１に記載の二重読み防止機能などでは、かかるＣＰＵへの不正割込による二重読みに対処することができない。
【０００７】
本発明は、上記のような事情に基づいてなされたものであり、その目的は、静電気などのノイズによってＣＰＵに不正な割り込みが生じた場合においても確実にバーコードの二重読みを防止することができるバーコードスキャナおよびその制御方法を提供することである。
【課題を解決するための手段】
【０００８】
本発明に係るバーコードスキャナは、受光したバーコードからの反射光を電気信号に変換して出力する受光手段と、この受光手段が出力した前記電気信号を前記バーコードを構成するバーおよびスペースに対応する信号に２値化する２値化手段と、この２値化手段が２値化した前記電気信号をバーコードを構成する各バーおよびスペースの幅情報に変換して出力する幅情報変換手段と、この幅情報変換手段が出力した前記幅情報を記憶する記憶手段と、この記憶手段に前記バーコードを構成する全てのバーおよびスペースの前記幅情報を記憶し終えたことに応じて割込信号を出力する割込み手段と、この割込み手段が出力した前記割込信号を受信したとき、前記記憶手段から前記幅情報を読み出す読出制御手段と、この読出制御手段が読み出した前記幅情報を前記記憶手段から消去する消去制御手段と、前記読出制御手段が読み出した前記幅情報をバーコード情報にデコードするデコード手段とを備えてなることを特徴としている。
【発明の効果】
【０００９】
かかる手段を講じた本発明によれば、静電気などのノイズによってＣＰＵに不正な割り込みが生じた場合においても確実にバーコードの二重読みを防止することができるバーコードスキャナおよびその制御方法を提供することができる。
【発明を実施するための最良の形態】
【００１０】
以下、本発明を実施するための一実施の形態について、図面を参照しながら説明する。  
図１は、本発明に係るバーコードスキャナ１の要部構成を示すブロック図である。バーコードスキャナ１は、制御主体であるＣＰＵ２、当該バーコードスキャナ１の動作に必要な制御プログラムからなるファームウェア３、光の明暗を検知してアナログ電気信号を出力するフォトセンサ４、アナログ信号をデジタル信号に変換するＡ／Ｄ変換回路５、所定の処理を実行するようにプログラムされたＦＰＧＡ６およびＰＯＳ（Point Of Sales）端末などの外部機器８との接続に用いるＵＳＢ（登録商標）ポート７を備えている。
【００１１】
上記フォトセンサ４は、図示しない光源から照射されるレーザ光が読み取り対象となるバーコード上を走査した際の反射光を受光し、バーコードを構成するバーおよびスペースの色彩の違いにより生ずる反射光の明暗に応じたアナログ電気信号をＡ／Ｄ変換回路５に出力する（受光手段）。Ａ／Ｄ変換回路５は、入力された電気信号をバーコードのバー部分に相当する“０”とスペース部分に相当する“１”とからなるデータに２値化してＦＰＧＡ６に出力する（２値化手段）。上記ＦＰＧＡ６は、入力された２値データからバーコードを構成する各バーおよびスペースの１６ｂｉｔの幅情報を生成し、所定のタイミングで割込信号をＣＰＵ２に出力する。そして、ＣＰＵ２は、この割込信号を受けたときにＦＰＧＡ６から幅情報を取得してバーコードの規格に応じたデコード処理を進行する。このようにしてデコードされたバーコード情報は、ＵＳＢポート７を介して接続された外部機器８に出力される。
【００１２】
図２は、ＦＰＧＡ６の要部構成を示すブロック図である。ＦＰＧＡ６は、２値データの入力を受けるビデオ信号入力部１０、バーコードの読み取りを検出するバーコード検出部１１、上記幅情報を記憶するメモリＡおよびメモリＢ、これらメモリＡおよびメモリＢへの幅情報の書き込みおよび読み出しを制御するメモリコントロール部１２、所定の情報を記憶するレジスタ１３および割込信号を生成する割込信号生成部１４を備えている。
【００１３】
上記ビデオ信号入力部１０は、上記２値データの“０”と“１”とのエッジを検出したときには、次にエッジが検出されるまでの時間を内蔵したタイマで測定し、測定したデータの“０”または“１”の種別と共に、測定した時間を１６ｂｉｔ情報としてバーコード検出部１１に出力する。すなわち、ビデオ信号入力部１０は、Ａ／Ｄ変換回路５が２値化した電気信号をバーコードを構成する各バーおよびスペースの幅情報に変換して出力する幅情報変換手段である。上記バーコード検出部１１は、入力された１６ｂｉｔ情報がバーコードのバーまたはスペースの幅情報であるか否かを判断し、幅情報であると判断されるときにはメモリコントロール部１２にこの１６ｂｉｔ情報を“０”または“１”の種別すなわちバーまたはスペースの種別と共に出力し、幅情報でないと判断されるときにはこの１６ｂｉｔ情報を破棄する。幅情報の出力を受けたメモリコントロール部１２は、当該幅情報をメモリＡまたはメモリＢのいずれか一方に書き込み、後にＣＰＵ２からの要求を受けた際に当該幅情報を読み出す。
【００１４】
図３は、メモリＡおよびメモリＢに記憶されるデータの構成を示す模式図である。メモリＡおよびメモリＢには、各アドレスに対して一つの幅情報を記憶可能なメモリエリアが形成されている。このメモリエリアには、メモリコントロール部１２の制御の下に幅情報の書き込みおよび読み出しが可能である。
【００１５】
さて、メモリコントロール部１２は、幅情報をメモリＡまたはメモリＢの一方から読み出している間に入力される他のバーコードの幅情報を他方のメモリに書き込むことができる。図４は、幅情報の読み出しおよび書き込みに使用されるメモリの切り換えを説明するための模式図である。メモリコントロール部１２は、あるバーコードの幅情報をメモリＡに書き込み終えた後（ＳＴ１０１）、メモリＡからの幅情報の読み出しがあると、メモリＢを幅情報の書き込み用に切り換える。このときメモリコントロール部１２は、バーコード検出部１１から他のバーコードの幅情報が入力されたときには、当該幅情報をメモリＢに書き込む（ＳＴ１０２）。メモリＡからの幅情報の読み出しおよびメモリＢへの幅情報の書き込みが完了した後、メモリＢからの幅情報の読み出しがあると、メモリＡを幅情報の書き込み用に切り換える。このときメモリコントロール部１２は、バーコード検出部１１から他のバーコードの幅情報が入力されたときには、当該幅情報をメモリＡに書き込む（ＳＴ１０３）。以降も同様にメモリＡとメモリＢとを適宜切り換えながら幅情報の書き込みおよび読み取りに使用する。このように、メモリＡとメモリＢとを適宜切り換えるメモリコントロール部１２の処理は、メモリ切り換え制御手段を構成する。このようにメモリＡとメモリＢとを切り換え可能に構成することで、ＣＰＵ２からの幅情報の読み取りが完了する前に入力される他のバーコードの幅情報を破棄することなく保存でき、バーコードを読み取る効率が向上する。
【００１６】
次に、メモリＡに幅情報が記憶される場合を例にとり、ＣＰＵ２およびＦＰＧＡ６で行われる処理を図５の流れ図を用いて具体的に説明する。なお、当該処理が行われるとき、レジスタ１３にはカウンタｉおよびカウンタＮが形成される。  
先ず、バーコード検出部１１にてビデオ信号入力部１０から入力される１６ｂｉｔ情報がバーコードを構成するバーまたはスペースの幅情報であるか否かが判断される（ＳＴ２０１）。この処理はバー又はスペースの幅情報であると判断されるまで繰り返され（ＳＴ２０１のＮｏ）、バーコードを検知したと判断されたときには（ＳＴ２０１のＹｅｓ）、当該１６ｂｉｔ情報がバーまたはスペースの種別と共に幅情報としてメモリコントロール部１２に入力される。このとき、メモリコントロール部１２は、レジスタ１３に形成されたカウンタｉを“１”に初期化するとともに当該幅情報のバーまたはスペースの種別を記憶する（ＳＴ２０２）。
【００１７】
次に、メモリコントロール部１２は、メモリＡのアドレスｉに当該幅情報を記憶し（ＳＴ２０３）、入力される幅情報が途切れたか否か、すなわちバーコードが途切れたか否かを判断する（ＳＴ２０４）。この判断は、たとえばタイマで幅情報が入力されたときからの経過時間を測定し、所定時間が過ぎても次の幅情報が入力されない場合に入力される幅情報が途切れたと判断するようにする。そして、入力される幅情報が途切れていないと判断されるときには（ＳＴ２０４のＮｏ）、カウンタｉをインクリメントし（ＳＴ２０５）、ＳＴ２０３の処理に戻って次に受信した幅情報をメモリＡの次のアドレスｉに書き込む。このように、メモリコントロール部１２は、入力される幅情報をメモリＡにアドレス順に記憶していく。
【００１８】
一方、入力される幅情報が途切れたことをメモリコントロール部１２が検知したときには（ＳＴ２０４のＹｅｓ）、割込信号生成部１４がＣＰＵ２に対して割込信号を出力する（ＳＴ２０６）。すなわち、割込信号生成部１４は、メモリＡにバーコードを構成する全てのバーおよびスペースの幅情報を記憶し終えたことに応じて割込信号を出力する割込み手段である。
【００１９】
しかる後、ＣＰＵ２は、レジスタ１３に記憶されたカウンタｉの値とＳＴ２０２の処理にて記憶した先頭の幅情報のバーまたはスペースの種別とを取得し（ＳＴ２０７）、カウンタＮを“１”に初期化する（ＳＴ２０８）。このとき取得したカウンタｉの値は、ＣＰＵ２が取得すべき幅情報の数ＮmaxとしてＣＰＵ２の図示しないメモリエリアに記憶保持される。
【００２０】
次に、ＣＰＵ２は、ＦＰＧＡ６に幅情報の読み出しを要求する。この要求を受けてメモリコントロール部１２は、メモリＡのアドレスＮに記憶された幅情報を読み出してＣＰＵ２に出力し（ＳＴ２０９）、メモリＡのアドレスＮに“０”を書き込む（ＳＴ２１０）。すなわち、ＣＰＵ２がＦＰＧＡ６に要求して幅情報を読み出すＳＴ９の処理は読出制御手段であり、メモリコントロール部１２がメモリＡから読み出した幅情報を消去するＳＴ１０の処理は消去制御手段である。
【００２１】
次に、ＣＰＵ２は、カウンタＮの値をレジスタ１３から取得して、カウンタＮの値が取得すべき幅情報の数Ｎmaxに達したか否かを判断する（ＳＴ２１１）。幅情報の数Ｎmaxに達していないと判断されるときには（ＳＴ２１１のＮｏ）、カウンタＮをインクリメントし（ＳＴ２１２）、再びメモリコントロール部１２に幅情報の読み出しを要求する。
【００２２】
一方、幅情報の数Ｎmaxに達したと判断されるときには（ＳＴ１１のＹｅｓ）、ＣＰＵ２は、ＳＴ２０７の処理にて取得した先頭のバーまたはスペースの種別に基づいて読み出した各幅情報のバーまたはスペースの種別を特定し、予め保持したバーコードの規格情報と照合することでバーコード情報にデコードする（ＳＴ１３）。すなわち、ＣＰＵ２が実行するＳＴ１３の処理はデコード手段である。デコードされたバーコード情報は、ＵＳＢポート７を介して外部機器に出力されて当該読み取り処理が終了する。なお、メモリＢに幅情報を書き込み、読み出す場合であっても同様にＳＴ２０１〜ＳＴ２１３の処理が実行される。
【００２３】
以上説明したように、バーコードスキャナ１は、ＣＰＵ２がメモリＡまたはメモリＢからバーコードの幅情報を取得する際、メモリコントロール部１２がメモリＡまたはメモリＢの所定のアドレスに記憶された幅情報を読み取るとともにその幅情報を消去する。そのため、既に読み取られた後の幅情報が再度メモリＡまたはメモリＢから読み取られることはないので、静電気などのノイズによる不正な割込みが生じた場合においても確実にバーコードの二重読みを防止することができる。
【００２４】
なお、この発明は前記実施形態そのままに限定されるものではなく、実施段階においては、その要旨を逸脱しない範囲内にて各構成要素を適宜変形して具体化することができる。
【００２５】
例えば、上記実施形態においては、ＦＰＧＡ６を用いてバーコードスキャナ１を構成したがこれに限定されず、ＦＰＧＡ６に代えて、ＦＰＧＡ６と同様の処理を行うように設計されたＡＳＩＣなどを用いてもよい。
【００２６】
また、ＣＰＵ２がメモリＡからバーコードの幅情報を取得する際、メモリコントロール部１２がメモリＡまたはメモリＢの所定のアドレスに記憶された幅情報を読み取るとともにその幅情報を消去するように構成したが（ＳＴ２０９〜ＳＴ２１２）、メモリＡまたはメモリＢから一つのバーコードを構成する全てのバーおよびスペースの幅情報を読み取った後に全てのアドレスに記憶された幅情報を消去するようにしてもよい。このような処理構成とした場合であっても、ＣＰＵ２への不正な割り込みが生じた際の二重読み防止が実現できる。
【００２７】
また、ＦＰＧＡ６には、メモリＡおよびメモリＢに加えてより多数のメモリを搭載してメモリ切り換え手段により適宜幅情報の書き込みおよび読み取りに使用するようにしてもよい。例えば、メモリＡおよびメモリＢに加えてさらにメモリＣを搭載し、メモリＡに記憶された幅情報の読み出しがあったときにメモリＢを幅情報の書き込み用に切り換え、さらにメモリＡからの読み出しが完了する前にメモリＢへの幅情報の書き込みが完了したときにはメモリＣを幅情報の書き込み用に切り換える。このような構成とすることで、バーコードを読み取る効率をより向上させることができる。
【００２８】
この他、前記実施形態に開示されている複数の構成要素を適宜組み合わせることにより種々の発明を形成することができる。例えば、実施形態に示される全体構成要素から幾つかの構成要素を削除してもよい。
【図面の簡単な説明】
【００２９】
【図１】本発明の一実施形態におけるバーコードスキャナの要部構成を示すブロック図。
【図２】同実施形態におけるＦＰＧＡの要部構成を示すブロック図。
【図３】同実施形態におけるメモリに記憶されるデータの構成を示す模式図。
【図４】同実施形態におけるメモリの切り換えを説明するための模式図。
【図５】同実施形態においてＣＰＵおよびＦＰＧＡで行われる処理の流れ図。
【符号の説明】
【００３０】
Ａ，Ｂ…メモリ、ｉ，Ｎ…カウンタ、１…バーコードスキャナ、２…ＣＰＵ、３…ファームウェア、４…フォトセンサ、５…Ａ／Ｄ変換回路、６…ＦＰＧＡ、７…ＵＳＢポート、８…外部機器、１０…ビデオ信号入力部、１１…バーコード検出部、１２…メモリコントロール部、１３…レジスタ、１４…割込信号生成部
【図１】
2009230283.tif 000003
【図２】
2009230283.tif 000004
【図３】
2009230283.tif 000005
【図４】
2009230283.tif 000006
【図５】
2009230283.tif 000007