|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
& n9 d8 s$ ? ^8 g- o% uSTM32芯片架构- T. j: G3 B8 O6 i) \) `
STM32F103系列芯片的系统架构如下:8 y( L5 e; M8 `" w
4 R* X/ X! [( t) d1 B9 s% `& _* ?3 K* Y2 g" ]" }+ [4 z
STM32芯片基于ARM公司的Cortex-M3内核,由ST公司设计生产,内核与总线矩阵之间有I(指令)、S(系统)、D(数据)三条信号线。内核通过总线矩阵与FLASH、SRAM、外设连接。而外设包括GPIO、USART、I2C、SPI等。* z" @ k4 R3 b
STM32芯片系统结构
; v, h" H( _" d, B d' [0 ~% ]STM32F103 系列芯片(不包含互联网型)的系统结构如下:
" }9 p' w% X* _ }0 ^" `2 u
0 t0 j$ q) p1 h2 l- o0 o Q
$ n! S6 ]6 L: V8 e从上图可以看出,在小容量、中容量和大容量产品中,主系统由以下部分构 ]% L1 M. l, o2 S
成:0 }. u1 X/ ? V, X
四个驱动单元:
. D/ Y8 ~5 r1 J* H* ]1 A' @
J2 L5 G: d) r. z6 Z Cortex-M3 内核 DCode 总线(D-bus)9 o( x6 w) l; b |6 A
0 t3 J3 b2 _* E$ z Cortex-M3 内核系统总线(S-bus)
; ]* x2 I6 K+ U5 ^) \' i* X$ U& L( ~! T$ p2 A' O; C' q
通用 DMA1: b3 d3 v; P( I' s1 c
" ]! W @( `+ F; z" L4 n
通用 DMA2) A g3 Q& u# S; a' n
4 M* o& F( {( f* z- ]4 h2 m
四个被动单元:9 L. |6 D7 A5 x/ Y: S, ` `
3 Y- {0 Z: q8 J/ c 内部 SRAM; V- f; `2 r' Z9 d( k) L0 X
% N( d6 z+ @9 K# W
内部闪存存储器FLASH6 E+ ]5 U3 {- q: a a- j
# {) g: B! {# o3 E
FSMC" B0 i+ Z. F# Q, ]) h" U
3 U B1 F. d! h- A5 ^1 T
AHB 到 APB 的桥(AHB2APBx),它连接所有的 APB 设备2 c- j- j8 ]' u. z+ i1 k8 k( I
3 X( [$ ? Q8 O4 A! u0 L1 k
这些都是通过一个多级的 AHB 总线构架相互连接的。下面我们看看它们各自的功能:9 D4 |9 ^- D1 o0 h# b% h4 B
y+ |. b8 Y1 D+ u; b5 T! i
ICode 总线5 C/ D/ z% O: B
2 I$ R7 @8 Z! j( D$ N {8 P# {' L
该总线将 Cortex-M3 内核的指令总线与闪存指令接口相连接。指令预取在此
* e ?- A& z0 D4 v( i2 f; z总线上完成。
8 y; A% h$ P! w) k v2 i* L8 N. p* Y( z) Q# l# g
DCode 总线: g/ J. S# M# w7 [0 p0 u9 P
8 _( E& m# s. O; n3 J0 @
该总线将 Cortex-M3 内核的 DCode 总线与闪存存储器的数据接口相连接(常量加载和调试访问)。; O1 m# B% n7 v2 k6 W
$ s7 a5 ?- G% `$ S: O; z- b 系统总线3 p5 K9 |5 ^( u/ q
& {. m9 p6 k0 S 此总线连接 Cortex-M3 内核的系统总线(外设总线)到总线矩阵, 总线矩阵协调内核和 DMA 间的访问。
: k. D9 I) v- J* j& \! h; Z* t+ G" S9 r& V, B8 r
DMA 总线0 j/ T, C" C6 k4 h
7 I. Q5 a4 y+ o9 [8 F
此总线将DMA的AHB主控接口与总线矩阵相联, 总线矩阵协调着CPU的DCode和 DMA 到 SRAM、闪存和外设的访问。
9 G: D# c, v( J# N' c
4 x) j+ m- q1 a7 e- c3 s- B* Y% m/ v7 m8 X 总线矩阵0 E9 w+ m1 Z. V. V% \- l H, \
$ U+ U, r9 _. a5 Q+ p5 Z. E
总线矩阵协调内核系统总线和 DMA 主控总线之间的访问仲裁, 仲裁利用轮换算法。在互联型产品中,总线矩阵包含 5 个驱动部件(CPU 的 DCode、系统总线、以太网 DMA、 DMA1 总线和 DMA2 总线)和 3 个从部件(闪存存储器接口(FLITF)、SRAM 和 AHB2APB 桥)。AHB 外设通过总线矩阵与系统总线相连,允许 DMA访问。& w! d1 O0 X% Q# B* @
+ P% l# u$ ?2 K9 u
AHB/APB桥(APB)% g% m3 N2 v8 U
6 T/ a, C7 J7 l1 w( P; y
两个 AHB/APB 桥在 AHB 和 2 个 APB 总线间提供同步连接。APB1 操作速度限于 36MHz, APB2 操作于全速(最高 72MHz)。有关连接到每个桥的不同外设的地址映射请参考《STM32F1xx 中文参考手册》存储器映像章节。在每一次复位以后,所有除 SRAM 和 FLITF 以外的外设都被关闭,在使用一个外设之前,必须设置寄存器 RCC_AHBENR 来打开该外设的时钟。
5 N r4 i2 P" v5 J4 }# K STM32F1 的时钟系统相对复杂,在后续文章中再介绍。
2 Y2 ~* h$ {( U Q# n* zSTM32学习进阶路径
: R3 \: l' D/ B& J) L' J' _! x' q W! p5 S9 V( f9 i2 }
基本外设:. ^: T$ Z# E- A' F0 b
9 \. m; \# C# } @$ d9 k r$ } b# Z
GPIO 输入输出,外部中断,定时器,串口。理解了这四个外设,基本就入门一款mcu了。+ Q, s* b6 F* p- |$ m+ s* B9 v
& c4 Q; K2 A; L7 B' |
基本外设接口:, u" F+ w V1 i+ t! _# C
# a& r$ b" Y( l0 I% } SPI,IIC,WDG, FSMC,ADC/DAC,SDIO 等。这些外设接口功能原理对每个芯片几乎都是一样。对芯片而言就是多和少而已。" y0 v; a7 E' O" _3 j
. D6 Y, j3 }3 W; f 高级功能:! ]/ l. |; U6 A- T
+ c# j/ Q& M3 i, h UCOS,fatfs,EMWIN 等,以及一些应用。
, Z4 f- h, C( w2 O 另外值得一提的是,C 语言是嵌入式开发的基础中的基础,相关文章:C语言基础知识点汇总。如果 C 语言不过关,很大程度限制嵌入式学习的进度与深度。在这里推荐入门之后看一下关于c指针的书《C与指针》《C 指针编程之道》。学习嵌入式开发要多动手编程、多调试。 |
|