第2章 AVR体系结构_第1页
第2章 AVR体系结构_第2页
第2章 AVR体系结构_第3页
第2章 AVR体系结构_第4页
第2章 AVR体系结构_第5页
已阅读5页,还剩67页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、西南(xnn)大学电子信息工程学院1第二章 AVR单片机的基本(jbn)结构共七十二页2共七十二页3单片机的基本(jbn)体系结构内部中断内部总汇振荡器和时序电路操作管理寄存器程序存储器数据存储器定时器计数器CPU中断控制总 线 扩展控制器并行I/O接口串行I/O接口图2-1 典型单片机的基本组成结构外部时钟元 外部时间计数共七十二页4单片机基本(jbn)单元与作用 MCU (CPU、时钟系统、复位、总线控制(kngzh)逻辑等电路 )SRAM程序存储器IO口操作管理寄存器 共七十二页MCUMCU单元部分包括(boku)了CPU、时钟系统、复位、总线控制逻辑等电路。CPU是按照面向测控对象、嵌

2、入式应用的要求设计的,其功能有进行算术、逻辑、比较等运算和操作,并将结果和状态信息与存储器以及状态寄存器进行交换(读/写)。时钟和复位电路实现上电复位、信号控制复位,产生片内各种时钟及功耗管理等。总线控制电路则产生各类控制逻辑信号,满足MCU对内部和外部总线的控制。其中,内部总线用以实现片内各单元电路的协调操作和数据传输,而外部总线控制用于单片机外围扩展的操作管理。5共七十二页片内存储器(ni cn ch q)单片机的存储器一般分成程序存储器和数据存储器,它们往往构成相互独立的两个存储空间,分别寻址,互不干扰。在这一点上,与通用计算机系统的结构是不同的。通用计算机系统通常采用(ciyng)“V

3、on-Neumann”结构,在这种结构体系中采用了单一的数据总线用于指令和数据的存取,因此数据和指令是存放在同一个存储空间中的,CPU使用同一条数据总线与数据和程序进行交换。而单片机的内部结构通常使用“Harvard”体系结构,在这种体系中采用分开的指令和数据总线,以及分开的指令和数据地址空间。单片机采用Harvard双(多)总线结构的优点是,指令和数据空间完全分开,分别通过专用的总线同CPU交换,可以实现对程序和数据的同时访问,提高了CPU的执行速度和数据的吞吐率。6共七十二页程序(chngx)存储器程序存储器用于存放嵌入式系统的应用程序。由于单片机嵌入式系统的应用程序在开发调试(dio s

4、h)完成后不需要经常改变,因此单片机的程序存储器多采用只读型ROM存储器,用于永久性的存储系统的应用程序。为适应不同产品、用户和不同场合的需要。7共七十二页程序(chngx)存储器ROMLessEPROMMaskROMOTPROMFLASH ROM8共七十二页数据(shj)存储器随机存储器用来存储系统程序在运行期间(qjin)的工作变量和临时数据的电可擦除存储器这类数据存储器用于存放一些永久或比较固定的系统参数,如放大倍率、电话号码、时间常数等。EEPROM的寿命大于10万次,具有掉电后不丢失数据的特点,并且通过系统程序可以随时修改,这些特性都给用户设计开发产品带来极大的方便和想象空间。9共七

5、十二页输入(shr)/输出(I/O)端口并行总线输入/输出端口(并型I/O口)通用数字I/O端口。片内功能单元的输入/输出端口。串行I/O通信口其它专用(zhunyng)接口10共七十二页操作(cozu)管理寄存器操作管理寄存器也是单片机芯片中的重要组成部分之一。它的功能(gngnng)是管理、协调、控制和操作单片机芯片中的各功能(gngnng)单元的使用和运行。这类寄存器的种类有:状态寄存器、控制寄存器、方式寄存器、数据寄存器等等。11共七十二页12AVR单片机内核共七十二页AVR ATmega16 特点(tdin)先进RISC结构的AVR内核片内含有较大(jio d)容量的非易失性的程序和

6、数据存储器片内含JTAG接口外围接口其他特点宽电压、高速度、低功耗13共七十二页14AVR ATmega16 特点(tdin)先进RISC结构的AVR内核131条机器指令,且大多数指令的执行时间为单个系统时钟周期;32个8位通用工作寄存器;工作在16MHz时具有(jyu)16MIPS的性能。配备只需要2个时钟周期的硬件乘法器共七十二页15AVR ATmega16 特点(tdin)片内含有较大容量的非易失性的程序和数据存储器16K字节(z ji)在线可编程(ISP)Flash程序存储器(擦除次数1万次),采用Boot Load技术支持IAP功能;1K字节的片内SRAM数据存储器,可实现3级锁定的

7、程序加密;512个字节片内在线可编程EEPROM数据存储器(寿命10万次);共七十二页16AVR ATmega16 特点(tdin)片内含JTAG接口支持符合JTAG标准的边界扫描功能(gngnng)用于芯片检测;支持扩展的片内在线调试功能可通过JTAG口对片内的Flash、EEPROM、配置熔丝位和锁定加密位实施下载编程;共七十二页17AVR ATmega16 特点(tdin)外围接口2个带有分别独立、可设置预分频器的8位定时器/计数器;1个带有可设置预分频器、具有比较、捕捉功能的16位定时器/计数器;片内含独立振荡器的实时时钟RTC;4路PWM通道;8路10位ADC面向字节的两线接口TWI

8、(兼容I2C硬件接口);1个可编程的增强型全双工的,支持同步/异步通信的串行接口USART;1个可工作于主机/从机模式的SPI串行接口(支持ISP程序(chngx)下载);片内模拟比较器;内含可编程的,具有独立片内振荡器的看门狗定时器WDT;共七十二页18AVR ATmega16 特点(tdin)其它的特点片内含(ni hn)上电复位电路以及可编程的掉电检测复位电路BOD;片内含有1M/2M/4M/8M,经过标定的、可校正的RC振荡器,可作为系统时钟使用;多达21个各种类型的内外部中断源;有6种休眠模式支持省电方式工作;共七十二页19AVR ATmega16 特点(tdin)宽电压、高速度、低

9、功耗工作电压范围宽:ATmega16L 2.75.5v,ATmega16 4.55.5v;运行速度:ATmega16L 08M,ATmega16 016M;低功耗:ATmega16L工作在1MHz、3v、25度时的典型功耗为,正常(zhngchng)工作模式 1.1mA,空闲工作模式 0.35mA,掉电工作模式 1uA; 共七十二页20AVR ATmega16 特点(tdin)芯片(xn pin)封装形式有40引脚的PDIP、44引脚的TQFP和44引脚的MLF封装。共七十二页21AVR ATmega16 引脚与封装共七十二页AVR实验(shyn)箱22共七十二页I/O引脚32根I/O引脚,分

10、成PA、PB、PC和PD四个8位端口,他们全部是可编程控制的,双(多)功能复用的I/O引脚(口)四个端口的第一功能是通用的双向数字输入/输出(I/O)口,其中每一位都可以由指令设置为独立的输入口,或输出口。当I/O设置为输入时,引脚内部还配置有上拉电阻,这个(zh ge)内部的上拉电阻可通过编程设置为上拉有效或上拉无效。23共七十二页I/O说明(shumng)24共七十二页25AVR Mega16 结构共七十二页26AVR 中央处理器CPU 运算逻辑(lu j)单元ALU程序计数器PC指令寄存器指令译码器 通用工作寄存器组共七十二页27运算(yn sun)逻辑单元ALU运算逻辑单元ALU的功能

11、是进行算术运算和逻辑运算,可对半字节(4位)、单字节等数据进行操作。如能完成加、减、自动加1、自动减1、比较等算术运算和与、或、异或、求补、循环移位等逻辑操作。操作结果的状态,如产生(chnshng)进位、结果为零等状态信息将影响到状态寄存器SREG相应的标志位。运算逻辑单元ALU还包含一个布尔处理器,用来处理位操作。它可执行置位、清零、取反等操作。ATmega16的ALU还能实现无符号数、有符号数以及浮点数的硬件乘法操作。一次硬件乘法操作的时间为2个时钟周期。共七十二页28程序(chngx)计数器PC指令寄存器指令译码器程序计数器PC用来存放下一条需要执行指令在程序存储器空间的地址(指向Fl

12、ash空间)。取出的指令存放在指令寄存器中,然后送入指令译码器产生各种控制信号,控制CPU的运行(执行指令)AVR一条指令的长度大多数为16位,还有少部分为32位,因此AVR的程序存储器结构实际上是以字(16位)为一个存储单元的。ATmega16的程序计数器为13位,正好满足了对片内8K字(即手册上的16K字节)的Flash程序存储器空间直接寻址的需要,因此也不能(不支持)在外部扩展程序存储器。AVRCPU在译码执行一条指令的同时,就将PC中指定的Flash单元(dnyun)中的指令取出,放入指令寄存器中(图中的InstructionRegister),构成了一级流水线运行方式。AVR采用一级

13、流水线技术,在当前指令执行的时候,就取出下一条将要执行的指令,加上大多数AVR指令的长度是一个字,就使得AVRCPU实现了一个时钟周期执行一条指令。采用这种结构,减少了取指令的次数,大大提高了CPU的运行速度,同时也提高了取指令操作的(系统的)可靠性。而在其它的CISC以及类似的RISC结构的单片机中,外部振荡器的时钟被分频降低到传统的内部指令执行周期,这种分频最大达12倍(例如,标准8031结构的单片机)。共七十二页29通用(tngyng)工作寄存器组32个8位通用(tngyng)工作寄存器组:R0R31共七十二页通用(tngyng)工作寄存器组AVRCPU中的ALU与这32个通用工作寄存器

14、组直接相连,为了使ALU能够高效和灵活地对寄存器组进行访问操作,通用寄存器组提供和支持ALU使用4种不同(b tn)的数据输入/输出的操作方式:提供一个8位源操作数,并保存的一个8位结果提供两个8位源操作数,并保存的一个8位结果提供两个8位源操作数,并保存的一个16位结果提供一个16位源操作数,并保存的一个16位结果30共七十二页31系统时钟(shzhng)部件 系统时钟片内的1/2/4/8M 的RC振荡源在引脚XTAL1 和XTAL2 上外接由石英晶体(jngt)直接使用外部的时钟源输出的脉冲信号 内部看门狗时钟 共七十二页32共七十二页33系统(xtng)时钟外部(wib)晶振 外部(wi

15、b)RC 外部时钟共七十二页CPU的工作(gngzu)时序AVRCPU的工作是由系统时钟直接驱动的,在片内不再进行分频(fn pn)。图2-7所示为Harvard结构和快速访问寄存器组的并行指令存取和指令执行时序。CPU在启动后第一个时钟周期T1取出第一条指令,在T2周期便执行取出的指令,并同时又取出第二条指令,依次进行。这种基于流水线形式的取指方式,使AVR可以以非常高的速度执行指令,获得高达1MIPSMHz的效率。34共七十二页CPU的工作(gngzu)时序35共七十二页CPU的工作(gngzu)时序36共七十二页CPU的工作(gngzu)时序37共七十二页存储器AVR单片机在片内集成了F

16、lash程序存储器、SRAM数据存储器和EEPROM数据存储器。三个存储器空间互相独立(dl),物理结构也不同。程序存储器为闪存存储器Flash,以16位(字)为一个存储单元,作为数据读取时,以字节为单位,而擦除、写入则是以页为单位的(不同型号AVR单片机一页的大小也不同)。SRAM数据存储器是以8位(字节)为一个存储单元,编址方式采用与工作寄存器组、I/O寄存器和SRAM统一寻址的方式。EEPROM数据存储器也是以8位(字节)为一个存储单元,对其的读写操作都以字节为单位。38共七十二页I/O端口ATmega16有四个8位的双向I/O端口PA、PB、PC、PD,它们对外对应(duyng)32个

17、I/O引脚,每一位都可以独立地用于逻辑信号的输入和输出。在5伏工作电压下,输出时每个引脚可供出达20mA的驱动电流。而输入时,每个引脚可吸纳最大为40mA的电流,可直接驱动发光二极管LED(一般LED的驱动电流为10mA左右)和小型继电器。AVR大部分的I/O端口都具备双重功能,分别同片内的各种不同功能的外围接口电路组合成一些可以完成特殊功能的I/O口,如定时器、计数器、串行接口、模拟比较器、捕捉器等。39共七十二页402.4存储器结构(jigu)和地址空间Flash 程序(chngx)存储器SRAM 数据存储器EEPROM 数据存储器 共七十二页41Flash 程序(chngx)存储器AVR

18、单片机包括1K128K字节的片内可下载Flash程序存储器。由于AVR所有指令为16位字或32位双字,故Flash程序存储器的结构为(512B64Kb)x16位。Flash存储器的使用寿命最少为1万次写/擦循环。Atmega16单片机的程序存储器为8Kx16(16Kx8),程序计数器PC宽为13位,以此来对8K字程序存储器地址进行(jnxng)寻址。程序存储器的地址空间与数据存储器的地址空间是分开的,地址空间从$000开始。如要在程序存储器中使用常量表,则常量表可以被设定在整个Flash地址空间中。共七十二页SRAM42程序存储器空间数据存储器空间EEPROM 数据存储器空间Flash 程序存

19、储器(8Kx16或16Kx8)EEPROM数据存储器(512x8)32 个通用寄存器64 个I/O寄存器内部SRAM数据存储器(1024x8)$0000$1FFF$0000$001F$0020$005F$0060$0060$01FF$0000图2-10 ATmeag16 存储器结构共七十二页EEPROM 数据(shj)存储器 AVR系列单片机还包括(boku)64B4K字节的EEPROM数据存储器。它们被组织在一个独立的数据空间中。这个数据空间采用单字节读写方式。EEPROM的使用寿命至少为10万次写/擦循环。ATmega16的EEPROM容量是512字节,地址范围为$0000$01FF。EE

20、PROM数据存储器可用于存放一些需要掉电保护,而且比较固定的系统参数、表格等。43共七十二页2.5通用寄存器组与I/O寄存器通用寄存器组I/O寄存器44共七十二页通用寄存器45共七十二页46通用寄存器32个通用寄存器 R0R31对应(duyng)SRAM地址$0000$001F地址指针寄存器X、Y、ZXR27 R26YR29 R28ZR30 R31共七十二页通用寄存器47共七十二页48I/O寄存器64个I/O寄存器I/O寄存器地址(dzh)$00$3FSRAM映射地址$00+$20$3F+$20 ($20) ($5F)指令:专用指令、SRAM通用指令共七十二页49寄存器状态(zhungti)寄

21、存器SREG 位7I: 全局中断使能位 位6T: 位复制(fzh)存储位5H: 半进位标志位 位4S: 符号标志位 位3V: 2 补码溢出标志位 位2N: 负数标志位1Z: 零值标志位 位0C:进/借位标志共七十二页50寄存器堆栈(duzhn)指针寄存器SP 16位SPSPH SPLSP上电初始值 0000SP指向SRAM空间、堆栈放在SRAM中堆栈向下生长汇编程序一定(ydng)要初始化SP操作方式:手动进出栈、自动进出栈共七十二页51AVR单片机最小系统(xtng)共七十二页AVR单片机最小系统(xtng)52共七十二页53AVR工作(gngzu)方式复位方式(fngsh)正常程序执行工作

22、方式休眠节电工作方式程序运行代码下载的编程方式 共七十二页单片机复位(f wi)AVR单片机的复位操作,其主要功能是把程序计数器PC初始化为$0000(指非BOOTLOAD方式启动),使单片机从$0000单元开始(kish)执行程序。同时决大部分的寄存器(通用寄存器和I/O寄存器)也被复位操作清零,有关各个寄存器的复位初始化值请注意书中对各寄存器的详细说明54共七十二页复位(f wi)方式上电复位(f wi)看门狗复位BOD复位(掉电检测复位)外部复位JTAG复位55共七十二页56AVR工作(gngzu)方式复位方式共七十二页上电复位(f wi)57共七十二页上电复位(f wi)58共七十二页

23、外部(wib)复位59共七十二页掉电检测(jin c)(BOD)复位60共七十二页看门狗复位(f wi)ATmega16片内还集成一个独立的看门狗定时器WDT。WDT由片内独立的1M振荡器提供时钟信号,并且可用专用的熔丝位或由用户通过指令控制WDT的启动和关闭,以及设置(shzh)和清另计数值。当WDT启动计数后,一旦发生计数溢出,它将触发产生一个时钟周期宽度的复位脉冲。脉冲的上生沿将使器件进入复位状态,脉冲的下降沿启动延时计数器计数,经过设定的启动延时时间,CPU重新开始运行(图2-19)。使用WDT功能,可以防止系统受到干扰而引起的程序运行紊乱和跑飞,提高了系统的可靠性。61共七十二页系统

24、(xtng)时钟62共七十二页看门狗复位(f wi)63共七十二页64共七十二页正常程序执行工作(gngzu)方式正常程序(chngx)执行工作方式是单片机的基本工作方式。由于硬件的复位操作将程序(chngx)计数器置为另(PC=$0000),因此程序的执行总是从Flash地址的$0000开始的(指非BOOTLOAD方式启动)。对于ATmega16来讲,Flash地址的$0002到$0028是中断向量区(祥见第六章),所以真正实际要开始运行的程序代码一般放在从$002A以后的程序地址空间中。标准的做法是在Flash的$0000单元中放置一条转移指令JMP或RJMP,使得CPU在复位重新启动后,首先执行该转移指令,跳过中断向量区,转到执行实际程序的开始处。65共七十二页66正常程序执行工作(gngzu)方式PC=$0000程序从FLASH的$0000处开始(kish)执行FLASH低端地址是中断向量地址跳过中断向量地址区Flash空间地址 指 令 字 说 明$0000 jmp RESET ;复位中断向量 ;向量区 程序代码区$0

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论