1、单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,Microcomputer:Principle and Interface,School of Automation Science and Electrical Engineering,自动化科学与电气工程学院,*,*,第,6,章 输入输出(I/O)与中断,6.1,输入输出,接口概述,6.2 CPU,与外设数据传送方式,6.3,中断技术,2026/5/18 周一,1,6.1,输入输出接口概述,什么是,I/O,I/O,接口是位于系统与外设间、用来协助完成数据传送和控制任务的逻辑电路(,如:,PC,机系统板的可编程接口芯片、,I
2、/O,总线槽的电路板,),为什么需要,I/O,接口,微机的外部设备多样性,工作原理、驱动方式、信息格式、以及工作速度方面彼此差别很大,它们不能与,CPU,直接相连,必须经过中间电路再与系统相连,2026/5/18 周一,2,6.1,输入输出接口概述,I/O,接口的主要功能,(1),对输入输出数据进行缓冲和锁存,输出接口有,锁存环节,,输入接口有,缓冲环节,(2),对信号的形式和数据的格式进行变换,(3),微机直接处理:,数字量、开关量、模拟量,(4),对,I/O,端口进行寻址,(5),建立外设与计算机的连接,I/O,接口的基本结构,设计成满足,CPU,与外设信息相互交换的要求,数据信息,状态信
3、息,控制信息,2026/5/18 周一,3,6.1,输入输出接口概述,cpu,I/o,设备,数据输入寄存器,数据输出寄存器,状态寄存器,控制寄存器,中断控制逻辑,数据总线,地址总线,控制总线,I/O,接口,DATA,STATUS,CONTROL,RD,WR,M/IO,2026/5/18 周一,4,6.1,输入输出接口概述,I/O,端口的编址方式,为了让,CPU,能够访问这些,I/O,端口,每个,I/O,端口都需有自己的端口地址,(,或端口号,),。,在一个微型计算机系统中,如何编排这些,I/O,接口的端口地址,即所谓,I/O,端口的编址方式。,常见的,I/O,端口编址方式有两种,:,存储器映像
4、I/O,端口和存储器,统一编址,;,I/O,映像:,I/O,端口和存储器,分开编址。,2026/5/18 周一,5,6.1,输入输出接口概述,I/O,端口,存储单元,I/O,地址空间,存储器地址空间,整个地址空间,I/O,端口和存储器统一编址,2026/5/18 周一,6,6.1,输入输出接口概述,存储单元,存储地址空间,I/O,端口,I/O,地址空间,I/O,端口和存储器单独编址,2026/5/18 周一,7,6.2 CPU,与外设数据传送方式,CPU,与外设之间的数据传送控制方式,即,I/O,控制方式,主要有三种:,(,1,)程序传送:,程序控制方式是指在程序控制下进行的数据传送方式,
5、无条件传送、条件传送,(,2,)中断传送:,依靠外设与,CPU,之间的中断控制信号的控制方式,(,3,),DMA,传送:,不经过,CPU,,而直接在存储器与外设之间存取,2026/5/18 周一,8,6.2 CPU,与外设数据传送方式,(1),程序传送,-,无条件传送(或同步传送),无条件传送,:,在规定时间内,定时同步传送数据。适用于对开关、继电器等简单外设状态控制,RD,2026/5/18 周一,9,6.2 CPU,与外设数据传送方式,(1),程序传送,-,无条件传送(或同步传送),MOV DX,0100H,MOV AL,DL,OUT 20H,AL,delay,MOV AL,DH,OUT
6、20H,AL,delay,IN AX,10H,Pi=0,,断开,Pi=1,,吸合,2026/5/18 周一,10,(1),程序传送,-,条件传送(或异步传送),-,输入,条件传送,:在传送数据前,先进行端口状态寄存器查询,只有端口“准备就绪”或“空闲”时才能够传输。,IN AL,STATUS_PORT,TEST AL,80,IN AL,DATA_PORT,6.2 CPU,与外设数据传送方式,2026/5/18 周一,11,查询,输入部分的程序:,POLL:IN AL,STATUS_PORT,;,读状态端口的信息,TEST AL,80,;,设“准备就绪”,(READY),信息在,D7,位,JE
7、POLL ;,未“准备就绪”,则循环再查,IN AL,DATA_PORT,;,已“准备就绪”,(READY=1),则读入数据,STATUS_PORT,:,状态端口地址,DATA_PORT,:,数据端口地址,POLL,JE,2026/5/18 周一,12,查询方式的,A/D,采样,WAIT,:,IN AL,,,51H,;,读状态端口的值,TEST AL,,,10H,;,判断,D,4,是否为,1,?,JZ WAIT,;,状态信号不是“,1”,,等待,IN AL,,,50H,;,读数据端口的值,MOV BUF,,,AL,;将,数据送到数据缓冲单元,数据,端口,状态,端口,A/D,转,换器,定时,器,
8、模拟,信号,译码,电路,启动信号,状态信号,D,4,数据总线,地址总线,控制信号,50H,51H,2026/5/18 周一,13,(1),程序传送,-,条件传送(或异步传送),-,输出,条件传送:在传送数据前,先进行端口状态寄存器查询,只有端口“准备就绪”或“空闲”时才能够传输,。,IN AL,STATUS_PORT,TEST AL,,,80H,OUT,DATA_PORT,AL,6.2 CPU,与外设数据传送方式,2026/5/18 周一,14,查询输出部分的程序:,POLL:IN AL,STATUS_PORT,;,查状态端口状态信息,D7,TEST AL,,,80H,JNE POLL,;,;
9、D7,1,即忙线,1,则循环再查,MOV AL,,,STOREBUFF,;,如外设空闲,由内存读取数据,OUT,DATA_PORT,AL;,输出到端口地址单元,STATUS_PORT,:,状态端口地址,DATA_PORT,:,数据端口地址,STOREBUFF,:,待,输出数据的,内存单元起始地址,。,POLL,JNE,2026/5/18 周一,15,查询方式的打印机接口,WAIT,:,IN 7AH,,,AL,;读状态端口,TEST AL,,,04H,;判断,D,2,是否为,0,?,JNZ WAIT,;,不是,0,,等待,MOV AL,,,BUF,;取数据,OUT 78H,,,AL,;将数据送到
10、打印机接口,数据,端口,状态,端口,数据缓,冲器,状态,检测,打印机,译码,电路,触发信号,状态信号,D,2,数据总线,地址总线,控制总线,信号,78H,7AH,接口电路,2026/5/18 周一,16,总结,:,程序查询输入,/,输出传送方式的执行步骤是:,(,)CPU,从,I/O,接口的状态端口中读入所寻址的,外设的状态信息,“,READY”,或“,BUSY”,。,(,),根据读入的状态信息,进行判断:,程序,查询输入时,若状态信息,READY,0,,则外设数据未准备好,,CPU,继续等待查询,直至,READY,,,程序,查询输出时,若状态信息,BUSY,,则外设“忙”,CPU,继续等待,
11、直至外设“空闲”,BUSY,0,时,执行下一操作。,6.2 CPU,与外设数据传送方式,2026/5/18 周一,17,6.2 CPU,与外设数据传送方式,(2),中断传送,程序查询传送方式缺点:,降低,CPU,的运行效率,不能处理紧急事件,,查询方式浪费大量等待查询时间,很难使每一个外设都能工作在最佳工作状态。,中断传送特点,(1),提高了,CPU,的工作效率,;,(2),外围设备具有申请服务的主动权,;,(3)CPU,可以和外设并行工作,;,(4),可适合实时系统对,I/O,处理的要求。,2026/5/18 周一,18,(3)DMA,方式,采用程序控制方式以及中断方式进行数据传送时,都是靠
12、CPU,执行程序指令来实现数据的输入,/,输出,的。,采用程序控制方式及中断方式时,数据的传输率不会很,高。,对于高速外设,如高速磁盘装置或高速数据采集系统等,采用这样的传送方式,往往满足不了其数据传输率的要求。,例如,对于磁盘装置,其数据传输率通常在,20,万字节,/,秒以上,即传输一个字节的时间要小于,5s,。,6.2 CPU,与外设数据传送方式,2026/5/18 周一,19,(3)DMA,方式,不需要,CPU,干预,(,不需,CPU,执行程序指令,),,而在专门硬件控制电路控制之下进行的外设与存储器间直接数据传送的方式,,称为直接存储器存取,(Direct Memory Access
13、),,简称,DMA,方式。,这一专门的硬件控制电路称为,DMA,控制器,简称,DMAC,。,目的,:提高数据传送速度(高速数据交换),6.2 CPU,与外设数据传送方式,2026/5/18 周一,20,CPU,外设,存储器,:执行程序指令的数据传送路径;:,DMA,方式的数据传送路径,两种不同的数据传送路径,BUS,2026/5/18 周一,21,(6),内存把数据送数据总线,(7),接口锁存数据,内存,接口,DMA,控制器,I/O,设备,8086,和总线,控制逻辑,HOLD,HLDA,(1),接口准备就绪,发,DMA,请求,(2),发总线请求,(3),总线允许,(5),DMA,请求得到确认,
14、9),8086,收回总线控制权,(8),撤销总线请求,(4),DMA,控制器把地址送地址总线,数据总线,控制总线,地址总线,以,DMA,方式输出一个字节数据的工作过程,2026/5/18 周一,22,总结:,CPU,与外设之间的数据传送控制方式,即,I/O,控制方式,主要有三种:,(,1,)程序传送,程序控制,方式是指在程序控制下进行的数据传送方式,无条件,传送、,条件传送,(,2,)中断传送,依靠,外设与,CPU,之间的中断控制信号的,控制方式,(,3,),DMA,传送,不,经过,CPU,,而直接在存储器与外设之间存取,6.2 CPU,与外设数据传送方式,2026/5/18 周一,23,6
15、3,中断技术,中断,:,由于突发事件的请求,使,CPU,暂停运行原来的程序,而转去执行突发事件所指定的服务程序,并在处理完后再恢复原来程序的运行。,中断源,是指发出中断请求的来源,有以下几种:,(1),外部设备,(2),实时时钟,(3),故障源,(4),调试中断,中断类型号,:处理器对各类中断的中断源进行的统一编号,N,,,N,的取值范围是,0,255,中断系统,是微机中实现中断功能的各种软、硬件的总称,一般包括,CPU,内部相应的中断逻辑、接口中的中断控制电路及各类中断服务子程序,2026/5/18 周一,24,1.,中断处理过程的概念,中断,向量,:中断向量即中断服务子程序的入口地址,也
16、就是中断服务子程序的第一条指令的地址在存储器中的存放位置,中断向量表,:中断向量构成的表格,位于存储器的最低地址单元,中断优先级,:在系统中多个中断源可能同时提出中断请求时,需要按中断的轻重缓急给每个中断源指定一个优先级别,向量中断,:一种方法,(,根据中断向量进入中断服务程序,),6.3,中断技术,2026/5/18 周一,25,断点,:,是指,CPU,执行的现行程序被中断时的,下一条指令,的地址,又称断点地址,1000H:150H,MOV AX,0,INT N,MOV DI,AX,PUSH AX,IRET,CPU,在执行此指令时,,某中断源发申请中断;,CPU,在执行完该指令后,转去执行中
17、断子程,地址1000H:150H,为断点,6.3,中断技术,2026/5/18 周一,26,中断,现场,:,是指,CPU,转去执行中断服务程序前的运行状态,包括,CPU,内部各寄存器、断点地址等。,中断嵌套,:当,CPU,在进行某一级别中断源的中断处理时,若有更高级别的新中断源发出请求,并满足响应条件,则,CPU,应中止当前的中断服务程序,保护此程序的断点和现场,转而响应高级中断。,主程序,主程序,断点,INT A,响应中断,中断源,A,中断源,B,6.3,中断技术,中断现场,INT B,IRET,IRET,2026/5/18 周一,27,6.3,中断技术,2.,中断,的基本功能,(,1,)能
18、响应中断、处理中断与返回中断。,(,2,)优先权排队,:,软件查询技术,硬件排队电路,(,或者采用中断控制芯片处理多个中断源,),(,3,)中断嵌套,2026/5/18 周一,28,6.3,中断技术,3.,单中断:中断,源向,CPU,发中断请求信号的条件,(,外部条件,),-,中断请求,触发器,-,中断屏蔽,触发器,(,p194,图,6.15,),2026/5/18 周一,29,6.3,中断技术,3.,单中断:,CPU,响应中断请求信号的条件,(p195,图,6.16),-CPU,开中断,-,结束,现行指令,响应中断,关中断、保留断点、保护现场、转中断服务入口、恢复中断现场、开中断并返回断点,
19、6.3.2.3),2026/5/18 周一,30,6.3,中断技术,4.8086/8088,的中断系统结构,非屏蔽中断请求,INT2(0008H),可屏蔽中断请求,INT n(n=20HFFH),外部中断(硬件),NMI(17,引脚),INTR,(,18,引脚),中断系统,用户定义软件中断,INT n,断点中断,INT 3,单步中断,INT 1,(TF=1),除法错误中断,INT 0,溢出中断,INTO,INT4,内部中断(软件),6.4.1,节 图,2026/5/18 周一,31,6.3,中断技术,8088/8086,管理中断方式:可管理,256,级中断,采用,中断向量表,将所有中断服务程
20、序的入口地址集中在一起形成的一张表。每个中断服务程序的入口地址对应着一个中断,向量。,(p201),一个中断向量由四个字节组成:,2,个高地址字节:存放中断服务程序的代码段的段值;,2,个低地址字节:存放中断服务程序的偏移地址。,中断向量表放在内存的地址单元,:00000H03FFH,。,系统占用了部分中断类型码,:,专用中断:,0,4,,占中断向量表,000,013H,。,系统备用中断:,5,31H,用户使用中断:,32H,0FFH,2026/5/18 周一,32,6.3,中断技术,5.8086/8088,中断服务程序设计,直接设置中断服务程序入口地址,用户中断为,INT 41H,对应的中断
21、入口地址为:,41H X 4=104H,开始的连续,4,个字节单元,利用,DOS 25,号功能调用设置,功能号送,AH,设置的中断向量号送,AL,中断段地址送入,DS,,偏移地址送入,DX,执行,INT 21H,MOV AX,OFFSET INT65H,INT65H PROC,MOV BX,SEG INT65H,XOR CX,CX ;31C9,MOV 0104H,AX ;(,中断,IP),IRET ;CF,MOV 0106H,BX ;(,中断,CS),INT65H ENDP,2026/5/18 周一,33,6.8086/8088,的中断系统优先级,(,1,)所有内部中断优先级高于外部中断优先级
22、单步中断出外),(,2,)除单步中断外,所有内部中断不能被屏蔽,(,3,)内部中断不产生,INTA,中断响应机器周期,(,4,)优先级排序,最高到最低依次为:,INT 0 INT n INTO(INT 4)NMI(INT2)INTR INT1,6.3,中断技术,2026/5/18 周一,34,结束当前指令,内部中断?,NMI,中断?,N,Y,INTR,中断,?,TF=1,?,N,Y,IF=1,?,Y,从总线上取中断类型号,N,N,执行下一条指令,FLAG,压栈,IF=0,,,TF=0,保护断点:,CS,、,IP,压栈,根据中断类型号获取中断,向量,进入中断处理过程,恢复断点:,CS,、,IP,出栈,FLAG,出栈,中断响应过程,中断返回过程,Y,Y,6.3,中断技术,2026/5/18 周一,35,






