Arduino vsマイクロプロセッサーvsマイクロコントローラー


回答:


21

マイクロプロセッサ:

通常、デスクトップPCまたはラップトップにあり、CPUと外部メモリインターフェイスに加えて、SPI、I2C、UART、USB、LCDなどの外界に接続するためのさまざまなI / Oバスが含まれています。マイクロプロセッサには、クロックを提供するための外部クリスタルもあります。

ほとんどのマイクロプロセッサには、チップに読み取り専用メモリがありません。代わりに、初期ブートコードが配置されているマザーボードに外部チップがあります。IntelベースのPCでは、これはBIOS(Basic Input / Output System)と呼ばれ、初期ブートコードに加えてI / Oルーチンも含まれています。ブートコードは、電源投入時の自己診断(POST)を実行することから始まり、次に、ハードドライブ、CD(または昔は)のフロッピーディスクから、ブートコードの次のステージをロードする場所を確認します。この2番目のレベルのブートは、オペレーティングシステムをロードします。(システムによっては、3レベルのブートコードが存在する場合もあります。)

一部のマイクロプロセッサ(通常、起動オプションが制限されているスマートフォンおよびタブレットを対象とするマイクロプロセッサ)には、初期起動コードを含む少量の読み取り専用メモリがあります。

ブートコードを読み取り専用と呼びます。実際には、一部のシステムでは更新できます。ただし、これはかなり危険です。問題が発生すると、システムが起動しなくなる可能性があります。

マイクロコントローラは、読み取り専用メモリからプログラムを実行するのとは異なり、起動後にマイクロプロセッサがプログラムを外部RAMにロードし、そこから実行します。

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

一方、スタンドアロンのシングルチップICは、CPU、プログラムを格納する読み取り専用メモリ、プログラムの実行に使用される変数を格納するRAM、および外部の世界に接続するためのさまざまなI / Oバスを含みますSPI、I2C、UARTなど。それ自体では、PCへの外部インターフェースを介してプログラムされていないと、プログラムを実行できません。マイクロコントローラは、クロックを提供するために外部クリスタルも必要とする場合がありますが、一部には内部クロックがあります。

一部のマイクロコントローラ(MicrochipのPIC32など)には、フラッシュメモリの2つのセクションがあります。1つは初期化(ブート)コードを保持し、もう1つはアプリケーションを格納します。これにより、アプリケーションコードをインプレースで簡単に更新できます。

あなたの目的のためには、マイクロプロセッサではなくマイクロコントローラを使用したいと思うでしょう。マイクロコントローラを使用するには、独自のボードを設計するか、何らかの開発ボードを購入する必要があります。

Arduino:

このようなボードであり、ATmega8、ATmega168、ATmega328、ATmega1280、ATmega2560などの典型的な8ビットAVRと、さまざまな周辺ボードとのインターフェースとなる電源、水晶、およびメスヘッダーを含むマイクロコントローラーが含まれています。

これらの周辺ボードはシールドと呼ばれ、互いに積み重ねられるように設計されています(ボードの下部には、Arduino自体または別のシールドに接続するためのオスのピンがあり、上部にはメスのヘッダーがあり、その上に積み重ねられたシールド)。

シールドの例は、モーターコントロールボード、一般的なI / Oボード、リレーボード、イーサネットボード、およびLCDで、通常はタッチスクリーンを備えています。しかし、検出のためだけに使用される抵抗性タッチスクリーン(LCDなし)については知りません。

上記のハードウェアに加えて、Arduinoには、Javaで記述されたクロスプラットフォーム統合開発環境(IDE)も付属しています。BASIC言語が50年前に行ったように、アーティストや他の初心者にプログラミングを紹介するように設計されました。Arduino用のプログラムはスケッチと呼ばれています。

ArduinoプログラムはCまたはC ++で記述されていますが、詳細の多くはユーザーから隠されています:継続的にループするプログラム(通常は組み込みプログラム用)を作成するために定義する必要があるのは2つの関数(システムによって呼び出される)だけです

setup(): a function run once at startup that performs initialization
loop(): a function called repeatedly until the board powers off

IDEには、「配線」と呼ばれるソフトウェアライブラリが付属しており、一般的な入出力操作に使用できます。


ハードウェアの設計は25年以上経ってからはもうやっていませんが、デスクトップコンピューター用の読み取り専用メモリを搭載しているプロセッサーを認識していません。
Rob

@Rob私が知っているすべてのデスクトップPCが外部ブートチップを使用しているのはあなたの言うとおりです。しかし、TIのOMAP3アーキテクチャは、内部ブートROMを備えたマイクロプロセッサの例です。Linuxを再起動するここの説明から、最初の行は、「電源投入時にOMAP3デバイスが内部ブートROMからの起動を開始します。このコードは製造プロセス中に修正され、変更できません。ブートROMはブート構成ピン(SW4 OMAP3 EVMでは、最初の外部ブートローダーを探す場所をブートROMに指示します。」回答を更新しました。
tcrosley 2016年

10

Arduino

Arduinoは、Atmel AVRマイクロコントローラーを含むPCBであり、通常、標準パターンで一連のコネクターを提供します。通常、マイクロコントローラーは「ブートローダー」プログラムで事前にプログラムされており、PCからTTYシリアル接続(またはUSB経由の仮想シリアル)を介してプログラム(「スケッチ」と呼ばれます)をマイクロコントローラーにロードできます。

マイクロプロセッサ

マイクロプロセッサは、中央処理装置(CPU)のみを含むICです。ICにはRAM、ROM、その他の周辺機器は含まれていません。ICにはキャッシュメモリが含まれている場合がありますが、外部メモリがなくても使用できるようには設計されていません。

マイクロプロセッサはプログラムを内部に格納できないため、通常は電源を入れたときにソフトウェアをロードします。これには通常、「ファームウェア」が外部ROMからロードされ、最終的にオペレーティングシステムが他のストレージメディア(ハードディスクなど)からロードされる、複雑なマルチステージの「ブート」プロセスが含まれます。 )。

これは通常、パソコンにあります。

マイクロコントローラー

マイクロコントローラーは、CPUと、RAM、ROM、その他の周辺機器を含むICです。マイクロコントローラは、外部メモリやストレージがなくても機能します。

通常、マイクロコントローラーは、PCBにはんだ付けされる前にプログラムされるか、パーソナルコンピューターに接続された特別な「プログラマー」デバイスを介してシステム内プログラミング(ISPまたはICSP)コネクターを使用してプログラム可能です。

典型的なマイクロコントローラーは、典型的なマイクロプロセッサーよりもはるかに単純で低速ですが、違いは主に規模とアプリケーションの1つであると思います。

それは、例えば、基本的な洗濯機のような単純な器具に見られる。


2

「Arduino」は、ソフトウェア開発環境であり、ソフトウェア環境でプログラムを開発できるいくつかのマイクロコントローラーボードです。ほとんどのボードはAtmel AVRマイクロコントローラーを使用しています。


2

Arduinoはマイクロコントローラーベースのプラットフォームです(UNOの場合はATMEGA 328)。一般に、マイクロコントローラは、マイクロプロセッサよりも入力の検出を必要とするあらゆるものに適しています。これは、ATMEGA 328などのマイクロコントローラーが電圧を検出するためのアナログ-デジタルコンバーター(ADC)を備え、PWM出力とデジタルI / Oも備えているためです。

Arduinoを使用すると、初心者向けのプログラミングが簡単で、サポートやライブラリーのための優れたコミュニティーを持つArduino Devシステムも利用できます。

抵抗膜方式のタッチスクリーンは電位差計のように動作します。1つはx用、もう1つはy用です。したがって、それらをArduinoアナログ入力に入れることができます。詳細はこちらをご覧ください

別のオプションは、このようなものでSPIまたはI2Cに変換し、Arduinoで読み取ることです。

どちらにしても、Arduinoが良い選択だと思います。


@tcrosleyまたは他の長年のメンバー..このような下向きの投票を避けるための私のような新しい貢献者へのアドバイスは?私の答えは正確で、質問に答え、抵抗膜方式タッチスクリーンへのインターフェイスの詳細を提供します。他に何か含まれているはずですか?
akellyirl 2014

3
反対票をあまり真剣に受け取らないでください。最初の文章は少し不正確だと思います。Arduinoは、ハードウェアとソフトウェアで構成されるプラットフォームに似ています。そして、Arduinoボードはマイクロコントローラーではなく、マイクロコントローラーを中心に設計されたボードです。
Rev1.0 2014

1
Rev1.0が言うように:「Arduinoはマイクロコントローラーです」は真実ではありません。ArduinoはSBC(シングルボードコンピューター)です。
フラップ2014

1

Arduinoは、マイクロコントローラー(UNOバージョンのATmega328)で構成されています。したがって、Arduinoは、マイクロコントローラーのピンがすっきりと分離されたPCB、電源、水晶、およびオンボードファームウェアとのUSB接続用のFTDIなので、独自のIDEで簡単にプログラミングできます。これがarduinoコンポーネントに関するリストです:http ://learn.adafruit.com/arduino-tips-tricks-and-techniques/arduino-uno-faq

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