答:1.条件传送方式的工作原理是:外设给CPU提供一个状态信息,当CPU要访问外设时,必须先检测该状态信息是否合乎要求,
不停检测直至合乎要求时才进行CPU对外设的访问。
2.查询方式主要用在外设较少,数据交换不频繁的非实时系统的场合。 3.查询式输出过程的流程图如右:
5.11 设一个接口的输入端口地址为0100H,而它的状态端口地址为0104H,状态口中第5位为1表示输入缓冲区中有一个字节准备好,可输入。设计具体程序实现查询式输入。 答:DATA
SEGMENT DB ENDS SEGMENT
ASSUME DS:DATA,CS:CODE
STAT:
MOV MOV MOV MOV
STATIN:
IN
AX,DATA DS,AX
DI,OFFSET BUFFER DX,0104H AL,DX AL,20H STATIN
;测试第5位
;第5位为0继续测试
;对DS初始化
20
DUP(?)
;接收数据缓冲区
BUFFER DATA CODE
TEST JZ
MOV IN
DX,0100H AL,DX [DI],AL
;输入数据
MOV
CODE
ENDS END
STAT
5.12 查询式传送方式有什么缺点?中断方式为什么能弥补查询方式的缺点?
答:1.查询式传送方式缺点是:花费CPU的时间作等待循环,大大降低了CPU的运行效率。
2.中断方式是在外设准备就绪时向CPU申请中断,再进行传送,因而CPU无需花费时间作等待循环,弥补了查询方式的缺点。
5.13 画一个用中断方式进行输出传输的接口电路。 答:中断方式输出的接口电路如下:
15
16
中断屏蔽触发器 Q 数据锁存器 选通信号 DB 端口译AB 输出设备码 ACK R M/IO +5V WR Q D INTA BUSY +5V 中断请求 Q D INTR (中断请求)
5.14
叙述可屏蔽中断的响应和执行过程。 答:① 接口发中断请求信号。
② CPU的IF=1时,当前指令执行完后,CPU进行中断回答,发两个INTA负脉冲。 ③ 接口将中断类型号n送CPU。
④ 当前的PSW、CS和IP推入堆栈,并清除IF和TF。 ⑤ (4×n)作为IP,(4×n+2)作为CS,即取中断向量。 ⑥ 执行中断子程序,并开中断。
⑦ 中断返回IRET指令使IP、CS和PSW弹出堆栈。 ⑧ 返回被中断的程序。
5.15 通常解决中断优先级的方法有哪几种?各有什么优缺点?
答:1.有软件查询方式、简单硬件方式——菊花链法、专用硬件方式三种。
2.软件查询方式的优点是节省硬件,缺点是中断响应时间长;简单硬件方式的优点是中断响应时间短,硬件较简单,缺点是优先级固定,变动起来很麻烦;专用硬件方式优点是对优先级可编程修改,中断管理非常方便,缺点是硬件复杂的多,好在有专用的中断控制器。
5.16 和DMA比较,中断传输方式有什么不足之处?
答:CPU执行一次传送要花费许多与传送操作无关的指令执行等时间,另外中断传送方式不能进行数据块传送,而是按字节或字
传送。
5.17 叙述用DMA方式传送单个数据的全过程。
答:① 接口准备就绪,发DMA请求信号给DMA控制器。
② DMA控制器向CPU转发总线请求信号HOLD。
③ CPU向DMA控制器发总线请求允许信号HLDA,DMA控制器得到总线控制权。 ④ DMA控制器把地址送地址总线。
⑤ DMA控制器向接口发DMA请求确认信号。 ⑥ 内存和接口通过数据总线传送数据。. ⑦ DMA控制器撤销总线请求信号HOLD。 ⑧ 8086 CPU收回总线控制权。
5.18 DMA控制器的地址线为什么是双向的?什么时候往DMA控制器传输地址?什么时候DMA控制器往地址总线传输地址? 答:1.因为DMA控制器要接受CPU的控制,接收CPU发来的初始化等信息,这要求地址线来寻址各端口,地址线为输入线。又
因为DMA控制器可控制总线,这要求地址线为输出。所以地址线必须为双向才行。 2.CPU要对DMA控制器发初始化信息时,必须往DMA控制器传输地址。
17
3.DMA控制器得到总线控制权后,向地址总线传输地址。
5.19 在设计DMA传输程序时,要有哪些必要的模块?设计一个启动数据块输出的程序段。
答:1.要有DMA的初始化模块:对字节计数器、地址寄存器和控制寄存器置初值。还要有对接口部件设置控制字的模块:指出数
据传输方向,并启动I/O操作。 2.启动数据块输出的程序段如下:
IDLO:
IN
AL,INTSTAT AL,04 IDLO
;忙,则等待
;不忙,则设置计数初值
;对字节计数器BYTE_REG初始化 ;接口状态寄存器的状态位(2)是否忙
TEST JNZ MOV OUT LEA OUT MOV OR OUT MOV OR OUT
┆ 后续处理
AX,COUNT BYTE_REG,AX AX,BUFFER ADD_REG,AX AL,DMAC AL,08H
;设置地址初值
;对DMA地址寄存器ADD_REG初始化 ;取原DMA控制字
;设置方向为输出 ;置DMA控制字 ;取原接口控制字
;设置传输方向为输出及允许 ;置接口控制字
DMACON,AL AL,INTC AL,04H
INTCON,AL
5.20 在查询方式、中断方式和DMA方式中,分别用什么方法启动数据传输过程?
答:① 查询方式:通过程序来检测接口中状态寄存器中的“准备好”位,以确定当前是否可以进行数据传输。
② 中断方式:当接口中已经有数据要往CPU输入或者准备好接收数据时,接口会向CPU发一个外部中断请求。CPU响应
中断后,便通过运行中断处理程序来实现输入/输出。
③ DMA方式:外设要求传送数据时,接口会向DMA控制器发DMA请求信号,DMA控制器转而向CPU发一个总线请求
信号,以请求得到总线控制权,如果得到CPU允许,那么,就可在没有CPU参与的情况下,实现DMA传输。
18
第 6 章 串并行通信和接口技术
6.1
接口部件为什么需要有寻址功能?设计一个用74LS138构成的译码电路,输入为A3、A4、A5、A8,输出8个信号以对8个接口部件进行选择。想一想如果要进一步对接口中的寄存器进行寻址,应该怎样实现?
答:1.因为,首先接口要对选择M和I/O的信号能够做出解释;此外,要对送来的片选信号进行识别,以便判断当前本接口是否
被访问,如果受到访问,还要决定是接口中那个寄存器受到访问。
2.将A1接在接口的A0上,A2接在接口的A1上;将接口的CS接在74LS138的某一输出端,RD和WR分别接在对应的控制总线上。从而可实现接口中的共8个只读和只写寄存器的寻址。(由于用的是8086 CPU,所以A0空。)
6.2 接口部件的输入/输出操作具体对应哪些功能,举例说明。
答:1.具体对应的功能为:寻址功能、输入/输出功能、数据转换功能、联络功能和错误检测功能等。
2.例如串行输入操作:首先要将串行输入的数据转换为并行输入的数据放入输入缓冲器,然后发一个准备好信号通知CPU来读取该输入寄存器的内容。从而完成一个串行数据的输入过程。其中在数据转换时自动检测传输的错误。
6.3 从广义上说接口部件有哪些功能?
答:寻址功能、输入/输出功能、数据转换功能、联络功能、中断管理功能、复位功能、可编程功能和错误检测功能。
6.4 怎样进行奇/偶校验?如果用偶校验,现在所传输的数据中1的个数为奇数,那么,校验位应为多少?
答:1.用奇/偶校验位对传输错误进行检测。传输时,如果用奇校验,那么使信息中1的数目(包括校验位)为奇数。即所传输的数据
中1的个数为奇数,则使校验位为0;若所传输的数据中1的个数为偶数,则使校验位为1。这样奇校验时,在传输一个数据时,1的总数目总是为奇数。同样若用偶校验,信息中1的数目(包括校验位)为偶数。 2.偶校验时,所传输的数据中1的个数为奇数,则校验位应为1。
6.5 什么叫覆盖错误?接口部件如何反映覆盖错误?
答:1.接口的数据缓冲寄存器中的数据还未被取走,由于某种原因又被装上了新的数据,就会产生一个覆盖错误。
2.在产生覆盖错误时,接口会在状态寄存器中设置相应的状态位来反映。
6.6 接口部件和总线之间一般有哪些部件?它们分别完成什么功能? 答:1.外部逻辑电路和地址译码器。
2.外部逻辑电路把CPU送来的一些控制信号翻译成联络信号。地址译码器将总线提供的I/O地址翻译成对接口的片选信号。
6.7 为什么串行接口部件中的4个寄存器可以只用1位地址线来进行区分?
答:一位地址线可编址二个地址,再加上读和写信号可对2个只读寄存器和2个只写寄存器进行端口寻址。而串行接口部件的控
制寄存器和数据输出寄存器是只写的,状态寄存器和数据输入寄存器是只读的,所以可用一位地址线来区分。
6.8 19
在数据通信系统中,什么情况下可以采用全双工方式,什么情况下可用半双工方式?