マイクロコントローラーとマイクロプロセッサーの違いは何ですか?


回答:


191

マイクロプロセッサには通常、RAM、ROM、およびIOピンがありません。通常、ピンをバスとして使用して、RAM、ROM、シリアルポート、デジタルおよびアナログIOなどの周辺機器に接続します。これにより、ボードレベルで拡張可能です。

マイクロコントローラは「オールインワン」であり、プロセッサ、RAM、IOがすべて1つのチップ上にあるため、使用可能なRAMの量やIOポートの数を増やすことはできません。制御バスは内部にあり、ボード設計者は利用できません。

これは、マイクロプロセッサは一般に、マイクロコントローラよりも大きな汎用アプリケーションに組み込むことができることを意味します。マイクロコントローラは通常、より専用のアプリケーションに使用されます。

これらはすべて非常に一般的な説明です。境界を曖昧にするチップが利用可能です。


4
多くのマイクロコントローラは、外部コードおよびデータ用にメモリバスを使用可能にします。外部メモリを使用しない場合、これらのピンは他の目的に使用できる場合と使用できない場合があります。私の考えでは、定義の違いは、デバイスが通常、外部メモリバスなしで少なくともある程度有用に実行できるかどうかです。)8051は確かに機能するので、明らかに「マイクロコントローラー」です。8031は8051と同じチップですが、ROMの内容は指定されていません。有用なROMがなければマイクロプロセッサになりますが、8051と同じチップであるため、マイクロコントローラと呼ぶことができます。
スーパーキャット

2
「制御バスは内部にあり、ボード設計者は利用できません。」それは必ずしも真実ではありません。追加のメモリを可能にする外部アドレス/データバスを備えたマイクロコントローラが存在します。
-stevenvh

それでは、マイクロコントローラーは基本的にコンピューターであり、マイクロプロセッサーは単にCPUのシングルチップ実装であると言えますか?
doubleOrt

@doubleOrt:そのように言えますが、境界がぼやけています。最近では、揮発性データメモリ(SRAM)を含むが不揮発性コードメモリ(Flash)を含まないチップがかなりあります。多くの場合、MPU(マイクロプロセッサ)とも呼ばれます。そのため、この区別は主に最近のオンチップフラッシュに関連しているようです。NXPは、RAMを備えた「クロスオーバー」プロセッサと呼ばれるものを販売していますが、フラッシュはありません。これは、より小さなトランジスタを搭載したチップにFlashを統合する難しさが増していることに関係しています。電流制限は約28 nmのようです。
sh-

29

前述のように、マイクロコントローラーは本質的にチップ上のシステムです。一部の特殊な周辺機器を除き、すべてが1つのパッケージに収められています。外部周辺機器へのインターフェースは、ほとんど常にシリアル接続を使用して行われます。これにより、パッケージサイズが小さくなり(ピンが少なく)、PCBサイズが小さくなります(パッケージ間を接続するためのピンが小さくなります)。

前回のボストンバーキャンプ(MIT 2009)で、「マイクロコントローラーの紹介」講演を行いました。配布資料のコピーは

http://www.luciani.org/not-quite-ready/doc/intro-to-uC.pdf


25

マイクロコントローラー:

  • 通常は8ビットですが、4、16、または32ビットの場合があります
  • 200 MHz未満の速度で実行する
  • 非常に少ない電力を使用します
  • LEDを動作させるのに十分な電流を提供する場合があります
  • センサーやモーターとのインターフェースに便利です
  • 容易に交換でき、安価(0.10〜10ドル)
  • RAMと永続ストレージ(フラッシュスペース)の制約が非常に強い
  • エレクトロニクス愛好家にとって本当に素晴らしい

マイクロプロセッサー:

  • 多くの場合、少なくとも16ビット、通常は32ビットまたは64ビットですが、8ビットは依然として大きな市場シェアを持っています
  • 多くはハードウェアで浮動小数点演算を行うことができます
  • 数百MHzで測定された速度で実行
  • システムの頭脳になるように設計されています(そしてそれらをサポートするためにシステム全体が必要です)
  • センサー、モーター、LEDなどと接続するための特別なハードウェアが必要です。
  • 高価です(32ビットまたは64ビットで50ドルから250ドルと考えてください)
  • 外部RAMおよび永続ストレージ(ハードドライブ)用に設計されています
  • 趣味で扱うほど簡単ではない

LEGO Mindstorms NXTセットには、思考を行うためのマイクロプロセッサ[32ビットAT91SAM7S256(ARM7TDMI)メインマイクロプロセッサ@ 48 MHz(256 KBフラッシュメモリ、64 KB RAM)]とマイクロコントローラ[8ビットATmega48マイクロコントローラー@ 4 MHz(4 KBフラッシュメモリ、512バイトRAM)]センサーとモーターとのインターフェース用。ウィキペディアの技術仕様を参照してください。


2
8ビットが支配的なマイクロプロセッサですが、最も一般的なマイクロプロセッサとはほど遠いもので、今年の初めに読んで、市場シェアの50%以上を占めていないと考えました。
Kortuk

3
実際、私はマイクロコントローラのリストの大部分に同意しないと言いたいです。彼らがシステムに入れる安価なもののほとんどは1ドルもかかりません、多くはブランドに依存して、LEDに電力を供給する電流を提供できません。20MHzを破る非常に大きなグループもありますが、一般にその仕様を満たします。ホビイストにも最適だと思います。
Kortuk

私はいくつかの改訂を取り入れ、私の回答をコミュニティWikiにしました。
クリントンブラックモア

3
AT91SAM7S256は間違いなくマイクロコントローラーでもマイクロプロセッサーでもありません。
jpc

4
これを編集して投稿しましたが、実際に償還できるとは思いません。この質問に対する受け入れられた答えには違いの本質があり、それは基本的に「統合メモリ」または「統合メモリなし」です。このロットの多くは一般化のリストであり、その多くは単純に間違っていると思う。

13

この区別は、デバイスの全範囲が両極端の間で発生しているため、最近作るのがはるかに難しいものですが、機能するように見える識別子が1つある場合、ピンアウトを見て、デザイナーが何見るかですピンでやった。ほとんどは個別のI / Oですか?それともバスが支配的ですか?

私の考えでは、マイクロコントローラーは従来、1チップソリューションとして機能するものでした。いくつかの避けられないディスクリートといくつかのコネクタを備えたPCBに1つを置き、少量のソフトウェアを書くと、システムができます。マイクロコントローラには、システムが必要とする揮発性メモリではなく、すべてのメモリが含まれています。この利便性のために支払われた価格は、手元にはあまりないということです。ほとんどのピンはI / O機能専用です。

一方、他の極端な場合、マイクロプロセッサは、CPUコアのスループットを最大化するためにシリコンを専用にするために、可能な限りチップをサポートするためにオフロードする獣です。この種類のデバイスのピンのほとんどは、コアにないメモリおよびI / Oデバイスに接続するために必要なアドレスおよびデータラインです。

設計者がいずれかの哲学を明確に固守している場合でも、マイクロプロセッサーやマイクロコントローラーと呼ぶことができます。Intel Core i7は明らかにプロセッサーであり、PICとAVRは明らかにコントローラーです。ただし、この時点で、単一のチップに配置できるロジックの量により、1990年のマイクロプロセッサシステム全体を単一のチップに簡単に埋め込むことができます。割り込みコントローラー、SDRAMコントローラー、イーサネットサポート、その他の周辺機器をすべて1つのチップに搭載した400MHz PPC604とは何ですか?


>割り込みコントローラー、SDRAMコントローラー、イーサネットサポート、その他の周辺機器をすべて1つのチップに搭載した400MHz PPC604とはどういうものですか?=>「脂肪マイクロプロセッサ」と呼んでいます。ROMやRAMはありませんので、間違いなくマイクロコントローラーではありません。
はWouterバンOoijen

2
@Wouter van Ooijen-言及すべきだったと思いますが、私はそれを「チップ上のシステム」と呼びます。
ジャストジェフ


5

主にマーケティング。

他にも奇妙な用語がいくつかあります。アナログ・デバイセズは、マイクロプロセッサを内蔵したADC / DACのような「マイクロコンバータ」と呼ばれる(または持っていた)TIのDSP(C2000シリーズ)デジタル信号コントローラの一部を呼んでいます。

そうでなければ、JohnCが言ったこと。


これらの「マイクロコンバーター」の詳細はどこで入手できますか?私が見つけた最も近いものはTAS3202です。
エンドリス

彼らはそれを呼ぶのをやめたかもしれません。analog.com/en/analog-microcontrollers/analog-microcontrollers / ... ADIのマイクロプロセッサに感銘を受けたことは一度もありません。アナログ製品は優れており、DSPは優れているはずですが、その経験はありません。 。
ジェイソンS

最大サンプリングレートは8 kHzなので、オーディオには役立ちません。:/
エンドリス

2
私はそれがほとんどマーケティングであることに同意しません。JohnCの回答に同意します。
ダニエルグリロ

5

マイクロコントローラは、少なくともいくつかの変形では、外部メモリなしでいくつかの有用な機能を実行できる十分な内部メモリと回路を含むデバイスであることをお勧めします。このような定義により、8051にはそれ自体で役立つ十分な回路があり、8031にはありません。ただし、8031は内部ROMの内容が指定されていない8051にすぎません(一部の「ROMなし」8031チップおよびバリアントはROMスペースをダイから外す可能性がありますが、 ROMを含むバージョンとダイレイアウトの一貫性のために、無用のブランクROMアレイを含めます)。


4

上記の優れた回答をすべて追加するだけで、アナロジー:マイクロプロセッサーは頭脳です。マイクロコントローラーは全身です。

Brainはすべての指示を実行できますが、Eyes、Hands(つまり、Peripherals)を外部にアタッチする必要があります。

身体には脳やその他の周辺機器、つまりマイクロコントローラーがあります:)


3

行は多少ぼやけていますが、一般的には次のようになります。

  • マイクロプロセッサには、プロセッサコア(フェッチ/デコードユニット、ALU、レジスタなど)と基本的なブロックがいくつか含まれていますが、通常はそれ以上ではありません。

  • マイクロコントローラーは、RAM(SRAM)、通常はコード保存用のいくつかのROM(マスクROMまたはFlash / EEPROMでも可)、および基本的な周辺機器(SPI / I2C、UART、GPIO、さらにはUSBまたはイーサネットなど)。これはSystem-on-Chip(SoC)と呼ばれることもあれば、SoCがさらに統合されていることもあります。一部の日本企業は、「マイクロコンピューター」という用語も大好きです。

    ただし、前述したように、線がぼやけます。たとえば、最近のIntel / AMDプロセッサは、チップにメモリコントローラーを追加します(以前はチップセットにありました)。

    ところで、私は実際に8086をマイクロプロセッサと呼びます(Intelのマイクロコントローラには、8051や80186などが含まれます)。


2

マイクロコントローラーとマイクロプロセッサーの違い

  1. マイクロプロセッサー= cpu; マイクロコントローラー= cpu +周辺機器+メモリ周辺機器=ポート+クロック+タイマー+ uarts + adcコンバーター+ lcdドライバー+ dac +その他のもの; メモリ= eeprom + sram + eprom + flash

  2. マイクロプロセッサでは、より多くのオペコード、数ビット処理命令。しかし、マイクロコントローラーでは、命令コードが少なくなり、ビット処理命令が増えます。

  3. マイクロプロセッサはリアルタイムのタスクを処理するようにプログラムされていない場合がありますが、水の温度を制御したり、部屋の温度を測定したりする必要があるデバイスなどのマイクロコントローラはリアルタイムの監視が必要なため、マイクロコントローラが内蔵する一連の命令で動作しますそのままで。


3
これらの情報は、非常に多くの回答がある質問のために、少しランダムであり、あまりよく定式化されていません。例を挙げましょう。マイクロコントローラーにはADC、DAC、LCDドライバーが必要だと言うのは誰ですか?多くの人が持っていますが、それはルールではありません。ビット処理とリアルタイム操作でも同じです。
クラバッキオ

@neelamSingh、サイトへようこそ、あなたの投稿はうまくフォーマットされておらず、途中で途切れているようです。
-Kortuk

2
3番目のポイントは無効です。リアルタイム機能は、プロセッサの種類ではなく、OSによって決定されます。RTOSがマイクロプロセッサで実行されない理由はありません。また、マイクロコントローラには、必ずしもより多くのビット処理命令がありません。
-stevenvh

1

マイクロプロセッサは、シングルチップ上の単純な中央処理装置(CPU)です(「シングルチップ」という単語を思い出してください)。算術論理ユニット(ALU)、制御ユニット(CU)、レジスタ、命令デコーダー、バス制御回路などが含まれますが、すべてが単一チップ上にある必要があります。

マイクロコントローラー:マイクロコントローラーは、マイクロプロセッサーと周辺I / Oデバイス、サポート回路およびメモリー(データとプログラムの両方)の関連付けです。シングルチップ上にある必要はありません(シングルチップではなく、この点を覚えておいてください)。

  1. マイクロプロセッサは、マイクロコンピュータのコンポーネントの1つです。
  2. マイクロコントローラーは、他のコンピューターと同様の完全なコンピューターです。

1

この違いはmCとmPにあるブロックの違いであるため、すべての答えは正しいです。下の表を参照してください。

ここに画像の説明を入力してください


0

長い答えは短い:
MicroProcessor-「考える」ことは、基本的には数学を処理するチップです。
マイクロコントローラー -組み込みシステムを開発するための電子コンポーネントと容易にインターフェースできる、マイクロプロセッサーを含むシステム。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.