
「小さな基板にCPUもメモリも入っている」と聞くと、パソコンを小型化したものを想像するかもしれません。
しかし、家電、自動車、産業機器、センサ機器の中で使われているマイコンは、パソコンとは役割も設計思想も大きく異なります。
マイコンとは、CPU・メモリ・I/Oなどを1つのICにまとめ、特定の機器を制御するために使う小型コンピュータです。
温度を読み取り、ボタン入力を判定し、モータやLEDを動かす。こうした「機械の中で決められた処理を確実に行う」ことが、マイコンの中心的な役割です。
本記事では、マイコンとは何かという基本から、CPU・メモリ・I/Oの役割、マイコンボードやPLCとの違い、選定時の注意点までを組込みシステムの実務目線で解説します。
- 1. マイコンとは何か
- 2. マイコンの基本構成:CPU・メモリ・I/O
- 3. マイコンとCPU・マイコンボード・PLCの違い
- 4. マイコンが動く仕組み
- 5. メモリの種類とプログラム保存
- 6. I/Oと周辺機能の基本
- 7. 組込みシステムにおけるマイコンの用途
- 8. マイコン選定で見るべきポイント
- 9. マイコン開発でよくあるトラブル
- 10. よくある質問
- 11. まとめ
1. マイコンとは何か
マイコンとは、マイクロコントローラの略称です。
英語ではMicrocontroller、またはMCUと呼ばれます。制御対象の機器に組み込まれ、センサ入力やスイッチ入力をもとに、モータ、表示器、通信回路などを制御します。
パソコンのように汎用的な作業を何でもこなす装置ではなく、特定の製品や装置の中で決められた仕事を繰り返し実行するためのコンピュータです。
例えば、電子レンジで加熱時間を管理する、エアコンで温度を監視してファンを回す、自動車のECUでセンサ情報を処理する、といった用途で使われます。
マイコンの特徴は、CPUだけでなく、プログラムを保存するメモリ、作業用メモリ、外部機器と信号をやり取りするI/Oを1つのICに内蔵している点です。
これにより、少ない部品点数で小型・低コスト・低消費電力の制御装置を作ることができます。
マイコンは「小さな制御用コンピュータ」
マイコンを一言で説明するなら、機械や製品の中に入って、決められた動作を制御する小さなコンピュータです。
人間の体に例えると、CPUが頭脳、メモリが記憶、I/Oが目・耳・手足に相当します。
温度センサから温度を読み取る、ボタンが押されたか確認する、モータを回す、LEDを点灯する。これらはすべて、マイコンがI/Oを通じて外部とやり取りしている例です。
マイコンが使われる代表例
マイコンは、目に見えない場所で多くの製品を制御しています。
| 分野 | 使用例 | マイコンの主な役割 |
|---|---|---|
| 家電 | 炊飯器、電子レンジ、エアコン | 温度制御、タイマ処理、表示制御 |
| 自動車 | ECU、パワーウィンドウ、メータ | センサ処理、モータ制御、通信 |
| 産業機器 | 搬送装置、測定器、制御基板 | 入出力制御、異常検知、通信制御 |
| 情報機器 | キーボード、マウス、プリンタ | 入力処理、データ変換、状態管理 |
| IoT機器 | 環境センサ、スマートロック | センシング、無線通信、省電力制御 |
このように、マイコンは単体で目立つ部品ではありません。
しかし、製品の動き、使いやすさ、安全性、消費電力を左右する重要な中核部品です。
2. マイコンの基本構成:CPU・メモリ・I/O
マイコンを理解するうえで最初に押さえるべき構成要素は、CPU、メモリ、I/Oの3つです。
この3つを理解すれば、マイコンが「何を考え、何を覚え、どのように外部機器を動かしているのか」が見えてきます。
| 構成要素 | 役割 | 実務での見方 |
|---|---|---|
| CPU | 命令を読み取り、計算や判断を行う | 処理速度、ビット数、割り込み性能を見る |
| メモリ | プログラムや一時データを保存する | Flash容量、RAM容量、不揮発メモリの有無を見る |
| I/O | 外部回路と信号をやり取りする | 入出力ピン数、A/D変換、通信機能を見る |
パソコンであれば、CPU、メモリ、ストレージ、入出力端子は別々の部品として構成されます。
一方、マイコンではこれらが1つのICにまとめられているため、制御基板を小さく、安く、安定して作りやすくなります。
CPU:命令を実行する頭脳
CPUは、プログラムに書かれた命令を順番に実行する中核部分です。
入力を読む、条件を判断する、計算する、出力を切り替えるといった処理は、最終的にCPUが実行しています。
マイコンのCPUには、8ビット、16ビット、32ビットなどの種類があります。
ビット数が大きいほど一度に扱えるデータ量やアドレス空間が広がり、高度な計算や通信処理に向きます。
ただし、ビット数が大きければ常に優れているわけではありません。
簡単なON/OFF制御やLED表示であれば、低コストな8ビットマイコンで十分な場合もあります。
メモリ:プログラムとデータを保持する場所
マイコンのメモリは、大きく分けてプログラムを保存する領域と、処理中のデータを一時的に置く領域があります。
多くのマイコンでは、プログラム保存用にFlashメモリ、作業用にRAMが使われます。
Flashメモリは電源を切っても内容が消えません。
そのため、製品に書き込まれた制御プログラムは、電源を入れるたびに同じように実行されます。
一方、RAMは処理中の変数、計算結果、通信バッファなどを一時的に保存する場所です。
電源を切ると内容は消えるため、初期化処理やデータ退避の設計が重要になります。
I/O:外部機器とつながる入出力
I/OはInput/Outputの略で、マイコンが外部と信号をやり取りするための端子や機能です。
入力では、スイッチ、センサ、エンコーダ、通信信号などを読み取ります。出力では、LED、リレー、モータドライバ、ブザー、表示器などを動かします。
デジタルI/OはON/OFFを扱う入出力です。
一方、アナログ入力を扱う場合は、A/D変換器を使って電圧を数値に変換します。
例えば、温度センサの電圧を読み取り、一定温度を超えたらファンを回す処理では、A/D変換とデジタル出力が組み合わされます。
3. マイコンとCPU・マイコンボード・PLCの違い
マイコンを調べていると、CPU、MPU、マイコンボード、PLCといった似た言葉が出てきます。
これらは混同されやすいですが、実務では役割が異なります。
| 用語 | 意味 | 主な用途 |
|---|---|---|
| CPU | 命令を実行する演算・制御部分 | パソコン、サーバ、マイコン内部 |
| マイコン | CPU・メモリ・I/Oを1チップに統合した制御用IC | 家電、自動車、産業機器、IoT機器 |
| マイコンボード | マイコンを基板に実装し、電源や端子を扱いやすくしたもの | 試作、教育、評価、簡易制御 |
| PLC | 工場設備向けの制御装置 | 生産設備、搬送装置、シーケンス制御 |
| MPU | 外部メモリやOSと組み合わせて使う高性能プロセッサ | Linux機器、画像処理、情報端末 |
最も重要なのは、CPUは部品の一部であり、マイコンはCPUを含む制御用ICであるという点です。
つまり、マイコンの中にCPUが入っています。
CPUとマイコンの違い
CPUは、命令を実行する演算装置です。
単体のCPUだけでは、プログラムを保存するメモリや外部信号を扱うI/Oが必要になります。
一方、マイコンはCPUに加えて、Flash、RAM、タイマ、A/D変換器、通信機能、I/O端子などを内蔵しています。
そのため、外付け部品を少なくして制御回路を構成できます。
パソコンのCPUは高性能な汎用処理を目的に設計されます。
マイコンは、処理性能よりも、低消費電力、リアルタイム性、入出力制御、コストを重視して選ばれることが多いです。
マイコンとマイコンボードの違い
マイコンはICそのものです。
一方、マイコンボードは、そのICを基板に実装し、USB端子、電源回路、ピンヘッダ、発振回路などを追加した開発・評価用の基板です。
Arduino、Raspberry Pi Pico、各社の評価ボードなどは、マイコンを扱いやすくしたボードの代表例です。
試作や学習ではマイコンボードが便利ですが、量産製品では基板上にマイコンICを直接実装することが一般的です。
マイコンとPLCの違い
PLCは、工場設備の制御に特化した産業用コントローラです。
ノイズ、温度、振動、保守性、安全性を考慮した筐体や入出力ユニットを備え、ラダー図などでプログラムされることが多いです。
マイコンは、製品内部の制御基板や専用装置に組み込まれるICです。
ハードウェア設計、基板設計、組込みソフトウェア設計を含めて作り込む必要があります。
| 比較項目 | マイコン | PLC |
|---|---|---|
| 主な用途 | 製品内部の組込み制御 | 工場設備の制御 |
| 開発言語 | C言語、C++、アセンブリなど | ラダー図、ST言語など |
| ハード設計 | 自社で回路設計することが多い | 市販ユニットを組み合わせることが多い |
| 量産性 | 大量生産でコストを下げやすい | 設備単位の構成に向く |
| 保守性 | 設計者依存になりやすい | 現場保全で扱いやすい |
設備制御の考え方を理解したい場合は、シーケンス制御の記事もあわせて読むと、PLCとの関係が整理しやすくなります。
また、位置検出を使う制御では、エンコーダやレゾルバと組み合わせて理解すると実務に近づきます。
4. マイコンが動く仕組み
マイコンは、電源が入ると決められた手順で初期化され、メモリ上のプログラムを順番に実行します。
基本的な流れは、入力を読む、判断する、出力する、必要なら待つ、という繰り返しです。
この一連の動作は単純に見えますが、実際の製品では割り込み、タイマ、通信、異常監視を組み合わせて動作しています。
電源投入からプログラム実行まで
マイコンに電源が入ると、まずリセット状態から起動します。
その後、クロック設定、I/O設定、メモリ初期化、周辺機能の初期化を行い、メイン処理に入ります。
一般的な組込みプログラムでは、メイン処理の中で無限ループを回します。
そのループ内で、入力信号の確認、条件判定、出力更新、通信処理などを繰り返します。
クロックが処理速度を決める
マイコンはクロック信号に同期して動作します。
クロック周波数が高いほど、基本的には多くの命令を短時間で実行できます。
ただし、クロックを高くすれば消費電力やノイズが増える傾向があります。
電池駆動の機器では、必要な処理だけ高速に行い、待機時は低速クロックやスリープモードに切り替える設計が重要です。
タイマと割り込みで正確に動かす
マイコン制御では、決められた周期で処理を実行することがよくあります。
例えば、1msごとにセンサを読む、10msごとにスイッチを確認する、100msごとに表示を更新する、といった処理です。
この周期処理に使われるのがタイマです。
タイマ割り込みを使うと、メイン処理の途中でも決められたタイミングで優先処理を実行できます。
ただし、割り込み処理を長くしすぎると、他の処理が遅れます。
そのため、割り込み内ではフラグを立てる程度にとどめ、重い処理はメインループ側で行う設計が基本です。
5. メモリの種類とプログラム保存
マイコンのメモリは、製品の安定動作を左右します。
プログラムが入らない、通信バッファが足りない、ログ保存ができないといった問題は、開発後半で発覚すると手戻りが大きくなります。
メモリは「容量が足りるか」だけでなく、「何をどこに保存するか」を意識して設計する必要があります。
| メモリ種類 | 特徴 | 主な用途 |
|---|---|---|
| Flash | 電源を切っても消えない | プログラム、固定データ |
| RAM | 電源を切ると消えるが高速 | 変数、スタック、通信バッファ |
| EEPROM | 書き換え可能な不揮発メモリ | 設定値、校正値、使用履歴 |
| ROM | 書き換えを前提としない固定メモリ | 固定プログラム、量産品の専用用途 |
組込み開発で特に注意したいのはRAM容量です。
Flash容量はコンパイル後のプログラムサイズで比較的見積もりやすいですが、RAMは通信、割り込み、スタック、ライブラリ使用量で不足しやすいです。
Flash容量の考え方
Flashには、制御プログラムそのものが保存されます。
機能が増えるほど、プログラムサイズは大きくなります。
通信プロトコル、暗号処理、ファイル管理、表示処理などを入れる場合は、単純なON/OFF制御よりも大きなFlash容量が必要です。
将来の機能追加や不具合修正を考えるなら、初期設計でFlashを使い切らないことが重要です。
目安として、量産時点で容量の大部分を使い切っていると、後から仕様変更が入ったときにマイコン変更が必要になる可能性があります。
RAM容量の考え方
RAMには、変数、配列、通信バッファ、スタック、一時データが置かれます。
特に通信系の処理では、受信バッファや送信バッファを十分に確保しないと、データ欠落や処理遅延が発生します。
スタック不足にも注意が必要です。
関数呼び出しが深い、割り込みが多い、大きなローカル配列を使うといった設計では、スタックが不足して原因不明の暴走につながることがあります。
不揮発メモリに何を保存するか
電源を切っても残したいデータは、不揮発メモリに保存します。
代表例は、個体ごとの校正値、通信アドレス、しきい値、使用回数、エラー履歴などです。
ただし、不揮発メモリには書き換え回数の寿命があります。
頻繁に書き換えるログやカウンタを保存する場合は、書き込み回数を分散するウェアレベリングや、一定周期でまとめて保存する設計が必要です。
6. I/Oと周辺機能の基本
マイコンの実務では、CPU性能以上にI/Oと周辺機能が重要になることがあります。
なぜなら、組込みシステムでは「何を読み、何を動かすか」が製品機能そのものになるからです。
同じCPU性能でも、必要なA/D変換器、PWM、通信インターフェース、タイマが足りなければ、そのマイコンは使えません。
| 周辺機能 | 役割 | 使用例 |
|---|---|---|
| GPIO | デジタル入出力 | スイッチ入力、LED出力、リレー制御 |
| A/D変換 | アナログ電圧を数値に変換 | 温度、圧力、電流、電圧の測定 |
| D/A変換 | 数値をアナログ電圧に変換 | アナログ指令、音声、基準電圧 |
| PWM | ON/OFF比率で疑似的に出力を調整 | モータ速度制御、LED調光、ヒータ制御 |
| UART | シリアル通信 | デバッグ、外部モジュール通信 |
| I2C | 少ない配線で複数デバイスと通信 | 温度センサ、EEPROM、RTC |
| SPI | 高速な同期式通信 | 表示器、A/D変換IC、Flashメモリ |
| CAN | 耐ノイズ性を重視した車載・産業通信 | 自動車ECU、産業機器ネットワーク |
I/Oピンは単なる端子ではありません。
多くのマイコンでは、1つのピンにGPIO、A/D入力、通信、PWMなど複数の機能が割り当てられています。
そのため、ピン配置を確認せずに回路設計を進めると、後から「必要な機能が同じピンに重なっていた」という問題が起きます。
デジタル入力とチャタリング
押しボタンや機械式スイッチは、ON/OFFが一瞬できれいに切り替わるわけではありません。
接点が細かく跳ねることで、短時間にON/OFFが繰り返される現象をチャタリングと呼びます。
チャタリングを対策せずに入力を読むと、1回押しただけなのに複数回押されたと判定されることがあります。
実務では、一定時間同じ状態が続いた場合だけ確定するソフト処理や、RC回路によるハード処理を組み合わせます。
A/D変換と分解能
A/D変換器は、アナログ電圧をデジタル値に変換します。
例えば12ビットA/D変換器であれば、入力範囲を 段階に分けて読み取れます。
ただし、分解能が高いからといって、そのまま測定精度が高いとは限りません。
基準電圧の精度、ノイズ、センサ誤差、配線、基板レイアウトの影響を受けるためです。
量産品では、A/D値をそのまま信じるのではなく、フィルタ処理、平均化、校正値補正を入れて安定化させることが多いです。
PWMとモータ制御
PWMは、一定周期の中でONしている時間の割合を変えることで、出力の平均値を制御する方式です。
LEDの明るさ、DCモータの速度、ヒータの出力制御などで広く使われます。
モータ制御では、PWM出力をモータドライバに入力し、回転速度やトルクを調整します。
ステッピングモータやサーボ機構と組み合わせて理解すると、マイコン制御の具体的なイメージがつかみやすくなります。
モータ制御の基礎をあわせて確認したい場合は、ステッピングモーターの記事も参考になります。
7. 組込みシステムにおけるマイコンの用途
マイコンは、組込みシステムの中心に配置されることが多い部品です。
組込みシステムとは、特定の機能を実現するために製品や装置の内部に組み込まれたコンピュータシステムを指します。
パソコンのようにユーザーが自由にアプリを入れるのではなく、製品の機能を実現するために専用設計されます。
センシングと判断
マイコンは、温度、圧力、電流、位置、回転数、光、湿度など、さまざまなセンサ情報を読み取ります。
読み取った値をもとに、しきい値判定、異常判定、平均化、補正、通信送信などを行います。
例えば、温度が上がったらファンを回す、電流が大きくなったら停止する、位置が目標値に達したらモータを止める、といった処理です。
位置検出の考え方を深めたい場合は、ポテンショメーターやエンコーダの知識が役立ちます。
リアルタイム制御
組込みシステムでは、決められた時間内に処理を完了することが重要です。
これをリアルタイム性と呼びます。
例えば、モータ制御では一定周期でセンサ値を読み取り、制御出力を更新しなければなりません。
処理が遅れると、振動、発熱、停止位置ずれ、通信エラーにつながることがあります。
マイコン開発では、平均的に速いだけでなく、最悪条件でも時間内に終わるかを確認する必要があります。
省電力制御
電池駆動の機器では、省電力制御が重要です。
マイコンには、スリープ、スタンバイ、低速クロック動作など、消費電力を下げる機能があります。
必要なときだけセンサを起動し、通信が終わったら無線モジュールを止め、待機中はマイコンをスリープさせる。
このような設計により、電池寿命を大きく延ばすことができます。
8. マイコン選定で見るべきポイント
マイコン選定では、CPU性能だけを見ると失敗します。
実際には、必要なI/O、メモリ容量、電源電圧、周辺機能、開発環境、入手性、量産コストまで含めて判断します。
| 確認項目 | 見るべき内容 | 見落とすと起きる問題 |
|---|---|---|
| 処理性能 | クロック、CPUコア、割り込み性能 | 周期処理が間に合わない |
| Flash容量 | プログラムと固定データの容量 | 機能追加で容量不足になる |
| RAM容量 | 変数、バッファ、スタックの容量 | 暴走、通信欠落、原因不明の停止 |
| I/Oピン数 | 入力、出力、通信、A/Dの必要数 | ピン不足、機能割当の衝突 |
| 周辺機能 | タイマ、PWM、A/D、通信、DMA | 外付け部品が増え、コストが上がる |
| 電源・消費電力 | 動作電圧、低消費電力モード | 電池寿命不足、発熱増加 |
| 開発環境 | コンパイラ、デバッガ、サンプルコード | 開発工数が増える |
| 量産性 | 価格、供給安定性、パッケージ | 量産時の入手難やコスト増 |
初学者ほど、クロック周波数やビット数に目が行きがちです。
しかし、実務では「必要な周辺機能が過不足なく入っているか」「基板に実装しやすいか」「デバッグしやすいか」の方が重要になることも多いです。
必要I/Oを先に数える
マイコン選定では、最初に必要な入出力を洗い出します。
スイッチ入力が何点あるか、LEDやリレー出力が何点あるか、A/D入力が何点あるか、通信は何系統必要かを表にします。
そのうえで、兼用ピンの重複、デバッグ端子、将来拡張用の予備ピンを考慮します。
必要数ぴったりで選ぶと、仕様変更時に詰まりやすいため、ある程度の余裕を持たせることが大切です。
開発しやすさも性能の一部
量産品ではコストが重要ですが、試作や新規開発では開発しやすさも大きな判断材料です。
サンプルコード、評価ボード、デバッガ、技術資料、既存資産がそろっているマイコンは、立ち上げが速くなります。
逆に、部品単価が安くても、情報が少なくデバッグが難しいマイコンを選ぶと、開発工数でコストメリットが消えることがあります。
9. マイコン開発でよくあるトラブル
マイコンは小さな部品ですが、ソフトウェア、回路、電源、ノイズ、タイミングが密接に関係します。
そのため、トラブルが起きたときは「ソフトだけ」「ハードだけ」と決めつけず、切り分けて確認することが重要です。
| トラブル | 主な原因 | 対策 |
|---|---|---|
| 起動しない | 電源、リセット、クロック、書き込み不良 | 電圧波形、リセット端子、発振状態を確認する |
| 時々暴走する | ノイズ、スタック不足、未初期化変数 | ウォッチドッグ、メモリ確認、ノイズ対策を行う |
| 入力が不安定 | チャタリング、プルアップ不足、配線ノイズ | フィルタ処理、プルアップ、GND設計を見直す |
| 通信が失敗する | 速度不一致、バッファ不足、配線品質 | 波形、通信設定、受信処理時間を確認する |
| A/D値がばらつく | 基準電圧、ノイズ、センサ配線 | 平均化、フィルタ、アナログGND設計を行う |
| 量産で不良が増える | 部品ばらつき、温度条件、書き込み条件 | 許容差設計、検査治具、校正工程を整える |
特に「時々起きる不具合」は、再現条件を見つけるまで時間がかかります。
発生頻度、温度、電源電圧、動作状態、外部負荷、通信状態を記録し、条件を絞り込むことが重要です。
ウォッチドッグタイマの役割
ウォッチドッグタイマは、マイコンが正常に動いているかを監視する仕組みです。
プログラムが定期的にウォッチドッグをリセットしないと、マイコン自身が異常と判断して再起動します。
これは、ノイズやソフト不具合でプログラムが停止したままになることを防ぐ安全策です。
ただし、ウォッチドッグを入れれば根本原因が消えるわけではありません。
再起動で復帰させる設計と、異常履歴を残して原因追跡できる設計をセットで考える必要があります。
ノイズ対策は基板設計とソフトの両方で行う
マイコンはデジタル回路ですが、実際の製品ではモータ、リレー、ソレノイド、電源回路などからノイズを受けます。
ノイズが入力ピンや電源に乗ると、誤動作、通信エラー、A/D値のばらつき、リセット発生につながります。
ハード面では、GND設計、デカップリングコンデンサ、配線長、シールド、フィルタが重要です。
ソフト面では、入力値の複数回確認、平均化、異常値除外、通信リトライなどが有効です。
10. よくある質問
Q1. マイコンとCPUの違いは何ですか?
CPUは命令を実行する演算・制御部分です。
マイコンは、そのCPUに加えて、メモリ、I/O、タイマ、通信機能などを1つのICにまとめた制御用コンピュータです。
つまり、CPUはマイコンの一部であり、マイコンはCPUを含むより大きな機能ブロックです。
Q2. マイコンとマイコンボードは同じですか?
同じではありません。
マイコンはICそのものです。マイコンボードは、そのICを基板に実装し、電源回路やUSB端子、入出力端子を追加して扱いやすくしたものです。
学習や試作ではマイコンボードが便利ですが、量産製品では専用基板にマイコンICを実装することが一般的です。
Q3. マイコンのプログラムはどこに保存されますか?
多くの場合、プログラムはマイコン内部のFlashメモリに保存されます。
Flashは電源を切っても内容が消えないため、電源を入れるたびに同じプログラムを実行できます。
処理中の変数や一時データはRAMに置かれます。
Q4. マイコンを選ぶときは何を見ればよいですか?
CPU性能だけでなく、Flash容量、RAM容量、I/Oピン数、A/D変換、PWM、通信機能、電源電圧、消費電力、開発環境、入手性を確認します。
特に実務では、必要なI/Oと周辺機能が足りているかを先に確認することが重要です。
Q5. マイコンはPLCの代わりになりますか?
用途によっては代わりになりますが、単純に置き換えられるものではありません。
PLCは工場設備向けに保守性や耐環境性を重視した装置です。マイコンは製品内部に組み込む専用制御に向いています。
量産製品や小型機器ではマイコン、工場設備の制御盤ではPLCが適することが多いです。
11. まとめ
マイコンとは、CPU・メモリ・I/Oなどを1つのICにまとめた、組込み制御用の小型コンピュータです。
パソコンのような汎用処理ではなく、製品や装置の中で決められた制御を安定して実行することを目的に使われます。
マイコンを理解するうえでは、CPU、Flash、RAM、I/O、タイマ、A/D変換、PWM、通信機能の役割を分けて考えることが重要です。
特に実務では、処理速度だけでなく、必要な入出力点数、周辺機能、メモリ容量、電源条件、開発環境、量産性まで含めて選定する必要があります。
また、マイコンはソフトウェアとハードウェアが密接に関係する部品です。
不具合が起きたときは、プログラム、電源、リセット、クロック、ノイズ、I/O回路を切り分けて確認する姿勢が欠かせません。
組込みシステムを学ぶ第一歩として、まずはマイコンの基本構成を理解し、次にI/O、割り込み、通信、モータ制御へと知識を広げていくと、実務で使える理解につながります。