单片机--STM中断系统

2023-10-30 11:10
文章标签 系统 中断 单片机 stm

本文主要是介绍单片机--STM中断系统,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

【1】中断系统

1.基本概念

在处理器中,中断相当于对于突发事件的处理过程。

当遇到内部/外部的紧急事件需要处理时,暂时中止当前程序,转而去处理紧急事件,

待处理完毕后,再返回被打断的程序继续向下运行。

示例:

1 看电影                                 正在执行的主程序

2 来电话                                 中断信号

3 暂停电影                              压栈

4 取快递                                 处理中断事件(中断处理函数)

5 继续看电影                          出栈

2.中断的意义

中断能够对突发事件进行及时处理,实现程序的并行化,进而提高CPU的工作效率。

中断提高了CPU效率?

 因为CPU对于没有发生的事情是在不停的在轮询(询问有没有发生?)

在计算机与外围设备之间传送数据,CPU工作速度快,外围设备工作速度慢,形成CPU等待,效率降低。如果没有使用中断,CPU的大量时间可能会浪费在等待操作上。设置中断后,完全消除了CPU在查询方式中的的等待现象,CPU不必花费大量时间等待和查询外围设备工作,就可以使CPU与外设同步工作,大提高了CPU的工作效率。

3.中断处理过程

中断处理过程

   进入中断 

  • 处理器自动保存现场到堆栈里 
  • {PC, xPSR, R0-R3, R12, LR}
  •  一旦入栈结束,ISR便可开始执行

  退出中断

  •  中断前的现场被自动从堆栈中恢复
  •  一旦出栈完成,继续执行被中断打断的指令
  • 出栈的过程也可被打断,使得随时可以响应新的中断而不再进行现场保存

        R0 - R12 

        R13  栈指针 SP       : 指向栈顶地址

        R14 链接寄存器 LR :存放返回地址

        R15 程序计数器 PC :保存要执行的指令地址

4. 中断体系结构

5.NVIC 

嵌套向量中断控制器(Nested Vectored Interrupt Controller) 

 NVIC主要功能

  负责管理中断 (CPU的小助理)

  1)管理中断事件

     每个中断事件都有执行或禁止两种状态,由NVIC负责将中断事件标记为清除和挂起两种状态。 

(当多个中断事件同时到达时,NVIC会优先处理优先级更高的事件)

(当中断执行完成时,NVIC会将中断事件置为清除状态)

  2)支持中断向量化处理

      当中断事件发生时,处理器会将PC置为中断事件入口函数的地址,进而跳转到中断服务程序去执行,这就是个中断(异常)向量,因为每一个异常源或者中断事件都会对应一个服务程序的入口地址,将这些地址按照优先级进行排布后,组成的一张表就称为中断(异常)向量表。

           Cortex-M0内核 可以处理15个内部异常和32个外部中断

           STM32G030 只使用了6个内部异常和28个外部中断

    3)支持中断嵌套 

          3个固定的优先级,都是负值,不能改变。

          四个可编程优先级,用两个bit位表示,00,01,10,11 

          优先级数值越小,优先级等级越高。

       注意

      不同优先级的中断同时发生,优先处理优先级编号较小的那个

      同样优先级的中断同时发生,中断向量号较小的那个优先响应

6.EXTI

    外部事件/中断控制器

   主要功能: 产生中断,产生事件

产生中断的目的,是将信号送入NVIC,进而运行中断服务程序,实现对应功能,是软件级。

产生事件的目的,是将采集到的一个脉冲信号送到某个外设,进而驱动某些设备做出动作,是电路级别的传输,是硬件级的。

   结构框图:

     

  • 编号1是信号输入线,EXTI支持产生多达28个外部事件/中断请求。
  • 编号2是边沿检测电路,用于监测上升沿或下降沿信号。它会根据上升沿触发选择寄存(EXTI_RTSR)和下降沿触发选择寄存器(EXTI_FTSR)对应位的设置来控制信号触发。
  • 边沿检测电路以输入线作为信号输入端,监测是否有边沿跳变,检测到有边沿跳变输出有效信号 1 给编号 3 电路,否则输出无效信号0。
  • 编号3是一个或门电路,信号来源是外部事件或者软件中断/事件寄存器产生。允许我们通过程序控制EXTI_SWIER就可以启动中断/事件线
  • 编号4是一个与门电路,信号来源是编号3送来的信号和中断屏蔽寄存器的值,如果中断屏蔽寄存器为0,也不会将信号送到NVIC,只有编号3送来了中断信号且中断屏蔽寄存器允许产生中断,才会将中断信号送入NVIC.
  • 接下来我们来看看红色虚线指示的电路流程。它是一个产生事件的线路,最终输出一个脉冲信号。
  • 产生事件线路是在编号3电路之后与中断线路有所不同,之前电路都是共用的。
  • 编号5是一个与门电路,信号来源是编号3送来的信号和事件屏蔽寄存器的值,如果事件屏蔽寄存器为0,不会将信号送到脉冲发生器,只有编号3送来了信号且事件屏蔽寄存器允许产生事件,才会将信号送入脉冲发生器(编号6), 进而产生脉冲来控制外部设备做出动作。 这样我们可以简单的控制 EXTI_EMR 来实现是否要产生事件的目的。

 【2】IIC 

IIC(Inter-Integrated Circuit)总线是一种由NXP(原PHILIPS)公司开发的两线式串行总线,用于连接微控制器及其外围设备。多用于主控制器和从器件间的主从通信,在小数据量场合使用,传输距离短,任意时刻只能有一个主机等特性。

在 CPU 与被控 IC 之间、IC 与 IC 之间进行双向传送,高速 IIC 总线一般可达 400kbps 以上。

IIC主要特点

通常我们为了方便把IIC设备分为主设备和从设备,基本上谁控制时钟线(即控制SCL的电平高低变换)谁就是主设备。

(1)IIC主设备功能:主要产生时钟,产生起始信号和停止信号

(2)IIC从设备功能:可编程的IIC地址检测,停止位检测

(3)IIC的一个优点是它支持多主控(multimastering), 其中任何一个能够进行发送和接收的设备都可以成为主总线。一个主控能够控制信号的传输和时钟频率。当然,在任何时间点上只能有一个主控。

(4)支持不同速率的通讯速度,标准速度(最高速度100kHZ),快速(最高400kHZ)

(5)SCL和SDA都需要接上拉电阻 (大小由速度和容性负载决定一般在3.3K-10K之间) 保证数据的稳定性,减少干扰。

(6)IIC是半双工,而不是全双工 ,同一时间只可以单向通信

【3】485

485通信协议是一种广泛应用于工业自动化领域的串行通信协议,其主要特点是支持多节点通信、远距离传输、高速传输和抗干扰能力强。485通信协议:

(1)物理层:485通信协议采用差分信号传输,即采用两个信号线(A、B)分别传输正向和反向的信号,而接收器则通过两个信号线的差值来判断数据的高低电平。由于采用了差分传输,485通信协议的抗干扰能力比较强,适合在电磁干扰比较强的工业环境中使用。

(2)数据链路层:485通信协议的数据链路层包括了帧同步、地址、数据、校验等部分。其中帧同步由起始位、数据位和停止位组成,地址用于标识数据帧的接收节点,数据包含了实际的数据信息,校验用于检验数据的正确性。

(3)传输速率:485通信协议支持多种传输速率,例如最常用的9600、19200、38400、115200等。传输速率越高,数据传输速度越快,但也会带来传输距离短和抗干扰能力弱的问题。

(4)多节点通信:485通信协议支持多节点通信,即多个节点可以通过同一条485总线进行通信。为了避免数据冲突,485通信协议采用了主从通信方式,即只有主机才能主动向从机发送数据,而从机只能在主机的请求下发送数据。

485就是用来通讯的。就像我们学单片机用的串口:UART、IIC、SPI等,是为了两个设备之间交换数据的。
使用485因为传输数据用的是差分信号,利用两根双绞线进行传输,抗干扰能力强,这是它相对于以上通讯方式最大的优点。

在这里插入图片描述


可以看到左边的网络标号有RXD与TXD,它就是接UART的那两个线。不过比UART多了一个choose,其作为接受和发送的选择端,二者选其一,所以485为半双工通讯。
右边的A和B就是输出差分信号的线,与其他的485器件的A和B连接。

这篇关于单片机--STM中断系统的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/307504

相关文章

51单片机学习记录———定时器

文章目录 前言一、定时器介绍二、STC89C52定时器资源三、定时器框图四、定时器模式五、定时器相关寄存器六、定时器练习 前言 一个学习嵌入式的小白~ 有问题评论区或私信指出~ 提示:以下是本篇文章正文内容,下面案例可供参考 一、定时器介绍 定时器介绍:51单片机的定时器属于单片机的内部资源,其电路的连接和运转均在单片机内部完成。 定时器作用: 1.用于计数系统,可

零基础STM32单片机编程入门(一)初识STM32单片机

文章目录 一.概要二.单片机型号命名规则三.STM32F103系统架构四.STM32F103C8T6单片机启动流程五.STM32F103C8T6单片机主要外设资源六.编程过程中芯片数据手册的作用1.单片机外设资源情况2.STM32单片机内部框图3.STM32单片机管脚图4.STM32单片机每个管脚可配功能5.单片机功耗数据6.FALSH编程时间,擦写次数7.I/O高低电平电压表格8.外设接口

通信系统网络架构_2.广域网网络架构

1.概述          通俗来讲,广域网是将分布于相比局域网络更广区域的计算机设备联接起来的网络。广域网由通信子网于资源子网组成。通信子网可以利用公用分组交换网、卫星通信网和无线分组交换网构建,将分布在不同地区的局域网或计算机系统互连起来,实现资源子网的共享。 2.网络组成          广域网属于多级网络,通常由骨干网、分布网、接入网组成。在网络规模较小时,可仅由骨干网和接入网组成

Linux系统稳定性的奥秘:探究其背后的机制与哲学

在计算机操作系统的世界里,Linux以其卓越的稳定性和可靠性著称,成为服务器、嵌入式系统乃至个人电脑用户的首选。那么,是什么造就了Linux如此之高的稳定性呢?本文将深入解析Linux系统稳定性的几个关键因素,揭示其背后的技术哲学与实践。 1. 开源协作的力量Linux是一个开源项目,意味着任何人都可以查看、修改和贡献其源代码。这种开放性吸引了全球成千上万的开发者参与到内核的维护与优化中,形成了

PS系统教程25

介绍软件 BR(bridge) PS 配套软件,方便素材整理、管理素材 作用:起到桥梁作用 注意:PS和BR尽量保持版本一致 下载和安装可通过CSDN社区搜索,有免费安装指导。 安装之后,我们打开照片只需双击照片,就自动在Ps软件中打开。 前提:电脑上有PS软件 三种预览格式 全屏预览 评星级 直接按数字键就可以 方向键可以更换图片 esc退出 幻灯片放

风水研究会官网源码系统-可展示自己的领域内容-商品售卖等

一款用于展示风水行业,周易测算行业,玄学行业的系统,并支持售卖自己的商品。 整洁大气,非常漂亮,前端内容均可通过后台修改。 大致功能: 支持前端内容通过后端自定义支持开启关闭会员功能,会员等级设置支持对接官方支付支持添加商品类支持添加虚拟下载类支持自定义其他类型字段支持生成虚拟激活卡支持采集其他站点文章支持对接收益广告支持文章评论支持积分功能支持推广功能更多功能,搭建完成自行体验吧! 原文

Django 路由系统详解

Django 路由系统详解 引言 Django 是一个高级 Python Web 框架,它鼓励快速开发和干净、实用的设计。在 Django 中,路由系统是其核心组件之一,负责将用户的请求映射到相应的视图函数或类。本文将深入探讨 Django 的路由系统,包括其工作原理、配置方式以及高级功能。 目录 路由基础URL 映射路由参数命名空间URL 反向解析路由分发include 路由路由修饰符自

【图像识别系统】昆虫识别Python+卷积神经网络算法+人工智能+深度学习+机器学习+TensorFlow+ResNet50

一、介绍 昆虫识别系统,使用Python作为主要开发语言。通过TensorFlow搭建ResNet50卷积神经网络算法(CNN)模型。通过对10种常见的昆虫图片数据集(‘蜜蜂’, ‘甲虫’, ‘蝴蝶’, ‘蝉’, ‘蜻蜓’, ‘蚱蜢’, ‘蛾’, ‘蝎子’, ‘蜗牛’, ‘蜘蛛’)进行训练,得到一个识别精度较高的H5格式模型文件,然后使用Django搭建Web网页端可视化操作界面,实现用户上传一

OSG数学基础:坐标系统

坐标系是一个精确定位对象位置的框架,所有的图形变换都是基于一定的坐标系进行的。三维坐标系总体上可以分为两大类:左手坐标系和右手坐标系。常用的坐标系:世界坐标系、物体坐标系和摄像机坐标系。 世界坐标系 世界坐标系是一个特殊的坐标系,它建立了描述其他坐标系所需要的参考框架。从另一方面说,能够用世界坐标系来描述其他坐标系的位置,而不能用更大的、外部的坐标系来描述世界坐标系。世界坐标系也被广泛地

LoRaWAN在嵌入式网络通信中的应用:打造高效远程监控系统(附代码示例)

引言 随着物联网(IoT)技术的发展,远程监控系统在各个领域的应用越来越广泛。LoRaWAN(Long Range Wide Area Network)作为一种低功耗广域网通信协议,因其长距离传输、低功耗和高可靠性等特点,成为实现远程监控的理想选择。本文将详细介绍LoRaWAN的基本原理、应用场景,并通过一个具体的项目展示如何使用LoRaWAN实现远程监控系统。希望通过图文并茂的讲解,帮助读