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

张凯  17021211151

转载至:

嵌牛导读:STM32F4的总线架构和STM8的终端控制

嵌牛鼻子:嵌入式

嵌牛提问:STM8价格不菲,有没有国产替代芯片?

嵌牛正文:

STM32F4的总线架构

总线架构

DMA:Direct Memory Access,直接内存存取。

八条主控总线:

Cortex-M4 内核I总线,D总线和S总线;

DMA1存储器总线,DMA2存储器总线;

DMA2外设总线;

以太网DMA总线;

USB OTG HS DMA总线。

七条被控总线:

内部FLASH ICode 总线;

内部FLASH DCode 总线;

主要内部SRAM1(112KB);

辅助内部SRAM2(16KB);

辅助内部SRAM3(64KB)(仅适用STM32F42xx/43xx系列器件);

AHB1外设和AHB2外设。

I总线(S0):INSTRUCTION,此总线用于将Cortex-M4内核的指令总线连接到总线矩阵。内核通过此总线获取指令,此总线访问的对象是包括代码的存储器。

D总线(S1):DATA,此总线用于将Cortex-M4数据总线和64KB CCM数据RAM连接到总线矩阵。内核通过此总线进行立即数加载和调试访问。

S总线:此总线将Cortex-M4内核的系统总线连接到总线矩阵。此总线用于访问位于外设或SRAM中的数据。

DMA存储器总线(S3、S4):此总线用于将DMA存储器总线主接口连接到总线矩阵。DMA通过此总线来齿形村粗其数据的传入和传出。

DMA外设总线:此总线用于将DMA外设主总线接口连接到总线矩阵。DMA通过此总线访问AHB外设或执行村粗其之间的数据传输。

以太网DMA总线:此总线用于将以太网DMA主接口连接到总线矩阵。以太网DMA通过此总线向存储器存取数据。

USB OTG HS DMA总线(S7):此总线用于将USB OTG HS DMA主接口连接到总线矩阵。USB OTG HS DMA 通过此总线想村粗其加载/存储数据。

时钟树概述

在STM32F4中,有5个最重要的时钟源,为HSI、HSE、LSI、PLL。其中PLL实际是分为两个时钟源,分别为主PLL和专用PLL。在这五个中HSI、HSE以及PLL是高速时钟,LSI和LSE是低速时钟。

1.LSI 是低速内部时钟,RC振荡器,频率为32kHz左右,供独立看门狗和自动唤醒单元使用。

2.LSE 是低速外部时钟,接频率为32.768kHz的石英晶体,这个主要是RTC的时钟源。

3.HSE 是高速外部时钟,可接石英/陶瓷谐振器,或者接外部时钟源,频率范围为 4MHz-26MHz。开发板接的是8M的晶振,HSE也可以直接做为系统时钟或者PLL输入。

4.HSI 是高速内部时钟,RC振荡器,频率为16MHz。可以直接作为系统时钟或者用作PLL输入。

5.PLL 为锁相环倍频输出,STM32F4有两个PLL。

STM8的中断控制

内部中断:一般是由硬件错误或者运算过程中出错引起的,一般是不可避免的。

外部中断:是处理器的外设发出的中断请求,如定时器中断,UART接收中断,外部中断一般都可以通过中断控制器进行屏蔽。

ITC功能概述

所有IO引脚都具有外部中断能力,每个端口都有独立的中断向量以及独立的标志;外设中断能力。

软件中断能力(TRAP)

具有灵活的优先级和中断等级管理,支持可嵌套和同级中断管理:多达4个软件可编程的嵌套等级;最多有32个中断向量,其入口地址由硬件固定。

2个不可避免的中断:RESET,TRAP;1个不可避免的最高优先级硬件中断TL1。

中断的主要功能

实现高速CPU和低速外设之间速度的配合;打印机的打印字符的速度比较慢,于是CPU向打印机传送一个字符后,可以去执行其他任务,打印机打印完该字符,向CPU提出中断请。

可实现实时控制,所有参数可随时向CPU发送中断请求,使控制对象保持最佳工作状态。

实现故障的紧急处理。

实现人机接口,如键盘。

中断源和中断向量

中断源:中断信号的触发源。

中断向量:每个中断源对应至少一个中断标志,中断源请求CPU中断时,对应的中断标志位发送改变,CPU在每条语句结束检查中断标志位,如果允许中断,则产生中断,CPU将PC指针指向对应中断服务程序入口,改地址就是中断向量。

在单片机中,中断技术主要用于实时控制,实时控制要求单片机能够及时的响应被控制对象提出的分析,计算和控制等请求,使被控制对象保持在最佳工作状态,以达到预期的最优控制效果,这些中断请求发生使随机的,要求单片机快速响应,是一个复杂的过程:

在每一条指令结束后系统会自动检测中断请求信号,若全局中断和某一中断已经使能,则响应中断,其他操作被挂起;

保护现场。CPU一旦响应,PC X,Y,A,和CC寄存器被自动压栈,根据中断控制寄存器中值对应的中断服务向量,CC寄存器被响应设置;

中断服务。通过中断向量载入中断服务子程序的入口地址,执行中断服务中的函数;

恢复现场并中断返回。中断服务子程序必须以IRET结束,该指令会把堆栈中保存的寄存器内容出栈,CC寄存器被恢复,程序恢复运行。

中断优先级

STM8单片机某个时刻只能处理一个中断,当系统有多个中断源同时发送中断请求,就涉及到中断管理。两种中断管理模式:同时发生模式和嵌套模式。

同时发生模式:当一个中断响应,在响应执行期间,无论再高优先级的中断,三个不可避免的除外,都无法打断现在曾在响应的中断。当前中断完毕后,会优先触发高优先级的中断。

嵌套模式:当CPU正在响应一个中断过程中,一个比当前优先级高的中断发生,则CPU会暂停当前中断响应,转而响应新的中断。新中断响应完毕后,继续响应原来中断。

你可能感兴趣的:(一文看懂STM32F4的总线架构和STM8的中断控制)