Jaka jest różnica między mikrokontrolerem a mikroprocesorem?

189

Jaka jest różnica między mikrokontrolerem a mikroprocesorem?

endolit
źródło
2
Zobacz także ten artykuł autorstwa Atmela.
Sudoer,
głównie cena :-)
Hilmar
1
@Hilmar, ponownie „głównie cena” - źle.
cp.engr

Odpowiedzi:

191

Mikroprocesor na ogół nie ma pinów RAM, ROM i IO. Zwykle używa swoich pinów jako magistrali do połączenia z urządzeniami peryferyjnymi, takimi jak RAM, ROM, porty szeregowe, cyfrowe i analogowe we / wy. Z tego powodu można go rozbudowywać na poziomie planszy.

Mikrokontroler to „wszystko w jednym”, procesor, ram, IO wszystko w jednym układzie, dlatego nie można (powiedzmy) zwiększyć dostępnej pamięci RAM ani liczby portów IO. Magistrala sterująca jest wewnętrzna i nie jest dostępna dla projektanta płytki.

Oznacza to, że mikroprocesor jest generalnie zdolny do wbudowania w większe zastosowania ogólnego zastosowania niż mikrokontroler. Mikrokontroler jest zwykle używany do bardziej dedykowanych aplikacji.

Wszystkie są bardzo ogólnymi stwierdzeniami. Dostępne są żetony, które zacierają granice.

JohnC
źródło
4
Wiele mikrokontrolerów udostępnia szynę pamięci dla zewnętrznego kodu i danych; te piny mogą, ale nie muszą być użyteczne do innych celów, jeśli pamięć zewnętrzna nie jest używana. Moim zdaniem, definiujące rozróżnienie polega na tym, czy urządzenie zazwyczaj ( ) byłoby w stanie działać przynajmniej w pewnym stopniu bez zewnętrznej magistrali pamięci. ( ) 8051 jest z pewnością zdolny, więc jest wyraźnie „mikrokontrolerem”. 8031 to ten sam układ co 8051, ale z zawartością ROM nieokreśloną. Brak użytecznej pamięci ROM sprawiłby, że byłby to mikroprocesor, ale ponieważ jest to ten sam układ co 8051, można go nazwać mikrokontrolerem.
supercat
2
„Magistrala sterująca jest wewnętrzna i niedostępna dla projektanta płyty”. To niekoniecznie prawda. Istnieją mikrokontrolery z zewnętrznym adresem / magistralą danych, które pozwalają na dodatkową pamięć.
stevenvh
Czy moglibyśmy więc powiedzieć, że mikrokontroler jest zasadniczo komputerem, podczas gdy mikroprocesor jest jedynie pojedynczym układem procesora?
doubleOrt,
@doubleOrt: Można to tak ująć, ale granice są rozmyte. Obecnie istnieje całkiem sporo układów, które zawierają pamięć danych ulotnych (SRAM), ale nie zawierają nieulotnej pamięci kodu (Flash). Często są one również nazywane MPU (mikroprocesor). Rozróżnienie to wydaje się więc być obecnie związane głównie z układem Flash na chipie. NXP sprzedaje coś, co nazywają procesorem „crossover” z pamięcią RAM, ale bez Flasha. Ma to związek z rosnącą trudnością integracji Flasha w układzie z coraz mniejszymi tranzystorami. Obecny limit wydaje się wynosić około 28 nm.
sh-
29

Jak wspomniano, mikrokontrolery są zasadniczo układami na chipie. Z wyjątkiem niektórych wyspecjalizowanych urządzeń peryferyjnych wszystko jest w jednym pakiecie. Interfejs do zewnętrznych urządzeń peryferyjnych prawie zawsze odbywa się za pomocą połączeń szeregowych. Dzięki temu rozmiary opakowań są małe (mniej pinów), a rozmiar płytki drukowanej mały (mniej pinów do połączenia między pakietami).

Na ostatnim Boston Barcamp (MIT 2009) wygłosiłem wykład „Wprowadzenie do mikrokontrolerów”. Kopia ulotki znajduje się pod adresem

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

jluciani
źródło
25

Mikrokontrolery:

  • są zwykle 8-bitowe, ale mogą być 4-, 16- lub 32-bitowe
  • pracować z prędkością mniejszą niż 200 MHz
  • używaj bardzo małej mocy
  • może zapewnić wystarczający prąd do działania diody LED
  • są przydatne do współpracy z czujnikami i silnikami
  • są łatwo wymieniane, ponieważ są niedrogie (od 0,10 USD do 10 USD)
  • są naprawdę ograniczone pod względem pamięci RAM i trwałej pamięci masowej (pamięć flash)
  • są naprawdę miłe dla hobbystów elektroniki

Mikroprocesory:

  • są często co najmniej 16-bitowe, a zazwyczaj 32-bitowe lub 64-bitowe, chociaż 8-bitowe nadal ma duży udział w rynku
  • wielu będzie w stanie wykonać matematykę zmiennoprzecinkową w sprzęcie
  • pracować z prędkościami mierzonymi w setkach MHz
  • zostały zaprojektowane jako mózgi systemu (i potrzebują całego systemu do ich obsługi)
  • potrzebujesz specjalnego sprzętu do połączenia z czujnikami, silnikami, diodami LED itp.
  • są drogie (pomyśl 50–250 USD dla wersji 32- lub 64-bitowej)
  • są przeznaczone do zewnętrznej pamięci RAM i trwałej pamięci masowej (dyski twarde)
  • hobbysta nie pracuje z nimi tak łatwo

Interesujące jest dla mnie to, że zestaw LEGO Mindstorms NXT ma mikroprocesor [32-bitowy AT91SAM7S256 (ARM7TDMI) główny mikroprocesor @ 48 MHz (pamięć flash 256 KB, 64 KB RAM)] do myślenia, a także mikrokontroler [8-bit ATmega48 mikrokontroler @ 4 MHz (pamięć flash 4 KB, 512 bajtów RAM)] do współpracy z czujnikami i silnikami. Zobacz dane techniczne na Wikipedii .

Clinton Blackmore
źródło
2
8-bit jest dominującym mikroprocesorem, ale wcale nie jest najbardziej popularny, myślałem, że czytałem wcześniej w tym roku, że nie stanowią one już więcej niż 50% udziału w rynku.
Kortuk,
3
Właściwie chciałbym powiedzieć, że nie zgadzam się z dużą liczbą list mikrokontrolerów. Większość tanich, które wkładają do systemów, nie kosztuje dolara, wiele, w zależności od marki, nie może zapewnić prądu do zasilania diody LED. Istnieje również bardzo duża grupa, która łamie 20 MHz, ale ogólnie spełnia tę specyfikację. myślę, że są również świetne dla hobyist.
Kortuk,
Wprowadziłem kilka poprawek i moją odpowiedź stworzyłem jako wiki społeczności - pomóżcie mi to naprawić!
Clinton Blackmore,
3
AT91SAM7S256 jest zdecydowanie mikrokontrolerem ani mikroprocesorem.
jpc
4
Zacząłem to edytować, publikując, ale nie sądzę, że to naprawdę można wymienić. Przyjęta odpowiedź na to pytanie ma istotę różnicy, którą jest w zasadzie „pamięć zintegrowana” lub „brak pamięci zintegrowanej”. Obawiam się, że ta część jest w dużej mierze listą uogólnień, z których wiele jest po prostu błędnych.
13

To rozróżnienie jest obecnie znacznie trudniejsze, ponieważ między skrajnościami powstało całe spektrum urządzeń, ale jeśli istnieje jeden identyfikator, który wydaje się działać, to spojrzeć na pin-out i spojrzeć na to, co projektanci zrobiłem z pinami . Czy są to głównie indywidualne wejścia / wyjścia? Czy dominują autobusy?

Moim zdaniem mikrokontroler tradycyjnie był czymś, co działa jako rozwiązanie 1-chipowe; umieść jedną na płytce drukowanej z kilkoma nieuniknionymi dyskrecjami i niektórymi złączami, napisz niewielką ilość oprogramowania i masz system. Mikrokontroler zawiera całą pamięć, zmienną i nieulotną, której potrzebuje system, a cena za tę wygodę jest taka, że ​​nie będzie jej zbyt wiele. Większość pinów jest dedykowana do funkcji I / O.

Natomiast z drugiej strony mikroprocesor jest rodzajem bestii, która w jak największym stopniu odciąża układy scalone, aby poświęcić krzem na maksymalizację przepustowości rdzenia procesora. Większość pinów tego rodzaju urządzenia to adresy i linie danych, niezbędne do połączenia z pamięcią i urządzeniami I / O, których brakuje w rdzeniu.

Nadal można nazywać niektóre mikroprocesory, a inne mikrokontrolery, kiedy projektanci wyraźnie przestrzegają jednej lub innej filozofii. Intel Core i7 jest oczywiście procesorem, PIC i AVR są wyraźnie kontrolerami. Jednak w tym momencie, z ilością logiki, którą można umieścić w jednym układzie scalonym, możesz z łatwością osadzić cały system mikroprocesorowy z 1990 roku w jednym układzie. Jak nazywacie PPC604 400 MHz z kontrolerem przerwań, kontrolerem SDRAM, obsługą sieci Ethernet i mnóstwem innych urządzeń peryferyjnych, wszystko na jednym chipie ?

JustJeff
źródło
> Jak nazywacie PPC604 400 MHz z kontrolerem przerwań, kontrolerem SDRAM, obsługą sieci Ethernet i mnóstwem innych urządzeń peryferyjnych, wszystko na jednym chipie? => Nazwałbym to „grubym mikroprocesorem”. Brak pamięci ROM i pamięci RAM, więc zdecydowanie nie mikrokontroler.
Wouter van Ooijen
2
@Wouter van Ooijen - Chyba powinienem wspomnieć, nazwałbym to „systemem na chipie”.
JustJeff
5

Głównie marketing.

Istnieją inne dziwne warunki; Analog Devices ma (lub miało) coś, co nazwali „mikrokonwerterami”, które były jak ADC / DAC z wbudowanym mikroprocesorem. TI nazywa teraz niektóre ze swoich DSP (seria C2000) cyfrowymi kontrolerami sygnałów.

W przeciwnym razie to, co powiedział JohnC.

Jason S.
źródło
Gdzie mogę znaleźć więcej informacji na temat tych „mikrokonwerterów”? Najbliższą rzeczą, jaką znalazłem, jest TAS3202.
endolith,
mogli przestać ich tak nazywać. analog.com/en/analog-microcontrollers/analog-microcontrollers/ ... Nigdy nie byłem pod wrażeniem mikroprocesorów ADI, ich analogowe rzeczy są dobre, a ich DSP powinny być dobre, ale nie mam doświadczenia z nimi .
Jason S,
Maksymalna częstotliwość próbkowania 8 kHz, więc nie nadaje się do audio. : /
endolith,
2
Nie zgadzam się, że jest to głównie marketing. Zgadzam się z odpowiedzią JohnC.
Daniel Grillo,
5

Sugerowałbym, że mikrokontroler jest urządzeniem, które zawiera wystarczającą ilość pamięci wewnętrznej i obwodów, które, przynajmniej w niektórych wariantach, mogłyby pełnić przydatną funkcję bez pamięci zewnętrznej. Zgodnie z taką definicją 8051 miałby wystarczającą liczbę obwodów, aby być użytecznym, a 8031 ​​nie; 8031 jest jednak po prostu 8051, w którym zawartość wewnętrznej pamięci ROM jest nieokreślona (chociaż jest całkiem możliwe, że niektóre układy i warianty „bez pamięci ROM” 8031 ​​pozostawiają wolne miejsce w pamięci, oczekuję, że istnieją inne, które, dla spójności układu matrycy z wersjami zawierającymi ROM, dołącz niepotrzebną pustą tablicę ROM).

supercat
źródło
4

Aby dodać wszystkie powyższe doskonale napisane odpowiedzi, Analogy: Mikroprocesor to mózg. podczas gdy mikrokontroler jest całym ciałem.

Mózg jest w stanie wykonać wszystkie instrukcje, ale musimy przymocować oczy, dłonie (tj. Urządzenia peryferyjne) zewnętrznie.

Podczas gdy ciało ma mózg i inne urządzenia peryferyjne tj. Mikrokontroler :)

Swanand
źródło
3

Linia jest nieco rozmyta, ale ogólnie wygląda tak:

  • mikroprocesory zawierają rdzeń procesora (moduł pobierania / dekodowania, ALU, rejestry itp.) i może kilka podstawowych bloków, ale zwykle niewiele więcej.

  • mikrokontrolery dodają pamięć RAM (SRAM), zwykle trochę pamięci ROM (może to być maska ​​ROM lub Flash / EEPROM) do przechowywania kodu (ale może również być bez pamięci ROM) oraz zestaw podstawowych urządzeń peryferyjnych (SPI / I2C, UART, GPIO, może nawet USB lub Ethernet i tak dalej). Czasami nazywa się to System-on-Chip (SoC), a czasem SoC jest czymś jeszcze bardziej zintegrowanym. Niektóre japońskie firmy również uwielbiają termin „ mikrokomputer ”.

    Jednak, jak wspomniałem, linia staje się rozmyta. Na przykład najnowsze procesory Intel / AMD dodają kontroler pamięci na chipie (wcześniej był w chipsecie).

    BTW, tak naprawdę nazwałbym 8086 mikroprocesorem (mikrokontrolery Intela obejmują na przykład 8051 lub 80186).

Igor Skochinsky
źródło
2

Różnica między mikrokontrolerem a mikroprocesorem

  1. Mikroprocesor = procesor; Mikrokontroler = procesor + urządzenia peryferyjne + pamięć Urządzenia peryferyjne = porty + zegar + timery + uarts + konwertery ADC + sterowniki LCD + DAC + inne rzeczy; Pamięć = eeprom + sram + eprom + flash

  2. W mikroprocesorze więcej kodów operacyjnych, kilka instrukcji obsługi bitów. Ale w mikrokontrolerze: mniej kodów operacyjnych, więcej instrukcji obsługi bitów.

  3. Mikroprocesor nie może być również zaprogramowany do obsługi zadań w czasie rzeczywistym, podczas gdy mikrokontroler, taki jak w urządzeniach, które muszą kontrolować temperaturę wody lub być może zmierzyć temperaturę w pomieszczeniu, wymaga monitorowania w czasie rzeczywistym, a zatem dzięki wbudowanemu zestawowi instrukcji mikrokontroler działa samemu.

neelam singh
źródło
3
Informacje te są nieco losowe i nie tak dobrze sformułowane, na pytanie z tak wieloma odpowiedziami. Weźmy przykład: kto mówi, że mikrokontroler musi mieć sterowniki ADC, DAC i LCD? Wielu je ma, ale nie jest to regułą. To samo dotyczy obsługi bitów i operacji w czasie rzeczywistym.
clabacchio
@neelamSingh, Witaj na stronie, twój post nie sformatował się dobrze i wydaje się odcinać w połowie, może przydać się trochę pracy!
Kortuk
2
Twój trzeci punkt jest nieważny. Zdolność w czasie rzeczywistym zależy od systemu operacyjnego, a nie od rodzaju procesora. Nie ma powodu, dla którego RTOS nie działałby na mikroprocesorze. Mikrokontrolery również niekoniecznie mają więcej instrukcji obsługi bitów.
stevenvh
1

Mikroprocesor to prosta jednostka centralna (CPU) na jednym chipie (pamiętaj słowo „Single Chip”). Obejmuje jednostkę arytmetyczną (ALU), jednostkę sterującą (CU), rejestry, dekodery instrukcji, obwód sterowania magistrali itp., Ale wszystko powinno być na jednym układzie.

Mikrokontroler: Mikrokontroler to połączenie mikroprocesora i urządzeń peryferyjnych I / O, obwodów pomocniczych i pamięci (zarówno danych, jak i programu). Nie trzeba być na jednym chipie (pamiętaj o tym, nie na jednym chipie).

  1. Mikroprocesor jest jednym z elementów mikrokomputera.
  2. Mikrokontroler to kompletny komputer podobny do każdego innego komputera.
Bibek
źródło
1

Wszystkie odpowiedzi są poprawne, ponieważ ta różnica więcej bloków mających w mC i mP, patrz poniższa tabela,

wprowadź opis zdjęcia tutaj

Prakash Darji
źródło
0

Krótka odpowiedź:
Mikroprocesor - „Myślenie” jest w zasadzie układem, który obsługuje matematykę.
Mikrokontroler - system z dołączonym mikroprocesorem, łatwo współpracujący z komponentami elektronicznymi w celu opracowania systemów wbudowanych.

GigaJoules
źródło