(57)【要約】  【課題】  本発明は、バーコードリーダの読取精度向上と読取時間の短縮を目的とする。  【解決手段】  バーコードリーダ１は、バーコード１７の情報を読み取るための読取光１８を発する発光部１１と、バーコード１１に対して一つの走査方向およびそれとは異なる他の走査方向となるように発光部１１により発せられた読取光１８を走査させる走査駆動部１２と、バーコード１７で反射された反射光１９を受光して電気信号に変換するセンサ部１３と、センサ部１３からの電気信号に基づいて情報を復号する復号部１４と、復号部１４で復号された情報を記憶する記憶部１５と、一つの走査方向への走査により得た復号結果と他の走査方向への走査により得た復号結果とに基づいて１つの復号結果を得る合成部１６とを備える。【選択図】  図１
2005250852.tif 000002
【特許請求の範囲】
【請求項１】
バーコードの情報を読み取るための読取光を発する発光部と、前記バーコードに対して一つの走査方向およびそれとは異なる他の走査方向となるように前記発光部により発せられた読取光を走査させる走査駆動部と、前記バーコードで反射された反射光を受光して電気信号に変換するセンサ部と、前記センサ部からの電気信号に基づいて情報を復号する復号部と、前記復号部で復号された情報を記憶する記憶部と、前記一つの走査方向への走査により得た復号結果と前記他の走査方向への走査により得た復号結果とに基づいて１つの復号結果を得る合成部とを備えたバーコードリーダ。
【請求項２】
一つの走査方向への走査により得た復号結果に不明なキャラクタが含まれている場合にのみ、この復号結果と他の走査方向への走査により得た復号結果とに基づいて１つの復号結果を得る請求項１記載のバーコードリーダ。
【請求項３】
一つの走査方向への走査により得た復号結果に不明なキャラクタが含まれており、かつ、他の走査方向への走査により得た復号結果にも不明なキャラクタが含まれている場合にのみ、これらの復号結果に基づいて１つの復号結果を得る請求項１記載のバーコードリーダ。
【請求項４】
不明なキャラクタは走査方向の開始側に位置する１字目を表すキャラクタである請求項２または３記載のバーコードリーダ。
【請求項５】
一つの走査方向とはバーコードの左側から右側への走査方向であり、他の走査方向とはバーコードの右側から左側への走査方向である請求項１から４のいずれか１項に記載のバーコードリーダ。
【請求項６】
発光部はレーザ光を出力する請求項１から５のいずれか１項に記載のバーコードリーダ。
【請求項７】
バーコードリーダは携帯可能であり、走査駆動部は読取光を略直線状に往復走査させる請求項１から６のいずれか１項に記載のバーコードリーダ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、バーコードなどの光学情報を読み取るバーコードリーダに関するものである。
【背景技術】
【０００２】
一般にバーコードリーダは、投光部から光学情報に読取光を照射し、光学情報からの反射光を受光部で受光し、受光部の出力を２値化データに変換し、２値化データを復号することにより読取結果を得るものである。
【０００３】
図１５は、従来のレーザ式のバーコードリーダの読取状態を示す図であり図１５（ａ）は読み取りの状態を示す上面図、同図（ｂ）及び（ｃ）は読取光の走査方向毎の復号状態を示す図である。
図１５（ａ）において、従来のバーコードリーダ９１は製品などに設けられたバーコード１７に対して、読取光をθの角度で扇状に照射する。
【０００４】
図１５（ｂ）はバーコードリーダ９１が読取光をバーコード１７の左から右方向に走査する状態を示しており、読取光はバーコード１７の表面を矢印の方向に走査される。なお、読取光の走査方向に従い、バーコード１７の各部を左から開始部、中間部、終了部と定義する。
【０００５】
図１５（ｃ）は読取光が右から左方向に走査する状態を示しており、読取光はバーコード１７の表面を矢印の方向に走査される。なお、読取光の走査方向に従い、バーコード１７の各部を右から開始部、中間部、終了部と定義する。
【０００６】
図１５（ｂ）及び図１５（ｃ）において、円で囲まれた部分は走査方向の開始側に位置するバーを示しており、この開始側に位置するバーは一般的に検出が不安定になりやすいことが知られている。これは、利得調整機能を有するバーコードリーダにおいて、読取光がバーコード１７が存在しない部分からバーコード１７に走査され、バーコードリーダ９１はまずバーコード１７の開始側に位置するバーを検出し、その検出結果に基づいて利得の調整を行うため、走査開始時の利得が適切でなかった場合にはバーコード１７の開始側に位置するバーの読取が不安定になりやすいためである。そして、この開始側に位置するバーの検出が不安定になった場合、バーコード１７の復号結果には不明なキャラクタが含まれることになり、復号結果全体としては異常と判断され廃棄されていた。なお、本明細書の説明においては、この不明なキャラクタを「？」として記す。
【０００７】
そこで、従来のバーコードリーダ９１は、読取回数を増やすことで不明なキャラクタを含まない復号結果の取得回数を増やすことで読取結果の信頼性を確保していた。
【０００８】
また、バーコードリーダの読取精度向上や読取時間短縮に関してはさまざまな手法が知られており、その方法を以下に示す。
【０００９】
バーコードリーダは、バーコードを読取光で走査し、その反射光からバー幅データを抽出する走査・抽出手段と、抽出されたバー幅データを復調して、復調データを作成する復調手段と、作成された復調データについてバーコードの再生が可能な組合せの有無又はその種別を判断する組合せ判断手段と、当該組合せに従い、復調データ又は復調データを合成する合成手段とを有し、複数の復調データの一部を組合せて１個の読取結果を獲得する方法が公開されている（例えば、特許文献１参照）。
【００１０】
また、受光部については、自動利得制御（ＡＧＣ回路）を備え、反射光量にバラツキが大きい場合でも安定して読み取りができるようにする方法が公開されている（例えば、特許文献２参照）。
【００１１】
また、発光部については、読取光の走査速度を第一の走査速度と第二の走査速度の２段階に切り換えて、広範囲の距離で広範囲の密度のバーコードを読み取りできるようにする方法が公開されている（例えば、特許文献３参照）。
【特許文献１】特開平８−３６６１９号公報
【特許文献２】特開２００３−２９５１０３号公報
【特許文献３】特開平２−５０８１４９号公報
【発明の開示】
【発明が解決しようとする課題】
【００１２】
しかしながら、上記複数の復調データの一部を組合せ１個の読取結果を獲得する方法では、複数のデータの解析や組み合わせの可否判定などが必要となり、処理が複雑になる。
【００１３】
また、自動利得制御（ＡＧＣ回路）を備える方法は、適切な利得に調整するまでにタイムラグが生じてしまい、また、バーコード全域で安定して読取できるように調整するのは難しい。また、走査方向の開始側に位置するバーのバー幅検出が不安定になる傾向があり、読み取りを完了するためには読取回数を増加する必要があり、読取完了までに時間がかかってしまう。
【００１４】
また、読取光の走査速度を変える方法では、走査機構等が複雑となり製造コストが増加してしまうという問題があった。
【００１５】
本発明は、上記課題に鑑み、読取光の走査方向を複数の方向から行うバーコードリーダにおいて、読取精度向上及び読取時間短縮を実現することを目的とする。
【課題を解決するための手段】
【００１６】
上記目的を達成するために、本発明のバーコードリーダは、バーコードの情報を読み取るための読取光を発する発光部と、前記バーコードに対して一つの走査方向およびそれとは異なる他の走査方向となるように前記発光部により発せられた読取光を走査させる走査駆動部と、前記バーコードで反射された反射光を受光して電気信号に変換するセンサ部と、前記センサ部からの電気信号に基づいて情報を復号する復号部と、前記復号部で復号された情報を記憶する記憶部と、前記一つの走査方向への走査により得た復号結果と前記他の走査方向への走査により得た復号結果とに基づいて１つの復号結果を得る合成部とを備えている。
【００１７】
この構成によれば、一つの走査方向への走査により得た復号結果と他の走査方向への走査により得た復号結果とに基づいて１つの復号結果を得ることができ、読取精度を向上させるとともに読取時間を短縮できる。
【００１８】
また、本発明のバーコードリーダは、一つの走査方向への走査により得た復号結果に不明なキャラクタが含まれている場合にのみ、この復号結果と他の走査方向への走査により得た復号結果とに基づいて１つの復号結果を得る。
【００１９】
また、本発明のバーコードリーダは、一つの走査方向への走査により得た復号結果に不明なキャラクタが含まれており、かつ、他の走査方向への走査により得た復号結果にも不明なキャラクタが含まれている場合にのみ、これらの復号結果に基づいて１つの復号結果を得る。
【００２０】
また、本発明のバーコードリーダは、不明なキャラクタを走査方向の開始側に位置する１字目を表すキャラクタとしたものである。
【００２１】
この構成によれば、不安定になり易い走査開始側の１文字目を不明なキャラクタとすることで、読取精度向上及び読取時間短縮を実現することができる。
【００２２】
また、本発明のバーコードリーダは、一つの走査方向とはバーコードの左側から右側への走査方向であり、他の走査方向とはバーコードの右側から左側への走査方向である。
【００２３】
この構成によれば、バーコードの両側から走査を行うことで、不安定になり易い走査開始側のキャラクタの情報を補間することができる。
【００２４】
また、本発明のバーコードリーダの発光部はレーザ光を出力するものである。
【発明の効果】
【００２５】
以上のように、本発明のバーコードリーダによれば、読取光の走査方向を複数の方向から行い、その各走査方向で得た復号結果を用いて正常な復号結果を得ることにより、読取精度向上及び読取時間短縮を実現することができる。
【発明を実施するための最良の形態】
【００２６】
本発明のバーコードリーダの一実施の形態について、図１から図１４を用いて説明する。
【００２７】
図１および図２は、バーコードリーダ１の構成を示すブロック図である。
【００２８】
図１において、１はバーコードリーダである。１１はバーコード１７を読み取るための読取光１８を発する発光部、１２はバーコード１７に対して一つの走査方向およびそれとは異なる他の走査方向となるように発光部１１により発せられた読取光１８を走査させる走査駆動部、１３はバーコード１７で反射された反射光１９を受光して電気信号に変換するセンサ部、１４はセンサ部１３からの電気信号に基づいて情報を復号する復号部、１５は復号部１４で復号された情報を記憶する記憶部、１６は一つの走査方向への走査により得た復号結果と他の走査方向への走査により得た復号結果とに基づいて１つの復号結果を得る合成部である。
【００２９】
図２は、バーコードリーダ１の具体的なハードウエア構成を示す図である。
【００３０】
図２において、１はバーコードリーダである。２１はバーコードリーダ１全体を制御する制御部であり、例えばＣＰＵを使用する。２２はバーコード１７を読み取るための読取光１８を発する発光部であり、例えば半導体レーザを使用する。２３は半導体レーザ２２が照射した読取光１８を外部に導出するとともに読取光１８の照射方向を変動させる走査駆動部であり、例えばミラーとモータを使用し、ミラーをモータで回転駆動させることにより読取光１８の照射方向を変動させるものである。なお、この走査駆動部２３の動作については図５を用いて後述する。
【００３１】
２４はバーコード１７において反射された反射光１９を受光する受光部であり、例えばフォトセンサを使用する。フォトセンサ２４は反射光を受光すると０または１の２値化信号を出力する。２５は、操作情報などを入力するキー入力部であり、例えばキーボードを使用する。２６はフォトセンサ２４が出力する２値化信号や復号部１４で復号された情報を記憶する記憶部であり、例えばＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）を使用する。
【００３２】
２７は操作案内や読取結果などを表示する表示部であり、例えば液晶ディスプレイを使用する。２８はバーコード１７を読み取る時に読み取り実行を指示するために押下する読取ボタンであり、例えばタップスイッチを使用する。そして、バーコードリーダ１の操作者は、バーコードリーダ１によりバーコード１７を読み取る際、読取ボタン２８を押下した状態でバーコード１７を読み取る位置に保持して読み取りを行う。なお、読取ボタン２８を押下することで読取処理が実行され、読取結果が表示部２７に出力される。
【００３３】
２９は外部機器に情報を送信するなど外部機器と通信するための通信部あり、通信方式としては例えば赤外線通信や無線通信を使用する。３０は制御プログラムなどを記憶するＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）である。３１はバーコード１７の読み取り完了やエラーの発生などを操作者に報知するためのブザーである。
また、図３は、バーコードリーダ１の外観を示す図であり、図３（ａ）は左側面図、図３（ｂ）は上面図、図３（ｃ）は右側面図である。
【００３４】
図３（ａ）において、バーコードリーダ１の下面には読取口４０が設けられており、半導体レーザ２２から照射された読取光１８は、読取口４０からバーコード１７に対して照射される。
【００３５】
また、図３（ｂ）において、バーコードリーダ１の右側面には読取ボタン２８が設けられており、操作者はバーコードリーダ１を右手で持ち、右手人差し指で読取ボタン２８を操作する。その他に、バーコードリーダ１の上面には、キー入力部２５、表示部２７が設けられている。なお、「確」キーは、操作者が読取結果が正常であると認識した場合に押下するものであり、「訂」キーは、読取結果が異常であり、再度読取を行いたい場合に押下するものである。
【００３６】
図４は、バーコードリーダ１の読取状態を示す図であり、図４（ａ）はバーコードリーダ１によりバーコード１７を読み取る状態を示す上面図、図４（ｂ）及び図４（ｃ）はバーコードリーダ１によるバーコード１７への読取光１８の走査方向を示す図であり、走査方向を矢印で示している。
【００３７】
図４（ａ）において、バーコードリーダ１は製品などに設けられたバーコード１７に対して、読取光１８をθの角度で扇状に、かつバーコード１７の右から左および左から右方向に略直線状に往復照射される。
【００３８】
図４（ｂ）はバーコードリーダ１が読取光１８をバーコード１７の左から右方向に走査する状態を示しており、読取光１８はバーコード１７の表面を矢印の方向に走査される。なお、読取光の走査方向に従い、バーコード１７の各部を左から開始部、中間部、終了部とする。
【００３９】
図４（ｃ）はバーコードリーダ１が読取光１８をバーコード１７の右から左方向に走査する状態を示しており、読取光１８はバーコード１７の表面を矢印の方向に走査される。なお、読取光１８の走査方向に従い、バーコード１７の各部を右から開始部、中間部、終了部と定義する。
【００４０】
図５は、読取光１８の照射状態を示す概略図であり、図５（ａ）は発光部としての半導体レーザ２２と走査駆動部を構成するミラー２３によるバーコード１７の読み取り状態を示す概略図であり、図５（ｂ）は、同期信号と読取光１８の走査方向を示すタイミングチャートである。
【００４１】
図５（ａ）において、走査駆動部は、ミラー２３とモータ（図示せず）とから構成されており、ミラー２３はモータの駆動力により回転中心のθの角度分左右に回転する。半導体レーザ２２が照射した読取光１８は、ミラー２３で反射され、開口部４０を経て左端（実線表記）から右端（点線表記）までθ分だけ外部に導出される。
【００４２】
図５（ｂ）において、第一の信号は読取光１８の走査方向を示すパルス信号であり、第一の信号（右）は、読取光１８がバーコード１７の左から右に走査する状態を示すパルス信号であり、第一の信号（左）は、読取光１８がバーコード１７の右から左に走査する状態を示すパルス信号である。
【００４３】
また、第二の信号は２値化データの取り込み開始を示すパルス信号であり、信号の立ちあがりと同期して２値化データの取り込みを開始する。
【００４４】
また、第三の信号（右）は読取光１８がバーコード１７の左から右に走査する状態での２値化データの取り込みを示す信号であり、第三の信号（左）は読取光１８がバーコード１７の右から左に走査する状態での２値化データの取り込みを示す信号である。なお、この取り込んだデータは、各々ＲＡＭ２６内の異なるエリアに記憶される。
【００４５】
また、第四の信号（右）は読取光１８がバーコード１７の左から右に走査する状態で取り込んだ２値化データの復号を示す信号であり、第四の信号（左）は読取光１８がバーコード１７の右から左に走査する状態で取り込んだ２値化データの復号を示す信号である。なお、この取り込んで復号した結果は、各々ＲＡＭ２６内の異なるエリアに記憶される。
【００４６】
上記のように、２値化データの取得は、左から右に走査する状態と右から左に走査する状態とで交互に行われ、また、２値化データの復号は左から右に走査する状態と右から左に走査する状態とで交互に行われる。また、左から右に走査する状態での２値化データの取得時に、右から左に走査する状態で取得した２値化データを復号し、右から左に走査する状態での２値化データの取得時に、左から右に走査する状態で取得した２値化データを復号する。
【００４７】
次にバーコードリーダ１の読み取り動作について、操作者が読取ボタン２８を押下してからバーコード１７の読み取りを完了し、読み取った情報を外部機器に出力するまでの動作について図６を用いて説明する。
【００４８】
図６は、バーコードリーダ１の読み取り動作を示すフローチャートである。
【００４９】
なお、図６を用いた説明中に、「右読取」、「左読取」、「合成処理」という表現を用いているが、これらについては図７から図９を用いて後に説明する。
【００５０】
読取処理を開始する（Ｓ１０１０）。
【００５１】
制御部２１はＲＡＭ２６の復号結果の保存エリアを初期化する（Ｓ１０２０）。なお、復号結果の保存エリアについては、図１０を用いて後に説明する。
【００５２】
制御部２１が読取ボタン２８の状態を確認し、状態がＯＮ（押下有）であればＳ１０４０に移行し、状態がＯＦＦ（押下無）であればＳ１１２０に移行して処理を終了する（Ｓ１０３０）。
【００５３】
次に、制御部２１は、右読取または左読取を実行する（Ｓ１０４０）。なお、バーコード１７の読み取りを開始したときに読取光１８の照射が左から右の状態であれば右読取を行い、読取光１８の照射が右から左の状態であれば左読取を行う。また、右読取の詳細については図７を用い、左読取の詳細については図８を用いて後に説明する。
【００５４】
右読取または左読取の復号結果を確認し、復号結果に不明なキャラクタがある場合にはＳ１０７０に移行し、復号結果に不明なキャラクタがない場合にはＳ１０８０に移行する（Ｓ１０６０）。
【００５５】
復号結果に不明なキャラクタがある場合には、合成処理を実行する（Ｓ１０７０）。なお、この合成処理については、図９を用いて後に説明する。
【００５６】
次に、制御部２１は、正常に復号が行われた復号結果を保存するＲＡＭ２６内の正常な復号結果を保存するエリアに保存されている内容に基づいて、正常読取が予め決められた回数（個数）、例えば３回保存されているか否かを確認し、保存されていればＳ１０９０に移行し、保存されていなければＳ１０３０に移行する（Ｓ１０８０）。
【００５７】
正常読取が予め決められた回数行われていた場合には、その読取結果を表示部２７に表示する（Ｓ１０９０）。
【００５８】
読取結果を表示した後、制御部２１は、キー入力部２５による入力の状態を確認し、「確」キーが押下されていればＳ１１１０に移行し、「訂」キーが押下されいればＳ１１２０に移行する（Ｓ１１００）。
【００５９】
「確」キーが押下されていれば、読取結果を通信部２９から外部機器に送信し（Ｓ１１１０）、読取処理を終了する（Ｓ１１２０）。
【００６０】
次に、上述した復号結果の保存エリアを有するＲＡＭ２６について、図１０を用いて説明する。図１０はＲＡＭ２６内の保存エリアを示す概念図である。
図１０（ａ）は正常に復号された復号結果を保存するエリアを示しており、Ｎ個の復号結果が保存される。本実施の形態のバーコードリーダ１では、新しい復号結果が得られたとき、先入れ先出し方式で古い復号結果をシフトさせ、新しい復号結果を第一の復号結果に保存する。そして、本実施の形態のバーコードリーダ１は、予め定められたＮ個の復号結果がすべて同じとなったとき読取完了と判断する。
【００６１】
また、図１０（ｂ）はバーコード１７を左から右に走査した右読取時の情報を保存するエリアを示しており、センサ部１３から出力された２値化データを保存する右２値化データエリアと、この２値化データを復号した結果を保存する右復号結果エリアからなる。
また、図１０（ｃ）はバーコード１７を右から左に走査した左読取時の情報を保存するエリアを示しており、センサ部１３から出力された２値化データを保存する左２値化データエリアと、この２値化データを復号した結果を保存する左復号結果エリアからなる。
【００６２】
また、図１０（ｄ）は右復号結果と左復号結果を合成して得た合成結果を保存するエリアを示している。
【００６３】
次に、上述した「右読取」、「左読取」、「合成処理」について図７から図９を用いて説明する。
【００６４】
まず、右読取について図７を用いて説明する。図７は右読取の処理の流れを示すフローチャートである。
【００６５】
右読取を開始する（Ｓ２０１０）。
【００６６】
制御部２１は、記憶部であるＲＡＭ２６内の右復号結果（バーコード１７を左から右に走査したときに取得した２値化データの復号結果）と右２値化データ（バーコード１７を左から右に走査したときに取得した２値化データ）を保存する保存エリアを初期化する（Ｓ２０２０）。
【００６７】
次に、図５（ｂ）タイミングチャートに示す第二の同期信号を確認し、信号の立ち上がりを確認したときＳ２０４０に移行して２値化データの取得を開始し、確認できないときはＳ２０３０を再度実行する（Ｓ２０３０）。２値化データの取り込みについては、図４（ｂ）に示すように、読取光１８がバーコード１７上を左から右に走査するのと同期してフォトセンサ２４から２値化データを取り込み、右２値化データの保存エリアにアドレスの先頭から昇順に記憶する（Ｓ２０４０）。
【００６８】
次に、制御部２１は、右２値化データの保存エリアから２値化データを読み込み、バーコード１７の終了部の１キャラクタを復号する（Ｓ２０５０）。なお、復号については、２値化データから１キャラクタ分の白バー及び黒バーを抽出し、これらの幅をカウントし、カウント値からコード種別を判定し、そのコード種別に対応する文字コードに変換する。また、開始部及び中間部についても、基本的に同じ方法で復号するものとする。
【００６９】
次に、終了部の１キャラクタが正常に復号できたときにはＳ２０７０に移行し、復号できなかったときにはＳ２１２０に移行して右読取を終了する（Ｓ２０６０）。なお、走査の終端部に位置している終了部は安定した読み取りが行われる可能性が高いので、これが正常に復号できなかった場合には開始部および中間部も正常に復号できない可能性も高く、従って、終了部が正常に復号できなかった場合には開始部および中間部の復号を行わずに読取を終了させることで、処理を短時間で終了することができる。
【００７０】
次に、制御部２１は、右２値化データの保存エリアから２値化データを読み込み、開始部の１キャラクタを復号する（Ｓ２０７０）。
【００７１】
さらに、制御部２１は、右２値化データの保存エリアから２値化データを読み込み、中間部を復号する（Ｓ２０８０）。
【００７２】
次に、制御部２１は、復号した開始部と中間部と終了部の結果を連結し、これをＲＡＭ２６内の右復号結果の保存エリアに保存する（Ｓ２０８５）。
【００７３】
制御部２１は、開始部と中間部と終了部の復号結果に基づいて、全てのキャラクタが正常に復号できたかを否かを確認し、全てのキャラクタが正常に復号できたことを確認した場合のみＳ２１００に移行し、正常に復号できなかった場合にはＳ２１１０に移行して右読取を終了する（Ｓ２０９０）。
【００７４】
全てのキャラクタが正常に復号された復号結果を、ＲＡＭ２６内に設けられた復号結果の保存エリアに保存し（Ｓ２１００）、右読取を終了する（Ｓ２１２０）。
【００７５】
次に、左読取について図８を用いて説明する。図８は左読取の処理の流れを示すフローチャートである。
【００７６】
左読取を開始する（Ｓ３０１０）。
【００７７】
制御部２１は、記憶部であるＲＡＭ２６の左復号結果（バーコード１７を右から左に走査したときに取得した２値化データの復号結果）と左２値化データ（バーコード１７を右から左に走査したときに取得した２値化データ）の保存エリアを初期化する（Ｓ３０２０）。
【００７８】
次に、図５（ｂ）タイミングチャートに示す第二の同期信号を確認し、信号の立ち上がりを確認したときＳ３０４０に移行して２値化データの取得を開始し、確認できないときはＳ３０３０を再度実行する（Ｓ３０３０）。２値化データの取り込みについては、図４（ｃ）に示すように、読取光１８がバーコード１７上を走査するのと同期してフォトセンサ２４から２値化データを取り込み、左２値化データの保存エリアにアドレスの終端から降順に記憶する（Ｓ３０４０）。
【００７９】
次に、制御部２１は、左２値化データの保存エリアから２値化データを読み込み、終了部の１キャラクタを復号する（Ｓ３０５０）。なお、復号については、２値化データから１キャラクタ分の白バー及び黒バーを抽出し、これらの幅をカウントし、カウント値からコード種別を判定し、そのコード種別に対応する文字コードに変換する。また、開始部及び中間部についても、基本的に同じ方法で復号する。
【００８０】
次に、終了部の１キャラクタが正常に復号できたときにはＳ３０７０に移行し、復号できないときにはＳ３１２０に移行して左読取を終了する（Ｓ３０６０）。なお、走査の終端部に位置している終了部は安定した読み取りが行われる可能性が高いので、これが正常に復号できなかった場合には開始部および中間部も正常に復号できない可能性も高く、従って、終了部が正常に復号できなかった場合には開始部および中間部の復号を行わずに読取を終了させることで、処理を短時間で終了することができる。
【００８１】
次に、制御部２１は、左２値化データの保存エリアから２値化データを読み込み、開始部の１キャラクタを復号する（Ｓ３０７０）。
【００８２】
さらに、制御部２１は、左２値化データの保存エリアから２値化データを読み込み、中間部を復号する（Ｓ３０８０）。
【００８３】
次に、制御部２１は、復号した開始部と中間部と終了部の結果を連結し、これをＲＡＭ２６内の左復号結果の保存エリアに保存する（Ｓ３０８５）。
【００８４】
制御部２１は、開始部と中間部と終了部の復号結果に基づいて、すべてのキャラクタが正常に復号できたかを否かを確認し、全てのキャラクタが正常に復号できたことを確認した場合のみＳ３１００に移行し、正常に復号できなかった場合にはＳ３１１０に移行して左読取を終了する（Ｓ３０９０）。
【００８５】
全てのキャラクタが正常に復号された復号結果を、ＲＡＭ２６内に設けられた復号結果の保存エリアに保存し（Ｓ３１００）、左読取を終了する（Ｓ３１２０）。
【００８６】
次に、合成処理について図９を用いて説明する。図９は合成処理の流れを示すフローチャートである。
【００８７】
制御部２１は、ＲＡＭ２６から今回の読み取りによる復号結果を取得する（Ｓ４０１０）。なお、今回の読み取りがバーコードの左から右への走査により取得したものであれば、ＲＡＭ２６の右復号結果を保存するエリアから復号結果を取得し、今回の読み取りがバーコードの右から左への走査により取得したものであれば、ＲＡＭ２６の左復号結果を保存するエリアから復号結果を取得する。
【００８８】
次に、制御部２１は、取得した復号結果（今回の復号結果）について、今回の復号結果が正常であるか否かを判定し（Ｓ４０２０）、正常であればＳ４０３０に移行し、正常でなければＳ４０４０に移行する。
【００８９】
復号結果の判定結果が正常の場合には、Ｓ４０３０において、この復号結果はＲＡＭ２６の正常な復号結果を保存するエリアに保存され、合成はされずに合成処理を終了する（Ｓ４０４０）。
【００９０】
一方、復号結果の判定結果が正常でない場合には、Ｓ４０５０において、制御部２１はＲＡＭ２６から前回の復号結果を取得する。ここで、今回の復号結果がバーコードの左から右への走査により取得したものである場合には今回の復号結果はＲＡＭ２６に保存されている右復号結果であり、この場合、前回の復号結果とは、ＲＡＭ２６に保存されている左復号結果のことである。なお、今回の復号結果が左復号結果であれば、前回の復号結果は右復号結果となる。
【００９１】
Ｓ４０５０において、制御部２１は、今回の復号結果と前回の復号結果を合成して１つの復号結果を得て、この合成した復号結果をＲＡＭ２６の正常な復号結果を保存するエリアに保存する（Ｓ４０３０）。
【００９２】
なお、今回の復号結果と前回の復号結果の状態の組み合わせとしては、今回の復号結果が異常であり前回の復号結果も異常である場合と、今回の復号結果が異常であり前回の復号結果は正常である場合との大きく２つがある。さらに詳しくは、今回が左読取で異常であり前回が右読取で異常である場合と、今回が左読取で異常であり前回が右読取で正常である場合と、今回が右読取で異常であり前回が左読取で異常であるの場合と、今回が右読取で異常であり前回が左読取で正常である場合の４つがある。この４つの状態の合成処理について、図１１から図１４を用いて説明する。
【００９３】
まず、図１１を用いて、今回の復号結果が開始部に不明なキャラクタを有する右復号結果であり、前回の復号結果が開始部に不明なキャラクタを有する左復号結果の場合の合成処理について説明する。
【００９４】
制御部２１は今回の復号結果と前回の復号結果とを比較し、今回の復号結果を基準としてみた中間部は一致しており、開始部と終了部は不一致であると判断する。この場合、制御部２１は、合成復号結果の開始部として前回の復号結果の「ａ」を切り出し、また、中間部としては、一致した「０１２３４５６７８９」を切り出し、終了部として今回の復号結果の終了部の「ｂ」を切り出し、これらを結合して「ａ０１２３４５６７８９ｂ」として合成の復号結果を得て、ＲＡＭ２６内の正常に復号が行われた結果を保存する復号結果の保存エリアに保存する。
【００９５】
また、図１２は、今回の復号結果が開始部に不明なキャラクタを有する左復号結果であり、前回の復号結果が開始部に不明なキャラクタを有する右復号結果の場合の合成処理を示すものであるが、図１１との違いは今回の復号結果が右復号結果であるか左復号結果であるかのみであり、処理の流れは図１１と同様なので詳細な説明を省略する。
【００９６】
以上により、一般的に開始部の復号結果は不安定になりやすく、バーコード１７に対する左右両方向の走査について両方向とも開始部が不安定になってしまうと、従来のバーコードリーダでは読み取りが完了しない、あるいは読み取り回数が増加してしまうという問題が生じてしまうが、図１１および図１２に示すように、開始部に不明なキャラクタを有する両方向の復号結果を合成して１つの正常な復号結果を得ることにより、読取の実現や読取速度の向上を図ることができる。
【００９７】
なお、復号結果を合成した後、この合成した復号結果をＲＡＭ２６内の正常に復号が行われた結果を保存する復号結果の保存エリアに保存するが、これを単に１回分としてではなく２回分の復号結果として保存するようにしてもよく、こうすることでバーコードリーダ１における読取完了を判断するＮ回一致となるまでの読み取り回数を低減することができる。
【００９８】
次に、図１３を用いて、今回の復号結果が開始部に不明なキャラクタを有する右復号結果であり、前回の復号結果が正常な復号結果であった左復号結果である場合の合成処理について説明する。
【００９９】
制御部２１は今回の復号結果と前回の復号結果とを比較し、今回の復号結果を基準としてみた場合の中間部および終了部は一致しており、開始部は不一致であると判断する。この場合、制御部２１は、合成復号結果の終了部として一致した「ｂ」を切り出し、また、中間部としては、一致した「０１２３４５６７８９」を切り出し、開始部として前回の復号結果の終了部の「ａ」を切り出し、これらを結合して「ａ０１２３４５６７８９ｂ」として合成の復号結果を得て、ＲＡＭ２６内の正常に復号が行われた結果を保存する復号結果の保存エリアに保存する。
【０１００】
また、図１４は、今回の復号結果が開始部に不明なキャラクタを有する左復号結果であり、前回の復号結果が正常な復号結果であった右復号結果の場合の合成処理を示すものであるが、図１３との違いは今回の復号結果が右復号結果であるか左復号結果であるかのみであり、処理の流れは図１３と同様なので詳細な説明を省略する。
【０１０１】
以上により、一般的にバーコード１７の開始部の復号結果は不安定になりやすく、バーコード１７に対する左右どちらかの走査について開始部が不安定になってしまうと、従来のバーコードリーダではその結果を破棄するので読み取りを完了させるために読み取り回数が増加してしまうが、図１３および図１４に示すように、開始部に不明なキャラクタを有する復号結果を前回の正常に復号された復号結果と合成して１つの正常な復号結果を得て正常な復号結果とすることにより、読取速度の向上を図ることができる。
【０１０２】
以上説明したように、本実施の形態のバーコードリーダ１によれば、読取光１８の走査をバーコード１７に対して左右から行い、不明なキャラクタを含む復号結果から正常な復号結果を合成することができるので、少ない読取回数で正確な読取結果を得ることができる。
【０１０３】
また、バーコードリーダ１の受光部については、自動利得制御の感度調整を不安定になりやすく調整時間もかかる開始部にあわせる必要はなく、バーコード１７の中間部と終了部を安定して読み取る程度に調整すればよいので、調整作業を簡素化することができる。
【０１０４】
なお、読取光１８の走査が必ずしもバーコード１７の一端から他端まで行われず、バーコード１７を横切る状態になる場合も考えられ、この場合には単に今回の復号結果と前回の復号結果を合成しても正常な復号結果を得ることができないこともありうるが、バーコードリーダ１を携帯型とすると、操作者がバーコード１７に対してバーコード１７の左端から右端まで略直線状に読取光を往復走査させる位置に携帯型バーコードリーダを保持することが容易となり、バーコード１７の一端から他端まで往復して走査することが容易になるので、単に今回の復号結果と前回の復号結果を合成することで容易に正常な復号結果を得ることができる。
【０１０５】
また本発明は、バーコード１７の読取機能を有するハンディーターミナルなどあらゆる情報端末に適応することができる。
【産業上の利用可能性】
【０１０６】
本発明のバーコードリーダは、読取精度を向上させるとともに読取時間を短縮させることができるので、店舗などで使用するバーコードリーダとして有用である。
【図面の簡単な説明】
【０１０７】
【図１】本実施の形態におけるバーコードリーダの構成を示すブロック図
【図２】本実施の形態におけるバーコードリーダの構成を示すブロック図
【図３】（ａ）本実施の形態におけるバーコードリーダの外観を示す左側面図（ｂ）本実施の形態におけるバーコードリーダの外観を示す上面図（ｃ）本実施の形態におけるバーコードリーダの外観を示す右側面図
【図４】（ａ）本実施の形態におけるバーコードリーダの読取状態を示す上面図（ｂ）本実施の形態における読取光の走査方向を示す図（ｃ）本実施の形態における読取光の走査方向を示す図
【図５】（ａ）本実施の形態における半導体レーザとミラーを用いた読取光の照射状態を示す上面図（ｂ）本実施の形態における同期信号と読取光の走査方向のタイミングチャート
【図６】本実施の形態におけるバーコードリーダの読取動作を示すフローチャート
【図７】本実施の形態における右読取時の処理を示すフローチャート
【図８】本実施の形態における左読取時の処理を示すフローチャート
【図９】本実施の形態における合成時の処理を示すフローチャート
【図１０】（ａ）本実施の形態における記憶部であるＲＡＭ内の正常に復号された復号結果を保存するエリアを示す図（ｂ）本実施の形態における記憶部であるＲＡＭ内の右読取時に取得したデータおよびその復号結果を保存するエリアを示す図（ｃ）本実施の形態における記憶部であるＲＡＭ内の左読取時に取得したデータおよびその復号結果を保存するエリアを示す図（ｄ）本実施の形態における記憶部であるＲＡＭ内の合成した復号結果を保存するエリアを示す図
【図１１】（ａ）本実施の形態における左右合成処理の例を示す図（ｂ）本実施の形態における左右合成処理の例を示す図（ｃ）本実施の形態における左右合成処理の例を示す図
【図１２】（ａ）本実施の形態における左右合成処理の例を示す図（ｂ）本実施の形態における左右合成処理の例を示す図（ｃ）本実施の形態における左右合成処理の例を示す図
【図１３】（ａ）本実施の形態における左合成処理の例を示す図（ｂ）本実施の形態における左合成処理の例を示す図（ｃ）本実施の形態における左合成処理の例を示す図
【図１４】（ａ）本実施の形態における右合成処理の例を示す図（ｂ）本実施の形態における右合成処理の例を示す図（ｃ）本実施の形態における右合成処理の例を示す図
【図１５】（ａ）従来のバーコードリーダの読取状態を示す上面図（ｂ）読取光の走査方向毎の復号状態を示す図（ｃ）読取光の走査方向毎の復号状態を示す図
【符号の説明】
【０１０８】
１  バーコードリーダ
１１  発光部
１２  走査駆動部
１３  センサ部
１４  復号部
１５  記憶部
１６  合成部
１７  バーコード
１８  読取光
１９  反射光
２１  制御部
２２  半導体レーザ
２３  ミラー
２４  フォトセンサ
２５  キー入力部
２６  ＲＡＭ
２７  表示部
２８  読取ボタン
２９  通信部
３０  ＲＯＭ
３１  ブザー
４０  読取口
９１  従来のバーコードリーダ
【図１】
2005250852.tif 000003
【図２】
2005250852.tif 000004
【図３】
2005250852.tif 000005
【図４】
2005250852.tif 000006
【図５】
2005250852.tif 000007
【図６】
2005250852.tif 000008
【図７】
2005250852.tif 000009
【図８】
2005250852.tif 000010
【図９】
2005250852.tif 000011
【図１０】
2005250852.tif 000012
【図１１】
2005250852.tif 000013
【図１２】
2005250852.tif 000014
【図１３】
2005250852.tif 000015
【図１４】
2005250852.tif 000016
【図１５】
2005250852.tif 000017