(57)【特許請求の範囲】
【請求項１】
動作クロック信号を形成するＣＲ発振回路を備え、各命令実行サイクル数を加算することでタイマカウント時間を計数するタイマカウントプログラムを備えたマイクロコンピュータのタイマ校正システムにおいて、
前記プログラムは、
所定の命令実行サイクル数の処理部Ａと、メモリに記憶されている回数分だけ繰り返し実行するループルーチンＢとを備える通常動作モードルーチンと、
前記処理部Ａと同じ命令実行サイクル数を持ち、外部入力端子からの信号に基づいて前記メモリに記憶されている回数を変更し、または調整終了動作をする処理部Ｂと、前記ループルーチンＢと同じルーチン構造を持つループルーチンＣと、前記処理部Ｂおよび前記ループルーチンＣの処理時間を１周期とするパルスを外部出力端子に出力するステップと、を備える基準信号調整動作モードルーチンと、からなり、
前記外部出力端子と前記外部入力端子に接続され、該外部出力端子からのパルスと基準パルスとの周期の比較結果に応じて前記回数を増減すべき信号または調整を終了すべき信号を前記外部入力端子に出力する基準信号調整装置を設けたことを特徴とする、マイクロコンピュータのタイマ校正システム
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、プログラムによってタイマカウントを行うマイクロコンピュータにおいて、そのタイマの校正システムに関する。
【０００２】
【従来の技術】
マイクロコンピュータを用いた制御装置が各種電気機器や電子機器に採用されているが、実装部品を出来る限り安価にするために、動作クロック信号の発振回路を水晶やセラミックの振動子を用いずにＣＲ発振回路で構成したものが採用されることがある。このような制御装置では、プログラムによるタイマカウントによって時間計測を行うが、時間計測には、通常、動作クロックを基準として行っている。
【０００３】
しかし、ＣＲ発振回路は、水晶やセラミック等の振動子を用いた発振回路に比較して安価である反面、発振周波数のバラツキが大きく、精度が要求される場合には適していないという不都合がある。
【０００４】
そこで、たとえば、特開平１１−０５２０８０号公報に示されるように、各命令実行サイクル数を加算することでタイマカウント時間を計数するタイマカウントプログラムを制御プログラム中に設けるとともに、外部から基準信号を入力し、その基準信号の周期をマイクロコンピュータの実行サイクル数でカウントし、被測定信号が入力された時に、上記基準信号の周期が何回繰り返されたかによって被測定信号の時間計測を行うようにしている。
【０００５】
【発明が解決しようとする課題】
しかし、上記の装置では、マイクロコンピュータのプログラムに、基準信号をカウントするための機能を付加する必要があるために、プログラムが長くなり、プログラムを格納するＲＯＭ容量を多く必要とする問題があった。また、基準信号の周期を記憶しておいて、この周期が被測定信号の入力中に何回繰り返されたかによって該被測定信号の計測を行う構成上、その精度は基準信号の周期となるために、高精度な時間計測を行えない問題があった。
【０００６】
本発明の目的は、マイクロコンピュータに内蔵するプログラムが長くなるのを防ぎ、且つ、タイマカウント時間を高精度で計数することのできる、マイクロコンピュータのタイマ校正システムを提供することにある。
【０００７】
【課題を解決するための手段】
本発明は、動作クロック信号を形成するＣＲ発振回路を備え、各命令実行サイクル数を加算することでタイマカウント時間を計数するタイマカウントプログラムを備えたマイクロコンピュータのタイマ校正システムにおいて、
前記プログラムは、
所定の命令実行サイクル数の処理部Ａと、メモリに記憶されている回数分だけ繰り返し実行するループルーチンＢとを備える通常動作モードルーチンと、
前記処理部Ａと同じ命令実行サイクル数を持ち、外部入力端子からの信号に基づいて前記メモリに記憶されている回数を変更し、または調整終了動作をする処理部Ｂと、前記ループルーチンＢと同じルーチン構造を持つループルーチンＣと、前記処理部Ｂおよび前記ループルーチンＣの処理時間を１周期とするパルスを外部出力端子に出力するステップと、を備える基準信号調整動作モードルーチンと、からなり、
前記外部出力端子と前記外部入力端子に接続され、該外部出力端子からのパルスと基準パルスとの周期の比較結果に応じて前記回数を増減すべき信号または調整を終了すべき信号を前記外部入力端子に出力する基準信号調整装置を設けたことを特徴とする。
【０００８】
本発明のタイマ校正システムは、タイマ校正を行う時に、マイクロコンピュータに基準信号調整装置が接続される。この基準信号調整装置を接続して、マイクロコンピュータを基準信号調整動作モードに設定し、この基準信号調整動作モードルーチンを実行する。すると、自動的に、ＣＲ発振回路の周波数のバラツキが補正され、タイマ校正が行われる。
【０００９】
すなわち、マイクロコンピュータは、通常動作モードルーチンと基準信号調整動作モードルーチンとを備えている。通常動作モードルーチンでは、所定の命令実行サイクル数の処理部Ａと、メモリに記憶されている回数分だけ繰り返し実行するループルーチンＢとを備えている。したがって、この通常動作モードルーチンを一度実行すれば、その実行時間は、処理部Ａに要する時間とループルーチンＢを実行するに要する時間の和となる。この時、メモリに記憶されている回数を変更すれば、ループルーチンＢの処理時間が変わるから、結果として通常動作モードルーチンの実行時間が変わる。本発明では、基準信号調整動作モードルーチンによって、上記メモリに記憶されている回数を適当な値に設定する。これにより、ＣＲ発振回路の周波数のバラツキがあっても、それを補正する値をメモリに記憶することで、通常動作モードルーチンの１回の実行時間を所定の時間、すなわち、ＣＲ発振回路の周波数が正しい値の時の時間に調整することができる。この調整により、タイマ校正が行われる。
【００１０】
基準信号調整動作モードルーチンでは、基本的に、上記通常動作モードルーチンの処理部ＡとループルーチンＢと同等の構造を持つものとする。すなわち、処理部Ａに対する処理部Ｂと、ループルーチンＢに対するループルーチンＣを備えている。そして、外部入力端子からの信号に基づいてメモリに記憶されている回数を変更し、且つ、処理部ＢおよびループルーチンＣの処理時間を一周期とするパルスを外部出力端子に出力する。このような構成にして、マイクロコンピュータに接続される基準信号調整装置を同時に動作させる。この基準信号調整装置では、内部にセラミックや水晶等の発振子を備える正確な周波数を発振する発振回路を備えている。そして、上記外部出力端子からのパルスと基準信号調整装置内で発生する基準パルスとの周期の比較結果に応じて前記メモリに記憶される回数を増減すべき信号または調整を終了すべき信号を形成し、これをマイクロコンピュータの前記外部入力端子に出力する。すなわち、前記マイクロコンピュータから入力されるパルスが基準パルスに対して周期が長ければ、このマイクロコンピュータのパルスが短くなるよう前記回数を減らすべき信号を出力し、その反対の場合は前記回数を増やすべき信号を出力する。両者が一致した時に調整を終了すべき信号を出力する。
【００１１】
マイクロコンピュータでは、上記基準信号調整装置からの信号に基づいてメモリに記憶されている回数を変更したり、または調整終了動作をするために、上記回数が変更された時には、基準信号調整装置に対して出力されるパルスの周期も変更される。こうして、両者の間でやりとりを行うことよって、最終的には基準信号調整装置から調整を終了すべき信号がマイクロコンピュータに返される。マイクロコンピュータの基準信号調整動作モードルーチンでは、上記調整を終了すべき信号を受けると、調整終了動作を行う。この時のメモリに記憶されている回数は、ＣＲ発振回路の周波数のバラツキを補正したものとなる。以後、この値を不揮発性メモリに記憶しておくことによって、その後、ＣＲ発振回路であっても正確なタイマカウント時間を計数することが可能になる。
【００１２】
【発明の実施の形態】
図１は、本発明の実施形態であるタイマ校正システムのブロック図である。
制御装置１は、内部にマイクロコンピュータを内蔵し、任意の電子機器等に組み込まれる。この制御装置１は、後述のように、通常動作モードルーチンと基準信号調整動作モードルーチンとを備え、電子機器等に組み込まれた時には、通常動作モードルーチンが実行される。また、基準信号調整動作モードルーチンは、図１に示す基準信号調整装置２が接続されて基準信号調整動作モードに設定された時に実行される。
【００１３】
制御装置１は、以下の端子を備えている。
【００１４】
ＳＩＧＯＵＴ：基準信号調整動作モードルーチンの実行中に、パルス信号を出力する。
【００１５】
ＦＵＰＩＮ：基準信号調整装置２から周波数アップ信号が入力される。
【００１６】
ＦＤＮＩＮ：基準信号調整装置２から周波数ダウン信号が入力される。
【００１７】
ＦＳＩＧＩＮ：基準信号調整装置２から調整終了信号が入力される。
【００１８】
ＭＯＤＥ：動作モードを通常動作モードにするか基準信号調整動作モードにするかの動作モード切り換え信号が入力される。この動作モード切り換え信号は、たとえば、ＧＮＤレベルに接続することで基準信号調整動作モードを設定し、これを切り離すことで通常動作モードに設定することができる。
【００１９】
基準信号調整動作モードは、通常は、制御装置１を動作させる前に一度行えばよいが、マイクロコンピュータ内のＣＲ発振回路の経時変化により、適宜行うようにしてもよい。基準信号調整装置２は、この基準信号調整動作モードを実行するときにのみ制御装置１に接続され、通常時は、この調整装置２を制御装置１に接続する必要はない。
【００２０】
なお、本発明の外部入力端子は、制御装置１のＦＵＰＩＮ、ＦＤＮＩＮ、ＦＳＩＧＩＮ端子が対応し、外部出力端子は、ＳＩＧＯＵＴ端子が対応している。また、基準信号調整装置２のＳＩＧＩＮ、ＦＵＰＯＵＴ、ＦＤＮＯＵＴ、ＦＳＩＧＯＵＴの各端子は、制御装置１のＳＩＧＯＵＴ、ＦＵＰＩＮ、ＦＤＮＩＮ、ＦＤＮＩＮ、ＦＳＩＧＩＮの端子のそれぞれに接続されている。
【００２１】
次に、上記制御装置１と基準信号調整装置２の動作について図２以下を参照して説明する。
【００２２】
図２、図３は、制御装置１の動作を示すフローチャートである。
【００２３】
制御装置１は、ステップ１０において動作モード切り換え信号のレベルを判定し、通常動作モードか基準信号調整動作モードかのいずれかを設定する。動作モード切り換え信号が“Ｌ”の場合には、ステップ１１以下の通常動作モードを実行し、動作モード切り換え信号が“Ｈ”の場合には、ステップ２０以下の基準信号調整動作モードルーチンを実行する。
【００２４】
通常動作モードでは、まず、ステップ１１においてメモリｍｅｍ１にＥＥＰＲＯＭのデータを転送する。次に、ステップ１２において処理Ａを実行し、ステップ１３においてメモリｍｅｍ１の内容をカウンタＣＮＴに転送する。ステップ１４およびステップ１５では、このカウンタの回数分だけループさせる。カウンタＣＮＴが０になると、キャリーフラグＣＦが１となって、再びステップ１２に戻る。
【００２５】
以上の処理において、処理Ａは命令実行サイクル数が４７０サイクルに固定されている。また、ステップ１３〜ステップ１５のループルーチンでは、ステップ１３に１２サイクル、ステップ１４およびステップ１５においてメモリｍｅｍ１に記憶されている回数分のループに応じたサイクル数が実行される。したがって、通常動作モードでは、ステップ１２〜ステップ１５において、メモリｍｅｍ１に記憶されている回数分に応じたタイマカウント時間を計数することができる。
【００２６】
上記動作モード切り換え信号が“Ｈ”の場合には、ステップ１０からステップ２０に移り、以下、基準信号調整動作モードルーチンが実行される。
【００２７】
このモードの基本構造は、通常動作モードルーチンの構造と基本的に同一である。すなわち、ステップ１２の処理Ａが、ステップ２１〜ステップ４１までの処理Ｂに対応し、ステップ１３〜ステップ１５のループルーチンＢが、ステップ４２〜ステップ４４のループルーチンＣに対応している。
【００２８】
最初に、ステップ２０において、定数１２９が初期値として設定される。初期値を１２９としているのは、マイクロコンピュータの動作周波数のセンター値を、ここでは１ＭＨｚと想定しているためである。
【００２９】
ステップ２１では、ＳＩＧＯＵＴ端子を“Ｈ”に設定する。これにより、外部出力信号は“Ｈ”に立ち上がる。ステップ２２、２５、２８では、外部入力端子を監視する。また、ステップ２３、２６、３０は、外部入力端子からの信号に基づいて、メモリｍｅｍ１に記憶されている回数を変更したり、または調整終了動作のための処理を行う。
【００３０】
すなわち、入力端子ＦＵＰＩＮが“Ｈ”の時（後述のように、現在のＣＲ発振周波数を上げるべきことを示す）には、ステップ２３において、メモリｍｅｍ１に記憶されている回数をデクリメントし、ステップ２５において、入力端子ＦＤＮＩＮが“Ｈ”の時（後述のように、現在のＣＲ発振周波数を下げるべきことを示す）は、ステップ２６において、メモリｍｅｍ１に記憶されている回数をインクリメントし、ステップ２８において、入力端子ＦＳＩＧＩＮが“Ｈ”の時（後述のように、現在のＣＲ発振周波数が基準周波数と一致していて適正であることを示す）には、ステップ３０において、現在のメモリｍｅｍ１の内容をＥＥＰＲＯＭに転送する。
【００３１】
ステップ２４、ステップ２７は、ＮＯＰ処理であって、それぞれ、ステップ２３、ステップ２６と同じ命令実行サイクル数を持っている。また、ステップ２９は、時間待ちステップであり、ステップ２１からステップ２９までで、総命令実行サイクル数が２３５サイクルとなるよう、このステップ２９で時間待ちが行われる。時間待ちには、ＮＯＰ等の命令を必要回数分ループさせる等の処理で実行可能である。
【００３２】
ステップ２２、２５、２８において、各外部入力端子が“Ｌ”の時には、メモリｍｅｍ１内容の変更を行わずに、ステップ４０（図３参照）に進む。ステップ４０では、外部出力端子ＳＩＧＯＵＴを“Ｌ”に落とす。これにより、出力は“Ｈ”から“Ｌ”となる。次のステップ４１では時間待ちを行う。すなわち、ステップ４０と４１とで、合計２３５サイクルとなるようにステップ４１で時間待ちを行う。
【００３３】
以上の、ステップ２１からステップ４１までの処理Ｂで命令実行サイクル数の総数は、２３５＋２３５＝４７０サイクルとなり、通常動作モードルーチンのステップ１２の処理Ａの命令実行サイクル総数と同じになる。
【００３４】
続いて、ステップ４２〜ステップ４４のループルーチンＣにおいて、ステップ１３〜ステップ１５と同じループルーチンを実行する。このループルーチンＣを終了すると、再びステップ２１にジャンプして以下同じ処理が繰り返される。この繰り返しにより、外部出力端子はステップ２１で“Ｈ”となり、ステップ４０で“Ｌ”となるパルスが連続出力される。そして、そのパルスの周期は、メモリｍｅｍ１に記憶されている内容（ループルーチンの繰り返し回数）に基づいて決まる。
【００３５】
図４は、基準信号調整装置２の動作を示すフローチャートである。
【００３６】
ステップ５０では、ＳＩＧＩＮ端子に入力されるパルスの周期Ｔｓｉｇの測定を行う。この端子に入力されるパルスは、制御装置１の外部出力端子から出力されるパルスである。ステップ５１において、Ｔｓｉｇの周期が、基準周期Ｔｓと同じであるかどうかの判定を行う。基準周期Ｔｓは、基準信号調整装置２内で水晶発振子等の高精度素子を用いて発振した基準パルスの周期である。もし違っていれば、ステップ５３に進み、両者の大小を判定する。入力されたパルスの周期が基準周期よりも短ければ（周波数が高ければ）、ステップ５５に進んで、端子ＦＵＰＯＵＴを”Ｌ”、端子ＦＤＮＯＵＴを“Ｈ”にして、制御装置１の外部入力端子ＦＤＮＩＮに対し、周波数を低下させるべき信号を出力する。入力されたパルスの周期が基準周期より長ければ（周波数が低ければ）、ステップ５４に進んで、端子ＦＵＰＯＵＴを”Ｈ”、端子ＦＤＮＯＵＴを“Ｌ”にして、制御装置１の外部入力端子ＦＵＰＩＮに対し、周波数を上昇させるべき信号を出力する。ステップ５１において、入力パルスの周期が基準周期に一致した場合には、ステップ５２において、各端子ＦＵＰＯＵＴ、ＦＤＮＯＵＴを“Ｌ”に設定し、且つ、ＦＳＩＧＯＵＴ端子を“Ｈ”に設定する。これにより、制御装置１の入力端子ＦＳＩＧＩＮには、“Ｈ”の調整終了動作を示す信号が入力される。
【００３７】
上記のように、動作モード切り換え信号が“Ｈ”となって、基準信号調整動作モードに入った時には、制御装置１のステップ２１〜ステップ４４からなる基準信号調整動作モードルーチンと、基準信号調整装置２のステップ５０〜ステップ５５のルーチンとで信号のやりとりを行い、最終的に、制御装置１のＣＲ発振周波数の周期が基準周期となるようにメモリｍｅｍ１の内容が調整され、その値がＥＥＰＲＯＭに記憶されて、調整が終了する。
【００３８】
調整が終了すると、動作モード切り換え信号が“Ｌ”に設定され、以下、ステップ１１以下の通常動作モードルーチンが実行され、正確なタイマカウント時間の計数が行われていく。
【００３９】
具体的な数値を用いて、以下、調整動作の説明を行う。
【００４０】
マイクロコンピュータの動作周波数を８００ｋＨｚ、１命令サイクル数を８クロックとする。
【００４１】
上記の条件で、調整動作を行うと、最初に、メモリｍｅｍ１＝１２９として動作を開始した時（ステップ２０）、この時のＳＩＧＯＵＴから出力されるパルスの周期は、
２３５＋２３５＋１２＋４×１２９＋２＝１０００サイクル
１０００×８／８０００００＝０．０１ｓ
となり、周期は１０ｍｓとなる。この場合、基準周期を８ｍｓとすると、制御装置１側の外部入力端子ＦＵＰＩＮが“Ｈ”となるために、メモリｍｅｍ１の値を減らしていき、メモリｍｅｍ１＝７９になった時、
２３５＋２３５＋１２＋４×７９＋２＝８００サイクル
８００×８／８０００００＝０．００８ｓ
となり、基準周期８ｍｓと一致する。この段階で、調整動作が終了する。
【００４２】
【発明の効果】
本発明によれば、マイクロコンピュータ側に、基準信号をカウントする機能を付加する必要がないために、そのためのプログラム分が長くならないという利点がある。また、調整の分解能は、ループルーチンＣの１回の処理に要する時間となるために、高精度なタイマ校正を行うことができる。
【図面の簡単な説明】
【図１】本発明の実施形態であるマイクロコンピュータのタイマ校正システムの構成図
【図２】制御装置の要部動作を示すフローチャート
【図３】制御装置の要部動作を示すフローチャート
【図４】基準信号調整装置の要部動作を示すフローチャート
【図１】
0003611788.tif 000002
【図２】
0003611788.tif 000003
【図３】
0003611788.tif 000004
【図４】
0003611788.tif 000005