本文来自米尔科技,原文地址:http://www.myir-tech.com/resource/502.asp,转载请注明出处。
我以为这样比没有意义,做嵌入式系统最大特征是“嵌入”二字,也就是说你的控制系统是嵌入于你的控制对象之中,所以首先是服从于对象的需求和特征,脱离对象空论谁好谁坏有何依据?
每个MCU都有其存在的价值,每个使用者的选择都有其道理,AVR开始时是以单时钟周期指令为卖点,相对于当时 12个时钟的经典51确实有优势,而且基于CMOS的特征,时钟越高功耗越大,所以它在能耗上似乎明显占优。
可随着技术的改进,51现在已经早就有了4时钟周期,`2时钟周期乃至单时钟周期的芯片了,此时AVR的速度优势已不存在。
如果考虑最高时钟限制,读者可以比较一下,似乎AVR的速度还不如某些51快。
如果考虑开发成本,那就更难说了。
至于ARM,有其优势、有其劣势,关键看你依附的对象需要什么?你的产品最终定位如何?
如果产品利润空间较大,MCU所占成本有限,不妨提高档次,也算是个宣传素材,同时为后续升级留有余地。
如果产品需精打细算,数量庞大,省1分钱都能带来巨大的利润,那MCU则是够用即可,哪怕开发再不方便,那也只是一次开支,何况中国的工程师并不贵 : (
所以,学习单片机无所谓选那款,关键在于你能否掌握其本质,快速的触类旁通,你的产品是否成功就在于你能否最佳的选择好符合嵌入对象特征的MCU。
一点拙见,仅供参考!
ARM Vs 8051
1.8051是8位的 ARM是32的
2.速度:.ARM的主频可以达到700M而8051超过50M就很了不起了
3.ARM运算处理能力强, 8051侧重处理逻辑运算,算术浮点运行比较差。
4.ARM的硬件资源丰富,8051硬件资源比较单一和简单。
5.ARM的FLASH和RAM超大,8051太小,干不了大活。
我们拿Keil官方的MCB950开发板和米尔科技的MYD-LPC1857开发板做一个比较,两者分别是基于8051单片机和ARM Cortex-M3处理器。
+----------------+----------------+-------------------------+
| 功能 | MCB950 | MYD-LPC1857|
| 架构 | 8051 | ARM Cortex-M3 |
| 主频 | 12 MHz | 180MHz |
| 内部RAM | 0.5KB | 136KB |
| 内部FLASH | 8KB | 1MB |
+----------------+----------------+-------------------------+
ARM Vs AVR
我感觉AVR最大的特点就是同时可以操作两条指令,其实AVR就是RISC精简指令的一个优化,
但AVR不能像ARM一样可以运行多种操作系统,虽然可以运行操作系统,总体载能不如ARM,但是感觉其应用相对ARM比较简单,很容易上手,ARM的运算能力虽然强于AVR,但是感觉要与操作系统配合使用才能体现其优势,可是嵌入操作系统又是一个相对复杂的系统,需要花费较多的时间去理解、消化,感觉ARM的最大优势是运算能力强大、移植性强,一般应用在较高档的仪器、设备中;这也是我想要学习ARM的原因。
3.比较AVR和ARM,谈谈相同与区别 我看到hyloo的发问,本来想回答的,但一想,写了很多,倒算别人的酷贴,不太划算,所以决定自开一贴,顺便扬扬名^_^。
AVR我用过2个月,ARM我只看过2本书,所以,说的有错请各位指教。
这里我们讨论的AVR和ARM都是泛指,就是说,包括所有机器指令集和这两个体系的都通用的众多芯片,不单单指某项技术或者某块芯片。
首先是相同点,两者都是现代的CPU设计范例,基于RISC的指导思想,在体系设计初期时就充分考虑到了CPU内核面积,速度,高级语言支持等很多因素。又吸取了51、x86等20年前就商业化的体系所暴露出的问题,所以从现代眼光来看,都是非常先进的设计。最重要,GCC对ARM和AVR都提供了相当好支持,而且可以免费使用。网上,特别是外国网上都有很多开放资源可以参考。两者在国内都属于市场引入阶段。销售方面,各有两大著名国内MCU公司做代理,而且巧合的是都是来自广东的奸商(哈,开玩笑,勿当真)。
AVR和ARM的区别就比较多了:
ARM是IP核,可供各大芯片商集成到各自的设计中,好比是软件语言中的C++,如果你想换一家厂商或者某家的货太贵,都会有其它的厂商来竞争,至少从理论上,你不会被一家厂商套住。
AVR这方面就差点,ATMEL一家,别无分号。你只能在他的系列中选一个型号,无法选厂家。好比是软件语言中的Java,虽然现在免费(指Java的SDK,不是AVR)或价格低,但市场前景更多的掌握在厂商手中。
实际产品成本方面,AVR优于ARM,毕竟AVR是8位机,配什么外设都便宜,由于速度比ARM低,PCB版也好设计,20MHz的数字电路基本上只要通就行了,不用过多考虑信号完整性什么的。而ARM的速度能轻易上100MIPS,32位的CPU也不是吹的,速度上AVR根本没法比,不过带来的问题就多了,要4层PCB,而且外设也贵多了。
功能方面,ARM大大优于AVR,ARM可以做PDA,手机,AVR显然不行,最糟糕的是ARM上可以跑Linux,Linux可以做多少事啊,虽说国内实际在ARM平台上跑出Linux而又愿意公开技术的人几乎没有(我正在努力朝这个方向发展),但前途绝对是光明的。功能上的优势意味着ARM比AVR有着更广的应用范围,所以,双龙耿先生所说的“中学用AVR”如果是对的话,大学里就应该用ARM。
外设方面AVR稍强,实际上我们可以看到Atmel公司的基于ARM核的AT91M55800A包括了很多AVR的外设,但还缺TWI/I2C,可变增益ADC,EEPROM等好用的部件。但毫无疑问,ARM的外扩外设能力比AVR强的多,所以外设方面算平手吧
操作系统和软件源码资源方面,ARM拜Linux之赐,比AVR有优势点。但AVR上的嵌入式操作系统也不是没有,uC/OS-II就不错,如果能在Mega8515等便宜的芯片上跑起来的话,我看350元的ARM版也难卖,这一点双龙不知有没有计划?
调试手段方面,ARM应该优于AVR,AVR就一个JTAG接口的仿真器我个人还可以买一下,但所支持芯片有限,ARM方面书上有相当多的方法调试,这里我不熟也缺经验,就不瞎说了。
最后来个有个性的结尾,鉴于GCC对AVR和ARM的支持都很好,所以我决定都好好学,这里顺便给GCC打个广告,大家也看得出RISC的MCU最好还是直接使用C语言,GCC编译器显然是最明智的选择。
ARM Vs MSP430
MSP430会向着专用,更低电压,更低功耗的方向发展,不求功能大而全。应该会有更多的型号出现以供不同场合的测量使用。430的编程方法是在低功耗模式与任务之间切换来降低系统功耗,满足便携和节能的要求。
ARM是基于软核的高级精简指令机,高端应用方面比如嵌入式系统的主板开发,要求各种接口齐备,硬件的软实现相对容易降低成本,普及使用。ARM需要跑操作系统,如ucos,wince,linux等等,主要由于嵌入式系统开发往往是多任务,实时性强。
ARM Vs Coldfire
嵌入式处理器讲求的不是速度冷火不会慢慢死掉,它有相当悠久的传统和光辉的历史,只不过ARM在国内的市场做得太好了,冷火的知名度就受到很大的影响。其实华恒的冷火系列开发板卖的如火如荼的时候, ARM在国内还没有形成气候,只是在2003年的时候,ARM7、ARM9才开始风靡起来,当时在嵌入式领域,最热门的关键词应该就是2410开发板了,呵呵。
冷火最早的时候是68K,最初应用于APPLE上,比INTEL的8088还早。1992年的时候,68K芯片的销售量几乎是当时市面上所有其他嵌入式处理器(包括ARM、MIPS、PowerPC)销量的总合。即使是现在,我们知道,我们做的一个IP机顶盒的客户,对华恒来说是比较大的客户了,他们走量是以十K为单位的,在飞思卡尔那边就还算是小客户,呵呵,冷火系列芯片不过时,现在在国内只不过是知名度的问题。
冷火系列的处理器型号有很多,各自的特点不同
我就说一下MCF52X系列吧,前一段时间华恒和飞思卡尔一起做技术培训、市场推广,我也就需要研究MCF52X了。
这款处理器主要用在控制方面,最大的特点就是成本优势,不要看这一颗芯片的价格好像不高,但是它芯片内部的SDRAM和FLASH,完全能够胜任小巧紧凑的RTOS的运行需求,做成低端产品的整机成本就非常具有成本优势了。
Coldfire产品现在有四个系列V1/2/3/4 高端的V3/V4国内应用很少看到。
目前国内用得较多的是V2内核系列。在这一系列内具体型号分类也很多。楼上提到的CF5213为单片式方案。其他很多型号的芯片为外扩程序/数据存储器方式。
最小的单片式的CF5211配置为:
主频80MHZ max
内带MAC和硬件除法器
16KB SRAM,128KB FLASH 程序存储器
4-ch/32-bit + 4-ch/16-bit 定时器
8-ch 12-bit ADC
3-ch UART
I2C;QSPI
BDM/JTAG调试接口,免费128K版CW支持
64PIN LQFP封装的1万片公开参考价格 US$4.99
ARM Vs DSP
1.ARM处理器有包括系统模式,用户模式等工作模式,并且每种模式下都有相应的专有通用寄存器,因此可以快速地实现不同模式的切换,这对于操作系统来说是非常有益的,但是DSP,没有这方面的考虑。另外,由于ARM内核与片内外设通过VPB相连,因此两者相对独立,这样,ARM的片内外设的搭配也更加灵活。
不知道说得对不对,毕竟,对DSP得了解不多。欢迎指正
2.主要是两个的作用不一样。ARM是32位RISC芯片,手机数码产品和工控上用,可以理解成CPU,可以上个OS也可以直接当单片机用。而DSP是作数字信号处理的,以TI的东西为例,2000做控制,5000处理静态图象,6000处理动态图象,8000是多DSP联合控制用的。
3.ARM是一个公司的名字,DSP=DIGITAL Signal Processing
ARM公司设计了多种CPU核心,是以32位RISC核心为主,以ARM设计的CPU核心做的芯片被俗称为“ARM芯片”,但严格地说通常的ARM芯片应该是指以ARM设计的CPU核心做的单片机,以ARM设计的CPU核心制作的SOC芯片一般不被称为ARM芯片。
所以楼主所说的ARM芯片就是一种高级的通用单片机。
DSP=DIGITAL Signal Processing,即数字信号处理;与“ARM芯片”这个俗称一样,“DSP芯片”是TI公司生产的一系列带DSP功能单片机的俗称。
总结一下,“DSP芯片”是带DSP功能的单片机,“ARM芯片”是带或不带DSP功能的单片机;
如一定要讲区别,若不考虑DSP功能,“DSP芯片”比“ARM芯片”在功能上弱很多,如楼上讲的多种模式、跑OS、MMU、多种外设等许多差别。
4.ARM(ADVANCED RISC Machines)是微处理器行业的一家知名企业,设计了大量高性能、廉价、耗能低的RISC处理器、相关技术及软件。ARM架构是面向低预算市场设计的第一款RISC微处理器,基本是32位单片机的行业标准,它提供一系列内核、体系扩展、微处理器和系统芯片方案,四个功能模块可供生产厂商根据不同用户的要求来配置生产。由于所有产品均采用一个通用的软件体系,所以相同的软件可在所有产品中运行。目前ARM在手持设备市场占有90以上的份额,可以有效地缩短应用程序开发与测试的时间,也降低了研发费用。这里有一篇介绍ARM结构体系发展介绍。
DSP(DIGITAL singnal processor)是一种独特的微处理器,有自己的完整指令系统,是以数字信号来处理大量信息的器件。一个数字信号处理器在一块不大的芯片内包括有控制单元、运算单元、各种寄存器以及一定数量的存储单元等等,在其外围还可以连接若干存储器,并可以与一定数量的外部设备互相通信,有软、硬件的全面功能,本身就是一个微型计算机。DSP采用的是哈佛设计,即数据总线和地址总线分开,使程序和数据分别存储在两个分开的空间,允许取指令和执行指令完全重叠。也就是说在执行上一条指令的同时就可取出下一条指令,并进行译码,这大大的提高了微处理器的速度 。另外还允许在程序空间和数据空间之间进行传输,因为增加了器件的灵活性。其工作原理是接收模拟信号,转换为0或1的数字信号,再对数字信号进行修改、删除、强化,并在其他系统芯片中把数字数据解译回模拟数据或实际环境格式。它不仅具有可编程性,而且其实时运行速度可达每秒数以千万条复杂指令程序,远远超过通用微处理器,是数字化电子世界中日益重要的电脑芯片。它的强大数据处理能力和高运行速度,是最值得称道的两大特色。由于它运算能力很强,速度很快,体积很小,而且采用软件编程具有高度的灵活性,因此为从事各种复杂的应用提供了一条有效途径。根据数字信号处理的要求,DSP芯片一般具有如下主要特点:
(1)在一个指令周期内可完成一次乘法和一次加法;
(2)程序和数据空间分开,可以同时访问指令和数据;
(3)片内具有快速RAM,通常可通过独立的数据总线在两块中同时访问;
(4)具有低开销或无开销循环及跳转的硬件支持;
(5)快速的中断处理和硬件I/O支持;
(6)具有在单周期内操作的多个硬件地址产生器;
(7)可以并行执行多个操作;
(8)支持流水线操作,使取指、译码和执行等操作可以重叠执行。
当然,与通用微处理器相比,DSP芯片的其他通用功能相对较弱些。
区别是什么?:ARM具有比较强的事务管理功能,可以用来跑界面以及应用程序等,其优势主要体现在控制方面,而DSP主要是用来计算的,比如进行加密解密、调制解调等,优势是强大的数据处理能力和较高的运行速度。
都酷了就再补充点儿,还是随便说说
DSP的优势主要是速度,它可以在一个指令周期中同时完成一次乘法和一次加法,这非常适合快速傅立叶变换的需求。DSP有专门的指令集,主要是专门针对通讯和多媒体处理的;而ARM使用的是RISC指令集(当然ARM的E系列也支持DSP指令集)是通用处理用的。一个非常形象的比喻是ARM是高级房车,而DSP是高级跑车。不过也有一种双核芯片是用DSP取指并做运算,当浮点运算量较大时ARM协助处理平时ARM只负责外围控制。
不同应用需求的驱动也是一个原因吧
任何技术要能良好发展,总离不开市场的驱动.arm可以称为高性能的单片机,传统的单片机性能无法满足要求后,人们就开始寻求更高性能的单片机,于是在这批用惯了单片机的用户的需求驱动下,arm开始逐渐发展.而dsp是面向那些追求高速计算的用户准备的.这是两个独立发展的方向,每种技术都保持自己的个性,发展到现在.一家之言,呵呵.
5.
存储器架构和指令集特点不一样
单片机为了存储器管理的方便(便于支持操作系统),一般采用指令、数据空间统一编码的冯·诺依曼结构。 DSP为了提高数据吞吐的速度,基本上都是指令、数据空间独立的哈佛结构。
单片机对于数字计算方面的指令少得多,DSP为了进行快速的数字计算,提高常用的信号处理算法的效率,加入了很多指令,比如单周期乘加指令、逆序加减指令(FFT时特别有用,不是ARM的那种逆序),块重复指令(减少跳转延时)等等,甚至将很多常用的由几个操作组成的一个序列专门设计一个指令可以一周期完成(比如一指令作一个乘法,把结果累加,同时将操作数地址逆序加1),极大的提高了信号处理的速度。由于数字处理的读数、回写量非常大,为了提高速度,采用指令、数据空间分开的方式,以两条总线来分别访问两个空间,同时,一般在DSP内部有高速RAM,数据和程序要先加载到高速片内ram中才能运行。DSP为提高数字计算效率,牺牲了存储器管理的方便性,对多任务的支持要差的多,所以DSP不适合于作多任务控制作用。
ARM Vs FPGA
首先我只能给意见,不强求你的选择权。
第二我只能告诉你如果学完FPGA和ARM都掌握以后是什么样子情况。
了解上面两点以后往下看。
(呵呵,我和你正好是反过来的,我是做的FPGA,到了公司也是做FPGA,但是由于硬件架构问题不得不学习ARM)
我觉得FPGA和ARM孰轻孰重没得比较。但是殊途同归,用经典FPGA结构处理不了的问题就要用ARM来处理,这个是没办法的。器件的最终用途就是帮我们解决问题。
选择1.如果你决定主攻ARM,你学FPGA的优势在于你已经懂ARM了,所以你学习EDA以后有一个优势:
CPU和FPGA的联合的架构,这个是一种解决方案,而且普遍被嵌入式所使用(你非要拿手机给我举例我也没办法,笑~~)因为系统总是分层的,CPU永远工作在应用层,作为FPGA而言,虽然工作在链路层(帮CPU存储数据,速率匹配,接口实现等等)但是这个架构中FPGA需要比CPU跑的更稳定。这个架构的好出就是灵活。CPU外部接口随意扩展,只要自己编写FPGA的程序实现接口就可以。
优势:在了解系统核心算法的前提下,更加了解系统架构。这个是有好处的,因为在使用系统之前肯定是要先架构系统。在上面CPU和FPGA架构下面。FPGA从CPU角度看来充当了内存。从底层角度看来FPGA充当了驱动,那么在这种接口下面,FPGA如果不起来,那么ARM启动也只是半残。不能发挥ARM的所有功能。
(我在给软件程序员讲FPGA和pxa255协同工作原理,他们对于FPGA可以复用地址或者透明双块内存表示惊奇,可以对同一个地址读写出不同的结果表示惊讶,因为他们不了解FPGA的工作方式。FPGA的灵活性他们体会不到。但是你可以。)
选择2:你主攻FPGA方面。
我觉得学校么,对FPGA和ARM都存在一定量的误解,就好像学生或者少数老师会认为:“linux和windows是差不多的东西”“VHDL是按照VC改出来的”等等,这些可能一定意义上面是对的(而且这个一定意义几乎一个反例就能被推翻)。FPGA现在的功能很强,DSP和CPU都是可以内嵌的。而且是软核这点非常好。FPGA现在普及不开的原因主要是成本,本身技术已经成熟。
那么你的优势就在于:你了解FPGA以后,将软内核嵌入到FPGA内部,此时公司不需要另外找人为你的ARM或者CPU进行配置。
参考网站,可以了解FPGA到底是发展到什么情况:
xilinx的市场解决方案:http://china.xilinx.com/technology/
altera的市场解决方案:http://www.altera.com.cn/technology/tc-index.html
一句话总结:殊途同归,英雄不问出处,所以学什么,选择什么路不重要,重要的是怎么走和自己的兴趣。
ARM、DSP、FPGA之间的区别
ARM(Adanced RISC Machines)是一个公司名字,也是一种处理器的通称,还可以认为是一种技术名字。主要销售晶片设计技术的授权。目前,采用ARM技术知识产权(IP)核的微处理器,即我们通常说的ARM微处理器,已遍及工业控制、消费类电子产品、通信系统、网络系统、无线系统等各类产品市场,基于ARM技术的微处理器应用约占据了32位RISC微处理器75%以上的市场份额,ARM技术正在逐步渗入到我们生活的各方面。ARM公司是专门从事基于RISC技术晶片设计开发的公司,作为知识产权供应商,本身不直接从事晶片生产,靠转让设计许可由合作公司生产各具特色的晶片,世界各大半导体生产商(RFID射频快报注:如PHILIPS、TI、Intel、BroadCom、ATMEL等)从ARM公司购买其设计的ARM微处理器核,根据各自不同的应用领域,加入适当的外围电路,从而形成自己的ARM微处理器晶片进入市场。目前,全世界有几十家大的半导体公司都使用ARM公司的授权,因此既使得ARM技术获得更多的第三方工具、制造、软件的支持,又使整个系统成本降低,使产品更容易进入市场被消费者所接受,更具有竞争力。ARM架构是面向低预算市场设计的第一款RISC微处理器,基本是32位单片机的行业标准,它提供一系列内核、体系扩展、微处理器和系统芯片方案,四个功能模块可供生产厂商根据不同用户的要求来配置生产。由于所有产品均采用一个通用的软件体系,所以相同的软件可在所有产品中运行,可以有效地缩短应用程序开发与测试的时间,也降低了研发费用。
DSP(digital singnal processor)是一种独特的微处理器,有自己的完整指令系统,是以数字信号来处理大量信息的器件。一个数字信号处理器在一块不大的芯片内包括有控制单元、运算单元、各种寄存器以及一定数量的存储单元等等,在其外围还可以连接若干存储器,并可以与一定数量的外部设备互相通信,有软、硬件的全面功能,本身就是一个微型计算机。DSP采用的是哈佛设计,即数据总线和地址总线分开,使程序和数据分别存储在两个分开的空间,允许取指令和执行指令完全重叠。也就是说在执行上一条指令的同时就可取出下一条指令,并进行译码,这大大的提高了微处理器的速度。另外还允许在程序空间和数据空间之间进行传输,因为增加了器件的灵活性。其工作原理是接收模拟信号,转换为0或1的数字信号,再对数字信号进行修改、删除、强化,并在其他系统芯片中把数字数据解译回模拟数据或实际环境格式。它不仅具有可编程性,而且其实时运行速度可达每秒数以千万条复杂指令程序,远远超过通用微处理器,是数字化电子世界中日益重要的电脑芯片。它的强大数据处理能力和高运行速度,是最值得称道的两大特色。由于它运算能力很强,速度很快,体积很小,而且采用软件编程具有高度的灵活性,因此为从事各种复杂的应用提供了一条有效途径。根据数字信号处理的要求,DSP芯片一般具有如下主要特点:
(1)在一个指令周期内可完成一次乘法和一次加法;
(2)程序和数据空间分开,可以同时访问指令和数据;
(3)片内具有快速RAM,通常可通过独立的数据总线在两块中同时访问;
(4)具有低开销或无开销循环及跳转的硬件支持;
(5)快速的中断处理和硬件I/O支持;
(6)具有在单周期内操作的多个硬件地址产生器;
(7)可以并行执行多个操作;
(8)支持流水线操作,使取指、译码和执行等操作可以重叠执行。
当然,与通用微处理器相比,DSP芯片的其他通用功能相对较弱些。
FPGA是英文Field Programmable Gate Array(现场可编程门阵列)的缩写,它是在PAL、GAL、PLD等可编程器件的基础上进一步发展的产物,是专用集成电路(ASIC)中集成度最高的一种。FPGA采用了逻辑单元阵列LCA(Logic Cell Array)这样一个新概念,内部包括可配置逻辑模块CLB(Configurable Logic Block)、输出输入模块IOB(Input Output Block)和内部连线(Interconnect)三个部分。用户可对FPGA内部的逻辑模块和I/O模块重新配置,以实现用户的逻辑。它还具有静态可重复编程和动态在系统重构的特性,使得硬件的功能可以像软件一样通过编程来修改。作为专用集成电路(ASIC)领域中的一种半定制电路,FPGA既解决了定制电路的不足,又克服了原有可编程器件门电路数有限的缺点。可以毫不夸张的讲,FPGA能完成任何数字器件的功能,上至高性能CPU,下至简单的74电路,都可以用FPGA来实现。FPGA如同一张白纸或是一堆积木,工程师可以通过传统的原理图输入法,或是硬件描述语言自的设计一个数字系统。通过软件仿真,我们可以事先验证设计的正确性。在PCB完成以后,还可以利用FPGA的在线修改能力,随时修改设计而不必改动硬件电路。使用FPGA来开发数字电路,可以大大缩短设计时间,减少PCB面积,提高系统的可靠性。FPGA是由存放在片内RAM中的程序来设置其工作状态的,因此工作时需要对片内的RAM进行编程。用户可以根据不同的配置模式,采用不同的编程方式。加电时,FPGA芯片将EPROM中数据读入片内编程RAM中,配置完成后,FPGA进入工作状态。掉电后,FPGA恢复成白片,内部逻辑关系消失,因此,FPGA能够反复使用。FPGA的编程无须专用的FPGA编程器,只须用通用的EPROM、PROM编程器即可。当需要修改FPGA功能时,只需换一片EPROM即可。这样,同一片FPGA,不同的编程数据,可以产生不同的电路功能。因此,FPGA的使用非常灵活。可以说,FPGA芯片是小批量系统提高系统集成度、可靠性的最佳选择之一。目前做FPGA比较领先的有XILINX、ALTERA公司。
ARM具有比较强的事务管理功能,可以用来跑界面以及应用程序等,其优势主要体现在控制方面,
而DSP主要是用来计算的,比如进行加密解密、调制解调等,优势是强大的数据处理能力和较高的运行速度。
FPGA可以用VHDL或verilogHDL来编程,灵活性强,由于能够进行编程、除错、再编程和重复操作,因此可以充分地进行设计开发和验证。当电路有少量改动时,更能显示出FPGA的优势,其现场编程能力可以延长产品在市场上的寿命,而这种能力可以用来进行系统升级或除错。FPGA目前的趋势是有代替前两者的可能,在FPGA内部置入乘法器和DSP块,就具有高速的DSP处理能力。在FPGA内置入硬核CPU或软核CPU(Xilinx有powerpc硬核的产品,有microblaze软核。Altera有NIOS II软核)就可以成为既有能实现数字逻辑有适应嵌入式开发的综合性器件了。
dsp-数据处理;cpu-控制;fpga-接口转换
FPGA---通过编程实现电路
DSP--通过编程指导处理单元完成数据处理及控制
CPU嘛,复杂的东东
我觉得fpga就是一种可编程的器件,用它也可以实现DSP或者是cpu只不过可能性能达不到要求.
dsp用作数字信号处理,
而cpu是一种控制器,有许多种,比方说通用的如奔腾,还有单片机等.
cpu是一种电路,而fpga是一种相对于asic的电路实现方法.
在很大程度上dsp与床铺有些类似,都是进行运算处理数据的,内部结构比较复杂,fpga是可以控制的逻辑器件,可以根据需求进行编程。
就工作频率上来说,pc机上的cpu以GHz为计量单位;而你见过哪款fpga芯片的频率超过1GHz的,基本上,目前的500MHz就封顶了。
单片机低速
DSP高速
FPGA超高速
FPGA可编程器件,用户可以根据各自的需要实现接口协议,协议解析,数据处理,控制,优点是用户可随心所欲的编程。
DSP其实就是内部嵌有CPU和一些专用数字处理模块(微引擎,乘法电路)的asic,专用于高速的数据信号处理。但是其主要执行过程还是由软件实现的。
CPU就是毫无疑问的中央处理器了,它根据用户给出的指令,进行它的操作,其实里面的最基本的还是加乘操作。
因为DSP和CPU都是专用集成电路,所以内部时钟频率可以做的很高,密度可以做的很高,特别是CPU,往往都代表了半导体的最新最高工艺。FPGA虽然在执行频率上没有DSP和CPU那么高,工艺可能也没有那么先进,但是FPGA可以通过并行处理和流水线,达到比CPU和DSP更高的数据处理能力。而且现在FPGA也内嵌了DSP模块和CPU,可以设计成片上系统。对于对CPU要求不高的单板,只要使用FPGA内的CPU就可以了,不需要另外再贴块CPU芯片了。因为三种器件各有其优势,所以是谁也没有办法替代谁。主要的竞争在FPGA与DSP,低端CPU之间展开。
DSP是软件实现算法
FPGA是硬件实现算法,所以FPGA的处理速度会更高
FPGA比DSP快的一个重要原因是FPGA可以实现并行运算,而DSP由于硬件结构条件限制,主要还是依靠软件来提取指令执行,理解为还是串行执行