历史上的今天
今天是:2024年12月13日(星期五)
2021年12月13日 | ATmega168 内核介绍
2021-12-13 来源:eefocus
本节从总体上讨论ATmega168 AVR 内核的结构。CPU 的主要任务是保证程序的正确执行。因此它必须能够访问存储器、执行运算、控制外设以及处理中断。

(点击图片放大)
结构综述Figure 3. AVR 结构的方框图
为了获得最高的性能以及并行性, AVR 采用了Harvard 结构,具有独立的数据和程序总线。程序存储器里的指令通过一级流水线运行。CPU 在执行一条指令的同时读取下一条指令( 在本文称为预取)。这个概念实现了指令的单时钟周期运行。程序存储器是可以在线编程的FLASH。
快速访问寄存器文件包括32 个8 位通用工作寄存器,访问时间为一个时钟周期。从而实现了单时钟周期的ALU 操作。在典型的ALU 操作中,两个位于寄存器文件中的操作数同时被访问,然后执行运算,结果再被送回到寄存器文件。整个过程仅需一个时钟周期。
寄存器文件里有6 个寄存器可以用作3 个 16位的间接寻址寄存器指针以寻址数据空间,实现高效的地址运算。其中一个指针还可以作为程序存储器查询表的地址指针。这些附加的功能寄存器即为16 位的X、Y、Z 寄存器。
ALU支持寄存器之间以及寄存器和常数之间的算术和逻辑运算。ALU也可以执行单寄存器操作。运算完成之后状态寄存器的内容得到更新以反映操作结果。
程序流程通过有/ 无条件的跳转指令和调用指令来控制,从而直接寻址整个地址空间。大多数指令长度为16 位,亦即每个程序存储器地址都包含一条16 位或32 位的指令。
程序存储器空间分为两个区:引导程序区(Boot 区) 和应用程序区。这两个区都有专门的锁定位以实现读和读/ 写保护。用于写应用程序区的SPM 指令必须位于引导程序区。
在中断和调用子程序时返回地址的程序计数器(PC) 保存于堆栈之中。堆栈位于通用数据SRAM,因此其深度仅受限于SRAM 的大小。在复位例程里用户首先要初始化堆栈指针SP。这个指针位于I/O 空间,可以进行读写访问。数据SRAM 可以通过5 种不同的寻址模
式进行访问。
AVR 存储器空间为线性的平面结构。
AVR具有一个灵活的中断模块。控制寄存器位于I/O空间。状态寄存器里有全局中断使能位。每个中断在中断向量表里都有独立的中断向量。各个中断的优先级与其在中断向量表的位置有关,中断向量地址越低,优先级越高。
I/O I/O 存储器 64 个可以直接寻址的地址,作为 CPU 外设的控制寄存器、SPI,以及其他 I/O 功能。映射到数据 0x20 - 0x5F。此外,ATmega168 还有位于SRAM地址0x60 - 0xFF的扩展I/O空间,这些地址只能使用ST/STS/STD 和 LD/LDS/LDD 指令来访问。
上一篇:ATmega168 ALU
下一篇:ATmega168 引脚功能
史海拾趣
|
HT46R47高性能8位OTP单片机 HT46R47为台湾合泰HOLTEK公司产品,一个带4路9bitA/D转换器的高性能8位单片机,仅63条精简指令,所有指令均为单周期,片内含64x8数据存储器(RAM),2k字节OTP只读程序存储器,13个双向I/O口线,6层硬件 ...… 查看全部问答> |
|
为某供销公司营销计算机系统进行硬件结构设计 背景资料: 某大型供销公司决定建设计算机供销管理系统,在完成了系统分析工作之后确定了整个系统由物资供应子系统、产品销售子系统及服务于公司领导的综合查询三个子系统构成。 该系统涉及的主要办 ...… 查看全部问答> |
|
我用三片CD4094来驱动15段数码管,一片用作数码管的位选,另两片级联起来显示数据,我想问一下,我的显示码是先发送低位还是高位,也就是怎样发送才能让串行数据和4094转换后的并行数据对应起来!… 查看全部问答> |
|
BOOL CCESeries::OpenPort(CWnd* pPortOwner,/*使用串口类,窗体句柄*/ UINT portNo,/*串口号*/   ...… 查看全部问答> |
|
最近刚按别人提供的原理图做了一块2812的板子,板上有外扩RAM,flash和ADS8361等 画图、pcb制板和焊接都是自己亲手做的,由于全是第一次动手做,很费事,也走了很多冤枉路。 前两天刚好全部焊接好,很激动的通上电调试 ...… 查看全部问答> |
|
1、太阳能光伏系统的组成和原理 太阳能光伏系统由以下三部分组成:太阳电池组件;充、放电控制器、逆变器、测试仪表和计算机监控等电力电子设备和蓄电池或其它蓄能和辅助发电设备。太阳能光伏系统具有以下的特点: - 没有转动 ...… 查看全部问答> |




