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

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

[复制链接]
STMCU-管管 发布时间:2021-5-20 17:04
STM32F4的总线架构
- n) ]' h. T; C% l9 b! I- ]% L8 p
总线架构
$ q! s, ^+ j8 t5 [6 U
  & z6 ^# c0 Q& d* M2 f- b
DMA:Direct Memory Access,直接内存存取。1 ?; g, S8 v! C
  
0 Q2 ^- p9 T' |  T八条主控总线:! W# K5 H2 O3 }2 {4 R) w9 w/ D
Cortex-M4 内核I总线,D总线和S总线;$ O6 j/ I1 M/ A3 \6 V
DMA1存储器总线,DMA2存储器总线;
+ w, A9 T! c0 @/ bDMA2外设总线;! `( j7 G" W- S# H
以太网DMA总线;
/ u/ P) y9 s% V8 O  ^8 EUSB OTG HS DMA总线。
% L8 D4 n" @4 h( |! `  s: P' U$ b1 I, ?7 q
1 v- B$ [& o, e( C
七条被控总线:
5 s: S. J/ m+ b! b: N) A% ^7 @! l/ z* B; ?- v& F8 Z

# u, @7 f' [6 A. X, j4 m内部FLASH ICode 总线;! H, f$ R! C( _$ D
内部FLASH DCode 总线;
2 n7 d6 m/ q3 v- p, U& ]主要内部SRAM1(112KB);
7 q. o& ?- V  v4 h辅助内部SRAM2(16KB);
6 }7 W3 f1 a: g! m6 E/ l& `% c辅助内部SRAM3(64KB)(仅适用STM32F42xx/43xx系列器件);
4 l) T, K8 }3 h/ z' k1 h6 a5 }4 U' tAHB1外设和AHB2外设。: V2 s4 B2 Q& D8 Y3 i! b
: P3 R+ x( Z! `( `
I总线(S0):INSTRUCTION,此总线用于将Cortex-M4内核的指令总线连接到总线矩阵。内核通过此总线获取指令,此总线访问的对象是包括代码的存储器。5 v+ y8 v$ c1 f! `1 v. C
  ! E2 K& s6 l# q. Y( c  s6 k+ a& [
D总线(S1):DATA,此总线用于将Cortex-M4数据总线和64KB CCM数据RAM连接到总线矩阵。内核通过此总线进行立即数加载和调试访问。
/ w( V* T& F- D5 ]  : r) V" B; I1 C1 a; ?
S总线:此总线将Cortex-M4内核的系统总线连接到总线矩阵。此总线用于访问位于外设或SRAM中的数据。  t8 M6 d1 f' }/ {% S5 p
  
9 f2 K4 H& r8 o1 u) {& C- ^DMA存储器总线(S3、S4):此总线用于将DMA存储器总线主接口连接到总线矩阵。DMA通过此总线来齿形村粗其数据的传入和传出。. a4 f% s( ~8 M3 B# y
  
/ P# V0 W3 D3 \4 k% |; kDMA外设总线:此总线用于将DMA外设主总线接口连接到总线矩阵。DMA通过此总线访问AHB外设或执行村粗其之间的数据传输。! s& |- ?& d3 |) F
  
. i; u1 {' ^/ i, o0 b以太网DMA总线:此总线用于将以太网DMA主接口连接到总线矩阵。以太网DMA通过此总线向存储器存取数据。$ f8 i! x; y/ ^0 ]
  & m, q+ ?9 @+ J
USB OTG HS DMA总线(S7):此总线用于将USB OTG HS DMA主接口连接到总线矩阵。USB OTG HS DMA 通过此总线想村粗其加载/存储数据。
; P/ P+ ^( ]) t, W  
& |& q5 a6 R. A  l% Y时钟树概述: x, t) R& |: G, f5 P! ~& G' }
  
+ A% E0 r4 l$ }: V9 ?* T9 |在STM32F4中,有5个最重要的时钟源,为HSI、HSE、LSI、PLL。其中PLL实际是分为两个时钟源,分别为主PLL和专用PLL。在这五个中HSI、HSE以及PLL是高速时钟,LSI和LSE是低速时钟。
8 e/ ?* Y5 L% l1 Z& |  " k- q. y' w, f: D
1.LSI 是低速内部时钟,RC振荡器,频率为32kHz左右,供独立看门狗和自动唤醒单元使用。 
: c9 ]9 {0 j7 x2.LSE 是低速外部时钟,接频率为32.768kHz的石英晶体,这个主要是RTC的时钟源。. ^, Z* A- x' D( ~, ~9 ?
3.HSE 是高速外部时钟,可接石英/陶瓷谐振器,或者接外部时钟源,频率范围为 4MHz-26MHz。开发板接的是8M的晶振,HSE也可以直接做为系统时钟或者PLL输入。
  U) r9 @7 w( m0 Z' {, t& G4.HSI 是高速内部时钟,RC振荡器,频率为16MHz。可以直接作为系统时钟或者用作PLL输入。: d& M9 ~  b/ v( X( J
5.PLL 为锁相环倍频输出,STM32F4有两个PLL。
+ I* Q3 Y1 j- h4 D1 ~9 e3 t0 r( {4 t5 u
+ w( u( `1 m& lSTM8的中断控制
1 [2 T! D8 k( A+ C- k! \7 f
; A! A: X6 x9 x6 [+ D2 f, Z内部中断:一般是由硬件错误或者运算过程中出错引起的,一般是不可避免的。
2 x2 _" O- j3 r8 G3 `; K外部中断:是处理器的外设发出的中断请求,如定时器中断,UART接收中断,外部中断一般都可以通过中断控制器进行屏蔽。
4 C- n* z. @; ]% |  g  
. q0 t% @) D! m$ u# j  a4 PITC功能概述
$ t* N* k5 u* x: R" P  
3 l$ ]6 }* a8 G' M, x2 N0 w. e所有IO引脚都具有外部中断能力,每个端口都有独立的中断向量以及独立的标志;外设中断能力。
. Z( e2 c/ \' A& H. s7 I; v2 f  
1 R; m/ `- ~. h/ |, B7 F软件中断能力(TRAP)+ h! p; F6 h+ {6 n5 P. y; X) B
5 w8 M# g5 o  H! Y) z! {" d' K
具有灵活的优先级和中断等级管理,支持可嵌套和同级中断管理:多达4个软件可编程的嵌套等级;最多有32个中断向量,其入口地址由硬件固定。* S6 W/ m2 f8 `& q- C
* {2 F$ y1 U  e5 i! {" |$ F3 J0 o
2个不可避免的中断:RESET,TRAP;1个不可避免的最高优先级硬件中断TL1。
, E# S& D. C" s1 C& W' \! Z& }+ e0 `) _4 v. |: y
中断的主要功能
0 [/ L; q9 _" T# L  
& n1 f6 k! N: a4 X) L* y( ^9 ^7 a: U实现高速CPU和低速外设之间速度的配合;打印机的打印字符的速度比较慢,于是CPU向打印机传送一个字符后,可以去执行其他任务,打印机打印完该字符,向CPU提出中断请。6 ]; P: r3 v$ }
  ) e& L9 h0 @* A7 `+ ~) H. |+ x
可实现实时控制,所有参数可随时向CPU发送中断请求,使控制对象保持最佳工作状态。
- b. b# i$ J  f/ a  
6 Y' P* a9 f7 M2 T" E6 b# P# V* q实现故障的紧急处理。
  H# E4 j8 `& c5 ?, }3 m$ u. s  
" J7 r- n' U1 F* u- j1 ?  O实现人机接口,如键盘。: d$ ^- P9 S* ^+ G' q
  
& S; R1 K* _# H& g中断源和中断向量4 S: ]. z/ b, V0 ?) k9 K: o
  
* b' E0 c) G! l中断源:中断信号的触发源。
' e) q; x' g1 K; d# M* @; ^) i6 Y  ) e& m+ `6 X: h# U
中断向量:每个中断源对应至少一个中断标志,中断源请求CPU中断时,对应的中断标志位发送改变,CPU在每条语句结束检查中断标志位,如果允许中断,则产生中断,CPU将PC指针指向对应中断服务程序入口,改地址就是中断向量。) A3 _) R! R6 ^7 _( _! g/ R" D
  
; s& }( _9 ]' q6 ^- B" F4 B  }在单片机中,中断技术主要用于实时控制,实时控制要求单片机能够及时的响应被控制对象提出的分析,计算和控制等请求,使被控制对象保持在最佳工作状态,以达到预期的最优控制效果,这些中断请求发生使随机的,要求单片机快速响应,是一个复杂的过程:0 q& b1 M, M- }3 ?  O. x" g! F- r& G' \2 c
  5 y' ~: W& ?0 e( @
在每一条指令结束后系统会自动检测中断请求信号,若全局中断和某一中断已经使能,则响应中断,其他操作被挂起;
/ T. h+ b" K' @  M9 F) e
3 {1 H7 ?$ r' u6 A保护现场。CPU一旦响应,PC X,Y,A,和CC寄存器被自动压栈,根据中断控制寄存器中值对应的中断服务向量,CC寄存器被响应设置;& J- }3 i" {3 G9 A6 B) c

* X3 z8 F) Y1 x, R( d+ K  ]7 B' w中断服务。通过中断向量载入中断服务子程序的入口地址,执行中断服务中的函数;
3 V4 q- K# S) p$ G$ ^+ G- G- E, @% K: w& u; `: E0 ]7 f$ E% t$ S
恢复现场并中断返回。中断服务子程序必须以IRET结束,该指令会把堆栈中保存的寄存器内容出栈,CC寄存器被恢复,程序恢复运行。5 [9 W$ q+ i# N$ ^
  2 Y$ K! b9 A: n$ c/ \) g8 ~, p
中断优先级/ t+ F, U7 M- ?. z4 H( D
  1 l2 W! {. z. `7 I8 {3 e( V. b
STM8单片机某个时刻只能处理一个中断,当系统有多个中断源同时发送中断请求,就涉及到中断管理。两种中断管理模式:同时发生模式和嵌套模式。9 q. W' a$ P& S, {4 Q
  
+ g& ]6 Y$ O) A3 o: g同时发生模式:当一个中断响应,在响应执行期间,无论再高优先级的中断,三个不可避免的除外,都无法打断现在曾在响应的中断。当前中断完毕后,会优先触发高优先级的中断。( N1 v0 o( s2 e
    ~. ]+ o: l: p9 i8 Z+ n9 S1 o' B
嵌套模式:当CPU正在响应一个中断过程中,一个比当前优先级高的中断发生,则CPU会暂停当前中断响应,转而响应新的中断。新中断响应完毕后,继续响应原来中断。
6 ?) a/ U) m" ?, h5 w
收藏 评论0 发布时间:2021-5-20 17:04

举报

0个回答
关于意法半导体
我们是谁
投资者关系
意法半导体可持续发展举措
创新和工艺
招聘信息
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
关注我们
st-img 微信公众号
st-img 手机版