マイコン内部はソフトウェア(2進データと2値論理)が支配する抽象世界ですが、外界は電磁気、光、熱、力や運動といった物理現象が支配する現実世界です。今回は、ソフトウェアと現実世界をつなぐ入出力(I/O)のしくみを解説します。
マイコンは、外部からの操作や外界の状態をデータとして取り込む入力機能(Input)と、内部のデータを外部に表示したり外界の状態を制御する出力機能(Output)をもっています。この二つを合わせて入出力(I/O)と呼びます。
マイコンのプログラムは、マイコンの外部に対して直接アクセスすることはできません。プログラムができることは、記憶場所(レジスタやメモリ)からデータを読み出し、演算などの処理を行って、また記憶場所(レジスタやメモリ)に書き込むことだけです。
そこで、図1のように、マイコンには入力や出力に使用するための特別なレジスタがいくつか用意されています。
入力データレジスタは、LSIの入力端子につながっていて、端子の電圧状態が自動的にレジスタのデータとして反映されるようになっています。出力データレジスタは、LSIの出力端子につながっていて、レジスタのデータが自動的に端子の電圧状態として反映されるようになっています。プログラムでは、入力データレジスタから汎用レジスタやメモリにデータを転送したり、汎用レジスタやメモリから出力データレジスタにデータを転送することができます。
データレジスタに対応する1組の入出力端子をポートと呼びます。ポート(port)は港のことで、データが出入りすることから名付けられたものです。
入出力ポートはデジタルデータを入出力するものと、アナログ量をもつ信号を入出力するものに大別されます。
図2に示すビット入出力、パラレル入出力、シリアル入出力などのデジタルデータの入出力は、マイコンの入出力として最も基本的なものです。マイコン内部の2進数(0/1)と、入出力端子の電圧状態(H/L)を直接対応させます。
ビット入出力は、1本の端子の電圧(H/L)をそのまま1ビットの2進数(1/0)として入力したり、1ビットの2進数(1/0)をそのまま1本の端子の電圧(H/L)として出力します。最も基本的で汎用性が高い入出力であり、GPIO(汎用I/O)とも呼ばれます。
1個のスイッチの状態(オン/オフ)をマイコンに取り込んだり、1個のLEDを点灯/消灯することができます。また、通常は任意のnビットをまとめて入力、出力することができるので、パラレル入出力と同様に用いることもできます。さらに、通常は各ビットごとに入出力の方向を切替可能で、図のように入力と出力を混在させることもできます。
パラレル入出力は、n本の端子の電圧をそのままnビットの2進数として入力したり、nビットの2進数をそのままn本の端子の電圧として出力します。ビット入出力との違いとして、タイミングパルスに同期してデータ入出力ができます。この、タイミングパルスに同期したパラレル入出力は、A/Dコンバータ、D/Aコンバータなどの周辺LSIや、プリンタなどの周辺機器のインターフェイスとして広く用いられていました。最近では、周辺LSIはSPIやI2C、周辺機器はUSBなどのシリアル入出力に置き換えられています。
シリアル入出力は、1本の端子に順次送られてくる電圧信号をnビットの2進数として入力したり、nビットの2進数を1本の端子から電圧信号として順次出力します。同じnビットのデジタルデータを入出力する場合に、パラレル入出力よりも入出力端子の数を大幅に節減できるのが大きな利点です。最近は、装置内や装置間の高速インターフェイスでもUSBやSATA、PCI Expressなどのシリアル方式が主流です。
シリアル入出力には、タイミングを取るためにクロックを使用する同期式(SPI、I2Cなど)と、クロックを使用しない調歩同期式(RS232など)があります。また、最近はUSBを装備するマイコンも増えています。
図3〜5には、カウンタ/タイマ入出力、PWM出力、A/D入力、D/A出力などアナログ量をもつ信号の入出力を示します。
カウンタ/タイマ入出力は、デジタル信号のパルス数をカウントするカウンタを内蔵しています。このカウンタで、外部イベント入力のパルスをカウントすればイベントカウンタになります。また、一定周期のクロックをカウントすることによって、アナログ量である時間幅を計測したり、タイマとして所定の時間幅を作り出すことができます。また、一定時間内のパルス数をカウントすることによって入力信号の周波数を計測したり、タイマを繰り返し動作させることで所定の周波数のクロックを生成できます。きわめて応用が広く、マイコンのもつ最も便利な機能の一つです。
さらに、定周期tのタイマと可変周期のタイマを組み合わせて、デューティx/tのパルス信号を定周期で生成することによって、PWM出力が得られます。PWM出力でパワー素子をオン/オフ駆動すれば、損失を抑えながら負荷をアナログ駆動できます。
A/D入力は、アナログ電圧信号をnビットのデジタルデータに変換して入力するものです。センサを用いて外界の状態を取り込むさまざまな測定回路に用いられます。
D/A出力は、nビットのデジタルデータをアナログ電圧信号に変換して出力します。ヒータ、ランプ、アクチュエータなどの制御回路に用いられます。
次に、実際のマイコン製品にどのような入出力が搭載されているかを見てみましょう。表1に、TIの超低消費電力マイコンMSP430™ファミリの入出力機能の例を示します。
型名 | 動作周波数 | I/O | シリアル | タイマ | A/D | D/A | その他の特長 |
---|---|---|---|---|---|---|---|
MSP430F67781 | 25MHz | 90 | 6 | 4 | 8 | 8 | 6シリーズ(LCDドライバ付き) |
MSP430F5525 | 25MHz | 63 | 4+USB | 4 | 16 | 0 | 5シリーズ(USB付き) |
MSP430F5336 | 20MHz | 74 | 4 | 4 | 16 | 2 | 5シリーズ |
MSP430F5324 | 25MHz | 48 | 4 | 4 | 16 | 0 | 5シリーズ |
MSP430F47126 | 16MHz | 72 | 4 | 2 | 1 | 0 | 4シリーズ(LCDドライバ付き) |
MSP430G2553 | 16MHz | 24 | 2 | 2 | 8 | 0 | バリューライン |
MSP430G2153 | 16MHz | 24 | 2 | 2 | 8 | 0 | バリューライン |
MSP430G2001 | 16MHz | 10 | 0 | 1 | 0 | 0 | バリューライン |
マイコンのプログラムで所定の入力データレジスタから値を読み出せば、入力ポートの電圧状態を知ることができます。また、所定の出力データレジスタに値を書き込めば、出力ポートの電圧状態を変化させることができます。しかし、実際のマイコンでは、いきなりデータレジスタから値を読み出したり、データレシスタに値を書き込んだりしても、思った通りには動作してくれません。
LSIの限られた端子数を有効に利用するために、一般にこれらの入力ポート、出力ポートはきわめて多機能に作られています。各ポートにはデータレジスタだけでなく、機能を設定したり状態を制御するための複数のレジスタが用意されており、あらかじめ機能を設定してから値を読み出したり書き込んだりする必要があります。
例えば、最も基本的な入出力であるビット入出力でも、通常はビットごとに入力/出力を切り替えて使用できるようになっており、それを設定してから使用しなければなりません。さらに、マイコンを起動した直後の初期状態では、マイコンメーカが定めたデフォルトの設定になっています。
したがって、マイコンのプログラミングを行うには、入出力機能に関係するレジスタをマニュアルで調べ、デフォルトの設定や、設定変更の方法を知っておかなければなりません。最近のマイコンは、きわめて多機能で便利な入出力機能を備えていますが、使いこなすには注意が必要です。
※MSP430はTexas Instruments Incorporatedの商標です。その他すべての商標および登録商標はそれぞれの所有者に帰属します。
TIのマイコン製品の詳細はこちら
宮崎 仁のマイコン基礎の基礎 第8回「マイコン・システムの構成」は、5/24(金)の公開を予定しています。
Copyright © ITmedia, Inc. All Rights Reserved.
提供:日本テキサス・インスツルメンツ株式会社
アイティメディア営業企画/制作:EDN Japan 編集部/掲載内容有効期限:2014年3月31日
宮崎 仁のQ&Aでよく分かるマイコン基礎の基礎:
第24回 割り込みっていろいろあるのですか?どんな種類があるか教えてください。
今回は、外部割り込み、内部割り込み、ソフトウェア割り込みについて詳しく解説しています
●全文を読む
電源IC選択のヒント集
電源IC 使用時の注意点をわかりやすく説明しているほか、使用時に発生する可能性のあるさまざまなトラブルとその対処法についても紹介しています。ぜひご利用ください。ダウンロードには myTI アカウントが必要です。
●Part 1をダウンロード
●Part 2をダウンロード
アナログ回路設計式一覧ポケット・ガイド
日本語版 PDF
英語版で高い評価を受けてきたポケット・ガイドの日本語版が完成しました。基板レベルやシステム・レベルの回路設計でよく使われるアナログ設計式を紹介しています。ダウンロードには myTI アカウントが必要です。
●ダウンロード