AVR 内核具有丰富的指令集和32 个通用工作寄存器。所有的寄存器都直接与算术逻辑单元(ALU) 相连接,使得一条指令可以在一个时钟周期内同时访问两个独立的寄存器。这种结构大大提高了代码效率,并且具有比普通的CISC 微控制器最高至10 倍的数据吞吐率。
ATmega48/88/168有如下特点: 4K/8K/16K字节的系统内可编程Flash(具有在编程过程中还可以读的能力,即RWW), 256/512/512 字节 EEPROM, 512/1K/1K 字节 SRAM,23 个通用I/O 口线, 32 个通用工作寄存器,三个具有比较模式的灵活的定时器/ 计数器(T/C), 片内/ 外中断,可编程串行USART,面向字节的两线串行接口,一个SPI 串行端口,一个 6 路10 位ADC (TQFP 与MLF 封装的器件具有8 路10 位ADC), 具有片内振荡器的可编程看门狗定时器,以及五种可以通过软件选择的省电模式。空闲模式时CPU 停止工作,而SRAM、T/C、USART、两线串行接口、SPI 端口以及中断系统继续工作;掉电模式时晶体振荡器停止振荡,所有功能除了中断和硬件复位之外都停止工作,寄存器的内容则一直保持;省电模式时异步定时器继续运行,以允许用户文持时间基准,器件的其他部分则处于睡眠状态; ADC 噪声抑制模式时CPU 和所有的I/O 模块停止运行,而异步
定时器和ADC 继续工作,以减少ADC 转换时的开关噪声; Standby 模式时振荡器工作而其他部分睡眠,使得器件只消耗极少的电流,同时具有快速启动能力。
ATmega48/88/168 是以Atmel 的高密度非易失性内存技术生产的。片内 ISP Flash 可以通过SPI 接口、通用编程器,或引导程序进行多次编程。引导程序可以使用任意接口将应用程序来下载到应用Flash 存储区。在更新应用Flash 存储区时引导程序区的代码继续运行,从而实现了FLASH 的RWW 操作。 通过将8 位RISC CPU 与系统内可编程的Flash集成在一个芯片内, ATmega48/88/168 为许多嵌入式控制应用提供了灵活而低成本的方案。
ATmega48/88/168 AVR 有整套的开发工具,包括C 编译器,宏汇编,程序调试器/ 仿真器和评估板。
2.2 ATmega48, ATmega88, 与ATmega168 的兼容性
ATmega48、 ATmega88 与ATmega168 只是在存储器大小、boot loader 支持及中断向量
长度上存在差别。表2-1给出了三种器件在存储器与中断向量长度方面的差别。
表2-1. 存储器大小简述
ATmega88 与ATmega168 支持真正的同时读写自编程操作。芯片具有独立的Boot
Loader 区,SPM指令只能在这个FLASH区里得到执行。而ATmega48不支持同时读写操作,它没有独立的Boot Loader 区, SPM 指令可以访问整个Flash 区。
3.AVR CPU 内核
3.1 概述
介绍本节从总体上讨论AVR 内核的结构。CPU 的主要任务是保证程序的正确执行。因此它必须能够访问存储器,执行运算,控制外设以及处理中断。
3.2 结构综述
Figure 3. AVR 结构的方框图
<< 上一页 [11] [12] [13] [14] [15] [16] [17] [18] [19] [20] ... 下一页 >>