购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

2.4 I/O接口、I/O设备和通信设备

曾经在科幻作品中有大胆的设想:玻璃瓶中的大脑,如果科技发达到能给玻璃瓶中的大脑施加视觉、听觉、触觉等信号,这个大脑能意识到自己是在玻璃瓶中,而不是在现实中吗?

借助于输入/输出设备,我们才能“操纵计算机”和“知道它在工作”。

2.4.1 输入/输出设备一览

计算机的输入/输出设备品种繁多,主要有以下几种:

1.纸带机、卡片机

这都是“古代”大型计算机的输入设备,机器指令以打孔等方式存在于纸带、卡片上,由纸带机和卡片机输入计算机,以后人们只能从博物馆见到这些设备。

2.键盘、鼠标

嵌入式系统中键盘往往简化成少数的几个键,和鼠标在本质上没有变化,键盘负责输入字符,鼠标负责指示位置进行选择或点取等操作。手写笔是鼠标的扩展,需要识别软件的支持。

3.显示器

嵌入式系统中的显示器往往简化为小屏幕CD或数码管,显示器向着越来越大、越来越清晰的方面进步,现在CRT显示器仍占主流,但统治地位已经受到了液晶显示器的挑战。触摸屏实际上是显示器和鼠标的结合。

4.外存

外存是主存的辅助和延伸,有软盘、硬盘、光盘存储器、磁带机、闪存等。

5.打印机

将人们需要的结果在纸面上输出。打印机有针打、喷墨、激光打印机。绘图仪是一种特殊的打印机,专门用于大幅的图形精确输出。

6.图形图像摄影输入设备

这些是新兴的输入设备,包括扫描仪、数码相机、数字摄像机等。这些设备能把图像摄影等信息输入计算机,极大地丰富了个人计算机在普通家庭的作用。图形图像已经形成了TWAINS标准接口,这样软件通过这个标准接口,能同各种不同的图像输入设备进行交互。数字摄像机是通过USB、1394或者专用的视频捕捉设备和个人计算机交互。

2.4.2 输入/输出控制器

由于外设的复杂多样性(控制方式,数据传输速率,数据格式也各不相同),并且不断有新的类型的外设出现,很难使用中央处理器来和它们直接打交道。同时这些外设的数据传送速度往往低于系统总线的速度,不适合把它们直接挂在系统总线上。

输入/输出控制器协调和控制数据的输入输出,具体功能包括缓冲锁存数据、地址译码、传递命令、码制转换、电平转换等,如图2-5所示。

(1)数据寄存器:CPU或外设数据的缓冲。

(2)状态寄存器:向中央处理器指示控制器和外设的状态。

图2-5 输入/输出控制器组成

(3)控制寄存器:由中央处理器写入该输入/输出控制器的识别指令,指示输入/输出控制器去和外设交互,将数据寄存器的内容写入外设,或者将外设的数据写入数据寄存器,并将此过程的状态写入状态寄存器。

控制电路是输入/输出控制的核心,负责输入/输出控制器的行为。

2.4.3 外设的识别

计算机程序要访问外设,从输入/输出控制器组成图中可以看出,中央处理器需要访问输入/输出控制器的各种寄存器。这个识别是通过地址总线和接口电路的地址译码器来实现的,可以有不同的外设编址方式。

1.独立编址方式

在这种方式下,输入/输出地址和主存地址是分开的,从电路上说,有分离的输入/输出读写控制线;从指令上说,有专门的输入/输出控制指令。这些指令常常以汇编指令的方式提供,往往和具体的中央处理器密切相关,这对程序的可移植性造成了影响,如表2-3所示。

表2-3 个人计算机部分输入/输出地址表

2.统一编址方式

和独立编址不同,统一编址方式中输入/输出地址是主存地址中的一部分,访问输入/输出寄存器和访问主存的方法是一样的,不需要单独的指令。这种方式能有效地降低软件编程的复杂度,在许多计算机,特别是嵌入式系统中得到了广泛的认可和应用,也称为“地址映像”。

在统一编址方式编程过程中,需要注意的是程序优化带来的负面影响,对外设的操作往往需要一个过程,可能会对同一个地址多次写入不同的值。在编译器看来,这种多次对一个变量的赋值是属于优化范围的,编译器通常会忽略掉前面的赋值语句,只保留它认为“有效的”赋值语句。这时候需要选择合适的编译选项告诉编译器停止这样的优化。

统一编址方式不但会将内存地址和I/O地址统一编址,也会将RAM、ROM、FLASH等统一编址。

2.4.4 外设的访问

1.程序查询方式

这是最简单的方式,也是简单系统中(外设种类和数目有限,数据传输速率较低的系统)常用的方式。这种方式是中央处理器定时查询外设的状态,如果发现某个外设就绪,就开始对该外设进行输入/输出操作和处理,如图2-6所示。

当存在多个外设时,中央处理器有串行和并行两种查询方式,串行查询是每次查询一个外设;并行则是将多个外设的状态位集中成一个专用端口,这样中央处理器一次查询即可得到多个外设的状态。

程序查询方式的缺点是:当输入/输出控制器和外设交换数据的过程中,中央处理器必须等待。这种等待对于许多系统而言是无法容忍的。

图2-6 程序查询和中断方式

2.中断方式

使用中断方式,可以克服查询方式的低效问题。

当中央处理器执行到I/O请求指令,向输入/输出控制器发出相应指令后,中央处理器并不等待,而是继续执行其他操作。此时输入/输出控制器负责和外设进行通信,当数据从其数据寄存器写到外设后或者外设的数据写入其数据寄存器后,输入/输出控制器向中央处理器发出中断请求,中央处理器响应中断,并进行相应的处理。由于输入/输出控制器的数据寄存器大小有限,一次输入/输出请求往往要经过多次的中断过程才能完成。由于中央处理器无须等待输入/输出控制器和外设的数据交换,提高了整个系统的效率。中断方式已经得到了普遍的应用。

1)中断的一些基本概念

中断并不只用于输入/输出系统中,中断系统是计算机的基本结构,中断系统的出现,是现代计算机功能强大的标志。顾名思义,中断就是打断中央处理器正在执行的工作,让中央处理器去处理其他更加重要或者更为紧迫的任务。发起中断的事务称为中断源,中断源包括I/O设备、实时时钟、故障源、软件中断等。中断系统使中央处理器摆脱了只能按照指令顺序执行的束缚,让计算在并行性、分时操作、故障处理等方面更加强大。

按照中断源来区分中断,可以分为内部中断和外部中断。内部中断是中央处理器内部产生的中断,在个人计算机中,内部中断又分为溢出中断、除法错中断、断点中断、软中断及单步中断,其中可以使用软件中断实现DOS功能调用和基本BIOS调用,也可以使用单步中断实现程序的调试,与之相对应的是外部中断,中断源来自于中央处理器之外。而外部中断按照中央处理器的响应可以分为可屏蔽中断和非屏蔽中断。非屏蔽中断是中央处理器一定要响应的中断,通常是计算机发生了紧急情况,如掉电等。可屏蔽中断大多数是外设和时钟中断,在计算机处理一些不应该打断的任务时,可以通过屏蔽位来禁止响应这些中断。

2)中断处理过程

中央处理器收到中断请求后,如果是当前允许的中断,那么要停止正在执行的代码,并把内部寄存器入栈,这个过程不能再次被打断,所以在保护现场的开始要先关中断,保护完后再开中断。这个过程应该尽量短,以避免错过了其他中断。这个过程消耗的时间称为中断响应时间。然后开始执行中断处理程序,中断处理程序常常比较简单,通常是设置一些标志位,做一些简单的数据处理,而让其他更耗时的处理在非中断程序中完成。中断处理程序完成后,需要恢复刚才保存的现场,把入栈的寄存器出栈,继续执行被中断的程序。整个过程消耗的时间称为中断处理时间,当然对于这个时间,不同的中断,不同的应用差别比较大,而且也不是一味求短,实际编写时要考虑中断处理的重要程度。现在大多数中央处理器都支持多级中断,即在进行中断处理程序时,还可以响应其他中断,形成中断嵌套。

3)中断的判断

当有多个中断源时,常用的处理方式有以下几种:

(1)每个中断源使用自己的中断请求信号线和中央处理器相连,这种方式适用于中断源不是很多的情况,而中央处理器的外部中断引脚是有限的。

(2)统一的中断请求,由中央处理器使用专门程序依次判断是哪个中断源的请求,通过查询的次序,可以实现中断的优先级控制。

(3)硬件查询法:有一条中断确认信号链和输入/输出设备相连,某个外设发出中断请求后,中断确认信号开始在各外设间传递,发出中断请求的外设响应这个信号,如图2-7所示。

(4)总线仲裁:在这种方式中,外设需先得到总线控制权,发出中断请求,最后将设备号通过数据总线发给中央处理器。由总线仲裁机制决定可以发信号的外设。

图2-7 中断方式的判断

(5)中断向量表:中断向量表是一张不同中断处理程序入口地址的表格,用这种机制,每个中断源有不同的“中断号”,即中断向量中央处理器收到中断信号,并根据中断号查中断向量表,以得到该中断处理程序的入口地址。

3.DMA方式

DMA(Direct Memory Access,直接存储器存取)。这种方式可以使数据从输入/输出模块到主存的传输过程中,无需中央处理器的中转,这个工作转移给DMA控制器(DMAC)来完成,这种方式可以达到高速的数据传输。

1)DMA控制器

DMAC既能访问系统总线,又能独立访问主存(这两个特点使DMAC完成主存和输入/输出设备之间的数据交换),如图2-8所示。

DMA中断控制示意图,如图2-9所示。

图2-9 DMA中断控制

图2-8 DMAC示意图

地址寄存器是内存地址,每传递一个数据,将这个寄存器加1,长度寄存器值减1,当长度寄存器为0时,发给中断机构完成信号,通知中央处理器进行后续处理。

当中央处理器执行到输入/输出请求时,向DMA控制器发出相应指令,DMA控制器首先判断外设是否可用。如果可用,填充地址寄存器、长度寄存器等,向中央处理器发出总线请求信号,申请总线的处理权。中央处理器收到总线请求信号,让出总线控制权,然后DMA控制器将数据在外设和内存指定区域之间进行传送。长度寄存器保存的值随着数据的传送不断减少,当减少到0时,通过中断机构向中央处理器发出中断请求,中央处理器响应中断,对内存中的数据进行后续的处理。

2)DMA传输过程的总线占有方式

在DMA传输过程中,中央处理器停止访问主存,只进行一些与总线无关的内部操作。这种方法常用于高速的输入/输出设备。

优点是减少系统总线控制权的交换次数,实现简单;缺点在于这样的结果往往使中央处理器在DMA过程中无所事事。

时间轮转片法:这种方法按照一定时间间隔,将总控制权分别轮换着交给中央处理器和DMA。这样中央处理器不会停止工作,但往往外设的速度低,可能使DMAC的某些时间空转。从效率而言,仍然不高。

借用周期法:这是时间轮转片的改进,即当有DMA操作时,DMAC控制总线访问内存,其他时间总线的控制权交给中央处理器,适合于外设速度远低于总线速度的高速主机。这种方式由于要判断DMAC是否需要使用总线,所以实现操作起来要比前面两者更复杂。

3)DMA方式和中断方式的区别

DMA方式使用到了中断,但是DMA和中断的输入/输出方式是有很大区别的。最根本的区别在于使用中断方式时,主存和输入/输出控制器之间的数据传送仍然需要中央处理器来操作,需要使用中央处理器的寄存器等资源,如图2-10所示。

图2-10 DMA与中断方式的区别

由于输入/输出控制器的数据寄存器大小有限,所以一个数据传送过程往往需要多次,这样中断发生就很频繁。由于中断调用过程使用了中央处理器的资源,所以中央处理器必须保护现场,在相当程度上增加了处理时间。而在DMA传送过程中,虽然DMA控制器需要暂停中央处理器的执行,来达到控制总线的目的,但是这种暂停是机器周期的中断,而且这个暂停中央处理器不需要保护现场,没有切换任务的操作。当数据传送完成后,才有一个中断,通知中央处理器进行数据传送的后续工作。DMA方式提供了比中断方式更好的并行性,如表2-4所示。

表2-4 DMA方式和中断方式的比较

4.信道方法

比DMA方式更进一步的是信道方式,和DMA相比,通常控制器是一个有自身指令结构的处理器,有自己简单的指令系统,通过执行程序有更强的处理能力,可以同时控制多种外设。

2.4.5 常见输入/输出接口

1.磁盘接口

(1)IDE(Integrated drive electronics)接口,这个接口是个人计算机必备的,由于普通IDE容量不超过528MB,现在用的是增强型EIDE,数据传输率有UDMA-33、UDMA-66、UDMA-133等,32位数据带宽可连接4个IDE设备。

(2)SCSI(Small Computer System Interface)接口,以名称而言,是小型计算机系统接口,显然它的设计并非只为外存储器而设计,放在这里介绍是因为它最常用于小型机,作为服务器和工作站上的外存储器接口。事实上,也有一些其他外设(如某些扫描仪等,也使用SCSI接口)。SCSI有多个版本,带宽和数据传输率也不断上升,其中Fast SCSI-II带宽为16位,传输速率为20Mbps,而Fast/Wide SCSI II的性能指标是它的一倍。

SCSI更可以称为一种总线,可以以雏菊链形式接入多个外接设备,这些外设被分配唯一的标号,既可以相互交换数据,也可以和主存交换数据。

2.串行接口和并行接口

串行接口是一次发送1位信息,而并行接口则每次发送多位信息。由于并行接口需使用多条数据线,适用于短距离的高速连接。在长距离的数据传输上并行接口并没有特别的优点,昂贵的多条线路成本,而且各个数据线之间的数据到达时间随着距离的增加,而有微小的不同,不但发送接收双方需要进行时钟的同步,各条线路之间信号也需要同步。这使得所有的远距离传输都是串行传输。

串行接口由于一次只能发送一位信息,速度较慢,同时发送接收双方还必须协议好位的传送次序等,实现比较复杂。并行接口和串行接口示意图,如图2-11所示。

图2-11 并行接口和串行接口示意图

3.PC Card接口

原来的PCMCIA(Personal Computer Memory Card International Association)是一种笔记本上常见的接口,特点是体积小、扩展灵活。现常见于笔记本电脑外接存储器、传真/调制解调器卡、网卡等扩展的接口。

4.USB接口

个人计算机对外标准接口曾经只有串口和并口,这两种接口的速度及性能都难以适应新设备的发展,于是有了USB和1394两种接口。

USB系统永远是以个人计算机为主站,而连接到主站的都称为设备,这是和串口不同的地方。USB接口的特点是:

(1)通过HUB可以扩展连接127个外设。

(2)速度快、USB 1.0为1.2Mbps;2.0可以达到480Mbps。

(3)设备安装配制容易,不必开机箱,也不必考虑中断等因素。

(4)支持热拔插。

由于以上特点,USB已经成为个人计算机标准接口之一。

5.1394接口

1394接口广泛用于娱乐性外设,如数字摄像机等,是一种串行接口,速度可达400Mbps,新的标准是800Mbps1394使用雏菊链,一个端口可支持63个外设接口,而且使用桥互联的方式,以树型结构配制,可支持高达6022个设备。

在许多方面,如支持热拔插、外设容易安装配置等,USB和1394有相似的地方,使这两种接口有一定的竞争关系。由于USB的实现简单,在PC上发展势头很猛,而1394接口制定本就是以“高速”为核心的,能出色实现人们对影音方面大容量、高速度的需求,这两种接口在未来的一段时间内仍然会在各种应用领域相互竞争。

6.通用接口总线GPIB

GPIB(General Purpose Interface Bus)是专为仪器控制应用而设计的,是计算机和仪器间的标准通信协议。GPIB是一个数字的8位平行通信界面,传输速率达8Mbps。总线提供的一个控制器在20m的排线长度内最多可连接14个仪器。每台GPIB仪器有单独的地址,由计算机控制操作。系统中的仪器可以增加、减少或更换,只需对计算机的控制软件作相应改动。这种概念已被应用于仪器的内部设计。

7.红外通信

通过红外线传输数据。在计算机技术发展早期,数据都是通过线缆传输的,线缆传输连线麻烦,需要特制接口,颇为不便。红外这种无线数据传输技术能使计算机更方便的通信。

在红外通信技术发展早期,存在好几个红外通信标准,不同标准之间的红外设备不能进行红外通信。为了使各种红外设备能够互联互通,1993年,由二十多个大厂商发起成立了红外数据协会(IrDA),统一了红外通信的标准,这就是目前被广泛使用的IrDA红外数据通信协议及规范。其传输带宽理论值最高4Mbps,且由于红外传输存在距离短、传输方向性强、易受到外界干扰等缺点,实际应用中的有效传输速度非常低,是一种廉价、近距离、无连线、低功耗的通信方式。由于红外线不能通过障碍物,所以具有保密性较强的特点。目前已经在无线网络接入和近距离遥控家电方面得到应用。

8.蓝牙(Bluetooth)

蓝牙的主要用途与红外有些类似,是与拥有蓝牙的手机、PDA、笔记本电脑之间传输数据。与红外通信相比,蓝牙信号的优势在于没有方向性,而且中间也可以间隔物体,在手机上使用蓝牙传输速度为1Mbps。

2.4.8 总线

总线是计算机中各部件相连的通信线,通过总线,各部件之间可以相互通信,而不是每两个部件之间相互直连,减少了计算机体系结构的设计成本,有利于新模块的扩展,如图2-12所示。

图2-12 总线图

从中央处理器到外设,总线可以分为4类。

1)中央处理器内部总线

这是内部各部件之间的信息传送线,寄存器与寄存器之间、各寄存器与运算器之间的信息传送线。

2)部件内总线

一块插卡的内部总线,又称片级总线,像显卡、多功能卡等插卡都使用了部件内总线,实现本卡上的各种芯片的互联。

3)系统总线

系统总线是计算机系统内各功能部件(中央处理器、存储器、外设等)之间相互连接的总线。从位置上来说,一般位于计算机系统的底板上。从功能上说,可以分为以下几种。

·地址总线:常常由三态门控制的单向数据信道,由中央处理器“点名”取数的位置。

·控制总线:用来传递控制信号。如读/写信号、中断请求、复位等信号。

·数据总线:一般是由三态门控制的双向数据信道,中央处理器通过数据总线和主存、外设交换数据。

4)外总线

它是计算机系统之间,或者是计算机和其他设备通信的总线。

下面我们对常见的个人计算机系统总线进行简单的比较。

最早的是PC/XT 电脑采用的系统总线,它基于8位的8088 处理器,被称为PC总线或者PC/XT总线。1984年,出现了基于16位Intel 80286处理器的PC/AT 电脑,系统总线也相应地扩展为16位,并被称呼为PC/AT 总线。以上两种总线规范为基础的ISA(工业标准架构,Industry Standard Architecture)总线,方便了开发与个人计算机兼容的外围设备。

ISA 是8/16位的系统总线,最大传输速率为8Mbps,允许多个CPU共享系统资源。由于兼容性好,它在20世纪80年代得到了广泛采用,其缺点是传输速率过低、CPU占用率高、占用硬件中断资源等。

当出现了32位外部总线的386DX处理器后,ISA的宽度已经成为严重的瓶颈,并影响到处理器性能的发挥。新的EISA(Extended ISA,扩展ISA)总线是为适应32位中央处理器而制定的。EISA总线的工作频率仍旧是8MHz,并且与8/16位的ISA总线完全兼容,带宽提高了一倍,达到了32Mbps。

为了解决ISA和EISA速度慢的问题,出现了32位的PCI(周边组件互联)总线。最初PCI总线工作在33MHz频率下,传输带宽达到了133Mbps(33MHz×32位/8),后来又提出了64位的PCI总线,并把PCI总线的频率提高到66MHz~100MHz,甚至更高。PCI不像ISA总线那样把地址寻址和数据读写控制信号都交给微处理器来处理,而是独立于处理器,采用了独特的中间缓冲器设计,可将显示卡、声卡、网卡、硬盘控制器等高速的外围设备直接挂在CPU总线上,打破了瓶颈,使得CPU的性能得到充分的发挥。PCI总线还具有自动识别外设,与处理器和存储器子系统完全并行操作的能力,具有隐含的中央仲裁系统,采用多路复用方式(地址线和数据线)减少了引脚数,支持64位寻址,完全的多总线主控能力,提供地址和数据的奇偶校验等特点。

PCI的缺点是存在中断共享冲突,只能支持有限数量设备等问题,最多可支持10台外设。

由于3D显示卡的迅猛发展,让PCI总线吃紧,就出现了作为PCI总线的补充——AGP总线。AGP(Accelerated Graphics Port,加速图形接口)接口,为显示卡专用,工作频率为66MHz,是PCI的两倍,带宽相应地增加到266Mbps。后来的AGP 2X、AGP4X,以及AGP8X,传输速率达到了2.1Gbps。

三大总线的比较如表2-5所示。

表2-5 三大总线对比 4Q97m9aGsexk3D5NV8pyScB1kjpJGAXSe2OFzucMdGpEywyNrBrRWcj1QovZEnQn

点击中间区域
呼出菜单
上一章
目录
下一章
×