マイクロコントローラ

マイクロコントローラ  とは、CPUに加えてRAM、ROM、I/Oポートなどを1つの集積回路にまとめた、いわば極小のコンピュータ。主に機器の制御に使われる。略語は英字ではMCU。日本語ではマイコンとも呼ばれる1970年代や1980年代のマイクロコンピュータのほうも、略語ではマイコンと呼ばれたので、日本語では両者の名称が衝突してしまっており、文脈がはっきりしていないと使いづらい。特にコンピュータ全体の歴史ATmega328や他のマイクロコントローラをブレッドボードに直接挿してリード線を伸ばしてさまざまな小さな機器を制御することも行われる。価格もお手頃のものが多く、たとえばATmega328は1個300円〜500円ほどととてもお手頃な価格なので、「定番の電子部品」として親しまれている。

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

1. 歴史
-----

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

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

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

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

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

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

2. 構成
-----

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

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

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

3. 開発環境
-------

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

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

4. 主なマイクロコントローラ
---------------

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

従来IBMが製造販売していたマイクロコントローラシリーズ。このシリーズのライセンスはApplied Micro Circuits Corporationに売却された。

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

4.2. アトメル
---------

Atmel AT91 series 
AT90, Tiny, Mega, AVR32, and XMEGA シリーズ – AVR 
Atmel AT89 series 
MARC4

4.3. サイプレス・マイクロシステムズ
--------------------

PSoC
CY8C2xxxx
CY8C3xxxx
CY8C5xxxx
AN21xx 
CY7C68xxx 

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

モトローラの半導体事業部が分離/独立した会社。現在はNXPに買収されている。

8ビット
68HC05
68HC08 
68HC11
16ビット
68HC12 
68HC16 
Freescale DSP56800 
32ビット
Freescale 683XX 
68360 
ColdFire 
M・CORE
PowerPCコアファミリ
MPC500 
MPC850/860 
MPC8240/8250/8260 
MPC8540/8555/8560 

4.5. 富士通
--------

スパンションを経て、現在はサイプレスから販売されている。

F2MC ファミリ 
FR ファミリ 
FR80
Traveo 

4.6. Holtek
---------------

HT8

4.7. インテル
---------

8ビット
8XC42
MCS48
MCS51
16ビット
80186/88
MCS96
MXS296
32ビット
376
386EX
i960
StrongARM
XScale

4.8. Microchip
--------------

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

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

COP8
CR16

4.10. ルネサス エレクトロニクス
-------------------

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

4.11. NXP
---------

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

LPC2000 
LPC900
LPC700

4.12. STマイクロエレクトロニクス
--------------------

ST 62
ST 7

4.13. テキサス・インスツルメンツ
-------------------

TMS370
MSP430
TMS320 

4.14. 旧・東芝
----------

TLCS-47 
TMP47C4xx
TLCS-870 
TLCS-900 
TMPZ84C0xx 
TX19/TX39/TX49 

4.15. ウェスタンデザインセンター
-------------------

W65C134 
W65C02ベースのマイクロコントローラ
W65C265 
W65C816ベースのマイクロコントローラ

4.16. Ubicom
------------

SX-28, SX-48, SX-54：高性能 8ビットマイクロコントローラ 
IP2022, IP3023 

4.17. ザイログ
----------

Z80
Z86E02
Z8

4.18. ザイリンクス
------------

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

4.19. アルテラ
----------

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

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

4.20.1. BASIC組み込みマイクロコントローラ
---------------------------

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

4.20.1.1. Parallax, Inc.
------------------------

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

4.20.1.2. 秋月電子通商
----------------

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

4.20.1.3. PicAxe
----------------

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

5. 脚注
-----

5.1. 注釈
-------

5.2. 出典
-------

6. 関連項目
-------

組み込みシステム
インサーキット・エミュレータ 
電子制御