回答:
マイクロプロセッサには通常、RAM、ROM、およびIOピンがありません。通常、ピンをバスとして使用して、RAM、ROM、シリアルポート、デジタルおよびアナログIOなどの周辺機器に接続します。これにより、ボードレベルで拡張可能です。
マイクロコントローラは「オールインワン」であり、プロセッサ、RAM、IOがすべて1つのチップ上にあるため、使用可能なRAMの量やIOポートの数を増やすことはできません。制御バスは内部にあり、ボード設計者は利用できません。
これは、マイクロプロセッサは一般に、マイクロコントローラよりも大きな汎用アプリケーションに組み込むことができることを意味します。マイクロコントローラは通常、より専用のアプリケーションに使用されます。
これらはすべて非常に一般的な説明です。境界を曖昧にするチップが利用可能です。
前述のように、マイクロコントローラーは本質的にチップ上のシステムです。一部の特殊な周辺機器を除き、すべてが1つのパッケージに収められています。外部周辺機器へのインターフェースは、ほとんど常にシリアル接続を使用して行われます。これにより、パッケージサイズが小さくなり(ピンが少なく)、PCBサイズが小さくなります(パッケージ間を接続するためのピンが小さくなります)。
前回のボストンバーキャンプ(MIT 2009)で、「マイクロコントローラーの紹介」講演を行いました。配布資料のコピーは
マイクロコントローラー:
マイクロプロセッサー:
LEGO Mindstorms NXTセットには、思考を行うためのマイクロプロセッサ[32ビットAT91SAM7S256(ARM7TDMI)メインマイクロプロセッサ@ 48 MHz(256 KBフラッシュメモリ、64 KB RAM)]とマイクロコントローラ[8ビットATmega48マイクロコントローラー@ 4 MHz(4 KBフラッシュメモリ、512バイトRAM)]センサーとモーターとのインターフェース用。ウィキペディアの技術仕様を参照してください。
この区別は、デバイスの全範囲が両極端の間で発生しているため、最近作るのがはるかに難しいものですが、機能するように見える識別子が1つある場合、ピンアウトを見て、デザイナーが何を見るかですピンでやった。ほとんどは個別のI / Oですか?それともバスが支配的ですか?
私の考えでは、マイクロコントローラーは従来、1チップソリューションとして機能するものでした。いくつかの避けられないディスクリートといくつかのコネクタを備えたPCBに1つを置き、少量のソフトウェアを書くと、システムができます。マイクロコントローラには、システムが必要とする揮発性メモリではなく、すべてのメモリが含まれています。この利便性のために支払われた価格は、手元にはあまりないということです。ほとんどのピンはI / O機能専用です。
一方、他の極端な場合、マイクロプロセッサは、CPUコアのスループットを最大化するためにシリコンを専用にするために、可能な限りチップをサポートするためにオフロードする獣です。この種類のデバイスのピンのほとんどは、コアにないメモリおよびI / Oデバイスに接続するために必要なアドレスおよびデータラインです。
設計者がいずれかの哲学を明確に固守している場合でも、マイクロプロセッサーやマイクロコントローラーと呼ぶことができます。Intel Core i7は明らかにプロセッサーであり、PICとAVRは明らかにコントローラーです。ただし、この時点で、単一のチップに配置できるロジックの量により、1990年のマイクロプロセッサシステム全体を単一のチップに簡単に埋め込むことができます。割り込みコントローラー、SDRAMコントローラー、イーサネットサポート、その他の周辺機器をすべて1つのチップに搭載した400MHz PPC604とは何ですか?
主にマーケティング。
他にも奇妙な用語がいくつかあります。アナログ・デバイセズは、マイクロプロセッサを内蔵したADC / DACのような「マイクロコンバータ」と呼ばれる(または持っていた)TIのDSP(C2000シリーズ)デジタル信号コントローラの一部を呼んでいます。
そうでなければ、JohnCが言ったこと。
行は多少ぼやけていますが、一般的には次のようになります。
マイクロプロセッサには、プロセッサコア(フェッチ/デコードユニット、ALU、レジスタなど)と基本的なブロックがいくつか含まれていますが、通常はそれ以上ではありません。
マイクロコントローラーは、RAM(SRAM)、通常はコード保存用のいくつかのROM(マスクROMまたはFlash / EEPROMでも可)、および基本的な周辺機器(SPI / I2C、UART、GPIO、さらにはUSBまたはイーサネットなど)。これはSystem-on-Chip(SoC)と呼ばれることもあれば、SoCがさらに統合されていることもあります。一部の日本企業は、「マイクロコンピューター」という用語も大好きです。
ただし、前述したように、線がぼやけます。たとえば、最近のIntel / AMDプロセッサは、チップにメモリコントローラーを追加します(以前はチップセットにありました)。
ところで、私は実際に8086をマイクロプロセッサと呼びます(Intelのマイクロコントローラには、8051や80186などが含まれます)。
マイクロプロセッサー= cpu; マイクロコントローラー= cpu +周辺機器+メモリ周辺機器=ポート+クロック+タイマー+ uarts + adcコンバーター+ lcdドライバー+ dac +その他のもの; メモリ= eeprom + sram + eprom + flash
マイクロプロセッサでは、より多くのオペコード、数ビット処理命令。しかし、マイクロコントローラーでは、命令コードが少なくなり、ビット処理命令が増えます。
マイクロプロセッサはリアルタイムのタスクを処理するようにプログラムされていない場合がありますが、水の温度を制御したり、部屋の温度を測定したりする必要があるデバイスなどのマイクロコントローラはリアルタイムの監視が必要なため、マイクロコントローラが内蔵する一連の命令で動作しますそのままで。
マイクロプロセッサは、シングルチップ上の単純な中央処理装置(CPU)です(「シングルチップ」という単語を思い出してください)。算術論理ユニット(ALU)、制御ユニット(CU)、レジスタ、命令デコーダー、バス制御回路などが含まれますが、すべてが単一チップ上にある必要があります。
マイクロコントローラー:マイクロコントローラーは、マイクロプロセッサーと周辺I / Oデバイス、サポート回路およびメモリー(データとプログラムの両方)の関連付けです。シングルチップ上にある必要はありません(シングルチップではなく、この点を覚えておいてください)。