Arduino vs Mikroprocesor vs Mikrokontroler

11

Jaka jest różnica między Arduino, mikroprocesorem i mikrokontrolerem? Próbuję ustalić, co najlepiej obsługiwać tanio rezystancyjny ekran dotykowy.

Martin Marino
źródło

Odpowiedzi:

21

Mikroprocesor:

zwykle znajduje się w komputerze stacjonarnym lub laptopie i zawiera procesor i interfejs pamięci zewnętrznej oraz różne szyny we / wy do łączenia się ze światem zewnętrznym, takie jak SPI, I2C, UART, USB, LCD i inne. Mikroprocesory będą miały także zewnętrzny kryształ zapewniający zegar.

Większość mikroprocesorów nie ma w układzie pamięci tylko do odczytu; zamiast tego na płycie głównej znajduje się zewnętrzny układ, w którym znajduje się początkowy kod rozruchowy. Na komputerach z procesorami Intel nazywa się to Basic Input / Output System (BIOS), a oprócz kodu rozruchowego zawiera także procedury I / O. Kod rozruchowy zaczyna się od wykonania testu POST, a następnie sprawdza, gdzie załadować kolejny etap kodu rozruchowego - z dysku twardego, płyty CD (lub w dawnych czasach) z dyskietki. Ten rozruch drugiego poziomu ładuje następnie system operacyjny. (W niektórych systemach mogą być nawet trzy poziomy kodu rozruchowego).

Niektóre mikroprocesory (zwykle przeznaczone dla smartfonów i tabletów, które mają ograniczone opcje uruchamiania) mają niewielką ilość pamięci tylko do odczytu, która zawiera początkowy kod rozruchowy.

Kod rozruchowy nazywam tylko do odczytu; w niektórych systemach można go aktualizować. Jest to jednak dość ryzykowne; jeśli coś pójdzie nie tak, system może się nie uruchomić.

W przeciwieństwie do mikrokontrolerów, które wykonują swoje programy z pamięci tylko do odczytu, po uruchomieniu mikroprocesory ładują swoje programy do zewnętrznej pamięci RAM i uruchamiają je stamtąd.

Mikrokontroler:

z drugiej strony jest samodzielny, jednoukładowy układ scalony, który zawiera procesor, pamięć tylko do odczytu do przechowywania programu, pamięć RAM do przechowywania zmiennych używanych podczas wykonywania programu oraz różne szyny we / wy do łączenia się ze światem zewnętrznym, takie jak jako SPI, I2C, UART i inne. Sam w sobie nie może wykonywać żadnych programów bez programowania przez zewnętrzny interfejs do komputera. Mikrokontroler może również potrzebować zewnętrznego kryształu, aby zapewnić zegar, jednak niektóre mają zegar wewnętrzny.

Niektóre mikrokontrolery (takie jak Microchip PIC32) mają dwie sekcje pamięci flash; jeden do przechowywania kodu inicjalizacji (rozruchu), a drugi do przechowywania aplikacji. Ułatwia to aktualizację kodu aplikacji w miejscu.

Do tego celu chciałbyś użyć mikrokontrolera, a nie mikroprocesora. Aby użyć mikrokontrolera, musisz zaprojektować własną płytkę lub kupić płytę programistyczną.

Arduino:

jest taką płytką i zawiera mikrokontroler, typowy 8-bitowy AVR, taki jak ATmega8, ATmega168, ATmega328, ATmega1280 i ATmega2560, a także zasilacze, kryształowe i żeńskie złącza do połączenia z różnymi płytkami peryferyjnymi.

Te płyty peryferyjne są nazywane tarczami i są zaprojektowane tak, aby układały się jeden na drugim (na spodzie płytek znajdują się męskie szpilki do połączenia z samym Arduino lub inną tarczą i żeńskie nagłówki na górze, aby zaakceptować męskie szpilki tarcza ułożona na nim).

Przykładowymi ekranami są płyty sterowania silnikiem, ogólne karty we / wy, karty przekaźników, karty Ethernet i LCD, zwykle z ekranem dotykowym. Nie znam jednak żadnych rezystancyjnych ekranów dotykowych, które byłyby używane tylko do wykrywania (bez wyświetlacza LCD).

Oprócz sprzętu opisanego powyżej, Arduino jest również wyposażone w wieloplatformowe zintegrowane środowisko programistyczne (IDE) napisane w Javie. Został zaprojektowany, aby wprowadzić programowanie dla artystów i innych początkujących, podobnie jak język BASIC 50 lat temu. Program dla Arduino nazywa się szkicem .

Programy Arduino są napisane w C lub C ++, jednak wiele szczegółów jest ukrytych przed użytkownikiem: tylko dwie funkcje (wywoływane przez system) muszą zostać zdefiniowane, aby stworzyć program, który nieustannie zapętla się (zwykle dla programów osadzonych)

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

IDE zawiera bibliotekę oprogramowania o nazwie „Wiring”, która może być używana do typowych operacji wejścia / wyjścia.

tcrosley
źródło
Po 25 latach nie projektuję już sprzętu, ale nie znam procesorów do komputerów stacjonarnych, które zawierają pamięć tylko do odczytu, a tym bardziej pamięć, która może uruchomić komputer.
Rob
@Rob Masz rację, że wszystkie znane mi komputery stacjonarne używają zewnętrznego układu rozruchowego. Ale architektura OMAP3 TI jest przykładem mikroprocesora z wewnętrzną pamięcią ROM rozruchu. Z opisu tutaj ponownego uruchamiania systemu Linux, pierwszy wiersz brzmi: „podczas uruchamiania urządzenie OMAP3 rozpoczyna uruchamianie od wewnętrznej Boot ROM. Ten kod jest ustalona w trakcie procesu produkcyjnego i nie może być zmieniona. The Boot ROM czyta szpilki konfiguracji rozruchu (SW4 na OMAP3 EVM), które informują Boot ROM, gdzie szukać pierwszego zewnętrznego modułu ładującego. ” Zaktualizowałem swoją odpowiedź.
tcrosley
10

Arduino

Arduino to płytka drukowana zawierająca mikrokontroler AVR Atmel i zwykle zapewniająca zestaw złączy w standardowym układzie. Mikrokontroler jest zwykle wstępnie zaprogramowany za pomocą programu „bootloader”, który umożliwia załadowanie programu (zwanego „szkicem”) do mikrokontrolera za pośrednictwem połączenia szeregowego TTY (lub wirtualnego połączenia szeregowego przez złącze USB) z komputera.

Mikroprocesor

Mikroprocesor to układ scalony, który zawiera tylko jednostkę centralną (CPU). Układ scalony nie zawiera pamięci RAM, ROM ani innych urządzeń peryferyjnych. Układ scalony może zawierać pamięć podręczną, ale nie jest przeznaczony do użytku bez pamięci zewnętrznej.

Mikroprocesory nie mogą przechowywać programów wewnętrznie i dlatego zwykle ładują oprogramowanie po włączeniu, zwykle wiąże się to ze złożonym, wieloetapowym procesem „rozruchu”, w którym „oprogramowanie układowe” jest ładowane z zewnętrznej pamięci ROM, a system operacyjny jest ładowany z innych nośników pamięci (np. Dysku twardego ).

Zwykle znajduje się w komputerze osobistym.

Mikrokontroler

Mikrokontroler to układ scalony, który zawiera procesor, a także pewną ilość pamięci RAM, ROM i innych urządzeń peryferyjnych. Mikrokontrolery mogą działać bez zewnętrznej pamięci lub pamięci.

Zwykle mikrokontrolery są albo programowane przed lutowaniem na płytce drukowanej, albo programowalne za pomocą złączy do programowania systemowego (ISP lub ICSP) poprzez specjalne urządzenie „programujące” podłączone do komputera osobistego.

Typowe mikrokontrolery są znacznie prostsze i wolniejsze niż typowe mikroprocesory, ale uważam, że rozróżnienie dotyczy głównie skali i zastosowania.

Można go znaleźć na przykład w prostych urządzeniach, takich jak podstawowe pralki.

RedGrittyBrick
źródło
2

„Arduino” to środowisko programistyczne i dowolna z kilku płyt mikrokontrolerów, dla których środowisko programowe może opracowywać programy. Większość płyt wykorzystuje mikrokontrolery AVR firmy Atmel.

Peter Bennett
źródło
2

Arduino to platforma oparta na mikrokontrolerze (ATMEGA 328 dla UNO). Ogólnie rzecz biorąc, mikrokontroler lepiej nadaje się niż mikroprocesor do wszystkiego, co wymaga wykrywania wejść. Jest tak, ponieważ mikrokontrolery, takie jak ATMEGA 328, mają przetworniki analogowo-cyfrowe (ADC) do wykrywania napięć, a także mają wyjścia PWM oraz cyfrowe wejścia / wyjścia.

Z Arduino masz również system Arduino Dev, który jest łatwiejszy do zaprogramowania dla początkujących i ma dobrą społeczność do wsparcia i bibliotek.

Rezystancyjny ekran dotykowy zachowuje się jak potencjometry; jeden dla x i jeden dla y. Możesz więc umieścić je w wejściach analogowych Arduino. Zobacz tutaj, aby uzyskać szczegółowe informacje .

Innym rozwiązaniem jest konwersja do SPI lub I2C coś jak ten , i czytać z Arduino.

Tak czy inaczej uważam, że Arduino to dobry wybór.

akellyirl
źródło
@ tcrosley lub jakikolwiek inny długoletni członek .. jakieś porady dla nowego autora, takiego jak ja, dotyczące unikania głosowania w dół, jak ten? Moje odpowiedzi są dokładne, odpowiadają na pytanie i zawierają dodatkowe szczegóły dotyczące interfejsu z rezystancyjnym ekranem dotykowym. Czy powinno być jeszcze coś?
akellyirl
3
Nie bierz głosowania w dół zbyt poważnie. Myślę, że twoje pierwsze zdanie jest trochę niedokładne. Arduino bardziej przypomina platformę składającą się ze sprzętu i oprogramowania. A płyta Arduino nie jest mikrokontrolerem, ale płytą zaprojektowaną wokół mikrokontrolera.
Rev1.0
1
Jak mówi Rev1.0: „Arduino jest mikrokontrolerem” nie jest prawdą. Arduino to SBC (komputer jednopłytkowy).
flup
1

Arduino składa się z mikrokontrolera (ATmega328 w wersji UNO). Tak więc Arduino jest płytką drukowaną z ładnie oddzielonymi stykami mikrokontrolera, poweruply, kryształem i FTDI do połączenia USB z wbudowanym oprogramowaniem układowym, dzięki czemu można łatwo zaprogramować go za pomocą własnego IDE. Oto lista składników arduino: http://learn.adafruit.com/arduino-tips-tricks-and-techniques/arduino-uno-faq

kimliv
źródło