5.2 外部设备(非重点)

一、概述

图2.1 I/O设备图

外部设备大致分为三类:

(1)人机交互设备:键盘、鼠标、打印机、显示器;

(2)计算机信息存储设备:磁盘、光盘、磁带;

(3)机-机通信设备:调制解调器等。

二、输入设备

1.键盘

2.鼠标:机械式;光电式。

3.触摸屏。

三、输出设备

1.显示器

(1)字符显示:字符发生器;

(2)图形显示:主观图像;

(3)图像显示:客观图像。

2.打印机

(1)击打式:点阵式(逐字、逐行);

(2)非 :激光(逐页)、喷墨(逐字)。

四、其它

1.A/D模数、D/A数模转换器;

2.终端:由键盘和显示器组成,完成显示控制与存储、键盘管理与通信控制;

3.汉字处理:汉字输入、汉字存储、汉字输出等。

五、多媒体设备

多种媒体技术和手段相结合进行综合应用,给人以更多视听上的享受。

关键技术包括数据压缩&解压缩、编码技术、专用芯片、语音图像识别、图片识别等。

5.3 I/O接口

一、概述

我们这里的接口,既包括接口电路,也包括接口的控制器。

1.为什么要设置接口?

(1)实现设备的选择;

(2)实现数据缓冲达到速度匹配;

(3)实现数据串——并格式转换;

(4)实现电平转换;

(5)传送控制命令;

(6)反映设备的状态(“忙”、“就绪”、 “中断请求”)。

二、接口的功能和组成

1.总线连接方式的I/O接口电路

如图3.1所示,包括:

(1)设备选择线(单向线);

(2)数据线(双向线);

(3)命令线(单向线);

(4)状态线(单向线)。

图3.1 总线连接方式图

2.接口的功能和组成

功能组成
选址功能设备选择电路
传送命令的功能命令寄存器、命令译码器
传送数据的功能数据缓冲寄存器
反映设备状态的功能设备状态标记

利用一系列标记来反映设备状态:

(1)完成触发器D:用来标识设备是否准备好、数据是否准备好;

(2)工作触发器B:用来标识外部设备工作状态,是否忙,若为1,则表示忙,若为0则不忙;

(3)中断请求触发器INTR:标识中断方式,设备准备好要向主机请求中断请求;

(4)屏蔽触发器:MASK:屏蔽触发器=1,表示尽管设备准备好了,仍然不能向主机申请中断。

3.I/O接口的基本组成

图3.2 I/O接口的基本组成

三、接口类型

1.按数据传送方式分类:

(1)并行接口:Intel 8255;

(2)串行接口:Intel 9251。

2.按功能选择的灵活性分类:

(1)可编程接口:Intel8255、Intel8251;

(2)不可编程接口:Intel8212。

3.按通用性分类:

(1)通用接口:Intel8255、Interl8251;

(2)专用接口:Interl9271、Intel8275。

4.按数据传送的控制方式分类:

(1)中断接口:Intel8259;

(2)DMA接口:Intel8257。

5.4 程序查询方式

一、程序查询方式的流程

1.查询流程

(1)单个设备

图4.1 单个设备查询流程

具体过程在5.1节中已经讲过,在这里不再累述。这里使用三条指令:测试指令(检查状态标记)、转移指令(检查设备是否准备就绪)和传送指令(交换数据)。

(2)多个设备

图4.2 多个设备查询流程

按照优先级进行排序。优先级的最高最先接受检查,如果它已经准备好了,则处理设备,否则就继续往下检查。

2.程序流程

保存寄存器内容流程图如图4.3所示。要完成内存和外部设备数据输入输出,要借助CPU中某个寄存器来对数据进行暂存。如果这个数据是有用的,我们需要对这个寄存器的数据进行保存。我们可以把它写入某个内存单元、压入堆栈或者CPU放到其他闲置寄存器保存。

我们需要设置计数值,是为了限制CPU传输的数据量,内存和I/O到底传输多大数据,设置有两种方式:要传输N个字,则计数器存为N,每次传输完一次减1,另一种是设置为-N,用补码表示,每次传输完加1,直到计数器溢出(或0),数据传输才会结束。

这之后,要设置主存缓冲区的首地址,启动外设,让外设准备,CPU开始不断查询状态,若准备好了,开始进行数据传输,传送一个字,然后修改主存地址,修改计数值,若没有传送完成,则再启动外设,CPU开始查询状态,然后继续往下走,若传送完了,就结束I/O传送。

图4.3 保存寄存器内容流程图

二、程序查询方式的接口电路

图4.4 程序查询方式接口电路

DBR是数据缓冲寄存器。

如图4.4所示,可以和图3.2来对比看看对应关系。图4.4所示最下面是设备选择电路,它来确认这个设备是否参加传输的设备,这个信号是整个I/O接口电路的选择信号。如果SEL有效,启动命令有效,则这个电路则开始工作。

我们以数据输入(到内存中)来讲这个电路。CPU通过地址线给出外部设备的地址,设备选择电路进行比较,如果相同则是启动被电路,SEL和启动命令都有效,对两个状态标记进行复位或者置位,此时标记D为0表示尚未准备好,标记B置为1表示忙,开始启动设备。接收到B=1和启动命令后,数据传送到DBR,这个设备工作结束,设备会通过设备状态线向接口电路送入设备工作结束的信号,然后修改D=1,B=0,表示数据准备好了、设备工作完成。在这个时候及之前,CPU一直在查询D的状态。当D=1了,CPU通过数据线把数据进行读入,工作结束。