微机原理3.docx
《微机原理3.docx》由会员分享,可在线阅读,更多相关《微机原理3.docx(17页珍藏版)》请在冰豆网上搜索。
![微机原理3.docx](https://file1.bdocx.com/fileroot1/2023-1/5/6a9403f8-9a75-45b6-bb44-1f3afb7ad77b/6a9403f8-9a75-45b6-bb44-1f3afb7ad77b1.gif)
微机原理3
第五章微型计算机和外设的数据传输
5.1外部设备为什么要通过接口电路和主机系统相连?
存储器需要接口电路和总线相连吗?
为什么?
答:
1.因为外设的功能多种多样,对于模拟量信息的外设必须要进行A/D和D/A转换,而对于串行信息的外设则必须转换为并行的信息,对于并行信息的外设还要选通。
而且外设的速度比CPU慢的多,必须增加缓冲功能。
只有这样计算机才能使用这些外设。
而所有这些信息转换和缓冲功能均由接口电路才能完成。
2.存储器不需要接口电路和总线相连。
3.因为存储器功能单一,且速度与CPU相当。
因此可直接挂在CPU总线上。
5.2是不是只有串行数据形式的外设需要接口电路和主机系统连接?
为什么?
答:
1.不是。
并行数据形式的外设也需要接口电路和主机系统连接。
2.因为,CPU每次只能访问一个外设,因此并行信息的外设需增加选通功能,才能满足CPU的访问要求,必须用接口电路。
5.3接口电路的作用是什么?
按功能可分为几类?
答:
1.接口电路的作用就是在外设和CPU之间起信息变换和缓冲功能。
2.按功能可分为两类:
1一种是使微处理器正常工作所需要的辅助电路。
2另一种是输入/输出接口电路。
5.4数据信息有哪几类?
举例说明它们各自的含义。
答:
1.数据信息有四类:
数字量、模拟量、开关量、脉冲量。
2.如键盘、磁带机等就是数字量信息;温度、湿度、压力等转换的电信号就是模拟量;电机的起停、发光设备的亮灭等都是开关量;计数脉冲、定时脉冲等都是脉冲量。
5.5CPU和输入/输出设备之间传送的信息有哪几类?
答:
有数据信息、控制信息、状态信息三类。
5.6什么叫端口?
通常有哪几类端口?
计算机对I/O端口编址时通常采用哪两种方法?
在8086/8088系统中,用哪种方法对I/O端口进行编址?
答:
1.CPU和外设进行数据传输时,各类信息在接口中进入不同的寄存器,一般称这些寄存器为I/O端口。
2.有数据端口、控制端口、状态端口三类。
3.在微型计算机中通常用两种I/O端口编址方式:
存储器映象寻址和I/O端口单独寻址。
4.在8086/8088系统中,用I/O端口单独寻址方式编址。
5.7为什么有时候可以使两个端口对应一个地址?
答:
因为这两个端口一个是只读端口,一个是只写端口。
而CPU对一个I/O端口地址可进行读/写两种访问。
如果将这两个只读和只写端口编为一个地址,则CPU对该端口地址读操作对应的是只读端口;CPU对该端口地址写操作则对应的是只写端口,互不影响。
因此可以使两个单向的只读和只写端口对应一个端口地址。
5.8CPU和外设之间的数据传送方式有哪几种?
实际选择某种传输方式时,主要依据是什么?
答:
1.CPU和外设之间的数据传送方式有三种:
程序方式、中断方式、DMA方式。
2.主要依据是外设的情况(外设的速度和外设提供信息的方式)。
5.9无条件传送方式用在哪些场合?
画出无条件传送方式的工作原理图并说明。
答:
1.无条件传送方式只用在对一些简单外设进行操作的场合。
如开关、LED显示等。
2.无条件传送方式的工作原理图:
(见书203页图5.2所示)
1在无条件输入时:
CPU执行一条输入指令,使
和M/
信号为有效低电平,并对应送出该端口地址,因此选中输入缓冲器,打开其三态门,使输入缓冲器的数据经数据总线送到CPU的累加器中。
2在无条件输出时:
CPU执行一条输出指令,使
和M/
信号为有效低电平,并对应送出该端口地址,因此选中输出锁存器,将由累加器送到数据总线上的数据打入输出锁存器中供外设使用。
5.10条件传送方式的工作原理是怎样的?
主要用在什么场合?
画出条件传送(查询)方式输出过程的流程图。
答:
1.条件传送方式的工作原理是:
外设给CPU提供一个状态信息,当CPU要访问外设时,必须先检测该状态信息是否合乎要求,不停检测直至合乎要求时才进行CPU对外设的访问。
2.查询方式主要用在外设较少,数据交换不频繁的非实时系统的场合。
5.11设一个接口的输入端口地址为0100H,而它的状态端口地址为0104H,状态口中第5位为1表示输入缓冲区中有一个字节准备好,可输入。
设计具体程序实现查询式输入。
答:
DATASEGMENT
BUFFERDB20DUP(?
);接收数据缓冲区
DATAENDS
CODESEGMENT
ASSUMEDS:
DATA,CS:
CODE
STAT:
MOVAX,DATA;对DS初始化
MOVDS,AX
MOVDI,OFFSETBUFFER
MOVDX,0104H
STATIN:
INAL,DX
TESTAL,20H;测试第5位
JZSTATIN;第5位为0继续测试
MOVDX,0100H
INAL,DX;输入数据
MOV[DI],AL
CODEENDS
ENDSTAT
5.12查询式传送方式有什么缺点?
中断方式为什么能弥补查询方式的缺点?
答:
1.查询式传送方式缺点是:
花费CPU的时间作等待循环,大大降低了CPU的运行效率。
2.中断方式是在外设准备就绪时向CPU申请中断,再进行传送,因而CPU无需花费时间作等待循环,弥补了查询方式的缺点。
5.13叙述可屏蔽中断的响应和执行过程。
答:
①接口发中断请求信号。
②CPU的IF=1时,当前指令执行完后,CPU进行中断回答,发两个
负脉冲。
③接口将中断类型号n送CPU。
④当前的PSW、CS和IP推入堆栈,并清除IF和TF。
⑤(4×n)作为IP,(4×n+2)作为CS,即取中断向量。
⑥执行中断子程序,并开中断。
⑦中断返回IRET指令使IP、CS和PSW弹出堆栈。
⑧返回被中断的程序。
5.14通常解决中断优先级的方法有哪几种?
各有什么优缺点?
答:
1.有软件查询方式、简单硬件方式——菊花链法、专用硬件方式三种。
2.软件查询方式的优点是节省硬件,缺点是中断响应时间长;简单硬件方式的优点是中断响应时间短,硬件较简单,缺点是优先级固定,变动起来很麻烦;专用硬件方式优点是对优先级可编程修改,中断管理非常方便,缺点是硬件复杂的多,好在有专用的中断控制器。
5.15和DMA比较,中断传输方式有什么不足之处?
答:
CPU执行一次传送要花费许多与传送操作无关的指令执行等时间,另外中断传送方式不能进行数据块传送,而是按字节或字传送。
5.16叙述用DMA方式传送单个数据的全过程。
答:
①接口准备就绪,发DMA请求信号给DMA控制器。
②DMA控制器向CPU转发总线请求信号HOLD。
③CPU向DMA控制器发总线请求允许信号HLDA,DMA控制器得到总线控制权。
④DMA控制器把地址送地址总线。
⑤DMA控制器向接口发DMA请求确认信号。
⑥内存和接口通过数据总线传送数据。
⑦DMA控制器撤销总线请求信号HOLD。
⑧8086CPU收回总线控制权。
5.17DMA控制器的地址线为什么是双向的?
什么时候往DMA控制器传输地址?
什么时候DMA控制器往地址总线传输地址?
答:
1.因为DMA控制器要接受CPU的控制,接收CPU发来的初始化等信息,这要求地址线来寻址各端口,地址线为输入线。
又因为DMA控制器可控制总线,这要求地址线为输出。
所以地址线必须为双向才行。
2.CPU要对DMA控制器发初始化信息时,必须往DMA控制器传输地址。
3.DMA控制器得到总线控制权后,向地址总线传输地址。
5.18在设计DMA传输程序时,要有哪些必要的模块?
设计一个启动数据块输出的程序段。
答:
1.要有DMA的初始化模块:
对字节计数器、地址寄存器和控制寄存器置初值。
还要有对接口部件设置控制字的模块:
指出数据传输方向,并启动I/O操作。
2.启动数据块输出的程序段如下:
IDLO:
INAL,INTSTAT;接口状态寄存器的状态位
(2)是否忙
TESTAL,04
JNZIDLO;忙,则等待
MOVAX,COUNT;不忙,则设置计数初值
OUTBYTE_REG,AX;对字节计数器BYTE_REG初始化
LEAAX,BUFFER;设置地址初值
OUTADD_REG,AX;对DMA地址寄存器ADD_REG初始化
MOVAL,DMAC;取原DMA控制字
ORAL,08H;设置方向为输出
OUTDMACON,AL;置DMA控制字
MOVAL,INTC;取原接口控制字
ORAL,04H;设置传输方向为输出及允许
OUTINTCON,AL;置接口控制字
┆
后续处理
5.19在查询方式、中断方式和DMA方式中,分别用什么方法启动数据传输过程?
答:
①查询方式:
通过程序来检测接口中状态寄存器中的“准备好”位,以确定当前是否可以进行数据传输。
②中断方式:
当接口中已经有数据要往CPU输入或者准备好接收数据时,接口会向CPU发一个外部中断请求。
CPU响应中断后,便通过运行中断处理程序来实现输入/输出。
③DMA方式:
外设要求传送数据时,接口会向DMA控制器发DMA请求信号,DMA控制器转而向CPU发一个总线请求信号,以请求得到总线控制权,如果得到CPU允许,那么,就可在没有CPU参与的情况下,实现DMA传输。
第六章串并行通信和接口技术
6.1接口部件为什么需要有寻址功能?
设计一个用74LS138构成的译码电路,输入为A3、A4、A5、A8,输出8个信号以对8个接口部件进行选择。
想一想如果要进一步对接口中的寄存器进行寻址,应该怎样实现?
答:
1.因为,首先接口要对选择M和I/O的信号能够做出解释;此外,要对送来的片选信号进行识别,以便判断当前本接口是否被访问,如果受到访问,还要决定是接口中那个寄存器受到访问。
2.将A1接在接口的A0上,A2接在接口的A1上;将接口的
接在74LS138的某一输出端,
和
分别接在对应的控制总线上。
从而可实现接口中的共8个只读和只写寄存器的寻址。
(由于用的是8086CPU,所以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在数据通信系统中,什么情况下可以采用全双工方式,什么情况下可用半双工方式?
答:
对于近距离较大信息量的传输应采用全双工方式。
而对于远距离或较少信息量的传输或单向的输入或输出设备时应采用半双工方式。
6.9什么叫同步通信方式?
什么叫异步通信方式?
它们各有什么优缺点?
答:
1.在同一时钟控制下需用同步字符同步的信息按组传送的方式叫同步通信方式。
2.在两个相近频率的时钟分别控制下只需一个起始位的信息按字符传送的方式叫异步通信方式。
3.在传输率相同时同步方式的信息有效率要比异步方式下的高。
但同步方式必须传送时钟信号,异步方式只要两端的时钟频率相近即可。
6.10什么叫波特率因子?
什么叫波特率?
设波特率因子为64,波特率为1200,时钟频率为多少?
答:
1.波特率因子:
时钟频率和位传输率的比值。
此比值必须为16、32或64。
2.波特率:
位传输率即为波特率。
3.时钟频率=波特率因子×波特率=64×1200=76800Hz。
6.11标准波特率系列指什么?
答:
国际上规定的波特率标准值为:
110、300、600、1200、1800、2400、4800、9600和19200、、38400、57600、115200。
6.12设异步传输时,每个字符对应1个起始位、7个信息位、1个奇/偶校验位和1个停止位,如果波特率为9600,则每秒钟能传输的最大字符数为多少?
答:
每个字符所占的总位数为:
1+7+1+1=10位。
所以每秒钟能传输的最大字符数为9600/10=960个字符。
6.13在RS–232–C标准中,信号电平与TTL电平不兼容,问RS–232–C标准的1和0分别对应什么电平?
RS–232–C的电平和TTL电平之间用什么器件进行转换?
答:
1.RS–232–C的1对应–3V~–25V;RS–232–C的0对应+3V~+25V电平。
2.RS–232–C电平→TTL电平用MC1489转换;TTL电平→RS–232–C电平用MC1488转换。
6.14从8251A的编程结构中,可以看到8251A有几个寄存器与外部电路有关?
一共要几个端口地址?
为什么?
答:
1.有7个寄存器与外部电路有关。
2.要2个端口地址。
3.因为,一个数据输入缓冲寄存器为只写,一个数据输出缓冲寄存器为只读,可共用一个端口地址,在读/写信号配合下进行读/写操作。
一个模式寄存器、2个同步字符寄存器和1个控制寄存器都是只写的,但它们有初始化约定,可用一个端口写入,1个状态寄存器为只读,因此与上面共用的一个写入端口合用一个读/写端口地址进行寻址。
因此只要2个端口地址即可。
6.158251A内部有哪些功能模块?
其中读/写控制逻辑电路的主要功能是什么?
答:
1.8251A内部有7个功能模块组成。
为:
接收缓冲器、接收控制电路、发送缓冲器、发送控制电路、数据总线缓冲器、读/写控制逻辑电路、调制/解调控制电路。
2.读/写控制逻辑电路的主要功能是:
用来配合数据总线缓冲器工作。
1接收写信号
,并将来自数据总线的数据和控制字写入8251A;
2接收读信号
,并将数据或状态字从8251A送往数据总线;
3接收控制/数据信号C/
,将此信号和读/写信号合起来通知8251A,当前读/写的是数据还是控制字、状态字;
4接收时钟信号CLK,完成8251A的内部定时;
5接收复位信号RESET,使8251A处于空闲状态。
6.16什么叫异步工作方式?
画出异步工作方式时8251A的TxD和RxD线上的数据格式。
答:
1.在两个相近频率的时钟分别控制下,只需一个起始位的信息按字符传送的方式叫异步工作方式。
6.17什么叫同步工作方式?
什么叫双同步字符方式?
外同步和内同步有什么区别?
画出双同步工作方式时8251A的TxD线和RxD线上的数据格式。
答:
1.在同一时钟控制下需用同步字符同步的信息按组传送的方式叫同步工作方式。
2.需用2个同步字符的同步工作方式叫双同步字符方式。
3.外同步只能工作于同步接收方式,而内同步即适用于同步接收,也适用于同步发送。
外同步是由外设来搜索同步字符,一旦搜索成功,立即给串行接口的同步输入端送来一个高电平,表示同步已实现,串行接收端开始接收数据。
而内同步由串行接口本身来搜索同步字符而实现同步的。
6.188251A和CPU之间有哪些连接信号?
其中C/
和
、
如何结合起来完成对命令、数据的写入和状态、数据的读出?
答:
1.8251A和CPU之间的连接信号有:
片选信号—
,数据信号—D7~D0,读/写控制信号—
、
、C/
,收发联络信号—TxRDY、TxE、RxRDY、SYNDET。
2.C/
=0、
=0、
=1时CPU从8251A输入数据;
C/
=0、
=1、
=0时CPU往8251A输出数据;
C/
=1、
=0、
=1时CPU读取8251A的状态;
C/
=1、
=1、
=0时CPU往8251A写入控制命令。
6.198086/8088系统中,8251A的C/
端应当和哪个信号相连,以便实现状态端口、数据端口、控制端口的读/写?
答:
8251A的C/
端应与地址总线的A1相连。
6.208251A与外设之间有哪些连接信号?
答:
收发联络信号—
、
、
、
,数据信号—TxD、RxD。
6.21为什么8251A要提供
、
、
、
四个信号作为和外设的联络信号?
平常使用时是否可以只用其中两个或者全部不用?
要特别注意什么?
说明
端的连接方法。
答:
1.8251A的这四个信号是提供给CPU和外设进行联络用的,因为CPU不能和外设直接相连。
这样CPU对外设的控制信号
和
及外设给CPU的状态信号
和
必须由接口(此处为8251A)来传递。
所以要提供此4个信号作为和外设的联络信号。
2.平常使用时可以只用其中两个或者全部不用。
3.要特别注意的是在某个时候
要输入一个低电平。
否则CPU不能往8251A发送数据。
4.
一般接地,以确保不用它作联络信号时也维持低电平输入。
6.228086系统中采取什么措施来实现8位接口芯片和低8位数据线的连接且满足对奇/偶端口的读/写?
这样做的道理是什么?
答:
1.将系统总线的A1与接口的A0相连接即可。
软件上采用连续的偶地址代替端口的奇/偶地址。
2.因为这样连接,从CPU这边来说,端口地址都是偶地址,传输信息时,信息总是出现在CPU的低8位数据总线上;而从端口这边来说,端口地址中既有奇地址也有偶地址,且是连续的,这又满足了许多8位接口芯片对端口地址的要求。
6.23对8251A进行编程时,必须遵守哪些约定?
答:
①芯片复位以后,第一次用奇地址端口写入的值作为模式字进入模式寄存器。
②若模式字中规定了8251A工作在同步模式,则CPU接着往奇地址端口输出的1个或2个字节就是同步字符被写入同步字符寄存器。
若有两个同步字符,则会按先后分别写入第一个同步字符寄存器和第二个同步字符寄存器。
③此后,只要不是复位命令,不管是在同步模式还是在异步模式下,由CPU用奇地址端口写入的值将作为控制字送到控制寄存器,而用偶地址端口写入的值将作为数据送到数据输出缓冲寄存器。
6.24参考初始化流程,用程序对8251A进行同步模式设置。
奇地址端口的地址为66H,规定用内同步方式,同步字符为2个,用奇校验,7个数据位。
答:
模式字为:
00011000B=18H。
两个同步字符取16H,控制字为97H,它使8251A对同步字符进行检索;同时使状态寄存器中的3个出错标志复位;使8251A的发送器启动,接收器也启动;CPU当前已准备好进行数据传输。
具体程序段如下:
MOVAL,18H;设置模式字
OUT66H,AL
MOVAL,16H;发送两个同步字符
OUT66H,AL
OUT66H,AL
MOVAL,97H;设置控制字
OUT66H,AL
6.25设计一个采用异步通信方式输出字符的程序段,规定波特率因子为64,7个数据位,1个停止位,用偶校验,端口地址为40H、42H,缓冲区首址为2000H:
3000H。
答:
模式字为:
01111011B=7BH。
控制字为:
00110101B=35H。
MOVAL,0;为发复位命令作准备
OUT42H,AL
OUT42H,AL
OUT42H,AL
MOVAL,40H;发复位命令
OUT42H,AL
MOVAL,7BH;设置模式字,异步方式,规定波特率因子为64
;7个数据位,1个停止位,偶校验
OUT42H,AL
MOVAL,35H;设置控制字,使发送器和接收器启动,并清除
;出错标志
OUT42H,AL
PUSHDS
MOVBX,2000H;DS:
BX指向输出缓冲区首址
MOVDS,BX
MOVBX,3000H;缓冲区指针初始化
MOVCX,100H;发送100H个字节
BEGIN:
INAL,42H;读取状态字,测试TxRDY是否为1
TESTAL,01H
JZBEGIN;为0表示外设还未取走字符
MOVAL,[BX];从输出缓冲区取数
OUT40H,AL;发送字符
INCBX;修改缓冲区指针
LOOPBEGIN;则再发送下一个字符
POPDS
┆
6.26并行通信和串行通信各有什么优缺点?
答:
并行通信的优点是信息实际传输速度快,信息率高。
缺点是需多条通信线。
串行通信的优点是只用1至2条通信线,但信息传输速度较慢。
6.27在输入过程和输出过程中,并行接口分别起什么作用?
答:
简单说,并行接口只起着桥梁和联络的作用。
具体如下:
①输入过程:
外设将数据送给接口,并使状态线“输出准备好”成为高电平。
接口把数据接收到数据输入缓冲寄存器的同时,使“数据输入回答”线变为高电平,作为对外设的响应。
外设接到此信号,便撤消数据和“数据输入准备好”信号。
数据到达接口后,接口便在状态寄存器中设置“输入准备好”状态位,并发中断请求,CPU可用查询方式或中断方式来设法读取接口中的数据。
CPU读取数据后,接口会自动清除状态寄存器中的“输入准备好”位,并使数据总线处于高组状态。
此后又可以开始下一个输入过程。
②输出过程:
当外设从接口取走一个数据后,接口就会将状态寄存器中的“输出准备好”状态位置1,并发中断请求,以表示CPU当前可以通过查询方式或中断方式往接口中输出数据。
当CPU输出的数据到达接口的输出缓冲器中后,接口会自动清除“输出准备好”状态位,并将数据送往外设,同时,接口往外设发送一个“驱动信号”来启动外设接收数据。
外设被启动后,开始接收数据,并往接口发一个“数据输出回答”信号。
接口收到此信号,便将状态寄存器中的“输出准备好”状态位重新置1,以便CPU输出下一个数据。
6.288255A的三个端口在使用时有什么差别?
答:
端口A和端口B常常作为独立的输入端口或者输出端口,端口C则配合端口A和端口B工作。
6.29当数据从8255A的端口C往数据总线上读出时,8255A的几个控制信号
、A1、A0、
、
分别是什么电平?
答:
=0、A1=1、A0=0、
=0、
=1。
“0”为低电平,“1”为高电平。
6.308255A的方式选择控制字和置1/置0控制