《《工作原理》PPT课件.ppt》由会员分享,可在线阅读,更多相关《《工作原理》PPT课件.ppt(83页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、第第8章章 可编程接口芯片可编程接口芯片8253及应用及应用 定时与计数定时与计数 在微机系统或智能化仪器仪表的工作过程中,经常需要使系统处于定时工作状态,或者对外部过程进行计数。定时或计数的工作实质均体现为对脉冲信号的计数,如果计数的对象是标准的内部时钟信号,由于其周期恒定,故计数值就恒定地对应于一定的时间,这一过程即为定时,如果计数的对象是与外部过程相对应的脉冲信号(周期可以不相等),则此时即为计数。定时与计数的实现方法定时与计数的实现方法(1)硬件法。设计一套电路用以实现定时与计数,特点是需要花费一定的硬件设备,而且当电路制成之后,定时值及计数范围不能改变。(2)软件法。利用一段延时子程
2、序来实现定时操作,特点是无需太多的硬件设备,控制比较方便,但在定时期间,CPU不能从事其他工作,降低了机器的利用率。(3)软、硬件结合法。即设计一种专门的具有可编程特性的芯片来控制定时和计数的操作,而这些芯片具有中断控制能力,定时、计数到时能产生中断请求信号,因而定时期间不影响CPU的正常工作。7.1 定时定时/计数器芯片计数器芯片Intel8253的工作原理的工作原理 Intel8253是8086/8088微机系统常用的定时/计数器芯片,它具有定时与计数两大功能,同类型的定时/计数器芯片还有Intel8254等,8253是24脚双列直插芯片,用+5V电源供电。1、8253的一般性能概述的一般
3、性能概述(1)每个8253芯片有3个独立的16位计数器通道。(2)每个计数器通道都可以按照二进制或二-十进制计数。(3)每个计数器的计数速率可以高达2MHz。(4)每个通道有6种工作方式,可以由程序设定和改变。(5)所有的输入、输出电平都与TTL兼容。2、8253的内部结构框图及引脚的内部结构框图及引脚 8253的内部结构如下图所示,主要由数据总线缓冲器、读/写逻辑、控制字寄存器及三个独立的、功能相同的计数器组成。(1)数据总线缓冲器:三态、双向的数据总线缓冲器:三态、双向的8位缓冲器,用于将位缓冲器,用于将8253与系统数据总线连接。与系统数据总线连接。CPU执行执行I/O指令时,缓冲指令时
4、,缓冲器发送或接收数据,用以写入器发送或接收数据,用以写入8253控制字、装入计数控制字、装入计数初值或读出当前计数值。初值或读出当前计数值。(2)读读/写逻辑:读写逻辑:读/写逻辑电路接受来自系统总线的信号,写逻辑电路接受来自系统总线的信号,然后产生控制整个芯片工作的控制信号。然后产生控制整个芯片工作的控制信号。(3)控制字寄存器:当控制字寄存器:当A1、A0全为全为1时,接收并存储来自时,接收并存储来自数据总线缓冲器的控制字。每个计数器对应数据总线缓冲器的控制字。每个计数器对应1个控制寄个控制寄存器,只能写入,不能读出。存器,只能写入,不能读出。(4)计数器计数器02:三个计数器内部结构相
5、同,每个计数器:三个计数器内部结构相同,每个计数器有一个有一个16位减法计数器,可对二进制数或位减法计数器,可对二进制数或BCD码进行码进行计数。某些方式下,一次计数结束可以自动取初值进计数。某些方式下,一次计数结束可以自动取初值进行下一次计数。每个计数器都有时钟输入行下一次计数。每个计数器都有时钟输入CLK、门控、门控输入输入GATE和输出和输出OUT引脚。计数过程、输出信号与引脚。计数过程、输出信号与控制字中设定的内容有关。每个计数器的工作方式和控制字中设定的内容有关。每个计数器的工作方式和工作过程完全独立。工作过程完全独立。28253的外部引脚的外部引脚8253芯片是具有芯片是具有24个
6、引脚的双列直插式集成电路芯片,其个引脚的双列直插式集成电路芯片,其引脚分布如图引脚分布如图7-2所示。所示。38253的控制字的控制字8253有一个有一个8位的控制字寄存器,其格式如图位的控制字寄存器,其格式如图7-3所示。所示。48253的工作方式的工作方式8253共有共有6种工作方式,各方式下的工作状态是不同的,种工作方式,各方式下的工作状态是不同的,输出的波形也不同,其中比较灵活的是门控信号的作用。输出的波形也不同,其中比较灵活的是门控信号的作用。由此组成了由此组成了8253丰富的工作方式、波形。丰富的工作方式、波形。(1)几条基本原则。)几条基本原则。1)控制字写入计数器时,所有的控制
7、逻辑电路立即复位,输出端)控制字写入计数器时,所有的控制逻辑电路立即复位,输出端OUT进入初始状态。初始状态对不同的模式来说不一定相同。进入初始状态。初始状态对不同的模式来说不一定相同。2)计数初始值写入之后,要经过一个时钟周期上升沿和一个下降)计数初始值写入之后,要经过一个时钟周期上升沿和一个下降沿,计数执行部才可以开始进行计数操作,因为第一个下降沿将计沿,计数执行部才可以开始进行计数操作,因为第一个下降沿将计数寄存器的内容送减数寄存器的内容送减1计数器。计数器。3)通常,在每个时钟脉冲)通常,在每个时钟脉冲CLK的上升沿,采样门控信号的上升沿,采样门控信号GATE。不同的工作方式下,门控信
8、号的触发方式是有具体规定的,即或者不同的工作方式下,门控信号的触发方式是有具体规定的,即或者是电平触发,或者是边沿触发,在有的模式中,两种触发方式都是是电平触发,或者是边沿触发,在有的模式中,两种触发方式都是允许的。其中允许的。其中0、2、3、4是电平触发方式,是电平触发方式,1、2、3、5是上升沿触是上升沿触发。发。4)在时钟脉冲的下降沿,计数器作减)在时钟脉冲的下降沿,计数器作减1计数,计数,0是计数器所能容纳是计数器所能容纳的最大初始值。二进制相当于的最大初始值。二进制相当于216,用,用BCD码计数时,相当于码计数时,相当于104。特点:特点:写入控制字寄存器后,输出OUT就变低,GA
9、TE为高计数,为低停止计数;不自动重新计数,需要重新将计数值写入计数器后开始计数;计数到0时,可利用OUT 产生中断信号。(2)方式)方式0:计数结束产生中断。方式:计数结束产生中断。方式0的波形如图的波形如图7-4所示,当控制字所示,当控制字写入控制字寄存器后,输出写入控制字寄存器后,输出OUT就变低,当计数值写入计数器后开始计就变低,当计数值写入计数器后开始计数,在整个计数过程中,数,在整个计数过程中,OUT保持为低,当计数到保持为低,当计数到0后,后,OUT变高。变高。(3)方式)方式1:可编程的硬件触发单拍脉冲。:可编程的硬件触发单拍脉冲。特点:特点:写入控制字寄存器后,输出OUT就变
10、高;GATE的上升沿触发计数,同时OUT变低,直到计数到0;遇到GATE的上升沿时,自动重新计数。(4)方式)方式2:速率发生器。:速率发生器。特点:写入控制字寄存器后,输出OUT就变高;GATE为高计数;计数到1时,OUT变低,计数到0时,OUT变高,并自动重新计数。GATE为低时,禁止计数,直到GATE变高,重新自动写入计数值计数。一般作为分频器使用。(5)方式)方式3:方波速率发生器。:方波速率发生器。特点:与方式2类似,只是进行减2操作,直到0时,OUT变低,并自动重新写入计数值减2操作,直到0时,OUT变高。一般作为方波发生器使用。(6)方式)方式4:软件触发的选通信号发生器。:软件
11、触发的选通信号发生器。特点:特点:写入控制字寄存器后,输出OUT就变高;GATE为高计数,为低停止计数;不自动重新计数,需要重新将计数值写入计数器后开始计数;计数到0时,OUT变为低,经过一个CLK周期 后变为高。不自动重新计数,只有重新软件写入计数值,同时GATE为高时开始计数。(7)方式)方式5:硬件触发的选通信号发生器。:硬件触发的选通信号发生器。特点:特点:写入控制字寄存器后,输出OUT就变高;GATE的上升沿触发计数;计数到0时,OUT为低,经过一个CLK周期 后变为高。只有遇到GATE的上升沿时,自动重新计数。(8)8253的工作方式小结。的工作方式小结。1)方式)方式2、4、5的
12、输出波形是相同的,都是宽度为一个的输出波形是相同的,都是宽度为一个CLK周期的负脉冲,但方式周期的负脉冲,但方式2连续工作,方式连续工作,方式4由软件触发由软件触发启动,方式启动,方式5由硬件触发启动。由硬件触发启动。2)方式)方式5与方式与方式1的工作过程相同,但输出波形不同,方式的工作过程相同,但输出波形不同,方式1输出的是宽度为输出的是宽度为N个个CLK脉冲的低电平有效的脉冲(计数脉冲的低电平有效的脉冲(计数过程中输出为低),而方式过程中输出为低),而方式5输出的是宽度为一个输出的是宽度为一个CLK脉脉冲的负脉冲(计数过程中输出为高)。冲的负脉冲(计数过程中输出为高)。3)输出端)输出端
13、OUT的初始状态。方式的初始状态。方式0在写入方式字后输出为在写入方式字后输出为低;其余方式,写入控制字后输出均变为高。低;其余方式,写入控制字后输出均变为高。4)任一种方式,均是在写入计数初值之后才能开始计数,)任一种方式,均是在写入计数初值之后才能开始计数,方式方式0、2、3、4都是在写入计数初值之后开始计数的,而都是在写入计数初值之后开始计数的,而方式方式1和方式和方式5需要外部触发启动才开始计数。需要外部触发启动才开始计数。5)6种工作方式中,只有方式种工作方式中,只有方式2和方式和方式3是连续计数,其他方是连续计数,其他方式都是一次计数,要继续工作需要重新启动,方式式都是一次计数,要
14、继续工作需要重新启动,方式0、4由软由软件启动,方式件启动,方式1、5由硬件启动。由硬件启动。6)门控信号的作用。通过门控信号)门控信号的作用。通过门控信号GATE,可以干预,可以干预8253某一通道的计数过程,在不同的工作方式下,门控信号起作某一通道的计数过程,在不同的工作方式下,门控信号起作用的方式也不同,其中用的方式也不同,其中0、2、3、4是电平起作用,是电平起作用,1、5是是上升沿起作用。上升沿起作用。7)计数到)计数到0后计数器的状态。方式后计数器的状态。方式0、1、4、5进行倒计数,进行倒计数,变为变为FF、FE,而方式,而方式2、3则自动装入计数初值继续计则自动装入计数初值继续
15、计数。数。7.2 8253的应用的应用7.2 可编程并行接口芯片可编程并行接口芯片8255A7.2.1 并行通信与接口并行通信与接口Intel 8255A是一个通用的可编程并行接口芯片,它有三个是一个通用的可编程并行接口芯片,它有三个并行并行I/O口,又可通过编程设置多种工作方式,价格低廉、口,又可通过编程设置多种工作方式,价格低廉、使用方便,可以直接与使用方便,可以直接与Intel系列的芯片连接使用,在中小系列的芯片连接使用,在中小系统中有着广泛的应用。系统中有着广泛的应用。7.2.2 8255A的编程结构的编程结构8255A的编程结构如图的编程结构如图7-10所示,由以下几部分组成:所示,
16、由以下几部分组成:(1)三个数据端口)三个数据端口A、B、C。这三个端口均可看作是。这三个端口均可看作是I/O口,但它们的结构和功能稍有不同。口,但它们的结构和功能稍有不同。(2)A组和组和B组的控制电路。组的控制电路。(3)数据总线缓冲器。)数据总线缓冲器。(4)读)读/写控制逻辑。写控制逻辑。7.2.3 8255A的引脚功能的引脚功能引脚信号可以分为两组:一组是面向引脚信号可以分为两组:一组是面向CPU的信号,一组是的信号,一组是面向外设的信号。面向外设的信号。1面向面向CPU的引脚信号及功能的引脚信号及功能2面向外设的引脚信号及功能面向外设的引脚信号及功能PA0PA7:A组数据信号,用来
17、连接外设。组数据信号,用来连接外设。PB0PB7:B组数据信号,用来连接外设。组数据信号,用来连接外设。PC0PC7:C组数据信号,用来连接外设或者作为控制组数据信号,用来连接外设或者作为控制信号。信号。7.2.4 8255A的工作方式的工作方式8255A有三种工作方式,用户可以通过编程来设置:有三种工作方式,用户可以通过编程来设置:方式方式0:简单输入:简单输入/输出,查询方式,输出,查询方式,A、B、C三个端口均三个端口均可。可。方式方式1:选通输入:选通输入/输出,中断方式,输出,中断方式,A和和B两个端口均可。两个端口均可。方式方式2:双向输入:双向输入/输出,中断方式,只有输出,中断
18、方式,只有A端口才有。端口才有。工作方式的选择可通过向控制端口写入控制字来实现。在工作方式的选择可通过向控制端口写入控制字来实现。在不同的工作方式下,不同的工作方式下,8255A三个输入三个输入/输出端口的排列示意输出端口的排列示意图如图图如图7-11所示。所示。(1)方式)方式0。一种简单的输入。一种简单的输入/输出方式,没有规定固定的应输出方式,没有规定固定的应答联络信号,可用答联络信号,可用A、B、C三个口的任一位充当查询信号,三个口的任一位充当查询信号,其余其余I/O口仍可作为独立的端口和外设相连。方式口仍可作为独立的端口和外设相连。方式0的应用场的应用场合有两种:一种是同步传送,一种
19、是查询传送。合有两种:一种是同步传送,一种是查询传送。(2)方式)方式1。方式。方式1是一种选通是一种选通I/O方式,方式,A口和口和B口仍作为口仍作为两个独立的两个独立的8位位I/O数据通道,可单独连接外设,通过编程分数据通道,可单独连接外设,通过编程分别设置它们为输入或输出,而别设置它们为输入或输出,而C口要有口要有6位,分成两个位,分成两个3位,位,分别作为分别作为A口和口和B口的应答联络线,其余两位仍可工作在方口的应答联络线,其余两位仍可工作在方式式0,可通过编程设置为输入或输出。,可通过编程设置为输入或输出。(3)方式)方式2。方式。方式2为双向选通为双向选通I/O方式,只有方式,只
20、有A口才有此方口才有此方式。这时,式。这时,C口有口有5根线用作根线用作A口的应答联络信号,其余口的应答联络信号,其余3根根线可用作方式线可用作方式0,也可用作,也可用作B口方式口方式1的应答联络线。的应答联络线。方式方式2就是方式就是方式1的输入与输出方式的组合,各应答信号的功的输入与输出方式的组合,各应答信号的功能也相同。而能也相同。而C口余下的口余下的PC0PC2正好可以充当正好可以充当B口方式口方式1的应答联络线,若的应答联络线,若B口不用或工作于方式口不用或工作于方式0,则这三条线也可,则这三条线也可工作于方式工作于方式0 7.3 可编程串行接口芯片可编程串行接口芯片8251A7.3
21、.1 8251A的基本性能的基本性能8251A是可编程的串行通信接口芯片,基本性能如下:是可编程的串行通信接口芯片,基本性能如下:(1)两种工作方式。同步方式和异步方式。同步方式下,)两种工作方式。同步方式和异步方式。同步方式下,波特率为波特率为064K;异步方式下,波特率为;异步方式下,波特率为019.2K。(2)同步方式下的格式。每个字符可以用)同步方式下的格式。每个字符可以用5、6、7或或8位来位来表示,并且内部能自动检测同步字符,从而实现同步。除此表示,并且内部能自动检测同步字符,从而实现同步。除此之外,之外,8251A也允许同步方式下增加奇也允许同步方式下增加奇/偶校验位进行校验。偶
22、校验位进行校验。(3)异步方式下的格式。每个字符也可以用)异步方式下的格式。每个字符也可以用5、6、7或或8位位来表示,时钟频率为传输波特率的来表示,时钟频率为传输波特率的1、16或或64倍,用倍,用1位作为位作为奇奇/偶校验,偶校验,1个启动位,并能根据编程为每个数据增加个启动位,并能根据编程为每个数据增加1个、个、1.5个或个或2个停止位。可以检查假启动位,自动检测和处理终个停止位。可以检查假启动位,自动检测和处理终止字符。止字符。(4)全双工的工作方式。其内部提供具有双缓冲器的发送)全双工的工作方式。其内部提供具有双缓冲器的发送器和接收器。器和接收器。(5)提供出错检测。具有奇偶、溢出和
23、帧错误三种校验电)提供出错检测。具有奇偶、溢出和帧错误三种校验电路。路。7.3.2 8251A的内部结构的内部结构8251A的内部结构如图的内部结构如图7-12所示。所示。1发送器发送器发送器由发送缓冲器和发送控制电路两部分组成。发送器由发送缓冲器和发送控制电路两部分组成。2接收器接收器接收器由接收缓冲器和接收控制电路两部分组成。接收器由接收缓冲器和接收控制电路两部分组成。3数据总线缓冲器数据总线缓冲器数据总线缓冲器是数据总线缓冲器是CPU与与8251A之间的数据接口,包含之间的数据接口,包含3个个8位的缓冲寄存器位的缓冲寄存器 4读读/写控制电路写控制电路读读/写控制电路用来配合数据总线缓冲
24、器的工作写控制电路用来配合数据总线缓冲器的工作 7.3.3 8251A的引脚功能的引脚功能8251A的引脚如图的引脚如图7-13所示。所示。18251A和和CPU之间的连接信号之间的连接信号8251A和和CPU之间的连接信号可以分为以下之间的连接信号可以分为以下4类:类:(1)片选信号。)片选信号。(2)数据信号。)数据信号。(3)读)读/写控制信号。写控制信号。(4)收发联络信号。)收发联络信号。28251A与外部设备之间的连接信号与外部设备之间的连接信号8251A与外部设备之间的连接信号分为以下两类:与外部设备之间的连接信号分为以下两类:(1)收发联络信号。)收发联络信号。(2)数据信号。
25、)数据信号。3时钟、电源和地时钟、电源和地8251A除了与除了与CPU及外设的连接信号外,还有电源端、地及外设的连接信号外,还有电源端、地端和端和3个时钟端。个时钟端。7.3.4 8251A的编程的编程编程的内容包括两大方面:一是由编程的内容包括两大方面:一是由CPU发出的控制字,即发出的控制字,即方式选择控制字和操作命令控制字;二是由方式选择控制字和操作命令控制字;二是由8251A向向CPU送送出的状态字。出的状态字。1方式选择控制字(模式字)方式选择控制字(模式字)方式选择控制字的格式如图方式选择控制字的格式如图7-14所示。所示。2操作命令控制字(控制字)操作命令控制字(控制字)操作命令
26、控制字的格式如图操作命令控制字的格式如图7-15所示。所示。3状态字状态字状态字的格式如图状态字的格式如图7-16所示。所示。DSRSYNDET/BRKDETFEOEEPETxERxRDYTxRDYD7D6D5D4D3D2D1D0数据装置准备好奇偶错标志溢出错标志帧校验错标志发送器准备好接收器准备好发送器空SYNDETBRKDET1已达到同步0未达到同步1接收到断缺字符0正常工作例如,若要查询例如,若要查询8251A接收器是否准备好,则可用下列程序接收器是否准备好,则可用下列程序段完成:段完成:MOV DX,0FFF2H ;状态口状态口L:IN AL,DX ;读状态口读状态口 ANDAL,02
27、H ;查查Dl=1?即准备好了吗?即准备好了吗?JZ L ;未准备好,则等待未准备好,则等待 MOV DX,OFFF0H ;数据口数据口 IN Al,DX ;已准备好则输入数据已准备好则输入数据48251A的初始化的初始化步骤及流程图(如图步骤及流程图(如图7-17所示)如下:所示)如下:(1)芯片复位以后,第一次用奇地址端口写入的值作为)芯片复位以后,第一次用奇地址端口写入的值作为模式字进入模式寄存器。模式字进入模式寄存器。(2)按照模式字中的规定,使)按照模式字中的规定,使8251A工作在同步模式。工作在同步模式。(3)由)由CPU用奇地址端口写入的值将作为控制字送到控用奇地址端口写入的值
28、将作为控制字送到控制寄存器,而用偶地址端口写入的值将作为数据送到数据制寄存器,而用偶地址端口写入的值将作为数据送到数据输出缓冲寄存器。输出缓冲寄存器。系统RESET初始化置方式输出方式指令异步?输出第一个同步字符一个同步字符?输出第二个同步字符输出命令指令传送数据YYYYNNNNRESET?完成?7.4 其他接口芯片介绍其他接口芯片介绍在外设接口电路中,经常需要对传输过程中的信息进行放在外设接口电路中,经常需要对传输过程中的信息进行放大、隔离以及锁存,能实现上述功能的接口芯片最简单的大、隔离以及锁存,能实现上述功能的接口芯片最简单的就是缓冲器、数据收发器和锁存器。就是缓冲器、数据收发器和锁存器
29、。74LS373是一种是一种8D锁存器,具有三态驱动输出,其引脚电锁存器,具有三态驱动输出,其引脚电路如图路如图7-18所示。所示。74LS373的锁存功能如表的锁存功能如表7-2所示。所示。74LS373锁存器主要用于锁存地址信息、数据信息以及锁存器主要用于锁存地址信息、数据信息以及DMA页面地址信息等。页面地址信息等。7.4.1 Intel 8279Intel 8279是一种通用的可编程序的键盘、显示接口器件,是一种通用的可编程序的键盘、显示接口器件,单片器件就能够完成键盘输入和显示控制两种功能。单片器件就能够完成键盘输入和显示控制两种功能。7.4.2 HD7279AHD7279A是比高公
30、司生产的单片具有串行接口、可同时驱是比高公司生产的单片具有串行接口、可同时驱动动8位共阴式数码管(或位共阴式数码管(或64只独立只独立LED)的智能显示驱动芯)的智能显示驱动芯片,该芯片可同时连接多达片,该芯片可同时连接多达64键的键盘矩阵,一片即可完键的键盘矩阵,一片即可完成成LED显示及键盘接口的全部功能。显示及键盘接口的全部功能。7.5 CPU和外设之间的数据传送方式和外设之间的数据传送方式各种外设的工作速度相差很大,如磁盘机的传送速度高达各种外设的工作速度相差很大,如磁盘机的传送速度高达0.1Mbps6Mbps,而键盘人工输入数据的速度通常为几,而键盘人工输入数据的速度通常为几十毫秒十
31、毫秒1个字节。由于外设受机械和其他因素的影响工作速个字节。由于外设受机械和其他因素的影响工作速度不一致,度不一致,CPU何时从输入设备读取数据以及何时往输出何时从输入设备读取数据以及何时往输出设备写入数据成为较复杂的定时问题。设备写入数据成为较复杂的定时问题。CPU与外设之间的数据传送方式有三种:程序方式、中断与外设之间的数据传送方式有三种:程序方式、中断方式和方式和DMA方式。方式。7.5.1 程序方式程序方式程序方式是指在程序控制下进行信息传送。程序传送又分程序方式是指在程序控制下进行信息传送。程序传送又分为无条件传送方式和条件传送方式。为无条件传送方式和条件传送方式。1无条件传送无条件传
32、送无条件传送是指计算机能够确认一个外设已经准备就绪,无条件传送是指计算机能够确认一个外设已经准备就绪,不必查询外设的状态即可直接进行信息传输。不必查询外设的状态即可直接进行信息传输。输出锁存器输入缓冲器端口译码器往输出设备来自输入设备D7D0地址总线M/2条件传送方式条件传送方式条件传送也称为查询方式传送。查询方式是主机在传送数条件传送也称为查询方式传送。查询方式是主机在传送数据(包括读入和写出)之前要检查外设是否据(包括读入和写出)之前要检查外设是否“准备好准备好”,若没有准备好,则继续检查其状态,直至外设准备好了,若没有准备好,则继续检查其状态,直至外设准备好了,即确认外设已具备传送条件之
33、后才能进行数据传送。即确认外设已具备传送条件之后才能进行数据传送。输入设备锁存器数据缓冲器三态缓冲器R Q+5V数据选通地址译码数据 READ=1?输入一个字节到CPU对数据进行处理输入完?结束YNYN7.5.2 中断方式中断方式1中断传送的工作原理中断传送的工作原理在中断传送方式下,外设具有申请在中断传送方式下,外设具有申请CPU服务的主动权。当服务的主动权。当输入设备将数据准备好或者输出设备可以接收数据时,便输入设备将数据准备好或者输出设备可以接收数据时,便可以向可以向CPU发出中断请求,使发出中断请求,使CPU暂时停下当前的工作而暂时停下当前的工作而和外设进行一次数据传输,等数据传输操作
34、过程结束后,和外设进行一次数据传输,等数据传输操作过程结束后,CPU再继续进行原来的工作。可见,在中断传送方式下,再继续进行原来的工作。可见,在中断传送方式下,CPU不必花大量时间去查询外设的工作状态,因为外设准不必花大量时间去查询外设的工作状态,因为外设准备就绪后会主动发出中断请求信号。然而备就绪后会主动发出中断请求信号。然而CPU必须具有这必须具有这样的功能:在每条指令执行完毕后,会检查外部是否有中样的功能:在每条指令执行完毕后,会检查外部是否有中断请求信号。如有中断请求,在中断标志为断请求信号。如有中断请求,在中断标志为1的情况下,的情况下,CPU保留下一条指令的地址(称为断点)和当前的
35、标志,保留下一条指令的地址(称为断点)和当前的标志,转到中断服务程序去执行。当从中断服务程序返回时,转到中断服务程序去执行。当从中断服务程序返回时,CPU会恢复标志和断点地址。会恢复标志和断点地址。2中断源类型中断源类型发出中断请求的外部设备或引起中断的内部原因称为中断发出中断请求的外部设备或引起中断的内部原因称为中断源。在源。在8086系统中,有两类中断:外部中断和内部中断。系统中,有两类中断:外部中断和内部中断。(1)外部中断。)外部中断。1)不可屏蔽中断)不可屏蔽中断NMI。2)可屏蔽中断)可屏蔽中断INTR。(2)内部中断。)内部中断。3中断优先级中断优先级当系统有多个中断源时,就可能
36、同时出现几个中断源申请当系统有多个中断源时,就可能同时出现几个中断源申请中断,而中断,而CPU在一个时刻只能响应并处理一个中断请求。在一个时刻只能响应并处理一个中断请求。为此,应根据任务的轻重缓急给每个中断源指定为此,应根据任务的轻重缓急给每个中断源指定CPU响应响应的优先级。安排了优先级后,当有多个中断源申请中断时,的优先级。安排了优先级后,当有多个中断源申请中断时,CPU只响应并处理优先级最高的中断申请。通常在微机系只响应并处理优先级最高的中断申请。通常在微机系统中采用软件查询方式、简单硬件方式和可编程中断控制统中采用软件查询方式、简单硬件方式和可编程中断控制器解决优先级问题。器解决优先级
37、问题。7.5.3 DMA方式方式DMA主要用于需要高速大批量数据传送的系统中,以提高主要用于需要高速大批量数据传送的系统中,以提高数据的吞吐量。数据的吞吐量。1DMA控制器的功能控制器的功能DMA控制器具有以下功能:控制器具有以下功能:(1)当外设准备就绪希望进行)当外设准备就绪希望进行DMA操作时,会向操作时,会向DMA控控制器发出制器发出DMA请求信号,请求信号,DMA控制器接到此信号后,向控制器接到此信号后,向CPU发总线请求信号。发总线请求信号。(2)CPU接到总线请求信号后,如果允许,则会发出接到总线请求信号后,如果允许,则会发出DMA响应信号,从而响应信号,从而CPU放弃对总线的控
38、制,这时放弃对总线的控制,这时DMA控制器应能实现对总线的控制。控制器应能实现对总线的控制。(3)DMA控制器得到总线控制权后,要向地址总线发送控制器得到总线控制权后,要向地址总线发送地址信号,修改所用的存储器或接口的地址指针。为此,地址信号,修改所用的存储器或接口的地址指针。为此,DMA控制器内部有地址寄存器。一开始,由软件向此寄存控制器内部有地址寄存器。一开始,由软件向此寄存器中设置器中设置DMA的首地址。在的首地址。在DMA操作过程中,每传送一操作过程中,每传送一个字节,就会自动对地址寄存器的内容进行修改,以指向个字节,就会自动对地址寄存器的内容进行修改,以指向下一个要传送的字节。下一个
39、要传送的字节。(4)在)在DMA传送期间,传送期间,DMA控制器应能发出读控制器应能发出读/写信号。写信号。(5)DMA内部有一个字节计数器,用来存放所传送的字内部有一个字节计数器,用来存放所传送的字节数。在节数。在DMA过程中,每传送一个字节,字节计数器的值过程中,每传送一个字节,字节计数器的值便自动减便自动减1,当字节计数器的值为,当字节计数器的值为0时,时,DMA过程结束。过程结束。(6)DMA过程结束时,过程结束时,DMA控制器应向控制器应向CPU发出结束信发出结束信号,将总线控制权交还给号,将总线控制权交还给CPU。2DMA控制器的结构及工作原理控制器的结构及工作原理DMA控制器有两
40、种工作方式:单个数据传输和数据块传输。控制器有两种工作方式:单个数据传输和数据块传输。在单个数据传输方式下,每次数据传输之后,在单个数据传输方式下,每次数据传输之后,DMA控制器控制器立即将控制权还给立即将控制权还给CPU;在数据块传输方式下,;在数据块传输方式下,DMA控制控制器直到整个数据块传输完毕之后才将控制权交还给器直到整个数据块传输完毕之后才将控制权交还给CPU。在在8086系统中,系统中,CPU通过通过HOLD引脚接收引脚接收DMA控制器的总控制器的总线请求,而在线请求,而在HLDA引脚上发出对总线请求的允许信号。引脚上发出对总线请求的允许信号。DMA控制器向控制器向HOLD引脚发
41、出一个高电平,表示发出总线引脚发出一个高电平,表示发出总线请求,而当请求,而当CPU在完成当前总线操作后,就使在完成当前总线操作后,就使HLDA引脚引脚出现高电平表示响应总线请求。出现高电平表示响应总线请求。DMA控制器收到此信号后,控制器收到此信号后,成为总线的主宰。当成为总线的主宰。当DMA完成数据传输任务后,完成数据传输任务后,DMA控制控制器将器将HOLD端变为低电平,放弃对总线的控制。端变为低电平,放弃对总线的控制。8086系统系统检测到检测到HOLD信号变为低电平后,也将信号变为低电平后,也将HLDA变为低电平,变为低电平,于是于是CPU又控制了系统总线,如图又控制了系统总线,如图
42、7-22所示。所示。地址总线数据总线控制总线DMA请求DMA响应I/O设备总线请求总线响应HRQ DREQHLDA DACKDMACHOLDHLDACPU当当DMA工作在数据块传输方式下,系统通过接口向内存输工作在数据块传输方式下,系统通过接口向内存输入一个数据块的工作过程为:入一个数据块的工作过程为:(1)接口向)接口向DMA控制器发出一个控制器发出一个DMA请求。请求。(2)DMA控制器发出总线请求,然后得到控制器发出总线请求,然后得到CPU送来的送来的DMA允许信号,得到总线控制权。允许信号,得到总线控制权。(3)DMA控制器中地址寄存器的内容送到地址总线上。控制器中地址寄存器的内容送到
43、地址总线上。(4)DMA控制器向接口发一个确认控制器向接口发一个确认DMA传输的信号,以传输的信号,以便通知接口把数据送到数据总线。便通知接口把数据送到数据总线。(5)数据送到地址总线所指定的内存单元。)数据送到地址总线所指定的内存单元。(6)地址寄存器的值加)地址寄存器的值加1。(7)字节寄存器的值减)字节寄存器的值减1。(8)如果字节寄存器的值为)如果字节寄存器的值为0,则结束;否则返回第一步。,则结束;否则返回第一步。下面给出一个典型的启动数据块输入的程序段。程序中下面给出一个典型的启动数据块输入的程序段。程序中INTSTAT表示接口的状态寄存器,表示接口的状态寄存器,INTCON表示接
44、口的控表示接口的控制寄存器,制寄存器,DMACON表示表示DMA控制器的控制寄存器,控制器的控制寄存器,BYTE_REG和和ADD_REG分别表示分别表示DMA的字节计数器和地的字节计数器和地址计数器。址计数器。IDLE:INAL,INTSTAT;检测设备是否是忙状态,如是,则等待TESTAL,04JNZIDLEMOVAX,COUNT;设置计数器OUTBYTE_REG,AXLEAAX,BUFFER;设置地址初值OUTADD_REG,AXMOVAL,DMAC;取原DMA控制字ORAL,49H;设置方向、块传输和允许标志OUTDMACON,AL;设置DMA控制字MOVAL,INTC;设置接口的传输
45、方向及允许标志ORAL,05HOUTINTCON,AL;设置接口的控制字3DMA控制器的特点控制器的特点综上所述,综上所述,DMA控制器具有以下特点:控制器具有以下特点:(1)DMA控制器是一个特殊的接口。控制器是一个特殊的接口。DMA控制器是一控制器是一个接口电路,具有个接口电路,具有I/O端口地址,端口地址,CPU可以通过端口地址可以通过端口地址对对DMA控制器进行读控制器进行读/写操作;另外,写操作;另外,DMA控制器在获控制器在获得总线控制权后,可以控制系统总线,操纵外设与存储得总线控制权后,可以控制系统总线,操纵外设与存储器之间的数据传输。这是一般接口不具备的功能。器之间的数据传输。
46、这是一般接口不具备的功能。(2)DMA控制器在传输数据时不用指令,而是通过硬控制器在传输数据时不用指令,而是通过硬件逻辑电路用固定顺序发地址和读件逻辑电路用固定顺序发地址和读/写信号来实现高速数写信号来实现高速数据传输。在此过程中,数据不经过据传输。在此过程中,数据不经过CPU而是直接在外设而是直接在外设和存储器之间传输。和存储器之间传输。7.6 DMA控制器控制器Intel 82377.6.1 DMA控制器芯片控制器芯片Intel 8237的性能概述的性能概述7.6.2 8237的内部组成与结构的内部组成与结构18237的内部组成的内部组成8237的方框图如图的方框图如图7-23所示。所示。
47、主要包含以下几个部分:主要包含以下几个部分:(1)四个独立的)四个独立的DMA通道。通道。(2)定时及控制逻辑电路。)定时及控制逻辑电路。(3)优先级编码逻辑。)优先级编码逻辑。(4)共用寄存器。)共用寄存器。28237的工作周期在设计8237时,规定它具有两种主要的工作周期(或工作状态),即空闲周期和有效周期,每一个周期又是由若干时钟周期组成的。(1)空闲周期(Idle Cycle)。DMA存储器写总线周期如图7-24所示。(2)有效周期()有效周期(Active Cycle)。当处于空闲状态的)。当处于空闲状态的8237的的某一通道接收到外设提出的某一通道接收到外设提出的DMA请求请求DR
48、EQ时,它立即向时,它立即向CPU输出输出HRQ有效信号,在未收到有效信号,在未收到CPU回答时,回答时,8237仍处仍处于编程状态,又称初始状态,记为于编程状态,又称初始状态,记为S0状态。状态。38237的外部结构图的外部结构图8237是具有是具有40个引脚的双列直插式集成电路芯片,其引脚个引脚的双列直插式集成电路芯片,其引脚如图如图7-25所示。所示。48237的工作方式的工作方式8237的各个通道在进行的各个通道在进行DMA传送时,有传送时,有4种工作方式:种工作方式:(1)单字节传送方式。)单字节传送方式。(2)数据块传送。)数据块传送。(3)请求传送。)请求传送。(4)级联方式。)
49、级联方式。58237的的DMA传输类型传输类型DMA所支持的所支持的DMA传送可以在传送可以在I/O接口到存储器、存储接口到存储器、存储器到器到I/O接口以及内存的不同区域之间进行,它们具有不接口以及内存的不同区域之间进行,它们具有不同的特点,所需要的控制信号也不相同。同的特点,所需要的控制信号也不相同。(1)I/O接口到存储器的传送。接口到存储器的传送。(2)存储器到)存储器到I/O接口。接口。(3)存储器到存储器。)存储器到存储器。68237各个通道的优先级及传输速率各个通道的优先级及传输速率(1)优先级。)优先级。8237有两种优先级方案可供编程选择:有两种优先级方案可供编程选择:1)固
50、定优先级:)固定优先级:2)循环优先级:)循环优先级:(2)传送速率。)传送速率。7.6.3 8237的内部寄存器组的内部寄存器组(1)基地址寄存器。)基地址寄存器。(2)基字节数寄存器。)基字节数寄存器。(3)当前地址寄存器。)当前地址寄存器。(4)当前字节数寄存器。)当前字节数寄存器。(5)地址暂存寄存器和字节数暂存寄存器。)地址暂存寄存器和字节数暂存寄存器。(6)方式寄存器。)方式寄存器。方式选择00 请求传输方式01 单字节传输方式10 块传输方式11 级联传输方式D7D6D5D4D3D2D1D00通道00通道10通道20通道3通道选择00 校验传输01 写传输10 读传输11 无意义