为了正常的体验网站,请在浏览器设置里面开启Javascript功能!

第五章_数字量输入输出

2017-11-26 43页 doc 223KB 26阅读

用户头像

is_266065

暂无简介

举报
第五章_数字量输入输出第五章_数字量输入输出 4第五章 数字量输入输出 主要内容:本章介绍I/O接口的定义~I/O接口芯片的应用以及CPU系统总线。 第一节 概述 【知识点】 ※1、I/O接口的信息组成, ※2、CPU对I/O的控制方式, ※3、I/O的传递方式。 微型计算机的构成,除了CPU和存储器外,还包括输入设备和输出设备(合称外部设备)。在微机系统中,最常用的外部设备有键盘、显示器、打印机、磁盘机等。CPU对各种外部设备的电路连接及管理驱动程序就是输入(输出)接口技术(简称I/O)。 输入/输出(I/O)接口电路是计算机系...
第五章_数字量输入输出
第五章_数字量输入输出 4第五章 数字量输入输出 主要内容:本章介绍I/O接口的定义~I/O接口芯片的应用以及CPU系统总线。 第一节 概述 【知识点】 ※1、I/O接口的信息组成, ※2、CPU对I/O的控制方式, ※3、I/O的传递方式。 微型计算机的构成,除了CPU和存储器外,还包括输入设备和输出设备(合称外部设备)。在微机系统中,最常用的外部设备有键盘、显示器、打印机、磁盘机等。CPU对各种外部设备的电路连接及管理驱动程序就是输入(输出)接口技术(简称I/O)。 输入/输出(I/O)接口电路是计算机系统的重要组成部分。通过I/O接口可实现计算机与外部设备的通信,与外部设备交换信息,在工业控制系统中,I/O接口电路还可以通过A/D转换器或D/A转换器与各种工业和控制仪表相连,进而来控制工业现场。 通常,微型计算机I/O讨论的内容分为数字量和模拟量两部分。本章我们在了解I/O的基本概念和原理之后,重点介绍几种典型的数字I/O电路,至于模拟量I/O,留待第六章中专门讨论。 一、I/O接口 (一)I/O的信息组成 一切信息在存储器中的存放都是以二进制数的形式,在I/O操作中,由于与外界联系,这些信息按各自的作用可分为: 1、数据信号 数据信号是I/O的主要内容,例如我们从键盘上输到计算机内部的信息,从外部采集到的测量值,及由输出设备如CRT显示的内容,或输出CPU运算的 结果,都属于数据信号。当然这些信息是按一定的编码(例如是二进制格式,还是ASCII码标准),每若干位组合表示一个数字或符号。 2、状态信号 CPU与I/O设备进行数据传送时,往往需要了解I/O设备的状态。例如在打印作业中,打印机是否忙,打印纸是否用尽。只有在各种状态都处于“准备好”的情况下,才能可靠地传送数据信号。对于每一种二值状态,可以用一位二进制数表示。如输入的字节D7=1表示“忙”,D7=0表示“不忙”;D6=1表示“纸尽”,D6=0表示“有纸”等。CPU输入这些信号,在逐位进行测试,就可以清楚地了解设备的当前状态。在输出时,输出设备是否有空(Empty),若输出设备正在输出信息,则以忙(Busy)进行指示。 3、控制信号 控制信号实在数据传送过程中,CPU发给I/O设备的命令。一个输出字节的每一位可以表示一个开关命令,如D0=1时,控制设备“上电”,D1=1时,控制设备“启动”等。 说明:状态信号和控制信号是与数据是不同性质的信息,必须要分别传送。但在大部分微型机中,只有通用的IN和OUT指令,因此,外设的状态必须作为一种数据信息输入,而CPU的控制信号,也必须作为一种数据输出。为了使它们相互之间区分开,它们必须有自己的端口地址。 端口:计算机中所有能被指令直接寻址的I/O口被称为端口。每个端口均有各自的编号即端口地址。一个端口地址只能对应一个端口,决不允许两个端口共用一个地址,否则寻址时将发出混乱。 所以,数据需要一个端口,外设的状态需要一个端口,CPU才能将外设的状态读入,了解外设的运行情况,CPU的控制信号往往也需要一个端口输出,以控制外设的正常工作。所以,一个外设或接口电路往往有几个端口地址,CPU寻址的是端口,而不是笼统的外设。 (二)I/O接口的构成 一个典型的I/O接口,其中一般既有数据端口,又有状态及控制端口。每个I/O端口对应于一个I/O地址。从硬件上看,端口可以理解为寄存器(输入有缓冲器,输出有锁存器)。CPU用I/O指令(IN、OUT)对其直接访问,课本图5.1中,接口电路通常占有三个I/O口地址(亦称端口地址),分别对应数据断 口,状态端口和控制端口。其中数据端口可以是双向的,而状态端口只作输入操作,控制端口只作输出操作。有时候两个端口(控制端口和状态端口)合用一个端口地址,再用“I/O写”(IOW)或“I/O读”(IOR)信号来分别择一访问。 二、I/O的传递方式 CPU内部的数据总线是并行的(课本第16页),但I/O设备有并行,串行之分,因此传送信息方面也就有了两种方式:即并行I/O,串行I/O。 (一)并行I/O 数据的并行I/O将信息以字节(或字)为单位进行传递,其中各位同步地收发,这种方式适用较近距离,它们的特点是传送速度快。这种方式接口数据通道宽,硬件开销大。打印机以并行方式与主机相连。 (二)串行I/O 用软件或硬件的方法将每个字节(或字)拆开,然后位(Bit)为单位来进行传送的方式称为串行I/O。它运用于远距离,它的传送特点:传送速度低,但可利用电话线等设备进行信息传送,且抗干扰能力强。此时,硬件开销小,数据通道窄,调制调解器(Modem)。 三、I/O端口的寻址方式 微型计算机常用两种I/O端口的寻址方式:存储器映像寻址和I/O端口单独寻址。 (一)存储器映像寻址 给每个I/O端口分配一个存储器地址,每个I/O端口被看作一个存储单元,纳入统一的存储器地址空间,于是可用访问存储器的方法来访问I/O端口。 这种方式的主要优点是:勿须专用的I/O指令及接口信号;CPU对存储器数据的处理指令非常丰富,可全部用于I/O操作,使I/O的功能更加灵活。 (二)I/O端口单独寻址 这种情况下,CPU使用专门的I/O指令及I/O控制信号来访问I/O端口。其特点:I/O端口和存储器分别编址,各自都有完整的地址空间,而且由于有专用的I/O指令,在程序清单中对I/O端口的访问和对存储器的访问一目了然。 以上两种I/O端口的寻址方式,优缺点正好互补,微型计算机中都有所使用。Intel公司8086/8088系列CPU使用的是I/O端口的单独寻址。 四、I/O的控制方式 不同的控制方式都是为了使数据传送的双方协调地工作,I/O的控制方式主要有以下四种。 (一)无条件传送方式(同步传送方式) 这种控制方式下,CPU已认定外设做好输入或输出准备,所以不必查询外设的状态,而直接与外设进行数据传送。这种传送方式的特点:硬件电路和程序设计都很简单,常常用于对外设要求不高的系统,如交通灯管理,路灯管理和广告牌显示系统中。 (二)查询传送方式(条件传送方式) 查询方式是指主机(CPU)在数据传送(包括读入和写出)之前,要检查外设是否“准备好”,若没有“准备好”,则继续查询其状态,直至外设准备好了,即确认外部设备还具备传送条件后,才能进行数据传送,同时CPU输出一个控制命令清除“准备好”信号。至此,一次数据传送完成。 “准备好”的含义:对于输入设备而言,即输入数据寄存器已满—准备好新数据供CPU读取;对于输出设备来说,即输出数据寄存器已空—原有数据已被使用,可以接收CPU送来的新数据。 特点: 错误~未找到引用源。?、优点:在这种方式下传送数据比无条件传送数据的可靠性高,接口电路也比较简单,硬件开销小,在CPU不忙,传送速度要求不高的情况下采用。 错误~未找到引用源。?、缺点:由于I/O设备的速度较慢,每准备好一次传送要较长时间,也就是说CPU每传送一个数据,需花费很好时间来等待外设进行数据传送的准备,且CPU外设也不能同时工作,各种外设也不能同时工作,因此,信息传送的效率非常低。流程如下: 三、中断方式 查询方式传送比无条件传送可靠性高,因此使用场合也较多。但在查询方式下,CPU主动地读取状态字和检测状态位。如果状态位表明外设未准备好,则CPU必须等待。这个过程占用了CPU大量的工作时间,而CPU真正用于传输数据的时间却很少,计算机效率很低。 另外,如果一个系统有多台外设,使用查询方式工作时,由于CPU只能轮流对每个外设进行查询,而这些外设速度往往并不相同,这时CPU显然不能很好地满足各个外设随机性地对CPU提出的输入/输出服务要求,因而不具备实时处理能力。可见在实时系统以及多个外设系统中,采用查询方式进行数据传送往往是不适宜的。 为了提高CPU的效率使系统具有实时输入/输出性能, 可采用中断方式。中断传送方式的特点是:外设具有向CPU申请服务的能力。当输入设备已将数据准备好,或输出设备可以接收数据时,便可以向CPU发出中断请求,CPU可中断正在执行的程序而和外设进行一次数据传送。待输入操作或输出操作完成后,CPU再恢复执行原来的程序。当查询工作方式不同的是,这时的CPU不用去不断地查询等待,而可以去处理其它的工作。因此,采用中断方式时,CPU和外设是处于并行工作的状况下,这样就大大提高了CPU的效率。 (四)DMA方式(直接存储器存取方式) 中断控制方式虽然具有很多优点,但对于传送数据量很大的高速外设,如磁盘控制器或高速的数据采集器,它又满足不了速度方面的要求。中断方式和查询方式一样,仍然是通过CPU执行程序来实现数据传送的。每进行一次传送,CPU都必须执行一遍中断服务程序。错误~未找到引用源。?而每执行一次中断服务程序,CPU都要保护断点和标志,这要花费CPU大量的处理时。此外,错误~未找到引用源。?在服务程序中,通常还需要保护寄存器和恢复寄存器的指令,这些指令又需要花费CPU的时间。错误~未找到引用源。?对于8086/8088系列的CPU来说,内部结构中包含了总线接口单元BIU和执行单元EU,它们是并行工作的,即EU在执行当前指令时,BIU要把后面将要执行的指令取到指令队列中缓存起来。但一旦转去执行中断服务程序,指令队列中的指令就要被废除,EU必须等待BIU将中断服务程序中的指令取到指令队列中才能开始执行程序。同样返回断点时,指令队列中的指令也要被废除,EU又要等待BIU重新 装入从断点开始的指令后才开始执行,这个过程也要浪费时间。因此,可以看出,这些附加时间将影响传输速度的提高。另外,在查询方式和中断方式下,每进行一次传输只能完成一个字节或一个字的传送,这对于传送数据量大的高速外设是不适用的,必须要将字节或字的传送方式改为数据的传送方式,这就需要DMA方式。 所谓DMA方式就是直接存储器存取(Direct Memory Access)方式。在DMA方式下,外设通过DMA的一种专门接口电路——DMA控制器(DMAC),向CPU提出接管总线控制数的总线请求,CPU在当前的总线周期结束后,响应DMA请求。把总线的控制权交给DMAC。于是在DMAC的管理下,外设和存储器之间直接进行数据变换,而不需要CPU干预,这样可以大大提高数据的传送速度。 DMA之所以适用于大批量数据块传送是因为:一方面传送数据内存地址的修改计数等均由DMA控制器硬件完成(而不是CPU指令);另一方面,CPU交出总线的控制权其现场不受影响,无需进行保存和恢复。 特点:DMA方式下,数据传送的整个过程既由DMAC启动又由它完成。数据的传送完全由硬件进行,没有软件参与所以传送效率非常高,但这种方式接口电路复杂,硬件开销大。 综上所述,4种控制方式各有特点,应用场合也各有不同,无条件传送方式无论硬件结构和软件均很简单但传送时可靠性差,常用同步传送系统和开放传送系统中。 查询方式传送数据时可靠性高,但计算机使用效率很低,常用于任务比较单一的系统中。 中断方式传送数据的可靠性高,效率也高,常用于外设的工作速度比CPU慢很多且传送数据量不大的系统中。 DMA方式传送数据的可靠性高和效率都很高,但硬件电路复杂,开销较大,常用传送速度高,数据量很大的系统中。 第二节 系统总线及简单接口 【知识点】 ※1、总线的定义~总线的标准, ※2、时钟周期、指令周期、总线周期的概念, 3、存储器读总线周期的特点。 ※ 一、总线的定义及总线标准 总线是微机中用来连接各部件的一组通信线。总线按功能可分为内总线和外总线。 微型计算机的机箱中,除了一块主板外,往往还有插入主板扩展槽中的插件卡。如显卡、网卡、早期多功能卡等。为了通用及扩展便利,对这些插槽每一芯的信号名称及电气特性都作了统一规定,即通常所说的总线标准。不仅同一系统总线上的各插件卡位置可以互换,而且符一总线标准的任何插件卡,都允许插入机箱来扩充系统的功能。因此总线标准的采用是微型计算机得到广泛使用的一个重要原因。 二、总线周期 (一)时钟周期、指令周期、总线周期 1、时钟周期 CPU的任何操作都是在时钟脉冲信号CLK的统一控制下,一个节指一个节拍地工作。时钟脉冲信号的间隔时间称为时钟周期。通常表示为T周期。时钟周期可通过微处理器的时钟主频计算得到。即T=1/主频。例如8086的时钟信号如图示,主频为5MHz,其时钟周期T=200ns。 2、指令周期 任何指令的执行过程都是取指令,指令译码和指令执行等操作组成。完成指令所有操作需要的时间称为指令周期。指令周期的长度,以时钟T为单位计量。不同的指令执行时间不等。即指令周期长度不等,例如8086/8088的最短 指令周期为2T,最长的指令周期达200T左右。 3、总线周期 CPU与外设系统的信息交换都是通过总线来进行。完成一次总线操作所需的时间称为总线周期。每当CPU要从存储器或I/O端口存取一个单元(字或字节)均需要一个总线周期。 课本定义:系统每执行一次基本操作系统总线上的地址信号数据信号和控制信号间有一定的时序关系,称为一个总线周期。 一个电信的系统总线周期由4个时钟周期组成:分别为T1,T2,T3,T4来表示。系统总线周期可分为:CPU驱动的和DMAC驱动的两个大类。 第三节 中断 【知识点】 ※1、中断的概念, ※2、中断的执行过程, 3、8259A的内部结构、8259A的级联, ※ ※4、8259A的初始化编程, ※5、8259A的工作编程。 一、中断的概念及特点 (一)中断的定义 CPU在执行当前程序的过程中,由于某种随机发生的外部事件使它暂停,而转去完成另一段程序,然后再返回暂停处(断点处)继续执行原来的程序,即是一次典型的中断过程。 (二)中断源 引起中断的事件称之为中断源。 中断源有以下几类: ?、外部设备请求中断。一般外部设备有键盘、磁盘驱动器、打印机等,工作告一段落发出中断请求,要求CPU为它服务。 ?、实时时钟请求中断。例如定时/计数器,先由CPU发出指令,让时钟电路开始计数工作,待规定的时间到,时钟电路发出中断申请,CPU转向中断服务程序。 ?、故障请求中断。当出现电源掉电,存储出错或溢出等故障时,发出中断请求,CPU转向执行故障处理程序,如启动备用电源报警等。 (三)中断的特点 提问,第一节中我们学习了有关I/O的控制方式,请问I/O的控制方式有几种,各方式有何特点, 优点: 错误~未找到引用源。?、相对于查询方式而言,中断的响应时间短,实时性好,执行速度快; 错误~未找到引用源。?、相对于DMA方式而言,接口电路不太复杂; 缺点: 错误~未找到引用源。?、传送的数据量小。 二、中断的分类 根据中断源对CPU的关系,中断可分成内部中断和外部中断两种。每一种又包括许多类型。各种类型的中断被分配一个中断类型号。 (一)内部中断 由于CPU执行某些指令引起的中断称为内部中断。(亦称软件中断)。包括如下几类: 错误~未找到引用源。?、被零除中断 在CPU作除法运算时,除数为零或商超过了有关寄存器所能表示的最大值,则产生被零除中断,其类型号为0。 错误~未找到引用源。?、单步中断 标志寄存器FLAGS中,跟踪标志TF=1且中断允许IF=1,则每执行一条指令就引起一次中断,单步中断类型号是1。 错误~未找到引用源。?、溢出中断 当标志寄存器FLAGS中,溢出标志OF=1时,执行INTO指令,则产生溢出中断。两个条件中任何一个不具备,则溢出中断不发生。溢出中断类型号为4。 ?、中断指令INT n CPU执行INT n 指令,产生矢量地址号为n的中断 。其中n是单字节数(0,255),即中断类型号。 (二)外部中断 由于CPU外部硬件电路发出的电信号引起的中断称为外部中断(亦称硬件中断),外部中断又分为非屏蔽中断和可屏蔽中断。 1、非屏蔽中断NMI NMI是边沿触发的输入信号,若8088CPU的第17引脚NMI接收到一个正向跳变信号,则可能发生一次非屏蔽中断。这种中断响应不受中断允许标志IF的控制。8086/8088要求NMI信号跳变成高电平后至少保持两个时钟周期以上的宽度,以便锁存下来,待CPU完成当前指令后响应。 IBMPC/XT中的非屏蔽中断源有三种:浮点协处理器8087的中断请求,系 统主板上的RAM奇偶检验错误及扩展槽中的I/O通道错。以上三者任何一个都可以单独提出中断请求,但是否真正形成NMI信号,还要受NMI屏蔽寄存器的控制。当这个寄存器D7=1时,才允许向CPU发出NMI请求信号。NMI被响应时,8088自动生成中断类型号2,再转入相应得服务程序。 所以产生NMI信号有两个条件: 错误~未找到引用源。?、NMI屏蔽寄存器的 D7=1;错误~未找到引用源。?、上述三种中断源向CPU发出中断请求。 2、可屏蔽中断INTR 若是一个高电平信号加到CPU的第18引脚(INTR引脚)且中断允许标志IF=1,则可以产生一次可屏蔽中断。那么当IF=0时,INTR的中断请求被屏蔽。在PC/XT中,所有可屏蔽的中断源都先经过中断控制器8259A管理后,再向CPU发出INTR请求。综上学习,我们得出结论:8086/8088CPU提供的能接收外部中断申请的引脚是第17引脚(NMI)和第18引脚(INTR)。这两种中断的区别是:NMI不可用软件屏蔽,而INTR中断可用软件屏蔽;NMI中断请求信号必须是一个由低到高的上升沿,而INTR中断请求信号高电平有效。 三、中断响应 (一)中断处理过程 一个完整的中断处理过程包括:中断请求、中断排队、中断响应、中断处理和中断返回等环节。 1、中断请求 中断请求是中断源向CPU发出中断请求信号。外部设备发出中断请求信号具备两个条件:错误~未找到引用源。?、外部设备工作告一段落;错误~未找到引用源。?、系统允许外设发出中断请求。 2、中断排队 中断申请是随机的,有时会出现多个中断源同时提出中断申请。但CPU每次只能响应一个中断源的请求。那么究竟先响应哪一个中断源的请求呢,这就必须根据中断源工作性质的轻重缓急,预先安排一个优先级顺序,当多个中断源同时申请中断时,即按此优先级顺序排队,等候CPU的处理。 优先顺序: 3、中断响应 经中断排队后,CPU收到一个当前申请中断的中断源中优先级别最高的中断请求信号。CPU在响应中断后,执行完当前指令,就中止现行程序,响应中断申请。此时,首先由硬件电路保护断点,将CPU的标志寄存器FLAGS中的内容压入堆栈,并清除IF和TF位。然后再将代码段寄存器CS和指令指针压入堆栈。至此,栈顶六单元中保存了返回断点时需要的信息。 4、中断处理 中断响应后,进入中断处理,即执行中断服务程序。在中断服务程序中,首先要保护现场,把中断服务程序中所要使用的寄存器内容保存起来,如将它们压入堆栈,然后才进行与此中断有关的相应服务程序处理。在中断服务处理时,首先寻找中断服务程序的入口地址,包括CS和IP共4个字节。中断源的入口地址顺序地方在RAM的低地址区(00000H~3FFH)称为中断矢量表中,在中断响应后,根据中断类型号n,到中断矢量表中,从地址0000:4*n开始连续取四个单元内容分别装入IP和CS,然后CPU以新的CS和IP转向中断服务程序。 5、中断返回 中断服务完成后,程序的最后一条指令一般都是IRET,当CPU执行这条指令时,将栈顶六单元的内容依次弹到IP、CS和FLAGS中,于是恢复主程序运行。 四、可编程中断控制器Intel8259A Intel8259A可编程控制器,用于管理外部可屏蔽的中断请求。因为CPU芯片的外部请求引脚INTR只有一根,但外部的中断源可以有多个如时钟、键盘串口并口和软盘等多个中断源。所以PC系列机中,用Intel8259A来协助CPU管理外部中断源。一片8259A管理8级中断源,在PC-AT机中用两片8259A级联管理16级中断源。若用9片8259A级联不用附加外部电路就能管理64级中断源。 (一)8259A的内部结构 8259A主要由以下几部分组成:错误~未找到引用源。?、中断请求寄存器 IRR;错误~未找到引用源。?、中断屏蔽寄存器IMR;错误~未找到引用源。?、中断服务寄存器ISR;错误~未找到引用源。?、优先权判断电路;错误~未找到引用源。?、控制逻辑;错误~未找到引用源。?、数据总线缓冲器;错误~未找到引用源。?、读写控制逻辑;错误~未找到引用源。?、级联缓冲器/比较器。 各部分功能: 错误~未找到引用源。?、中断请求寄存器IRR IRR是一个8位的锁存器,用来锁存外部的设备送来的IR,IR的中断请07求信号。外部设备若有中断请求送到IR,IR就将其锁存到IRR寄存器的相应07 位,此寄存器可被CPU读出。 错误~未找到引用源。?、中断屏蔽寄存器IMR IMR是一个8位的寄存器,用来设置中断请求的屏蔽信号,当此寄存器的第i位被置1时,则与之对应的IR中断申请线被屏蔽,这些屏蔽位能禁止IRRi 寄存器对应的置1位发出的中断请求信号,屏蔽优先级较高的中断请求输入,不会影响优先级较低的中断请求输入。因此,可用软件方法设置IMR改变优先级别。 错误~未找到引用源。?、中断服务寄存器ISR ISR是一个8位的寄存器,用来存放当前正在服务的中断级。响应中断后, INTA8259A收到第一个中断响应信号时,由优先权判决电路,根据IRR请求i位的优先级别和IMR中屏蔽位的状态,将允许中断的最高优先级请求选通到ISR。使ISR相应位置1,表明该位对应的中断源正在服务。因此用ISR来存放正在被服务的所有中断级,包括尚未服务完而中途被受高优先级打断的中断级。在处理某一级中断的整个过程中,ISR与之对应位一直保持为1。只有当它被服务完毕,在返回之前,才由中断结束命令EOI将其清零,在不进行中断服务时,ISR各位均为0。 错误~未找到引用源。?、优先权判断电路 优先权判决电路用来识别和管理各中断请求信号的优先级别。当N个中断请求同时出现时,由优先权判决电路根据控制逻辑规定的优先级别和IMR的内容,判断哪一个信号的优先级别最高,CPU首先响应优先级别最高的请求。把优先权最高的IRR置1位送ISR中。当8259A正在为某一级中断请求服务时, 若又出现另一请求信号,则优先权判决电路判断新提出的中断申请的优先级别,是否高于正在处理的那一级中断,如果高于则进入多重中断处理。 错误~未找到引用源。?、控制逻辑 8259A的控制电路中,有一组初始化命令字ICW,ICW,和一组工作命14令OCW,OCW。控制逻辑电路,按照编程设定的工作方式来管理8259A的13 全部工作。在IRR中有未被屏蔽的中断请求置1时,控制逻辑使INTR引脚输出高电平,向CPU发出中断请求。中断响应期间,它使中断优先级别最高的ISR相应位置1,同时使相应的IRR的位清零,并发出相应的中断矢量码到数据总线上。中断服务结束时,按照编程规定的方式结束处理。 错误~未找到引用源。?、数据总线缓冲器 这是一个8位的双向三态缓冲器,用作8259A与系统总线D,D的接口。078259A通过数据缓冲器接收CPU发来的控制字。 错误~未找到引用源。?、读写控制逻辑 此电路用来接收来自CPU的读写命令,完成规定的操作。在CPU写入 WR8259A,通过OUT命令使有效,把写入8259A的命令字送到相应的ICWi和OCW内,将相应IRR、ISR和IMR寄存器的内容输出到数据总线上,读入i CPU。 错误~未找到引用源。?、级联缓冲器/比较器。 这个功能部件用在级联方式的主,从结构,用来存放和比较系统中各个8259A的从设备标志ID。当此部件相关的有3根级联线CAS,CAS和主从设002 SPEN备/缓冲器读写线。 3根级联线CAS,CAS用来构成8259A的主,从式控制结构。当某个02 8259A作主设备时,它的CAS,CAS是输出引脚。当8259A作从设备时,它02 的CAS,CAS是输入引脚。在系统中应将8259A的CAS,CAS对应端互联。0202编程时,8259A的从设备标志保存在它的级联缓冲器内,在中断响应期间,首先主8259A把申请中断级别最高的从设备标志码输出到级联线CAS,CAS上;02接着从8259A把收到的从设备标志码同级缓冲器保存的从设备标志进行比较; INTA最后,在随后的第二个脉冲期间,与主设备标码一致的从8259A被选中,而把中断矢量码送到数据总线上。 SPEN是双向功能引脚,低电平有效。它有两种功能:第一种,当处于缓冲方式时,(所谓缓冲方式是8259A数据引脚与系统总线之间加双向数据缓冲器 EN8286),此时,它起作用的输出引脚,用于控制缓冲器接收和发送数据方向的控制信号。第二种:当不处于缓冲方式时,它是输入引脚,用作主从设备标 SPSP志。当=1时,用来指明8259A是主设备,而当=0时,用来指明8259A是从设备。 (二)8259A的引脚 8259A是一种具有28引脚双列直插式封装的大规模集成电路专用芯片。 错误~未找到引用源。?、D,D:数据总线双向与CPU的通道。 07 CS错误~未找到引用源。?、:片选信号,输入,低电平有效。它有效就表示正在访问该8259A。一般接至地址译码器输出。 RD错误~未找到引用源。?、:读信号,输入,低电平有效,它有效表示由8259A读至CPU。 WR错误~未找到引用源。?、:写信号,输入,低电平有效,它有效表示写信号至8259A 错误~未找到引用源。?、CAS,CAS:3根级联线。 02 INTA错误~未找到引用源。?、:中断响应信号,输入。 错误~未找到引用源。?、INT:中断请求信号,输出。8259A用此线向CPU发送中断请求信号。接至CPU的INTR引脚。 错误~未找到引用源。?、IR,IR:由外部设备或其它向8259A输入中07 断请求信号。 SPEN错误~未找到引用源。?、:主从设备的设定/缓冲器读写控制。 错误~未找到引用源。?、A:地址选择信号,用于对8259A部的两个可0 编程寄存器的选择,与地址线进行连接。 (三)8259A的级联 我们知道一片8259A可管理8级中断源,那么如果我们要管理多于8个中断源的中断,我们又如何进行呢,实际上8259A在芯片的设计过程中,已经考虑到了这个问题,这就是利用级联的方法,将多片8259A连接在一起来管理多 于8个中断源的中断系统。 (四)8259A的编程 在使用8259A时,除了按规定的信号接好电路外,还必须用程序选定其工作状态,例如中断请求的优先权分配,中断屏蔽、中断矢量等等,每一种状态都由一个命令字或一个命令字中的某些位来规定。8259A的命令字可分为初始化命令字ICW(Initialization Command Word)和工作命令字OCW(Operation Command Word)两种,因此,8259A的编程也分为初始化编程和工作编程两步。在8259A内部,有相应的一组寄存器分别将这些命令字锁存以控制其工作。 1、8259A寄存器的读写 对于8259A的内部寄存器,除了在编程时CPU可用输出指令对它们逐一写入外,在查询状态时还可用输入指令将其内容读出。为了寻址各寄存器,除了用地址信号A译码外,还需要用这些命令字的某些位作为访问某个寄存器的特0 征,或者按写入的先后顺序来区分。 例如:要对ICW操作,此时除了将地址线A置0外,还需将ICW命令101字D置1,此时表示我们选中了ICW命令字,或者说启动了ICW的初始化编411程。 下面,同学翻倒课本300页,看表格内的内容。 2、8259A的初始化编程 8259A必须先进行初始化编程,后进行工作编程。初始化编程由写入ICW1(称为主初始化命令字)开始,然后写入ICW。至于是否写ICW和ICW取234决于ICW的内容。 1 下面,我们画出初始化命令字的流程图: 从写入初始化命令字的流程图中,我们可以看出,初始化命令字的写入顺序是:ICW?ICW?ICW?ICW,这四个命令字必须按照顺序写入,一般不1234 重复写。 无论何时,当CPU向8259A送入一条地址线A=0,数据线D=1的命令时,04该命令被译码为初始化命令字ICW,它启动8259A的初始化过程,即相当于1 RESET信号的作用。 8259A在进行初始化时,将完成如下操作: 错误~未找到引用源。?、清除中断屏蔽寄存器IMR,即中断屏蔽寄存器的各位均复位为0。 错误~未找到引用源。?、设置IR为最低优先级的完全嵌套方式,固定优7 先权排序。 完全嵌套方式是指:当一个中断请求被响应后,就会自动屏蔽同级和低级的中断请求,但能开放高级的中断请求。即某中断未服务完,同级或低级有中断请求,不会使8259A的INT变为高电平。 错误~未找到引用源。?、清除特殊屏蔽方式 在某些应用场合,可能要求能在软件的控制下动态地改变系统的优先权结构,也就是若CPU正处在中断服务的过程中,希望能屏蔽一些较低优先权的中 断源的中断申请,而允许一些优先权更低的中断源的中断申请。当然在通常情况下,当较高优先权的中断源正处在中断服务的过程中时,所有中断优先权较低的中断源都被屏蔽。 错误~未找到引用源。?设置读IRR方式。 下面介绍初始化命令字1的功能: (1)ICW 1 用于设置8259A的基本工作方式。刚才我们提到了当地址线A=0时,若对08259A写入D=1则启动了初始化编程写入的字节被当成ICW。D=1是它的特414征位,其余各位作用如下: 的标志。 A=0,D=1是初始化命令字ICW041 D、D、D(A、A、A)用于8080/8085系统中,设置中断服务程序入765765 口地址的A、A、A,在8086/8088系统中,此3位无意义。 765 D(LTIM):设置IR的触发方式。 3 外部设备(中断源)可采用两种方式向8259A提出中断请求:电平触发式和边沿触发式。用户通过对8059A的初始化编程来选择所需要的触发方式。当选用电平触发方式时,中断请求的实现是通过采样IR端上输入一定时间的持续i 高电平,来识别外部输入的中断请求信号。当选用边沿触发方式时,中断请求的实现是通过IR输入电平从低电平到高点平的跳变,并一直保持为高电平,直i 到中断相应时为止。设D=1,为电平触发,D=0为边沿触发。 33 D(ADI):用于8080(8085)系统中,表示调用地址的间隔。为1时,地2 址间隔为4,为0时,调用地址间隔为8。在8088/8086系统中该位无意义。 D(SNGL):为1,表示单片使用,为0,表示级联使用。 1 D(ICW):为1,表示要送初始化命令字ICW,为0,表示不送ICW。0444例如:以8086/8088为CPU的系统中,用单片8059A来管理8级中断源。IRi的触发方式为电平触发式,要写ICW,则对该8259A进行初始化的程序为: 4 MOV AL,00011011B OUT 20H,AL (2)ICW(主片地址为21H,从片地址为A1H) 2 功能:用来设置中断信号的类型码 格式如下: 工作于8080/8085系统中时,8位全部有用,表示CALL指令的高8位, 工作于8086/8088系统中时,D,D表示中断矢量的高5位,D,D不需编程7320而是由中断源序号填入。 例如,在8086/8088系统中,键盘的中断请求线接到IR上,它被分配的中1断类型号为09H。ICW的初始化程序为: 2 向ICW写入中断矢量时,只写ICW的高5位,即D,D位。低三位对2273应IR,IR的IRi?编码,由8259A硬件电路自动产生。 70 MOV AL,08H OUT 21H,AL 当CPU响应键盘中断请求时,8259A把IR的编码001作为中断矢量的低i 3位,它和ICW的高5位构成一个完整的8位中断矢量类型号09H,在第二个2 中断响应周期经数据线送给CPU。 (3)ICW(主片口地址为21H,从片口地址为A1H,多片级联时使用) 3 ICW是8259A的级联命令字,单片8259A工作时,不需要写入,多片8259A3 级联工作时,需要分别写入ICW,主片ICW的D,D对其8条中断请求线3370IR,IR,若某条IR线上接有从8259A片,则主ICW的相应位写1,否则写7030。各从片的ICW仅D,D有意义,作为从片标识码,高5位固定为0。这个320 从片标识码须和本片所接主片IR线的序号(i)一致。在中断响应时,主片通i 过CAS,CAS送出被允许中断的从片标识码。各从片用自己的ICW和CAS,2030 CAS的信号比较。二者一致的从片确定为当前中断源,才可发送自己的中断矢2 量。 (4)ICW 4 格式如下: 其中高3位无意义。 D指定了中断的嵌套方式。D=0为一般嵌套方式。一般完全嵌套是指:当44 一个中断源请求被响应后,就会自动屏蔽同级和低级的中断请求,但能开放高级的中断请求。即某中断未服务完,同级或低级有中断请求,不会使8259A的INT变为有效高电平。对于单片8259A的中断系统,这种安排是没有问题的。但对于多片8259A级联组成的系统,当某个从片中的一个中断正在服务时,主片将这个从片的所有中断屏蔽。这是因为:尽管该从片多个中断源各有优先级别,但由于它们都通过同一个中断申请INT引脚接到主片的同一个IR上,也i就是说在主片上,它们的优先级别均相同。所以说使本片中有比正在服务的中断级别更高的中断源发出请求,也不能得到响应即不能中断嵌套。 当D=1时,是特殊嵌套方式。在这种方式下档一个中断申请被主8259A接4 受后,只屏蔽低级别中断申请,但不屏蔽同级别和高级别中断申请,这使得从片也能按正常级别申请中断并进行嵌套。 D为数据缓冲选择。D=1时,8259A的数据总线和系统总线之间要加三态33 SPEN缓冲器。此时8259A的引脚变成输出线以控制缓冲器的接通。当D=03时,设定为非缓冲方式,由所接的电平高低确定5259A片是主片还是从片。当D=1,且又是级联方式时,这时规定当ICW的D=1时表示主片,当D=0时3422表示从片。当然D=0时,D就无意义了。 32 D说明了中断的结束方式。中断结束的方式有两种:一种是正常方式,另1 一种是自动方式。D=0是中断的正常结束方式,在这种方式下,中断结束时向1 8259A送一个EOI命令字(OCW),于是中断服务寄存器ISR中与中断源相应2 的位被清除。D=1是中断的特殊结束方式,在中断响应时,在8259A送出中断1 矢量后,自动将ISR复位,不需要送结束命令字OCW。 2 D指定了系统中所采用的CPU系列。当D=0时,系统用8080/8085CPU。00 当D=1时系统用8086/8088CPU系列。 0 CPU在向8259A写完初始化命令字后,为了进一步提高它的中断处理能力。 例如:屏蔽某些中断,读出ISR、IRR中的内容,为了能够发出中断结束命令EOI,还需要继续设置工作命令字。 3、8259A的工作编程 8259A在初始化编程后,应再进行工作编程,即写入工作命令字共有三个OCW、OCW和OCW。它们各有自己的特征位,因此写入时没有顺序的要求。123 在中断服务程序中,某些命令字可能会多次重复地写入。 (1)OCW主片口地址为21H,从片口地址为A1H 1 OCW又被称为中断屏蔽字,用来设置中断屏蔽寄存器IMR中各位的值。1 8259A输入信号IR的屏蔽操作与中断屏蔽寄存器IMR中各位的值一一对应。i 将OCW中的某个M位置1时,IMR的相应位也置1,从而屏蔽相应的输入IR1ii信号。三个工作命令字中仅OCW占有寄地址(A=1)。 10 格式: 其中:M=1,屏蔽,M=0不屏蔽。 ii (2)OCW(主片口地址为20H,从片口地址为A0H) 2 写OCW的作用是:错误~未找到引用源。?、对8259A发中断结束命令,2 实际上也就是清ISR中的置位;错误~未找到引用源。?、改变优先权的排序结构。 它和工作命令字OCW都占有偶地址(A=0),但其特征位为DD=00。因3043此,不会混淆。同样对它们的写入也没有要求是早写还是晚写。 格式: 其中A=0,DD=00为OCW的标志。这些操作命令通常是以组合方式出0432 现,而不是按位设置,为了说明组合命令的意义,首先,介绍有关位的定义。 D(R):优先权控制位。 7 优先权:它是指响应中断过程中,中断请求信号级别的高低。一般情况下,我们说IR级别最高,IR级别最低。但在实际应用中,中断源的优先权情况是07 比较复杂的,不一定有明显的等级,而且优先权还有可能改变。所以不能总规定IR的优先权最高,而IR的优先权最低,要根据情况来改变。在8259A中有07 两种控制优先权的方法。 错误~未找到引用源。?、自动循环 在某些应用的情况下,若干中断源有相等的优先权。因此,当某个中断源服务完成后,它的优先权变为最低。 例如:在循环前,若IR和IR同时有中断请求,而当时的IR最高,IR4607最低。因此,就先服务IR的请求,当IR服务完毕,它的优先权最低,而IR445的优先权就最高了。 错误~未找到引用源。?、固定优先权 即中断请求信号IR,IR的级别是固定的。 07 D(R)=1时,优先权可以旋转,循环优先权。当R=0时,为固定优先权。 7 D位表示特殊旋转。当D=1时,允许由D,D(L,L)编码指定对应662020的IR为最低优先权。那么,此时最高优先级为IR。当D=0时,L,L编码ii-1620无效。 D(EOI):中断结束命令位。D=1表示中断结束(EOI命令)。当用8259A55 来实现中断管理时,返回指令IRET前,必须给8259A送一条EOI命令(即D=15的OCW)。8259A收到这条命令后,将中断服务寄存器ISR中的相应位清除。2 然后才好为其它的中断源服务。当DD=1,则为特殊的中断结束(SEOI命令),65 它将复位ISR中由OCW中L,L指定的位。 220 刚才,我们提到这些命令都是以组合方式出现,那么它们组合后的情况是怎样的呢,请看304页。 (3)OCW(主片口地址20H,从片口地址A0H) 3 写入OCW的地址和OCW的相同,都是A=0,但其特征位是DD=01。 32043 功用:OCW常用来配合读8259A内部寄存器的内容。 3 格式: D、D两位用来设定和清除特殊屏蔽。在这,首先我们介绍一下。一般情65 况下的屏蔽是:当交给优先权的中断源正处在中断服务的过程中时,所有优先权较低的中断申请全都给屏蔽了。特殊屏蔽是指:若CPU正处在中断服务的过程中,希望能屏蔽一些较低优先权中断源的中断,而允许一些优先权更低的源发出中断申请。设置特殊屏蔽的是:DD=11,清除特殊屏蔽的是DD=10。 6565 D、D两位组合表示中断请求寄存器IRR或是读中断服务寄存器ISR。当10 OCW的DD=11,也对同一个地址(A)作输入,则读入的是中断服务寄存器3100 ISR的内容。 除了以上两个寄存器外,任何时候对8259A用奇地址A=1作输入,可以读0 出IMR的内容。 第四节 计数/定时电路 【知识点】 1、8253的内部结构、外部引脚, ※2、8253的启动方式, ※3、8253的工作方式。 在计算机应用中,常常要对外界的某些信号进行计数,希望计算机既能控制计数的过程又能读取计数的结果,进而作为控制或管理的决策依据。因此,计数电路也成为计算机输入/输出接口的一种类型。如果被计数的信号有准确的固定周期,这种计数也就成了一种定时方式。 一、计数定时的方法 为了获得所需要的定时,要求准确而稳定的时间基准产生这种时间基准常用两种方法。 错误~未找到引用源。?、软件方法(软件定时) 即利用CPU内部的定时机构,使用每执行一条指令需要若干时钟周期的原理,运用软件编程,循环执行一段程序而产生等待延时。这种方法的优点:不需增加硬件设备,只需编制相应的延时程序已备调用。缺点:CPU在执行延时程序时,增加了CPU的时间开销,延时时间越长,这种等待开销越大,降低了CPU的效率,浪费了CPU资源。 错误~未找到引用源。?、硬件定时 可采用可编程定时计数器(或单稳延时电路)产生定时或延时。这种方法不占用CPU的时间,定时时间长,使用灵活,故得到广泛应用。现在已有多种定时/计数芯片应用于微型计算机及接口电路中,本节我们讨论Intel8253可编程/定时计数器。 二、可编程计数/定时器Intel8253 (一)8253的工作原理 1、8253的内部逻辑结构 8253主要由以下六部分组成:数据总线缓冲器、读/写逻辑控制寄存器、三个计数器。课本267页,用5.4.2。各部分功能: 1)数据总线缓冲器 用于将8253同系统总线D,D相连。CPU通过数据总线缓冲器向8253写70 入数据。命令或通过数据总线从8253内读取数据和状态信息。总的来说8253数据缓冲器有如下三项功能a、向8253写入确定的8253工作方式命令字;b、向计数寄存器装入初值;c、读出计数初值或当前值。 )读/写逻辑:读/写逻辑由CPU发来的读写信号和地址信号确定选择读出2 /写入的寄存器,并确定数据传输的方向:是读出还是写入。 3)控制字寄存器 控制字寄存器接收CPU送来的控制字,这个控制字用来选择计数器和相应的工作方式。控制字寄存器的内容只能写入不能读出。 4)计数器 计数器内部主要由三部分:A、16位减1计数器、B、16位计数初值寄存器,C、16位输出锁存器。 初始化时,首先向计数通道装入计数初值,先送到计数初值寄存器保存,然后送到减1计数器,计数启动后(GATE允许),在时钟CLK的作用下,进行减1计数,直至计数值减到0,输出OUT信号,计数结束。计数初值寄存器中的数值在计数过程中保持不变。因此,若要了解计数初值,只需从计数初值寄存器中直接读取,而如果想知道当前计数值,则必须将当前值锁存后,从输出寄存器中读出,不能直接从减1计数器中读出。 2、8253的引脚 8253为24引脚双列直插芯片,用+5V供电。每一片内部有三个独立的16位计数器。 D,D:数据线,双向三态,外接系统数据总线。 70 CS:片选信号,低电平有效。通常由I/O口地址译码产生。 WRRDRD、:读写控制命令,低电平有效。有效时,CPU读取由A,A10 WR所选的通道内计数器的内容。有效时,CPU将计数值写入各个通道的计数器中,或者将方式控制字写入控制字存器中。 A、A:地址线,进行片内译码,选择计数器。 01 GATE:门控信号,用于控制计数的进行。多数情况下,GATE=1时,允许计数,GATE=0时,中止计数。用一句话来说,GATE信号的作用是用来禁止、允许或开始计数过程。 CLK:时钟信号。作用是:在8253进行定时或计数工作时,每输入一个时钟信号,便使定时计数值减1。 OUT:OUT是8253向外输出的信号。它的作用是:计数器工作时,当定 时/计数值减为0时,即在OUT线上输出一个OUT信号,用以指示定时或计数已到。 3、计数启动 8253计数器的计数过程,可以直接用程序指令来启动,也可以设置外部电信号来启动。这两种启动方式分别称为软件启动和硬件启动。 错误~未找到引用源。?、软件启动 即用输出指令向计数器赋予初值来启动。事实上,所谓赋初值,只是将数值赋给了初值寄存器,计数并未开始。之后,到来的第一个外部时钟信号(需要CLK信号由低变高,再由高变低)将初值寄存器内容赋予计数器,从第2个时钟周期CLK信号下降开始,计数器才真正减1。以后,每个CLK信号使计数器减1一直减到0结束。 错误~未找到引用源。?、硬件启动 即写入计数初值后,并未启动计数,需要门控信号变为高电平,在经CLK上开沿采样,随后的CLK下降沿开始,使计数器减1。 一般情况下,各计数器每启动一次只工作一个周期(当计数初值减为0)就停止了,但有两种情况,一旦被启动只要门控信号GATE=1(保持为高电平),计数过程就能自动地重复下去,因此,OUT端可以产生连续的波形。 (二)8253的编程 8253的三个计数器在工作前,必须进行初始化编程。每个计数器的编程步骤均由:1、写入控制字,选定工作方式;2、写入计数初值组成。 1、写控制字 写控制字,主要实现如下功能:选择计数器,选择工作方式,选择数的进制等。控制字格式如下: D、D位是控制字计数器的编号,具体地讲D、D位确定选择的计数器是7676 计数器1还是计数器2,或是计数器0。 D、D是操作方式编码,标明计数器操作的类型。例如给计数器赋初值时,54 可以赋16位初值,也可以赋8位初值,8位初值可以是高字节或是低字节。读 计数器当前值时,计数器并未停止计数。有可能在先后读高低字节时,计数器的值已发生了变化。因此,有必要锁存当前值。这时可对计数器写入DD=0054的控制字,计数器当前值就被锁存到一个16位的输出锁存器中。此时,计数器照常工作,但锁存器中的值不变,待锁存器中的两字节值都被CPU读走后,锁存器的内容又随计数器变化。 D,D:三位决定了计数器的工作方式,具有6种工作方式,方式0,方式31 5。 D:选择计数器的数制,D=0选择2进制,D=1选择10进制。 000 2、写入计数初值 写入控制字后,应给计数器写入计数初值。根据控制字的规定。计数初值可以是两个字节,可以是单字节。但在8253内部全部当成了两字节,缺省字节自动补上零。 (三)8253的工作方式 8253计数器有六种工作方式,即方式0,方式5,不同的工作方式下,计数的启动过程不同,OUT端的输出波形不同,自动重复功能,GATE的控制作用以及重新计数初值的影响也不同。同一芯片中的三个计数器,可以分别编程选择不同的工作方式。 1、方式0——计数结束时中断 这是一种软件启动,不能重复的计数方式。 方式0有如下特点: 错误~未找到引用源。?、当前计数器写完CW(控制字)后,相应的输出 WR信号OUT变低,再写入计数初值,在(写信号)以后,经过一个CLK的上升沿和一个下降沿,计数器开始计数,当计数结束,即计数器减到0时,OUT立即输出高电平。 错误~未找到引用源。?、当门控信号GATE为高电平时,计数器工作,当GATE为低电平时,计数器停止工作,其计数值保持不变,待GATE=1后,从暂停的数值继续往下递减。 ?、方式0,每赋一次初值,只计数一个周期。OUT在执行完成一次计数后,一直保持为高电平,直到新初值到来。 错误~未找到引用源。?、在计数工作期间,如果重新写入新的初值,则计 数器将按新写入的计数值重新工作(若初值是16位,则在送完第一个字节后,中止现行计数,送完第二个字节后才重新计数)。 2、方式1——可编程单脉冲 这是一种硬件启动,不自动重复的计数的方式。 方式1的特点: ?、写入方式1的控制字CW后,OUT端立即变为高电平,待写入计数初值后,要等GATE信号出现正跳变,才启动计数。此时,OUT端立即变低,直至计数器减到零才回到高。其间隔为计数初值N乘以CLK的周期T,这就CLK是OUT产生一个宽度为N×T的负脉冲。 CLK 错误~未找到引用源。?、若计数启动之后,而未完成之前,若GATE又发生正跳变,则计数过程又从初值启动,OUT端的低电位不变,两次计数过程合在一起,OUT端输出的负脉冲加宽了。 错误~未找到引用源。?、方式1的计数过程中若写入新的计数初值,也只写到初值寄存器中,并不马上影响当前计数过程。同样要等到下一个GATE的启动信号,计数器才能按新初值工作。 3、方式2——速率发生器 方式2既可用于软件启动,也可用于硬件启动。软件启动:若先有GATE=1,则由写入计数初值启动——软件启动。 硬件启动:若送初值时,GATE=0为低电平,则等GATE信号由低变高启动。两个必备条件中,后一个满足要求的作为启动信号。 方式2的特点: ?、写入方式2的控制字后,OUT变高。若先有GATE=1,写入计数初值后,计数器及时对CLK。假使计数初值为N,当计数(N,1)个信号时,计数器的值为1,OUT变低。最后一个CLK信号输入后,计数器减至零OUT回到高,计数器又自动从初值开始计数,(因此,它具有自动重复功能)。OUT端在每N个CLK信号中输出一个宽度为CLK信号周期的负脉冲。 错误~未找到引用源。?、计数器在工作期间,如果向此计数器写入新的初值,则计数器仍按原计数,直到计数器(回零)即在输出一个时钟周期的低电平后,才按新写入的计数初值计数。 错误~未找到引用源。?、门控信号GATE为高电平时,才允许计数。若在计数其间,门控信号变为低电平。则计数器停止计数,待GATE恢复为高电平后,计数器按原设定的计数值重新开始计数。 4、方式3——方波发生器 方式3的特点: ?、兼有两种启动方式,即软件启动和硬件启动。 ?、计数能自动重复。 错误~未找到引用源。?、工作方式3对OUT端输出的不是一个时钟周期的低电平(负脉冲),而是占空比为1:1或近似1:1的方波,当计数初值为偶数时,输出在前一半计数过程为高电平,在后一半计数过程中为低电平。 错误~未找到引用源。?、当计数初值为奇数时,在前一半加1的计数过程中,输出为高电平,后一半减1的计数过程为低电平。 错误~未找到引用源。?、在写入初值时,如果GATE信号为低电平,计数器并不开始计数,待GATE变高后,才启动计数过程。在计数过程中应始终使GATE=1,若GATE=0,不仅中止计数,而且OUT马上变高,待恢复GATE=1时,产生硬件启动,计数器又重新开始计数。 错误~未找到引用源。?、在方式3的计数过程中,对计数器写入初值,不影响前半周期的计数,当在前半周期结束(OUT电位发生变化时),启用新初值。 5、方式4 特点:?软件启动;?不自动重复 在写入方式4控制字后,OUT变为高电平。若GATE为高,写完计数初值后的第一个CLK信号将初值n置于计数器,从第二个CLK信号开始作减法。(N+1)个CLK后,减到0,OUT变低,第(N+2)个CLK信号使OUT又回到高而停止,形成一个T的负脉冲。因此从写入初值算起整个过程为(N+2)CLK TCLK。波形图如下: 错误~未找到引用源。?、在方式4下,每给计数器写一次小、初值,开始一次计数,计数到0停止,等下一次送初值又重新启动; 错误~未找到引用源。?、GATE信号可控制计数过程是否进行下去,一般而言,应保持GATE=1,若出现GATE=1后,又继续原来的计数过程(赋予计数初值)直至结束; 错误~未找到引用源。?、计数器工作期间,若向计数器写入新的计数值,则不影响当前计数状态,仅在当前值计完回零时,计数器才直接从写入的新的计数值开始计数,一旦计数完毕,计数器将停止工作。 6、方式5——硬件触发选通 由同学看书自学。 第五节 并行I/O接口 【知识点】 1、8255的内部结构、外部引脚, ※2、8255的工作方式, 3、8255的应用 ※ 我们都知道输入/输出计算机的信息多种多样,计算机的外围设备也是千差万别的。要把千差万别的外围设备与计算机有效地连接起来,并使多种多样的信息十分方便地输入/输出,这就离不开接口电路。 一、接口 1、接口的概念 接口(Interface):是微处理器(或微机)与外界连接的部件,它是CPU与外界进行信息交换的中转站。例如:源程序或原始数据要通过接口从输入设备送到微机中,而运算结果要通过接口送出去。控制指令要要通过接口发出去,现场状态要通过接口取进来。这些来往信息,都通过接口进行交换与传递。 2、接口的类型 微型计算机主机与外界的连接,基本上使用了两类接口:串行接口和并行接口。这两种接口分别以串行通信与并行通信方式实现微型计算机与外设的连接。 (1)并行通信与串行通信 并行通信是把一个字符(或字)的各数位用几条线同时进行传送,传输速度快,信息率高。但它比串行通信所用的电缆多。因此,并行通信常用在传输距离较短(几米至几十米)和数据传输率高的场合。 串行通信指的是:数据一位一位的依次传输,每一位数据占用一个固定的时间长度,这种情况只要少数的几条线就可以在系统间交换信息,特别运用于计算机与计算机、计算机与外部设备之间的远距离通信,但串行速度比较慢。 (2)并行接口的特点 A、并行接口是在多根数据线上,以数据字节(字)为单位与输入/输出设备或被控对象传送信息,如:打印机接口、A/D、D/A转换接口,在实际应用中, 凡在CPU与外设间同时需要两位以上信息传送时,就采用并行接口。 并行接口,传输速度快,适应于近距离的场合。 串行接口,通信线路简单,只要一对传输线就可以实现双向通信。并可利用电话线,从而大大地降低了成本,特别适用于远距离场合,传输速度慢,例如调制解调器接口是串行的。 B、并行接口传送的信息,不要求有固定的格式。串行接口传送的信息有固定的格式,格式内包括数据起始位数据位校验位和停止位。 C、从并行接口的电路结构来看,并行接口有硬件连接接口和可编程接口之分,硬件连接接口的工作方式及功能用硬件连线来设定,用软件编程的方法不能加以改变,如果接口的工作方式及功能可用软件编程序的方法加以改变,则就叫可编程接口。我们今天学习的就是可编程并行接口8255A。 2、可编程并行接口芯片8255A 所谓可编程,实际上就是具有可选择性。 (1)8255A的内部结构 8255A由以下四部分组成:数据总线缓冲器,读/写控制逻辑、数据端口A、B、C,A组和B组控制电路。 错误~未找到引用源。?、数据总线缓冲器 这是一个三态双向8位缓冲器,它是8255A与CPU系统总线的接口。所有数据的发送与接收,以及CPU发出的控制字和从8255A读出的状态信息都是通过缓冲器传送的。 错误~未找到引用源。?、读写控制逻辑 WRCSRD读写控制逻辑由读信号、写信号片选信号以及端口选择信号AA等组成。读写控制逻辑控制了总线的开放与关闭和信息的传送方向,以便10 把CPU的控制命令或输出数据送到相应得端口;或把外设的信息或输入数据从相应的端口送到CPU。 错误~未找到引用源。?、数据端口A、B、C 8255A包括3个8位的输入/输出端口(PORT)。每个端口都有一个数据输入寄存器和一个数据输出锁存器,输入时端口有三态缓冲功能,输出时,端口有数据锁存功能。在实际应用中PC口的8位可分为两个4位端口,也可以分为一个5位端口和一个3位端口(方式2)使用。 错误~未找到引用源。?、A组和B组控制电路 用来控制A、B、C3个端口的工作方式,A组控制A口和C口的上半部(PC,7PC)的工作方式和输入/输出。B组控制B口和C口的下半部(PC,PC)的430工作方式和输入/输出。A、B组控制寄存器还接收按位控制命令,以实现对PC口的按位置位/复位操作。 (2)8255A的引脚 8255A是一个单+5V电源供电,40引脚的双列直插式组件。作为接口电路的8255A具有面向主机系统总线和面向外设两个方向的连接能力,它的引脚正是为了满足这种连接要求而设置的(课本276页)。 A、面向系统总线的引脚有: D,D:双向数据线。CPU通过它向8255A发送命令数据;8255A通过它70 向CPU回送状态、数据。 CS:片选信号线,该信号低电平有效,它由系统地址总线经I/O地址译码产生。CPU通过收高位地址信号,使它变为低电平时,才能对8255A进行读/ CS写操作。当为高电平时,切断CPU与芯片的联系。 A、A:芯片内部端口地址信号线,与系统总线低位地址线相连,两位地10 址线,可形成4个端口地址。 具体如下: A A 端口 地址 10 0 0 A 300H 0 1 B 301H 1 0 C 302H 1 1 控制寄存器 303H RD:读信号线,读信号低电平有效。CPU通过执行IN指令发出读信号将数据或状态信号从8255A读至CPU。 WR:写信号线,该信号低电平有效。CPU通过执行OUT指令,发写信号命令。将命令代码或数据写入8255A。 RESET:复位信号线,该信号高电平有效。它清除控制寄存器,并将8255A的A、B、C三个端口设置为输入方式,输出锁存器和状态寄存器被复位,并且 屏蔽中断请求。 B、面向I/O设备的信号线(或引脚)有: PA,PA:端口A的输入/输出线 07 PB,PB:端口B的输入/输出线 07 PC,PC:端口C的输入/输出线 07 这24条线均可用来连接I/O设备,通过它们可以传送数字量信息和开关量信息。 在使用时,A、B、C三个口可以当成三个独立的8位数据端口;也可将A、B口当成8位数据端口,而C口作为它们与外设的联络用的状态或控制信号,还可以将C口分成两个部分,高4位和A口共同组成12位A组数据端口,低4位和B口组成12位的B组数据端口。 3、8255A的工作方式 8255A的三个端口共有三种工作方式:方式0,方式1,方式2。 方式0——基本的输入或输出方式。无须联络就可以直接进行的I/O。在此种方式下,A口、B口、C口高4位和C口低4位可以分别设置成输入或输出。 方式1——选通I/O。此时接口与外设之间需要联络信号进行协调。只有A口和B口可工作于方式1,C口作为A口和B口与外设间的联络信号线,C口余下的线只具有基本I/O功能,可工作于方式0。 方式2——双向I/O方式。即同一端口的I/O线,既可以输入也可以输出。只有A口工作于方式2。此时,C口有5条线被规定为A口和外设之间双向传送的联络线。C口剩下的3条线可以作为B口在方式1的联络线,也可以和B口一起成为方式0的I/O线。 4、8255A的编程命令 8255A的编程命令包括工作方式控制字和对PC口的按位操作控制字两个命令,它们是用户使用8255A来组建各种接口电路的重要工具。 由于这两个命令字都是送到8255A的同一个控制端口,为了让8255A能识别是哪一个命令,故采用特征位的方法。若写入控制字的最高位D=1,则是工7作方式控制字,若是写入控制字D=0,则是PC口按位/复位控制字。 7 (1)工作方式字 作用:指定3个端口(PA、PB、PC)是作输入还是作输出以及选择8255A 的工作方式。 格式如下: 从方式字可知,A口有3种工作方式(方式0,1,2),而B口只有两种工作方式(方式0,方式1)。端口C分成两部分,上半部分属于A组,下半部分属于B组。置1为输入,置0为输出。利用工作方式字的不同代码组合,可以分别选择A组和B组的工作方式和各端口的输入/输出。 例如,要把A口指定为方式1,输入,C口上半部指定为输出,B口指定为方式0,输出,C口下半部定为输入。 可以确定工作方式字为:10110001B或B1H, 若将此控制字的内容写到8255A的控制寄存器,即实现了对8255A工作方式的指定,或叫完成了对8255A的初始化。 程序段:MOV DX,303H;8255A控制口地址 MOV AL,10110001B;初始化工作方式控制字 OUT DX,AL (2)PC口按位置位/复位控制字 作用:指定PC口的某一位输出高电平还是低电平。 利用按位置位/复位控制字可以使PC口的8根线中的任意一根置成高电平或低电平。 例如,要把C口的PC引脚置位,则命令字应为00000101B。 2 将该命令字写入8255A的命令寄存器,就实现了将PC口的PC引脚置位2操作。 MOV DX,303H;8255A控制口地址 MOV AL,00000101B;使PC=1的控制字 2 OUT DX,AL; 送到控制口 应用:按位置位/复位命令产生的输出信号,可以作为控制开关的通断,继电器的吸合/释放,马达的启/停等操作的选通信号。 另外,在后面将要提到和讨论的8255A的状态字中的中断允许位INTE的置位和复位,即允许8255A提出中断与禁止8255A提出中断,也是采用这个按位控制命令来实现。 (3)可编程的含义 所谓的可编程,实际上是可选择性。例如选择芯片中的哪一个或哪几个数据端口与外设相连;选择端口中的哪一位或哪几位作输入,哪一位或哪几位作输出。选择端口与CPU之间采用哪种方式传送数据等。均可由用户写入方式字或控制字来指定。 5、各种工作方式的功能和特点 (1)方式0 错误~未找到引用源。?、方式0是一种基本输入/输出工作方式。方式0下,8255A的24条I/O线全部由用户分配功能,不设置专用联络信号。这种方式不能采用中断与CPU交换数据,只能用简单的无条件传送。若作输出,各端口都有锁存功能,若作输入没有锁存,只有缓冲。 错误~未找到引用源。?、方式0下,8255A分成彼此独立的两个8位和两个4位的并行口,这4个并行口都能被指定作为输入或作为输出用,共有16种不同的组合。要特别强调的是,在方式0下,只能将C口的高4位作为一组或低4位作为一组同时输入或输出,不能再把4位中的一部分作输入,一部分作输出。 错误~未找到引用源。?、端口信号之间无固定的时序关系,用户根据数据传送的要求决定输入/输出的操作过程。方式0没有设置固定的状态字。 错误~未找到引用源。?、单向I/O,一次初始化只能指定某一端口作输入或作输出,不能使该端口同时即作输入又作输出。 (2)方式1和方式2的特点请参看课本自学。 6、8255A的应用参看多媒体
/
本文档为【第五章_数字量输入输出】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。 本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。 网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。

历史搜索

    清空历史搜索