一、单片机的概述。
1、单片机的定义。
单片机诞生于20 世纪70 年代末,它是指一个集成在一块芯片上的完整计算机系统。单 片机具有一个完整计算机所需要的大部分部件:CPU、内存、内部和外部总线系统,目前大 部分还会具有外存。同时集成诸如通讯接口、定时器,实时时钟等外围设备。
2、单片机的发展。
单片机也被称为微控制器(Microcontroller),因为它最早被用于工业控制领域。单片机 由芯片内仅有CPU 的专用处理器发展而来。最早的设计理念是通过将大量外围设备和CPU 集成在一个芯片中,使计算机系统更小,更容易集成进复杂的而对体积要求严格的控制设备 当中。
早期的单片机都是8 位或4 位的。其中最成功的是INTEL 的8031。此后在8031 上发 展出了MCS51 系列单片机系统。基于这一系统的单片机系统直到现在还在广泛使用。随着 工业控制领域要求的提高,开始出现了16 位单片机,但因为性价比不理想并未得到很广泛 的应用。90 年代后随着消费电子产品大发展,单片机技术得到了巨大的提高。随着INTEL i960 系列特别是后来的ARM 系列的广泛应用,32 位单片机迅速取代16 位单片机的高端地 位,并且进入主流市场。而传统的8 位单片机的性能也得到了飞速提高,处理能力比起80 年代提高了数百倍。目前,高端的32 位单片机主频已经超过300MHz,性能直追90 年代中 期的专用处理器,同时性价比非常乐观。当代单片机系统已经不再只在裸机环境下开发和使用,大量专用的嵌入式操作系统被广泛应用在全系列的单片机上。
3、单片机的应用。
单片机比专用处理器更适合应用于嵌入式系统,因此它得到了最多的应用。现代人类生 活中所用的几乎每件电子和机械产品中都会集成有单片机。而个人电脑中也会有为数不少的 单片机在工作。单片机的数量不仅远超过PC 机和其他计算的综合,甚至比人类的数量还要 多。
二、单片机分类AVR、51系列、PIC单片机简单概述。
单片机按CPU 的处理能力分类目前有4 位、8 位、16 位、32 位,位数越高的单片机在数据 处理能力和指令系统方面就越强,AVR、51、PIC 都属于8 位机。8 位单片机由于内部构造 简单、体积小、成本低廉,在一些较简单的控制器中应用很广。即便到了本世纪,在单 片机应用中,仍占有相当的份额。8 位单片机也是目前应用最广泛的单片机,在各个领域上 都可以看到它的身影。
1、51 系列单片机概述。
51 系列单片机最早有Intel 公司推出,主要有8031 系列,8051 系列。后来Atmel 公司 以8051 的内核为基础推出了AT89 系列单片机。比较适合初学者的需要。
2、AVR 单片机概述。
AVR 单片机也是Atmel 公司的产品,最早的就是AT90 系列单片机,现在很多AT90 单片机都转型为Atmega 系列和Attiny 系列,AVR 单片机最大的特点是精简指令型单片机,执行速度,在相同的振荡频率下是8 位MCU 中最快的一种单片机。
3、PIC 单片机概述。
PIC 单片机是Microchip 公司的产品,它也是一种精简指令型的单片机,指令数量比较少,中档的PIC 系列仅仅有35 条指令而已,低档的仅有33 条指令。但是如果使用汇编语言编写PIC 单片机的程序有一个致命的弱点就是PIC 中低档单片机里有一个翻页的概念, 编写程序比较麻烦。
三、AVR、51系列、PIC单片机的对比分析。
1、51 系列单片机的优缺点分析。
51 系列是应用最广泛的单片机,由于产品硬件结构合理,指令系统规范,加之生产历 史“悠久”,有先入为主的优势。世界有许多著名的芯片公司都购买了51 芯片的核心专利技 术,并在其基础上进行性能上的扩充,使得芯片得到进一步的完善,形成了一个庞大的体系, 直到现在仍在不断翻新,把单片机世界炒得沸沸扬扬。
51 系列优点之一是它从内部的硬件到软件有一套完整的按位操作系统,称作位处理器, 或布尔处理器。它的处理对象不是字或字节而是位。它不光能对片内某些特殊功能寄存器的 某位进行处理,如传送、置位、清零、测试等,还能进行位的逻辑运算,其功能十分完备, 使用起来得心应手。虽然其他种类的单片机也具有位处理功能,但能进行位逻辑运算的实属少见。51 系列在片内RAM 区间还特别开辟了一个双重功能的地址区间,十六个字节,单元 地址20H~2FH,它既可作字节处理,也可作位处理(作位处理时,合128 个位,相应位地 址为OOH~7FH),使用极为灵活。这一功能无疑给使用者提供了极大的方便,因为一个较复杂的程序在运行过程中会遇到很多分支,因而需建立很多标志位,在运行过程中,需要对有关的标志位进行置位、清零或检测,以确定程序的运行方向。而实施这一处理(包括前面 所有的位功能),只需用一条位操作指令即可。
51 系列的另一个优点是乘法和除法指令,这给编程也带来了便利。八位除以八位的除 法指令,商为八位,精度嫌不够,用得不多。而八位乘八位的乘法指令,其积为十六位,精 度还是能满足要求的,用的较多。作乘法时,只需一条指令即可。很多的八位单片机都不具 备乘法功能,作乘法时还得编上一段子程序调用,十分不便。
51 系列的I/O 脚的设置和使用非常简单,但高电平时无输出能力,可谓有利有弊。故其他 系列的单片机(如PIC 系列、AVR 系列等)对I/O 口进行了改进,增加了方向寄存器以确定输 入或输出,但使用也变得复杂。
同时,原51 系列也有许多值得改进之处,如运行速度过慢等。当晶振频率为12MHz 时,机器周期达1μs,显然适应不了现代高速运行的需要。华邦公司(Winbond)生产的产品型 号为W77 系列和W78 系列,W78 系列与AT89C 系列完全兼容。W77 系列为增强型,对原有的8051 的时序作了改进,每个机器周期从12 个时钟周期改为4 个周期,使速度提高了三 倍,同时,晶振频率最高可达40MHz。W77 系列还增加了看门狗WatchDog、两组uART、 两组DVTR 数据指针、ISP 等多种功能。
2、PIC 单片机的优缺点分析。
PIC 单片机CPU 采用RISC 结构,分别有33、35、58 条指令(视单片机的级别而定), 属精简指令集。而51 系列有111 条指令,AVR 单片机有118 条指令,都比前者复杂。采用 Haryard 双总线结构,运行速度快(指令周期约160~200nS),它能使程序存储器的访问和数 据存储器的访问并行处理,这种指令流水线结构,在一个周期内完成两部分工作,一是执行 指令,二是从程序存储器取出下一条指令,这样总的看来每条指令只需一个周期(个别除外), 这也是高效率运行的原因之一。此外,它还具有低工作电压、低功耗、驱动能力强等特点。
PIC 系列单片机的I/O 口是双向的,其输出电路为CMOS 互补推挽输出电路。I/O 脚 增加了用于设置输入或输出状态的方向寄存器,从而解决了51 系列I/O 脚为高电平时同 为输入和输出的状态。当置位1 时为输入状态,且不管该脚呈高电平或低电平,对外均呈高 阻状态;置位0 时为输出状态,不管该脚为何种电平,均呈低阻状态,有相当的驱动能力, 低电平吸人电流达25mA,高电平输出电流可达20mA。相对于51 系列而言,这是一个很大 的优点,它可以直接驱动数码管显示且外电路简单。它的A/D 为10 位,能满足精度要求。
具有在线调试及编程功能。
该系列单片机的专用寄存器)并不像51 系列那样都集中在一个固定的地址区间内(80~ FFH),而是分散在四个地址区间内,即存储体0(Bank0:00-7FH)、存储体1(Bankl:80-FFH)、 存储体2(Bank2:100-17FH)、存储体3(Bank3:180-1FFH)。只有5 个专用寄存器PCL、STATUS、 FSR、PCLATH、INTCON 在4 个存储体内同时出现。在编程过程中,少不了要与专用寄存 器打交道,得反复地选择对应的存储体,也即对状态寄存器STATUS 的第6 位(RPl)和第5 位(RPO)置位或清零。这多少给编程带来了一些麻烦。对于上述的单片机,它的位指令操作 通常限制在存储体0 区间(00~7FH)。数据的传送和逻辑运算基本上都得通过工作寄存器 w(相当于5l 系列的累加器A)来进行,而51 系列的还可以通过寄存器相互之间直接传送(如: MOV30H,20H;将寄存器20H 的内容直接传送至寄存器30H 中),因而PIC 单片机的瓶颈现象比51 系列还要严重,这在编程中很有感受。
综合来说PIC 单片机应该说有三个主要特点:
(1)总线结构:MCS-51 单片机的总线结构是冯-诺依曼型,计算机在同一个存储空间取指 令和数据,两者不能同时进行;而PIC 单片机的总线结构是哈佛结构,指令和数据空间是完全 分开的,一个用于指令,一个用于数据,由于可以对程序和数据同时进行访问,所以提高了数据 吞吐率。正因为在PIC 单片机中采用了哈佛双总线结构,所以与常见的微控制器不同的一 点是:程序和数据总线可以采用不同的宽度。数据总线都是8 位的,但指令总线位数分别位 12、14、16 位。
(2)流水线结构:MCS-51 单片机的取指和执行采用单指令流水线结构,即取一条指令,执行 完后再取下一条指令;而PIC 的取指和执行采用双指令流水线结构,当一条指令被执行时,允 许下一条指令同时被取出,这样就实现了单周期指令。
(3)寄存器组:PIC 单片机的所有寄存器,包括I/O 口,定时器和程序计数器等都采用RAM 结构形式,而且都只需要一个指令周期就可以完成访问和操作;而MCS-51 单片机需要两个或 两个以上的周期才能改变寄存器的内容。
3、AVR 单片优缺点分析。
AVR 单片机其显著的特点为高性能、高速度、低功耗。它取消机器周期,以时钟周期 为指令周期,实行流水作业。AVR 单片机指令以字为单位,且大部分指令都为单周期指令。 而单周期既可执行本指令功能,同时完成下一条指令的读取。通用寄存器一共32 个 (RO-R31),前16 个寄存器(R0~R15)都不能直接与立即数打交道,因而通用性有所下降。 而在5l 系列中,它所有的通用寄存器(地址00-7FH)均可以直接与立即数打交道,显然要优 于前者。
AVR 系列没有类似累加器A 的结构,它主要是通过R16~R31 寄存器来实现A 的功能。 在AVR 中,没有像5l 系列的数据指针DPTR,而是由X(由R26、R27 组成)、Y(由R28、. R29 组成)、z(由R30、R31 组成)三个16 位的寄存器来完成数据指针的功能(相当于有三组 DPTR),而且还能作后增量或先减量等的运行。
在51 系列中,所有的逻辑运算都必须在A 中进行;而AVR 却可以在任两个寄存器之 间进行,省去了在A 中的来回折腾,这些都比51 系列强。
AVR 的专用寄存器集中在$00~$3F 地址区间,无需像PIC 那样得先进行选存储体的 过程,使用起来比PIC 方便。AVR 的片内RAM 的地址区间为$0060~$00DF(AT90S23131) 和$0060~$025F(AT90S85l5、AT90S8535),它们占用的是数据空间的地址,这些片内RAM 仅仅是用来存储数据的,通常不具备通用寄存器的功能。当程序复杂时,通用寄存器R0 一 R31 就显得不够用;而51 系列的通用寄存器多达128 个(为AVR 的4 倍),编程时就不会有 这种感觉。
AVR 的I/O 脚类似PIC,它也有用来控制输入或输出的方向寄存器,在输出状态下,高 电平输出的电流在10mA 左右,低电平吸入电流20mA。虽不如PIC,但比51 系列强。 综合来看,AVR 与51、PIC 单片机相比具有一系列的优点,用通俗的说法主要体现在 这几个方面:
(1)、在相同的系统时钟下AVR 运行速度最快;
(2)、所有AVR 单片机的FLASH、EEPROM 蓄存器都可以反复烧写、支持在ISP 在线编程(烧写),入门费用非常少;
(3)、片内集成多种频率的RC 振荡器、上电自动复位、看门狗、启动延时等功能,使得电路设计变得非常简单;
(4)、每个IO 口作输出时都可以输出很强的高、低电平,作输入时IO 口可以是高阻抗或者带上拉电阻;
(5)、片内具有丰富实用的资源,如AD 模数器、DA 数模器,丰富的中断源、SPI、USART、TWI 通信口、PWM 等等;
(6)、片内采用了先进的数据加密技术,大大的提高了破解的难度;
(7)、片内FLASH 空间大、品种多,引脚少的有8 脚,多的有64 脚等各种封装
(8)、部分芯片的引脚兼容51 系列,代换容易,如ATtiny2313 兼容AT89C2051,ATmega8515/162 兼容AT89S51 等
四、单片机的选择。
各种单片机都有各自的优缺点,应根据需要选择。选择单片机原则如下:
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,都提供了很多有用的技术支持,起码烧写器有地方买。
11. 烧录器价格低,如果是ICP(把单片机放在烧录器上编程)能否利用现有的烧录器,如果是表贴封装,买一个转接座也很贵,至少得一二百元。能否ISP(在系统编程,即把芯片先焊到板子上再通过预留的ISP 接口编程),一般ISP 编程器比较便宜大约一二百元甚至几十元。
12. 仿真器便宜。对于FLASH 型单片机,仿真器不是必备的。但是对于OTP(一次性可编程)型单片机,必须购买或者租用仿真器。
13. 单片机汇编语言是自己熟悉的,并且能支持C 语言。编程环境要像keil 一样好用,并且还是免费的。
14. 网站速度快,资料丰富。包括芯片手册,应用指南,设计方案,范例程序。最好有中文,像Atmel 就不错。
15. 保密性能好,查一下专业解密网站上的黑名单,再发个mail 咨询一下解密价格。
16. 抗干扰性能好。我曾经把XXC52 改为S52 后发现抗干扰性能下降,只好改回去。
17. 和其他外设芯片放在一起的综合考虑