微计算机中处理器与IO设备间数据传输控制方法.docx

上传人:b****4 文档编号:24909948 上传时间:2023-06-02 格式:DOCX 页数:18 大小:63.18KB
下载 相关 举报
微计算机中处理器与IO设备间数据传输控制方法.docx_第1页
第1页 / 共18页
微计算机中处理器与IO设备间数据传输控制方法.docx_第2页
第2页 / 共18页
微计算机中处理器与IO设备间数据传输控制方法.docx_第3页
第3页 / 共18页
微计算机中处理器与IO设备间数据传输控制方法.docx_第4页
第4页 / 共18页
微计算机中处理器与IO设备间数据传输控制方法.docx_第5页
第5页 / 共18页
点击查看更多>>
下载资源
资源描述

微计算机中处理器与IO设备间数据传输控制方法.docx

《微计算机中处理器与IO设备间数据传输控制方法.docx》由会员分享,可在线阅读,更多相关《微计算机中处理器与IO设备间数据传输控制方法.docx(18页珍藏版)》请在冰豆网上搜索。

微计算机中处理器与IO设备间数据传输控制方法.docx

微计算机中处理器与IO设备间数据传输控制方法

第5章微计算机中处理器与I/O设备间数据传输控制方法

1.试说明一般中断系统的组成和功能。

答:

处理器内部应有中断请求信号的检测电路,输出中断响应信号,保存断点的逻辑,转向中断处理程序的逻辑,中断返回逻辑。

系统中要有一中断控制器,管理多个中断源,提供处理机所需的中断处理信息。

系统中请求中断处理的I/O接口电路要有提供中断请求信号及接收中断响应信号的逻辑。

2.什么是中断类型码、中断向量、中断向量表?

在基于8086/8088的微机系统中,中断类型码和中断向量之间有什么关系?

答:

处理机可处理的每种中断的编号为中断类型码。

中断向量是指中断处理程序的入口地址,由处理机自动寻址。

中断向量表是存放所有类型中断处理程序入口地址的一个默认的内存区域。

在8086系统中,中断类型码乘4得到向量表的入口,从此处读出4字节内容即为中断向量。

3.什么是硬件中断和软件中断?

在PC机中两者的处理过程有什么不同?

答:

硬件中断是通过中断请求线输入电信号来请求处理机进行中断服务;软件中断是处理机内部识别并进行处理的中断过程。

硬件中断一般是由中断控制器提供中断类型码,处理机自动转向中断处理程序;软件中断完全由处理机内部形成中断处理程序的入口地址并转向中断处理程序,不需外部提供信息。

4.试叙述基于8086/8088的微机系统处理硬件中断的过程。

答:

以INTR请求为例。

当8086收到INTR的高电平信号时,在当前指令执行完且IF=1的条件下,8086在两个总线周期中分别发出INTA#有效信号;在第二个INTA#期间,8086收到中断源发来的一字节中断类型码;8086完成保护现场的操作,CS、IP内容进入堆栈,清除IF、TF;8086将类型码乘4后得到中断向量入口地址,从此地址开始读取4字节的中断处理程序的入口地址,8086从此地址开始执行程序,完成了INTR中断请求的响应过程。

5.在PC机中如何使用“用户中断”入口请求中断和进行编程?

答:

PC机中分配给用户使用的中断是IRQ9,经扩展插槽B4引出,故把用户的中断请求线连接到B4上。

在应用程序中,利用25H号系统调用将中断服务程序的入口地址写入对应0AH类型中断对应的中断向量表中去。

在应用程序中把主片8259AD2屏蔽位清0,把从片8259AD1屏蔽位清0,使主片的IR2、从片的IR1可以输入中断请求。

中断服务程序结束前向主片8259A发中断结束命令。

应用程序结束之前对主片的IR2和从片的IR1进行屏蔽,关闭用户中断请求。

6.8259A中断控制器的功能是什么?

答:

8259A中断控制器可以接受8个中断请求输入并将它们寄存。

对8个请求输入进行优先级判断,裁决出最高优先级进行处理,它可以支持多种优先级处理方式。

8259A可以对中断请求输入进行屏蔽,阻止对其进行处理。

8259A支持多种中断结束方式。

8259A与微处理器连接方便,可提供中断请求信号及发送中断类型码。

8259A可以进行级连以便形成多于8级输入的中断控制系统。

7.8259A初始化编程过程完成那些功能?

这些功能由那些ICW设定?

答:

初始化编程用来确定8259A的工作方式。

ICW1确定8259A工作的环境:

处理器类型、中断控制器是单片还是多片、请求信号的电特性。

ICW2用来指定8个中断请求的类型码。

ICW3在多片系统中确定主片与从片的连接关系。

ICW4用来确定中断处理的控制方法:

中断结束方式、嵌套方式、数据线缓冲等。

8.8259A在初始化编程时设置为非中断自动结束方式,中断服务程序编写时应注意什么?

答:

在中断服务程序中,在返回主程序之前按排一条一般中断结束命令指令,8259A将ISR中最高优先级位置0,结束该级中断处理以便为较低级别中断请求服务。

9.8259A的初始化命令字和操作命令字有什么区别?

它们分别对应于编程结构中那些内部寄存器?

答:

8259A的工作方式通过微处理器向其写入初始化命令字来确定。

初始化命令字分别装入ICW1~ICW4内部寄存器。

8259A在工作过程中,微处理器通过向其写入操作命令字来控制它的工作过程。

操作命令字分别装入OCW1~OCW3内部寄存器中。

8259A占用两个端口号,不同的命令字对应不同的端口,再加上命令字本身的特征位及加载的顺序就可以正确地把各种命令字写入对应的寄存器中。

10.8259A的中断屏蔽寄存器IMR与8086中断允许标志IF有什么区别?

答:

IF是8086微处理器内部标志寄存器的一位,若IF=0,8086就不响应外部可屏蔽中断请求INTR引线上的请求信号。

8259A有8个中断请求输入线,IMR中的某位为1,就把对应这位的中断请求IR禁止掉,无法被8259A处理,也无法向8086处理器产生INTR请求。

11.若8086系统采用单片8259A中断控制器控制中断,中断类型码给定为20H,中断源的请求线与8259A的IR4相连,试问:

对应该中断源的中断向量表入口地址是什么?

若中断服务程序入口地址为4FE24H,则对应该中断源的中断向量表内容是什么,如何定位?

答:

中断向量表入口地址为:

0段的0090H地址。

对应4FE24H中断服务程序入口,在向量表中定位情况:

(0090H)=24H、(0091H)=00H、(0092H)=E0H、(0093H)=4FH。

12.试按照如下要求对8259A设定初始化命令字:

8086系统中只有一片8259A,中断请求信号使用电平触发方式,全嵌套中断优先级,数据总线无缓冲,采用中断自动结束方式。

中断类型码为20H~27H,8259A的端口地址为B0H和B1H。

答:

ICW1=1BH(送B0H端口),ICW2=20H(送B1H端口),ICW4=03H(送B1H端口)

13.比较中断与DMA两种传输方式的特点。

答:

中断方式下,外设需与主机传输数据时要请求主给予中断服务,中断当前主程序的执行,自动转向对应的中断处理程序,控制数据的传输,过程始终是在处理器所执行的指令控制之下。

直接存储器访问(DMA)方式下,系统中有一个DMA控制器,它是一个可驱动总线的主控部件。

当外设与主存储器之间需要传输数据时,外设向DMA控制器发出DMA请求,DMA控制器向中央处理器发出总线请求,取得总线控制权以后,DMA控制器按照总线时序控制外设与存储器间的数据传输而不是通过指令来控制数据传输,传输速度大大高于中断方式。

14.DMA控制器应具有那些功能?

答:

DMA控制器应有DMA请求输入线,接收I/O设备的DMA请求信号;DMA控制器应有向主机发出总线请求的信号线和接收主机响应的信号线;DMA控制器在取得总线控制权以后应能发出内存地址、I/O读写命令及存储器读写命令控制I/O与存储器间的数据传输过程。

15.8237A只有8位数据线,为什么能完成16位数据的DMA传送?

答:

I/O与存储器间在进行DMA传送过程中,数据是通过系统的数据总线传送的,不经过8237A的数据总线,系统数据总线是具有16位数据的传输能力的。

16.8237A的地址线为什么是双向的?

答:

8237A的A0~A3地址线是双向的,当8237A被主机编程或读状态处于从属状态,A0~A3为输入地址信号,以便主机对其内部寄存器进行寻址访问。

当8237A取得总线控制权进行DMA传送时,A0~A3输出低4位地址信号供存储器寻址对应单元用,A0~A3必需是双向的。

17.说明8237A单字节DMA传送数据的全过程。

答:

8237A取得总线控制权以后进行单字节的DMA传送,传送完一个字节以后修改字节计数器和地址寄存器,然后就将总线控制权放弃。

若I/O的DMA请求信号DREQ继续有效,8237A再次请求总线使用权进行下一字节的传送。

18.8237A单字节DMA传送与数据块DMA传送有什么不同?

答:

单字节传送方式下,8237A每传送完一个字节数据就释放总线,传送下一字节时再请求总线的控制权。

块传送方式下8237A必须把整个数据块传送完才释放总线。

19.8237A什么时候作为主模块工作,什么时候作为从模块工作?

在这两种工作模式下,各控制信号处于什么状态,试作说明。

答:

8237A取得总线控制权后,开始进行DMA传送过程,此时8237A作为主模块工作。

8237A在被处理器编程或读取工作状态时,处于从模块工作状态。

8237A处于从模块时,若CS#=0、HLDA=0说明它正被编程或读取状态,IOR#与IOW#为输入,A0~A3为输入。

8237A处于主模块时,输出地址信号A0~A15(低8位经A0~A7输出,高8位经DB0~DB7输出)。

8237A还要输出IOR#、IOW#、MEMR#、MEMW#、AEN、ADSTB等有效信号供DMA传送过程使用。

20.说明8237A初始化编程的步骤。

答:

(1)写屏蔽字,阻止某通道的DMA请求。

(2)写命令字(8号地址),确定信号有效电平、优先级方式、通道工作允许等。

(3)写模式字(B号地址),确定某通道传送方式、传送类型、地址寄存器变化方式等。

(4)置0先/后触发器。

(5)设置地址寄存器、字节数寄存器的初值。

(6)清除某通道屏蔽位,允许8237A响应其DMA请求。

21.8237A选择存储器到存储器的传送模式必须具备那些条件?

答:

必须使用8237A内部的暂存器作为数据传送的缓冲器。

8237A通道0的地址寄存器存放存储器的源地址、通道1的地址寄存器存放存储器的目的地地址、字节计数器存放传送的字节数,建立通道0的软件DMA请求来启动这一传输过程。

21.利用8237A的通道2,由一个输入设备输入一个32KB的数据块至内存,内存的首地址为34000H,采用增量、块传送方式,传送完不自动初始化,输入设备的DREQ和DACK都是高电平有效。

请编写初始化程序,8237A的首地址用标号DMA表示。

答:

设存储器页面寄存器内容已被置为3。

8237A初始化程序如下:

MOVAL,06H;屏蔽通道2

MOVDX,DMA+0AH;

OUTDX,AL;

MOVAL,80H;写通道2命令字:

DREQ、

MOVDX,DMA+08H;DACK高电平有效,正常

DUTDX,AL;时序、固定优先级、允许8237A工作等。

MOVAL,86H;写通道2模式字:

块传

MOVDX,DMA+0BH;输、写传输、地址增、

OUTDX,AL;禁止自动预置等。

MOVDX,DMA+0CH;置0先/后触发器

OUTDX,AL;

MOVAL,00H;设通道2基地址为4000H

MOVDX,DMA+04H;

OUTDX,AL;

MOVAL,40H;

OUTDX,AL;

MOVAL,0FFH;设通道2基字节数为

MOVDX,DMA+05H;7FFFH(32767D)

OUTDX,AL;

MOVAL,7FH;

OUTDX,AL;

MOVAL,02H;清除通道2屏蔽。

MOVDX,DMA+0AH;

OUTDX,AL;

MOVAL,06H;通道2发DMA请求

MOVDX,DMA+09H;

OUTDX,AL;

第6章常用可编程外围接口芯片

1.设8253三个计数器的端口地址为201H、202H、203H,控制寄存器端口地址200H。

试编写程序片段,读出计数器2的内容,并把读出的数据装入寄存器AX。

答:

MOVAL,80H

OUT200H,AL

INAL,203H

MOVBL,AL

INAL,203H,

MOVBH,AL

MOVAX,BX

2.设8253三个计数器的端口地址为201H、202H、203H,控制寄存器端口地址200H。

输入时钟为2MHz,让1号通道周期性的发出脉冲,其脉冲周期为1ms,试编写初化程序段。

答:

要输出脉冲周期为1ms,输出脉冲的频率是

,当输入时钟频率为2MHz时,计数器初值是

使用计数器1,先读低8位,后读高8位,设为方式3,二进制计数,控制字是76H。

设控制口的地址是200H,计数器0的地址是202H。

程序段如下:

MOVDX,200H

MOVAL,76H

OUTDX,,AL

MOVDX,202H

MOVAX,2000

OUTDX,AL

MOVAL,AH

OUTDX,AL

3.设8253计数器的时钟输入频率为1.91MHz,为产生25KHz的方波输出信号,应向计数器装入的计数初值为多少?

答:

=76.4

应向计数器装入的初值是76。

4.设8253的计数器0,工作在方式1,计数初值为2050H;计数器1,工作在方式2,计数初值为3000H;计数器2,工作在方式3,计数初值为1000H。

如果三个计数器的GATE都接高电平,三个计数器的CLK都接2MHz时钟信号,试画出OUT0、OUT1、OUT2的输出波形。

答:

计数器0工作在方式1,即可编程的单脉冲方式。

这种方式下,计数的启动必须由外部门控脉冲GATE控制。

因为GATE接了高电平,当方式控制字写入后OUT0变高,计数器无法启动,所以OUT0输出高电平。

计数器1工作在方式2,即分频器的方式。

输出波形的频率f=

=

=666.7HZ,其周期为1.5ms,输出负脉冲的宽度等于CLK的周期为0.5µs。

计数器2工作在方式3,即方波发生器的方式。

输出频率f=

=2000Hz的对称方波。

三个OUT的输出波形如下:

5.8255A的3个端口在使用上有什么不同?

答:

8255A的A端口,作为数据的输入、输出端口使用时都具有锁存功能。

B端口和C端口当作为数据的输出端口使用时具有锁存功能,而作为输入端口使用时不带有锁存功能。

6.当数据从8255A的C端口读到CPU时,8255A的控制信号

、A1、AO分别是什么电平?

答:

当数据从8255A的C端口读入CPU时,8255A的片选信号

应为低电平,才能选中芯片。

A1,A0为10,即A1接高电平,A0接低电平,才能选中C端口。

应为低电平(负脉冲),数据读入CPU,

为高电平。

7.如果串行传输速率是2400波特,数据位的时钟周期是多少秒?

答:

数据位的时钟周期是

=4.17×10-4秒

8.在远距离数据传输时,为什么要使用调制解调器?

答:

在远距离传输时,通常使用线进行传输,线的频带比较窄,一般只有几KHz,因此传送音频的线不适于传输数字信号,高频分量会衰减的很厉害,从而使信号严重失真,以致产生错码。

使用调制解调器,在发送端把将要传送的数字信号调制转换成适合在线上传输的音频模拟信号;在接收端通过解调,把模拟信号还原成数字信号。

9.全双工和半双工通信的区别是什么?

在二线制电路上能否进行全双工通信?

为什么?

答:

全双工和半双工通信,双方都既是发送器又是接收器。

两者的区别在于全双工可以同时发送和接收。

半双工不能同时双向传输,只能分时进行。

在二线制电路上是不能进行全双工通信的,只能单端发送或接收。

因为一根信号线,一根地线,同一时刻只能单向传输。

9.同步传输方式和异步传输方式的特点各是什么?

答:

同步传输方式中发送方和接收方的时钟是统一的、字符与字符间的传输是同步无间隔的。

异步传输方式并不要求发送方和接收方的时钟完全一样,字符与字符间的传输是异步的。

10.在异步传输时,如果发送方的波特率是600,接收方的波特率是1200,能否进行正常通信?

为什么?

答:

不能进行正常通信,因为发送方和接收方的波特率不同,而接收端的采样频率是按传输波特率来设置。

11.8251A在编程时,应遵循什么规则?

答:

8251在初始化编程时,首先使芯片复位,第一次向控制端口(奇地址)写入的是方式字;如果输入的是同步方式,接着向奇地址端口写入的是同步字符,若有2个同步字符,则分2次写入;以后不管是同步方式还是异步方式,只要不是复位命令,由CPU向奇地址端口写入的是命令控制字,向偶地址端口写入的是数据。

12.试对一个8251A进行初始化编程,要求工作在同步方式,7位数据位,奇校验,1个停止位。

答:

对原题目的补充改动,要求工作在内同步方式,2个同步字符。

方式字是:

00011000B=18H

程序段如下:

XORAX,AX

MOVDX,PORT

OUTDX,AL

OUTDX,AL

OUTDX,AL;向8251的控制口送3个00H

MOVAL,40H

OUTDX,AL;向8251的控制口送40H,复位

MOVAL,18H

OUTDX,AL;向8251送方式字

MOVAL,SYNC;SYNC为同步字符

OUTDX,AL

OUTDX,AL;输出2个同步字符

MOVAL,10111111B

OUTDX,AL;向8251送控制字

13.一个异步串行发送器,发送具有8位数据位的字符,在系统中使用一位作偶校验,2个停止位。

若每秒钟发送100个字符,它的波特率和位周期是多少?

答:

每个字符需要的发送位数是12位(数据位8位,校验位1位,停止位2位,起始位1位)。

每秒发送100个字符共1200位。

因此波特率为1200波特,位周期=

≈833µs。

第7章微机的基本接口技术

1.简述行列式键盘矩阵的读入方法。

答:

将行线接输出口,列线接输入口,采用行扫描法,先将某一行输出为低电平,其它行输出为高电平,用输入口来查询列线上的电平,逐次读入列值,如果行线上的值为0时,列线上的值也为0,则表明有键按下。

否则,接着读入下一列,直到找到该行有按下的键为止。

如该行没有找到有键按下,就按此方法逐行找下去,直到扫描完全部的行和列。

2.简述用反转法实现键的识别的基本方法。

答:

将题目中的键改为闭合键。

用反转法识别闭合键,需要用可编程的并行接口。

行线和列线分别接在PA和PB2个并行口上,首先让行线上的PA口工作在输出方式,列线上的PB口工作在输入方式,通过编程使PA口都输出低电平,然后读取PB口的列线值,如果某一列线上的值为0,则判定改列有某一键按下。

为了确定是哪一行要对PA和PB进行反转,即对PA口重新进行初始化工作在输入方式,列线上的PB口工作在输出方式,并将刚读取的列线值从列线所接的PB口输出,再读取行线所接的PA口,取得行线上的输入值,在闭合键所在的行线上的值必定为0。

这样,当一个键被按下时,必定可读得一对唯一的行值和列值。

根据这一对行值和列值就可判断是哪一行哪一列的键被按下。

3.LED数码管显示器共阴极和共阳极的接法主要区别是什么?

答:

LED数码管显示器共阴极的接法是发光二极管的阴极接地,当数码管的笔划发光二极管的阳极为高电平时,该笔划被点亮。

共阳极的接法是发光二极管的阳极接高电平,当数码管的笔划发光二极管的阴极为低电平时,该笔划被点亮。

总之,主要区别在于LED数码管的接法和驱动笔划的数据电平的不同。

4.试绘图说明LED数码管显示器的动态显示原理。

答:

使用书上的图7.8

在图中LED数码管是共阴极的,总共可带动8位这样的LED数码管。

动态驱动显示接口与静态驱动显示接口的一个明显特点是:

动态驱动法将多位LED同名段的选择线都并联在一起,即8位中的所有同名段a接在一起,所有b段都接在一起……,这样只要一个8位的锁存器来控制段码a,b,c,d,e,f,g就够了。

另外用一个锁存器来控制点亮的位。

因此需要2个8位的I/O端口。

由于所有位的位选择码是用一个I/O端口控制,所有段的段选择码也是用一个I/O端口控制,因此在每个瞬间,8位LED只可能显示相同的字符。

要想每位显示不同的字符,必须要采用扫描的显示方式。

即在每一瞬间只能使某一位显示相应的字符,在此瞬间,由位选择控制的I/O端口在要显示的位上送入选通电平(共阴极接法送入低电平,共阳极接法送入高电平),以保证让该位显示字符;再由段选择控制的I/O端口输出相应字符的段选择码。

如此循环下去,使每一位都显示该位应显示的字符,并保持延时一段时间,然后再选中下一位,利用发光显示器的余辉及人眼的视觉暂留特点,给人一种显示器同时被点亮的效果。

段选择码,位选择码在每送入一次后一般需要延时1~5ms时间。

5.A/D和D/A转换在微机应用中分别起什么作用?

答:

在微机应用中A/D转换器完成输入模拟量到数字量的转换,供微机采集数据。

D/A转换器完成微机输出数字量到模拟量的转换,实现微机控制。

6.D/A转换器和微机接口中的关键问题是什么?

对不同的D/A芯片应采用何种方法连接?

答:

D/A转换器和微机接口时主要注意两点:

第一要了解所选用的D/A转换器本身是否带有数据锁存器,如果芯片内部带有锁存器可以直接和CPU的数据总线相连接;如果芯片内部不带有锁存器,在接口电路中需要通过数据锁存器来连接CPU的数据总线和D/A转换器的数据线。

第二是要注意D/A转换器的位数和所要连接的微机数据总线的位数是否一致。

以便决定在需要加数据锁存器时,加几级锁存器,如果CPU的数据总线是8位,使用的是大于8位的D/A转换器,通常采用两级缓冲结构和CPU数据总线相连。

7.什么叫D/A转换器的分辨率?

答:

D/A转换器的分辨率指它所能分辨的最小输出电压与最大输出电压的比值。

通常用D/A转换器输入数字量的位数来表示。

8.若一个D/A转换器的满量程(对应于数字量255)为10V。

若是输出信号不希望从0增长到最大,而是有一个下限2.0V,增长到上限8.0V。

分别确定上下限所对应的数。

答:

因为满量程为10V,则每一步的电压变化量为

=0.039V/步

于是,下限是

=51.3步取51,即33H。

上限是

=205.1步取205,即CDH。

9.DAC与8位总线的微机接口相连接时,如果采用带两级缓冲器的DAC芯片,为什么有时要用三条输出指令才能完成10位或12位的数据转换?

答:

因为在使用内部不带数据寄存器的DAC时,常常需要在DAC前面增加数据缓冲器,用来锁存CPU通过数据总线发出的数字。

如果总线为8位,而DAC超过8位(例如10位或12位)时,CPU必须分2次才能把控制数字送入数据缓冲器,例如先送数据的低8位,然后送剩下的高位,因此需要执行2条输出指令。

另外,为了避免DAC在得到局部输入时,其输出端输出并不是最后结果的模拟量,通常采用2级数据缓存结构,相应地CPU也需要再增加执行一次输出指令,使在第一级缓冲器中锁存的数据经第二级缓冲器后能一次加到DAC输入端。

第三条输出指令仅仅是使第二级缓冲器得到一个选通信号。

10.已知某DAC的输入为12位二进制数,满刻度输出电压Vom=10V,试求最小分辨率电压VLSB和分辨率。

答:

12位D/A的分辨率

最小分辨率电压VLSB

11.已知某DAC的最小分辨电压VLSB=5mV,满刻度输出电压Vom=10V,试求该电路输入二进制数字量的位数n应是多少?

答:

12.A/D转换器和微机接口中的关键问题有哪些?

答:

A/D转换器和微机接口时的关键问题主要有6个。

①A/D转换器输出和CPU的接口方式,主要有2种连接方式:

一种是A/D芯片输出端直接和系统总线相连;另一种是A/D芯片输出端通过接口电路和总线相连。

②A/D转换器的分辨率和微机数据总线的位数匹配:

当10位以上的A/D转换器和8位数据总线连接时,由于数据要按字节分时读出,因此从8位数据线上需分2次来读取转换的数据。

设计接口时,数据寄存器要增加读写控制逻辑。

③A/D转换的时间和CPU的时间配合问题:

要注意A/D转换的启动方式,通常启动信号分为电平控制启动和脉冲启动两种。

其中又有不同的极性要求。

还要注意转换后信号的处理。

④A/D的控制和状态信号。

因为A/D转换器

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 其它

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1