比较ARM,AVR,MSP430,Coldfire,DSP,FPGA
我以为这样比没有意义,做嵌入式系统最大特征是“嵌入”二字,也就是说你的控制系统是嵌入于你的控制对象之中,所以首先是服从于对象的需求和特征,脱离对象空论谁好谁坏有何依据?
每个MCU都有其存在的价值,每个使用者的选择都有其道理,AVR开始时是以单时钟周期指令为卖点,相对于当时 12个时钟的经典51确实有优势,而且基于CMOS的特征,时钟越高功耗越大,所以它在能耗上似乎明显占优。
可随着技术的改进,51现在已经早就有了4时钟周期,2时钟周期乃至单时钟周期的芯片了,此时AVR的速度优势已不存在。
如果考虑最高时钟限制,读者可以比较一下,似乎AVR的速度还不如某些51快。
如果考虑开发成本,那就更难说了。
至于ARM,有其优势、有其劣势,关键看你依附的对象需要什么?你的产品最终定位如何?
如果产品利润空间较大,MCU所占成本有限,不妨提高档次,也算是个宣传素材,同时为后续升级留有余地。
如果产品需精打细算,数量庞大,省1分钱都能带来巨大的利润,那MCU则是够用即可,哪怕开发再不方便,那也只是一次开支,何况中国的工程师并不贵 : (
所以,学习单片机无所谓选那款,关键在于你能否掌握其本质,快速的触类旁通,你的产品是否成功就在于你能否最佳的选择好符合嵌入对象特征的MCU。
一点拙见,仅供参考!
2.
我感觉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的运行需求,做成低端产品的整机成本就非常具有成本优势了。
华恒现在有基于MCF5213的学习板,运行的是uC/OS操作系统。具体介绍可以看看http://www.hhcn.com/chinese/coldfire/HHCF5213-R1.htm
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
评论