1/3 8051、AVR 和ARM 有何不同? 8051、AVR 和ARM 有何不同? 文/杜洋 前不久有一位单片机初学者问我: 杜老师, 8051、 AVR 和ARM 这几种单片机都有什么区别, 我要怎么来学习呢?是呀, 许多爱好者朋友都有同样的疑问,因为在电子市场和技术论坛里,有着各种各样的单片机广告,每个都说自己的芯片 优于别家,看上去并没有那么可信.技术论坛里也有针对各种单片机优劣的讨论,但总是说法不一,讨论越来越偏激 和固执,最后往往变成一片骂战.那本文就以我在电子圈里鬼混多年的经验,跟大家聊一聊 8051、AVR 和ARM 的区 别与以及它们在行业市场中的实际情况吧.一家之言,一定有不足和偏激,仅供大家参考. 先来谈谈我们对 8051、AVR、ARM 或其它单片机的现有印象是怎么来的吧.主要的来源其实有两种,一是来自于网络 上关于芯片的介绍,二是来自书架上的教学书籍.主要都是一些套话,什么具有精简指令集、增加了多个定时器、更 快的速度、价格更低,更适合工业设备开发之类.大家可以看出,这些介绍的用语都是比较词,也就是说性能的优秀 是与另一个不优秀的相比较得来的.8051 系列单片机因为是最早的处理器内核,很不幸成了众矢之的.AVR、ARM 和 其它一大堆单片机都在和 8051 比较.最终的结果就是大家认为 8051 是最落后的,AVR、ARM,还是 PIC、MSP430 都比 8051 强大.再加上以 8051 系列单片机入门的图书很多,如以 AT89C51、STC89C52 之类的单片机入门的书几乎 占了大半个书架.所以大部分爱好者选择 8051 来入门,同时也自然而然的认为:学完最简单的 8051 之后还要学习更 "高级"的AVR、ARM、PIC、MSP430 之类的单片机.只有学会了这些才是一个提升的过程,会用 AVR 和ARM,就 成为了单片机高手.这种观念的形成主要是没有得到正确的引导,因为大部分入门教程都是没有作者主观意见的纯技 术知识的堆积,读者从书中得不到学习方法的引导(有些作者可能也不知道正确的方法) ,所以会产生一大堆错误的观 念.当错误的观念形成了,久而久之在人群中相互传染,错误观念慢慢地好像变得"正确"了.而且爱好者的圈子里 一般都是仅讨论技术,而不去交流行业和相关的非技术内容,使的更多人不断进入错误循环,很难转变. 在说正确的观念之前,我们来看一看单片机真正的用途是什么.虽然电子爱好者可以用它来做好玩的电子制作,但再 怎么制作总共也用不上 100 片单片机,仅靠电子爱好者是无法支撑单片机销售市场的.那么最大的需求者是谁呢?他 们是成批量生产电子产品的厂家.例如他们有用单片机来制作每个公司门口都会用到的门禁系统、考勤机.仅中国大 大小小的公司无计其数,需要的单片机数量自然是如繁星一般了.还有消费类电子产品、工业控制设备、安防设备、 公办自动化产品,还有特殊需要的定制产品,这些需求是单片机最主要的市场了.如此之大的市场需求,生产单片机 的厂商自然盯大的眼睛想着怎么多卖多赚钱.单片机厂商的竞争和我们日常所见的品牌手机、菜市场中各摊位的竞争 没有什么区别.怎么才能占据更多的市场份额呢?那就要看单片机产品的开发者关注什么东西了.谁是单片机产品的 开发者?就是那些门禁系统、考勤机设计公司的老板和工程师.如果你是设计公司的老板兼工程师,你会需要怎么样 的单片机?首先要能满足我制作门禁系统、考勤机的功能需要,然后是价格便宜、性能稳定、容易开发、采购方便、 有同类替代产品.大家注意,在以上的需求中没有要求功能强大,因为这并不重要.如果我只需要 4 个I/O 接口,而 单片机却有着 40 个I/O 接口,这对产品的价值提升并没有什么意义.而且通常功能越多价格越高.如果一款单片机非 常便宜,却只有 2 个I/O 接口也不行,因为它再便宜也不能满足 4 个I/O 接口的需要.所以单片机的选择是适用就好, 而不是走价格和性能的极端. 2/3 8051、AVR 和ARM 有何不同? 那么 8051、AVR、ARM、PIC 等单片机就是在这种市场环境中出现的.换句话说,这些单片机就是为了满足市场需求 而被生产出来的.从这个角度上看,8051、AVR、ARM 就没有什么高低贵贱之分,大家都是为了满足不同电子产品应 用需要的.并没有说 8051 就是低级的,ARM 就是高级的,大家都是靠利润说话的,没人买的单片机自然会停产.用8051 去开发多媒体产品和用 ARM 去开发简单的流水灯都是愚蠢的行为.不过,虽然我们除去了贵贱的歧视,可是又 不得不承认,不同的单片机的开发难度是不同的.有一些是系统复杂所带来的难度,还有一些是单片机开发相关软硬 件功能的落后导致的.还有的是学习者自身能力不足导致的.不管怎么样,任何的开发难度都会变成这款单片机推广 销售的不利因素,谁也不希望学习困难的东西.AVR 和8051 单片机同为 8 位单片机,AVR 发布时其最大亮点是 1T 单 片机,带给开发者有实际意义的信息就是速度快(和8051 相比) ,还有就是低功率,内部集成了更多的功能.在发布 之初我也非常看好 AVR 单片机,也买了几片回来玩.可是 AVR 虽然性能上有了不少优势,可是把玩的时候却发现了相 关配套服务的不足,比如开发软件也和 8051 不同,下载线要重新制作,单片机内部结构和编程方法都要重新学习.对 于之前没有学过 8051 单片机的人来说,这些都是新鲜的,没有阻碍的.可是对于 8051 单片机的老手来讲,学习 AVR 就需要重新学习和使用一套不同的平台.这一事实阻止了一部分人转向使用 AVR.如果 AVR 可以在设计之初考虑到与 8051 相关配套软硬件兼容的问题,那么 AVR 将会占有更多的市场份额.必竟 8051 单片机是最早的单片机,已经有非 常多的忠实用户群了. AVR 的独断专行,让其它单片机厂商看到了机会.推出一些功能与 AVR 相当(甚至更强大) ,同时兼容 8051 软硬件的 单片机,必然会得到市场的欢迎.于是飞利浦、SST、STC 等厂商开始研发增强型 8051 单片机.增加型 8051 单片机 是延用 8051 的内核,在单片机内部集成更多功能模块.例如 STC 公司的单片机,它的接口和传统的 8051 完全兼容, 而且内部集成了复位芯片、 EEPROM 等功能. STC12C 系列的单片机也与 AVR 相同, 达到了 1T 单片机的速度. 而且 STC12 系列单片机还在片内集成了 ADC、PWM、EEPROM、内部 R/C 振荡器、增加了 I/O 接口.从性能上超过了 AVR 的产品, 价格也便宜, 同时又和传统的 8051 的软硬件兼容. STC12C 超过了 AVR 的性能, 工程师们又不需要学习新的开发平台, 只要在原来的 8051 平台上就直接可以开发 STC 的1T 单片机. 在这种情况之后 AVR 的落后是必然的结果, 虽然 ATMEL 3/3 8051、AVR 和ARM 有何不同? 公司还在大力推出新款 AVR 单片机,可是在中国市场所占有率越来越少.再加上 PIC、MSP430 等也推出了增强的单片 机,在工业产品中有很高使用率.当然,AVR 目前还是有一定市场的,比如近年来流行的 ARDUINO 开发模块,就是以 AVR 单片机为核心的,这一产品也给 AVR 单片机很大的支撑. 而8051 和ARM 的比较是另外一回事.就算是最强的增加型 8051 也不可能和 ARM 相比较.因为 ARM 是32 位处理 器核心,支持更大的处理速度和寻址能力,ARM9 以上的版本可以安装嵌入式操作系统.ARM 是在 8051 和PC 机之间 的中层产品.用来开发多媒体产品,如平板电脑、MP4、智能手机等.8051 和ARM 的软硬件平台也是不同的,学习 ARM 可以做一个 8051 根本做不到的事情,所以 ARM 是值得的学习投入.只是在学习之前需要先想好,学习 ARM 的 目的.是为了找一份好工作,还是为了制作更好玩的电子制作.现在基础 ARM 平台开发的公司有许多,学习 ARM 可 以找到不错的工作.但是学好了 8051 也一样可以有好的工作机会,只是 ARM 起步晚,会的人不多,竞争相对小一些. 加之现在带有智能系统(如安卓系统)的电子产品需求量较来较多了.而且不管学什么都要面对未来继续学习新技术 的事实.学习 ARM 最关键的是学习操作系统,ARM 最大的优势就是因为它能安装操作系统,好像我们的电脑一样,我 们所写的应用程序在操作系统上运行,而不像 8051 那样单线程运行.安装操作系统最大的好处是降低开发难度.有的 人认为学习 ARM 要用操作系统是很难学的东西, 其实正好相反. 安装操作系统就是为了减少开发难度, 有一些如 USB、 液晶屏、鼠标、键盘的驱动程序在操作系统里有现成的,只要在我们的应用程序中调用就行了.ARM 的开发更侧重于 软件层面的开发,更多的是开发上层应用程序和少量的底层驱动程序. 对于想玩 ARM 的爱好者朋友,ARM 的趣味并不大,且ARM 的门槛较高.首先 ARM 芯片很贵,便宜的也要 30 多元, 加上周边的配套电路,一个 ARM 最小系统怎么也要上百元.而且 ARM 芯片封装都是高密脚贴片封装,没有直插封装. 制作 ARM 的电路必须制作 PCB 板,而且是 2 层到 8 层的 PCB 板.对于一般的爱好者来说,这是不容易接受的.另外, 用ARM 来完全电子制作的资料非常之少, ARM 的相关驱动程序一般都是某些公司的内部资料. 相对来说最丰富的还是 开源 LINUX 的资料.一般开发 ARM 是需要团队完成的,有专门开发软件的,有专门负责硬件的,很少有一个人完成的, 更不用说我们用 ARM 自己开发有趣的制作了.总之,ARM 虽好,可还不适合电子爱好者把玩.增强型 8051 单片机是 最好的选择,性能好、功能多的单片机能产生许多创新设计.以上就是我的一些评论,说的都是实话,言语中可能对 某些现象表示了我个人的不满,如有不周请原谅.如果大家喜欢我的行业评论文章,请多多支持,好让我有信心继续 撰写更多的一家之言.谢谢!