mikrokontroler vs. system na chipie

24

Zaczynam programować mikrokontrolery i czytam trochę dokumentacji i podręczników. Jestem trochę zdezorientowany, jaka jest różnica między mikrokontrolerem a systemem na chipie?

Niektóre dokumenty używają tych dwóch terminów zamiennie. Jednak większość podręczników wskazuje, że używanie tych dwóch terminów NIE jest poprawne, dlatego musi być jakaś znacząca różnica ...

Dzięki!

zrozpaczony
źródło
4
Dziękujemy za zaakceptowanie mojej odpowiedzi, ale naprawdę zalecamy, aby następnym razem poczekać dłużej. Inni prawdopodobnie mają różne poglądy i spostrzeżenia, ale często mogą pomijać pytanie, które ma już zaakceptowaną odpowiedź - wiem, że tak. Chcesz zostawić trochę czasu na zebranie konsensusu, szczególnie w przypadku pytania dotyczącego szarej strefy.
Olin Lathrop
@Olin Cool, będzie o tym pamiętać następnym razem!
rrazd

Odpowiedzi:

27

Mikrokontroler to procesor z wbudowanym programem i pamięcią danych. Układy te są przeznaczone do małych wbudowanych aplikacji sterujących, więc pozostawienie styków we / wy i niewymaganie zewnętrznej szyny pamięci jest bardzo przydatne. Niektóre mikrokontrolery mają zaledwie 6 pinów i mogą robić użyteczne rzeczy. Porównaj to z procesorem obliczeniowym ogólnego przeznaczenia przeznaczonym dla komputerów PC. Te rzeczy mają setki pinów w szyku i wymagają obszernych obwodów zewnętrznych.

Jeśli chodzi o system na układzie scalonym, jest to mniej dobrze zdefiniowany termin. Cypr nazywa niektóre swoje części PSOC (programowalny system na chipie). Są to w zasadzie mikrokontroler z małym układem FPGA na tym samym układzie. Zamiast mieć wbudowane urządzenia peryferyjne, możesz robić, co chcesz, w ramach dostępnych zasobów FPGA.

Ogólnie rzecz biorąc, myślę, że system na chipie jest mikrokontrolerem z jakąś zintegrowaną z nim logiką na poziomie systemu. Oczywiście im bardziej będziesz próbował wejść do systemu, tym mniej prawdopodobne będzie, że jakiś zestaw dodatkowego sprzętu będzie przydatny, więc pewna konfigurowalność jest bardzo przydatna. Jednak na razie „system na chipie” jest bardziej terminem marketingowym niż czymkolwiek realnym.

Olin Lathrop
źródło
20

System On a Chip (lub SoC) to ogólna fraza, której używają marketingowcy i tak naprawdę niewiele znaczą. Istnieje również wiele odmian, takich jak:

PSoC: Programowalny system na chipie, Cypress Semiconductor.

SOPC: System na programowalnym układzie scalonym, Altera

W skrócie, SOC to pojedynczy układ scalony, który robi wszystko, co kiedyś zajmował wiele układów. Nic tam nie mówi, że musi zawierać procesor lub pamięć RAM. Z tego powodu, że możemy uzyskać więcej tranzystorów na chipie i otrzymujemy coraz więcej funkcji na naszych chipach - prawie wszystko można nazwać SoC w porównaniu z tym, co robiliśmy 10 lub 20 lat temu !

Co gorsza: istnieje wiele przykładów nazywanych SoC, które wciąż wymagają wielu układów, aby były przydatne. Często masz jakąś formę procesora + urządzeń peryferyjnych, które nadal wymagają zewnętrznej pamięci flash, pamięci RAM i innych elementów zasilania. Więc nawet nazwa SoC wprowadza w błąd.

MCU jest prawdopodobnie najbardziej zwięzłym przykładem tego, czym powinien być SoC - ale jest to bardzo ograniczony przykład.


źródło
@ David-kesner +1 dla SoC jako frazy marketingowej.
Frank
12

Zasadniczo mikrokontroler jest traktowany jako urządzenie wbudowane, które jest wewnętrznie zaprogramowane do wykonywania określonego zadania. Jest minimalna interakcja użytkownika i niewielka lub żadna elastyczność. Mikrokontroler jest zazwyczaj dość słabo zasilany, z niewielką ilością pamięci i pamięci ROM (flash).

I odwrotnie, system na chipie jest drugim końcem spektrum. Jest bardziej nastawiony na pełną elastyczność i interakcję z użytkownikiem. Często zawiera takie rzeczy jak sterowniki IO dla większego sprzętu (takie jak dyski twarde itp.), A czasem nawet kartę graficzną. System-on-Chip jest bardziej jak kompletny system komputerowy, tak, na chipie.

Między nimi jest dość dużo crossoverów - kiedy przestaje być mikrokontrolerem i zaczyna być systemem na chipie? Stąd bierze się wiele zamieszania.

Zasadniczo, jeśli potrafi robić to, co potrafi komputer, to jest to system na chipie. Jeśli jest nastawiony na przykład na siedzenie w telefonie biurkowym i zarządzanie listą kontaktów lub w systemie wprowadzania z klawiatury lub uruchamianie silników na maszynie CNC, to jest to mikrokontroler.

ps, nie cytujcie mnie na ten temat - jak mówię, istnieje wiele skrzyżowań między nimi.

Majenko
źródło
5

To rozróżnienie jest w pewnym sensie bardziej związane z marketingiem niż techniczne, ale sugerowałbym, że ogólnie „programowalna” część mikrokontrolera jest ograniczona do pojedynczego, stosunkowo wąskiego „strumienia świadomości”. Zasadniczo w dowolnym momencie kolejna stosunkowo niewielka operacja mikrokontrolera zostanie określona na podstawie sposobu jego zaprogramowania, ale cała inna logika w systemie jest połączona na stałe i działa tak, jak jest zbudowana. Niektóre rzeczy, takie jak timery, mogą zapewniać pewne opcje konfiguracji (np. Zliczanie ze stałą prędkością w porównaniu do zliczania impulsów na wejściu), ale ogólnie okablowanie systemu zostanie naprawione. Jeśli pożądana jest pewna zmiana sygnału wyjściowego w odpowiedzi na jakiś sygnał wejściowy, a nie ma do tego wyraźnego sprzętu, program będzie musiał okresowo sprawdzać sygnał wejściowy i, jeśli się zmienił, przełączać sygnał wyjściowy. Jeśli pożądana jest zmiana wyjściowego napięcia analogowego w odpowiedzi na wejściowe napięcie analogowe, procesor może próbkować napięcie wejściowe, obliczać pożądaną odpowiedź i żądać pożądanego napięcia wyjściowego. Praktycznie rodzaj pożądanego bodźca / odpowiedzi można uzyskać, patrząc przez procesor na dane wejściowe i dane wyjściowe, ale czasy odpowiedzi byłyby na ogół o rząd wielkości wolniejsze niż w przypadku dedykowanego sprzętu.

Ogólna koncepcja systemu na chipie polega na zapewnieniu obwodom wystarczającej liczby multiplekserów i innych funkcji routingu, dzięki czemu sygnały mogą być kierowane przez obwody w celu wytworzenia wielu użytecznych typów wzorców bodźców / odpowiedzi bez interwencji procesora. Takie obwody nie mogą wytwarzać wzorców bodźców / reakcji, które są prawie tak szybkie jak to, co może wytworzyć procesor, ale w wielu przypadkach mogą być o rząd wielkości szybsze niż cokolwiek, co może zrobić procesor.

supercat
źródło
2

Moim zdaniem SoC to termin z wieloma definicjami, które z czasem będą się zmieniać. Z drugiej strony mikrokontroler zostanie zdefiniowany w taki sam sposób po dekadzie, jak obecnie. Kiedy mówisz, że mikrokontroler zawiera kilka podstawowych rzeczy na jednym układzie, takich jak pamięć, porty IO, timery i liczniki itd. Ale kiedy mówisz SoC, nie ma żadnego konkretnego standardu dotyczącego tego, co rodzaj obwodu, który powinien zawierać. Na przykład podstawową aplikacją, w której próbują wprowadzić SoC, jest smartfon. W obecnym scenariuszu smartfon powinien zawierać kilka podstawowych rzeczy na pokładzie, takich jak:

  1. NFC
  2. GPS
  3. Akcelerometr i żyroskop
  4. WiFi
  5. Procesor i procesor graficzny

W obecnej sytuacji, jeśli chcę wyprodukować smartfon, muszę wziąć procesor i kartę graficzną i wszystko do niego podłączyć. Ale SoC opiera się na koncepcji pojedynczego układu, który będzie miał wszystkie powyższe cechy i będzie mógł ewoluować (choć w bardzo prosty sposób). Powiedziałem też, że SoC ma ciągle zmieniającą się definicję, ponieważ podstawowe wymagania dotyczące smartfona, komputera lub innego urządzenia elektronicznego będą rosły z dnia na dzień, a definicja SoC będzie się zmieniać wraz z tymi wymaganiami.

krushna ratnaparkhi
źródło
0

Tak, SoC jest w zasadzie terminem marketingowym używanym częściej. Istnieje terminologia dotycząca urządzeń i hostów, w których znajdują się duzi producenci komputerów, tacy jak Dell, HP, IBM itp., Użyli w nich procesora generalnie produkowanego przez Intel, AMD itp. w zasadzie zapewnia CPU lub SoC na płycie głównej (zwanej CPU), niektóre również zapewniają CPU + SoC (w szczególnym celu, aby odciążyć aktywność urządzeń peryferyjnych - takich jak czujniki lub urządzenie GPS, które w przeciwnym razie byłyby bardzo energochłonne, gdyby są one podłączone bezpośrednio do procesora). SoC jest czasem nazywane koprocesorem, którego zadanie jest takie samo jak to, co napisałem wcześniej. Teraz do płyt głównych są podłączone różne urządzenia peryferyjne (które są połączone zasadniczo z procesorem lub SoC), te urządzenia peryferyjne są w zasadzie albo bezpośrednio do nich podłączone (SOC lub CPU) przez magistralę sumaryczną - i2c, SPI, USB lub są one na ogół podłączone do mikrokontrolerów . twórcy kontrolerów), a także twórcy komputerów PC, ponieważ otrzymują lepsze urządzenia (urządzenia peryferyjne + mikrokontroler). Więc cały punkt to termin mikrokontrolera, który częściej widujesz po stronie urządzenia (ten, który jest połączony z SoC (teraz wiesz, co to jest SOC? Nie?) I SoC po stronie hosta (po stronie komputera) ). Można powiedzieć, że CPU jest ojcem, który przekazuje Soem swoją pracę do SoC w celu uzyskania lepszych możliwości zasilania urządzeń (urządzenia peryferyjne Micro +). Skarpety mają w zasadzie więcej pamięci do obsługi systemu operacyjnego Unliek Mikrokontrolery, które mogą co najwyżej wspierać RTO.

Raulp
źródło
1
ŁAŁ ! Naprawdę lubię głosować negatywnie, gdy ludzie robią to bez podawania wielu potrzebnych komentarzy!
Raulp,
3
To jest bardzo niejasne. Nie mogę robić tajników w tym strumieniu świadomości.
ivan_pozdeev
0

Podsumowując powyższe, wydaje mi się:

MCU zapewnia dużo pamięci, interfejsów takich jak VGA i możliwości takich jak GPU dzięki użyciu kilku różnych układów zapewniających różne rzeczy.

MCU pasuje do wszystkiego na jednym układzie, zapewniając jedynie minimalną pamięć, interfejsy itp.

SoC pasuje do wszystkiego na jednym chipie, przekraczając granice tego, co można zrobić na jednym chipie.

MCU zapewniają wartość poprzez minimalizację kosztów, SoC zapewniają wartość poprzez maksymalizację funkcjonalności, zarówno na jednym układzie. Jeśli konkuruje z logiką TLL, prawdopodobnie jest to MCU. Jeśli konkuruje z mikroprocesorami (AMD, Intel), prawdopodobnie jest to SoC.

Ray Morris
źródło