Szczerze mówiąc, granica między nimi prawie już minęła i istnieją procesory, które można zaklasyfikować jako oba (na przykład AD Blackfin).
Ogólnie rzecz biorąc:
Mikrokontrolery to całkowite procesory matematyczne z podsystemem przerwań. Niektóre mogą mieć sprzętowe jednostki zwielokrotniające, niektóre nie, itp. Chodzi o to, że są one zaprojektowane do prostej matematyki i głównie do sterowania innymi urządzeniami.
DSP to procesory zoptymalizowane do przetwarzania sygnałów strumieniowych. Często mają specjalne instrukcje, które przyspieszają typowe zadania, takie jak mnożenie w jednej instrukcji. Często mają też inne instrukcje wektorowe lub SIMD. Historycznie nie były to systemy oparte na przerwie i działały z niestandardowymi systemami pamięci zoptymalizowanymi pod kątem ich przeznaczenia, co utrudnia ich programowanie. Zwykle były zaprojektowane do pracy w jednej dużej pętli przetwarzającej strumień danych. Procesory DSP mogą być zaprojektowane jako procesory liczb całkowitych, stałoprzecinkowych lub zmiennoprzecinkowych.
Historycznie, jeśli chciałbyś przetwarzać strumienie audio, strumienie wideo, wykonywać szybką kontrolę silnika, wszystko, co wymagało przetwarzania strumienia danych z dużą prędkością, wyglądałoby na DSP.
Jeśli chcesz kontrolować niektóre przyciski, mierzyć temperaturę, uruchamiać znakowy wyświetlacz LCD, sterować innymi układami scalonymi, które przetwarzają rzeczy, możesz użyć mikrokontrolera.
Obecnie najczęściej znajdują się procesory mikrokontrolera ogólnego przeznaczenia z wbudowanymi instrukcjami podobnymi do DSP lub z koprocesorami chipowymi do obsługi przesyłania strumieniowego danych lub innych operacji DSP. Nie widzisz już, że czyste DSP są często używane, z wyjątkiem określonych branż.
Rynek procesorów jest znacznie szerszy i bardziej niewyraźny niż kiedyś. Na przykład prawie nie uważam, by kora ARM-A8 SoC była mikrokontrolerem, ale prawdopodobnie pasuje ona do standardowej definicji, szczególnie w pakiecie PoP.
EDYCJA: Pomyślałem, że dodam trochę, aby wyjaśnić, kiedy / gdzie korzystałem z DSP nawet w czasach procesorów aplikacji.
Niedawno zaprojektowany przeze mnie produkt przetwarzał dźwięk z X kanałami wejściowymi i X kanałami wyjściowymi na „strefę”. Przeznaczenie produktu oznaczało, że często siedział tam i robił swoje, przetwarzając kanały audio przez lata bez dotykania go. Przetwarzanie dźwięku składało się z różnych filtrów akustycznych i funkcji. System był również „podłączalny na gorąco” z możliwością dodania pewnej liczby niezależnych „stref” w jednym pudełku. Było to w sumie 3 projekty PCB (płyta główna, płyta montażowa i moduł wtykowy), a płyta montażowa obsługiwała 4 moduły wtykowe. Całkiem fajny projekt, ponieważ robiłem to solo, musiałem zaprojektować system, schemat, układ płytki drukowanej i oprogramowanie układowe.
Teraz mogłem zrobić wszystko z jednym nieporęcznym rdzeniem ARM, potrzebowałem tylko około 50MIPS pracy DSP na 24-bitowych stałych punktach na strefę. Ale ponieważ wiedziałem, że ten system będzie działał przez bardzo długi czas, i wiedziałem, że bardzo ważne jest, aby nigdy nie klikał, nie wyskakiwał ani nic takiego. Zdecydowałem się wdrożyć go z DSP o niskiej mocy na strefę i jednym mikrokontrolerem PIC, który pełnił rolę zarządzania systemem. W ten sposób nawet jeśli jedna z funkcji uC ulegnie awarii, być może atak DDOS na jego port Ethernet, DSP z przyjemnością po prostu dalej będzie się odtrącać i prawdopodobnie nikt nigdy się nie dowie.
Mikrokontroler odegrał więc rolę wyświetlania 2-liniowego wyświetlacza LCD, niektórych przycisków, monitorowania temperatury i sterowania wentylatorem (na każdej płycie znajdowały się również wzmacniacze audio o dość dużej mocy), a nawet obsługiwał stronę internetową w stylu AJAX przez sieć Ethernet. Zarządzał również procesorami DSP za pośrednictwem połączenia szeregowego.
Jest to więc sytuacja, w której nawet w czasach, w których mogłem użyć jednego rdzenia ARM do zrobienia wszystkiego, projekt podyktował dedykowany układ przetwarzania sygnałów.
Inne obszary, w których wpadłem na DSP:
* High End audio - bardzo wysokiej klasy odbiorniki i sprzęt do miksowania i przetwarzania koncertowego
* Przetwarzanie radaru - Użyłem do tego również rdzeni ARM w aplikacjach niskiej jakości.
* Przetwarzanie sonaru
* Wizja komputera w czasie rzeczywistym
W przeważającej części niskie i średnie końce przestrzeni audio / wideo / podobnej zostały przejęte przez procesory aplikacyjne, które łączą procesor ogólnego przeznaczenia z silnikami odciążającymi co-proc dla różnych aplikacji.