(一)AVR单片机单片机的基本结构


文章目录

  • A 单片机的基本结构
    • A.a 单片机的基本组成
    • A.b ATmega16单片机的组成
    • A.c ATmega16单片机的内部结构
    • A.d 存储器结构和地址空间
    • A.e 通用寄存器组与I/O寄存器
    • A.f ATmega16单片机的工作状态

A 单片机的基本结构

A.a 单片机的基本组成

在这里插入图片描述
单片机的基本单元与作用:
1 MCU单元(Microcontroller Unit)
包括CPU、时钟系统、复位、总线控制逻辑 等电路

2 片内存储器(集成在芯片内的存储器)
单片机的存储器一般分成程序存储器和数据 存储器,它们往往构成相互独立的两个存储空间, 分别寻址,互不干扰。(哈佛Harvard结构)
通用计算机数据和指令是存放在同一个存储 空间中。(冯.诺依曼Von-Neumann结构)

3.程序存储器
程序存储器用于存放嵌人式系统的应用程序。由于 单片机嵌入式系统的应用程序在开发 调试完成后 不需要经常改变,因此单片机的程序存储器多采用 只读型ROM存储器,用于永久性地存储系统的应 用程序。
(1)ROMLess型 (2)EPROM型 (3) Mask ROM型 (4) OTP ROM型 (5) Flash ROM型

4 数据存储器
(1) 随机存储器RAM
随机存储器RAM是用来存储系统程序在运行期间工作变量和临时数据的。 掉电后数据自动消失

(2) 电可擦除存储器EEPROM
这类数据存储器用于存放一些永久或比较固定的 系统参数,如:机器人的动作指令、放大倍率、电话 号码、时间常数等。 具有掉电后不丢失数据的特点,并且通过系统程 序可以随时修改。

5.输入/输出(I/O端口)
(1)并行总线输入/输出端口
用于外部扩展和扩充并行存储器芯片或并行I/O芯片等使用 .
(2)通用数字I/O端口
用于外部电路逻辑信号的输入和输出控制
(3)片内功能单元的输人/输出端口
定时/计数器的计数脉冲输人、外部中断源信号的输入等
(4)串行I/O通信
系统之间或与外围芯片之间的连接和交 换数据。
(5)其他专用接口
A/D输入、D/A输出、模拟比较输人、脉宽调制(PWM)输出端口

6.操作管理寄存器
操作管理寄存器也是单片机芯片中的重要组成部分之 一。它的功能是管理、协调、控制、 操作单片机芯片 中各功能单元的使用和运行。
(1)状态寄存器 (2)控制寄存器 (3)方式寄存器 (4)数据寄存器

A.b ATmega16单片机的组成

1 AVR单片机的内核结构
在这里插入图片描述
2 ATmegal6 的特点
(1)采用先进RISC结构的AVR内核
(2)片内含有较大容量、非易失性的程序和 数据存储器
(3)片内含JTAG接口
(4)外围接口丰富
(5)宽电压、高速度、低功耗

3 ATmegal6 的外部引脚和封装
在这里插入图片描述

A.c ATmega16单片机的内部结构

在这里插入图片描述

1、中央处理器CPU
(1)运算逻辑单元ALU
运算逻辑单元ALU的功能是进行算术运算和逻辑运算, 可对半字节(4位)、单字节等数据进行操作。例如能 完成加、减、自动加1、自动减1、比较等算术运算和 “与”、“或”、“异或”、求 补、循环移位等逻辑 操作。
操作结果的状态,例如产生进位、结果为零等状态信 息将影响到状态寄存器SREG相应的标志位。
运算逻辑单元ALU还包含一个布尔处理器,用来处理 位操作。它可执行置位、清0、取反 等操作。
(2)程序计数器PC、指 令寄存器和指令译码器
程序计数器PC用来存放下一条需要执行指令在程序存储 器空间的地址(指向Flash空 间)。
取出的指令存放在指令寄存器中,然后送入指令译码器 产生各种控制信号,控制CPU的运行(执行指令)。
(3)通用工作寄存器组

  • 在AVR中,由命名为R0?R31的 32个8位通用工作寄存器构成一 个“通用快速工作寄存 器 组 ”
  • 通 用 寄 存 器 组 提 供 和 支 持 A L U 使用以下4种不同的数据输 入/输出的操作方式:

1)提供一个8位源操作数,并保存 一个8位结果;
2)提供两个8位源操作数,并保存 一个8位结果;
3)提供两个8位源操作数,并保存 一个16位结果;
4) 提 供 一 个 1 6 位 源 操 作 数 , 并 保 存 一 个 1 6 位结果
在这里插入图片描述
**2、系统时钟部件 **
(1)系统时钟
系统时钟为控制器提供时钟脉冲,是控制器的心脏。系统时钟的 频率是单片机的重要性能指标之一 。系统时钟频率越高, 单片 机的执行节拍就越快, 处理速度也越快 。
ATmega16的片内含有4种频率( 1 / 2 / 4 / 8 M H z )的RC振荡 源 ,可直接作为系统的工作时钟使用。同时片内还设有一个由 反向放大器所构成的OSC(Oscillator )振荡电路 , 外围引脚 XTAL1和 XTAL2 分别为OSC振荡电路的输入端和输出端,用于 外接石英晶体等,构成高精度的或其他标称频率的系统时钟系统。

(2)内部看门狗时钟
在AVR片内还集成了一个1MHz独立的时钟电路 , 它仅供片内的 看门狗定时器 ( WDT)使用 。 因此 , AVR片内的WDT是独立硬 件形式的看门狗 ,使用AVR可以省掉外部的WDT芯片。使用 WDT可以有效地提高系统运行的可靠性。

3、CPU的工作时序
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
4、 ATmega16存储器
F l as h 存 储 器: 以 1 6 位 ( 字 ) 为 一 个 存 储 单 元 , 作 为 数 据读 取 时, 以 字节 为 单位 , 而擦 除 、写 入 则以 页 为单 位 (不 同 型号 的 A VR 单 片 机 , 1 页 的 大 小 也 不 同 ) 。
SRAM 数 据 存 储 器: 以 8 位 ( 字 节 ) 为 一 个 存 储 单 元 , 编 址 方 式 采 用 与 工 作 寄 存 器 组 、 I / O 寄 存 器 和 S R A M 统 一 寻 址 的 方 式 。
E E P R O M 数 据 存 储 器 :是 以 8 位 ( 字 节 ) 为 一 个 存 储 单 元 , 对 其 的 读 / 写 操 作 都 以 字 节 为 单 位 。

5、I/O端口
ATmegal6 有 4 个 8 位 的 双 向 I/ O 端 口 PA 、 PB 、 PC 、 PD , 它 们 对 外 对 应 3 2 个 I /O 引 脚 , 每 一 位 都 可 以 独 立 地 用 于 逻 辑 信 号 的 输 人 和 输 出 。
在 5 V 工 作 电 压 下 , 输 出 高 电 平 时 , 每 个 引 脚 可 输 出 达 2 0 mA 的 驱 动 电 流 ; 而 输 出 低 电 平 时 , 每 个 引 脚 可 吸 收 最 大 为 4 0 mA 的 电 流 , 可 直接驱动发光二极管LED(一般LED的驱动电 流为10 mA左右)和小型继电器

A.d 存储器结构和地址空间

1.支持ISP的Flash程序存储器( ISP: In System Programing 在系统编程)
A V R 单 片 机 包 括 1 ~256 K B 的 片 内 支 持 I S P 的 F l a s h 程 序 存 储 器 。 由 于 A V R 所 有 指 令 为 1 6 位 ( 字 ) 或 3 2 位 ( 双 字 ) , 故 F lash 程 序 存 储 器 的 结 构 为 ( 512 ~128K ) X 16 位 。 Flash 存 储器的使用寿命最少为1万次写/擦 循环
ATmegal6 单 片 机 的 程 序 存 储 器 为 8 K X 16 (16K X 8 ), 程 序 计 数 器 P C 宽 为 1 3 位 , 以 此 来 对8K字程序存储器地 址进行寻址。
程 序 存 储 器 的 地 址 空 间 与 数 据 存 储 器 的 地 址 空 间 是 分 开 的 , 地 址 空 间 从 $0000 开 始 。 如 果要在程序存储器 中使用常量表,则常量表可以被设定在整个Flash地址空间中。
2.数据存储器SRAM空间
在这里插入图片描述
3.内部EEPROM存储器
AVR系列单片机还包括64B~4KB的EEPROM数据存储器。 它们被组织在一个独立的数据空间中。这个数据空间 采用单字节读/写方式。EEPROM的使用寿命至少为10 万次写/擦循环。
ATmegal6的EEPROM容量是512字节 , 地址范围为 $0000 ? $01FF。
EEPROM数据存储器可用于存放一些需要掉电保护且比 较固定的系统参数、表格等

A.e 通用寄存器组与I/O寄存器

1.通用寄存器组
在这里插入图片描述
2 I/O寄存器
A V R 系 列 单 片 机 所 有 I / O 口 及 外 围 接 口 的 功 能 和 配 置 均 通 过 I / O 寄 存 器 进 行 设 置 和 使 用 。
CPU 访 问 I / O 寄 存 器 可 以 使 用 两 种 不 同 的 方 法 : 使 用 对 I / O寄存器访问的IN 和OUT专用指令和使用对 SRAM访问的指令。

所有的I /O 寄 存 器可以通过IN (I/O口输入)和 OUT 输 出 到I /O口) 指令访 问 ,这些指令是在32个通用寄存器 与 I/O寄存器空间之间传输交换数据。
3. 状态寄存器和堆栈指令寄存器
在这里插入图片描述
4.堆栈指令寄存器SP
堆 栈 是 数 据 结 构 中 所 使 用 的 专 用 名 词 , 它 由 一 块 连 续 的 SRAM 空 间 和 一 个 堆 栈 指 针 寄 存 器 组 成 , 主 要 应 用 于 快 速 、 便 捷 地 保 存 临 时 数 据 、 局 部 变 量 和 中 断 调 用 或 子 程 序 调 用 的 返 回 地 址 。
堆 栈 在 系 统 程 序 设 计 和 运 行 中 起 着 非 常 重 要 的 作 用 , 只 要 程 序 中 使 用 了 中 断 和 子 程 序 调 用,就必须正确地设置堆栈指针寄 存器SP,并在SRAM空间建立堆栈区。
在这里插入图片描述

A.f ATmega16单片机的工作状态

1. AVR单片机的最小系统
在这里插入图片描述

2. AVR复位源和复位方式
(1)上电复位
(2)外部复位
(3)掉电检测(BOD)复位
(4)看门狗复位

3. 对AVR的编程下载
用户首先在计算机上通过单片机开发软件平台,编写 由汇编语言或C语言构成的系统程序(源程序),再由 编译系统将源程序编译成单片机能够识别和执行的运 行代码(目标代码)。
编译后通常是一 种带定位格式的二进制文件 : HEX 格式的文件 ,一般以 hex 作 为 文 件 的 扩 展 名。
对单片机的编程操作 ,通常也称为程序下载 ,是指以 特殊手段和软硬件工具对单片机进行写入操作。可用 高压并行编程、串行SPI编程和串行JTAG编程。

4. ATmega16的熔丝位
在 A VR 内 部 有 多 组 与 器 件 配 置 和 运 行 环 境 相 关 的 熔 丝 位 , 这 些 熔 丝 位 非 常 重 要 , 用 户 可 以 通 过 设 定 和 配 置 熔 丝 位 , 使 A VR 具 备 不 同 的 特 性 , 以 更 加 适 合 实 际 的 应 用 。

5. AVR单片机的工作状态
当 A VR芯片的VCC 与系统电源接通后,根 据 RESET引脚电平值的 不同 ,单片机将进入不同的状态:复位状态、常规工作状态和编程 状态。
(1) RESET引脚电平为高
1)正常程序执行工作方式
2)休眠节电工作方式

(2) RESET引脚电平为低
(满足一定的条件进入编程模式)
6. 支持ISP编程的最小系统设计

在这里插入图片描述