(57)【要約】【課題】時間差の測定精度について、温度変化の影響を受けづらい時間計測装置、および距離計測装置を提供する。【解決手段】複数の遅延素子を有する遅延回路と、所定の周期で基準クロックを出力する基準クロック生成部と、を有し、遅延回路には、パルス信号である被測定信号が入力され、該遅延回路は、該被測定信号の速度を遅らせて回路内を通過させ、基準クロック生成部は、測定開始信号に基づいて、基準クロックを開始し、時間計測装置は、基準クロックの１周期毎に、遅延回路における各遅延素子の電位を読み出し、該読み出した電位が閾値に基づき、高いレベルを０または１の一方とし、低いレベルを０または１の他方とすることで、複数の遅延素子の個数に応じた進行状況数列を作成し、基準クロックの周期等に基づいて、測定開始信号から被測定信号におけるパルスの立ち上がり、または立下りまでの時間を計測する時間測定部とを有する。【選択図】図１
2018152823.tif 000002
【特許請求の範囲】
【請求項１】
複数の遅延素子を有する遅延回路と、所定の周期で基準クロックを出力する基準クロック生成部と、を有する時間計測装置であって、
前記遅延回路には、パルス信号である被測定信号が入力され、該遅延回路は、該被測定信号の速度を遅らせて回路内を通過させ、
前記基準クロック生成部は、測定開始信号に基づいて、前記基準クロックを開始し、
前記時間計測装置は、
前記基準クロックの１周期毎に、前記遅延回路における各遅延素子の電位を読み出し、該読み出した電位が閾値に基づき、高いレベルを０または１の一方とし、低いレベルを０または１の他方とすることで、前記複数の遅延素子の個数に応じた進行状況数列を作成し、
前記基準クロックの周期と、前記遅延素子の遅延時間と、前記進行状況数列における０１または１０の変化位置に対応する遅延素子の個数、とに基づいて、前記測定開始信号から前記被測定信号におけるパルスの立ち上がり、または立下りまでの時間を計測する時間測定部と、を有し、
前記基準クロックを前記遅延回路へ入力して、該基準クロックの進行状況数列を作成することで、該基準クロックの１周期に対応する前記遅延回路における遅延素子の個数を求めるキャリブレーション制御により前記遅延素子の遅延時間を求め、
前記時間測定部は、前記測定開始信号から前記被測定信号におけるパルスの立ち上がり、または立下りまでの時間を計測する際に、前記求めた遅延素子の遅延時間を用いること
を特徴とする時間計測装置。
【請求項２】
前記遅延回路における遅延素子の個数は、該遅延回路における遅延時間が、前記基準クロックの１周期よりも長い個数であり、
前記時間測定部は、
前記進行状況数列において、時間的に新しい側の端部を最下位ビット、時間的に古い側の端部を最上位ビット、と定義すると、前記進行状況数列の前記キャリブレーション制御により求めた前記基準クロックの１周期に対応する前記遅延回路における遅延素子の個数分だけを抽出するマスク数列を作成し、該マスク数列を用いて前記進行状況数列のビット数を遅延素子の個数分のみとした解析用数列を作成し、
前記解析用数列の元となった前記進行状況数列を前記遅延回路から読み出した際の回数をカウントするカウント値をｘ、前記キャリブレーション制御により求めた前記遅延素子の遅延時間をΔｔ、基準クロックの１周期の時間をＰ、前記解析用数列におけるエッジ位置が最下位ビットからｙ番目であるときの前記測定開始信号から該解析用数列におけるエッジ位置までの時間Ｔを、Ｔ＝（Ｐ×ｘ）−（Δｔ×ｙ）により求めること
を特徴とする請求項１に記載の時間計測装置。
【請求項３】
前記時間測定部は、
前記遅延回路からｎ周期目の基準クロックで読み出したｎ番目（ただし、ｎは整数）の進行状況数列と前記遅延回路からｎ＋１周期目の基準クロックで読み出したｎ＋１番目の進行状況数列とを比較し、前記ｎ＋１番目の進行状況数列において前記基準クロックの１周期に対応する前記遅延回路における遅延素子の個数よりも１ビットＭＳＢ側に位置する数値が、前記ｎ番目の進行状況数列における最下位ビットに位置する数値と異なっている場合は、前記前記ｎ＋１番目の進行状況数列において前記基準クロックの１周期に対応する前記遅延回路における遅延素子の個数よりも１ビットＭＳＢ側に位置する数値を、前記ｎ番目の進行状況数列における最下位ビットに位置する数値に書き換える誤り訂正処理を行い、
前記誤り訂正処理を行なった後に、前記ｎ＋１番目の進行状況数列について、該ｎ＋１番目の進行状況数列と、該ｎ＋１番目の進行状況数列を最下位ビット側に１ｂｉｔシフトさせて反転させた第１の進行状況シフト反転数列とのＡＮＤをとることで、立ち上がりエッジ抽出数列を作成し、
前記立ち上がりエッジ抽出数列と前記マスク数列とを用いて前記ｎ＋１番目の進行状況数列のビット数を遅延素子の個数分のみとしたｎ＋１番目の立ち上がりエッジ解析用数列を作成し、
前記キャリブレーション制御により求めた前記遅延素子の遅延時間をΔｔ、基準クロックの１周期の時間をＰ、前記立ち上がりエッジ解析用数列におけるエッジ位置が最下位ビットからｙ番目であるときの前記測定開始信号から該立ち上がりエッジ解析用数列における立ち上がりエッジ位置までの時間ＴＨを、ＴＨ＝（Ｐ×（ｎ＋１））−（Δｔ×ｙ）により求めること
を特徴とする請求２に記載の時間計測装置。
【請求項４】
前記時間測定部は、
前記遅延回路からｎ周期目の基準クロックで読み出したｎ番目（ただし、ｎは整数）の進行状況数列と前記遅延回路からｎ＋１周期目の基準クロックで読み出したｎ＋１番目の進行状況数列とを比較し、前記ｎ＋１番目の進行状況数列において前記基準クロックの１周期に対応する前記遅延回路における遅延素子の個数よりも１ビットＭＳＢ側に位置する数値が、前記ｎ番目の進行状況数列における最下位ビットに位置する数値と異なっている場合は、前記前記ｎ＋１番目の進行状況数列において前記基準クロックの１周期に対応する前記遅延回路における遅延素子の個数よりも１ビットＭＳＢ側に位置する数値を、前記ｎ番目の進行状況数列における最下位ビットに位置する数値に書き換える誤り訂正処理を行い、
前記誤り訂正処理を行なった後に、前記ｎ＋１番目の進行状況数列について、該ｎ＋１番目の進行状況数列を反転させた数列である進行状況反転数列と、該ｎ＋１番目の進行状況数列を最下位ビット側に１ｂｉｔシフトさせて反転させた第１の進行状況シフト反転数列とのＡＮＤをとることで、立ち下がりエッジ抽出数列を作成し、
前記立ち下がりエッジ抽出数列と前記マスク数列とを用いて前記ｎ＋１番目の進行状況数列のビット数を遅延素子の個数分のみとしたｎ＋１番目の立ち下がり解析用数列を作成し、
前記キャリブレーション制御により求めた前記遅延素子の遅延時間をΔｔ、基準クロックの１周期の時間をＰ、前記立ち下がり解析用数列におけるエッジ位置が最下位ビットからｙ番目であるときの前記測定開始信号から該立ち下がり解析用数列における立ち下がりエッジ位置までの時間ＴＬを、ＴＬ＝（Ｐ×（ｎ＋１））−（Δｔ×ｙ）により求めること
を特徴とする請求２に記載の時間計測装置。
【請求項５】
前記キャリブレーション制御において、基準クロックの進行状況数列から、基準クロックの１周期を判定するための立ち上がりエッジまたは立ち下がりエッジの少なくとも一方が見つからない場合、基準クロック生成部は、基準クロックの位相を反転して、前記遅延回路へ入力することを特徴とする請求項１ないし４の何れか１項に記載の時間計測装置。
【請求項６】
物体による反射光を受光し、測定開始信号から反射光を受光するまでの時間を計測することで、前記物体までの距離を検出する距離検出装置において、請求項１ないし５の何れか１項に記載の時間計測装置を用いて、前記測定開始信号から前記反射光を受光するまでの時間を計測することを特徴とする距離検出装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、時間計測装置、および距離計測装置に関する。
【背景技術】
【０００２】
従来、あるタイミングで生成された信号と、当該タイミングよりも遅いタイミングで生成が開始され配線を通過した信号とが入力され、上記あるタイミングで生成された信号と上記遅いタイミングで生成された信号との入力タイミングの時間差を測定する回路がある（例えば、特許文献１、２）。
【発明の概要】
【発明が解決しようとする課題】
【０００３】
上記特許文献１、２に開示された回路については、時間差の測定精度が温度変化の影響を受ける、という観点において改善の余地があった。
本発明は、時間差の測定精度について、温度変化の影響を受けづらい時間計測装置を提供することを目的とする。
【課題を解決するための手段】
【０００４】
上記の課題を解決し、目的を達成するために、本発明に係る時間計測装置は、複数の遅延素子を有する遅延回路と、所定の周期で基準クロックを出力する基準クロック生成部と、を有する時間計測装置であって、前記遅延回路には、パルス信号である被測定信号が入力され、該遅延回路は、該被測定信号の速度を遅らせて回路内を通過させ、前記基準クロック生成部は、測定開始信号に基づいて、前記基準クロックを開始し、前記時間計測装置は、前記基準クロックの１周期毎に、前記遅延回路における各遅延素子の電位を読み出し、該読み出した電位が閾値に基づき、高いレベルを０または１の一方とし、低いレベルを０または１の他方とすることで、前記複数の遅延素子の個数に応じた進行状況数列を作成し、前記基準クロックの周期と、前記遅延素子の遅延時間と、前記進行状況数列における０１または１０の変化位置に対応する遅延素子の個数、とに基づいて、前記測定開始信号から前記被測定信号におけるパルスの立ち上がり、または立下りまでの時間を計測する時間測定部と、を有し、前記基準クロックを前記遅延回路へ入力して、該基準クロックの進行状況数列を作成することで、該基準クロックの１周期に対応する前記遅延回路における遅延素子の個数を求めるキャリブレーション制御により前記遅延素子の遅延時間を求め、前記時間測定部は、前記測定開始信号から前記被測定信号におけるパルスの立ち上がり、または立下りまでの時間を計測する際に、前記求めた遅延素子の遅延時間を用いることを特徴とする。
【発明の効果】
【０００５】
本発明によれば、温度の影響を少なくして、精度よく時間差を測定することができる。
【図面の簡単な説明】
【０００６】
【図１】時間計測装置のブロック図である。
【図２】時間計測回路本体が進行状況数列を出力する動作を説明するための図である。
【図３】キャリブレーション制御で得られる基準クロックの周期に対応する進行状況数列の例を示す図である。
【図４】マスク数列を示す図である。
【図５】エッジ抽出処理を説明する図である。
【図６】マスク処理を説明する図である。
【図７】誤り検出処理を説明する図である。
【図８】時間計測回路を適用したＬｉｄａｒの構成例を示す図である。
【図９】時間測定部のブロック図である
【図１０】キャリブレーション制御における時間計測装置のブロック図である。
【図１１】基準クロックの１周期分の長さに対応するエッジ抽出数列の構造及び解析用メモリにおけるデータ配置を示す図である。
【発明を実施するための形態】
【０００７】
図１は、時間計測装置１００のブロック図である。時間計測装置１００は、測定開始信号の入力タイミングと被測定信号（パルス信号）の立ち上がりエッジまたは立ち下がりエッジまでの時間を計測する装置である。時間計測回路本体１０２は、被測定信号（パルス信号）の速度を遅らせて回路を進行させる遅延素子を有する回路である。図１および図２に示すように、時間計測回路本体１０２は、直列に繋がれた遅延素子列１０２１と、フリップフロップ列１０２２とを有している。
【０００８】
時間計測回路本体１０２は、基準クロック発生部１０５により出力された基準クロックの周期毎に、遅延素子列１０２１における被測定信号（パルス信号）の進行状況を表す進行状況数列（詳細は後述する）を生成する。具体的には、被測定信号（パルス信号）がＮ個の遅延素子（遅延素子１〜遅延素子Ｎ）が直列に連結された遅延素子列１０２１に入力されると、基準クロック生成部１０５は、基準クロックをフリップフロップ列１０２２へ入力する。各遅延素子の入力信号レベルは基準クロックに同期してフリップフロップ列１０２２により、進行状況数列として保持される。測定対象信号が入力されている遅延素子は高電位状態”1”を、それ以外の遅延素子は低電位状態”0”を示す。フリップフロップ列１０２２に保持される進行状況数列は、時間測定部２００内のメモリ２０２へ保持される。
【０００９】
図９は、時間測定部２００のブロック図である。時間測定部２００は、フリップフロップ列１０２２から読み出した進行状況数列を保存するメモリ２０２と、時間測定部２００を制御する時間測定部制御部２０１を備える。時間測定部制御部２０１は、キャリブレーション制御部２０１１、数列解析部２０１２、および数値化演算部２０１３を備える。メモリ２０２は、保存用メモリ２０２１、および解析用メモリ２０２２を備える。
【００１０】
図２を用いて、時間計測回路本体１０２が進行状況数列を出力する動作を説明する。
以降の説明では、基準クロックの立ち上がりに応じて、フリップフロップ列１０２２から進行状況数列を読み出すものとして説明する。ある基準クロックの立ち上がり時に、例えば、図２のように遅延素子列１０２１上の６番目から８番目の遅延素子の電位が立ち上がっているような電位分布となっている場合、時間計測回路本体１０２は、その電位を検知したことを示す信号列Ｎを含む進行状況数列を出力する。つまり、進行状況数列は、遅延素子列１０２１内の電位分布を示す信号列である。例えば、進行状況数列は、遅延素子列１０２１上の高電位部分に対応して出力される信号（例えば、１）列と、遅延素子列１０２１上の低電位部分であることを示す信号（例えば、０）列とにより構成される。
【００１１】
このように、進行状況数列は、基準クロック発生部１０５から出力される基準クロックの周期毎に、被測定信号（パルス信号）の進行状況を表す数列である。進行状況数列における１ビットは、遅延素子列１０２１における個々の素子に対応する。進行状況数列は、次の基準クロックの立ち上がり時までフリップフロップ列１０２２に保持される。この保持期間にこの進行状況数列を時間計測回路本体１０２から時間測定部２００内のメモリ２０２に転送し、進行状況数列を任意の期間記憶しておく。
【００１２】
図２では、０から１０までの１１個の遅延素子を構成した遅延回路を例示したが、遅延素子の個数は、１回の取得で計測する時間の長さに応じて設定される。既述したように、基準クロックの周期毎に進行状況数列を取得するので、遅延素子の数は、遅延素子の遅延時間の合計が基準クロックの１周期の時間以上である必要がある。例えば、基準クロックの周期が5nsec（ナノセック）、遅延素子の遅延時間が80psec（ピコセック）であるとすると、遅延素子の数は、６３個（80psec × 63 ＝ 5.04nsec）必要である。ただし、遅延素子の遅延時間は温度により変化し、低温になると高速となる。記述した遅延素子の場合、常温（25℃）では遅延時間が80psecであるが、10℃未満になると60psecとなる。そこで、温度変化による遅延素子の遅延時間の変化分を見込んで、遅延素子の数を設定することが望ましい。説明した例の場合、遅延素子の数は、６３個の約倍である１２０個程度とすることが望ましい。遅延素子列１０２１における遅延素子の数は、遅延素子の遅延時間が温度変化により変化しても、遅延素子の遅延時間の合計が基準クロックの１周期の時間以上となる数となっている。
【００１３】
ここで、本明細書における進行状況数列における数列の並びと時間軸との関係について、説明する。図１および図２に示した時間計測回路本体１０２では、入力端子が紙面左側にあるので、被測定信号（パルス信号）は、紙面左側から紙面右側へと進む。そこで、進行状況数列は、紙面左側端部のビットをＬＳＢ（Least-Significant Bit）、紙面右側端部のビットをＭＳＢ（Most-significant Bit）とする。換言すると、進行状況数列の紙面左側端部のビット（ＬＳＢ）が最も新しいビットであり、進行状況数列の紙面右側端部のビットをＭＳＢが最も古いビットである。例えば、図２に示した例において、遅延素子の遅延時間が80psec（ピコセック）であるとすると、遅延素子列１０２１上の６番目のデータは、進行状況数列として読み出したタイミングから560 psec（80psec × 7 ＝ 560 psec）前の被測定信号（パルス信号）の信号レベルを表している。
【００１４】
＜キャリブレーション制御＞
キャリブレーション制御について説明する。既述したように、遅延素子の遅延時間は温度により変化するので、基準クロックの１周期に対応する遅延素子の数を定期的に確認する。この基準クロックの１周期に対応する遅延素子の数を確認する制御を、本明細書では、キャリブレーション制御と呼ぶ。
【００１５】
図１０に示すように、キャリブレーション制御は、時間計測回路本体１０２内の遅延素子列１０２１へ、基準クロック生成部１０５で生成された基準クロックを被測定信号として入力することで行なう。すなわち、キャリブレーション制御において、基準クロック生成部１０５で生成された基準クロックは、進行状況数列を取得するためにフリップフロップ列１０２２へ入力する基準クロックと被測定信号として遅延素子列１０２１へ入力する基準クロックという２系統の基準クロックが存在する。
【００１６】
図３に、キャリブレーション制御で得られる進行状況数列の一例を示す。ここで、“１０”という並びになっている間の信号列の桁数が基準クロックの周期に対応する遅延素子列の個数となる（Ａ）。ところで、基準クロック生成部１０５から遅延素子列１０２１までの配線長とフリップフロップ列１０２２から遅延素子列１０２１までの配線長とが異なることに起因して、フリップフロップ列１０２２へ入力する基準クロックの位相と被測定信号として遅延素子列１０２１へ入力する基準クロックの位相とは異なる場合がある。
【００１７】
フリップフロップ列１０２２へ入力する基準クロックの位相と被測定信号として遅延素子列１０２１へ入力する基準クロックの位相とが異なる場合、例えば、（Ｂ）に示すような状況が生じ得る。（Ｂ）では、進行状況数列のうち、立ち上がり時の電位分布に対応して出力される信号の終端（すなわち、“１０”という並び）が検出できないため、基準クロックの周期に対応する遅延素子列の個数が分からない。この（Ｂ）の例では、ｎクロック目の進行状況数列における立ち下がり（または立ち上がり）位置は検出できたものの、同じタイミングで立ち上がり（または立ち上下がり）位置を検出することができず、遅延素子列の個数が分からなくなる。このような場合、（Ｃ）のように、被測定信号として遅延素子列１０２１へ入力する基準クロックを、基準クロック生成部１０５にて、フリップフロップ列１０２２へ入力する基準クロックに対して１８０度位相をずらしたクロックとして延素子列１０２１へ入力すれば、進行状況数列のうち、立ち上がり時の電位分布に対応して出力される信号の先端Ｅ１と終端Ｅ２（すなわち、“１０”という並び）とを同じタイミングで検出できるため、基準クロックの周期に対応する遅延素子列の個数が分かる。
【００１８】
フリップフロップ列１０２２から取り込んだ進行状況数列は、時間測定部２００内のメモリ２０２に転送され、メモリ２０２内の保存用メモリ２０２１へ保存される。そして、既述したキャリブレーション制御は、時間測定部２００内にある時間測定部制御部２０１におけるキャリブレーション制御部２０１１で実行される。
【００１９】
基準クロック発生部１０５から出力される基準クロックは、時間計測する間隔（時間計測するフレームレート）を早くしたいので、既述したように、5nsecというような高速なクロックで実行される。このような高速なクロックで、時間測定部制御部２０１を駆動しようとすると、高速クロックに対応できる演算回路は高価であり、また演算量が多いと発熱量も多くなる。そこで、時間測定部制御部２０１は、基準クロック発生部１０５から出力される基準クロックよりも低速の解析用クロックにより駆動される。
【００２０】
キャリブレーション制御部２０１１は、基準クロックの周期を既述したキャリブレーション制御により求めた基準クロックの周期に対応する遅延素子列の個数で割ることによって遅延素子１個当たりの遅延時間を算出する。算出した遅延素子１個当たりの遅延時間は、メモリ２０２に保存される。
【００２１】
また、キャリブレーション制御部２０１１は、基準クロックの周期に対応する遅延素子列の個数だけ、ＬＳＢから”１”である信号列と、それ以降は”０”である信号列とから構成されるマスク数列を生成する（図４）。このマスク数列の効果については後述する。このマスタ数列の全ビット数は、遅延素子列１０２１における遅延素子の全個数に対応する。
【００２２】
＜時間計測＞
時間計測について説明する。既述したように、時間計測装置１００は、基準クロック発生部１０５により出力された基準クロックの周期毎に、時間計測回路本体１０２内の遅延素子列１０２１における被測定信号（パルス信号）の進行状況を表す進行状況数列を取り込む。この取り込んだ進行状況数列は、記述したキャリブレーション制御の場合と同様に、時間測定部２００内のメモリ２０２に転送され、メモリ２０２内の保存用メモリ２０２１へ保存される。
【００２３】
数列解析部２０１２取り込んだ進行状況数列から、測定開始信号の入力タイミングと被測定信号（パルス信号）の立ち上がりエッジまたは立ち下がりエッジまでの時間を計測するために、誤り検出処理、エッジ抽出処理、マスク処理、という処理を行なう。処理する順番は、誤り検出処理、エッジ抽出処理、マスク処理、であるが、以降の説明では、エッジ抽出処理、マスク処理、誤り検出処理の順番で説明する。
【００２４】
＜エッジ抽出処理＞
エッジ抽出処理について説明する。既述したように、時間計測装置１００は、測定開始信号の入力タイミングと被測定信号（パルス信号）の立ち上がりエッジまたは立ち下がりエッジまでの時間を計測する。そのため、進行状況数列において、必要な情報はエッジ位置（進行状況数列の並びが“１０”または“０１”となる位置）である。そこで、時間測定部制御部２０１内の数列解析部により行なわれる、進行状況数列内のエッジ抽出について、図５を用いて説明する。図５（Ａ）が立ち上がりエッジを抽出する説明図であり、図５（Ｂ）が立ち下がりエッジを抽出する説明図である。
【００２５】
立ち上がりエッジ抽出では、進行状況数列と、進行状況数列をＬＳＢ側に１ｂｉｔシフトさせて反転させた数列である進行状況シフト反転数列とのＡＮＤをとる。この処理により、立ち上がり位置に対応する信号５１Ａのみが”１”となる（Ａ）。
【００２６】
立ち下がりエッジ抽出では、進行状況数列を反転させた数列である進行状況反転数列と、進行状況数列をＬＳＢ側に１ｂｉｔシフトさせた数列である進行状況シフト数列とのＡＮＤをとる。この処理により、立ち下がり位置に対応する信号５１Ｂのみが”１”となる（Ｂ）。
【００２７】
この立ち上がり位置に対応する信号５１Ａのみを”１”とした数列、または立ち下がり位置に対応する信号５１Ｂのみを”１”とした数列を、エッジ抽出数列と呼ぶ。このように、時間計測装置１００は、立ち上がりエッジ抽出、立ち下がりエッジ抽出、の両方について対応できる。
【００２８】
＜マスク処理＞
マスク処理について説明する。既述したように、遅延素子列１０２１における遅延素子の数は、遅延素子の遅延時間が温度変化により変化することを考慮して、遅延素子の遅延時間の合計が基準クロックの１周期の時間以上となる数である。進行状況数列のビット数は遅延素子の数と１対１で対応しているので、進行状況数列のビット数は基準クロックの１周期よりも長い。そして、進行状況数列のＬＳＢが最も新しいビットであり、進行状況数列のＭＳＢが最も古いビットである。つまり、図６（Ａ）及び（Ｂ）に示されているｎ番目（ｎは整数）に取り込んだ進行状況数列において、基準クロックの１周期に対応するビット数よりもＭＳＢ側に存在するビットはｎ−１番目に取り込んだ進行状況数列である。同様に、図６（Ａ）及び（Ｂ）のに示されているｎ＋１番目に取り込んだ進行状況数列において、基準クロックの１周期に対応するビット数よりもＭＳＢ側に存在するビットはｎ番目に取り込んだ進行状況数列である。このように、ｎ番目に取り込んだ進行状況数列には、ｎ−１番目に取り込んだ進行状況数列が含まれており、ｎ＋１番目に取り込んだ進行状況数列には、ｎ番目に取り込んだ進行状況数列が含まれている。換言すると、取り込んだ進行状況数列には、前回取り込んだ進行状況数列が含まれている。そこで、既既述したエッジ抽出処理で作成したエッジ抽出数列と述したキャリブレーション制御で作成したマスク数列とのＡＮＤをとることにより、重複している前回取り込んだ進行状況数列をマスクする。図６（Ａ）では、ｎ番目に取り込んだ進行状況数列の６番目と７番目のビットがエッジ位置を表す“０１”であり、このエッジ位置は、ｎ＋１番目に取り込んだ進行状況数列においても存在している。図６（Ｂ）は、エッジ抽出数列とマスク数列とのＡＮＤをとった後のエッジ抽出数列であり、ｎ＋１番目に取り込んだ進行状況数列では、ｎ番目に取り込んだ進行状況数列ではエッジ位置を表す“０１”はマスクされている。
【００２９】
＜誤り検出処理＞
既述したように、基準クロックの立ち上がりに応じて、フリップフロップ列１０２２から進行状況数列を読み出すが、被測定信号（パルス信号）の立ち上がりエッジ位置または立ち下がりエッジ位置において、遅延素子列１０２１上の電位が、高電位部分と低電位部分の間の電位となっている可能性がある。そのため、進行状況数列において、エッジ位置（進行状況数列の並びが“１０”または“０１”となる位置）は１ｂｉｔ（遅延素子１個分）の範囲で変動しうる。ここで、遅延素子１個分の時間は測定誤差として許容できるので、通常は問題とならない。しかしながら、基準クロック１周期分の区切りに位置する遅延素子の電位が高電位部分と低電位部分の間となり、エッジ位置が１ｂｉｔ分ずれると、既述したマスク処理により、重複している前回取り込んだ進行状況数列をマスクすることで、基準クロック１周期分の中に、エッジ位置が存在しないこととなり、本来あるべきエッジが検出できない、という問題が発生する。この問題を解決するために、誤り検出処理を行なう。この誤り検出処理では、進行状況数列に含まれている前回取り込んだ進行状況数列を利用する。
【００３０】
この問題の解決方法について、図７を用いて説明する。既述したように、進行状況数列のＬＳＢが最も新しいビットであり、進行状況数列のＭＳＢが最も古いビットである。つまり、図７（Ａ）及び（Ｂ）に示されているｎ番目に取り込んだ進行状況数列において、基準クロックの１周期に対応するビット数よりもＭＳＢ側に存在するビットはｎ−１番目に取り込んだ進行状況数列である。同様に、図７（Ａ）及び（Ｂ）のに示されているｎ＋１番目に取り込んだ進行状況数列において、基準クロックの１周期に対応するビット数よりもＭＳＢ側に存在するビットはｎ番目に取り込んだ進行状況数列である。
【００３１】
図７（Ａ）に示されたｎ番目に取り込んだ進行状況数列において、ｎ番目に取り込んだ進行状況数列のＬＳＢは“０”であり、ｎ＋１番目に取り込んだ進行状況数列におけるｎ番目に取り込んだ進行状況数列のＬＳＢも“０”であるので、両者は一致している。このことから、図７（Ａ）において、エッジ位置が１ｂｉｔ分ずれる現象は発生していないと判断される。そして、図７（Ａ）に示されたｎ＋１番目に取り込んだ進行状況数列についてエッジ抽出処理を行なったｎ＋１番目に取り込んだエッジ抽出数列は、基準クロック１周期分の内に存在（基準クロック１周期分のＭＳＢが１）している。そのため、ｎ＋１番目に取り込んだエッジ抽出数列に既述したマスク処理を行なっても、ｎ＋１番目に取り込んだエッジ抽出数列のエッジ位置を表す“０１”という数列がマスクされることはない。
【００３２】
図７（Ｂ）に示されたｎ番目に取り込んだ進行状況数列において、ｎ番目に取り込んだ進行状況数列のＬＳＢは“０”であり、ｎ＋１番目に取り込んだ進行状況数列におけるｎ番目に取り込んだ進行状況数列のＬＳＢは“１”であるので、両者は一致していない。このことから、図７（Ｂ）において、エッジ位置が１ｂｉｔ分ずれる現象が発生したと判断される。そして、図７（Ｂ）に示されたｎ＋１番目に取り込んだ進行状況数列についてエッジ抽出処理を行なったｎ＋１番目に取り込んだエッジ抽出数列は、基準クロック１周期分の内に存在せず、基準クロック１周期分の外に存在する（基準クロック１周期分のＭＳＢが０であり、基準クロック１周期分のＭＳＢよりも１ｂｉｔ分ＭＳＢ側に位置するビットが１となっている）。そのため、ｎ＋１番目に取り込んだエッジ抽出数列に既述したマスク処理を行なうと、ｎ＋１番目に取り込んだエッジ抽出数列のエッジ位置を表す“０１”という数列がマスクされてしまい、ｎ＋１番目に取り込んだ進行状況数列にはエッジが存在しないこととなる。つまり、本来あるべきエッジが検出できない、という問題が発生する。
【００３３】
ここで、ｎ＋１番目に取り込んだ進行状況数列におけるｎ番目に取り込んだ進行状況数列は、基準クロック１周期分の個数の遅延素子を通過している。そして、通過する遅延素子の数が多いほど、波形がなまる可能性が高くなるので、遅延素子列１０２１上の電位が、高電位部分と低電位部分の間の電位となっている可能性が高くなる。そのため、ｎ番目に取り込んだ進行状況数列とｎ＋１番目に取り込んだ進行状況数列におけるｎ番目に取り込んだ進行状況数列とを比較すると、ｎ番目に取り込んだ進行状況数列の方が信頼性が高い、と考えられる。そこで、ｎ＋１番目に取り込んだ進行状況数列におけるｎ番目に取り込んだ進行状況数列とｎ番目に取り込んだ進行状況数列とが不一致の場合は、不一致のビットをｎ番目に取り込んだ進行状況数列の値に書き換える処理を行なう。この書き換える処理が誤り検出処理である。図７（Ｂ）の場合、ｎ＋１番目に取り込んだ進行状況数列におけるｎ番目に取り込んだ進行状況数列のＬＳＢを“１”から“０”に書き換える。この結果、図７（Ａ）と同じとなり、ｎ＋１番目に取り込んだエッジ抽出数列に既述したマスク処理を行なっても、ｎ＋１番目に取り込んだエッジ抽出数列のエッジ位置を表す“０１”という数列がマスクされることを回避できる。つまり、ｎ＋１番目に取り込んだ進行状況数列にはエッジが存在しない、という本来あるべきエッジが検出できない、という問題は発生しない。
【００３４】
このように、数列解析部２０１２は、保存用メモリ２０２１へ保存された進行状況数列に対して、誤り検出処理、エッジ抽出処理、マスク処理の順番で処理を行い、基準クロックの１周期分の長さに対応するエッジ抽出数列を作成する。誤り検出処理では、ｎ番目に取り込んだ進行状況数列とｎ＋１番目に取り込んだ進行状況数列を用いるので、保存用メモリ２０２１には、少ないとも２回分の進行状況数列が保存される。
【００３５】
数列解析部２０１２により作成された基準クロックの１周期分の長さに対応するエッジ抽出数列は、解析用メモリ２０２２へ保存される。この基準クロックの１周期分の長さに対応するエッジ抽出数列は、このエッジ抽出数列の母体となる進行状況数列を取り込んだカウンタ部（何周期目の基準クロックで取り込んだのか）と数列部とで構成される。数列部では、基準クロックの１周期に対応する数列であるＬＳＢから基準クロックの周期に対応する遅延素子列の個数に対応する数列のみ残し、これよりもＭＳＢ側の数列は削除される。図１１（Ａ）に基準クロックの１周期分の長さに対応するエッジ抽出数列の構造を示す。
【００３６】
解析用メモリ２０２２は、数列解析部２０１２により作成された基準クロックの１周期分の長さに対応する基準クロックの周期が5nsecについて、取り込んだ順番に保存する。保存するエッジ抽出数列の数が、時間計測できる期間に対応する。例えば、基準クロックの周期が5nsecの場合、1000個分のエッジ抽出数列が保存できる場合、時間計測できる期間は、5000nsec（＝5μsec（マイクロセック））となる。すなわち、時間計測できる期間を長くしようとすると、必要となる解析用メモリ２０２２の容量は増える。そこで、エッジ位置を示す“１０”または“０１”が存在する数列のみを保存することで、解析用メモリ２０２２の利用効率が向上する。図１１（Ｂ）に、解析用メモリ２０２２における数列解析部２０１２により作成された基準クロックの１周期分の長さに対応するエッジ抽出数列のデータ配置を示す。図１１（Ｂ）では、ｎ番目に取り込んだ“000000001000000000000000001000000000”というエッジ抽出数列とｎ＋ｍ番目に取り込んだ“000100000000000000000000000000000000”というエッジ抽出数列が、解析用メモリ２０２２に保存されている。
【００３７】
＜時間計算＞
数値化演算部２０１３は、エッジ抽出数列におけるエッジ位置を時間に変換する。具体的には、そのエッジ抽出数列の母体となった進行状況数列を取り込んだカウンタ値がｘであり、そのエッジ抽出数列におけるエッジ位置がＬＳＢ側からｙ番目であり、キャリブレーション制御で得られた遅延素子一個分の遅延時間がΔｔであり、基準クロックの１周期の時間がＰであるならば、測定開始信号からそのエッジ抽出数列におけるエッジまでの時間Ｔは、Ｔ＝（Ｐ×ｘ）−（Δｔ×ｙ）により計算することができる。
【００３８】
＜距離計測装置＞
既述した時間計測装置１００を適用した距離計測装置であるＬｉｄａｒ（Light Detection and Ranging、またはLaser Imaging Detection and Ranging）について説明する。図８は、上記Ｌｉｄａｒ８００の構成を示すブロック図である。図８に示すように、Ｌｉｄａｒ８００では、制御部８０１の命令で半導体レーザー（発光手段８０２）からパルス状のレーザーが射出される。射出されたレーザーは、図示されていないポリゴンミラーで所望の方向へ偏向され、対象物で反射されて受光手段８０３で電気信号に変換され、二値化手段８０４でパルス状となった受光信号となる。
【００３９】
一方、制御手段８０１は、半導体レーザー（発光手段８０２）に対して射出命令を送ると同時に時間計測回路１００にスタート信号を送る。受光信号は時間計測回路１００のスタート端子に入力され、射出から受光までの時間を分かる。この時間と光速ｃとの積から対象物までの距離が分かり、通信手段８０５でその結果を次工程に出力する。
【００４０】
以上説明したように、キャリブレーション制御により、基準クロックの１周期に対応する遅延素子の数を求め、遅延素子１個当たりの遅延時間を求めることにより、温度変化により遅延素子の遅延時間が変化したとしても、測定開始から被測定信号（パルス信号）の立ち上がりエッジまたは立ち下がりエッジまでの時間を精度良く時間計測することが出来る。更にキャリブレーション制御において、遅延回路に入力する基準クロックの位相を反転することで、確実に基準クロックの１周期に対応する遅延素子の数を求めることが出来る。
【００４１】
また、遅延回路における遅延素子の数を、遅延回路における総遅延時間が基準クロックの１周期よりも長くなるように設定することで、温度変化により遅延素子の遅延時間が変化に対応している。
【００４２】
また、測定開始から被測定信号（パルス信号）の立ち上がりエッジまたは立ち下がりエッジまでの時間を求める際に、立ち上がりエッジ、または立ち下がりエッジが存在する進行状況数列を抽出し、抽出された進行状況数列についてのみ、時間計測処理を行なうことで、時間計測処理の高速化と進行状況数列を保存するメモリを節約することが出来る。
【００４３】
また、立ち上がりエッジ、または立ち下がりエッジが存在する進行状況数列を抽出する際に、ｎ番目の進行状況数列とｎ＋１番目の進行状況数列を用いて、ｎ＋１番目の進行状況数列について誤り検出を行い、誤ったビットを書き換えることで、ｎ＋１番目の進行状況数列における基準クロックの１周期に対応する数列からあるべきエッジ情報が無くなることを防止することができる。
【００４４】
また、立ち上がりエッジ、または立ち下がりエッジが存在する進行状況数列について、基準クロックの１周期に対応する数列よりもＭＳＢ側の数列を削除することでＬＳＢ側から基準クロックの１周期に対応する数列のみを取り出し、この進行状況数列を取り込んだカウンタ値と基準クロックの１周期に対応する数列よりもＭＳＢ側の数列を削除したエッジ抽出数列を用いて、時間計測処理を行なうことで、時間計測処理の高速化と進行状況数列を保存するメモリを節約することが出来る。
【符号の説明】
【００４５】
１００        時間計測装置
１０２      時間計測回路本体
１０２１    遅延素子列１０２１
１０２２    フリップフロップ部１０２２
１０５      基準クロック生成部
２００      時間測定部
２０１      時間測定部制御部
２０１１    キャリブレーション制御部
２０１２    数列解析部
２０１３    数値化演算部
８００      距離計測装置（Ｌｉｄａｒ）
８０１      距離計測装置（Ｌｉｄａｒ）の制御手段
８０２      距離計測装置（Ｌｉｄａｒ）の発光手段
８０３      距離計測装置（Ｌｉｄａｒ）の受光手段
８０４      距離計測装置（Ｌｉｄａｒ）の二値化手段
８０５      距離計測装置（Ｌｉｄａｒ）の通信手段
【先行技術文献】
【特許文献】
【００４６】
【特許文献１】特開平０９−３１８７３５号公報
【特許文献２】特開２００１−１２４８５４号公報
【図１】
2018152823.tif 000003
【図２】
2018152823.tif 000004
【図３】
2018152823.tif 000005
【図４】
2018152823.tif 000006
【図５】
2018152823.tif 000007
【図６】
2018152823.tif 000008
【図７】
2018152823.tif 000009
【図８】
2018152823.tif 000010
【図９】
2018152823.tif 000011
【図１０】
2018152823.tif 000012
【図１１】
2018152823.tif 000013