1、本章主要内容本章主要内容输入输出技术概述输入输出技术概述12基本输入输出方法基本输入输出方法简单简单I/O接口设计及实例(自学)接口设计及实例(自学)36.1 输入输出技术概述输入输出技术概述 输入输出是计算机与外部世界进行信息交换输入输出是计算机与外部世界进行信息交换不可缺少的手段,在整个计算机系统中占有极其不可缺少的手段,在整个计算机系统中占有极其重要的地位。没有输入输出,计算机将变得毫无重要的地位。没有输入输出,计算机将变得毫无意义。由于外部设备种类繁多,要求输入或输出意义。由于外部设备种类繁多,要求输入或输出的信号形式、电平、速率千差万别。因此,的信号形式、电平、速率千差万别。因此,C
2、PUCPU总是通过接口和外部设备连接的。总是通过接口和外部设备连接的。6.1 输入输出技术概述输入输出技术概述6.1.1 I/O接口的基本功能接口的基本功能 1.1.提供信息传递通道提供信息传递通道:包括主机与外设之间数据传送,:包括主机与外设之间数据传送,状态信息的交换,控制命令的传达。状态信息的交换,控制命令的传达。2.2.实现数据格式的转换实现数据格式的转换:如实现数:如实现数/模转换,串模转换,串/并转换以并转换以及信号电气参数的转换等。及信号电气参数的转换等。3.3.进行信息处理速度的匹配进行信息处理速度的匹配:通过设置数据输入输出缓:通过设置数据输入输出缓冲器,实现高速的计算机系统
3、与低速的外设间的工作速度冲器,实现高速的计算机系统与低速的外设间的工作速度匹配。匹配。4.4.可编程功能可编程功能:增加接口的应用灵活性和可扩充性。:增加接口的应用灵活性和可扩充性。5.5.提供中断处理能力提供中断处理能力。一个外设接口可能由多个端口构成。一个外设接口可能由多个端口构成。I/O端口:端口:I/O信息的三种类型:数据、命令、状态。传送这三类信息的三种类型:数据、命令、状态。传送这三类信息的通道分别称为:数据端口信息的通道分别称为:数据端口(I、O)、命令端口、命令端口(O)、状态端口状态端口(I)。不同外设具有的端口数各不相同,计算机中为每一个端不同外设具有的端口数各不相同,计算
4、机中为每一个端口都赋予一个惟一编号口都赋予一个惟一编号称为称为端口地址端口地址(或端口号或端口号)。端口有两种编址方式:统一编址和独立编址。端口有两种编址方式:统一编址和独立编址。6.1.2 基本基本I/O接口模型接口模型每个接口部件都包含一每个接口部件都包含一组寄存器,组寄存器,CPU和外设交和外设交换信息时,各类信息在接换信息时,各类信息在接口中进入不同的寄存器,口中进入不同的寄存器,一般称这些寄存器为一般称这些寄存器为 I/O 端口,每个端口有一个端端口,每个端口有一个端口地址。口地址。输入寄存器输入寄存器输出寄存器输出寄存器控制寄存器控制寄存器状态寄存器状态寄存器D-BUSC-BUSA
5、-BUS数据线数据线控制线控制线状态线状态线端口是接口部件中端口是接口部件中CPU可以通过地址访问的寄存器。可以通过地址访问的寄存器。6.1.2 基本基本I/O接口模型接口模型 接口电路的基本结构接口电路的基本结构数据线数据线控制线控制线状态线状态线DBCBAB数据输入寄存器数据输入寄存器(or 三态门)三态门)数据输出寄存器数据输出寄存器(锁存器)(锁存器)状态寄存器状态寄存器(or 三态门)三态门)命令寄存器命令寄存器译码译码电路电路控制控制逻辑逻辑接接外外设设接接主主机机6.1.3 I/O接口地址及编址方式接口地址及编址方式将外设接口地址和内部存贮器地址统一安排在内存的地址空将外设接口地
6、址和内部存贮器地址统一安排在内存的地址空间中,即把内存地址分配给外设,由外设来占用这些地址。间中,即把内存地址分配给外设,由外设来占用这些地址。用于外设的地址,存贮器不能使用。用于外设的地址,存贮器不能使用。(1 1)外设地址与内存地址统一编址)外设地址与内存地址统一编址(2 2)外设地址与内存地址独立编址)外设地址与内存地址独立编址内存地址空间和外设地址空间是相互独立的。例如,在内存地址空间和外设地址空间是相互独立的。例如,在80868086(80888088)CPUCPU中,内存地址范围为连续的中,内存地址范围为连续的1MB1MB,而外设地址范,而外设地址范围为围为64KB64KB。在寻址
7、时使用不同的控制信号,加以区分。在寻址时使用不同的控制信号,加以区分。0地址空间(共1MB)内存地址(960KB)I/O地址(64KB)FFFFFHEFFFFHF0000H00000H内存地址空间内存空间(1MB)FFFFFHI/O空间(64KB)FFFFHI/O地址空间0000H6.1.4 I/O端口地址译码端口地址译码 1、80 x86 I/O地址空间地址空间80 x86 系统有独立的系统有独立的I/O地址空间,大小为地址空间,大小为64KB。8088系统的系统的I/O空间由空间由1个字节块构成;个字节块构成;808680386SX系统系统I/O空间由高、低空间由高、低2个字节块构成;个字
8、节块构成;80386DX、80486的由的由4个字节块构成;个字节块构成;Pentium系列的由系列的由8个字节块构成。个字节块构成。80 x86系列处理器中,可寻址的系列处理器中,可寻址的I/O地址空间为地址空间为0000HFFFFH,大小为,大小为64KB。其中。其中0000H03FFH的空的空间为计算机系统和间为计算机系统和ISA总线预留。总线预留。0400HFFFH给用户,给用户,主板和主板和PCI总线使用。总线使用。IO/M=1IO/M 8 80 08 88 8总线A19-A0A9-A0MEMR、MEMWIOR、IOW、AEN存储器访问存储器访问I/O访问访问 80 x86系列处理器
9、的系列处理器的I/O地址译码与存储器地址译码方式地址译码与存储器地址译码方式类似,有类似,有全地址译码全地址译码及及部分地址译码方式部分地址译码方式。需要说明的是,需要说明的是,I/O端口寻址方式中,如果是端口寻址方式中,如果是8位端口地位端口地址,可以采用直接寻址(指令中直接给出址,可以采用直接寻址(指令中直接给出8位端口地址),位端口地址),也可以间接寻址(端口地址放入也可以间接寻址(端口地址放入DX寄存器)。如果大于寄存器)。如果大于8位地址,只能采用间接寻址方式。位地址,只能采用间接寻址方式。2、I/O端口地址译码方式端口地址译码方式 、A15 A0 例如:例如:某外设接口有某外设接口
10、有4个端口,地址为个端口,地址为2F0H2F3H,则其基地址为则其基地址为2F0H,由,由A15A2译码得到,而译码得到,而A1、A0用用来确定来确定4个端口中的某一个。个端口中的某一个。IORIOWIOW IOR6.2 基本输入输出方法基本输入输出方法 1.无条件传送方式无条件传送方式 2.查询方式查询方式 3.中断方式中断方式 4.直接存储器存取方式直接存储器存取方式1.无条件传送无条件传送方式方式 在工作时,随时都准备好接收在工作时,随时都准备好接收CPUCPU的输出数据或外设的输出数据或外设的数据随时都是准备好的,的数据随时都是准备好的,CPUCPU什么时候都可以正确地读什么时候都可以
11、正确地读到它们的数据。即外设无条件准备好向到它们的数据。即外设无条件准备好向CPUCPU提供数据或接提供数据或接收收CPUCPU送来的数据。一般用于简单的外设操作。送来的数据。一般用于简单的外设操作。自输入设备端端口口译译码码数据总线地址总线AENIOWIOR输出输出锁存锁存器器输入输入锁存锁存器器至输出设备D0-D7无条件输入无条件输入A0A1A2A3A4A5A6A7A8A9A10A11A12A13A14A15IOR1D0MOV DX,0FFF7HIN AL,DX+5V10千欧千欧图图6.12 开关开关K的输入接口的输入接口KA0A1A2A3A4A5A6A7A8A9A10A11A12A13A
12、14A15IOW111D0D7CPD0D7Q0Q1Q774LS273MOV AL,5BHMOV DX,0000HOUT DX,AL01524637无条件输出无条件输出 所谓查询方式就是计算机利用程序不断地读取并测试外所谓查询方式就是计算机利用程序不断地读取并测试外部设备的状态,当部设备的状态,当CPU确认外设已处于确认外设已处于“准备好准备好”的状态的状态时则执行读时则执行读/写操作,实现数据的输入和输出。写操作,实现数据的输入和输出。CPU接接口口外外设设状态状态数据数据控制控制2.查询查询方式方式 单个外设的查询工作单个外设的查询工作取外设状态取外设状态外设准备就绪外设准备就绪传送数据传送
13、数据传送完否?传送完否?开始开始结结 束束NNYY MOV DX,PORTLOP:IN AL,DX TEST AL,01H JZ LOP MOV AL,BUFFER OUT DX,AL.CPU在与外设交换数据前必须询在与外设交换数据前必须询问外设状态问外设状态“你准备好没有?你准备好没有?”对外设的要求:应提供设备状态对外设的要求:应提供设备状态信息信息 对接口的要求:需要提供状态端对接口的要求:需要提供状态端口口例:例:数据输出口和状态输入口共用数据输出口和状态输入口共用一个地址一个地址00FFH。现欲将。现欲将48000H为首为首地址的顺序地址的顺序100个单元的数据,利用查个单元的数据,
14、利用查询方式输出到外设。询方式输出到外设。A8A15IOWD0D7CPD0D7Q0Q774LS273&1111IORD0BUSYD0D7外设A0A7.START:MOV AX,4000H MOV DS,AX MOV SI,8000H MOV CX,100 MOV DX,00FFHWAIT:IN AL,DX TEST AL,01H JZ WAIT MOV AL,SI OUT DX,ALINC SI LOOP WAITHLT1号外设号外设准备就绪?准备就绪?2号外设号外设准备就绪?准备就绪?n号外设号外设准备就绪?准备就绪?对对1号外设服务号外设服务对对2号外设服务号外设服务对对n号外设服务号外设
15、服务YYYNNN 多个外设的查询控制多个外设的查询控制 1 1、对、对N N个外设服务时,是个外设服务时,是否有优先级的差别?若有否有优先级的差别?若有,其优先级顺序是什么?,其优先级顺序是什么?2 2、外设的优先级顺序是、外设的优先级顺序是否固定不变?若不是,怎否固定不变?若不是,怎么变?么变?3 3、查询工作方式有什么、查询工作方式有什么优缺点?优缺点?问题:问题:在中断方式下,外设具有申请在中断方式下,外设具有申请CPUCPU服务的主动权,服务的主动权,当外当外设准备就绪时,可通过接口部件向设准备就绪时,可通过接口部件向CPUCPU发出一个中断请求信发出一个中断请求信号,当号,当CPUC
16、PU响应这一请求后,便暂时停止目前的工作,转向响应这一请求后,便暂时停止目前的工作,转向为外设提供服务,这一工作是在中断服务子程序中完成。为外设提供服务,这一工作是在中断服务子程序中完成。服务完成后,继续回到被暂时中断的工作中去。服务完成后,继续回到被暂时中断的工作中去。3.中断中断方式方式CPU正在执行正在执行的程序的程序中断中断断点断点中断事中断事件发生件发生CPU响应中断响应中断中断事件中断事件处理程序处理程序中断结束中断结束前面三种前面三种I/O方式都需要方式都需要CPU作为中介:作为中介:外设外设 CPU 内存内存 两个含义:两个含义:缺点:程序的执行速度限定了传送的最大速度缺点:程
17、序的执行速度限定了传送的最大速度(约为几十(约为几十KB/秒)秒)解决:解决:DMA传输传输 外设直接与存储器进行数据交换外设直接与存储器进行数据交换,CPUCPU不再担当数据传输不再担当数据传输的中介者;的中介者;总线由总线由DMA控制器控制器(DMAC)进行控制进行控制(CPU要放弃总要放弃总线控制权),内存线控制权),内存/外设的地址和读写控制信号均由外设的地址和读写控制信号均由DMAC提供提供。DMAMB4.直接存储器存储方式(直接存储器存储方式(DMA)DMADMA传送原理示意传送原理示意图图 系统总线系统总线CPUDMAC存储器存储器外设接口外设接口AENIOWMEMWMEMRIO
18、RMEMWMEMRIOWIORAENHOLDHLDADRQDACKAENIOWIORMEMWMEMRDMA的三种传输方式的三种传输方式:连续传送(块传送)连续传送(块传送)DMAC申请到总线后,将一块数据传送完后才释放总线,申请到总线后,将一块数据传送完后才释放总线,而不管中间而不管中间DREQ是否有效。是否有效。单次传送(每次传送一个字节)单次传送(每次传送一个字节)每个每个DMA周期只传送一个字节就立即释放总线。周期只传送一个字节就立即释放总线。按需传送(猝发传送)按需传送(猝发传送)只要只要I/O接口的数据缓冲可用,就进行传送。接口的数据缓冲可用,就进行传送。(注:注:I/O接口需要有一
19、定大小的接口需要有一定大小的FIFO缓冲缓冲)一个总线周期一个总线周期TDMAC控制总线,共传送控制总线,共传送n个数据个数据DMA1DMA2DMAnCPU重新控制总线重新控制总线CPU对总线控制对总线控制连续传送连续传送TDMA共传送共传送n个数据个数据DMA1DMA2DMAn单次传送单次传送DMA3T按需传送按需传送DMA传送传送k个数据个数据DMA传送传送n-k个数据个数据FIFO可用可用FIFO满满FIFO可用可用FIFO满满图例:图例:DMA传输方式示意图传输方式示意图:YN允许允许DMADMA请求请求?DMAC请求总线请求总线CPU响应响应,DMAC获总线控制权获总线控制权DMA传
20、送一个字节传送一个字节块结束?块结束?地址增量,计数器减量地址增量,计数器减量DMAC释放总线释放总线Y 数据块传送数据块传送NNYN允许允许DMADMAC请求总线请求总线CPU响应响应,DMAC获总线控制权获总线控制权DMA传送一个数据传送一个数据块结束?块结束?释放总线至少一个总线周期释放总线至少一个总线周期地址增量,计数器减量地址增量,计数器减量DMAC释放总线释放总线Y每次传送一个字节每次传送一个字节测试测试I/O的的DREQ DMA请求?请求?NYCPU响应响应,DMAC获总线控制权获总线控制权DMA传送一个字节传送一个字节块结束?块结束?测试测试I/O的的DREQ 有效?有效?地址
21、增量,计数器减量地址增量,计数器减量释放总线,请求中断释放总线,请求中断无效,释放总线无效,释放总线允许允许DMADMA请求?请求?DMAC请求总线请求总线按需传送按需传送YNYN6.3 简单接口电路简单接口电路 A0A15IOR#译码输出译码输出D0D7开关状态开关状态地址有效地址有效 简单的输入接口举例简单的输入接口举例83FCH83FFH译码器译译码码器器=1=1.+5VRD0D7CPQ0Q7.D0D7A0A15IOW#74LS273R 简单的输出接口举例简单的输出接口举例本章小结本章小结接口是微机与外部设备之间连接通道和桥梁,外设通过接口与计算机交流信息。端口是接口部件中可供计算机通过地址访问的寄存器,端口的编址方式有统一编址和独立编址。计算机的输入输出方式可分为四种:无条件传送方式、查询方式、终断方式和DMA方式。