(57)【特許請求の範囲】
【請求項１】
対象物体についての複数の計測値を含むセンシングデータが入力され、前記センシングデータに基づいて、ソフトウェアプログラムの実行による処理と論理回路の動作による処理との協動によって対象物体の物理的性状もしくは形状に関する計測演算値を演算する計測センサであって、
センシングデータが入力されるデータ入力部と、
ソフトウェアプログラムを記憶する記憶部と、
ソフトウェアプログラムの演算条件が入力される演算条件入力部と、
共通のチップに集積された論理回路部とメモリ部とを含む集積回路部とを備え、
前記集積回路部に含まれる前記論理回路部は、
プログラム可能な論理回路によって中央演算処理回路が形成され、前記ソフトウェアプログラムを参照して当該ソフトウェアプログラムによって既定された演算を実行するソフトウェアプログラム実行部と、
プログラム可能な論理回路によって予め処理内容が回路的に形成された論理回路処理部とを有し、
前記ソフトウェアプログラム実行部は、前記ソフトウェアプログラムの実行により、前記演算条件入力部から入力される演算条件に基づいて演算内容を決定し、
前記論理回路処理部は、前記データ入力部を通じて入力されたセンシングデータに含まれる複数の計測値に対して処理を実行して処理データを算出し、算出した処理データを前記メモリ部に格納し、
前記ソフトウェアプログラム実行部は、前記メモリ部に格納された処理データを取得して、格納された処理データに基づいて対象物体についての物理的性状もしくは形状に関する計測演算値を演算する、計測センサ。
【請求項２】
前記ソフトウェアプログラム実行部は、前記ソフトウェアプログラムを実行することにより前記演算条件入力部から入力される演算条件に基づいて、入力されたセンシングデータに含まれる複数の計測値に対して、既定の個数単位により処理を順次実行して処理データを算出するとともに、前記既定の個数単位を、前記演算条件入力部によって入力される演算条件に基づいて設定する、請求項１に記載の計測センサ。
【請求項３】
前記計測センサは、表示部をさらに有し、
前記表示部は、処理の個数単位を定める候補となる条件を表示し、
前記演算条件入力部は、外部からの操作を受け付ける操作部を有し、
前記操作部からの操作を受けて前記候補となる条件が確定され、
前記ソフトウェアプログラム実行部は、確定された前記候補となる条件に基づいて前記規定の個数単位を設定する、請求項２に記載の計測センサ。
【請求項４】
前記ソフトウェアプログラム実行部および前記論理回路処理部の一方は、算出された処理データを順次メモリ部に格納する動作を繰り返し実行し、
前記ソフトウェアプログラム実行部および前記論理回路処理部の他方は、前記処理データを所定のデータ数毎に順次メモリ部から読み出す動作を繰り返し実行する、請求項１に記載の計測センサ。
【請求項５】
前記処理は、メディアン処理である、請求項２に記載の計測センサ。
【請求項６】
前記処理は、平均処理である、請求項２に記載の計測センサ。
【請求項７】
前記処理は、ノイズ除去処理である、請求項２に記載の計測センサ。
【請求項８】
前記センシングデータおよび前記処理データは、ニ次元データであり、
前記論理回路処理部は、変位計測のための演算として前記ニ次元データのライン毎の加算処理を実行する、請求項１に記載の計測センサ。
【請求項９】
前記論理回路処理部は、形状計測のための演算として重心演算処理を実行する、請求項１に記載の計測センサ。
【請求項１０】
前記計測演算値を出力する出力部をさらに備える、請求項１に記載の計測センサ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、対象物体の物理的性状もしくは形状に関する計測演算値を演算する計測センサであって、画像データや波形データ等といった大容量データを取り扱う計測センサに関する。
【背景技術】
【０００２】
ＰＳＤ（位置検出素子）を用いた変位センサである計測センサとしては、信号処理部と検出部とが設けられる。検出部は投光用の光源と受光用のＰＳＤとを含み、ＰＳＤからはアナログ検出信号が出力される。このアナログ検出信号は、電気コードを介して、信号処理部へと送られる。信号処理部の中枢は、マイクロプロセッサを主体としたＣＰＵにより構成され、検出部から送られてくるアナログ検出信号に基づいて距離等が算出される。
【０００３】
また、別のセンシングシステムとして２次元撮像素子を用いた変位センサである計測センサとしては、信号処理ユニットとセンサヘッドユニットとが分離独立したものが知られている（特許文献１）。センサヘッドには投光用のレーザダイオードと受光用のＣＣＤとが含まれている。ＣＣＤから得られる信号に基づいて生成された映像信号は電気コードを介して信号処理ユニットへと送られる。信号処理ユニットはマイクロプロセッサを主体として構成されるＣＰＵとプログラム可能な論理回路であるＦＰＧＡ（Ｆｉｅｌｄ Ｐｒｏｇｒａｍｍａｂｌｅ Ｇａｔｅ Ａｒｒａｙ）とを含み、ＣＰＵおよびＦＰＧＡは、計測処理、表示制御処理等を実行する。そして、ＣＰＵとは別にＦＰＧＡを用いて高度な計測処理を実行可能な構成が示されている。
【０００４】
この点で、近年のセンシングシステムにおいては、波形データや画像データ等といった大容量データを取り扱う場合が一般的であり、特許文献１には、高度な計測処理を実行する際のデータ伝送を高速にするための方式が開示されている。
【特許文献１】特開２００６−４８６３２号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
しかしながら、データ伝送を実行する前の前処理として、ＣＰＵとは別にＦＰＧＡを用いた構成においては、ＣＰＵとＦＰＧＡとの間で計測データの授受を実行し、ＣＰＵにおいてフィルタリング処理等を実行する必要があるためその授受に所定の時間が必要となる。特に上述したように近年においては、大容量データを取り扱う場合が一般的であり、ＦＰＧＡで処理された計測データを一旦メモリに格納し、そして、メモリから計測データを読み出してＣＰＵにおいてフィルタリング処理等を実行する方式の場合には、データ量に従ってＣＰＵの処理時間が長くなり高速な計測処理が実行できないという問題がある。
【０００６】
本発明は、上記のような問題を解決するためになされたものであって、高速な計測処理を実行可能な計測センサを提供することを目的とする。
【課題を解決するための手段】
【０００７】
本発明に係る計測センサは、対象物体についての複数の計測値を含むセンシングデータが入力され、センシングデータに基づいて、ソフトウェアプログラムの実行による処理と論理回路の動作による処理との協動によって対象物体の物理的性状もしくは形状に関する計測演算値を演算する計測センサであって、センシングデータが入力されるデータ入力部と、ソフトウェアプログラムを記憶する記憶部と、ソフトウェアプログラムの演算条件が入力される演算条件入力部と、共通のチップに集積された論理回路部とメモリ部とを含む集積回路部とを備える。集積回路部に含まれる論理回路部は、プログラム可能な論理回路によって中央演算処理回路が形成され、ソフトウェアプログラムを参照して当該ソフトウェアプログラムによって既定された演算を実行するソフトウェアプログラム実行部と、プログラム可能な論理回路によって予め処理内容が回路的に形成された論理回路処理部とを有する。ソフトウェアプログラム実行部は、ソフトウェアプログラムの実行により、演算条件入力部から入力される演算条件に基づいて演算内容を決定し、ソフトウェアプログラム実行部および論理回路処理部の一方は、データ入力部を通じて入力されたセンシングデータに含まれる複数の計測値に対して処理を実行して処理データを算出し、算出した処理データをメモリ部に格納する。ソフトウェアプログラム実行部および論理回路処理部の他方は、メモリ部に格納された処理データを取得して、格納された処理データに基づいて対象物体についての物理的性状もしくは形状に関する計測演算値を演算する。
【０００８】
プログラム可能な論理回路によって予め処理内容が回路的に形成された論理回路処理部には、計測センサ行う処理の中で、外部からの設定によらず固定的に行う処理により形成することができる。
【０００９】
ソフトウェアプログラム実行部は、演算条件入力部を通じてユーザが指定した演算条件に従って変更される演算を実行させることができる。
【００１０】
好ましくは、ソフトウェアプログラム実行部は、ソフトウェアプログラムを実行することにより演算条件入力部から入力される演算条件に基づいて、入力されたセンシングデータに含まれる複数の計測値に対して、既定の個数単位により処理を順次実行して処理データを算出するとともに、既定の個数単位を、演算条件入力部によって入力される演算条件に基づいて設定する。
【００１１】
特に、計測センサは、表示部をさらに有し、表示部は、処理の個数単位を定める候補となる条件を表示し、演算条件入力部は、外部からの操作を受け付ける操作部を有し、操作部からの操作を受けて候補となる条件が確定され、ソフトウェアプログラム実行部は、確定された候補となる条件に基づいて規定の個数単位を設定する。
【００１２】
好ましくは、ソフトウェアプログラム実行部および論理回路処理部の一方は、算出された処理データを順次メモリ部に格納する動作を繰り返し実行する。ソフトウェアプログラム実行部および論理回路処理部の他方は、処理データを所定のデータ数毎に順次メモリ部から読み出す動作を繰り返し実行する。
【００１３】
特に、処理は、メディアン処理である。
特に、処理は、平均処理である。
【００１４】
特に、処理は、ノイズ除去処理である。
好ましくは、センシングデータおよび処理データは、ニ次元データであり、論理回路処理部は、変位計測のための演算としてニ次元データのライン毎の加算処理を実行する。
【００１５】
好ましくは、論理回路処理部は、形状計測のための演算として重心演算処理を実行する。
【００１６】
好ましくは、計測演算値を出力する出力部をさらに備える。
【発明の効果】
【００１７】
本発明に係る計測センサは、プログラム可能な論理回路で形成される論理回路部とメモリ部とを共通のチップに集積させ、論理回路部は、プログラム可能な論理回路によって中央演算処理回路が形成され、ソフトウェアプログラムを参照して当該ソフトウェアプログラムによって既定された演算を実行するソフトウェアプログラム実行部と、プログラム可能な論理回路によって予め処理内容が回路的に形成された論理回路処理部とを有する構成である。したがって、演算処理は、共通のチップ内で実行される構成であるため高速な演算処理が可能である。すなわち、高速な計測処理が可能である。
【発明を実施するための最良の形態】
【００１８】
本発明の実施の形態について図面を参照しながら詳細に説明する。なお、図中の同一または相当部分については同一符号を付してその説明は繰返さない。
【００１９】
本発明の計測センサは、対象物体についての複数の計測値を含むセンシングデータが入力され、センシングデータに基づいて、ソフトウェアプログラムの実行による処理と論理回路の動作による処理との協動によって対象物体の物理的性状もしくは形状に関する計測演算値を演算するものである。
【００２０】
図１は、本発明の実施の形態に従う計測センサを構成する信号処理ユニットであるセンサコントローラ１の外観斜視図である。
【００２１】
図１を参照して、センサコントローラ１はケース１０を有する１つのユニットとして構成される。ケース１０の正面１０ａは上下に略２分割されており、上部領域には表示部１１が設けられている。この例にあっては、表示部１１は、セグメント表示器１１ａと液晶式キャラクタ表示器１１ｂとから構成されている。
【００２２】
ケース１０の正面１０ａの下部領域は、操作部配置領域とされている。この操作部配置領域には、下端縁を支点として手前に開く操作部蓋１２が設けられている。操作部蓋１２を開けると、その内部には、図示しないが数値キー、ファンクションキー、スライドスイッチ等といった各種の操作子が配置されている。
【００２３】
ケース１０の下面１０ｃには、ＵＳＢコネクタ１３とＲＳ−２３２Ｃコネクタ１４とが設けられている。これらのコネクタ１３，１４はセンサコントローラ１とパソコン（ＰＣ）等との通信を行うために使用される。ケース１０の下面１０ｃからは外部接続コード３が引き出されている。この外部接続コード３内には電源線、外部入力線、外部出力線などが含まれている。
【００２４】
ケース１０の上面１０ｂには、センサヘッドコネクタ１６が設けられ、後述するセンサヘッド２と結合される。なお、対象物体についての複数の計測値を含むセンシングデータは、当該センサヘッド２からセンサヘッドコネクタ１６を介して入力される。
【００２５】
図２は、本発明の実施の形態に従うセンシング中のセンサヘッド２を説明する図である。
【００２６】
図２を参照して、センサヘッド（検知部）２のケース２０からはセンサケーブル４が引き出され、その先端にはセンサヘッドコネクタ４ａが取り付けられている。このセンサヘッドコネクタ４ａが、センサコントローラ１のケース１０のセンサヘッドコネクタ１６と結合される。
【００２７】
センサヘッド２のケース２０内には、投光用の半導体レーザダイオード（ＬＤ）と受光用の２次元撮像素子（例えば、ＣＣＤイメージセンサ、ＣＭＯＳイメージセンサ等）が設けられている。センサヘッド２は、半導体レーザダイオード（ＬＤ）から発せられたレーザ光をスリット光の状態にして対象物体６に照射する。図において、Ｌ１はスリット光の照射光である。対象物体６上の照射光像ＩＭはセンサヘッド２内に設けられたレンズにより２次元撮像素子の受光面上に結像される。図中、Ｌ２はスリット光の反射光である。ここで、投光光軸と受光光軸とは所定の角度をなしている。
【００２８】
センサヘッド２は、この反射光に基づいて対象物体についての複数の計測値を含むセンシングデータを生成してセンサコントローラ１に出力する。
【００２９】
なお、このセンシングデータは、時系列的に順次入力されるデータを含み、一次元データおよび二次元データを含む。一次元データは、波形データを含み、二次元データは、画像データを含む。
【００３０】
図３は、本発明の実施の形態に従うセンサコントローラ１の概略ブロック図である。
図３を参照して、センサコントローラ回路１は、センサヘッドコネクタ１６を有しており、センサヘッドコネクタ１６には、図２で説明したセンサヘッド２から引き出されたセンサケーブル４の先端に取り付けられたセンサヘッドコネクタ４ａが接続される。外部Ｉ／Ｆコネクタ１９は、図１に示されるＵＳＢコネクタ１３、ＲＳ−２３２Ｃコネクタ１４、及び外部接続コード３を総称するものであり、この外部Ｉ／Ｆコネクタ１９を介してパソコン（ＰＣ）やプログラマブル・コントローラ（ＰＬＣ）等への接続が行われる。
【００３１】
センサコントローラ１の内部には、センシングデータが入力されるセンサヘッドＩ／Ｆ回路１１０（データ入力部）と、制御部１２０と、入出力Ｉ／Ｆ回路ブロック１５０と、操作部１７と、メモリ１８と、表示部１１とが設けられる。なお、メモリ１８において、制御部１２０における所定の演算処理を実行するためのソフトウェアプログラムが格納されているものとする。なお、予め記憶部に格納されている必要は無くネットワークを介して必要なソフトウェアプログラムをダウンロードすることも当然に可能である。
【００３２】
また、操作部１７は、上述した数値キー、ファンクションキー、スライドスイッチ等といった各種の操作子を含み、当該操作子を用いることにより後述するフィルタ処理における演算条件の入力が可能である。
【００３３】
制御部１２０は、プログラム可能な論理回路であるＦＰＧＡ１３０とセンサコントローラの動作を制御するＣＰＵブロック１４０とを有する。ＣＰＵブロック１４０には、マイクロプロセッサ（ＣＰＵ）やその周辺回路が含まれている。ＦＰＧＡ１３０は、回路データをダウンロードすることによって回路構成をプログラム（コンフィグレーション）することが可能なＬＳＩ（大規模集積回路）である。
【００３４】
ＦＰＧＡ１３０は、論理ブロック、スイッチマトリクス、クロスポイントスイッチの組み合わせによって、任意の論理回路を擬似的に実現する。論理ブロックは、メモリとマルチプレクサとを組み合わせたＬＵＴ（Ｌｏｏｋ Ｕｐ Ｔａｂｌｅ）によって、様々な論理を実現する。スイッチマトリクスとクロスポイントスイッチは、それぞれの論理ブロック間の接続を行うが、この接続自体はメモリ１８によって制御され、メモリ１８には電源投入直後にＦＰＧＡ１３０にロードするための回路データが格納され、ＣＰＵブロック１４０の指示に基づいて供給されるものとする。なお、ＲＳ−２３２ＣやＵＳＢ等のインタフェースを経由して外部から回路データを入力してＦＰＧＡ１３０に転送することにより、電源投入時に限らず、動作中においても回路データの変更も可能である。
【００３５】
なお、ＦＰＧＡにおいては、アンチフューズタイプ、ＥＥＰＲＯＭタイプ、フラッシュＲＯＭタイプ、ＳＲＡＭタイプ等があるがいずれのタイプを適用することも可能である。
【００３６】
また、ＣＰＵブロック１４０は、ＦＰＧＡ１３０での計測処理結果に基づいて所定の演算処理を実行して表示処理等を実行する。例えば、ＦＰＧＡ１３０での演算結果に基づいて格納された後述する内部メモリ２５０をアクセスして、例えば、画素単位で表された計測結果を取得し、計測結果をｍｍ単位の実座標へ変換し、表示部１１に表示する表示処理等を実行する。
【００３７】
図４は、本発明の実施の形態に従うＦＰＧＡ１３０の内部回路の詳細を示すブロック図である。
【００３８】
図４を参照して、ＦＰＧＡ１３０は、共通のチップに集積され、内部ロジック部３００と、内部ロジック部３００を制御するソフト・マクロのマイクロプロセッサ２００と、計測データあるいは演算処理した処理データを格納する内部メモリ２５０とを含む。ソフト・マクロのマイクロプロセッサ（以下、ソフトプロセッサとも称する）は、ＦＰＧＡを用いて構成された中央演算処理装置（ＣＰＵ）であり、メモリ１８に格納されているソフトウェアプログラムを参照して、ソフトウェアプログラムによって既定された演算処理、後述するフィルタリング処理を実行する。
【００３９】
内部ロジック部３００は、センシング目的に応じて内容が設計され、演算内容に応じて配線されたハードウェアにより複数の計測処理ロジックを組み合わせて演算処理を実行する。本例においては、計測処理ロジックの一例として濃度重心情報を計測するための濃度重心情報計測処理ロジック３０５と、濃度ピーク情報を計測するための濃度ピーク情報計測処理ロジック３１０と、エッジ中心情報を計測するためのエッジ中心情報計測処理ロジック３１５と、濃度総和情報を計測するための濃度総和情報計測処理ロジック３２０とが示される。
【００４０】
また、内部ロジック部３００と外部との間でデータの授受を実行するインターフェイス（Ｉ／Ｆ）３２１〜３２４と、インターフェイス（Ｉ／Ｆ）３２１〜３２４を選択的に切り替えるセレクタ３３０とを含む。
【００４１】
ソフトプロセッサ２００は、内部メモリ２５０と内部ロジック部３００との間のデータの授受を制御するとともに、内部ロジック部３００で演算処理して内部メモリ２５０に格納された処理データに基づいて後述するフィルタ処理を実行するコントローラ２０５と、ソフトプロセッサ２００と外部との間でデータの授受を実行するインターフェイス（Ｉ／Ｆ）２１０，２１５〜２１８とを含む。
【００４２】
具体的には、コントローラ２０５は、内部ロジック部３００に対して所定の計測処理を実行するように指示して、内部メモリ２５０と内部ロジック部３００との間でデータの授受を制御し、計測結果を内部メモリ２５０に格納する。なお、内部ロジック部３００において所定の計測処理が実行されて内部メモリ２５０に格納された場合、内部メモリ２５０の所定の領域を用いて演算処理が実行されたことを示すＦＰＧＡ結果フラグを立てるものとする。当該フラグにより内部メモリ２５０に格納されているデータが内部ロジック部３００において既に処理したデータかあるいは未処理のデータか否かを判別することが可能である。
【００４３】
インターフェイス（Ｉ／Ｆ）２１０は、コントローラ２０５と内部メモリ２５０との間でデータの授受を実行する。インターフェイス（Ｉ／Ｆ）２１５〜２１８は、内部ロジック部３００のインターフェイス（Ｉ／Ｆ）３２１〜３２４にそれぞれ対応して設けられ、制御信号ＢＫＳに基づくセレクタ３３０からの選択指示に基づいて内部ロジック部３００のインターフェイス（Ｉ／Ｆ）が選択されて、対応する計測処理ロジックとコントローラ２０５とのデータの授受が実行される。なお、この制御信号ＢＫＳは、コントローラ２０５から出力されるものとする。なお、本例においては、一例として内部ロジック部３００をコントローラ２００が制御するものとして説明するが、外部の例えばＣＰＵブロック１４０により制御するようにすることも可能である。
【００４４】
図５は、濃度重心情報計測処理ロジック３０５で実行される演算処理を説明する図である。
【００４５】
図５（ａ）を参照して、形状計測として一例として凸型の形状の対象物体にレーザ光を照射した場合が示されている。図５（ｂ）には、センサヘッド２からの計測結果である画像情報として２次元撮像素子の受光面上に結像された場合が示されている。凸型の部分の反射光とそれ以外の反射光に基づいて結像された場合が示されている。
【００４６】
ここでは、２次元撮像素子の受光面上に結像された画像が１０×１０の行列状に配置された画素で構成される画面に表示された場合が示されている。一番左端の画素について画素Ｐ（０，０）として表記している。そして、右矢印方向をＸ方向（０〜９）、下矢印方向をＹ方向（０〜９）とする。
【００４７】
センサヘッド２からの計測結果である画像情報がセンサコントローラ１に与えられ、所定の演算処理ここでは、濃度重心情報計測処理ロジック３０５を用いて図５（ｃ）に示されるように濃度重心情報を演算処理する。ここでは、一例としてＹ方向毎の濃度重心演算処理が実行された濃度重心演算結果（１次元波形データ）が示されており、当該結果に基づいて対象物体の形状等を計測することが可能である。なお、濃度重心演算処理については一般的な技術であるためその詳細な説明については省略する。
【００４８】
図６は、濃度総和情報計測処理ロジック３２０で実行される演算処理を説明する図である。
【００４９】
図６（ａ）を参照して、変位計測として一例として透明体の対象物体にレーザ光を照射した場合が示されている。図６（ｂ）には、センサヘッド２からの計測結果である画像情報として２次元撮像素子の受光面上に結像された場合が示されている。上面からの反射光と下面からの反射光に基づいて結像された場合が示されている。
【００５０】
上述したようにここでは、２次元撮像素子の受光面上に結像された画像が１０×１０の行列状に配置された画素で構成される画面に表示された場合が示されている。一番左端の画素について画素Ｐ（０，０）として表記している。そして、右矢印方向をＸ方向（０〜９）、下矢印方向をＹ方向（０〜９）とする。
【００５１】
センサヘッド２からの計測結果である画像情報がセンサコントローラ１に与えられ、所定の演算処理ここでは、濃度総和情報計測処理ロジック３２０を用いて図６（ｃ）に示されるように濃度を加算処理する。ここでは、一例としてＹ方向毎の濃度の総和（ライン加算処理）を演算処理した場合（１次元波形データ）が示されており、後述するが当該結果に基づいて対象物体の上面および下面との距離等を計測することが可能である。なお、濃度の総和を演算処理（加算処理）する方式ついては一般的な技術であるためその詳細な説明については省略する。
【００５２】
図７は、濃度ピーク情報計測処理ロジック３１０，エッジ中心情報計測処理ロジック３１５で実行される演算処理を説明する図である。
【００５３】
図７を参照して、ここでは、図６で説明した濃度総和情報計測処理ロジック３２０で演算処理された結果に基づいて縦軸が濃度加算値、横軸がＸ方向の画素位置を示すデータ波形に変換された場合が示されている。
【００５４】
濃度ピーク情報計測処理ロジック３１０は、例えば濃度総和情報計測処理ロジック３２０で演算処理した結果に基づいて濃度加算値のピーク値（濃度ピーク値）を検出する。なお、ここでは、エッジレベルとしてしきい値レベルよりも高いピーク値が検出される。
【００５５】
また、エッジ中心情報計測処理ロジック３１５は、濃度加算値のピーク値に対応する画素を検出する。
【００５６】
本例においては、２つの濃度ピーク値を検出することが可能であり、検出された濃度ピーク値に対応する画素Ｐｉ，Ｐｊの間隔（画素数）から対象物体の上面および下面との距離を計測することが可能である。
【００５７】
本例においては、内部ロジック部３００にＦＰＧＡを用いて設計される４つの計測処理ロジックについて説明したが特にこれに限られず、センシング目的に応じてさらに別の計測処理ロジックを設計することも可能である。また、プログラム可能であるため必要に応じて再設計することも可能である。なお、当該計測処理ロジックを用いた処理データは、ソフトプロセッサ２００を介して内部メモリ２５０に格納され、上述した処理済みであることを示すフラグが立てられるものとする。なお、センシングデータの入力に従って、当該計測処理ロジックを用いた処理が繰り返し実行され、そして、実行結果である処理データが内部メモリ２５０に繰り返し格納される。
【００５８】
そして、ソフトプロセッサ２００によりさらにフィルタリング処理が実行される。
ソフトプロセッサ２００においても、内部メモリ２５０に格納されている処理データを所定のデータ数毎に読み出して順次フィルタリング処理を繰り返す。
【００５９】
図８は、ソフトプロセッサ２００のコントローラ２０５を用いてフィルタリング処理を実行する場合を説明するフロー図である。
【００６０】
コントローラ２０５は、内部メモリ２５０に格納された内部ロジック部３００で計測処理が実行された計測データ（１次元波形データ）を読み出してフィルタリング処理を実行する。フィルタリング処理を実行した後のデータについてはＣＰＵブロック１４０に出力されて計測結果等が表示制御処理等されることになる。
【００６１】
図８を参照して、ソフトプロセッサ２００のコントローラ２０５がフィルタリング処理を開始（ステップＳ０）した場合、まず、ＦＰＧＡ１３０の内部ロジック部３００の計測処理ロジックで演算された演算処理結果が内部メモリ２５０に格納されているかどうかを判定する。すなわちＦＰＧＡ結果フラグが有るか否かが判定される（ステップＳ１）。
【００６２】
ステップＳ１においてＦＰＧＡの計測処理ロジックで演算された演算処理結果が内部メモリに格納されていると判断される場合には、外部からフィルタ条件を取得する（ステップＳ２）。具体的には後述するメディアン処理および平均処理等のフィルタリング処理を実行するための演算条件等を取得する。この演算条件は、上述した操作部１７の操作に従って、例えば、フィルタリング処理を実行する際のデータ単位数（既定の個数単位）等の条件が入力され、当該入力に従うデータ単位数毎に順次フィルタリング処理が実行される。なお、当該データ単位数等の条件は、上述した操作部１７の操作に従って、図１で説明したセグメント表示器１１ａあるいは液晶式キャラクタ表示器１１ｂに条件設定のための表示がなされ、所定の操作子の操作に従って数値等の条件の設定変更が可能であるものとする。すなわち、操作部１７からの操作を受けて候補となる条件が確定され、確定された候補となる条件に基づいてデータ単位数（規定の個数単位）等の条件が設定される。
【００６３】
そして、次のステップＳ３に進み、メディアン処理を実行する（ステップＳ３）。メディアン処理は、複数のデータ値に含まれるデータ値の中の中央値を検出する処理である。例えば、一例として図６（ｃ）に示された加算処理結果データ値を用いて説明する。３個のデータ値に含まれる中央値を検出する場合について説明する。左側からのデータ値が「１０、５０、１５０」である場合には中央値として「５０」が検出される。そして、１つ右にずれてデータ値が「５０、１５０、６０」である場合に中央値として「６０」が検出される。同様の方式に従ってメディアン処理を実行することによりノイズを低減することができる。
【００６４】
そして、次のステップＳ４において平均処理を実行する（ステップＳ４）。平均処理は、複数のデータ値の平均値を演算する処理である。当該演算処理によりさらにノイズを低減することができる。なお、平均処理には、例えば、既定されたデータ毎に平均値を得る平均処理や、データが入力される度に、順次その入力されたデータを基準として過去の所定間隔にある既定数の平均値を順次算出する移動平均処理も含むものとする。
【００６５】
そして、次のステップＳ５においてＮ＝１に設定し、得られた演算結果から特徴点の計測処理を実行する。本例においては、特徴点を計測処理するためには、計測条件を変えて判断する必要がある。次に、特徴点Ｎの計測条件が取得される（ステップＳ６）。ここでは、特徴点Ｎ（＝１）の計測処理を実行した後、次に計測条件を変えて特徴点Ｎ（＝２）の計測処理を実行する。そして、次に特徴点Ｎ（＝３）という具合にＮを昇順的に繰り上げて計測条件を変えて判断する処理が行われる。
【００６６】
次に計測条件の有無を判定する（ステップＳ７）。ステップＳ７において計測条件がある場合には、次のステップＳ８に進み、特徴点Ｎに従う特徴量を算出する（ステップＳ８）。そして、次のＮ＝Ｎ＋１に設定する（ステップＳ９）。次に、Ｎ＞３２であるか否かを判定する（ステップＳ１０）。ステップＳ１０においてＮ＞３２である場合には、終了する（ステップＳ１１）。
【００６７】
一方、ステップＳ１０においてＮ≦３２である場合には再びステップＳ６に戻って上述したのと同様の処理を繰り返す。すなわち、ここでは、特徴点として計測条件が３２個ある場合には、昇順的に計測条件を変更して、計測条件を変えて特徴量が算出される計測処理が実行される。なお、このＮ＝１〜３２のそれぞれの計測条件については、内部メモリ２５０に格納されており、必要に応じて読み出されてコントローラ２０５で用いられるものとする。
【００６８】
なお、ステップＳ７において計測条件がないと判定された場合には、終了する（ステップＳ１１）。
【００６９】
したがって、計測条件が変わるだけで同様の処理を繰り返すような計測処理が実行される場合には、ＦＰＧＡの外側に設けられたＣＰＵで処理するよりもＦＰＧＡ内部のソフトプロセッサ２００を用いて処理する方が高速にデータ処理を実行することが可能である。
【００７０】
また、ＦＧＧＡ内部のソフトプロセッサ２００をＣＰＵのように用いて処理可能であるためＦＰＧＡのリソースを最小化することが可能である。
【００７１】
また、フィルタ処理を行うソフトプロセッサ２００、内部メモリ２５０および内部ロジック部３００が同一の集積回路に集積されるため内部メモリ２５０へのデータの格納あるいは内部メモリ２５０からの読出を高速に行うことが可能である。例えば、１クロックで行うことも考えられる。これにより、外部ＣＰＵを用いる時に生じるレイテンシ（データのリクエストを行ってから、実際にデータが転送されるまでにかかる遅延時間）の発生を抑制することが可能である。この点で、データの読出あるいは格納（書込）の頻度が高いと、演算時間を占めるレイテンシの割合が高くなる。例えば、上述したように複数の計測値からなるセンシングデータを一括してではなく、既定の処理単位ずつ読み出してフィルタリング処理する場合には、レイテンシの割合が高くなり、演算時間の増加が予想されるが、本願構成により、レイテンシの時間を短くし、演算時間の増加を軽減することが可能である。
【００７２】
なお、フィルタリング処理を、ソフトプロセッサ２００で処理するのではなく、ＦＰＧＡの内部ロジック部３００を用いて処理させることも可能ではある。しかしながら、上述したように既定の処理単位すなわち、フィルタリング処理を実行する際のデータ単位数等の条件については、操作部１７により数値の変更等がなされるため予め設定される可能性がある数値に備えて、内部ロジック部３００で設定変更の度にＦＰＧＡを再構成するのは実用性に乏しく、また、必要となるＦＰＧＡのリソースが膨大になる可能性がある。
【００７３】
したがって、本発明に従うソフトプロセッサ２００を用いることにより、ユーザ側でのデータ単位数等の条件の変更に容易に対応して処理内容を反映させることが可能であり、高速な演算処理を実行可能である。
【００７４】
なお、データ単位数等の条件の変更があった場合については、メモリ１８からソフトウェアプログラムを参照して、そのプログラムの一部に含まれるデータ単位数等の数値を置換して、再びメモリ１８に格納することも可能であるし、変更されたデータ単位数に基づいて新たに設定されたソフトウェアプログラムをメモリ１８に格納することも可能である。いずれの場合においても容易に条件の変更が可能である。
【００７５】
なお、本例においては、フィルタリング処理として、メディアン処理および平均処理を実行する場合について一例として説明したが、これに限られず他の演算処理を組み合わせて実行することも可能である。例えば、図７において一定の濃度加算値以下を削除するノイズ除去処理を実行することも可能である。あるいは、一定値以上の急峻な変化をカットするノイズ除去処理を実行することも可能である。
【００７６】
上述したように、本願構成においては、ＦＰＧＡ１３０内部にソフトプロセッサ２００のコントローラ２０５を用いて内部メモリ２５０との間でフィルタリング処理を実行する方式である。したがって、ソフトプロセッサ２００と内部メモリ２５０との間でのデータの授受となり、高速なデータ転送および高速なデータ処理が可能である。
【００７７】
特に、フィルタリング処理を実行する場合には、メモリにアクセスしてデータ値を読み込むとともに演算処理して再び演算処理結果をメモリに格納する必要があるため複数回メモリにアクセスする必要がある。
【００７８】
従来の構成においては、外部のＣＰＵブロック１４０を用いてフィルタリング処理を実行する方式であったためＦＰＧＡの計測処理ロジックで演算された演算処理結果が内部メモリに格納され、当該内部メモリと外部のＣＰＵブロック１４０との間でのデータの授受およびデータ処理となるため本願構成の如く高速に処理することは困難である。
【００７９】
なお、ＦＰＧＡ１３０に設定されるフィルタ条件の取得等は、ＲＳ−２３２ＣやＵＳＢ等のインタフェースを経由して外部からの指示により行うことができる。操作部１７からのキー入力によって行うこともできる。
【００８０】
なお、演算対象とするデータとしては画像データには限らず、時系列的に取得される多値データであってもよい。例えば、ＰＳＤ（Ｐｏｓｉｔｉｏｎ Ｓｅｎｓｉｔｉｖｅ Ｄｅｖｉｃｅ）を用いた変位センサの出力は、時系列的に変化するアナログ信号として得られるが、これを一定周期でデジタル変換した（サンプリングした）データを対象として、同様のフィルタリング処理を実行する構成とすることも当然に可能である。
【００８１】
なお、上記においては、プログラム可能な論理回路の一例としてＦＰＧＡを代表的に挙げて説明したが、ハードウェア回路をプログラムすることのできる集積回路であれば任意に適用可能である。例えば、ＰＬＤ（Ｐｒｏｇｒａｍｍａｂｌｅ Ｌｏｇｉｃ Ｄｅｖｉｃｅ）、ＣＰＬＤ（Ｃｏｍｐｌｅｘ ＰＬＤ）等を本発明に用いることができる。これらの集積回路の一例は、積和回路、ルックアップテーブル、フリップフロップ、メモリ、配線ライン、配線間のスイッチ等の回路要素を組み合わせることにより、デバイス間の接続、データ通信、シグナルプロセッシング、データ表示、タイミングとコントロール操作、その他通常、システムに含まれる機能の殆ど全てを実行するようにプログラムすることができるものである。なお、集積回路の中に回路をプログラムすることのできる部分と回路が固定的に形成されている部分とがある場合には、回路をプログラムすることのできる部分がプログラム可能な論理回路である。プログラム可能な論理回路は、複数の集積回路によって構成してもよい。
【００８２】
なお、本例においては、プログラム可能な論理回路であるＦＰＧＡ１３０の一部を用いてソフトＣＰＵを実現した構成について説明したが、ＣＰＵブロック１４０全体をＦＰＧＡで実現するように構成することも可能である。
【００８３】
今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は上記した説明ではなくて特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
【図面の簡単な説明】
【００８４】
【図１】本発明の実施の形態１に従う信号処理ユニットであるセンサコントローラ１の外観斜視図である。
【図２】本発明の実施の形態１に従うセンシング中のセンサヘッド２を説明する図である。
【図３】本発明の実施の形態１に従うセンサコントローラ１の概略ブロック図である。
【図４】本発明の実施の形態に従うＦＰＧＡ１３０の内部回路の詳細を示すブロック図である。
【図５】濃度重心情報計測処理ロジック３０５で実行される演算処理を説明する図である。
【図６】濃度総和情報計測処理ロジック３２０で実行される演算処理を説明する図である。
【図７】濃度ピーク情報計測処理ロジック３１０，エッジ中心情報計測処理ロジック３１５で実行される演算処理を説明する図である。
【図８】ソフトプロセッサ２００のコントローラ２０５を用いてフィルタリング処理を実行する場合を説明するフロー図である。
【符号の説明】
【００８５】
１  センサコントローラ、２  センサヘッド、３  外部接続コード、４  センサケーブル、４ａ  センサヘッドコネクタ、１０，２０  ケース、１１  表示部、１２  操作部蓋、１３，１４  コネクタ、１６  センサヘッドコネクタ、１７  操作部、１９  外部Ｉ／Ｆコネクタ、１１０  センサヘッドＩ／Ｆ回路、１２０  制御部、１３０  ＦＰＧＡ、１４０  ＣＰＵブロック、１５０  入出力Ｉ／Ｆ回路ブロック。
【図１】
0005386783.tif 000002
【図２】
0005386783.tif 000003
【図３】
0005386783.tif 000004
【図４】
0005386783.tif 000005
【図５】
0005386783.tif 000006
【図６】
0005386783.tif 000007
【図７】
0005386783.tif 000008
【図８】
0005386783.tif 000009