NXP

高端ARM选型的一些观点

2019-07-12 12:18发布

PART 1

在中国,大概流行以下几个系列的高端ARM系列:按照国家地域分,分为韩系芯片以及美系芯片(就是韩国和美国制造的);再细分,韩系芯片以三星,telechips等最为出名,性价比实在是高啊!美系的一般都是贵族芯片,比如atmel,飞思卡尔,Ti等。这些芯片一般价格较高,用在一些利润大的行业,比如工控,车载等等。      这个芯片选择,还得按行业分。如果做消费电子,那么一般都采用韩系芯片,在消费行业那个竞争激烈啊,只能靠量来生存,通常做消费类电子产品的工程师都自称为“民工”,的确是名副其实。中国的山寨产业真的让人纠结,老板为了降低成本,那么采用韩系芯片是比较好的选择——嘿嘿,扯到山寨,很多感慨。选定韩系芯片以后,还会有一些选择,比如一些多媒体方案,不少公司会选择telechips来做,因为真的是比较专业,比较便宜实惠。通常做这个的公司实力都还不错,因为资料并不像三星的那么多。还有一些游戏机方案,也会采用韩系的专业图形处理器来做,我考察过番禺龙美村的游戏机组装商,大部分都是这类片子,集成2D加速,价格便宜,非常实惠。下面说一下在中国最为普遍的三星处理器了,也不知道三星棒子怎么搞的,居然能控制中国这么大的市场份额,尤其是在中小企业,绝对是霸主地位。在网上很多使用atmel的人也一直很鄙视三星,说它不是工业级芯片,就是价格便宜,对此我也不知道是不是真的,不是工业级倒是真的,垃圾不垃圾还真不知道,觉得三星的片子功能集成多,做产品成本真的很低。后来一个做atmel的朋友偶然用三星的 ARM11 S3C6410 片子做了一个机器,他惊呼:三星棒子也不是很差-45°还能正常运行。呵呵,让我松了一口气,因为在很多中小企业,几乎都是用三星棒子的处理器,对于这个价格和性能,真的是无可挑剔。
  我自己也一直用三星的处理器,从2008 年起用ARM9 2440 做PDA,性价比还可以,2009年起,开始接触ARM9 S3C2416 ,ARM11 S3C6410 ,A8 S5pc100 210等。没有办法,所在企业的性质,决定了使用三星。下面就来说说这些三星片子的用途吧。
  2440 很早就出来了,它可是中国家喻户晓的三星处理器大明星,当时很多中小企业对她垂涎三尺,从2005年火到2010年,本来我觉得它已经是英雄暮年,没有想到在国内很多企业都舍不得它,搞的2440 翻新拆机片子越来越多,价格很贵。SDRAM糟糕的性能,离谱的价格,让人相当的纠结——没有办法,既然它还能跑,那么就继续用它吧,开公司和干技术是两回事。不过现在上的新产品,或者有点变革的产品千万别用它了,真的因为价格高,性能和现在的ARM11 ,A8比起来,真的不应该选他了。实在是量比较大的,对成本敏感的,那就用2416 吧,这个处理器配套做产品用MLC nand flash和DDR2内存,成本比2440 低不少,速度还快一些,弱点是缺少一个camera标准控制器。我记得2008年底的时候,在国内开始冒出了ARM11 S3C6410 ,6410 的性能和功能现对于2440 来说,是一个质的飞跃,大家兴奋异常,还成立了很多DIY小组,结果DIY了几家开发板公司,real6410 开发板就是其中的一个优秀代表,老刀同志当年还在广州,我也加入了他的DIY群,后来因为太菜害怕影响进度,就退出了。再次回头,发现老刀居然整了个real6410 开发板,并且一再改进。因为做的手法比较酷,性能还可以,现在还在热卖ing,口碑不俗。嘿嘿,扯远了······不过大家很快发现,原来这个世界很疯狂,6410 之后不久,美系贵族芯片TI很快推出了A8 3530 ,飞思卡尔也推出了A8 I.mx515 ,性能再比6410 高一个档次,这个让大家看花了眼,我到底应该选谁?!呵呵,还是价格让大众做出了选择,6410 也像以往的三星片子,价格从100 多到80 RMB, 到现在的65 RMB左右。而贵族的TI 3530 一直都是200多的价格,飞思卡尔也价格不菲,供货捉摸不透,就这样三星的ARM11 狠狠的在中小企业站住了脚跟。一些工程师唧唧歪歪了一阵子才发现还是市场决定一切!
  仔细一想,ARM11 S3c6410 成了中小企业的良好选择,并非偶然,除了上述说的价格之外,还有一些人为的因素。sorry,我要下班了,欲知详情,请听我晚上再娓娓道来。
  ——Ooo,昨晚打篮球太累了,回去写不动了,现在继续写。
  开始我也以为ARM11 S3c6410会昙花一现,因为A8的性能的确是太优良了,在工程师眼里,它的技术价值就是个过渡产品。但是经过一年的实际销量证明,S3c6410是三星的2440 之后的最受欢迎的处理器,下面列举一下原因。
一、性价比。上面已经说到这么强大的处理器居然才是65 RMB左右,并且性能不弱,相对古老的2440 ,它真的是个飞跃,并且整体bom成本和2440 相差不大,只是贴片和PCB的难度稍微大一些,不过这个已经是个趋势了。
二、资料丰富。中小企业研发实力通常不强,很多公司只能嵌入式应用,硬件不能做,那么这个中小企业就会选择一个性价比OK,资料丰富的处理器了。正好,三星的一些策略导致在国内开发板的学习市场上三星的开发板占据了绝对主导地位。2440 之后,迫切有一个处理器出来担当开发板学习的处理器,正好S3c6410就承担了这个责任,国内著名开发板公司友善,飞凌,天嵌以及后来口碑不俗的广州华天正都纷纷强势推出了S3c6410开发板,配备了linux,wince以及android系统,资料比较充足。这些资源都给国内中小企业提供了很多方便。从商业角度看,中小企业采用S3c6410作为2440 之后的产品开发绝对是最佳选择——这就印证了一句话,我们工程师老想着技术,想要提高技术,殊不知市场才是第一的,在这方面,老板比工程师聪明多了,老板才是产品的架构师。
  S3c6410之后,三星还有一些A8出现,比如S5pc100,S5pc110以及S5PV210,性能真的不错,但是因为价格以及资料储备导致中小企业无法把玩,一些实力不弱,走在前沿的公司把玩的还不错。
  嘿嘿,说的差不多了,atmel的ARM9 在工控领域占据了不小的市场,这个工作不涉及,所以不敢发表什么意见。不过印象深刻的是今年一些财团炒atmel芯片,控制芯片价格。以前用atmel 单片机和ARM的公司被财团玩死了,这个世界太疯狂了!
  Ooo,差不多了,上班ing。This is it!       (2010-11-05)这里要补充一个比较重要的美系贵族芯片——marvell  。我们仔细看老外那些制作精良的PDA,会发现大部分的处理器都是marvell的。marvell和Intel颇有渊源,Intel不知道怎么搞的,把很有潜力的嵌入式处理器卖给了marvell,以前的PXA255,PXA270 都是出自Intel手笔,现在marvell继续推出了PXA310,PXA168 等等。PXA310 曾经在智能手机有过一次闪光,但是现在被凶猛的A8镇压了,在高端市场,Ti 的处理器雄霸高端智能手机市场。marvell一般只做大公司,大的订单,中小企业他不理会的,并且是出了名的贵,所以在中国的市场份额远远不如三星。


PART 2

1,分类--------------------------------
ARM7 馮結構   工控用的一般是ST公司的如STR73x STM32F系列,三星的44b0,atmel的AT91系列;
ARM9  哈佛結構   系列一般是三星公司 S3C2440 ;
ARM11 一般是手机上用的。
cortex m3  哈佛結構
处理器以架构分类可以这样分:(1)ARM7,ARM9属于v4T或v5E架构(2)ARM11属于v6架构(3)cortex m3属于v7架构ARM7,ARM9的区别在于是否有MMU(存储器管理单元)或MPU(存储器保护单元)架构上v5E相比v4T则是在于v5E新加入的增强型DSP(数字信号处理)指令, v4T则是Thumb指令集的加入,v6架构则是开始支持SIMD以及Thumb2的问世 新指令的加入,增强了处理器的性能或实时性TI的Cortex M3最近才开始推广,看这个势头,好像要超越ST。 不过,就目前来看,ST的STM32还是主流,文档资料更多。 LPC好像在主推低功耗的Cortex M0 2,选择--------------------------------你可以先从ARM CORTEX-M3下手。
CORTEX是新鲜产物,才推出不到3年,各大厂商ST.NXP,TI.ATMEL都有推出它的产品,ARM7已经上市久了,大家都玩过的。而cortex是ARM公司主推的新架构产品,前景很看好。

CORTEX很容易上手,它和51是同样的哈佛架构, 不象ARM7和ARM9是冯架构。
可以用KEIL编译器,又让我找回了当年玩51的感觉。
中文资料也很多,厂商的封装库也很齐全.特别适合从51转过去的初学者.
CORTEX属于ARMv7内核,而不是ARM7的核。ARM7是ARMv4的内核ST的STM32采用CORTEX M3内核,其构造偏向单片机应用。不是ARM7核 做控制的话学M3就够了,用ARM9还是在消费类电子产品上
cortex-M3用以取代单片机的,运算能力一般,控制能力突出,使用thumb2代码!性能属于ARM7级别的。一般都是用在工控之类的仪器上,汽车电子等等。
ARM9说的比较笼统,一般ARM9级别或者以上的都是用在消费类电子上面的比较多,比如智能手机什么的,重在多媒体性能。

cortex-m3好学吧 毕竟只是高级单片机 最多跑μCOS

ARM9就难多了 因为已经是真正的ARM了自然跑系统才是正道
那就要会linux或者windows CE 其次是C语言要强 C++也要强
因为要求要能编写驱动或者运用程序如果是linux也要懂linux内核

做单片机用,学CORTEX,以STM32系列为代表 做系统用,ARM9,三星跟ATMEL在国内比较常见。
ARM9,11 要上操作系统才能体现出优势,它们适用于更高层次的嵌入式应用,如Linux。很多东西要牵涉到基于某种硬件平台的软件系统工程了,需要技术人员同时了解硬件、软件两方面的东西。这也是现在的热门行业。
51 PIC ARM7/CORTEX- m3还是适用于控制方面的应用,最多上一些简单的OS或GUI,但是主要的还是硬件方面(底层驱动)的东西。
它们的应用领域有所不同,
STM32绝对的比任务ARM9易学,虽然出的晚,但是不管英文中文资料都很齐全。而且ST把所有的功能做成库,只要你会用C语言调用函数,就会用STM32 个人觉得要不你就学习ARM9。要不就选择Cortex-M3,这个是ARMV7构架下的,ARM9也是此构架下的。其实我觉得如果是先前搞过单片机的,请选择Cortex-M3,应为这个是位控制领域量身打造的。可以说现在的ARM构架产生了分支,以前是没有的。 Cortex-A系列,Application主要是应用在高端的产品,PDA,智能手机等 Cortex-R系列,Real time主要应用于实时控制 Cortex-M系列,Microcontroller主要是应用于工业控制。 我推荐Cortex-M3核心的,意法半导体的STM32f103XX系列、Ti的LM3S系列都很好 还有LPC的NXP的都有很多,相信我吧,这个就好比当年8051的市场一般,新的格局到来了,8位的价格打造32位的性能。 在吐血推荐周立功的EasyARM1138,也就是LM3S1138位主控的 其次就是STM32的红牛板子,很不错 各有各的特 {MOD},个人喜欢TITI的,应为他的总线完全开放。 关于此类东西的学习,建议先买板子回来跑程序,接着就是深入研究,周工的东西资料全。ARM公司推出的Cortex-M3微处理器适用于高性能、极其低成本需求的嵌入式应用,如微控制器、汽车系统、大型家用电器、网络装置等.与原来的通用型ARM CPU不同,Cortex-M3主要针对MCU,单片机等领域.Cortex-M3采用V7指令集, 它的速度比ARM7快三分之一,功耗低四分之三,并且能实现更小芯片面积,利于将更多功能整合在更小的芯片尺寸中. 
Cortex-M3是一个32位的核,在传统的单片机领域中,有一些不同于通用32位CPU应用的要求.例如在工控领域,用户要求具有更快的中断速度,Cortex-M3采用了Tail-Chaining中断技术,完全基于硬件进行中断处理,最多可减少12个时钟周期数,在实际应用中可减少70%中断.ARM公司希望Cortex-M3核的推出,能帮助单片机厂商实现由8位(16位)向32位微处理器的快速移值. 

单片机的另外一个特点是调试工具非常便宜,不象ARM的仿真器动辄几千上万.针对这个特点,Cortex-M3采用了新型的单线调试(Single Wire)技术,专门拿出一个引脚来做调试,从而节约了大笔的调试工具费用.同时,Cortex-M3中还集成了大部分存储器控制器,这样工程师可以直接在MCU外连接Flash,降低了设计难度和应用障碍. 

ARM Cortex-M3处理器简介:http://www.farsight.com.cn/FarsightBBS/dispbbs.asp?boardID=57&ID=4128&page=1 

选择ARM处理器,ARM7还是Cortex-M3:http://www.farsight.com.cn/FarsightBBS/dispbbs.asp?boardID=57&ID=4212&page=1 

如何在Cortex-M3处理器上运行ARM7TDMI处理器软件:http://www.farsight.com.cn/FarsightBBS/dispbbs.asp?boardID=57&ID=4129&page=1