购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

任务2
AVR列单片机的识读

基于8051内核的微控制器采用了复杂指令系统CISC(Complex Instruction Set Computing)体系。CISC 结构的单片机是传统的冯•诺依曼(Von-Neumann)结构,这种结构又称为普林斯顿(Princeton)体系结构,其片内程序空间和数据空间合在一起,取指令和操作数都是通过同一簇总线分时进行的。当高速运算时,取指令和操作数不能同时进行,否则将会造成传输通道上的瓶颈现象。

1997年,Atmel公司挪威设计中心的A先生和V先生出于市场需求的考虑,推出了增强型内置Flash的8位精简指令集微处理器(Reduced Instruction Set CPU,RISC),并将其命名为AVR。

RISC结构的AVR单片机是新型的哈佛(Harvard)结构,采用双总线结构。AVR单片机的快速存取寄存器文件由32个通用寄存器组成。传统的基于累加器的结构需要大量的程序代码,以实现累加器和存储器之间的数据传送。在AVR单片机中,32个寄存器全部直接与运算逻辑单元(ALU)相连,每个通用工作寄存器都代替了累加器。这就使微处理器在前一条指令执行时,就取出现行的指令,从而可以避免传统CISC单片机的累加器和存储器之间数据传送时的瓶颈现象,提高了系统的性能。

1.AVR单片机的主要特征

【内嵌高质量的Flash存储器,并具有高保密性】 AVR单片机内嵌高质量的Flash程序存储器,擦写方便,支持ISP和IAP,便于产品的调试、开发、生产和更新。片内含有长寿命的E 2 PROM,可长期保存关键数据,避免断电丢失。片内大容量的RAM不仅能满足一般场合的使用,同时也能更有效地支持使用高级语言开发系统程序,并可像MCS-51单片机那样扩展外部RAM。

Flash程序存储器具有保密锁死(Lock)功能,并且Flash程序存储器深藏于芯片内部,可以通过自编程(Self Programming)方式远程下载被加密的更新代码。

【具有真正的I/O端口,能正确反映I/O真实情况】 AVR单片机通用数字I/O端口的I/O特性与PIC单片机的HI/LOW输出及三态高阻抗HI-Z输入相似,同时可设定类似于8051单片机内部有上拉电阻的输入端功能。AVR的I/O端口是真正的I/O端口,能正确反映I/O的真实情况。AVR的I/O端口资源灵活、功能强大,可以单独设定为输入/输出,也可以设定(初始)高阻输入,具有驱动能力强(可省去功率驱动器件)等特性。

【高速度、低功耗,具有省电休眠(SLEEP)功能】 AVR单片机一条指令的执行速度可达50ns(20MHz),而耗电则在1?A~2.5mA之间。由于它采用新型的哈佛(Harvard)结构,具有一级流水线的预取指令功能,即对程序的读取和数据的操作使用不同的数据总线,因此当执行某一指令时,下一指令被预先从程序存储器中取出,使得指令可以在每一个时钟周期内被执行。AVR单片机具有多种省电休眠模式,且可宽电压运行(2.7~5.5V),抗干扰能力强,可降低一般8位机中的软件抗干扰设计工作量和硬件的使用量。AVR单片机具有6种休眠功能,能够从低功耗模式迅速唤醒。

【具有多种独立的时钟分频器】 AVR单片机片内具备多种独立的时钟分频器,分别供URAT、I 2 C、SPI使用。其中与8/16位定时器配合的具有多达10 位的预分频器,可通过软件设定分频系数,提供多种档次的定时时间。AVR单片机中的定时器/计数器(单)可双向计数形成三角波,再与输出比较匹配寄存器配合,生成占空比可变、频率可变、相位可变的方波的设计方法(即脉宽调制输出PWM),令人耳目一新。

【定位于工业级产品】 AVR单片机具有大电流10~20mA(输出电流)或40mA(吸收电流),可直接驱动LED、SSR或继电器。具有看门狗定时器(WDT)安全保护功能,可防止程序跑飞,以提高产品的抗干扰能力。

【具有超功能精简指令】 AVR单片机具有32个通用工作寄存器,相当于8051单片机中的32个累加器,克服了单一累加器数据处理造成的瓶颈现象。片内含有128B~8KB个SRAM,可灵活使用指令运算,适合用C语言进行程序开发,易学、易写、易移植,并且具有很高的代码效率。

【通信方便、快捷、可靠,支持多机通信】 其增强性的高速同/异步串口,具有硬件产生校验码、硬件检测和校验帧错、两级接收缓冲、波特率自动调整定位(接收时)、屏蔽数据帧等功能,提高了通信的可靠性,方便程序编写,更便于组成分布式网络和实现多机通信系统的复杂应用。其串口功能大大超过MCS-51/96单片机的串口,加之AVR单片机高速,中断服务时间短,故可实现高波特率通信。

【面向字节的高速硬件串行接口TWI、SPI】 TWI与I 2 C接口兼容,具备ACK信号硬件发送与识别、地址识别、总线仲裁等功能,能实现主/从机的收/发全部4种组合的多机通信。SPI支持主/从机等4种组合的多机通信。

【增强嵌入式系统的可靠性】 AVR单片机有自动上电复位电路、独立的看门狗电路、低电压检测电路BOD,多个复位源(自动上/下电复位、外部复位、看门狗复位、BOD复位),可设置的启动后延时运行程序,增强了嵌入式系统的可靠性。

AVR单片机技术体现了单片机集多种器件(包括Flash程序存储器、看门狗、E 2 PROM、同/异步串行口、TWI、SPI、A/D模数转换器、定时器/计数器等)和多种功能(增强可靠性的复位系统、降低功耗抗干扰的休眠模式、品种多门类全的中断系统、具有输入捕获和比较匹配输出等多样化功能的定时器/计数器、具有替换功能的I/O端口……)于一身,充分体现了单片机技术的从“片自为战”向“片上系统(SoC)”过渡的发展方向。

2.AVR单片机的分类及主要性能

AVR单片机系列齐全,可适用于各种不同场合的要求。它主要有低档的Tiny系列、中档的AT90系列和高档的ATmega系列的产品。

【低档的Tiny系列】 低档的Tiny系列AVR单片机是专门为需要小型微控制的简单应用优化设计的,具有很高的性价比,主要有8个引脚的Tiny11/12/13/15/45/85,14个引脚的Tiny24/44/84,20个引脚的Tiny26/261/461/861/2313等。

【中档的AT90系列】 中档的AT90系列AVR单片机主要有20个引脚的AT90S1200/2313/2323/2343,28个引脚的AT90S4433,40个引脚的AT90S4414/4434/8515/8535等。

【高档的ATmega系列】 高档的ATmega系列AVR单片机主要有28个引脚的ATmega8/48/88/168,40个引脚的ATmega16/32/162/644/8535,64个引脚的ATmega128/165/325/64/645/1281/2561,100个引脚的ATmega3250/6450/640/1280/2560等。

AVR单片机从8脚到100脚,还有各种不同封装供用户选择,表1-1~表1-3列出了目前主流AVR单片机的各系列性能参数。

自2002年以来,Atmel公司对AVR单片机产品线进行了调整,逐步停止了性能重叠的中档低功耗AVR单片机中AT90系列的单片机。目前,AT90系列某些型号的单片机已经被性能更加优越的Tiny系列或ATmega系列相应的AVR单片机替代(见表1-4),所以在实际开发中建议不要再使用该系列的单片机。

3.AVR单片机的命名规则

下面以ATmega48V-10A为例,介绍AVR单片机型号的命名规则。ATmega48V-10A型号标志说明如下。

☺“V”代表低/宽电压版本,以新推出的 AVR (如 ATmega48/88/168,Tiny13/2313等)产品来说,带“V”表示工作电压为 1.8~5.5V 范围;不带“V”表示工作电压为 2.7~5.5V 范围。对于一些较老型号的 AVR 的单片机而言,有用“L”来表示的,“L”是“Low”的缩写,带“L”表示它可以支持低电压,它支持的电压范围为 2.7~5.5V;不带“L”的则表示支持的电压范围为4.5~5.5V。

☺ 后缀的数字部分代表单片机可以支持的最高系统时钟,如ATmega48V-10A指的是可以支持到 10MHz 的系统时钟,ATmega64-16AU 及 ATmega64-16AI 指的是可以支持到16MHz的系统时钟。

☺ 后缀的第1个字母代表单片机的封装形式,“P”表示DIP封装;“A”表示TQFP封装;“S”表示SOIC封装;“M”表示MLF封装。如ATmega48V-10A,说明它是TQFP封装。

☺ 后缀的第 2 个字母代表单片机的应用级别,“C”表示商业级;“I”表示工业级;“A”表示汽车级;“E”表示扩展级(温度范围为-40~105℃);“U”表示工业级,符合ROHS。如ATmega64L-8AC带“C”为商业级,ATmega64L-8AI带“I”为工业级。

说明:

由于现欧美要求使用无铅IC,所以ATMEL未来将只推出带“U”的AVR MCU,它将取代原来带“I”的型号,如ATmge8L-8AU将取代原来的ATmega64L-8AI。

表1-1 Tiny系列AVR单片机的性能

表1-2 ATmega系列AVR单片机的性能

续表

表1-3 其他系列AVR单片机的性能

表1-4 替代的AVR单片机

4.ATmega16单片机封装形式

ATmega16单片机的普通封装有3种形式,即PDIP-40(Plastic Dual In-line Package,塑料双直列直插式)、TQFP-44(Thin Quad Flat Package,薄塑四角扁平封装)和MLF-44(Micro Lead Frame,微引线框架封装),其外部封装形式如图1-1所示。

图1-1 ATmega16单片机的芯片封装

5.ATmega16单片机引脚功能

PDIP-40(Plastic Dual In-line Package,塑料双直列直插式)封装的ATmega16单片机的外部引脚功能见表1-5。

表1-5 ATmega16单片机的外部引脚功能

续表

6.存储器结构

ATmega16单片机片内集成了Flash程序存储器、SRAM数据存储器和E 2 PROM数据存储器。这3个存储器空间互相独立,物理结构也不相同。虽然它们的物理结构不同,但是这3个存储器的空间均采用线性的平面结构,如图1-2所示。

【Flash程序存储器】 ATmega16具有16KB的在线编程Flash,用于存放程序指令代码。因为所有的AVR指令为16位或32位,故而Flash组织成8K×16位的形式。Flash程序存储器被分为两个区,即引导(Boot)程序区和应用程序区。

Flash程序存储器至少可以擦写10 4 次。ATmega16的程序计数器(PC)为13位,因此可以寻址8KB的程序存储器空间。

图1-2 ATmega16的存储器结构

【SRAM数据存储器】 ATmega16具有1120B的片内SRAM,由通用寄存器(R0~R31)、I/O寄存器和数据存储器SRAM组成。

ATmega16单片机SRAM的起始地址段0x0000~0x001F(即96个地址)为寄存器文件(R0~R31共32个8位通用寄存器),其中最后6个寄存器R26~R31组成X、Y、Z这3个16位寄存器,用于存放间接寻址的地址指针。R26和R27组成X寄存器,R26为X寄存器的低8位,R27为X寄存器的高8位;R28和R29组成Y寄存器,R28为Y寄存器的低8位,R29为Y寄存器的高8位;R30和R31组成Z寄存器,R30为Z寄存器的低8位,R31为Z寄存器的高8位。

ATmega16单片机SRAM的地址段0x0020~0x005F为I/O寄存器。I/O寄存器支持专用的I/O指令访问和SRAM地址访问。如果使用IN和OUT指令访问I/O寄存器时,地址单元为0x00~0x3F;而将I/O寄存器作为普通SRAM访问时,地址单元则为0x0020~0x005F。

ATmega16单片机的I/O寄存器的地址空间分配、名称的功能描述见表1-6。

表1-6 ATmega16单片机的I/O寄存器的地址空间分配表

续表

直接给用户使用的SRAM单元为0x006F~0x045F共1024B,这部分SRAM单元用于存放在程序执行过程中定义的各种变量。

【E 2 PROM数据存储器】 ATmega16包含512B的E 2 PROM数据存储器。它是作为一个独立的数据空间而存在的,可以通过相关的寄存器按字节对其进行读/写操作。E 2 PROM 的擦除次数达10 5 次以上。E 2 PROM的访问由地址寄存器、数据寄存器和控制寄存器决定。 /IaF+5ZkO88RwYowXJLTR4reUzOVmnKIU7T9rMspwS2MLPqhui9Ldh1WN7zmdzIP

点击中间区域
呼出菜单
上一章
目录
下一章
×