《计算机和外设》由会员分享,可在线阅读,更多相关《计算机和外设(4页珍藏版)》请在金锄头文库上搜索。
1、计算机和外设之间的数据传输本章学习要点输入输出接口技术的概念和功能 I/O端口的编址方式 输入输出控制方式 可编程控制器8237A的应用61本章知识重点6. 1. 1输入输出接口技术的基本概念1 .输入输出接口的概念输入输出接口简称I / O接口,它是指CPU和存储器、外部设备或者两种外部设备之间, 或者两种机器之间通过系统总线进行连接的逻辑部件(或称电路),它是CPU与外界进行信息 交换的中转站。2. 输入输出接口的功能(1) 数据缓冲功能:CPU和外设速度不匹配的问题可以通过在接口电路中设置数据缓冲 来解决,数据缓冲经常使用锁存器和缓冲器,并配以适当的联络信号来实现这种功能。(2) 信号转
2、换功能:外部设备大都是复杂的机电设备,其信号电平大多是TTL电平或CMOS 电平,需要用接口电路来完成信号的电平转换。(3) 对外设的控制和检测功能:接口电路接受CPU送来的命令或控制信号、定时信号, 实施对外设的控制与管理,外设的工作状态和应答信号也通过接口及时返回给CPU,以握手 联络信号来保证主机和外部输入输出操作的同步。(4) 设备选择功能:系统中一般带有多种外设,同一种外设也可能由多台,而CPU在同 一时间里只能与一台外设交换信息,这就要借助于接口的地址译码以选定外设。只有被选定 的外部设备才能与CPU进行数据交换。(5) 中断或DMA管理功能:为了满足实时|生和主机与外设并行工作的
3、要求需要采用中断 传送的方式,为了提高传送的速率有时又采用DMA传送方式,这就要求接口有产生中断请求 和DMA请求的能力以及管理中断和DMA的能力。(6) 可编程功能:现在的接口芯片大多数都是可编程的,这样在不改变硬件的情况下, 只需修改程序就可以改变接口的工作方式,大大增加了接口的灵活性和可扩充性,使接口向 智能化方向发展。3. CPU与I/O接口之间传递的信息类型,CPU与I/O设备之间要传送的信息,通常包括数据信息、状态信息和控制信息。(1) 数据信息:是CPU与外设交换的基本信息,有数字量、模拟量和开关量等。(2) 状态信息:反映外设当前所处的工作状态,以便CPU对外设进行监视。(3)
4、 控制信息:是CPU通过接口发给外设的,用来控制外设的工作。在微型计算机中,状态信息、控制信息实际上也是一种数据信息,即状态信息为一种输 入数据,而控制信息则为一种输出数据,均通过数据总线传送CPU送往外设的数据或者外 设送往CPU的数据先进入接口的数据缓冲器;从外设送往CPU的状态信息放在接口的状态寄 存器中;而CPU送往外设的控制信息则送到接口的控制寄存器中。4. I/0端口的编址方式(1) 统一编址这种编址方式是把每一个端口视为一个存储器单元,并赋予相应的存储器地址,CPU访 问端口就如同访问存储器,只是地址不同而已,所有访问内存的指令都适用于I/O端口。 由于端口地址被映像到存储空间作
5、为存储空间的一部分,因此这种编址方法又称为“存储器 映像编址”。主要优点:对I/0接口的操作与对存储器的操作完全相同,任何存储器操作指令都可 用来操作I/O接口,而不必使用专用的I/0指令,这可大大增强系统的UO功能,使访问 外设端口的操作方便、灵活;可以使外设数目或I/O寄存器数目几乎不受限制,从而大大 增加系统的吞吐率;可以使微型计算机系统的读/写控制逻辑较简单。主要缺点:占用了存储器的一部分地址空间,使可用的内存空间减少;访问内存的指令 一般较长,执行速度较慢;为了识别一个I/O端口,必须对全部地址线译码,这样不仅增 加了地址译码电路的复杂性,而且使执行外设寻址的操作时间相对增长。(2
6、)独立编址这种编址方式是将I / O端口单独编址,不占用存储空间,即两者的地址空间是互相独 立的,不会影响到存储器的地址空间。采用这种编址方式时,CPU访问FO端口必须采用专 用的I/O指令,所以也叫专用I/O指令方式。这种编址方式的优点是节省内存空间。由于系统需要的I / O端口寄存器一般比存储器 单元要少得多,故I/O地址线较少,因此I / O端口地址译码较简单,寻址速度较快。缺点 是专用I/O指令类型少,远不如存储器访问指令丰富,使程序设计灵活性较差,且使用I / O指令一般只能在累加器和I / O端口交换信息,处理能力不如存储器映像方式强。6-1-2 CPU与外设之间的数据传送方式1
7、.程序控制方式程序控制方式是指CPU与外设之间的数据传送是在程序控制下完成,它又可分成无条件传 送和条件传送两种方式。(1) 无条件传送无条件传送方式也称为同步传送方式,主要用于对简单外设进行操作,或者外设的定时 是固定的或已知的场合。(2) 条件传送方式条件传送方式也称为查询传送方式。传送数据前,CPU要先执行一条输入指令,从外设 的状态口读取它的当前状态。如果外设未准备好数据或处于忙碌状态,则程序要反复执行读 状态指令,不断检测外设状态;如果该外设的输入数据已准备好,CPU便可从外设读入数据。优点:简单,可以编制程序控制数据传送。缺点:无条件传送方式的应用受到很大限制,条件传送方式在设备未
8、准备就绪时,必须 反复查询,进入循环等待状态,导致CPU的工作效率严重降低。2. 中断控制方式采用中断控制方式后,CPU平时执行主程序,只有当输入设备将数据准备好了,或者输出 端口的数据缓冲器已空时,才向CPU发中断请求。CPU响应中断后,暂停执行当前的程序, 转去执行管理外设的中断服务程序。在中断服务程序中,用输入或输出指令在CPU和外设之 间进行一次数据交换,等输入或输出操作完成之后,CPU又回去执行原来的程序。优点:CPU的工作效率可以大大提高。缺点:每进行一次数据传送,CPU都要执行一次中断服务程序。这时,CPU要保护和恢 复断点,通常还要执行一系列保护和恢复寄存器的指令,即保护现场,
9、以便完成中断处理后 能正确返回主程序。显然,这些操作与数据传送没有直接关系,但会花费掉CPU的不少时间。 所以,在这段时间内执行部件和总线接口部件就不能并行工作,这也会造成数据传输效率的 降低。3. DMA控制方式DMA控制方式是利用系统的数据总线、地址总线和控制总线来传送数据。当外设需要利用 DMA方式进行数据传送时,接口电路可以向CPU提出请求,要求CPU让出对总线的控制权, 用DMA控制器来取代CPU临时接管总线,控制外设和存储器之间直接进行高速的数据传送, 而不要CPU进行干预。这种控制方式能给出访问内存所需要的地址信息,并能自动修改地址指针,也能设定和 修改传送的字节数,还能向存储器
10、和外设发出相应的读/写控制信号。在DMA传送结束后, 它能释放总线,把对总线的控制权又交给CPU。可见,用DMA方式传输数据时,不需要进行 保护和恢复断点及现场之类的额外操作,一旦进入DMA操作,就可直接在硬件的控制下快速 完成一批数据的交换任务,数据传送的速度基本上取决于外设和存储器的存取速度。6-1-3 8237A DMA 控制器1. 8237A的工作状态8237A DMA控制器有两种不同的工作状态。在DMA控制器未取得总线控制权时必须由CPU对DMA控制器进行编程,这时CPU处于主 控状态,而DMA控制器就和一般的VO芯片一样,是系统总线的从设备,DMA控制器的这种 工作方式称为从态方式
11、。当DMA控制器取得总线控制权后,系统就完全在它的控制之下,使VO设备和存储器之间 或存储器与存储器之间进行直接的数据传送,DMA控制器的这种工作方式称为主态方式。2. 8237A的内部结构8237A的内部结构主要由5个部分组成:(1) 时序与控制逻辑:从态时,该部分电路接受系统送来的时钟、复位、片选和读/写控制 等信号,完成相应的控制操作;主态时则向系统发出相应的控制信号。(2) 优先级编码电路:对同时提出DMA请求的多个通道进行排队判优,决定哪一个通道的优 先级最高。(3) 数据和地址缓冲器组:是三态缓冲器,可以接管或释放总线。(4) 命令控制逻辑:接收或发出各种控制命令。(5) 内部寄存
12、器:每个通道都有基地址寄存器、基字计数器、当前地址寄存器、当前字节计 数器和工作方式寄存器。还有命令寄存器、屏蔽寄存器、请求寄存器、状态寄存器和暂存寄 存器共用。上述这些寄存器均是可编程寄存器。另外还有字数暂存器和地址暂存器等不可编 程的寄存器。3. 8237A内部寄存器功能及格式(1) 当前地址寄存器:16位,用于存放DMA传送的存储器地址值。每传送一个数据,地址值 自动增1或减1,以指向下一个存储单元。(2) 当前字节计数寄存器:16位,保存当前DMA传送的字节数。每次传送以后,字节计数器 减1。(3) 基地址寄存器:16位,用来存放对应通道当前地址寄存器的初值,是在CPU对DMA控制 器
13、进行编程时,与当前地址寄存器的值一起被写入的。(4) 基字节计数寄存器:16位,用于存放对应通道当前字节计数器的初值。(5) 命令寄存器:8位,编程时,CPU对其写入命令字来控制8237A的操作。(6) 工作方式寄存器:8位,用于指定DMA的操作类型、传送方式、是否自动预置和传送一 字节数据后地址是按增1还是减1修改。8237A进行DMA传送时,有4种传送方式:单字节传送方式:该方式下,每一次DMA操作只传送个字节的数据。传送后字节 计数器减1,地址寄存器加1或减1(由D5位决定),保持请求信号HQR无效,并释放系统总 线。当字节计数器由0减为FFFFH时,产生终止信号TC。数据块传送方式:在
14、每次DREQ有效后,若CPU响应其请求让出总线控制权给8237A, 8237A就会连续传送数据,直到字节汁数器计数由0减为FFFFH产生TC信号或外部送来有 效的/EOP信号时,才将总线控制权交给CPU,结束DMA服务。 请求传送方式:当DREQ有效,若CPU让出总线控制权,8237A进行DMA服务。每 传送一个字节都将测试DREQ,以确定是否继续传送。若DREQ 一直有效,则连续传送数据, 直至字节计数器减为FFFFH或外部送来有效的/EOP信号,或DREQ变为无效时为止。 级联传送方式:该方式用于将多个8237A连在一起,以便扩充系统的DMA通道。(7) 请求寄存器:请求寄存器就是用于由软
15、件发出DREQ信号请求DMA服务的设备。(8) 屏蔽寄存器:当某通道的屏蔽标志位置l时,禁止该通道的DREQ请求,并禁止该通道 DMA操作。分通道屏蔽字和主屏蔽字。(9) 状态寄存器:用来存放状态信息,可供CPU读出。(10) 暂存寄存器:用来暂存从源地址单元读出的数据。(11) 软件命令:8237A设置了 3条软件命令:主清除命令、清除字节指示器命令和清除屏蔽 寄存器命令。主清除命令:该命令能清除命令寄存器、状态寄存器、各通道的请求标志位、暂存寄 存器和字节指示器,并把个通道的屏蔽标志位置1,使8237A进入空闲周期。清除字节指示器命令:该命令用来清除字节指示器。清除屏蔽寄存器命令:该命令清
16、除4个通道的全部屏蔽位,使各通道均能接受DMA 请求。4. 8237A的初始化编程8237A的初始化编程主要有一下个方面:(1) 输出主清除命令,使8237A处于复位状态,以接收新的命令。(2) 写入工作方式寄存器,以确定8237A工作方式和传送类型。(3) 写入命令寄存器,以控制8237A的上作。(4) 根据所选通道,输入相应通道当前地址寄存器和基地址寄存器的初始值。(5) 输入当前字节计数器和基字节寄存器的初始值。(6) 写入屏蔽寄存器。(7) 写入请求寄存器,便可由软件DMA传送。62经典例题1、什么是I/O端口? CPU使用什么指令与外设进行数据交换?答:CPU与I/O设备通过硬件接口或