メディア

第13回 マイコンのタイマって何? 何ができるの?宮崎 仁のQ&Aでよく分かるマイコン基礎の基礎

» 2015年09月25日 00時00分 公開
[PR/EDN Japan]
PR

タイマとはどんなもの? 何をするもの?

Q:マイコンには「タイマ」が入っていると聞きました。これは、一体何をするものですか?

A:私たちが日常使っているタイマ、例えばキッチン・タイマと基本的な動作は変わりません。ある時間tをセットしてタイマをスタートすると、時間tが経過したときに通知を出します。日常使っているタイマはセットするのも通知を受けるのも人間ですが、マイコン内蔵のタイマはセットするのも通知を受けるのもマイコンだというところに違いがあります。

 例えば、日常のタイマは人間の時間感覚で使いますから、大抵は分単位とか時間単位でセットします。しかし、マイコンの内部は高速に動作していますから、秒単位、ミリ秒単位、あるいはもっと短い時間をセットすることもあります。

 マイコンの場合、所定のレジスタに値を書き込むことによって時間tをセットします。タイマをスタートするには、別のレジスタにスタート・コマンドを書き込む方法や、外部入力にトリガ信号が来たらスタートする方法があります。

 時間の経過の通知も、所定のレジスタのステータスを参照する方法の他、外部出力にパルス信号を出力する方法などがあります(図1)。タイマ出力にLEDやブザーを接続すれば、光や音で人間に通知することもできます。

photo 図1 トリガ入力でスタートし、タイマ出力にパルスを発生するタイマの例

 さらに、マイコンには「割り込み」という便利な機能があるので、タイマと割り込みを組み合わせて使うことが多いですね。


Q:割り込みというのは、どんな機能ですか?

A:プログラムを実行中のマイコンに、一時的に別のプログラムを実行させる機能です。皆さんが仕事をしている時に電話がかかってきたら、電話に応答後、また元の仕事に戻りますね。割り込みではこれと同じような使い方ができます。電話に応答するというのが、割り込みで実行する別のプログラムに相当します。

 タイマとの組み合わせの例で言えば、仕事中にカップラーメンにお湯を入れて、3分たったら食べたいというときに、タイマも割り込みもなかったら、そのままずっと仕事を続けてしまってラーメンがのびてしまうでしょう。タイマを3分にセットして、3分経過後に割り込みをかけて「ラーメンを食べる」という別のプログラムを実行すれば、ラーメンを食べ損ねる心配はありません。


Q:人間だったら、好きなときにラーメンを食べればよいと思いますが、マイコンはそんなに融通が利かないのですね。

A:そうです。マイコンは、事前に用意したプログラムを順番通り実行する機能しかもっていません。電話に応答するとかラーメンを食べるとか、別の仕事を任せるためには、それもプログラムとして事前に用意しておくことが必要です。この用意した別のプログラムを特定のタイミングで呼び出して実行させる、というのが割り込みの機能です。

 電話がかかってくるなど、外部からの信号で割り込みを発生させるものを外部割り込み(図2)と呼び、タイマによって決まったタイミングで割り込みを発生させるものをタイマ割り込みと呼びます(図3)。

photo 図2 外部割り込みの動作
photo 図3 タイマ割り込みの動作

 マイコンの場合、時間tをセットして1回だけタイマ割り込みをかける単発のタイマ割り込みの他、同じ時間間隔tで繰り返し定期的に割り込みをかける使い方も多いのです。こういうものは、「インターバル・タイマ」と呼びます。例えば、スイッチ入力を10ミリ秒間隔で繰り返し読み出すようなインターバル・タイマが使われています。

タイマの中はどうなっているの?

Q:タイマの用途や働きは分かってきました。このタイマというのは、中はどんな構造になっているのですか?

A:タイマを構成するのは、「クロック」と「カウンタ」です。クロックとは、一定周期でロー、ハイ、ロー、ハイ……と繰り返し出力を変化させ続ける回路です。カウンタとは、入力信号として与えられたパルスの数を数えるための回路です。

 一定の時間間隔で数をカウントしていけば、経過時間に比例したカウント値が得られます。すなわち、タイマとして使用することができます。

 マイコンのI/O機能の中では、入力のパルス数を数えるカウンタ機能と、時間を測るタイマ機能をとてもよく使います。これらを一まとめにして、「カウンタ/タイマ」と呼ぶこともあります。単にタイマと呼ばれているものでも、大抵はカウンタ機能を持っています。

 カウンタでどれぐらい大きな数が数えることができるのかは、カウンタのビット数で決まります。8ビット・カウンタなら最大255、16ビット・カウンタなら最大65535です。

 タイマでどれぐらい長い時間を作ることができるかは、カウンタの最大カウント数×クロック周期で計算できます。大抵のマイコンでは、システム動作用の高速クロックをタイマ用のクロックにも使います。例えば、10MHzクロックの16ビット・タイマだとクロック周期は0.1μsなので、最長6553.5μs(=6.5535ms)しか得られません。

 これでは不便なので、大抵のマイコンはタイマ用のクロックを分周して低速にするための分周回路(プリスケーラ)をもっています(表1)。

photo 表1 テキサス・インスツルメンツのMSP430™ファミリのタイマ機能の例

【関連リンク】

※MSP430、MSP432はTexas Instruments Incorporatedの商標です。その他すべての商標および登録商標はそれぞれの所有者に帰属します。


Copyright © ITmedia, Inc. All Rights Reserved.


提供:日本テキサス・インスツルメンツ株式会社
アイティメディア営業企画/制作:EDN Japan 編集部/掲載内容有効期限:2016年3月31日

設計に役立つヒント集

宮崎 仁のQ&Aでよく分かるマイコン基礎の基礎:
第24回 割り込みっていろいろあるのですか?どんな種類があるか教えてください。

今回は、外部割り込み、内部割り込み、ソフトウェア割り込みについて詳しく解説しています
全文を読む


電源IC選択のヒント集
電源IC 使用時の注意点をわかりやすく説明しているほか、使用時に発生する可能性のあるさまざまなトラブルとその対処法についても紹介しています。ぜひご利用ください。ダウンロードには myTI アカウントが必要です。
Part 1をダウンロード
Part 2をダウンロード


アナログ回路設計式一覧ポケット・ガイド
日本語版 PDF

英語版で高い評価を受けてきたポケット・ガイドの日本語版が完成しました。基板レベルやシステム・レベルの回路設計でよく使われるアナログ設計式を紹介しています。ダウンロードには myTI アカウントが必要です。
ダウンロード



facebook & twitter

製品情報、セミナーや展示会などのイベント情報をお知らせしています。

RSSフィード

公式SNS

EDN 海外ネットワーク

All material on this site Copyright © ITmedia, Inc. All Rights Reserved.
This site contains articles under license from AspenCore LLC.