マイクロコントローラ
出典: フリー百科事典『ウィキペディア(Wikipedia)』
マイクロコントローラ(microcontroller、MCU、μC)は、コンピュータシステムをひとつの集積回路に組み込んだものであり、電子機器の制御用に最適化されている。 パーソナルコンピュータに使われる汎用マイクロプロセッサと比較すると、自己充足性と低価格性を重視したタイプのマイクロプロセッサと言える。 一般的なマイクロコントローラはメモリ全体と(用途に応じた)I/Oを内蔵している。汎用マイクロプロセッサの場合、それらの必須の機能を提供するには周辺チップを追加しなければならない。
マイクロコントローラは様々な電子機器で使われている(組み込みシステムを参照されたい)。 数量的には出荷されているプロセッサの 50% 以上が単純なコントローラであり、20% がもっと特殊化したデジタルシグナルプロセッサ(DSP)である。 西洋の一般的な家庭では、汎用マイクロプロセッサは1~2個だが、マイクロコントローラは1~2ダース存在していると言われている。 マイクロコントローラはあらゆる電子機器や家電製品に組み込まれている。
[編集] 詳細
現在の多くのマイクロコントローラはフォンノイマン・アーキテクチャであり、組み込みシステムには4つの基本部品が必要となる。それは、CPUコア、プログラムを格納するメモリ(ROMかフラッシュメモリ)、ひとつ以上のタイマー(設定可能なものとウォッチドッグタイマー)、外部周辺機器などと通信するための入出力部である。これらが全てひとつの集積回路に組み込まれている。マイクロコントローラは、汎用CPUと比較した場合に周辺部品が少なくて済むため、コンピュータを組み立てるのが容易である。
マイクロプロセッサでは、そうはいかない。様々な周辺チップが必要である。例えば、必ずいくつかのRAMメモリチップが必要である。全体のメモリ容量は汎用マイクロプロセッサの方が柔軟に変更可能であるが、メモリチップは確実に必要であるし、それらのチップの間の配線も必要である。
一般的なマイクロコントローラはクロックジェネレータとRAMおよびROM(EPROMやEEPROM)を内蔵している。これを動作できるようにするには、ソフトウェアをROMに格納して、水晶振動子を接続すればよい。マイクロコントローラは様々な入出力デバイスを内蔵している。アナログ-デジタル変換回路、タイマー、汎用非同期シリアル通信(UART)または特殊なシリアル通信インターフェイス(I²Cバス、SPIバス、CANバス)などである。これらの周辺デバイスは特殊な命令で制御される。
当初マイクロコントローラはアセンブリ言語でのみプログラムが組まれていて、後にC言語が使われるようになった。最近では、いくつかのマイクロコントローラは高級言語インタプリタを内蔵し始めており、使いやすくなった。BASICが一般的な選択であり、有名なものとしてはBASIC Stampがある。
マイクロコントローラは性能と柔軟性を犠牲にして、低価格と機器設計の容易性を追求したものである。マイクロコントローラが進化するにしたがって内蔵する回路が増えていき、外付けになければならない部品が減っている。1980年代から1990年代にかけて、マイクロコントローラの中でも最も成功したものは8ビットのインテル8051とザイログZ80の派生品である。現在ではARMアーキテクチャの派生製品が、32ビット組み込みプロセッサの75%以上を占めている。
[編集] 主なマイクロコントローラ
[編集] AMCC
従来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
[編集] Atmel
- Atmel AT91 series (ARM THUMBアーキテクチャ)
- AT90, Tiny & Mega シリーズ – AVR (Atmel Norway design)
- Atmel AT89 series (Intel 8051/MCS51 アーキテクチャ)
- MARC4
[編集] サイプレス・マイクロシステムズ
- CY8C2xxxx (PSoC)
- AN21xx (EZ-USB)
- CY7C68xxx (EZ-USB FX2)
[編集] フリースケール・セミコンダクタ
モトローラから分離した会社。
- 8ビット
- 68HC05 (CPU05)
- 68HC08 (CPU08)
- 68HC11 (CPU11)
- 16ビット
- 68HC12 (CPU12)
- 68HC16 (CPU16)
- Freescale DSP56800 (DSPcontroller)
- 32ビット
- Freescale 683XX (CPU32)
- MPC500
- MPC 860 (PowerQUICC)
- MPC 8240/8250 (PowerQUICC II)
- MPC 8540/8555/8560 (PowerQUICC III)
[編集] 富士通
- F2MC ファミリ (8/16ビット)
- FR ファミリ (32ビット)
[編集] Holtek
- HT8
[編集] インテル
[編集] Microchip
- 12ビット命令 PIC
- 14ビット命令 PIC
- PIC16F84
- 16ビット命令 PIC
[編集] ナショナル セミコンダクター
- COP8
- CR16
[編集] NECエレクトロニクス
- 17K (4ビット)
- 78K0 (8ビット)
- 78K4 (16ビット)
- V850 (32ビット)
[編集] フィリップス・セミコンダクタ
- LPC2000
- LPC900
- LPC700
[編集] ルネサス テクノロジ
[編集] STマイクロエレクトロニクス
- ST 62
- ST 7
[編集] テキサス・インスツルメンツ
- TMS370
- MSP430
[編集] 東芝セミコンダクター社
- TLCS-47 (4ビット)
- TLCS-870 (8ビット)
- TLCS-900 (16ビット)
[編集] Western Design Center
- 8ビット
- W65C02ベース マイクロコントローラ
- 16ビット
- W65816ベース マイクロコントローラ
[編集] Ubicom
- SX-28, SX-48, SX-54:高性能 8ビットマイクロコントローラ
- IP2022:高性能(120MIPS) 8ビットマイクロコントローラ
[編集] ザイリンクス
- Microblaze ソフトコア 32ビットマイクロコントローラ
- Picoblaze ソフトコア 8ビットマイクロコントローラ
[編集] ザイログ
- Z8
- Z86E02
[編集] …そして様々なBASIC組み込みマイクロコントローラ
マイクロコントローラに、BASICインタプリタ、電源装置などを組み合わせたパッケージとして販売している小企業が数多く存在する。PICが使われていることが多い。
[編集] Parallax, Inc.
- BASIC Stamp:有名だが、低速で高価。
- SX-Key:プログラマは高価だが、チップ自体は安い。
[編集] PicAxe
PICにBASICをロードするよりも安価であることが特長。内蔵するBASICは機能が豊富だが構造的な制約が多い。
[編集] 関連項目
- 組み込みシステム
- インサーキット・エミュレータ (ICE)
- マイクロボティクス