JP2013080432A - マイクロコンピュータ - Google Patents

マイクロコンピュータ Download PDF

Info

Publication number
JP2013080432A
JP2013080432A JP2011221121A JP2011221121A JP2013080432A JP 2013080432 A JP2013080432 A JP 2013080432A JP 2011221121 A JP2011221121 A JP 2011221121A JP 2011221121 A JP2011221121 A JP 2011221121A JP 2013080432 A JP2013080432 A JP 2013080432A
Authority
JP
Japan
Prior art keywords
time
edge
register
value
capture
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.)
Granted
Application number
JP2011221121A
Other languages
English (en)
Other versions
JP5652367B2 (ja
Inventor
Risa Ozawa
理沙 小澤
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 Corp
Original Assignee
Denso Corp
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 Corp filed Critical Denso Corp
Priority to JP2011221121A priority Critical patent/JP5652367B2/ja
Publication of JP2013080432A publication Critical patent/JP2013080432A/ja
Application granted granted Critical
Publication of JP5652367B2 publication Critical patent/JP5652367B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Microcomputers (AREA)

Abstract

【課題】入力信号に特定方向の有効エッジが発生すると、その時の時刻情報を記憶する時刻記憶レジスタを備えたマイコンにおいて、所定のモニタ開始時からCPUが時刻記憶レジスタの値を読み込む処理を行う時までのモニタ期間中に有効エッジが複数回発生しても、有効エッジが最初に発生した時の時刻情報をCPUが取得可能にする。
【解決手段】マイコンでは、CPUによりキャプチャモードレジスタの値が“1”に設定されると(S101:Y)、入力信号に検出対象のエッジが発生した時に、キャプチャイネーブルレジスタの値が“0”の場合だけ(S104:Y)、キャプチャレジスタがフリーランニングタイマの値を更新記憶し(S102)、その更新記憶が行われるとソフト処理に拘わらずキャプチャイネーブルレジスタの値が“0”から“1”になる(S103)。また、キャプチャイネーブルレジスタの値はCPUのソフト処理で“0”に書き換え可能である。
【選択図】図2

Description

本発明は、入力信号に特定方向のエッジが発生すると、その時の時刻を示す時刻情報を記憶するレジスタを備えたマイクロコンピュータに関する。
マイクロコンピュータ(以下、マイコンともいう)としては、特定の端子への入力信号に特定方向のエッジ(レベル変化エッジ)が発生すると、その時の時刻情報としてフリーランニングタイマ(フリーランニングカウンタとも呼ばれる)のカウント値をラッチする、インプットキャプチャレジスタ(以下、キャプチャレジスタという)を備えたものが知られている(例えば、特許文献1参照)。そして、このようなマイコンにおいて、CPUは、キャプチャレジスタの値(時刻情報)を読み込むことで、入力信号に特定方向のエッジが発生した時刻を検出することができる。
更に、特定の端子への入力信号に特定方向のエッジが発生すると、割り込み要求が発生してCPUが割り込み処理を実行するマイコンも知られている(例えば、特許文献2参照)。
また、キャプチャレジスタに関して、そのキャプチャレジスタにフリーランニングタイマのカウント値をラッチさせるようにする方のエッジを、有効エッジと言うことにすると、有効エッジが立ち上がりエッジであるキャプチャレジスタ(以下、立ち上がりエッジキャプチャレジスタという)と、有効エッジが立ち下がりエッジであるキャプチャレジスタ(以下、立ち下がりエッジキャプチャレジスタという)との、各々を備えたマイコンも周知である。そのマイコンでは、特定の端子への入力信号に立ち上がりエッジが発生すると、立ち上がりエッジキャプチャレジスタが、その立ち上がりエッジ発生時の時刻を示す時刻情報として、フリーランニングタイマのカウント値をラッチし、また、上記入力信号に立ち下がりエッジが発生すると、立ち下がりエッジキャプチャレジスタが、その立ち下がりエッジ発生時の時刻を示す時刻情報として、フリーランニングタイマのカウント値をラッチすることとなる。
ここで、立ち上がりエッジキャプチャレジスタと立ち下がりエッジキャプチャレジスタとを備えたマイコンの使用例について、図10を用い説明する。
図10は、立ち下がりエッジの発生周期(図10におけるT)が一定であるPWM(パルス幅変調)信号のデューティ比を計測する場合の使用例を表している。そして、この例では、PWM信号の立ち下がりエッジから次の立ち上がりエッジまでのローレベル時間(図10におけるW)が、可変のパルス幅である。
図10に示す使用例では、PWM信号がマイコンに入力され、そのPWM信号に立ち下がりエッジが発生する毎に、マイコンの内部において、割り込み要求が発生し、CPUが割り込み処理を実行する。つまり、割り込み要求に関しての有効エッジは立ち下がりエッジになっている。
そして、マイコンのCPUは、PWM信号の立ち下がりエッジに伴う割り込み処理において、下記[S1]〜[S4]の処理を行う。
[S1]立ち下がりエッジキャプチャレジスタの値を読み込むと共に、その読み込んだ値(即ち、PWM信号に立ち下がりエッジが今回発生した時のフリーランニングタイマのカウント値)Naと、当該割り込み処理を前回実行した際に立ち下がりエッジキャプチャレジスタから読み込んでRAMに記憶しておいた値(即ち、PWM信号に立ち下がりエッジが前回発生した時のフリーランニングタイマのカウント値)Nbとの差分から、PWM信号の周期(即ち、立ち下がりエッジが前回発生してから今回発生するまでの1周期時間)を算出する。
[S2]立ち上がりエッジキャプチャレジスタの値を読み込むと共に、その読み込んだ値(即ち、PWM信号に立ち上がりエッジが発生した時のフリーランニングタイマのカウント値)Ncと、上記値Nbとの差分から、PWM信号のパルス幅(即ち、立ち下がりエッジが前回発生してから立ち上がりエッジが発生するまでのパルス幅時間)を算出する。
[S3]上記[S2]で算出したパルス幅を、上記[S1]で算出した周期で割ることにより、PWM信号のデューティ比を算出する。
[S4]少なくとも上記[S1],[S2]の処理を行った後に、上記[S1]で読み込んだ立ち下がりエッジキャプチャレジスタの値Naを、RAMに新たな上記値Nbとして更新記憶する。尚、この[S4]の処理でRAMに記憶した値Nbが、次回の割り込み処理における上記[S1],[S2]の各処理で用いられる。
このため、図10に示すように、PWM信号に、時刻t1で立ち下がりエッジが発生し、時刻t2で立ち上がりエッジが発生し、時刻t3で立ち下がりエッジが発生したとすると、時刻t1では、その時刻t1でのフリーランニングタイマのカウント値(C1)が立ち下がりエッジキャプチャレジスタに記憶され、時刻t2では、その時刻t2でのフリーランニングタイマのカウント値(C2)が立ち上がりエッジキャプチャレジスタに記憶され、時刻t3では、その時刻t3でのフリーランニングタイマのカウント値(C3)が立ち下がりエッジキャプチャレジスタに記憶される。
そして、時刻t3の立ち下がりエッジに伴う割り込み処理では、時刻t1から時刻t3までの時間(詳しくは、時刻t1から時刻t3までのフリーランニングタイマのカウント数(=C3−C1))を周期Tとして算出すると共に、時刻t1から時刻t2までの時間(詳しくは、時刻t1から時刻t2までのフリーランニングタイマのカウント数(=C2−C1))をパルス幅Wとして算出し、更に、算出した周期Tに対するパルス幅Wの比を、デューティ比として算出することとなる。
特開平8−258694号公報 特開昭57−49040号公報
ところで、上記従来のマイコンにおいて、キャプチャレジスタの値は、そのキャプチャレジスタにとっての有効エッジが発生する毎に、自動的に(つまり、ソフトウェアに従いCPUが行う処理とは関係なく)更新される。
このため、所定のモニタ開始時から、CPUがキャプチャレジスタの値を読み込む読込処理を行う時までの期間を、有効エッジのモニタ期間とすると共に、そのモニタ期間中に有効エッジが最初に発生した時の時刻情報を上記読込処理で取得したい場合に、下記の不具合が生じる。
即ち、モニタ期間中に有効エッジが2回以上発生してしまうと、CPUが上記読込処理を行った時点で、キャプチャレジスタの値は、有効エッジが最初に発生した時の時刻情報ではない時刻情報に更新されてしまっていることとなり、有効エッジが最初に発生した時の時刻情報を失ってしまう(有効エッジが最初に発生した時の時刻を検出することができない)、という不都合が生じる。
例えば、立ち上がりエッジキャプチャレジスタと立ち下がりエッジキャプチャレジスタとを備えたマイコンの前述した使用例(図10に示した)に関して説明すると、図11に例示するように、時刻t3でPWM信号に立ち下がりエッジが発生してから、CPUが割り込み処理を開始するまで(より詳しくは、割り込み処理において立ち上がりエッジキャプチャレジスタの値を読み込むまで)の、処理開始遅れ期間中の時刻t4にて、ノイズによりPWM信号に不要な(余分な)立ち上がりエッジが発生したとする。
すると、その時刻t4でのフリーランニングタイマのカウント値(C4)が、立ち上がりエッジキャプチャレジスタに更新記憶されることとなり、PWM信号が前回立ち下がってから最初に立ち上がった時刻t2でのカウント値(C2)が失われてしまう。
このため、CPUは、その時刻t2でのカウント値(C2)を取得することができず(時刻t2を検出することができず)、延いては、PWM信号のパルス幅及びデューティ比を正しく算出することができなくなる。この図11の例では、時刻t1から時刻t4までのフリーランニングタイマのカウント数(=C4−C1)であって、周期Tよりも長い時間を、パルス幅Wとして算出してしまうこととなる。
尚、図10及び図11の例では、割り込み処理において立ち上がりエッジキャプチャレジスタの値を読み込んだ時が、立ち上がりエッジについての前回のモニタ期間の終了時であり、次回のモニタ期間の開始時(モニタ開始時点)でもある。
本発明は、こうした問題に鑑みなされたものであり、入力信号に特定方向の有効エッジが発生すると、その時の時刻情報を記憶する時刻記憶レジスタを備えたマイコンにおいて、所定のモニタ開始時からCPUが時刻記憶レジスタの値を読み込む処理を行う時までのモニタ期間中に、有効エッジが複数回発生したとしても、その有効エッジが最初に発生した時の時刻情報をCPUが取得できるようにすること、を目的としている。
請求項1のマイコン(マイクロコンピュータ)は、入力信号に特定方向のエッジである有効エッジが発生すると、その時の時刻を示す時刻情報を記憶する時刻記憶レジスタと、プログラムを実行するCPUとを備えており、更に、更新制御手段を備えている。
そして、更新制御手段は、時刻記憶レジスタが時刻情報を記憶すると、CPUから出力される許可信号を受けるまでは、時刻記憶レジスタが時刻情報を更新して記憶するのを禁止する。
このマイコンでは、入力信号に有効エッジが発生して時刻記憶レジスタが時刻情報を記憶すると、CPUがソフトウェアの処理によって更新制御手段に許可信号を与えるまでは、入力信号に再び有効エッジが発生しても時刻記憶レジスタの記憶値は更新されない。
よって、このマイコンによれば、所定のモニタ開始時からCPUが時刻記憶レジスタの値を読み込む処理を行う時までのモニタ期間において、有効エッジが複数回発生したとしても、有効エッジが最初に発生した時の時刻情報をCPUに取得させたい場合には、CPUがモニタ開始時に更新制御手段へ許可信号を与えるようにしておけば良い。
そのようにすれば、時刻記憶レジスタは、モニタ開始時から、時刻情報を更新記憶できる状態となり、その後、入力信号に有効エッジが複数回発生したとしても、最初に有効エッジが発生した時にだけ時刻情報を更新記憶することとなる。よって、モニタ期間中に有効エッジが複数回発生したとしても、CPUは、時刻記憶レジスタの値を読み込むことにより、有効エッジが最初に発生した時の時刻情報を取得することができ、延いては、有効エッジが最初に発生した時刻を検出することができる。
次に、請求項2のマイコンでは、請求項1のマイコンにおいて、前記時刻記憶レジスタを、第1の時刻記憶レジスタとして備えると共に、入力信号は、立ち上がりエッジと立ち下がりエッジとのうちの一方である基準エッジが複数回発生する信号である。
そして、第1の時刻記憶レジスタは、入力信号に、有効エッジとして、基準エッジとは反対方向の非基準エッジが発生すると、その時の時刻を示す時刻情報を記憶するようになっている。
更に、請求項2のマイコンは、入力信号に基準エッジが発生すると、その時の時刻を示す時刻情報を記憶する第2の時刻記憶レジスタと、入力信号に基準エッジが発生すると、割り込み要求を発生する割り込み発生手段とを備えている。
そして、このマイコンにおいて、CPUは、割り込み発生手段による割り込み要求が発生すると(即ち、入力信号に基準エッジが発生すると)実行を開始する割り込み処理において、下記の第1〜第6の処理を行う。
即ち、CPUは、割り込み処理において、「第1の時刻記憶レジスタに記憶されている時刻情報を読み込む第1の処理」と、「第2の時刻記憶レジスタに記憶されている時刻情報を読み込む第2の処理」と、「第2の処理で読み込んだ時刻情報の値と、当該割り込み処理を前回実行した際に第2の処理で読み込んでメモリに記憶しておいた時刻情報である基準エッジ前回発生時刻情報の値との差分から、入力信号に基準エッジが前回発生してから今回発生するまでの時間である1周期時間を算出する第3の処理」と、「第1の処理で読み込んだ時刻情報の値と、前記基準エッジ前回発生時刻情報の値との差分から、入力信号に基準エッジが前回発生してから非基準エッジが発生するまでの時間であるパルス幅時間を算出する第4の処理」とを行う。そして、第3の処理と第4の処理よりも後に、「第2の処理で読み込んだ時刻情報を前記メモリに新たな基準エッジ前回発生時刻情報として更新記憶する第5の処理」を行い、更に第1の処理よりも後に、「更新制御手段に許可信号を与えて第1の時刻記憶レジスタが時刻情報を更新して記憶するのを許可する第6の処理」を行う。
このようなマイコンによれば、基準エッジの発生に伴う割り込み処理により、入力信号の1周期時間(基準エッジが前回発生してから今回発生するまでの時間)と、入力信号のパルス幅時間(基準エッジが前回発生してから非基準エッジが発生するまでの時間)とを算出することができる。また、算出した周期とパルス幅時間から、入力信号の1周期時間に対するパルス幅時間の比を算出することもでき、基準エッジの発生周期が一定のPWM信号が入力信号であるならば、その比として、PWM信号のデューティ比を算出するこができる。
そして特に、割り込み処理では、第1の時刻記憶レジスタの値(時刻情報)を読み込む第1の処理より後の第6の処理により、更新制御手段に許可信号を与えるため、入力信号に基準エッジが発生してから割り込み処理が開始されるまで(より詳しくは、割り込み処理における第1の処理が行われるまで)の間に、ノイズによって入力信号に不要な非基準エッジ(即ち、第1の時刻記憶レジスタにとっての有効エッジ)が発生したとしても、第1の時刻記憶レジスタの値は更新されない。このため、割り込み処理における第1の処理で第1の時刻記憶レジスタの値を読み込む時に、その第1の時刻記憶レジスタには、入力信号に基準エッジが前回発生してから最初に非基準エッジが発生した時の時刻情報が記憶されていることとなる。
よって、上記ノイズによる不要な非基準エッジが発生しても、割り込み処理では、入力信号に基準エッジが前回発生してから最初に非基準エッジが発生した時の時刻情報を取得することができ、誤ったパルス幅時間を算出してしまうことを回避することができる。つまり、入力信号に基準エッジが前回発生してから最初に非基準エッジが発生した時までの時間を、パルス幅時間として算出することができ、ノイズによるパルス幅時間の誤算出を回避することができる。
尚、このマイコンでは、割り込み処理における第1の処理で第1の時刻記憶レジスタの値を読み込んだ時が、前回のモニタ期間の終了時であり、次回のモニタ期間の開始時(モニタ開始時点)にも相当するが、モニタ開始時点については、厳密には、第6の処理で更新制御手段に許可信号を与えた時となる。
次に、請求項3のマイコンでは、請求項2のマイコンにおいて、入力信号は、基準エッジの発生周期が一定のPWM(パルス幅変調)信号である。そして、CPUは、前記割り込み処理において、「第3の処理で算出した1周期時間と第4の処理で算出したパルス幅時間とからPWM信号のデューティ比を算出する第7の処理」を行う。
このマイコンによれば、入力信号としてのPWM信号に基準エッジが発生してから割り込み処理における第1の処理が行われるまでの間に、ノイズによってPWM信号に不要な非基準エッジが発生したとしても、誤ったデューティ比を算出してしまうことを回避することができる。
次に、請求項4のマイコンでは、請求項3のマイコンにおいて、CPUは、前記割り込み処理において、「第3の処理で算出した1周期時間が所定の正常範囲内であるか否かを判定する第8の処理」を行うと共に、その第8の処理により1周期時間が正常範囲内ではないと判定した場合には、第7の処理をスキップするようになっている。
つまり、割り込み処理では、今回算出した1周期時間が正常範囲内でなければ、今回算出した1周期時間とパルス幅時間を用いてデューティ比を算出しないようになっている。尚、正常範囲は、PWM信号の周期(基準エッジの発生周期)の正常許容範囲(正常と考えられる許容範囲)に設定しておけば良い。
このマイコンによれば、PWM信号に正規の基準エッジが発生してから次の正規の基準エッジが発生するまでの間に、ノイズによる不要な基準エッジが発生して、基準エッジの発生間隔が正常範囲よりも短くなった場合には、割り込み処理における第3の処理で算出される1周期時間が正常範囲よりも短くなり、そのことが第8の処理で判定されて、第7の処理がスキップされることとなる。
このため、ノイズによってPWM信号に不要な基準エッジが発生した場合(基準エッジの発生間隔が正常範囲よりも短くなった場合)に、誤ったデューティ比を算出してしまうことを回避することができる。
次に、請求項5のマイコンでは、請求項4のマイコンにおいて、CPUは、前記割り込み処理において、第8の処理により1周期時間が前記正常範囲内ではないと判定した場合には、第5の処理もスキップするようになっている。つまり、割り込み処理では、今回算出した1周期時間が正常範囲内でなければ、デューティ比の算出だけではく、基準エッジ前回発生時刻情報の更新記憶も止めるようになっている。
このマイコンによれば、PWM信号に正規の基準エッジが発生してから次の正規の基準エッジが発生するまでの間に、ノイズによる不要な基準エッジが発生した場合でも、PWM信号に次の正規の基準エッジが発生して割り込み処理が実行されれば、その回の割り込み処理により、正しい1周期時間(PWM信号の周期)が算出されることとなる。その回の割り込み処理における第3及び第4の処理で用いられる基準エッジ前回発生時刻情報は、ノイズによる基準エッジが発生した時の時刻情報ではなく、前回の正規の基準エッジが発生した時の時刻情報になっているからである。
また、PWM信号に正規の基準エッジが発生してから次の正規の基準エッジが発生するまでの間に、ノイズによる不要な基準エッジが発生した場合には、その不要な基準エッジの直近に不要な非基準エッジも発生することとなるが、その場合でも、PWM信号に次の正規の基準エッジが発生して割り込み処理が実行されれば、その回の割り込み処理により、正しいパルス幅時間が算出されることとなり、延いては、正しいデューティ比が算出されることとなる。
このことについて説明すると、まず、PWM信号に正規の基準エッジが発生してから次の正規の基準エッジが発生するまでの間に、ノイズによる不要な基準エッジ及び非基準エッジが発生するパターンとしては、下記の第1パターンと第2パターンとがある。
第1パターンは、「PWM信号に正規の基準エッジが発生してから正規の非基準エッジが発生するまでの期間であるパルス幅期間中に、ノイズによって、非基準エッジと基準エッジとがその順に発生する」というパターンである。
第2パターンは、「PWM信号に正規の非基準エッジが発生してから次の正規の基準エッジが発生するまでの期間である反パルス幅期間中に、ノイズによって、基準エッジと非基準エッジとがその順に発生する」というパターンである。
そして、第1パターンの場合、ノイズによる非基準エッジが発生した時の時刻情報が第1の時刻記憶に記憶されてしまうが、その直後のノイズによる基準エッジに伴う割り込み処理においては、その第1の時刻記憶レジスタの値は無視されることとなる。第8の処理により1周期時間が正常範囲内ではないと判定されて、第7の処理がスキップされるからである。
また、ノイズによる基準エッジに伴う割り込み処理においても、第6の処理により更新制御手段に許可信号を与えることとなる。よって、その後に正規の非基準エッジが発生すれば、その時の時刻情報が第1の時刻記憶レジスタに更新記憶される。
そして、その後に正規の基準エッジが発生して、割り込み処理が実行されれば、その回の割り込み処理により、PWM信号の正しい1周期時間とパルス幅時間とが算出されることとなり、延いては、正しいデューティ比が算出されることとなる。
一方、第2パターンの場合、ノイズによる基準エッジが発生した時点では、既に第1の時刻記憶レジスタには正規の非基準エッジが発生した時刻の時刻情報が記憶されており、第1の時刻記憶レジスタは更新記憶禁止状態になっている。このため、ノイズによる基準エッジが発生してから該基準エッジに伴う割り込み処理が開始されるまで(より詳しくは第6の処理が行われるまで)に同ノイズによる非基準エッジが発生しても、第1の時刻記憶レジスタの値が更新されない。また、第2パターンの場合にも、ノイズによる基準エッジに伴う割り込み処理においては、第8の処理により1周期時間が正常範囲内ではないと判定されて、第7の処理がスキップされる。
よって、その後に正規の基準エッジが発生して、割り込み処理が実行されれば、その回の割り込み処理により、PWM信号の正しい1周期時間とパルス幅時間とが算出されることとなり、延いては、正しいデューティ比が算出されることとなる。
以上のことから、請求項5のマイコンによれば、ノイズによるデューティ比誤算出の回避性能を一層向上させることができる。
実施形態のマイコンの構成を表す構成図である。 タイマユニットの動作を説明するフローチャートである。 初期化処理を表すフローチャートである。 割り込み処理を表すフローチャートである。 PWM信号にノイズが乗らない場合の動作を表すタイムチャートである。 PWM信号にノイズが乗った場合の動作を表す第1のタイムチャートである。 PWM信号にノイズが乗った場合の動作を表す第2のタイムチャートである。 PWM信号にノイズが乗った場合の動作を表す第3のタイムチャートである。 PWM信号にノイズが乗った場合の動作を表す第4のタイムチャートである。 従来のマイコンの使用例を説明する説明図である。 従来技術の問題を説明する説明図である。
以下に、本発明が適用された実施形態のマイコンについて説明する。
図1に示すように、本実施形態のマイコン1は、プログラムを実行するCPU3と、実行対象のプログラムが記憶されたROM5と、プログラムの一部やCPU3による演算結果等が記憶されるRAM7と、当該マイコン1への入力信号にエッジが発生した時の時刻情報を記憶する機能を有したタイマユニット9と、それらを接続するバス11と、CPU3に割込み要求信号を出力する割り込みコントローラ(INTC)13と、エッジ検出ポート15とを備えている。
エッジ検出ポート15は、当該マイコン1の特定の端子17に入力される入力信号に立ち上がりエッジ(ローからハイへのレベル変化エッジ)が発生すると、立ち上がりエッジ検出信号を出力し、上記入力信号に立ち下がりエッジ(ハイからローへのレベル変化エッジ)が発生すると、立ち下がりエッジ検出信号を出力する。尚、立ち上がりエッジ検出信号と立ち下がりエッジ検出信号の各々は、例えば、当該マイコン1における内部クロックの所定周期分(例えば半周期分や1周期分)のパルス幅を有したパルス信号である。
また、タイマユニット9は、当該マイコン1における内部クロックによってカウントアップされるフリーランニングタイマ19と、立ち上がりエッジキャプチャレジスタ21と、立ち上がりエッジキャプチャモードレジスタ23と、立ち上がりエッジキャプチャイネーブルレジスタ25と、立ち上がりエッジキャプチャ制御回路27と、立ち下がりエッジキャプチャレジスタ31と、立ち下がりエッジキャプチャモードレジスタ33と、立ち下がりエッジキャプチャイネーブルレジスタ35と、立ち下がりエッジキャプチャ制御回路37と、割り込み要求信号生成部41と、割り込み要求有効エッジ設定レジスタ43とを備えている。
そして、エッジ検出ポート15から出力される立ち上がりエッジ検出信号が、立ち上がりエッジキャプチャ制御回路27と割り込み要求信号生成部41とに入力され、また、エッジ検出ポート15から出力される立ち下がりエッジ検出信号が、立ち下がりエッジキャプチャ制御回路37と割り込み要求信号生成部41とに入力されるようになっている。
立ち上がりエッジキャプチャレジスタ21は、フリーランニングタイマ19と同じビット数のレジスタであり、上記立ち上がりエッジ検出信号が立ち上がりエッジキャプチャ制御回路27を介して入力されると、その時のフリーランニングタイマ19のカウント値(以下、タイマ値という)をラッチする(記憶する)。そして、立ち上がりエッジキャプチャレジスタ21は、CPU3からのリードアクセスが可能である。
立ち上がりエッジキャプチャモードレジスタ23は、立ち上がりエッジキャプチャ制御回路27の動作モードを設定するための1ビットのレジスタであり、CPU3によって“1”か“0”が書き込まれる。
立ち上がりエッジキャプチャイネーブルレジスタ25は、立ち上がりエッジキャプチャレジスタ21がタイマ値をラッチする毎(即ち、更新記憶する毎)に“1”がセットされる1ビットのレジスタである。そして、この立ち上がりエッジキャプチャイネーブルレジスタ25の値は、CPU3によって“0”に書き換えることができるようになっている。
立ち上がりエッジキャプチャ制御回路27は、立ち上がりエッジキャプチャモードレジスタ23の値が“0”である場合には、動作モードがノーマルモードとなり、立ち上がりエッジキャプチャモードレジスタ23の値が“1”である場合には、動作モードがワンショットモードとなる。尚、この対応関係とは逆に、立ち上がりエッジキャプチャモードレジスタ23の値は、“0”がワンショットモードに対応し、“1”がノーマルモードに対応するようになっていても良い。また、このことは、後述する立ち下がりエッジキャプチャモードレジスタ33の値についても同様である。
そして、立ち上がりエッジキャプチャ制御回路27は、ノーマルモードの場合には、エッジ検出ポート15からの立ち上がりエッジ検出信号を、立ち上がりエッジキャプチャレジスタ21に、そのまま出力する。
よって、立ち上がりエッジキャプチャ制御回路27の動作モードがノーマルモードに設定された場合には、立ち上がりエッジについてのタイマユニット9での処理形態がノーマルモードとなり、そのノーマルモードでは、端子17への入力信号に立ち上がりエッジが発生する毎に、立ち上がりエッジキャプチャレジスタ21がタイマ値を更新記憶することとなる。
また、立ち上がりエッジキャプチャ制御回路27は、ワンショットモードの場合には、立ち上がりエッジキャプチャイネーブルレジスタ25の値が“0”ならば、エッジ検出ポート15からの立ち上がりエッジ検出信号を立ち上がりエッジキャプチャレジスタ21に出力するが、立ち上がりエッジキャプチャイネーブルレジスタ25の値が“1”ならば、立ち上がりエッジ検出信号を立ち上がりエッジキャプチャレジスタ21に出力しなくなる。このため、立ち上がりエッジキャプチャレジスタ21は、立ち上がりエッジキャプチャイネーブルレジスタ25の値が“0”の場合にだけ、タイマ値を更新記憶することとなる。
よって、立ち上がりエッジキャプチャ制御回路27の動作モードがワンショットモードに設定された場合には、立ち上がりエッジについてのタイマユニット9での処理形態がワンショットモードとなり、そのワンショットモードでは、CPU3によって立ち上がりエッジキャプチャイネーブルレジスタ25の値が“0”に設定されてから、端子17への入力信号に立ち上がりエッジが最初に発生すると、立ち上がりエッジキャプチャレジスタ21がタイマ値を更新記憶するが、その更新記憶時点からCPU3によって立ち上がりエッジキャプチャイネーブルレジスタ25の値が“1”から“0”に書き換えられるまでの間は、入力信号に立ち上がりエッジが発生しても、立ち上がりエッジキャプチャレジスタ21がタイマ値を更新記憶することが、禁止されることとなる。
また、立ち下がりエッジキャプチャレジスタ31、立ち下がりエッジキャプチャモードレジスタ33、立ち下がりエッジキャプチャイネーブルレジスタ35及び立ち下がりエッジキャプチャ制御回路37の各々も、上記立ち上がりエッジキャプチャレジスタ21、立ち上がりエッジキャプチャモードレジスタ23、立ち上がりエッジキャプチャイネーブルレジスタ25及び立ち上がりエッジキャプチャ制御回路27の各々と同様のものである。
即ち、立ち下がりエッジキャプチャレジスタ31も、フリーランニングタイマ19と同じビット数のレジスタであり、上記立ち下がりエッジ検出信号が立ち下がりエッジキャプチャ制御回路37を介して入力されると、その時のタイマ値をラッチする(記憶する)。そして、立ち下がりエッジキャプチャレジスタ31も、CPU3からのリードアクセスが可能である。
立ち下がりエッジキャプチャモードレジスタ33は、立ち下がりエッジキャプチャ制御回路37の動作モードを設定するための1ビットのレジスタであり、CPU3によって“1”か“0”が書き込まれる。
立ち下がりエッジキャプチャイネーブルレジスタ35は、立ち下がりエッジキャプチャレジスタ31がタイマ値をラッチする毎(即ち、更新記憶する毎)に“1”がセットされる1ビットのレジスタである。そして、この立ち下がりエッジキャプチャイネーブルレジスタ35の値は、CPU3によって“0”に書き換えることができるようになっている。
立ち下がりエッジキャプチャ制御回路37は、立ち下がりエッジキャプチャモードレジスタ33の値が“0”である場合には、動作モードがノーマルモードとなり、立ち下がりエッジキャプチャモードレジスタ33の値が“1”である場合には、動作モードがワンショットモードとなる。
そして、立ち下がりエッジキャプチャ制御回路37は、ノーマルモードの場合には、エッジ検出ポート15からの立ち下がりエッジ検出信号を、立ち下がりエッジキャプチャレジスタ31に、そのまま出力する。
よって、立ち下がりエッジキャプチャ制御回路37の動作モードがノーマルモードに設定された場合には、立ち下がりエッジについてのタイマユニット9での処理形態がノーマルモードとなり、そのノーマルモードでは、端子17への入力信号に立ち下がりエッジが発生する毎に、立ち下がりエッジキャプチャレジスタ31がタイマ値を更新記憶することとなる。
また、立ち下がりエッジキャプチャ制御回路37は、ワンショットモードの場合には、立ち下がりエッジキャプチャイネーブルレジスタ35の値が“0”ならば、エッジ検出ポート15からの立ち下がりエッジ検出信号を立ち下がりエッジキャプチャレジスタ31に出力するが、立ち下がりエッジキャプチャイネーブルレジスタ35の値が“1”ならば、立ち下がりエッジ検出信号を立ち下がりエッジキャプチャレジスタ31に出力しなくなる。
よって、立ち下がりエッジキャプチャ制御回路37の動作モードがワンショットモードに設定された場合には、立ち下がりエッジについてのタイマユニット9での処理形態がワンショットモードとなり、そのワンショットモードでは、CPU3によって立ち下がりエッジキャプチャイネーブルレジスタ35の値が“0”に設定されてから、端子17への入力信号に立ち下がりエッジが最初に発生すると、立ち下がりエッジキャプチャレジスタ31がタイマ値を更新記憶するが、その更新記憶時点からCPU3によって立ち下がりエッジキャプチャイネーブルレジスタ35の値が“1”から“0”に書き換えられるまでの間は、入力信号に立ち下がりエッジが発生しても、立ち下がりエッジキャプチャレジスタ31がタイマ値を更新記憶することが、禁止されることとなる。
一方、タイマユニット9において、割り込み要求有効エッジ設定レジスタ43は、CPU3によってライトアクセスが可能な1ビットのレジスタである。
そして、割り込み要求信号生成部41は、エッジ検出ポート15からの立ち上がりエッジ検出信号と立ち下がりエッジ検出信号とのうち、割り込み要求有効エッジ設定レジスタ43の値によって指示される方の信号が入力されると、割り込みコントローラ13へ割り込み要求信号を出力する。
本実施形態では、例えば、割り込み要求信号生成部41は、割り込み要求有効エッジ設定レジスタ43の値が“1”の場合には、立ち上がりエッジ検出信号が入力されると割り込み要求信号を出力し、逆に、割り込み要求有効エッジ設定レジスタ43の値が“0”の場合には、立ち下がりエッジ検出信号が入力されると割り込み要求信号を出力する。
そして、割り込み要求信号生成部41から出力される割り込み要求信号は、割り込みコントローラ13からCPU3へ、外部割り込みに対応する割り込み要求信号(即ち、外部割り込み要求信号)として出力される。すると、CPU3は、その外部割り込み要求信号に対応する割り込み処理(即ち、外部割り込み処理)を実行することとなる。
つまり、割り込み要求有効エッジ設定レジスタ43は、割り込み要求の有効エッジ(詳しくは、割り込み要求を発生させることとなる入力信号のエッジ)を任意に設定するためのレジスタであり、そのレジスタ43の値を“1”にすれば、立ち上がりエッジが割り込み要求の有効エッジとなり、そのレジスタ43の値を“0”にすれば、立ち下がりエッジが割り込み要求の有効エッジとなる。
尚、割り込み要求有効エッジ設定レジスタ43を複数ビットのレジスタにして、割り込み要求信号生成部41が、立ち上がりエッジ検出信号と立ち下がりエッジ検出信号との何れが入力されても割り込み要求信号を出力するモードと、立ち上がりエッジ検出信号が入力された時にだけ割り込み要求信号を出力するモードと、立ち下がりエッジ検出信号が入力された時にだけ割り込み要求信号を出力するモードと、立ち上がりエッジ検出信号と立ち下がりエッジ検出信号との何れが入力されても割り込み要求信号を出力しないモードとの、4つのモードに切り替わるように構成しても良い。
以上のことから、タイマユニット9の動作内容をまとめると、図2に示すフローチャートのようになる。尚、ここでは、端子17への入力信号に立ち上がりエッジが発生した場合を例に挙げて説明するが、入力信号に立ち下がりエッジが発生した場合にも同様の動作となる。
図2に示すように、例えば、入力信号に立ち上がりエッジが発生した時に、立ち上がりエッジキャプチャモードレジスタ23の値が“0”であれば(S101:NO)、立ち上がりエッジキャプチャイネーブルレジスタ25の値に拘わらず、立ち上がりエッジキャプチャレジスタ21がタイマ値を更新記憶し(S102)、その更新記憶が行われることに伴って、立ち上がりエッジキャプチャイネーブルレジスタ25に“1”がセットされる(S103)。
また、入力信号に立ち上がりエッジが発生した時に、立ち上がりエッジキャプチャモードレジスタ23の値が“1”であれば(S101:YES)、立ち上がりエッジキャプチャイネーブルレジスタ25の値が“0”の場合にだけ(S104:YES)、立ち上がりエッジキャプチャレジスタ21がタイマ値を更新記憶し(S102)、その更新記憶が行われることに伴って、立ち上がりエッジキャプチャイネーブルレジスタ25に“1”がセットされる(S103)。
このため、入力信号に立ち上がりエッジが発生した時に、立ち上がりエッジキャプチャモードレジスタ23の値が“1”であり(S101:YES)、且つ、立ち上がりエッジキャプチャイネーブルレジスタ25の値が“1”であれば(S104:NO)、立ち上がりエッジキャプチャレジスタ21はタイマ値を更新記憶しない。
一方、入力信号に立ち上がりエッジが発生した時に、割り込み要求有効エッジ設定レジスタ43によって、立ち上がりエッジが割り込み要求の有効エッジに設定されているならば(S150:YES)、割り込み要求信号生成部41が割り込みコントローラ13へ割り込み要求信号を出力する(S106)。逆に、立ち上がりエッジが割り込み要求の有効エッジに設定されていなければ(S105:NO)、割り込み要求信号生成部41は割り込み要求信号を出力しない。
尚、端子17への入力信号に立ち下がりエッジが発生した場合のタイマユニット9の動作は、上記図2に関する説明において、「立ち上がりエッジ」を「立ち下がりエッジ」と読み替え、「レジスタ21」を「レジスタ31」と読み替え、「レジスタ23」を「レジスタ33」と読み替え、「レジスタ25」を「レジスタ35」と読み替えた動作になる。
次に、以上のようなマイコン1の使用例について説明する。
本実施形態において、マイコン1の端子17には、立ち下がりエッジの発生周期が一定であるPWM信号が入力される。そして、マイコン1では、CPU3が、図3及び図4の処理を実行することにより、PWM信号のデューティ比を算出する。
尚、以下の説明において、「周期エッジ」とは、PWM信号のエッジのうち、該PWM信号の1周期毎に発生する方のエッジ(この例では、立ち下がりエッジ)のことであり、「非周期エッジ」とは、周期エッジとは反対方向のエッジ(この例では、立ち上がりエッジ)のことである。そして、本実施形態では、PWM信号における周期エッジ(立ち下がりエッジ)の発生間隔を、PWM信号の1周期時間(以下、単に「周期」という)として検出すると共に、周期エッジ(立ち下がりエッジ)が発生してから非周期エッジ(立ち上がりエッジ)が発生するまでの時間を、パルス幅時間(以下、単に「パルス幅」という)として検出し、その検出した周期に対するパルス幅の比を、PWM信号のデューティ比として算出する。
まず、図3は、マイコン1が起動した直後にCPU3が実行する初期化処理を表すフローチャートである。
図3に示すように、CPU3は、初期化処理の実行を開始すると、まずS110にて、割り込み要求有効エッジ設定レジスタ43に“0”を書き込むことにより、周期エッジである立ち下がりエッジを、割り込み要求の有効エッジに設定する。
そして、次のS120にて、立ち上がりエッジキャプチャモードレジスタ23に“1”を書き込むことにより、立ち上がりエッジキャプチャ制御回路27の動作モードをワンショットモードに設定する。また、次のS130にて、立ち下がりエッジキャプチャモードレジスタ33に“0”を書き込むことにより、立ち下がりエッジキャプチャ制御回路37の動作モードをノーマルモードに設定する。つまり、本実施形態では、PWM信号の立ち上がりエッジについては、タイマユニット9での処理形態をワンショットモードに設定し、PWM信号の立ち下がりエッジについては、タイマユニット9での処理形態をノーマルモードに設定している。
次に、S140にて、立ち上がりエッジキャプチャイネーブルレジスタ25に、初期値としての“0”を書き込み、続くS150にて、立ち下がりエッジキャプチャイネーブルレジスタ35にも、初期値としての“0”を書き込む。
そして、その後、当該初期化処理を終了する。
次に、図4は、CPU3が、割り込みコントローラ13からの外部割り込み要求信号(即ち、割り込み要求信号生成部41からの割り込み要求信号)を受けると実行する割り込み処理を表すフローチャートである。このため、図4の割り込み処理は、端子17へのPWM信号に立ち下がりエッジが発生する毎に実行される。
図4に示すように、CPU3は、割り込み処理の実行を開始すると、まずS210にて、立ち下がりエッジキャプチャレジスタ31の値を読み込み、その読み込んだ値を、周期エッジ今回発生時刻としてRAM7に記憶する。尚、周期エッジ今回発生時刻とは、「周期エッジが今回発生した時刻」のことである。
次に、S215にて、今回の当該割り込み処理が初回の処理(詳しくは、当該マイコン1が起動してから最初に実行する処理)であるか否かを判定する。そして、今回の当該割り込み処理が初回の処理でなければ(即ち、2回目以降の処理であれば)、S220に進む。
S220では、立ち上がりエッジキャプチャレジスタ21の値を読み込み、その読み込んだ値を、非周期エッジ発生時刻としてRAM7に記憶する。尚、非周期エッジ派生時刻とは、「非周期エッジが発生した時刻」のことである。
そして、次のS230にて、上記S210でRAM7に記憶した周期エッジ今回発生時刻から、RAM7に記憶されている周期エッジ前回発生時刻を引くことにより、PWM信号の周期(詳しくは、PWM信号に周期エッジが前回発生してから今回発生するまでの時間)を算出する。尚、周期エッジ前回発生時刻は、「周期エッジが前回発生した時刻」のことであり、当該割り込み処理が前回実行された際に、S210で立ち下がりエッジキャプチャレジスタ31から読み込んで、後述のS270でRAM7に記憶しておいた値である。
そして、続くS240にて、上記S220でRAM7に記憶した非周期エッジ発生時刻から、周期エッジ前回発生時刻を引くことにより、PWM信号のパルス幅(詳しくは、PWM信号に周期エッジが前回発生してから非周期エッジが発生するまでの時間)を算出する。
尚、本実施形態では、エッジの発生時刻を示す時刻情報がタイマ値であるため、S230で算出される周期の値は、実際には、周期の時間をフリーランニングタイマ19の1カウント分の時間(即ち、内部クロックの1周期)で割った値となり、同様に、S240で算出されるパルス幅の値は、実際には、パルス幅の時間を上記1カウント分の時間で割った値となる。
次に、S250にて、上記S230で算出した周期が正常範囲内であるか否かを判定する。尚、この正常範囲は、周期の値として正常と考えられる許容範囲に設定されている。
上記S250にて、周期が正常範囲内であると判定した場合には、S260に進み、S230で算出した周期と、S240で算出したパルス幅とから、PWM信号のデューティ比を算出する。具体的には、周期に対するパルス幅の比(=パルス幅/周期)を、デューティ比として算出する。
そして、次のS270にて、周期エッジ今回発生時刻を、RAM7に、新たな周期エッジ前回発生時刻として更新記憶する。
そして更に、次のS280にて、立ち上がりエッジキャプチャイネーブルレジスタ35に“0”を書き込むことにより、立ち上がりエッジキャプチャレジスタ21がタイマ値を更新記憶するのを許可し、その後、当該割り込み処理を終了する。
また、上記S250にて、周期が正常範囲内ではないと判定した場合には、S260とS270をスキップして、S280に進み、立ち上がりエッジキャプチャイネーブルレジスタ35に“0”を書き込んだ後、当該割り込み処理を終了する。
一方、上記S215にて、今回の当該割り込み処理が初回の処理であると判定した場合には、そのままS270に移行する。つまり、初回の割り込み処理では、周期とデューティ比を算出することができないため、次回の割り込み処理に備えるために、立ち下がりエッジキャプチャレジスタ31の値を周期エッジ前回発生時刻としてRAM7に記憶する処理(S210及びS270)と、立ち上がりエッジキャプチャイネーブルレジスタ35に“0”を書き込む処理(S280)だけを行う。
次に、マイコン1の作用及び効果について、図5〜図9を用い説明する。
まず図5は、PWM信号にノイズが乗らない場合の動作を表すタイムチャートである。
図5に示すように、マイコン1では、PWM信号に立ち下がりエッジが発生する毎に、CPU3が図4の割り込み処理を実行する。
そして、前述したように、PWM信号の立ち下がりエッジについては、タイマユニット9での処理形態をノーマルモードに設定している(図3のS130)。また、PWM信号の立ち上がりエッジについては、タイマユニット9での処理形態をワンショットモードに設定している(図3のS120)が、CPU3は、割り込み処理において、立ち上がりエッジキャプチャイネーブルレジスタ35に“0”を書き込むようになっている(図4のS280)。
このため、図5に示すように、PWM信号に、時刻t1で立ち下がりエッジが発生し、時刻t2で立ち上がりエッジが発生し、時刻t3で立ち下がりエッジが発生したとすると、時刻t1では、その時刻t1でのタイマ値(C1)が立ち下がりエッジキャプチャレジスタ31に記憶され、時刻t2では、その時刻t2でのタイマ値(C2)が立ち上がりエッジキャプチャレジスタ21に記憶され、時刻t3では、その時刻t3でのタイマ値(C3)が立ち下がりエッジキャプチャレジスタ31に記憶される。
そして、時刻t3の立ち下がりエッジに伴う割り込み処理では、時刻t1から時刻t3までの時間(詳しくは、時刻t1から時刻t3までのフリーランニングタイマのカウント数(=C3−C1))を周期Tとして算出する(S230)と共に、時刻t1から時刻t2までの時間(詳しくは、時刻t1から時刻t2までのフリーランニングタイマのカウント数(=C2−C1))をパルス幅Wとして算出し(S240)、更に、算出した周期Tに対するパルス幅Wの比(=W/T)を、デューティ比として算出する(S260)こととなる。
次に、図6は、PWM信号にノイズが乗った場合の動作を表す第1のタイムチャートであり、詳しくは、PWM信号に正規の立ち下がりエッジが発生してからCPU3が割り込み処理を開始するまでの処理開始遅れ期間中に、PWM信号にノイズによる不要な立ち上がりエッジが発生した場合の動作を表すタイムチャートである。尚、正規の立ち下がりエッジとは、発生間隔がPWM信号の周期として正常な立ち下がりエッジであり、換言すれば、発生間隔が図4のS250での判定に用いられる正常範囲に入っている立ち下がりエッジである。
図6に示すように、図5と同じ時刻t3でPWM信号に正規の立ち下がりエッジが発生してから、CPU3が割り込み処理(時刻t3の立ち下がりエッジに伴う割り込み処理)を開始するまでの処理開始遅れ期間中の時刻t4にて、PWM信号にノイズによる不要な立ち上がりエッジが発生したとする。
この場合、時刻t3よりも前の時刻t2にて、PWM信号に正規の立ち下がりエッジ後の最初の立ち上がりエッジが発生しており、その時刻t2で、立ち上がりエッジキャプチャレジスタ21がタイマ値(C2)を記憶したことにより、立ち上がりエッジキャプチャイネーブルレジスタ35の値が“1”になっている。そして、立ち上がりエッジキャプチャイネーブルレジスタ35の値が“1”になっている状態は、時刻t3の立ち下がりエッジに伴う割り込み処理(図6において、時刻t3より後の最初の割り込み処理)におけるS280が実行されるまで継続する。
このため、時刻t4でPWM信号に立ち上がりエッジが発生しても、立ち上がりエッジキャプチャレジスタ21の値は、更新されず、PWM信号に正規の立ち下がりエッジが前回発生してから最初に立ち上がりエッジが発生した時刻t2でのタイマ値(C2)のままになる。
よって、時刻t3の立ち下がりエッジに伴う割り込み処理において、S220では、立ち上がりエッジキャプチャレジスタ21から、時刻t4でのタイマ値ではなく、時刻t2でのタイマ値(C2)を取得することができ、その結果、S240で誤ったパルス幅を算出してしまうことを回避することができる。つまり、時刻t3の立ち下がりエッジに伴う割り込み処理では、図5の場合と同様に、立ち下がりエッジが前回発生してから最初に立ち上がりエッジが発生した時までの時間(時刻t1から時刻t2までのフリーランニングタイマのカウント数(=C2−C1))をパルス幅Wとして算出することができ、ノイズによるパルス幅の誤算出を回避することができる。そして、このため、デューティ比も正しく算出することができる。
尚、図6の例では、時刻t4の後の時刻t5にて、PWM信号にノイズによる立ち下がりエッジが発生しているが、その時刻t5は、時刻t3の立ち下がりエッジに伴う割り込み処理において、立ち下がりエッジキャプチャレジスタ31の値を読み込む処理(S210)が行われた後である。このため、時刻t3の立ち下がりエッジに伴う割り込み処理において、S210では、立ち下がりエッジキャプチャレジスタ31から、時刻t3でのタイマ値(C3)を読み込むこととなる。また、図6では、時刻t1から時刻t3までの時間を「T1」と記載している。そして、図6の例において、時刻t3の立ち下がりエッジに伴う割り込み処理のS230では、その時間T1に相当するフリーランニングタイマのカウント数(=C3−C1)が、周期として算出され、その回の割り込み処理のS260では、「パルス幅W/時間T1」の値が、デューティ比として算出されることとなる。
次に、図7は、PWM信号にノイズが乗った場合の動作を表す第2のタイムチャートであり、詳しくは、PWM信号に正規の立ち下がりエッジが発生してからCPU3が割り込み処理を開始するまでの処理開始遅れ期間中に、PWM信号にノイズによる不要な立ち上がりエッジと立ち下がりエッジとの両方が発生し、更に、前回の正規の立ち下がりエッジから不要な立ち下がりエッジまでの間隔(図7におけるT1)も、PWM信号の周期として正常と考えられる許容範囲内であった場合の動作を表すタイムチャートである。
図7に示すように、図5と同じ時刻t3でPWM信号に正規の立ち下がりエッジが発生してから、CPU3が割り込み処理(時刻t3の立ち下がりエッジに伴う割り込み処理)を開始するまでの処理開始遅れ期間中の時刻t4にて、PWM信号にノイズによる不要な立ち上がりエッジが発生すると共に、その処理開始遅れ期間中の時刻t5にて、PWM信号にノイズによる不要な立ち下がりエッジが発生し、更に、正規の立ち下がりエッジが前回発生した時刻t1から時刻t5までの時間T1も、PWM信号の周期として正常と考えられる許容範囲内であったとする。
この場合も、図6の場合と同様に、時刻t3よりも前の時刻t2にて、PWM信号に正規の立ち下がりエッジ後の最初の立ち上がりエッジが発生しており、その時刻t2で、立ち上がりエッジキャプチャレジスタ21がタイマ値(C2)を記憶したことにより、立ち上がりエッジキャプチャイネーブルレジスタ35の値が“1”になっている。そして、立ち上がりエッジキャプチャイネーブルレジスタ35の値が“1”になっている状態は、時刻t3の立ち下がりエッジに伴う割り込み処理(図7において、時刻t3より後の最初の割り込み処理)におけるS280が実行されるまで継続する。このため、時刻t4でPWM信号に立ち上がりエッジが発生しても、立ち上がりエッジキャプチャレジスタ21の値は、更新されず、PWM信号に正規の立ち下がりエッジが前回発生してから最初に立ち上がりエッジが発生した時刻t2でのタイマ値(C2)のままになる。
よって、時刻t3の立ち下がりエッジに伴う割り込み処理において、S220では、立ち上がりエッジキャプチャレジスタ21から、時刻t4でのタイマ値ではなく、時刻t2でのタイマ値(C2)を取得することができ、その結果、S240では、時刻t1から時刻t2までのフリーランニングタイマのカウント数(=C2−C1)をパルス幅Wとして算出することができる。このため、ノイズによるパルス幅の誤算出を回避することができる。
また、立ち下がりエッジについては、タイマユニット9での処理形態をノーマルモードに設定しているため、時刻t5で立ち下がりエッジが発生すると、立ち上がりエッジキャプチャレジスタ21の値が、時刻t3でのタイマ値(C3)から、時刻t5でのタイマ値(C5)に更新される。このため、時刻t3の立ち下がりエッジに伴う割り込み処理において、S210では、立ち下がりエッジキャプチャレジスタ31から、時刻t5でのタイマ値(C5)を取得することとなり、S230では、時刻t1から時刻t5までの時間T1に相当するフリーランニングタイマのカウント数(=C5−C1)を周期として算出することとなる。そして、この例では、時刻t3から時刻t5までの時間が微小であって、時刻t1から時刻t5までの時間T1もPWM信号の周期の許容範囲内であるため、時刻t3の立ち下がりエッジに伴う割り込み処理において、S250では、S230で算出した周期が正常範囲内であると判定することとなり、S260では、「パルス幅W/時間T1」の値であって、正しいと見なすことのできるデューティ比が算出されることとなる。
尚、図7に関する上記説明では、時刻t3の立ち下がりエッジが正規の立ち下がりエッジで、時刻t5の立ち下がりエッジがノイズによる不要な立ち下がりエッジであると説明したが、それとは逆に、時刻t5の立ち下がりエッジが正規の立ち下がりエッジで、時刻t3の立ち下がりエッジがノイズによる不要な立ち下がりエッジであると見なしても、時刻t3の立ち下がりエッジに伴う割り込み処理による算出結果は実質的に同じになる。つまり、図7の例において、時刻t1から時刻t3までの時間と、時刻t1から時刻t5までの時間とが、両方共にPWM信号の周期として許容範囲内であれば、時刻t3と時刻t5のどちらの立ち下がりエッジが正規の立ち下がりエッジであっても処理結果は実質的に変わらない。
次に、図8は、PWM信号にノイズが乗った場合の動作を表す第3のタイムチャートであり、詳しくは、PWM信号に正規の立ち下がりエッジが発生してから正規の立ち上がりエッジが発生するまでのパルス幅期間(本実施形態ではローレベル期間)中に、ノイズによって、立ち上がりエッジと立ち下がりエッジとがその順に発生した場合の動作を表すタイムチャートである。
図8に示すように、図5と同じ時刻t1から時刻t2までのパルス幅期間(ローレベル期間)において、CPU3が時刻t1の立ち下がりエッジに伴う割り込み処理(図8において、時刻t1より後の最初の割り込み処理)を行った後の時刻taで、PWM信号にノイズによる不要な立ち上がりエッジが発生すると共に、その直後の時刻tbで、PWM信号にノイズによる不要な立ち下がりエッジが発生したとする。
この場合、時刻taの前に、立ち上がりエッジキャプチャイネーブルレジスタ25の値が“0”に戻されているため、時刻taでノイズによる立ち上がりエッジが発生すると、その時刻taでのタイマ値(Ca)が、立ち上がりエッジキャプチャレジスタ21に記憶される。そして、時刻tbでノイズによる立ち下がりエッジが発生すると、その時刻tbでのタイマ値(Cb)が、立ち下がりエッジキャプチャレジスタ31に記憶される。
しかし、時刻tbの立ち下がりエッジに伴う割り込み処理においては、両キャプチャレジスタ21,31から読み込んだ値が無効になり、誤ったデューティ比を算出してしまうことが防止される。その回の割り込み処理において、S250では、S230で算出した周期(即ち、図8において、時刻t1から時刻tbまでの時間T1に相当する値)が正常範囲内ではないと判定することとなり、S260とS270がスキップされるからである。
また、時刻tbの立ち下がりエッジに伴う割り込み処理においても、S280により、立ち上がりエッジキャプチャイネーブルレジスタ25の値を“0”にするため、その後の時刻t2にて、PWM信号に正規の立ち上がりエッジが発生すると、その時刻t2でのタイマ値(C2)が立ち上がりエッジキャプチャレジスタ21に更新記憶される。
そして、その後の時刻t3にて、PWM信号に正規の立ち下がりエッジが発生すると、その時刻t3でのタイマ値(C3)が立ち下がりエッジキャプチャレジスタ31に更新記憶される。
更に、時刻t3の立ち下がりエッジに伴う割り込み処理が開始される時点において、RAM7内の周期エッジ前回発生時刻は、ノイズによる立ち下がりエッジが発生した時刻tbでのタイマ値(Cb)ではなく、前回の正規の立ち下がりエッジが発生した時刻t1でのタイマ値(C1)になっている。時刻tbの立ち下がりエッジに伴う割り込み処理においては、デューティ比を算出するS260だけでなく、周期エッジ前回発生時刻を更新するS270もスキップされているからである。
よって、時刻t3の立ち下がりエッジに伴う割り込み処理が実行されれば、その回の割り込み処理により、正しい周期(即ち、図8において、時刻t1から時刻tbまでの時間T1と、時刻tbから時刻t3までの時間T2とを加算した時間(=T1+T2)に相当する値)と、正しいパルス幅(即ち、図8において、時刻t1から時刻t2までの時間Wに相当する値)とが算出され、延いては、正しいデューティ比(図8における「W/(T1+T2」)が算出されることとなる。
次に、図9は、PWM信号にノイズが乗った場合の動作を表す第4のタイムチャートであり、詳しくは、PWM信号に正規の立ち上がりエッジが発生してから次の正規の立ち下がりエッジが発生するまでの反パルス幅期間(本実施形態ではハイレベル期間)中に、ノイズによって、立ち下がりエッジと立ち上がりエッジとがその順に発生した場合の動作を表すタイムチャートである。
図9に示すように、図5と同じ時刻t2から時刻t3までの反パルス幅期間(ハイレベル期間)において、時刻tcでPWM信号にノイズによる不要な立ち下がりエッジが発生し、その時刻tcの立ち下がりエッジに伴う割り込み処理が開始されるよりも前の時刻tdで、PWM信号にノイズによる不要な立ち上がりエッジが発生したとする。
この場合、時刻tcでは、既に、立ち上がりエッジキャプチャレジスタ21には正規の立ち上がりエッジが発生した時刻t2でのタイマ値(C2)が記憶されていると共に、立ち上がりエッジキャプチャイネーブルレジスタ25の値が“1”になっている。
このため、時刻tcの立ち下がりエッジに伴う割り込み処理が開始される前の時刻tdでノイズによる立ち上がりエッジが発生しても、立ち上がりエッジキャプチャレジスタ21の値は更新されずにタイマ値(C2)のままである。
また、時刻tcでノイズによる立ち下がりエッジが発生すると、その時刻tcでのタイマ値(Cc)が、立ち下がりエッジキャプチャレジスタ31に更新記憶されるが、その時刻tcの立ち下がりエッジに伴う割り込み処理において、S250では、S230で算出した周期(即ち、図9において、時刻t1から時刻tcまでの時間T1に相当する値)が正常範囲内ではないと判定することとなり、S260とS270がスキップされる。よって、両キャプチャレジスタ21,31から読み込んだ値が無効になり、誤ったデューティ比を算出してしまうことが防止される。
そして、その後の時刻t3にて、PWM信号に正規の立ち下がりエッジが発生すると、その時刻t3でのタイマ値(C3)が立ち下がりエッジキャプチャレジスタ31に更新記憶される。また、その時点において、立ち上がりエッジキャプチャレジスタ21の値は、時刻t2でのタイマ値(C2)のままになっている。
更に、時刻t3の立ち下がりエッジに伴う割り込み処理が開始される時点において、RAM7内の周期エッジ前回発生時刻は、ノイズによる立ち下がりエッジが発生した時刻tcでのタイマ値(Cc)ではなく、前回の正規の立ち下がりエッジが発生した時刻t1でのタイマ値(C1)になっている。前述したように、時刻tcの立ち下がりエッジに伴う割り込み処理においては、S270がスキップされているからである。
よって、時刻t3の立ち下がりエッジに伴う割り込み処理が実行されれば、その回の割り込み処理により、正しい周期(即ち、図9において、時刻t1から時刻tcまでの時間T1と、時刻tcから時刻t3までの時間T2とを加算した時間(=T1+T2)に相当する値)と、正しいパルス幅(即ち、図9において、時刻t1から時刻t2までの時間Wに相当する値)とが算出され、延いては、正しいデューティ比(図9における「W/(T1+T2」)が算出されることとなる。
一方、前述した図6の例において、時刻t5の立ち下がりエッジに伴う割り込み処理(図6において一番右側に示している割り込み処理)では、S210にて、立ち下がりエッジキャプチャレジスタ31から時刻t5でのタイマ値(C5)を読み込むこととなり、S230では、時刻t3から時刻t5までの時間T2に相当するフリーランニングタイマのカウント数(=C5−C3)を、周期として算出することとなるが、S250では、そのS230で算出した周期(時間T2に相当する値)が正常範囲内ではないと判定することとなり、S260とS270がスキップされる。
つまり、図6の例において、時刻t5の立ち下がりエッジに伴う割り込み処理では、図8における時刻tbの立ち下がりエッジに伴う割り込み処理と同様の処理結果となる。よって、その後、PWM信号に正規の立ち上がりエッジが発生してから正規の立ち下がりエッジが発生すれば、その正規の立ち下がりエッジに伴う割り込み処理により、正しい周期、パルス幅及びデューティ比が算出されることとなる。
また同様に、前述した図7の例においても、時刻t5の立ち下がりエッジに伴う割り込み処理(図7において一番右側に示している割り込み処理)では、S210にて、立ち下がりエッジキャプチャレジスタ31から時刻t5でのタイマ値(C5)を読み込むこととなる。そして、その回の割り込み処理において、S230で周期を算出する際には、周期エッジ前回発生時刻の値が、前回の割り込み処理(即ち、時刻t3の立ち下がりエッジに伴う割り込み処理)のS270により時刻t5でのタイマ値(C5)に設定されているため、0(=C5−C5)を周期として算出することとなり、S250では、そのS230で算出した周期(=0)が正常範囲内ではないと判定することとなる。よって、S260とS270がスキップされる。
このため、図7の例において、時刻t5の立ち下がりエッジに伴う割り込み処理でも、図8における時刻tbの立ち下がりエッジに伴う割り込み処理と同様の処理結果となる。よって、その後、PWM信号に正規の立ち上がりエッジが発生してから正規の立ち下がりエッジが発生すれば、その正規の立ち下がりエッジに伴う割り込み処理により、正しい周期、パルス幅及びデューティ比が算出されることとなる。
以上のようなマイコン1によれば、立ち上がりエッジキャプチャモードレジスタ23に“1”を書き込めば、入力信号の立ち上がりエッジについて、タイマユニット9での処理形態をワンショットモードに設定することができ、また、立ち下がりエッジキャプチャモードレジスタ33に“1”を書き込めば、入力信号の立ち下がりエッジについて、タイマユニット9での処理形態をワンショットモードに設定することができる。
そして、例えば、立ち上がりエッジについてワンショットモードに設定すれば、任意のモニタ開始時からCPU3が立ち上がりエッジキャプチャレジスタ21の値を読み込む処理を行う時までのモニタ期間において、入力信号に立ち上がりエッジが複数回発生したとしても、立ち上がりエッジが最初に発生した時の時刻情報としてのタイマ値をCPU3に取得させることができる。
そして更に、CPU3が図3の初期化処理と図4の割り込み処理を行うことで、PWM信号の周期、パルス幅及びデューティ比を算出することができると共に、PWM信号にノイズが乗った場合に誤った算出結果を出してしてしまうことを回避することができる。
尚、前述したマイコン1の使用例(PWM信号のデューティ比を算出するための使用例)では、図4の割り込み処理におけるS220で立ち上がりエッジキャプチャレジスタ21の値を読み込んだ時が、立ち上がりエッジについての前回のモニタ期間の終了時であり、次回のモニタ期間の開始時(モニタ開始時点)にも相当するが、モニタ開始時点については、厳密には、S280で立ち上がりエッジキャプチャイネーブルレジスタ25に“0”を書き込んだ時となる。
一方、上記実施形態のマイコン1では、立ち上がりエッジキャプチャレジスタ21と、立ち下がりエッジキャプチャレジスタ31とが、時刻記憶レジスタの一例に相当している。
そして、立ち上がりエッジを有効エッジとする立ち上がりエッジキャプチャレジスタ21については、動作モードがワンショットモードに設定された立ち上がりエッジキャプチャ制御回路27と、立ち上がりエッジキャプチャイネーブルレジスタ25とが、更新制御手段の一例に相当しており、CPU3が立ち上がりエッジキャプチャイネーブルレジスタ25に“0”を書き込む信号が、許可信号の一例に相当している。
同様に、立ち下がりエッジを有効エッジとする立ち下がりエッジキャプチャレジスタ31については、動作モードがワンショットモードに設定された立ち下がりエッジキャプチャ制御回路37と、立ち下がりエッジキャプチャイネーブルレジスタ35とが、更新制御手段の一例に相当しており、CPU3が立ち下がりエッジキャプチャイネーブルレジスタ35に“0”を書き込む信号が、許可信号の一例に相当している。
また、マイコン1の使用例においては、PMW信号の立ち下がりエッジ(周期エッジ)が、基準エッジの一例に相当し、PMW信号の立ち上がりエッジ(非周期エッジ)が、非基準エッジの一例に相当し、立ち上がりエッジキャプチャレジスタ21が、第1の時刻記憶レジスタの一例に相当し、立ち下がりエッジキャプチャレジスタ31が、第2の時刻記憶レジスタの一例に相当し、割り込み要求信号生成部41が、割り込み発生手段の一例に相当し、RAM7が、メモリの一例に相当している。そして、図4のS220が、第1の処理の一例に相当し、図4のS210が、第2の処理の一例に相当し、図4のS230が、第3の処理の一例に相当し、周期エッジ前回発生時刻が、基準エッジ前回発生時刻情報の一例に相当し、図4のS240が、第4の処理の一例に相当し、図4のS270が、第5の処理の一例に相当し、図4のS280が、第6の処理の一例に相当し、図4のS260が、第7の処理の一例に相当し、図4のS250が、第8の処理の一例に相当している。
以上、本発明の一実施形態について説明したが、本発明はこうした実施形態に何等限定されるものではなく、本発明の要旨を逸脱しない範囲において、種々なる態様で実施し得ることは勿論である。
例えば、変形例として、図3のS130では、立ち下がりエッジキャプチャモードレジスタ33に“1”を書き込むことにより、立ち下がりエッジについても、タイマユニット9での処理形態をワンショットモードに設定し(即ち、立ち下がりエッジキャプチャ制御回路37の動作モードをワンショットモードに設定し)、図4のS280では、立ち上がりエッジキャプチャイネーブルレジスタ35だけでなく、立ち下がりエッジキャプチャイネーブルレジスタ25にも“0”を書き込むように変形しても良い。そして、このように変形しても、図6〜図9を用いて説明した効果と同じ効果が得られる。
また、立ち上がりエッジと立ち下がりエッジとの各々について、タイマユニット9での処理形態は、ワンショットモードに固定されていても良い。
また、CPU3に図4の割り込み処理を実行させてPWM信号のデューティ比を算出する使用例の場合、立ち上がりエッジについては、タイマユニット9での処理形態がワンショットモードに固定されており、立ち下がりエッジについては、タイマユニット9での処理形態がノーマルモードに固定されていても良い。
また逆に、PWM信号の周期エッジが立ち上がりエッジであるならば、立ち上がりエッジについては、タイマユニット9での処理形態がノーマルモードに固定されており、立ち下がりエッジについては、タイマユニット9での処理形態がワンショットモードに固定されていても良い。
1…マイコン(マイクロコンピュータ)、3…CPU、5…ROM、7…RAM、9…タイマユニット、11…バス、13…割り込みコントローラ、15…エッジ検出ポート、17…端子、19…フリーランニングタイマ、21…立ち上がりエッジキャプチャレジスタ、23…立ち上がりエッジキャプチャモードレジスタ、25…立ち上がりエッジキャプチャイネーブルレジスタ、27…立ち上がりエッジキャプチャ制御回路、31…立ち下がりエッジキャプチャレジスタ、33…立ち下がりエッジキャプチャモードレジスタ、35…立ち下がりエッジキャプチャイネーブルレジスタ、37…立ち下がりエッジキャプチャ制御回路、41…割り込み要求信号生成部、43…割り込み要求有効エッジ設定レジスタ

Claims (5)

  1. 入力信号に特定方向のエッジである有効エッジが発生すると、その時の時刻を示す時刻情報を記憶する時刻記憶レジスタと、プログラムを実行するCPUと、を有したマイクロコンピュータであって、
    前記時刻記憶レジスタが前記時刻情報を記憶すると、前記CPUから出力される許可信号を受けるまでは、前記時刻記憶レジスタが前記時刻情報を更新して記憶するのを禁止する更新制御手段を備えていること、
    特徴とするマイクロコンピュータ。
  2. 請求項1に記載のマイクロコンピュータにおいて、
    前記時刻記憶レジスタを、第1の時刻記憶レジスタとして備えると共に、
    前記入力信号は、立ち上がりエッジと立ち下がりエッジとのうちの一方である基準エッジが複数回発生する信号であり、
    前記第1の時刻記憶レジスタは、前記入力信号に、前記有効エッジとして、前記基準エッジとは反対方向の非基準エッジが発生すると、その時の時刻を示す時刻情報を記憶するようになっており、
    更に当該マイクロコンピュータは、
    前記入力信号に前記基準エッジが発生すると、その時の時刻を示す時刻情報を記憶する第2の時刻記憶レジスタと、
    前記入力信号に前記基準エッジが発生すると、割り込み要求を発生する割り込み発生手段とを備え、
    前記CPUは、前記割り込み要求が発生すると実行を開始する割り込み処理において、
    前記第1の時刻記憶レジスタに記憶されている時刻情報を読み込む第1の処理と、
    前記第2の時刻記憶レジスタに記憶されている時刻情報を読み込む第2の処理と、
    前記第2の処理で読み込んだ時刻情報の値と、当該割り込み処理を前回実行した際に前記第2の処理で読み込んでメモリに記憶しておいた時刻情報である基準エッジ前回発生時刻情報の値との差分から、前記入力信号に前記基準エッジが前回発生してから今回発生するまでの時間である1周期時間を算出する第3の処理と、
    前記第1の処理で読み込んだ時刻情報の値と、前記基準エッジ前回発生時刻情報の値との差分から、前記入力信号に前記基準エッジが前回発生してから前記非基準エッジが発生するまでの時間であるパルス幅時間を算出する第4の処理と、を行うと共に、
    前記第3の処理と前記第4の処理よりも後に、前記第2の処理で読み込んだ時刻情報を前記メモリに新たな前記基準エッジ前回発生時刻情報として更新記憶する第5の処理を行い、
    更に前記第1の処理よりも後に、前記更新制御手段に前記許可信号を与えて前記第1の時刻記憶レジスタが前記時刻情報を更新して記憶するのを許可する第6の処理を行うこと、
    を特徴とするマイクロコンピュータ。
  3. 請求項2に記載のマイクロコンピュータにおいて、
    前記入力信号は、前記基準エッジの発生周期が一定のPWM信号であり、
    前記CPUは、前記割り込み処理において、前記第3の処理で算出した前記1周期時間と前記第4の処理で算出した前記パルス幅時間とから前記PWM信号のデューティ比を算出する第7の処理を行うこと、
    を特徴とするマイクロコンピュータ。
  4. 請求項3に記載のマイクロコンピュータにおいて、
    前記CPUは、前記割り込み処理において、前記第3の処理で算出した前記1周期時間が所定の正常範囲内であるか否かを判定する第8の処理を行うと共に、該第8の処理により前記1周期時間が前記正常範囲内ではないと判定した場合には、前記第7の処理をスキップすること、
    を特徴とするマイクロコンピュータ。
  5. 請求項4に記載のマイクロコンピュータにおいて、
    前記CPUは、前記割り込み処理において、前記第8の処理により前記1周期時間が前記正常範囲内ではないと判定した場合には、前記第5の処理もスキップすること、
    を特徴とするマイクロコンピュータ。
JP2011221121A 2011-10-05 2011-10-05 マイクロコンピュータ Active JP5652367B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2011221121A JP5652367B2 (ja) 2011-10-05 2011-10-05 マイクロコンピュータ

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2011221121A JP5652367B2 (ja) 2011-10-05 2011-10-05 マイクロコンピュータ

Publications (2)

Publication Number Publication Date
JP2013080432A true JP2013080432A (ja) 2013-05-02
JP5652367B2 JP5652367B2 (ja) 2015-01-14

Family

ID=48526743

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2011221121A Active JP5652367B2 (ja) 2011-10-05 2011-10-05 マイクロコンピュータ

Country Status (1)

Country Link
JP (1) JP5652367B2 (ja)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6424170A (en) * 1987-07-15 1989-01-26 Hitachi Ltd Combustion control circuit of internal combustion engine
EP0592165A2 (en) * 1992-10-03 1994-04-13 Motorola, Inc. Pulse generation/sensing arrangement for use in a microprocessor system
JP2005332097A (ja) * 2004-05-19 2005-12-02 Oki Electric Ind Co Ltd マイクロコンピュータ
JP2009121397A (ja) * 2007-11-16 2009-06-04 Mitsubishi Electric Corp 回転体の位置検出方法及びその装置、並びに内燃機関の制御装置

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6424170A (en) * 1987-07-15 1989-01-26 Hitachi Ltd Combustion control circuit of internal combustion engine
EP0592165A2 (en) * 1992-10-03 1994-04-13 Motorola, Inc. Pulse generation/sensing arrangement for use in a microprocessor system
JP2005332097A (ja) * 2004-05-19 2005-12-02 Oki Electric Ind Co Ltd マイクロコンピュータ
JP2009121397A (ja) * 2007-11-16 2009-06-04 Mitsubishi Electric Corp 回転体の位置検出方法及びその装置、並びに内燃機関の制御装置

Also Published As

Publication number Publication date
JP5652367B2 (ja) 2015-01-14

Similar Documents

Publication Publication Date Title
JP5739290B2 (ja) 電子制御装置
JP2006338605A (ja) プログラム異常監視方法及びプログラム異常監視装置
JP5531679B2 (ja) Smt対応cpuを有する情報処理装置の消費電力低減方法、消費電力低減装置及び消費電力低減プログラム
JP5962697B2 (ja) 電子制御装置
JP5652367B2 (ja) マイクロコンピュータ
JP6009518B2 (ja) 電子制御装置
JP7435182B2 (ja) 電子制御装置
JP5982845B2 (ja) トレース制御装置及びトレース制御方法
JP6172040B2 (ja) 電子制御装置
JP2016162330A (ja) 電子制御装置
JP5157697B2 (ja) 電子制御装置
JP5987723B2 (ja) 通信用スレーブ
JP5541201B2 (ja) プログラム実行状況監視装置、および実行状況監視プログラム
JP7413749B2 (ja) 監視装置および電子制御装置
JP6447442B2 (ja) 電子制御装置
JP2019080242A (ja) データ取得方法およびデータ取得装置
JP2015121953A (ja) マイクロコンピュータ及び電子制御装置
JP6130735B2 (ja) マイクロコントローラ及び誤り検出方法
JP5942904B2 (ja) 処理装置
JP2016177331A (ja) 電子制御装置
JP2009294823A (ja) データ処理装置およびデータ処理方法
JP2016184366A (ja) タイマ補正装置、タイマ補正方法及びタイマ補正プログラム
CN113030567A (zh) 一种基于单片机的测频方法及装置
KR20130060984A (ko) 메모리의 스택 관리 방법
JP5362856B2 (ja) エラー発生指示回路、記憶装置、情報処理装置及びエラー発生指示回路の制御方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20131118

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20140822

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20140902

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20140929

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20141103

R151 Written notification of patent or utility model registration

Ref document number: 5652367

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250