2024年5月25日发(作者:)

DSP、MCU、CPLD、ARM、FPGA芯片的区别

1,单片机小型电脑处理器,最小可以到8个脚,价格便宜,最便宜2块钱

2,PLC可变逻辑控制器,主要用在工业控制,里面是类似一个加强的单片机。对输入输出均

有做处理(抗干扰能力、带负载能力都增强)。

例如抗干扰,增加带负载驱动能力

3,DSP 数字信号处理芯片,这个用途可做信号处理,例如图像处理,数据采集处理,它比单

片要快很多,比单片机功能要强大

4,FPGA、CPLD可变逻辑控制,这个做逻辑处理控制,小型的CPLD是没有中央处理器的,

大型可以嵌入系统,功能在单片机之上,适合做大型的数据处理,逻辑控制。其价格不便宜。

但是他和单片机有本质的区别。例如单片机有内嵌外设 AD,DA转换等,CPLD则需要通

过控制其他外设IC。

要想诠释清楚,也非三言两语能道明,还是多看看书本吧

学习可以以单片机为先,其次是FPGA,CPLD,DSP。 PLC比较简单,学会前面后面只

要了解一周一般都会了

一家之言,欢迎指证:

DSP:数字信号处理器,处理器采用哈弗结构,工作频率较高,能大幅度提高数字信号处理

算法的执行效率.

MCU:微控制器,主要用于控制系统,工作频率一般来说比DSP低,硬件上具有多个IO

端口,同时也集成了多个外设,主要是便于在控制系统中的应用.至于ARM处理器,个人认

为是MCU的高级版本,ARM本身只是一个内核,目前已经有多个版本.

CPLD:复杂可编程逻辑器件

FPGA:现场可编程门阵列

后两者都是可编程器件,CPLD目前一半采用FLASH技术,而FPGA采用SRAM技术,这就

决定了FPGA需要采用特定的配置技术。同时FPGA的规模要比CPLD大得多,但CPLD

应用起来相对要简单的多。

DSP主要用做运算,如语音,图像等信号的运算处理,但基本不用做控制。

MCU,FPGA,ARM主要用做控制,MCU低价低功耗,但门限很少,结构简单,不能实现

复杂控制。

ARM控制能力较强,但运算能力相对较弱。因此现在很多手持设备是用ARM+DSP来实现

的,就是所谓的“双核心"。

FPGA可做复杂的逻辑控制,功能很强大。

这么说吧,ASIC原本就是专门为某一项功能开发的专用集成芯片,比如你看摄像头里面的芯

片,小小的一片,集成度很低,成本很低,可是够用了。一个山寨摄像头卖才卖30块,买

一片ARM多少钱?后来ASIC发展了一些,称为半定制专用集成电路,相对来说更接近

FPGA,甚至在某些地方,ASIC就是个大概念,FPGA属于ASIC之下的一部分。

FPGA基本就是高端的CPLD,两者非常接近。我现在用的是ALTERA DE2开发板的

CYCLONE系列FPGA.这种器件是用逻辑门来表述性能的。本身他就是一堆的逻辑门,通

过硬件描述语言,比如verilogHDL把它转成电路连接,从最基本的逻辑门层面上连接成电路

(参见数字电路书上那些全加器触发器什么的)。应该说,虽然看起来像一块CPU,其实是

完全硬件实现的。后来因为写代码麻烦,对控制部分比较薄弱,本来跟其他CPU配合使用,

即麻烦的算法CPU提交给FPGA,FPGA算完把结果再返回给CPU。可是这样外围电路就

变得麻烦。于是提出了SOC设计方法,就是直接在FPGA里写一个CPU出来,既然FPGA

万能,做个CPU自然毫无压力。这其中还有软核和硬核的区别,不过除了性能,使用方法大

同小异.所谓IP核,就是把各种专用集成电路用硬件描述语言描述,然后烧到FPGA里形成

专门的电路,这样就不必另外搭芯片了,所有的电路在一片FPGA里面形成。

DSP实际应该称为DSPs,即用于DSP处理的专用芯片。跟普通计算机的区别一方面是他

是哈佛结构的,也就是数据和程序空间分开。(普通计算机是冯诺依曼结构)另一方面他有

流水线结构,不过现在其他也有了,见贤思齐。再一方面他有专用的硬件算法电路,用以完

成DSP运算,比如最基本的乘法累加。上过DSP的就知道,蝶形算法FFT什么的,拆成最

基本单元就是乘法累加,把这部分加速了,整体性能就有非常大的提高。DSP对于流媒体

的处理能力远远的优于通用CPU。所以你看现在手机CPU,至少语音部分都是用DSP的。

后来DSP概念也复杂化,各家都把一个控制核心整合到DSP里面,比如现在的智能手机芯

片。可以看一下高通或者TI的片,基本是一个ARM核控制整体运算,一个DSP处理语音编

解码,一个GPU负责图像运算,一个基带和天线处理模块负责通信,再加一些七七八八的

东东比如GPS模块什么的。

单片机就是一个百搭的通用CPU,提供各种接口来对整体进行控制,相当一个总调度,当

然,简单的功能一片CPU独立工作也就完成了.原来的51系列就是一堆IO口,后来慢慢的

把常用的PWM,AD之类的功能加入了单片机。主要包括用了无数年仍然牛逼各大学必教的

51系列,还有AVR,PIC,ARM,HOTEK……其实ARM9以后,已经说不清ARM算哪类了,

目前的架构来看,更接近DSP.

哈佛结构

哈佛结构是一种处理器结构。使用哈佛结构的处理器有:AVR、ARM9、ARM10、ARM11

等。

简介

哈佛结构是一种将程序指令存储和数据存储分开的存储器结构。哈佛结构是一种并行体

系结构,它的主要特点是将程序和数据存储在不同的存储空间中,即程序存储器和数据存储

器是两个独立的存储器,每个存储器独立编址、独立访问。与两个存储器相对应的是系统的4

条总线:程序的数据总线与地址总线。这种分离的程序总线和数据总线可允许在一个机器周

期内同时获得指令字(来自程序存储器)和操作数(来自数据存储器),从而提高了执行速度,

提高了数据的吞吐率。又由于程序和数据存储在两个分开的物理空间中,因此取址和执行能

完全重叠。中央处理器首先到程序指令存储器中读取程序指令内容,解码后得到数据地址,

再到相应的数据存储器中读取数据,并进行下一步的操作(通常是执行)。程序指令存储和

数据存储分开,可以使指令和数据有不同的数据宽度。

哈佛结构的计算机由CPU、程序存储器和数据存储器组成,程序存储器和数据存储器采

用不同的总线,从而提供了较大的存储器带宽,使数据的移动和交换更加方便,尤其提供了

较高的数字信号处理性能。

相关

哈佛结构的微处理器通常具有较高的执行效率。其程序指令和数据指令分开组织和存储

的,执行时可以预先读取下一条指令.

哈佛结构是指程序和数据空间独立的体系结构,目的是为了减轻程序运行时的访存瓶

颈。

例如最常见的卷积运算中,一条指令同时取两个操作数,在流水线处理时, 同时还有一

个取址操作,如果程序和数据通过同一条总线访问,取址和取数必会产生冲突,而这对大运

算量的循环的执行效率是很不利的。

哈佛结构能基本上解决取指和取数的冲突问题.而对另一个操作数的访问, 就只能采用

Enhanced 哈佛结构了,例如像TI那样,数据区再split,并多一组总线。 或向AD 那样, 采

用指令cache,指令区可存放一部分数据。

比较

哈佛结构与冯·诺依曼结构处理器相比,处理器有两个明显的特点:使用两个独立的存

储器模块,分别存储指令和数据,每个存储模块都不允许指令和数据并存;使用独立的两条

总线,分别作为CPU与每个存储器之间的专用通信路径,而这两条总线之间毫无关联。

改进的哈佛结构,其结构特点为:

使用两个独立的存储器模块,分别存储指令和数据,每个存储模块都不允许指令和数据

并存,以便实现并行处理;具有一条独立的地址总线和一条独立的数据总线,利用公用地址

总线访问两个存储模块(程序存储模块和数据存储模块),公用数据总线则被用来完成程序

存储模块或数据存储模块与CPU之间的数据传输;两条总线由程序存储器和数据存储器分

时共用.