历史上的今天
今天是:2024年10月15日(星期二)
2021年10月15日 | ATmega48 内核介绍
2021-10-15 来源:eefocus

结构综述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。此外,ATmega48/88/168还有位于SRAM地址0x60 - 0xFF的扩展I/OST/STS/STD 和 LD/LDS/LDD 指令来访问。
上一篇:ATmega48 ALU
下一篇:ATmega48 引脚功能
史海拾趣
|
北航单片机视频教程多媒体教程 下面是用户共享的文件列表,安装eMule后,您可以点击这些文件名进行下载 [北航单片机视频教程].1K2K.rm 161.9MB [北航单片机视频教程].3K4K.rm 161.9MB [北航单片机视频教程].5K6K.rm 162.5M ...… 查看全部问答> |
|
我用的是LM3S8962芯片,端口位组合输出一个字节的数据实在是太慢了,有没有可能端口直接字节输入和输出,如何操作呢? 我看过有些这个芯片的开发板驱动图形液晶屏,我觉得应该也是至少字节操作吧。… 查看全部问答> |
|
首先说明一下,我没做过手机相关的任何软件开发,也不太清楚里面的技术问题,只是突然想了解一下。 第一个就是,手机接收的电话信号和短信信号是怎么区分的?比如同一个朋友打电话给我和发短信给我,我的手机是怎么来进行区分的?这个是不是不同牌 ...… 查看全部问答> |
|
我在看“Windows CE程序设计(第一版)”书上的很多内容很是不了解。 有如下问题,请大家勿必解答,本人感激不尽!! 第一个问题: ===================================== 书上说:WinCE创造一个独立的被所有程序共享的4GB虚拟地址空间。 ...… 查看全部问答> |
|
手上有块液晶驱动板,由于液晶板的关系,使得驱动板的电压为3.3V。现在我手上只有STC89C52单片机和一些电阻电容之类的元件,想要驱动液晶屏,就手上的这些东西能够做吗? 考虑:单片机IO口输出电压为5V,但是驱动板上液晶控制芯片的电源电压为3.3V ...… 查看全部问答> |
|
我是在今年广州STM研讨会了解STM的,刚好手头有一项目想用STM32。了解后感觉STM32还可以,只是技术支持吃不透,本人第一次使用32位类ARM芯片,可能有时问下相对弱智问题。只是不了解STM技术支持是代理商支持的,还是本身STM有技术支持呢?象TI ...… 查看全部问答> |
|
小弟菜鸟一个,,请求高人指点,我现在想用串口加载vxworks映像,在配置target server时,Target Name/IP这一项填写什么?也就是目标机的名字或者IP地址是怎么定下的?目标机一直都连接不成功。。。。小弟,感激不尽… 查看全部问答> |
|
各位帮帮忙,我设计的目的是一个驱动1MHz的超声换能器,其阻抗大约为100欧,要求输出功率可调0w-20w之间我试图采用PWM调制功率目前的电路图如下,附件1中,三极管后接出一个1MHz的信号,为了提高输出功率,采用4片IR21844并联,通过调节R7的阻值实 ...… 查看全部问答> |




