(57)【特許請求の範囲】
【請求項１】
光学的情報が撮像される光学的情報読取センサと、
この光学的情報読取センサを駆動する駆動手段と、
前記光学的情報読取センサからの出力を二値化する二値化手段と、
前記駆動手段を制御することにより前記光学的情報読取センサを露光させる露光処理を実行してから、前記光学的情報読取センサからの出力を前記二値化手段で二値化して取込む取込み処理を実行し、この取込み処理で取込んだ二値化データをデコードしながら前記露光処理及び前記取込み処理を並列処理する処理速度変更可能なマイクロプロセッサを備えた光学的情報読取装置において、
前記マイクロプロセッサは、前記デコード時間中に前記露光処理及び取込み処理を１回のみ実行すると共に、自己の動作速度からデコードに要する時間を予測し、この予測デコード時間から前記露光処理に要する露光時間及び前記取込み処理に要する取込み時間を差引いた調整時間を求め、前記デコード開始から前記調整時間が経過したところで前記露光処理及び前記取込み処理を順に実行し、さらにデコードしたデータ数が本来のデータ数よりも少ない場合は、前記予測デコード時間を長くすることを特徴とする光学的情報読取装置。
【請求項２】
前記マイクロプロセッサは、前記デコードを実行開始したときは前記デコード開始から前記調整時間が経過したところで前記露光処理及び前記取込み処理を順に実行するのに代えて、前記露光処理を実行してから前記取込み処理を前記調整時間だけ延長して実行することを特徴とする請求項１記載の光学的情報読取装置。
【請求項３】
前記マイクロプロセッサは、デコードに要した時間を記憶しておき予測デコード時間とすることを特徴とする請求項１または２記載の光学的情報読取装置。
【請求項４】
照明手段を設け、
前記マイクロプロセッサは、前記露光処理中は前記照明手段を駆動することを特徴とする請求項１ないし３の何れかに記載の光学的情報読取装置。
【請求項５】
前記光学的情報読取センサはラインセンサであることを特徴とする請求項１ないし４の何れかに記載の光学的情報読取装置。
【請求項６】
前記光学的情報読取センサは２次元センサであることを特徴とする請求項１ないし４の何れかに記載の光学的情報読取装置
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、処理速度変更可能なマイクロプロセッサを備えた光学的情報読取装置に関する。
【０００２】
【発明が解決しようとする課題】
近年、バーコードハンディターミナルとして、動作クロックの変更可能なマイクロプロセッサを搭載した製品が供給されており、動作クロックを変更することによりユーザの要求性能に合わせることができる。例えば、より高速処理を要求する場合は、動作クロックを高速に設定し、より長時間動作を要求する場合は、動作クロックを低速に設定する。また、デコード時間もマイクロプロセッサの動作クロックに従って変動し、動作クロックが速ければデコード時間は短く、遅ければ長くなる。このデコード時間は設定動作クロックとコード種によって最短時間が予測可能である。
【０００３】
図８は、従来の読取動作を示している。この図８において、マイクロプロセッサは、例えばラインセンサに撮像されたバーコードをデコードする際は、ラインセンサを露光させる露光処理とラインセンサからの出力を取込む取込み処理とを交互に実行しながら、取込んだデータをデコードするデコード処理を並列処理するようになっている。この場合、露光時間と取込み時間はラインセンサの仕様により決まるのに対して、デコード時間は上述したようにマイクロプロセッサの動作速度に応じて変動することから、デコード時間によっては図８に示すようにデコード時間内に複数の露光処理と取込み処理とを並列に実行することがある。このため、デコード時間内の最終の露光処理及び取込み処理（デコード直前の露光処理及び取込み処理）以外は無駄であり、それだけ消費電流の増加を伴う。
【０００４】
本発明は上記事情に鑑みてなされたものであり、その目的は、読取った光学的情報をデコードしながら次の読取りのための露光処理及び取込み処理を並列処理する処理速度可変なマイクロプロセッサを備えた構成において、無駄な露光処理及び取込み処理を実行してしまうことを防止できる光学的情報読取装置を提供することにある。
【０００５】
【課題を解決するための手段】
請求項１の発明によれば、マイクロプロセッサは、光学的情報を読取る場合は、駆動手段を制御することにより光学的情報読取センサを露光させる露光処理を実行してから、光学的情報読取センサからの出力を二値化手段で二値化して取込む取込み処理を実行し、その二値化データをデコードする。このとき、マイクロプロセッサは、光学的情報をデコードしながら露光処理及び取込処理を並列に実行する。この場合、露光時間及び取込時間は一定であるものの、デコード時間はマイクロプロセッサの動作速度に応じて変動する。このため、デコード時間中に露光処理及び取込処理を複数実行する場合があり、デコード時間中の最終の露光処理及び取込処理以外が無駄となる虞がある。
ここで、マイクロプロセッサは、デコード時間中に露光処理及び取込処理を１回のみ実行するので、露光処理及び取込処理を無駄に実行してしまうことはなく、消費電流を低減することができる。
【０００６】
また、マイクロプロセッサは、自己の動作速度からデコードに要する時間を予測し、この予測デコード時間から露光処理に要する露光時間及び取込み処理に要する取込み時間を差引いた調整時間を求める。この場合、デコード時間は、露光時間と取込み時間と調整時間とを加算した時間となるので、デコード開始から調整時間が経過したところで露光処理及び取込み処理を順に実行することにより、デコード時間中に露光処理及び取込処理を１回のみ実行することができる。さらに、マイクロプロセッサは、デコードしたデータ数が本来のデータ数よりも少ない場合は、使用者が読取りを行っていないと判断し、予測デコード時間を長くするので、読取間隔が長くなり、消費電流を低減することができる。
【０００７】
請求項２の発明によれば、マイクロプロセッサは、デコードを実行開始したときは露光処理を実行してから取込み処理を調整時間だけ延長して実行するので、デコード時間中に露光処理及び取込処理を１回のみ実行することができる。
【０００８】
請求項３の発明によれば、デコードに要した時間を記憶しておき予測デコード時間とするので、予測デコード時間が実際のデコード時間と異なっている場合であっても、デコード時間中に露光処理及び取込処理を１回のみ実行できるようになる。
【００１０】
請求項４の発明によれば、マイクロプロセッサは、露光処理中は照明手段を駆動するので、照明手段を使用する構成でありながら、消費電流を大きく抑制することができる。
【００１１】
【発明の実施の形態】
（第１の実施の形態）
以下、本発明をバーコードハンディターミナル（光学的情報読取センサに相当）に適用した第１の実施の形態を図１ないし図７に基づいて説明する。
バーコードハンディターミナル１はマイクロプロセッサ２を主体として構成されている。照明ＬＥＤ３は赤色発光ダイオードであり、マイクロプロセッサ２からの指令に応じて読取対象となるバーコードラベル４を均一に照明する。バーコードラベル４からの反射光はレンズ５により収束してラインセンサ６上に結像される。ラインセンサ（光学的情報読取センサに相当）６は、照明ＬＥＤ３の発光スペクトラム付近に分光感度を持つ多数のフォトダイオードを直線上に並べた一次元の白黒イメージセンサで、駆動回路（駆動手段に相当）７から与えられるシフトパルスとシフトクロックとにより駆動される。シフトパルスはラインセンサ６内部の蓄積電荷をシフトレジスタに転送するための信号であり、シフトパルスの間隔がラインセンサ走査の露光時間となる。シフトクロックはシフトレジスタからの電荷をセンサ出力として出力させるための信号である。つまり、ラインセンサ６によりバーコードを読むためには、露光時間と取込時間の２つの駆動サイクルが必要となる。
ラインセンサ６からの出力信号は二値化回路（二値化手段に相当）８により二値化され、マイクロプロセッサ２が取込むことによってバーコード情報にデコードされる。
【００１２】
キー９は、バーコード読取開始の起動タイミングや例えば日付時刻などを入力するために用いる。ブザー１０は、バーコード読取完了を知らせたり、電池電圧低下などの警告に用いる。ＬＣＤ１１は、ユーザへのガイダンスやバーコード読取データなどを表示する。通信ポート１２は、バーコードデータなどの蓄積されたデータをホストコンピュータへ転送するために用いる。メモリ１３は、バーコードハンディターミナル１を動作させるためのプログラムやデコードされたバーコードデータなどを蓄積する。電源回路１４は、電池１５からの電圧を各回路ブロック毎に昇圧した状態で供給する。
【００１３】
次に上記構成の作用について説明する。
ユーザがキー９のうちのトリガキーを操作すると、バーコードハンディターミナル１のマイクロプロセッサ２はバーコード情報の読取りを実行する。
図２は、バーコードハンディターミナル１のマイクロプロセッサ２による読取りルーチンを示している。この図２において、マイクロプロセッサ２は、まず、初期設定を行う（Ｓ１０１）。この初期設定では、後述の処理フラグ及び調整時間の初期値を設定する。この場合、処理フラグとして「露光」、調整時間としてデフォルト値を設定する。
次に、ラインセンサ６、駆動回路７、二値化回路８などに対し電源を投入する（Ｓ１０２）。
【００１４】
次に、ラインセンサ６に溜まっていた不要な電荷を吐き出させるために、駆動回路７からラインセンサ６に対してシフトパルス及びシフトクロックを発生させることによりイニシャル掃出しを行うと共にイニシャル掃出しに要する規定時間分のタイマ割込みを設定する（Ｓ１０３）。この場合、駆動回路７からラインセンサ６に対して与えられるシフトパルスは１パルス、シフトクロックはマルチバイブレータ発振の繰返しクロックであり、ラインセンサ６の感光部に蓄積された電荷がシフトパルスに応じてシフトレジスタに転送されると共に、このシフトレジスタに転送された電荷がシフトクロックに応じて外部に出力されることによりイニシャル掃出しが行われるようになっている（図７に示すイニシャル掃き出し）。
【００１５】
次に、マイクロプロセッサ２は、割込み待ちを行い（Ｓ１０４）、上述のステップＳ１０３によるタイマ割込みやユーザによるキー操作に対するキー割込みなどが発生するまで、このステップＳ１０４で待機する。そして，ステップＳ１０３で設定したイニシャル掃出しの規定時間となってタイマ割込みが発生したときは、タイマ割込処理を行う。
【００１６】
図３は、マイクロプロセッサ２によるタイマ割込み処理を示している。このタイマ割込み処理は、タイマ割込みが発生した際に実行する処理を決定するためのものである。図３において、マイクロプロセッサ２は、現在の処理フラグに応じてこれから行う処理に分岐する（Ｓ２０１）。最初は読取りルーチンのステップＳ１０１において「露光」に設定されていることから、露光処理を実行する（Ｓ２０２）。
【００１７】
図４はマイクロプロセッサ２による露光処理を示している。この露光処理は、前回の不要露光の掃出しを行うと共に、バーコードを読取るためにラインセンサ６に規定の露光時間で電荷を蓄積させるためのものである。図４において、マイクロプロセッサ２は、照明ＬＥＤ３をオンしてから（Ｓ３０１）、駆動回路７からシフトクロックを一旦停止した状態でシフトパルスを発生させる（Ｓ３０２）。これにより、ラインセンサ６の感光部に蓄積されている電荷がシフトレジスタに転送され、露光処理の開始となる。
【００１８】
次に、露光時間Ｘｍｓのタイマ割込みを設定し（Ｓ３０３）、駆動回路７からシフトクロックを発生させてから（Ｓ３０４）、次の処理である「取込み」を処理フラグに設定する（Ｓ３０５）。これにより、シフトレジスタに転送されている不要露光を掃出すことができる。
【００１９】
マイクロプロセッサ２は、露光処理が終了し、タイマ割込みが終了すると、図２に示す読取りルーチンにおいて、待機状態から読取り処理自体の終了判断の分岐を行う（Ｓ１０５）。終了する条件はデコードが完了した場合か、ユーザがトリガスイッチを離すなどで読取りを中断する場合で、終了しない場合は（Ｓ１０５：ＮＯ）、取込みデータが有るかを判断する（Ｓ１０６）。上述した不要露光の掃出し時にあっては、取込みデータはないので（Ｓ１０６：ＮＯ）、割込み待ちの待機状態となる（Ｓ１０４）。
【００２０】
そして、上述した露光処理において設定したタイマ割込みＸｍｓ時間が経過すると、割込みルーチンにおいて再びタイマ割込みが発生し、図３に示すタイマ割込み処理に移行する。このとき、処理フラグが「取込み」であることから、取込処理を行う（Ｓ２０３）。
【００２１】
図５は、マイクロプロセッサ２による取込み処理を示している。この取込み処理は前回露光処理で蓄積させた電荷を取込むためのものである。図５において、マイクロプロセッサ２は、照明ＬＥＤ３をオフしてから（Ｓ４０１）、シフトクロックを一旦停止した状態でシフトパルスを発生させる（Ｓ４０２）。これにより、ラインセンサ６の感光部に蓄積された電荷がシフトレジスタに転送され、取込み処理開始となる。
【００２２】
次に、取込時間Ｙｍｓのタイマ割込みを設定してから（Ｓ４０３）、シフトクロックを発生し（Ｓ４０４）、次の処理である「調整」を処理フラグに設定し（Ｓ４０５）、その後、データ取込みを行う（Ｓ４０６）。データ取込みは例えばＤＭＡ機能やゲートアレイによる処理などでマイクロプロセッサ２に負荷がかからない方法で行う。
【００２３】
マイクロプロセッサ２は、取込み処理が終了してタイマ割込みが終了すると、図２に示す読取りルーチンにおいて、待機状態から読取り処理自体の終了判断の分岐を行う（Ｓ１０５）。終了しない場合において（Ｓ１０５：ＮＯ）、上述した露光処理が終了した状態にあっては、取込みデータが有るので（Ｓ１０６：ＹＥＳ）、データのデコードを実行する（Ｓ１０７）。
【００２４】
このとき、タイマ割込みＹｍｓ時間が経過して再びタイマ割込みが発生すると、図３に示すタイマ割込みにおいて、処理フラグが「調整」であることから、調整処理を実行する（Ｓ２０４）。つまり、デコードを実行開始すると同時に調整処理を実行することになる。
【００２５】
図６は、マイクロプロセッサ２による調整処理を示している。この調整処理は、デコード開始から露光処理及び取込み処理の何れも実行しない調整時間を設けるもので、後述するようにデコード時間を予測し、そのデコード時間から露光時間及び取込み時間を差引いた時間である。図６において、マイクロプロセッサ２は、照明ＬＥＤ３をオフしてから（Ｓ５０１）、駆動回路７からシフトクロックを一旦停止した状態でシフトパルスを発生させる（Ｓ５０２）。これにより、ラインセンサ６の不要露光がシフトレジスタに転送される。
【００２６】
次に、調整時間Ｚｍｓのタイマ割込みを設定し（Ｓ５０３）、駆動回路７からシフトクロックを発生してから（Ｓ５０４）、次の処理である「露光」を処理フラグに設定する（Ｓ５０５）。これにより、ラインセンサ６のシフトレジスタの不要露光が掃出される（図７に示す調整時間１）。
【００２７】
以上のような調整処理が終了してタイマ割込みＺｍｓ時間が経過すると、再びタイマ割込みが発生する。このとき、図３に示すタイマ割込みにおいて、処理フラグが「露光」であることから、露光処理が選択されて上述した露光処理を実行する（図７に示す露光時間２）。
【００２８】
また、露光処理が終了してタイマ割込みＸｍｓ時間が経過すると、再びタイマ割込みが発生する。このとき、図３に示すタイマ割込みにおいて、処理フラグが「取込み」であることから、取込み処理が選択されて上述した取込み処理を実行し（図７に示す取込み時間２）、タイマ割込みＹｍｓを設定する。
【００２９】
ここで、調整時間は、後述するように予測したデコード時間から露光時間と取込み時間とを差引いた時間であることから、デコードが終了すると同時にタイマ割込みＹｍｓ時間が経過するようになり、マイクロプロセッサ２は、次のデコード開始と同時に調整処理を実行するようになる。
尚、デコード処理が終了すると、デコードが完了した場合は終了するが、万一終了しない場合は、次の取込みデータによってデコードを行うようになっている。
【００３０】
ところで、本実施の形態のバーコードハンディターミナル１は、動作クロックの変更可能なマイクロプロセッサ２を搭載しており、高速処理を要求する場合は動作クロックを高速に設定し、より長時間動作を要求する場合には動作クロックを低速に設定するようになっている。この場合、デコード時間もマイクロプロセッサ２の動作クロックの速度に応じて変動し、動作クロックが速ければデコード時間は短く、遅ければ長くなる。
【００３１】
しかるに、上述した調整時間Ｚｍｓはこのデコード時間の変動を吸収するために設定されているもので、調整時間Ｚ＞０の場合はデコード時間＝露光時間Ｘ＋取込み時間Ｙ＋調整時間Ｚであり、調整時間Ｚ＝０の場合のみデコード時間＝露光時間Ｘ＋取込み時間Ｙの関係となる。
【００３２】
図７は、ラインセンサ６の駆動タイミングを示している。この図７では、デコード時間＝露光時間＋取込み時間＋調整時間（Ｚ＞０）になった場合を示している。図８に示した従来の方法では、上述した調整時間を持たないため、不要な露光時間・取込み時間が発生しているのに対して、本実施の形態では不要な露光時間・取込み時間が発生してしまうことを防止できることが分る。
【００３３】
このような実施の形態によれば、読取ったバーコードをデコードしながら、露光処理及び取込み処理を並列処理するマイクロプロセッサ２において、デコード時間内に露光処理及び取込み処理を１回のみ実行するようにしたので、無駄な露光処理及び取込み処理を実行することがなくなり、デコード時間内に複数回の露光処理及び取込み処理を実行してしまうことがある従来例のものと違って、マイクロプロセッサ２の消費電流を低減することができる。
【００３４】
しかも、マイクロプロセッサ２は動作速度変更可能であるものの、自己の動作速度からデコード時間を予測し、その予測デコード時間から露光処理及び取込み時間を差引いた調整時間を求め、デコードを実行開始したときは調整時間が経過したところで露光処理及び取込み処理を順に実行するようにしたので、デコード時間内に露光処理及び取込み処理を１回のみ実行することができる。
【００３５】
（参考の実施の形態）
次に、参考の実施の形態を説明する。この参考の実施の形態は取込み時間を調整することにより、デコード時間内で不要な露光処理及び取込み処理を実行しないことを特徴とする。
即ち、第１の実施の形態では、デコード時間内に調整時間を設けるようにしたが、取込み時間として調整時間を含めた時間を設定することにより、第１の実施の形態と同一の作用効果を得るものである。この場合、調整時間Ｚ＞０の場合は、デコード時間＝露光時間Ｘ＋取込み時間（Ｙ＋Ｚ）であり、調整時間Ｚ＝０の場合のみ、デコード時間≦露光時間Ｘ＋取込み時間Ｙの関係となる。
このような実施の形態によれば、第１の実施の形態のような調整時間を設けることなく、取込み時間の調整だけで実施することができる。
【００３６】
本発明は、上記第１の実施の形態に限定されるものではなく、次のように変形または拡張することができる。
予測デコード時間として予めメモリに設定した値を使用するのに代えて、実際のデコード時間を記憶しておき、そのデコード時間を予測デコード時間として用いるようにしてもよい。つまり、デコード時間はマイクロプロセッサ２の動作クロックの周期、読取対象のデコードコード種により最短時間の予測は可能であるものの、コード長（桁数）やラベルの状態によりデコード時間が影響されるので、前回の実際のデコード時間を使用することにより精度を高めることができる。
【００３７】
マイクロプロセッサ２が取込んだバーの本数によって、明らかにバーコードを構成できないと判断された場合、つまり、ユーザがバーコードラベルを読もうとしていない場合は、調整時間ひいては予測デコード時間を長くして、読取動作を実行する間隔を長くすることにより消費電流を低減させるようにしてもよい。
【００３８】
デコード時間内に、露光処理及び取込み処理に続けて調整処理を実行するようにしてもよいし、露光処理に続けて調整処理を実行してから取込み処理を実行するようにしてもよい。
ラインセンサが電気的なシャッタ機能を有する場合は、照明ＬＥＤを点灯状態に保持するようにしてもよい。
ラインセンサに代えて２次元センサを用いるようにしてもよい。
【図面の簡単な説明】
【図１】本発明の第１の実施の形態における全体構成を概略的に示すブロック図
【図２】マイクロプロセッサによる読取りルーチンを示すフローチャート
【図３】マイクロプロセッサによるタイマ割込み処理を示すフローチャート
【図４】マイクロプロセッサによる露光処理を示すフローチャート
【図５】マイクロプロセッサによる取込み処理を示すフローチャート
【図６】マイクロプロセッサによる調整処理を示すフローチャート
【図７】シフトパルスと照明ＬＥＤの点灯タイミングを示す図
【図８】従来例を示す図７相当図
【符号の説明】
１はバーコードハンディターミナル（光学的情報読取装置）、２はマイクロプロセッサ、３は照明ＬＥＤ（照明手段）、４はバーコードラベル、６はラインセンサ（光学的情報読取センサ）、７は駆動回路（駆動手段）、８は二値化回路（二値化手段）である。
【図１】
0003960108.tif 000002
【図２】
0003960108.tif 000003
【図３】
0003960108.tif 000004
【図４】
0003960108.tif 000005
【図５】
0003960108.tif 000006
【図６】
0003960108.tif 000007
【図７】
0003960108.tif 000008
【図８】
0003960108.tif 000009