单片机

您所在的位置:网站首页 i2c时钟信号谁产生 单片机

单片机

2023-06-03 23:04| 来源: 网络整理| 查看: 265

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连接。


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3