第二章
AVR
单片机系统结构
2
1
第二章 AVR 单片机系统结构
ATMEL 公司的 90 系列嵌入式单片微处理器是一种基于 AVR 增强性½ R ISC 结构的 ½功耗
CMOS 技术 八½微控制器(E½½½½½½½ RISC M½½½½½½½½½½½½½½½) 通常简称为 AVR 单片机 目前
有 AT90S1200 AT90S2313 AT90S4414 AT90S8515 AT90S2323 AT90S4434 AT90S8535
AT½½½½83-163 AT½½½½603/103 AT½½½½161 AT½½½½10/11/12/15/22/24/28 等多种型号 它们的
基本结构½比较相近 这一章以 AT90S8515 单片机的内部结构为主来叙述 AVR 单片机系统结构
2.1 AVR 单片机总½结构
90 系列单片机通过在单一时钟周期内执行功½强大的指令, MH½ 可实现 1MIPS 的处理解力,
每
这½得设计者可以优化功耗与速度之间的矛盾
AVR 核为 32 个通用工½寄存器与丰富指令集的组合 32 个寄存器全部直接地与运算逻辑单元
(ALU)连接 这½得可以通过在一个时钟周期内执行一条指令来访问到两个独立的寄存器 这种组
合机构具备的代码效率比完成同样处理½力的常规 CISC 微控制器要快十倍
90 系列单片机具有以下特征 1K 128K 字节可下½½的 F½½½½ 存储器 64 4K 字节 E2PROM
128 4K 字节 RAM 5 48 条通用的 I O 线 32 个通用工½寄存器 带模拟比较器的定时器 计
数器 可编程的异步 UART 串行口 内部及外部中断 带内部晶振的可编程看门狗定时器 一个为
下½½程序而设计的 SPI 串行口 10 ½ A D ½换器 以及 2 个可通过½件选择的省电模式 闲½
模式停止 CPU 的工½ 而 SRAM 定时器 计数器 片内振荡器(RTC) SPI 口及中断系统继续工
½ 电源检测功½(BOD),掉电模式保留寄存器的内容 ½冻结晶振 终止芯片的其它功½ 直至
下一次外部中断或硬件复½
该器件的制造运用了 ATMEL 公司的高密度非易失存储器技术 芯片内可下½½的 F½½½½ 存储器
可以通过 SPI 串行接口或通过通用的非易失存储器编程器对程序存储器进行系统内的重新编程
通过在单一芯片内将一个增强性½的 RISC 8 ½ CPU 与可下½½的 F½½½½ 结合 ½得 ATMEL 的 90
系列单片机成为一种适合于许多要求 具有高度灵活性和½成本的嵌入式控制应用的高效微控制
器
90 系列单片机 AVR 的全套编程和系统开发工具包括 C 编译器 BASCOM-AVR,宏汇编器 程
序调试器 程序仿真器 系统在线仿真器和 SL-AVR 开发下½½实验器
图 2.1 为 AT90S8515 单片机方框图 说明了 90 系列单片机的内部结构
一 脚说明
引
AT90S4414/AT90S8515 引脚相同,仅 F½½½½ SRAM 和 E2PROM 相差一倍 AT90S4414/AT90S8515
引脚与 MCS-51 系列单片机 8X51/8X52 的引脚兼容,仅复½电平不同,AVR ½电平复½,MCS-51 高电
平复½ 这对用 AVR 单片机替代 MCS-51 单片机硬件电路带来方便
(½)
V ½ ½
V½½
为供电引脚 连接到正电源
(2) G
N D
GND 为接地引脚 连接到电源地
(3) A
口(PA7 PA0)
A 口为一个 8 ½双向 I O 口 每一引脚内部½有上拉电阻 A 输出缓冲器
可以吸收 20½A 的电流 因而½直接驱动 LED 显示器 ½ A 口被用于输入且内部上拉被触发时
如果外部被拉½ 则会输出电流 ½½用外部 SRAM 时 A 口½为复用的地址 数据和输入 输出
口
(4) B
口(PB7 PB0)
B 口为一个 8 ½双向 I O 口 每一引脚内部½有上拉电阻 B 口的输出缓
冲器可以吸收 20½A 的电流 ½ B 口被用于输入且内部上拉被触发时 如果外部被拉½ 则会输
出电流 B 口也提供后面列出的 90 系列单片机许多特殊功½
广州天河双龙电子有限公司
http://WWW.SL.COM.CN
第二章
AVR
单片机系统结构
2
2
(5) C
口(PC7 PC0)
C 口为一个 8 ½双向 I O 口 每一引脚内部½有上拉电阻 C 口的输出
缓冲器可以吸收 20½A 的电流 ½ C 口被用于输入且内部上拉被触发时 如果外部被拉½ 则会
输出电流 ½½用外部 SRAM 时 C 口½为地址输出
(6)
口(PD7 PD0)
口为带有内部拉高的 8 ½双向 I O 口 D 口的输出缓存器可以吸收 20½A
D
D
的电流 ½ D 口被用于输入且内部上拉被触发时 如果外部被拉½ 则会输出电流 D 口也提供
后面列出的 90 系列单片机许多特殊功½
(7) RESET RESET 为复½输入 ½晶振运行时 引脚上一个两周期的½电平可对器件进行复½
(8)
X T A L 1
XTAL1 为晶振反相放大器的输入端和内部时钟操½电路的输入端
广州天河双龙电子有限公司
http://WWW.SL.COM.CN
第二章
AVR
单片机系统结构
2
3
(9) X
T A L 2
XTAL2
以为晶振反相放大器的输出端
(10)
I C P
ICP 是定时器 计数器 ½ 的输入捕获功½的输入引脚
(11) O
C 1 B
OC1B 是定时器 计数器 1 的输出比较功½ B 的输出引脚
(12) ALE ALE 是½用外部存储器时的地址锁存触发端 ALE 选通门被用于在第一个访问周期中
将½½地址锁存到地址锁存器中 而 PD0 PD7 在第二个访问周期中被用½数据
二 晶振
XTAL1 和 XTAL2 单独地½为反相放大器的输入和输出 该放大器如图 2.2 所示 可被设½为
片内的晶振 可½用石英晶振或陶瓷谐振器 为了由外部源驱动器件 ½ XTAL1 被驱动时 XTAL2
不½连接 如图 2.3 所示
图 2.3 外部时钟驱动设½ 图 2.2 晶振连接
广州天河双龙电子有限公司
http://WWW.SL.COM.CN
第二章
AVR
单片机系统结构
2
4
2.2 AVR 单片机中央处理器 CPU
90 系列单片机 AVR RISC 微控制器向上与 AVR 增强 RISC 结构兼容 为 90 系列单片机 MCU
而编写的程序与 AVR 8 ½ MCU(AT90SXXXX)全部系列产品的源代码和运行的时钟周期相兼容
2 . 2 . 1 结构概述
快速访问寄存器堆概念包括 32 个带有单一时钟周期访问时间的 8 ½通用工½寄存器 这意味
着在一个单一时钟周期内 执行一个 ALU 操½(运算逻辑单元) 从寄存器堆中输出两个操½数
且操½数被执行 运行结果被存储回寄存器堆
这些操½在一个时钟周期内完成
32 个寄存器中的 6 个寄存器½为 3 个 16 ½间接地址寄存器指针 被用于数据空间寻址 从
而可以进行高效的地址计算 3 个寄存器中的一个还被用½地址指示器 完成常量表的查询功½
这些新加的功½寄存器为 16 ½ X 寄存器 16 ½ Y 寄存器 16 ½ Z 寄存器
ALU 支持寄存器之间的运算和逻辑功½ 以及常数和寄存器之间的运算与逻辑功½ ALU 也执
行单一的寄存器操½ 图 2.4 所示为 AT90S8515 单片机 AVR 的结构
除了寄存器操½功½之外 常规存储器寻址模式还可用在寄存器堆上 寄存器堆被分配在最
½的 32 个数据空间地址(¥00 ¥1F) ½触发时 即½它们为一般的存储地址 也½访问到
I O 存储器空间包含 64 个½为 CPU 外围功½的地址,为控制寄存器 定时器 计数器 A D
½换器及其它 I O 功½ I O 存储器可被直接访问 或½为寄存器堆之后的数据空间 地
址为 ¥2O ¥5F
AVR 运用 H½½½½½½ 结构概念 即对程序存储和数据带有不同的存储器和总线 通过单一级的
流水线可对程序存储器进行访问 ½执行某一指令时 下一指令被预先从程序存储器中取回 这
广州天河双龙电子有限公司
http://WWW.SL.COM.CN
第二章
AVR
单片机系统结构
2
5
½得指令可以在每一个时钟周期内被执行 芯片内的程序存储器为系统内可下½½的 F½½½½ 存储器
通过相关的½移和调用指令 全部的 4K 地址空间可以被直接访问到 所有 AVR 指令均有一个
单一的 16 ½字格式 这意味着每个程序存储器地址包含了一个单一的 16 ½或 32 ½指令
在中断和子程序调用过程中 返回地址程序计数器(PC)被存储于堆栈之中 该堆栈被高效率
地放½在通用 SRAM 中 ½为结果 堆栈的大小只被 SRAM 的大小及对 SRAM 的½用而限制 所有
的用户程序必须在复½状态初始化 SP(在子程序和中断程序被执行之前,因为复½后,SP 为
0000H) 16 ½的堆栈指针 SP 可在 I O 空间之中被进行读 写访问
128B 4K 字节的数据 SRAM 可以通过 AVR 结构中的不同种寻址模式很容易地访问
AVR 结构中的存储器空间均为线性和有规律的存储器映射 图 2.5 为存储器映射图
一个灵活的中断模块 在 I O 空间中有它自己的控制寄存器 并且在状态寄存器中带有一
个附加的全局中断触发½ 所有不同的中断 在程序存储器开始½½的中断向量(对应固定中断入
口地址及中断申请名称)表中 带有一个独立分开的中断向量 不同的中断优先级与中断向量½½
相一致 中断地址向量的½½越½ 优先级越高(中断向量控制方式同 MCS-51 单片机)
2.2.2
通用寄存器堆
图 2.6 为 AVR 单片机 AT90S8515 CPU 中 32 个通用寄存器的结构图
程序存储器 数据存储器 7 0 地址
¥000 ¥0000 R0
¥ 00
32
个
AT90S8515 R1
¥ 01
通用工½
程序
Flash
R2 ¥ 02
寄存器
(4KX16
¥001F
…
或
8KX8)
64
个
I/O
¥0020
R13
¥ 0D
寄存器
R14
¥ 0E
¥FFF
¥005F
R15
¥ 0F
内部
SRAM
¥0060
R16
¥ 10
R17
¥ 11
(512X8)
¥025F
…
外部
R26 ¥ 1A X-寄存器½字节
SRAM
¥0260
可扩展
R27
¥ 1B X-寄存器高字节
(0-64KX8)
R28
¥ 1C Y-寄存器½字节
R29
¥ 1D Y-寄存器高字节
¥FFFF
R30
¥ 1E Z-寄存器½字节
R31
¥ 1F Z-寄存器高字节
图 2.5 存储器映射图 (AT90S8515) 图 2.6 AVR 单片机 CPU 通用寄存器
指令集中所有的寄存器操½指令均带有方向 并½在单一周期中访问所有的寄存器 唯一的
广州天河双龙电子有限公司
http://WWW.SL.COM.CN
评论