タイマの概要・種類について詳しく解説する。また、アナログデータをデジタルデータに変換する「AD変換」に関する演習を出題!!
前回の宿題【問題8】は、「ウォッチドッグタイマ(WDT:Watchdog Timer)」に関する問題でした。
組み込みソフトウェアでは、周期的に処理を実行したり、指定した時間が経過した後に処理を実行したりする場合にタイマを利用します。
今回も問題の解答に続いて、タイマの概要について解説します。この機会にしっかりと理解しておきましょう。
それでは、解答を発表します!
問題8 ウォッチドッグタイマの説明として、正しいものはどれか? 答え. ウ (←クリック) |
ウ以外の記述は、ほかのタイマの説明になります。
アは「リアルタイムクロック」、イは「ワンショットタイマ」、エは「インターバルタイマ」の説明です。
組み込みシステムでは、周期的に処理を実行したり、指定した時間が経過した後に処理を実行したりしたいときがあります。このようなときに用いる時間管理機能を実現するのが「タイマ」です。タイマは、一般に「カウンタ」をベースに構成されます。
カウンタは文字通り、入力信号をカウントする回路です。よく使われるカウンタに「バイナリカウンタ」があります。
バイナリカウンタには、フリップフロップ回路が用いられます。フリップフロップ回路は、クロックなどのパルス信号が入力されるたびに、0、1、0、1……のように「0」と「1」を反転させる回路です。例えば、4ビットのバイナリカウンタは図1のようになります。
図1 4ビットのバイナリカウンタの例 |
ビット0(最下位ビット)のフリップフロップ回路の値が「0」のときにパルス信号の入力があると、ビット0は「1」になります。次にパルス信号の入力があると、ビット0は「0」になり、さらにビット1にパルス信号を出力します。つまり、パルス信号の入力を受けたとき、2回に1回は上位ビットにそのパルス信号を伝えるということです。このような形でパルス信号の入力があるたびに、1ずつカウントアップしていきます。図2に示すように、4ビットのバイナリカウンタの場合、「0(0000)」から「15(1111)」までカウントできます。
図2 4ビットのバイナリカウンタの動作例 |
nビットのバイナリカウンタは、「0」から「2n−1」までカウントできますが、ユーザーへの表示に用いるときはカウンタ出力値が10進数である方が便利です。そのような場合、バイナリカウンタの応用形として、「10進カウンタ」を用いることができます。10進カウンタでは、バイナリカウンタを4ビット単位に区切り、カウンタの値が「1010」、つまり10進数で「10」になる瞬間に各ビットを「0」にリセットします(図3)。
図3 4ビットの10進カウンタの動作例 |
ここではごく基本的なものとして、カウントアップするバイナリカウンタの例を紹介しました。カウンタには、カウントダウンするカウンタ、16進などのn進カウンタのほか、用途に応じてさまざまなものがあります。
一定の時間ごとに処理を繰り返し実行する場合には、「インターバルタイマ」を利用します。インターバルタイマの内部では、クロック信号の入力によりカウンタが「カウントレジスタ」をカウントアップしていきます。「コンペアレジスタ」にあらかじめ設定しておいた値(処理を実行する周期)とカウントレジスタの値が等しくなると、タイマ割り込み信号などを出力し、カウントレジスタをリセットします(図4)。
図4 インターバルタイマの例 |
例えば、タイマに入力するクロック信号の周波数を10MHzとします。クロック周波数は、1秒間に何回クロック信号が発振されるかを示す単位です。つまり、この場合、クロック信号は、1秒間÷10000000回=0.0000001秒=100ナノ秒に1回入力されます。1ミリ秒ごとに処理を実行したい場合、1ミリ秒÷100ナノ秒=1000000ナノ秒÷100ナノ秒=10000回カウントすればよいことになるため、コンペアレジスタに「10000(0x2710)」を設定します。
インターバルタイマの動作は、図5のようになります。
図5 インターバルタイマの例 |
指定した時間が経過した後に1回だけ処理を実行したい場合は、「ワンショットタイマ」を利用します。ワンショットタイマは、「処理を1回だけ実行するインターバルタイマ」と考えることができます。実際、タイマにはモードの設定により、インターバルタイマとワンショットタイマのどちらとして利用するのかを切り替えられるものもあります。
「リアルタイムクロック(RTC:Real Time Clock)」は、年月日、時刻、曜日を管理するタイマです。一般的には、システムの起動時にリアルタイムクロックから日時情報を取得し、システム時刻として設定します。リアルタイムクロックは、正確な時刻を管理しなければならないため、システムの電源がオフのときでも動作するようにバックアップ電池などの別系統の電源を用意することがほとんどです。
組み込みシステムでは、MPUが正常に稼働しているかどうかを監視するためにウォッチドッグタイマを利用します。ウォッチドッグタイマは、指定された時間に達すると、MPUをリセットする割り込み信号を発生させます。そのため、周期的にウォッチドッグタイマのカウンタをクリアしないと、MPUが強制的にリセットされてしまいます。「カウンタのクリアが行われない」=「システムに何らかの異常が発生している」と見なし、異常に対処することを目的としたタイマです。
問題9 AD変換で行われる標本化、量子化、符号化に関する説明として、正しいものはどれか? 答え. 解答はこちら(←クリック) |
いかがでしたでしょうか? タイマの基本について理解できましたか。次回は、アナログデータをデジタルデータに変換する「AD変換」について解説します。お楽しみに!(次回に続く)
関連リンク: | |
組込みソフトウェア技術研修講座イーラーニング(サンプルIDプレゼント中) http://www.certpro.jp/elearning.html |
|
組込みソフトウェア技術者試験クラス2試験対策問題集(ETEC-SW2)(サンプルIDプレゼント中) http://www.certpro.jp/etecsw2test.html |
|
Copyright © ITmedia, Inc. All Rights Reserved.