《第6章输入输出与中断.ppt》由会员分享,可在线阅读,更多相关《第6章输入输出与中断.ppt(78页珍藏版)》请在优知文库上搜索。
1、输入输入/输出接口概述输出接口概述6.1CPU与外设之间的数据传送方式与外设之间的数据传送方式6.2中断技术中断技术6.3CPUCPU和外设之间必须要设置输入和外设之间必须要设置输入/输出接口输出接口(I/O(I/O接接口口),作为,作为CPUCPU与外设进行信息交换的与外设进行信息交换的桥梁桥梁。接口接口是一组电路,是是一组电路,是CPU与输入输出设备等外设之与输入输出设备等外设之间协调动作的控制电路。间协调动作的控制电路。I/O地址译码与设备选择地址译码与设备选择(1)信息的输入信息的输入/输出输出(2)命令、数据和状态的缓冲与锁存命令、数据和状态的缓冲与锁存(3)信息转换信息转换(4)所
2、有外设都通过I/O接口挂接在系统总线上,在同一时刻,总线只允许一个外设与CPU进行数据传送。通过I/O接口,CPU可以从外部设备输入各种信息,也可将处理结果输出到外设;CPU可以通过向I/O接口写入命令字来控制I/O接口的工作,还可以随时监测与管理I/O接口和外设的工作状态;I/O接口还可以通过接口向CPU发出中断请求。因为CPU与外设之间的时序和速度差异很大,为了能够确保计算机和外设之间可靠地进行信息传送,要求接口电路应具有信息缓冲能力。接口不仅应缓存(暂时存留)接口不仅应缓存(暂时存留)CPU送给外设送给外设的信息,也要缓存(暂时存留)外设送给的信息,也要缓存(暂时存留)外设送给CPU的信
3、息的信息。以实现。以实现CPU与外设之间信息交与外设之间信息交换的同步。换的同步。I/O接口还要实现信息格式变换、电平转换、码制转换、传送管理以及联络控制等功能。CPU与与I/O设备之间传输的信息可分为以下三种:设备之间传输的信息可分为以下三种:(1 1)数据信息数据信息 CPUCPU和外设交换的基本信息就是数据,和外设交换的基本信息就是数据,分为数字量、分为数字量、模拟量、开关量。模拟量、开关量。(2 2)状态信息状态信息 状态信息反映状态信息反映了当前外设了当前外设所处所处的工作状态的工作状态,是外是外设发给设发给CPUCPU的用来协调两者之间的操作。如的用来协调两者之间的操作。如READ
4、YREADY、BUSYBUSY。(3 3)控制信息控制信息 控制信息是控制信息是CPUCPU发给外设的发给外设的,以控制外设的工作以控制外设的工作。如外设的如外设的启动信号和停止信号启动信号和停止信号。数据信息、状态信息和控制信息是属于不同性质的数据信息、状态信息和控制信息是属于不同性质的信息,需要分别传送。信息,需要分别传送。一个简单的一个简单的I/OI/O接口内部包含:接口内部包含:数据端口、状态和数据端口、状态和控制端口。控制端口。n CPU CPU通过数据端口从外设读入数据或向外设输通过数据端口从外设读入数据或向外设输出数据出数据n 从状态端口读入设备的当前状态从状态端口读入设备的当前
5、状态n 通过控制端口向外设发出控制命令通过控制端口向外设发出控制命令n 一个一个I/OI/O接口可能仅包含其中的一类或两类端口,接口可能仅包含其中的一类或两类端口,当然也可能包含全部三类端口。当然也可能包含全部三类端口。I/OI/O接口通常设置有若干个寄存器,用来暂接口通常设置有若干个寄存器,用来暂存存CPUCPU和外设之间传输的数据、状态和控制信息,和外设之间传输的数据、状态和控制信息,这些这些接口内部的寄存器通常称为端口接口内部的寄存器通常称为端口,分别为数,分别为数据端口、状态端口、控制端口。每个端口有一个据端口、状态端口、控制端口。每个端口有一个独立的地址,独立的地址,CPUCPU可通
6、过端口地址来读可通过端口地址来读/写它们。写它们。在微机系统中,在微机系统中,CPU对外设的访问实际上是对外设的访问实际上是对外设接口电路中相应的对外设接口电路中相应的I/O端口进行访问,端口进行访问,CPU用相应的读写指令来对端口进行读或写用相应的读写指令来对端口进行读或写。因此,对这些端口必须指定相应的地址码,因此,对这些端口必须指定相应的地址码,这就是这就是I/O端口的编址。端口的编址。I/O端口的编址通常有两种不同的方式:端口的编址通常有两种不同的方式:统一编址统一编址1独立编址独立编址2又称为存储器映射编址方式,即把每又称为存储器映射编址方式,即把每个个I/O端口都当作一个存储单元看
7、待,端口都当作一个存储单元看待,按照存储单元的编址方式统一安排端按照存储单元的编址方式统一安排端口的地址。口的地址。优点优点:可以用访问内存的方法来访问:可以用访问内存的方法来访问I/O端口。由于访问内存的指令种类端口。由于访问内存的指令种类丰富、寻址方式多样,因此这种编址丰富、寻址方式多样,因此这种编址方式为访问外设带来了很大的灵活性。方式为访问外设带来了很大的灵活性。同时,同时,I/O控制信号也可与存储器的控制信号也可与存储器的控制信号共用,从而给应用带来了很控制信号共用,从而给应用带来了很大的方便。大的方便。缺点缺点:外设占用了一部分内存地址空间,这就减少了内存可用:外设占用了一部分内存
8、地址空间,这就减少了内存可用的地址范围。此外从指令上不易区分当前是对内存进行操作还的地址范围。此外从指令上不易区分当前是对内存进行操作还是对外设进行操作。是对外设进行操作。u Intel MCS-51等系列的单片微型计算机采用统一编址方式。等系列的单片微型计算机采用统一编址方式。内存地址空间和外设地址空间是相互独立的。内存地址空间和外设地址空间是相互独立的。8086/80888086/8088系统的内存地址范围为系统的内存地址范围为00000H0FFFFF00000H0FFFFFH H,共,共1M1M空空间,而外设端口的地址范围为间,而外设端口的地址范围为0000H0FFFFH0000H0FF
9、FFH,共,共64K64K空间。空间。这两个地址空间相互独立,互不影响。这两个地址空间相互独立,互不影响。CPUCPU在寻址内存和外设时,使用不同的控制信号来区分当前在寻址内存和外设时,使用不同的控制信号来区分当前是对内存操作还是对是对内存操作还是对I/OI/O端口操作。例如端口操作。例如80868086的的M/IO#M/IO#。指令系统中单独设置有专用的指令系统中单独设置有专用的I/OI/O指令。指令。优点优点:将输入输出指令和访问存储器的指令明显区分开,使:将输入输出指令和访问存储器的指令明显区分开,使程序清晰,可读性好,而且程序清晰,可读性好,而且I/OI/O指令长度短,执行的速度快,指
10、令长度短,执行的速度快,也不占用内存空间;也不占用内存空间;I/OI/O地址译码电路较简单,地址译码电路较简单,缺点缺点:必须有专门的:必须有专门的ININ和和OUTOUT指令,这些指令的功能没有访指令,这些指令的功能没有访问存储器指令强,也增加了指令系统的规模。另外,问存储器指令强,也增加了指令系统的规模。另外,CPUCPU要要能提供区分存储器和能提供区分存储器和I/OI/O的控制信号。的控制信号。无条件方式无条件方式6.2.1查询方式查询方式6.2.2中断方式中断方式6.2.3DMA方式方式6.2.46.2.1 6.2.1 无条件传送方式无条件传送方式 无条件传送方式主要用于外部控制过程的
11、各种动无条件传送方式主要用于外部控制过程的各种动作是固定的、且是已知的,控制的对象是一些简单作是固定的、且是已知的,控制的对象是一些简单的、随时的、随时“准备好准备好”的外设。也就是说,在这些设的外设。也就是说,在这些设备工作时,随时都可以接收备工作时,随时都可以接收CPU输出的数据,或者输出的数据,或者它们的数据随时都可以被它们的数据随时都可以被CPU读出。读出。它它不需要查询外设状态,直接使用不需要查询外设状态,直接使用I IO O指令与指令与外设实现同步数据交换外设实现同步数据交换。采用这种控制方式的接口。采用这种控制方式的接口电路和控制程序都比较简单。它一般应用在工作速电路和控制程序都
12、比较简单。它一般应用在工作速度慢,接口电路较简单的外设,如发光二极管、开度慢,接口电路较简单的外设,如发光二极管、开关等,适合采用这种方式。关等,适合采用这种方式。6.2.2 6.2.2 条件传输方式条件传输方式程序查询传送方式程序查询传送方式 在执行输入输出前,要在执行输入输出前,要先查询先查询接口中状态寄存接口中状态寄存器的器的状态状态。n 输入时,状态寄存器的状态指示要输入的数输入时,状态寄存器的状态指示要输入的数据据是否已经准备就绪是否已经准备就绪;n 输出时,状态寄存器的状态指示输出设备输出时,状态寄存器的状态指示输出设备是是否空闲。否空闲。查询传输方式查询传输方式(1)CPU(1)
13、CPU从从状态端口状态端口中读取状态字;中读取状态字;(2)CPU(2)CPU检测状态字的相应位是否满检测状态字的相应位是否满足足“就绪就绪”条件,如果不满足,条件,如果不满足,则转则转(1)(1),再读取状态;,再读取状态;(3)(3)如状态位表明外设已处于如状态位表明外设已处于“就就绪绪”状态,则通过状态,则通过数据端口数据端口传输传输数据。数据。外设准备好?传送数据读取外设状态YN特点:特点:利用查询方式进行数据输入输出的过程中,利用查询方式进行数据输入输出的过程中,CPU将大量时间耗费在读取和检测外设状态上,真将大量时间耗费在读取和检测外设状态上,真正用于传送数据的时间很少,这样大大降
14、低了正用于传送数据的时间很少,这样大大降低了CPU的效率。的效率。例题:例题:某输入接口的状态端口地址为某输入接口的状态端口地址为86H,数据,数据端口地址为端口地址为87H,外部输入信息准备好状态标,外部输入信息准备好状态标志为志为D71(D7=0表示外设未准备好)用表示外设未准备好)用查询方式写出从外设读入查询方式写出从外设读入100字节数据并存于字节数据并存于内存内存BUFFER开始的单元中。开始的单元中。LEA BX,BUFFER ;将BUFFER偏移地址送BX MOV CX,100 ;字节数ABC:IN AL,86H ;读状态端口(目的读状态位)TEXST AL,80H ;测试D7位
15、是否为1(准备好)JZ ABC ;若D7=0未准备好,循环检测 IN AL,87H ;准备好,读数据端口 MOV BX,AL ;存到内存BUFFER缓冲区 INC BX ;修改地址指针 LOOP ABC ;未送完,继续传送格式:IN OPD,OPS功能:从端口(地址为n或在DX中)输入位数据到AL或输入16位数据到AX。IN AL,40H;从40H端口读入一个字节送ALMOV DX,8F00H;将端口地址8F00H送DXIN AL,DX;从8F00H端口读入一个字节送AL 格式:OUT OPD,OPS功能:从功能:从AL输出输出8位数据或从位数据或从AX输出输出16位数位数据到端口据到端口(地
16、址为地址为n或在或在DX中中)。OUT 40H,AL;将;将AL内容送内容送40H端口端口MOV DX,8F00H;将端口地址;将端口地址8F00H送送DXOUT DX,AL;将;将AL内容送内容送8F00H端口端口输入输入/输出指令对标志寄存器没有影响。输出指令对标志寄存器没有影响。端口地址大于端口地址大于255时,必须用时,必须用DX指定端口指定端口地址地址。在中断传输方式下,在中断传输方式下,当输入设备将数据准备好或者当输入设备将数据准备好或者输出设备可以接收数据时输出设备可以接收数据时,便可以向,便可以向CPUCPU发出中断请求,发出中断请求,使使CPUCPU暂时停止执行当前程序,而去执行一个数据输入暂时停止执行当前程序,而去执行一个数据输入/输出的中断服务程序,与外设进行数据传输操作,中断输出的中断服务程序,与外设进行数据传输操作,中断程序执行完后,程序执行完后,CPUCPU又转回继续执行原来的程序。又转回继续执行原来的程序。中断方式的数据传输仍在程序的控制下执行,也可中断方式的数据传输仍在程序的控制下执行,也可称为程序中断方式,适用于中、慢速外设的数据传输。称为程序中断方式