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通过数据线把数据进行读入,工作结束。