(57)【要約】【課題】取得したデータをラッチする装置においてノイズの影響を精度よく除去する。【解決手段】入力ポートに供給される入力信号に基づいたタイミングでデータを取得およびラッチするデータ取得方法であって、前記入力信号のエッジを検出したタイミングで、前記データを取得して保持するとともにタイマを開始し、前記タイマが満了したタイミングにおいて、前記入力信号のレベルが、前記タイマの開始時から変化していない第一のレベルである場合に、前記保持したデータをラッチし、前記入力信号のレベルが、前記タイマの開始時から変化した第二のレベルである場合に、前記保持したデータを破棄する。【選択図】図３
2019080242.tif 000002
【特許請求の範囲】
【請求項１】
入力ポートに供給される入力信号に基づいたタイミングでデータを取得およびラッチするデータ取得方法であって、
前記入力信号のエッジを検出したタイミングで、前記データを取得して保持するとともにタイマを開始し、
前記タイマが満了したタイミングにおいて、前記入力信号のレベルが、前記タイマの開始時から変化していない第一のレベルである場合に、前記保持したデータをラッチし、前記入力信号のレベルが、前記タイマの開始時から変化した第二のレベルである場合に、前記保持したデータを破棄する
ことを特徴とする、データ取得方法。
【請求項２】
前記入力ポートは割り込み入力ポートであり、
前記データをラッチしたタイミングで、前記入力ポートからの割り込みを禁止する
ことを特徴とする、請求項１に記載のデータ取得方法。
【請求項３】
前記入力ポートからの割り込みを禁止している期間に、前記入力信号をモニタし、所定の周期において前記入力信号のレベルが続けて前記第二のレベルであることを検出した場合に、前記割り込みの禁止を解除する
ことを特徴とする、請求項２に記載のデータ取得方法。
【請求項４】
前記入力ポートはＣＰＵが有するポートであり、前記所定の周期は、前記ＣＰＵのシステムクロックを利用して測定される
ことを特徴とする、請求項３に記載のデータ取得方法。
【請求項５】
前記所定の周期は、前記システムクロックに同期した周期である
ことを特徴とする、請求項４に記載のデータ取得方法。
【請求項６】
請求項１から５のいずれかに記載のデータ取得方法をコンピュータに実行させるプログラム。
【請求項７】
入力ポートに供給される入力信号に基づいたタイミングでデータを取得およびラッチするデータ取得装置であって、
前記入力信号のエッジを検出したタイミングで、前記データを取得して保持するとともにタイマを開始し、
前記タイマが満了したタイミングにおいて、前記入力信号のレベルが、前記タイマの開始時から変化していない第一のレベルである場合に、前記保持したデータをラッチし、前記入力信号のレベルが、前記タイマの開始時から変化した第二のレベルである場合に、前記保持したデータを破棄する
ことを特徴とする、データ取得装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データ取得方法に関する。
【背景技術】
【０００２】
制御系において、信号やデータを読み取って一時的に保持することをラッチと呼んでいる。入力信号をラッチする装置においては、ノイズ対策が重要である。ノイズの重畳によって信号のレベルが一時的に変動すると、目的の信号が変化していないにもかかわらず、信号が変化したと検知され、誤った情報を読み取ってしてしまうおそれがあるためである。
【０００３】
これに関する技術として、例えば特許文献１には、一定の周期で信号レベルを判定し、割り込みが発生した場合に、過去２回分の信号レベルが同一であり、かつ、最新の信号レベルが異なる場合にのみ、割り込み処理を行う方法が開示されている。かかる方法によると、わずかな時間において信号レベルが変化した場合に、当該変化を無視することができるため、ノイズ対策となる。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開平５−９４６２０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
特許文献１に記載の方法によると、周期的に信号レベルを取得して保存したうえで比較を行っている。しかし、この方法では、割り込みが発生してから過去の信号レベルとの比較を行い、割り込みが妥当であると判定した後に割り込み処理を開始するため、処理が遅延してしまうという課題がある。例えば、リアルタイムでエンコーダが出力した値を取得するような場合、遅延が発生すると、意図したタイミングにおける値が取得できなくなるおそれがある。
【０００６】
本発明は上記の課題を考慮してなされたものであり、取得したデータをラッチする装置においてノイズの影響を精度よく除去することを目的とする。
【課題を解決するための手段】
【０００７】
本発明に係るデータ取得方法は、入力ポートに供給される入力信号に基づいたタイミングでデータを取得およびラッチする方法である。
具体的には、前記入力信号のエッジを検出したタイミングで、前記データを取得して保持するとともにタイマを開始し、前記タイマが満了したタイミングにおいて、前記入力信号のレベルが、前記タイマの開始時から変化していない第一のレベルである場合に、前記保持したデータをラッチし、前記入力信号のレベルが、前記タイマの開始時から変化した第二のレベルである場合に、前記保持したデータを破棄することを特徴とする。
【０００８】
本発明は、入力信号のエッジをトリガとしてデータを取得し、ラッチ（保持）を行う方法に関する。本発明に係るデータ取得方法は、入力信号からエッジが検出された場合に、データを取得して一時的に保持するとともにタイマを開始するという点に特徴を有する。タイマは、入力信号が安定していることを検出するためのタイマであり、開始から所定の時間後に満了する。すなわち、入力信号の安定を判定する前の段階でデータを取得して一時的に保持しておき、入力信号が安定していることを確認したのちに、当該データを正式
にラッチする。かかる構成によると、入力信号の安定を判定するために時間が必要な場合であっても、タイムラグが発生することがなくなる。
【０００９】
また、前記入力ポートは割り込み入力ポートであり、前記データをラッチしたタイミングで、前記入力ポートからの割り込みを禁止することを特徴としてもよい。
【００１０】
割り込みをトリガとしてデータのラッチを行う場合、例えば、一度立ち上がった信号がノイズによってＬｏｗに落ちると、再度の立ち上がりで割り込みが発生してしまい、望まないタイミングでデータが取得されてしまうことがある。そこで、データをラッチしたタイミングで割り込みを禁止することで、ノイズによる割り込みの発生を抑制できるようになる。なお、割り込みの解除は、入力信号が確実に元に戻ったことが判別できるタイミングであれば、任意のタイミングで行うことができる。
【００１１】
また、前記入力ポートからの割り込みを禁止している期間に、前記入力信号をモニタし、所定の周期において前記入力信号のレベルが続けて前記第二のレベルであることを検出した場合に、前記割り込みの禁止を解除することを特徴としてもよい。
【００１２】
所定の周期は、入力信号が元に戻って安定したと判定できる期間に基づいて設定することができる。
【００１３】
また、前記入力ポートはＣＰＵが有するポートであり、前記所定の周期は、前記ＣＰＵのシステムクロックを利用して測定されることを特徴としてもよい。また、前記所定の周期は、前記システムクロックに同期した周期であることを特徴としてもよい。
【００１４】
このように、システムクロックを利用することで、ＣＰＵが使用するタイマを減らすことができる。
【００１５】
なお、本発明は、上記手段の少なくとも一部を含むデータ取得方法として特定することができる。また、上記データ取得方法を行うデータ取得装置や、上記データ取得方法をコンピュータに実行させるプログラムとして特定することもできる。上記処理や手段は、技術的な矛盾が生じない限りにおいて、自由に組み合わせて実施することができる。
【発明の効果】
【００１６】
本発明によれば、取得したデータをラッチする装置においてノイズの影響を精度よく除去することができる。
【図面の簡単な説明】
【００１７】
【図１】実施形態に係る制御システムの構成図である。
【図２】発明が解決する課題を説明するためのタイミング図である。
【図３】実施形態における入力信号のタイミング図である。
【図４】コンピュータが行うデータ取得方法のフローチャート図である。
【発明を実施するための形態】
【００１８】
（システム構成図）
以下、本発明の好ましい実施形態について図面を参照しながら説明する。
本実施形態に係る制御システムは、対象物を駆動するサーボモータをコンピュータによって制御するシステムである。図１は、第一の実施形態に係る制御システムの構成図である。
第一の実施形態に係る制御システムは、コンピュータ１０、モータ２０、エンコーダ３０、位置センサ４０を含んで構成される。
【００１９】
モータ２０は、対象物を駆動する手段であり、例えばサーボモータである。モータ２０の軸はエンコーダ３０と接続されており、エンコーダ３０が、モータの位置（回転角）に応じた位置情報をコンピュータ１０に出力する。
【００２０】
位置センサ４０は、光電センサなどの任意のセンサであり、対象物の位置をセンシングする手段である。位置センサ４０は、コンピュータ１０の割り込みポート１１に接続されており、所定のタイミングで割り込み信号を送信する。割り込み信号は、コンピュータ１０がエンコーダ３０からデータを読み取るべきタイミングで送信される。詳細については後述する。
【００２１】
コンピュータ１０は、モータ２０を制御するコンピュータである。具体的には、エンコーダ３０から取得した位置情報に基づいてモータ２０の回転角を検出し、モータ２０の制御を行う。
コンピュータは、割り込みポート１１、入力ポート１２、制御部１３、第一メモリ１４、第二メモリ１５を有して構成される。
【００２２】
割り込みポート１１は、外部から供給される信号（以下、入力信号）を取得するポートである。本実施形態では、割り込みポート１１には、位置センサ４０から出力される信号が供給され、入力信号が立ち上がったタイミングで、後述する制御部１３に対する割り込みを発生させる。また、制御部１３は、割り込みが発生した場合に、エンコーダ３０から位置情報を取得する。
【００２３】
入力ポート１２は、エンコーダ３０から出力される位置情報を取得するポートである。本実施形態では、入力ポート１２は、エンコーダ３０から電気信号として出力される位置情報をデジタル情報に変換する手段を含んで構成される。例えば、複数の相からなるパルス信号を受信するレシーバや、当該パルス信号を計数するカウンタによって、数値形式の位置情報（以下、カウント値）を生成する。なお、エンコーダ３０が位置情報を表すデータを直接生成できる場合、このような手段は必要ない。
取得したカウント値はラッチされ、モータ２０の位置検出の用に供される。
【００２４】
制御部１３は、コンピュータ１０が行う処理を制御する手段である。制御部１３は、ＣＰＵやＭＰＵ（Ｍｉｃｒｏ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）等のプロセッサ、ＦＰＧＡ（Ｆｉｅｌｄ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｇａｔｅ  Ａｒｒａｙ）チップ等の演算回路で構成できる。これらのユニットは、単一のプロセッサや演算回路から構成されてもよいし、複数のプロセッサや演算回路から構成されてもよい。具体的な処理内容については後述する。
【００２５】
第一メモリ１４および第二メモリ１５は、入力ポート１２が取得したカウント値を一時的に記憶する手段である。第一メモリ１４および第二メモリ１５は、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）などの揮発性のメモリや、磁気ディスクやフラッシュメモリなどの非一時記憶媒体により構成される。本実施形態では、エンコーダ３０から取得したカウント値を一時的に記憶する手段として第一メモリ１４を利用し、ラッチしたカウント値を記憶する手段として第二メモリ１５を利用する。第二メモリ１５に記憶されたカウント値に基づいて、モータ２０の位置制御が行われる。なお、ラッチしたカウント値を利用してモータ２０の制御を行う手段については、図示を省略している。
【００２６】
（ノイズ抑制の概要）
次に、本実施形態に係る制御システムにおいてノイズを抑制する方法について、概要を説明する。図２は、割り込みポート１１に入力される信号を説明する図である。本実施形
態では、図２（Ａ）に示したように、割り込みポート１１に入力される信号のレベルがＬｏｗからＨｉｇｈになったタイミングで割り込みが発生し、これを検知した制御部１３が入力ポート１２からカウント値を取得してラッチを行う。
【００２７】
図２（Ｂ）は、割り込みポート１１に入力される信号にノイズが重畳し、Ｌｏｗであった信号レベルが一時的にＨｉｇｈになった場合の例である。この場合、図２（Ａ）に示したものと同様に、信号の立ち上がりが検出されるため、割り込みが発生し、カウント値の取得が行われてしまう。すなわち、カウント値を取得すべきではないタイミングでカウント値を取得してしまうため、誤動作の原因となってしまう。
【００２８】
図２（Ｃ）は、割り込みポート１１に入力される信号にノイズが重畳し、Ｈｉｇｈであった信号レベルが一時的にＬｏｗになった場合の例である。この場合も、信号レベルが復帰する際に立ち上がりが検出されるため、割り込みが発生し、カウント値の取得が行われてしまう。すなわち、カウント値を取得すべきではないタイミングでカウント値を取得してしまうため、誤動作の原因となってしまう。
【００２９】
この問題を解決する方法の一つに、割り込みが発生したタイミングでは処理を行わず、信号が安定するまで待つという方法がある。例えば、ノイズやチャタリングによって信号レベルが変動するおそれがある場合、割り込みが発生してから所定の時間が経過するまで（例えば数〜数十マイクロ秒）待機し、再度信号レベルを確認して変動が無い場合に処理を進めるという方法である。
【００３０】
しかし、この場合、所定の時間が経過するまで割り込み処理を行うことができないため、システムの高速化を図ることができない。例えば、エンコーダの出力がマイクロ秒単位で変動するモータ制御系などに適用すると、出力を読み取るべきタイミングと実際に出力を読み取るタイミングとの間にずれが生じてしまうため、不具合の原因となる。
【００３１】
そこで、本実施形態に係る制御システムでは、割り込みが発生したタイミングにおいて、エンコーダ３０から出力されるカウント値を取得して一時的に保持し、入力信号のレベルが安定していることを確認した後で、当該一時的に保持したカウント値を確定させるという構成を取る。
【００３２】
図３は、割り込みポート１１に供給される入力信号のレベルを説明する図である。
本実施形態では、図示したように、割り込みが発生すると、制御部１３が、当該割り込みのタイミングでカウント値を取得し、一時的に保持する。そして、所定の時間Ｔ１が経過するまで待ち、その後、再度信号レベルを確認する。ここで、信号レベルがＨｉｇｈであった場合、入力信号の立ち上がりがノイズに起因したものではないことが確定するため、一時的に保持したカウント値を確定させる。もし、ここで信号レベルがＬｏｗであった場合、ノイズに起因する立ち上がりであったとして、保持した値を破棄する。
かかる構成によると、割り込みが発生した瞬間にカウント値を取得できるため、タイムラグを発生させることなく処理が行えるようになる。
【００３３】
一方で、図２（Ｃ）のケースのように、一度立ち上がった入力信号が、ノイズによって一時的にＬｏｗに落ちるおそれもある。このような場合、信号レベルの復帰とともに立ち上がりが検出されるが、当該信号はＨｉｇｈで安定するため、新たにカウント値が取得されてしまう。すなわち、前述した処理では、このようなケースに対処することができない。
【００３４】
そこで、本実施形態に係る制御システムでは、入力信号の立ち上がりに伴ってカウント値が確定した場合に、割り込みポート１１からの割り込み自体を一時的に無効にする処理
を行う。図３の例では、カウント値が確定したタイミング（タイミングＡ）で、制御部１３が、割り込みポート１１からの割り込みを無効にする。
【００３５】
次に、割り込みを有効に戻すタイミングについて説明する。
割り込みが発生するのは、入力信号が立ち上がるタイミングであるため、入力信号が安定してＬｏｗになったことが確認できれば、割り込みを解除することができる。そこで、本実施形態に係る制御システムは、入力信号を所定の周期Ｔ２で監視し、連続してＬｏｗであることが観測された場合に、割り込みを有効化する処理を行う。本実施形態では、Ｔ２はコンピュータ１０のシステムクロックに同期した周期であり、２周期にわたって入力信号がＬｏｗとなったタイミング（タイミングＢ）で、割り込みを有効に戻す。なお、周期Ｔ２は、周期Ｔ１とは独立してカウントされる。
なお、割り込みを有効化すべきタイミング（入力信号がＬｏｗに戻るタイミング）が予め分かっている場合、当該タイミングにあわせて割り込みの有効化を行ってもよい。
【００３６】
（処理フローチャート）
次に、前述した処理を行うためのフローチャートについて説明する。図４は、制御部１３が行う処理のフローチャート図である。
まず、ステップＳ１１で、割り込みポート１１からの割り込みを有効化する。
次に、ステップＳ１２で、入力信号の立ち上がりを検出するまで待機する。入力信号が立ち上がると割り込みが発生するため、これに応じて処理はステップＳ１３へ遷移する。
【００３７】
ステップＳ１３では、周期Ｔ１に対応するタイマを開始させ、同時に、入力ポート１２からデータ（すなわちカウント値）を読み取り、第一メモリ１４に保存する。処理は、タイマが満了したタイミングでステップＳ１４へ遷移する。
【００３８】
ステップＳ１４では、タイマが満了した際の入力信号のレベルを確認する。ここで、信号レベルがＬｏｗであった場合、ステップＳ１２で検出した立ち上がりはノイズに起因するものであったと判定される。この場合、第一メモリ１４に保存したカウント値を破棄し（ステップＳ１５）、処理をステップＳ１２に戻す。
【００３９】
一方、タイマが満了した際の入力信号のレベルがＨｉｇｈであった場合、ノイズではない正当な信号であることが分かるため、第一メモリ１４に保存してカウント値を第二メモリ１５へ移動する（ステップＳ１６）。これにより、カウント値が確定し、モータ２０の制御用にラッチされる。
【００４０】
カウント値が確定すると、ステップＳ１７で、制御部１３が割り込みポート１１からの割り込みを無効化する。そして、システムクロックに同期したタイミングで入力信号のレベルをチェックし（ステップＳ１８）、２回連続でＬｏｗであった場合に、ステップＳ１１へ遷移し、割り込みを有効化する。
【００４１】
以上に説明した処理によると、入力信号の立ち上がりをトリガとしてエンコーダのカウント値をラッチする制御システムにおいて、ノイズに起因して入力信号が変動した場合であっても、その影響を排除することができる。特に、入力信号がノイズによってＬｏｗから一時的にＨｉｇｈになる場合と、入力信号がノイズによってＨｉｇｈから一時的にＬｏｗになる場合の双方に対処することができる。また、タイムラグを発生させることなくノイズ対策を行うことが可能になる。
【００４２】
（変形例）
なお、実施形態の説明は本発明を説明する上での例示であり、本発明は、発明の趣旨を逸脱しない範囲で適宜変更または組み合わせて実施することができる。
例えば、実施形態の説明では、モータを制御するコンピュータを例示したが、本発明は、モータドライバ、位置検出装置、プログラマブルロジックコントローラ（ＰＬＣ）等に適用することもできる。また、本発明は、例示した処理を行うプログラムとして実施してもよいし、例示した処理を行う装置として実施してもよい。
また、実施形態の説明では、モータの位置検出（回転角度の検出）を行う例を挙げたが、本発明は、モータ以外の制御を行うシステムにも適用することができる。
また、実施形態の説明では、入力信号の立ち上がりをトリガとしてデータをラッチする例を挙げたが、入力信号の論理を反転させてもよい。すなわち、入力信号の立ち下がりをトリガとしてデータをラッチするシステムに適用してもよい。
【符号の説明】
【００４３】
１０・・・コンピュータ
１１・・・割り込みポート
１２・・・入力ポート
１３・・・制御部
１４・・・第一メモリ
１５・・・第二メモリ
２０・・・モータ
３０・・・エンコーダ
４０・・・位置センサ
【図１】
2019080242.tif 000003
【図２】
2019080242.tif 000004
【図３】
2019080242.tif 000005
【図４】
2019080242.tif 000006