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

一文看懂STM32F4的总线架构和STM8的中断控制!

[复制链接]
STMCU-管管 发布时间:2021-5-20 17:04
STM32F4的总线架构
0 X  J, Y3 ^2 B6 a
总线架构

! a1 v/ s* P6 t  6 G4 v% Q* T/ D' c6 n
DMA:Direct Memory Access,直接内存存取。; a( K+ t7 i# h& V
  * s3 L3 e/ w4 h, }  p- y+ i% g+ n0 d
八条主控总线:0 }9 s# H4 h8 U# g! j. h6 _# f
Cortex-M4 内核I总线,D总线和S总线;$ w" o% E7 P/ Y/ S
DMA1存储器总线,DMA2存储器总线;
" `2 d: ~4 E5 I4 c0 KDMA2外设总线;' e& E8 R3 B$ p- _: g
以太网DMA总线;1 ?; [! E0 H( l8 M
USB OTG HS DMA总线。& H& a  K* a% k. a9 ?# Q

1 z1 h; t) k' i  M7 j$ H7 V) d

( ^2 |4 m" L: C' t$ W: F( \7 G# c; l七条被控总线:; L5 g; N8 \0 F- a5 n, O
5 D/ Q, `. D7 z5 J

2 F* \' Q$ [" u7 ]内部FLASH ICode 总线;
& U# G2 W$ G3 k7 s* L4 K内部FLASH DCode 总线;, J3 \' I' X* J! J, y
主要内部SRAM1(112KB);) w, O1 m+ N: c1 U$ u$ \
辅助内部SRAM2(16KB);( _9 a2 D4 o% ~. a) f1 x
辅助内部SRAM3(64KB)(仅适用STM32F42xx/43xx系列器件);
' E$ S" |  z# NAHB1外设和AHB2外设。
; u) `4 e+ ~1 j" ?3 C. T9 B3 A9 K; L% d+ `5 Z$ T
I总线(S0):INSTRUCTION,此总线用于将Cortex-M4内核的指令总线连接到总线矩阵。内核通过此总线获取指令,此总线访问的对象是包括代码的存储器。6 B) `* z1 N3 Y% A5 U
  
9 @- c' u, Z7 ]9 k! H% @# @D总线(S1):DATA,此总线用于将Cortex-M4数据总线和64KB CCM数据RAM连接到总线矩阵。内核通过此总线进行立即数加载和调试访问。! w6 r7 r% h" h9 f% [
  
, @, e# r% g6 ^4 u! S3 ~S总线:此总线将Cortex-M4内核的系统总线连接到总线矩阵。此总线用于访问位于外设或SRAM中的数据。6 N& \# l$ V- Z
  
9 y5 V% k. R  o! `DMA存储器总线(S3、S4):此总线用于将DMA存储器总线主接口连接到总线矩阵。DMA通过此总线来齿形村粗其数据的传入和传出。! o1 k, z/ w$ e1 e7 i1 o$ u
  
1 T# w. _" Y) S3 s/ A' L2 iDMA外设总线:此总线用于将DMA外设主总线接口连接到总线矩阵。DMA通过此总线访问AHB外设或执行村粗其之间的数据传输。2 Q& l. z# o' i9 ^' K: P9 n( T
  ' Q+ g7 y: ^- T% _2 ^
以太网DMA总线:此总线用于将以太网DMA主接口连接到总线矩阵。以太网DMA通过此总线向存储器存取数据。
- U' A! p# Z- F$ w2 G: d1 p  
, a$ L! f  l4 g. l4 r( v4 rUSB OTG HS DMA总线(S7):此总线用于将USB OTG HS DMA主接口连接到总线矩阵。USB OTG HS DMA 通过此总线想村粗其加载/存储数据。
( S/ T2 \" H9 M7 g% C5 j  
" O% O% E8 l$ a7 M  w  j时钟树概述
( k3 X4 ]: B' I' f! C  T  
$ Q8 J0 ^2 n" h7 K5 J) ^: L0 C在STM32F4中,有5个最重要的时钟源,为HSI、HSE、LSI、PLL。其中PLL实际是分为两个时钟源,分别为主PLL和专用PLL。在这五个中HSI、HSE以及PLL是高速时钟,LSI和LSE是低速时钟。* k& H  {* m9 w2 P
  
2 i$ M0 y- e. ^1.LSI 是低速内部时钟,RC振荡器,频率为32kHz左右,供独立看门狗和自动唤醒单元使用。 
6 s1 X! d# c" m2.LSE 是低速外部时钟,接频率为32.768kHz的石英晶体,这个主要是RTC的时钟源。' T/ X, Y' d. O& [( J4 H/ P
3.HSE 是高速外部时钟,可接石英/陶瓷谐振器,或者接外部时钟源,频率范围为 4MHz-26MHz。开发板接的是8M的晶振,HSE也可以直接做为系统时钟或者PLL输入。8 p9 j* w' H. f
4.HSI 是高速内部时钟,RC振荡器,频率为16MHz。可以直接作为系统时钟或者用作PLL输入。4 q, T' @) ^' M; p/ H5 q: M: i
5.PLL 为锁相环倍频输出,STM32F4有两个PLL。& Z9 a1 {( r/ j, R' J& m
: |" |; I; \1 O2 @' C
STM8的中断控制
/ t' Q2 I% Y2 |3 s6 R) x
0 f; @. H1 B' g: m+ J2 `内部中断:一般是由硬件错误或者运算过程中出错引起的,一般是不可避免的。5 A- r6 X/ F# F
外部中断:是处理器的外设发出的中断请求,如定时器中断,UART接收中断,外部中断一般都可以通过中断控制器进行屏蔽。) ^( F8 O7 U0 h. |
  
" g( N* m  S6 X( q/ d5 kITC功能概述
  b1 q  j2 C& ^2 v* w: I  0 D% ?; i+ U* a. n, r
所有IO引脚都具有外部中断能力,每个端口都有独立的中断向量以及独立的标志;外设中断能力。
  a! ^5 r& ~% M4 I  
# N; s/ a9 v* q. b: M& E软件中断能力(TRAP), B: t& v* {! ^0 a% w
9 M# d/ d6 i. i  s* m
具有灵活的优先级和中断等级管理,支持可嵌套和同级中断管理:多达4个软件可编程的嵌套等级;最多有32个中断向量,其入口地址由硬件固定。
+ \9 @: F' s# ]7 ~6 o7 |' C6 K0 ?$ R
3 e5 f5 B# ?: p' p5 P& N( w. |2个不可避免的中断:RESET,TRAP;1个不可避免的最高优先级硬件中断TL1。
6 h; E3 o, `/ X: Z
* [! @8 \$ y6 e1 E中断的主要功能
  Z! Z4 \& L6 ~/ g. n( U5 P  
% x! |. g% R6 W5 Y' t实现高速CPU和低速外设之间速度的配合;打印机的打印字符的速度比较慢,于是CPU向打印机传送一个字符后,可以去执行其他任务,打印机打印完该字符,向CPU提出中断请。
% k% l8 @, \1 `  , O+ E( e7 k1 O/ j" ^
可实现实时控制,所有参数可随时向CPU发送中断请求,使控制对象保持最佳工作状态。
, N8 U. ]7 Q' B& }8 |; F* b  
, z: O/ a( r8 H9 S3 r5 k: d* Q实现故障的紧急处理。- K. Z. x6 `, C- X; L- M( A
  
2 Z) P; F0 D; M: k; y/ T# `( h实现人机接口,如键盘。2 w' v2 k/ {7 c$ ], m8 A( r
  " p, y3 P. e* v( _0 |
中断源和中断向量) f8 o& B$ C9 G$ r4 f: ?9 H; J
  % s- ^: j, b# p& j$ R8 |9 A
中断源:中断信号的触发源。
0 V6 N2 {$ c8 o! d  E  
5 H. a/ V( `# S: \5 W中断向量:每个中断源对应至少一个中断标志,中断源请求CPU中断时,对应的中断标志位发送改变,CPU在每条语句结束检查中断标志位,如果允许中断,则产生中断,CPU将PC指针指向对应中断服务程序入口,改地址就是中断向量。3 }' ^4 O+ N/ p0 X" E* n- }( v% Y
  ! q. w! w+ r: E& @
在单片机中,中断技术主要用于实时控制,实时控制要求单片机能够及时的响应被控制对象提出的分析,计算和控制等请求,使被控制对象保持在最佳工作状态,以达到预期的最优控制效果,这些中断请求发生使随机的,要求单片机快速响应,是一个复杂的过程:
- N8 }$ @# i1 N4 h) G. `" P" x$ E, i  8 ]$ N, c4 L  q0 B: j- Z
在每一条指令结束后系统会自动检测中断请求信号,若全局中断和某一中断已经使能,则响应中断,其他操作被挂起;; e8 P# d! j9 A; J$ z2 P$ H6 P+ O; o
2 Y% U3 I9 G- B
保护现场。CPU一旦响应,PC X,Y,A,和CC寄存器被自动压栈,根据中断控制寄存器中值对应的中断服务向量,CC寄存器被响应设置;& q7 ?/ O( i2 {1 K1 g5 F
0 h) T8 J. y' Q0 D3 [8 z
中断服务。通过中断向量载入中断服务子程序的入口地址,执行中断服务中的函数;
2 }5 j9 U7 y8 b4 w) D' B7 m
8 m8 ]1 y$ ]% J% g恢复现场并中断返回。中断服务子程序必须以IRET结束,该指令会把堆栈中保存的寄存器内容出栈,CC寄存器被恢复,程序恢复运行。
3 H, n. S3 s8 M* S0 q- m  F5 ^0 r  ) ^6 k+ E1 H8 h3 n7 v/ y
中断优先级
, {# i* g( |! @3 L9 a  . B6 w; p/ D8 m* z+ T
STM8单片机某个时刻只能处理一个中断,当系统有多个中断源同时发送中断请求,就涉及到中断管理。两种中断管理模式:同时发生模式和嵌套模式。
: _# s: d4 |, q/ Z" s0 y( C  # {3 }9 V# Z. W" D, }
同时发生模式:当一个中断响应,在响应执行期间,无论再高优先级的中断,三个不可避免的除外,都无法打断现在曾在响应的中断。当前中断完毕后,会优先触发高优先级的中断。
! P( Q0 L  T7 r* u& p- p  8 K/ Z9 Q& R* D: y7 t* J% v( U# m8 e
嵌套模式:当CPU正在响应一个中断过程中,一个比当前优先级高的中断发生,则CPU会暂停当前中断响应,转而响应新的中断。新中断响应完毕后,继续响应原来中断。
  s" T' h* Y* b- H2 A
赞 收藏 评论0 发布时间:2021-5-20 17:04

举报

0个回答

所属标签

相似技术帖

官网相关资源

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