(57)【特許請求の範囲】
【請求項１】
光源から出射されたバーコード読取用の光を反射して外部のバーコードに照射するためのミラーを、回転軸を中心に双方向に振動させることにより、バーコード読取用の光を双方向に走査する光走査手段と、
該光走査手段が外部に出射した光の反射光を受光し、二値化信号に変換する二値化手段と、
前記ミラーの振動を検出して、光の走査方向の切換りタイミングに同期した走査同期信号を発生する走査同期信号発生手段と、
該走査同期信号発生手段からの走査同期信号に同期して前記二値化手段から出力された二値化信号に対してデコード処理を実行することにより、バーコードを読取るデコード手段と、
を備えたバーコード読取装置において、
前記デコード手段にてバーコードを正確に読取可能な読取有効期間を記憶する記憶手段と、
外部から入力される有効期間設定指令に従い、前記光走査手段を動作させる光走査制御手段と、
該光走査制御手段が前記光走査手段を動作させた際に、前記二値化手段及び走査同期信号発生手段から出力される二値化信号及び走査同期信号に基づき、前記光走査手段が光走査を行った各走査方向での二値化信号における隣り合うパルスの幅の比である隣接変化比を、光走査の加速度として算出する光走査加速度算出手段と、
該光走査加速度算出手段にて算出された加速度が予め設定された所定加速度以下となる区間を、夫々、当該バーコード読取装置における各光走査方向での読取有効期間として設定し、前記記憶手段に格納する読取有効期間設定手段と、
を設け、前記デコード手段が、前記記憶手段に記憶された読取有効期間内に前記二値化手段から出力された二値化信号に対してデコード処理を行うよう構成してなることを特徴とするバーコード読取装置。
【請求項２】
前記バーコード読取用の光を出射する光源を、前記走査同期信号から得られる前記各光走査方向毎に、前記記憶手段に記憶された対応する読取有効期間内にだけ点灯させる光源制御手段を設けたことを特徴とする請求項１に記載のバーコード読取装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
この発明は、バーコード読取用の光を出射させるミラーを、軸を中心に双方向に振動させることにより、光を双方向に走査させ、その反射光からバーコードに記録された情報を読取るバーコード読取装置に関する。
【０００２】
【従来の技術】
従来より、レーザダイオード等の発光手段から商品等に印刷又は貼付されているバーコードを光走査（スキャン）した光の反射光を受光素子に集光し、その受光素子にて光電変換して得た電気信号を明暗の何れかに対応する二値化信号に変換し、その二値化信号における明暗パターンに対してデコード処理を実行することによりバーコードとして記録された情報を読取るバーコード読取装置が知られている。この種のバーコード読取装置としては様々なものがあるが、単純化・小型化等を目的として、バーコードに照射するための光を出射させるミラーを振動させ、その振動により、一範囲（以下、「走査範囲」という。）内を双方向に光走査させる機構を持つバーコード読取装置が開発されている。
【０００３】
この種の装置を動作させると、その物品の表面の一線分（以下、「走査ライン」という。）上を双方向に光が走査することになる。この際、反射光を受光した受光素子の受光信号を二値化した二値化信号を得ると共に、ミラーの振動を検知して光の走査方向に同期した走査同期信号を発生する。そして、走査同期信号に同期して二値化信号を取込み、走査方向毎に二値化信号をデコードして、バーコードの情報を読取ることができる。
【０００４】
【発明が解決しようとする課題】
ところが、光走査するためにミラーを振動させていることから、走査範囲の両端付近においては、走査速度（光走査の速度）が極度に低くなり、二値化信号に変換する回路の特性により、反射光の明暗を二値化信号に変換できない。また、走査範囲の両端付近では、反射光を集光するための光学的構造に起因して、適切な集光を行うことができず、バーコードのパターンを二値化信号に変換することができない。そして、二値化信号に変換されなかった範囲は、バーコード周囲に予め形成された誤読取防止用の余白（所謂マージン）と誤認されてしまう。
【０００５】
例えば、図７（ａ）に示す様に、走査ラインがバーコードの一部の範囲としか重ならず、走査方向αに走査している途中から走査方向βに走査している途中までの間に亘ってバーコードを光走査した場合を考える。走査方向αに走査同期信号の「Ｈ」レベルが対応し、走査方向βには走査同期信号の「Ｌ」レベルが対応するものとする（図７（ｂ））と、この場合に、走査同期信号に同期して取込まれる二値化信号は、走査同期信号が「Ｈ」レベルである期間の途中から、「Ｌ」レベルである期間の途中まで途切れることがないものとなるはずである。ところが上記理由により、走査方向が逆転するタイミングの前後では、バーコードのパターンが二値化信号として出力されずに、「Ｌ」レベルとなる不感期間が生じ（図７（ｃ））、この「Ｌ」レベル部分がバーコードのマージンと誤認されてしまうのである。
【０００６】
このため、開始コードや終了コードを用いるコード体系（例えば、ＩＴＦコードやＣＯＤＡＢＡＲ）においては、バーコードのマージンと誤認された範囲の直前或いは直後に光走査されたパターンが、開始コードや終了コードと同じパターンであると、バーコードに記録された本来のデータ長よりも短いものとして、誤ったデコード（誤読）をしてしまう可能性がある。
【０００７】
また、バーコードのパターンを二値化信号として取り込むことができても、走査範囲の両端に近づくほど、レーザ光の走査速度の変動（即ち、光走査の加速度）が大きくなるので、印刷されたパターンを的確に反映した二値化信号が得られない。従って、この場合にも誤読をしてしまう可能性がある。つまり、レーザ光の走査範囲の内、正確なデコードが可能な範囲（以下、「有効範囲」という。）は限られているのである。
【０００８】
こうした誤読を防止するために、従来は、走査範囲の両端付近の一定範囲を走査している間（又は、走査同期信号の立上がり・立下がり前後の一定期間）の二値化信号を取込まないようにしたり、取込んでもデコードしないようにしたりしていた。しかし、有効範囲はバーコード読取装置間に個体差があり、走査範囲よりも有効範囲が大幅に狭い場合には、上記のような誤読を防止できないし、また、有効範囲が走査範囲と比べて大して狭くない場合には、正確にデコード可能な二値化信号をも捨ててしまうことになる。
【０００９】
本発明は、上記課題に鑑みなされたものであり、バーコード読取用の光を双方向に走査してバーコードを読み取るバーコード読取装置において、各光走査方向での走査期間中にバーコードを読取可能な有効範囲を、光学系のばらつき等に影響されることなく、正確に且つ最大範囲に設定できるようにすることを目的とする。
【００１０】
【課題を解決するための手段及び発明の効果】
かかる目的を達成するためになされた請求項１に記載のバーコード読取装置においては、外部から有効期間設定指令を入力すると、光走査制御手段が、光走査手段を動作させ、光走査加速度算出手段が、二値化手段及び走査同期信号発生手段から出力される二値化信号及び走査同期信号に基づき、光走査手段が光走査を行った各走査方向での二値化信号における隣り合うパルスの幅の比である隣接変化比を、光走査の加速度として算出する。すると、読取有効期間設定手段が、光走査加速度算出手段にて算出された加速度が予め設定された所定加速度以下となる区間を、夫々、当該バーコード読取装置における各光走査方向での読取有効期間として設定し、記憶手段に格納する。そして、バーコードの読取を行う際には、デコード手段が、記憶手段に記憶された読取有効期間内に二値化手段から出力された二値化信号に対してデコード処理を行うことにより、バーコードを読み取る。
【００１１】
つまり、双方向走査形のバーコード読取装置では、ミラーを回転軸を中心に振動させることにより光走査を行うことから、光走査の加速度は、各光走査方向での走査期間中、光走査方向の切り替わりタイミング付近で最も高くなり、光走査の中心付近で小さくなる。そして、バーコード読取装置は、光走査の加速度が小さく、光走査速度が安定した領域では、バーコードを読み取ることができるが、光走査速度が変化し、光走査の加速度が大きくなる領域では、誤読取を生じる。そこで、本発明では、各光走査方向での加速度を算出し、その加速度が所定加速度以下となる区間を、読取有効期間として設定するのである。
【００１２】
従って、本発明のバーコード読取装置によれば、例えば温度等の変化により、ミラーを振動させる振動系の特性が変動して有効範囲が変わっても、設定用バーコードを読み取らせることにより、読取有効期間を設定し直すことができ、常に誤読のない、高精度の読取を行うことができる。
【００１３】
なお、設定用バーコードとしては、例えば、同一幅のバーが等間隔に並べられたバーコード、特に、バー及びスペースの幅が等しいものが良く、更に、その幅を二値化手段の受光の分解能と同じ間隔とすると、高い精度で光の走査速度を検出できるので好ましい。また、これ以外の形状のバーコードであっても、一定の規則に従ってバー及びスペースの幅を設定したものであれば、その規則に従って光走査の速度を算出できるので、設定用バーコードとして使用可能である。
【００１８】
尚、請求項２に記載のように、バーコード読取装置に、光源制御手段を設け、バーコード読取用の光を出射する光源を、前記走査同期信号から得られる前記各光走査方向毎に、前記記憶手段に記憶された対応する読取有効期間内にだけ点灯させるようにすれば、光源の点灯時間を短くできるので、消費電力を低減できると共に、光源の寿命を延ばすこともできる。
【００１９】
【発明の実施の形態】
以下に、本発明の一実施例を図面と共に説明する。
図１は、一実施例としてのバーコード読取装置２（以下「スキャナ２」という。）の構成、主に内蔵された光学装置部４の構成を示す説明図である。スキャナ２は、レーザ光を外部に出射すると共にその反射光を受光する光学装置部４と、光学装置部４を動作させる電気回路部６とから構成されている。
【００２０】
図１に示す様に、本実施例のスキャナ２の光学装置部４は、バーコード読取用のレーザ光を出射するレーザダイオード８（即ち、光源）と、レーザダイオード８から出射され、微小ミラー１０にて反射されたレーザ光を、スキャナ２外部に出射させる走査ミラー１２と、スキャナ２外部に出射されたレーザ光の反射光を集光する集光ミラー１４と、集光ミラー１４により集光されたレーザ光を受光して電気信号に変換するフォトダイオード１６と、走査ミラー１２を支持すると共に支軸１８を中心として回転可能な支持部材２０と、走査ミラー１２及び支持部材２０を支軸１８を中心とした円周方向に振動させるための駆動コイル２２と、走査ミラー１２及び支持部材２０の振動を検知するための誘導コイル２４を備えている。
【００２１】
ここで、支持部材２０には図示しない板バネ（付勢手段）が当接されており、支持部材２０は、板バネの弾性力によって、所定位置（即ち、平衡位置）を中心として上記円周方向に振動可能とされている。即ち、支持部材２０が振動すると、支持部材２０により支持された走査ミラー１２も、上記の平衡位置を中心として上記円周方向に振動する。また、支持部材２０の駆動コイル２２近傍には、上記円周方向の互いに逆方向に、夫々Ｎ極及びＳ極が向けられた状態の磁石２６が設けられている。そのため、駆動コイル２２に電流が流されると、磁石２６付近の磁束密度が変化して、走査ミラー１２及び支持部材２０は上記平衡位置からずれ、その後駆動コイル２２の電流が遮断されると、平衡位置を中心とした振動を開始する。
【００２２】
誘導コイル２４は磁石２６の近傍に設けられている。誘導コイル２４には、磁石２６が図１において右回り（Ａ方向とする）に運動する場合と左回り（Ｂ方向とする）に運動する場合とで逆向きの誘導起電力が発生するので、磁石２６の振動は、誘導コイル２４に生じる誘導起電力の振動波形（以下、「誘導波形」ともいう。）として検出される。駆動コイル２２には、誘導コイル２４により検出された磁石２６の振動に同期して、電流が流され、磁石２６を減衰させることなく振動させる。また、誘導波形からは、後述する様に、走査ミラー１２の振動に同期した（即ち、走査ミラー１２の運動がＡ方向か、Ｂ方向かを示す）走査同期信号を生成される。尚、誘導コイル２４は、図１では説明を簡単にするために駆動コイル２２を挟んだ位置に示したが、実際の製品においては、空間を有効に利用すると共に磁石２６の動きを敏感に検知するため、駆動コイル２２と同一部分に導線を巻き付けて形成されている。
【００２３】
さて、この光学装置部４では、図１中の実線で示すように、レーザダイオード８からレーザ光が出射されると、微小ミラー１０を介して走査ミラー１２に入射し、更に走査ミラー１２にて反射されてスキャナ２外部に出射される。従って、走査ミラー１２が上述の様に駆動コイル２２により振動しているときにレーザダイオード８からレーザ光が出射されると、スキャナ２外部に出射されるレーザ光は、走査ミラー１２の振幅により決まる角度範囲内を双方向に走査することになる。このとき、レーザ光は、その出射方向に物品があれば、その物品の表面の一線分（走査ライン）上を往復運動するよう照射することになる。具体的には、走査ミラー１２がＡ方向に運動しているときは、レーザ光は物体の表面をα方向（走査方向α）に走査し、走査ミラー１２がＢ方向に運動しているときは、レーザ光は物体の表面をβ方向（走査方向β）に走査するのである。
【００２４】
このようにスキャナ２外部に出射されたレーザ光は、その出射方向に物品があれば、その表面にて様々な方向に反射されるが、その反射光の内、スキャナ２の走査ミラー１２に戻ってきた光（図１にて破線で示す）は、走査ミラー１２により集光ミラー１方向に反射され、更に集光ミラー１４により集光されてフォトダイオード１６により受光される。つまり、スキャナ２外部にレーザ光を出射させた際、その出射方向にある物品の表面でレーザ光が反射されると、その反射光の一部がフォトダイオード１６に入射するのである。そして、その反射光が、物品に付されたバーコードＢＣからのものであれば（即ち、走査ライン上にバーコードＢＣがあれば）、フォトダイオード１６からの出力レベルは、バーコードＢＣのバーの幅及び間隔に応じて変化し、フォトダイオード１６からの出力信号の変化パターンから、バーコードＢＣを読み取ることができる。
【００２５】
図２に示すように、電気回路部６は、様々な制御処理を行うＣＰＵ２８と、ＣＰＵ２８にて実行されるプログラム等を記憶したＲＯＭ３０と、読取有効期間の記憶やＣＰＵ２８の作業用領域に使用されるＲＡＭ３２と、ＣＰＵ２８からの制御信号を受けてレーザダイオード８を発光させるＬＤ駆動回路３４と、駆動コイル２２に電流を流して走査ミラー１２を振動させるコイル駆動回路３６と、磁石２６の振動（つまり、走査ミラー１２の振動）に伴って誘導コイル２４に発生する誘導波形からノイズを除去するフィルタ３８と、フィルタ３８を通過した誘導波形をコンパレートして、走査ミラー１２の振動に同期した走査同期信号を生成するコンパレータ４０と、受光によりフォトダイオード１６に発生する光起電力を増幅・二値化してＣＰＵ２８に入力する二値化回路４２と、ＣＰＵ２８に制御処理を開始させるための操作スイッチ（ＳＷ）４４と、当該スキャナ２に外部から様々なデータを入力するためのキー入力部４６とを備えている。なお、ＲＡＭ３２は、スキャナ２の電源遮断時等に、記憶しているデータを消失しないようにバッテリによりバックアップされている。
【００２６】
ここでコイル駆動回路３６には、ＣＰＵ２８からの制御信号と、フィルタ３８によりフィルタリングされた誘導波形とが入力される。ＣＰＵ２８からコイル駆動回路３６に制御信号が入力されると、コイル駆動回路３６は駆動コイル２２にパルス電圧を与えて、磁石２６の振動（即ち、走査ミラー１２の振動）を開始させる。この磁石２６の振動により誘導コイル２４に発生した誘導波形は、フィルタ３８を介して、コイル駆動回路３６に入力される。コイル駆動回路３６は、ＣＰＵ２８から制御信号が入力されない期間においても、フィルタ３８から入力される誘導波形に同期したパルス電圧を駆動コイル２２に与えて、磁石２６の振動を継続させる。
【００２７】
この様に構成されたスキャナ２を動作させて、図３（ａ）に示す様に、位置Ｘ１と位置Ｘ２との間をレーザ光で走査した場合、コンパレータ４０からＣＰＵ２８には、図３（ｂ）に示す様な走査同期信号が入力される。この走査同期信号は、レーザ光が位置Ｘ１にて走査方向β（位置Ｘ２から見て位置Ｘ１の方向）から走査方向α（位置Ｘ１から見て位置Ｘ２の方向）に折り返すのと略同時に立上がり、レーザ光が位置Ｘ２にて走査方向βから走査方向αに折り返すのと略同時に立ち下がる。ここで、レーザ光の折り返しのタイミングと走査同期信号の立上がり／立下がりのタイミングとが、必ずしも同時であると言えないのは、次の様な理由による。即ち、走査同期信号は、誘導コイル２４で発生する誘導波形を、コンパレータ４０により所定の基準電圧でコンパレートされて生成されるが、コンパレータ４０の個体差等により、基準電圧がスキャナ２毎に異なることが考えられるからである。
【００２８】
しかし、この様に両タイミングが同時でなくても、そのずれが微少であれば、走査同期信号の「Ｈ」レベルはレーザ光がα方向（位置Ｘ１から位置Ｘ２への方向）に走査されていることを示し、「Ｌ」レベルは、レーザ光がβ方向（位置Ｘ２から位置Ｘ１への方向）に走査されていることを示していると考えて良い。このとき、走査ライン（位置Ｘ１と位置Ｘ２とを結ぶ線分）上にバーコードＢＣがあれば、二値化回路４２からＣＰＵ２８には、そのバーコードＢＣのパターンに応じた二値化信号が入力される。本実施例では、二値化信号は、バーコードＢＣのバーにレーザ光が照射されている期間は「Ｈ」レベルとなり、バーにレーザ光が照射されていない期間（バーに挟まれたスペースにレーザ光が照射されている期間を含む。）は「Ｌ」レベルとなる。従って、例えば、図３（ａ）に示す様に、バーコードＢＣのバーがα方向に進むにつれて次第に太くなっている場合、レーザ光がα方向に走査されている期間においては、次第に「Ｈ」レベルの幅が広くなるような二値化信号が発生され、レーザ光がβ方向に走査されている期間においては、次第に「Ｈ」レベルの幅が狭くなるような二値化信号が発生される。ＣＰＵ２８は、この様に入力された走査同期信号を及び二値化信号に基づき、読み取るべきバーコードＢＣをデコードすることができる。
【００２９】
ところで、走査ミラー１２の振動は、板バネの弾性力に基いているので、基本的には単振動であり、走査ミラー１２の運動速度は振動の中心付近で最も速く、振動の両端に近付くにつれ遅くなり、両端では０となる。そのため、走査ミラー１２の振動により走査ライン上を双方向に走査されるレーザ光の走査速度も、走査ラインの中央付近で最も速く、走査ラインの両端に近づくほど遅くなり、両端では０となる。
【００３０】
さて、本実施例では、レーザ光の走査範囲の内、正確なデコードが可能な有効範囲を予め見積もっておく。有効範囲の見積もるには、走査同期信号を時間的基準として、二値化信号を正確にデコード可能な期間を算出すればよく、その期間内の二値化信号を取り込んでデコードするようにすれば、誤読することなく、バーコードＢＣに記録された情報を正確に読み取ることができる。
【００３１】
以下、こうした処理を実現するためにＣＰＵ２８が実行する処理を図４及び図５に基づき説明する。
図４に示す読取有効期間設定処理は、スキャナ２本体に設けられたキー入力部４６から、当該読取有効期間設定処理を実行させるための暗証番号が入力され、かつ操作スイッチ４４がＯＮされると起動される処理である。本装置の使用者はこの操作を行って、読取有効期間設定処理を起動して、バーコードシートに同一幅のバーが等間隔になるように形成した設定用バーコード（以下「等間隔振幅チャート」という。）をスキャンさせる（図５（ａ）参照）ことで、走査同期信号から得られる各走査方向毎に、光走査の加速度が予め定めた所定加速度以下である区間を読取有効期間として算出・設定する。各走査方向毎に、読取有効期間を設定するのは、上述の様に、走査方向の切替りタイミングと、走査同期信号の立上がり・立下がりタイミングとが必ずしも同時でないからである。
【００３２】
この読取有効期間設定処理が開始されると、まず、コイル駆動回路３６に制御信号を出力して走査ミラー１２の振動（駆動）を開始させる（ステップ１１０。以下「ステップ」を「Ｓ」と記す。）。また、ＬＤ駆動回路３４に制御信号を出力してレーザダイオード８からレーザ光を発光させる（Ｓ１２０）。その後、走査ミラー１２の振動が安定するのに必要な時間（所定時間）経過まで待機し（Ｓ１３０：「ＮＯ」）、所定時間経過したら（Ｓ１３０：「ＹＥＳ」）、コンパレータ４０から出力される走査同期信号の立上がりが検出されるまで待機する（Ｓ１４０：「ＮＯ」）。
【００３３】
走査同期信号の立上がりが検出されたら（Ｓ１４０：「ＹＥＳ」）、ＲＡＭ３２の第１領域（第１メモリ）に、二値化回路４２からの二値化信号を記憶する（Ｓ１５０）。この処理（Ｓ１５０）を走査同期信号の立ち下がりが検出されるまで（Ｓ１６０：「ＮＯ」）継続する。こうして、第１メモリには、走査方向αに対応する二値化信号が記録される。次に、走査同期信号の立ち下がりが検出されたら（Ｓ１６０：「ＹＥＳ」）、ＲＡＭ３２の第２領域（第２メモリ）に、二値化信号を記憶する（Ｓ１７０）。この処理（Ｓ１７０）は、再び走査同期信号の立上がりが検出されるまで（Ｓ１８０：「ＮＯ」）行われ、第２メモリには、走査方向βに対応する二値化信号が記録される。
【００３４】
以上のＳ１４０〜Ｓ１８０までの処理を図５を参照して説明する。レーザ光は、図５（ａ）の様に、位置Ｘ１と位置Ｘ２との間を双方向に走査されているものとする。走査同期信号は、レーザ光が位置Ｘ１にて走査方向βから走査方向αに折り返すのと略同時に立上がり、またレーザ光が位置Ｘ２にて走査方向αから走査方向βに折り返すのと略同時に立下がる。即ち、第１メモリには、走査同期信号が「Ｈ」レベルである期間に取り込まれた二値化信号が記録され、第２メモリには、走査同期信号が「Ｌ」レベルである期間に取り込まれた二値化信号が記録される（図５（ｂ）参照）。つまり、バーの幅が均一な等間隔振幅チャートからの反射光の明暗に対応する二値化信号のパルスの幅（「Ｈ」レベル部分の幅）は、走査速度を示すものであるから、第１及び第２メモリには、両走査方向夫々に走査速度が記録されることになる。
【００３５】
次に、夫々第１メモリ及び第２メモリに記録された二値化信号に基づき、時間に対する隣接変化比を計算する（Ｓ１９０）。ここで、隣接変化比とは、隣合うパルスの幅を大小比較して、小さい方の幅に対する大きい方の幅の比として計算されるものであり、走査速度の変動の大きさ、即ち光走査の加速度の大きさに相当するものである。図５（ｂ）に示す様に、二値化信号のパルス幅は、等間隔振幅チャートをスキャンしているにも拘わらず、走査ラインの両端に近づく程次第に広くなっており、このことは走査ラインの両端付近では走査速度が遅くなっていることを意味する。また、この第１及び第２メモリに記録された二値化信号には、不感期間に対応する「Ｌ」レベル部分も含まれている。
【００３６】
これを隣接変化比で表すと、まず走査同期信号の立上がりから所定時間まで（不感期間）は、パルスがないため算出されない。隣接変化比は、不感期間を過ぎて始めて算出され、初めは１より大きく、次第に減少して１に近付くが、再び大きくなって１から離れる。そして、不感期間になると再び算出できなくなる。走査同期信号の立下がり後も同様に、不感期間を過ぎてから算出され、初めは１より大きく、次第に減少して１に近付くが、再び大きくなって１から離れる。そして、不感期間になると再び算出されなくなる。
【００３７】
こうして算出（Ｓ１９０）された隣接変化比に基づき、走査同期信号の立上がりから、「隣接変化比が限界値ｎ以下である期間」（即ち、読取有効期間）の開始時期までの時間を第１読取開始タイミングＴｏｎ１として設定（ＲＡＭ３２に記憶）し（Ｓ２００）、「隣接変化比が限界値ｎ以下である期間」の終了時期までの時間を第１読取終了タイミングＴｏｆｆ１として設定する（Ｓ２１０）。そして、走査同期信号の立下がりから、「隣接変化比が限界値ｎ以下である期間」の開始時期までの時間を第２読取開始タイミングＴｏｎ２として設定し（Ｓ２２０）、「隣接変化比が限界値ｎ以下である期間」の終了時期までの時間を第２読取終了タイミングＴｏｆｆ２として設定する（Ｓ２３０）。その後、レーザダイオード８を消灯する（Ｓ２４０）と共に、走査ミラー１２の駆動を停止して（Ｓ２５０）、読取有効期間設定処理を終了する。
【００３８】
この様に読取有効期間設定処理では、走査同期信号が「Ｈ」レベルである期間及び「Ｌ」レベルである期間において、二値化回路４２が、正確にデコード可能な二値化信号を出力している期間（隣接変化比が限界値ｎ以下である期間）の開始・終了タイミングを算出している。すなわち、各走査方向毎に、光走査の加速度が予め定められた所定加速度以下となる区間を読取有効期間として設定しているのである。
【００３９】
図６に示すバーコード読取処理は、読取有効期間設定処理にて算出された各タイミングを用いて、実際にバーコードＢＣを読取るための処理であり、単に操作スイッチ４４が押されると起動される処理である。
バーコード読取処理が起動されると、まず、走査ミラー１２の振動駆動を開始する（Ｓ３１０）。その後、走査ミラー１２の振動が安定するのに必要な所定時間が経過するまで待機し（Ｓ３２０：「ＮＯ」）、所定時間経過したら（Ｓ３２０：「ＹＥＳ」）、コンパレータ４０から出力される走査同期信号の立上がりが検出されるのを待つ（Ｓ３３０：「ＮＯ」）。走査同期信号の立上がりが検出されたら（Ｓ３３０：「ＹＥＳ」）、タイマーをリセット（経過時間Ｔ＝０）すると共にスタートさせ（Ｓ３４０）、第１読取開始タイミングＴｏｎ１まで時間が経過する待つ（Ｓ３５０：「ＮＯ」）。経過時間Ｔが第１読取開始タイミングＴｏｎ１を過ぎたら（Ｓ３５０：「ＹＥＳ」）、「レーザダイオード８からのレーザ光の出射及び二値化回路４２からの二値化信号の取込み」を行う二値化信号取込処理を開始し（Ｓ３６０）、経過時間Ｔが第１読取終了タイミングＴｏｆｆ１を経過するまで（Ｓ３７０：「ＮＯ」）継続する。そして、経過時間Ｔが第１読取終了タイミングＴｏｆｆ１を経過したら（Ｓ３７０：「ＹＥＳ」）、二値化信号取込処理を終了する（Ｓ３８０）。
【００４０】
この様に、Ｓ３３０〜Ｓ３８０により、走査方向αに対応する二値化信号の取込みを行った後、次は、走査同期信号の立下がりが検出されるのを待つ（Ｓ３９０：「ＮＯ」）。走査同期信号の立下がりが検出されたら（Ｓ３９０：「ＹＥＳ」）、タイマーをリセット（経過時間Ｔ＝０）すると共にスタートさせ（Ｓ４００）、第２読取開始タイミングＴｏｎ２まで時間が経過する待つ（Ｓ４１０：「ＮＯ」）。経過時間Ｔが第２読取開始タイミングＴｏｎ２を過ぎたら（Ｓ４１０：「ＹＥＳ」）、二値化信号取込処理を開始し（Ｓ４２０）、経過時間Ｔが第２読取終了タイミングＴｏｆｆ２を経過するまで（Ｓ４３０：「ＮＯ」）継続する。そして、経過時間Ｔが第２読取終了タイミングＴｏｆｆ２を経過したら（Ｓ４３０：「ＹＥＳ」）、二値化信号取込処理を終了する（Ｓ４４０）。こうして走査同期信号に同期して取込んだ二値化信号に基づき、デコード処理が実行され、バーコードが読取られる。
【００４１】
さて、Ｓ３９０〜Ｓ４４０により、走査方向βに対応する二値化信号の取込みを行った後、操作スイッチ４４がＯＮ状態であるか否かを判断し、ＯＮ状態であれば（Ｓ４５０：「ＹＥＳ」）、Ｓ３３０に戻り、二値化信号の取込みを再び行う（Ｓ３３０〜Ｓ４４０）。一方、操作スイッチ４４がＯＮでなければ、コイル駆動回路３６に制御信号を送り、走査ミラー１２の振動を停止させた（Ｓ４６０）後、バーコード読取処理を終了する。
【００４２】
この様に、本実施例のスキャナ２によれば、設定用バーコードを光走査することにより読取有効期間を設定するようにしていることから、正確にデコード可能な二値化信号にのみデコード処理を実行して、バーコードの読取を行うことができる。その結果、誤読を防止して、正確にバーコードに記録された情報を読み取ることができる。
【００４３】
また、設定用バーコードを光走査することにより読取有効期間を設定する機能を内蔵しているので、適時、読取有効期間を設定でき、いつでも正確なバーコードの読取を行うことができる。
また、読取有効期間に出力された二値化信号のみを取込んでいることから、メモリ資源、即ちＲＡＭ３２を効率的に使用できる。
【００４４】
また、読取有効期間にのみレーザダイオード８を点灯するようにしているから、レーザダイオード８の消費電力を低減できると共に、レーザダイオード８の寿命を延ばすことができる。
尚、本実施例において、レーザダイオード８がバーコード読取用の光を出射する光源に相当し、走査ミラー１２が光を反射してバーコードに照射するミラーに相当し、支軸１８、支持部材２０、磁石２６、駆動コイル２２、コイル駆動回路３６及びＳ３１０の処理が光走査手段を構成し、フォトダイオード１６及び二値化回路４２が二値化手段に相当し、支軸１８、支持部材２０、磁石２６、誘導コイル２４、フィルタ３８及びコンパレータ４０が走査同期信号発生手段に相当し、Ｓ３３０〜Ｓ４４０の処理がデコード手段及び光源制御手段に相当する。Ｓ１１０およびＳ１２０の処理が光走査制御手段に相当し、Ｓ１４０〜Ｓ１９０の処理が光走査加速度算出手段に相当し、Ｓ２００〜Ｓ２３０の処理が読取有効期間設定手段に相当する。また、ＲＡＭ３２が記憶手段に相当する。
【００４５】
以上、本発明の一実施例について説明したが、本発明は上記実施例に限定される物ではなく、種々の態様を取ることができる。
【００４６】
例えば、上記実施例では、読取有効期間をＲＡＭ３２に記憶させたが、電気的に内容の書き換えが可能なＥＥＰＲＯＭその他のフラッシュメモリ等に記憶させるようにしてもよい。
また、本実施例では、走査ミラー１２を振動させて双方向に光走査するものとしてバーコード読取装置２の説明を行ったが、これに限らず、走査ミラー１２が一方向に振動しているときのみに光源を点灯させて、バーコードを読取るバーコード読取装置であっても良い。
【図面の簡単な説明】
【図１】  実施例のスキャナの光学装置部の構成を示す説明図である。
【図２】  実施例のスキャナの電気的構成を示すブロック図である
【図３】  実施例のスキャナの光走査動作を示す説明図である。
【図４】  実施例のスキャナで実行される読取有効期間決定処理を示すフローチャートである。
【図５】  読取有効期間の設定方法を示す説明図である。
【図６】  実施例のスキャナで実行されるバーコード読取処理を示すフローチャートである。
【図７】  従来の問題点を説明するための説明図である。
【符号の説明】
２…バーコード読取装置（スキャナ）、４…光学装置部、６…電気回路部、８…レーザダイオード、１２…走査ミラー、１４…集光ミラー、１６…フォトダイオード、１８…支軸、２０…支持部材、２２…駆動コイル、２４…誘導コイル、２６…磁石、３４…ＬＤ駆動回路、３６…コイル駆動回路、３８…フィルタ、４０…コンパレータ、４２…二値化回路、ＢＣ…バーコード、Ｔｏｆｆ１…第１読取終了タイミング、Ｔｏｆｆ２…第２読取終了タイミング、Ｔｏｎ１…第１読取開始タイミング、Ｔｏｎ２…第２読取開始タイミング。
【図１】
0004099854.tif 000002
【図２】
0004099854.tif 000003
【図３】
0004099854.tif 000004
【図４】
0004099854.tif 000005
【図５】
0004099854.tif 000006
【図６】
0004099854.tif 000007
【図７】
0004099854.tif 000008