1ATmega128单片机概述、系统结构夏洁2009年3月导航、制导与控制2/78内容一、ATmega128单片机概述系统结构1、AVR单片机简介(主要特性、选型)2、ATmega128单片机二、ATmega128单片机系统结构导航、制导与控制3/781、AVR单片机简介ATMEL公司介绍是世界上著名的高性能、低功耗、非易失性存储器和数字集成电路的一流半导体制造公司。1997年,ATMEL公司出于市场需求,推出了全新配置的精简指令集RISC单片机高速8位单片机,简称为AVR。广泛应用于计算机外设、工业实时控制,仪器仪表、通信设备、家用电器等各个领域。导航、制导与控制4/781.1AVR单片机主要特性衡量单片机性能的重要指标高可靠性、功能强、高速度、低功耗、低价位1)AVR单片机废除机器周期,采用RISC,以字为指令长度单位,取指周期短,可预取指令,实现流水作业,可高速执行指令。有高可靠性为后盾。2)AVR单片机在软/硬件开销、速度、性能和成本多方面取得优化平衡,是高性价比的单片机。3)内嵌高质量的Flash程序存储器,擦写方便,支持ISP和IAP,便于产品的调试、开发、生产、更新。导航、制导与控制5/781.1AVR单片机主要特性4)I/O端口资源灵活、功能强大5)单片机内具备多种独立的时钟分频器6)高波特率的可靠通信7)包括多种电路,可增强嵌入式系统的可靠性电路:自动上电复位、看门狗、掉电检测,多个复位源等8)具有多种省电休眠模式、宽电压运行(2.7~5V),抗干扰能力强,可降低一般8位机中的软件抗干扰设计的工作量和硬件的使用量。9)集成多种器件和多种功能,充分体现了单片机技术向片上系统SOC的发展方向过渡。导航、制导与控制6/781.2AVR系列单片机的选型AVR单片机有3个档次:低档Tiny系列单片机,20脚Tiny11/12/13/15/26/28AT89C1051,AT89C1052中档(标准)AT90S系列单片机,40脚AT90S1200/2313/8515/8535AT89C51高档ATmega系列单片机64脚ATmega8/16/32/64/128存储容量为8/16/32/64/128KBATmega8515/8535导航、制导与控制7/78内容1、AVR单片机简介AVR单片机主要特性AVR系列单片机的选型2、ATmega128单片机简介ATmega128单片机概述ATmega128单片机引脚功能导航、制导与控制8/782.1ATmega128单片机概述基于AVR低功耗CMOS8位微控制器,近1MIPS/MHz。6种省电模式:空闲模式Idle:CPU停止工作,其他子系统继续工作;ADC噪声抑制模式:CPU和所有的I/O模块停止运行,而异步定时器和ADC继续工作;省电模式Power-save:异步定时器继续运行,器件的其他部分则处于睡眠状态;掉电模式Power-down:除了中断和硬件复位之外都停止工作Standby模式:振荡器工作而其他部分睡眠;扩展Standby模式:允许振荡器和异步定时器继续工作。导航、制导与控制9/78端口F驱动端口A驱动端口C驱动端口E驱动端口B驱动端口D驱动端口G驱动编程计数器指令译码器指令寄存器编程FlashJTAG接口在线调试边界扫描编程逻辑通用寄存器堆栈指针端口F数据寄存器端口F方向数据寄存器端口A数据寄存器端口C数据寄存器端口E数据寄存器端口B数据寄存器端口D数据寄存器端口G数据寄存器端口A方向数据寄存器端口C方向数据寄存器端口G方向数据寄存器端口D方向数据寄存器端口B方向数据寄存器端口E方向数据寄存器状态寄存器模拟比较器两线接口内部晶振晶振晶振时序控制中断单元控制线ATmega128单片机结构框图导航、制导与控制10/78ATmega128产品特点1)RICS结构指令条数133条指令–大多数可以在一个时钟周期内完成存储器32x8位通用工作寄存器+外设控制寄存器工作频率工作于16MHz时性能高达16MIPS片内乘法器2个只需两个时钟周期的硬件乘法器2)非易失存储器片上Flash128KBytes,104次擦写EEPROM4KBytes,105次擦写内部SRAM4K可选外部存储器64K可编程安全锁、片内可编程SPI接口3)JITAG接口边界扫描特性,扩展芯片调试支持,通过其进行可编程Flash、EEPROM导航、制导与控制11/78ATmega128产品特点4)外设特性定时器/计数器(2个8位)扩展定时器/计数器(2个16位)实时时钟计数器(1个)PWM通道2个8位,6个(分辨率)可编程2~16位输出比较调制器8通道10位ADC:8个单端通道、7个差分通道、2个可调增益的差分通道面向字节的双线接口可编程的连续串口UART2个主/从SPI串口、可编程看门狗、片内模拟比较器导航、制导与控制12/78ATmega128产品特点5)特殊微控制器特性复位、中断源、省电模式等6)I/O和封装53个可编程I/O口线64引脚TQFP与64引脚MLF封装7)工作电压2.7~5.5V(ATmega128L)4.5~5.5V(ATmega128)8)速度级别0~8MHZ(ATmega128L)0~16MHZ(ATmega128)导航、制导与控制13/782.2ATmega128单片机引脚功能导航、制导与控制14/78端口F驱动端口A驱动端口C驱动端口E驱动端口B驱动端口D驱动端口G驱动编程计数器指令译码器指令寄存器编程FlashJTAG接口在线调试边界扫描编程逻辑通用寄存器堆栈指针端口F数据寄存器端口F方向数据寄存器端口A数据寄存器端口C数据寄存器端口E数据寄存器端口B数据寄存器端口D数据寄存器端口G数据寄存器端口A方向数据寄存器端口C方向数据寄存器端口G方向数据寄存器端口D方向数据寄存器端口B方向数据寄存器端口E方向数据寄存器状态寄存器模拟比较器两线接口内部晶振晶振晶振时序控制中断单元控制线ATmega128单片机结构框图导航、制导与控制15/78各引脚说明1:1)VCC:数字电路的电源2)GND:地3)RESET:复位输入引脚4)XTAL1:反向振荡放大器及片内时钟操作电路的输入5)XTAL2:反向振荡放大器的输出6)AVCC:AVCC为端口F及ADC的电源7)AREF:为ADC的模拟基准输入引脚8)PEN:为SPI串行下载的使能引脚导航、制导与控制16/789)端口A(PA7~PA0):为8位双向I/O端口,并具有可编程的内部上拉电阻。输出缓冲器具有对称的驱动特性,可以输出和吸收大电流。作为输入使用时,若内部上拉电阻使能,则端口被外部电路拉低时将输出电流。复位发生时该端口为三态。10)端口B(PB7~PB0)、C(PC7~PC0)、D(PD7~PD0)、E(PE7~PE0):与端口A具有相同的I/O性能。导航、制导与控制17/7811)端口F(PF7~PF0):为ADC的模拟输入引脚或作为8位双向I/O端口,并具有可编程的内部上拉电阻。输出缓冲器具有对称的驱动特性,可以输出和吸收大电流。作为输入使用时,若内部上拉电阻使能,则端口被外部电路拉低时将输出电流。复位发生时该端口为三态。可以作为JTAG接口导航、制导与控制18/7812)端口G(PG4~PG0):为5位双向I/O端口,并具有可编程的内部上拉电阻。输出缓冲器具有对称的驱动特性,可以输出和吸收大电流。作为输入使用时,若内部上拉电阻使能,则端口被外部电路拉低时将输出电流。复位发生时该端口为三态。13)端口A、B、C、D、E、F、G:都可以作为第二功能引脚使用。19二、ATmega128单片机的系统结构导航、制导与控制20/78ATmega128单片机的系统结构主要内容1、ATmega128的CPU内核2、ATmega128存储器3、系统时钟及其选项4、系统控制和复位5、ATmega128的中断向量6、I/O端口7、定时器/计数器(T/C)8、模数转换器A/D导航、制导与控制21/781、ATmega128的CPU内核1.1AVRCPU内核的结构1.2状态寄存器1.3通用寄存器结构1.4X、Y、Z寄存器1.5堆栈指针1.6复位和中断处理导航、制导与控制22/781.1AVRCPU内核的结构图AVR采用了Harvard结构,具有独立的数据和程序总线。程序存储器的指令通过一级流水线运行。导航、制导与控制23/781.2状态寄存器AVR中断寄存器–SREGBit7–I:全局中断使能Bit6–T:位拷贝存储Bit5–H:半进位标志,表示算术操作发生了半进位Bit4–S:符号位,S=N⊕V,S为负数标志N与2的补码溢出标志V的异或Bit3–V:2的补码溢出标志,支持2的补码运算。Bit2–N:负数标志Bit1–Z:零标志Bit0–C:进位标志导航、制导与控制24/781.3通用寄存器结构AVRCPU32个通用工作寄存器的结构图每个寄存器都有一个数据内存地址,将他们直接映射到用户数据空间的头32个地址。虽然寄存器文件的物理实现不是SRAM,这种内存组织方式在访问寄存器方面具有极大的灵活,因为X、Y、Z寄存器可以设置为指向任意寄存器的指针。导航、制导与控制25/781.4X、Y、Z寄存器除了用作通用寄存器外,还可以作为数据间接寻址用的地址指针。在不同的寻址模式中,这些地址寄存器可以实现固定偏移量,自动加一和自动减一功能。导航、制导与控制26/781.5堆栈指针堆栈指针主要用来保存临时数据,局部变量和中断/自程序的返回地址。堆栈指针总是指向堆栈的顶部。要注意AVR的堆栈是向下生长的,即新数据推入堆栈时,堆栈指针的数值将减小。堆栈指针指向位于SRAM的函数及中断堆栈。堆栈空间必须在调用函数或中断使能之前定义。指针必须指向高于$60的地址。用PUSH指令推数据入栈时,堆栈指针将减一;当调用函数或中断时,指针将减二。使用POP指令时,堆栈指针将加一;而用RET或RETI返回时,指针将加二。导航、制导与控制27/781.6复位和中断处理1.6.1ATmega128的中断处理两种类型的中断:事件触发并置位中断标志。只要中断条件满足,就会一直触发。AVR退出中断后总是回到主程序并执行一条指令才可以去执行其他被挂起的中断。程序存储器空间的最低地址缺省定义为复位和中断向量。中断向量所在的地址越低,优先级越高。1.6.2ATmega128的中断响应时间AVR中断响应时间最少为4个时钟周期。若中断发生时MCU处于睡眠模式,中断响应时间增加到8个时钟周期。中断返回亦需4个时钟。导航、制导与控制28/78内容1、ATmega128的CPU内核2、ATmega128存储器3、系统时钟及其选项4、系统控制和复位5、ATmega128的中断向量6、I/O端口7、定时器/计数器(T/C)8、模数转换器A/D导航、制导与控制29/782、ATmega128存储器2.1系统内可编程的Flash程序存储器2.2SRAM数据存储器2.3EEPROM数据存储器2.4I/O存储器2.5外部存储器接口导航、制导与控制30/782、ATmega128存储器AVR结构具有三个线性存储空间:程序寄存器数据寄存器EEPROM存储器2.1系统内可编程的Flash程序存储器ATmega128具有128K字节的在线编程Flash。因为所有的AVR指令为16位或32位,故FLASH组织成64Kx16的形式。Flash程序存储器分为:(软件安全性)引导程序区应用程序区主存储器空间导航、制导与控制31/782.2SRAM数据存储器ATmega128还可以访问直到64K的外部数据SRAM。其起始紧跟在内部SRAM之后。数据寻址模式分为5种:直接寻址,带偏移量的间接寻址,间接寻址,预减的间接寻址,以及后加的间接寻址。1)直接寻址访问整个数据空间。2)带偏移量的间接寻址模式寻址到Y、Z指针给定地址附近的63个地址。3)带预