説明

バーコードスキャナおよびその制御方法

【課題】 静電気などのノイズによってCPUに不正な割り込みが生じた場合においても確実にバーコードの二重読みを防止することができるバーコードスキャナおよびその制御方法を提供すること。
【解決手段】 フォトセンサがバーコードからの反射光を受光して出力する電気信号を2値化した後にバーコードを構成するバーおよびスペースの幅情報に変換する。次に、この幅情報をメモリに記憶し、バーコードを構成する全てのバーおよびスペースの幅情報が記憶され終えたことに応じて割込信号生成部が割込信号を出力する。この割込信号をCPUが受信したとき、逐次メモリからバー又はスペースの幅情報を読み出すと共に当該幅情報をメモリから消去する。そして、全ての幅情報を読み出した後、これらの幅情報をバーコード情報にデコードする。

【発明の詳細な説明】
【技術分野】
【0001】
この発明は、バーコードの読み取りに使用されるバーコードスキャナおよびその制御方法に関する。
【背景技術】
【0002】
従来、流通業などにおける物品の管理には、複数種の幅のバーとスペースとを組み合わせてなるバーコードが用いられている。バーコードは、専用のバーコードスキャナにより読み取られて上位機器にバーコード情報が入力され、情報処理される。一般的に、バーコードスキャナは、バーコードに赤外線などを照射して得られる反射光をフォトセンサにより認識してバーおよびスペースについての2値化されたデータを生成し、このデータを内部に備えたデコード用のFPGA(Field Programmable Gate Array)またはASIC(Application Specific Integrated Circuit)によりバーおよびスペースの幅情報に変換した後、上位機器で認識可能なバーコード情報にデコードしている。
【0003】
さて、バーコードをバーコードスキャナで読み取る際、長時間バーコードをバーコードスキャナから発せられる赤外線にかざすと、一旦スキャナが認識したバーコードを再度読み取る二重読みが発生することがある。たとえば小売店などでは、商品に付されたバーコードをバーコードスキャナで読み取ることでその商品の商品データを商品販売処理装置に入力し販売処理しているため、このような二重読みが発生すると、同一商品に対して二重に課金されるなどの不都合が生じる。
【0004】
上記二重読みの問題に対処するため、たとえば特許文献1に記載のバーコードデコーダの二重読み防止装置が提案されている。この二重読み防止装置は、バーコードから読み取ったデータをデータバッファに記憶し、新たに読み取ったデータとの一致/不一致を判断して、不一致であるとき若しくは予め設定した基準回数をスキャン回数が超えたときに新たに読み取ったデータを出力するように構成されている。
【特許文献1】特開平4−297969号公報
【発明の開示】
【発明が解決しようとする課題】
【0005】
ところで、上記デコーダ用のFPGAまたはASICでは、2値化されたデータから得られる幅情報を逐次的にメモリに記憶し、一つのバーコードを構成する全てのバーおよびスペースから幅情報を取得し終えた際にCPU(Central Processing Unit)へ所定の割込信号を発する。そして、この割込信号を検知したCPUが上記メモリから幅情報を取得して上位機器で認識可能なバーコード情報にデコードしている。
【0006】
しかしながら、CPUは、上記割込信号ではなく静電気が基盤上の回路パターン近傍で発生した際に生じるノイズなどの不正割込みによってもメモリから幅情報を取得してしまう。このようなCPUの誤読取が発生すると、メモリから既に読み取った幅情報を再度読み取るために二重読みが発生することとなる。また、上記特許文献1に記載の二重読み防止機能などでは、かかるCPUへの不正割込による二重読みに対処することができない。
【0007】
本発明は、上記のような事情に基づいてなされたものであり、その目的は、静電気などのノイズによってCPUに不正な割り込みが生じた場合においても確実にバーコードの二重読みを防止することができるバーコードスキャナおよびその制御方法を提供することである。
【課題を解決するための手段】
【0008】
本発明に係るバーコードスキャナは、受光したバーコードからの反射光を電気信号に変換して出力する受光手段と、この受光手段が出力した前記電気信号を前記バーコードを構成するバーおよびスペースに対応する信号に2値化する2値化手段と、この2値化手段が2値化した前記電気信号をバーコードを構成する各バーおよびスペースの幅情報に変換して出力する幅情報変換手段と、この幅情報変換手段が出力した前記幅情報を記憶する記憶手段と、この記憶手段に前記バーコードを構成する全てのバーおよびスペースの前記幅情報を記憶し終えたことに応じて割込信号を出力する割込み手段と、この割込み手段が出力した前記割込信号を受信したとき、前記記憶手段から前記幅情報を読み出す読出制御手段と、この読出制御手段が読み出した前記幅情報を前記記憶手段から消去する消去制御手段と、前記読出制御手段が読み出した前記幅情報をバーコード情報にデコードするデコード手段とを備えてなることを特徴としている。
【発明の効果】
【0009】
かかる手段を講じた本発明によれば、静電気などのノイズによってCPUに不正な割り込みが生じた場合においても確実にバーコードの二重読みを防止することができるバーコードスキャナおよびその制御方法を提供することができる。
【発明を実施するための最良の形態】
【0010】
以下、本発明を実施するための一実施の形態について、図面を参照しながら説明する。
図1は、本発明に係るバーコードスキャナ1の要部構成を示すブロック図である。バーコードスキャナ1は、制御主体であるCPU2、当該バーコードスキャナ1の動作に必要な制御プログラムからなるファームウェア3、光の明暗を検知してアナログ電気信号を出力するフォトセンサ4、アナログ信号をデジタル信号に変換するA/D変換回路5、所定の処理を実行するようにプログラムされたFPGA6およびPOS(Point Of Sales)端末などの外部機器8との接続に用いるUSB(登録商標)ポート7を備えている。
【0011】
上記フォトセンサ4は、図示しない光源から照射されるレーザ光が読み取り対象となるバーコード上を走査した際の反射光を受光し、バーコードを構成するバーおよびスペースの色彩の違いにより生ずる反射光の明暗に応じたアナログ電気信号をA/D変換回路5に出力する(受光手段)。A/D変換回路5は、入力された電気信号をバーコードのバー部分に相当する“0”とスペース部分に相当する“1”とからなるデータに2値化してFPGA6に出力する(2値化手段)。上記FPGA6は、入力された2値データからバーコードを構成する各バーおよびスペースの16bitの幅情報を生成し、所定のタイミングで割込信号をCPU2に出力する。そして、CPU2は、この割込信号を受けたときにFPGA6から幅情報を取得してバーコードの規格に応じたデコード処理を進行する。このようにしてデコードされたバーコード情報は、USBポート7を介して接続された外部機器8に出力される。
【0012】
図2は、FPGA6の要部構成を示すブロック図である。FPGA6は、2値データの入力を受けるビデオ信号入力部10、バーコードの読み取りを検出するバーコード検出部11、上記幅情報を記憶するメモリAおよびメモリB、これらメモリAおよびメモリBへの幅情報の書き込みおよび読み出しを制御するメモリコントロール部12、所定の情報を記憶するレジスタ13および割込信号を生成する割込信号生成部14を備えている。
【0013】
上記ビデオ信号入力部10は、上記2値データの“0”と“1”とのエッジを検出したときには、次にエッジが検出されるまでの時間を内蔵したタイマで測定し、測定したデータの“0”または“1”の種別と共に、測定した時間を16bit情報としてバーコード検出部11に出力する。すなわち、ビデオ信号入力部10は、A/D変換回路5が2値化した電気信号をバーコードを構成する各バーおよびスペースの幅情報に変換して出力する幅情報変換手段である。上記バーコード検出部11は、入力された16bit情報がバーコードのバーまたはスペースの幅情報であるか否かを判断し、幅情報であると判断されるときにはメモリコントロール部12にこの16bit情報を“0”または“1”の種別すなわちバーまたはスペースの種別と共に出力し、幅情報でないと判断されるときにはこの16bit情報を破棄する。幅情報の出力を受けたメモリコントロール部12は、当該幅情報をメモリAまたはメモリBのいずれか一方に書き込み、後にCPU2からの要求を受けた際に当該幅情報を読み出す。
【0014】
図3は、メモリAおよびメモリBに記憶されるデータの構成を示す模式図である。メモリAおよびメモリBには、各アドレスに対して一つの幅情報を記憶可能なメモリエリアが形成されている。このメモリエリアには、メモリコントロール部12の制御の下に幅情報の書き込みおよび読み出しが可能である。
【0015】
さて、メモリコントロール部12は、幅情報をメモリAまたはメモリBの一方から読み出している間に入力される他のバーコードの幅情報を他方のメモリに書き込むことができる。図4は、幅情報の読み出しおよび書き込みに使用されるメモリの切り換えを説明するための模式図である。メモリコントロール部12は、あるバーコードの幅情報をメモリAに書き込み終えた後(ST101)、メモリAからの幅情報の読み出しがあると、メモリBを幅情報の書き込み用に切り換える。このときメモリコントロール部12は、バーコード検出部11から他のバーコードの幅情報が入力されたときには、当該幅情報をメモリBに書き込む(ST102)。メモリAからの幅情報の読み出しおよびメモリBへの幅情報の書き込みが完了した後、メモリBからの幅情報の読み出しがあると、メモリAを幅情報の書き込み用に切り換える。このときメモリコントロール部12は、バーコード検出部11から他のバーコードの幅情報が入力されたときには、当該幅情報をメモリAに書き込む(ST103)。以降も同様にメモリAとメモリBとを適宜切り換えながら幅情報の書き込みおよび読み取りに使用する。このように、メモリAとメモリBとを適宜切り換えるメモリコントロール部12の処理は、メモリ切り換え制御手段を構成する。このようにメモリAとメモリBとを切り換え可能に構成することで、CPU2からの幅情報の読み取りが完了する前に入力される他のバーコードの幅情報を破棄することなく保存でき、バーコードを読み取る効率が向上する。
【0016】
次に、メモリAに幅情報が記憶される場合を例にとり、CPU2およびFPGA6で行われる処理を図5の流れ図を用いて具体的に説明する。なお、当該処理が行われるとき、レジスタ13にはカウンタiおよびカウンタNが形成される。
先ず、バーコード検出部11にてビデオ信号入力部10から入力される16bit情報がバーコードを構成するバーまたはスペースの幅情報であるか否かが判断される(ST201)。この処理はバー又はスペースの幅情報であると判断されるまで繰り返され(ST201のNo)、バーコードを検知したと判断されたときには(ST201のYes)、当該16bit情報がバーまたはスペースの種別と共に幅情報としてメモリコントロール部12に入力される。このとき、メモリコントロール部12は、レジスタ13に形成されたカウンタiを“1”に初期化するとともに当該幅情報のバーまたはスペースの種別を記憶する(ST202)。
【0017】
次に、メモリコントロール部12は、メモリAのアドレスiに当該幅情報を記憶し(ST203)、入力される幅情報が途切れたか否か、すなわちバーコードが途切れたか否かを判断する(ST204)。この判断は、たとえばタイマで幅情報が入力されたときからの経過時間を測定し、所定時間が過ぎても次の幅情報が入力されない場合に入力される幅情報が途切れたと判断するようにする。そして、入力される幅情報が途切れていないと判断されるときには(ST204のNo)、カウンタiをインクリメントし(ST205)、ST203の処理に戻って次に受信した幅情報をメモリAの次のアドレスiに書き込む。このように、メモリコントロール部12は、入力される幅情報をメモリAにアドレス順に記憶していく。
【0018】
一方、入力される幅情報が途切れたことをメモリコントロール部12が検知したときには(ST204のYes)、割込信号生成部14がCPU2に対して割込信号を出力する(ST206)。すなわち、割込信号生成部14は、メモリAにバーコードを構成する全てのバーおよびスペースの幅情報を記憶し終えたことに応じて割込信号を出力する割込み手段である。
【0019】
しかる後、CPU2は、レジスタ13に記憶されたカウンタiの値とST202の処理にて記憶した先頭の幅情報のバーまたはスペースの種別とを取得し(ST207)、カウンタNを“1”に初期化する(ST208)。このとき取得したカウンタiの値は、CPU2が取得すべき幅情報の数NmaxとしてCPU2の図示しないメモリエリアに記憶保持される。
【0020】
次に、CPU2は、FPGA6に幅情報の読み出しを要求する。この要求を受けてメモリコントロール部12は、メモリAのアドレスNに記憶された幅情報を読み出してCPU2に出力し(ST209)、メモリAのアドレスNに“0”を書き込む(ST210)。すなわち、CPU2がFPGA6に要求して幅情報を読み出すST9の処理は読出制御手段であり、メモリコントロール部12がメモリAから読み出した幅情報を消去するST10の処理は消去制御手段である。
【0021】
次に、CPU2は、カウンタNの値をレジスタ13から取得して、カウンタNの値が取得すべき幅情報の数Nmaxに達したか否かを判断する(ST211)。幅情報の数Nmaxに達していないと判断されるときには(ST211のNo)、カウンタNをインクリメントし(ST212)、再びメモリコントロール部12に幅情報の読み出しを要求する。
【0022】
一方、幅情報の数Nmaxに達したと判断されるときには(ST11のYes)、CPU2は、ST207の処理にて取得した先頭のバーまたはスペースの種別に基づいて読み出した各幅情報のバーまたはスペースの種別を特定し、予め保持したバーコードの規格情報と照合することでバーコード情報にデコードする(ST13)。すなわち、CPU2が実行するST13の処理はデコード手段である。デコードされたバーコード情報は、USBポート7を介して外部機器に出力されて当該読み取り処理が終了する。なお、メモリBに幅情報を書き込み、読み出す場合であっても同様にST201〜ST213の処理が実行される。
【0023】
以上説明したように、バーコードスキャナ1は、CPU2がメモリAまたはメモリBからバーコードの幅情報を取得する際、メモリコントロール部12がメモリAまたはメモリBの所定のアドレスに記憶された幅情報を読み取るとともにその幅情報を消去する。そのため、既に読み取られた後の幅情報が再度メモリAまたはメモリBから読み取られることはないので、静電気などのノイズによる不正な割込みが生じた場合においても確実にバーコードの二重読みを防止することができる。
【0024】
なお、この発明は前記実施形態そのままに限定されるものではなく、実施段階においては、その要旨を逸脱しない範囲内にて各構成要素を適宜変形して具体化することができる。
【0025】
例えば、上記実施形態においては、FPGA6を用いてバーコードスキャナ1を構成したがこれに限定されず、FPGA6に代えて、FPGA6と同様の処理を行うように設計されたASICなどを用いてもよい。
【0026】
また、CPU2がメモリAからバーコードの幅情報を取得する際、メモリコントロール部12がメモリAまたはメモリBの所定のアドレスに記憶された幅情報を読み取るとともにその幅情報を消去するように構成したが(ST209〜ST212)、メモリAまたはメモリBから一つのバーコードを構成する全てのバーおよびスペースの幅情報を読み取った後に全てのアドレスに記憶された幅情報を消去するようにしてもよい。このような処理構成とした場合であっても、CPU2への不正な割り込みが生じた際の二重読み防止が実現できる。
【0027】
また、FPGA6には、メモリAおよびメモリBに加えてより多数のメモリを搭載してメモリ切り換え手段により適宜幅情報の書き込みおよび読み取りに使用するようにしてもよい。例えば、メモリAおよびメモリBに加えてさらにメモリCを搭載し、メモリAに記憶された幅情報の読み出しがあったときにメモリBを幅情報の書き込み用に切り換え、さらにメモリAからの読み出しが完了する前にメモリBへの幅情報の書き込みが完了したときにはメモリCを幅情報の書き込み用に切り換える。このような構成とすることで、バーコードを読み取る効率をより向上させることができる。
【0028】
この他、前記実施形態に開示されている複数の構成要素を適宜組み合わせることにより種々の発明を形成することができる。例えば、実施形態に示される全体構成要素から幾つかの構成要素を削除してもよい。
【図面の簡単な説明】
【0029】
【図1】本発明の一実施形態におけるバーコードスキャナの要部構成を示すブロック図。
【図2】同実施形態におけるFPGAの要部構成を示すブロック図。
【図3】同実施形態におけるメモリに記憶されるデータの構成を示す模式図。
【図4】同実施形態におけるメモリの切り換えを説明するための模式図。
【図5】同実施形態においてCPUおよびFPGAで行われる処理の流れ図。
【符号の説明】
【0030】
A,B…メモリ、i,N…カウンタ、1…バーコードスキャナ、2…CPU、3…ファームウェア、4…フォトセンサ、5…A/D変換回路、6…FPGA、7…USBポート、8…外部機器、10…ビデオ信号入力部、11…バーコード検出部、12…メモリコントロール部、13…レジスタ、14…割込信号生成部

【特許請求の範囲】
【請求項1】
受光したバーコードからの反射光を電気信号に変換して出力する受光手段と、
この受光手段が出力した前記電気信号を前記バーコードを構成するバーおよびスペースに対応する信号に2値化する2値化手段と、
この2値化手段が2値化した前記電気信号をバーコードを構成する各バーおよびスペースの幅情報に変換して出力する幅情報変換手段と、
この幅情報変換手段が出力した前記幅情報を記憶する記憶手段と、
この記憶手段に前記バーコードを構成する全てのバーおよびスペースの前記幅情報を記憶し終えたことに応じて割込信号を出力する割込み手段と、
この割込み手段が出力した前記割込信号を受信したときに前記記憶手段から前記幅情報を読み出す読出制御手段と、
この読出制御手段が読み出した前記幅情報を前記記憶手段から消去する消去制御手段と、
前記読出制御手段が読み出した前記幅情報をバーコード情報にデコードするデコード手段と、
を備えてなることを特徴とするバーコードスキャナ。
【請求項2】
前記消去制御手段は、前記読出制御手段が前記記憶手段から一つのバー又はスペースの前記幅情報を読み出す度に前記記憶手段から当該幅情報を消去することを特徴とする請求項1に記載のバーコードスキャナ。
【請求項3】
前記幅情報変換手段、前記記憶手段および前記割込み手段がFPGAにより具現され、
前記読出制御手段は、前記割込信号を受信したときに前記FPGAに前記幅情報の読み出しを要求して前記幅情報を前記記憶手段から読み出させ、この幅情報を前記消去制御手段が前記記憶手段から消去することを特徴とする請求項1に記載のバーコードスキャナ。
【請求項4】
前記記憶手段を複数有し、
前記読出制御手段が特定の前記記憶手段から前記幅情報を読み出すに際して、前記幅情報変換手段が出力する前記幅情報を記憶するための前記記憶手段を当該特定の前記記憶手段から他の前記記憶手段に切り換えるメモリ切り換え制御手段をさらに備えてなることを特徴とする請求項1に記載のバーコードスキャナ。
【請求項5】
受光したバーコードからの反射光を電気信号に変換して出力する受光ステップと、
出力された前記電気信号を前記バーコードを構成するバーおよびスペースに対応する信号に2値化する2値化ステップと、
2値化された前記電気信号をバーコードを構成する各バーおよびスペースの幅情報に変換して出力する幅情報変換ステップと、
出力された前記幅情報を所定の記憶手段に記憶する記憶ステップと、
前記バーコードを構成する全てのバーおよびスペースの前記幅情報が前記記憶手段に記憶され終えたことに応じて割込信号を出力する割込みステップと、
出力された前記割込信号を制御手段が受信したとき、前記記憶手段から前記幅情報を読み出す読出ステップと、
読み出された前記幅情報を前記記憶手段から消去する消去ステップと、
前記読出ステップにて読み出された前記幅情報をバーコード情報にデコードするデコードステップと、
を備えてなることを特徴とするバーコードスキャナの制御方法。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate


【公開番号】特開2009−230283(P2009−230283A)
【公開日】平成21年10月8日(2009.10.8)
【国際特許分類】
【出願番号】特願2008−72519(P2008−72519)
【出願日】平成20年3月19日(2008.3.19)
【出願人】(000003562)東芝テック株式会社 (5,631)
【Fターム(参考)】