请选择 进入手机版 | 继续访问电脑版

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

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

[复制链接]
STMCU-管管 发布时间:2021-5-20 17:04
STM32F4的总线架构

) x8 u; x6 i2 v3 o- m6 b
总线架构
* A' |& l7 q' _0 H: C) M0 g1 r
  
  y6 r, u" i' D1 U9 V8 w  A2 ^3 I6 kDMA:Direct Memory Access,直接内存存取。
8 c% D8 F! E: U* `4 `% c& @  
# H! A1 h; N; v8 }( y八条主控总线:
; J, A5 c' r  x- lCortex-M4 内核I总线,D总线和S总线;
% d3 l. }% t: t/ X: bDMA1存储器总线,DMA2存储器总线;
. U" m, ]/ s$ c: Y& F: y. K9 H( ~DMA2外设总线;
* ?6 S) W  r- [- T  W以太网DMA总线;4 w0 ?' V5 [$ M
USB OTG HS DMA总线。
4 g( m1 f: T0 `6 q9 f- M! f& q5 A4 A& B8 w* d
, F: E  H4 v2 C' z- l8 U
七条被控总线:" _: y4 l8 M* W* e

/ z* C1 g' u. A, S% D2 h

  C" H' ]3 _+ X4 c1 _  S内部FLASH ICode 总线;6 x2 }# ^% D" I& j
内部FLASH DCode 总线;! C) M9 k& g# i6 L5 o; u
主要内部SRAM1(112KB);$ R) o- t* W( P
辅助内部SRAM2(16KB);
) R0 u* L" j2 z7 z9 l/ B: c( B辅助内部SRAM3(64KB)(仅适用STM32F42xx/43xx系列器件);
. Z1 ^# x2 t" Z" ^AHB1外设和AHB2外设。) M' s. }- T6 q& Y, l% s, G

6 ]& _2 A- D' YI总线(S0):INSTRUCTION,此总线用于将Cortex-M4内核的指令总线连接到总线矩阵。内核通过此总线获取指令,此总线访问的对象是包括代码的存储器。; p! U/ ^' w( q  m' \
  : O& \2 ?5 N7 S' Y1 x* D) l
D总线(S1):DATA,此总线用于将Cortex-M4数据总线和64KB CCM数据RAM连接到总线矩阵。内核通过此总线进行立即数加载和调试访问。4 p, }! I  }' [& x- Y3 Q; x; e
  
" ?6 D8 [4 y& }S总线:此总线将Cortex-M4内核的系统总线连接到总线矩阵。此总线用于访问位于外设或SRAM中的数据。+ q- q5 x8 f9 p: W) M* i
  
8 T% ?4 z+ N, q! ~4 VDMA存储器总线(S3、S4):此总线用于将DMA存储器总线主接口连接到总线矩阵。DMA通过此总线来齿形村粗其数据的传入和传出。
1 Q! v+ m- P# X  
9 x% p. ^5 s* J" V% B+ G6 hDMA外设总线:此总线用于将DMA外设主总线接口连接到总线矩阵。DMA通过此总线访问AHB外设或执行村粗其之间的数据传输。7 o" [# Y' \( n* O
  8 g3 L7 e5 U' c; T
以太网DMA总线:此总线用于将以太网DMA主接口连接到总线矩阵。以太网DMA通过此总线向存储器存取数据。
9 ?  ]8 r8 x2 K  
" x  ], q8 X; j$ JUSB OTG HS DMA总线(S7):此总线用于将USB OTG HS DMA主接口连接到总线矩阵。USB OTG HS DMA 通过此总线想村粗其加载/存储数据。# y  E0 b, l# Z& N3 ], p$ o7 a
  
& X% D: i9 Q1 K+ H" z9 F' g. O时钟树概述3 b- g7 m8 @6 V8 X! J! o
  
% r" i2 J: |' ?7 `# f在STM32F4中,有5个最重要的时钟源,为HSI、HSE、LSI、PLL。其中PLL实际是分为两个时钟源,分别为主PLL和专用PLL。在这五个中HSI、HSE以及PLL是高速时钟,LSI和LSE是低速时钟。
0 ?- u9 Q0 G+ {8 ?4 s) R' D  
  y: h! A% W- V" [& `: Z) m1.LSI 是低速内部时钟,RC振荡器,频率为32kHz左右,供独立看门狗和自动唤醒单元使用。   s4 B2 @/ ~& `: B: l; p
2.LSE 是低速外部时钟,接频率为32.768kHz的石英晶体,这个主要是RTC的时钟源。* P* E  D! i' x" k
3.HSE 是高速外部时钟,可接石英/陶瓷谐振器,或者接外部时钟源,频率范围为 4MHz-26MHz。开发板接的是8M的晶振,HSE也可以直接做为系统时钟或者PLL输入。- w7 u8 s% m! [- f3 p9 N, c
4.HSI 是高速内部时钟,RC振荡器,频率为16MHz。可以直接作为系统时钟或者用作PLL输入。# u" k5 n; K' Z/ j3 `* ^6 ~
5.PLL 为锁相环倍频输出,STM32F4有两个PLL。
) q$ w5 ]. t- P3 N6 I2 T5 T! R. _, K5 D; m0 l* T) z! t' S7 A+ f
STM8的中断控制
: _* |8 s+ F* O. }7 ]6 y
8 f5 H$ G+ R3 w, x" M: k2 H内部中断:一般是由硬件错误或者运算过程中出错引起的,一般是不可避免的。; u5 W" u9 i( ~2 H, j# J( Y4 ^
外部中断:是处理器的外设发出的中断请求,如定时器中断,UART接收中断,外部中断一般都可以通过中断控制器进行屏蔽。2 \" [8 I( z! v9 g5 d
  1 O$ t; J+ R  A, b
ITC功能概述9 u4 s+ A+ `/ r0 R9 e& W# m. U6 Q
  " ~: A" o1 l& E! @
所有IO引脚都具有外部中断能力,每个端口都有独立的中断向量以及独立的标志;外设中断能力。
; {# b1 D! G/ _  c7 K& n  
" h; N: i/ g* w' Q0 v+ P( V5 Z) c软件中断能力(TRAP)9 ~1 f  e9 Z. a: D

, [  k; b6 [7 s  A# ~; X具有灵活的优先级和中断等级管理,支持可嵌套和同级中断管理:多达4个软件可编程的嵌套等级;最多有32个中断向量,其入口地址由硬件固定。
3 r7 X% B1 [) {- ?! [% P- J' \0 Z/ A. O
2个不可避免的中断:RESET,TRAP;1个不可避免的最高优先级硬件中断TL1。4 \6 H0 T, E/ g4 ~
3 o1 V' O, E# T. A  U& E  ]* |
中断的主要功能
7 E9 m6 L: d; b7 O+ U: J  - R7 u( w5 d9 O0 g- ^
实现高速CPU和低速外设之间速度的配合;打印机的打印字符的速度比较慢,于是CPU向打印机传送一个字符后,可以去执行其他任务,打印机打印完该字符,向CPU提出中断请。# G* s- D; c7 r* S! h5 }
  
1 n  O. G/ a) Z! P5 [( h* M. Y0 Z( c! O可实现实时控制,所有参数可随时向CPU发送中断请求,使控制对象保持最佳工作状态。
0 u# {9 u  U! g8 x  
9 g! \, s2 s9 R1 \实现故障的紧急处理。
- E' \; e+ |2 |6 c2 }  
" f, M  T. \: _6 ?实现人机接口,如键盘。5 D1 E6 }5 m4 |1 r0 a) [1 g0 a
  
) W# ^& L- L: k% M# F) i中断源和中断向量4 B+ k/ W- F/ S
  
" v& H" b" R  H" K# U- ?中断源:中断信号的触发源。
/ d" C5 ~" E2 A5 D% C& v' @; o  
& e) r' j8 k" M; X' N; |3 u中断向量:每个中断源对应至少一个中断标志,中断源请求CPU中断时,对应的中断标志位发送改变,CPU在每条语句结束检查中断标志位,如果允许中断,则产生中断,CPU将PC指针指向对应中断服务程序入口,改地址就是中断向量。
: O* y) U  W4 `$ }  
" X" l, g* D9 N* f8 x$ ^6 ]9 p( B在单片机中,中断技术主要用于实时控制,实时控制要求单片机能够及时的响应被控制对象提出的分析,计算和控制等请求,使被控制对象保持在最佳工作状态,以达到预期的最优控制效果,这些中断请求发生使随机的,要求单片机快速响应,是一个复杂的过程:
. t/ [4 X/ K: h8 ~% y0 B( h  ( O: @) L9 A# ]0 u3 h- ]9 L; a
在每一条指令结束后系统会自动检测中断请求信号,若全局中断和某一中断已经使能,则响应中断,其他操作被挂起;6 I! s1 D* V. r3 ]8 h1 M; [
- l3 R, o$ |# I
保护现场。CPU一旦响应,PC X,Y,A,和CC寄存器被自动压栈,根据中断控制寄存器中值对应的中断服务向量,CC寄存器被响应设置;3 N& Y0 D# ?5 t) G/ S# I

8 }9 I. k7 D% w6 E! W8 H中断服务。通过中断向量载入中断服务子程序的入口地址,执行中断服务中的函数;' A3 Z  d( o# [) U! L

7 p. N3 w( g. A/ `恢复现场并中断返回。中断服务子程序必须以IRET结束,该指令会把堆栈中保存的寄存器内容出栈,CC寄存器被恢复,程序恢复运行。5 I4 H/ K% ?/ d' m, O
  
8 w: K. _: y/ X4 W" _中断优先级) o% z3 \+ Q4 f, e% n2 ^3 R% Z
  $ F3 }- c- O! S! Y
STM8单片机某个时刻只能处理一个中断,当系统有多个中断源同时发送中断请求,就涉及到中断管理。两种中断管理模式:同时发生模式和嵌套模式。( b5 y; o: N! R  @( _
  
! |! i% a% u' `* `! p7 V* j同时发生模式:当一个中断响应,在响应执行期间,无论再高优先级的中断,三个不可避免的除外,都无法打断现在曾在响应的中断。当前中断完毕后,会优先触发高优先级的中断。
' |. G+ o3 P6 w) Q' l  & N# L! b7 v: L" |7 t- e8 v. u
嵌套模式:当CPU正在响应一个中断过程中,一个比当前优先级高的中断发生,则CPU会暂停当前中断响应,转而响应新的中断。新中断响应完毕后,继续响应原来中断。
+ ~2 Q! [! t/ c0 p( _5 o9 p: P! D% I
收藏 评论0 发布时间:2021-5-20 17:04

举报

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