JP4671796B2 - Microcomputer timer adjustment mechanism - Google Patents

Microcomputer timer adjustment mechanism Download PDF

Info

Publication number
JP4671796B2
JP4671796B2 JP2005216980A JP2005216980A JP4671796B2 JP 4671796 B2 JP4671796 B2 JP 4671796B2 JP 2005216980 A JP2005216980 A JP 2005216980A JP 2005216980 A JP2005216980 A JP 2005216980A JP 4671796 B2 JP4671796 B2 JP 4671796B2
Authority
JP
Japan
Prior art keywords
timer
value
virtual
clock
actual
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.)
Expired - Fee Related
Application number
JP2005216980A
Other languages
Japanese (ja)
Other versions
JP2007034672A (en
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.)
Denso Ten Ltd
Original Assignee
Denso Ten 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 Denso Ten Ltd filed Critical Denso Ten Ltd
Priority to JP2005216980A priority Critical patent/JP4671796B2/en
Publication of JP2007034672A publication Critical patent/JP2007034672A/en
Application granted granted Critical
Publication of JP4671796B2 publication Critical patent/JP4671796B2/en
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Executing Machine-Instructions (AREA)

Description

本発明はマイクロコンピュータ、特にタイマによるタイマ値を使用したアプリケーション(プログラム)処理を行うマイクロコンピュータにおけるタイマ調整機構に関する。   The present invention relates to a timer adjustment mechanism in a microcomputer, in particular, a microcomputer that performs application (program) processing using a timer value by a timer.

図8は一般的なマイクロコンピュータの一構成例を示す図であり、例えばECU(Electronic Control Unit)に塔載された場合について示す。本図において参照番号1はマイクロコンピュータ(以下、「マイコン」とも称す)を示し、ECU7に塔載されて該ECU全体を制御する。このマイコン1は大別して、上記のアプリケーション処理を実行する処理部2と、IOリソースをなすリアルタイムパルスユニット3から構成される。   FIG. 8 is a diagram illustrating an example of a configuration of a general microcomputer. For example, a case where the microcomputer is mounted on an ECU (Electronic Control Unit) is illustrated. In the figure, reference numeral 1 indicates a microcomputer (hereinafter also referred to as “microcomputer”), which is mounted on the ECU 7 to control the entire ECU. The microcomputer 1 is roughly divided into a processing unit 2 that executes the application process and a real-time pulse unit 3 that forms an IO resource.

上記処理部2は周知の構成であり、CPU11と、上記のプログラムを格納するROM12と、入出力データを一時的に記憶するRAM13とからなる。一方リアルタイムパルスユニット3は、フリーラン(Free Run)のタイマ15と、パルスの有効エッジ入力時におけるタイマ値をラッチし例えばパルス周期の演算を行うキャプチャ機能部16と、上記タイマ値を用いてパルス出力のタイミングを予約時刻として指定するといったパルス出力処理を行うコンペア機能部17等と、IOレジスタ18とからなる。   The processing unit 2 has a well-known configuration, and includes a CPU 11, a ROM 12 that stores the program, and a RAM 13 that temporarily stores input / output data. On the other hand, the real-time pulse unit 3 includes a free-run timer 15, a capture function unit 16 that latches a timer value when a valid edge of a pulse is input, for example, calculates a pulse period, and pulses using the timer value. It comprises a compare function unit 17 and the like for performing pulse output processing such as designating output timing as a reserved time, and an IO register 18.

これらのキャプチャ機能部16およびコンペア機能部17は共にタイマ15のタイマ値に従って動作して、当該パルス入力をIOドライバ5より受けまた当該パルス出力をIOドライバ6より送出する。なお上記タイマ値を設定するそのタイマ15は外部発振子4により駆動される。   Both the capture function unit 16 and the compare function unit 17 operate according to the timer value of the timer 15, receive the pulse input from the IO driver 5, and send the pulse output from the IO driver 6. The timer 15 for setting the timer value is driven by the external oscillator 4.

ここで処理部2に着目すると、この処理部2によるアプリケーション処理(パルス入力処理/パルス出力処理)では、上記タイマ15をベースにしたタイマ基準クロックによって時刻演算等が行われるが、この場合、そのタイマ基準クロックは予め定めた一定のクロックであることを前提としている。例えば、タイマ15のLSB(Least Significant Bit)が1μsの一定値であることを前提としている。   Here, when attention is paid to the processing unit 2, in the application processing (pulse input processing / pulse output processing) by the processing unit 2, time calculation or the like is performed by a timer reference clock based on the timer 15, in this case, It is assumed that the timer reference clock is a predetermined constant clock. For example, it is assumed that the LSB (Least Significant Bit) of the timer 15 is a constant value of 1 μs.

なお本発明に関連する公知技術としては、下記の〔特許文献1および2〕がある。特許文献1は、内蔵するタイマ本数以上のタイマ出力処理を可能とし、タイマ出力機能を自在かつ広範に利用できるようにするとともに、全体を安価な構成とすることができる制御用処理装置、を開示しており、また特許文献2は、クロック周波数の変更に伴ってその都度適切なソフトウェアタイマ値に設定することができるインテリジェントタイマ、を開示している。   In addition, as a well-known technique relevant to this invention, there exist the following [patent documents 1 and 2]. Patent Document 1 discloses a control processing device that enables timer output processing of the number of built-in timers or more, allows the timer output function to be used freely and widely, and can be configured inexpensively as a whole. In addition, Patent Document 2 discloses an intelligent timer that can be set to an appropriate software timer value each time the clock frequency is changed.

特開平8−44406号公報JP-A-8-44406 特開平8−292822号公報JP-A-8-292822

前述したように、処理部2におけるアプリケーション処理では、予め定めた一定のタイマ基準クロック(例えば、タイマLSB=1μs)で処理が行われることが前提となっている。したがって、マイコン1にとってタイマ基準クロックが変わることは通常想定していない。ところが、そのタイマ基準クロックを変えなければならないニーズがしばしば生じている。   As described above, the application process in the processing unit 2 is premised on that the process is performed with a predetermined constant timer reference clock (for example, timer LSB = 1 μs). Therefore, it is not usually assumed for the microcomputer 1 that the timer reference clock changes. However, there is often a need to change the timer reference clock.

そのニーズの第1例は、上記外部発振子4の周波数アップである。これはマイコン1の処理スピードの向上が求められる場合等のニーズに起因する。またそのニーズの第2例は、マイコンの変更があったときにこれに伴いタイマ機能部の変更をしたい、というニーズである。   The first example of the need is to increase the frequency of the external oscillator 4. This is due to needs such as when improvement in processing speed of the microcomputer 1 is required. The second example of the need is a need to change the timer function unit when the microcomputer is changed.

かかるニーズによって、アプリケーション処理の中で使用される、時刻演算のもととなるタイマ15のLSBが変わると、アプリケーションに係るソフトウェアの中で多岐に渡るロジック、特に時刻演算等のためのタイマ値使用箇所におけるロジックを全て変更することが必要となり、そのロジック変更量、すなわちソフト修正量は膨大なものになる。このために大規模なロジック変換作業が必要となる、といった問題が生じる。一例を挙げると、タイマ基準クロックのLSBが1/2(例えば0.5μs)になったとすると、算出結果のパルス周期を2倍に換算するといったロジック変換処理が必要となる。   When the LSB of the timer 15 that is the basis of the time calculation used in the application process changes according to such needs, a wide variety of logic in the software related to the application, particularly the use of the timer value for the time calculation, etc. It is necessary to change all the logic in the location, and the amount of logic change, that is, the amount of software correction becomes enormous. This causes a problem that a large-scale logic conversion work is required. For example, if the LSB of the timer reference clock is ½ (for example, 0.5 μs), a logic conversion process is required to convert the pulse period of the calculation result to double.

このようにタイマ基準クロックを変更することは容易ではなく、例えば次のような制約(i)および(ii)が課せられる。   Thus, it is not easy to change the timer reference clock, and the following restrictions (i) and (ii) are imposed, for example.

(i)クロック周波数アップによるマイコン処理能力の向上が要求される場合には、タイマ基準クロックを変更することなく実現可能なクロック変更に限定すること、(ii)新たなマイコンの選定に際しては、当該アプリケーション処理に適応可能なタイマ基準クロックを有するマイコンに限定すること、である。   (I) When improvement of the microcomputer processing capability by increasing the clock frequency is required, it is limited to the clock change that can be realized without changing the timer reference clock. (Ii) When selecting a new microcomputer, It is limited to a microcomputer having a timer reference clock applicable to application processing.

したがって本発明は、上記の問題点に鑑み、タイマ値を使用したアプリケーション処理を行うマイコンにおいて、そのタイマ値の元になるタイマ基準クロックを変えなければならないことになった場合であっても、そのマイコン内で実行するアプリケーション処理のロジックには一切変更を加えることなしに、そのタイマ基準クロックを変更することのできるタイマ調整機構を提供することを目的とするものである。   Therefore, in view of the above problems, the present invention provides a microcomputer that performs application processing using a timer value, even when the timer reference clock that is the basis of the timer value has to be changed. An object of the present invention is to provide a timer adjustment mechanism capable of changing the timer reference clock without changing any application processing logic executed in the microcomputer.

別言すれば、上記のタイマ基準クロックの変更をソフトウェア的に吸収する機構を備えたマイコンを提供することを目的とするものである。   In other words, an object of the present invention is to provide a microcomputer having a mechanism that absorbs the change of the timer reference clock in software.

図1は本発明に係るタイマ調整機構を図解的に示す図である。なお全図を通じて同様の構成要素には同一の参照番号または記号を付して示す。   FIG. 1 is a diagram schematically showing a timer adjustment mechanism according to the present invention. Throughout the drawings, similar components are denoted by the same reference numerals or symbols.

本図において、上段はクロックソース「変更前」のマイコン1を概略的に表しており、図8の処理部2におけるソフトウェア処理を「アプリケーションAP」として表し、またこのアプリケーションを実行する際の基準クロックを生成するのが実タイマtimである。これは、図8のフリーランタイマ15の出力を受けてIOレジスタ18内に形成される。   In the figure, the upper part schematically represents the microcomputer 1 with the clock source “before change”, the software processing in the processing unit 2 in FIG. 8 is represented as “application AP”, and the reference clock for executing this application Is generated by the real timer tim. This is formed in the IO register 18 in response to the output of the free-run timer 15 of FIG.

ここで上述のクロックソースの変更があったとすると、本図下段のクロックソース「変更後」のマイコン1のように構成が変わる。この下段の構成がすなわち本発明による構成であり、その特徴的な構成は、タイマ調整機構20にある。このタイマ調整機構20は、実タイマtimにより予め定めたクロック(例えば、LSB=1μs)で実行すべきアプリケーション(AP)処理を、そのクロックとは異なる実タイマTIMのクロック(例えば、LSB=0.8μs)で実行するようにした機構であり、この機構20は、実タイマTIMを、所定のクロック変換係数αに比例させた仮想タイマTIMvに変換し、上記のアプリケーション処理を、その変換された仮想タイマTIMvのクロックにより実行させることを特徴とするものである。かくして、実タイマtimのもとで実行しなければならないアプリケーションAPを、このアプリケーションAPに一切ロジック変更を加えることなくそのまま、クロックソース変更後の実タイマTIMのもとで実行可能とし、ここに導入されるものは比較的単純な上記のタイマ調整機構20に過ぎない。   If the clock source is changed as described above, the configuration changes like the microcomputer 1 of the clock source “after change” in the lower part of FIG. This lower configuration is the configuration according to the present invention, and the characteristic configuration is in the timer adjustment mechanism 20. The timer adjustment mechanism 20 performs an application (AP) process to be executed with a clock (for example, LSB = 1 μs) predetermined by the actual timer tim, and a clock (for example, LSB = 0.0.0) of the actual timer TIM different from the clock. 8 μs), and the mechanism 20 converts the real timer TIM into a virtual timer TIMv proportional to a predetermined clock conversion coefficient α, and the above application process is converted into the converted virtual It is executed by the clock of the timer TIMv. Thus, the application AP that must be executed under the real timer tim can be executed under the real timer TIM after changing the clock source without changing any logic in the application AP. All that is done is the relatively simple timer adjustment mechanism 20 described above.

さらに具体的には、タイマ調整機構20により、実タイマTIMのタイマ出力には、上記クロック変換係数αをパラメータとした「仮想タイマ生成処理」VIR(virtual)が行われる。そしてこの処理VIRによって仮想タイマTIMvが形成される。この仮想タイマTIMvは、上記処理によって得た仮想タイマ値を例えば図8のRAM13に書き込んでいくことにより実現できる。ここに、クロックソース変更前の実タイマtimと全く同等のクロックソースタイマが、この仮想タイマTIMvによって実現される。つまり図1中のプロセスPによって、マイコン1においてクロックソース変更によって生じる影響が吸収されることになる。そうすると、アプリケーションAPは、図中の「切替え処理」SWを介して実タイマ(TIM)アクセスから仮想タイマ(TIMv)アクセスへ切替えて、新たなタイマソースすなわち仮想タイマTIMvと連携可能となる。   More specifically, the timer adjustment mechanism 20 performs a “virtual timer generation process” VIR (virtual) using the clock conversion coefficient α as a parameter for the timer output of the real timer TIM. A virtual timer TIMv is formed by this processing VIR. The virtual timer TIMv can be realized by writing the virtual timer value obtained by the above processing into, for example, the RAM 13 in FIG. Here, a clock source timer exactly equivalent to the real timer tim before the clock source change is realized by this virtual timer TIMv. That is, the process P in FIG. 1 absorbs the influence caused by the clock source change in the microcomputer 1. Then, the application AP switches from the real timer (TIM) access to the virtual timer (TIMv) access via the “switching process” SW in the figure, and can cooperate with a new timer source, that is, the virtual timer TIMv.

本発明によれば、タイマ調整機構20を導入するのみで、例えばマイコン1の処理スピード向上のために周波数アップしたタイマに変更したとしても、該マイコン1が元々実行していたアプリケーションには一切ロジック変更を加えることなくそのまま使用し続けることができ、既述した従前の制約(i)および(ii)を全く気にすることなく、クロックソースの変更をいつでも自由に行うことができる。   According to the present invention, even if the timer is changed to a timer whose frequency is increased in order to improve the processing speed of the microcomputer 1 only by introducing the timer adjustment mechanism 20, for example, the application originally executed by the microcomputer 1 has no logic. The clock source can be freely changed at any time without worrying about the previous constraints (i) and (ii) described above.

図2は本発明に基づくタイマ調整機構20の調整処理を分かりやすくアナログ的に表すタイミング図である。本図において、縦軸はタイマ値、横軸は時間である。このタイマ値は時間の経過と共に鋸歯状波のように繰り返し変化する。図中、実線で表す鋸歯状波の波形Rは、実タイマ(図1のTIM)の動きを表しており、一方、点線で表す鋸歯状波の波形Vは、仮想タイマ(図1のTIMv)の動きを表している。なお、図8において説明したパルス入力処理(キャプチャ)およびパルス出力処理(コンペア)は、それぞれ図2のパルスCAPTおよびCOMPとして示し(上向き矢印は前述の有効エッジを表す)。波形Rとの交点がそれぞれキャプチャ時刻(参照)およびコンペア時刻(設定)を特定する。なお、実タイマ(R)について示すが、仮想タイマ(V)についても全く同様である。 本発明のタイマ調整機構20は、大別して2つの処理を行う。その1つは「定期タイミング処理」であり、もう1つは「アプリケーションからのアクセス処理」である。図2において、その「定期タイミング処理」の発生は四角で囲んだ“A”で示し、「アプリケーションからのアクセス処理」の発生は四角で囲んだ“B”で示す。なお後者の「アプリケーションからのアクセス処理」Bはさらに2つの処理B1およびB2を含む。“B1”は前述したキャプチャ処理(時刻参照の読出し処理)であり、“B2”は前述したコンペア処理(時刻設定の書込み処理)である。ここで本発明における主要な基準動作(“A”、“B1”および“B2”)を下記〔1〕〜〔8〕に列記する。   FIG. 2 is a timing diagram showing the adjustment process of the timer adjustment mechanism 20 according to the present invention in an analogy in an easy-to-understand manner. In this figure, the vertical axis is the timer value, and the horizontal axis is the time. This timer value repeatedly changes like a sawtooth wave with the passage of time. In the figure, a sawtooth waveform R represented by a solid line represents the movement of a real timer (TIM in FIG. 1), while a sawtooth waveform V represented by a dotted line represents a virtual timer (TIMv in FIG. 1). Represents the movement. Note that the pulse input process (capture) and the pulse output process (compare) described in FIG. 8 are shown as pulses CAPT and COMP in FIG. 2, respectively (upward arrows represent the above-mentioned effective edges). The intersections with the waveform R specify the capture time (reference) and compare time (setting), respectively. Although the real timer (R) is shown, the same applies to the virtual timer (V). The timer adjustment mechanism 20 of the present invention roughly performs two processes. One is “periodic timing processing”, and the other is “application access processing”. In FIG. 2, the occurrence of “periodic timing processing” is indicated by “A” surrounded by a square, and the occurrence of “access processing from an application” is indicated by “B” enclosed by a square. The latter “access processing from an application” B further includes two processes B1 and B2. “B1” is the above-described capture process (time reference read process), and “B2” is the above-described compare process (time setting write process). Here, main reference operations (“A”, “B1”, and “B2”) in the present invention are listed in the following [1] to [8].

・基本動作“A”に関して
〔1〕実タイマTIMと仮想タイマTIMvの各タイマ値が共に、タイマ零値(図2左端下の“0”)と一定のタイマ上限値(図2左端上の0xFFFFFF)との間をそれぞれの勾配をもって増大し、そのタイマ上限値に到達すると再びタイマ零値(“0”)に戻るようなタイマ動作を繰り返すとき、定期タイミング“A”にて周期的に読み取った実タイマ(R)のタイマ値を実タイマ基準値Tbaserとし、この実タイマ基準値Tbaserとクロック変換係数αとをもとに仮想タイマ基準値Tbasevを算出しかつ更新していくことにより、仮想タイマTIMvを形成するようにする。
-Regarding the basic operation "A" [1] Each timer value of the real timer TIM and the virtual timer TIMv is both a timer zero value ("0" at the lower left end of FIG. 2) and a constant timer upper limit value (0xFFFFFF at the upper left end of FIG. When the timer operation is repeated so as to return to the timer zero value ("0") when the timer upper limit value is reached, it is periodically read at the regular timing "A". By setting the timer value of the real timer (R) as the real timer reference value Tbase and calculating and updating the virtual timer reference value Tbasev based on the real timer reference value Tbase and the clock conversion coefficient α, the virtual timer A TIMv is formed.

〔2〕前回および今回それぞれ読み取った各実タイマ基準値の差分(Tbaser(今回)−Tbaser(前回))にクロック変換係数αを乗じて得た値に、保持した前回の仮想タイマ基準値Tbasev(前回)を加算することにより、今回の仮想タイマ基準値Tbasevを算出する。   [2] The previous virtual timer reference value Tbasev (the value obtained by multiplying the difference (Tbaser (current) -Tbaseer (previous)) by the clock conversion coefficient α between the actual timer reference values read each time the previous time and the current time. By adding (previous), the current virtual timer reference value Tbasev is calculated.

〔3〕実タイマTIMおよび仮想タイマTIMvの起動に際し、これら実タイマと仮想タイマの各タイマ値を同一のタイマ値に初期設定する(図2左端下の「初期設定」参照)。   [3] When starting the real timer TIM and the virtual timer TIMv, the timer values of the real timer and the virtual timer are initially set to the same timer value (see “Initial setting” at the lower left of FIG. 2).

〔4〕定期タイミングAの周期は、その1周期(A−A)内に、上述のタイマ上限値に到達するタイマオーバーフロー“OF”が2回以上発生しないような長さに設定する。   [4] The period of the periodic timing A is set to such a length that the timer overflow “OF” that reaches the above-mentioned timer upper limit value does not occur twice or more within the period (AA).

・基本動作“B1”に関して
〔5〕アプリケーション処理においてキャプチャ時刻の参照要求が発生したとすると、
その参照時点t1に直近の仮想タイマ(v)の更新タイミングt0を基点としてその基点での実タイマ値である実タイマ基準値Tbaserと、その参照時点t1において取得した現在の実タイマ値Trealとの間の差分(Treal−Tbaser)である実タイマ相対値ΔTrealと、クロック変換係数αとに基づいて、その参照要求にかかる仮想タイマ値Tvirを算出しその仮想タイマ値Tvirを上記のアプリケーション処理に返すようにする。
-Regarding basic operation "B1" [5] If a capture time reference request is generated in application processing,
Based on the update timing t0 of the virtual timer (v) most recently at the reference time t1, the actual timer reference value Tbaser, which is the actual timer value at the reference point, and the current actual timer value Treal acquired at the reference time t1 Based on the actual timer relative value ΔTreal which is the difference between the two (Treal-Tbase) and the clock conversion coefficient α, the virtual timer value Tvir according to the reference request is calculated, and the virtual timer value Tvir is returned to the application process. Like that.

〔6〕上記の実タイマ相対値ΔTrealにクロック変換係数αを乗じて仮想タイマ相対値ΔTvirを得、この仮想タイマ相対値ΔTvirに上記の仮想タイマ基準値Tbasevを加算して上記参照時点t1での仮想タイマ値Tvirを得る。   [6] The virtual timer relative value ΔTvir is obtained by multiplying the real timer relative value ΔTreal by the clock conversion coefficient α, and the virtual timer relative value ΔTvir is added to the virtual timer reference value Tbasev to obtain the reference time t1. A virtual timer value Tvir is obtained.

・基本動作“B2”に関して
〔7〕アプリケーション処理においてコンペア時刻の設定要求が発生したとすると、
その設定要求時点t1に直近の仮想タイマ(V)の更新タイミングt0を基点としてその基点での仮想タイマ値である仮想タイマ基準値Tbasevと、その設定要求時点t1における仮想タイマ値Tvirとの間の差分(Tvir−Tbasev)である仮想タイマ相対値ΔTvirと、クロック変換係数αの逆数1/αとに基づいて、上記の設定要求にかかる実タイマ値Trealを算出しその実タイマ値Trealを上記のアプリケーション処理に返すようにする。
-Regarding basic operation "B2" [7] If a request to set a compare time is generated in application processing,
Between a virtual timer reference value Tbasev that is a virtual timer value at the base point and the virtual timer value Tvir at the setting request time point t1 with the update timing t0 of the virtual timer (V) most recently at the setting request time point t1 as a base point Based on the virtual timer relative value ΔTvir which is the difference (Tvir−Tbasev) and the reciprocal 1 / α of the clock conversion coefficient α, the actual timer value Treal related to the setting request is calculated, and the actual timer value Treal is calculated as the above application. Return it to the process.

〔8〕上記の仮想タイマ相対値ΔTvirにクロック変換係数αの逆数1/αを乗じて実タイマ相対値ΔTrealを得、この実タイマ相対値ΔTrealに上記の実タイマ基準値Tbaserを加算して上記設定要求に係る実タイマ値Trealを得る。   [8] The virtual timer relative value ΔTvir is multiplied by the inverse 1 / α of the clock conversion coefficient α to obtain the actual timer relative value ΔTreal, and the actual timer reference value Tbase is added to the actual timer relative value ΔTreal. An actual timer value Treal related to the setting request is obtained.

上記の基本動作の主要な項目について数式を用いて分かりやすく整理すると次のとおりである。   The main items of the above basic operation are summarized as follows by using mathematical formulas.

(A)定期(更新)タイミング処理
1)各定期タイミングAにおいて実タイマTIMのタイマ値(実タイマ値)を読み出し、これを実タイマ基準値として記憶する。図2の“Tbaser”がこの実タイマ基準値である。
(A) Periodic (update) timing processing 1) At each periodic timing A, the timer value (actual timer value) of the actual timer TIM is read and stored as an actual timer reference value. “Tbaser” in FIG. 2 is the actual timer reference value.

2)その実タイマ基準値Tbaserから、対応する仮想タイマTIMvの基準値を、仮想タイマ基準値Tbasevとして生成する。図2の“Tbasev”がこの仮想タイマ基準値である。   2) A reference value of the corresponding virtual timer TIMv is generated as a virtual timer reference value Tbasev from the actual timer reference value Tbase. “Tbasev” in FIG. 2 is the virtual timer reference value.

この定期タイミング処理の初期設定においては(図2の「初期設定」参照)、
Tbasev=Tbaser
とする。
In the initial setting of this periodic timing process (see “Initial setting” in FIG. 2),
Tbasev = Tbaser
And

そしてその定期タイミング処理の通常時においては、各隣接2定期タイミング間(A−A)での実タイマ基準値Tbaserの差分と、クロック変換係数αと、前回の仮想タイマ基準値とにより、今回の仮想タイマ基準値Tbasevを算出しながら各定期タイミング毎に更新していく。したがってこの算出されるTbasevは下記式により表される。   At the normal time of the periodic timing process, the current timer reference value Tbase difference between each adjacent two periodic timings (AA), the clock conversion coefficient α, and the previous virtual timer reference value The virtual timer reference value Tbasev is calculated and updated at each regular timing. Therefore, this calculated Tbasev is expressed by the following equation.

Tbasev=Tbasev(前回)+
(Tbaser(今回)−Tbaser(前回))×α
(B)アプリケーション(AP)からのアクセス処理
B1)参照時(キャプチャ/読出し処理)
実タイマ基準値Tbaserおよび仮想タイマ基準値Tbasevと、現在の実タイマ値(図2のTreal)とから、現在の仮想のタイマ値(図2のTvir)を算出する。この算出は下記式により表される。
Tbasev = Tbasev (previous) +
(Tbaser (current) -Tbaser (previous)) × α
(B) Access processing from application (AP) B1) At reference (capture / read processing)
The current virtual timer value (Tvir in FIG. 2) is calculated from the actual timer reference value Tbaser, the virtual timer reference value Tbasev, and the current actual timer value (Treal in FIG. 2). This calculation is represented by the following formula.

Tvir=Tbasev+(Treal−Tbaser)×α
=Tbasev+ΔTreal×α
=Tbasev+ΔTvir
ただし、ΔTrealは前述の実タイマ相対値、ΔTvirは前述の仮想タイマ相対値である。ここに参照時における参照要求に係る現在の仮想タイマ値Tvirが得られる。
Tvir = Tbasev + (Treal−Tbase) × α
= Tbasev + ΔTreal × α
= Tbasev + ΔTvir
However, ΔTreal is the aforementioned real timer relative value, and ΔTvir is the aforementioned virtual timer relative value. Here, the current virtual timer value Tvir related to the reference request at the time of reference is obtained.

B2)時刻設定時(コンペア/書込み処理)
実タイマ基準値Tbaserおよび仮想タイマ基準値Tbasevと、アプリケーションAPが算出した時刻設定値、すなわち仮想タイマ値Tvirとから、設定すべき実タイマ値Trealを算出する。この算出は下記式により表される。
B2) When setting the time (compare / write processing)
The actual timer value Treal to be set is calculated from the actual timer reference value Tbase and the virtual timer reference value Tbasev and the time setting value calculated by the application AP, that is, the virtual timer value Tvir. This calculation is represented by the following formula.

Treal=Tbaser+(Tvir−Tbasev)×1/α
=Tbaser+ΔTvir×1/α
=Tbaser+ΔTreal
ここに時刻設定時における実タイマ値Trealが得られる。
Treal = Tbase + (Tvir−Tbasev) × 1 / α
= Tbaser + ΔTvir × 1 / α
= Tbaser + ΔTreal
Here, the actual timer value Treal at the time setting time is obtained.

次に上記の各基本動作を実行するフローチャートの一例について説明する。   Next, an example of a flowchart for executing the above basic operations will be described.

図3は初期化処理動作を表すフローチャートである。本図において、
ステップS11:実タイマTIMを起動し、
ステップS12:その起動時の実タイマTIMのタイマ値を読み出す。
FIG. 3 is a flowchart showing the initialization processing operation. In this figure,
Step S11: Start the real timer TIM,
Step S12: Read the timer value of the real timer TIM at the time of activation.

ステップS13:その読出しタイマ値を、実タイマ基準値Tbaserの初期値として設定すると共に、
ステップS14:同じ読出しタイマ値を、仮想タイマ基準値Tbasevの初期値として設定する。
Step S13: The read timer value is set as the initial value of the actual timer reference value Tbase,
Step S14: The same read timer value is set as the initial value of the virtual timer reference value Tbasev.

なお続くステップS15およびS16は、次に述べる定時割込み処理(図4)における「初期化処理」ステップである。この定時割込み処理はマイコンにおいて一般的な割込み処理であり、例えば1ms毎に定時割込みが行われる。この場合、タイマのLSBが前述のように1μsであったとすると、本来はこの1μsをもとにその1msのインターバル時間が定められる。しかしこの1μsが前述の例のように0.8μsに短縮されると(周波数アップ)、その1msを維持できなくなりずれてしまう。   The subsequent steps S15 and S16 are “initialization processing” steps in the scheduled interrupt processing (FIG. 4) described below. This scheduled interrupt process is a general interrupt process in a microcomputer. For example, a scheduled interrupt is performed every 1 ms. In this case, if the LSB of the timer is 1 μs as described above, the interval time of 1 ms is originally determined based on this 1 μs. However, if this 1 μs is shortened to 0.8 μs as in the above example (frequency increase), the 1 ms cannot be maintained and will shift.

そこで本発明は前述した基本動作“B2”(コンペア処理)を流用し、このコンペア処理がその1msの設定を代替するようにする。図3に戻ると、
ステップS15:コンペア処理(B2)を起動し、
ステップS16:上記1ms(インターバル時間Tint)を前述のクロック変換係数倍した値(Tint×α)をコンペア処理の初期値としてセットする。
Therefore, the present invention diverts the basic operation “B2” (compare process) described above, and this compare process replaces the setting of 1 ms. Returning to FIG.
Step S15: The compare process (B2) is activated,
Step S16: A value (Tint × α) obtained by multiplying the above 1 ms (interval time Tint) by the above-mentioned clock conversion coefficient is set as an initial value of the comparison process.

以上を要約すると、アプリケーション(AP)処理の1つとして含まれる既存のタイマ割込み処理における一定インターバル(Tint)の定時割込みを行う場合、上記基本動作B1、すなわちコンペア時刻の設定要求時に実行するコンペア処理を起動するときに当該コンペア初期値として、クロック変換係数αを乗じた一定インターバルの時間を設定し(Tint×α)、そのタイマ割込み処理の初期化を行うようにする。そしてこのあとにタイマ割込み処理の通常処理が開始する。   To summarize the above, when performing a fixed interval (Tint) scheduled interrupt in the existing timer interrupt processing included as one of the application (AP) processing, the above-mentioned basic operation B1, that is, the compare processing executed at the time of setting the compare time Is set as the initial value of the comparison, a predetermined interval time multiplied by the clock conversion coefficient α is set (Tint × α), and the timer interrupt process is initialized. Thereafter, normal processing of timer interrupt processing starts.

図4は定時割込み処理とこれに連動する仮想タイマ基準値算出(上記基本動作“A”すなわち定期タイミング処理の通常処理)動作を表すフローチャートである。本図において、
ステップS21:定時割込み処理(Tint)を起動し、
ステップS22:上記基本動作“B2”に基づくコンペア機能により定時時刻(Tint×α)をセットする。
FIG. 4 is a flow chart showing the scheduled interrupt process and the virtual timer reference value calculation (the basic operation “A”, that is, the normal process of the periodic timing process) linked to this. In this figure,
Step S21: Start the scheduled interrupt process (Tint),
Step S22: The fixed time (Tint × α) is set by the compare function based on the basic operation “B2”.

ステップS23:上記のTint×αによるタイミングを分周し、実タイマ相当で例えば1secの定期タイミング処理(上記基本動作“A”)を実行し、その1secに達しないときはENDに至り、その1secに達する毎に次のステップS24に入る。   Step S23: Divide the timing by the above Tint × α and execute a periodic timing process (the basic operation “A”) of, for example, 1 sec corresponding to the real timer. When the 1 sec is not reached, END is reached, and 1 sec The next step S24 is entered each time.

ステップS24:本ステップでは、実タイマ基準値Tbaserおよび仮想タイマ基準値Tbasevの各前回値Tbasev_oおよびTbasev_oを保持し、
ステップS25:本ステップでは、今回のタイミングの実タイマ値Tbaser(今回)を読み出し、
ステップS26:本ステップでは、前述の算出式
Tbasev=Tbasev(前回)+
(Tbaser(今回)−Tbaser(前回))×α
により、仮想タイマ基準値Tbasevを算出し、かつ定期タイミング毎にこれを更新していく。
Step S24: In this step, the previous values Tbasev_o and Tbasev_o of the actual timer reference value Tbaser and the virtual timer reference value Tbasev are held,
Step S25: In this step, the actual timer value Tbase (current) at the current timing is read,
Step S26: In this step, the above-described calculation formula Tbasev = Tbasev (previous) +
(Tbaser (current) -Tbaser (previous)) × α
Thus, the virtual timer reference value Tbasev is calculated and updated at regular intervals.

上記のステップS16,S21およびS22により、タイマ割込み処理Tintにおける初期化後、クロック変換係数αを乗じた一定インターバル(Tint×α)毎に出力設定値を算出して通常処理を実行することになる。さらに上記のステップS23〜S26により、前回および今回それぞれ読み取った各実タイマ基準値の差分(Tbaser(今回)−Tbaser(前回))にクロック変換係数αを乗じて得た値に、保持した前回の仮想タイマ基準値Tbasev(前回)を加算することにより、今回の仮想タイマ基準値Tbasevを算出する。ここで上記ステップS23について考察すると、定期タイミング処理(“A”)におけるタイミング時間は、実タイマがオーバーフローしない程度に長い時間で十分である。なぜならそのタイミング時間を短くしても(高速の定期タイミングにしても)、タイマ値の精度はそれ程向上しないからである。このために、本ステップS23による「分周」を行うこととする。またこれによりソフトウェア処理の負荷を軽減することもできる。   After the initialization in the timer interrupt process Tint by the above steps S16, S21 and S22, the normal process is executed by calculating the output set value at every constant interval (Tint × α) multiplied by the clock conversion coefficient α. . Further, in the above steps S23 to S26, the value obtained by multiplying the difference (Tbaser (current) -Tbaseer (previous)) between the respective real timer reference values read the previous time and the current time by the clock conversion coefficient α is stored. The current virtual timer reference value Tbasev is calculated by adding the virtual timer reference value Tbasev (previous). Considering step S23 above, the timing time in the periodic timing process ("A") is sufficient to be long enough that the actual timer does not overflow. This is because even if the timing time is shortened (even if it is a high-speed regular timing), the accuracy of the timer value is not improved so much. For this purpose, “frequency division” in step S23 is performed. This also reduces the software processing load.

また上記の「オーバーフロー」について考察すると、前述したように定期タイミングAの1周期(A−A)内に、タイマ上限値に到達するタイマオーバーフロー“OF”(図2)が2回以上発生しないような長さに設定する。もしそのタイマオーバーフロー“OF”が該1周期内に2回以上発生したとすると、図4のステップS24〜S26の処理、とりわけTbaser(今回)とTbaser(前回)との差分を割り出す計算が困難になってしまうからである。   Further, considering the “overflow”, the timer overflow “OF” (FIG. 2) that reaches the timer upper limit value does not occur twice or more in one cycle (AA) of the periodic timing A as described above. Set to a reasonable length. If the timer overflow “OF” occurs two or more times within the one cycle, it becomes difficult to calculate the difference between Tbase (current) and Tbase (previous), especially the processing of steps S24 to S26 in FIG. Because it becomes.

以上のようにして「定期タイミング処理」“A”が実行され、その定期タイミングのもとで「アプリケーションからのアクセス処理」“B”が実行され、参照時の読出し処理(キャプチャ)“B1”と時刻設定処理(コンペア)“B2”とが行われる。   As described above, “periodic timing processing” “A” is executed, and “access processing from application” “B” is executed based on the periodic timing, and read processing (capture) “B1” at the time of reference is performed. Time setting processing (compare) “B2” is performed.

図5は参照時における読出し処理(キャプチャ)動作を表すフローチャートであり、
図6は時刻設定時における書込み処理(コンペア)動作を表すフローチャートである。
FIG. 5 is a flowchart showing a reading process (capture) operation at the time of reference.
FIG. 6 is a flowchart showing the write processing (compare) operation at the time setting.

まず図5を参照すると、
ステップS31:アプリケーション処理において、キャプチャ時刻の「参照要求」が発生したとすると、
ステップS32:現在の実タイマ値を取得してTrealとして記憶し、
ステップS33:上記実タイマ値Trealと実タイマ基準値Tbaserとの差分である実タイマ相対値ΔTrealを算出し、
ステップS34:算出したΔTrealをα(クロック変換係数)倍し、
ステップS35:そのΔTrealを仮想タイマ基準値Tbasevに加えて仮想タイマ値Tvirを得、
ステップS36:そのTvirを、参照要求元であるアプリケーションに、戻り値として返す。
First referring to FIG.
Step S31: Assume that a capture time “reference request” is generated in the application process.
Step S32: The current real timer value is acquired and stored as Treal,
Step S33: An actual timer relative value ΔTreal which is a difference between the actual timer value Treal and the actual timer reference value Tbase is calculated.
Step S34: The calculated ΔTreal is multiplied by α (clock conversion coefficient),
Step S35: The ΔTreal is added to the virtual timer reference value Tbasev to obtain a virtual timer value Tvir,
Step S36: The Tvir is returned as a return value to the reference request source application.

結局、上記一連のステップは次のとおりである。アプリケーション処理においてキャプチャ時刻の参照要求が発生したとすると、その参照時点t1に直近の仮想タイマ(v)の更新タイミングt0を基点としてその基点での実タイマ値である実タイマ基準値Tbaserと、その参照時点t1において取得した現在の実タイマ値Trealとの間の差分(Treal−Tbaser)である実タイマ相対値ΔTrealと、クロック変換係数αとに基づいて、その参照要求にかかる仮想タイマ値Tvirを算出しその仮想タイマ値Tvirを上記のアプリケーション処理に返す。この場合、上記の実タイマ相対値ΔTrealにクロック変換係数αを乗じて仮想タイマ相対値ΔTvirを得、この仮想タイマ相対値ΔTvirに上記の仮想タイマ基準値Tbasevを加算して上記参照時点t1での仮想タイマ値Tvirを得る。   After all, the series of steps is as follows. Assuming that a capture time reference request is generated in the application process, the actual timer reference value Tbase, which is the actual timer value at the base point, with the update timing t0 of the virtual timer (v) closest to the reference time t1 as the base point, Based on the actual timer relative value ΔTreal which is a difference (Treal−Tbase) from the current actual timer value Treal acquired at the reference time t1, and the clock conversion coefficient α, the virtual timer value Tvir related to the reference request is calculated. The calculated virtual timer value Tvir is returned to the application process. In this case, the virtual timer relative value ΔTvir is obtained by multiplying the real timer relative value ΔTreal by the clock conversion coefficient α, and the virtual timer reference value Tbasev is added to the virtual timer relative value ΔTvir to obtain the reference time t1. A virtual timer value Tvir is obtained.

次に図6を参照すると、
ステップS41:アプリケーション処理において、設定値Tvirをパラメータとして「時刻設定要求」が発生したとすると、
ステップS42:そのTvirと仮想タイマ基準値Tbasevとの差分を算出して仮想タイマ相対値ΔTvirを得、
ステップS43:そのΔTvirをα(クロック変換係数)分の1倍して(1/α)、実タイマ相対値ΔTrealを得、
ステップS44:そのΔTrealを実タイマ基準値Tbaserに加えて実タイマ値Trealを得、
ステップS45:そのTrealをIOレジスタ(図1)へ設定して、
ステップS46:そのTrealを時刻設定の要求元であるアプリケーションに返す。
Next, referring to FIG.
Step S41: In the application process, if a “time setting request” occurs with the setting value Tvir as a parameter,
Step S42: The difference between the Tvir and the virtual timer reference value Tbasev is calculated to obtain the virtual timer relative value ΔTvir,
Step S43: ΔTvir is multiplied by 1 / α (clock conversion coefficient) (1 / α) to obtain an actual timer relative value ΔTreal,
Step S44: The ΔTreal is added to the actual timer reference value Tbase to obtain the actual timer value Treal,
Step S45: Set the Treal in the IO register (FIG. 1),
Step S46: The Treal is returned to the application that is the time setting request source.

結局、上記一連のステップは次のとおりである。アプリケーション処理においてコンペア時刻の設定要求が発生したとすると、その設定要求時点t1に直近の仮想タイマ(v)の更新タイミングt0を基点としてその基点での仮想タイマ値である仮想タイマ基準値Tbasevと、その設定要求時点t1における仮想タイマ値Tvirとの間の差分(Tvir−Tbasev)である仮想タイマ相対値ΔTvirと、クロック変換係数αの逆数1/αとに基づいて、上記の設定要求にかかる実タイマ値Trealを算出しその実タイマ値Trealを上記のアプリケーション処理に返す。この場合、上記の仮想タイマ相対値ΔTvirにクロック変換係数αの逆数1/αを乗じて実タイマ相対値ΔTrealを得、この実タイマ相対値ΔTrealに上記の実タイマ基準値Tbaserを加算して上記設定要求に係る実タイマ値Trealを得る。   After all, the series of steps is as follows. Assuming that a comparison time setting request is generated in the application process, a virtual timer reference value Tbasev that is a virtual timer value at the base point with the update timing t0 of the virtual timer (v) closest to the setting request time point t1 as a base point; Based on the virtual timer relative value ΔTvir which is a difference (Tvir−Tbasev) from the virtual timer value Tvir at the setting request time point t1, and the reciprocal 1 / α of the clock conversion coefficient α, The timer value Treal is calculated and the actual timer value Treal is returned to the application process. In this case, the virtual timer relative value ΔTvir is multiplied by the inverse 1 / α of the clock conversion coefficient α to obtain the actual timer relative value ΔTreal, and the actual timer reference value Tbase is added to the actual timer relative value ΔTreal. An actual timer value Treal related to the setting request is obtained.

以上、図3〜図6を参照して、初期化処理、定時割込み処理、読出し処理(キャプチャ)および書込み処理(コンペア)について説明したが、これらの処理のいずれにも必須のパラメータはクロック変換係数αである。そこで、新たなクロック周波数が設定されると、そのクロック変換係数αが上記の全ての処理に対して自動的に反映されるようにしておけば、都合がよい。   As described above, the initialization process, the scheduled interrupt process, the read process (capture), and the write process (compare) have been described with reference to FIGS. 3 to 6. The parameters essential for any of these processes are the clock conversion coefficient. α. Therefore, it is convenient if the new clock frequency is set so that the clock conversion coefficient α is automatically reflected in all the above processes.

すなわちクロック変換係数αは、実タイマTIMの実クロック周波数(Hz)と仮想タイマTIMvの仮想クロック周波数(Hz)とから、仮想クロック周波数/実クロック周波数にて定義されるが、この定義されたクロック変換係数αを所定の1箇所に保持しておく。そしてアプリケーション処理に含まれる上記の各種処理(図3〜図6)が、そのクロック変換係数αを、共通乗数として共通に使用できるようにする。   That is, the clock conversion coefficient α is defined by the virtual clock frequency / real clock frequency from the real clock frequency (Hz) of the real timer TIM and the virtual clock frequency (Hz) of the virtual timer TIMv. The conversion coefficient α is held in a predetermined place. The various processes included in the application process (FIGS. 3 to 6) can use the clock conversion coefficient α as a common multiplier.

また前述した算出式等において、浮動小数点演算の場合には問題とならないが、固定小数点演算の場合には小数点以下が切り捨てられてしまうため、その演算精度が低下することがある。そこでその演算精度を確保するために、一定の定数例えば「256」を乗算(8ビット左シフト)しておいて上述した算出式等の所要の演算を行い、その演算のあとで「256」で除算(8ビット右シフト)するといった算法をとるのが好ましい。   In the above-described calculation formulas and the like, there is no problem in the case of floating-point arithmetic, but in the case of fixed-point arithmetic, the decimal part is truncated, so that the arithmetic accuracy may be lowered. Therefore, in order to ensure the calculation accuracy, a predetermined constant such as “256” is multiplied (8-bit left shift), and the required calculation such as the above-described calculation formula is performed. It is preferable to use an algorithm such as division (8-bit right shift).

さらに上記図3〜図6のうち図4に再び着目すると、タイマ割込み処理における通常処理において、αの値によってTint×αの値が整数にならない場合があり、端数が生じてしまうことがある。かかる端数が定時割込み毎に発生しかつ累積していくとその累積誤差は許容し得ない程の大きさになり、結局、一定時間割込みを維持できなくなる。   3 again in FIG. 3 to FIG. 6, in the normal processing in the timer interrupt processing, the value of Tint × α may not be an integer depending on the value of α, and a fraction may be generated. If such fractions are generated and accumulated at every scheduled interrupt, the accumulated error becomes unacceptable, and eventually the interrupt cannot be maintained for a certain time.

そこで上記タイマ割込み処理における上記の通常処理において、上述のようにクロック変換係数αの値に起因して一定インターバルTint×αの出力設定値に毎回端数が生じるような場合には、その一定インターバルのn回分に当たる端数を累積し、(n+1)回目の出力設定値にその累積値を加算する。これにより、長期的に見れば所要の一定インターバル時間を常に維持することができる。   Therefore, in the above-described normal processing in the timer interrupt processing, when a fraction occurs every time in the output set value of the constant interval Tint × α due to the value of the clock conversion coefficient α as described above, The fraction corresponding to n times is accumulated, and the accumulated value is added to the (n + 1) th output setting value. This makes it possible to always maintain the required constant interval time in the long run.

図7は図4のステップS22におけるTint×αの端数処理を表す図である。本図において、第1回から第n回までの各演算において生じた端数は毎回切り捨てていく。nは例えばn=10である。そしてn回分累積した端数βを補正値として、(n+1)回目の演算値にまとめて加算する。これにより上述の累積誤差が定期的に解消される。   FIG. 7 is a diagram illustrating the fraction processing of Tint × α in step S22 of FIG. In this figure, the fraction generated in each calculation from the first time to the nth time is rounded down every time. n is, for example, n = 10. Then, the fraction β accumulated for n times is added to the (n + 1) th calculated value as a correction value. Thereby, the above-mentioned cumulative error is periodically eliminated.

また上記図3〜図6のうち図6に再び着目すると、その第1ステップS41に関し、コンペア時刻の設定処理の直前において仮想タイマの更新処理を行い、前述した基点を最新の更新タイミングに変更することが好ましい。このコンペア時刻の設定処理においては、その設定範囲に十分余裕をもたせ定期タイミングの1周期(図2のA−A)を最大限使えるようにするのが望ましい。   3 to 6 again, with respect to the first step S41, the virtual timer is updated immediately before the compare time setting process, and the above-mentioned base point is changed to the latest update timing. It is preferable. In this comparison time setting process, it is desirable that the setting range has a sufficient margin so that one period of the periodic timing (A-A in FIG. 2) can be used to the maximum.

そこでコンペア時刻設定の直前で実タイマ基準値Tbaserならびに仮想タイマ基準値Tbasevを改めて生成し直して、その1周期A−Aのほぼ全範囲で、コンペア時刻の設定を行うことができるようにする。   Therefore, the real timer reference value Tbaser and the virtual timer reference value Tbasev are generated again immediately before the compare time setting, so that the compare time can be set in almost the entire range of the one cycle AA.

さらにまた上記図3〜図6のうち再び図6に着目すると、その第2ステップS42に関し、コンペア時刻の設定において、仮想タイマTIMvに規定される最大設定可能範囲に対応する、実タイマTIMに規定される最大設定可能範囲を、クロック変換係数αの値に応じて変更させるのが好ましい。すなわち、クロック変換係数αを反映した「ガード」の設定である。   3 again in FIG. 3 to FIG. 6, regarding the second step S42, in the setting of the compare time, it is defined in the real timer TIM corresponding to the maximum settable range defined in the virtual timer TIMv. The maximum settable range to be set is preferably changed according to the value of the clock conversion coefficient α. That is, the “guard” setting reflects the clock conversion coefficient α.

アプリケーション処理では、直接使用する仮想タイマの値を基準として時刻の設定可能範囲が決まる。その最大設定可能範囲は、仮想タイマの1周期(A−A)先の時刻までである。しかし実タイマでの設定可能範囲は、クロック変換係数αの値に応じて変わるため、その実タイマ上での設定可能範囲に対するガードを新たに設定し直すこととする。   In application processing, the time setting range is determined based on the value of the virtual timer used directly. The maximum settable range is up to the time ahead of one cycle (AA) of the virtual timer. However, since the settable range in the real timer changes depending on the value of the clock conversion coefficient α, the guard for the settable range in the real timer is newly set.

上述のコンペア時刻の設定において、その設定時刻が上記の最大設定可能範囲を超えることがあり得るが、このようなときには、当該コンペア時刻設定処理を保留すると共に当該設定要求のみを記憶しておいて、次回の定期タイミングにおいて当該設定要求を再実行するようにすればよい。   In the above-described setting of the compare time, the set time may exceed the above maximum settable range. In such a case, the compare time setting process is suspended and only the setting request is stored. The setting request may be re-executed at the next periodic timing.

すなわちタイマ時刻値設定時、その設定時刻が設定可能範囲を超えるような場合、当該設定処理を一旦保留し、その設定要求のみを記憶しておく。そして次回の定時処理においてその保留の時間を設定時刻から差し引いた上で、その記憶していた設定要求を再実行することにより、設定可能範囲を超える値でも処理を可能にする。その再実行によってもまだ設定可能範囲を超えるような場合には、再度、実行を一旦保留し、次回の定時処理において、再々実行を行う。これを設定時刻が設定可能範囲内に入るまで繰り返す。   That is, when setting the timer time value, if the set time exceeds the settable range, the setting process is temporarily suspended and only the setting request is stored. Then, in the next scheduled processing, the hold time is subtracted from the set time, and the stored setting request is re-executed, thereby enabling processing even with a value exceeding the settable range. If the re-execution still exceeds the settable range, the execution is once again suspended and re-executed in the next scheduled processing. This is repeated until the set time falls within the settable range.

以上詳述したとおり、本発明によれば、タイマソースの変更があったとき、当該アプリケーションに一切変更を加えることなしに、そのタイマソースの変更による影響をソフト的に吸収することができる。   As described above in detail, according to the present invention, when the timer source is changed, the influence of the change of the timer source can be absorbed in software without changing the application at all.

本発明に係るタイマ調整機構を図解的に示す図である。It is a figure showing the timer adjustment mechanism concerning the present invention diagrammatically. タイマ調整機構20の調整処理をアナログ的に表すタイミング図である。FIG. 6 is a timing diagram that represents the adjustment process of the timer adjustment mechanism 20 in an analog manner. 初期化処理動作を表すフローチャートである。It is a flowchart showing the initialization processing operation. 定時割込み処理とこれに連動する定期タイミング処理動作を表すフローチャートである。It is a flowchart showing a periodic interrupt processing and a periodic timing processing operation linked to this. 参照時における読出し処理(キャプチャ)動作を表すフローチャートである。It is a flowchart showing the reading process (capture) operation | movement at the time of reference. 時刻設定時における書込み処理(コンペア)動作を表すフローチャートである。It is a flowchart showing the writing process (compare) operation | movement at the time of time setting. 図4のステップS22における端数処理を表す図である。It is a figure showing the fraction process in step S22 of FIG. 一般的なマイクロコンピュータの一構成例を示す図である。It is a figure which shows one structural example of a general microcomputer.

符号の説明Explanation of symbols

1 マイクロコンピュータ(マイコン)
2 処理部
3 リアルタイムパルスユニット
4 外部発振子
11 CPU
12 ROM
13 RAM
15 タイマ
16 キャプチャ機能部
17 コンペア機能部
20 タイマ調整機構
1 Microcomputer (microcomputer)
2 Processing unit 3 Real-time pulse unit 4 External oscillator 11 CPU
12 ROM
13 RAM
15 Timer 16 Capture Function Unit 17 Compare Function Unit 20 Timer Adjustment Mechanism

Claims (10)

予め定めたクロックに基づいて動作するように構成されるアプリケーション処理を実行するマイクロコンピュータであって、
発振子から出力される第1クロックで駆動され、該第1のクロックとは異なる第2のクロックに基づいてアプリケーション処理を実行する処理部と、
前記第1のクロックに基づいてカウント処理を行うタイマであって、所定数までのカウント処理を繰り返し実行する実タイマと、を備え、
前記処理部は、第1の周期で起動される定期割込み処理にて、前記実タイマによるかウント値を所定のクロック変換係数に基づいて、前記第2のクロックに対応する仮想タイマのカウント値に変換する仮想タイマ変換処理を行い、
前記定期割込み処理にて行われる前記仮想タイマ変換処理は、前記実タイマのカウント値が前記所定数に達するオーバーフローが2回以上発生しない、前記第1の周期よりも長い第2の周期で実行されることを特徴とするマイクロコンピュータ。
A microcomputer that executes application processing configured to operate based on a predetermined clock,
A processing unit that is driven by a first clock output from the oscillator and that executes application processing based on a second clock different from the first clock;
A timer for performing count processing based on the first clock, and a real timer for repeatedly executing count processing up to a predetermined number,
In the periodic interrupt process activated in the first cycle, the processing unit converts the count value of the real timer to the count value of the virtual timer corresponding to the second clock based on a predetermined clock conversion coefficient. Perform virtual timer conversion processing to convert,
The virtual timer conversion process performed in the periodic interrupt process is executed in a second cycle longer than the first cycle in which an overflow in which the count value of the real timer reaches the predetermined number does not occur twice or more. A microcomputer characterized by that.
前記処理部は、前記定期割込み処理が起動された際に、前回前記仮想タイマ変換処理を実行してから前記第2の周期が経過していない場合には、該仮想タイマ変換処理を実行しないことを特徴とする請求項1記載のマイクロコンピュータ。   The processing unit does not execute the virtual timer conversion process if the second period has not elapsed since the previous execution of the virtual timer conversion process when the periodic interrupt process is started. The microcomputer according to claim 1. 前記第1の周期と前記第2の周期は、前記第2のクロックに基づいて計時されることを特徴とする請求項1又は2記載のマイクロコンピュータ。   3. The microcomputer according to claim 1, wherein the first period and the second period are timed based on the second clock. 設定されたタイマ値と、実タイマによってカウントされたタイマ値とが一致した場合に所定処理を起動させるコンペア処理部を備え、
前記定期割込み処理が、前記第2のクロックから前記第1のクロックに対応するように変換された前記第1の周期に基づくタイマ値と、実タイマで該第1のクロックに基づいてカウントされたタイマ値とが一致するタイミングで、前記コンペア処理部によって起動されることを特徴とする請求項1又は2記載のマイクロコンピュータ。
Provided with a compare processing unit that activates a predetermined process when the set timer value matches the timer value counted by the real timer,
The periodic interrupt process is counted based on the first clock based on the first period converted from the second clock to correspond to the first clock, and a real timer. 3. The microcomputer according to claim 1, wherein the microcomputer is started at the timing when the timer value coincides with the timer value.
前記実タイマと前記仮想タイマのカウント値である各タイマ値が共に、タイマ零値と一定のタイマ上限値との間をそれぞれの勾配をもって増大し、該タイマ上限値に到達すると再び前記タイマ零値に戻るようなタイマ動作を繰り返すとき、前記定期割込み処理にて周期的に読み取った前記実タイマのタイマ値を実タイマ基準値とし、該実タイマ基準値と前記クロック変換係数とをもとに仮想タイマ基準値を算出しかつ更新していくことにより、前記仮想タイマを形成することを特徴とする請求項1又は2記載のマイクロコンピュータ。   Each timer value, which is the count value of the real timer and the virtual timer, increases with a respective slope between the timer zero value and a constant timer upper limit value, and when the timer upper limit value is reached, the timer zero value again When repeating the timer operation such as returning to, the timer value of the real timer read periodically by the periodic interrupt process is used as the real timer reference value, and the virtual value is calculated based on the real timer reference value and the clock conversion coefficient. 3. The microcomputer according to claim 1, wherein the virtual timer is formed by calculating and updating a timer reference value. 前記アプリケーション処理においてキャプチャ時刻の参照要求が発生したとき、
該参照時点に直近の前記仮想タイマの更新タイミングを基点としてその基点での前記実タイマ値である前記実タイマ基準値と、その参照時点において取得した該実タイマ値との間の差分である実タイマ相対値と、前記クロック変換係数とに基づいて、前記参照要求にかかる仮想タイマ値を算出しその仮想タイマ値を前記アプリケーション処理に返すキャプチャ処理部を備えることを特徴とする請求項5記載のマイクロコンピュータ。
When a capture time reference request occurs in the application process,
Based on the update timing of the virtual timer that is closest to the reference time, the actual timer reference value that is the actual timer value at the reference point and the actual timer value that is acquired at the reference time is an actual difference. 6. The capture processing unit according to claim 5, further comprising: a capture processing unit that calculates a virtual timer value related to the reference request based on a timer relative value and the clock conversion coefficient and returns the virtual timer value to the application process. Microcomputer.
前記アプリケーション処理においてコンペア時刻の設定要求が発生したとき、
該設定要求時点に直近の前記仮想タイマの更新タイミングを基点としてその基点での前記仮想タイマ値である前記仮想タイマ基準値と、その設定要求時点における前記仮想タイマ値との間の差分である仮想タイマ相対値と、前記クロック変換係数の逆数とに基づいて、前記設定要求にかかる実タイマ値を算出しその実タイマ値を前記アプリケーション処理に返すコンペア処理部を備えることを特徴とする請求項5記載のマイクロコンピュータ。
When a compare time setting request occurs in the application process,
A virtual value that is a difference between the virtual timer reference value that is the virtual timer value at the base point and the virtual timer value at the setting request time point, based on the update timing of the virtual timer that is closest to the setting request time point The comparison processing unit according to claim 5, further comprising: a compare processing unit that calculates an actual timer value for the setting request based on a timer relative value and an inverse number of the clock conversion coefficient and returns the actual timer value to the application process. Microcomputer.
予め定めたクロックで実行すべきアプリケーション処理を、そのクロックとは異なる実タイマのクロックで実行するようにしたマイクロコンピュータにおけるタイマ調整機構であって、
前記タイマ調整機構は、前記実タイマを、所定のクロック変換係数に比例させた仮想タイマに変換し、前記アプリケーション処理を、変換された該仮想タイマのクロックにより実行させ、
前記実タイマと前記仮想タイマの各タイマ値が共に、タイマ零値と一定のタイマ上限値との間をそれぞれの勾配をもって増大し、該タイマ上限値に到達すると再び前記タイマ零値に戻るようなタイマ動作を繰り返すとき、定期タイミングにて周期的に読み取った前記実タイマのタイマ値を実タイマ基準値とし、該実タイマ基準値と前記クロック変換係数とをもとに仮想タイマ基準値を算出しかつ更新していくことにより、前記仮想タイマを形成し、
前記アプリケーション処理においてコンペア時刻の設定要求が発生したとき、
該設定要求時点に直近の前記仮想タイマの更新タイミングを基点としてその基点での前記仮想タイマ値である前記仮想タイマ基準値と、その設定要求時点における前記仮想タイマ値との間の差分である仮想タイマ相対値と、前記クロック変換係数の逆数とに基づいて、前記設定要求にかかる実タイマ値を算出しその実タイマ値を前記アプリケーション処理に返し、
前記コンペア時刻の設定処理の直前において前記仮想タイマの更新処理を行い、前記基点を最新の更新タイミングに変更することを特徴とするマイクロコンピュータのタイマ調整機構。
A timer adjustment mechanism in a microcomputer in which application processing to be executed with a predetermined clock is executed with a clock of an actual timer different from the clock,
The timer adjustment mechanism converts the real timer into a virtual timer proportional to a predetermined clock conversion coefficient, and causes the application process to be executed with the converted clock of the virtual timer,
Both the timer values of the real timer and the virtual timer increase with respective gradients between the timer zero value and a constant timer upper limit value, and return to the timer zero value again when the timer upper limit value is reached. When repeating the timer operation, the timer value of the actual timer read periodically at regular timing is used as the actual timer reference value, and the virtual timer reference value is calculated based on the actual timer reference value and the clock conversion coefficient. And by forming the virtual timer,
When a compare time setting request occurs in the application process,
A virtual value that is a difference between the virtual timer reference value that is the virtual timer value at the base point and the virtual timer value at the setting request time point, based on the update timing of the virtual timer that is closest to the setting request time point Based on the timer relative value and the reciprocal of the clock conversion coefficient, the actual timer value for the setting request is calculated and the actual timer value is returned to the application process,
A microcomputer timer adjustment mechanism, wherein the virtual timer is updated immediately before the compare time setting process, and the base point is changed to the latest update timing.
予め定めたクロックで実行すべきアプリケーション処理を、そのクロックとは異なる実タイマのクロックで実行するようにしたマイクロコンピュータにおけるタイマ調整機構であって、
前記タイマ調整機構は、前記実タイマを、所定のクロック変換係数に比例させた仮想タイマに変換し、前記アプリケーション処理を、変換された該仮想タイマのクロックにより実行させ、
前記実タイマと前記仮想タイマの各タイマ値が共に、タイマ零値と一定のタイマ上限値との間をそれぞれの勾配をもって増大し、該タイマ上限値に到達すると再び前記タイマ零値に戻るようなタイマ動作を繰り返すとき、定期タイミングにて周期的に読み取った前記実タイマのタイマ値を実タイマ基準値とし、該実タイマ基準値と前記クロック変換係数とをもとに仮想タイマ基準値を算出しかつ更新していくことにより、前記仮想タイマを形成し、
前記アプリケーション処理においてコンペア時刻の設定要求が発生したとき、
該設定要求時点に直近の前記仮想タイマの更新タイミングを基点としてその基点での前記仮想タイマ値である前記仮想タイマ基準値と、その設定要求時点における前記仮想タイマ値との間の差分である仮想タイマ相対値と、前記クロック変換係数の逆数とに基づいて、前記設定要求にかかる実タイマ値を算出しその実タイマ値を前記アプリケーション処理に返し、
前記コンペア時刻の設定において、前記仮想タイマに規定される最大設定可能範囲に対応する、前記実タイマに規定される最大設定可能範囲を、前記クロック変換係数の値に応じて変更することを特徴とするマイクロコンピュータのタイマ調整機構。
A timer adjustment mechanism in a microcomputer in which application processing to be executed with a predetermined clock is executed with a clock of an actual timer different from the clock,
The timer adjustment mechanism converts the real timer into a virtual timer proportional to a predetermined clock conversion coefficient, and causes the application process to be executed with the converted clock of the virtual timer,
Both the timer values of the real timer and the virtual timer increase with respective gradients between the timer zero value and a constant timer upper limit value, and return to the timer zero value again when the timer upper limit value is reached. When repeating the timer operation, the timer value of the actual timer read periodically at regular timing is used as the actual timer reference value, and the virtual timer reference value is calculated based on the actual timer reference value and the clock conversion coefficient. And by forming the virtual timer,
When a compare time setting request occurs in the application process,
A virtual value that is a difference between the virtual timer reference value that is the virtual timer value at the base point and the virtual timer value at the setting request time point, based on the update timing of the virtual timer that is closest to the setting request time point Based on the timer relative value and the reciprocal of the clock conversion coefficient, the actual timer value for the setting request is calculated and the actual timer value is returned to the application process,
In the setting of the compare time, the maximum settable range defined in the real timer corresponding to the maximum settable range defined in the virtual timer is changed according to the value of the clock conversion coefficient. Microcomputer timer adjustment mechanism.
前記コンペア時刻の設定において、その設定時刻が前記最大設定可能範囲を超えるときは、当該コンペア時刻設定処理を保留すると共に当該設定要求のみを記憶しておいて、次回の前記定期タイミングにおいて当該設定要求を再実行することを特徴とする請求項9記載のマイクロコンピュータのタイマ調整機構。   In the setting of the compare time, when the set time exceeds the maximum settable range, the compare time setting process is suspended and only the setting request is stored, and the setting request is requested at the next periodic timing. 10. The timer adjustment mechanism for a microcomputer according to claim 9, wherein the timer is re-executed.
JP2005216980A 2005-07-27 2005-07-27 Microcomputer timer adjustment mechanism Expired - Fee Related JP4671796B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2005216980A JP4671796B2 (en) 2005-07-27 2005-07-27 Microcomputer timer adjustment mechanism

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2005216980A JP4671796B2 (en) 2005-07-27 2005-07-27 Microcomputer timer adjustment mechanism

Publications (2)

Publication Number Publication Date
JP2007034672A JP2007034672A (en) 2007-02-08
JP4671796B2 true JP4671796B2 (en) 2011-04-20

Family

ID=37793856

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2005216980A Expired - Fee Related JP4671796B2 (en) 2005-07-27 2005-07-27 Microcomputer timer adjustment mechanism

Country Status (1)

Country Link
JP (1) JP4671796B2 (en)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8181175B1 (en) 2008-01-28 2012-05-15 Hewlett-Packard Development Company, L.P. Accounting for resource usage time by a virtual machine
US8607083B2 (en) * 2010-04-01 2013-12-10 Intel Corporation Method and apparatus for interrupt power management
JP2017033055A (en) * 2015-07-29 2017-02-09 日立オートモティブシステムズ株式会社 Electronic control device, actuator, and sensor

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004318878A (en) * 2003-04-10 2004-11-11 Internatl Business Mach Corp <Ibm> Maintaining virtual real-time clock in computer system that is logically partitioned

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH10268968A (en) * 1997-03-25 1998-10-09 Hitachi Ltd Timer for computer

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004318878A (en) * 2003-04-10 2004-11-11 Internatl Business Mach Corp <Ibm> Maintaining virtual real-time clock in computer system that is logically partitioned

Also Published As

Publication number Publication date
JP2007034672A (en) 2007-02-08

Similar Documents

Publication Publication Date Title
JP4671796B2 (en) Microcomputer timer adjustment mechanism
CN103135661B (en) Time measurement device, microcontroller, program and Method Of Time Measurement
JP2000517075A (en) How to keep accurate time in computer systems
KR20130039678A (en) Simulation apparatus, simulation method, and recording medium
KR101561372B1 (en) Pwm signal generating circuit, printer and pwm signal generating method
CN111983943A (en) Servo motor control method, controller, device, equipment and storage medium thereof
US20060150135A1 (en) Circuit information generating apparatus and circuit information generating method
JP7397686B2 (en) time generator
JP2705783B2 (en) Vehicle instrument
Stultz et al. We are not getting any younger: A new approach to time and timers
JP3949995B2 (en) Counter circuit
JP2008262340A (en) Automatic code generating device for dual core
JP6500550B2 (en) Timer correction device, timer correction method and timer correction program
JP2014153860A (en) Multi-thread processor
JP7456216B2 (en) Drive control device, electronic clock, and motor drive signal output control method
Otiv et al. H-pattern: A hybrid pattern based dynamic branch predictor with performance based adaptation
JP2002366373A (en) Method and device for task scheduling
JP5678868B2 (en) Signal processing device
JPS599303Y2 (en) Time division data reading circuit
SU1037420A1 (en) Pulse repetition frequency multiplier
JP2008083873A (en) Digital signal processor
JPH06338719A (en) Digitally controlled temperature compensation type crystal oscillator
JP4164160B2 (en) Level meter display device
JP2960120B2 (en) Pulse generator
JP2012242352A (en) Pulse interval measurement circuit and semiconductor integrated circuit device

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20080725

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20100614

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100720

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100921

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: 20101221

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20110118

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140128

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20150128

Year of fee payment: 4

LAPS Cancellation because of no payment of annual fees