第6章 输入/输出和中断技术
一、选择题
1可作简单输入接口的电路是( )。[浙江工业大学研]
A.三态缓冲器
B.锁存器
C.反相器
D.译码器
【答案】A
【解析】三态缓冲器具有输入功能,所以可以作为输入接口用。
2一般查询I/O时总是按( )次序完成一个字符的传输。[华东理工大学研]
A.写数据端口,读/写控制端口
B.读状态端口,读/写数据端口
C.写控制端口,读/写状态端口
D.读控制端口,读/写数据端口
【答案】B
【解析】一般查询I/O时总是按读状态端口,读/写数据端口次序完成一个字符的传输,所以此题的B选项正确。
3下面( )不是CPU和外围设备之间数据交换的方式。[上海交通大学研]
A.DMA方式
B.异步传送方式
C.中断方式
D.I/O通道方式
【答案】B
4CPU传送数据最快的I/O方式是( )传送方式。[重庆大学研]
A.中断
B.查询
C.DMA
D.无条件
【答案】C
5在下列指令中,能使PC机CPU对I/O端口访问的是( )。[浙江工业大学研]
A.中断指令
B.串操作指令
C.输入输出指令
D.数据传达指令
【答案】C
【解析】CPU有专门的外设访问指令,即IN和OUT指令。
6有一接口芯片有两条地址线A1、A0,它的片选信号CS是总线上的地址信号A9~A5产生的,则该芯片( )。[北京邮电大学研]
A.占有4个端口地址,且端口地址唯一,互不重叠
B.占有8个端口地址,但每个端口地址重叠2次
C.占有16个端口地址,但每个端口地址重叠4次
D.占有32个端口地址,但每个端口地址重叠8次
【答案】D
【解析】根据题意,在地址信号A9~A5产生正确的片选信号选中芯片时,地址信号线A4~A0这5条取任意值都可以访问芯片的某个端口,所以端口地址有2*5=32个。但由于片子本身的地址线只有A1、A0两条,所以本身的端口数目只有4个,这样每个端口就重叠了32÷4=8次。
78086CPU时钟频率为5MHz时,它的典型总线周期为______ns。[上海交通大学研]
A.200
B.400
C.800
D.1600
【答案】C
【解析】一个总线周期需要4个时钟周期,即T1~T4。对内存的一次读写操作就需要一个总线周期。
8在8086的中断中,只有( )需要硬件提供中断类型码。[上海交通大学研]
A.外部中断
B.可屏蔽中断
C.不可屏蔽中断
D.内部中断
【答案】B
9在中断响应周期,CPU从数据总线上获取( )。[南京理工大学研]
A.中断矢量的偏移地址
B.中断矢量
C.中断矢量的段地址
D.中断类型码
【答案】D
【解析】如果有中断请求,CPU转入两个连续的中断响应周期,在第二个中断响应周期的T4状态前沿,采样数据线获取由外设输入的中断类型码。
10CPU响应单个屏蔽中断的条件是( )。[上海大学研]
A.CPU开中断
B.外设有中断请求信号
C.外设中断请求信号不屏蔽
D.同时满足上述A、B、C条件,且正在执行的指令执行完毕
【答案】D
【解析】A项,表示CPU内部标志寄存器FR的中断允许标志位IF=1;B项,表示有中断源提出中断请求;C项,表示中断请求信号没有被屏蔽,能送到CPU的INTR引脚上。
8086 CPU在每条指令的最后一个机器周期的最后一个T状态(时钟周期),都要去采样可屏蔽中断引脚INTR信号,若其为高电平,则在当前指令执行完后,CPU再去响应中断。
11执行INT n指令或响应中断时,CPU保护现场的次序是( )。[华东师范大学研]
A.FLAGS寄存器(FR)先入栈,其次CS,最后IP
B.CS在先,其次IP,最后FR入栈
C.FR在先,其后依次是IP,CS
D.IP在先,其次CS,最后FR
【答案】A
128086/8088系统的中断服务程序是( )。[北京理工大学研]
A.近过程调用
B.远过程调用
C.远、近过程都可以
D.与一般子程序调用一样
【答案】C
【解析】因为中断服务程序的入口地址要装入中断向量表,而中断向量表是用4B来表示一个中断类型。其中两个字节表示段地址,另两个字节表示中断服务程序的偏移地址,所以不管是远近过程,系统都可以根据中断向量表正确地找到中断服务程序的入口,执行中断服务程序。
13执行返回指令,退出中断服务程序,这时返回地址来自( )。[东南大学研]
A.ROM
B.程序计数器
C.堆栈区
D.CPU的暂存寄存器
【答案】C
14可屏蔽中断的屏蔽通常可由CPU内部的( )来控制。[华中科技大学研]
A.中断请求触发器
B.中断屏蔽触发器
C.中断允许触发器
D.中断锁存器
【答案】C
【解析】可屏蔽中断的屏蔽通常可由CPU内部的中断允许触发器来控制。
158259A有3种EOI方式,其目的都是为了( )。[北京邮电大学研]
A.发出中断结束命令,使相应的ISR=1。
B.发出中断结束命令,使相应的ISR=0。
C.发出中断结束命令,使相应的IMR=1。
D.发出中断结束命令,使相应的IMR=0。
【答案】B
【解析】ISR是存放正在处理中的中断级的8位寄存器,它的相应位置位是在中断响应INTA期间由优先级判定电路产生的,所以中断程序结束后,CPU要发出EOI命令给8259A,以便通知8259A来复位ISR的相应位。
16采用DMA方式传送时,每传送一个数据要占用( )的时间。[南京师范大学研]
A.一个指令周期
B.一个机器周期
C.一个存储周期
D.一个总线时钟周期
【答案】C
17实现DMA传送,需要( )。[西安电子科技大学研]
A.CPU通过执行指令来完成
B.CPU利用中断方式来完成
C.CPU利用查询方式来完成
D.不需要CPU参与即可完成
【答案】C
【解析】实现DMA传送,需要CPU利用查询方式来完成。
18在DMA方式下,CPU与总线的关系是( )。[长安大学研]
A.只能控制地址总线
B.相互成隔离状态
C.只能控制数据线
D.相互成短接状态
【答案】B
【解析】DMA方式下,CPU对数据的传输不再干预,放弃了对总线的控制权,包括地址总线和数据总线,与总线成隔离状态。
19(多选)下列说法正确是( )。[北京邮电大学研]
A.同步总线的总线周期固定,接口设计简单。
B.同步总线进行数据传送时需要联络与握手信号。
C.异步总线进行数据传送时不需要联络与握手信号。
D.不插入任何“等待”周期的半同步总线可视为同步总线。
【答案】AD
20(多选)CPU对I/O接口地址的安排方式有:( )。[北京交通大学研]
A.I/O接口单独编址
B.I/O接口与寄存器统一编址
C.I/O接口与存储器统一编址
D.I/O接口与堆栈区统一编址
E.I/O口无须编址
【答案】AD
二、填空题
1设计输入输出接口电路时,输入接口电路的关键器件是______;输出接口电路的关键器件是______。[上海交通大学研]
【答案】缓冲器、锁存器。
2外设与主机互递信息是通过外设接口电路实现的。一般的接口电路中有______、______和______3种不同类型的寄存器。I/O接口电路与外部设备间交换的信号有______、______、______、______4种类型。[华东大学研]
【答案】数据收发器、控制寄存器、状态寄存器,状态量(开关量)、模拟量、脉冲量、数字量
3输入/输出指的是______与______间进行数据传送。[北京航天航空大学研]
【答案】外部设备,CPU
48086CPU工作在DMA方式时,其AD0-15引脚处于______。[北京航天航空大学研]
【答案】悬挂状态
【解析】CPU的三态信号线输出高阻状态,即将它们交给DMA控制器进行管理,使数据在DMA控制器的控制下完成外设与内存之间的直接传送。
5总线带宽,总线位宽和总线工作时钟频率是总线的主要参数,总线带宽的单位为______,三者的关系为:______。[上海交通大学研]
【答案】MB/S,总线带宽=(位宽/8)×总线工作时钟频率
6USB总线是通用______总线,它主要(至少写出两个)有______特点。[北京邮电大学研]
【答案】串行;支持即插即用和热插拔、速度快、低功耗、有检错重发功能而性能稳定等
7总线可分类为:片总线、内总线和外总线。USB总线属于______,USB 1.0规范规定:一台PC最多可连接______个USB外设。PCI属于______,其有3种地址空间,即存储器空间、I/O空间和______空间。[北京大学研]
【答案】外总线,127,内总线,配置地址
88086/8088有一个强有力的中断系统,可以处理______种不同的中断。从产生中断的方法来分,中断可以分为两大类:一类叫______中断;一类叫______中断。硬件中断又可以分为两大类:一类叫______中断;另一类叫______中断。[首都师范大学研]
【答案】256,外部,内部,不可屏蔽,可屏蔽
【解析】8086/8088有一个强有力的中断系统,可以处理256种不同的中断。以产生中断的方法来分类,256种中断可以分为两大类:外部中断和内部中断。
①外部中断也称为硬件中断,是由外部的硬件产生的,硬件中断又分成不可屏蔽中断和可屏蔽中断。8086/8088 CPU有两条外部中断请求线:不可屏蔽中断请求线NMI及可屏蔽中断请求线INTR。
②内部中断又称为软件中断。软件中断通常由3种情况引起:由中断指令INT引起的中断;由CPU的某些运算错误引起的中断;由调试程序debug设置的中断。
9一个完整的中断处理过程包括______、______、______、______和______五个基本过程,而CPU响应中断的条件是______、______。[东华大学研]
【答案】中断请求,中断响应,保护现场,中断服务,中断返回,开中断,没有更高级的请求信号发生,现行指令执行结束
10溢出中断向量存放在00010H、00011H、00012H、00013H,若它们的内容依次为12H、13H、56H、78H,则溢出中断服务程序入口的物理地址是______。[中山大学研]
【答案】7856H:1312H
118259A有______个命令字,3片8259A接成级联可管理______级中断。[西北工业大学研]
【答案】7,22
三、判断题
1微机系统中的所有外设必须编址使用,而且各外设的地址必须是连续的。( )[北京航天航空大学研]
【答案】错误
【解析】可以不连续,要看具体的硬件电路连接方式。
2任何一种可编程I/O接口芯片,工作前都必须先向它的控制寄存器写入控制字,以选择所需工作方式和功能。( )[重庆大学研]
【答案】正确
3Intel 8086CPU可以访问的I/O空间共有1MB。( )[浙江工业大学研]
【答案】错误
48088 CPU在响应内部中断时,需先发出中断响应回答信号,再根据获得的中断矢量转入相应的服务程序。( )[重庆大学研]
【答案】正确
5某中断程序入口地址为5F200H,放置在中断向量表中的位置为00020H,此时的中断向量号为08H。( )[重庆大学研]
【答案】正确
68086的中断类型码越小,则其中断优先级越高。( )[北京航空航天大学研]
【答案】错误
【解析】中断类型码与优先级没有必然关系。单步中断的类型码为1,非屏蔽中断的类型码为2,但是单步中断的优先级没有非屏蔽的高。
78086系统的每个中断向量可用一个字节来表示。( )[北京航空航天大学研]
【答案】错误
【解析】中断向量是用4个字节来表示的。中断向量就是中断服务程序的入口地址,有2个字节表示偏移地址,有2个字节表示段首址。但中断类型码是用一个字节表示的。不能混淆。
8程序中断的断点指的是中断服务程序的返回地址。( )[北京航空航天大学研]
【答案】正确
【解析】发生中断并满足响应条件时,CPU处理中断,其中重要的一个步骤就是将断点处的指令地址(CS和IP)压入堆栈,以便中断服务程序执行完毕后,从堆栈中弹出CS和IP,CPU返回到断点继续执行原来的程序。所以从这个意义上讲,断点就是中断服务程序的返回地址。
四、解答题
1图6-1为查询式输入接口电路示意图,叙述该接口电路的工作过程。[航空工业大学研]
答:当输入设备的数据已经准备好后便发出一个选通信号,一方面把数据送入锁存器,另一方面使D触发器为“1”,给出“准备好”(Ready)的状态信号。而数据信号与状态信号必须由不同的端口输至CPU数据总线。当CPU要由外设输入信息时,先输入状态信息,检查数据是否已经准备好,当数据已经准备好后,才输入数据。读入数据的命令,使状态信息清零。
图6-1 查询式输入接口电路
2什么叫系统总线?为什么在微机系统中都采用总线结构?PC/XT总线和PC/AT总线有什么关系? [西南交通大学研]
答:(1)总线实际上是由一组导线和相关电路组成,是各种公共信号线的集合,用做微机各部分传递信息所共同使用的“高速信息公路”。在CPU、存储器、I/O接口等组成系统的模块之间传输信息的总线称为“系统总线”。系统总线包括数据总线、地址总线和控制总线。
(2)总线的特点在于其公用性,即多个模块和设备共同使用。较以前的专线(两个设备之间专用的信息线),采用总线结构可以简化设计,系统容易实现模块化,有了总线,系统的搭建就类似于了堆积木。另外大大减少了连线数目,便于布线,提高可靠性,也便于接口设计,所有与总线连接的设备均采用类似的接口。系统的扩充和更新也十分灵活。
(3)PC/AT总线又叫ISA总线,是在原来的8位PC/XT总线的基础上发展而来的。在原来的62个引脚上又增加了32个引脚,新增引脚包括了数据线、地址线、控制线和中断等。
3简述USB总线特点。[中国科学院研]
答:(1)具备即插即用特性,为USB接口设计的驱动程序和应用程序可自动启动、成本低、节省空间,为开放性的不具专利版权的理想工业标准。
(2)可动态连接和重新配置外设,支持热插拔功能。
(3)允许多台设备同时工作。
(4)可以向USB总线上的设备供电,总线上的设备可以自备电源。
(5)通信协议支持等时数据传输和异步消息传输的混合模式。
(6)支持实时语音、音频和视频数据传输。
4已知某输入设备与8086/8088 CPU的简单中断接口电路如图6-2所示,请回答下列问题:
(1)如何实现对中断申请进行控制?
(2)外设如何向CPU提出中断申请?
(3)CPU响应中断后执行中断程序的类型号为何值?如何得到?
(4)中断申请如何撤销?[大连理工大学研]
答:(1)通过中断申请触发器和中断允许触发器。当申请和允许同时有效时,向CPU输入中断请求信号。
(2)向中断申请触发器发出有效信号。
(3)CPU响应中断申请,给出INTA信号,使三态缓冲器有效,中断类型码经数据总线输入。
(4)中断服务程序结束后,外设发出EOC信号,中断申请触发器的输出无效,中断申请信号撤销。
图6-2 电路图
5可屏蔽中断与非可屏蔽中断有什么异同?可屏蔽中断的工作过程怎样?[哈尔滨工业大学研]
答:在CPU的NMI引脚上的中段请求信号引起的中断称为非可屏蔽中断,这种中断不受IF的限制,只要没有总线请求,CPU在完成当前指令后就响应中断,CPU自动给出中断类型号,从中断矢量标中取得地址转入中断服务程序。非可屏蔽中断请求是上升沿有效,高电平持续时间必须大于两个时钟周期。在CPU的INTR引脚上的中断请求信号引起的中断称为可屏蔽中断,可以被CLI指令屏蔽(禁止)。
可屏蔽中断的工作过程:当8086收到INTR的高电平信号时,在当前指令执行完且IF=1的条件下,8086在两个总线周期中分别发出有效信号;在第二个期间,8086收到中断源发来的1B中断类型码;8086完成保护现场的操作,CS、IP内容进入堆栈,清除IF、TF;8086将类型码乘4后得到中断向量表的入口地址,从此地址开始读取4B的中断处理程序的入口地址,8086从此地址开始执行程序,完成了INTR中断请求的响应过程。
6外设向CPU发来INTR中断请求,而CPU没给响应,其原因有哪些?[西北大学研]
答:由外部设备引起的中断请求要得到响应应有两个条件:一是外设中断请求是否被屏蔽;二是CPU是否允许响应中断。如果中断没有得到响应,可能是被屏蔽了,也可能是CPU不允许响应中断。
78086/8088 CPU在什么条件下响应INTR中断请求?简述8086/8088 CPU对INTR中断的响应过程。[中科院合肥智能所研]
答:CPU响应中断有3个条件:外没提出中断申请;本中断位未被屏蔽;中断允许。CPU响应中断后,对外设接口发出两个中断响应信号INTA,外设收到第二个INTA以后,立即往数据线上给CPU送中断类型号。CPU在响应外部中断,并转入相应的中断服务子程序的过程中。自动依次做以下工作:
(1)从数据总线上读取中断类型号,将其存入内部暂存器;
(2)将标志寄存器PSW的值入栈;
(3)将PSW中的中断允许标志IF和单步标志TF清零,以屏蔽外部其他中断请求,以避免CPU以单步方式执行中断处理子程序;
(4)保护断点,将当前指令下面一条指令的段地址CS和指令指针IP的值入栈,使中断处理完毕后,能正确返回到主程序继续进行;
(5)根据中断类型号到中断向量表中找到中断向量,转入相应中断服务子程序;
(6)中断处理程序结束后,从堆栈中依次弹出IP、CS和PSW,然后返回主程序断点处继续执行原来的程序。
8请说明在中断应答过程中,前后两个INTA周期的任务有何不同?[北方交通大学研]
答:由图6-3可见,这是在最大方式下的中断应答时序,在最大方式下,从第一个INTA有效到第二个INTA周期的T*2前半周期,8086输出=“L”(有效信号),通知其他CPU不能控制总线,以保证中断应答周期完整执行。在第一个INTA周期,通知8259,中断请求已被CPU接受,而在第二个INTA周期,要求8259将请求服务的设备的中断类型码送上AD7~AD0。
图6-3 最大方式下的中断应答时序
9比较8086 CPU子程序调用和执行中断服务操作的异同。[北京大学研]
答:(1)相同:两者均发生断点保护、程序转移和程序返回。
(2)差异:子程序调用是确定的,中断多数是随机的;子程序调用时保护IP、CS,中断服务保护IP、CS、FLAG。
10说明什么是中断嵌套?[西安电子科技大学研]
答:当CPU正在对某一个中断源服务时,又有优先级更高的中断源提出中断请求,则CPU应暂停正在进行的中断服务而转向更高优先级中断源的服务。当更高优先级中断源服务结束后再回到原先的中断服务程序继续服务。这就是中断嵌套,而且可以多级嵌套。
11什么叫DMA传送方式?DMA控制器8257的主要功能是什么?[东华大学研]
答:(1)数据在I/O和存储器之间传送,不经CPU的干预,而是在专用硬件电路的控制下直接传送,这种方式称为直接存储器存取(Direct Memory Access,DMA)。为实现这种工作方式而设计的专用接口电路,称为DMA控制器(DMAC),如Intel公司的8237、8257等。
(2)DMA控制器8257的主要功能体现在其进行DMA数据传送的处理过程和四种操作类型及四种数据传送方式上。具体如下:
①主要操作过程包括:a.申请并取得系统总线的控制权;b.响应外部设备的DMA请求,并进行优先级的处理;c.利用锁存器产生16位地址以访问内存;d.产生相应的外部设备和存储器的读写信号,控制外设和存储器间的数据传送,在数据传送结束时产生结束信号EOP。
②四种操作类型:a.DMA写传送,即数据从外设到存储器;b.DMA读传送,即数据从存储器到外设;c.DMA校验;d.存储器到存储器间数据传送。
③四种数据传送:a.单次传送;b.成组传送;c.请求传送;d.级联传送。
128237A有哪几种工作模式?其自动预置功能的含义是什么?8237A实现存储器到存储器数据传送时,有什么规定?[东南大学研]
答:8237A的工作模式有:单字节传输模式、块传输模式、请求传输模式、级联模式。
当选择自动预置时,在接收到信号后,该通道自动将基地址寄存器内容装入当前地址寄存器,将基字节计数器内容装入当前字节计数器,而不必通过CPU对8237A进行初始化,就能执行另一次DMA服务。当设定命令寄存器为存储器至存储器方式传送时,应将其工作方式寄存器D2、D3位设定为00。
五、设计题
1T触发器的特征方程为:Qn+1=Tn+Qn
用D触发器和与非门构成T触发器,画出它的电路图。[上海交通大学研]
答:特征方程中的T和Q以及D触发器中的数据输入引脚D的取值范围均为[0,1],Qn表示当前T触发器的输出数据,Qn+1表示下一时刻CP有效触发脉冲到来时的T触发器的输出。
根据特征方程,当T为1时,将输出当前数据取反后的值;当T为0时,将输出的值与当前的值相同,即数据保持。所以T端具有D触发器的脉冲输入端的类似作用。
构成的T触发器如图6-4所示。
图6-4 所求T触发器
2若要求74LS138输出的译码地址为0200H~0207H,0208H~020FH,…,0238H~023FH等8组,可用于选通8个I/O芯片。试画出138芯片与8086/8088最小系统总线的连线图。[厦门大学研]
答:译码地址的第一组可以表达成二进制数00000010000000008和00000010000001118,译码地址的最后一组的最高值为00000010001111118,比较这3个用以表达地址范围的二进制数,并考虑8个地址为一组的已知条件,可以分析得到最后3位是用来表达I/O接口的内部地址的,其上的3位是用来进行片选I/O芯片的,且地址连续。所以可以用138芯片的输出Y0~Y7,依次片选I/O芯片,得到8组连续的I/O端口访问地址。注意地址的高字节为02H,这可以利用高地址中的相应位选择138芯片的门控G,来体现。连接图如图6-5所示。
图6-5 138芯片与8086/8088最小系统总线的连线图
3若8086某中断的类型号为0BH,其中断服务程序的入口地址为CS=0200H,IP=1000H,请写出中断向量表初始化程序段。[厦门大学研]
答:初始化中断向量表就是将中断服务程序所在的段基址(在本题中是0200H)及在此段中的偏移地址量(在本题中是I000H)放在中断向量码(在本题中是OBH)乘4所决定的4个地址单元中。
程序如下:
由题知中断向量在表中的存放地址=OBH*4=002CH
4中断向量表安排在内存中的什么区域?最多可以安排多少个中断向量?若对应中断类型码为47H的中断服务程序存放在2300H:3460H开始的区域中,则该中断向量在内存中是如何存放的?试编写一段程序完成该中断向量的设置。[华东理工大学研]
答:中断向量表安排在00000H~003FFH,最多可以安排256个中断向量。该中断向量在内存中的存放如图6-6所示。程序如下:
图6-6 中断向量在内存中的存放
5请编写初始化程序,系统中有一片8259A,中断请求信号用电平触发方式,要用ICW4,中断类型码为60H~67H,用特殊全嵌套方式,无缓冲,采用中断自动结束方式。设8259A的端口地址为93H、94H。[广东工业大学研]
答:
6编写程序IR4为正在运行的中断,希望在特殊的程序段上允许较低的IR7响应中断。[武汉大学研]
答:设8259A的地址为20H、21H,根据题意,程序如下。
7系统启动时8259A芯片为可编程中断控制器,试画出3片8259A级联工作方式在8086/8088最小系统模式下,3片8259A之间及与总线的连线图。[厦门大学研]
答:所求连线图如图6-7所示。
图6-7 3片8259与总线的连线图