ATtiny13 内核介绍

2020-07-17来源: eefocus关键字:ATtiny13  内核  AVR

本节从总体上讨论ATtiny13 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 位的指令。

在中断和调用子程序时返回地址的程序计数器(PC) 保存于堆栈之中。堆栈位于通用数据SRAM,因此其深度仅受限于SRAM 的大小。在复位例程里用户首先要初始化堆栈指针SP。这个指针位于I/O 空间,可以进行读写访问。数据SRAM 可以通过5 种不同的寻址模式进行访问。

AVR 存储器空间为线性的平面结构。

AVR有一个灵活的中断模块。控制寄存器位于I/O空间。状态寄存器里有全局中断使能位。每个中断在中断向量表里都有独立的中断向量。各个中断的优先级与其在中断向量表的位置有关,中断向量地址越低,优先级越高。

I/O 存储器空间包含64 个可以直接寻址的地址,作为CPU 外设的控制寄存器以及其他I/O 功能。映射到数据空间即为寄存器文件之后的地址0x20 - 0x5F。


关键字:ATtiny13  内核  AVR 编辑:什么鱼 引用地址:http://news.eeworld.com.cn/mcu/ic503506.html 本网站转载的所有的文章、图片、音频视频文件等资料的版权归版权所有人所有,本站采用的非本站原创文章及图片等内容无法一一联系确认版权者。如果本网所选内容的文章作者及编辑认为其作品不宜公开自由传播,或不应无偿使用,请及时通过电子邮件或电话通知我们,以迅速采取适当措施,避免给双方造成不必要的经济损失。

上一篇:ATtiny13 状态寄存器
下一篇:ATtiny13 引脚功能

关注eeworld公众号 快捷获取更多信息
关注eeworld公众号
快捷获取更多信息
关注eeworld服务号 享受更多官方福利
关注eeworld服务号
享受更多官方福利

推荐阅读

ATtiny13 引脚功能
引脚名称引脚功能说明VCC数字电路的电源GND地端口B(PB5..PB0)端口 B 为 6 位双向 I/O 口,具有可编程的内部上拉电阻。其输出缓冲器具有对称的驱动特性,可以输出和吸收大电流。作为输入使用时,若内部上拉电阻使能,端口被外部电路拉低时将输出电流。在复位过程中,即使系统时钟还未起振,端口 B处于高阻状态。端口 B 也可以用做其他不同的特殊功能,请参见ATtiny13 DPF中的 P48。RESET复位输入引脚。持续时间超过最小门限时间的低电平将引起系统复位。门限时间见P30Table 12。持续时间小于门限时间的脉冲不能保证可靠复位。
发表于 2020-07-17
ATtiny13 状态寄存器
。·Bit 0 – C: 进位标志表明算术或逻辑操作发生了进位。详见ATtiny13指令集的说明。
发表于 2020-07-17
<font color='red'>ATtiny13</font> 状态寄存器
ATtiny13 通用寄存器
。虽然寄存器文件的物理实现不是SRAM,这种内存组织方式在访问寄存器方面具有极大的灵活性,因为X、Y、Z 寄存器可以设置为指向任意寄存器的指针。寄存器R26..R31 除了用作通用寄存器外,还可以作为数据间接寻址用的地址指针。这三个间接寻址寄存器示于Figure 5。Figure 5. X、Y、Z 寄存器在不同的寻址模式中,这些地址寄存器可以实现固定偏移量,自动加一和自动减一功能。具体细节请参见ATtiny13指令集。备注:以上所有图片中的地址中“$”更改为“0X”.
发表于 2020-07-17
<font color='red'>ATtiny13</font> 通用寄存器
ATtiny13 堆栈指针
堆栈指针主要用来保存临时数据、局部变量和中断 子程序的返回地址。堆栈指针总是指 向堆栈的顶部。要注意 AVR 的堆栈是向下生长的,即新数据推入堆栈时,堆栈指针的数 值将减小。堆栈指针指向数据 SRAM 堆栈区。在此聚集了子程序堆栈和中断堆栈。调用子程序和使 能中断之前必须定义堆栈 0x60 的地址 PUSH 指令将数据推入堆栈时指针减一;而子程序或中断返回地址推入堆栈时指针将减二。使 用 POP 指令将数据弹出堆栈时,堆栈指针加一;而用 RET 或 RETI 指令从子程序或中断 返回时堆栈指针加二。ATtiny13的堆栈指针由I/O 8位寄存器实现。实际使用的位数与具体器件有关。请 注意某些 AVR 器件的数据区太小,用 SPL
发表于 2020-07-17
<font color='red'>ATtiny13</font> 堆栈指针
ATtiny13 指令执行时序
这一节介绍指令执行过程中的访问时序。AVR CPU 由系统时钟clkCPU 驱动。此时钟直接来自选定的时钟源。芯片内部不对此时钟进行分频。Figure 6 说明了由Harvard 结构决定的并行取指和指令执行,以及可以进行快速访问的寄存器文件的概念。这是一个基本的流水线概念,性能高达1 MIPS/MHz,具有优良的性价比、功能/ 时钟比、功能/ 功耗比。Figure 7 演示的是寄存器文件内部访问时序。在一个时钟周期里,ALU 可以同时对两个寄存器操作数进行操作,同时将结果保存到目的寄存器中去。
发表于 2020-07-09
<font color='red'>ATtiny13</font> 指令执行时序
基于ARM7内核的SWI软中断功能设计方案详解
笔者在设计一项目时采用LPC2458。此CPU为ARM7内核,带512K字节的片内FLASH,98k字节的片内RAM,支持片外LOCAL BUS总线,可从片外NOR FLASH启动CPU.由于代码量较大,程序放在片外的NOR FLASH中。且存在片外NOR FLASH在运行程序时,需对片外的NOR FLASH擦写的需求。图1存储部分原理框图在设计中,片外NOR FLASH的大小为16M字节。其中2M规划为存放运行程序,剩余的空间用于产品运行日志,告警灯存储空间。因此存在着在程序运行时对片外NOR FLASH擦写的需求。如果程序正在正常运行的片外FLASH中去擦写FLASH,会存在总线冲突的问题,无法实现此功能。我们采用ARM7内核
发表于 2020-09-10
基于ARM7<font color='red'>内核</font>的SWI软中断功能设计方案详解
小广播
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京ICP证060456号 京ICP备10001474号 电信业务审批[2006]字第258号函 京公海网安备110108001534 Copyright © 2005-2020 EEWORLD.com.cn, Inc. All rights reserved