(57)【要約】【課題】第１、第２のプロセッサを備え、第１のプロセッサと第２のプロセッサで画像処理とデコード処理を並列処理する光学情報読取装置を前提として、その処理効率を高める。【解決手段】共有メモリ104には複数の設定バンク116が記憶されており、この設定バンク116は第１、第２のＣＰＵ101,102によって夫々参照される。各設定バンク116には、撮像パラメータ、デコードパラメータが含まれる。第１ＣＰＵ101の画像処理は撮像間隔P毎に実行される。撮像間隔PはＰ＝Ｔa−Ｔｂによって求められる。ここに、Ｔaはデコードタイムアウト時間であり、Ｔｂは撮像時間である。第１ＣＰＵ101の画像処理及び第２ＣＰＵ102のデコード処理は設定バンクに含まれるパラメータに従って実行される。【選択図】図21
2012064178.tif 000002
【特許請求の範囲】
【請求項１】
光学情報を撮像する光学読取素子と、
撮像パラメータとデコードパラメータとを含む設定バンクを記憶した共有メモリと、
該共有メモリの前記設定バンクの撮像パラメータに従って画像処理して読取画像を生成すると共に生成した読取画像を前記共有メモリに転送する撮像処理を少なくとも含む複数の処理を実行する第１プロセッサと、
該共有メモリに記憶されている前記読取画像を呼び出して、該読取画像を前記共有メモリの前記設定バンクのデコードパラメータに従ってデコード処理する第２プロセッサとを有し、
前記第１プロセッサは、前回の撮像処理が終了した後、撮像処理以外のタスクを実行しながら所定の撮像間隔を待機してから次回の撮像処理を実行し、
前記所定の撮像間隔が、前記第２プロセッサでデコード処理のデコードタイムアウト時間から撮像時間を引いた値と略等しい値に設定されることを特徴とする光学情報読取装置。
【請求項２】
前記所定の撮像間隔が、前記第２プロセッサのデコード処理のデコードタイムアウト時間から撮像時間を引いた値である、請求項１に記載の光学情報読取装置。
【請求項３】
前記所定の撮像間隔を設定せずに、連続的に撮像処理を事項する連続撮像モードを更に有し、該連続撮像モードをユーザが選択可能である、請求項１に記載の光学情報読取装置。
【請求項４】
前記所定の撮像間隔が前記設定バンクに含まれ、該設定バンクに含まれている前記撮像間隔に従って前記第１プロセッサの画像処理が実行される、請求項２に記載の光学情報読取装置。
【請求項５】
前記共有メモリに複数の設定バンクが記憶されている、請求項４に記載の光学情報読取装置。
【請求項６】
前記複数の設定バンクの一つの設定バンクを一回だけ使用して前記画像処理及び前記デコード処理が実行される、請求項５に記載の光学情報読取装置。
【請求項７】
前記複数の設定バンクの一つの設定バンクを複数回使用して前記画像処理及び前記デコード処理が実行される、請求項５に記載の光学情報読取装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、バーコードやＱＲコードのような光学情報を読み取ってデコードする光学情報読取装置に関する。
【背景技術】
【０００２】
トレーサビリティ（traceability）が普及した今日、工場や物流拠点などに光学情報読取装置を設置して、製品や産品に付与されたバーコードなどの光学情報又は光学符号の解読が行われている。この種の光学情報読取装置は「バーコードリーダ」又は「コードリーダ」と呼ばれている。
【０００３】
バーコードリーダはレーザ光、可視光、赤外光を光学情報に照射し、その反射光を光学読取素子(撮像素子)で取り込む。そして、この取り込んだ撮像画像を画像処理して光学情報を抽出した読取画像を作成し、そして、この読取画像のデコードを実行する（特許文献１）。
【０００４】
ところで、光学情報読取装置に２つのＣＰＵ（プロセッサ）を用意し、この２つのプロセッサで画像処理とデコード処理とを並列処理することが考えられている。この場合、第１のプロセッサで撮像及び画像処理を完了した後、第２のプロセッサに対してデコード処理の要求を行い、このデコード処理要求を受け取った第２のプロセッサはデコード処理を開始する手順で並列処理が実行されることになる。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００８−３３４６５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
第２プロセッサがデコード処理している最中に、第１プロセッサは次の画像処理を実行することになる。しかし、第２プロセッサのデコード処理が所定時間内に成功しなかった場合には、このデコード処理がキャンセルされ、第１プロセッサは第２プロセッサに対して再度のデコード要求を行うことになるが、このデコード要求を受けたとしても第１プロセッサが画像処理中であれば、第２プロセッサはデコードを開始することができないという問題が発生して第２プロセッサは待機状態に置かれる。
【０００７】
一般的に、第１プロセッサには複数のタスクが割り当てられ、重要なタスクから優先順位が付けられて、優先順位の高いタスクを処理している間は、優先順位の低いタスクは実行されずに待機状態にある。バーコードリーダにとって、撮像処理は比較的優先順位の高いタスクとして設定されることから、他のタスク（例えば画像の保存や画像の送信など）は撮像処理が行われていない間に第１プロセッサによって実行される。
【０００８】
これに対して第２プロセッサは、第１プロセッサが撮像した画像を受け取ってデコード処理を実行することから、この第２プロセッサにデコード待機状態が発生するのは回避したい。例えば、第１プロセッサが連続的に撮像処理を実行すれば、第２プロセッサのデコード開始時には必ず第１プロセッサの撮像処理を完了させるように制御することは可能である。しかし、第２プロセッサにデコード待機状態が発生するのを防止する目的で第１プロセッサが連続的に撮像処理を実行すると、第１プロセッサに割り当てられている撮像処理以外のタスクの実行が遅れてしまうという他の問題が浮上してしまう。
【０００９】
本発明の目的は、第１、第２のプロセッサを備え、第１のプロセッサと第２のプロセッサで画像処理とデコード処理を並列処理する光学情報読取装置を前提として、その処理効率を高めることのできる光学情報読取装置を提供することにある。
本発明の更なる目的は、第１のプロセッサのリソースを最大限に有効活用しながら、第２のプロセッサのデコード待機状態の発生を抑えることのできる光学情報読取装置を提供することにある。
【課題を解決するための手段】
【００１０】
上記の技術的課題は、本発明によれば、
光学情報を撮像する光学読取素子と、
撮像パラメータとデコードパラメータとを含む設定バンクを記憶した共有メモリと、
該共有メモリの前記設定バンクの撮像パラメータに従って画像処理して読取画像を生成すると共に生成した読取画像を前記共有メモリに転送する撮像処理を少なくとも含む複数の処理を実行する第１プロセッサと、
該共有メモリに記憶されている前記読取画像を呼び出して、該読取画像を前記共有メモリの前記設定バンクのデコードパラメータに従ってデコード処理する第２プロセッサとを有し、
前記第１プロセッサは、前回の撮像処理が終了した後、撮像処理以外のタスクを実行しながら所定の撮像間隔を待機してから次回の撮像処理を実行し、
前記所定の撮像間隔が、前記第２プロセッサでデコード処理のデコードタイムアウト時間から撮像時間を引いた値と略等しい値に設定されることを特徴とする光学情報読取装置を提供することにより達成される。
【００１１】
所定の撮像間隔として、(1)前記第２プロセッサのデコード処理のデコードタイムアウト時間から撮像時間を引いた値であってもよいし、(2)ユーザによって設定された値であってもよい。
【００１２】
上記(1)の撮像間隔であれば、デコードが上手く行かずタイムアウトによりキャンセルされた時点では、第１プロセッサによる画像処理が必ず終了していることから、第２プロセッサは、直ちに第１プロセッサが作成した読取画像のデコード処理を開始することができる。
【００１３】
上記(2)の撮像間隔は、一般的にユーザが撮像間隔を「ゼロ」に設定すると予想できることから、第１プロセッサによる画像処理が次々と実行されるため、第２プロセッサでデコードが上手く行かずタイムアウトによりキャンセルされた時点では、次にデコードする読取画像が既に存在していることから第２プロセッサは直ちにデコードを開始することができる。
【００１４】
本発明の他の目的、作用効果は、以下の本発明の実施例の詳しい説明から明らかになろう。
【図面の簡単な説明】
【００１５】
【図１】バーコードリーダ・システムの全体構成図である。
【図２】光学情報読取装置であるバーコードリーダの斜視図である。
【図３】バーコードリーダの内部に配置される各種基板の配置を斜め前方から見た図である。
【図４】図３に関連した図であって、バーコードリーダの内部に配置される各種基板の配置を斜め後方から見た図である。
【図５】バーコードリーダに内蔵される各種基板の結線関係を説明するための図である。
【図６】バーコードリーダに内蔵されるシャーシと、このシャーシに組み付けられたメイン基板、電源基板、サブ基板の配置を説明するための図である。
【図７】シャーシに組み付けられる各種の要素を説明するための図である。
【図８】カメラモジュールを斜め後方から見た図である。
【図９】カメラモジュールを斜め前方から見た図である。
【図１０】カメラモジュールの内部構造を説明するための概念図である。
【図１１】カメラモジュールと各種基板の関係を示す図であり、この状態でバーコードリーダのメインケースに収容される。
【図１２】図１１と同様に、カメラモジュールと各種基板の関係を示す図であり、好ましい例として、電源基板、メイン基板の上に放熱部材である熱伝導ゴムを載置した例を示す図である。
【図１３】図１２に関連して、熱伝導ゴムが電源基板、メイン基板とメインケースとに当接した状態を説明するための図である。
【図１４】メインケースから前方に延びる一対のロッド状の延長部分の前端面にＬＥＤ基板（内部照明基板）を取り付け、また、延長部分に電源基板、メイン基板の前端を固定することを説明するための図である。
【図１５】バーコードリーダのメインケース及びその開放した後端がリヤケースによって閉じられることを説明するための図であり、このリヤケースにコネクタ基板を固定した状態を示す分解斜視図である。
【図１６】図１５に図示の内蔵物を収容したメインケースの正面図である。
【図１７】図１６からカメラモジュールを取り除いた状態のメインケースの正面図である。
【図１８】バーコードリーダの機能構成図である。
【図１９】バーコードリーダの画像バッファと共有メモリとの関係を説明するための図である。
【図２０】共有メモリに複数の設定バンクが格納されていることを説明するための図である。
【図２１】バーコードリーダの第１ＣＰＵで実行される撮像処理が撮像間隔毎に実行されることを説明するためのタイムチャートである。
【図２２】設定バンクの条件に基づいて撮像処理及びデコード処理する場合に、複数の設定バンクを夫々一回だけ使用して処理する例を説明するための図である。
【図２３】設定バンクの条件に基づいて撮像処理及びデコード処理する場合に、複数の設定バンクから一つの設定バンクを複数回使用して処理する例を説明するための図である。
【図２４】複数の設定バンクを夫々一回だけ使用して処理した具体例を示すタイムチャートである。
【図２５】複数の設定バンクから一つの設定バンクを２回使用して処理した具体例を示すタイムチャートである。
【図２６】複数の設定バンクを夫々一回だけ使用して処理した他の具体例を示すタイムチャートである。
【図２７】撮像間隔が「ゼロ」（バースト撮像）の連続的に撮像する連続撮像モードでのタイムチャートである。
【発明を実施するための形態】
【実施例】
【００１６】
以下に、添付の図面に基づいて本発明の好ましい実施例を説明する。
【００１７】
バーコードリーダ・システム（図１）：
図１はバーコードリーダ・システムの概要を説明するための図である。図１を参照して、バーコードリーダ・システム１は、二次元情報読取装置であるバーコードリーダ２と、必要に応じてバーコードリーダ２に接続されるパーソナルコンピュータ３とを有し、バーコードリーダ２で撮像した画像をパーソナルコンピュータ３で確認しながら、このパーソナルコンピュータ３を使って各種の設定が行われる。バーコードリーダ・システム１には、更に、必要に応じてリング型の外部照明ユニット４がバーコードリーダ２に接続され、バーコードリーダ２の内部照明ユニット５と一緒になって又は内部照明ユニット５の動作を止めて外部照明ユニット４だけでワークを照明する。
【００１８】
リング型の外部照明ユニット４は、このバーコードリーダ・システム１のための専用品であり、異なる種類の複数の外部照明ユニット４を用意するのが好ましい。勿論、外部照明ユニット４として専用品以外の照明ユニットを組み込むことも可能である。
【００１９】
バーコードリーダ・システム１は、バーコード、ＱＲコードなどの光学情報又は光学符号が印字又は刻印された商品あるいは物品を製造する工場では物品の搬送経路に設置され、バーコードリーダ２で商品又は物品に印字された光学情報に記録されている情報を読み取り、この情報をパーソナルコンピュータ３に転送して情報の解析が行われる。「光学情報読取装置」は一般的に“バーコードリーダ”又は“コードリーダ”を呼ばれており、ここでは“バーコードリーダ”という業界用語を使用する。
【００２０】
また、図示の例では、図１に開示のように、パーソナルコンピュータ３に設定プログラムをインストールすることにより、このパーソナルコンピュータ３を使ってバーコードリーダ・システム１の各種の設定が行われる。勿論、バーコードリーダ２に例えばタッチパネル付き表示手段を設けて、この表示手段を使ってバーコードリーダ２、内部照明ユニット５（図３）及び/又は外部照明４(図２０、図２１)の設定作業ができるようにしてもよい。
【００２１】
バーコードリーダ２（図２〜図１９）：
図２はバーコードリーダ２の外観を示す斜視図である。バーコードリーダ２は、断面多角形の形状のメインケース６と、メインケース６の前端に固定される円筒状のフロントケース７とを有し、この円筒状のフロントケース７に前述した内部照明ユニット５が内蔵されている。メインケース６は、図２などから分かるように略正方形の断面形状を備えているのが好ましい。
【００２２】
バーコードリーダ２には互いに独立した複数の基板が内蔵されている。図３〜図５を参照して、バーコードリーダ２が備える複数の基板は次の通りである。
（１）メイン基板１０：
メイン基板１０には、ＣＰＵ、メモリＭが搭載され、画像をメモリＭに転送してＤＳＰ(digital Signal Processor)で画像処理する。そして、メイン基板１０のＣＰＵで内部照明ユニット５を具備したバーコードリーダ２を制御し、また、外部照明ユニット４との通信を実行する。
（２）電源基板１１：
バーコードリーダ２の電源を生成する。絶縁入出力回路が実装されている。
【００２３】
（３）サブ基板１２：
大容量メモリが搭載されており、この大容量メモリに取得画像や各種の設定が保存される。制限した大きさ及び形状のメイン基板１０では、このメイン基板１０に実装することのできなかった要素が実装される。
（４）ＣＭＯＳ基板１３(受光基板)：
ＣＭＯＳイメージセンサ（光学読取素子）が実装され、画像を取得してメイン基板１０に転送する。ポインタ用のＬＥＤ４０（図１０）が搭載される。
【００２４】
（５）ＬＥＤ基板１４：
内部照明ユニット５を構成する円形開口１４ａを備えた円板状の基板であり、このＬＥＤ基板１４に複数の照明用ＬＥＤ８０が実装され（後に説明する図３２）、この複数の照明用ＬＥＤ８０の点灯制御を実行する。複数の照明用ＬＥＤ８０は、後に説明するバーコードリーダ２のレンズ組立体３６の光軸を中心とする複数の径の異なる同心円上に配列される。内部照明ユニット５（ＬＥＤ基板１４）に実装された複数の照明用ＬＥＤ８０は後に説明するようにエリア分けして点灯制御される。また、このＬＥＤ基板１４には、各エリアに属する複数の照明用ＬＥＤに定電流を供給する定電流回路が設けられる。
（６）コネクタ基板１５：
外部電源、ＩＯ、ＲＳ２３２Ｃ、Ethernet（登録商標）、外部照明ユニット４との入出力のインターフェースを構成する基板である。なお、外部照明ユニット４には、電源基板１１から電源が供給される。
【００２５】
図３、図４を参照して、メイン基板１０と電源基板１１とは互いに対向して配置され、このメイン基板１０と電源基板１１の各々の側縁で挟まれた領域に、これらメイン基板１０と電源基板１１と直交するようにしてサブ基板１２が配設されている。サブ基板１２とメイン基板１０の配置位置を互いに置換してもよい。メイン基板１０、電源基板１１、サブ基板１２は、バーコードリーダ２は矩形断面のメインケース６の４つの側面のうち３つの側面に隣接し且つこの３つの側面の各々に沿って配設される。そして、このメイン基板１０、電源基板１１、サブ基板１２で囲まれた空間にＣＭＯＳ基板１３が位置し、このＣＭＯＳ基板１３は各基板１０〜１２と直交する一つの鉛直面に配設される。また、このＣＭＯＳ基板１３と平行に且つＣＭＯＳ基板１３を挟んで互いに対峙してＬＥＤ基板１４とコネクタ基板１５が位置決めされる。
【００２６】
図５は、上述した各基板１０〜１５の接続関係を説明するための図である。メイン基板１０は、電源基板１１と第１のＦＦＣ２０(Flexible Flat Cable)で接続され、サブ基板１２と第２のＦＦＣ２１で接続され、ＣＭＯＳ基板１３とＦＰＣ(Flexible Printed Circuit)２２で接続され、内部照明ユニット４ＬＥＤ基板１４と第３のＦＦＣ２３で接続され、コネクタ基板１５と第１のハーネス２４で接続されている。電源基板１１は、また、内部照明ユニット５のＬＥＤ基板１４と第２のハーネス２５で接続され、ＬＥＤ基板１４に実装された照明用ＬＥＤを発光させるための電源が電源基板１１からＬＥＤ基板１４に供給される。電源基板１１とコネクタ基板１５は、２本のハーネス２６、２７とＦＦＣ２８で接続されている。
【００２７】
図５を再び参照して、メイン基板１０と電源基板１１とが略同じ大きさ及び形状を有している点に注目すべきである。換言すれば、メイン基板１０は、電源基板１１と略同じ大きさ及び形状となるように設計され、この制約のためにメイン基板１０に搭載できなかった電子部品がサブ基板１２に搭載される。
【００２８】
図６、図７を参照して、メイン基板１０、電源基板１１、サブ基板１２、ＣＭＯＳ基板１３は、樹脂成型品であるシャーシ３０に組み付けられる。シャーシ３０は、図７から最も良く分かるように、メインケース６の断面形状とほぼ相似形の略正方形の断面形状を有するボックス形状を有し、このボックス形状の一つの側面３０ａを閉塞し、他の５つの面を開放した形態を有している。メイン基板１０、電源基板１１、サブ基板１２は、開放した３つの側面１０ｂ〜１０ｄに夫々配設される。樹脂成型品のシャーシ３０は前後に開放しており、その一端開口３０ｆからカメラモジュール３２が挿入され（図７）、シャーシ３０の中に挿入されたカメラモジュール３２は、その周囲にメイン基板１０、電源基板１１、サブ基板１２が位置し、これらメイン基板１０、電源基板１１、サブ基板１２によってカメラモジュール３２が包囲された状態になる。
【００２９】
図８、図９を参照して、カメラモジュール３２は、アルミニウムなどのダイキャスト品からなるカメラホルダ３５を有し、このカメラホルダ３５は、矩形断面のホルダ本体３５ａと、ホルダ本体３５ａの互いに対向する側面から前方に且つ互いに平行に延びる一対のアーム３５ｂと、一対のアーム３５ｂの前端から互いに離れる方向に延びる一対の取付部３５ｃとを有している。ホルダ本体３５ａには、後方に向けて開放した後端面にＣＭＯＳ基板１３が複数のネジ３７によって固定される（図８）。
【００３０】
メイン基板１０と電源基板１１の位置決めのために、シャーシ３０には６つの爪３８が一体成形されており（図７）、この６つの爪３８を使ってメイン基板１０と、これに対向する電源基板１１が、シャーシ３０の開放した互いに対向する２つの側面３０ｂ、３０ｄの夫々に位置決めされる。メイン基板１０には爪３８を受け入れる切り欠き１０ａが形成されている(図７)。電源基板１１にも同様に切り欠き１１ａが形成されている（図３）。図７を参照して、矩形のサブ基板１２は、対角線上の角隅部に一対の透孔１２ａ、１２ｂを有し、この一対の透孔１２ａ、１２ｂに対応してシャーシ３０にも一対の透孔３０ｇ（一方の透孔は作図上の理由から図面には現れていない）が形成され、これら透孔１２ａ、１２ｂ、３０ｇを整合させることによりサブ基板１２はシャーシ３０にネジ止めされる。
【００３１】
ポインタ用ＬＥＤの配置（図１０）：
カメラモジュール３２は円筒状のレンズ組立体３６を有し、このレンズ組立体３６はカメラホルダ３５の一対のアーム３５ｂ、３５ｂの間に配設されている。図１０を参照して、ホルダ本体３５ａの後端開口には、ＣＭＯＳ基板１３がネジ３７(図８)を使って固定される。ＣＭＯＳ基板１３には、一対のポインタ用ＬＥＤ４０、４０が搭載されている。このポインタ用ＬＥＤ４０に関連して、ホルダ本体３５ａには、各ポインタ用ＬＥＤ４０の直ぐ前方に拡散シート４１が配設されている。２つのポインタ用ＬＥＤ４０の光は、夫々、拡散シート４１を通じて且つレンズ組立体３６を通じて前方に照射され、バーコードリーダ２の視野範囲の中の互いに離間した２点を指し示す。図１０の参照符合４３は光学読取素子であるＣＭＯＳイメージセンサを示し、光学読取素子４３はＣＭＯＳ基板１３に実装されている。
【００３２】
ポインタ用ＬＥＤ４０をカメラモジュール３２に内蔵させたことにより、光学読取素子４３とポインタ用ＬＥＤ４０との相対位置を一定に保つのが容易になると共にバーコードリーダ２を小型化するのが容易になる。特に、ポインタ用ＬＥＤ４０がバーコードリーダ２のレンズ組立体３６を光学読取素子４３と共用することによって、ポインタ用ＬＥＤ４０のための専用のレンズが不要となるためバーコードリーダ２の小型化が容易である。
【００３３】
カメラモジュール３２は、光学読取素子（撮像素子）４３とレンズ組立体３６との間の距離が従来との対比で非常に大きく、高い分解能でバーコードやＱＲコードなどの光学情報を超微小な領域まで読み取ることができるという特徴を有している。このように従来との対比で長さ寸法が大きいカメラモジュール３２をバーコードリーダ２の中に収容するとき、上述した基板配置に注目すべきである。すなわち、カメラモジュール３２をメイン基板１０、電源基板１１、サブ基板１２で囲むという技術的思想を導入することで、バーコードリーダ２を小型化しつつ長尺のカメラモジュール３２をアウターケースの中に収容することができる。
【００３４】
ちにみに、カメラモジュール３２のスペックは次のとおりである。
(1)光学倍率：0.6〜1.0倍（実施例では、0.823倍）；
(2)視野範囲：7.5mm×4.8mm〜4.5mm×2.9mm（実施例では、5.5mm×3.5mm）；
(3)光学読取素子から先端のレンズまでの距離：35mm以上（実施例では40mm）。
【００３５】
図１１は、シャーシ３０に基板１０、１１、１２及びカメラモジュール３２を組み付けた組立体の斜視図である。図１２は、メイン基板１０、電源基板１１の上に、夫々、クッション性を備え且つ優れた熱伝導性を備えた放熱部材として熱伝導ゴム４５を設置した状態を示す。バーコードリーダ２の放熱性に関して必要があれば、図１２に例示した態様で熱伝導ゴム４５を添設した状態で矩形断面のメインケース６（図２）に収容される（図１３）。
【００３６】
伝熱性に優れた金属材料からなる多角形断面のメインケース６の異なる側面に隣接し且つこれに沿ってメイン基板１０と電源基板１１を配置したことにより、これらメイン基板１０及び電源基板１１の熱を外部に放出し易くなると共に、このメイン基板１０と電源基板１１で囲まれた空間にカメラモジュール３２を収容することができるため、バーコードリーダ２の一層の小型化が可能である。特に、メイン基板１０、電源基板１１とメインケース６との間に熱伝導ゴム４５のような放熱部材を介在させることで放熱効率を高めることができ、この観点からもバーコードリーダ２の一層の小型化が可能になる。
【００３７】
図１３及び図１５の参照符合４６はリヤケースを示し、メインケース６の後端開口に脱着可能に装着されてメインケース６を閉塞する。リヤケース４６にはコネクタ基板１５が取付けられており、このコネクタ基板１５はリヤケース４６にネジ４７を使って固定される（図１５）。バーコードリーダ２のアウターケースを構成するメインケース６、フロントケース７、リヤケース４６は、例えばメインケース６を熱伝導に優れた金属材料、例えばアルミニウムなどの伝熱性材料から作られるのがよい。
【００３８】
図６を参照して、メイン基板１０及び電源基板１１には、その前端幅狭部に夫々透孔５０、５１を有する。バーコードリーダ２のメインケース６は、円筒状のフロントケース７の内部まで前方に且つ互いに平行に延びるロッド状の一対の延長部分６ａを有する（図１５）。
【００３９】
メインケース６の前端部を抽出した図１４を参照して、メインケース６の一対の延長部分６ａには、メイン基板１０及び電源基板１１の前端幅狭部の透孔５０、５１に関連した透孔５２、５３が形成され、この透孔５２、５３に挿入したネジ５４を使ってメイン基板１０及び電源基板１１がメインケース６（延長部分６ａ）に固定される。これにより、シャーシ３０の３つの爪３８で位置決めされたメイン基板１０、電源基板１１は、その各々が、メインケース６の前方に延びる延長部分６ａに１本のネジ５４によって固定される。換言すれば、この合計２本のネジ５４によってシャーシ３０がメインケース６に固定された状態となる。ネジ５４を締結する作業及びネジ５４を取り外す作業を容易にするために、メイン基板１０の透孔５０及び電源基板１１の透孔５１に、ネジ５４が螺着するナット５５を実装するのが好ましい。メインケース６の一対のロッド状の延長部分６ａには、また、その前端面にＬＥＤ基板１４がネジ６０を使って固定される。このリング状のＬＥＤ基板１４がレンズ組立体３６の周囲に配置され、ＬＥＤ基板１４に搭載された複数の照明用ＬＥＤ８０によって、レンズ組立体３６の外周側に位置するリング状の面光源が形成される。
【００４０】
図１７は、メインケース６を正面から見た図である。メインケース６は、その前端面に左右一対の取付座６２を有し、この一対の取付座６２を使ってカメラモジュール３２がメインケース６に固定される。図１６は、メインケース６の中にカメラモジュール３２を内蔵させた状態の正面図である、図１７は、カメラモジュール３２を取り除いた状態で描いたメインケース６の正面図である。
【００４１】
金属成型品であるメインケース６にカメラモジュール３２を固定することで、カメラモジュール３２をシャーシ３０に固定するのに比べてカメラモジュール３２の位置決め精度を高めて視野範囲の位置決め精度を高めることができる。
【００４２】
バーコードリーダ２が内蔵する主要な基板、つまり電源基板１０、メイン基板１２などと、レンズ組立体３６を含むカメラモジュール３２とをシャーシに組み付けた組立体をアウターケース（メインケース６）に内蔵させる構成を採用したことにより、複数種類のカメラモジュール３２を用意することで同じアウターケースを使って複数種類のバーコードリーダ２をユーザに提供することができる。また、異なる種類のカメラモジュール３２に対して、同一の電源基板１０やメイン基板１２などを採用し且つ同じアウターケースを使ってバーコードリーダ２を製造することができる。
【００４３】
前述したカメラモジュール３２の左右一対の取付部３５ｃがメインケース６の左右一対の取付座６２に着座され、４本のネジ６３を使って各取付部３５ｃが、対応する取付座６２に固定される（図１６）。
【００４４】
バーコードリーダ２の機能構成（図１８）：
図１８を参照して、バーコードリーダ２の機能構成を説明する。バーコードリーダ２は、第１、第２のＣＰＵ１０１、１０２と、共有バス１０３と、共有メモリ１０４と、前述した光学読取素子（ＣＭＯＳ）４３と、撮像制御回路１０５と有する。また、バーコードリーダ２は、ネットワークコントローラ１０６と、シリアル通信コントローラ１０７と、フラッシュメモリ１０８と、入出力コントローラ１１０と、ＤＭＡＣ１１１とを有している。
【００４５】
第１、第２のＣＰＵ１０１、１０２は、共有バス１０３を介して、共有メモリ１０４にアクセスするプロセッサであり、所定の演算処理回路からなる。共有バス１０３は、第１、第２のＣＰＵ１０１、１０２に共通のデータバスである。共有メモリ１０４は、撮像パラメータやデコードパラメータ、読取画像、デコード結果を保持するための揮発性の半導体記憶素子からなり、典型的にはＲＡＭ(ランダムアクセスメモリ)である。
【００４６】
光学読取素子４３は、ワークからの反射光を受光して読取画像を生成する例えばＣＭＯＳイメージセンサで構成される。撮像制御回路１０５は、光学読取素子４３からの画像信号を増幅する増幅器、増幅後の画像信号をデジタル信号に変換するＡ/Ｄ変換器などからなり、共有メモリ１０４内の撮像パラメータ、例えば、露光時間、ゲイン、フィルタ処理の有無に基づいて光学読取素子４３を制御する。
【００４７】
ＤＭＡＣ(Direct Memory Access Controller:ＤＭＡコントローラ)１１１は、光学読取素子４３により生成された読取画像を撮像制御回路１０５から共有バス１０３を介して共有メモリ１０４へ転送する。
【００４８】
ネットワークコントローラ１０６は、ＬＡＮ１１２(図１)を介してパーソナルコンピュータ３などの外部機器と通信する通信回路であり、例えば、ＥＭＡＣ(Ethernet Media Access Controller)からなる。シリアル通信コントローラ１０７は、シリアル通信インターフェースを介して外部機器と通信する通信回路であり、例えば、ＵＡＲＴ(Universal Asynchronous Receiver Transmitter)からなる。
【００４９】
フラッシュメモリ１０８は、画像ファイルを保持するための不揮発性の半導体記憶素子からなり、例えば、ＳＤ(Secure Digital、登録商標)カードなどの着脱可能なメモリカードが用いられる。入出力コントローラ１１０は、フラッシュメモリ１０８に対する画像ファイルの書き込み及び読み出しを制御する。
【００５０】
第１ＣＰＵ１０１は、ネットワークコントローラ１０６又はシリアル通信コントローラ１０７がコマンドを受信した場合に、当該コマンドが読み取りを開始させるための読取開始コマンドであれば、撮像制御回路１０５に対して読取開始を指示する。第１ＣＰＵ１０１は、また、光学読取素子４３から受け取った読取画像を共有メモリ１０４に転送する。
【００５１】
第２ＣＰＵ１０２は、第１ＣＰＵ１０１からのデコード処理要求に基づいて、共有メモリ１０４内から読取画像を読み出してデコード処理するデコード手段を構成する。第２ＣＰＵ１０２でデコード処理が終了したら、そのデコード結果を共有メモリ１０４内に書き込む。
【００５２】
第１ＣＰＵ１０１では、プログラムに従って実行される、撮像制御、デコード結果の送信制御、読取画像の送信制御、画像ファイルの送信制御などの処理に、その重要度の順に優先順位が割り付けられ、実行待ちの状態のタスクが複数存在するときには、実行待ち状態のタスクのうち優先順位の高いタスクにこの第１ＣＰＵ１０１のソースが割り当てられる。
【００５３】
図１９は、図１８のバーコードリーダ２の動作の一例を模式的に示した説明図であり、画像バッファ１１５及び共有メモリ１０４に格納されている設定バンク１１６が示されている。ＤＭＡＣ１１１により共有メモリ１０４内に転送された読取画像は、画像バッファ１１５として保持される。この画像バッファ１１５は、読取画像を保持するための画像記憶領域１１７と、読取画像の参照タスク数を保持するためのタスク数記憶領域１１８と、共有メモリ１０４に記憶されている設定バンク１１６を指定するバンク番号を保持するためのバンク番号記憶領域１１９とからなる。
【００５４】
画像記憶領域１１７には読取画像が格納される。設定バンク１１６には、撮像パラメータやデコードパラメータなどの各種設定が保持される。これらの撮像パラメータ、デコードパラメータはパーソナルコンピュータ３を使って設定される。設定バンク１１６は、上述したように、撮像パラメータとデコードパラメータとを含む。
【００５５】
共有メモリ１０４には複数の設定バンク１１６が記憶されており（図２０）、この設定バンク１１６は第１、第２のＣＰＵ１０１、１０２によって夫々参照される。バーコードリーダ２は、一つのバンク１１６に基づいて読み取りを実行して読み取りに失敗したときには、次のバンク１１６に基づいて読み取りが試行され、この第２のバンク１１６でも読み取りに失敗したときには、次のバンク１１６に基づいて読み取りを試行するというように、読み取りが成功するまで次々とバンク１１６の切り替えが行われる。
【００５６】
撮像系の設定パラメータの代表例を挙げれば次の通りである。
（１）照明のＯＮ/ＯＦＦ；
（２）照明の照射強度；
（３）照明の点灯パターン；
（４）露光時間；
（５）ゲイン；
（６）オフセット；
（７）ダイナミックレンジ；
（８）取り込み範囲。
【００５７】
読取系の設定パラメータ（デコード設定）の代表例を挙げれば次の通りである。
（１）シンボル（光学情報）の種類；
（２）フィルタ種類；
（３）フィルタ回数；
（４）チルト角；
（５）ＰＰＣ；
（６）デコードタイムアウト；
（７）取り込み範囲。
【００５８】
バーコードリーダ２の撮像シーケンス：
第１ＣＰＵ１０１は撮像処理を行うと共に光学読取素子（ＣＭＯＳ）４３から転送された読取画像を共有メモリ１０４に格納する。他方、第２ＣＰＵ１０２は共有メモリ１０４に格納された読取画像に対してデコード処理を行う。この第２ＣＰＵ１０２がデコード処理を行っている最中に、これに並行して第１ＣＰＵ１０１は次の画像処理を実行する。
【００５９】
第１ＣＰＵ１０１は、第２ＣＰＵ１０２にデコード処理要求を行った後一定時間が経過した時点で次の撮像処理を実行する。上記のデコード処理要求は、第１ＣＰＵ１０１が撮像処理を完了したときに行われる。このデコード処理要求から次の撮像処理を実行するまでの時間を撮像間隔Ｐ（図２１）と呼ぶと、第１ＣＰＵ１０１は、１つの撮像処理が完了すると、上記撮像間隔Ｐとして設定されている時間が経過するのを待って次の撮像処理が実行される。
【００６０】
撮像間隔Ｐは最も好ましくは次のように規定される。
（１）デコードタイムアウト時間Ｔaから撮像時間Ｔｂを引いた値を撮像間隔Ｐとする（下記の式１）。この撮像間隔Ｐは、バーコードリーダ２の内部で演算によって求められる。
（式１）Ｐ＝｛Ｔa−Ｔｂ｝
【００６１】
ここに、デコードタイムアウト時間Ｔaは、ユーザによって予め設定された最適値であり、第２ＣＰＵ１０２が成功裏にデコード処理に要する合理的な時間である。撮像時間Ｔｂは、露光時間とデータ転送速度で一義的に決まる値であり、データ転送速度は、画像の取り込み範囲の指定によって決まる。
【００６２】
上記式１に従って撮像間隔Ｐを設定したときには、デコードが成功するか否かの見極めがつくまで撮像処理をぎりぎりのタイミングまで待機させることができる。逆に、デコードに失敗した場合にはＰ＜｛Ｔa−Ｔｂ｝であれば、第２ＣＰＵ１０２はデコード待機状態にはならない。しかし、撮像間隔Ｐが短すぎた場合には、デコードが成功した場合に無駄な撮像処理を行うことになる。このことから、上記式１に基づく撮像間隔Ｐが最も合理的であるが、Ｐ＜｛Ｔa−Ｔｂ｝であればＰ≒｛Ｔa−Ｔｂ｝であってもよい。
【００６３】
上述の撮像間隔Ｐは各設定バンク１１６のパラメータに従って演算され、そして、対応する設定バンク１１６に記憶される。
【００６４】
（２）ユーザが撮像間隔Ｐを設定する。なお、Ｐ＞｛Ｔａ−Ｔｂ｝となる撮像間隔Ｐを設定した場合には、デコードが失敗した場合に、次のデコードを開始するまでに第１ＣＰＵ１０１の撮像処理が完了せず、これにより第２ＣＰＵ１０２はデコード待機状態に入ってしまうため、典型的には、ユーザは上記式１で求まる撮像間隔Ｐが設定される第１モードを選択するか、撮像間隔Ｐが「ゼロ」に設定される連続撮像モードのいずれかを選択することになる。
【００６５】
撮像処理及びデコード処理は、図２２に示すように各設定バンクを一回だけ使用する第１の方法を採用してもよいし、図２３に示すように共通の設定バンクを複数回使用する第２の方法を採用してもよい。すなわち、デコードが成功するまで予め設定した所定回数デコードを実行する場合に、第１の方法（図２２）では、次々と異なる設定バンクを使って撮像処理及びデコード処理が実行される。他方、第２の方法（図２３）では、所定回数（図２３の例では２回）、同じ設定バンクの下で撮像処理及びデコード処理が実行され、その次に、第２設定バンクの下で所定回数撮像処理及びデコード処理が実行され、以後、第３設定バンク、第４設定バンクの下で所定回数撮像処理及びデコード処理が実行される。勿論、設定バンクの数又はデコードの回数は予め設定される。
【００６６】
第１具体例（図２４）：
図２４を参照して第１具体例を説明する。この第１具体例は、設定バンク１１６に登録されている撮像間隔Ｐを使って撮像処理が実行された例である。設定バンクの撮像間隔Ｐを使用するかユーザが設定した撮像間隔Ｐを使用するかはユーザの選択に委ねられる。
【００６７】
第１ＣＰＵ１０１は、第１設定バンク、第２設定バンク・・・の順で撮像処理が実行され、また、第２ＣＰＵ１０２では、第１設定バンク、第２設定バンク・・・の順でデコードが実行される。この図２４の例では、第１回目のデコード処理はタイムアウトでキャンセルされ、次の第２回目のデコード処理でデコードが成功している。第２回目のデコード処理は、その前に第１ＣＰＵ１０１で第２回目の画像処理が完了しているため、第１回目のデコード処理がキャンセルされた直後から次のデコード処理を開始することができる。
【００６８】
この図２４の例では、各撮像毎に異なる設定バンクが用いられており、各設定バンクには異なるデコードタイムアウト時間が設定される。デコードタイムアウト時間が異なることから、上記式１で求まる撮像間隔Ｐも各撮像毎に異なる値となる。これにより、第２ＣＰＵ１０２にデコード待機状態が発生しないように各設定バンクに対応した撮像間隔Ｐを自動的に設定することができる。
【００６９】
第２具体例（図２５）：
図２５を参照して第２具体例を説明する。この第２具体例は、第１具体例と同様に、設定バンク１１６に登録されている撮像間隔Ｐを使って撮像処理が実行された例である。この第２具体例は、共通の設定バンクで複数回デコード処理を実行した例を示す。図２５から分かるように、この具体例２は、第２回目のデコード処理が成功した例である。
【００７０】
第３具体例（図２６）：
図２６を参照して第３具体例を説明する。この第３具体例は、設定バンク１１６に登録されている撮像間隔Ｐを使って撮像処理が実行された例である。
【００７１】
第１ＣＰＵ１０１は、第１設定バンク、第２設定バンク、・・の順で撮像処理が実行され、また、第２ＣＰＵ１０２では、第１設定バンク、第２設定バンク、・・の順でデコード処理が実行される。この図２６の例では、第１回目のデコード処理はタイムアウトでキャンセルされ、次の第２回目のデコード処理が不成功で終わっており、第３回目のデコード処理でデコードが成功している。第２回目、第３回目のデコード処理は、その前に第１ＣＰＵ１０１で第２回目、第３回目の画像処理が完了しているため、殆どロスタイム無しにデコード処理を開始できる。換言すると、第１ＣＰＵ１０１での画像処理を途中で終了させることなく最後まで画像処理を実行させることができる。したがって、第１ＣＰＵ１０１での画像処理を無駄にすることなくデコード処理ができる。
【００７２】
第４具体例（図２７）：
図２７を参照して第４具体例を説明する。この第４具体例は、撮像間隔Ｐが「ゼロ」に設定される連続撮像モードをユーザが選択した例を示す。この連続撮像モードでの例示は、第１回目のデコードがタイムアウトでキャンセルされ、次の第２回目のデコード処理でデコードが成功した例である。撮像間隔Ｐがゼロであることから、第１ＣＰＵ１０１は次々と撮像処理を実行することになる。この連続的に撮像するモードでは、例えば高速で移動してくるワークに対して撮像タイミングが一定であるため、ワークの光学情報の読み取りが安定することから、この安定した読み取りによってデコード成功確率を高めることができるというメリットがある。しかしながら、図２７の連続撮像モードでは、第１ＣＰＵ１０１は、撮像処理よりも優先順位の低いタスクの実行に遅れがでる。
【００７３】
この第４の具体例に対して、撮像間隔Ｐを設けた場合には、この撮像間隔Ｐの期間に第１ＣＰＵ１０１は、撮像処理よりも優先順位の低いタスクにリソースを割り当てることができる。したがって、撮像間隔Ｐを設けることで、この期間に優先順位の低いタスクを実行することができる。しかも、撮像間隔Ｐは、デコードタイムアウト時間（Ｔa）と撮像処理に要する時間（Ｔｂ）に基づいて決定することにより、撮像間隔Ｐを大きく取りすぎて、第２ＣＰＵ１０２にデコード待機状態を発生してしまうのを回避することができる。このように、第１ＣＰＵ１０１のリソースを最大限に有効活用しながら、第２ＣＰＵ１０２のデコード待機状態の発生を防止することができる。その一方で図２７を参照した連続撮像モードを選択できることから、ワークが比較的高速に移動している場合にも対応することができる。
【００７４】
なお、実施例の説明では、第１、第２の２つのＣＰＵ１０１、１０２を備えた構成を前提として説明したが、これを一つのＣＰＵで第１、第２の２つのＣＰＵ１０１、１０２の処理を実行するようにしてもよい。すなわち、一つのＣＰＵで撮像処理、デコード処理、画像データの送信、画像の保存などの複数のタスクを実行する場合に、デコード待機状態を防ぐために撮像間隔Ｐを設定するようにしてもよい。一般的に撮像処理は優先順位の高いタスクと考えられており、デコード処理は他のタスクが実行されない比較的低位の優先順位に割り当てられるのが通常である。各撮像結果に対するデコードタイムアウト時間は予めユーザにより設定される。したがって、デコードタイムアウトになるときには次回の撮像処理が完了するように、デコード処理よりも上位の優先順位に割り当てられた撮像処理タスクにＣＰＵの処理を移行させることで、デコードタイムアウトになったタイミングでは撮像処理が完了しているように制御することができる。
【００７５】
すなわち、一つのＣＰＵであっても、上述した第１、第２のＣＰＵ１０１、１０２を用いた実施例と同様に、撮像間隔Ｐを設けて撮像処理を実行することにより、撮像処理が開始する直前までデコード成功の可否を見極めることができるので、無駄な撮像処理を実行する可能性を極めて小さく抑えることができる。特に、単一のＣＰＵを用いて撮像処理及びデコード処理を行う場合は、デコード処理中にデコード処理よりも優先順位の高い、例えば画像保存タスクなどの別の処理に入った場合には、デコード処理が中断してしまうため、画像処理を連続して行わずに撮像間隔Ｐを設ける本発明は、できる限りデコード処理にＣＰＵのリソースを割り当てることができるという点で非常に有効である。
【産業上の利用可能性】
【００７６】
本発明は光学情報のデコード処理に適用される。
【符号の説明】
【００７７】
１  バーコードリーダ・システム
２    バーコードリーダ
３    パーソナルコンピュータ
１０１    第１ＣＰＵ
１０２    第２ＣＰＵ
１０３  共有バス
１０４  共有メモリ
１１６  設定バンク
【図１】
2012064178.tif 000003
【図２】
2012064178.tif 000004
【図３】
2012064178.tif 000005
【図４】
2012064178.tif 000006
【図５】
2012064178.tif 000007
【図６】
2012064178.tif 000008
【図７】
2012064178.tif 000009
【図８】
2012064178.tif 000010
【図９】
2012064178.tif 000011
【図１０】
2012064178.tif 000012
【図１１】
2012064178.tif 000013
【図１２】
2012064178.tif 000014
【図１３】
2012064178.tif 000015
【図１４】
2012064178.tif 000016
【図１５】
2012064178.tif 000017
【図１６】
2012064178.tif 000018
【図１７】
2012064178.tif 000019
【図１８】
2012064178.tif 000020
【図１９】
2012064178.tif 000021
【図２０】
2012064178.tif 000022
【図２１】
2012064178.tif 000023
【図２２】
2012064178.tif 000024
【図２３】
2012064178.tif 000025
【図２４】
2012064178.tif 000026
【図２５】
2012064178.tif 000027
【図２６】
2012064178.tif 000028
【図２７】
2012064178.tif 000029
【手続補正書】
【提出日】平成22年9月20日(2010.9.20)
【手続補正１】
【補正対象書類名】図面
【補正対象項目名】図１６
【補正方法】変更
【補正の内容】
【図１６】
2012064178.tif 000030