首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

AVR、51系列、PIC单片机的对比分析(2)

AVR、51系列、PIC单片机的对比分析(2)

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)寄存器组IC 单片机的所有寄存器,包括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. 和其他外设芯片放在一起的综合考虑
继承事业,薪火相传
返回列表