1 / 49

第 1 章 认识 AVR 单片机

第 1 章 认识 AVR 单片机. 一. 二. 概 述. AVR 内核结构. 一、概述. 1 、 AVR 单片机主要特点. 8051 结构的单片机采用复杂指令系统 CISC(Complex Instruction Set Computer) 体系。

Download Presentation

第 1 章 认识 AVR 单片机

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 第1章 认识AVR单片机 一 二 概 述 AVR内核结构

  2. 一、概述 1、AVR单片机主要特点 8051结构的单片机采用复杂指令系统CISC(Complex Instruction Set Computer)体系。 由于CISC结构存在指令系统不等长,指令数多,CPU利用效率低,执行速度慢等缺陷,已不能满足和适应设计中高档电子产品和嵌入式系统应用的需要。ATMEL公司发挥其Flash存储器技术的特长,于1997年研发和推出了全新配置采用精简指令集RISC(Reduced Instruction Set CPU)结构的新型单片机,简称AVR单片机。

  3. 一、概述 1、AVR单片机主要特点 • RISC结构是为了提高CPU运行的速度而设计的芯片体系。它的关键技术在于采用流水线操作(Pipelining),和等长指令体系结构,使一条指令可以在一个单独操作中完成,从而实现在一个时钟周期里完成一条或多条指令。 • 精简指令总数 • 精简指令寻址方式 • 精简指令执行周期

  4. 一、概述 1、AVR单片机主要特点 ATMEL公司的AVR是8位单片机中第一个真正的RISC结构的单片机。它采用了大型快速存取寄存器组、快速的单周期指令系统以及单级流水线等先进技术,使得AVR单片机具有高达1MIPS/MHz的高速运行处理能力。 AVR采用流水线技术,在前一条指令执行的时候,就取出现行的指令,然后以一个周期执行指令。大大提高了CPU的运行速度。而在其它的CISC以及类似的RISC结构的单片机中,外部振荡器的时钟被分频降低到传统的内部指令执行周期,这种分频最大达12倍(8051)。

  5. 一、概述 1、AVR单片机主要特点 简言之: 8051:CISC,多周期,速度慢 AVR: RISC,单周期,流水线,速度快

  6. 一、概述 2、AVR单片机选型 表1:AVR型号分类

  7. 一、概述 2、AVR单片机选型 表2:ATmage内核选型

  8. 一、概述 2、AVR单片机选型 表2:ATmage内核选型

  9. 一、概述 2、AVR单片机选型 表2:ATmage内核选型

  10. 表2:中高档

  11. 表2:中高档

  12. 二、AVR内核结构 1、AVR CPU内核 (1)ATmage16 特点 1)采用先进RISC结构的AVR内核(哈弗结构) 131条机器指令,且大多数指令的执行时间为单个系统时钟周期; 32个8位通用工作寄存器; 工作在16MHz时具有16MIPS的性能。 配备只需要2个时钟周期的硬件乘法器 2)片内含有较大容量的非易失性的程序和数据存储器 16K字节在线可编程(ISP)Flash程序存储器采用Boot Load技术支持IAP功能;1K字节的片内SRAM数据存储器,可实现3级锁定的程序加密; 512个字节片内在线可编程EEPROM数据存储器(寿命>10万次);

  13. 二、AVR内核结构 1、AVR CPU内核 (1)ATmage16 特点 3)片内含JTAG接口 可通过JTAG口对片内的Flash、EEPROM、配置熔丝位和锁定加密位实施下载编程;

  14. 二、AVR内核结构 1、AVR CPU内核 (1)ATmage16 特点 4)集成丰富的外围资源 ●1个可编程的增强型全双工的,支持同步/异步通信的串行接口USART; ●1个可工作于主机/从机模式的SPI串行接口(支持ISP程序下载); ●片内模拟比较器; ●内含可编程的,具有独立片内振荡器的看门狗定时器WDT;

  15. 二、AVR内核结构 1、AVR CPU内核 (1)ATmage16 特点 4)集成丰富的外围资源 ●2个带有分别独立、可设置预分频器的8位定时器/计数器; ●1个带有可设置预分频器、具有比较、捕捉功能的16位定时器/计数器; ●片内含独立振荡器的实时时钟RTC; ●4路PWM通道; 8路10位ADC; ●面向字节的两线接口TWI(兼容I2C硬件接口);

  16. 二、AVR内核结构 1、AVR CPU内核 (1)ATmage16 特点 5)其他特点 ●片内含上电复位电路以及可编程的掉电检测复位电路BOD; ●片内含有1M/2M/4M/8M,经过标定的、可校正的RC振荡器,可作为系统时钟使用; ●多达21个各种类型的内外部中断源; ●有6种休眠模式支持省电方式工作;

  17. 二、AVR内核结构 1、AVR CPU内核 (1)ATmage16 特点 6)宽电压、低功耗 ●工作电压范围宽:ATmega16L 2.7—5.5v,ATmega16 4.5—5.5v; ●运行速度:ATmega16L 0—8M,ATmega16 0—16M; ●低功耗:ATmega16L工作在1MHz、3v、25度时的典型功耗为,正常工作模式 1.1mA,空闲工作模式 0.35mA,掉电工作模式 <1uA;

  18. 二、AVR内核结构 (2)ATmage16 内核结构 ATmage16 CPU包括: ● ALU运算逻辑单元、32个8位快速访问通用寄存器组(寄存器文件)、程序计数器PC、指令寄存器、指令译码器。 􀁺 ● 程序存储器Flash。 􀁺 ● 数据存储器RAM和EEPROM。 􀁺 ● 各种功能的外围接口、I/O,以及与它们相关的数据、控制、状态寄存器等。

  19. 二、AVR内核结构 (3)系统时钟 ATmega16的片内含有4种频率(1/2/4/8M)的RC振荡源,可直接作为系统的工作时钟使用。同时片内还设有一个由反向放大器所构成的OSC(Oscillator)振荡电路,外围引脚XTAL1和XTAL2分别为OSC振荡电路的输入端和输出端,用于外接石英晶体等,构成高精度的或其它标称频率的系统时钟系统。 ATmega16最高的工作频率为16M(16MIPS)。时钟频率越高,其耗电量也越大,也容易受到干扰(或干扰别人)。在具体设计时,应根据实际产品的需要,尽量采用较低的系统时钟频率,这样不仅能降低了功耗,同时也提高了系统的可靠性和稳定性。

  20. 二、AVR内核结构 (3)系统时钟 三种时钟源: 1)使用片内1/2/4/8MRC振荡源; 2)使用外部晶振。在XTAL1、XTAL2上外接晶体及电容 使用片内的OSC(Oscillator)振荡电路; 3)使用外部有源晶振。 方式2和方式3的电路连接见图 (a)和(b)。

  21. 二、AVR内核结构 (3)系统时钟 方式2是比较常用的方法,晶体可在0-16MHz之间选择,电容值在20pF-30pF之间(最好与所选用的晶体相匹配)。 当对系统时钟电路的精度要求不高的话,可以使用第1种方式——内部晶振,此时XTAL1和XTAL2引脚悬空。 第3种在AVR系统不常用。

  22. 二、AVR内核结构 (5)封装及引脚功能 DIP封装 TQFP封装

  23. 二、AVR内核结构 (5)封装及引脚功能 TQFP封装 DIP封装

  24. 二、AVR内核结构 (5)封装及引脚功能 1)电源及复位 VCC: 芯片供电(片内数字电路电源)输入引脚,使用时连接到电源正极。 AVCC:为端口A和片内ADC模拟电路电源输入引脚。不使用ADC时,直接连接到电源正极;使用ADC时,应通过一个低通电源滤波器与Vcc连接。 AREF:使用ADC时,可作为外部ADC参考源的输入引脚。 GND: 芯片接地引脚,使用时接地。 XTAL2:片内反相振荡放大器的输出端。 XTAL1:片内反相振荡放大器和内部时钟操作电路的输入端。

  25. 二、AVR内核结构 (5)封装及引脚功能 2)32条I/O口 分成PA、PB、PC和PD四组端口,每组8个,全部是可编程控制、多功能复用I/O引脚。 四组端口的第一功能是通用的双向数字输入/输出(I/O)口,每一位都可以由指令设置为独立的输入口,或输出口。 当I/O设置为输入时,引脚内部还配置有上拉电阻,可通过编程使上拉有效或无效。

  26. 二、AVR内核结构 (5)封装及引脚功能 2)32条I/O口 I/O口输出方式: 高电平能够输出20mA的电流; 而当其输出低电平时,可以吸收40mA的电流。 因此AVR的I/O口驱动能力非常强,能够直接驱动LED发光二极管、数码管等。 芯片Reset复位后,所有I/O口的缺省状态为输入方式,上拉电阻无效,即I/O为输入高阻的三态状态。

  27. 二、AVR内核结构 2 存储器地址 (1)数据存储器SRAM

  28. 二、AVR内核结构 (1)数据存储器SRAM 全部共1120个数据存储器地址为线性编址,前96个地址为寄存器组(32个8位通用寄存器),I/O寄存器(64个8位I/O寄存器),分配在SRAM数据地址空间的$0000~$001F,$0020~$005F。 5种寻址方式: Ю直接寻址; Ю带偏移量的间接寻址; Ю间接寻址; Ю带预减量的间接寻址; Ю带后增量的间接寻址。

  29. 二、AVR内核结构 (2)内部EEPROM存储器 AVR系列单片机还包括64B~4K字节的EEPROM数据存储器。它们被组织在一个独立的数据空间中。这个数据空间采用单字节读写方式。 EEPROM 的使用寿命至少为 10万次写/擦循环。ATmega16的EEPROM容量是512字节,地址范围为$0000~$01FF。 EEPROM数据存储器可用于存放一些需要掉电保护,而且比较固定的系统参数、表格等。

  30. 二、AVR内核结构 3、寄存器 (1)通用寄存器组 32个通用寄存器的,所有的通用寄存器操作指令均带有方向的,并能在单一时钟周期中访问。

  31. 二、AVR内核结构 3、寄存器 (1)通用寄存器组 每个通用寄存器还被分配在AVR的数据存储器空间中,他们直接映射到数据空间的前32个地址,因此也可以使用访问SRAM的指令对这些寄存器进行访问。

  32. 二、AVR内核结构 3、寄存器 (1)通用寄存器组 AVR寄存器组最后的6个寄存器R26~R31具有特殊的功能,这些寄存器每两个合并成一个16位的寄存器,作为对数据存储器空间(使用X、Y、Z)以及程序存储器空间(仅使用Z寄存器)间接寻址的地址指针寄存器。在不同指令的寻址模式下,利用地址寄存器可实现地址指针的偏移、自动增量和减量(参考不同的指令)等不同形式的间址寻址操作。

  33. 二、AVR内核结构 (2)I/O口寄存器

  34. 二、AVR内核结构 (2)I/O口寄存器

  35. 二、AVR内核结构 (2)I/O口寄存器

  36. 二、AVR内核结构 (2)I/O口寄存器

  37. 二、AVR内核结构 (2)I/O口寄存器 AVR系列单片机所有I/O口及外围接口的功能和配置均通过I/O寄存器的进行设置和使 CPU访问I/O寄存器。

  38. 二、AVR内核结构 (3)状态寄存器及堆栈指针 1)状态寄存器SREG SREG是一个8位标志寄存器,用来存放指令执行后的有关状态和结果的标志。可硬件或软件修改。 SREG的位反映了CPU运算、操作结果的状态。 SREG在I/O空间的地址为$3F($005F),其各标志位的意义如下:

  39. 二、AVR内核结构 (3)状态寄存器及堆栈指针 1)状态寄存器SREG ●位7—I: 全局中断使能位 中断总控制开关。置“1”时,打开总中断,清 “0”所有中断被禁止,CPU不响应任何的中断请求。 除了该标志位用于AVR中断的总控制,各中断源受其独立中断屏蔽寄存器(GIMSK、TIMSK)控制。 如果全局中断触发寄存器被清另(“0”),则全局中断被禁止,但单独的中断触发控制在GIMSK和TIMSK中的值保持不变。在中断发生后,I位由硬件清除,并由RETI(中断返回)指令置位,从而允许子序列的中断响应。

  40. 二、AVR内核结构 (3)状态寄存器及堆栈指针 1)状态寄存器SREG ●位6—T: 位复制存储 位复制指令BLD和BST使用T标志位作为源和目标。通用寄存器组中任何一个寄存器中的一位可以通过BST指令被复制到T中,而用BLD指令则可将T中的位值复制到通用寄存器组中的任何一个寄存器的一位中。 ●位5—H: 半进位标志位 ● 位4—S: 符号标志位。S = N⊕V 是负数标志位N和2的补码溢出标志位V两者异或值。在正常运算条件下(V=0,不溢出)S=N,即运算结果最高位作为符号是正确的。而当产生溢出时V=1,此时N失效,但S=N⊕V还是正确的。对于有符号数据而言,执行减法或比较操作后,S标志能正确指示两个数的大小。

  41. 二、AVR内核结构 1)状态寄存器SREG ●位3—V: 2补码溢出标志位 2的补码溢出标志位V,支持2的补码运算,为模2补码加、减运算溢出标志。溢出表示运算结果超过了正数(或负数)所能表示的范围。 加法溢出表现为正+正=负,或负+负=正; 减法溢出表现为正-负=负,或负-正=正。 溢出时,运算结果最高位(N)取反才是真正的结果符号。 ●位2—N: 负数标志位 负数标志位直接取自运算结果的最高位,N=1时表示运算结果为负,否则为正。但发生溢出时不能表示真实的结果

  42. 二、AVR内核结构 1)状态寄存器SREG ● 位1—Z: 零值标志位 零值标志位表明在CPU运算和逻辑操作之后,其结果是否为零,当Z=1表示结果为零。 ● 位0-C:进/借位标志 进位标志位表明在CPU的运算和逻辑操作过程中有无发生进/借位。

  43. 二、AVR内核结构 2)SP堆栈指针 堆栈是数据结构中所使用的专用名词,它是由一块连续的SRAM空间和一个堆栈指针寄存器组成,主要应用于快速便捷的保存临时数据、局部变量和中断调用或子程序调用的返回地址。 堆栈在系统程序的设计和运行中起者非常重要的作用,只要程序中使用了中断和子程序调用,就必须正确的设置堆栈指针寄存器SP,在SRAM空间建立堆栈区。 堆栈是一种特殊的线性数据结构,数据的进出在堆栈的顶部进行,并遵循后进先出(LIFO)的原则。 堆栈指针实际上就是堆栈顶部的地址,它随着堆栈中数据的进出而变化。堆栈指针寄存器SP中保存着堆栈指针,即堆栈顶部的地址。

  44. 二、AVR内核结构 2)SP堆栈指针 AVR的堆栈是向下增长的,即新数据进入堆栈时栈顶指针的数据将减小(注意:这里与51不同,51的堆栈是向上增长的,即进栈操作时栈顶指针的数据将增加),所以尽管原则上堆栈可以在SRAM的任何区域中,但通常初始化时将SP的指针设在SRAM最高处。 对于具体的ATmega16芯片,堆栈指针必须指向高于$0060的SRAM 地址空间,因为低于$0060的区域为寄存器空间。ATmega16片内集成有1K的SRAM,不支持外部扩展SRAM,所以堆栈指针寄存器SP的初始值应设在SRAM的最高端:$045F处。

  45. 二、AVR内核结构 2)编程 将“bin”(二进制)或“HEX”(16进制)格式的文件,烧入芯片。 完成如下操作:􀁺 ●对片内的Flash、EEPROM进行擦除、数据的写入(包括运行代码)、和数据的读出。 ●实现对AVR配置溶丝位的设置;芯片型号的读取;加密位的锁定等。 a.编程器编程(并口) 最传统的编程方式,速度快,需要占用芯片众多的引脚和12V的电压,所以必须采用专用的编程器单独对芯片操作。芯片必须从PCB板上取下来,不可以实现芯片在线(板)的编程操作,不适合系统调试以及产品的批量生产需要。

  46. 二、AVR内核结构 2)编程 b.ISP编程(串口) 占用比较少的外围引脚,所以可以实现芯片的在线编程(In System Programmable),不需要将芯片从PCB板上取下来,是最方便和最常用的编程方式。而采用SPI方式编程,只需要一跟简单的编程电缆,同时可以方便的实现I/O口的共用,因此是最常使用的方式。其不足之处是不能实现系统的在片实时仿真调试。 c.JTAG编程(串口,仿真) 使用JTAG方式编程的优点是,通过JTAG口还可以实现系统的在片实时仿真调试(On Chip Debug),缺点是需要占用AVR的4个I/O引脚。

  47. 二、AVR内核结构 2)编程 d.IAP编程(Boot Load) IAP(In Application Programmable)在运行编程方式。是采用了ATMEL称为自引导加载(Boot Load)技术实现。用在一些需要进行远程修改更新系统程序,或动态改变系统程序的应用中才采用。 ATmega16片内集成了16K字节的支持系统在线可编程(ISP)和在应用可编程(IAP)的Flash程序存储器,以及512个字节的EEPROM数据存储器。 另外还有一些专用的可编程单元-熔丝位,用于加密锁定和对芯片的配置等。 由于ATmega16片内含有SPI和JTAG口,使用3种编程的方式:高压并行编程、串行SPI编程、串行JTAG编程。

  48. 二、AVR内核结构 5、熔丝设置(勿轻易设置!!!) ATmega16单片机在售出时,片内的Flash 存储器和EEPROM 存储器阵列是处在擦除的状态(即内容 = $FF),且可被编程。同时其器件配置熔丝位的缺省值为使用内部1M的RC振荡源作为系统时钟!使用已编程(Prog- rammed)和未编程(Unprogrammed)定义加密位和熔丝位的状态。 “Unprogrammed”表示熔丝状态为“1”(禁止),“Programmed”表示熔丝状态为“0”(允许), 即 1:未编程 0:编程 在没把握前提下不要轻易设置熔丝位,否则会导致芯片报废!建议使用专用软件“集成”烧写熔丝位。 具体参考相关手册。

  49. 二、AVR内核结构 6、最小系统

More Related