老实说,如今两者之间的界线几乎消失了,有些处理器可以归为两者(例如,AD Blackfin)。
一般来说:
微控制器是带有中断子系统的整数数学处理器。有些可能具有硬件乘法单元,有些则没有,等等。重点是它们是为简单的数学设计的,主要用于控制其他设备。
DSP是为流信号处理而优化的处理器。它们通常具有特殊的指令,可以加快常见任务的速度,例如在单个指令中进行乘累加。它们通常还具有其他向量或SIMD指令。从历史上看,它们不是基于中断的系统,而是使用针对其目的进行了优化的非标准内存系统进行操作,从而使其难以编程。它们通常设计为在一个大循环中处理数据流。DSP可以设计为整数,定点或浮点处理器。
从历史上看,如果您想处理音频流,视频流,进行快速的电动机控制,那么任何需要高速处理数据流的事情都可以找DSP来解决。
如果要控制某些按钮,测量温度,运行字符LCD,控制正在处理事物的其他IC,则可以使用微控制器。
如今,您通常会找到通用微控制器类型的处理器,这些处理器具有内置的类似DSP的指令或具有处理流数据或其他DSP操作的片上协处理器。除特定行业外,您不会再看到使用纯DSP的东西了。
处理器市场比以往更加广阔和模糊。例如,我几乎不认为ARM cortex-A8 SoC是微控制器,但它可能符合标准定义,尤其是在PoP封装中。
编辑:弄清楚我什至要解释一下什至在应用处理器时代我何时/何地使用过DSP。
我设计的最新产品是对每个“区域”的X通道输入和X通道输出进行音频处理。该产品的预期用途意味着它经常会坐在那里做它的事情,处理音频通道数年之久,而没有任何人触摸它。音频处理包括各种声学滤波器和功能。该系统也是“热插拔”的,能够在一个盒子中添加一定数量的独立“区域”。总共有3种PCB设计(主板,背板和插件模块),背板支持4种插件模块。当我独自完成一个非常有趣的项目时,我必须进行系统设计,原理图,PCB布局和固件。
现在,我可以用一个笨拙的ARM内核完成全部工作,我只需要在每个区域的24位定点编号上使用大约50MIPS的DSP工作即可。但是因为我知道该系统将运行很长时间,并且知道绝对不要单击或弹出或类似的东西,这一点至关重要。我选择用每个区域一个低功耗DSP和一个扮演系统管理角色的PIC微控制器来实现它。这样,即使uC功能之一崩溃了,也许在其以太网端口上发生了DDOS攻击,DSP也会欣喜若狂地继续前进,这很可能没人会知道。
因此,微控制器扮演了运行两行字符LCD,一些按钮,温度监控和风扇控制(每块板上还存在一些功率相当大的音频放大器)的角色,甚至通过以太网提供了AJAX风格的网页。它还通过串行连接管理DSP。
因此,即使在我本可以使用单个ARM内核完成所有工作的时代,该设计也要求使用专用的信号处理IC。
我遇到过DSP的其他领域:
*高端音频-高端接收器和音乐会品质的混音和处理设备
*雷达处理-我还在低端应用程序中使用了ARM内核。
*声纳处理
*实时计算机视觉
在大多数情况下,音频/视频/类似空间的低端和中端已由应用处理器接管,这些处理器将通用CPU与用于不同应用的协同处理卸载引擎结合在一起。