メディア

第9回 マイコン・システムの構成 〜現実にマイコンを動かすために必要なさまざまな要素を知る〜宮崎 仁のマイコン基礎の基礎

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

 マイコン・システムでは、CPUバスを用いてCPU、メモリ、I/Oが互いに連携し、タイミングを合わせてデータをやり取りします。また、割り込みやDMAなど、より高度なしくみも備わっています。今回は、それらの要素について説明します。

クロックとリセット

 ここでは、CPU自身の動作に必要なハードウェア信号と、CPUとメモリやI/Oの間でデータをやり取りするために必要なハードウェア信号について説明します。

 CPU自身の動作に必要な基本的なハードウェア信号としては、CPUクロックとリセットがあります。

 マイコン・システムでは、クロックに従って動作する回路がたくさん使われており、さまざまな周波数のクロックが使われています。中でも最も重要なのは、CPUの内部動作の基本タイミングを決めるCPUクロックです。

 CPUは、CPUクロックに従って、主記憶から1個ずつ命令を取り出し(フェッチ)、解読して実行します。同じCPUで同じプログラムを実行したとき、クロックが高速なら実行も高速ですし、クロックが低速なら実行も低速になります。ただし、クロックは高速なほど良いわけではありません。現実のCPUは一般に高速なほど価格も高くなりますし、消費電力も大きくなります。プログラムの量と必要な実行時間に合わせて、クロックを最適に選びます。パソコンでは1GHzを超えるクロックが一般的ですが、組み込みシステムでは数十〜数百MHzが主流です。特に省電力を重視するシステムでは、もっとずっと低速の数十〜数百kHzで動作させることも珍しくありません。

 なお、CPUの機種が違えば命令の機能や実行に必要なクロック数も違うので、クロック速度だけで性能を比較することはできません。

 マイコン・システムの電源をオンにしたとき、システムを構成する各回路はいっせいに動作を始めるわけではなくて、低い電圧でも動作可能な回路や、電源電圧が早く立ち上がってきた回路から、勝手に動作を始めてしまいます。それではシステムは正しく動作してくれません。

 システムの電源電圧を監視して、全部の回路が動作可能になったときいっせいに回路動作をスタートさせるために用いられるのが、パワーオンリセット回路です。これがきちんと働いていれば、マイコン・システムの電源をオンにすれば、いつでも同じようにシステムの動作が始まります。

 また、システムが暴走して修正ができなくなったときには、リセットボタンを押せばシステムを正しい初期状態から再起動することができます。

CPUバス

 CPUとメモリ、I/Oの間のデータのやり取りは、CPUバスと呼ばれる多数の信号線の束を用いて行います(図1)。このCPUバスには、CPUからメモリやI/Oに対して相手先アドレスを指定するためのアドレスバス、CPUとメモリやI/Oの間で実際にデータをやり取りするためのデータバス、CPUからメモリやI/Oに対してデータの方向やタイミングを指定するための各種の制御信号が含まれます。

図1 CPUバス
アドレスバス、データバス、制御信号をまとめてCPUバスと呼ぶ。CPUとメモリやI/Oとのデータのやり取りは、すべてCPUバスを用いて行う。マイコンLSIの内蔵メモリ、I/Oは内部バスに接続されていて、外からは見えない。外付けメモリ、I/Oを使用するには、外部バスを使用する必要がある。シングルチップ・マイコンの中には、入出力ピン数の関係で、外部バスを使用できないものもある。

 パソコンのように、CPU、メモリ、I/Oをそれぞれ個別のLSIとして組み合わせてシステムを構成する場合は、プリント基板上にCPUバスの配線を作る必要があります。

 組み込み用や制御用のマイコンでは、CPU、メモリ、I/Oを1個のLSIに内蔵したシングルチップ・マイコン(日本ではワンチップ・マイコンと呼ぶ人も多い)が主に用いられています。この場合はCPUバスはマイコンLSIの内部にあり、外から見えません。

割り込みとDMA

 マイコンのプログラムは、CPUクロックに従って1ステップずつ次々に実行されていきます。一般には、外界の時間の流れよりもはるかに高速に実行が進んでいきます。それによって、複雑で多量のデータ処理をきわめて短時間に終了させることができます。

 しかし、実際のマイコン・システムでは、外界の時間の流れ、特に人間のスピードに合わせて処理を行う場合も数多くあります。たとえば、人間のスイッチ操作を読み取るためには、マイコンはかなり長い時間にわたって操作終了を待つ必要があります。また、人間が視認できる速さで1文字ずつ表示していくには、人間の感覚のスピードに合わせて十分な待ち時間を入れながら表示を行う必要があります。

 これらの、外界の時間に合わせてプログラムを実行したい場合にとても役立つのが割り込みです(図2表1)。

図2 割り込みの概要
CPU外部から割り込み要求INTが入ると、そのとき実行中のプログラムを中断して割り込みハンドラ(割り込みサービスルーチンとも呼ぶ)を実行し、終了後はプログラムの実行を再開する。ほとんどのマイコンは複数の割り込み要求をもち、それぞれに対応して複数の割り込みサービスルーチンを起動できる。一般に、割り込み要求と起動される割り込みハンドラを対応付けるために、割り込みベクタテーブルという対応表を用いるマイコンが多い。
割り込み要求INTは、マイコンの内蔵I/Oや外付けI/Oが出力することが多い。たとえば、タイマを用いて一定時間が経過したら割り込みが発生するような使い方(タイマ割り込み)や、ビット入出力の入力信号の状態が変化したら割り込みが発生するような使い方が代表的。
その他に、システムエラーなどの障害時に主に用いられるNMI(ノンマスカブル割り込み)もある。また、リセットも割り込みの1種として扱われることが多い。
表1 TIの超低消費電力マイコンMSP430™ファミリの割り込み機能の例
  割り込み源
  デジタル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
MSP430ファミリは、デジタルI/O(ビット入出力)を割り込み要求ピンとして使用できる。また、カウンタ/タイマやシリアル入出力をはじめとする内蔵I/Oも豊富な割り込み機能をもっている。

 割り込みは、外部から特別な割り込み入力信号(INT)が入力されると、そのとき実行していたプログラムを中断して、用意しておいた別のプログラム(割り込みサービスルーチン)を実行するというしくみです。割り込みサービスルーチンの実行を終わったら、また元のプログラムに戻って実行を続けます。

 多くのマイコンは、複数の割り込み入力をもち、それに対応して複数の割り込みサービスルーチンを用いることができます。割り込みを活用すれば、外界の時間の流れを待つことなく、必要なタイミングで必要な割り込みサービスルーチンを呼び出せます。

 DMA(Direct Memory Access)は、割り込みとはまた違った方法で、外界の時間に合わせてシステムを動作させます(図3)。

図3 DMAの概要
メモリやI/Oの間で単純なデータ転送を行う場合、CPUが命令を実行して転送を制御すると時間もかかるしプログラムサイズが大きくなる。そこで、CPUに代わって、専用のDMAコントローラがCPUバスを一時借用してデータ転送を行う。直接メモリアクセス(Direct Memory Access)を略してDMAと呼ぶ。

 メモリと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 アカウントが必要です。
ダウンロード



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.