マイクロコントローラ

マイクロコントローラ(microcontroller)は、コンピュータシステムをひとつの集積回路に組み込んだものである。 電子機器の制御用に最適化されている。 パーソナルコンピュータに使われる汎用マイクロプロセッサと比較すると、自己充足性と低価格性を重視したタイプのマイクロプロセッサと言える。 一般的なマイクロコントローラはメモリ全体（場合によっては一部）と用途に応じたI/Oを内蔵している。汎用マイクロプロセッサの場合、それらの必須の機能を提供するには周辺チップを追加しなければならない。1個のチップのみでコンピュータとして機能させられるということで「ワンチップマイコン」という語もある。 マイクロコントローラは様々な電子機器で使われている。詳細は組み込みシステムを参照のこと。マイクロコントローラは近年のあらゆる電子機器や家電製品に組み込まれているので、パーソナルコンピュータなどで使われる汎用的なマイクロプロセッサより遥かに大量に存在している。 組み込みシステムには4つの基本部品が必要となる。それは、CPUコア、プログラムを格納するメモリ(ROMかフラッシュメモリ)、ひとつ以上のタイマー(設定可能なものとウォッチドッグタイマー)、外部周辺機器などと通信するための入出力部である。 マイクロコントローラはこれらが全てひとつの集積回路に組み込まれている。マイクロコントローラは、汎用CPUと比較した場合に周辺部品が少なくて済むため、コンピュータを組み立てるのが容易である。 対して、マイクロプロセッサでは様々な周辺チップが必要である。例えば、必ずいくつかのRAMメモリチップが必要である。全体のメモリ容量は汎用マイクロプロセッサの方が柔軟に変更可能であるが、メモリチップは確実に必要で、それらのチップの間の配線も必要である。 一般的なマイクロコントローラはクロックジェネレータとRAMおよびROM（EPROMやEEPROM）を内蔵している。これを動作できるようにするには、ソフトウェアをROMに格納して、水晶振動子を接続する。マイクロコントローラは様々な入出力デバイスを内蔵している。アナログ-デジタル変換回路、タイマー、汎用非同期シリアル通信(UART)、またはI2Cバス、SPIバス、CANバスといった特殊なシリアル通信インターフェイスなどである。これらの周辺デバイスは特殊な命令で制御される。 当初マイクロコントローラは、搭載メモリの少なさからアセンブリ言語でのみプログラムが組まれていた。メモリ量やCPUの処理能力が向上すると、開発効率の観点からC言語が使われるようになった。 ホビーユースや学習用途では、上記言語より導入がスムーズで初心者にとって理解しやすいBASIC言語インタプリタなどの言語処理系があらかじめROMに書き込まれた半完成製品も存在し、後述のBASIC Stampなどが該当する。 マイクロコントローラと言った場合、一般的にはCPU機能とメモリや各種ペリフェラルを内蔵した集積回路を指すが、CPU機能のみの単機能集積回路（マイクロプロセッサ）でも組み込み用途で用いる場合はマイクロコントローラと呼ばれることがある。これは特にCPU機能が8ビットのローエンド製品に顕著である。 逆にペリフェラルを内蔵するプロセッサであっても、特に8ビットより上位のCPU機能を含むものは、マイクロコントローラとは呼ばずにプロセッサと呼ばれることもある。 もともとは電子制御分野でアナログ回路や論理回路で構成されていた制御シーケンスを、コンピュータシステムを用いたシステムに置き換えた事から始まった。 それまでは制御手順がハードウェア的に回路で組まれていたため、手順を一部変更するだけでも回路の変更が必要になる。しかしプログラム内蔵方式の特徴を生かしたコンピュータシステムの場合、回路は変更せず内蔵するプログラムを書き換えるだけで制御内容の変更や機能追加が行えるようになった。 また価格を抑えるため、汎用的なコンピュータより機能を必要最低限に絞り、ワンチップ化したものがマイクロコントローラである。 マイクロコントローラは性能と柔軟性を犠牲にして、低価格と機器設計の容易性を追求したものである。 マイクロコントローラが進化するにしたがって内蔵する回路が増えていき、外付けにしなければならない部品が減っている。1980年代から1990年代にかけて、マイクロコントローラの中でも最も成功したものは8ビットのインテル8051とザイログZ80の派生品である。 通信機器では1980年代後半から1990年代にかけてMC68000とその派生品も多く使われた。 現在ではARMアーキテクチャとMIPSアーキテクチャの派生製品が、32ビット組み込みプロセッサの大きな割合を占めている 。 特に携帯電話端末におけるARMのシェアは高く、2006年の情報では出荷数が年間24億個を超えたとされる。 従来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 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ビット) HT8 8ビット 8XC42 MCS48 MCS51 8061（英語版） 8xC251（英語版） 16ビット 80186/88 MCS96 MXS296 32ビット 376 386EX i960 StrongARM XScale（2006年にマーベル・テクノロジー・グループへ売却） 8ビットPIC PIC10シリーズ PIC12シリーズ PIC16シリーズ PIC18シリーズ 16ビットPIC PIC24シリーズ 16ビットdsPIC dsPIC30シリーズ dsPIC33シリーズ 32ビットPIC PIC32シリーズ COP8 CR16 μCOMシリーズ (4ビット、8ビット、16ビット) 17K (4ビット) 78K0S (8ビット) 78K0 (8ビット) 78K0R (16ビット) 78K4 (16ビット) Vシリーズ V40/V50/V53 (16ビット) RL78 (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に社名が変更。 LPC2000 (ARM7) LPC900 LPC700 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ベースのマイクロコントローラ 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インタプリタ、電源装置などを組み合わせたパッケージとして販売している小企業が数多く存在する。PICが使われていることが多い。 BASIC Stamp：有名だが、低速で高価。 SX-Key：プログラマは高価だが、チップ自体は安い。 PIC-BASIC：BASIC Stampの日本版とも言える製品で日本語の資料が充実している。 PICにBASICをロードするよりも安価であることが特長。内蔵するBASICは機能が豊富だが構造的な制約が多い。 組み込みシステム インサーキット・エミュレータ (ICE) 電子制御 ^ ARM社のセミナーの資料 2005年 マイコミジャーナル 【レポート】ユビキタス時代を担う"Embedded Processor"(1) - 増大する需要 2003/1/1 ^ @IT 頭脳放談 ： 第15回 ARMプロセッサを知らずに暮らせない Pentium IIIよりも売れている32bitプロセッサ「ARM」 2001/8/28 ARM社の2006年年間業績発表 2007/2/7 ^ CNET Japan IBM、PowerPCプロセッサ3種を譲渡 2004/4/14