マイクロコントローラ完全ガイド

このガイドでは、マイクロコントローラは何に使われるのか、また、さまざまな種類とアーキテクチャについて紹介しています。

Microcontrollers Banner

テクニカルサポートエンジニア Mithun Subbaroybhat氏のレビュー(2021年2月)。

マイクロコントローラとは?

マイクロコントローラ(MCUまたはMCと略されます)は、1チップで全てが完結する極めて小さなマイクロコンピュータです。

マイクロコントローラは、簡略化されたコンピュータ、一般に単一の基本プログラムを繰り返し実行するように設計されたものと定義することができます。マイクロコントローラは通常、ユーザーが事前にプログラムした単一の自動化タスクを1つのデバイスで実行することを目的としています(一般的には、時間制限のあるループで行うこともあります)。

これは、マイクロプロセッサやCPUが扱う汎用性の高いアプリケーションに対して、組み込み型アプリケーションと呼ばれるものになります。

マイクロコントローラは、その主要なコンポーネントの一つとしてマイクロプロセッサを含んでいますが、一般的に、ほとんどのスタンドアロン製品よりも簡略化されています。それは、マイコンユニットは一般に、極めて特殊な1つの仕事をこなすことに限定されているからです。つまり、マイクロプロセッサのような多彩な機能は必要とされていません。

そのため、マイコンはプリント回路基板を介して他の部品や電子回路と連携して動作するのが基本です。このマイクロコントローラーとPCBを組み合わせた機器は、さまざまなシステムや部品の動作を制御・監視し、動作させるという重要な役割を担っています。

マイクロコントローラの種類

マイクロコントローラには多くの製造ブランドやプログラミング・アーキテクチャがありますが、現在使用されているMCUは3種類に分類されます。以下の3つになります。

8-bit Microcontroller

8ビットマイクロコントローラ

16-bit Microcontroller

16ビットマイクロコントローラ

32-bit Microcontroller

32ビットマイクロコントローラ

3つのマイコンの大きな違いは、それぞれのデータパイプの幅であるバス幅にあります。

これは結局のところ、マイクロコントローラの速度と数学的精度を規定する重要な仕様である。つまり、8ビットマイコンは、16ビットや32ビットの計算を行うために、バスアクセスの回数が増え、命令数も多くなります。そのため、16ビットや32ビットのマイクロコントローラに比べて、答えに到達する(=出力動作)が非常に遅くなります。

コンピュータ用語で言えば、より高速で高性能なCPUではなく、低速なCPUで見られるのと同じ種類の制限です。これらの重要な基準は、マイクロコントローラ・ユニットで快適に使用できるプログラミング言語の選択と範囲に影響します。C++、Python、R、Arduinoなど、マイコンはさまざまなプログラミング言語と幅広く互換性がありますが、具体的な内容はデバイスに依存することになります。

8 ビットの MCU は、最も基本的でコスト効率の高い選択肢と考えられてきましたが、アプリケーションによっては機能が制限されることがあります。16ビットや32ビットのマイクロコントローラは、一般的に高価ですが、それに見合うだけの性能を備えています。

マイクロコントローラ応用製品

マイクロコントローラは、様々なアプリケーションや産業分野で急速に普及し、現在では多くのテクノロジーやガジェットに搭載されています。センサー、ディスプレイ、ユーザー・インターフェース、プログラマブル出力制御またはアクチュエーターを含む様々な電子機器に、MCUが使われています。

一般的なマイクロコントローラの機能、アプリケーション、使用環境には、以下のようなものがあります。

  • オートメーションとロボティクス

  • 家電・家庭用電化製品

  • 医療機器・理化学機器(携帯型診断装置、スキャナー、X線装置、測定・分析・監視装置など)

  • 自動車産業および車両制御システム(パワートレイン調整、マルチメディアコンソール、ナビゲーションソフトなど)

  • 産業・生産環境制御(暖房と照明、 HVACシステムと安全ロック機構)

  • IoT機器・システム

マイクロコントローラは何をするものなのか?

デバイスやシステムの機能する回路の一部としてインストールされた場合、マイクロコントローラボードは、接続されたコンポーネントやその環境から検出したさまざまなイベント、動作、入力信号を感知、監視、応答することができます。

例えば、マイクロコントローラは、特定の入力基準に応答して、特定のタイプの出力信号または動作制御をプッシュするようにプログラムされるかもしれません。これには、次のようなタスクが含まれる可能性があります。

  • LEDの点灯、有機ELディスプレイのタッチ操作

  • 温度センサーや各種アラーム・警告システムで光や音を再生

  • ポンプなどの機械装置でモーターをオン・オフ

  • ジャイロスコープや加速度センサーを使用したアプリケーションにおける傾き、バランス、速度の調整

マイクロコントローラの使い方

マイクロコントローラユニット(MCU)は、1つの集積回路(チップ)に組み込まれた非常に小さなコンピュータです。

この点で、インテルやAMDが製造する家庭用コンピュータに搭載されているシステムオンチップ(SoC)マイクロコントローラは、IntelやAMDが製造する家庭用コンピュータに搭載されているのと同じようなものです。しかし、マイクロコントローラは、平均的なSoC(SoCは多くのコアコンポーネントの中に1つまたは複数のマイクロコントローラボードを含むことが多い)よりもシンプルな製品です。

マイクロコントローラは、非常にシンプルなSoCと同じように動作し、さまざまな通信プロトコルを介して外部の刺激や状態を検出して反応することができます。例えば、USB、タッチレスポンス、環境センサーなどです。

特定の入力や信号の検出に反応するように適切にプログラムされていれば、MCUプロセッサを使用して、さまざまな機能やアプリケーションに対応した動作を実行することができます。その範囲は、単純な入出力(I/O)トリガーやコンポーネント制御アルゴリズムから、より複雑な統合システムにおける追加コンポーネントの動作など多岐にわたります。

Microcontroller

また、マイクロコントローラ・デバイスの物理的な構造を理解することも重要です。これにより、マイクロコントローラのプログラミング方法や、マイクロプロセッサ(MP)などの類似部品との違いについて、より深く理解することが可能になります。

マイクロコントローラは、事実上、1つの集積チップに組み込まれた単純なミニコンピュータであるため、より大型で複雑なコンピュータと同じ基本部品の多くを必要とします。マイクロコントローラーの中核部品には、以下のようなものがあります。

  • CPU(中央演算処理装置)。マイコンの頭脳とも言える部品で、MCU内部で行われるすべてのプロセスを制御・監視するマイクロプロセッサーです。論理的・数学的関数の読み取りと実行を担当します。

  • RAM(Random Access Memory)。MCUに実行を指示されたプログラムの実行や計算を助けるために、電源が入っているときだけ使用される一時的な記憶装置です。使用中は常に上書きされます。

  • ROM(Read-Only Memory)。あらかじめ書き込まれた永久メモリで、電源がなくても持続する。マイコンにプログラムの実行を指示します。

  • 内部発振器(MCUのメインタイマー)。マイコンのコアクロックとして機能し、内部処理の実行リズムを制御する部品です。他のタイマーと同様に、処理中の時間経過を記録し、MCUが特定の機能を一定の間隔で開始・終了させるのに役立ちます。

  • I/O (Input/Output) ポート。1つまたは複数の通信ポートで構成され、通常は接続ピンの形をしています。MCUを他の部品や回路に接続し、入出力データ信号や電源の流れを作ることができる。

  • ペリフェラルコントローラチップ(その他オプションのアクセサリやコンポーネント)。MCUが実行するタスクによって異なります。タイマやカウンタを追加したり、PWM(パルス幅変調)ノードを追加するなど、さまざまなものがあります。アナログ-デジタルコンバータ、 デジタル-アナログコンバータ、多数のデータ・キャプチャ・モジュール、フラッシュおよびプログラム・メモリ、さらなるI/Oオプションなど、さまざまなものがあります。

しかし、これらのコンポーネントはすべて、マイクロコントローラでは、パーソナルコンピュータの同等のSoCよりも範囲も容量もはるかに小さくなっています。MCUは、ヘアドライヤーや電卓などの製品で基本的な動作を制御するのが一般的ですが、フルコンピューターのような複雑な機械では、無意味なほど機能が制限されます。

マイクロコントローラアーキテクチャ

マイクロコントローラは3種類しかありませんが、MCUメーカーのブランドやアーキテクチャは多種多様です。

ポピュラーな製品としては、以下のようなものがあります。

  • ARMプロセッサ(ARM Cortex-Mコアを含むARMマイクロコントローラおよび関連コンポーネントを提供するベンダが多数存在します。)

  • マイクロチップ テクノロジー社 Atmel AVRマイクロコントローラ(8-bit)、AVR 32 (32ビット)、AT91SAM (32ビット)

  • マイクロチップ社製PICマイクロコントローラ(8ビット PIC16、PIC18、16ビット dsPIC33、PIC24、32ビット PIC32)

  • Freescale ColdFire (32ビット) および S08 (8ビット)

  • インテル8051マイクロコントローラ

  • パワーPC ISE

  • ルネサスエレクトロニクス(16ビットマイコンRL78、32ビットマイコンRX、32ビットマイコンSuperH、V850、16ビットマイコンH8、R8C)

  • シリコンラボラトリーズ パイプライン型8ビット8051マイクロコントローラ、ミックスドシグナル型ARMベース32ビットマイクロコントローラ

  • Texas Instruments TI MSP430 (16ビット), MSP432 (32ビット), C2000 (32ビット)

  • 東芝TLCS-870(8ビット、16ビット)

  • CISCとRISC(RISC-Vも)

マイクロコントローラ、プロセッサ、マイクロコントローラ開発ボードおよびキットの選択またはプログラミングに関するより詳細な情報およびアドバイスについては、カスタマーサポートにご連絡ください。

Microcontroller Block Diagram

マイクロコントローラブロック図

このブロック図は、8051マイクロコントローラの内部アーキテクチャです。

CPUは、プロセスの管理、同期、レジスタの管理、ROMデータの実行などを行います。他の優先プログラムがシステムバスへのアクセスを要求した場合には、サブルーチンの割り込みコールが使われます。割り込みによって、この追加アクセスが発生するまでの間、現在の処理を遅らせることができます。発振器(図中ではOSCと表記)は、マイコンのデジタル回路のタイマー動作を行います。

マイクロコントローラとマイクロプロセッサの比較

マイクロコントローラとマイクロプロセッサ(MP)またはシステムオンチップ(SoC)を正確に定義することに関しては、しばしば混乱が生じます。

一言で言えば、マイクロコントローラはSoCの簡略化したシングルタスク版です。MCUは、技術的には集積回路の一部としてCPUまたはプロセッサの一種を含んでいますが、それははるかに単純化されたバージョンです。この低消費電力のマイクロプロセッサは、マイクロコントローラ・ユニットの単純なCPUまたは頭脳として効果的に機能し、MCUにプログラムされた単一の役割を果たすための基本的な能力を与えています。

マイクロプロセッサとマイクロコントローラのその他の主な違いを説明する場合、最も簡単な定義は、コンポーネントという言葉で説明することです。真のマイクロプロセッサは、メモリ(RAMまたはROM)やI/Oポートを持たず、より広範な組み込みシステムの一部としてのみ動作することができます。スタンドアロン型マイクロプロセッサに与えられた機能の実行方法を指示する命令セットは、通常、外部に格納されています。マイクロコントローラでは、簡素化されたプロセッサを含むこれらのさまざまなコンポーネントがすべて、自己完結型の単一ユニットにまとめられています。

マイクロコントローラとマイクロプロセッサの性能は、次のように分類されます。

マイクロコントローラ

  • 非常にシンプルなCPUやマイクロプロセッサを搭載した完全な自己完結型ユニットである

  • 事前にプログラムされた、単一の特定のアプリケーションに使用されます。

  • 性能面では特に強力ではなく、通常、わずかな電力しか消費せず、統合されたデータストレージの容量もほとんどありません

  • 有意義な役割を果たすにはプログラムが必要

  • 特別にプログラムされた範囲外では動作できない(そのために書かれたコードとその品質が、その性能を決定する)。

  • 一般に、一つの作業を繰り返し行うように設計された特定の装置または機器に使用されることを意図している。

マイクロプロセッサー

  • 機能範囲においてより複雑で汎用性があり、(1つのタスクに特化したデバイスではなく)より一般的なコンピューティングでの利用を意図している。

  • MCUよりも高速なプロセッサ(クロック)を持ち、単位はHzではなくギガヘルツ(GHz)であることが多い

  • 比較的シンプルで安価なマイクロコントローラと異なり、製造が困難で高価である。

  • 動作のためにはるかに多くの外部コンポーネント(RAM、I/Oポート、データストレージ、EEPROMまたはフラッシュメモリ)が必要で、どれもMPに統合されていないため、別途購入し接続する必要があります。

  • 消費電力が高く、継続的に使用する場合の費用対効果が低い。

よくあるご質問

小型マイコンとはどんなサイズか?

マイクロコントローラーは、機能を損なうことなく、可能な限りコンパクトに設計された非常に小さなマイクロコンポーネントです。多くの標準的なMCUの代表的な寸法は、高さが0.5mmから4.95mm、長さが4mmから35.56mmとなっています。しかし、これは他の多くの要因や要件によって大きく変化することに留意する必要があります。最も小さいマイクロコントローラの寸法は、高さ0.15mm、長さ1.06mmです。

最適なマイクロコントローラは?

最適なマイクロコントローラは、最終的にはプロジェクトの要件によって決まります。マイコンデバイスの選択を検討する際には、以下のようないくつかの重要な要素を考慮する必要があります。

  • 温度耐性

  • アーキテクチャ

  • メモリ容量

  • 価格と費用対効果

  • 効率性(性能対消費電力)

  • セキュリティ

  • ブランドまたはメーカー

  • 処理能力

  • インターフェース

  • 最大周波数(MHz)

マイクロコントローラーとPLCの違いとは?

プログラマブル・ロジック・コントローラ(PLC)はマイクロコントローラに似ていますが、より大きく、より高速で、より信頼性が高い製品です。PLCは、より複雑なコンポーネントで、さまざまな高性能アプリケーションに適しています。一方、マイクロコントローラは、基本的で単純なもので、より小型で低消費電力の用途に適しています。

マイクロコントローラの歴史とは?

マイクロコントローラは、1970年代初頭に発明され、1974年に商品化されました。テキサスインスツルメンツ社のエンジニア、ゲイリー・ブーンは、現代のマイクロコントローラの最初のコンセプトを発明したとされています。偶然にも、この時期、最初のマイクロプロセッサも開発されていました。

関連ガイド