マイコン・システムでは、CPUバスを用いてCPU、メモリ、I/Oが互いに連携し、タイミングを合わせてデータをやり取りします。また、割り込みやDMAなど、より高度なしくみも備わっています。今回は、それらの要素について説明します。
ここでは、CPU自身の動作に必要なハードウェア信号と、CPUとメモリやI/Oの間でデータをやり取りするために必要なハードウェア信号について説明します。
CPU自身の動作に必要な基本的なハードウェア信号としては、CPUクロックとリセットがあります。
マイコン・システムでは、クロックに従って動作する回路がたくさん使われており、さまざまな周波数のクロックが使われています。中でも最も重要なのは、CPUの内部動作の基本タイミングを決めるCPUクロックです。
CPUは、CPUクロックに従って、主記憶から1個ずつ命令を取り出し(フェッチ)、解読して実行します。同じCPUで同じプログラムを実行したとき、クロックが高速なら実行も高速ですし、クロックが低速なら実行も低速になります。ただし、クロックは高速なほど良いわけではありません。現実のCPUは一般に高速なほど価格も高くなりますし、消費電力も大きくなります。プログラムの量と必要な実行時間に合わせて、クロックを最適に選びます。パソコンでは1GHzを超えるクロックが一般的ですが、組み込みシステムでは数十〜数百MHzが主流です。特に省電力を重視するシステムでは、もっとずっと低速の数十〜数百kHzで動作させることも珍しくありません。
なお、CPUの機種が違えば命令の機能や実行に必要なクロック数も違うので、クロック速度だけで性能を比較することはできません。
マイコン・システムの電源をオンにしたとき、システムを構成する各回路はいっせいに動作を始めるわけではなくて、低い電圧でも動作可能な回路や、電源電圧が早く立ち上がってきた回路から、勝手に動作を始めてしまいます。それではシステムは正しく動作してくれません。
システムの電源電圧を監視して、全部の回路が動作可能になったときいっせいに回路動作をスタートさせるために用いられるのが、パワーオンリセット回路です。これがきちんと働いていれば、マイコン・システムの電源をオンにすれば、いつでも同じようにシステムの動作が始まります。
また、システムが暴走して修正ができなくなったときには、リセットボタンを押せばシステムを正しい初期状態から再起動することができます。
CPUとメモリ、I/Oの間のデータのやり取りは、CPUバスと呼ばれる多数の信号線の束を用いて行います(図1)。このCPUバスには、CPUからメモリやI/Oに対して相手先アドレスを指定するためのアドレスバス、CPUとメモリやI/Oの間で実際にデータをやり取りするためのデータバス、CPUからメモリやI/Oに対してデータの方向やタイミングを指定するための各種の制御信号が含まれます。
パソコンのように、CPU、メモリ、I/Oをそれぞれ個別のLSIとして組み合わせてシステムを構成する場合は、プリント基板上にCPUバスの配線を作る必要があります。
組み込み用や制御用のマイコンでは、CPU、メモリ、I/Oを1個のLSIに内蔵したシングルチップ・マイコン(日本ではワンチップ・マイコンと呼ぶ人も多い)が主に用いられています。この場合はCPUバスはマイコンLSIの内部にあり、外から見えません。
マイコンのプログラムは、CPUクロックに従って1ステップずつ次々に実行されていきます。一般には、外界の時間の流れよりもはるかに高速に実行が進んでいきます。それによって、複雑で多量のデータ処理をきわめて短時間に終了させることができます。
しかし、実際のマイコン・システムでは、外界の時間の流れ、特に人間のスピードに合わせて処理を行う場合も数多くあります。たとえば、人間のスイッチ操作を読み取るためには、マイコンはかなり長い時間にわたって操作終了を待つ必要があります。また、人間が視認できる速さで1文字ずつ表示していくには、人間の感覚のスピードに合わせて十分な待ち時間を入れながら表示を行う必要があります。
これらの、外界の時間に合わせてプログラムを実行したい場合にとても役立つのが割り込みです(図2、表1)。
割り込み源 | |||||||||
---|---|---|---|---|---|---|---|---|---|
デジタルI/O | DMA | WDT | RTC | タイマ | シリアルI/O | COMP | ADC | DAC | |
1シリーズ | P1/P2 | ○ | ○ | 〜2 | USART | ○ | ○ | ○ | |
2シリーズ | P1/P2 | ○ | ○ | 〜2 | USART | ○ | ○ | ○ | |
バリューライン | P1/P2 | ○ | ○ | 〜3 | USART | ○ | ○ | ○ | |
4シリーズ | P1/P2 | ○ | ○ | ○ | 〜2 | USART/USCI | ○ | ○ | ○ |
5シリーズ | P1/P2(+α) | ○ | ○ | ○ | 〜4 | USCI/USB | ○ | ○ | ○ |
6シリーズ | P1/P2(+α) | ○ | ○ | ○ | 〜4 | USCI/USB | ○ | ○ | ○ |
割り込みは、外部から特別な割り込み入力信号(INT)が入力されると、そのとき実行していたプログラムを中断して、用意しておいた別のプログラム(割り込みサービスルーチン)を実行するというしくみです。割り込みサービスルーチンの実行を終わったら、また元のプログラムに戻って実行を続けます。
多くのマイコンは、複数の割り込み入力をもち、それに対応して複数の割り込みサービスルーチンを用いることができます。割り込みを活用すれば、外界の時間の流れを待つことなく、必要なタイミングで必要な割り込みサービスルーチンを呼び出せます。
DMA(Direct Memory Access)は、割り込みとはまた違った方法で、外界の時間に合わせてシステムを動作させます(図3)。
メモリとI/Oの間でデータをやり取りする場合、通常はCPUがプログラムを実行して、I/Oポートからデータを読み出してメモリに書き込んだり、メモリからデータを読み出してI/Oポートにデータを書き込んだりします。しかし、メモリとI/Oのやり取りは、単にデータを右から左に転送するだけの単純機能の場合が多いので、いちいちCPU命令を実行するかわりに、専用のコントローラで実行するようにしたのがDMAです。
※MSP430はTexas Instruments Incorporatedの商標です。その他すべての商標および登録商標はそれぞれの所有者に帰属します。
TIのマイコン製品の詳細はこちら
宮崎 仁のマイコン基礎の基礎 第10回「ボード・マイコンの構成」は、7/25(木)の公開を予定しています。
Copyright © ITmedia, Inc. All Rights Reserved.
提供:日本テキサス・インスツルメンツ株式会社
アイティメディア営業企画/制作:EDN Japan 編集部/掲載内容有効期限:2014年3月31日
宮崎 仁のQ&Aでよく分かるマイコン基礎の基礎:
第24回 割り込みっていろいろあるのですか?どんな種類があるか教えてください。
今回は、外部割り込み、内部割り込み、ソフトウェア割り込みについて詳しく解説しています
●全文を読む
電源IC選択のヒント集
電源IC 使用時の注意点をわかりやすく説明しているほか、使用時に発生する可能性のあるさまざまなトラブルとその対処法についても紹介しています。ぜひご利用ください。ダウンロードには myTI アカウントが必要です。
●Part 1をダウンロード
●Part 2をダウンロード
アナログ回路設計式一覧ポケット・ガイド
日本語版 PDF
英語版で高い評価を受けてきたポケット・ガイドの日本語版が完成しました。基板レベルやシステム・レベルの回路設計でよく使われるアナログ設計式を紹介しています。ダウンロードには myTI アカウントが必要です。
●ダウンロード