STM32Note初识单片机(2)

发布者:SereneNature7最新更新时间:2020-02-13 来源: eefocus关键字:STM32Note  单片机  运作方式 手机看文章 扫描二维码
随时随地手机看文章

本期主要介绍单片机核心--CPU的架构、组成及运作方式。


架构之争

目前微型计算机系统的架构主要有X86、MIPS、ARM、PowerPC、SPARC这几种,但市场上最常见的还是X86和ARM架构的,我们接下来以这两种为例了解下微型计算机体系结构,至于剩下几种如果读者有兴趣就只能自行百度了(任天堂、索尼PS、摩托罗拉了解一下)。


在了解X86和ARM架构之前,我们先介绍下复杂指令集CISC(Complex InstucTIon Set Computer)和精简指令集RISC(Reduced InstrucTIon Set Computer)。上期我们说过CPU运行是通过取指令完成的,根据CPU可执行指令我们分成CISC和RISC两种。

  1. CISC: 机器指令复杂,这就使得硬件设计逻辑也极其复杂,晶体管数量庞大,为了进行高效运算,需要较长的流水线(下面会介绍)、复杂的分支预测机构、多级Cache、支持超线程虚拟化等。

  2. RISC: 指令集数量少,指令简单,硬件逻辑简单,功耗比较低,适合移动平台应用。

X86架构是CISC的代表,目前由Intel主导,比较有名的PenTIum、Core都是这种架构。而ARM则是RISC的代表,这种架构的知识产权掌握在ARM公司手中(他们只卖知识产权,具体芯片根据不同生产厂家会有所不同),目前比较常见的用于移动手机端像是苹果三星华为,还有嵌入系统,比较常见的有树莓派,STM32用的当然也是这种架构。


ARM市场

ARM家族中最经典的是ARM7、ARM9、ARM11,虽然现在市场上还有,但已经有要被取代的趋势,而接手市场的则是下面三个系列:

  1. Cortex-M系列:为单片机驱动系统提供的低成本优化方案,应用于传统的微控制器、智能传感器等,主流的有M0、M1、M3、M4。

  2. Cortex-A系列:针对开放式操作系统的高性能处理器(如Android、Linux等),主要用于智能手机、数字电视等。

  3. Cortex-R系列:针对实时系统,满足实时性需求,用于汽车的制动系统等。

CPU组成

CPU内部结构.png

CPU由两部分构成,EU(ExecuTIon Unit)和BIU(Bus Interface Unit),其中EU负责指令执行,而BIU主要是利用总线与存储器、I/O相连完成数据读写。CPU中主要包括上图中几个模块(不包括总线连接部分):

  1. 程序计数器PC:CPU读取指令时需要知道指令在存储器中的存放地址,PC就是用来存储指令地址的寄存器。通常情况下它是按1递增设计的,当CPU执行一条指令的时候,PC会自动加一指向下一条需要执行的指令(实际上不是加一,但是大多数情况程序是顺序执行的)。程序计数器PC决定了指令执行的顺序,所以这个寄存器的值是不可以外部随意修改的。

  2. 指令解码电路:由于存储器存放数据是按照二进制存放的,所以需要解码电路将机器码转化为运算电路可用的命令。

  3. 运算电路:运算电路被称为ALU(Arithmetic and Logic Unit),能完成加法乘法等算术运算,也能进行AND、OR等逻辑运算。

  4. 内部寄存器:内部寄存器是存储临时信息的场所。包括存储运算结果的通用寄存器,也有一些特殊的寄存器,比如说存储运算标志的标志寄存器等。事实上,运算电路在进行运算时并不是完全在内存中进行,而是将数据复制到通用寄存器中在进行的。

CPU结构.png

上面这张图是经典的X86架构(8086处理器)的CPU结构图(没有找到比较详细的ARM架构的结构图。。)。图中的IP其实就是程序计数器PC,在实际的CPU中并没有寄存器叫做PC,PC只是代表一种功能,程序计数器在X86中叫做IP,而在ARM则由寄存器R15实现此项功能。


CPU工作原理

我们来举个例子说明CPU工作流程:

LDR R1, 0x0001    ;LDR为读内存命令,将内存中地址0001的内容存到寄存器R1中

LDR R2, 0x0002    ;将内存0002的内容读到R2中

ADD R1, R1, R2    ;将R1与R2的值相加,结果存在R1中


下面是代码段和数据段存放的内容(数据段和代码段二者共用存储器,实际存放地址一般由段首地址与段内偏移地址共同确定,这里我们认为Code和Data分别表示代码段和数据段段首地址,表格中为偏移地址):

CPUExample.jpg

程序执行过程:

  • 第一步:CPU读取当前PC指向地址即代码段0001的指令内容,经过解码电路解码,CPU从数据段0001地址读出内容3存入R1,PC自动加一变成0002。

    结果:R1-->3,PC-->0002

  • 第二步:CPU读取代码段0002的指令内容,解码后,CPU读取数据段0002的内容4存入寄存器R2,PC加一变成0003。

    结果:R2-->4,PC-->0003

  • 第三步:CPU读取0003的指令,将R1的内容与R2相加,结果存入R1。

    结果:R1-->7,PC-->0004

CPU工作原理大致就是这样。

CPU指令执行模式

CPU指令执行有两种模式,流水线执行模式和乱序执行模式。这两种模式同时存在于CPU中,以流水线为主,但是为了提高CPU中电路的工作效率,引入乱序执行模式。目前X86架构在乱序执行方面领先于ARM架构。

流水线.jpg

一般情况下,在EU执行上一个周期BIU取的指令的同时,BIU取下一条指令存放于指令队列中。如果EU需要总线完成如读取存储器数据的任务时,则给出命令,使得BIU在下个周期不取指令,通过总线获取数据给EU完成上个指令,之后恢复正常流水线。乱序执行在这里就不具体介绍了,主要是将不需要当前运算电路的命令同时执行,以提高效率,具体实现方式只能由读者自行百度了。


本期内容就到这里了,下一期会介绍存储器以及读写内存时CPU与存储器的时序配合。

关键字:STM32Note  单片机  运作方式 引用地址:STM32Note初识单片机(2)

上一篇:STM32之FSMC驱动LCD屏应用
下一篇:带你一步步了解STM32启动代码

推荐阅读最新更新时间:2024-11-10 18:01

高性能、低功耗,MCU产品N32G020系列问市
国民技术宣布面向物联网市场推出通用MCU产品N32G020系列,该系列产品集高性能、低功耗、安全特色于一身,内置硬件加、解密算法加速引擎。产品全系列已能提供完整的开发套件和样品,并已具备批量供货能力。 N32G020系列产品基于ARM Cortex-M0内核设计,最大工作频率高达80MHz,具有256K字节的存储空间,高达10万次重复擦写可靠性能力,多达30个GPIO,片内集成ADC、DAC、模拟比较器、对外供电LDO等模拟电路,支持RTC实时时钟,具备多路互补输出PWM功能,集合USB2.0、SPI、UART、I2C、ISO7816等外设通信接口,内置多种符合国际标准的加、解密算法硬件加速引擎,提供优异的算法性能,具备多种优
[嵌入式]
高性能、低功耗,<font color='red'>MCU</font>产品N32G020系列问市
英飞凌用于工业照明应用的全新XMC™单片机亮相展会
2017年3月21日,英飞凌科技股份公司(FSE代码:IFX / OTCQX代码:IFNNY)携基于ARM®的全新XMC™单片机以及基于iMotion™的电机控制解决方案,亮相2017年国际嵌入式系统展。XMC单片机适用于多种工业应用,其新特性包括提供研发支持,以大幅降低设计复杂度、缩短研发周期、削减系统成本,以及帮助加快完成经DALI认证的LED设计。 电机控制专用iMOTION解决方案平台阵容壮大 英飞凌推出新一代iMOTION电机控制解决方案。其目标应用包括家用电器、空调系统、泵机、风扇和多轴飞行器等。全新iMOTION 2.0可将系统成本降低约30%,并且极其易于实现。它能让电机在10分钟内运转起来。这得益于面向磁场定
[单片机]
单片机电路与数字电路的抗干扰方法
  形成干扰的基本要素有三个:   (1)干扰源,指产生干扰的元件、设备或信号,用数学语言描述如下:du/dt,di/dt大的地方就是干扰源。如:雷电、继电器、可控硅、电机、高频时钟等都可能成为干扰源。   (2)传播路径,指干扰从干扰源传播到敏感器件的通路或媒介。典型的干扰传播路径是通过导线的传导和空间的辐射。   (3)敏感器件,指容易被干扰的对象。如:A/D、D/A变换器,单片机,数字IC,弱信号放大器等。   抗干扰设计的基本原则是:抑制干扰源,切断干扰传播路径,提高敏感器件的抗干扰性能。(类似于传染病的预防)   1、抑制干扰源   抑制干扰源就是尽可能的减小干扰源的du/dt,di/dt。这是抗干扰设计中最优先
[单片机]
基于51单片机设计的家庭防盗报警系统
  从实际出发,设计一种家庭用、与电话线连接、操作简单、工作稳定可靠的远程智能防盗报警装置。 当人们外出时,往往希望实施自动监测报警以使家庭财产免受损失。针对这一需求,研制出了一系列自动报警系统,如门磁式、触摸式和红外线监测自动报警系统等。本文将介绍的远程智能防盗报警装置,可同时监视多个重要点(如门、窗等),发现盗情及时拨叫号码,并能利用普通电话线进行告警信号呼叫,其性能稳定可靠,实用性、适用性强,且具有较高的灵活性。 基本工作原理 如图1所示,远程智能防盗报警装置由信号检测电路、复位电路、电话号码输入电路、89C51单片机、语音电路、模拟摘机挂机电路、DTMF编码发送电路、铃流信号检测电路和忙音信号检测电路等构成。 DTM
[单片机]
基于51<font color='red'>单片机</font>设计的家庭防盗报警系统
单片机的存储器数据绘图设计与实现
  本文提出了一种从存储器导出数据,并运用MATLAB进行数据进制转换、绘图的方法,绘制的图形能很好地复现模拟信号源信号,对单片机调试分析具有一定帮助。    1 理论分析   A/D转换器是连接模拟信号与数字信号的桥梁,现有单片机芯片通常都内置有ADC模块,A/D采样值通常以字节的形式存储在片内存储器中。对RAM或Flash中的A/D采样数据绘图,调试过程中先在存储结束处设置断点,然后把存储的数据以记事本形式导出到PC,设计MATLAB软件将记事本中的十六进制数据转换为十进制处理,最后绘图。将绘制图形和示波器测试模拟源图形进行比较,检验绘制的图形能否准确地复现原始信号。   2 系统硬件设计   系统结构框图如图1所示。
[单片机]
<font color='red'>单片机</font>的存储器数据绘图设计与实现
Microchip推出PIC18-Q24 系列单片机 为增强代码安全性设置新标准
该系列单片机新增电压电平转换功能,有助于提高灵活性并降低系统成本 从手机、汽车到智能恒温器和家用电器,越来越多日常设备与云端相连。随着连接性增多,在芯片层面部署先进的安全措施以保护固件和数据,就变得至关重要。为了应对当前和不断扩大的安全威胁,Microchip Technology Inc.(微芯科技公司)今日发布PIC18-Q24 系列单片机(MCU)。 为应对在嵌入式系统中对器件进行恶意重新编程的威胁,PIC18-Q24单片机引入了编程和调试接口禁用(PDID)功能。启用后,这一增强型代码保护功能将锁定对编程/调试接口的访问,并阻止未经授权的读取、修改或擦除固件的尝试。 Microchip 8位单片机业务部副
[单片机]
Microchip推出PIC18-Q24 系列<font color='red'>单片机</font>  为增强代码安全性设置新标准
51单片机中断响应的条件
讲到这儿,我们依然对于计算机响应中断感到神奇,我们人可以响应外界的事件,是因为我们有多种“传感器“――眼、耳可以接受不同的信息,计算机是如何做到这点的呢?其实说穿了,一点都不希奇,MCS51工作时,在每个机器周期中都会去查询一下各个中断标记,看他们是否是“1“,如果是1,就说明有中断请求了,所以所谓中断,其实也是查询,不过是每个周期都查一下而已。这要换成人来说,就相当于你在看书的时候,每一秒钟都会抬起头来看一看,查问一下,是不是有人按门铃,是否有电话。。。。很蠢,不是吗?可计算机本来就是这样,它根本没人聪明。 了解了上述中断的过程,就不难解中断响应的条件了。在下列三种情况之一时,CPU将封锁对中断的响应: 1、CPU正在处理
[单片机]
Proteus仿真51单片机C语言-单片机向主机发送字符串
简介:单片机向主机发送字符串:单片机按一定的时间间隔向主机发送字符串,发送内容在虚拟终端显示。
[单片机]
Proteus仿真51<font color='red'>单片机</font>C语言-<font color='red'>单片机</font>向主机发送字符串
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

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

换一换 更多 相关热搜器件

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved