1. STM32F10X-架构

STM32F10xx系列单片机是意法半导体推出的ARM核心32bit单片机。性价比非常高,真正做到了高性能、低价格并且极易使用,因此受到了工程师和应用厂商的共同青睐。

1. ST和ARM

ST是半导体设计、制造公司,它设计并生产芯片。
ARM是知识产权(IP intellectual property)供应商,它的产品是ARM内核(只做设计)。

对于STM32F10XX,其中CPU是ARM公司设计的,其他部分是ST公司设计的,整个芯片是ST公司制造的。

2. STM32F10X

对于一个MCU(microcontroller unit),就像它的名字一样,其主要角色就是一个控制器(controller)而且是一个微(micro)控制器,并且它自成一个单元(unit),因此它是一系列组件的结合。
这些组件包括CPU(中央处理器)、ROM、RAM、总线、各种被控制设备(外设)等等。。。


2.1 STM32F10X系统架构

简单一点,所谓的系统架构就是:MCU里面有哪些东西?这些东西是怎么布置(连接)的?

通过这幅框图(来自野火的资料),理解它的架构就足够了:
这里写图片描述

通过上面框图可以看到MCU的组成:

  1. ICode总线;
  2. 驱动单元;
  3. 被动单元;
  4. 总线矩阵;

其中:
1.ICode总线:该总线将Cortex™-M3内核的指令总线与闪存指令接口相连接。指令预取在此总线上完成。

2.驱动单元
DCode总线:该总线将Cortex™-M3内核的DCode总线与闪存存储器的数据接口相连接(常量加载和调试访问)。
DCode 中的 D 表示 Data,即数据,那说明这条总线是用来取数的。 我们在写程序的时
候,数据有常量和变量两种,常量就是固定不变的,用 C 语言中的 const关键字修饰,是放
到内部的 FLASH 当中的,变量是可变的,不管是全局变量还是局部变量都放在内部的
SRAM。 因为数据可以被 Dcode 总线和 DMA 总线访问,所以为了避免访问冲突,在取数的
时候需要经过一个总线矩阵来仲裁,决定哪个总线在取数。

系统总线:此总线连接Cortex™-M3内核的系统总线(外设总线)到总线矩阵,总线矩阵协调着内核和DMA间的访问。
系统总线主要是访问外设的寄存器,我们通常说的寄存器编程,即读写寄存器都是通
过这根系统总线来完成的。

DMA 总线:DMA 总线也主要是用来传输数据,这个数据可以是在某个外设的数据寄存器,可以在
SRAM,可以在内部的 FLASH。因为数据可以被 Dcode 总线和 DMA 总线访问,所以为了
避免访问冲突,在取数的时候需要经过一个总线矩阵来仲裁,决定哪个总线在取数。

3.被动单元
内部的Flash:用于存放指令和只读数据,也包括未加载的程序的存储以及用户自由存储的数据;

内部SRAM:用于全局变量和堆栈的开销;

FSMC:flexible static memory controller,可用于扩展设备。

AHB到APB的桥:APB1和APB2上挂载者各种外设,它们速度相对较低,因此使用AHB到APB的桥来衔接。

4.总线矩阵:总线矩阵协调各个总线之间的访问仲裁,仲裁利用轮换算法。


来个更详细的:
这里写图片描述


小结:
芯片内各个组件都连接到各自总线->各个总线都连接到总线矩阵->总线矩阵协调各个总线之间的访问仲裁。

2.2 存储器映射

为使CPU能控制芯片中的每个被动单元,这些被动单元的每个组件就必须要有一个确切的地址。
各个组件和4GB地址空间的对应关系就是储器映射。

程序存储器、数据存储器、寄存器和输入输出端口被组织在同一个4GB的线性地址空间内。可访问的存储器空间被分成8个主要块,每个块为512MB。

数据字节以小端格式存放在存储器中。其他所有没有分配给片上存储器和外设的存储器空间都是保留的地址空间。(没有分配的不要用,是系统保留的,用了会出问题。)

知识点:
- 小端:低尾端,即字节序的尾端存储在低地址的存储单元。
- 大端:反过来即是。
这里写图片描述

这里写图片描述

存储器映射图:
这里写图片描述


其实,上面的具体分配是ST做的,但是ARM提供了一个框架,ST具体了每个组件的地址。下面是ARM的存储器映射框架:
这里写图片描述

2.3 寄存器映射

在block2地址块中编排的是外设寄存器的地址。
外设寄存器是用来控制外设或缓存外设数据的数字电路结构。在本质上,它们和存储器(如FLASH或SRAM)没什么区别,都是不同功能的数字电路。只是在应用上主要用于外设的访问和控制。

映射的定义没有改变,就是对应关系。
寄存器映射是指:一个(寄存器的)地址与一个(我们取的)名字的对应关系。有了这样的映射关系,在写程序时就可以用一个符号来代指一个寄存器,而不要通过一个个地址来代指,大大地方便了程序的编写(特别是C语言程序)。

3. Cortex系列处理器

前面简单地看了看STM32的功能结构,在单片机中最重要的一部分便是CPU,往往,我们在做应用时与它打交道是最少的,但对于整个单片机来讲,它是最重要的,也是最复杂的。

ARM公司设计的处理器自从ARM11(指令集版本为ARMv6)之后,命名为Cortex
Cortex分为三个系列,如下图(指令集版本分别为ARMv7-A、ARMv7-R、ARMv7-M):
这里写图片描述

  • Cortex-A:Application,面向尖端的基于虚拟内存的操作系统和用户应用。
  • Cortex-R:Realtime,面向实时应用。
  • Cortex-M:Mircocontroller,面向微控制器。

ARM指令集架构历史回顾:
这里写图片描述

3.1 Cortex-M家族:

这里写图片描述

3.2 Cortex-M结构

和其他哈佛结构的精简指令集CPU一样,Cortex-M3的指令总线和数据总线是分开的,这样的设计大大提高了执行效率。

这货比较底层,也没什么好说的,不是太简单而是太复杂,不懂,所以不敢乱说。

看图:

这里写图片描述

这里写图片描述

内核的详细知识请看一本书:
Cortex-M3 权威指南
Joseph Yiu 著
宋岩 译

4. 小结

主要描述了基于ARMv7架构的Cortex-M3内核的STM32F10XX芯片的架构。它包括:

  • 哈佛结构的Cortex-M3内核(单片机的核心)。
  • 驱动设备:数据总线、系统总线、DMA1、DMA2.
  • 被驱动设备:嵌入式片上Flash、片上SRAM、FSMC、总线桥以及各种外设。
  • 连接各个总线的总线矩阵。

还描述了存储器的映射关系。
意思意思了一下Cortex-M3内核。

本着回头再看看STM32的想法,又花了一天时间,才写了个基础架构,其实还有很多细节没顾得到。请看以后的博客,接下来复习复习外设,毕竟,它们才是一线士兵,冲锋陷阵!

### 回答1: STM32F10x是意法半导体的一款32位ARM Cortex-M系列微控制器产品系列,中文参考手册提供了关于该系列微控制器的详细技术规格、功能描述、寄存器描述以及使用指南等信息。 该中文参考手册对于工程师和开发者来说是非常有价值的参考资料。它提供了全面的技术规格,包括微控制器的电气特性、时钟和复位电路、输入输出的电气特性、引脚功能定义等。对于系统设计和电路布线,这些细节非常重要,可以帮助开发者避免潜在的电气问题。 此外,中文参考手册还提供了对该系列微控制器内部各个模块的详细描述。例如,它详细介绍了微控制器的核心处理单元(ARM Cortex-M)、存储器系统(Flash和SRAM)、时钟控制模块、外设接口等。这些模块的功能和特性描述可以帮助开发者全面了解微控制器的能力,从而进行系统设计和软件开发。 此外,中文参考手册还提供了大量的应用和技术指南。这些指南包括如何使用微控制器的外设、如何配置和使用中断、如何编写低功耗应用程序等。这些指南可以帮助开发者更好地理解微控制器的功能和特性,从而更高效地开发应用程序。 总的来说,STM32F10x中文参考手册是开发者在使用和开发该系列微控制器时必不可少的参考资料。它提供了全面的技术规格、模块描述和应用指南,能够帮助开发者更好地理解和应用这款微控制器产品系列。 ### 回答2: STM32F10x系列是意法半导体(STMicroelectronics)推出的一款基于ARM Cortex-M3内核的32位微控制器。中文参考手册即为对该系列微控制器的详细说明和使用指南的中文版本。 中文参考手册包含了STM32F10x系列微控制器的各种技术规格、引脚定义、功能简介、应用示例和编程接口等内容。对于初学者来说,该手册是学习和了解STM32F10x系列微控制器的重要参考资料。 首先,手册介绍了STM32F10x系列微控制器的特点和架构。它详细解释了微控制器内部各个模块的组成和功能,例如时钟控制单元、中断控制器、GPIO引脚等等。通过阅读手册,用户可以深入了解微控制器的工作原理和内部结构,为后续的应用开发奠定基础。 其次,手册提供了大量的技术规格和引脚定义表格,帮助用户了解每个型号微控制器的具体参数和引脚分配情况。这对于进行外设连接和PCB设计是十分重要的,用户可以根据手册上给出的引脚定义,来正确连接和配置外围设备。 此外,手册还包含了大量的应用示例和编程接口说明。用户可以根据手册上给出的示例代码和接口定义,进行软件编程和开发。手册中的示例代码能够帮助用户快速上手并理解如何使用各种功能模块,从而加速应用开发的进程。 总之,STM32F10x中文参考手册是学习和使用该系列微控制器的重要资料。通过仔细阅读手册,用户可以全面了解STM32F10x系列微控制器的技术规格、工作原理和应用开发的方法,帮助用户更好地进行嵌入式系统开发。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值