单片机的发展相当的迅速,现在各个厂商们也在速度、内存、功能上此起彼伏,竞争激烈,同时涌现出一大批拥有代表性单片机的厂商:atmel、、st、microchip、arm…国内的宏晶stc单片机也是可圈可点。最为初学者首先要搞清楚他们之间的区别,掌握avr单片机选型技巧,才能够更好的设计产品。
一、stm32单片机介绍
由st厂商推出的stm32系列单片机,行业的朋友都知道,这是一款性价比超高的系列单片机,应该没有之一,功能及其强大。其基于专为要求高性能、低成 本、低功耗的嵌入式应用专门设计的arm cortex-m内核,同时具有一流的外设:1μs的双12位adc,4兆位/秒的uart,18兆位/秒的spi等等,在功耗和集成度方面也有不俗的表 现,当然和msp430的功耗比起来是稍微逊色的一些,但这并不影响工程师们对它的热捧程度,由于其简单的结构和易用的工具再配合其强大的功能在行业中赫 赫有名…其强大的功能主要表现在:
特性:
1.内核:arm32位cortex-m3cpu,最高工作频率72mhz,1.25dmips/mhz,单周期乘法和硬件除法
2.存储器:片上集成32-512kb的flash存储器。6-64kb的sram存储器
3.时钟、复位和电源管理:2.0-3.6v的电源供电和i/o接口的驱动电压。por、pdr和可编程的电压探测器(pvd)。4-16mhz的晶 振。内嵌出厂前调校的8mhz rc振荡电路。内部40 khz的rc振荡电路。用于cpu时钟的pll。带校准用于rtc的32khz的晶振
4、调试模式:串行调试(swd)和jtag接口。最多高达112个的快速i/o端口、最多多达11个定时器、最多多达13个通信接口
使用最多的器件:stm32f103系列、stm32 l1系列、stm32w系列
二、avr单片机介绍
avr单片机是atmel公司推出的较为新颖的单片机,其显著的特点为高性能、高速度、低功耗。它取消机器周期,以时钟周期为指令周期,实行流水作业。 avr单片机指令以字为单位,且大部分指令都为单周期指令。而单周期既可执行本指令功能,同时完成下一条指令的读取。通常时钟频率用4~8mhz,故最短 指令执行时间为250~125ns。avr单片机能成为最近仍是比较火热的单片机,主要的特点:
特点:
1. avr系列没有类似累加器a的结构,它主要是通过r16~r31寄存器来实现a的功能。在avr中,没有像51系列的数据指针dptr,而是由x(由 r26、r27组成)、y(由r28、r29组成)、z(由r30、r31组成)三个16位的寄存器来完成数据指针的功能(相当于有三组dptr),而且 还能作后增量或先减量等的运行,而在51系列中,所有的逻辑运算都必须在a中进行;而avr却可以在任两个寄存器之间进行,省去了在a中的来回折腾,这些 都比51系列出色些
2. avr的专用寄存器集中在00~3f地址区间,无需像pic那样得先进行选存储体的过程,使用起来比pic方便。avr的片内ram的地址区间为 0~00df(at90s2313) 和0060~025f(at90s8515、at90s8535),它们占用的是数据空间的地址,这些片内ram仅仅是用来存储数据的,通常不具备通用寄 存器的功能。当程序复杂时,通用寄存器r0~r31就显得不够用;而51系列的通用寄存器多达128个(为avr的4倍),编程时就不会有这种感觉。
3. avr的i/o脚类似pic,它也有用来控制输入或输出的方向寄存器,在输出状态下,高电平输出的电流在10ma左右,低电平吸入电流20ma。这点虽不如pic,但比51系列还是要优秀的…
缺点:
1. 是没有位操作,都是以字节形式来控制和判断相关寄存器位的
2. c语言与51的c语言在写法上存在很大的差异,这让从开始学习51单片机的朋友很不习惯
3. 通用寄存器一共32个(r0~r31),前16个寄存器(r0~r15)都不能直接与立即数打交道,因而通用性有所下降。而在51系列中,它所有的通用寄存器(地址00~7fh)均可以直接与立即数打交道,显然要优于前者。
使用最多的器件:atuc64l3u、atxmega64a1u、at90s8515
每种mcu都有自身的优点与缺点,与其它8-bit mcu相比,avr 8-bit mcu最大的特点是:
● 哈佛结构,具备1mips / mhz的高速运行处理能力;
● 超功能精简指令集(risc),具有32个通用工作寄存器,克服了如8051 mcu采用单一acc进行处理造成的瓶颈现象;
● 快速的存取寄存器组、单周期指令系统,大大优化了目标代码的大小、执行效率,部分型号flash非常大,特别适用于使用高级语言进行开发;
● 作输出时与pic的hi/low相同,可输出40ma(单一输出),作输入时可设置为三态高阻抗输入或带上拉电阻输入,具备10ma-20ma灌电流的能力;
● 片内集成多种频率的rc振荡器、上电自动复位、看门狗、启动延时等功能,外围电路更加简单,系统更加稳定可靠;
● 大部分avr片上资源丰富:带e2prom,pwm,rtc,spi,uart,twi,isp,ad,analog comparator,wdt等;
● 大部分avr除了有isp功能外,还有iap功能,方便升级或销毁应用程序。
● 性价比高。
三、avr单片机典型应用电路图
avr单片机最常用的是5v与3.3v两种电压。本线路以开关切换两种电压,并且以双色二极管指示(5v时为绿灯,3.3v时为红灯)。jp3输入电压为7.5v—9v。
串口电路设计
串口使用一个max232芯片。
使用跳线jmp2—1,不使用串口时,请将其断开,防止串口电路对io口的干扰。
vcc与r2out之间接串上一个电阻r2和一个发光二极管led1,特别说明,只有当此二极管闪的时候才说明串口在工作,直接接上的时候,此发光二极管也可能会亮。
ad转换滤波线路
为减小ad转换的电源干扰,mega16芯片有独立的ad电源供电。官方文档推荐在vcc串上一只10uh的电感(l1),然后接一只0.1uf的电容到地(c3)。
mega16内带2.56v标准参考电压。也可以从外面输入参考电压,比如在外面使用tl431($0.0625)基准电压源。不过一般的应用使用内部自带的参考电压已经足够。习惯上在aref脚接一只0.1uf的电容到地(c4)。
晶振电路
mega16已经内置rc振荡线路,可以产生1m、2m、4m、8m的振荡频率。不过,内置的毕竟是rc振荡,在一些要求较高的场合,比如要与rs232($780.5000)通信需要比较精确的波特率时,建议使用外部的晶振线路。
早期的90s系列,晶振两端均需要接22pf左右的电容。mega系列实际使用时,这两只小电容不接也能正常工作。不过为了线路的规范化,我们仍建议接上。
四、pic单片机介绍
pic单片机系列是美国微芯公司(microship)的产品,共分三个级别,即基本级、中级、高级,是当前市场份额增长最快的单片机之一,cpu 采用risc结构,分别有33、35、58条指令,属精简指令集,同时采用harvard双总线结构,运行速度快,它能使程序存储器的访问和数据存储器的 访问并行处理,这种指令流水线结构,在一个周期内完成两部分工作,一是执行指令,二是从程序存储器取出下一条指令,这样总的看来每条指令只需一个周期,这 也是高效率运行的原因之一,此外pic单片机之所以成为一时非常热的单片机不外乎以下特点:
特点
1.具有低工作电压、低功耗、驱动能力强等特点。pic系列单片机的i/o口是双向的,其输出电路为cmos互补推挽输出电路。i/o脚增加了用于设置输入或输出状态的方向寄存器,从而解决了51系列i/o脚为高电平时同为输入和输出的状态。
2.当置位1时为输入状态,且不管该脚呈高电平或低电平,对外均呈高阻状态;置位0时为输出状态,不管该脚为何种电平,均呈低阻状态,有相当的驱动能力,低电平吸入电流达25ma,高电平输出电流可达20ma。相对于51系列而言,这是一个很大的优点
3.它可以直接驱动数码管显示且外电路简单。它的a/d为10位,能满足精度要求。具有在线调试及编程(isp)功能。
不足之处
其专用寄存器(sfr)并不像51系列那样都集中在一个固定的地址区间内(80~ffh),而是分散在四个地址区间内。只有5个专用寄存器pcl、 status、fsr、pclath、intcon在4个存储体内同时出现,但是在编程过程中,少不了要与专用寄存器打交道,得反复地选择对应的存储体, 也即对状态寄存器status的第6位(rp1)和第5位(rp0)置位或清零。数据的传送和逻辑运算基本上都得通过工作寄存器w(相当于51系列的累加 器a)来进行,而51系列的还可以通过寄存器相互之间直接传送,因而pic单片机的瓶颈现象比51系列还要严重,这在编程中的朋友应该深有体会。
使用最多的器件pic16f873、pic16f877
五:stm32与pic、avr单片机的对比区别
下表格对avr、pic和stm32这三种系列的单片机进行比较,对象都选择各个系列的64脚封装的芯片,其中mega128和pic18f6680均为其所在系列中高端芯片。通过表格可以看出不管在处理速度,外围设备还是价格上,stm32都具有非常大的优势,唯一不足之处就是stm32暂时还未集成内部eeprom,但可以使用flash的iap功能来替代,在可靠性上应该更高点。
在使用c语言编程方面,pic的体系结构是最不适合的,且编译软件无法与gcc,keilc相比。
在抗干扰方面,主要还是和开发者的水平有关,而一定要说哪种单片机的抗干扰强,哪种弱,其实标准不一样,结果也不一样。人们普遍认为pic的抗干扰很强,但那是c系列,现在集成内部flash的f系列要差许多,特别是早期出厂的几批。avr系列单片机普遍被认为抗干扰性能是比较差的,曾经有人列出了一个表格,使用日本的测试方法,结果是avr排在了最后,其实对于一般的应用也没什么问题。stm32是由著名的st公司生产的,该公司一直致力于电机控制芯片的研发生产,而且做的很出色,我想抗干扰应该没什么问题,至少不会比前两种差。
六:avr单片机的选型技巧
各种单片机都有各自的优缺点,应根据需要选择。选择单片机原则如下:
1. 单片机的基本参数例如速度,程序存储器容量,i/o 引脚数量
2. 单片机的增强功能,例如看门狗,双指针,双串口,rtc(实时时钟),eeprom,扩展 ram,can 接口,i2c 接口,spi 接口,usb 接口。
3. flash 和otp(一次性可编程)相比较,最好是flash。
4. 封装 ip(双列直插),plcc(plcc 有对应插座)还是贴片。dip 封装在做实验时可能方便一点。
5. 工作温度范围,工业级还是商业机。如果设计户外产品,必须选用工业级。
6. 功耗,比如设计并口加密狗,信号线取电只能提供几个 ma,用pic 就是因为低功耗,后来出了msp430 也不错。
7. 工作电压范围。例如设计电视机遥控器,2 节干电池供电,至少应该能在 1.8-3.6v电压范围内工作。
8. 供货渠道畅通。能申请样片,小批量购买有现货。最好像标准 51,中发里随便找个柜台就能买到。
9. 价格低。
10. 有服务商,像周立功公司推 philips,双龙公司推avr,都提供了很多有用的凯发k8国际的技术支持,起码烧写器有地方买。
11. 烧录器价格低,如果是icp(把单片机放在烧录器上编程)能否利用现有的烧录器,如果是表贴封装,买一个转接座也很贵,至少得一二百元。能否 isp(在系统编程,即把芯片先焊到板子上再通过预留的 isp 接口编程),一般 isp 编程器比较便宜大约一二百元甚至几十元。
12. 仿真器便宜。对于 flash 型单片机,仿真器不是必备的。但是对于otp(一次性可编程)型单片机,必须购买或者租用仿真器。
13. 单片机汇编语言是自己熟悉的,并且能支持 c 语言。编程环境要像keil 一样好用,并且还是免费的。 14. 网站速度快,资料丰富。包括芯片手册,应用指南,设计方案,范例程序。最好有中文,像atmel 就不错。
15. 保密性能好,查一下专业解密网站上的黑名单,再发个 mail 咨询一下解密价格。
16. 抗干扰性能好。我曾经把xxc52 改为s52 后发现抗干扰性能下降,只好改回去。
17. 和其他外设芯片放在一起的综合考虑。