ch输入输出与中断技术_第1页
ch输入输出与中断技术_第2页
ch输入输出与中断技术_第3页
ch输入输出与中断技术_第4页
ch输入输出与中断技术_第5页
已阅读5页,还剩82页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、page2022-3-27西安邮电学院 计算机学院1第第6章章输入输入/输出与中断技术输出与中断技术 page西安邮电学院 计算机学院22022-3-27第6章 目录6.1 计算机接口概述6.2 输入输出接口电路6.3 CPU与外设的数据传输控制方式 6.4 ARM中的GPIO 6.5 中断技术 6.6 ARM中断系统基础 page西安邮电学院 计算机学院32022-3-276.1 计算机接口概述n计算机硬件由控制器、运算器、存储器、输入设备和输出设备等5部分组成 。n处理器的强大功能必须通过外部设备(简称外设)才能得以呈现 。n计算机外设在接入到计算机系统时需要接口电路桥接-用于完成主机与物

2、理外设的桥接与控制。n在本课程中所研讨的“外设”是指外设接口,注重于工作原理研讨。page西安邮电学院 计算机学院42022-3-276.2 输入输出接口电路 计算机中的输入输出接口电路用于将物理外设连接入计算机系统,在计算机系统中起着物理外设与计算机主机之间桥接、适配作用。page西安邮电学院 计算机学院52022-3-27输入输出接口电路的基本功能与端口分类输入输出接口电路的基本功能与端口分类接口-具有物理连接的含义,物理外设通过接口电路接入到计算机。 接口电路-是实现接口的主要组成部分,用于将物理外设桥接到计算机系统总线。从CPU角度看到的外设实质上是外设的接口电路,它是物理外设的抽象,

3、并不一定是具体的物理外设装置,更具有原理代表性。page西安邮电学院 计算机学院62022-3-27输入输出接口电路的基本功能与端口分类输入输出接口电路的基本功能与端口分类u状态信息(输入)- 用于标示设备的状态情况 。 u数据信息(输入/输出)- 要传送的二进制目标数据。u控制信息(输出)- 控制外设的工作方式与具体操作。 对应于上述的三种信息,外设接口电路中的端口寄存器也分为了三类:状态端口(寄存器)、数据端口(寄存器)和控制端口(寄存器)。 page西安邮电学院 计算机学院72022-3-27输入输出接口电路的基本功能与端口分类输入输出接口电路的基本功能与端口分类 I/O接口的典型结构示

4、意图 page西安邮电学院 计算机学院82022-3-27I/O端口的编址端口的编址 u 计算机硬件系统中可以含有多个I/O接口,每个I/O接口中又可以含有多个I/O端口(寄存器)。 u 端口寄存器在计算机系统中象存储器单元一样被编址,称之为端口地址,处理器通过端口地址可对各个端口寻址访问,实现对外设的访问控制。page西安邮电学院 计算机学院92022-3-27I/O端口的编址端口的编址 u统一编址方式-I/O端口与内存单元统一编址在一个地址空间。只是分布在不同的地址空间区域。特点,处理器无专用的I/O指令,无专用的I/O访问控制管脚。 u独立编址方式 - I/O端口与内存单元分别编址在I/

5、O地址空间和内存地址空间。特点,处理器有专用的I/O指令,有专用的I/O访问控制管脚。 page西安邮电学院 计算机学院102022-3-27I/O端口的编址端口的编址 u 接口 和 端口是两个不同的概念 。u 接口 -侧重于物理连接;u 端口 - 侧重于接口的内部工作方式。u 接口由若干个端口加上相应的控制电路构成。u 每个端口都对应于接口电路中的各个工作寄存器。 外设通过接口连接入计算机系统,计算机通过端口访问控制外设工作。page西安邮电学院 计算机学院112022-3-276.3 CPU与外设的数据传输控制方式与外设的数据传输控制方式n 外设的多样性使外设的属性差异极大,需要不同的数据

6、传送控制方式。n 处理器与外设之间的数据传送方式主要有:无条件数据访问方式,状态查询方式数据访问方式,中断方式数据访问方式和直接存储器访问(DMA)方式等几种方式。page西安邮电学院 计算机学院122022-3-27无条件数据访问方式无条件数据访问方式 u如:状态开关(按键)、继电器、数码管、发光二极管等设备,计算机可随时访问,而不需顾及其当时的状态。u 无条件外设-输入设备总是准备好向CPU提供数据,输出设备总是准备好接收CPU送来的数据。u CPU对此类外设进行输入/输出操作时无需考虑外设的状态,直接读/写数据端口即可 。u 这一类I/O设备的访问控制最简单 。page西安邮电学院 计算

7、机学院132022-3-27无条件数据访问方式无条件数据访问方式 u任何设备都不能长期占用系统总线;u输入设备要经过三态缓冲器相连到系统总线;u输出设备要经过数据锁存器相连到系统总线;思考:处理器的数据总线仅传送操作数,这个说法对吗? 处理器运行的指令码也是通过数据总线从内存加载到CPU!page西安邮电学院 计算机学院142022-3-27无条件数据访问方式无条件数据访问方式 page西安邮电学院 计算机学院152022-3-27无条件数据访问方式无条件数据访问方式 page西安邮电学院 计算机学院162022-3-27状态查询数据访问方式状态查询数据访问方式 u有一些外设,处理器在对其进行

8、访问时需要关心其状态,只有状态许可时方可对外设进行访问。如:AD转换器、串行通信、打印机等,这类外设称之为-条件访问外设。u CPU对此类外设进行输入/输出操作时需考虑外设的状态,只有外设处于准备好状态时,方可访问数据端口。page西安邮电学院 计算机学院172022-3-27状态查询数据访问方式状态查询数据访问方式 u 状态查询方式的原理:在执行数据端口访问指令前,要先查询该设备的状态,当设备处于准备好状态时,CPU才执行对设备数据端口的输入/输出指令,与外设交换信息;否则,等待。 page西安邮电学院 计算机学院182022-3-27状态查询数据访问方式状态查询数据访问方式 page西安邮

9、电学院 计算机学院192022-3-27状态查询数据访问方式状态查询数据访问方式 分析:外设速度比较慢,高速的CPU被迫查询、停等;CPU的运算能力被浪费。改进思路:将CPU查询、停等改为由外设主动上报状态。page西安邮电学院 计算机学院202022-3-27中断方式数据访问中断方式数据访问 当外设需要与CPU进行信息交换时,由外设主动向CPU发出数据传送请求信号(中断申请),CPU响应此请求信号后(中断响应),暂停正在执行的程序,转去执行该外设的数据输入/输出操作程序(中断服务程序-ISR),外设数据端口访问后,CPU再继续执行被暂停的程序(中断返回)。备注:慢速的外设与高速的CPU并行工

10、作,充分发挥CPU的处理能力。page西安邮电学院 计算机学院212022-3-27中断方式数据访问中断方式数据访问 page西安邮电学院 计算机学院222022-3-276.4 ARM中的中的GPIO概述 GPIO(General Purpose Input/Output ports-通用输入/输出端口)是ARM系列芯片中的基本资源,用于二值化数据(数字电路的0/1)的输入和输出。u 测取输入GPIO管脚的 高/低 电平状态;u 在输出GPIO管脚上输出 高/低 电平。page西安邮电学院 计算机学院232022-3-27概述ARM芯片GPIO管脚的输入/输出应用 page西安邮电学院 计算

11、机学院242022-3-27概述u ARM芯片的GPIO引脚可分别设置为输入属性或输出属性。u GPIO用于将外部装置连接到计算机系统。u设置为输入属性的GPIO对输入的高低电平数据起着选通、隔离的作用。u 设置为输出属性的GPIO对输出数据起着锁存的作用。page西安邮电学院 计算机学院252022-3-27概述u LPC2000系列ARM芯片的GPIO资源:在芯片复位后,所有GPIO口默认为输入状态。以端口(32bit字)为单位,对GPIO端口进行访问;可以独立控制每位GPIO口的方向属性(输入或输出);可以独立控制每位GPIO口的输出状态(1/0);不同系列的芯片具有不同数量的GPIO

12、page西安邮电学院 计算机学院262022-3-27GPIO原理及端口寄存器说明对于编程者而言,计算机中的各种资源都可被抽象成 “寄存器” 组;LPC2000系列芯片的每个 GPIO 组件可抽象为5个32位的寄存器: PINSELx、IOxDIR、IOxSET、IOxCLR和IOxPIN uARM芯片GPIO资源概述:page西安邮电学院 计算机学院272022-3-27GPIO原理及端口寄存器说明uGPIO寄存器模型原理 :page西安邮电学院 计算机学院282022-3-27GPIO原理及端口寄存器说明uGPIO相关寄存器说明 :序号序号寄存器名称寄存器名称说说 明明访问访问属性属性复位

13、复位默认值默认值1PINSELx管脚功能选择寄存器;R/W0 x002IOxDIR输入/输出方向选择寄存器;R/W0 x003IOxSET输出1控制寄存器;写10 x004IOxCLR输出0控制寄存器;写10 x005IOxPIN管脚状态输入寄存器;RNApage西安邮电学院 计算机学院292022-3-27GPIO原理及端口寄存器说明uGPIO相关寄存器说明 :1、PINSELx :用于编码选择对应管脚的功能;32bit 寄存器,每 2bit 为一组,用于控制(选择)对应引脚的功能,00 - GPIO功能; 复位默认值:0 x0000 0000; 备注:详见7.3小节管脚链接模块 。page

14、西安邮电学院 计算机学院302022-3-27GPIO原理及端口寄存器说明uGPIO相关寄存器说明 :2、IOxDIR :设置GPIO管脚输入/输出属性;32bit 寄存器,每 1bit 为一组,用于控制(选择)对应引脚的输入、输出属性;1-输出,0-输入 ; 复位默认值:0 x0000 0000;page西安邮电学院 计算机学院312022-3-27GPIO原理及端口寄存器说明uGPIO相关寄存器说明 :3、IOxSET :输出高电平(1)控制寄存器 ;32bit 寄存器,每 1bit 为一组,用于控制(选择)对应引脚的输出高电平;当管脚设置为GPIO功能、输出属性时,向本寄存器某些位写1,

15、对应的管脚将输出高电平;该寄存器写0无效 ; 复位默认值:0 x0000 0000;page西安邮电学院 计算机学院322022-3-27GPIO原理及端口寄存器说明uGPIO相关寄存器说明 :4、IOxCLR :输出低电平(0)控制寄存器 ;32bit 寄存器,每 1bit 为一组,用于控制(选择)对应引脚的输出低电平;当管脚设置为GPIO功能、输出属性时,向本寄存器某些位写1,对应的管脚将输出低电平;该寄存器写0无效 ; 复位默认值:0 x0000 0000;page西安邮电学院 计算机学院332022-3-27GPIO原理及端口寄存器说明uGPIO相关寄存器说明 :5、IOxPIN :输

16、入对应管脚的状态 ;32bit 寄存器,只读;当管脚设置为GPIO功能、输入属性时,每 1bit 对应反映相应引脚的电平高低状态(1/0);page西安邮电学院 计算机学院342022-3-27GPIO原理及端口寄存器说明uLPC2000系列器件GPIO资源:端口号(Px)不同芯片所具有的GPIO口LPC2114 / 2124LPC2131/2132/2134/2136/2138LPC2220 / 2210 / 2212 / 2214P0P0.0P0.25、P0.27P0.30P0.0p0.23、P0.24p0.31P0.0P0.25、P0.27P0.30P1P1.16P1.31P1.16P1

17、.31P1.0p1.1、P1.16P1.31P2NoNoP2.0P2.31P3NoNoP3.0P3.31最多可用最多可用GPIOGPIO引脚数量引脚数量4647112page西安邮电学院 计算机学院352022-3-27应用举例要求:两个按键K1、K2分别用于控制发光二极管LED和蜂鸣器Beep;有K1键按下,则LED点亮,K2键按下则Beep鸣响,反之熄灭、静音。 GPIO资源分配表 序号引脚属性用途1P0.0InK1按键2P0.1InK2按键3P0.7OutBeep,1鸣4P0.8OutLED,1亮page西安邮电学院 计算机学院362022-3-27应用举例硬件原理图page西安邮电学院

18、 计算机学院372022-3-27应用举例-代码清单#define K1 1 0 / K1按键连接与P0.0管脚, K1按下时P0.0为低电平#define K2 1 1 / K2按键连接与P0.1管脚, K2按下时P0.1为低电平#define BEEP 1 7 / P0.7控制蜂鸣器,高电平蜂鸣#define LED 1 0; dly-)for (i=0; i50000; i+);page西安邮电学院 计算机学院382022-3-27应用举例-代码清单/* 函数名称 :main()* 函数功能 :有K1键按下,则LED点亮,K2键按下则Beep鸣响,* 反之熄灭、静音。*/int main

19、 (void) PINSEL0 = 0 x00000000; / P015:0管脚用做GPIO功能 IO0DIR = IO0DIR &( K1); / 设置K1控制口为输入 IO0DIR = IO0DIR &( K2); / 设置K2控制口为输入 IO0DIR = IO0DIR | BEEP; / 设置BEEP控制口为输出 IO0DIR = IO0DIR | LED;/ 设置LED控制口为输出 IO0CLR = IO0CLR | BEEP | LED; / BEEP、LED 输出低电平page西安邮电学院 计算机学院392022-3-27应用举例-代码清单while (1) i

20、f (IO0PIN & K1) = = 0)IO0SET = LED; / 如果K1按下,LED点亮 else IO0CLR = LED; / 松开则熄灭 if (IO0PIN & K2) = = 0)IO0SET = BEEP; / 如果K2按下,蜂鸣器鸣叫 else IO0CLR = BEEP;/ 松开则静音DelayNS(50);/ 延时 50 个时间单位 return 0;page西安邮电学院 计算机学院402022-3-27中的GPIO应用小节uARM器件编程注意事项:1、深入研讨相关寄存器的功用,理解其底层原理;2、对于寄存器“写”操作,要求使用:“读修改写”方式

21、完成。目的:寄存器的写操作,不要影响其它位的数据。 uGPIO应用编程注意事项:1、 IOxDIR、IOxSET、IOxCLR和IOxPIN只有在PINSELx选择为GPIO功能时有效;2、 IOxSET、IOxCLR只有在IOxDIR选择为输出时有意义。 page西安邮电学院 计算机学院412022-3-276.5 中断技术日常生活中的例子:读书-接听电话-接待来访 基本概念page西安邮电学院 计算机学院422022-3-27计算机中的中断 - 在CPU执行程序过程中,一些急迫事件(中断申请),引起CPU暂停正在执行的程序,转去执行该事件的特定处理程序(中断服务程序-ISR),执行完毕后,

22、CPU再返回到被暂停的程序继续执行。 基本概念page西安邮电学院 计算机学院432022-3-27uIO操作 - 高速的CPU访问慢速的外设;u实时处理 - 导弹飞行控制等;u程序运行中的出错处理 - 除数为0,存储器访问异常等;u操作系统功能调用; 基本概念 - 计算机中断的基本应用page西安邮电学院 计算机学院442022-3-27基本概念 -中断技术常用术语:u中断源 - 需要CPU处理的事件源;u中断申请 - 中断源向CPU方向发出的请求处理信号;u断点 - 主程序被打断处的指针;u中断服务程序(ISR)- 中断事件的功能服务程序;u中断响应 - CPU敏感并进入到ISR的一系列动

23、作;u中断返回 - CPU返回被中断主程序断点处继续执行主程序的一系列动作;page西安邮电学院 计算机学院452022-3-27基本概念 -中断技术常用术语:u中断技术 - 中断及返回的软、硬件实现技术;u中断系统 -中断及返回的软、硬件实现电路与代码;u中断向量- 中断服务程序(ISR)的入口地址;u中断现场- CPU响应中断离开主程序时,CPU的相关寄存器数据情况。page西安邮电学院 计算机学院462022-3-27基本概念 -计算机中的中断技术应用:u引入中断的最初目的是为能更有效地处理系统中的输入输出,提高系统的整体性能;u计算机中的大多数设备都支持中断方式数据传送;如:打印机、网

24、卡、显卡、声卡、硬盘光驱等 。u随着计算机应用的发展,中断技术也不再局限于IO处理。如:出错处理、软中断等。u从中断概念的原本含义而言,中断是一个异步的事件 。软中断则是程序同步处理,主要应用于编写操作系统。page西安邮电学院 计算机学院472022-3-27中断系统的功能中断技术重要而复杂,由计算机的软硬件共同完成 。不同计算机中的中断系统也不尽相同。一般都具备如下基本功能: 中断源的分别屏蔽控制-户可以通过软件分别地控制各个中断源可否申请中断 ;中断源优先级的设置与管理 -户可以通过软件分别地安排各中断源的优先级;优先级排队电路协助将当前最高优先级的中断申请送向处理器 。备注:中断系统优

25、先级 有两层含义:中断事件同时发生时,CPU响应谁;CPU正在执行ISR过程中,又有中断事件,CPU如何处理。page西安邮电学院 计算机学院482022-3-27中断系统的功能中断源的分别屏蔽控制-原理示意图page西安邮电学院 计算机学院492022-3-27中断系统的功能中断源优先级的设置与管理-原理示意图page西安邮电学院 计算机学院502022-3-27中断系统的功能中断向量的设置与传递-中断系统在向 CPU 发出中断请求的同时,将对应的 ISR 入口地址相关信息发送CPU;断点与现场保护- 为保障中断服务完成后能正确地返回并继续主程序的运行,CPU在响应中断时,系统要记录下来被中

26、断程序的断点(即主程序中下一条待执行的指令位置)和保护好当时的CPU工作现场。一般包含:PC、PSW和运算数据寄存器等。page西安邮电学院 计算机学院512022-3-27中断处理过程1、中断请求、中断请求 中断处理过程一般包括以下五个步骤:中断请求、中断响应、断点保护、中断处理和中断返回。u物理事件转换成一个电信号作为事件请求处理的申请 (信号形式:高低电平、上下沿)。u中断处理过程中,首先要有中断请求(中断申请)。u该信号可被屏蔽控制。page西安邮电学院 计算机学院522022-3-27中断处理过程2、中断响应、中断响应(软件设置,硬件自动工作)CPU敏感并进入到ISR的一系列动作;u

27、CPU总是在每条指令执行的最后一个时钟周期检测有无中断请求,若有中断申请则对其进行响应。u中断响应的同时,中断系统自动屏蔽控制,以保证中断逻辑的正确性。u中断响应还要获得相应的中断向量,找到对应的ISR并运行它。一般有两种方式:非向量中断方式和向量中断方式。u不同的中断系统,中断响应的具体操作差别较大,基本原理相似。page西安邮电学院 计算机学院532022-3-27中断处理过程3、断点保护、断点保护(硬件自动工作)保护断点,保障ISR能返回到主程序的断点处继续运行;u断点保护 - 主程序被打断时的 PC 当前值备份。不同的系统中,保护的方法不一样:x86将PC值入堆栈,ARM将PC值保护到

28、LR。此操作都是由硬件自动完成。uPSW-程序状态字的保护;不同的系统中,保护的方法不一样:x86需要软件方式将PSW值入堆栈,ARM中CPSR硬件自动保护到SPSR。page西安邮电学院 计算机学院542022-3-27中断处理过程4、中断处理、中断处理(软件编程)保护CPU数据现场,事件业务处理,恢复CPU数据现场;uCPU数据现场保护- ISR运行中用到的数据寄存器要先保护后使用,以保证返回时主程序的中间结果不被影响;一般通过入堆栈实现,也有些场合通过切换CPU的寄存器组实现;uPSW-程序状态字的保护;不同的系统中,保护的方法不一样;u事件处理代码完成对应的事件服务功能;u恢复CPU数

29、据现场-将保护数据原样恢复。page西安邮电学院 计算机学院552022-3-27中断处理过程5、中断返回、中断返回(软件编程) 执行完ISR后,要返回到原先被中断的主程序的断点处继续运行;u断点保护的逆过程,使用之前保护的PC值,重置PC;u不同的计算机有不同的中断返回方法;x86使用专用的中断返回指令(reti),ARM则是使用LR的值重置PC。问题:CPU中的PC寄存器的功能?答:CPU中的PC寄存器也称为程序计数器,处理器总是按照PC的指向完成取指、执行,并以此运行程序;PC指向哪里,CPU就运行到哪里;控制了PC就控制了处理器的执行流向。PC是处理器中的一个极重要的工作寄存器。pag

30、e西安邮电学院 计算机学院562022-3-27中断处理过程-小节page西安邮电学院 计算机学院572022-3-276.6 ARM中断系统基础 前面我们讲解了中断技术的一般原理,下面我们来看看在ARM微控器中是如何实现中断技术的 - ARM中断系统。ARM中断系统功能强,也比较复杂;我们逐步学习。在此,我们仅以外中断为例介绍ARM中断的处理机制。page西安邮电学院 计算机学院582022-3-27ARM中的中断源中断源 - 需要CPU处理的事件源;ARM系列微控制器为了满足多方面的应用需求,在器件中集成了多种常用资源,它们多支持中断方式服务。常见的中断源有:WDT(看门狗)、Timer(

31、定时计数器)、PWM(脉宽调制器)、UART(通用异步收发器)、I2C(I2C接口)、SPI(SPI接口)、RTC(实时时钟)、A/D(模数转换器)、EINT(外中断)等。用户可以依据自己的资源需要,选取一款性价比较好的器件应用到自己的应用设计中。 备注:上述中断源都支持查询方式服务;page西安邮电学院 计算机学院592022-3-27ARM中的向量中断控制器向量中断 - 即要向CPU发出中断请求,同时还要给出ISR入口相关参数;向量中断控制器(VIC-Vector Interrupt Controller) 是中断源与处理器连接的桥梁, 是ARM中断系统的主要硬件构成部分。 通过对VIC编

32、程可对ARM器件的各个中断源进行中断屏蔽控制、中断优先级控制、中断分类控制、中断向量传递、状态查询等。page西安邮电学院 计算机学院602022-3-27ARM中的向量中断控制器ARM的VIC原理示意图page西安邮电学院 计算机学院612022-3-27ARM中的向量中断控制器ARM技术中的中断和异常 :中断和异常是两个不同的概念;ARM技术中,将所有能导致处理器打断程序正常运行的事件都归为异常;例如复位异常。在ARM中包含有7种异常:复位异常、SWI异常(软中断异常)、未定义指令异常、数据中止异常、指令中止异常、IRQ异常和FIQ异常。 中断 是 异常 的两个特例( IRQ异常、 FIQ

33、异常);在ARM中,所有外设导致的异常都被处理成IRQ或FIQ两种异常之一 ;page西安邮电学院 计算机学院622022-3-27ARM中的向量中断控制器习惯上将以IRQ异常方式传递、响应的中断称之为“IRQ中断”;以FIQ异常方式传递、响应的中断称之为“FIQ中断”。 IRQ中断又根据中断服务程序入口地址的定位方式,被进一步划分为向量IRQ中断和非向量IRQ中断。中断page西安邮电学院 计算机学院632022-3-27ARM的中断响应过程ARM的FIQ中断、IRQ中断是ARM的FIQ和IRQ两种异常的特例,ARM使用对“异常”响应处理的方法响应处理FIQ、IRQ中断。FIQ异常响应的服务

34、入口地址固定为:0 x0000 001C; IRQ异常响应的服务入口地址固定为:0 x0000 0018;通常系统中仅安排一个FIQ中断源;因此, FIQ异常响应的服务入口地址就是“FIQ_ISR”入口地址;IRQ中断一般要对应多个中断源,IRQ_ISR入口地址处理需要特殊处理;page西安邮电学院 计算机学院642022-3-27ARM的中断响应过程ARM启动代码的异常向量表部分:0 x00 LDR PC, ResetAddr ;跳转到ResetAddr单元0 x04 LDR PC, UndefinedAddr0 x08 LDR PC, SWI_Addr0 x0C LDR PC, Prefe

35、tchAddr0 x10 LDR PC, DataAbortAddr0 x14 DCD 0 xb9205f80 ; 用户代码有效性检查码0 x18 LDR PC, PC, #-0 xff0 ; PC (PC) 0 xff00 x1C LDR PC, FIQ_Addr 地址 指令 注释备注:修改PC实质上就是跳转。page西安邮电学院 计算机学院652022-3-27ARM的中断响应过程ARM启动代码的异常向量表部分:0 x18 LDR PC, PC, #-0 xff0 ; PC (PC) 0 xff00 x1C LDR PC, FIQ_Addr 地址 指令 注释IRQ异常入口指令 LDR PC

36、, PC,#-0 xff0 执行的效果分析:1、这条指令的地址是 0 x18,执行该指令时 PC=0 x20;2、执行的结果为 PC=0 x20 0 xff0 = 0 xffff f030;3、 0 xffff f030 恰是 VICVectAddr 寄存器的地址;结论:ARM处理器响应IRQ异常时,固定按VICVectAddr寄存器间接转移!page西安邮电学院 计算机学院662022-3-27ARM的中断响应过程ARM处理器响应IRQ异常时,固定按VICVectAddr寄存器间接转移。在ARM中有一套装置(VIC),它对各中断源进行管理,在申请中断的同时,自动地将该中断源对应的 “ISR向

37、量” 传送到了 VICVectAddr 寄存器。page西安邮电学院 计算机学院672022-3-27ARM的中断返回在处理完中断后,要从ISR返回到主程序断点处继续执行。 有两个关键内容:1、断点的精确定位;2、断点处的处理器工作现场;page西安邮电学院 计算机学院682022-3-27ARM的中断返回回忆 ARM 响应 IRQ、FIQ异常的过程: 1、断点的精确定位;ARM处理器响应IRQ中断、FIQ中断时,硬件自动完成当前PC值到LR_irq(或LR_fiq)寄存器的备份,CPSR寄存器值到SPSR_irq(或SPSR_fiq)寄存器的备份。需要进行返回调整:PC = LR#0 x04

38、;使用指令:SUBS PC , R14 , #4 返回主程序。2、断点处的处理器工作现场;(CPSR、R0R12)page西安邮电学院 计算机学院692022-3-27ARM的外中断ARM系统的外中断资源主要用于其他外部随机事件到系统的引入;当这些事件发生时,外部其他电路将对应的物理事件转换成电信号,处理器能及时响应、处理这些事件。ARM的C是通过管脚(EINTx)输入符合要求的信号而触发的中断 。信号方式有 4种,用户可编程约定:平/沿信号方式ARM外部中断电平高电平低电平边沿上升沿下降沿page西安邮电学院 计算机学院702022-3-27ARM的外中断-信号方式 应用中的注意事项1、边沿

39、有效外中断 2、电平有效外中断 要注意EINT信号的清除;保证每次中断,响应且仅响应一次。page西安邮电学院 计算机学院712022-3-27ARM的外中断-相关寄存器硬件系统使用5个寄存器 -用于外中断控制。这 5个 寄存器构成了ARM外中断资源的系统(编程、控制)模型。寄存器名物理地址功能说明PINSEL00 xE002C000管脚功能选择寄存器0;(关于“管脚多功能”选用知识参见7.5章节-管脚连接模块)EXTINT0 xE01FC140外部中断标志寄存器;EINT管脚上的有效信号对应地置位本寄存器的相关位,指示有某EINT中断申请。EXTWAKE0 xE01FC144外部中断唤醒寄存

40、器;(此功能暂不讨论)EXTMODE0 xE01FC148外部中断方式寄存器;控制每个管脚的触发信号方式采用“边沿”或“电平”。EXTPOLAR0 xE01FC14C外部中断极性寄存器;控制EINT管脚的哪种电平或边沿来产生中断。page西安邮电学院 计算机学院722022-3-27ARM的外中断-相关寄存器uEXTINT - 外部中断标志寄存器 比特EINT3:0分别用于标示对应的4个中断输入;当对应的输入端有有效输入信号时,相应的比特置1,通过VIC向处理器申请中断;向EINT3:0按位写入1清零对应位。 建议 “读修改写” 方式操作 EXTINT寄存器 ;注意:电平方式的EINT;清0时

41、不要影响其它位。page西安邮电学院 计算机学院732022-3-27ARM的外中断-相关寄存器uEXTMODE - 外部中断方式寄存器EXTMODE3:0位分别用来选择对应的EINT3EINT0脚触发信号方式是电平或边沿。1- 沿方式;0- 电平方式 。 建议 “读修改写” 方式操作EXTMOD寄存器 ;page西安邮电学院 计算机学院742022-3-27ARM的外中断-相关寄存器uEXTPOLAR -外部中断极性寄存器EXTPOLAR3:0位分别用来选择对应的EINT3EINT0脚触发信号的极性 。1- 上升沿/高电平方式;0- 下降沿/低电平方式 。 建议 “读修改写” 方式操作EXT

42、POLAR寄存器 ;page西安邮电学院 计算机学院752022-3-27ARM的外中断-应用举例要求:用一个按键模拟一个外中断触发,用蜂鸣器Beep模拟控制状态;每一次外中断事件翻转一次控制状态输出,模拟一个外中断发出、响应和处理过程。设计分析:设置P0.16管脚用作EINT0功能,连接开关Key,信号方式设置为低电平有效;P0.7管脚用作GPIO功能,输出属性连接Beep。page西安邮电学院 计算机学院762022-3-27ARM的外中断-应用举例P0.16管脚用作EINT0,连接开关Key,信号方式设置为低电平有效;P0.7管脚用作GPIO功能,输出属性连接Beep。设计分析page西

43、安邮电学院 计算机学院772022-3-27ARM的外中断-应用举例C代码程序清单 #include config.h#define BEEP 1 7/* P0.7控制BEEP,低电平蜂鸣 */void _irq IRQ_Eint0 (void) /* EINT0_ISR */ uint32 i; i = IO0SET; /* 读取当前BEEP的控制值 */ if (i & BEEP) = 0) IO0SET = BEEP; /* 鸣响蜂鸣器 */ else IO0CLR = BEEP;/* 停止蜂鸣器 */ while (EXTINT & 0 x01) != 0) /* 等待

44、EINT0引脚恢复为高电平 */ EXTINT = 0 x01;/* 清除EINT0中断标志 */ VICVectAddr = 0;/* 向量中断结束 */page西安邮电学院 计算机学院782022-3-27ARM的外中断-应用举例C代码程序清单 int main (void) PINSEL0 = 0 x00000000; /* 设置P015:0为GPIO */ PINSEL1 = 0 x00000001; /* 设P0.16为EINT0 */ IO0DIR = BEEP; /* 设置P0.7为输出,其余输入 */ EXTMODE = 0 x00; /* 设置EINT0为电平触发 */ EX

45、TPOLAR = 0 x00; /* 极性寄存器-低电平有效 */ IO0CLR = BEEP; /* Beep 初始态为静音 */ IRQEnable(); /* 使能IRQ中断 */ /* 打开EINT0中断(使用非向量中断) */ VICIntSelect = 0 x00000000; /* 设置中断为IRQ中断 */ VICDefVectAddr = (int)IRQ_Eint0; /* 装载中断服务程序地址 */ EXTINT = 0 x01; /* 清除EINT0中断标志 */ VICIntEnable = 1 0 x0e; /* 使能EINT0中断 */ while (1); /

46、* 等待中断 */ return (0);page西安邮电学院 计算机学院792022-3-27ARM的外中断-应用举例ASM程序清单 BEEP equ 0 x80; P0.7 管脚接 BEEP,低电平鸣响 CODE32 AREA Example , CODE , READONLY ENTRY;中断向量表Reset LDR PC, ResetAddr LDR PC, UndefinedAddr LDR PC, SWI_Addr LDR PC, PrefetchAddr LDR PC, DataAbortAddr DCD 0 xb9205f80 LDR PC, PC, #-0 xff0 LDR

47、PC, FIQ_Addr备注:关注蓝色指令行。page西安邮电学院 计算机学院802022-3-27ARM的外中断-应用举例ASM程序清单 ; 中断向量表文字池ResetAddr DCD ResetInitUndefinedAddr DCD UndefinedSWI_Addr DCD SoftwareInterruptPrefetchAddr DCD PrefetchAbortDataAbortAddr DCD DataAbortNouse DCD 0IRQ_Addr DCD 0FIQ_Addr DCD FIQ_Handlerpage西安邮电学院 计算机学院812022-3-27ARM的外中断-应用举例ASM程序清单 ResetInit;设置IRQ中断模式堆栈 msr CPSR_c , #0 xd2 ldr SP , =0 x40000500;设置管理模式堆栈 msr CPSR_c , #0 xd3 ldr SP , =0 x40000800 ldr r0 , =PINSEL0 mov r4 , #0 x00 str r4 , r0; P015:0 管脚用作GPIOpage西安邮电学院 计算机学院822022-3-27ARM的外中断-应用举例ASM程序清单 ldr r0 , =PINSEL1mov r4 , #0 x01; P

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论