你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

STM32相关的底层结构

[复制链接]
aimejia 发布时间:2018-5-22 11:08
本帖最后由 aimejia 于 2018-5-22 11:13 编辑 7 j# l" E8 d( q6 I7 D+ [* g4 t% {
9 M; U5 }/ F$ [9 s
1.芯片结构组成图:' l# w! o/ k6 {+ ^6 Y+ l
1.jpg   l2 z$ C# O$ U" D. {( R0 q

5 g% ]9 X; Y# I6 v: k8 [' `2.STM32内部结构:
2.jpg
2 j' h) f  D( a- R/ V- ~2 {: A% E4 Y" R' L( @
3.Cortex-M3模块结构图:
% K. z3 Z6 p. t5 V: ]) _2 m6 y, L" @% R! T6 p5 k1 u1 z. p
3.jpg 2 A& P1 E, i  d4 B
) ]3 z, M# e. `4 t2 v$ Z. `
4.STM3210X内部结构:
6 Z8 v0 i: N( O7 V% O7 l) _1 L6 e 4.jpg
4 k1 J! n6 Q, f0 Z桥:
9 K  F: \) _1 z  s+ F9 I/ L- ^
! B3 P8 ^; o% i% _) i+ R# i 5.jpg + J; O7 ^. E  u. U
/ T' V7 U; b" {) K/ y
四个主动单元 :
" I6 g/ N0 x6 o2 K- R! y        M3内核的ICode总线(I-bus)、DCode总线(D-bus)、 系统总线(S-bus)、DMA(DMA1、DMA2、以太网DMA)
! z! }: D7 Q4 T9 u' h: A: M) o0 q1 o& Q" W) q9 C
四个被动单元 :1 Y  l% P- A9 V/ k& g0 ^2 e$ h. u
        内部SRAM、内部闪存、FSMC、AHB到APB桥
+ F8 M0 @: R* k4 a3 }; {- V2 l! O( _6 i7 _) m3 y
ICode总线 :
8 Q- L' S: u  c        将M3内核的指令总线与FLASH指令接口相连,用于指令预取
% r# N8 K/ j0 G* h4 B3 v4 A, {3 N& ?4 |
DCode总线:
% ^$ t1 J7 H7 h4 h( k8 y        将M3内核的数据总线与FLASH数据接口相连,常量加载和调试
5 I0 K4 J# o# a: V/ u- `7 n) o0 M! J: s/ T
系统总线 :
: h: n; |/ b8 j3 M        将M3内核的系统总线与总线矩阵相连,协调内核与DMA访问 6 t9 A$ f6 X) {% A& Q, I

% i8 L1 V$ i' d; o0 b4 {DMA总线:
! V8 \. e& l' [5 D; {* m& R        将DMA的AHB主控接口与总线矩阵相连,协调CPU的DCode和DMA到SRAM、闪存、外设的访问/ M1 ^8 z: q( X& p
/ B& |# H6 M! }
总线矩阵:4 F/ \. K4 {/ s1 q! F/ _8 q/ p
        协调内核系统总线和DMA主控总线间的访问仲裁,仲裁采用轮换算法& Q( f* k3 \# y8 ^5 d: |6 @. z
        包含DCode、系统总线、DMA1和DMA2总线、被动单元 : M# m3 h! f- _' J& y8 M! p
6 }* E( C4 R1 Q7 x' v# Q  T
AHB到APB桥 :' N: g: W. z' y. N' R
        两个AHB/APB桥在AHB和两个APB总线间提供同步连接
7 n' V. V9 f6 ^. Q4 Q% r2 k8 m$ n* e        APB1速度限于36MHz,APB2全速最高72MHz; {! \. U% p; j$ s/ s
5 \/ M! ]; [7 |4 R

9 g& G( F" s* N( m一、时钟结构(时钟和复位模块,如参考上半部分所示)
& g9 L) D5 }! T# h' k' q
, h6 m# R. r2 h6 z$ J$ {* T系统复位后,所有外设全部关闭,但 SRAM 和 FLASH接口(FLITF)除外。
" q, m( f* z8 x$ v( Y使用外设之前需打开该外设时钟,设置 RCC——AHBENR 寄存器 。
  F0 W% z0 W! p+ ~: V 6.png
* M  W, j( ^- v' ^7 S, o3 d, d 7.png 1 ~# d/ |4 O+ b' g8 @7 q- y0 ?" W# O
* x" Z* f, j9 m
二、存储结构 :(参考上半部分)
( h5 O- B9 n* ]4 _8 L+ l' Y. T( o*存储组织:; o8 W: h! z- E
        Cortex-M3的存储系统采用统一编址方式,小端方式 4GB 的线性地址空间内,: \+ H( U+ {# a0 X  f
   寻址空间被分成 8 个主块 block0-block7 ,每块512MB。
; c" h4 B& H; n& x9 [9 L4 k, o' R# w( G/ i: U4 }
        片内Flash: 从 0x00000000开始(严格来讲是从0x08000000开始,到0x0800x xxxx结束,程序就烧到里面。); L4 S3 C& w) O
        片内SRAM:从 0x20000000开始(用来保存程序运行时产生的临时数据的随机存储器,运行时变量,堆栈的存放的地方)
8 A8 t+ g2 i8 Y+ d& B, C- ?, V        包括: 5 g, G% ]  H& s- K
                代码空间 ; M6 Y; f2 ^- Y# U. Q+ e6 }
                数据空间 5 K. G: y  n" f0 a. {' T7 W2 u
                位段、位段别名
$ f. }7 ?- v# C8 Z3 H$ I& d                寄存器
# J" `$ g7 [9 l3 y8 D! k5 ]                片上外设
+ a* t. V+ u7 I, u- R                外部存储器 . U6 h" Z1 j5 U, b3 S* o: ]
                外部外设
6 |0 N: `: u/ {0 \# e      拓展延伸:e2prom ,存储掉电需要保存的数据;fsmc总线还可以扩展nor 和nand;* `; T( {8 A. a8 ^
8.png
9 B  K! j: a8 p, }) M( e; b0 t4 [+ N3 ?5 Q
9.png 30.png ( E) h1 ~1 q: D1 h+ a! v  b2 n

$ i4 l8 K9 i4 b2 s 10.png
* v: P9 s8 G9 [- s9 m1 h+ d3 \9 p+ V- K! Z. M; Z- \/ g$ `! w* l
11.png " L  A5 ]0 d1 I! o6 \* T
  M9 d5 Y" s" n) G6 v+ o* K
*FLASH:
# a$ C' G- d. R% d9 S+ q. N! T由 Main Block 和 Information Block组成
- e! J/ `- p1 ~( ]            Main Block:/ r; o: d/ C( I& {3 }; ^
            存放用户程序,最高512KB             地址范围:0x0800 0000 – 0x0807 FFFF
- `% w% q: J4 J2 `! l  ^% [            小容量:16K-32K,最大4Kx64bit,共32x1K页7 d% W7 V+ p- h; @
            中容量:64K-128K,最大16Kx64bit,共128x1K页 5 N9 s( F1 d& P' Y. q: \! L
            大容量:256K-512K,最大64Kx64bit,共256x2K页
* D  G! K+ K8 N            小容量:16K-32K,最大4Kx64bit,共32x1K页 ( _6 n1 J$ B/ B% s8 A& s
            互联型:最大32Kx64bit,共128x2K页1 F5 u- x, B; m/ l3 K
            
( Q( [( }* T3 y( G. ~; P: u$ `         Information Block:
8 }5 r# f) {$ k1 j         System Memory 2KB:0x1FFF F000 – 0x1FFF F7FF ISP Bootloader程序 1 _. ]* g( w, F! m2 E" ~
         Option Bytes 16B:0x1FFF F800 – 0x1FFF F80F( @1 ^5 P; ]1 `9 J7 W4 x
6 Z" E2 a& O* R0 g# N4 e
12.jpg
, B! {3 m. _" D; Z0 k4 N9 l; o0 n, m6 A& }
*SRAM: # I: k5 g- t8 w6 v  |9 G
        最大64KB ! ]! e& h9 ?$ L2 j
        地址范围:0x2000 0000 – 0x2000 FFFF+ L/ K0 M7 J8 d
; A+ @$ p, T! L
*片上外设地址映射:
# j( _* D% c8 R* h3 ?9 K 13.png & h) L/ m* X# E" q- {/ F3 U( D. X

7 i& ]: x$ V- @; _0 w; N1 A" y" o 14.png & F' j8 T  ~- [6 e
* J4 J: k- h! S+ U
15.png
3 x8 e: G! e; {% f! {* t! ?! l2 U6 v2 u6 \' z
16.png
/ h+ |4 ^1 [; k, X' c4 b7 C
' Q2 g* d' Q5 a- O- }*位段(bit-band)、位段别名 :
6 v- k# v8 y4 }: M  M3存储空间中包括两个位段区,该区域即可字操作,又可位操作1 a# t! _* s6 y' r, I* q/ B
            SRAM最低1MB空间: 0x2000 0000 – 0x200F FFFF
% L( y, _8 c5 f, }$ L3 w! C' x            外设最低1MB空间:0x4000 0000 – 0x400F FFFF
1 p) m- m- }6 j" Q+ H  a.为方便位段区的操作,安排了两个32M的位段别名区
0 ?0 c" `& g, S7 ?8 \6 W  b.位段区中每一位 映射 位段别名区中的一个字4 D! ~* a+ [( |  G) v$ L2 k) C
  c.通过对别名区中某个字的读写操作,可以实现对位段区中某一位的读写操作
' _1 \1 j1 o/ [( K* K4 K: [    别名区,2个32MB:7 F; U3 y) m+ z/ z5 ^. ^* G2 L% ~
        SRAM:0x2200 0000 – 0x21FF FFFF ) v. s0 q- r; G3 W3 H8 [9 Q# D
        外设:0x4200 0000 – 0x41FF FFFF
- m6 Z9 j( L6 G  位段别名区中的字与位段区的位映射公式:5 K+ l& N+ D8 n1 l
    bit_word_addr =  bit_band_base + (byte_offset x 32) + bit_number x 4
+ Y9 m) e/ Z0 c: j% D5 `    例如:SRAM位段区中地址0x20000300字节中位2% p/ ]+ c% V3 B
            0x22006008 = 0x22000000 + (0x300 x 32) + (2 x 4): b" t, T. f* i! x) L
6 J) G' T: V( U1 V5 t
    对别名区中某个字进行写操作:该字的第 0 位将影响位段区中对应的位$ l" V7 W" j$ H0 l, t+ G
    对别名区中某个字进行读操作:若位段区中对应的位为 0 则读的结果为 0x0 ,若位段区中对应的位为 1 则读的结果为 0x1
# N/ u7 r  t# K+ T    PS: 对别名区的读写可以实现对位段区中每一位的原子操作,而且仅只需要一条指令即可实现4 a& y2 q& ?7 A$ k5 H& n+ ]1 m

& ~; A. l4 M* ?7 h 17.png
+ h& _- W) Y# U" q2 R- E$ t6 T4 v/ ]
*启动模式 :
" Q  W/ i/ ^( r: s) V7 i: c$ H        STM32系统启动区:0x0000 0000 – 0x0007 FFFF,512KB
# E3 @! K* x9 m3 x" h  [* c        系统启动之后: CPU从位于0x0000 0000地址处的启动区开始执行代码9 O( P9 a: [% }
        该区实际既无FLASH,也无SRAM,通过引导配置后,将实际引导区映射到启动区4 I* r, j  R7 ?3 o+ x+ n
        系统复位后,在SYSCLK第4个上升沿,BOOT管脚的状态被保存,用户通过设置BOOT1,BOOT0的引脚状态选择启动模式0 A/ X; X$ P9 x. w
        CPU从位于0x0000 0000地址处的启动区开始执行代码
, O+ n, G* G5 K8 D# i$ V" x                 0x0000 0000 实际是SP & ~( I) O. S5 Z
                 0x0000 0004 是执行代码的地址
+ N5 Y: x3 w8 s- b0 N         即使被映射到启动区,仍然可以在原存储空间访问相关存储器     * ?" ~4 n8 U  w
         从待机模式退出后,BOOT引脚状态被重新保存,待机时,BOOT管脚需保持3 H* P" F  Q' {* {; T7 ^

  Z+ i1 k6 f/ B+ Z& |& c/ \7 ~   STM32F10x通过配置 BOOT[1:0]引脚选择三种不同启动模式2 ~* e  A' l( S/ V  M
  L8 F& q% @( s' y9 S9 x# Z5 F
18.jpg 4 q# {! q, _% M. {& Q1 ~
# e6 U6 T+ P( f  q, ]
三、片上外设: u+ a8 F  |3 a' q' n% {' j5 l
STM32F10x外设
$ K/ f( ~2 n' L6 a3 C- k& C* d- _& A' h
19.jpg
9 |+ ^6 Y* m6 `/ B4 t  g
7 D# ]3 q  n: b' H9 Q4 b! {STM32F103xx增强型大容量外设
' ?/ @9 e8 ~4 J5 k, N
- h. K* [; g  U1 p) B$ E 20.jpg $ H# f* a# f+ a  p4 i( p6 `) }+ b2 A

+ K" o3 t5 \( V) G- }四、GPIO结构
; U. U# Y- l1 C1 H- U% z9 i) L' o1 r% Z0 Z, x/ Q& V) R
共?(5) x 16个I/O口: - t. a# H; t' Y! U
            PA0 ~ PA15 ) e# `: V$ g) Z% P
            PB0 ~ PB15
6 e% `- y: e8 _8 v5 |            PC0 ~ PC15
2 y2 _/ Z, j6 m6 `  ^            PD0 ~ PD15 + w5 w6 \! B' o6 U0 U5 Q
            PE0 ~ PE155 ~8 }( j) V7 F% o1 r2 k
' h' F4 J8 t+ i: m/ H+ r. w
/ U* \- ^, {4 X- G
3.3V与5V兼容:' M& m: D, N; U+ }9 D2 ~
1 T  {" F/ o+ {2 f# ~
           PA8 ~ PA15
% C' h! u  x4 H# ?& w           PB2 ~ PB4、 PB6 ~PB15
" x0 F* j, n$ W  w           PC6 ~ PC12 # S9 ]- w& u% @) ~; p5 V: ?
           PD0 ~ PD15
, A1 n. l/ a  @4 T5 \           PE0 ~ PE15
/ x  d+ I, p! N( W0 s0 }% m( L8 G8 ^6 o7 G# Y' e/ ^
仅支持3.3V:# ?' q( W, M0 k
( ~' v0 ]7 g, f% K/ o" u
          PA0 ~ PA7,兼做 ADC_IN0 ~ ADC_IN7
# \$ u4 ?( c3 G2 p0 }/ }% w          PB0 ~ PB1,兼做 ADC_IN8 ~ ADC_IN9
  S, y8 E+ A8 i( J5 ?# {0 s2 e          PB5 & Q! G1 E4 Y" t2 [" H
          PC0 ~ PC5,兼做 ADC_IN10 ~ ADC_IN15 ( m% S) k9 N) o0 @+ _
          PC13 ~ PC15
  w) p* I4 @) U2 {; R( j0 s  |  H  B) e' M# c/ K# l; |
23.png
* v. B- w1 e" T+ q9 a1 y7 _+ J! m, w/ V5 S, X6 [" u& j
21.png
& `* f! J) N8 W4 O( Q1 X
+ I# b& e) v: T" [0 U* P4 i' p 24.png
2 s2 @) R& D- a0 v% z% z* K) z
- B' y0 t' b+ H; E, k 25.png 6 F+ Z2 {3 M' C: l6 @
' ~  A+ L; G8 H7 b0 `' n
26.png & ^- P: S: ?8 I* y

( [" A7 l! o) k6 Y引脚 (48 64  ...)
6 i- O& M  U' {开发工具 2 @9 f" @2 j+ ?2 h
22.jpg ; M, S6 j* @. A# _$ D
6 u8 J$ s1 z( U; X" v6 N( c
STM32系列的优点; |0 Z3 X$ E! g& N$ e+ H
7 w! A0 w5 j' R1 o2 N9 g
     先进的内核结构,STM32系列使用了ARM最新的、先进架构Cortex-M3内核) Z% _; a4 j9 d# q& g
           优秀的功耗控制,STM32处理器具有三种低功耗模式
; r3 n$ w% _9 p7 x' y                   运行模式时使用高效的动态耗电机制,在Flash中以72MHz全速运行时,如果开启外部时钟,处理器仅耗电27mA
6 S) I8 v  g" Y                    待机状态时极低耗电,典型值2uA
8 ~$ W5 g* l  E8 [                    电池供电时,提供低电压2.0~3.6V工作能力0 L# G3 i, R1 U! U9 e* t  L
           灵活的时钟控制机制,用户可以根据自己所需的耗电/性能要求进行合理优化% S. c( U1 [2 |5 n7 ^) M! m
           RTC可独立供电,外接纽扣电池供电3 R0 o2 m) u( y! L, w& v3 c( m

+ L% R9 d3 Z" _3 t性能出众而且功能创新的片上外设: d. n. t4 J1 L" j! ~
        STM32 处理器片上外设的优势来源于双 APB 总线结构' ?! L! q) N6 h2 a
        其中有一个高速 APB,速度可达CPU 的运行频率,连接到该总线上的外设能以更高的速度运行, z, j! M( _: Z% d+ f! j& d
                USB:   12Mbit/s         + h) h$ o9 D  p7 M- a& x
                USART:  4.5Mbit/s
5 Z' ?/ Z0 T+ ]                PI:   18Mbit/s      
# w4 G* B& f2 h% V                IIC:    400kHz % D) g. Y+ y% I* V
                GPIO:  18MHz翻转      
3 }( N0 Y- q9 O, K3 Q                PWM:    定时器72MHz输入
/ ]. x9 R$ B; T0 c3 M         针对 MCU 应用中最常见的电机控制,STM32 对片上外围设备进行一些功能创新. l/ I+ ~9 Q) g5 |' G( B$ u4 C
                 内嵌适合三相无刷电机控制的定时器和ADC3 b  E3 [4 F6 k& c" Q
                 高级PWM定时器提供:5 d% d4 m4 ]9 ^& S- n/ r, r
                         6路PWM输出    -> 死去产生     -> 边沿对齐和中心对齐波形 ; N7 Z0 z$ K/ ^
                        编码器输入     -> 霍尔传感器   -> 完整的向量控制环 紧急故障停机、6 g, ~7 s; f( Z' V5 H, o9 [& K
                        可与2路ADC同步、与其它定时器同步 可编程防范机制可用于防止对寄存器的非法写入
' j7 q+ e4 W) v" ~. K) B6 r0 p9 U, u                双通道ADC采样/保持,12位1uS,连续/独立模式,多触发源; P/ m* h# t& \
                等等$ G, H: R+ B. O6 Z

/ Y) v! a+ |- v# p1 d
6 Z" k7 |5 @8 ^; V) I4 h4 K; O! ~4 X% C/ v" B0 l" O) P0 ]& V/ u
转载自无穷山色) N% M! e2 X! `9 k

9 C. z3 E9 {# A+ ?$ R6 a0 k; e4 |! Y3 G; o

' _- f& |# s2 X. Z5 i
6 a7 l- ?6 h: Y
) |4 A! I$ L  Q- b
; }6 _# t# n# l  ~0 j" u9 p! _7 c1 [

5 a+ a! D& Y. v& H0 z) o% s
赞 收藏 评论0 发布时间:2018-5-22 11:08

举报

0个回答
关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
人形机器人运动控制、感知与智能配电
半导体创新技术与应用方向
EE架构与软件定义汽车
12V/48V 汽车智能配电(SPD)
区域控制单元(ZCU)与分区架构
关注我们
st-img 微信公众号
st-img 手机版