MCUとMPUの違い:マイコンとマイクロプロセッサを比較

マイコン(MCU)は、プロセッサ、フラッシュメモリ、RAM、タイマーやADC、通信インターフェースなどの周辺機能を1つのチップにまとめていて、小さなシステムを1チップだけで動かせます。マイクロプロセッサ(MPU)は、主に高速なプロセッサで、外付けのDRAMやストレージが必要で、多くはLinuxのような本格的なOSを動かします。MCUは単純で低消費電力のリアルタイム制御に、MPUは複雑でソフトウェアが豊富な機器に向いています。

項目MCUMPU
集積度CPU、フラッシュ、RAM、周辺機能(GPIO、タイマー、ADC、UART、SPI、I2C)を1チップに集積キャッシュとMMUを持つCPUコアが中心。DRAMとストレージは外付けのチップ
クロック約1 MHzから数百MHz数百MHzから数GHz
メモリチップ内のフラッシュが数KB〜数MB、SRAMが数KB〜数MB外付けのDRAM(数百MB〜数GB)と、eMMCやSDなどのストレージ
ソフトウェアOSなしのコード、または小さなリアルタイムOS(FreeRTOS、Zephyrなど)LinuxやAndroidなどの本格的なOS
リアルタイム性予測しやすい。割り込みの遅延はマイクロ秒単位Linuxでは、リアルタイム向けの拡張なしに保証するのは難しい
消費電力非常に小さい。スリープ時はマイクロアンペア。コイン電池で数年動くこともある大きい。数百ミリワットから数ワット
起動時間一瞬(ミリ秒)数秒。ブートローダーとOSの起動が必要
コストと基板チップは安く、基板も簡単で、外付け部品が少ないチップは高く、DRAMや電源用のチップも必要。基板は多層で複雑
主な用途家電、モーター制御、センサー、ウェアラブル、車載ECUスマートフォン、タブレット、セットトップボックス、ルーター、産業用のタッチパネル、車載のインフォテインメント
例STM32、ESP32、RP2040、Arduinoの基板NXP i.MX、TI Sitaraなどのアプリケーションプロセッサ、Raspberry Piのチップ

数値は代表的な目安で、世代や製品によって異なります。

どんなときに使うか

MCU
仕事が制御とセンシングで、消費電力が非常に小さいこと、すぐ起動することが必要で、プログラムがチップ内のメモリに収まるとき。
MPU
豊富なユーザーインターフェース、ネットワーク、ファイルシステム、OSに依存する大きなソフトウェアが必要なとき。
両方
両方を組み合わせた製品も多くあります。MPUがユーザーインターフェースとアプリケーションを動かし、MCUが時間に厳しい制御と電源管理を担当します。

よくある質問

マイコン(MCU)とマイクロプロセッサ(MPU)の違いは何ですか?

マイコンは、CPU、フラッシュ、RAM、周辺機能を1チップに集積し、小さなシステムを1チップで動かします。マイクロプロセッサは、主にCPUで、外付けのDRAMとストレージが必要で、多くはLinuxなどのOSを動かします。

Raspberry Piはマイコンですか?

いいえ。Raspberry Piは、マイクロプロセッサ級のチップと外付けのメモリを使い、Linuxを動かします。Raspberry Pi Picoは、マイコンのボードです。

消費電力が小さいのはどちらですか?

マイコンです。スリープ時はマイクロアンペアで、コイン電池で数年動くこともあります。マイクロプロセッサは、数百ミリワットから数ワットです。

マイコンでLinuxは動きますか?

一般には動きません。LinuxにはMMUと、一般的なマイコンよりずっと多くのメモリが必要だからです。マイコンは、OSなしのコードか、小さなリアルタイムOSを動かします。

理解度チェック

マイコンのGPIO(汎用入出力)の端子を使うときに、最初に設定する必要があることとして正しいものはどれか。

  1. Aその端子を入力として使うか、出力として使うか(方向)
  2. B端子の色
  3. Cプログラムを書いたプログラマの名前
答えと解説を見る

正解:A. その端子を入力として使うか、出力として使うか(方向)

GPIOの端子は、ソフトウェアで入力にも出力にも使えます。方向を決めるレジスタで出力にすると、出力用のレジスタに書いた値が端子の電圧になり、入力にすると、端子の電圧を入力用のレジスタから読めます。多くのマイコンでは、そのほかにプルアップの有無や出力の形式(プッシュプルかオープンドレインか)、別の周辺回路の端子として使うかどうかも設定します。

マイコンでLEDの明るさやモーターの回転の速さを調整するのによく使われる方法はどれか。

  1. A電源の電線を太くしたり細くしたりする
  2. Bプログラムの実行を一時的に止める
  3. CPWMで、高速にオンとオフを繰り返してオンの時間の割合を変える
答えと解説を見る

正解:C. PWMで、高速にオンとオフを繰り返してオンの時間の割合を変える

LEDやモーターをPWMで高速にオンとオフすると、人の目にはオンの時間の割合に応じた明るさに見え、モーターは慣性によって平均の電力に応じた速さで回ります。トランジスタは完全なオンかオフの状態で使うので、途中の電圧で使うより発熱による損失が少なく、効率よく調整できます。周波数は、LEDのちらつきやモーターの音が気にならない値に選びます。

UARTによるシリアル通信の特徴として正しいものはどれか。

  1. A送る側がクロックの線を出し、受ける側はそのクロックでデータを読む
  2. Bクロックの線を使わず、送る側と受ける側が同じ通信速度(ボーレート)に合わせ、スタートビットで区切りを知らせる
  3. C1本の線に多数の機器をつなぎ、アドレスで相手を選ぶ
答えと解説を見る

正解:B. クロックの線を使わず、送る側と受ける側が同じ通信速度(ボーレート)に合わせ、スタートビットで区切りを知らせる

UARTは、送信と受信の2本の線(とグラウンド)で通信する非同期式のシリアル通信です。何も送らないときは1の状態で、0のスタートビットで文字の始まりを知らせ、データのビットに続いて1のストップビットで終わります。クロックを送らないので、両方が115200 bpsなどの同じ速度に設定しておく必要があります。デバッグ用の出力やGPS、無線のモジュールとの接続によく使われます。

  1. 周辺回路の状態を知る方法のうち、ポーリングと割り込みの違いとして正しいものはどれか。
  2. マイコンでADコンバータの変換結果を一定の間隔で大量に取り込むとき、DMAを使う利点として正しいものはどれか。

組込み・ファームウェアの練習問題へ

関連する用語の解説

マイコン(マイクロコントローラ)
CPU、メモリ、タイマーやADCなどの周辺機能を1チップにまとめた小さなコンピュータ。家電や自動車などの機器に組み込まれ、制御を担う。MCUとも呼ぶ。
GPIO
汎用入出力(General Purpose Input/Output)の端子。ソフトウェアで入力にも出力にも設定でき、スイッチの読み取りやLEDの点灯などに使う。
割り込み
外部機器からの要求などに応じて、実行中の処理を一時的に中断し、対応する処理を優先して行うCPUの仕組み。終わると元の処理に戻る。

関連する比較