以Crotex M3为例讲解stm32芯片内部原理

一款STM32F103ZET6是72Mhz,64kRAM,512kROM为例进行简要分析其MCU工作原理

1 分清几个概念

1.1RAM可读写静态储存器

	平常所说的DDR就是RAM的一种,用于CPU直接交换数据

1.2ROM只可读静态存储器

	平常说的flash是ROM的一种,存储程序,const修饰等不变量
	NAND指NAND flasH

2 单片机架构组成

2.1 51单片机的架构

2.1.1 51单片机历史来源

51内核是上个世纪70年代Intel公司设计的,速度只有12M,外设是IC厂商(STC)在内核的基础上添加的,不同的IC厂商会在内核上添加不同的外设,从而设计出各具特色的单片机。这里Intel属于IP核厂商,STC属于IC厂商。我们后面要讲的STM32也一样,ARM属于IP核厂商,ARM给ST授权,ST公司在Cortex-M3内核的基础上设计出STM32单片机。
在这里插入图片描述
在这里插入图片描述

图1. 51单片机架构组成

2.1.2 51单片机内核

51单片机由一个IP核和片上外设组成,IP核(内核)就是上图中的CPU,片上外设就是上图中的:时钟电路、SFR和RAM、ROM、定时/计数器、并行I/O口、串行I/O口、中断系统。IP核跟外设之间由系统总线连接,且是8bit的,速度有限。
51内核是上个世纪70年代Intel公司设计的,速度只有12M,外设是IC厂商(STC)在内核的基础上添加的,不同的IC厂商会在内核上添加不同的外设,从而设计出各具特色的单片机。这里Intel属于IP核厂商,STC属于IC厂商。我们后面要讲的STM32也一样,ARM属于IP核厂商,ARM给ST授权,ST公司在Cortex-M3内核的基础上设计出STM32单片机。

2.1.3 51单片机外设

我们在学习51的时候,关于内核部分接触的比较少,使用的最多的是片上外设,我们在编程的时候操作的也就是这些外设。
编程的时候操作的寄存器位于SFR和RAM这个部分,其中SFR(特殊功能寄存器)占有 128字节(实际上只用了 26 个字节,只有 26 个寄存器,其他都属于保留区),RAM占有 128 字节,我们在程序中定义的变量就是放在RAM中。其中SFR和RAM在地址上是重合的,都是在80~FF地址区间,但在物理区间上是分开的,所以51的RAM是有256个字节。
编写好的程序是烧写到ROM区。剩下的外设都是我们非常熟悉的IO口,串口、定时器、中断这几个外设。

2.1.4 51单片机CPU架构

在这里插入图片描述
51单片机内部有一个8位的CPU,包含运算器,控制器及若干寄存器等

2.2 STM32单片机架构

在这里插入图片描述

图2. stm32单片机架构组成

2.2.1内核

在系统结构上,STM32和51都属于单片机,都是由内核和片上外设组成。只是STM32使用的Cortex-M3内核比51复杂得多,优秀得多,支持的外设也比51多得多,同时总线宽度也上升到32bit,无论速度、功耗、外设都强于51。

从结构框图上看,对比51内核只有一种总线,取指和取数共用。
Cortex-M3内部有若干个总线接口,以使CM3能同时取址和访内(访问内存),它们是:
指令存储区总线(两条)、系统总线、私有外设总线。有两条代码存储区总线负责对代码存储区(即FLASH外设)的访问,分别是I-Code总线和D-Code总线。

I-Code用于取指,D-Code用于查表等操作,它们按最佳执行速度进行优化。

系统总线(System)用于访问内存和外设,覆盖的区域包括SRAM,片上外设,片外RAM,片外扩展设备,以及系统级存储区的部分空间。

私有外设总线负责一部分私有外设的访问,主要就是访问调试组件。它们也在系统级存储区。

还有一个DMA总线,从字面上看,DMA是data memory access的意思,是一种连接内核和外设的桥梁,它可以访问外设、内存,传输不受CPU的控制,并且是双向通信。简而言之,这个家伙就是一个速度很快的且不受老大控制的数据搬运工,这个在51里面是没有的。

2.2.2外设

从结构框图上看, STM32比51的外设多得多,51有的串口、定时器、IO口等外设 STM32 都有。STM32还多了很多特色外设:如FSMC、SDIO、SPI、I2C等,这些外设按照速度的不同,分别挂载到AHB、APB2、APB1这三条总线上。

(随着深亚微米工艺技术日益成熟,集成电路芯片的规模越来越大。数字IC从基于时序驱动的设计方法,发展到基于IP核复用的设计方法,并在SOC设计中得到了广泛应用。在基于IP核复用的SoC(System on Chip的缩写,称为系统级芯片,也有称片上系统)设计中,片上总线设计是最关键的问题。为此,业界出现了很多片上总线标准。其中,由ARM公司推出的AMBA片上总线受到了广大IP开发商和SoC系统集成者的青睐,已成为一种流行的工业标准片上结构。AMBA规范主要包括了AHB(Advanced High performance Bus)系统总线和APB(Advanced Peripheral Bus)外围总线。)

3由单片机MCU联想到PC

3.1 cpu:

cpu是central process unit的简称,是计算机的核心处理器。cpu的作用是运行机器语言指令。高级语言和汇编语言程序被编译成cpu能理解的机器语言(二级制代码)后,存入到内存中,cpu就会从内存中读取并执行这些指令序列,完成程序功能。
包括控制器、寄存器、运算器、时钟四个部分组成。
运算器是用来进行逻辑计算的,
寄存器是临时存放中间数据以及指令的;包括程序计数器、指令寄存器、数据寄存器、地址寄存器等。 寄存器是汇编语言所研究的对象,汇编语言通过对寄存器的控制(写入,读出,加),实现功能。程序计数器和内存的关系:程序计数器记录了当前执行的指令在内存中年存储的位置。
控制器是用来控制何时将内存的数据及指令读入寄存器,何时将寄存器中的值输出到内存。
时钟是同步各个部件之间的步调;

3.2 指令:

指令是控制cpu按照一定功能运算的机器码。用于CPU控制硬件
指令通过控制cpu的输出和输入位置,可以让cpu寄存器向I/O端口寄存器发送数据,外围设备通过与I/O寄存器交换数据,从而达到控制外围设备的效果

3.3、操作系统的内核

操作系统内核(就是操作系统最核心最底层的一部分代码(基础代码))
内核,是一个操作系统的核心。它负责管理系统的进程、内存、设备驱动程序、文件和网络系统,决定着系统的性能和稳定性。
“内核”指的是一个提供硬件抽象层、磁盘及文件系统控制、多任务等功能的系统软件。一个内核不是一套完整的操作系统。一套基于Linux内核的完整操作系统叫作Linux操作系统,或是GNU/Linux。
现在主流的操作系统内核有四个:Unix、Linux、Windows、OS/2
其他很多各种各样以及各个版本的系统都是建立在这四种内核的基础上的。

在这里插入图片描述

图3. CPU工作过程

参考文章链接:https://blog.csdn.net/SUR0608/article/details/104142804

  • 0
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值