一、DSP,一般有两种解释。
1、Digital Signal Process,数字信号处理,是电子信息工程的专业课,主要内容有FFT、FIR、IIR、CIC。
2、Digital Signal Processor,数字信号处理器,以下简称为DSP处理器。
DSP处理器与单片机、ARM这种CPU类似,内部有指令集、ALU等,也有很多外设,如:串口、IIC、SPI、CAN、USB等。
用得最多的DSP处理器,有TI的
C66x系列、ADI的
Blackfin系列。
二、DSP处理器有什么特点?
你可以把DSP处理器想象成一个科学计算器。它非常擅长做运算。
1、并行性。某些型号的DSP处理器内部有两个独立的乘法器,可以把其中一个专门做FIR滤波器用,而且可以脱离ALU单独运行。
这样,FIR滤波器的滤波特性不受ALU影响。这一点,用ARM是做不到的。
2、快速查表。DSP处理器内部ROM固化了很多数学上使用的各种常量、表格。如:正弦表等。
3、有16位、32位、64位的DSP处理器。
4、某些型号的DSP处理器支持硬件浮点运算单元。
5、可以使用厂家提供的算法库。
6、某些型号的DSP处理器支持VLIW,即超长指令集字,并行度非常高。
7、某些型号的DSP处理器内部是DSP+ARM。
8、有多核DSP。
9、价格较贵。
三、哪里用到DSP处理器?
1、智能电网,如:开关电源或逆变器中的负载均衡。
2、家电,如:空调中的电机调速SVPWM算法。
3、视频采集卡,如:DSP做视频压缩算法(H.265),ARM在局域网上做流媒体传输。
4、指纹识别,如:公司里的指纹打卡机。
5、运动控制卡,如:机床、机械手的控制卡。
四、FPGA中的DSP是什么东西?
打开QuartusII的IP核向导,如上图所示。
QuartusII中的DSP是一些IP核,它只做一些常见的算法,如:FFT、NCO、FIR等。显然,这并非前面所说的DSP处理器。
查看QuartusII中乘加器IP的手册,如上图所示,出现DSP Blocks字样。
手册中说到,DSP块由一些专用的逻辑块组成。这些逻辑块可以实现乘法、加法、减法、累加、求和运算。
你可以把DSP块配置成乘法器、乘加器、乘累加器,并运用在绝大多数DSP算法上。
显然,这里的DSP块,只是一个可配置的乘加单元,并非前面所说的DSP处理器。
其实FPGA内部并没有DSP处理器。
五、STM32中的DSP是什么东西?
奇怪,STM32里面居然也有DSP。
手册中说到,STM32支持DSP指令集,该指令集可以高效地处理复杂的算法。
我们再看看Cortex M4的手册。
这里的APSR寄存器的第27位,Q,表示DSP溢出和饱和标志位。
也就是说STM32中的DSP是FPU,即浮点运算单元,而STM32所支持的DSP指令集,也就是操作FPU的指令。
显然,STM32中的DSP并非上面所说的DSP处理器。
PS,所以说,要搞懂这些DSP的具体含义,否则,很难跟别人交流。