第7章基本输入输出接口
- 格式:doc
- 大小:3.95 MB
- 文档页数:22
第7章输入/输出接口习题与参考答案这一章的习题与参考答案分为两大部分,一部分是输入输出概述及DMA控制器的习题与参考答案;另一部分是中断及中断控制器部分的习题与参考答案。
一、输入输出概述及DMA控制器的习题与参考答案1、请说明为什么输入接口的数据缓冲寄存器必须有三态输出功能而输出接口却不需要的原因。
解:输入接口的数据缓冲寄存器的输出端是直接接在数据总线上的,如果数据寄存器没有三态输出功能,则无论数据寄存器被寻址选中或未被选中,其数据都会被送上数据总线,若此时总线上真正要传送的数据与该输入缓存器的内容不一致时,就会发生总线冲突。
所以,输入接口的数据缓冲器必须有三态输出功能,以便当接口未被寻址选中时,其输出端处于高阻态,从而与总线隔离。
对于输出接口来说,是输入端与数据总线相连,而输出端是与外设相连,因此其输出不影响总线状态;另外,一个外设一般只与一个输出数据缓存器相连,因此输出接口的数据缓存器无须有三态输出功能。
2、8086/8088CPU中哪些寄存器可以用于I/O寻址?若I/O端口地址分别是10H和100H,分别写出向这两个端口写入73H的程序段。
解:8086/8088CPU内可以用于I/O寻址的寄存器为AL、AX和DX。
向端口10H写入73H的程序段为: MOV AL,73HOUT 10H,AL向端口10H写入73H的程序段为: MOV AL,73HMOV DX,100HOUT DX,AL3、图为7段显示器接口,显示器采用共阳极接法,试编写程序段,使AL中的一位十六进制数显示于显示器上。
输出锁存器地址为40H。
解:TABLE DB 3FH,06H,5BH,4FHDB 66H,6DH,7DH,07HDB 7FH,67H,77H,7CH,DB 39H,5EH,79H,71HLEA BX,TABLEXLATOUT 40H,AL4、PC/XT机有哪些输入输出方式?各自的特点如何?DMA控制器应具备哪些功能?解:无条件方式:需要外设处于就绪状态,硬件简单;查询方式:CPU需要不断地查询外设是否就绪,浪费CPU时间,硬件较简单;中断方式:外设准备好后,向CPU发中断请求,请求CPU完成数据传输,外设与CPU并行;硬件又比前两者复杂。
第7章思考题与习题参考答案1.计算机的I/O系统的功能是什么?它由哪几个部分组成?答:计算机的I/O系统,主要用于解决主机与外部设备间的信息通讯,提供信息通路,使外围设备与主机能够协调一致地工作。
计算机的I/O系统由I/O硬件和I/O软件两大部分组成。
其中I/O硬件包括:系统总线、I/O接口、I/O设备及设备控制器。
I/O软件包括:用户的I/O程序、设备驱动程序、设备控制程序。
2.I/O硬件包括哪几个部分?各部分的作用是什么?答:I/O硬件包括:系统总线、I/O接口、I/O设备及设备控制器。
系统总线的作用是为CPU、主存、I/O设备(通过I/O接口)各大部件之间的信息传输提供通路。
I/O接口通常是指主机与I/O设备之间设置的一个硬件电路及其相应的控制软件。
它用于在系统总线和外设之间传输信号,并起缓冲作用,以满足接口两边的时序要求。
I/O设备的作用是为主机与外部世界打交道提供一个工具。
设备控制器用来控制I/O设备的具体动作,不同的I/O设备需要完成的控制功能不同。
3.什么是用户I/O程序?什么是设备驱动程序?什么是设备控制程序?答:用户I/O程序是指用户利用操作系统提供的调用界面编写的具体I/O设备的输入输出程序。
例如用户编写的用打印机输出文本的程序。
设备驱动程序是一种可以使计算机和设备通信的特殊程序。
可以说相当于操作系统与硬件的接口,操作系统只有通过这个接口,才能控制硬件设备的工作,假如某设备的驱动程序未能正确安装,便不能正常工作。
设备控制程序就是驱动程序中具体对设备进行控制的程序。
设备控制程序通过接口控制逻辑电路,发出控制命令字。
命令字代码各位表达了要求I/O设备执行操作的控制代码,由硬件逻辑解释执行,发出控制外设的有关控制信号。
4.说明设计I/O系统的三个要素的具体内容。
答:设计I/O系统应该考虑如下三个要素:①数据定位: I/O系统必须能够根据主机提出的要求进行设备的选择,并按照数据在设备中的地址找到相应的数据。
第七章输入输出系统第一节基本的输入输出方式一、外围设备的寻址1.统一编址:将输入输出设备中控制寄存器、数据寄存器、状态寄存器等与内存单元一样看待,将它们和内存单元联合在一起编排地址,用访问内存的指令来访问输入输出设备接口的某个寄存器,从而实现数据的输入输出。
2.单独编址:将输入输出设备中控制寄存器、数据寄存器、状态寄存器单独编排地址,用专门的控制信号进行输入输出操作。
3.CPU与外围设备进行通信有三种类型:(1)CPU向外围设备发出操作控制命令。
(2)外围设备向CPU提供状态信息。
(3)数据在CPU与外围设备之间的传递。
历年真题1.对外设统一编址是指给每个外设设置一个地址码。
(2002年)【分析】CPU与外设之间的信息传送是通过硬件接口来实现的,各种外设的硬件接口上又都包含有多个寄存器,如控制寄存器、数据寄存器、状态寄存器等。
统一编址是将外设接口上的各种寄存器等同于内存储器的存储单元,通过使用访问内存单元的指令来访问外设接口上的各个寄存器,这样就可以使用访存指令来访问外设,输入输出操作简单,程序设计比较简便。
由于外设接口上的寄存器种类和数量通常不止一个,所以一个外设至少对应一个以上的内存地址。
【答案】对外设统一编址是将外设接口上的寄存器等同内存单元,给每个外设设置至少一个地址码。
二、外围设备的定时1.外围设备的定时方式有异步传输方式和同步定时方式两种。
2.实现输入输出数据传输的方式主要有:程序控制方式、直接存储访问(DMA)方式、通道方式。
程序控制方式又可分为程序查询方式和中断方式两种。
历年真题1.对I/O数据传送的控制方式,可分为程序中断控制方式和独立编址传送控制方式两种。
(2001年)【分析】对1/O数据传送的控制方式,可分为程序直接控制方式、程序中断控制方式、DMA控制方式、通道控制方式等。
程序中断控制方式只是其中的一种方法,独立编址是指对1/O设备的控制寄存器、数据寄存器、状态寄存器等单独进行地址编排,使用专门的指令对其进行操作,可用在各种数据传送的控制方式中。
一、选择1、计算机所配置的显示器中,若显示控制卡上双薪存储器的容量是1MB,则当采用800×600像素的分辨率时,每个像素最多可以有(C)种不同的颜色。
A.256B.65536C.16MD.40962、CRT的分辨率为1024×1024像素,像素的颜色数为256,则刷新存储器的容量约为(B)A.256MB.1MC.256KBD.32MB3、CRT的分辨率为1024×1024像素,像素的颜色总数为256色,则刷新存储器每单元字长是(A)A.1个字节B.2个字节C.256个字节D.1024个字节4、若计算机屏幕上每个像素的灰度级为256,则刷新存储每个单元的宽度是。
5、显示汉字采用点阵字库,若每个汉字用16×16的点阵表示,7500个汉字的字库容量是240KB 。
6、磁盘存储器的等待时间通常是磁盘旋转半周所用的时间。
7、某磁盘的转速为7200r/min,传输速度为4MN/s,控制器开销为1ms,要保证读或写一个512B的扇区的平均时间为11.3ms。
那么,该磁盘的平均寻道时间不超过(D)A.3.9msB.4.7msC.5.5msD.6.1ms8、一个磁盘的转速为7200转/分,每个磁道有160个扇区,每扇区有512字节,那么理想情况下,其数据传输率为(C)A.7200×160KB/s B.7200KB/sC.9600KB/sD.19200KB/s9、某计算机系统中,假定硬盘以中断方式与处理机进行数据输入输出,以16位为传输单位,传输率为50KB/s,每次传输的开销(包括中断)为100个CPU时钟,处理器的主频为50MHz,请问软盘数据传送时占处理器的时间比例是10、设一个磁盘盘面共有200个磁道,盘面总存储容量60MB,磁盘旋转一周的时间为25ms,每磁道有8个扇区,各扇区之间有一间隙,磁头通过每个间隙需 1.25ms。
则磁盘通道所需最大传输率是11、下列有关程序中断I/O方式的叙述中,错误的是(D)A. 程序中断I/O方式是CPU和外设能够并行工作B. 中断I/O方式下,外设和CPU直接交换数据C. 中断I/O方式下,CPU会有额外的开销用于断点、现场的保护和回复等D. 中断I/O方式适用于像磁盘一类的高速设备12、指令执行结果出现异常而引起的中断是(B)A.I/O中断B.程序性中断C.机器校验中断D.外中断13、主存故障引起的中断是(C)A.I/O中断B.程序性中断C.机器校验中断D.外中断14、为了实现多级中断,保存现场信息最有效的方法是(B)A.通用寄存器B.堆栈C.存储器D.外存15、在中断处理过程中,完全由硬件自动执行的步骤是(A)A.保存中断点B.识别中断点C.保存将被中断服务程序破坏的通用寄存器的内容D.返回中断点16、在蛋鸡中断系统中,CPU一旦响应,则立即关闭中断允许标志,以防止本次中断任务结束前同级的其他中断产生另一次中断进行干扰。
第3章8086/8088指令系统与寻址方式习题3.3 8086系统中,设DS=1000H,ES=2000H,SS=1200H,BX=0300H,SI=0200H,BP=0100H,VAR的偏移量为0600H,请指出下列指令的目标操作数的寻址方式,若目标操作数为存储器操作数,计算它们的物理地址。
(1)MOV BX,12 ;目标操作数为寄存器寻址(2)MOV [BX],12 ;目标操作数为寄存器间址PA=10300H(3)MOV ES:[SI],AX ;目标操作数为寄存器间址PA=20200H(4)MOV VAR,8 ;目标操作数为存储器直接寻址PA=10600H(5)MOV [BX][SI],AX ;目标操作数为基址加变址寻址PA=10500H(6)MOV 6[BP][SI],AL ;目标操作数为相对的基址加变址寻址PA=12306H (7)MOV [1000H],DX ;目标操作数为存储器直接寻址PA=11000H(8)MOV 6[BX],CX ;目标操作数为寄存器相对寻址PA=10306H(9)MOV VAR+5,AX ;目标操作数为存储器直接寻址PA=10605H3.4 下面这些指令中哪些是正确的那些是错误的如果是错误的,请说明原因。
(1)XCHG CS,AX ;错,CS不能参与交换(2)MOV [BX],[1000] ;错,存储器之不能交换(3)XCHG BX,IP ;错,IP不能参与交换(4)PUSH CS(5)POP CS ;错,不能将数据弹到CS中(6)IN BX,DX ;输入/输出只能通过AL/AX(7)MOV BYTE[BX],1000 ;1000大于255,不能装入字节单元(8)MOV CS,[1000] ;CS不能作为目标寄存器(9)MOV BX,OFFSET VAR[SI] ;OFFSET只能取变量的偏移地址(10)MOV AX,[SI][DI] ;SI、DI不能成为基址加变址(11)MOV COUNT[BX][SI],ES:AX ;AX是寄存器,不能加段前缀3.7 设当前SS=2010H,SP=FE00H,BX=3457H,计算当前栈顶的地址为多少当执行PUSH BX 指令后,栈顶地址和栈顶2个字节的内容分别是什么当前栈顶的地址=2FF00H当执行PUSH BX 指令后,栈顶地址=2FEFEH(2FEFEH)=57H(2FEFFH)=34H3.8 设DX=78C5H,CL=5,CF=1,确定下列各条指令执行后,DX和CF中的值。
第7章基本输入输出接口一、内容简介:1 I/O口概述2 简单I/O接口芯片:244,245,273,373┅3 CPU与外设间的数据传送方式程序控制;中断;DMA4 DMA控制器8237A二、教学目标:掌握输入/输出接口电路和基本概念、掌握I/O端口编址方法和特点及地址译码方法。
l掌握CPU与外设数据传送的方式方法。
了解DMA控制器8237A。
三、重点内容:CPU与外设间的数据传送方式;8237A四、教学时数:47.1 I/O接口概述7.1.1 CPU与外设之间的数据传输一.CPU与I/O接口接口电路按功能可分为两类:①是使微处理器正常工作所需要的辅助电路:时钟信号或中断请求等;②是输入/输出接口电路:CPU与外部设备信息的传送(接收、发送)。
最常用的外部设备:如键盘、显示装置、打印机、磁盘机等都是通过输入/输出接口和总线相连的,完成检测和控制的仪表装置也属于外部设备之列,也是通过接口电路和主机相连。
1.为什么要用接口电路:需要分析一下外部设备的输入/输出操作和存储器读/写操作的不同之处:存储器都是用来保存信息的,功能单一,传送方式单一(一次必定是传送1个字节或者1个字),品种很有限(只有只读类型和可读/可写类型),存取速度基本上和CPU的工作速度匹配.。
外部设备的功能多种多样的(输入设备,输出设备,输入设备/输出设备),信息多样(数字式的,模拟式的),信息传输的方式(并行的,串行的),外设的工作速度通常比CPU 的速度低得多,而且各种外设的工作速度互不相同,这也要求通过接口电路对输入/输出过程起一个缓冲和联络的作用。
注:接口电路完成相应的信号转换、速度匹配、数据缓冲等功能。
2.接口的功能(8种):⑴寻址能力:对送来的片选信号进行识别。
⑵输入/输出功能:根据读/写信号决定当前进行的是输入操作还是输出操作。
⑶数据转换功能:并行数据向串行数据的转换或串行数据向并行数据的转换。
⑷联络功能:就绪信号,忙信号等。
⑸中断管理:发出中斯请求信号、接收中断响应信号、发送中断类型码的功能。
并有优先级管理功能。
⑹复位:接收复位信号,从而使接口本身以及所连的外设进行重新启动。
⑺可编程:用软件来决定其工作方式,用软件来设置有关的控制信号。
⑻错误检测:一类是传输错误。
另—类是覆盖错误。
注:一些接口还可根据具体情况设置其它的检测信息。
二.I/O接口与系统的连接1.CPU与I/O设备之间的信号(三类)(1) 数据信息包括三种形式:数字量、模拟量、开关量(2)状态信息是外设通过接口往CPU传送的如:“准备好”(READY)信号、“忙”(BUSY)信号(3)控制信息是CPU通过接口传送给外设的如:外设的启动信号、停止信号就是常见的控制信息2.接口部件的I/O端口:⑴数据端口、⑵控制端口、⑶状态端口CPU和外设进行数据传输时,各类信息在接口中进入不同的寄存器,一般称这些寄存器为I/O端口,每个端口有一个端口地址。
用于对来自CPU和内存的数据或者送往CPU和内存的数据起缓冲作用的,这些端口叫数据端口。
用来存放外部设备或者接口部件本身的状态,称为状态端口。
用来存放CPU发出的命令,以便控制接口和设备的动作,这类端口叫控制端口。
如下图注:⑴输入还是输出,所用到的地址总是对端口而言的,不是对接口部件而言的。
⑵为了节省地址空间,将数据输入端口和数据输出端口对应同一个端口地址。
同样,状态端口和控制端口也常用同一个端口地址。
⑶CPU对外设的输入/输出操作就归结为对接口芯片各端口的读/写操作。
3.接口与系统的连接.接口电路位于CPU与外设之间,从结构上看,可以把一个接口分为两个部分,⑴用来和I/O设备相连;⑵用来和系统总线相连,这部分接口电路结构类似,连在同一总线上。
下图是一个典型的I/O接口和外部电路的连接图:联络信号:读/写信号,以便决定数据传输方向。
地址译码器,片选信号:地址译码器除了接收地址信号外,还用来区分I/0地址空间和内存地址空间的信号(M/IO)用于译码过程。
注:⑴一个接口通常有若干个寄存器可读/写,⑵一般用1-2位低位地址结合读/写信号来实现对接口内部寄存器的寻址。
4.输入输出的寻址方式CPU对外设的寻址方式通常有两种:(1) 存储器对应输入输出方式每一个外设端口占有存储器的一个地址。
优点:CPU对外设的操作可使用全部的存储器操作指令,寻址方式多,使用方便灵活,且可寻址的外设数量多。
缺点:由于外设占用了存储单元的地址,使内存的容量减小,同时,程序的可读性下降。
(2) 端口寻址的输入输出方式CPU有专门的输入输出指令( IN, OUT),通过这些指令中的地址来区分不同的外设。
优点:容易掌握,编出的程序可读性好。
缺点:可寻址的范围较小,还必须有相应的控制线(M/IO)来区分是寻址内存还是外设。
7.2简单I/O接口数据锁存器74LS373;数据缓冲器74LS244;数据收发器74LS245。
7.3 CPU与外设数据传送的方式7.3.1 程序控制方式(如图7-1所示)无条件传送方式、查询传送方式7.3.2 中断传送方式如图7-2所示7.3.3 直接存储器访问(DMA)方式7.4 DMA控制器8237A DMA传送的基本原理1)向DMAC发出DMA传送请求信号(DREQ)。
2)DMAC向总线仲裁机构请求占用总线。
3)DMAC接到HLDA信号后成为总线的主控者。
4)向存储器和进行DMA传送的外设发出读写命令,开始DMA传送。
5)撤消对CPU的总线请求,交回系统总线的管理和控制权。
7.4.1 8237A的内部结构和引脚1.四个独立的DMA 通道每个通道都有一个16位的基地址寄存器,一个16位的基字节数计数器,一个16位的当前地址寄存器和一个16位的当前字节数计数器及一个8位的方式寄存器,方式寄存器接收并保存来自于CPU的方式控制字,使本通道能够工作于不同的方式下;2.定时及控制逻辑电路对在DMA请求服务之前,CPU编程对给定的命令字和方式控制字进行译码,以确定DMA的工作方式,并控制产生所需要的定时信号;3.优先级编码逻辑对通道进行优先级编码,确定在同时接收到不同通道的DMA请求时,能够确定相应的先后次序。
通道的优先级可以通过编程确定为是固定的或者是旋转的。
4.共用寄存器除了每个通道中的寄存器之外,整个芯片还有一些共用的的寄存器:包括1个16位的地址暂存寄存器,1个16位的字节数暂存寄存器,1个8位的状态寄存器,1个8位的命令寄存器,1个8位的暂存寄存器,1个4位的屏蔽寄存器和1个4位的请求寄存器等,我们将对这些寄存器的功能与作用,作较为详细的介绍。
8237内部寄存器的类型和数量如表6-1所示,其中,凡数量为4个的寄存器,则每个通道一个,凡数量只有一个的,则为各通道所公用。
表6-1 8237的内部寄存器5.8237的数据引线,地址引线都有三态缓冲器,因而可以接也可以释放总线。
7.4.2 8237的工作周期在设计8237时,规定它具有两种主要的工作周期(或工作状态),即空闲周期和有效周期,每一个周期又是由若干时钟周期所组成的。
1.空闲周期(lade cycle)当8237的任一通道都无DMA请求时,则其处于空闲周期或称为SI状态,空闲周期由一系列的时钟周期组成,在空闲周期中的每一个时钟周期,8237只做两项工作:● 采样各通道的DREQ 请求输入线,只要无DMA 请求,则其始终停留在SI 状态; ● 由CPU 对8237进行读/写操作,即采样片选信号S C ,只要S C 信号变为有效的低电平,则表明CPU 要对8237进行读/写操作,当8237采样S C 为低电平而DREQ 也为低,即外部设备没有向8237发DMA 请求的情况下,则进入CPU 对8237的编程操作状态,CPU 可以向8237的内部寄存器进行写操作,以决定或者改变8237的工作方式,或者对8237内部的相关寄存器进行读操作,以了解8237的工作状态。
CPU 对8237进行读/写操作时,由地址信号A 3~A 0来选择8237内部的不同寄存器(组),由读/写控制信号R O I 及W O I 来控制读/写操作。
由于8237内部的地址寄存器和字节数计数器都是16位的,而数据线是8位的,所以在8237的内部,有一个高/低字节触发器,称为字节指针寄存器,由它来控制8位信息是写入16位寄存器的高8位还是低8位,该触发器的状态交替变化,当其状态为0时,进行低字节的读/写操作;而当其状态为1时,则进行低字节的读/写操作。
2.有效周期(Active Cycle )当处于空闲状态的8237的某一通道接收到外设提出的DMA 请求DREQ 时,它立即向CPU 输出HRQ 有效信号,在未收到CPU 回答时,8237仍处于编程状态,又称初始状态,记为S 0状态。
经过若干个S 0状态后,当8237收到来自于CPU 的HLDA 应答信号后,则进入工作周期,或称为有效周期,或者说8237由S 0状态进入了S 1状态。
S 0状态是DMA 服务的第一个状态,在这个状态下,8237已接收了外设的请求,向CPU 发出了DMA 请求信号HRQ ,但尚未收到CPU 对DMA 请求的应答信号HLDA ;而S 1状态则是实际的DMA 传送工作状态,当8237接收到CPU 发来的HLDA 应答信号时,就可以由S 0状态转入S 1状态,开始DMA 传送。
在内存与外设之间进行DMA 传送时,通常一个S 1周期由4个时钟周期组成,即S 1、S 2、S 3、S 4,但当外设速度较慢时,可以插入S W 等待周期;而在内存的不同区域之间进行DMA 传送时,由于需要依次完成从存储器读和向存储器写的操作,所以完成每一次传送需要8个时钟周期,在前四个周期S 11、S 12、S 13、S 14完成从存储器源区域的读操作,后四个时钟周期S 21、S 22、S 23、S 24完成向存储器目的区域的写操作。
8237的外部结构8237是具有40个引脚的双列直插式集成电路芯片,其引脚如图6-4所示: 1. CLK :时钟信号输入引脚,对于标准的8237,其输入时钟频率为3MHz ,对于8237-2,其输入时钟频率可达5MHz 。
2.S C :芯片选择信号,输入引脚。
3.RESET :复位信号,输入引脚,用来清除8237中的命令、状态请求和临时寄存器,且使字节指针触发器复位并置位屏蔽触发器的所有位(即使所有通道工作在屏蔽状态),在复位之后,8237工作于空闲周期SI。
4.READY:外设向8237提供的高电平有效的“准备好”信号输入引脚,若8237在S3状态以后的时钟下降沿检测到READY为低电平,则说明外设还未准备好下一次DMA操作,需要插入SW状态,直到READY引脚出现高电平为止。
5.DREQ0~DREQ3:DMA请求信号输入引脚,对应于四个独立的通道,DREQ的有效电平可以通过编程来加以确定,优先级可以固定,也可以旋转。