説明

光学的情報読取装置および光学的情報読取方法

【課題】ハードウェアを追加することなく単純な構成で高いスキャンレートを維持する。
【解決手段】二値化信号における立ち上がりエッジのタイミングのみで割り込みを発生させる。例えば、立ち上がりエッジEg3aのタイミングで割り込みを発生させ、立ち上がりエッジEg1a,Eg3aのカウント値から二値化信号のエッジ間隔L1aを求め、立ち下がりエッジEg2aのカウント値と立ち上がりエッジEg3aのカウント値から二値化信号のエッジ間隔L2aを求める。そして、エッジ間隔L1aとエッジ間隔L2aからエッジ間隔L3aを求める。これにより、二値化信号を読み取るキャプチャ処理の割り込み回数を従来例に比べて半減させることができる。従って、割り込みによるオーバーヘッドを削減できると共に高いスキャンレートを維持できる。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、コード記号のような光反射率の異なる部分で構成される読取対象の情報を読み取る光学的情報読取装置および光学的情報読取方法に関する。
【背景技術】
【0002】
従来から、バーコードなどのコード記号を読み取る場合に、レーザ光線を対象物(コード記号)に当ててその反射光を光電変換して適宜な信号処理を施して二値化し、情報を読み取る装置が用いられている(例えば特許文献1)。
【0003】
このような光学的情報読取装置、例えばコードスキャナには、ハンディスキャナとハンディターミナルがある(また別に定置式もあるが、ここでは言及しない)。ハンディスキャナは、使用者が操作し、物品のコード記号を読み取って、PC(パーソナルコンピュータ)に転送するタイプのものである。ハンディターミナルは、キーボードなどの入力装置、入力データや蓄積情報を表示するディスプレイ、各種業務用のアプリケーションプログラムなどを備えている。ハンディターミナルは、ハンディスキャナのように、データをPCやホストコンピュータに転送ができるが、単体でも入荷情報、売上げ計算表示、商品情報などの管理が可能である。
【0004】
このようなタイプのスキャナは、把持部、操作部、キーボード及びディスプレイなど、筐体内部を多く占有する部材が存在するので、スキャンエンジンは配置しやすいように、なるべく小型した方がのぞましい。これらのスキャナのOS(Operating System)には、リアルタイムOS(例えばμITron)が使用される場合が多い。
【0005】
特許文献2には、バーコードを高速に読み取る光学情報読取装置が開示されている。この光学情報読取装置によれば、バーコードを2回読み取って夫々のバーコードの二値化信号をデコードして2つのデコードデータを比較して一致度合を判断するのではなく、バーコードを2回読み取って夫々の二値化信号における明暗パターンの総数を比較し、この比較結果が所定の安定条件を満たしている場合に初めてデコード処理を実施するものである。これにより、バーコードを高速に読み取ることができるようになる。
【先行技術文献】
【特許文献】
【0006】
【特許文献1】特開2000−315245号公報
【特許文献2】特開平11−250169号公報
【発明の概要】
【発明が解決しようとする課題】
【0007】
ところで、このようなスキャナは、レーザ光源から照射された光を反射するミラーを振動させて多数の走査線が生じるように構成されている場合が多い。その際、CPU(Central Processing Unit)は、リアルタイムOSの機能に基づいて二値化した信号をキャプチャしてデコードする。通常、キャプチャ信号の立ち上がりエッジ及び立ち下がりエッジごとに割込信号が入り、CPUはキャプチャ処理を実行する。
【0008】
割込信号の発生時には、CPUによるレジスタの退避や復帰処理など、少なからずオーバーヘッドが生ずる。このため割り込みの発生頻度が高いと、この処理に圧迫され本来の処理の応答性や処理速度に影響を与える場合がある。
【0009】
このように割り込み処理が頻発するとキャプチャ信号処理が間に合わない場合があり、結果的に、コード記号を走査する割合を示すスキャンレートが標準仕様95%を割ってしまう問題があった。この標準仕様に満たないとユーザが迅速に作業できずストレスがかかってしまう。また、多重割込が何回も行われると、それだけキャプチャ処理に時間がかかってしまい、同様にスキャンレートが下がってしまう。
【0010】
ここで、DMA(Direct Memory Access)を搭載してCPUを介さずに処理を実施することも考えられるが、そのようなCPUは全体的に高価であり、コードスキャナの大量生産には向かない。
【0011】
そこで、本発明はこのような従来例に係る課題を解決したものであって、ハードウェアを追加することなく単純な構成で高いスキャンレートを維持する光学情報処理装置および光学的情報読取方法を提供することを目的とする。
【課題を解決するための手段】
【0012】
上述した課題を解決するために、本発明に係る光学的情報読取装置は、光反射率の異なる部分で構成されるコード記号に向けて光を照射するレーザ光源と、前記コード記号から反射された反射光を受光して電気信号に変換する光電変換器と、前記電気信号を微分して二値化信号を求める二値化処理部と、前記二値化信号のエッジから所定のエッジを選択し、選択されたエッジのタイミングで割り込みを発生して前記コード記号の幅長を求める制御部とを備えるものである。
【0013】
また、上述した課題を解決するために、本発明に係る光学的情報読取方法は、光反射率の異なる部分で構成されるコード記号に向けて光を照射するステップと、前記コード記号から反射された反射光を受光して電気信号に変換するステップと、前記電気信号を微分して二値化信号を求めるステップと、前記二値化信号のエッジから所定のエッジを選択するステップと、前記選択されたエッジのタイミングで割り込みを発生するステップと、前記割り込み発生時に前記コード記号の幅長を求めるステップとを有するものである。
【0014】
本発明において、前記制御部は、前記二値化信号における立ち上がりエッジのタイミングで割り込みを発生する。これにより、二値化信号を読み取るキャプチャ処理の割り込みを減少させることができるので、割り込みによるオーバーヘッドを削減できる。前記制御部は、前記割り込み発生時に前記二値化信号の立ち上がりエッジ及び立ち下がりエッジからエッジ間隔を求め、前記エッジ間隔から前記コード記号の幅長を求める。
【発明の効果】
【0015】
本発明によれば、二値化信号のエッジから所定のエッジを選択し、選択されたエッジのタイミングで割り込みを発生してコード記号の幅長を求めるものである。これにより、二値化信号を読み取るキャプチャ処理の割り込みを減少させることができるので、割り込みによるオーバーヘッドを削減できる。従って、ハードウェアを追加することなく単純な構成で高いスキャンレートを維持できる。
【図面の簡単な説明】
【0016】
【図1】バーコードスキャナ100の構成例を示すブロック図である。
【図2】タイマ6の構成例を示すブロック図である。
【図3】Aは従来例に係る二値化信号のキャプチャ処理例を示す図であり、Bは本発明に係る二値化信号のキャプチャ処理例を示す図である。
【図4】従来例に係る割り込み処理を示すフローチャートである。
【図5】本発明に係る割り込み処理を示すフローチャートである。
【図6】従来例に係るディスパッチ処理を示す図である。
【図7】本発明に係るディスパッチ処理を示す図である。
【発明を実施するための形態】
【実施例1】
【0017】
続いて、図面を参照しながら本発明に係る光学的情報読取装置および光学的情報読取方法を実施するための形態について説明する。本発明によれば、二値化信号のエッジから立ち上がりエッジを選択し、この立ち上がりエッジのタイミングで割り込みを発生してコード記号の幅長を求めることで、二値化信号を読み取るキャプチャ処理の割り込みを減少できるようにすると共に、割り込みによるオーバーヘッドを削減できるようにするものである。
【0018】
図1に示すバーコードスキャナ100は光学的情報読取装置の一例であり、レーザ光源1、光学部2、信号処理回路3、CPU4、RAM(Random Access Memory)8、ROM(Read Only Member)9、キーボード10及びディスプレイ11を備えている。レーザ光源1は、光反射率の異なる部分で構成されるコード記号の一例であるバーコードに向けて光を照射する。例えばレーザ光源1は、その発光点からレーザ光線を光学部2の集光レンズ2aに向けて発光する。集光レンズ2aは、レーザ光源1から発光されたレーザ光線を集光する。集光レンズ2aの後段にはスキャンミラー2bが配置されている。スキャンミラー2bは、集光レンズ2aにより集光されたレーザ光線を偏向する。
【0019】
バーコードスキャナ100がバーコードに向けられた状態で、スキャンミラー2bにより偏向されたレーザ光線はバーコードに照射されて当該バーコードを走査する。結像レンズ2cは、バーコードから反射された反射光を入射して信号処理回路3の光電変換器3a上に反射光を結像させる。光電変換器3aは、反射光を受光して強度に応じた電気信号に変換して二値化処理部3bに出力する。二値化処理部3bは、この電気信号を微分して二値化信号を求める。例えば、二値化処理部3bは電気信号の増幅ゲイン調整やノイズ処理などを行い、当該電気信号を微分して微分信号を求める。二値化処理部3bは、この微分信号からバーコードの黒バーと白バーの境界を示す変曲点を求め、この変曲点から二値化信号を求めてCPU4に出力する。
【0020】
CPU4は制御部の一例であり、二値化信号のエッジから所定のエッジを選択し、選択されたエッジのタイミングで割り込みを発生してバーコードの幅長を求める。例えば、CPU4は、二値化信号における立ち上がりエッジのタイミングで割り込みを発生し、割り込み発生時に二値化信号の立ち上がりエッジ及び立ち下がりエッジからエッジ間隔を求め、エッジ間隔からバーコードの幅長を求める。CPU4は、求めたバーコードの幅長と閾値とを比較して太いバー/細いバーなどを判別してバーコードキャラクタへ変換する。
【0021】
この例でCPU4は、割込コントローラ5及びタイマ6を備えている。割込コントローラ5は、二値化信号における立ち上がりエッジのタイミングで割り込みをタイマ6に対して発生する。タイマ6は、割り込み発生時に二値化信号のエッジ間隔(時間間隔)を求め、このエッジ間隔からバーコードの幅長を求める。
【0022】
ROM9は、バーコードスキャナ100のリアルタイムOSであるμITronなどが格納され、CPU4により参照される。リアルタイム処理の実行単位は、タスクとハンドラに大別される。タスクは、リアルタイムOSにより起動、中断、再開、終了が行われる。一方、ハンドラは、CPU4内外で発生する各種イベントによりOSを介さずに起動されるプログラム単位である。CPU4は、割り込み発生を検出すると実行状態を割り込み処理実行状態に切り換え、CPU4に登録されている割り込みハンドラを実行する。OSは割り込みハンドラの実行制御が不可能であるから、CPU4の通常実行状態が適用されるタスクよりも割り込みハンドラの優先順位が高い。
【0023】
RAM8はCPU4のワークメモリとして使用される。キーボード10には、操作者から様々な指示が入力される。ディスプレイ11は、バーコードスキャナ100の動作状態や操作者の指示などを写し出す。
【0024】
続いて、バーコードスキャナ100の動作例について説明する。操作者によりバーコードスキャナ100をバーコードに向けてトリガが引かれると、バーコードスキャナ100のレーザ光源1の発光点からレーザ光線が発光される。このレーザ光線は光学部2の集光レンズ2aにより集光される。集光されたレーザ光線は、スキャンミラー2bにより偏向されてバーコードに照射されて当該バーコードを走査する。
【0025】
バーコードから光が反射され、反射された反射光は結像レンズ2cにより光電変換器3a上に結像される。光電変換器3a上に結像された反射光は、光電変換器3aにより強度に応じた電気信号に変換される。この電気信号が二値化処理部3bにより微分されて二値化信号が求められる。割込コントローラ5は、この二値化信号における立ち上がりエッジのタイミングでタイマ6にレーザ割り込みを発生する。タイマ6は、レーザ割り込み発生時に二値化信号のエッジ間隔(時間間隔)を求め、このエッジ間隔からバーコードの幅長を求める。
【0026】
このように、立ち上がりエッジのみのタイミングで割り込みを発生するので、二値化信号を読み取るキャプチャ処理の割り込みを半減させることができる。従って、割り込みによるオーバーヘッドを削減できる。さらに、ハードウェアを追加することなく単純な構成で高いスキャンレートを維持できる。
【0027】
続いて図2を参照してタイマ6の構成例について説明する。図2に示すタイマ6はパルス幅変調入力(PWMI:Pulse Width Modulation Input)モードを有し、コントロールレジスタ60、エッジ検出回路61A,61B、入力キャプチャレジスタ62A,62B、演算部63及びカウンタ64を備えている。タイマ6をPWMIモードに設定するために、タイマ6内のコントロールレジスタ60には所定の値が設定される。
【0028】
エッジ検出回路61Aは、二値化処理部3bから出力された二値化信号の立ち上がりエッジを検出してエッジ検出信号を入力キャプチャレジスタ62Aに出力する。エッジ検出回路61Bは、二値化処理部3bから出力された二値化信号の立ち下がりエッジを検出してエッジ検出信号を入力キャプチャレジスタ62Bに出力する。入力キャプチャレジスタ62A,62Bには、カウンタ64からカウント値が出力される。
【0029】
入力キャプチャレジスタ62Aは、エッジ検出回路61Aから入力した立ち上がりのエッジ検出信号のタイミングで、カウンタ64から入力したカウント値を記憶する。同様に、入力キャプチャレジスタ62Bは、エッジ検出回路61Bから入力した立ち下りのエッジ検出信号のタイミングで、カウンタ64から入力したカウント値を記憶する。
【0030】
演算部63は、図1に示した割込コントローラ5が発生した割り込みのタイミングで、入力キャプチャレジスタ62Aを参照して立ち上がりエッジを示すカウント値を取得すると共に、入力キャプチャレジスタ62Bを参照して立ち下がりエッジを示すカウント値を取得する。上述したように、割込コントローラ5は、二値化信号における立ち上がりエッジのタイミングのみで割り込みを発生するので、二値化信号を読み取るキャプチャ処理の割り込みを半減させることができる。演算部63は、立ち上がりエッジを示すカウント値および立ち下がりエッジを示すカウント値から二値化信号のエッジ間隔を求め、このエッジ間隔からバーコードの幅長を求める。
【0031】
また、タイマ6はステイタスレジスタ65及びオーバーフロー検出回路66を備えている。ステイタスレジスタ65は、エッジ検出回路61A,61Bから入力した二値化信号のエッジ間隔を記憶する。オーバーフロー検出回路66は、ステイタスレジスタ65を参照して二値化信号のエッジ間隔における桁あふれを検出する。
【0032】
続いて、図3を参照してタイマ6におけるキャプチャ処理について説明する。図3Aは、従来例に係る二値化信号のキャプチャ処理の一例を示す図である。図3Aに示すキャプチャ処理では、二値化信号の立ち上がりエッジおよび立ち下がりエッジの両方で割り込みを発生させていた。例えば、図3Aに示す二値化信号の立ち上がりエッジEg1のタイミングで割り込みを発生させ、次に二値化信号の立ち下がりエッジEg2のタイミングで割り込みを発生させていた。そして、この立ち上がりエッジEg1のカウント値と立ち下がりエッジEg2のカウント値から二値化信号のエッジ間隔L1を求めていた。次に、立ち上がりエッジEg3のタイミングで割り込みを発生させ、この立ち上がりエッジEg3のカウント値と立ち下がりエッジEg2のカウント値から二値化信号のエッジ間隔L2を求めていた。同様にして、二値化信号のエッジ間隔L3〜L5を求めていた。このように、従来例に係るキャプチャ処理では、二値化信号の立ち上がりエッジおよび立ち下がりエッジの両方で割り込みを発生させてエッジ間隔を求めていた。
【0033】
これに対して、図3Bに示す本発明に係るキャプチャ処理では、図1に示した割込コントローラ5は、二値化処理部3bから出力された二値化信号の立ち上がりエッジのみで割り込みを発生させる。例えば、割込コントローラ5は、図3Bに示す二値化信号の立ち上がりエッジEg3aのタイミングで割り込みを発生させる。
【0034】
図2に示した演算部63は、割込コントローラ5が発生した立ち上がりエッジEg3aの割り込みタイミングで、入力キャプチャレジスタ62Aを参照して立ち上がりエッジEg1a,Eg3aの夫々のカウント値を取得すると共に、入力キャプチャレジスタ62Bを参照して立ち下がりエッジEg2aを示すカウント値を取得する。演算部63は、立ち上がりエッジEg1a,Eg3aのカウント値から二値化信号のエッジ間隔L1aを求める。また、演算部63は、立ち下がりエッジEg2aのカウント値と立ち上がりエッジEg3aのカウント値から二値化信号のエッジ間隔L2aを求める。そして、演算部63は、このエッジ間隔L1aとエッジ間隔L2aからエッジ間隔L3aを求める。
【0035】
このように、本発明に係る割込コントローラ5は、二値化信号における立ち上がりエッジのタイミングのみで割り込みを発生するので、二値化信号を読み取るキャプチャ処理の割り込み回数を従来例に比べて半減させることができる。これにより、割り込みによるオーバーヘッドを削減でき、ハードウェアを追加することなく単純な構成で高いスキャンレートを維持できる。
【実施例2】
【0036】
続いて、図4及び図5を参照して割り込み処理を高速化する例について説明する。図4は、従来例に係る割り込み処理を示すフローチャートである。図4に示すステップST1で、CPU4は、割込コントローラ5が割り込みを発生すると割り込み処理の準備をする。例えば、CPU4は、割り込み処理の準備としてレジスタを退避させたり、所定の動作モード(例えば特権モード)に切り替えたりしてステップST2に移行する。
【0037】
ステップST2でCPU4は、多重割り込みの準備を行う。例えばCPU4は、割り込みの優先度をレジスタに設定して、この割り込みの優先度より高い割り込みしか受け付けないように設定する。続いてステップST3に移行する。
【0038】
ステップST3,ST4でCPU4は、割り込みを許可して所定の割り込みハンドラを起動し、割り込み処理を実施してステップST5に移行する。ステップST5でCPU4は、割り込みハンドラによる割り込み処理が終了するまで割り込みを禁止する。割り込み処理が終了後、処理を終了するかディスパッチ(dispatch)を起動させてタスクの実行権を切り替える。従来では、このように割り込み処理を実施していた。
【0039】
これに対して本発明では、CPU4は割り込み処理において、少なくとも、割り込み準備処理の前に二値化信号のエッジの入力を示すレーザ割り込みであるか否かを判定する。例えば、CPU4は、この割り込み処理において、先ず、割り込みがレーザ割り込みであるか否かを判定し、レーザ割り込みであると判定した場合にはレーザ割り込みを実施し、レーザ割り込みではないと判定した場合には割り込み準備を実施する。さらに、割り込み準備後にレーザ割り込みを受け付けたか否かを判定し、割り込み準備後にレーザ割り込みを受け付けたと判定した場合には、レーザ割り込みを実施し、レーザ割り込みを受け付けていないと判定した場合には多重割り込みを準備してレーザ割り込み以外の割り込みを許可する。
【0040】
本発明に係る割り込み処理によれば、図5に示すステップST10で、CPU4は、二値化信号のエッジの入力を示すレーザ割り込みであるか否かを判定する。レーザ割り込みであると判定した場合、ステップST11に移行する。
【0041】
ステップST11でCPU4は、現在実行中の処理に使用しているレジスタのデータを退避させてステップST12に移行する。ステップST12でCPU4は、レーザ割り込みを起動して二値化信号のエッジ間隔を求め、このエッジ間隔からバーコードの幅長を求めて終了となる。
【0042】
また、上述のステップST10でCPU4がレーザ割り込みでないと判定した場合、ステップST13に移行する。ステップST13でCPU4は、割り込み処理の準備をする。例えば、CPU4は、割り込み処理の準備としてレジスタを退避させたり、所定の動作モード(例えば特権モード)に切り替えたりしてステップST14に移行する。
【0043】
ステップST14で、CPU4は、再びレーザ割り込みであるか否かを判定する。レーザ割り込みであると判定した場合にはステップST15に移行し、レーザ割り込みでないと判定した場合にはステップST16に移行する。ステップST15でCPU4は、レーザ割り込みを起動して二値化信号のエッジ間隔を求め、このエッジ間隔からバーコードの幅長を求めてステップST16に移行する。
【0044】
ステップST16でCPU4は、多重割り込みの準備を行う。例えばCPU4は、割り込みの優先度をレジスタに設定して、この割り込みの優先度より高い割り込みしか受け付けないように設定する。原則、レーザ割り込み以外の割り込みが設定される。続いてステップST17に移行する。
【0045】
ステップST17,ST18でCPU4は、割り込みを許可して所定の割り込みハンドラを起動し、割り込み処理を実施してステップST19に移行する。ステップST19でCPU4は、割り込みハンドラによる割り込み処理が終了するまで割り込みを禁止する。割り込み処理が終了後、処理を終了するかディスパッチを起動させてタスクの実行権を切り替える。
【0046】
このように、本発明に係るバーコードスキャナ100によれば、割り込み処理において、二値化信号のエッジの入力を示すレーザ割り込みを優先し、レーザ割り込みの場合には多重割り込みも禁止する。これにより、レーザ割り込みを最優先できるので、ハードウェアを追加することなく単純な構成で高いスキャンレートを維持できる。
【0047】
なお、実施例2では、二値化信号のエッジの入力を示すレーザ割り込みは、立ち上がりエッジおよび立ち下がりエッジの両方で発生するようにしても良いし、立ち上がりエッジのみで発生するようにしても良い。
【実施例3】
【0048】
続いて、図6及び図7を参照してμITRONのディスパッチ(dispatch)処理を最適化する例について説明する。図6は、従来例に係るディスパッチ処理例を示す図である。図6に示すμITRONのdispatch部30は、例えばタスク(task)30a〜30dの実行権を優先度に基づいて切り替える。dispatch部30は、これらのタスク30a〜30dの実行権を切り替えるディスパッチ処理中は割り込みが禁止されている。この場合、例えばタスク30aからタスク30bへディスパッチするとき、10μsec以上の割り込み禁止時間が発生するため、この間はレーザの割り込みを受け付けることができずレーザのキャプチャに失敗する問題がある。なお、μITRONは、dispatch部30の他に、資源管理部30e、イベントフラグ(event flag)管理部30f、セマフォ管理部30g、タイマ管理部30h、タスク管理部30i及びメッセージ(message)管理部30jを備えている。
【0049】
この例で、図6に示すステップ40aでタスク30bによる割り込みを開始し、ステップ40bで多重割り込みの準備を行い、ステップ40cで割り込み処理の終了となる。ステップ40cで割り込み処理が終了すると、割り込み直前の処理に戻るかディスパッチ処理に進む。ディスパッチ処理の間は割り込みを禁止している。なお、ステップ40bの多重割り込み準備では、レーザ割り込み処理40dやキー(key)割り込み処理40e、バッテリー(battery)割り込み処理40fなどを受け付け、優先度の高い割り込み処理から実施される。
【0050】
これに対して、本発明に係るディスパッチ処理では、CPU4が、タスクの実行権を切り替えるディスパッチ処理中において、二値化信号のエッジの入力を示すレーザ割り込みを有効にする。例えば、図7に示すdispatch部31がタスク31a〜31dの実行権を切り替えるディスパッチ中であっても、レーザ割り込みだけを許可する。
【0051】
この例で、ディスパッチ中の割り込みのレベルを「0x0E」に設定し、レーザの割り込みのレベルを「0x0F」に設定し、その他の割り込みレベルを「0x0E」より小さいレベル値に設定する。これにより、レーザの割り込みのレベル「0x0F」が、ディスパッチ中の割り込みのレベル「0x0E」よりも高くなるので、レーザの割り込みは、ディスパッチ中に割り込みを実行できるようになる。したがって、例えば、タスク31aからタスク31bへディスパッチするときに10μsec以上の時間が発生しても、この間においてレーザの割り込みを受け付けるのでレーザのキャプチャに失敗することがない。なお、ディスパッチ中に割り込みを発生しても、割り込みはμITronの管理外で実施されるため、μITronには影響しない。
【0052】
図7に示すステップ41aでタスク30bによる割り込みを開始して、ステップ41bで多重割り込みの準備を行い、ステップ41cで割り込み処理の終了となる。ステップ41cで割り込み処理が終了すると、レーザ割り込み以外の場合は割り込み直前の処理に戻るかディスパッチ処理に進み、レーザ割り込みの場合はディスパッチ処理中でも割り込みが可能なので、割り込み直前の処理に戻る。ステップ41bの多重割り込み準備では、レーザ割り込み処理41dやキー(key)割り込み処理41e、バッテリー(battery)割り込み処理41fなどを受け付け、優先度の高い割り込み処理から実施されるが、レーザ割り込みの場合は多重割り込みを禁止する。
【0053】
このように、本発明に係るバーコードスキャナ100によれば、タスクの実行権を切り替えるディスパッチ処理中において、二値化信号のエッジの入力を示すレーザ割り込みを有効にする。これにより、ディスパッチ中においてレーザ割り込みを受け付けるのでレーザのキャプチャに失敗することがない。従って、ハードウェアを追加することなく単純な構成で高いスキャンレートを維持できる。
【0054】
なお、実施例では、μITronの仕様に基づいて説明したが、適用するリアルタイムOSはμITronに限定されるものではない。
【産業上の利用可能性】
【0055】
本発明は、コード記号のような光反射率の異なる部分で構成される読取対象の情報を読み取るバーコードスキャナに適用して極めて好適である。
【符号の説明】
【0056】
1・・・レーザ光源、3a・・・光電変換器、3b・・・二値化処理部、4・・・CPU(制御部)、5・・・割込コントローラ、6・・・タイマ、100・・・バーコードスキャナ(光学的情報読取装置)

【特許請求の範囲】
【請求項1】
光反射率の異なる部分で構成されるコード記号に向けて光を照射するレーザ光源と、
前記コード記号から反射された反射光を受光して電気信号に変換する光電変換器と、
前記電気信号を微分して二値化信号を求める二値化処理部と、
前記二値化信号のエッジから所定のエッジを選択し、選択されたエッジのタイミングで割り込みを発生して前記コード記号の幅長を求める制御部と、
を備えることを特徴とする光学的情報読取装置。
【請求項2】
前記制御部は、
前記二値化信号における立ち上がりエッジのタイミングで割り込みを発生することを特徴とする請求項1に記載の光学的情報読取装置。
【請求項3】
前記制御部は、
前記割り込み発生時に前記二値化信号の立ち上がりエッジ及び立ち下がりエッジからエッジ間隔を求め、前記エッジ間隔から前記コード記号の幅長を求めることを特徴とする請求項1に記載の光学的情報読取装置。
【請求項4】
前記制御部は、割り込み処理において、少なくとも、割り込み準備処理の前に前記二値化信号のエッジの入力を示すレーザ割り込みであるか否かを判定することを特徴とする請求項1に記載の光学的情報読取装置。
【請求項5】
前記制御部は、割り込み処理において、
前記割り込みが前記レーザ割り込みであるか否かを判定し、
前記レーザ割り込みであると判定した場合にはレーザ割り込みを実施し、前記レーザ割り込みではないと判定した場合には割り込み準備を実施し、
さらに、前記割り込み準備後にレーザ割り込みを受け付けたか否かを判定し、
前記割り込み準備後に前記レーザ割り込みを受け付けたと判定した場合には、レーザ割り込みを実施し、前記レーザ割り込みを受け付けていないと判定した場合には、レーザ割り込み以外の割り込みを許可することを特徴とする請求項4に記載の光学的情報読取装置。
【請求項6】
前記制御部は、タスクの実行権を切り替えるディスパッチ処理中において、前記二値化信号のエッジの入力を示すレーザ割り込みを有効にすることを特徴とする請求項1に記載の光学的情報読取装置。
【請求項7】
光反射率の異なる部分で構成されるコード記号に向けて光を照射するステップと、
前記コード記号から反射された反射光を受光して電気信号に変換するステップと、
前記電気信号を微分して二値化信号を求めるステップと、
前記二値化信号のエッジから所定のエッジを選択するステップと、
前記選択されたエッジのタイミングで割り込みを発生するステップと、
前記割り込み発生時に前記コード記号の幅長を求めるステップと、
を有することを特徴とする光学的情報読取方法。
【請求項8】
割り込み処理において、少なくとも、割り込み準備処理の前に前記二値化信号のエッジの入力を示すレーザ割り込みであるか否かを判定するステップを有することを特徴とする請求項7に記載の光学的情報読取方法。
【請求項9】
タスクの実行権を切り替えるディスパッチ処理中において、前記二値化信号のエッジの入力を示すレーザ割り込みを有効にするステップを有することを特徴とする請求項7に記載の光学的情報読取方法。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate


【公開番号】特開2011−48653(P2011−48653A)
【公開日】平成23年3月10日(2011.3.10)
【国際特許分類】
【出願番号】特願2009−196898(P2009−196898)
【出願日】平成21年8月27日(2009.8.27)
【出願人】(391062872)株式会社オプトエレクトロニクス (70)
【Fターム(参考)】