DSP

什么是DSP

2019-07-13 09:34发布

一、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的具体含义,否则,很难跟别人交流。