I/O控制方式

所谓I/O控制方式,是指主机与外围设备在交换信息之前,采用何种联络方式以保障信息能够正确、可靠地送达对方。

在微型计算机中,主机与外围设备之间的信息传送控制方式(即I/O控制方式)主要有3种:程序控制方式、中断控制方式和直接存储器存取(DMA)方式。本节将分别予以介绍。

6.2.1程序控制方式

程序控制方式是指在程序控制下进行的信息传送方式。它又分为无条件传送和程序查询传送两种。

1.无条件传送方式

无条件传送方式是在假定外围设备已经准备好的情况下,直接利用输入指令(N指令)

或输出指令(OUT指令)与外围设备传送信息,而不去检测(查询)外围设备的工作状态。这种传送方式的优点是控制程序简单。但它必须在外围设备已准备好的情况下才能使用,否则传送就会出错。所以在实际应用中无条件传送方式使用较少,只用于对一些简单外设的操作,如对可编程接口芯片的初始化或访问其运行状态,以及对开关信号的输入,对LED显示器的输出等。

如图6.5所示,无条件输入传送接口电路共由两部分组成。左面电路产生控制信号,有两个输入信号:一是由端口地址译码器输出的选中本端口信号:另一个是来自控制总线的外部读信号。右面是由3态门组成的数据通道,输入与外围设备相连,输出接到系统的数据总线上。当程序执行输入指令:

INAL,PORT:PORT为端口地址时,外围设备的数据被送入累加器AL中,完成一次由外围设备到CPU的数据传送。

2,程序查询传送方式

程序查询传送方式也称条件传送方式。采用这种传送方式时,必须具有表示外围设备当前运行状态的硬件电路,并称之为状态端口,以便与CPU进行联络。如图6.6所示,条件输入传送接口电路与无条件输入传送接口电路相比较,在形式上多了一组输入端口,并且它的输出也与数据总线相连。但是经它所传出的“0”或“1”已经不是数值了,而是外围设备的状态。这里需要特别指出,一般情况下,一台外围设备只需要1位()来说明其状态。这1位()与数据总线的哪一位相连,则决定了编程时应对该位进行测试。例如,设有一输入端口,由数据端口POTR1和状态端口POTR2组成,其中状态端口POTR2的输出与数据总线的末位相连。用“1”表示输入数据准备好,查询程序如下:

STATE:IN AL,POTR2:输入状态信息

TEST AL.01H:测试“准备好”位

JZ   STATE  未准备好,继续查询

IN  AL,POTRI;准备好,输入数据

上面所举例子是条件输入传送接口。对于条件输出传送接口,除数据传送方向相反(OW)外,其他与条件输入传送接口相同。CPU通过执行程序不断读取并检测外围设备的状态,只有在外围设备确实已经准备就绪的情况下,才进行信息传送,否则还要继续查询外围设备的状态。程序查询传送比无条件传送要准确和可靠。但在此种方式下,CPU要不断地查询外围设备的状态,占用了大量的时间,真正用于传送信息的时间却很少。例如用查询方式实现从终端键盘输入字符信息的情况,由于输入字符的流量是非常不规则的,CPU无法预测下一个字符何时到达,这就迫使CPU必须频繁地检测键盘输入端口是否有进入的字符,否则就有可能造成字符的丢失。实际上,CPU浪费在与字符输入无直接关系的查询中的时间占90%以上。

对于程序查询传送方式来说,一个信息传送过程由3步完成:

(1)CPU从接口中读取状态信息。

(2)CPU检测状态字的对应位是否满足“就绪”条件,如果不满足,则回到前一步继续读取状态信息。

(3)如果状态字表明外设已处于“就绪”状态,则传送信息。

为此,接口电路中除了有数据端口外,还需有状态端口。对于输入过程来说,如果数据输入寄存器中已准备好新数据供CPU读取,则使状态端口中的“准备好”标志位置“1”:对于输出过程来说,外围设备取走一个数据后,接口就将状态端口中的对应标志位置“1”,表示数据输出寄存器已经处于“空”状态,可以从CPU接收下一个输出数据。程序查询传送方式的程序流程图如图67和图6.8所示。

豫ICP备19006514号 网站地图 免责声明:如果侵犯了你的权益,请发邮件至:419017772@qq.com,我们会及时删除侵权内容,谢谢合作!