Честно говоря, в настоящее время грань между ними почти исчезла, и есть процессоры, которые можно классифицировать как оба (например, AD Blackfin).
Вообще говоря:
Микроконтроллеры - это целочисленные математические процессоры с подсистемой прерываний. Некоторые могут иметь аппаратные единицы умножения, некоторые нет и т. Д. Дело в том, что они предназначены для простой математики и главным образом для управления другими устройствами.
DSP - это процессоры, оптимизированные для обработки потокового сигнала. У них часто есть специальные инструкции, которые ускоряют общие задачи, такие как многократное накопление в одной инструкции. У них также часто есть другие векторные или SIMD инструкции. Исторически они не были системами, основанными на прерываниях, и работали с нестандартными системами памяти, оптимизированными для своих целей, что усложняло их программирование. Обычно они предназначены для работы в одном большом цикле обработки потока данных. DSP могут быть спроектированы как целочисленные, с фиксированной или с плавающей запятой.
Исторически сложилось так, что если вы хотели обрабатывать аудиопотоки, видеопотоки, осуществлять быстрое управление двигателем, все, что требовало обработки потока данных на высокой скорости, вы бы смотрели на DSP.
Если вы хотите управлять некоторыми кнопками, измерять температуру, запускать символьный ЖК-дисплей, управлять другими микросхемами, которые обрабатывают вещи, вы бы использовали микроконтроллер.
Сегодня вы найдете в основном процессоры общего назначения типа микроконтроллеров со встроенными DSP-подобными инструкциями или с микропроцессорными сопроцессорами для обработки потоковых данных или других операций DSP. Вы не видите, что чистый DSP используется больше, кроме как в определенных отраслях.
Рынок процессоров гораздо шире и размытее, чем раньше. Например, я вряд ли считаю ARM cortex-A8 SoC микроконтроллером, но, вероятно, он соответствует стандартному определению, особенно в пакете PoP.
РЕДАКТИРОВАТЬ: понял, я бы добавил немного, чтобы объяснить, когда и где я использовал DSP, даже во времена процессоров приложений.
Недавним продуктом, который я разработал, была обработка аудио с X каналами ввода и X каналами вывода на каждую зону. Предполагаемое использование продукта означало, что он часто сидел и делал свое дело, годами обрабатывая аудиоканалы, не касаясь его. Обработка звука состояла из различных акустических фильтров и функций. Система также была «горячей» с возможностью добавления некоторого количества независимых «зон» в одной коробке. Всего было 3 варианта печатных плат (материнская плата, объединительная плата и подключаемый модуль), и объединительная плата поддерживала 4 подключаемых модуля. Весьма увлекательный проект, так как я делал это в одиночку, мне пришлось заниматься проектированием системы, схемой, макетом печатной платы и прошивкой.
Теперь я мог бы сделать все это с одним громоздким ядром ARM, мне потребовалось всего около 50MIPS DSP для 24-битных номеров с фиксированной точкой на зону. Но поскольку я знал, что эта система будет работать очень долго, и знал, что очень важно, чтобы она никогда не щелкала, не щелкала и не делала ничего подобного. Я решил реализовать его с использованием DSP с низким энергопотреблением на зону и одного микроконтроллера PIC, который играл роль системного управления. Таким образом, даже если одна из функций uC выйдет из строя, может быть, DDOS-атака на его порт Ethernet, DSP с удовольствием продолжит пыхтеть, и, вероятно, никто об этом не узнает.
Таким образом, микроконтроллер играл роль двухстрочного ЖК-дисплея, некоторых кнопок, контроля температуры и управления вентилятором (на каждой плате также было несколько довольно мощных усилителей звука) и даже обслуживал веб-страницу в стиле AJAX через Ethernet. Он также управлял DSP через последовательное соединение.
Так что это ситуация, когда даже в те дни, когда я мог бы использовать одно ядро ARM, чтобы делать все, дизайн диктовал выделенную ИС для обработки сигналов.
Другие области, где я столкнулся с DSP:
* High End audio - Высококачественные ресиверы и оборудование для микширования и обработки концертного качества
* Обработка радара - я также использовал для этого ARM-ядра в бюджетных приложениях.
* Обработка сонара
* Компьютерное зрение в реальном времени
По большей части нижние и средние концы аудио / видео / аналогичного пространства были заняты процессорами приложений, которые объединяют ЦП общего назначения с механизмами разгрузки co-proc для различных приложений.