【問題9】 アナログをデジタルに変換する「AD変換」“組み込み力”向上! ETEC対策ドリル(9)

タイマの概要・種類について詳しく解説する。また、アナログデータをデジタルデータに変換する「AD変換」に関する演習を出題!!

» 2010年03月17日 00時00分 公開
[近森満(株式会社サートプロ 代表取締役社長/JASA ETEC運営事務局),@IT MONOist]

【問題8】の解答

 前回の宿題【問題8】は、「ウォッチドッグタイマ(WDT:Watchdog Timer)」に関する問題でした。

 組み込みソフトウェアでは、周期的に処理を実行したり、指定した時間が経過した後に処理を実行したりする場合にタイマを利用します。

 今回も問題の解答に続いて、タイマの概要について解説します。この機会にしっかりと理解しておきましょう。

 それでは、解答を発表します!


問題8

ウォッチドッグタイマの説明として、正しいものはどれか?

ア.年月日、曜日、時刻を管理するタイマ。
イ.指定した時間が経過したことを通知するタイマ。
ウ.MPUが正常に稼働しているかどうかを監視するタイマ。
エ.一定の周期ごとに割り込みを発生させるタイマ。

答え. (←クリック)


【問題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】

問題9

AD変換で行われる標本化、量子化、符号化に関する説明として、正しいものはどれか?

ア.
標本化においてアナログ信号の振幅値をサンプリングする周期を標本化周波数という。
イ.
標本化周波数は、標本化定理に基づき、
   アナログ信号の最高周波数の2分の1以下に設定する必要がある。
ウ.
量子化誤差は、量子化の際のステップ数を増やすことで小さくできる。
エ.
符号化では、標本化により採取した値に「0」と「1」で表される符号を割り当てて、
   デジタルデータに変換する。

答え. 解答はこちら(←クリック)


 いかがでしたでしょうか? タイマの基本について理解できましたか。次回は、アナログデータをデジタルデータに変換する「AD変換」について解説します。お楽しみに!(次回に続く)

関連リンク:
組込みソフトウェア技術研修講座イーラーニング(サンプルIDプレゼント中)
http://www.certpro.jp/elearning.html
組込みソフトウェア技術者試験クラス2試験対策問題集(ETEC-SW2)(サンプルIDプレゼント中)
http://www.certpro.jp/etecsw2test.html

筆者プロフィール
  株式会社サートプロ 代表取締役社長
社団法人 組込みシステム技術協会 ETEC運営事務局
近森 満(ちかもり みつる)

大手電気メーカー、外資系IT教育ベンダ、オープンソース系技術者資格認定団体などを経て、2006年より組み込みシステム分野の人材育成・教育支援を行う株式会社サートプロを設立する。現在は、ETEC運営事務局としてJASAの組込みソフトウェア技術者試験の普及・啓蒙(けいもう)活動のほか、組み込み人材育成と教育支援事業を行う。

Copyright © ITmedia, Inc. All Rights Reserved.