第8章输入输出设备(时间:4学时)第8章输入输出设备输入/输出设备即外围设备,简写为I/O设备。本章介绍其分类方法,并重点介绍几种最常用的基本外围设备,着重于其信息传送和控制原理等内容。第8章输入输出设备8.1外围设备概述8.2键盘8.3显示设备8.4打印输出设备8.1外围设备概述计算机主机的主要功能是存储和处理数据,而被存储和处理的数据最初都来自于主机外部,这就需要用到输入设备;被处理好的数据又常常需要以人们能够识别的方式显示或打印出来,这就需要用到输出设备。这里所定义的输入与输出,是以主机为基准,送入主机称为输入,由主机送往外部设备称为输出。8.1外围设备概述8.1.1外围设备分类8.1.2信息交换与代码与传送格式8.1.3调用外围设备的层次8.1.1外围设备分类输出的数据在许多场合下是用来控制其他系统的,而输入的数据在许多场合下也往往来自其他控制系统。所以输入设备和输出设备是实现计算机系统与人或其他设备、系统之间进行信息交换的装置,并且其种类很多。输入设备和输出设备的工作原理,除常见的机电式、电子式外,还涉及各种新的技术成果,涉及各种各样的物理、化学机制,而且一直在不断地发展。可以从不同角度对外部设备进行分类,如按功能与用途、工作原理、速度快慢、传送格式等分别分类。这里仅从计算机系统组成的角度,根据设备在系统中的作用将其划分为5类。同一种设备可能具有其中几种功能。8.1.1外围设备分类1.输入设备2.输出设备3.外存储器4.终端设备5.其他广义外围设备8.1.2信息交换代码与传送格式外围设备与主机之间的关系,说到底就是信息的输入或输出,即信息交换。我们关心的是信息交换中所使用的代码格式、传送方式(串行、并行)和传输速率。传送的数据类型可能有多种(如数值型、字符型、日期型、逻辑型、图形、声音),但在进入计算机或由计算机输出时,一般都采用二进制编码形式。计算机内部用程序完成二进制数据与各种不同类型数据之间的转换;而各种不同的外围设备则由其控制机构实现二进制数据与相应动作或相应信息之间的转换。8.1.3调用外围设备的层次外围设备的工作需要由设备控制器进行控制,而外围设备与主机之间一般又需要一个接口部件。在常用的微型机系统中,磁盘控制器与接口合为一体,称为磁盘适配器;显示器的控制器也与接口合为一体,称为显示器适配卡;打印机控制器则与打印机本身合为一体,而打印机适配卡往往是一种可以通用的接口。许多设备控制器与接口都是可编程控制的,甚至采用了微处理器与局部存储器,可以存放与执行设备的控制程序。键盘操作一般由用户主动进行,主机以中断方式被动处理,接收并识别键码。大多数外围设备,如显示器、打印机、磁盘、磁带等,在宏观上由主机主8.1.3调用外围设备的层次动调用,在微观上可能采用中断方式或DMA方式进行处理。对外围设备的调用过程与设备的工作,大致可分为下述4个层次。1.调用外围设备的用户界面操作系统为用户调用外围设备提供了统一而方便的操作界面。例如,现在微机常用的操作系统Windows为用户提供了两种界面:或使用菜单命令,或在程序中通过软中断进行系统功能调用。这些菜单命令或功能调用命令,可以指定磁盘读/写、显示、打印等操作,或从纯软件角度按文件名进行对文件的有关操作。8.1.3调用外围设备的层次2.设备驱动程序在操作系统中,包含若干个对常用外围设备的驱动程序。每个驱动程序又包含若干功能子程序,提供对该设备的操作功能,供用户选择。当用户在编程中以软中断方式调用某个外围设备时,可根据系统的技术手册,以中断号调用某个驱动程序,以功能编号指定所需的操作类型。由于机器指令系统只能提供通用的基本操作功能,所以驱动程序往往以送出命令字或命令块(多字节)方式,向接口送出针对该设备的具体控制信息,并以取回状态字的形式,判别操作结果与设备运行状态。8.1.3调用外围设备的层次3.设备控制器及控制程序驱动程序通过接口部件,向设备控制器发出命令字。命令字代码的各位表达了要求外围设备进行的操作,通过相应的逻辑部件将其实现。由于微处理器价格已很低廉,像磁盘控制器、打印机控制器一类功能较复杂的设备控制器,广泛采用微处理器与半导体存储器,构成所谓智能型接口与控制器,其中用ROM固化设备控制程序。当驱动程序送出命令之后,就启动设备控制器中的微处理器,通过执行设备控制程序实现有关的操作。8.1.3调用外围设备的层次4.外围设备的具体操作本书重点介绍几种常用外围设备的逻辑组成及工作原理。读者应该从系统的角度了解外围设备工作的全过程(即主机与外围设备之间是如何联机工作的),并了解调用外围设备工作的几个层次。8.2键盘由按键动作产生相应按键编码的一种可能方法是,将按键产生的电信号输入到编码电路,编码器将产生对应的按键编码。早期曾将这种键盘称为编码键盘。当键的数量较多时,编码逻辑的成本较高。直接编码产生键码的方法也不够灵活,一旦编码逻辑电路固定,如果需要重新定义键名与键码,就不够方便。现在,仅当按键数量较少,或者在形成8421码这类很有规律的简单编码时,才采用直接编码逻辑的方法。8.2键盘在通用键盘上,以及键的数量较多时,普遍采用扫描方式产生键码。将键连接成矩阵,每个键位于某行、某列交点上,先通过扫描方法找到按下的键的行列位置,称为位置码或扫描码;再查表(ROM构成或软件实现)将位置码转换为按键编码。键盘逻辑固定后,某一位置上的键具有固定的位置码;更换转换表的内容,即可重新定义键名与键码。于是便有人将这种键盘称为非编码键盘。然而这种提法却很容易误解为这种键盘不存在对应的键码,为此通常称这种键盘为扫描式键盘。8.2键盘8.2.1键8.2.2硬件扫描键盘8.2.3软件扫描键盘8.2.1键键是一种开关,按键或抬键使开关产生不同的信号。键开关种类很多,产生信号的原理也有较大的差别。从有无触点的角度,可分为接触式、无触点式两大类。从按键方式的角度,又常分为机械动作式、触摸式两类。8.2.1键1.接触式接触式键有两个触点,按键时闭合,抬键后分离。其具体结构又分为机械触点式键和干簧键两种常见形式。(1)机械触点式键。(2)干簧键。2.无触点式(机械动作型)为了提高键的寿命,可应用非接触(无触点)式键。常规按键动作方式的无触点式键有电容式键和霍尔键两种。(1)电容式键。(2)霍尔键。8.2.1键3.触摸式触摸式键指按键时没有行程或只有短行程,因而专门列为一类。常见的触摸式键有薄膜式、感应式和触摸屏三类。(1)薄膜式。(2)感应式。(3)触摸屏。8.2.2硬件扫描键盘在键盘上,各键的安装位置可根据操作的需要来定;但在电气连接上,可将诸键连接成矩阵,即分成n行×m列,每个键连接于某个行线与某个列线之间。通过硬件扫描或软件扫描,识别所按下的键的行列位置,得到位置码或扫描码。如果由硬件逻辑实现扫描,这种键盘称为硬件扫描键盘,或称为电子扫描式编码键盘。所用的硬件逻辑可称为广义上的编码器。图8-1所示为一个硬件扫描式键盘的逻辑组成,包括键盘矩阵、振荡器、计数器、行译码器、列译码器、符合比较器、ROM、接口、去抖电路等。图8-1硬件扫描式键盘原理8.2.3软件扫描键盘可以通过执行键盘扫描程序对键盘矩阵进行扫描,以识别按键的行列位置,这种键盘称为软件扫描键盘。如果对主机工作速度要求不高,如教学实验用的单板机,可由CPU自己执行键盘扫描程序。按键时,键盘向主机提出中断请求,CPU响应后转去执行键盘中断处理程序,其中包含键盘扫描程序、键码转换程序及预处理程序。如果对主机工作速度要求较高,希望尽量少占用CPU处理时间,则可在键盘中设置一个单片机,由它执行键盘扫描程序、预处理程序,再向CPU申请中断送出扫描码。现代计算机的通用键盘,大多采用第二种方案。8.2.3软件扫描键盘通常有两种扫描方法,即逐行扫描法和行列扫描法。下面分别介绍。1.逐行扫描法图8-2是一种在单板机中广泛采用的键盘矩阵示意。16个字键连接成4行×4列,4条列线分别通过上拉电阻接+5V电源,若没有行线的影响,则列线输出高电平。在执行键盘扫描程序时,CPU数据输出送往行线,并将列线输出取回,判别按键位置。当有键按下时,键盘产生中断请求信号,CPU响应后执行键盘扫描子程序。在单板机监控程序中,一般含有扫描子程序,其流程如图8-3所示。图8-2简易扫描键盘矩阵8.2.3软件扫描键盘图8-3逐行扫描法程序流程8.2.3软件扫描键盘CPU通过数据线输出代码,送往行线。从第0行开始逐行为0,其余各行为1。将列线输出取回至CPU,判别其中是否有一位为0,是哪一位为0。假定按下的键将第1行第1列接通,则当第1行行线为0时,第1列列线也为0,其余各列线为1。由此可知按键位置,得到位置码(扫描码),再查表转换为对应的ASCII码。在程序中可插入延时程序,以避开闭合初期的抖动阶段。该程序也可由专门的单片机负责执行。8.2.3软件扫描键盘2.行列扫描法下面以常用的IPM-PC键盘为例,说明一种通用键盘结构、键盘接口及行列扫描法原理。IBM-PC的通用键盘采用电容式无触点式键,共83~110键,连接为16行×8列。采用单片机Intel8048进行控制,以行列扫描法获得按键扫描码。键盘通过电缆与主机板上的键盘接口相连。以串行方式将扫描码送往接口,由移位寄存器组装,然后向CPU请求中断。CPU以并行方式从接口中读取按键扫描码,如图8-4所示。图中,虚线左边是键盘逻辑,右边是位于主机板上的接口逻辑。图8-4IBM-PC键盘与接口8.2.3软件扫描键盘单片机8048的数据输出分送行译码器与列译码器,可按行列扫描法对键盘矩阵扫描。矩阵输出经检测器,可判别一组行线或一组列线中是否有1,检测器输出送8048的检测端T1。行列扫描法的工作原理是:先逐列为1地步进扫描,由8048T1端测试,是哪一列为1RAM结构图。时行线输出为1,从而判明按键的列号;再逐行为1地步进扫描,判明按键的行号。IBM-PC键盘的操作过程大致如下。(1)初始化。(2)允许键盘工作。(3)扫描键盘。字键位置扫描码字键位置扫描码字键位置扫描码字键位置扫描码字键位置扫描码字键位置扫描码140E281C422A56387046101150F291D432B573971472021610301E442C583A72483031711311F452D593B734940418123220462E603C744A50519133321472F613D754B606201434224830623E764C707211535234931633F774D8082216362450326440784E9092317372551336541794F100A24183826523466428050110B25193927533567438151120C261A4028543668448252130D271B41295537694583538.2.3软件扫描键盘(4)8048处理重键。(5)传送扫描码。(6)中断处理。缓冲区的容量足以存放一个快速操作员每秒钟所按的键符。当系统或用户需要键盘输入时,可直接在主程序中以软中断指令(即INT16H)的形式调用BIOS的键盘I/O程序,从缓冲区中取走所需的字符。8.3显示设备显示器是计算机系统常用的输出设备。软件设计与其执行效果往往以字符或图形的方式在屏幕上显示出来,提供人们修改而不留下痕迹;人们也很容易根据显示的内容,通过鼠标或键盘操作,随时控制和干预程序的执行。因此,显示设备是较为理想的人-机通信工具,并且具有更强的编辑功能;其工作速度快,无机械噪声,灵活轻便。显示器屏幕上的字符、图形不能永久保留;一旦关机,屏幕上的信息就消失了。8.3显示设备8.3.1显示器概述8.3.2显示方式与规格8.3.3光栅扫描成像原理8.3.4屏幕显示与显示缓存间的对应关系8.3.5屏幕显示的实现8.3.1显示器概述对一般用户来说,要求显示器能在屏幕上指定位置显示字符、数字和图形。对许多专业用户来说,便有更深层次的要求。显示设备子系统的硬件组成包括显示器件(或称显示器);控制器