0、前言
单片机选型是一件重要而费心的事情,如果单片机型号选择合适,单片机应用系统经济性,可靠性较高;否则易造成经费高,系统性能到不到要求。因此掌握并正确运用单片机选型原则,选择出最能适用于应用系统的单片机,保证单片机应用系统有最高的可靠性,最优的性能价格比,最长的使用寿命和最好的升级换代的方案。
1、需求调研
选型前,首先对自己的需求有所了解,清楚自己需要哪些功能。具体便是确定电路板具有的硬件功能,如CAN、RS232、RS485、网口、USB通讯等,具体数量的IO口,具体类型的串口屏、LCD屏,板载FLASH,SD,音频输出等。
2、性能
如何选择单片机,首先也是最重要的一点就是考虑功能要求,即设计的对象是什么,要完成什么样的 任务,再根据设计任务的复杂程度来决定选择什么样的单片机。
在单片机的性能上有很多要考虑的因素,比如中断源的数量和优先级、工作温度范围、有没有低电压检测功能、单片机内部有无时钟振荡器、有无上电复位功能等等
3、存储器
单片机的存储器可分为程序存储器(ROM)和数据存储器(RAM)。
程序存储器是专门用来存放程序和常数的,有MASK (掩模)ROM、OTPROM、EPROM、FlashROM 等类型。掩模这种形式的程序存储器适用成熟的和大批量生产的产品,如使用到彩色电视机等家电产品中的单片机就采用这种方式,只要用户把应用程序代码交给半导体制造厂家,在生产相应的单片机时将程序固化到芯片中,这种芯片一旦生产出来,程序就无法改变了。
采用EPROM 的单片机具有可以灵活修改程序的优点,但存在需要紫外线擦除、较费时间的缺点。在自己做试验或样机的研发阶段,推荐使用Flash 单片机,它有电写入、电擦除的优点,使得修改程序很方便,可以提高开发速度。对于初具规模的产品可选用OTP 单片机,它不但能免去较长的产品掩模时间,加快产品的上市时间,而且方便程序的修改,能够对产品进行及时的调整和升级。
程序存储器的容量可根据程序的大小确定。对于8位单片机片内程序存储器的最大容量能达到64KB,不够时还可以扩展。选用时程序存储器的容量只要够用就行了,不然会增加成本。
数据存储器是程序在运行中存放临时数据的,掉电后数据即丢失,现在有些型号的单片机提供了EEPROM,可用来存储掉电后需要保护的关键数据,如系统的一些设置参数。
4、运行速度
单片机的运行速度首先看时钟频率,一般情况对于同一种结构的单片机,时钟频率越高速度越快。
其次看单片机CPU 的结构;采用CISC 结构(集中指令集)比采用RISC 结构(精简指令集)的速度要慢。就 是同一种结构、同一种时钟频率的单片机,有时候速度也不一样,比如Winbond (华邦)公司的W77 系列 的51 单片机1个机器周期只要4 个时钟周期,而一般的51 单片机1个周期是12个时钟周期,前者的速度是后者的3倍。
在选用单片机时要根据需要选择速度,不要片面追求高速度,单片机的稳定性、抗干扰性等参数基本上是跟速度成反比的,另外速度快功耗也大。
5、 I/O (输入/输出)口
I/O 口的数量和功能是选用单片机时首先要考虑的问题之一,要根据实际需要确定I/O 口的数量,I/O口多余了不仅芯片的体积增大,也增加了成本。选用时还要考虑I/O 口的驱动能力,驱动电流大的单片机可以简化外围电路。
51等系列的单片机下拉(输出低电平)时驱动电流大,但上拉(输出高电平)时驱动电流很小。而PIC 和AVR 系列的单片机每个I/O 口都可以设置方向,当输出口使用时以推挽驱动的方式输出高、低电平,驱动能力强,也使得I/O 口资源灵活、功能强大、可充分利用。当然我们也可以根据I/O 口的功能来设计外围电路,例如用51 单片机驱动数码管,我们选用共阳的数码管就能发挥其输出口下拉驱动电流大的特点。
6、 定时/计数器(I/O)
大部分单片机提供2~3 个定时/计数器还具有输入捕获、输出比较和PWM (脉冲宽度调制)功能,如AVR 单片机。有的单片机还有专门的PCA (可编程计数器阵列)模块和CCP (输入捕获/输出比较/PWM)模 块,如PIC 和Philips 的部分中高档单片机。利用这些模块不仅可以简化软件设计,而且能少占用CPU 的 资源。
现在还有不少单片机提供了看门狗定时器(WDT),当单片机“死机”后可以复位。
选用时可根据自己的需要和编程要求进行选择,不要片面追求功能多,用不上的功能就等于金钱的浪费。
7、 串行接口
单片机常见的串行接口有:标准UART 接口、增强型UART 接口、I2C 总线接口、CAN 总线接口、SPI接 口、USB 接口等。大部分单片机有串行接口。在没有特别说明的情况下我们常说的串行接口,简称串口, 指的就是UART。
如果系统只用一个单片机芯片时,UART 接口或USB 接口通常用来和计算机或其他芯片通信,不需要和其他设备/芯片通信时可以不用。
SPI接口可用来进行ISP编程,当你没有编程器时,尽量选用带这种接口的单片机,当然SPI接口也能用来和其它外设进行高速串行通信。
I2C 总线是一种两线、双向、可多主机操作的同步总线,IC 总线是一种工业标准,被广泛应用在各种电子产品中,如现在的彩色电视机就采用IC 总线进行参数的设置。具有 IC 总线接口的单片机在使用AT24C01 等串行EEPROM 时可以简化程序设计。
通常情况下使用最多的是UART 接口,其它接口可根据你的需要选择。
8、 模拟电路功能
现在不少单片机内部提供了A/D 转换器、PWM 输出和电压比较器,也有少量的单片机提供了D/A 转换器。单片机在集成片内A/D 转换器的同时,还集成了采样/保持电路,使用户容易建立精密的数据采集系统。
PWM 输出模块可用来产生不同频率和占空比的脉冲信号。利用PWM 输出模块配合RC 滤波电路即可方便实现D/A 输出功能。PWM 输出模块也可以用来实现直流电机的调速等功能。
单片机内部集成的电压比较器可以实现多种功能,例如作阀值检测,实现低成本的A/D 转换器等。
9、 工作电压、功耗
单片机的工作电压最低可以达到1.8V,最高6V,常用的单片机工作电压为4.5V~5.5V,低电压系列为2.7V~5.0V或2.4V~3.6V。选用时根据供电方式确定。
单片机的功耗参数主要是指正常模式、空闲模式、掉电模式下的工作电流,用电池供电的系统要选用电流小的产品,同时要考虑是否要用到单片机的掉电模式,如果要用的话必须选择有相应功能的单片机。
10、封装形式
单片机常见的封装形式有:DIP (双列直插式封装)、PLCC (PLCC 要对应插座)、QFP (四侧引脚扁平封装)、SOP (双列小外形贴片封装)等。
做实验时一般选用DIP 封装的,如果选用其它封装,用编程器编程时还配专用的适配器。如果对系统的体积有要求,如遥控器中用的单片机,往往选用QFP和SOP封装的。
11、抗干扰性能、保密性
选用单片机要选择抗干扰性能好的,特别是用在干扰比较大的工业环境中的尤应如此。单片机加密后的保密性能也要好,这样可保证你的知识产权不容易被侵犯。
12、单片机的可开发性
这也是一个十分重要的因素。所选择的单片机是否有足够的开发手段,直接影响到单片机能否顺利开发,以及开发的速度。对于被选择的单片机,应考虑下列问题。
13、开发工具、编程器
有没有集成的开发环境,在支持汇编语言的同时是否支持C 语言,使用C 语言可加快你的开发进度, 另外C语言的移值性也好。
你所选用的单片机有没有编程器支持,或能否采用ISP编程。
14、开发成本
你选择的单片机对应的编程器、仿真器价格是否高,是否要用专用设备,比如有时单片机需要选用专用的编程器,这样你的开发成本就高了。
15、 开发人员的适用性
这也是一个很实际的问题,如果有两种单片机都能解决问题,当然选一种你熟悉的品种。在大多数情况下大家往往优先考虑选择51或STM32系列的单片机。
一般不选用类似小编在用的较冷门的瑞萨单片机,除了开发资料不够丰富外,厂家的技术支持服务也不给力。
15、 技术支持和服务
技术支持和服务可以从下面几个方面进行考虑。
1、技术是否成熟
经大量使用被证明是成熟的产品你可以放心使用。
2、有无技术服务
国内有没有代理商和相应的技术支持,网站提供的资料是否丰富,包括芯片手册,应用指南,设计方案,范例程序等。
16、 单片机的可购买性
单片机是否可直接购买到,这是指单片机能否直接从厂家或其代理商处买到,购买的途径是否顺畅。单片机是否有足够的供应量,以保证所选择的单片机能满足产品的生产需要。
选择单片机,还应注意选择那些仍然在生产中的型号,已经停产的单片机是不能使用的,因为它已无后续供货能力,直接影响到产品的继续生产和生命力。同时,也会给人以一种过时的感觉,从而影响产品的新颖性。
最好还要看一下所选用的单片机是否在改进之中,显然,对于准备推出新版本或有新版本的单片机,选择用于应用系统或产品具有较强的后劲。
17、 产品价格
这也是一个重要的因素,在其它条件相当的情况下,当然选择价格低的产品,这样可以提高性价比。
18、 总结
根据上面几个原则对单片机进行选择,就可以选择最能适用于你的应用系统的单片机,从而保证应用系统有最高的可靠性、最优的性价比、最长的使用寿命和最好的升级换代性。