单片机的选择
单片机的的选型是一件重要而费心的事情,如果单片机型号选择得合适,单片机应用系统就会得经济,工作可靠;如果选择得不合适,就会造成经济浪费,影响单片机应用系统的正常运行,甚至根本就达不到预先设计的功能。
单片机芯片选型时,总的原则是:
“选大(大厂)不选小,选多(供应量多)不选少,选名(名牌)不选渺(飘渺,不知详情的厂子),选廉(谦价)但要好(质量保证)。
对单片机选型,主要应用从单片机应用系统的技术性,实用性和要开发性三方面来考虑.
(1)技术性:要从单片机的技术指标角度,对单片机芯片进行选择,以保证单片机应用系统在一定的技术指标下可靠运行;
(2)实用性:要从单片机的供货渠道、信誉程序等角度,对单片机的生产厂家进行选择以保证单片机应用系统在能长期、可靠运行;
(3)可开发性:选用的单片机要有可靠的可以开发手段,如程序开发工具、仿真调试手段等
2.评单片机选型的讨论
对于很久以来总是能看到关于单片机的各种讨论,又是这个不好啦,那个不好了,那个过时啦,这个先进啊,学什么什么没用啦!
这个问题的总结只有一句话:用合适的芯片做出最合适的产品,把功夫用在设计上用在优秀的思路上不要拘泥与芯片怎么怎么样吧。
宝贵的心思用在你所做的产品的专业知识上。不要被争论用什么什么单片机而迷茫,每个人的思维不一样,将来应用的领域也不一样,当然对每种芯片的领悟也是不一样的,选用自己合适的就可以,弄透它,回过头看,他们都是一样的,只是不同的工具而已,也不要说学51怎么样,学PIC怎么样,学ARM怎么样,不管哪一种,都是实现你思想的工具,那个感觉顺手实用就用哪个,就学哪个,把它学好用熟悉,不要今天听那个好就用那个,明天有人说这个好就用这个,新东西总是有,每天都有新东西,都是好东西,你一下子学的过来吗!不如找一个适合自己先学好,将来搞其他真是的很容易的!这就是我的一个过来人的经验,这点体会也许只在这个行业的百分之五十的人,那就送这百分之五十的朋友吧。
3.在实际应用中,如何选择单片机的类型?
选择原则:主要从指令结构、运行速度、程序存储方式和功能等几个方面选择单片机。MCS-51为主流产品。Motorola是世界上最大的单片机厂商。品种全、选择余地大、新产品多。其特点是噪声低,抗干扰能力强,比较适合于工控领域及恶劣的环境。Microship单片机是
选择原则:主要从指令结构、运行速度、程序存储方式和功能等几个方面选择单片机。
MCS-51为主流产品。
Motorola是世界上最大的单片机厂商。品种全、选择余地大、新产品多。其特点是噪声低,抗干扰能力强,比较适合于工控领域及恶劣的环境。
Microship单片机是市场份额增长较快的单片机。它的主要产品是PIC系列8位单片机。其特点是运行速度快,低价位,适用于量大、档次低、价格敏感的产品。
美国德州仪器(TI)公司生产的MSP430系列单片机是一种特低功耗的Flash微控制器。主要用于三表及超低功耗场合。
在嵌入式系统低端的单片机领域,Intel公司的MCS-51形成了既具有经典性又不乏生命力的一个单片机系列。许多半导体厂家、电器公司以MCS-51系列中的8051为基核,推出了许多兼容性的CHMOS单片机----80C51系列。
此外,还有Zilog、EM78、Senix、NEC、Epson、NS、三星、富士通、华邦、Philips、ARM等单片机。
看到了几个帖子,讨论何种单片机最好.我感觉选择一个合适的单片机有时真的不太容易,要考虑的方面太多了.只能说某个特定场合比较适于采用某个MCU.不大可能某个牌子的MCU适合所有的设计,真要有的话那可就太好了:
1.单片机的基本参数例如速度,程序存储器容量, I/O引脚数量
2.单片机的增强功能,
例如看门狗,双指针,双串口, RTC (实时时钟), EEPROM ,扩展RAM , CAN接口, I2C接口, SPI接口, USB接口.
3. Flash和OTP (一次性可编程)相比较,最好是Flash .
4.封装.
DIP (双列直插), PLCC ( PLCC有对应插座)还是贴片. DIP封装在做实验时可能方便一点.
5.工作温度范围,工业级还是商业机.
如果设计户外产品,必须选用工业级.
6.功耗,
比如设计并口加*密狗,信号线取电只能提供几个mA,用PIC就是因为低功耗,后来出了MSP430也不错.
7.工作电压范围.
例如设计电视机遥控器, 2节干电池供电,至少应该能在1.8-3.6V电压范围内工作.
8.供货渠道畅通.
能申请样片,小批量购买有现货.最好像标准51 ,中发里随便找个柜台就能买到(我在北京)
9.价格低.
10.有服务商,像周立功公司推Philips ,双龙公司推AVR ,都提供了很多有用的技术支持,起码烧写器有地方买.
11.烧录器价格低,如果是ICP (把单片机放在烧录器上编程)能否利用现有的烧录器,如果是表贴封装,买一个转接座也很贵,至少得一二百元.能否ISP (在系统编程,即把芯片先焊到板子上再通过预留的ISP接口编程),一般ISP编程器比较便宜大约一二百元甚至几十元.
12.仿真器便宜.
对于FLASH型单片机,仿真器不是必备的.但是对于OTP (一次性可编程)型单片机,必须购买或者租用仿真器.
13.单片机汇编语言是自己熟悉的,并且能支持C语言.编程环境要像keil一样好用,并且还是免费的.
14.网站速度快,资料丰富.包括芯片手册,应用指南,设计方案,范例程序.最好有中文,像Atmel就不错.
15.保密性能好,查一下专业解.密.网站上的黑名单,再发个mail咨询一下解.密价格.
16.抗干扰性能好.我曾经把XXC52改为S52后发现抗干扰性能下降,只好改回去.
17.和其他外设芯片放在一起的综合考虑.
电路原理,模电,数电,通信原理,单片机,Protell99 ,高频率电子线路,信号系统,数字信号处理,FPGA,DSP等等
我觉得:电路原理,模电,数电,单片机,是自少要学好的.
信号系统看你是准备往什么方向走了通信方向的话,就要求高很多了.单单玩单片机的话,要求没那么高~的但是基本的几个变换总要知道的吧~工业上PID控制器这些都是需要你自己设计计算的了~~当然你用MATLAB也可以~
其次就是通信原理我觉得现代的单片机技术再也不应该是单个单片机独自工作的时代了~应该是成批的单片机还有与PC联合工作~所以编码差错控制都是一个不可避免的问题~
ARM其实就是单片机,只是资源丰富些~~工作频率300MHz以上~
初学者的话当然是选择51单片机做为入门比较好~~我们应该更加注重编程思维的培养~~加强对有限资源合理利用~
这种思维在任何设备上都是可行的~所以建议先从简单的开始~~
首先,我们先来谈谈我们对8051、AVR、ARM或其它单片机的现有印象是怎么来的。主要的来源其实有两种,来自于网络上关于芯片的介绍,来自书架上芯片的教学书籍。主要都是一些官话、套话,什么具有精简指令集、增加了多个定时器、更快的速度、价格更低,更适合工业设备开发之类。大家可以看出,这些介绍的用语都是比较词,也就是说性能的优秀是与另一个不优秀的相比较得来的。8051系列单片机因为是最早的处理器内核,很不幸,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接口的目的。所以单片机的选择是适用就好,而不是走价格和性能的极端。
那么8051、AVR、ARM、PIC等单片机就是在这种市场环境中出现的,换句话说,这些单片机就是为了满足这种市场需求而被生产出来的。从这个角度上看,8051、AVR、ARM就没有什么高、低、贵、贱之分了,大家都是为了满足这个不同电子产品应用需要的大市场。并没有说8051就是下贱的,ARM就是高级的,大家都是靠销量说话的。用8051去开发多媒体产品和用ARM去开发简单的流水灯都是非常白痴的行为了。不过,虽然我们除去了高贵与低贱的歧视,可是又不得不承认,不同的单片机的开发难度是不同的。有一些是系统复杂所带来的难度,还有一些是因为单片机开发相关软硬件功能的落后再导致的。还有一小部分是学习者本身智商程度所产生的难度。不管怎么样,任何的开发难度都会变成这款单片机推广销售的不利因素,谁也不希望学习困难的东西。当然,还有一些人就是愿意学习难学的东西,非要学难学的单片机,费大力气研究难懂的数据手册。这种情况多出现在不是工程开发人员的单片机爱好者身上,因为他们不用承担实际的项目,不用考虑学习的时间、开发风险和项目开发中的各种困难与压力。所以他们并不认为学习某款单片机的困难是单片机生产厂商做的工作不足,而是把原因归到自己身上,认为自己不如别人聪明,非要把这款单片机学会才能证明自己的智商。
我所说的,正是许多人要学习AVR的迷局。除了出于天真的想法去学习难学的单片机,还有一个原因是没有真正了解这些单片机的性能、应用以及它们之间的区别。有人说8051单片机落后了,能说出这种话的定是还没什么开发经验的初学者。而越是什么都不懂的人越容易发表评论。下面我们来看看AVR和8051的区别吧。
AVR和8051单片机同为8位单片机,AVR当年发布的时候其最大的亮点就是它是1T单片机,带给开发者有实际意义的信息就是速度快(和8051相比),还有就是低功率,内部集成了更多的功能。在发布之初,我也非常看好AVR单片机,也买了几片回来玩玩。可是AVR虽然性能上有了不少优势,可是把玩的时候却发现了相关配套服务的不足,比如AVR的引脚甚至封装和8051的不兼容,开发软件也和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振荡器、增加了P4接口。从性能上超过了AVR的产品,价格也便宜,同时又和传统的8051的软硬件兼容。STC12C完全超过了AVR的性能,工程师们又不需要学习新的开发平台,只要在原来的8051平台上就直接可以开发STC的1T单片机了。在这种情况之后AVR的落后是必然的结果,虽然ATMEL公司还在大力推出新款AVR单片机,可以市场占有率越来越少,以至于在一般的电子市场上都买不到了。但是在网络上还有一些原来在AVR最兴盛时的粉丝团,他们还在坚持用AVR来制作和开发产品。不过在技术高速发展的今天,固执的忠实于一种品牌,而不是根据发展的需要而改变,这是很不理智的。当然,AVR目前还是有一定市场的,只是市场很小罢了。
8051和ARM的比较是另外一会事。就算是最强的增加型8051也不可能和ARM相比较。因为ARM是32位处理器核心,支持更大的处理速度和寻址能力,ARM9又支持MMU,可以安装嵌入式操作系统。ARM是在8051和PC机用CPU之间的中层产品。用来开发多媒体产品,如MP4、手机等。8051和ARM的软硬件平台也是不同的,可是学习ARM可以做一个8051根本做不到的事情,所以学习ARM是值得的学习投入。只是在学习之前需要先想好,学习ARM的目的。是为了找一份好工作,还是为了制作更好玩的电子制作。
现在基础ARM平台开发的公司有许多,学习ARM可以找到不错的工作。但是学好了8051也一样可以有好的工作机会,只是ARM起步晚,会的人不多,竞争相对小一些。而且不管学什么都要面对未来继续学习新技术的事实。学习ARM最关键的是学习操作系统,而不是ARM芯片本身。ARM最大的优势就是因为它可以安装操作系统,好像我们的电脑一样,我们所写的应用程序可以在操作系统上运行,而不像8051那样单线程运行。安装操作系统最大的好处就是可以降低开发难度。有的人认为学习ARM要用操作系统是很难学的东西。其实这是错误的观念,安装操作系统就是为了减少开发难度,有一些如USB、液晶屏、鼠标、键盘的驱动程序已经有现成的了,只要在我们的应用程序中调用就行了。ARM的开发更侧重于软件层面的开发,更多的是开发上层应用程序和少量的底层驱动程序。ARM的硬件也是有固定的接口,有占用的LCD接口,有占用的USB接口,只要按官方的数据手册制作就可以了。
评论