ARM vs AVR
1
我以为这样比没有意义,做嵌入式系统最大特征是“嵌入”二字,也就是说你的控制系统是嵌入于你的控制对象之中,所以首先是服从于对象的需求和特征,脱离对象空论谁好谁坏有何依据?
每个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会向着专用,更低电压,更低功耗的方向发展,不求