《微机原理与接口技术输入输出接口技术》由会员分享,可在线阅读,更多相关《微机原理与接口技术输入输出接口技术(29页珍藏版)》请在金锄头文库上搜索。
1、第第6章章 输入输出接口技术输入输出接口技术本章重点本章重点vI/OI/O接口的基本概念接口的基本概念v输入输出输入输出IN/OUTIN/OUT指令指令v程序查询输入输出方式程序查询输入输出方式v中断输入输出方式中断输入输出方式vDMADMA输入输出方式输入输出方式vI/OI/O端口地址分配端口地址分配vI/OI/O端口地址译码端口地址译码v计算机系统的计算机系统的I/OI/O接口接口为什么输入输出设备不能像存储器一样直接连在总线上?为什么输入输出设备不能像存储器一样直接连在总线上?6.1 接口技术基本概念接口技术基本概念ALUCPUI/O设备设备CU主存主存M MI/OI/O接口接口地址总线
2、地址总线ABAB控制总线控制总线CBCB数据总线数据总线DBDBv外设接口外设接口(I/O(I/O接口接口) )的必要性的必要性外设的种类繁多,而存储器的种类单一,必须经过接口外设的种类繁多,而存储器的种类单一,必须经过接口电路连接到总线上。电路连接到总线上。外设的速度较慢,而存储器的速度较快,必须经过接口外设的速度较慢,而存储器的速度较快,必须经过接口电路进行数据的缓冲和锁存。电路进行数据的缓冲和锁存。 外设的信号多种多样,必须经过接口电路转换成处理器外设的信号多种多样,必须经过接口电路转换成处理器可以识别的信号。可以识别的信号。 I/OI/O接口接口的作用相当与一个转换器的作用相当与一个转
3、换器,它可以保证外它可以保证外围设备用计算机所要求的形式发送或接受信息。围设备用计算机所要求的形式发送或接受信息。v I/O I/O接口的功能接口的功能进行译码选址进行译码选址在具有多台外设的系统中,外设接口必须在具有多台外设的系统中,外设接口必须能够进行地址译码,确定本设备是否被选中能够进行地址译码,确定本设备是否被选中转换信息格式转换信息格式接口电路完成串并转换、并串转换接口电路完成串并转换、并串转换协调定时差异协调定时差异为了缓解主机与外设之间的速度差异,对为了缓解主机与外设之间的速度差异,对传输的数据或地址加以缓冲或锁存传输的数据或地址加以缓冲或锁存提供联络信号提供联络信号接口电路向主
4、机提供外部设备接口电路向主机提供外部设备“就绪就绪”、“忙忙”,数据缓冲器,数据缓冲器“满满”、“空空”等状态信号等状态信号中断管理功能中断管理功能接口电路有产生并管理中断请求和接口电路有产生并管理中断请求和DMADMA请请求的能力,以满足实时系统以及大批量数据传送的能力求的能力,以满足实时系统以及大批量数据传送的能力可编程可编程对一些通用的接口电路,应该具有通过软件编程对一些通用的接口电路,应该具有通过软件编程控制外设工作方式的能力控制外设工作方式的能力错误检测功能错误检测功能对通信过程中的传输错误或者溢出错误能对通信过程中的传输错误或者溢出错误能够进行实时检测够进行实时检测vI/OI/O接
5、口的组成接口的组成 控制寄存器控制寄存器地址译地址译码器码器 状态状态 寄存器寄存器数据缓冲数据缓冲 寄存器寄存器 控控制制逻逻辑辑电电路路I/O接口接口外外 部部 设设 备备数据线数据线数据线数据线CPU控制控制命令线命令线状态状态状态线状态线地址线地址线vI/OI/O接口与接口与I/OI/O端口端口端口:端口:CPUCPU能够直接访问的能够直接访问的I/OI/O接口内部的寄存器称为端口接口内部的寄存器称为端口端口号:每一个端口的访问地址端口号:每一个端口的访问地址I/OI/O接口接口vCPUCPU与与I/OI/O接口传递的信息接口传递的信息数据信息:数据信息: CPU CPU 输入输出设备
6、输入输出设备 CPU CPU 输入输出设备输入输出设备控制信息:控制信息: CPU CPU 输入输出设备输入输出设备 控制命令控制命令外设状态外设状态状态信息:状态信息: 输入输出设备输入输出设备 CPUCPU数据信息、状态信息和控制信息都是通过数据总线传送的。数据信息、状态信息和控制信息都是通过数据总线传送的。CPUCPU写入控制端口的数据是写入控制端口的数据是CPUCPU对外设的控制信息;对外设的控制信息;CPUCPU读状态端口的数据是外设的状态信息;读状态端口的数据是外设的状态信息;CPUCPU写数据端口的数据是写数据端口的数据是CPUCPU送给外设的数据送给外设的数据CPUCPU读数据
7、端口的数据是外设送给读数据端口的数据是外设送给CPUCPU的数据的数据vI/OI/O端口编址方式端口编址方式 为了便于为了便于CPUCPU访问端口,每一个端口都有一个地址,系统访问端口,每一个端口都有一个地址,系统有两种方式为端口分配地址:有两种方式为端口分配地址:I/OI/O端口和存储器端口和存储器统一编址统一编址 统一编址就是从存储器空间中划分出一部分给统一编址就是从存储器空间中划分出一部分给I/OI/O设备,设备,把把I/OI/O端口当作存储单元来访问。端口当作存储单元来访问。 例如:设例如:设CPUCPU有有1616根地址线,存储空间为根地址线,存储空间为64K64K,规定地址,规定地
8、址总线的最高位总线的最高位A A15151 1访问访问I/OI/O端口,端口,A A15150 0访问存储器,则访问存储器,则0 032K32K为存储器地址空间,为存储器地址空间,32K32K64K64K为为I/OI/O端口地址空间。端口地址空间。 统一编址统一编址的优点是不需要专门的的优点是不需要专门的I/OI/O指令,凡对存储器有指令,凡对存储器有效的访问指令都可以访问效的访问指令都可以访问I/OI/O端口,访问形式灵活。缺点是端端口,访问形式灵活。缺点是端口占用了一定的存储空间,存储器空间变小。口占用了一定的存储空间,存储器空间变小。6.3 I/OI/O端口编址方式及地址译码端口编址方式
9、及地址译码20201616统一编址方式统一编址方式I/OI/O端口和存储器端口和存储器独立编址独立编址 独立编址就是独立编址就是I/OI/O端口地址补占用存储器地址空间,两者端口地址补占用存储器地址空间,两者的地址空间完全独立,都从的地址空间完全独立,都从0 0开始编址。独立编址需要专门的开始编址。独立编址需要专门的I/OI/O端口访问指令。端口访问指令。 8086 8086采用存储器与采用存储器与I/OI/O端口独立编址方式,即内存单元和端口独立编址方式,即内存单元和I/OI/O端口从端口从0 0单元开始编址。当引脚单元开始编址。当引脚M/IOM/IO为高电平时访问存储为高电平时访问存储器,
10、当器,当M/IOM/IO为低电平时访问为低电平时访问I/OI/O端口。端口。 80868086有专门的访问有专门的访问I/OI/O端口的指令端口的指令( (ININ和和OUTOUT) ),当,当80868086在在执行访问执行访问I/OI/O端口的输入端口的输入(IN)(IN)指令和输出指令和输出(OUT)(OUT)指令时,就会指令时,就会使使M/IOM/IO信号处于低电平,结合信号处于低电平,结合RDRD和和WRWR信号产生出对相应的信号产生出对相应的I/OI/O端口的读端口的读/ /写操作。写操作。 独立编址的优点是独立编址的优点是I/OI/O端口不占用内存空间;缺点是端口不占用内存空间;
11、缺点是I/OI/O指指令功能单一,类型少,使输入输出操作受到限制。令功能单一,类型少,使输入输出操作受到限制。独立编址方式独立编址方式vININ和和OUTOUT指令指令 80868086系统中可以有系统中可以有64K64K个个8 8位端口,相邻编号的两个端口可位端口,相邻编号的两个端口可以组合成为一个以组合成为一个1616的端口。的端口。 执行输入执行输入(IN)(IN)输出输出(OUT)(OUT)指令时,指令时,CPUCPU可以从一个可以从一个8 8位端口位端口读入读入( (写出写出) )一个字节到一个字节到ALAL中,或者从一个中,或者从一个1616位端口读入位端口读入( (写出写出) )
12、一个字到一个字到AXAX中。中。1. IN1. IN指令指令( (输入指令输入指令) )格式:格式:IN AIN A,PORT ;APORT ;A可以是可以是ALAL或者是或者是AXAX功能:功能: AL(PORT) AL(PORT) 或或AX(PORTAX(PORT +1)_(PORT)+1)_(PORT)(1)(1)直接输入指令直接输入指令 端口号为端口号为0 0255255,用一个立即数表示(,用一个立即数表示(00H00HFFHFFH) IN AL IN AL,50H 50H ;将将5050H H端口的字节读入端口的字节读入ALAL IN AX IN AX,70H 70H ;分别将分别
13、将7070H H、71H71H端口的内容读入端口的内容读入ALAL、AHAH(2)(2)间接输入指令间接输入指令 当端口号大于当端口号大于FFHFFH时,这些端口号不能用在指令中用立即时,这些端口号不能用在指令中用立即数的形式给出,数的形式给出,端口号放在端口号放在DXDX寄存器中寄存器中。 MOV DX MOV DX,500H ;500H ;端口号送端口号送DXDX IN ALIN AL,DX ;DX ;将将DXDX所指端口内容送所指端口内容送ALALOUT DXOUT DX,AL AL ;将将ALAL中的字节输出到中的字节输出到DXDX所指的端口中所指的端口中2. OUT2. OUT指令指
14、令( (输出指令输出指令) )格式:格式:OUT PORTOUT PORT,A ;AA ;A可以是可以是ALAL或者是或者是AXAX功能:功能: AL(PORT) AL(PORT) 或或AXAX(PORT(PORT +1)_(PORT)+1)_(PORT)(1)(1)直接输出指令直接输出指令 OUT 44H OUT 44H,AL AL ;将将ALAL中的内容输出到中的内容输出到4444H H端口端口 OUT 80HOUT 80H,AX AX ;将将ALAL、AHAH中的内容输出到中的内容输出到8080H H、81H81H端口端口(2)(2)间接输出指令间接输出指令vI/OI/O端口地址译码端口
15、地址译码CSCSA9A9A8A8A7A7A6A6A5A5A4A4A3A3A2A2M/IOM/IOAENAEN接口电路芯片接口电路芯片A1A1A0A0片内端口选择片内端口选择端口地址端口地址27CH27CH27FH27FH固定式译码方式固定式译码方式门电路译码门电路译码 跳线在跳线在J1J1时,端口地址时,端口地址27CH27CH27FH27FH跳线在跳线在J2J2时,端口地址时,端口地址37CH37CH37FH37FHA9A9A8A8A7A7A6A6A5A5A4A4A3A3A2A2CSCSJ1J1J2J2M/IOM/IOAENAENCSCS接口电路芯片接口电路芯片A1A1A0A0片内端口选择片
16、内端口选择可选式译码方式可选式译码方式译码器电路译码译码器电路译码G3CBAG2G1Y0Y2Y1Y3Y4Y6Y5Y774LS13874LS138A2A1A0A7A5A4A3&M/IOM/IOA9A8A6&340H340H341H341H342H342H343H343H344H344H345H345H346H346H347H347H全地址译码全地址译码G3CBAG2G1Y0Y2Y1Y3Y4Y6Y5Y774LS13874LS138A7A6A5000-01FH000-01FH040-05FH040-05FH060-07FH060-07FH080-09FH080-09FH0A0-0BFH0A0-0BF
17、H0C0-0DFH0C0-0DFH0E0-0FFH0E0-0FFHA9A8M/IOM/IO1 1020-03FH020-03FH部分地址译码部分地址译码vCPUCPU与外部设备的定时方式与外部设备的定时方式输入过程:输入过程:1)CPU1)CPU把一个地址值放在地址总线上,选择某一输入设备;把一个地址值放在地址总线上,选择某一输入设备; 2)CPU2)CPU等候输入设备的数据成为等候输入设备的数据成为就绪就绪; 3)CPU3)CPU从数据总线读入数据,并放在一个相应的寄存器中。从数据总线读入数据,并放在一个相应的寄存器中。输出过程:输出过程:1)CPU1)CPU把一个地址值放在地址总线上,选择
18、输出设备;把一个地址值放在地址总线上,选择输出设备; 2)CPU2)CPU等候输出设备的状态成为等候输出设备的状态成为就绪就绪; 3)CPU3)CPU把数据放在数据总线上,输出设备把数据取走。把数据放在数据总线上,输出设备把数据取走。问题的关键在于:输入时究竟什么时候输入设备数据成为问题的关键在于:输入时究竟什么时候输入设备数据成为就绪就绪? ? 输出时什输出时什么时候输出设备的状态才成为么时候输出设备的状态才成为就绪。就绪。很显然由于输入输出设备本身的速度很显然由于输入输出设备本身的速度差异很大,对于不同速度的外围设备,需要有不同的定时方式。差异很大,对于不同速度的外围设备,需要有不同的定时
19、方式。 6.3 CPU与外设数据传递方式与外设数据传递方式CPUCPU与外围设备的定时有三种情况:与外围设备的定时有三种情况:简单外围设备:简单外围设备: CPUCPU和这类设备的数据交换和这类设备的数据交换不需要定时不需要定时,CPU认为它们始终认为它们始终处于就绪状态,例如:机械开关,处于就绪状态,例如:机械开关,CPUCPU认为输入设备的数据一定认为输入设备的数据一定就绪,因为只要根据开关的闭就绪,因为只要根据开关的闭/ /合就可以输入合就可以输入0/10/1信号;例如信号;例如: :显显示二极管,示二极管,CPUCPU认为输出设备的状态一定就绪,因为只要认为输出设备的状态一定就绪,因为
20、只要CPU输输出出0/10/1信号,显示二级就可以灭信号,显示二级就可以灭/ /亮。亮。 CPUCPU和这类设备的数据交换一般采用和这类设备的数据交换一般采用无条件传送方式无条件传送方式。慢速外围设备慢速外围设备 由于这类设备的速度和由于这类设备的速度和CPU的速度不在一个数量级上,如的速度不在一个数量级上,如打印机;或由于设备本身是在不规则时间间隔下操作的,如键打印机;或由于设备本身是在不规则时间间隔下操作的,如键盘,因此盘,因此CPU与这类设备之间的通常采用与这类设备之间的通常采用异步定时方式异步定时方式。输入:输入:CPU首先查询外部设备的数据是否就绪,如果就绪则通首先查询外部设备的数据
21、是否就绪,如果就绪则通过数据总线输入数据,否则循环等待直到数据就绪;或者由外过数据总线输入数据,否则循环等待直到数据就绪;或者由外部设备在数据就绪时通知部设备在数据就绪时通知CPU,CPU通过数据总线输入数据。通过数据总线输入数据。输出:输出:CPU首先查询外部设备的状态是否就绪,如果就绪则通首先查询外部设备的状态是否就绪,如果就绪则通过数据总线输出数据,否则循环等待直到外设就绪;或者由外过数据总线输出数据,否则循环等待直到外设就绪;或者由外部设备在状态就绪时通知部设备在状态就绪时通知CPU,CPU通过数据总线输出数据。通过数据总线输出数据。 CPU和这类设备的数据交换一般采用和这类设备的数据
22、交换一般采用程序查询方式程序查询方式或者或者中中断方式断方式。 高速的外围设备高速的外围设备 由于这类外设是以相等的时间间隔操作的,则由于这类外设是以相等的时间间隔操作的,则CPU可以用可以用等间隔的速率执行输入等间隔的速率执行输入/ /输出指令。因此输出指令。因此CPUCPU与这类设备之间的与这类设备之间的通常采用通常采用同步定时方式同步定时方式。 例如外设外设的速度是例如外设外设的速度是2400B/s2400B/s,则,则CPUCPU每隔每隔1/24001/2400执行一执行一次输入指令即可。次输入指令即可。 CPUCPU和这类设备的数据交换一般采用和这类设备的数据交换一般采用DMADMA
23、方式方式或或通道方式通道方式。v无条件方式无条件方式 CPU CPU认为外设的输入数据始终有效,随时可以输入;或外认为外设的输入数据始终有效,随时可以输入;或外设的状态始终就绪,随时可以输出。设的状态始终就绪,随时可以输出。v程序查询方式程序查询方式CPU 和和 I/O 串行工作串行工作踏步等待踏步等待从从I/O接口中读接口中读 一个字到一个字到CPU从从CPU向主存向主存 写入一个字写入一个字CPU向向I/O发发 读指令读指令CPU读读I/O状态状态检查状态检查状态 完成否完成否未准备就绪未准备就绪现行程序现行程序是是出错出错已准备就绪已准备就绪否否 CPUCPU通过执行程序不通过执行程序不
24、断读取并测试外设的状断读取并测试外设的状态,如果外设处于就绪态,如果外设处于就绪状态,则状态,则CPU执行输入执行输入指令或输出指令与外设指令或输出指令与外设交换数据。否则交换数据。否则CPU必必须循环等待。须循环等待。设备选择电路设备选择电路数据缓冲寄存器数据缓冲寄存器QQ&数据线数据线是否就绪是否就绪启动命令启动命令地址线地址线SEL输入数据输入数据启动设备启动设备设备工作设备工作 结束结束就绪就绪忙忙10 10 程序查询方式的接口程序查询方式的接口 1 1)设备选择电路)设备选择电路 2 2)数据缓冲寄存器)数据缓冲寄存器 3 3)设备状态标志)设备状态标志 CPU通过执行程序不断读取并
25、测试外设的状态,如果外设通过执行程序不断读取并测试外设的状态,如果外设处于就绪状态,则处于就绪状态,则CPUCPU执行输入指令执行输入指令(in)(in)或输出指令或输出指令(out)(out)与外与外设交换数据。否则设交换数据。否则CPUCPU循环等待。循环等待。检查状态标记检查状态标记交换数据交换数据准备就绪准备就绪?是是否否测测试试指指令令转转移移指指令令传传送送指指令令控制总线控制总线输入输入设备设备 状态寄存器状态寄存器CPUCPU数据总线数据总线地址总线地址总线0:未就绪未就绪1:就绪就绪端口地址:端口地址:61H61H设设I/OI/O接口的数据寄存器端口地址为接口的数据寄存器端口
26、地址为62H(62H(图中未图中未给出给出) ),输入的字符存放在,输入的字符存放在BXBX所指的内存缓冲区所指的内存缓冲区中,则通过查询传送输入数据的程序如下:中,则通过查询传送输入数据的程序如下: INPUT: IN AL,61H INPUT: IN AL,61H ;读状态寄存器;读状态寄存器 TEST AL,01H TEST AL,01H ;测试最低位;测试最低位 JZ INPUT JZ INPUT ;继续读入;继续读入 IN AL,62H IN AL,62H ;输入数据;输入数据 MOV BX,AL MOV BX,AL ;存放数据;存放数据RDY查询式输入接口电路查询式输入接口电路查询
27、式输出接口电路查询式输出接口电路v中断传送方式中断传送方式 在在查查询询方方式式中中,不不能能有有效效的的利利用用CPUCPU。为为了了提提高高CPUCPU的的利利用用率率,于于是是产产生生了了中中断断处处理理技技术术。在在中中断断系系统统中中,CPUCPU与与外外设设交交换换数数据据时时,CPUCPU不不需需要要查查询询外外部部设设备备的的状状态态,当当外外设设没没有有做做好好传传送送数数据据的的准准备备时时, CPUCPU可可以以执执行行其其他他操操作作,当当外外设设准准备备好好后后,向向CPUCPU发发送送中中断断请请求求,CPUCPU暂暂停停当当前前的的程程序序,执执行行中中断断程程序
28、序来完成数据传送,接着返回原来的程序继续执行。来完成数据传送,接着返回原来的程序继续执行。 主主程程序序主主程程序序中断请求中断请求中断返回中断返回中断服务中断服务子程序子程序中断的概念中断的概念 在在CPU正常运行程序时,由于内正常运行程序时,由于内部或外部某个部或外部某个非预料事件的发生非预料事件的发生,使,使C CPU暂停正在运行的程序,而转去暂停正在运行的程序,而转去执执行处理引起中断事件的程序行处理引起中断事件的程序,然后再,然后再返回被中断了的程序,继续执行。这返回被中断了的程序,继续执行。这个过程就是个过程就是中断中断。中断适合随机出现。中断适合随机出现的请求,例如输入输出设备的
29、请求。的请求,例如输入输出设备的请求。I/OI/O中断的产生中断的产生以打印机为例以打印机为例发发中中断断请请求求 空闲空闲接收接收数据数据接收接收数据数据准备准备发发中中断断请请求求打印打印打印打印打印机打印机执行主程序执行主程序继续执行主程序继续执行主程序继续执行主程序继续执行主程序响响应应中中断断中中断断返返回回响响应应中中断断中中断断返返回回 启动启动打印机打印机传送传送数据数据传送传送数据数据CPUCPU 与打印机并行工作与打印机并行工作v直接存储器读取直接存储器读取(DMA)(DMA)方式方式 为了进一步提高为了进一步提高CPUCPU的利用率,人们提出了直接内存访文的利用率,人们提
30、出了直接内存访文技术,即技术,即Direct Memory AccessDirect Memory Access, ,简称简称DMADMA技术。技术。 在在DMADMA方式下,外部设备利用专门的接口电路直接和内存方式下,外部设备利用专门的接口电路直接和内存进行高速的数据交换,不需要进行高速的数据交换,不需要CPUCPU的干预。这样在进行数据传的干预。这样在进行数据传输时就不需要像中断那样要进行保护断点之类的一系列操作,输时就不需要像中断那样要进行保护断点之类的一系列操作,使使CPUCPU的利用率得到大幅度的提高。的利用率得到大幅度的提高。 利用利用DMADMA方式进行数据传输时,当然要利用系统中的数据方式进行数据传输时,当然要利用系统中的数据总线,地址总线和控制总线,但是系统的总线是由总线,地址总线和控制总线,但是系统的总线是由CPUCPU管理控管理控制的。因此用制的。因此用DMADMA方式进行数据传输的时候,接口电路需要向方式进行数据传输的时候,接口电路需要向CPU发送总线请求,申请发送总线请求,申请CPUCPU让出总线,即把总线控制权交给让出总线,即把总线控制权交给控制控制DMADMA传输的接口电路。传输的接口电路。 这种能够控制系统总线完成外设与内存之间大量数据交换这种能够控制系统总线完成外设与内存之间大量数据交换的接口电路就是的接口电路就是DMADMA控制器。控制器。