STM32芯片内部架构的详细介绍

发布者:星光闪耀最新更新时间:2023-06-06 来源: elecfans关键字:STM32芯片  内部架构  外设 手机看文章 扫描二维码
随时随地手机看文章

STM32芯片主要由内核和片上外设组成,STM32F103采用的是Cortex-M3内核,内核由ARM公司设计。STM32的芯片生产厂商ST,负责在内核之外设计部件并生产整个芯片。这些内核之外的部件被称为核外外设或片上外设,如 GPIO、USART(串口)、I2C、SPI 等。

db5d7d0a-f9e8-11ec-ba43-dac502259ad0.png

芯片内部架构示意图

芯片内核与外设之间通过各种总线连接,其中驱动单元有 4 个,被动单元也有 4 个,具体如上图所示。可以把驱动单元理解成是内核部分,被动单元都理解成外设。


ICode 总线

ICode总线是专门用来取指令的,其中的I表示Instruction(指令),指令的意思。写好的程序编译之后都是一条条指令,存放在 FLASH中,内核通过ICode总线读取这些指令来执行程序。


DCode总线

DCode这条总线是用来取数的,其中的D表示Data(数据)。在写程序的时候,数据有常量和变量两种。常量就是固定不变的,用C语言中的const关键字修饰,放到内部FLASH当中。变量是可变的,不管是全局变量还是局部变量都放在内部的SRAM。


系统System总线

我们通常说的寄存器编程,即读写寄存器都是通过系统总线来完成的,系统总线主要是用来访问外设的寄存器。


DMA总线

DMA总线也主要是用来传输数据,这个数据可以是在某个外设的数据寄存器,可以在SRAM,可以在内部FLASH。


因为数据可以被Dcode总线,也可以被DMA总线访问,为了避免访问冲突,在取数的时候需要经过一个总线矩阵来仲裁,决定哪个总线在取数。


内部的闪存存储器Flash

内部的闪存存储器即FLASH,编写好的程序就放在这个地方。内核通过ICode总线来取里面的指令。


内部的SRAM

内部的SRAM,是通常所说的内存,程序中的变量、堆栈等的开销都是基于内部SRAM,内核通过DCode总线来访问它。


FSMC

FSMC的英文全称是Flexible static memory controller(灵活的静态的存储器控制器)。通过FSMC可以扩展内存,如外部的SRAM、NAND-FLASH和NORFLASH。但FSMC只能扩展静态的内存,不能是动态的内存,比如就不能用来扩展SDRAM。


AHB

从AHB总线延伸出来的两条APB2和APB1总线是最常见的总线,GPIO、串口、I2C、SPI 这些外设就挂载在这两条总线上。这个是学习STM32的重点,要学会对这些外设编程,去驱动外部的各种设备。


关键字:STM32芯片  内部架构  外设 引用地址:STM32芯片内部架构的详细介绍

上一篇:STM32中断过程详解
下一篇:STM32芯片UID话题

推荐阅读最新更新时间:2024-11-12 08:39

浅谈链表对stm32芯片程序中的提升作用(C语言)
程序中经常面临这样的一个问题,需要创建一定数量的对象,但事前又不知道对象的具体个数,因此新手通常的做法都会为了能处理足够的对象信息,创建一个足够大的空间数组。这里举个简单的例子,某个应用要求管理学生信息,因此设置了这样的一个结构体(类似于面向对象语言里说的成员属性) typedef struct { int num; int age; char *name; }studentInfo; 在不引入链表的情况下,为了能管理尽可能多的学生信息,可能会这样创建这个结构体的实体: studentInfo student ; int studentCnt = 0; //记录已经管理的学生数量 这样的处理方法,理论上能实现需求
[单片机]
STM32家族新成员—STM32WB双核无线芯片
STM32家族新成员—STM32WB双核无线芯片 2018年10月12日,意法半导体在北京召开媒体发布会,隆重发布并介绍了STM32系列的第12个新成员—STM32WB。STM32WB的发布对STM32来说有着重大的意义,正如意法半导体中国区微控制器事业部市场及应用总监曹锦东所说“未来整个产业的发展是面向物联网产业的,物联网产业里不能缺少无线的产品线,STM32产品更不能缺乏跟无线产品相关的IP,STM32WB的发布将会帮助STM32进入无线领域,并加强STM32在物联网市场的影响力。” 意法半导体中国微控制器事业部市场及应用总监 曹锦东 正在本次发布会中,意法半导体STM32超低功耗和网络微控制器市场经
[单片机]
<font color='red'>STM32</font>家族新成员—STM32WB双核无线<font color='red'>芯片</font>
MSP430各模块及外设总结和初学那些坑
集成开发环境/工具(IDE) 在官网看到有关的介绍和好友推荐的工具中,最有好感的是CCS(Code Composer Studio),虽然用MDK5也可以,但是有更方便的自然是要尝试一下…… 相较于MDK5,CCS支持 TI 的微控制器和嵌入式处理器产品系列,含一整套用于开发和调试嵌入式应用的工具,用于优化的 C/C++ 编译器、源码编辑器、项目构建环境、调试器、描述器以及多种其他功能。 目前是不需要license的,也就是说不仅正版而且免费!虽然只免费90天,不过这已经足够了。 在下载的时候会提示你想要下载的资源,建议学什么下什么,不然占的内存有点多,比如我打算学习MSP430/432系列和Tiva-TM4,就只下载了这
[单片机]
MSP430各模块及<font color='red'>外设</font>总结和初学那些坑
STM32外设驱动篇——AT24C02(I2C接口)
SOC:STM32F103RCT6 软件平台:STM官方库V3.5.0 开发工具:Keil 1. 摘要   本文章将给出STM32F103RCT6控制AT24C02的代码。如有疑问和错误,欢迎留言告之。 2.硬件连接 AT24C02使用I2C进行数据访问,板子上使用STM32的I2C控制器2和AT24C02进行连接。 具体来说,PB10作为SCL和AT24C02相连,PB11作为SDL和AT24C02相连。 这里就不给出硬件连接图了,比较简单。 3. AT24C022C访问代码(轮询) I2C这里使用轮询方法,不是中断,请留意。 首先,给出I2C控制器的初始化代码,和读写代码,一共三个函数,对应三个功能。 注
[单片机]
STM32—— DMA介绍
1.1 DMA结构框图 DMA 控制器独立于内核,属于一个单独的外设,结构比较简单,从编程的角度来看,我们只需掌握结构框图中的三部分内容即可。 如图:(大家也可以查看《STM32F10x中文参考手册》-10 DMA控制器(DMA)章节 内容) (1)标号1:DMA请求 如果外设要想通过 DMA 来传输数据,必须先给 DMA 控制器发送 DMA请求, DMA收到请求信号之后,控制器会给外设一个应答信号,当外设应答后且 DMA 控制器收到应答信号之后,就会启动 DMA 的传输,直到传输完毕。 根据前面介绍我们知道,DMA含有DMA1和DMA2两个控制器,其中DMA1含有7个通道,DMA2含有5个通道,不同的 DMA 控制器
[单片机]
<font color='red'>STM32</font>—— DMA介绍
stm32 芯片与Cat的对应分类
最近在使用stm32l151cbu6开发一个项目,在查询datasheet关于DMA使用的时候,发现不同的cat分类,对应的功能还有些区别, 例如上面这个就是针对Cat.1和Cat.2。 这上面这个对应的就是Cat.3。 那么问题来了,怎么知道我的stm32l151cbu6是属于Cat.x呢,再慢慢翻datasheet,发现还真有。在P40页, 可以看到Cat分类是与flash大小直接相关的,这里面有个坑,表格里面的符号是“x”与“-”,‘x’反而表示flash大小与芯片型号的对应。往下看,我们还能看到更细致的芯片分类, 我项目的stm32l151cbu6属于STM32L 15XXB分类,对应的就是Cat.1分
[单片机]
<font color='red'>stm32</font> <font color='red'>芯片</font>与Cat的对应分类
STM32STM32固件库(标准外设库)
标准外设库概述 STM32标准外设库是一个固件函数包,它由程序、数据结构和宏组成,包括了微控制器所有外设的性能特征。该函数库还包括每一个外设的驱动描述和应用实例,为开发者访问底层硬件提供了一个中间API,通过使用固件函数库,无需深入掌握底层硬件细节,开发者就可以轻松应用每一个外设。 因此,使用固态函数库可以大大减少开发者开发使用片内外设的时间,进而降低开发成本。每个外设驱动都由一组函数组成,这组函数覆盖了该外设所有功能。每个器件的开发都由一个通用的标准化的API去驱动。这里介绍的是V3.5版本的外设库,也是迄今最新的版本。 STM32F10x标准外设库文件结构 库的下载处是在ST公司的官方网站,下载链接:ST公司官方网站。
[单片机]
【<font color='red'>STM32</font>】<font color='red'>STM32</font>固件库(标准<font color='red'>外设</font>库)
【GD32 MCU 入门教程】GD32 MCU 常见外设介绍 (6) ADC 模块介绍
6.1.ADC 基础知识 12 位逐次逼近式模数转换器模块(ADC),可以采样来自于外部输入通道、内部输入通道的模拟信号,采样转换后,转换结果可以按照最低有效位对齐或最高有效位对齐的方式保存在相应的数据寄存器中。 6.2.GD32 ADC 外设原理 GD32 ADC 主要特性 ◼ 高性能: – ADC采样分辨率: 12位、 10位、 8位、或者6位分辨率; – 前置校准功能; – 可编程采样时间; – 数据存储模式:最高有效位对齐和最低有效位对齐; – 支持规则数据转换的DMA请求。 ◼ 模拟输入通道: – 16个外部模拟输入通道; – 1个内部温度传感器输入通道(VSENSE); – 1个内部参考电压输入通道(VREFINT
[单片机]
【GD32 MCU 入门教程】GD32 MCU 常见<font color='red'>外设</font>介绍 (6) ADC 模块介绍
小广播
设计资源 培训 开发板 精华推荐

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

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

换一换 更多 相关热搜器件

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

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