STM32芯片架构. M. A2 q! Y( B, w& y
STM32F103系列芯片的系统架构如下:2 }, q$ n( m+ z+ y; ~. {6 _( c
4 K7 l2 P, f5 H% w
STM32芯片基于ARM公司的Cortex-M3内核,由ST公司设计生产,内核与总线矩阵之间有I(指令)、S(系统)、D(数据)三条信号线。内核通过总线矩阵与FLASH、SRAM、外设连接。而外设包括GPIO、USART、I2C、SPI等。5 x3 Y( A0 L: Y" t0 y8 w8 C/ X
STM32芯片系统结构 STM32F103 系列芯片(不包含互联网型)的系统结构如下:
! J! C7 ~( c& I2 O. G& b
从上图可以看出,在小容量、中容量和大容量产品中,主系统由以下部分构成: 四个驱动单元:- Cortex-M3 内核 DCode 总线(D-bus)
- Cortex-M3 内核系统总线(S-bus)
- 通用 DMA1
- 通用 DMA2
4 c* @8 G; A7 j2 B5 p 四个被动单元:- 内部 SRAM
- 内部闪存存储器FLASH
- FSMC
- AHB 到 APB 的桥(AHB2APBx),它连接所有的 APB 设备
8 s- A& B. `8 u' g 这些都是通过一个多级的 AHB 总线构架相互连接的。下面我们看看它们各自的功能:- ICode 总线* E0 ?, K, B. }+ ?
' [$ ~6 a# |* s& |+ P* K
+ Y( e0 U G" V* v" K, _5 H
2 Y' q9 q3 _7 j6 t 该总线将 Cortex-M3 内核的指令总线与闪存指令接口相连接。指令预取在此总线上完成。- DCode 总线
. ?/ ~2 ^ D) s) e( w4 I 该总线将 Cortex-M3 内核的 DCode 总线与闪存存储器的数据接口相连接(常量加载和调试访问)。- 系统总线/ ~* w$ K* N w5 `" E, \
此总线连接 Cortex-M3 内核的系统总线(外设总线)到总线矩阵, 总线矩阵协调内核和 DMA 间的访问。- DMA 总线5 G0 K# }% v& l. E& y
此总线将DMA的AHB主控接口与总线矩阵相联, 总线矩阵协调着CPU的DCode和 DMA 到 SRAM、闪存和外设的访问。- 总线矩阵
$ a! s0 Y, F! a# a% j0 [ 总线矩阵协调内核系统总线和 DMA 主控总线之间的访问仲裁, 仲裁利用轮换算法。在互联型产品中,总线矩阵包含 5 个驱动部件(CPU 的 DCode、系统总线、以太网 DMA、 DMA1 总线和 DMA2 总线)和 3 个从部件(闪存存储器接口(FLITF)、SRAM 和 AHB2APB 桥)。AHB 外设通过总线矩阵与系统总线相连,允许 DMA访问。- AHB/APB桥(APB)
6 p! H+ n5 a+ k% t! h. {! C ; c3 \6 \5 C4 e
: Z$ |. G7 K; `2 r# Z
* J$ O) j) G5 u2 A( I! N* u
U& \: S" g9 b9 G+ g1 j7 t$ h 两个 AHB/APB 桥在 AHB 和 2 个 APB 总线间提供同步连接。APB1 操作速度限于 36MHz, APB2 操作于全速(最高 72MHz)。有关连接到每个桥的不同外设的地址映射请参考《STM32F1xx 中文参考手册》存储器映像章节。在每一次复位以后,所有除 SRAM 和 FLITF 以外的外设都被关闭,在使用一个外设之前,必须设置寄存器 RCC_AHBENR 来打开该外设的时钟。 STM32F1 的时钟系统相对复杂,在后续文章中再介绍。STM32学习进阶路径- 基本外设:
4 J- B& T' M% c' R! d n7 ?* B* Z+ v5 e3 i& \+ j. f8 g3 j) R! V
GPIO 输入输出,外部中断,定时器,串口。理解了这四个外设,基本就入门一款MCU了。- 基本外设接口:
/ |- D/ _! S C7 Y0 V: \ SPI,IIC,WDG, FSMC,ADC/DAC,SDIO 等。这些外设接口功能原理对每个芯片几乎都是一样。对芯片而言就是多和少而已。- 高级功能:
) `( Y+ [& U, }$ A# ` UCOS,FATFS,EMWIN 等。以及一些应用。 另外值得一提的是,C 语言是嵌入式开发的基础中的基础。如果 C 语言不过关,很大程度限制嵌入式学习的进度与深度。在这里推荐3本书学习C语言,刚开始可以参看谭浩强的《C程序设计第四版》,入门之后看一下关于C指针的书《C 与指针》《C 指针编程之道》。学习嵌入式开发要多动手编程、多调试,遇到问题也可以加微信hzplwbs入群交流,在力所能及的范围内会抽时间与大家交流、反馈,与君共勉!
/ c: q2 K7 Y; v
( ?2 @) G' Y, l4 k8 I( H$ o |