マイクロコントローラ

マイクロコントローラ () とは、CPUに加えてRAM、ROM、I/Oポートなどを1つの集積回路（IC）にまとめた、いわば極小のコンピュータ。主に機器の制御に使われる。略語は英字ではMCU。日本語ではマイコンとも呼ばれる。

主に機器の制御（コントロール）に使う目的で開発された小さな（"マイクロ" な）集積回路でありコンピュータなので「マイクロコントローラ」と呼ばれるようになった。

概要 
CPUの機能を備えており1つの集積回路にまとめたものなので、マイクロプロセッサの一種である。ただし、マイクロコントローラは通常、1 MHzから200 MHz（メガヘルツ）程度のクロック周波数で動作しており、マイクロプロセッサの中では比較的動作速度が低いという特徴がある。主な用途として何らかの機器に組み込んで使うこと（組込システム）を想定しているので、電力消費量を減らすためにクロック周波数を抑えてある。よくあるパーソナルコンピュータのマイクロプロセッサのほうは、大量に電力を消費するわけだが、そちらはたいていは1 GHz 〜 3 GHz（ギガヘルツ）ほどで動作しているので、そちらの数分の1〜数千分の1程度の動作速度ということになる。マイクロコントローラは消費電力が抑えてあるので組込システムに使いやすい。

また、一般的なマイクロコントローラはCPUに加えて、主メモリ（全体、場合によっては一部）とI/Oポートを内蔵している。コンピュータがコンピュータとして動作するには、CPUだけでは足りず、メモリやI/Oポートも必要であり、PC用マイクロプロセッサの場合はそれらの必須の機能を得るにはそれを提供する集積回路を別途追加しなければならず、基板の上で集積回路の数が増えていってしまい、基板の上の回路のパターンは複雑化し、基板の面積も大きくなっていってしまう。それに対して、マイクロコントローラのほうはコンピュータに必要な集積回路のほとんどをひとつの小さな集積回路にまとめているので、（いくつか集積回路を足す場合でも、全体として）とても小さく、簡潔にまとまるので、組込システムなど特に「コンピュータの物理的な小ささ」が求められる用途に向いている。

マイクロコントローラはさまざまな組み込みシステムで使われている。マイクロコントローラは近年のあらゆる家電製品や電子機器類で使われているので、PCで使われるマイクロプロセッサより遥かに大量に存在している。

電子工作の世界でも、マイクロコントローラを使うと電子部品の数が少なくて済むので非常に便利なパーツである。（自分で多数の電子部品を組み合わせて自作の回路を作る場合と比べて、はんだづけの手間も圧倒的に少なくてすみ、ミスが入り込みにくく、はんだづけ不良や接触不良も減るので動作も安定する。ブレッドボードに挿してわずかな部品数とわずかな手間で制御装置を実現することもできる。）また近年メーカー・ムーブメント（既成品に頼るばかりでなくデジタル技術も使い自分であれこれと自作してみようという潮流）でワンボードマイコンのArduinoも広まったわけだが、ArduinoはAtmel社のマイクロコントローラ :en:ATmega328で動作している。電子工作の世界では(Arduinoを使わずとも）ATmega328や他のマイクロコントローラをブレッドボードに直接挿してリード線を伸ばしてさまざまな小さな機器を制御することも行われる。価格もお手頃のものが多く、たとえばATmega328は（その時々の為替レートや需給関係にもよるが）1個300円〜500円ほどととてもお手頃な価格なので、「定番の電子部品」として親しまれている。

2010年代後半からはマイクロコントローラはIoTを実現する集積回路としても評価が高まっている。

歴史 
マイクロコントローラが登場する以前、電子制御分野における制御シーケンスはアナログ回路や論理回路といったハードウェア的に回路で組まれていたため、手順を一部変更するだけでも回路の変更が必要だった。それら制御シーケンスを、コンピュータシステムを用いたシステムに置き換えた事から始まった。プログラム内蔵方式の特徴を生かしたコンピュータシステムの場合、回路は変更せず内蔵するプログラムを書き換えるだけで制御内容の変更や機能追加が行えるようになった。さらにコンピュータシステムをワンチップにしたものがマイクロコントローラーであった。

世界最初のマイクロコントローラーは、1971年9月に登場したテキサス・インスツルメンツ TMS0100シリーズの TMS1802NC (TMS0102)と言われている。TMS1802NCは、電卓専用だったため汎用性はなかった。

汎用性があって大量に使用された最初のマイクロコントローラーは、1974年に登場したテキサス・インスツルメンツ TMS1000シリーズであった。

マイクロコントローラが進化するにしたがって内蔵する回路が増えていき、外付けにしなければならない部品が減っている。1980年代から1990年代にかけて、マイクロコントローラの中でも最も成功したものは8ビットのインテル8051とザイログZ80の派生品である。

通信機器では1980年代後半から1990年代にかけてMC68000とその派生品も多く使われた。

現在ではARMアーキテクチャとMIPSアーキテクチャの派生製品が、32ビット組み込みプロセッサの大きな割合を占めている。特に携帯電話端末におけるARMのシェアは高く、2006年の情報では出荷数が年間24億個を超えたとされる。

構成 
組み込みシステムには4つの基本部品が必要となる。それは、CPUコア、プログラムを格納するメモリ(ROMかフラッシュメモリ)、ひとつ以上のタイマー(設定可能なものとウォッチドッグタイマー)、外部周辺機器などと通信するための入出力部である。マイクロコントローラはこれらが全てひとつの集積回路に組み込まれている。マイクロコントローラは、汎用CPUと比較した場合に周辺部品が少なくて済むため、コンピュータを組み立てるのが容易である。

一般的なマイクロコントローラはクロックジェネレータとRAMおよびROM（EPROMやEEPROM）を内蔵している。これを動作できるようにするには、ソフトウェアをROMに格納して、水晶振動子を接続する。マイクロコントローラは様々な入出力デバイスを内蔵している。アナログ-デジタル変換回路、タイマー、汎用非同期シリアル通信(UART)、またはI2Cバス、SPIバス、CANバスといった特殊なシリアル通信インターフェイスなどである。これらの周辺デバイスは特殊な命令で制御される。

マイクロコントローラと言った場合、一般的にはCPU機能とメモリや各種ペリフェラルを内蔵した集積回路を指すが、CPU機能のみの単機能集積回路（マイクロプロセッサ）でも組み込み用途で用いる場合はマイクロコントローラと呼ばれることがある。これは特にCPU機能が8ビットのローエンド製品に顕著である。逆にペリフェラルを内蔵するプロセッサであっても、特に8ビットより上位のCPU機能を含むものは、マイクロコントローラとは呼ばずにプロセッサと呼ばれることもある。

開発環境 
当初マイクロコントローラは、搭載メモリの少なさからアセンブリ言語でのみプログラムが組まれていた。メモリ量やCPUの処理能力が向上すると、開発効率の観点からC言語が使われるようになった。

ホビーユースや学習用途では、上記言語より導入がスムーズで初心者にとって理解しやすいBASIC言語インタプリタなどの言語処理系があらかじめROMに書き込まれた半完成製品も存在し、後述のBASIC Stampなどが該当する。

主なマイクロコントローラ

アプライド・マイクロ・サーキット 

従来IBMが製造販売していたマイクロコントローラシリーズ。このシリーズのライセンスはApplied Micro Circuits Corporation(en)に売却された。
 403 PowerPC CPU
 PPC 403GCX
 405 PowerPC CPU
 PPC 405EP
 PPC 405GP/CR
 PPC 405GPr
 PPC NPe405H/L
 440 PowerPC Book-E CPU
 PPC 440GP
 PPC 440GX
 PPC 440EP/EPx/GRx
 PPC 440SP/SPe

アトメル 

 Atmel AT91 series (ARM THUMBアーキテクチャ)
 AT90, Tiny, Mega, AVR32, and XMEGA シリーズ – AVR (Atmel Norway design)
 Atmel AT89 series (Intel 8051/MCS51 アーキテクチャ)
 MARC4

サイプレス・マイクロシステムズ 
 PSoC
 CY8C2xxxx
 CY8C3xxxx
 CY8C5xxxx
 AN21xx (EZ-USB)
 CY7C68xxx (EZ-USB FX2)

フリースケール・セミコンダクタ 

モトローラの半導体事業部が分離/独立した会社。現在はNXPに買収されている。
 8ビット
 68HC05
 68HC08 (CPU08)
 68HC11
 16ビット
 68HC12 (CPU12)
 68HC16 (CPU16)
 Freescale DSP56800 (DSPcontroller)
 32ビット
 Freescale 683XX (CPU32)
 68360 (QUICC)
 ColdFire (68020互換RISC)
 M・CORE
 PowerPCコアファミリ
 MPC500 (車載向けPowerPC)
 MPC850/860 (PowerQUICC)
 MPC8240/8250/8260 (PowerQUICC II)
 MPC8540/8555/8560 (PowerQUICC III)

富士通 

スパンションを経て、現在はサイプレスから販売されている。
 F2MC ファミリ (8/16ビット)
 FR ファミリ (32ビット)
 FR80
 Traveo (32ビット)

Holtek(en) 
 HT8

インテル 

 8ビット
 8XC42
 MCS48
 MCS51
 
 
 16ビット
 80186/88
 MCS96
 MXS296
 32ビット
 376
 386EX
 i960
 StrongARM
 XScale（2006年にマーベル・テクノロジー・グループへ売却）

Microchip 

 8ビットPIC
 PIC10シリーズ
 PIC12シリーズ
 PIC16シリーズ
 PIC18シリーズ
 16ビットPIC
 PIC24シリーズ
 16ビットdsPIC
 dsPIC30シリーズ
 dsPIC33シリーズ
 32ビットPIC
 PIC32シリーズ

ナショナル セミコンダクター 

 COP8
 CR16

ルネサス エレクトロニクス 

 Renesas RXファミリ (32ビット)
Renesas RAファミリ (32ビット)
Renesas Synergy (32ビット)
Renesas RL78ファミリ (16ビット)
μCOMシリーズ (4ビット、8ビット、16ビット)
 17K (4ビット)
 78K0S (8ビット)
 78K0 (8ビット)
 78K0R (16ビット)
 78K4 (16ビット)
 Vシリーズ
 V40/V50/V53 (16ビット)
 V850 (32ビット)
 RH850 (32ビット)
 VRシリーズ (MIPS64)
 VR41xx (MIPS64)
 VR5500 (MIPS64)
 VR7700 (MIPS64)
 H8
 H8/300H
 SuperH
 SH-1
 SH-2
 M32R
 M16C
 R8C/Tiny

NXP 

フィリップスの半導体事業部がファンドに買収され独立した会社で、NXPに社名が変更。
 LPC2000 (ARM7)
 LPC900
 LPC700

STマイクロエレクトロニクス 

 ST 62
 ST 7

テキサス・インスツルメンツ 

 TMS370
 MSP430
 TMS320 (DSP)

旧・東芝（現・東芝デバイス&ストレージ） 

 TLCS-47 (4ビット)
 TMP47C4xx
 TLCS-870 (8ビット)
 TLCS-900 (16ビット)
 TMPZ84C0xx (Z80互換)
 TX19/TX39/TX49 (MIPS32, MIPS64)

ウェスタンデザインセンター 

 W65C134 (8ビット)W65C02ベースのマイクロコントローラ
 W65C265 (16ビット)W65C816ベースのマイクロコントローラ

Ubicom（en） 
 SX-28, SX-48, SX-54：高性能 8ビットマイクロコントローラ (PIC16互換)
 IP2022, IP3023 (マルチスレッド指向の独自アーキテクチャ)

ザイログ 

 Z80
 Z86E02
 Z8

ザイリンクス 

 MicroBlaze FPGA用ソフトコア 32ビットマイクロコントローラ
 PicoBlaze FPGA用ソフトコア 8ビットマイクロコントローラ

アルテラ 

 Nios FPGA用ソフトコア 32ビットマイクロコントローラ
 Nios II FPGA用ソフトコア 32ビットマイクロコントローラ

マイクロコントローラの半完成応用製品

BASIC組み込みマイクロコントローラ 
マイクロコントローラに、BASICインタプリタ、電源装置などを組み合わせたパッケージとして販売している小企業が数多く存在する。PICが使われていることが多い。

Parallax, Inc.（en） 
 BASIC Stamp：有名だが、低速で高価。
 SX-Key：プログラマは高価だが、チップ自体は安い。

秋月電子通商 

 PIC-BASIC：BASIC Stampの日本版とも言える製品で日本語の資料が充実している。

PicAxe（en） 
PICにBASICをロードするよりも安価であることが特長。内蔵するBASICは機能が豊富だが構造的な制約が多い。

脚注

注釈

出典

関連項目 
 組み込みシステム
 インサーキット・エミュレータ (ICE)
 電子制御

まいくろこんとろおら
組み込みシステム