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

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

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

; ]: P. I! x4 R/ v4 h1 X! a
总线架构

* F$ g1 t, q% j. e  
7 L2 s+ l2 p; LDMA:Direct Memory Access,直接内存存取。
) z/ k$ U) U& N  B. f; Z  - y/ n; s- O0 ]8 M! \3 n3 O$ P
八条主控总线:
1 ^5 b, @5 A0 gCortex-M4 内核I总线,D总线和S总线;
' s( x- [( I. s0 I$ L/ mDMA1存储器总线,DMA2存储器总线;# L8 i- C) l; i) t
DMA2外设总线;
% G8 U( X8 i: Y8 J; T0 U& _以太网DMA总线;2 F3 b- s& t7 g; Y6 {& U: e( V' Y
USB OTG HS DMA总线。  [& E: `, T7 _& }. S$ D
& @5 y5 @) X) H2 P

  l! C9 r$ Q( }- u4 Q1 l) b七条被控总线:0 O% e9 b+ `+ U* @1 j# W" N0 A) E

- o: a7 b- y1 @! l+ n) c

1 y- |3 {, k) b- L  @  N, {内部FLASH ICode 总线;  F9 Q$ k9 F% n/ b1 o6 W9 K
内部FLASH DCode 总线;
4 L# W8 N8 E5 c2 w) R7 q- p主要内部SRAM1(112KB);2 D9 h6 f6 _4 _: `% Y& x
辅助内部SRAM2(16KB);
6 z# Q9 \, q# h9 S9 @辅助内部SRAM3(64KB)(仅适用STM32F42xx/43xx系列器件);
0 @: `( A/ ?1 W, rAHB1外设和AHB2外设。/ I% K1 c0 o5 P
2 c1 ]7 R5 _: B; h( S! ~2 t
I总线(S0):INSTRUCTION,此总线用于将Cortex-M4内核的指令总线连接到总线矩阵。内核通过此总线获取指令,此总线访问的对象是包括代码的存储器。4 W& ~; H. |8 h3 J: G$ o
  6 {4 L' T/ h$ C+ C& t  P- E9 j
D总线(S1):DATA,此总线用于将Cortex-M4数据总线和64KB CCM数据RAM连接到总线矩阵。内核通过此总线进行立即数加载和调试访问。. Q7 w: J; l6 _! d3 n5 O+ M
  
: T( p; T/ s9 S# Z; K$ mS总线:此总线将Cortex-M4内核的系统总线连接到总线矩阵。此总线用于访问位于外设或SRAM中的数据。
' d( H9 S7 l* k7 G8 M2 m  
3 ~  t& F( q: g. U0 E- zDMA存储器总线(S3、S4):此总线用于将DMA存储器总线主接口连接到总线矩阵。DMA通过此总线来齿形村粗其数据的传入和传出。8 }' V9 {. M' o/ }" F' |
  
& K- x1 i+ g7 W* ]- @6 eDMA外设总线:此总线用于将DMA外设主总线接口连接到总线矩阵。DMA通过此总线访问AHB外设或执行村粗其之间的数据传输。
# J- d$ W5 j* o3 d& B  
& k( a1 W* O  j  }% m2 _以太网DMA总线:此总线用于将以太网DMA主接口连接到总线矩阵。以太网DMA通过此总线向存储器存取数据。  D- j$ R% d' S5 n+ E5 [: a
  # F7 {' G# r, ]! X) l4 V6 S
USB OTG HS DMA总线(S7):此总线用于将USB OTG HS DMA主接口连接到总线矩阵。USB OTG HS DMA 通过此总线想村粗其加载/存储数据。7 W" {1 x2 a% b  A
  - w" `1 M5 s1 d4 u
时钟树概述
# R- S- j4 k: h6 ?0 q  ~& G3 V( I  / Q  c. j. _) u9 A/ D
在STM32F4中,有5个最重要的时钟源,为HSI、HSE、LSI、PLL。其中PLL实际是分为两个时钟源,分别为主PLL和专用PLL。在这五个中HSI、HSE以及PLL是高速时钟,LSI和LSE是低速时钟。' r" P) o7 K! L
  
: Q$ ~- Q/ o0 r$ w  p/ e, M8 K1.LSI 是低速内部时钟,RC振荡器,频率为32kHz左右,供独立看门狗和自动唤醒单元使用。 
. z+ |& h: @$ Q& k0 q2 s' b7 j2.LSE 是低速外部时钟,接频率为32.768kHz的石英晶体,这个主要是RTC的时钟源。1 e. i2 J  Q9 @6 e( V2 j; K
3.HSE 是高速外部时钟,可接石英/陶瓷谐振器,或者接外部时钟源,频率范围为 4MHz-26MHz。开发板接的是8M的晶振,HSE也可以直接做为系统时钟或者PLL输入。
6 c1 F8 u) g) E4.HSI 是高速内部时钟,RC振荡器,频率为16MHz。可以直接作为系统时钟或者用作PLL输入。
0 f  O4 H9 k2 N( u  |& F5.PLL 为锁相环倍频输出,STM32F4有两个PLL。$ |% Y9 t7 q' \0 a1 @8 F7 Y
, Q8 p* L& ?  N) ~8 [3 t. L8 T- G  c
STM8的中断控制
; b4 ]# ]( O$ a4 E! |
2 r5 z1 j8 T0 x& K内部中断:一般是由硬件错误或者运算过程中出错引起的,一般是不可避免的。
( @& B* W" f  z  N4 P外部中断:是处理器的外设发出的中断请求,如定时器中断,UART接收中断,外部中断一般都可以通过中断控制器进行屏蔽。
! q0 ]9 P; I7 W# O  
0 G* b- G/ C3 ~4 D: bITC功能概述
2 P/ n  K% f. z* c; y4 G' N! P$ k8 C  
2 @* \7 \) _. r2 S) r8 E所有IO引脚都具有外部中断能力,每个端口都有独立的中断向量以及独立的标志;外设中断能力。5 z  S* H' b# l% _
  
; e0 {6 U9 J0 |- j, i4 `% V* D软件中断能力(TRAP)3 V' s0 z% N! o

" M$ o: n7 {, U* {( N6 i具有灵活的优先级和中断等级管理,支持可嵌套和同级中断管理:多达4个软件可编程的嵌套等级;最多有32个中断向量,其入口地址由硬件固定。$ N$ K' U0 e$ k2 X5 J
" s( O4 o. n* c8 H+ r" z: G- C) p
2个不可避免的中断:RESET,TRAP;1个不可避免的最高优先级硬件中断TL1。* w6 n6 ]# D! W# |# j- D" E
; S- L9 V% A$ N$ t
中断的主要功能
  P, t6 u+ a6 Q, x1 |, W  
0 C) K  R  t8 \7 p  O: Y实现高速CPU和低速外设之间速度的配合;打印机的打印字符的速度比较慢,于是CPU向打印机传送一个字符后,可以去执行其他任务,打印机打印完该字符,向CPU提出中断请。
" D+ g/ a. S5 Q& A  
" T) |1 I6 |3 Q* L  w3 b2 T+ P可实现实时控制,所有参数可随时向CPU发送中断请求,使控制对象保持最佳工作状态。
& h6 Q3 k. ]) G  \- a  
% u% q1 q, m2 ]6 x6 l实现故障的紧急处理。
0 W7 Y" \! m: E  
9 a% s* A& I9 k( o/ c实现人机接口,如键盘。
  x1 _) D! Q5 P/ r/ a4 P  ' n" H* c! O8 p8 U; K9 p
中断源和中断向量
3 |% @4 b& l& B* L. }* i8 l7 B* o  
1 g6 |8 M+ D* a" p4 d% j中断源:中断信号的触发源。
) ?' s% Z; ~+ M& E# J3 Z; g  Y  ) R! a; k* S2 D" N
中断向量:每个中断源对应至少一个中断标志,中断源请求CPU中断时,对应的中断标志位发送改变,CPU在每条语句结束检查中断标志位,如果允许中断,则产生中断,CPU将PC指针指向对应中断服务程序入口,改地址就是中断向量。4 ~0 C# |: H/ I3 c9 H8 N$ D( R
  
) y, i( x  c' E9 m5 g5 ?) i/ K) B) K在单片机中,中断技术主要用于实时控制,实时控制要求单片机能够及时的响应被控制对象提出的分析,计算和控制等请求,使被控制对象保持在最佳工作状态,以达到预期的最优控制效果,这些中断请求发生使随机的,要求单片机快速响应,是一个复杂的过程:/ j+ H" F! ?, H. A
  
+ U5 ^) L. l# r6 s0 n1 o9 a' |在每一条指令结束后系统会自动检测中断请求信号,若全局中断和某一中断已经使能,则响应中断,其他操作被挂起;
$ ^% E3 _* T  d: c( b7 ~5 m7 K2 v4 u# O* [3 \, H
保护现场。CPU一旦响应,PC X,Y,A,和CC寄存器被自动压栈,根据中断控制寄存器中值对应的中断服务向量,CC寄存器被响应设置;9 m5 u/ B0 d( l0 n
3 T: l! C: m) I9 C1 P5 S- Y
中断服务。通过中断向量载入中断服务子程序的入口地址,执行中断服务中的函数;) G+ J& {/ ~9 k* e+ ]9 h) z) h
  Z. X; L4 \: ?# X- D
恢复现场并中断返回。中断服务子程序必须以IRET结束,该指令会把堆栈中保存的寄存器内容出栈,CC寄存器被恢复,程序恢复运行。1 {! g, k( r, ^' S
  4 s& d/ c, A, P, ]* Z; h; b
中断优先级3 B0 d1 K" I" _# V1 G1 F
  
. Y- }) d! p8 c1 }7 jSTM8单片机某个时刻只能处理一个中断,当系统有多个中断源同时发送中断请求,就涉及到中断管理。两种中断管理模式:同时发生模式和嵌套模式。- l* u( j( N6 n4 ?: N
  , b, o* L" E# d: |* ^
同时发生模式:当一个中断响应,在响应执行期间,无论再高优先级的中断,三个不可避免的除外,都无法打断现在曾在响应的中断。当前中断完毕后,会优先触发高优先级的中断。1 v. \- S5 ~$ Y
  ( ~2 X, ]6 i4 Z4 r
嵌套模式:当CPU正在响应一个中断过程中,一个比当前优先级高的中断发生,则CPU会暂停当前中断响应,转而响应新的中断。新中断响应完毕后,继续响应原来中断。
& `. ^2 O" H. G  l; l% t
收藏 评论0 发布时间:2021-5-20 17:04

举报

0个回答
关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
st-img 微信公众号
st-img 手机版