基本输入输出接口.课件

上传人:陈** 文档编号:187512049 上传时间:2023-02-15 格式:PPT 页数:29 大小:548KB
收藏 版权申诉 举报 下载
基本输入输出接口.课件_第1页
第1页 / 共29页
基本输入输出接口.课件_第2页
第2页 / 共29页
基本输入输出接口.课件_第3页
第3页 / 共29页
资源描述:

《基本输入输出接口.课件》由会员分享,可在线阅读,更多相关《基本输入输出接口.课件(29页珍藏版)》请在装配图网上搜索。

1、 教学提示:教学提示:按照冯诺依曼对计算机的划分,计算机包括运算器、控制器、存储器、输入设备和输出设备五个大的部分。在前面的章节中,我们主要介绍了CPU与存储器之间的数据传送和数据处理。但是,计算机要与外界联系,就必须通过输入设备接收信息、通过输出设备发送信息,在本章中我们主要介绍这部分知识。教学要求:教学要求:通过这一章学习,需要掌握输入/输出接口的基本概念,掌握I/O接口的分类和基本功能,掌握CPU与外部设备数据传送的几种基本方式和相关的指令。基本输入基本输入/输出接口输出接口6.1 I/O接口概述接口概述 输入/输出设备(又称为I/O设备、外部设备、外设)的种类非常多,常见的有:键盘、鼠

2、标、串行口、显示器、U盘、硬盘。有的读者可能会认为U盘、硬盘等应该是属于存储器设备,而实际上CPU对于这类外部存储器是不能直接访问的,必须通过一定的接口电路进行访问操作,而这一点就与其他的输入/输出设备是一样的,所以我们把外部存储器归入输入/输出设备一类。由于输入/输出设备的种类十分繁杂,各自有着不同的电平信号、数据格式、传送速度等,通常与CPU的访问信号是不协调的,所以CPU一般不能直接访问这些输入/输出设备,而是要在CPU和输入/输出设备之间安置一个接口电路,通过接口电路的转换,使得来自输入设备的信号能够被CPU读取、CPU的输出信号能够被输出设备接受。概念:用于连接CPU和外部设备,并进

3、行相应信号转换的电路称为I/O接口电路(或接口电路)。6.1.1 I/O接口的主要功能接口的主要功能 I/O接口电路是CPU与I/O设备之间的中介,它需要完成以下任务。对输入对输入/输出的信号进行变换输出的信号进行变换 由于输入/输出设备的信号与CPU的信号在数据格式、电平高低、传送速度等方面有着很大的差别,所以接口电路就需要把这些信号变换成适合对方的形式。比如:串行接口电路,就要把CPU送来的并行数据,转换成串行的数据格式发送出去,还要把外电路传过来的串行数据转换成并行信号,供CPU读取。2.对输入对输入/输出的数据进行缓冲和锁存输出的数据进行缓冲和锁存 通常输入/输出设备的工作速度比CPU

4、都慢很多,而且CPU的工作非常繁忙,由于这个原因,所以要对输入/输出的数据进行缓冲和锁存,只有这样才能有效地提高整个计算机的工作效率。(1)在输出时,CPU输出某个数据后,马上就要进行后续的其他工作,而这时输出设备还没取走该数据,这就需要接口电路把CPU输出的数据锁存下来,供输出设备读取。通常采用锁存器进行数据锁存。如图6.1所示,由8个D触发器构成8位锁存器,当CPU向这个输出设备输出数据时,由数据总线输出数据信息,同时IOW和地址译码电路都输出低电平,使或门输出为低电平,把数据信息锁存下来,然后,CPU输出的数据就一直出现在OUT0OUT7线上,供给输出设备,直到下次CPU给该设备输出新的

5、数据,OUT0OUT7线上的内容才会改变。(2)在输入时,当输入设备向CPU传来一个数据时,此时CPU可能正在进行其他相关工作,正在使用数据总线,所以接口电路不能立刻把该数据放到数据总线 图图6.1 带锁存器的输出接口电路带锁存器的输出接口电路上,而是要进行缓冲隔离,当CPU对其选通时,再把该数据放到数据总线上,供CPU读取。进行数据缓冲,通常采用三态门。如图6.2所示,由8个三态门构成8位缓冲器,当输入设备向CPU发送数据时,是把这个数据通过IN0IN7共8条线送到三态门的输入端。但是这时三态门还没有打开,输入设备上传来的数据信息,还不能送到数据总线上传给CPU。只有CPU需要读取该设备的数

6、据时,它控制IOR和地址译码电路同时输出低电平,使或门输出为低电平,打开8个三态门,输入设备上传来的数据信息,通过数据总线上传给CPU。图图6.2 带缓冲器的输入接口电路带缓冲器的输入接口电路3.完成相应的寻址任务完成相应的寻址任务 在一个计算机系统中,需要连接许多外部设备,也就需要许多接口电路,当CPU访问到该接口电路中寄存器时,应该执行相应的读写操作,而当CPU访问到其他接口电路中寄存器时,则这个接口电路不做动作。6.1.2 I/O接口接口 如前所述,接口电路主要完成数据的变换,以及数据的缓冲和锁存。概念概念:在接口电路中通常有一些可以被CPU访问的寄存器,我们把这种寄存器叫做I/O接口。

7、把I/O接口按照存放的信息类型进行分类,可以分成数据端口、状态端口、控制端口3种。数据端口在输入时,接收存放外部设备传送来的数据,供CPU读取;在输出时,数据端口用于存放CPU输出的数据,并传送给外部设备。状态端口上的信息反映外部设备的工作状态,供CPU读取。比如:串行接口8250中有一个通信线状态寄存器,它反映了接收的串行数据是否有错误、是否收到了一个串行数据、是否可以发送一个字符等信息,CPU通过读取该端口的内容,就可以知道通信线路的基本状态了。控制端口用于接收CPU发送给外部设备的控制命令,并传送给外部设备。还以串行接口8250为例子,它有一个通信线控制寄存器,CPU向该寄存器写入不同的

8、信息,从而控制串行数据的格式等。如图6.3所示,接口电路中包含数据端口、状态端口和控制端口,CPU就是通过访问这些I/O接口,完成控制外部设备、了解外设的工作状态、与外设进行数据传送等操作的。图6.3 接口电路示意图6.1.3 I/O接口的编址方法接口的编址方法 既然计算机系统中,有很多个I/O接口,就需要给这些I/O接口进行编号,这也就是I/O接口编址的意思。I/O接口的编址方法有两种:一种方法是I/O接口与存储器统一编址;另一种是I/O接口独立编址。概念:I/O接口与存储器统一编址,就是存储器和I/O口都利用相同的地址范围(也称为地址空间),在这个地址范围中,有些地址对应存储器,有些地址对

9、应I/O接口,这样CPU就不需要专门访问I/O接口的指令,而是利用访问存储器的指令访问I/O接口。例如在MCS-51系列单片机中,它要是扩充各种接口电路,就采用这样的编址方法。优缺点:统一编址的好处是指令灵活:这是因为CPU访问存储器有很多寻址方式,指令非常灵活,而这些指令也可以用于对I/O接口的访问;缺点是I/O接口占用存储器的空间,使得存储器的实际空间减少。图6.4所示是某个采用存储器与I/O接口统一编址的计算机系统的示意图,我们看到该系统中存储器单元和I/O接口一共有64K(地址是0000HFFFFH),其中地址为3000H37FFH的部分是I/O接口,其余部分是存储器单元,实际存储器有

10、62K个单元。概念:独立编址就是存储器和I/O接口各自使用不同的地址空间,CPU利用专门的输入/输出指令访问I/O接口。在以8088/8086为CPU的计算机系统中,I/O接口就是采用这种编址方式:存储器的地址范围是FFFFFH00000H,I/O接口的地址范围是0000HFFFFH。优缺点:独立编址的缺点是指令不灵活:一般对I/O接口的访问只有少数几条指令,不能像访问存储器那样有多种寻址方式;好处是I/O接口不占用存储器的空间。图图6.4 存储器与存储器与I/O端口统一编址示意图端口统一编址示意图 如图6.5所示,表示了在8088/8086系统中存储器和I/O接口之间的关系。存储器和I/O接

11、口的地址是各自独立的,存储器的地址范围是00000HFFFFFH,I/O接口地址范围是0000HFFFFH,相互之间完全独立,系统中最多可以有64K个I/O接口。图6.5 8088/8086系统的存储器和I/O接口关系示意图6.1.4 8088/8086的输入的输入/输出指令输出指令 前面已经向大家介绍了,在8088/8086为CPU的计算机系统中,I/O接口的编址采用的是独立编址方法,系统中I/O接口的地址范围是FFFFH0000H。这也就是意味着系统中,在不共用地址(例如两个I/O接口一个只读,另一个只写,则它们可以共用同一个地址)的情况下,最多可以有65536个I/O接口,每个I/O接口

12、有8位信息。如果I/O接口采用独立编址方法,要求CPU利用专门的输入/输出指令访问I/O接口,而在前面介绍8088/8086指令系统的章节中我们没有涉及这部分指令,现在向大家介绍如下:1.输入指令输入指令(1)指令格式:IN AL,端口号。指令解释:把一个端口的信息传送给AL。指令示例:IN AL,20H。该指令把20H端口的内容送到AL寄存器中。常见错误1:IN DL,20H;该指令想输入20H号端口的内容,送入DL寄存器中。输入指令的数据传送目的地只能是累加器,不能是其他寄存器,而该指令的目的操作数是DL寄存器,所以出错。常见错误2:IN AL,200H;该指令想输入200H号端口的内容,

13、送入AL寄存器中。在输入/输出指令中出现的端口号必须小于100H,要访问高于100H的端口,需要使用下一条指令。(2)指令格式:指令格式:IN AL,DX。指令解释:把一个端口的信息传送给AL,该端口的地址是DX中的内容。指令示例:MOV DX,200H。IN AL,DX。利用这两条指令,可以输入200H号端口的内容,送入AL寄存器中,实际上是利用DX进行寄存器间接寻址。常见错误:IN AL,BX;该指令试图用BX进行寄存器间接寻址,访问I/O接口。在8088/8086指令系统中,只能用DX进行寄存器间接寻址,访问I/O接口,所以该指令错误。(3)指令格式:IN AX,端口号。指令解释:该指令

14、一次读入两个I/O接口的内容,分别送入AL和AH。指令示例:IN AX,20H;该指令一次输入20H、21H两个端口的内容,分别送入AL和AH中。该指令容易出现的错误与第1条指令类似。(4)指令格式:IN AX,DX。指令解释:该指令用DX间接寻址,一次输入两个端口的内容,分别送入AL和AH中。指令示例:MOV DX,200H IN AX,DX。利用这两条指令,输入200H和201H号端口的内容,分别送入AL和AH中。该指令容易出现的错误与第2条指令类似。2.输出指令 (1)指令格式:OUT 端口号,AL。指令解释:把AL的信息传送给一个端口。指令示例:OUT 20H,AL。该指令把AL寄存器

15、的内容送到20H端口中。常见错误1:OUT 20H,DL;该指令想把DL寄存器的内容,送入20H号端口中。输出指令的数据源只能是累加器,不能是其他寄存器,而该指令的源操作数是DL寄存器,所以出错。常见错误2:OUT 200H,AL;该指令想把AL寄存器的内容,送入200H号端口中。在输入/输出指令中出现的端口号必须小于100H,要访问高于100H的端口,需要使用下一条指令。(2)指令格式:OUT AL,DX。指令解释:把AL中的信息传送给一个端口,该端口的地址是DX中的内容。指令示例:MOV DX,200H。OUT DX,AL。利用这两条指令,可以把AL寄存器的内容,送入200H号端口,实际上

16、是利用DX进行寄存器间接寻址。常见错误1:OUT BX,AL;该指令试图用BX进行寄存器间接寻址,访问I/O接口。在8088/8086指令系统中,只能用DX进行寄存器间接寻址,访问I/O接口,所以该指令错误。常见错误2:OUT DX,AL;这种错误的出现,是受了访问存储器的寄存器间接寻址方式的影响。在访问I/O接口时,虽然用DX进行寄存器间接寻址,但是注意不要给DX加上方括号。(3)指令格式:OUT 端口号,AX。指令解释:该指令一次把AL和AH内容,分别送入两个I/O接口中。指令示例:OUT 20H,AX;该指令一次把AL和AH的内容,分别送入20H、21H两个端口中。该指令容易出现的错误与

17、第1条指令类似,在此就不多说了。(4)指令格式:OUT AX,DX。指令解释:该指令用DX间接寻址,一次把AL和AH中的内容,分别送入两个端口。指令示例:MOV DX,200H。OUT DX,AX。利用这两条指令,输入200H和201H号端口的内容,分别送入AL和AH中。常见错误:OUT AX,DX;在输入/输出指令中,DX对应的是I/O接口,而输出指令的传送方向,当然应该是从累加器到I/O接口,而该指令的传送方向是累加器,所以该指令是错误的。6.2 I/O6.2 I/O接口的数据传送方式接口的数据传送方式 由于I/O接口的工作速度和数据格式都有很大差别,所以CPU与I/O接口进行数据传送的方

18、式也有多种形式,常见的有:无条件传送方式、查询传送方式、中断传送方式、DMA传送方式,以下一一介绍:6.2.1 6.2.1 无条件传送方式及其接口无条件传送方式及其接口 概念:无条件传送方式是不检查外部设备的状态,直接进行数据传送的传送方式。因为有一些外部设备(一般是一些简单装置)总是处于“准备好”(这意味着可以随时进行数据传送)的状态,CPU可以随时给这种外部设备输出数据或从这种外部设备上输入数据。这种情况下,我们可以不检查设备的状态,直接进行输入或输出。【例6.1】LED发光二极管是一种用于输出的简单装置,它随时可以接收CPU传来的数据,所以我们总是用无条件传送方式,向LED发光二极管输出

19、数据。图6.6就是一个简单的发光二极管输出接口电路,图中D触发器负责锁存CPU输出的数据,如果某一位触发器输出为“1”,通过反向器的输出就是低电平(在这里反向器具有提高驱动能力的作用),发光二极管得以导通发光;如果某一位触发器输出为“0”则发光二极管就不能发光。发光二极管右边是限流电阻,保证通过发光二极管的电流不会过大而损坏发光二极管。图6.6 发光二极管输出接口电路 【例6.2】跳线开关是常见的输入装置,常用于系统的设置,它也可以随时提供数据。我们也总是用无条件传送方式,访问跳线开关装置。图6.7就是一个跳线开关输入接口电路,IN0IN7每一位都通过上拉电阻接到电源上,所以如果这一位跳线开关

20、不短接,则该位是高电平,CPU读取该位时,读到是“1”;如果这一位跳线开关短接到地线上,则该位是低电平,CPU读取该位时,读到是“0”。图6.7 跳线开关输入接口电路6.2.2 6.2.2 查询传送方式及其接口查询传送方式及其接口 无条件传送方式是最简单的数据传送方式,多数外部设备无法做到总处于“准备好”的状态,所以就不能使用无条件传送方式,此时可以采用查询传送方式。概念:CPU在进行数据传送之前,先检查状态端口,如果外部设备当前处于“准备好”的状态,就进行数据传送;否则,再次检查状态端口,直至检测到外部设备“准备好”,再进行数据传送。这种数据传送方式就是查询传送方式。【例6.3】ADC080

21、9是常用的模拟接口芯片,它把模拟信号根据其电压的高低,转换成8位数字信号,供CPU读取。AD0809在得到CPU要求其进行转换的命令后,开始进行A/D转换(就是把模拟信号转换成数字信号),经过一段时间后,才能完成这个任务,并用EOC引脚为高电平表示“准备好”。在此之前,EOC引脚为低电平,表示是不能向CPU提供数据的。对于0809芯片,我们常常采用查询传送方式。如图6.8是用查询方式访问ADC0809的接口电路,它占用2个I/O接口,在图中用a和b表示。0809工作时,首先向a端口写入要转换通道的地址,比如:要转换IN2通道的内容,就写入02H,0809内部将锁存该内容;同时这个写入动作也启动

22、了转换过程;接下去CPU将不断地读取b端口的内容,实际是要读取EOC的值,当发现该位是“1”时,表示转换已经完成了;这时CPU可以读取a端口,0809就可以把转换好的数据通过数据线送给CPU。以下一段程序,假定a端口的地址是1000H,b端口的地址是1001H,要读取IN2通道的内容,送入KIN2内存单元。图6.8 采用查询方式访问ADC0809的接口电路 MOV AL,02H MOV DX,1000H OUT DX,AL ;写入通道的地址,并启动转换的过程L0:MOV DX,1001H IN AL,DX ;读取状态端口 AND AL,01H JZ L0 ;如果EOC为0,则再次查询 MOV

23、DX,1000H IN AL,DX ;读取转换好的数据 MOV KIN2,AL6.2.3 中断传送方式及其接口 如前所述采用查询传送方式,CPU在进行数据传送之前,要反复查询状态端口。如果外部设备的速度比CPU慢很多,CPU可能要经过几万次、几十万次查询,才能进行一次数据传送,CPU的工作效率非常低。为了提高CPU的效率,对于慢速的外部设备应该采用中断传送方式。概念:外部设备“准备好”后,向CPU发出信号(该信号叫做中断申请信号),CPU在条件允许的情况下,响应该信号:停止原来程序的执行,转而执行与I/O接口进行数据传送的程序,传送完成后,再返回原来的程序继续执行。对于慢速的外部设备来说,在它

24、进行(数据转换之类的)工作过程中,CPU运行其他程序,一旦外部设备工作完成(即“准备好”了),CPU转而去运行一小段与I/O接口进行数据传送的中断服务程序,然后CPU又去执行原来的程序了。这样,CPU与外部设备基本上是并行工作的,于是就可以大大提高CPU的利用率。【例6.4】前面的AD0809芯片采用查询方式进行数据传送,也可以把该芯片的EOC信号作为中断申请信号,这样CPU的效率就可以大大提高。如图6.9所示是采用中断方式访问ADC0809的接口电路,0809的通道选择和转换启动与前面的查询传送方式是一样的,在此不再赘述。当转换完成后,EOC变成高电平,我们把这个信号作为中断申请信号,传送给

25、CPU,CPU响应中断后,在中断服务程序中,读取0809转换好的数据。图6.9 采用中断方式访问ADC0809的接口电路6.2.4 DMA6.2.4 DMA传送方式传送方式 前面介绍的中断传送方式,适用于CPU与慢速的外部设备之间的数据传送,对于快速的外部设备(读写速度接近于CPU的速度,如:硬盘、光驱之类),使用这种方式进行数据传送,就不合适了。因为使用中断传送方式,如果外部设备要求进行数据传送,向CPU发出“准备好”的中断请求信号,CPU相应中断,进入中断服务程序时,需要进行保护断点、保护现场等一系列工作,进入中断服务程序后,才进行一次数据传送,在返回原来程序时,又要进行恢复现场、恢复断点

26、等一系列工作。完成这一系列工作,才进行了一次数据传送。这对于慢速外部设备来说算不了什么,因为它下次再发出中断请求,要很长时间之后,才会进行;可是对于快速外部设备来说,在这一系列工作完成前,就可能再次发出中断请求,显然,这时数据传送的速度,被这种传送方式制约了。对于快速外部设备,应该采用DMA传送方式。概念:DMA传送方式是不通过CPU,存储器和I/O接口之间直接进行数据传送的数据传送方式。如果系统需要进行DMA数据传送,在硬件上需要有一个DMA控制器,当外部设备需要进行数据传送时,它发出DMA请求信号,该信号首先传给DMA控制器,再由DMA控制器转发给CPU。如果情况允许,CPU会响应这个DM

27、A请求信号,这时,CPU将让出总线控制权,由DMA控制器接管,DMA控制器发出存储器地址信号、存储器读/写控制信号、I/O接口读/写控制信号,于是就完成了一次数据传送过程。然后,DMA控制器再把总线控制权交还给CPU。在这里没有保护断点、保护现场、恢复断点、恢复现场等工作,传输效率大大提高。1.1.填空题填空题(1)I/O接口可以分成 端口、状态端口、端口三种。(2).I/O接口 编址的好处是I/O接口不占用存储器的地址空间。(3)8088/8086 CPU系统中,最多可以有 个I/O接口。(4)快速I/O设备适用于采用 的数据传送方式。(5)中断传送方式适用于 的I/O设备。2.2.判断题判

28、断题(1)在8088/8086系统中,I/O接口与存储器采用统一编址的方式。(2)IN AH,DX是合法指令。(3)OUT DX,AL是合法的指令。(4)对任何I/O设备都可以使用无条件传送方式。(5)CPU与多个慢速I/O设备连接时,应该采用中断传送方式。3.3.问答题问答题 (1)什么是I/O设备?什么是I/O接口?什么是I/O接口?三者之间的关系是什么样的?(2)I/O接口分成哪几类?各自的作用是什么?(3)8088/8086系统中,I/O接口采用什么样的编址方式?这种方式的优缺点各是什么?(4)I/O接口为什么要进行数据的锁存和缓冲?(5)找出以下指令中的非法指令,并说明出错的原因:M

29、OV AL,DX IN AL,DX OUT 200,AL OUT 300,AL IN AX,DX MOV AX,DX (6)查询传送方式适用于什么样的I/O设备?(7)有一个用于连接输出设备的接口电路,其中有一个数据端口和一个状态端口,数据端口的地址是200H,状态端口的地址 是201H。状态端口的最低位为“1”,表示可以输出数据,要求把26个大写英语字母的ASCII码依次传送给输出设备,请用查询方式编写程序,完成以上任务。(8)利用图6.8的ADC0809接口电路图,如果要求依次读入IN0、IN1、IN2、IN7的数据,并依次放入一个8字节的缓冲区BUF中。请你编一段用查询方式工作的程序,完成以上任务。(9)对于慢速的外部设备,采用中断传送方式(与查询传送方式相比)有什么优点?(10)什么是DMA操作?它适用于什么样的外部设备?

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

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!