JP5886015B2 - 時間測定装置、マイクロコントローラ、プログラム、及び時間測定方法 - Google Patents

時間測定装置、マイクロコントローラ、プログラム、及び時間測定方法 Download PDF

Info

Publication number
JP5886015B2
JP5886015B2 JP2011263991A JP2011263991A JP5886015B2 JP 5886015 B2 JP5886015 B2 JP 5886015B2 JP 2011263991 A JP2011263991 A JP 2011263991A JP 2011263991 A JP2011263991 A JP 2011263991A JP 5886015 B2 JP5886015 B2 JP 5886015B2
Authority
JP
Japan
Prior art keywords
clock signal
basic clock
interrupt
counting
procedure
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2011263991A
Other languages
English (en)
Other versions
JP2013117785A (ja
Inventor
晃輔 安田
晃輔 安田
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Lapis Semiconductor Co Ltd
Original Assignee
Lapis Semiconductor Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Lapis Semiconductor Co Ltd filed Critical Lapis Semiconductor Co Ltd
Priority to JP2011263991A priority Critical patent/JP5886015B2/ja
Priority to US13/687,121 priority patent/US9134752B2/en
Priority to CN201210506255.6A priority patent/CN103135661B/zh
Publication of JP2013117785A publication Critical patent/JP2013117785A/ja
Application granted granted Critical
Publication of JP5886015B2 publication Critical patent/JP5886015B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/04Generating or distributing clock signals or signals derived directly therefrom
    • G06F1/14Time supervision arrangements, e.g. real time clock
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/04Generating or distributing clock signals or signals derived directly therefrom

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Measurement Of Unknown Time Intervals (AREA)
  • Power Sources (AREA)
  • Electric Clocks (AREA)

Description

本発明は、コンピュータ処理を行う装置におけるタイマを用いた時間測定技術に係り、特に、高速動作時における時間測定動作の高精度化を低コストに行うのに好適な時間測定装置、マイクロコントローラ、プログラム、及び時間測定方法に関するものである。
コンピュータ処理を行う装置として、1つの半導体チップにコンピュータシステム全体を集積したマイクロコントローラがある。一般に、このマイクロコントローラは、動作クロックを生成するための発振器を複数備えており、目的や用途によってCPU(Central Processing Unit)やタイマなどの周辺回路の動作クロックを切り替えることができる。
例えば、通常の動作では、消費電力を抑えるためこれらの動作クロックとして低速のクロックを選択し、高速で処理を行う必要が生じたときに高速のクロックに切り替える。
一例として、無線通信を行うシステムでは、無線によるコマンドの受信が開始されるまでは、低速のクロックで動作しコマンドの受信を待つ状態になっている。これにより、コマンドの受信を待つ状態における消費電力を少なくすることができる。
ここで、一定間隔で状態が変化し、その状態を無線で送信する装置aと、装置aの状態を無線で受信し、装置aの状態に応じた動作を装置aと同じ間隔で切り替える装置bがあり、装置bは、何らかの妨害で装置aからの無線が途切れた場合でも、以前受信した間隔をもとに動作し続ける無線通信を行うシステムがあるとする。
このシステムで、装置bは、装置aからの無線が途切れた場合でも装置aと同期をとるため、受信したコマンドの時間間隔を正確に測定する必要があり、この場合、コマンドの時間間隔を測定するタイマの精度は高くする必要がある。
このような用途に用いられるマイクロコントローラに搭載されるクロック発振器として代表的なものとしては、水晶発振器やRC発振器が挙げられる。
水晶発振器は、水晶振動子を外部に付加して使用する発振器で、高精度なクロックを生成することができる。
また、RC発振器は、マイクロコントローラの外部に部品を取り付ける必要はなく、内部に集積することができるため、水晶発振器よりも安価に構築することができる。
しかし、RC発振器では、水晶発振器と比べて高精度なクロックを生成することはできない。そのため、RC発振器は、正確な測定時間を要する用途には使用することができない。
この問題を解決するために、特許文献1では、RC発振器を使用したタイマを用いる場合でも正確な時間測定を可能とする技術が提案されている。この特許文献1に記載のマイクロコントローラの動作を、図15のタイミングチャートを用いて説明する。
図15に示すように、RC発振器による基本クロックの立ち上がりで発生する割込み要求レジスタの割込み要求信号の立ち上がりから、RC発振器のクロックの1周期分の先頭(図中、丸付きの1で示される)と1周期の終わり(図中、丸付きの2で示される)を検出し、その間に発生する高精度で高周波数の水晶発振器による基本クロックのカウント値(計数値)の確認を行う。
このように、高精度で高周波数の水晶発振器により、RC発振器のクロックの1周期を計測することで、RC発振器の実際の正確な周期を求め、求めた実際の周期とRC発振器の正常時における周期(期待計数値)との比率を算出し、算出した比率に基づき補正係数を求める。そして、その補正係数を、RC発振器を入力としたタイマの計数値に乗じることで、タイマによる測定時間の補正を行う。
しかし、この技術では、次のような問題がある。
第1の問題点は、特許文献1の技術では、RC発振器のクロック周期を直接測定可能であるような、高周波数で高価な水晶振動子が必要であり、RC発振回路による低コスト化のメリットが失われてしまう点である。
一般に、水晶発振器は、高周波数なものほど高価であるため、高周波の発振クロックで動作するコンピュータシステムにおいてタイマの制御に水晶発振器を用いるとコスト高になってしまう。
そのため、マイクロコントローラの動作を安価に高速化するためには、RC発振器のクロックを高速化してシステムクロックとして用いることが望ましい。しかし、この場合、特許文献1の技術では、さらに高周波数の水晶振動子が必要となる。
なお、特許文献1のマイクロコントローラにおいても、水晶発振器のクロックを、高速動作時のシステムクロックとして選択して使用しているが、当該マイクロコントローラをさらに高速に動作させるためには、高価な水晶発振器が必要となりコスト高となる。
第2の問題点は、特許文献1の技術で正確な補正係数を求める場合、RC発振器は、水晶発振器よりも低周波数でなくてはならないため、その低周波数のRC発振器の基本クロックを入力とするタイマの分解能を高めることができない点である。
タイマの分解能を高める場合は、高周波数の基本クロックを発振するRC発振器を使用しなければならない。RC発振器は高周波数のものであっても安価ではあるが、特許文献1の技術では、タイマの分解能を高めるためには、同時に高周波数の水晶発振器を使用しなければならないため、コストが高くなってしまう。
なお、特許文献1においても記載されているように、RC発振器の周波数を分周すれば、低周波数の水晶発振器を使用したままでもタイマの分解能を高めることができる。しかし、この場合、分周器を新たに追加しなければならない。なお、分周器としては、例えば、特許文献2に記載のものがある。
また、このように分周器を使用した場合、RC発振器の基本クロックの1周期が分周されて長くなるため、補正係数を求める際に行う、RC発振器の1クロックの間に発生する水晶発振器のクロックを計数する処理の時間が増加してしまう。
第3の問題点は、補正係数算出の際に行っている水晶発振器のクロックの先頭と終端の検索と、タイマ補正係数を用いてポート出力する技術を、特許文献1においては、ポーリングすることによって実現しているため、マイクロコントローラ内のCPUが常に動作している状態にあり、省電力モードに切り替えることができない点である。また、ポーリング中、CPUは他の処理を実行することができない。
第4の問題点は、補正係数を求める際に、低周波数のRC発振器の1周期を、高周波数の水晶発振器のクロックを入力したタイマで計数しているので、RC発振器と水晶発振器の速度差が大きい場合、タイマの計数値がオーバーフローしてしまう場合がある点である。
なお、タイマによる発振器のクロック数の計数動作を制御するための技術として、例えば、特許文献3,4に記載のものがある。
特許文献3においては、第1のクロック信号の周波数の誤差を補正するために、第1のクロック信号よりも周波数が低い第2のクロック信号を入力し、パルス数カウンタにより当該第2のクロック信号の1周期に含まれる第1のクロック信号のパルス数を計数し、演算部において、このパルス数カウンタが計数したパルス数と予め定められた基準パルス数とを用いて補正情報を算出し、補正信号出力部において、演算部が算出した補正情報に基づいてクロック補正信号を出力し、出力ゲートにおいて、補正信号出力部が出力したクロック補正信号に基づいて第1のクロック信号の出力を補正する技術が開示されている。
しかし、この技術では、タイマへ入力されるRC発振器などで生成された第1のクロック信号の一部を、水晶発振器で生成された第2のクロック信号の1周期に基づき、タイマへ伝えないように信号を切り離しており、クロック自身に加工を行なうものであり、構成を増加させる必要がある。
また、特許文献4においては、基準発振器の1周期毎にRC発振器の周波数を計数し、計数値がある一定値以上であれば、スイッチトランジスタの数を増やしてRC発振器における全容量値を増やして出力発振周波数を小さくし、計数数がある一定値より小さければ、スイッチトランジスタの数を減らしてRC発振器における全容量値を減らして出力発振周波数を大きくする手順を繰り返す事により、発振周波数を、内部の別の基準発振器により自動的に目的の値に安定するように制御する技術が開示されており、この特許文献4における技術では、スイッチトランジスタの数を増やしてクロックを加工しており、特許文献3と同様に、構成を増加させる必要がある。
特開平10−49251号公報 特開平05−48433号公報 特開2006−309479号公報 特開平08−139593号公報
本発明は、上記問題点を解決するためのものであり、コンピュータ装置に設けられたタイマによる高速動作時における高精度な時間測定を低コストに行うことを可能とする時間測定装置,マイクロコントローラ、プログラム、及び時間測定方法を提供することを目的とする。
上記目的を達成するため、本発明の時間測定装置は、システムクロックとして用いられる第1の基本クロック信号のクロック数を計数する計数手段と、前記第1の基本クロック信号よりも発振周波数が低く発振精度の高いシステムクロックとして用いられる第2の基本クロック信号の所定周期における前記計数手段により計数された前記第1の基本クロック信号のクロック数と、前記第2の基本クロック信号の所定周期に対応する前記第1の基本クロック信号のクロック数として予め計数された基準クロック数と、を用いて、前記計数手段が計数したクロック数の前記基準クロック数に対する変動量を示す物理量を導出する導出手段と、前記導出手段が導出した前記物理量に応じて、測定対象とする時間に対応する前記第1の基本クロック信号のクロック数を示す期待計数値を補正する補正手段と、前記計数手段が計数した前記第1の基本クロック信号のクロック数が、前記補正手段が補正した補正期待計数値に達した場合に、当該補正期待計数値に達したことを示す時間情報を出力する出力手段と、を備えた構成となっている。
また、上記目的を達成するため、本発明のマイクロコントローラは、上記記載の時間測定装置を備えて構成される。
また、上記目的を達成するため、本発明のプログラムは、コンピュータを、上記記載の時間測定装置における各手段として機能させるためのプログラムである。
また、上記目的を達成するため、本発明の時間測定方法は、プログラムに基づくコンピュータ装置により時間を測定する方法であって、システムクロックとして用いられる第1の基本クロック信号のクロック数を計数する計数手順と、前記第1の基本クロック信号よりも発振周波数が低く発振精度の高いシステムクロックとして用いられる第2の基本クロック信号の所定周期における前記計数手順により計数された前記第1の基本クロック信号のクロック数と、前記第2の基本クロック信号の所定周期に対応する前記第1の基本クロック信号のクロック数として予め計数された基準クロック数と、を用いて、前記計数手順で計数されたクロック数の前記基準クロック数に対する変動量を示す物理量を導出する導出手順と、前記導出手順で導出された前記物理量に応じて、測定対象とする時間に対応する前記第1の基本クロック信号のクロック数を示す期待計数値を補正する補正手順と、前記計数手順で計数された前記第1の基本クロック信号のクロック数が、前記補正手順で補正された補正期待計数値に達した場合に、当該補正期待計数値に達したことを示す時間情報を出力する出力手順と、を含むものである。
本発明によれば、コンピュータ装置に設けられたタイマによる高速動作時における高精度な時間測定を低コストに行うことを可能である。
本発明に係るマイクロコントローラに備えられた時間測定装置の機能構成例を示すブロック図である。 本発明に係る時間測定装置を設けたマイクロコントローラの第1の構成例を示すブロック図である。 図2におけるマイクロコントローラの本発明に係る第1の処理動作例を示すフローチャートである。 図2におけるマイクロコントローラの時間測定補正時の第1の動作例を示すタイミングチャートである。 図2におけるマイクロコントローラの本発明に係る第2の処理動作例を示すフローチャートである。 図2におけるマイクロコントローラの時間測定補正時の第2の動作例を示すタイミングチャートである。 本発明に係る時間測定装置を設けたマイクロコントローラの第2の構成例を示すブロック図である。 図7におけるマイクロコントローラの本発明に係る第1の処理動作例を示すフローチャートである。 図7におけるマイクロコントローラの本発明に係る第2の処理動作例を示すフローチャートである。 図7におけるマイクロコントローラの時間測定補正時の動作例を示すタイミングチャートである。 図7におけるマイクロコントローラの本発明に係る第3の処理動作例を示すフローチャートである。 図7におけるマイクロコントローラの本発明に係る第4の処理動作例を示すフローチャートである。 本発明に係る時間測定装置を設けたマイクロコントローラの第3の構成例を示すブロック図である。 本発明に係る時間測定装置を設けたマイクロコントローラの第4の構成例を示すブロック図である。 従来のマイクロコントローラにおける時間測定補正時の動作例を示すタイミングチャートである。
以下、図を用いて本発明を実施するための形態例について説明する。
図1は、本発明に係るマイクロコントローラ100に備えられた時間測定装置101の機能構成例を示しており、本例の時間測定装置101は、本発明に係る動作を実行する機能として、計数部101a、導出部101b、補正部101c、及び出力部101dを備えている。
計数部101aは、第1の基本クロック信号のクロック数を計数し、導出部101bは、第1の基本クロック信号よりも発振周波数が低く発振精度の高い第2の基本クロック信号の所定周期における計数部101aにより計数された第1の基本クロック信号のクロック数と、第2の基本クロック信号の所定周期に対応する第1の基本クロック信号のクロック数として予め計数された基準クロック数と、を用いて、計数部101aが計数したクロック数の基準クロック数に対する変動量を示す物理量を導出し、補正部101cは、導出部101bが導出した物理量に応じて、測定対象とする時間に対応する第1の基本クロック信号のクロック数を示す、記憶装置に記憶されている期待計数値101eを補正し、出力部101dは、計数部101aが計数した第1の基本クロック信号のクロック数が、補正部101cが補正した補正期待計数値に達した場合に、当該補正期待計数値に達したことを示す時間情報を出力する。
このような各処理部を設けた構成の時間測定装置101を備えたことにより、マイクロコントローラ100は、高速動作時におけるタイマ機能による高精度な時間測定を低コストに行うことができる。
次に、図2〜図14を用いて、このような時間測定装置を備えたマイクロコントローラの詳細について説明を行う。
図2は、本発明の第1の形態例を示すマイクロコントローラの構成図であり、本例のマイクロコントローラ1は、本発明に係る時間測定方法を含むマイクロコントローラ1の処理動作を制御するプログラムが格納されたROM14と、ROM14に格納された各プログラムを読み出してコンピュータ処理を実行するCPU13と、マイクロコントローラ内部のデータが通るバス11と、システムクロック7と、外部とのインターフェースを行うポート12と、第1の基本クロック3を生成するRC発振器2と、第2の基本クロック5を生成する水晶発振器4と、第1及び第2の基本クロックのどちらをシステムクロック7として出力するかを選択する基本クロック選択器6と、システムクロック7を時間情報として計数するタイマ8と、第2の基本クロック5に同期し割込み要求信号を出力する割込み要求レジスタ9と、から構成されている。
なお、ROM14に格納された本発明に係る時間測定用のプログラムを読み込んでCPU13が実行することにより、本発明に係る導出手段、補正手段、及び出力手段等を含む、各手段が構成される。また、タイマ8は本発明に係る計数手段に相当し、割込み要求レジスタ9は本発明に係る同期信号生成手段に相当する。
本例のマイクロコントローラ1においては、RC発振器2は発振周波数が高い第1の基本クロック3を生成し、水晶発振器4はRC発振器2の発振周波数より低い高精度の第2の基本クロック5を生成する。そして、基本クロック選択器6は第1の基本クロック3と第2の基本クロック5のどちらをシステムクロック7にするかを選択し、タイマ8は、基本クロック選択器6が選択した第1の基本クロック3と第2の基本クロック5のいずれかのシステムクロック7のクロック数を計数し、CPU13は、タイマ8の計数値が予め定められた時間に相当する値(期待計数値)になるまで、タイマ8の計数値を確認する動作を繰り返す。
このような構成において、本例のマイクロコントローラ1は、RC発振器2からの高い周波数の発振クロック信号である第1の基本クロック3をシステムクロック7として用いて高速な処理動作を行い、水晶発振器4からの低い周波数の発振クロック信号である基本クロック5をシステムクロック7として用いて、低速な処理動作を行う。
このように、図4に示す本例のマイクロコントローラ1は、RC発振器2からの発振周波数が高い基本クロック3をシステムクロックとして用いており、高速な処理を低コストに行うことができる。
しかし、RC発振器2では、水晶発振器4と比べて高精度なクロック信号を生成することができないため、高速処理時のタイマ8における計数動作に誤差が生じて正確な時間を測定することができない。
この問題を回避するために、本例のマイクロコントローラ1においては、ROM14に格納された本発明に係る時間測定用のプログラムをCPU13が読み出して実行することにより、RC発振器2からの発振周波数が高い基本クロック3をシステムクロックとして用いて高速処理を行う際の、タイマ8を用いた時間測定処理で生じる誤差を補正する。
すなわち、CPU13は、ROM14に格納されたプログラムを実行して実装される時間測定機能により、タイマ8が計数した高速処理時のRC発振器2からの基本クロック3のクロック数が予め定められた期待計数値になると、当該期待計数値に対応付けられた時間情報を出力するが、このように、基本クロック3のクロック数の読み込みを開始する前に、ROM14に格納されたプログラムをCPU13が実行して実装される導出手段、補正手段、及び出力手段等の各機能により、以下のようにして、RC発振器2の発振動作誤差に伴うタイマ8による時間測定の補正を行う。
まず、CPU13は、導出手段の機能により、発振精度の高い水晶発振器4からの第2の基本クロック5が入力されたか否かを判別し、入力されると、当該第2の基本クロック5の1周期におけるタイマ8が計数した第1の基本クロック3のクロック数を取得して、取得した実際のクロック数の、予め第2の基本クロック5の1周期に対して定められた基本クロック3のクロック数(基準クロック数)に対する変動量を示す物理量を導出し、次に、補正手段の機能により、導出機能により導出された物理量に応じて期待計数値を補正する。
なお、本例では、変動量を示す物理量として、取得した実際のクロック数と基準クロック数との比率を導出し、このように導出した比率に応じて、期待計数値を補正する。
そして、CPU13は、出力手段の機能により、タイマ8が計数した基本クロック3のクロック数が、補正手段の機能により補正された期待計数値になると時間情報を出力する。
このように、本例のマイクロコントローラ1においては、発振周波数が高いRC発振器2の第1の基本クロック3に基づく高速処理動作中でのタイマ8による時間測定時に、発振周波数が低いが精度が高い水晶発振器4から入力される第2の基本クロック5を制御信号として用いて、時間測定に用いるRC発振器2の第1の基本クロック3のクロック数の変動に対する補正を行うことで、高速な処理動作中でのタイマ8を用いた時間測定を高精度に行い、高速な処理を低コストに且つ高精度に行う。
以下、図3〜図6を用いて、このようなマイクロコントローラ1における本例に係るタイマ補正技術の詳細を説明する。
まず、図3のフローチャートを用いて、図2のタイマ8をRC発振器2が生成する高速な第1の基本クロック3で動作させる場合の、タイマ8を用いた時間測定の精度を向上させるために用いるタイマ補正係数を求めるための、CPU13のプログラムに基づき実行される処理を説明する。
タイマ8で計数するクロックとしてRC発振器2からの基本クロック3を選択するように基本クロック選択器6を設定し(ステップS1)、割込み要求レジスタ9をクリア(初期化)する(ステップS2)。
ポーリングにより、割込み要求レジスタ9からの割込み要求信号の出力の有無を判別し(ステップS3)、出力していれば割込み要求レジスタ9とタイマ8の値をクリア(初期化)して(ステップS4,S5)、次の割込み要求レジスタ9からの割込み要求信号が出力されているか確認し続けることにより、次の水晶発振器4のクロックの1周期分の先頭を探す(ステップS6)。
このステップS6での処理の間に、タイマ8により水晶発振器4からの第2の基本クロック5の1周期におけるRC発振器2からの第1の基本クロック3のクロック数が計数される。
ステップS6での処理において次の1周期分の先頭が見つかれば、当該ステップS6での処理中にタイマ8が計数した値、すなわち、水晶発振器4からの第2の基本クロック5の1周期におけるRC発振器2からの第1の基本クロック3のクロック数を読み取る(ステップS7)。
その後、このステップS7の処理で読みとったタイマ8の計数値からタイマ補正係数を求める(ステップS8)。
本例では、この補正係数は以下のようにして求める。すなわち、ステップS7の処理で実際に読み取ったクロック数を実クロック数A、予め水晶発振器4からの第2の基本クロック5の1周期における基準となるRC発振器2からの第1の基本クロック3のクロック数を基準クロック数Bとすると、補正係数Cは、以下の式で求める。
「C=A/B」
このような補正係数を求める際の、RC発振器2からの第1の基本クロック3、水晶発振器4からの第2の基本クロック5、及び割込み要求レジスタ9の割込み要求信号10の各信号の動作関係を、図4のタイミングチャートを用いて説明する。
図4におけるRC発振器による基本クロック3及び水晶発振器による基本クロック5のそれぞれは、図2におけるRC発振器2による第1の基本クロック3及び水晶発振器4による第2の基本クロック5に相当し、また、図4におけるS2〜S4,S6は、図3における各処理ステップの符号S2〜S4,S6に対応している。
S2のタイミングでは、図2のCPU13が、図3におけるステップS2の処理により、割込み要求レジスタ9をクリア(初期化)する。S3のタイミングでは、割込み要求レジスタ9が、水晶発振器4からの第2の基本クロック5における1周期分の先頭を検出して、割込み要求信号10を生成する。
CPU13は、ポーリングにより、この割込み要求レジスタ9による割込み要求信号10の生成を検知し、S4のタイミングで、割込み要求レジスタ9の値をクリア(初期化)する。なお、タイマ8は、このS3のタイミングで一旦クリア(初期化)された後、RC発振器2からの第1の基本クロック3のクロック数の計数を開始する。
S6のタイミングでは、割込み要求レジスタ9が、水晶発振器4からの第2の基本クロック5における次の1周期分の先頭を検出して、割込み要求信号10を生成する。CPU13は、ポーリングにより、この割込み要求レジスタ9による次の割込み要求信号10の生成を検知して割込み要求レジスタ9の値をクリア(初期化)する。
このようにして、CPU13は、実際の、水晶発振器4からの第2の基本クロック5の1周期におけるRC発振器2からの第1の基本クロック3のクロック数を読み取り、補正係数を求める。
次に、このようにして求めた補正係数を用いて、タイマ8を用いた時間測定の精度を向上させる際の処理内容を、図5に基づき説明する。
まず、基本クロック選択器6により、タイマ8で計数するクロックをRC発振器2からの基本クロック3に設定する(ステップS9)。
なお、予め、タイマ8により測定する所望の時間を、所望のRC発振器2の周期、すなわち水晶発振器4からの第2の基本クロック5の1周期における正常時のRC発振器2からの第2の基本クロックのクロック数として予め定められた基準クロック数で割った値を、所望のタイマ8の期待値(期待計数値)として求めてROM14等の記憶装置に記憶しておくと共に(ステップS10)、このステップS10の処理により求めた所望のタイマの期待計数値に、図3のステップS8の処理で求めたタイマ補正係数を乗じた値を、補正後のタイマの期待計数値(補正期待計数値)として求めてROM14等の記憶装置に記憶しておく(ステップS11)。すなわち、「補正後のタイマの期待値=所望のタイマの期待値×タイマ補正係数」の式に基づき算出する。
そして、タイマ8を一旦クリア(初期化)し(ステップS12)、その後のタイマ8の計数値を読み取り(ステップS13)、このタイマ8の計数値が補正後のタイマの期待計数値より小さい間は(ステップS14)、ステップS13の処理を繰り返し、タイマ8の計数値が補正後のタイマの期待計数値に達すると、当該期待計数値に相当する時間が経過したことを示す時間情報をポート12経由で出力する(ステップS15)。
以上の補正係数を求める処理、及び求めた補正係数を用いてタイマの時間測定動作時の誤差を補正する処理の詳細を、図6のタイミングチャートを用いて説明する。
ここでは、補正係数を求める例として水晶発振器4からの第2の基本クロック5の発振周期を1.0msec、正常動作時における所望のRC発振器2からの第1の基本クロック3の発振周期を、図6におけるクロック波形15に示すように1.0μsecとする。
もし、RC発振器2からの第1の基本クロック3の実際の発振周期が、図6のクロック波形17で示すように1.1μsecに変動した場合、図3のステップS7の処理で読み取る、RC発振器2からの第1の基本クロック3のクロック数は909となる。
すなわち、水晶発振器4からの第2の基本クロック5の1周期が1.0msecであり、RC発振器2からの第1の基本クロック3の実際の発振周期が1.1μsecに変動した場合、タイマ8が、第2の基本クロック5の1周期の1.0msecの間に読み取る第1の基本クロック3のクロック数は、「1.0msec/1.1μsec=909」となる。
RC発振器2からの第1の基本クロック3の発振周期が所望の発振周期1.0μsecの場合、水晶発振器4からの第2の基本クロック5の周期1.0msecにおいてタイマ8により計数される基準クロック数は1000計数である。
従って、図3のステップS7の処理で読み取った第1の基本クロック3のクロック数が909の場合、タイマ8の補正係数Cは、「補正係数C=実クロック数A/基準クロック数B」により、「0.909=909/1000」となり、タイマ8の補正係数C=0.909が求められる。
次に、このようにして求めたタイマ補正係数(C=0.909)を用いて、RC発振器2からの高い発振周波数での、タイマ8を用いた時間測定の精度を高める技術を説明する。
補正を行う前のマイクロコントローラ1においては、もし、RC発振器2の所望の周期1.0μsecが1.1μsecに延びると、図6における時間16とクロック波形17,18に示すように、タイマ8を用いて測定する時間は、所望の1.0msecから1.1msecに延びてしまう。
このような不具合を補正するために、まず、図5のステップS10の処理で記憶する所望のタイマの期待値(期待計数値)を、「所望のタイマの期待値=所望の測定対象時間/所望の基本クロックの周期」の式に基づき、「1000=1.0msec/1.0μsec」として求める。
次に、このようにして求めた所望のタイマの期待計数値(=1000)に、図3のステップS8の処理に基づき求めたタイマ補正係数(=0.909)を乗じて、補正後のタイマの期待計数値(補正期待計数値)を求める。本図6の例では、補正期待計数値は、「1000×0.909=909」となる。
この後、タイマ8でのRC発振器2からの第1の基本クロック3のクロック数の計数を開始し、このタイマ8の計数値が補正期待計数値(=909)に達するまでタイマ8が計数するクロック数を読み取る。図6の例では、補正後のタイマの期待計数値(補正期待計数値)は909なので909×1.1μsec=1.0msecの間、タイマ8の計数値の読み取りを繰り返す。その結果として、タイマ8を用いて測定する時間は1.0msecとなり、測定する時間が補正されたことになる。
例えば、マイクロコントローラ1のポート12を経由して外部端子から1.0msecのパルス信号を発生する場合、この補正制御技術を用いなければ1.1msecになるが、本例の補正制御技術を用いれば、1.0msecのパルス信号幅を発生することが可能となる。
以上のように、第1の形態例においては、水晶発振器4からの第2の基本クロック5の1クロック分の周期を基準として、その1周期におけるRC発振器2からの第1の基本クロック3のクロック数を測定した結果に基づいた比率を基に、RC発振器2からの第1の基本クロック3を入力したタイマ8による時間測定に用いる期待計数値を補正している。
そのため、正確な補正係数を求める場合は、高周波数のRC発振器2と低周波数の水晶発振器4を使用することが条件となる。
タイマ8の分解能を高めるには、高周波数のRC発振器2を使用する必要があるが、本例では、高い発振周波数のRC発振器2を使用してタイマ8でのクロック数の計数を行う場合にも、低周波数で低価な高精度の水晶発振器4を使用してタイマ8を用いた時間測定の補正を行うことができる。
タイマ8の分解能を高めるために、従来の特許文献1に記載の技術のように、水晶発振器4からの第2の基本クロックを分周することも有効ではあるが、本例では、高周波数のRC発振器2を使用しており、水晶発振器4からの第2の基本クロックを分周することなくタイマ8の分解能を高めることができ、分周を行う従来技術に比べて補正係数を算出する処理時間が短くなる。
以上、図2〜図6を用いて説明したように、本第1の形態例では、ROM14に格納された本発明に係る時間測定用のプログラムを読み込んでCPU13が実行することにより、本発明に係る時間測定装置における、導出手段、補正手段、及び出力手段を含む、各手段を構成し、これらの各手段を用いることにより、発振周波数が高いRC発振器2のクロック数をシステムクロックとして高速な処理動作を行うコンピュータ装置におけるタイマによる時間測定動作の高精度化を低コストに実現することが可能となる。
すなわち、図2に示すように、本例のマイクロコントローラ1においては、タイマ8(計数手段)により、高速処理時のシステムクロックとして用いられるRC発振器2からの基本クロック3(第1の基本クロック信号)のクロック数を計数し、CPU13の導出手段としての機能により、水晶発振器4からの、第1の基本クロック信号よりも発振周波数が低く発振精度の高い基本クロック5(第2の基本クロック信号)が入力された場合、タイマ8に、入力された第2の基本クロック信号の1周期における第1の基本クロック信号のクロック数を計数させ、タイマ8が計数したクロック数と予め第2の基本クロック信号の1周期に対して定められた第1の基本クロック信号のクロック数である基準クロック数とを用いて、タイマ8が計数した第2の基本クロック信号の1周期における第1の基本クロック信号のクロック数の基準クロック数に対する変動量を示す物理量を導出し、このように導出した物理量に応じて、補正手段としての機能により、第1の基本クロック信号のクロック数に対して予め定められた期待計数値を補正し、そして、出力手段としての機能により、タイマ8が計数した第1の基本クロック信号のクロック数を読み込み、読み込んだクロック数が、補正手段の機能で補正した期待計数値に達すると、当該期待計数値に相当する時間が経過したことを示す時間情報を出力する。
なお、本第1の形態例のマイクロコントローラ1においては、第2の基本クロック信号の周期ごとに同期信号を生成する割込み要求レジスタ9(生成手段)を備え、CPU13は、導出手段としての機能により、ポーリングを行い、割込み要求レジスタが同期信号を生成しているか否かを判別し、同期信号を生成していれば、次の同期信号が生成されるまでの間、タイマ8に、水晶発振器4からの基本クロック5(第2の基本クロック信号)の1周期におけるRC発振器2からの基本クロック3(第1の基本クロック信号)のクロック数の計数を実行させて、当該計数値を順次に読み取ることで、水晶発振器4からの基本クロック5(第2の基本クロック信号)の1周期におけるRC発振器2からの基本クロック3(第1の基本クロック信号)のクロック数を読み取り、読み取ったクロック数と基準クロック数との比率を物理量として導出し、補正手段としての機能により、導出手段の機能で導出した比率に応じて、期待計数値を補正し、出力手段としての機能により、ポーリングを行い、タイマ8が計数するRC発振器2からの基本クロック3(第1の基本クロック信号)のクロック数が、補正手段の機能により補正された期待計数値に達したか否かを判別し、達すれば時間情報を出力する。
また、基本クロック選択器6により、RC発振器2からの基本クロック3(第1の基本クロック信号)と水晶発振器4からの基本クロック5(第2の基本クロック信号)のいずれかをシステムクロック7として選択して、タイマ8は、基本クロック選択器6が選択したシステムクロック7のクロック数を計数する。
次に、図7〜図10を用いて第2の形態例の説明を行う。上述の第1の形態例においては、本発明に係る補正動作を開始する際に制御信号として入力する水晶発振器4からの基本クロック5を、ポーリングにより行っているが、第2の形態例においては、割込み処理により、水晶発振器4からの基本クロック5を入力する。
図7に示すように、本第2の形態例におけるマイクロコントローラ1aは、図に示す第1の形態例におけるマイクロコントローラ1における割込み要求レジスタ9の代わりに、割込みコントローラ20を設けた構成となっており、その他の構成は同じであり、各構成要素に関しての説明はここでは省略する。
割込みコントローラ20は、水晶発振器4の周期ごとに割込みを発生すると共に、タイマ8の計数値が、例えば割込みコントローラ20内に設けられた図示していないタイマデータレジスタに設定した期待計数値に達した場合に割込みを発生する。
このような構成からなる本第2の形態例におけるマイクロコントローラ1aにおいても、RC発振器2からの高い周波数の発振クロック信号である基本クロック3に基づき、高速な処理動作を行うことで、高速な処理を低コストに行うことができる。
そして、RC発振器2の基本クロック3に基づく高速処理時のタイマ8における時間測定動作の不具合を回避するために、本例のマイクロコントローラ1aにおいても、ROM14aに格納された本発明に係る時間測定を実行するためのプログラムをCPU13が読み出して実行することにより、高速処理時におけるタイマ8を用いた時間測定動作に生じる誤差を補正する。
ここでは、CPU13は、基本クロック5の1周期においてタイマ8が計数する基本クロック3のクロック数を取得し、取得したクロック数と、予め基本クロック5の1周期に対して所望の計数値として定められた基本クロック3のクロック数との比率を変動量として導出し、導出した比率に応じて、期待計数値を補正する。
これにより、本例のマイクロコントローラ1aにおいても、RC発振器2からの高い周波数の発振クロック信号に基づく高速な処理動作を行う際の、タイマ8を用いた時間測定を高精度に行うことができ、高速な処理を低コストに、かつ高精度に行うことができる。
さらに、本第2の形態例におけるマイクロコントローラ1aは、例えば、CPU13の動作を停止して周辺回路のみ動作している状態にすることでマイクロコントローラ1aの消費電力を低減させる省電力モードを有している。
第1の形態例のマイクロコントローラ1では、図3で示した補正係数を算出する際に行っている水晶発振器4のクロックの先頭と終端の検索を、CPU13が割込み要求レジスタ9をポーリングすることによって実現しているため、CPU13が常に動作している状態にあり、省電力モードに切り替えることができない。
同様に、図5に示すフローチャートにおけるステップS15でのポート出力処理においても、第1の形態例のマイクロコントローラ1では、CPU13がタイマ8の計数値をポーリングして、補正後のタイマの期待計数値より大きくなった場合にポート出力を行っており、省電力モードに切り替えることができない。
これに対して、第2の形態例のマイクロコントローラ1aでは、割込みコントローラ20を設けることにより、水晶発振器4のクロックの立ち上がりで割込みを発生するようにしている。
このように、補正係数算出の際に行っている水晶発振器4のクロックの先頭と終端の検索を、割込みコントローラ20の割込みによって検出するようにすることで、CPU13の動作は不要になるため、水晶発振器4のクロックの先頭と終端の検索中は、マイクロコントローラ1aを省電力モードへ切り替えることができる。
また、図5に示すフローチャートにおけるステップS15でのポート出力処理においても、補正後のタイマの期待計数値になった場合に、割込みコントローラ20が割込みを発生するようにすることで、タイマ8が計数している間は、マイクロコントローラ1aを省電力モードへ切り替えることができる。
以下、図8〜図10を用いて、このような第2の形態例のマイクロコントローラ1aにおける本発明に係る時間測定処理動作の説明を行う。
図8を用いて、図7のタイマ8をRC発振器2が生成する高周波数の基本クロック3で動作させる時に、タイマ8を用いた時間測定精度を向上させるために用いるタイマ補正係数の求め方を説明する。
基本クロック選択器6により、タイマ8に入力するシステムクロックにRC発振器2からの高周波数の基本クロック3を選択し(ステップS1’)、割込みコントローラ20から、水晶発振器4のクロックの1周期分の先頭(クロックの立ち上がり)の割り込みが発生するまで待機する(ステップS2’)。
割込みコントローラ20からの水晶発振の割込みが発生すると、CPU13は、当該割り込みが1回目の割り込みであるか否かを示すフラグ情報(flg:初期値=0)を参照して、当該割り込みが1回目の割り込み(flg=0)であるか否かを判別する(ステップS20)。
1回目の割り込み(flg=0)であれば、タイマ8の値をクリア(初期化)して(ステップS21)、1回目の割込み(1周期分の先頭)が発生したことを通知するフラグflgを立てる(flg=1)(ステップS22)。
その後、割込みコントローラ20からの、水晶発振器4のクロックの1周期分の終わり(次の1周期分の頭)の割り込みが発生するまで待機する(ステップS3’)。
次の1周期分の割込みが発生すると(ステップS20)、当該水晶発振器4の1周期の時間内にタイマ8が計数した第1の基本クロック3のクロック数を読み取り(ステップS23)、フラグflgをクリア(初期化)し(flg=0)(ステップS24)、読みとったタイマ8の値からタイマ補正係数を求める(ステップS4’)。
このように、ステップS4’の処理で求めたタイマ補正係数を用いて、RC発振器2からの高い発振周波数の基本クロック3を用いたタイマ8の時間測定動作の精度を高める技術を、図9を用いて説明する。
まず、基本クロック選択器6を制御して、RC発振器2からの基本クロック3がタイマ8に入力するよう設定する(ステップS5’)。
なお、予め、タイマ8により測定する所望の時間を、所望のRC発振器2の周期、すなわち水晶発振器4からの第2の基本クロック5の1周期における正常時のRC発振器2からの第2の基本クロックのクロック数として予め求められた基準クロック数で割った値を、所望のタイマ8の期待値(期待計数値)として求め(ステップS6’)、このステップS6’の処理により求められる所望のタイマの期待計数値に、図8のステップS4’の処理で求められたタイマ補正係数を乗じた値を、補正後のタイマの期待計数値(補正期待計数値)として求めて(ステップS7’)、例えば割込みコントローラ20内に設けられたタイマデータレジスタにセットする(ステップS8’)。
そして、タイマ8を一旦クリア(初期化)した後(ステップS9’)、タイマ8の計数動作をスタート(開始)させる(ステップS10’)。
そして、タイマ8の計数結果に基づく割込みコントローラ20からの割込みが入るまで待機する。この待機中、CPU13は停止もしくは他の処理を行うことができる。
タイマ8の計数値が、補正後のタイマの期待計数値(補正期待計数値)に達すると、割込みコントローラ20からの割込み信号(タイマ割込み)が入力されるので、CPU13は、当該補正期待計数値に相当する時間が経過したことを示す時間情報をポート12経由で出力する(ステップS30)。
このように、第2の形態例のマイクロコントローラ1aでは、割込みコントローラ20によって、補正係数算出の際に行っている水晶発振器4のクロックの先頭と終端(次の先頭)の検索と、タイマ補正係数を用いたポート出力を行う処理を、割込みによって実現している。
このため、割り込みのイベントが発生するまでCPU13の動作を停止することができ、図10に示すように、省電力モードの区間ができる。よって、マイクロコントローラ1aの消費電力を低減することができる。また、省電力動作モードの区間中に、CPU13が他の処理をすることもできる。
図10においては、第2の形態例における各信号の動作タイミングを示しており、各信号として、ポート出力、水晶発振器割込み、タイマ割込み、水晶発振器による基本クロック(第2の基本クロック)、及びRC発振器による基本クロック(第1の基本クロック)が示されている。
図10における符号S2’,S3’,S10’,S11’のそれぞれは図8及び図9におけるステップS2’,S3’,S10’,S11’の処理タイミングに相当している。
S2’のタイミングで水晶発振器による基本クロック(第2の基本クロック)が立ち上がると、水晶発振器割込み信号が立ち上がり、タイマ8によるRC発振器による基本クロック(第1の基本クロック)の計数が開始され、S3’のタイミングで次の水晶発振器による基本クロック(第2の基本クロック)が立ち上がり水晶発振器割込み信号が立ち上がるまで、タイマ8によるRC発振器による基本クロック(第1の基本クロック)の計数が繰り返される。
このタイマ8によりRC発振器による基本クロック(第1の基本クロック)の計数が繰り返されている間は、CPU13は、省電力モードとなる。
S3’のタイミングで次の水晶発振器による基本クロック(第2の基本クロック)が立ち上がり水晶発振器割込み信号が立ち上がると、CPU13は、図8で示した補正係数の算出処理と期待計数値の補正処理を行う。
補正係数の算出処理と期待計数値の補正処理が完了した後のS10’のタイミングで、補正した期待計数値に対するタイマ8の、RC発振器による基本クロック(第1の基本クロック)の計数動作が開始される(タイマスタート)。
このタイマ8によるRC発振器による基本クロック(第1の基本クロック)の計数時には、CPU13は、省電力モードとなる。
S11’のタイミングで、タイマ8によるRC発振器による基本クロック(第1の基本クロック)の計数値が、補正した期待計数値に達すると、タイマ割込み信号が発生し、それに伴い、CPU13は、図9のステップS30でのポート出力処理を実行する。
以上説明したように、本第2の形態例のマイクロコントローラ1aにおいては、図7に示すように、割込みコントローラ20を備え、水晶発振器4からの基本クロック5(第2の基本クロック信号)の周期ごとに第1の割込み信号を出力すると共に、タイマ8が計数したRC発振器2からの基本クロック3(第1の基本クロック信号)のクロック数が、CPU13が補正手段機能により補正した期待計数値になると第2の割込み信号を出力し、CPU13は、導出手段としての機能により、割込みコントローラ20から第1の割込み信号が出力されると、タイマ8に、第1の基本クロック信号のクロック数の計数を開始させて、次の割込み信号が出力されるまで待機し、次の割込み信号が出力されると、それまでにタイマ8が計数した第1の基本クロック信号のクロック数を、第2の基本クロック信号の1周期における第1の基本クロックのクロック数として取得し、取得したクロック数と、予め第2の基本クロック信号の1周期に対して定められた第1の基本クロック信号のクロック数との比率を物理量として導出し、補正手段としての機能により、導出手段の機能で導出した比率に応じて、期待計数値を補正し、補正手段の機能で期待計数値を補正した後、出力手段としての機能により、タイマ8に第1の基本クロック信号のクロック数の計数を開始させて、割込みコントローラ20からタイマ8の計数値が補正された期待計数値に達したことを示す第2の割込み信号が出力されるまで待機し、割込みコントローラ20から第2の割込み信号が出力されると、時間情報を出力する動作を行う。
また、本第2の形態例のマイクロコントローラ1aにおいては、図7〜図9に示すように、CPU13は、導出手段としての機能により、割込みコントローラ20から第1の割込み信号が出力されると、1回目の割込みか否かを判別し、1回目の割込みであれば、タイマ8の計数値を初期化して、1回目の割込みが発生したことを示すフラグ情報を設定し、1回目の割込みでなければ、それまでにタイマ8が計数したRC発振器2からの基本クロック3(第1の基本クロック信号)のクロック数を、水晶発振器4からの基本クロック5(第2の基本クロック信号)の1周期における基本クロック3のクロック数として取得して、フラグ情報の設定を初期化する動作を行う。
また、本第2の形態例のマイクロコントローラ1aにおいては、図7に示すように、CPU13は、導出手段としての機能により、取得したタイマ8が計数したタイマ8による水晶発振器4からの基本クロック5(第2の基本クロック信号)の1周期におけるRC発振器2からの基本クロック3(第1の基本クロック信号)のクロック数を、予め基本クロック3の1周期に対して定められた基本クロック3のクロック数で除算した値を比率として導出し、補正手段としての機能により、導出手段機能で導出した比率を期待計数値に乗算して補正を行うように動作する。
このように、本第2の形態例のマイクロコントローラ1aにおいては、割込みコントローラ20によって、補正係数算出の際に行っている水晶発振器4からの第2の基本クロック5の先頭と終端の検索と、タイマ補正係数を用いてポート出力する処理動作を、割込みによって実現しているため、割り込みのイベントが発生するまでCPU13の動作を停止することができ、図10に示したように、省電力モードの区間ができる。この結果、マイクロコントローラ1aの消費電力を低減することができる。また、省電力動作モードの区間中に他の処理をすることもできる。
次に、図11、図12を用いて第3の形態例の説明を行う。なお、本第3の形態例におけるマイクロコントローラの構成は、図7で示した第2の形態例におけるマイクロコントローラ1aと同じ構成であるのでここでの詳細な説明は省略する。
上述の第1,第2の形態例では、補正係数を求める際に、タイマ8において、水晶発振器4からの低周波数の基本クロック5の1周期におけるRC発振器2からの高周波数の基本クロック3のクロック数を計数しているが、RC発振器2と水晶発振器4の速度差(発振周波数の差)が大きい場合、タイマ8の計数値がオーバーフローしてしまう。その場合、水晶発振器4の1周期をRC発振器2のクロック数で計数することができない。
第3の形態例では、このようにタイマ8の計数値がオーバーフローした場合にも対応できるように、タイマ8による水晶発振器4の基本クロック5の1周期におけるRC発振器2の基本クロック3のクロック数の計数時にオーバーフローが発生すると、割込みコントローラ20が、当該オーバーフローの発生を、バス11を介して検出し、割込み信号を出力する。
この割込み信号により、CPU13は、オーバーフローの回数を計数し、この計数値と当該オーバーフローとなるクロック数とを乗算した値と、オーバーフローすることなくタイマ8が計数したRC発振器2の基本クロック3のクロック数と、を加算し、加算した値を、タイマ8による水晶発振器4の基本クロック5の1周期におけるRC発振器2の基本クロック3のクロック数の計数値として取得し、補正係数の算出を、図11、図12に示すようにして行う。
以下、図7で示した構成のマイクロコントローラ1aを用いた第3の形態例における動作を説明する。
ここでは、図7のタイマ8を、RC発振器2が生成する発振周波数が高い基本クロック3で動作させる時に、タイマ8を用いた時間測定動作の精度向上に用いる、CPU13によるタイマ補正係数の求め方を説明する。
図11において、基本クロック選択器6を制御して、タイマ8に入力するシステムクロック7としてRC発振器2からの第1の基本クロック3を設定し(ステップS1”)、割込みコントローラ20から水晶発振器4のクロックの1周期分の先頭(クロックの立ち上がり)の割り込みが発生するまで待機する(ステップS2”)。
割込みコントローラ20からの水晶発振の割込みが発生すると、CPU13は、当該割り込みが1回目の割り込みであるか否かを示すフラグ情報(flg:初期値=0)を参照して、当該割り込みが1回目の割り込み(flg=0)であるか否かを判別する(ステップS40)。
1回目の割り込み(flg=0)であれば、例えばROM14a等の記憶装置に記憶される、CPU13自身が計数するタイマ8のオーバーフロー回数を示す計数値cntをクリア(初期化)する(cnt=0)(ステップS41)と共に、タイマ8の値をクリア(初期化)して(ステップS42)、1回目の割込み(1周期分の先頭)が発生したことを通知するフラグflgを立てる(flg=1)(ステップS43)。
その後、割込みコントローラ20からの、水晶発振器4のクロックの1周期分の終わり(次の1周期分の頭)の割り込みが発生するまで待機する(ステップS3”)。なお、この待機中にタイマ8のオーバーフローが発生した場合、その回数を計数する。
次の1周期分の割込みが発生すると(ステップS3”)、フラグ情報flgは「1」であり、ステップS40からステップS44の処理に移り、まず、水晶発振器4からの第2の基本クロックの1周期の時間内にタイマ8が計数したRC発振器2からの第1の基本クロック3のクロック数を読み取り(ステップS44)、この読み取ったクロック数に、ステップS”での待機中に計数したタイマ8のオーバーフロー回数を加算して、水晶発振器4からの第2の基本クロック5の1周期の間にタイマ8が計数したRC発振器2からの第1の基本クロック3のカウント値(計数値)として求め(ステップS45)、フラグ情報flgをクリア(初期化)し(flg=0)(ステップS46)、図8に示した処理を行うことで、読みとったタイマ8の値からタイマ補正係数を求める(ステップS4”)。
このように、ステップS4”の処理で求めたタイマ補正係数を用いて、CPU13は、図9で示す補正処理を行い、RC発振器2からの高い発振周波数の基本クロック3を用いたタイマ8の時間測定動作の精度を高める。
図12においては、図11のステップS3”での待機中における、CPU13による処理内容を示しており、割込みコントローラ20からの、水晶発振器4のクロックの1周期分の終わり(次の1周期分の頭)の割り込みが発生するまでの待機中にタイマ8のオーバーフローが発生する度に(ステップS50)、ROM14a等の記憶装置に記憶しているオーバーフロー回数cntをインクリメント(cnt++)する(ステップS60)。
このように、第3の形態例では、図11に示す処理で補正係数を算出することにより、RC発振器2と水晶発振器4の速度差(発振周波数の差)が大きく、RC発振器2からの高い周波数の基本クロック3の計数時にタイマ8がオーバーフローしてしまう場合でも、タイマ8による、水晶発振器4の1周期あたりのRC発振器2のクロック数の計数を行うことができる。
以上説明したように、第3の形態例としてのマイクロコントローラ1bにおいては、CPU13は、オーバーフロー計数手段(第2の計数手段)としの機能により、タイマ8による水晶発振器4からの第2の基本クロック5の1周期におけるRC発振器2からの第1の基本クロック3のクロック数の計数時に発生したオーバーフローの回数を計数し、導出手段としての機能により、オーバーフロー計数手段機能で計数されたオーバーフローの回数と当該オーバーフローとなるクロック数とを乗算した値と、オーバーフローすることなくタイマ8が計数したRC発振器2からの第1の基本クロック3のクロック数と、を加算し、加算した値を、タイマ8による水晶発振器4からの第2の基本クロック5の1周期におけるRC発振器2からの第1の基本クロック3のクロック数の計数値として取得する。
また、第3の形態例としてのマイクロコントローラ1bにおいては、割込みコントローラ20における第3の割込み手段としての機能により、タイマ8によるオーバーフローの発生が検出され、第3の割込み信号が出力される度に、CPU13は、オーバーフロー計数手段としての機能により、オーバーフローの回数を計数すると共に、当該割込みが1回目の割込みか否かを判別し、1回目の割込みであれば、オーバーフロー計数手段機能としての計数値を初期化し、タイマ8の計数値を初期化して、1回目の割込みが発生したことを示すフラグ情報を設定し、1回目の割込みでなければ、それまでにタイマ8が計数した第1の基本クロック信号のクロック数とオーバーフロー計数手段機能で計数されたオーバーフローの発生回数を読み取り、乗算と加算を行い、フラグ情報の設定を初期化する。
このように、第3の形態例では、補正係数を算出する処理を図11に示す処理内容のように変更することにより、RC発振器2と水晶発振器4の速度差が大きくタイマ8がオーバーフローしてしまう場合でも、オーバーフローの回数をカウントすることにより、水晶発振器4からの第2の基本クロック5の1周期あたりのRC発振器2からの第1の基本クロック3のクロック数をカウントすることができる。
次に、図13を用いて、第4の形態例の説明を行う。図13におけるマイクロコントローラ1bは、図7に示したマイクロコントローラ1aに、さらにタイマ21と分周器22を設けた構成となっている。
第1〜3の形態例では、タイマを一つ使用していたが、図13におけるマイクロコントローラ1bでは、タイマ21をさらに1つ追加することで、補正係数の算出とタイマ補正を、別々のタイマ8,21を用いて行うことができる。
例えば、タイマ8を、水晶発振器4からの基本クロック5の1周期におけるRC発振器2からの基本クロック3のクロック数の計数に用い、タイマ21を、期待計数値と比較されるRC水晶発振器2の基本クロック3のクロック数の計数に用いる。これにより、常に一定間隔でポートを出力しなければならないシステムにおいても、タイマの補正をしながら、ポートの出力をすることが可能となる。
また、図13におけるマイクロコントローラ1bは、分周器22を備えており、この分周器22により、水晶発振器4からの基本クロック5を分周することで、RC発振器2と水晶発振器4の速度差(発振周波数の差)がない場合にも、水晶発振器4の1周期分の時間を拡大してRC発振器2の基本クロック3の発振周波数を計数することができ、時間測定精度を高めることができる。
このように、本第4の形態例としてのマイクロコントローラ1bにおいては、タイマとして、第2の基本クロック5の1周期における第1の基本クロック3のクロック数の計数に用いられタイマ8(第3の計数手段)と、期待計数値と比較される第1の基本クロック3のクロック数の計数に用いられるタイマ21(第4の計数手段)と、を備えている。
このように、タイマを1つ追加し、補正係数算出とタイマ補正を、別々のタイマを使用できるようにすることで、常に一定間隔でポートを出力しなければならないシステムにおいても、タイマの補正をしながら、ポートの出力をすることができる。
また、本第4の形態例としてのマイクロコントローラ1bにおいては、水晶発振器4からの第2の基本クロック5を分周する分周器22を備え、タイマ8は、分周器22が分周した第2の基本クロック5の1周期におけるRC発振器2からの第2の基本クロック3のクロック数を計数する。
このように、水晶発振器4に分周器22を追加することで、RC発振器2と水晶発振器4の速度差がない場合には、水晶発振器4の1周期分の時間を拡大して計測することができ、時間測定精度を高めることができる。
次に、図14を用いて、第5の形態例の説明を行う。図14におけるマイクロコントローラ1cは、図7に示したマイクロコントローラ1aにおけるRC発振器の代わりに、PLL(Phase Locked Loop)発振回路が設けられた構成となっている。
第1〜3の形態例では、RC発振器2が生成するクロックで動作するタイマ8の時間測定精度を向上させる技術だが、図14に示すマイクロコントローラ1cのように、RC発振器2の代わりにPLL発振回路2aが生成するクロックを用いる場合でも、高速な動作用にRC発振器2を用いた場合と同様にして、タイマ8の時間測定動作を補正することができる。
以上、図1〜図14を用いて説明したように、本例では、ROM14に格納された本発明に係る時間測定用のプログラムを読み込んでCPU13が実行することにより、本発明に係る時間測定装置101における、導出手段101b、補正手段101c、及び出力手段101dを含む、各手段を構成し、これらの各手段を用いることにより、発振周波数が高いRC発振器2のクロック数をシステムクロックとして高速な処理動作を行うコンピュータ装置におけるタイマによる時間測定動作の高精度化を低コストに実現することが可能となり、本例のマイクロコントローラ1〜1c,100では、本発明に係る時間測定装置101の機能を設けたことにより、従来技術の問題点を解決することができる。
例えば、本例のマイクロコントローラ1〜1c,100は、高周波数のRC発振器2のクロック周期を測定するのに高周波数で高価な水晶振動子を用いる必要がなく、RC発振回路2による低コスト化のメリットが失われてしまうことはない。
また、本例のマイクロコントローラ1〜1c,100においては、RC発振器2は、水晶発振器4よりも高周波数のクロックを発生することができるものであり、特許文献1のように高周波数の水晶発振器を使用する必要がなくなり、コスト高を回避することができる。
さらに、特許文献1の技術のように、RC発振器が水晶発振器よりも低周波数である必要はなく、RC発振器に対する正確な補正係数を求める場合にも、高周波数のRC発振器を用いることで良く、RC発振器に対する分周器を新たに設けて分周する必要はない。
これにより、特許文献1のように分周器を使用した場合にRC発振器の1周期が長くなるため、補正係数を求める際に行う、RC発振器1クロックの間に発生する水晶発振器のクロックを計数する処理の時間が増加してしまうとの問題も解消される。
また、本例のマイクロコントローラ1b,1cにおいては、基準となる発振器(水晶発振器4)のクロック(第2の基本クロック)の先頭と終端の検索と、タイマ補正係数を用いてポート出力する技術を、ポーリングすることなく、割り込み要求処理で実現することができる。これにより、CPU13が常に動作している必要はなく、CPU13を省電力モードに切り替えることも、また、割込み待機中に、CPU13に他の処理を実行させることもできる。
また、本例のマイクロコントローラ1bでは、補正係数を求める際に発生するタイマ8におけるオーバーフローの回数をカウントし、当該カウント値を補正係数の導出に用いており、RC発振器2と水晶発振器4の速度差が大きい場合にタイマ8の計数値がオーバーフローしても対応可能である。
尚、本発明は、図1〜図14を用いて説明した例に限定されるものではなく、その要旨を逸脱しない範囲において種々変更可能である。例えば、本例では、ROM14,14a,14bに格納された本発明に係る時間測定用のプログラムを読み込んでCPU13が実行することにより、本発明に係る時間測定装置における、導出手段101b、補正手段101c、及び出力手段101dを含む、各手段を構成しているが、このように、各構成要素の機能の一部もしくは全てを、プログラムされたコンピュータ処理により実現することでも良く、あるいは論理素子回路からなるハードウェア構成で実現することでも良い。
また、本発明における補正係数の求め方に関しても、本例では、図3で説明したように、ステップS7の処理で実際に読み取った実クロック数Aと、予め水晶発振器4からの第2の基本クロック5の1周期における基準となるRC発振器2からの第1の基本クロック3のクロック数である基準クロック数Bとを用いて、補正係数Cを、「補正係数C=実クロック数A/基準クロック数B」の式で求めているが、例えば、「補正係数C=基準クロック数B/実クロック数A」の式で求めることでも良い。この場合、図5におけるステップS11で求める補正後のタイマの期待値の式、すなわち、「補正後のタイマの期待値=所望のタイマの期待値×タイマ補正係数」との式を、「補正後のタイマの期待値=所望のタイマの期待値/タイマ補正係数」とすれば良い。
また、本例では、マイクロコントローラ1において、タイマ8に、入力された第2の基本クロック信号の1周期における第1の基本クロック信号のクロック数を計数させているが、第2の基本クロック信号の1周期に限らず、予め定められた周期(所定周期)における第1の基本クロック信号のクロック数を計数させることでも良い。
1,1a,1b,1c,100 マイクロコントローラ
2 RC発振器
2a PLL発振回路
3 基本クロック(第1の基本クロック)
4 水晶発振器
5 基本クロック(第2の基本クロック)
6 基本クロック選択器
7 システムクロック
8 タイマ(計数手段)
9 割込み要求レジスタ(同期信号生成手段)
10 割込み要求信号
11 バス
12 ポート
13 CPU
14,14a,14b ROM
15 クロック波形
16 時間
17 クロック波形
18 時間
19 補正時間
20 割込みコントローラ
21 タイマ
22 分周器
100 マイクロコントローラ
101 時間測定装置
101a 計数手段
101b 導出手段
101c 補正手段
101d 出力手段
101e 期待計数値

Claims (24)

  1. システムクロックとして用いられる第1の基本クロック信号のクロック数を計数する計数手段と、
    前記第1の基本クロック信号よりも発振周波数が低く発振精度の高いシステムクロックとして用いられる第2の基本クロック信号の所定周期における前記計数手段により計数された前記第1の基本クロック信号のクロック数と、前記第2の基本クロック信号の所定周期に対応する前記第1の基本クロック信号のクロック数として予め計数された基準クロック数と、を用いて、前記計数手段が計数したクロック数の前記基準クロック数に対する変動量を示す物理量を導出する導出手段と、
    前記導出手段が導出した前記物理量に応じて、測定対象とする時間に対応する前記第1の基本クロック信号のクロック数を示す期待計数値を補正する補正手段と、
    前記計数手段が計数した前記第1の基本クロック信号のクロック数が、前記補正手段が補正した補正期待計数値に達した場合に、当該補正期待計数値に達したことを示す時間情報を出力する出力手段と、
    を備えた時間測定装置。
  2. 前記第2の基本クロック信号の周期ごとに第1の割込み信号を出力する第1の割込み手段と、
    前記計数手段が計数する前記第1の基本クロック信号のクロック数が、前記補正手段が補正した前記補正期待計数値になると第2の割込み信号を出力する第2の割込み手段と、を備え、
    前記導出手段は、前記第1の割込み手段から前記第1の割込み信号が出力されると、前記計数手段に前記第1の基本クロック信号のクロック数の計数を開始させて、次の前記第1の割込み信号が出力されるまで待機し、次の前記第1の割込み信号が出力されると、それまでに計数した前記第1の基本クロック信号のクロック数を、前記第2の基本クロック信号の所定周期における前記第1の基本クロック信号のクロック数として取得し、取得した前記クロック数と前記基準クロック数との比率を前記物理量として導出し、
    前記補正手段は、前記導出手段が導出した前記比率に応じて、前記期待計数値を補正し、
    前記出力手段は、前記補正手段が前記期待計数値を補正した後、前記計数手段に前記第1の基本クロック信号のクロック数の計数を開始させて、前記第2の割込み手段から前記第2の割込み信号が出力されるまで待機し、前記第2の割込み手段から前記第2の割込み信号が出力されると、前記時間情報を出力する、
    請求項1記載の時間測定装置。
  3. 前記導出手段は、前記第1の割込み手段から前記第1の割込み信号が出力されると、1回目の割込みか否かを判別し、1回目の割込みであれば、前記計数手段の計数値を初期化して、1回目の割込みが発生したことを示すフラグ情報を設定し、1回目の割込みでなければ、それまでに前記計数手段が計数した前記第1の基本クロック信号のクロック数を、前記第2の基本クロック信号の所定周期における前記第1の基本クロック信号のクロック数として取得して、前記フラグ情報の設定を初期化する、
    請求項2記載の時間測定装置。
  4. 前記導出手段は、前記計数手段が計数した前記第2の基本クロック信号の所定周期における前記第1の基本クロック信号のクロック数を、前記基準クロック数で除算した値を前記比率として導出し、
    前記補正手段は、前記導出手段が導出した比率を前記期待計数値に乗算して前記補正を行う、
    請求項2又は請求項3記載の時間測定装置。
  5. 前記計数手段による前記第2の基本クロック信号の所定周期における前記第1の基本クロック信号のクロック数の計数時に発生したオーバーフローの回数を計数する第2の計数手段を備え、
    前記導出手段は、前記第2の計数手段が計数したオーバーフローの回数と当該オーバーフローとなるクロック数とを乗算した値と、オーバーフローすることなく前記計数手段が計数した前記第1の基本クロック信号のクロック数と、を加算し、加算した値を、前記計数手段による前記第2の基本クロック信号の所定周期における前記第1の基本クロック信号のクロック数の計数値として取得する、
    請求項から請求項4の何れか1項に記載の時間測定装置。
  6. 前記計数手段による前記オーバーフローが発生すると第3の割込み信号を出力する第3の割込み手段を備え、
    前記第3の割込み手段から前記第3の割込み信号が出力されると、前記第2の計数手段は、前記オーバーフローの回数の計数を行い、
    前記導出手段は、前記第1の割込み信号による割込みが1回目の割込みか否かを判別し、1回目の割込みであれば、前記第2の計数手段の計数値を初期化すると共に、前記計数手段の計数値を初期化して、1回目の割込みが発生したことを示すフラグ情報を設定し、1回目の割込みでなければ、それまでに前記計数手段が計数した前記第1の基本クロック信号のクロック数と前記第2の計数手段が計数したオーバーフローの発生回数を読み取り、前記乗算と前記加算を行い、前記フラグ情報の設定を初期化する、
    請求項5記載の時間測定装置。
  7. 前記第2の基本クロック信号の周期ごとに同期信号を生成する生成手段を備え、
    前記導出手段は、ポーリングにより、前記生成手段が前記同期信号を生成しているか否かを判別し、前記同期信号を生成していれば、次の前記同期信号が生成されるまでの間、前記計数手段に前記第1の基本クロック信号のクロック数の計数を実行させて、当該計数値を順次に読み取ることで、前記第2の基本クロック信号の所定周期における前記第1の基本クロック信号のクロック数を読み取り、読み取った前記クロック数と前記基準クロック数との比率を前記物理量として導出し、
    前記補正手段は、前記導出手段が導出した前記比率に応じて、前記期待計数値を補正し、
    前記出力手段は、ポーリングにより、前記計数手段が計数する前記第1の基本クロック信号のクロック数が、前記補正手段が補正した前記補正期待計数値に達したか否かを判別し、達すれば前記時間情報を出力する、
    請求項1記載の時間測定装置。
  8. 前記第1の基本クロック信号を生成するRC発振器もしくはPLL発振器のいずれかと、
    前記第2の基本クロック信号を発生する水晶発振器と、
    を備えた請求項1から請求項7の何れか1項に記載の時間測定装置。
  9. 前記計数手段として、前記第2の基本クロック信号の所定周期における前記第1の基本クロック信号のクロック数の計数に用いられる第3の計数手段と、前記補正期待計数値と比較される前記第1の基本クロック信号のクロック数の計数に用いられる第4の計数手段と、
    を備えた請求項1から請求項8の何れか1項に記載の時間測定装置。
  10. 前記第2の基本クロック信号を分周する分周手段を備え、
    前記計数手段は、前記分周手段が分周した前記第2の基本クロック信号の所定周期における前記第1の基本クロック信号のクロック数を計数する、
    請求項1から請求項9の何れか1項に記載の時間測定装置。
  11. 前記第1の基本クロック信号と前記第2の基本クロック信号のいずれかをステムクロック信号として選択する選択手段を備え、
    前記計数手段は、前記選択手段が選択した前記システムクロック信号のクロック数を計数する、
    請求項1から請求項10の何れか1項に記載の時間測定装置。
  12. 請求項1から請求項11の何れか1項に記載の時間測定装置を備えたマイクロコントローラ。
  13. コンピュータを、請求項1から請求項11の何れか1項に記載の時間測定装置における各手段として機能させるためのプログラム。
  14. プログラムに基づくコンピュータ装置により時間を測定する方法であって、
    システムクロックとして用いられる第1の基本クロック信号のクロック数を計数する計数手順と、
    前記第1の基本クロック信号よりも発振周波数が低く発振精度の高いシステムクロックとして用いられる第2の基本クロック信号の所定周期における前記計数手順により計数された前記第1の基本クロック信号のクロック数と、前記第2の基本クロック信号の所定周期に対応する前記第1の基本クロック信号のクロック数として予め計数された基準クロック数と、を用いて、前記計数手順で計数されたクロック数の前記基準クロック数に対する変動量を示す物理量を導出する導出手順と、
    前記導出手順で導出された前記物理量に応じて、測定対象とする時間に対応する前記第1の基本クロック信号のクロック数を示す期待計数値を補正する補正手順と、
    前記計数手順で計数された前記第1の基本クロック信号のクロック数が、前記補正手順で補正された補正期待計数値に達した場合に、当該補正期待計数値に達したことを示す時間情報を出力する出力手順と、
    を含む時間測定方法。
  15. 前記第2の基本クロック信号の周期ごとに第1の割込み信号を出力する第1の割込み手順と、
    前記計数手順で計数される前記第1の基本クロック信号のクロック数が、前記補正手順で補正された前記補正期待計数値になると第2の割込み信号を出力する第2の割込み手順と、を含み、
    前記導出手順では、前記第1の割込み手順により前記第1の割込み信号が出力されると、前記計数手順による前記第1の基本クロック信号のクロック数の計数を開始させて、次の前記第1の割込み信号が出力されるまで待機し、次の前記第1の割込み信号が出力されると、それまでに計数された前記第1の基本クロック信号のクロック数を、前記第2の基本クロック信号の所定周期における前記第1の基本クロック信号のクロック数として取得し、取得した前記クロック数と前記基準クロック数との比率を前記物理量として導出し、
    前記補正手順では、前記導出手順で導出された前記比率に応じて、前記期待計数値を補正し、
    前記出力手順では、前記補正手順で前記期待計数値を補正した後、前記計数手順による前記第1の基本クロック信号のクロック数の計数を開始させて、前記第2の割込み手順により前記第2の割込み信号が出力されるまで待機し、前記第2の割込み手順により前記第2の割込み信号が出力されると、前記時間情報を出力する、
    請求項14記載の時間測定方法。
  16. 前記導出手順では、前記第1の割込み手順により前記第1の割込み信号が出力されると、1回目の割込みか否かを判別し、1回目の割込みであれば、前記計数手順による計数値を初期化して、1回目の割込みが発生したことを示すフラグ情報を設定し、1回目の割込みでなければ、それまでに前記計数手順で計数された前記第1の基本クロック信号のクロック数を、前記第2の基本クロック信号の所定周期における前記第1の基本クロック信号のクロック数として取得して、前記フラグ情報の設定を初期化する、
    請求項15記載の時間測定方法。
  17. 前記導出手順では、前記計数手順で計数された前記第2の基本クロック信号の所定周期における前記第1の基本クロック信号のクロック数を、前記基準クロック数で除算した値を前記比率として導出し、
    前記補正手順では、前記導出手順で導出された比率を前記期待計数値に乗算して前記補正を行う、
    請求項15又は請求項16記載の時間測定方法。
  18. 前記計数手順による前記第2の基本クロック信号の所定周期における前記第1の基本クロック信号のクロック数の計数時に発生したオーバーフローの回数を計数する第2の計数手順を含み、
    前記導出手順では、前記第2の計数手順で計数されたオーバーフローの回数と当該オーバーフローとなるクロック数とを乗算した値と、オーバーフローすることなく前記計数手順において計数された前記第1の基本クロック信号のクロック数と、を加算し、加算した値を、前記計数手順による前記第2の基本クロック信号の所定周期における前記第1の基本クロック信号のクロック数の計数値として取得する、
    請求項15から請求項17の何れか1項に記載の時間測定方法。
  19. 前記計数手順による前記オーバーフローが発生すると第3の割込み信号を出力する第3の割込み手順を含み、
    前記導出手順では、前記第3の割込み手順により前記第3の割込み信号が出力されると、前記第2の計数手順により前記オーバーフローの回数を計数させると共に、前記第1の割込み手順による前記第1の割込み信号が1回目の割込みか否かを判別し、1回目の割込みであれば、前記第2の計数手順での計数値を初期化し、前記計数手順での計数値を初期化して、1回目の割込みが発生したことを示すフラグ情報を設定し、1回目の割込みでなければ、それまでに前記計数手順により計数された前記第1の基本クロック信号のクロック数と前記第2の計数手順により計数されたオーバーフローの発生回数を読み取り、前記乗算と前記加算を行い、前記フラグ情報の設定を初期化する、
    請求項18記載の時間測定方法。
  20. 前記第2の基本クロック信号の周期ごとに同期信号を生成する生成手順を含み、
    前記導出手順では、ポーリングにより、前記生成手順で前記同期信号が生成されているか否かを判別し、前記同期信号が生成されていれば、次の前記同期信号が生成されるまでの間、前記計数手順による前記第1の基本クロック信号のクロック数の計数を実行させて、当該計数値を順次に読み取ることで、前記第2の基本クロック信号の所定周期における前記第1の基本クロック信号のクロック数を読み取り、読み取った前記クロック数と前記基準クロック数との比率を前記物理量として導出し、
    前記補正手順では、前記導出手順で導出された前記比率に応じて、前記期待計数値を補正し、
    前記出力手順では、ポーリングにより、前記計数手順で計数される前記第1の基本クロック信号のクロック数が、前記補正手順で補正された前記補正期待計数値に達したか否かを判別し、達すれば前記時間情報を出力する、
    請求項14載の時間測定方法。
  21. 前記第1の基本クロック信号をRC発振器もしくはPLL発振器のいずれかで生成する手順と、
    前記第2の基本クロック信号を水晶発振器で生成する手順と、
    を含む請求項14から請求項20の何れか1項に記載の時間測定方法。
  22. 前記計数手順は、第1の計数手段を用いて前記第2の基本クロック信号の所定周期における前記第1の基本クロック信号のクロック数の計数を行う手順と、第2の計数手段を用いて前記補正期待計数値と比較される前記第1の基本クロック信号のクロック数の計数を行う手順と、
    を含む請求項14から請求項21の何れか1項に記載の時間測定方法。
  23. 前記第2の基本クロック信号を分周手段により分周する手順を含み、
    前記計数手順では、前記分周手段が分周した前記第2の基本クロック信号の所定周期における前記第1の基本クロック信号のクロック数を計数する、
    請求項14から請求項22の何れか1項に記載の時間測定方法。
  24. 前記第1の基本クロック信号と前記第2の基本クロック信号のいずれかを、選択手段を用いてステムクロック信号として選択する選択手順を含み、
    前記計数手順では、前記選択手順で選択された前記システムクロック信号のクロック数を計数する、
    請求項14から請求項23の何れか1項に記載の時間測定方法。
JP2011263991A 2011-12-01 2011-12-01 時間測定装置、マイクロコントローラ、プログラム、及び時間測定方法 Active JP5886015B2 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2011263991A JP5886015B2 (ja) 2011-12-01 2011-12-01 時間測定装置、マイクロコントローラ、プログラム、及び時間測定方法
US13/687,121 US9134752B2 (en) 2011-12-01 2012-11-28 Time measurement device, micro-controller and method of measuring time
CN201210506255.6A CN103135661B (zh) 2011-12-01 2012-11-30 时间测量装置、微型控制器、程序以及时间测量方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2011263991A JP5886015B2 (ja) 2011-12-01 2011-12-01 時間測定装置、マイクロコントローラ、プログラム、及び時間測定方法

Publications (2)

Publication Number Publication Date
JP2013117785A JP2013117785A (ja) 2013-06-13
JP5886015B2 true JP5886015B2 (ja) 2016-03-16

Family

ID=48495626

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2011263991A Active JP5886015B2 (ja) 2011-12-01 2011-12-01 時間測定装置、マイクロコントローラ、プログラム、及び時間測定方法

Country Status (3)

Country Link
US (1) US9134752B2 (ja)
JP (1) JP5886015B2 (ja)
CN (1) CN103135661B (ja)

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103365965B (zh) * 2013-06-21 2016-12-07 大唐移动通信设备有限公司 一种数据的汇总处理方法和装置
JP5968561B2 (ja) * 2013-12-18 2016-08-10 カルソニックカンセイ株式会社 マイクロコンピュータおよびそのクロックの補正方法
JP2016086385A (ja) * 2014-10-29 2016-05-19 アイシン精機株式会社 Pwm信号出力回路
US9379714B1 (en) * 2015-06-01 2016-06-28 Liming Xiu Circuits and methods of TAF-DPS vernier caliper for time-of-flight measurement
JP2017033055A (ja) * 2015-07-29 2017-02-09 日立オートモティブシステムズ株式会社 電子制御装置、アクチュエータ、及び、センサ
US9864399B2 (en) 2015-12-10 2018-01-09 Apple Inc. Timebase synchronization
WO2018154876A1 (ja) * 2017-02-24 2018-08-30 ソニーセミコンダクタソリューションズ株式会社 計時回路、電子機器および計時回路の制御方法
US10727838B2 (en) * 2018-07-13 2020-07-28 Qualcomm Incorporated Systems and methods for power conservation in a phase locked loop (PLL)
JP7239376B2 (ja) * 2019-03-29 2023-03-14 ラピスセミコンダクタ株式会社 再生装置
CN111352023B (zh) * 2020-03-27 2022-11-22 歌尔股份有限公司 晶振检测方法、装置及计算机可读存储介质
CN112162820A (zh) * 2020-09-23 2021-01-01 广州六环信息科技有限公司 计时器的计时方法和装置
CN113377060B (zh) * 2021-08-13 2021-11-09 成都博宇利华科技有限公司 信号采集系统中获取每个采样点采样时刻的方法

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5379390A (en) * 1990-08-22 1995-01-03 Eaton Corporation Rate/ratio determining apparatus
JPH0548433A (ja) 1991-08-16 1993-02-26 Nippon Telegr & Teleph Corp <Ntt> 多段分周器
JPH08139593A (ja) 1994-11-15 1996-05-31 Nec Corp 発振回路
JP2868472B2 (ja) * 1996-07-30 1999-03-10 日本電気アイシーマイコンシステム株式会社 マイクロコントローラ及びその制御方法
DE10016937B4 (de) * 1999-05-18 2004-04-29 Ibm Corp. Digitale Frequenzkorrektur
US7421251B2 (en) * 2005-03-31 2008-09-02 Silicon Laboratories Inc. Precise frequency generation for low duty cycle transceivers using a single crystal oscillator
JP2006309479A (ja) * 2005-04-28 2006-11-09 Nec Electronics Corp クロック補正回路及びクロック補正方法並びにマイクロコントローラ
KR100687230B1 (ko) * 2005-08-03 2007-02-26 엘지전자 주식회사 알티씨 장치 및 알티씨 장치의 현재시각 보정 방법
JP5266168B2 (ja) * 2009-09-14 2013-08-21 新日本無線株式会社 マイクロコンピュータ
US9342054B2 (en) * 2011-03-31 2016-05-17 Maxim Integrated Products, Inc. Apparatus and method of keeping time of day over an industrial temperature range
EP2549677A1 (en) * 2011-07-21 2013-01-23 Siemens Aktiengesellschaft Method for operating a communication system and communication system

Also Published As

Publication number Publication date
CN103135661B (zh) 2017-06-16
JP2013117785A (ja) 2013-06-13
CN103135661A (zh) 2013-06-05
US9134752B2 (en) 2015-09-15
US20130145198A1 (en) 2013-06-06

Similar Documents

Publication Publication Date Title
JP5886015B2 (ja) 時間測定装置、マイクロコントローラ、プログラム、及び時間測定方法
JP2007094931A (ja) 補正クロック発生回路及びそれを備えるusbデバイス
CN109067394B (zh) 片上时钟校准装置及校准方法
JP5431907B2 (ja) 同期処理システム及び半導体集積回路
US7078952B2 (en) Device for calibrating a clock signal
JP2006309479A (ja) クロック補正回路及びクロック補正方法並びにマイクロコントローラ
US6084441A (en) Apparatus for and method of processing data
JP2001119291A (ja) 周波数測定回路
CN104133520A (zh) 一种嵌入式处理器片内振荡器的高精度校准方法
CN103378856A (zh) 自动校正振荡信号的方法及其装置
JP2000174615A (ja) 集積回路の内部クロック周波数を自動補正する方法と装置
JP5589787B2 (ja) 半導体装置
TWI638517B (zh) 用於產生時脈之電子電路及其方法
JP2002228778A (ja) リアルタイムクロック及び計時回路
JP6500550B2 (ja) タイマ補正装置、タイマ補正方法及びタイマ補正プログラム
JP5266168B2 (ja) マイクロコンピュータ
JP2006229630A (ja) 発振回路
JP5671601B2 (ja) 同期処理システム及び半導体集積回路
JP6274638B2 (ja) 周波数調整回路および周波数調整方法
JP2022006391A (ja) 周波数計測装置、マイクロコントローラー及び電子機器
JP4036114B2 (ja) クロック発生回路
JPH1020052A (ja) 時刻補正方法及びその装置
JP5056886B2 (ja) クロック信号生成装置及び電子装置
JP4940726B2 (ja) クロック遅延補正回路
JP5037285B2 (ja) パルス信号時間計測装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20141017

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20150909

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20150929

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20151116

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20160119

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20160210

R150 Certificate of patent or registration of utility model

Ref document number: 5886015

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150