alibabawkl 发表于 2015-12-27 22:12

MCU ,DSP和FPGA的区别

这几种芯片都可以作为电极控制器的主控芯片吗,FPGA和其他的芯片有什么不一样的地方呢?

cne53102 发表于 2015-12-28 11:16

MCU就是单片机,相对另两个简单、便宜常用,单独一个芯片就能运行,也内置一些常用的功能,譬如AD转换,PWM输出,定时器,运算速度满足一般应用的需求。
DSP是特别适合用来数字信号处理,譬如做图像处理(视频),音频,也适用于运动和电机控制,运算能力很强,有专用的硬件算法电路,运算能力比单片机强很多,如果你有持续的大量的数据需要处理,那就很适合DSP。
但需要注意的是,DSP就是DSP,它不适合用来做一些MCU或CPU做的事情,就像你不能拿你电脑里的显卡来做CPU使用一样,虽然实际上确实可以让显卡来运算一些东西,算的甚至比CPU还快,但功能是不一样的。
FPGA里面是数量非常大的可以任意组合的逻辑门,你可以随意修改,让它变成你想要的那种特殊的芯片,你想用它实现一个CPU也是可以的,或者任何其他功能,只要你选的那颗FPGA里的逻辑门数量足够多。
FPGA非常适合需要并行计算的场合,一般的处理器只能一下一下的去计算,如果你有几个甚至几十个输入,然后马上就要得到响应输出信号,那FPGA就很适合了,FPGA也可以用于做图像处理等应用,也适合做各种信号处理。

alibabawkl 发表于 2015-12-28 21:55

太感谢了,回答的太全面了。

alibabawkl 发表于 2015-12-28 21:56

cne53102 发表于 2015-12-28 11:16
MCU就是单片机,相对另两个简单、便宜常用,单独一个芯片就能运行,也内置一些常用的功能,譬如AD转换,PWM ...

FPGA芯片里面有存储器吗

cne53102 发表于 2015-12-28 22:22

alibabawkl 发表于 2015-12-28 21:56
FPGA芯片里面有存储器吗

一般FPGA内部没有FLASH,需要外挂一个,然后在上电时加载。
但也有有的。

alibabawkl 发表于 2015-12-28 22:26

cne53102 发表于 2015-12-28 22:22
一般FPGA内部没有FLASH,需要外挂一个,然后在上电时加载。
但也有有的。

哦,里面是没有定时器这些配置的吧。晶振呢?

cne53102 发表于 2015-12-28 22:54

alibabawkl 发表于 2015-12-28 22:26
哦,里面是没有定时器这些配置的吧。晶振呢?

你可以在FPGA里面实现定时器的功能,那些逻辑门任意组合,你想要16位定时器可以,想要128位的定时器也可以的。

晶振一般使用有源晶振,从哪个管脚输入进去也看你心情,都可以任意配置的。

FPGA也可以用一些现成的软核来实现单片机的功能,并且可以修改配置,譬如你想要20个定时器之类的,也可以

alibabawkl 发表于 2015-12-28 23:00

我只能说由衷的佩服{:1_494:} ,问下你是干什么行业的

cne53102 发表于 2015-12-28 23:19

alibabawkl 发表于 2015-12-28 23:00
我只能说由衷的佩服 ,问下你是干什么行业的

电子爱好者,半个学生,来此学习电机。。

alibabawkl 发表于 2015-12-29 20:27

cne53102 发表于 2015-12-28 22:54
你可以在FPGA里面实现定时器的功能,那些逻辑门任意组合,你想要16位定时器可以,想要128位的定时器也可 ...

能这么理解吗,MCU或者单片机是一种通用芯片,而DSP有专门用来电机控制的芯片,内含了电机控制的专用模块。FPGA则更加的快速,追求实时性

cne53102 发表于 2015-12-30 13:20

alibabawkl 发表于 2015-12-29 20:27
能这么理解吗,MCU或者单片机是一种通用芯片,而DSP有专门用来电机控制的芯片,内含了电机控制的专用模块 ...

DSP不是专用于电机控制的芯片,DSP是专门处理数字信号的。
确实有面向电机控制优化的DSP,但这不代表所有的DSP都是搞电机的。
FPGA你可以认为是一种可以自己来定制修改内部结构的芯片,芯片内部电路连接是由你程序决定的,你可以用FPGA实现一种市面上不存在的特殊芯片,专用于你的应用,他最大的优势是硬件结构可以随意修改。

alibabawkl 发表于 2015-12-30 19:22

cne53102 发表于 2015-12-30 13:20
DSP不是专用于电机控制的芯片,DSP是专门处理数字信号的。
确实有面向电机控制优化的DSP,但这不代表所 ...

我理解您对FPGA的解释,那么我还有一个问题就是普通的可以修改程序的芯片,通过修改程序去改变的不是其内部的电路吗?跟FPGA有什么不一样吗

cne53102 发表于 2015-12-30 22:41

alibabawkl 发表于 2015-12-30 19:22
我理解您对FPGA的解释,那么我还有一个问题就是普通的可以修改程序的芯片,通过修改程序去改变的不是其内 ...

是这样的,单片机是根据程序去做这个做那个,它是不断的去读取FLASH里面的指令(程序)或数据,然后根据其内容来决定在那一刹那它做什么。
它芯片内部的CPU、定时器等电路,都是出厂时就制作好的,并不能修改。
CPU读到指令后,根据指令去设定定时器的状态、改变引脚电平、判断某个值或者做某种运算等。
它里面唯一能修改的东西,就是各个地方的高低电平,即0或1的状态。
不仅是单片机,ARM甚至电脑都是这样工作的。

而FPGA根本不是这种结构,它芯片里面整个平面都堆满了一个个最基本的“逻辑单元”,这些逻辑单元被看似井字形的线互相连起来,但这些线并不是一直通着的,这些线是否通,取决于你编写的程序(注意FPGA的程序并不是你所熟悉的C语言,他是描述硬件的语言VHDL或verilog),FPGA加载了你的程序,根据其描述的内容,修改这线的联通的状态,这样这些“逻辑单元”就可以按照你的需要来组合、连接,被改变的是真实的电路连接关系。

所以说FPGA可以成为你所希望的那一种特殊的芯片,并且是真的具有那样的内部结构的,不是软件虚拟出来的。

FPGA可以不需要像单片机或其他处理器那样一步一步的运算,你按照你的需要组合好这些逻辑单元,只要入口给上信号,出口就会有输出,你不需要等它去运算什么东西(实际上也有延迟,因逻辑门翻转的速度不是无限的,但延迟非常非常小)(如果想实现单片机那种逐步运算的效果也可以,完全可以用FPGA来实现一个单片机)

只要是用74系列那种与非门能实现的功能,你都可以原模原样用相同的方法在FPGA内部实现,一片FPGA可以提供成千上万甚至几百万个逻辑单元,你随意组合,只要逻辑单元的数量和智商都够用,多复杂都没关系,芯片商都是使用FPGA作为“开发模板”来研究和调试新设计的芯片的。

alibabawkl 发表于 2015-12-31 07:42

cne53102 发表于 2015-12-30 22:41
是这样的,单片机是根据程序去做这个做那个,它是不断的去读取FLASH里面的指令(程序)或数据,然后根据 ...

{:1_494:} {:1_494:} {:1_494:} 您是真正的专家

bldc菜鸟 发表于 2015-12-31 08:45

cne53102 发表于 2015-12-28 11:16
MCU就是单片机,相对另两个简单、便宜常用,单独一个芯片就能运行,也内置一些常用的功能,譬如AD转换,PWM ...

回答得漂亮!必须给赞,这个问题也困扰了我一段时间。

cne53102 发表于 2015-12-31 12:46

alibabawkl 发表于 2015-12-31 07:42
您是真正的专家

不敢当,FPGA只是初学而已,目前还都是照葫芦画瓢,这也是我自己的理解,并非严谨的答案

kanlau 发表于 2015-12-31 12:56

回答得漂亮!必须给赞

alibabawkl 发表于 2015-12-31 19:39

cne53102 发表于 2015-12-31 12:46
不敢当,FPGA只是初学而已,目前还都是照葫芦画瓢,这也是我自己的理解,并非严谨的答案

有时候严谨的答案不一定能够给出容易理解的回答

cne53102 发表于 2015-12-31 20:22

alibabawkl 发表于 2015-12-31 19:39
有时候严谨的答案不一定能够给出容易理解的回答

这个同意{:aa13

xfz0916 发表于 2015-12-31 21:46

回答得漂亮!必须给赞
页: [1] 2
查看完整版本: MCU ,DSP和FPGA的区别