版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、微型计算机系统接口 10.1 输入输出接口 10.1.1 输入输出接口概述输入输出接口概述 1. I/O接口功能接口功能 输入输出接口电路位于系统总线(或局部总线)与外设之间,用它来完成系统总线(或局部总线)与外设之间的数据传输,完成系统对外设的控制与响应。从硬件上讲,接口是介于部件与总线之间的电路,适配两者完成数据传输。 (1) 寻址功能寻址功能 对系统地址总线高位进行译码,将译码输出作为片选信号以访问相应的接口电路(芯片),再根据地址总线低位选择被访问接口电路中的具体端口。 (2) 数据锁存与缓冲数据锁存与缓冲 锁存解决外设与主机在速度上的差异,使它们同步工作;缓冲增强接口的驱动能力,使负
2、载趋于平衡。 (3) 时序控制时序控制 接口电路根据系统提供的不同时序信号(由基准的系统时钟派生)与主机协调工作。按照CPU的控制命令和外设的运行状态来组合这些时序信号,产生各种不同的相应操作控制信号。1. I/O接口功能(续)接口功能(续) (4) 对外设的监测与控制对外设的监测与控制 接收CPU送来的命令字或控制信号,对外设进行监测、控制和管理;向主机或CPU提供I/O传输的状态,供主机或CPU处理,使之与外设协调工作。 (5) 中断和中断和DMA管理管理 为使外设与CPU并行工作,或满足实时处理之需,常采用中断方式传送数据;对高速大批量数据传输常采用DMA(直接存储器存取)方式。接口电路
3、应能受理外设的中断请求或DMA请求信号并向CPU申请,接收CPU相应的响应信号并处理与外设的数据传输。 (6) 信息变换信息变换 外设的信息形态与数据格式复杂多样,要求接口电路能在主机与外设之间进行各种信息变换:数/模与模/数转换、并/串与串/并转换、电平转换、数据格式转换等。 主机与外设通过接口传送信息,按所传送信息的内容和功能可分为数据、状态和控制三类,它们各自通过接口内不同的端口寄存器传送而相互区分开来。 按主机与外设之间所传输信息的形态可将其分为三种类型:数字量、模拟量和开关量。2. 接口基本结构 接口电路可以很简单,简单得可以由几个甚至一个三态门构成;以VLSI芯片为主构成的接口电路
4、,其复杂程度有的不亚于8位CPU。接口电路通常做在一块超大规模集成电路接口芯片上,根据需要也有用中小规模集成电路芯片构成的。不同规模和功能的接口电路,其结构虽各有不同,但一般是由寄存器和控制逻辑两大部分组成,每部分又包含几个基本模块,如下图所示。2. 接口基本结构(续) (1) 端口寄存器端口寄存器 这部分包括输入缓冲寄存器、输出缓冲寄存器、控制寄存器和状态寄存器,它们是接口电路的核心,每个寄存器表示一个I/O端口,对应一个I/O端口地址。 数据缓冲寄存器数据缓冲寄存器 输入缓冲寄存器暂时存放输入设备送来的数据,供CPU读取;输出缓冲寄存器暂时存放CPU送出的数据,缓冲后送给输出设备。输入输出
5、缓冲寄存器在高速CPU与低速外设之间起到协调、缓冲作用,实现数据传送的同步。数据缓冲寄存器通常具有三态功能。 控制寄存器控制寄存器 控制寄存器用来存放CPU发来的控制命令和有关信息,以规定接口电路的功能和工作方式。VLSI接口芯片一般具有可编程特性,一个接口芯片具有多种不同的工作方式和功能,可通过编程来设定,使用上十分灵活方便。控制寄存器一般是只写寄存器,其内容只能由CPU写入,不能读出。 状态寄存器状态寄存器 状态寄存器记录外设的当前状态和I/O操作状况。CPU用输入指令读取状态寄存器的内容,从而了解外设的当前状况和数据传输过程中发生的有关情况,据此作出相应判断,执行相应操作,使主机能安全可
6、靠地通过接口完成数据传输。3. 接口分类 计算机各部件与总线之间、各部件相互之间都要经过相应的接口电路连接,接口是组成计算机系统的关键之一。 按接口在计算机系统中所起的作用,可分为三类:系统接口系统接口 这是和主机配套的必不可少的接口,它是微机的一部分,包括存储管理、总线仲裁、中断控制、DMA控制等。通用输入输出接口通用输入输出接口 提供给一般并行或串行外设的通用接口,如并行I/O接口、串行I/O接口等。专用专用I/O接口接口 与专用I/O设备配套的接口,如键盘控制、CRT控制、打印控制、磁盘控制等接口。按接口所连接部件的功能和形态可分为四种:用户交互接口用户交互接口 这类接口接收来自用户的信
7、息或向用户发送信息(数据或命令),完成人机交互。如键盘/显示器接口、光笔/显示器接口、打印机接口、语音识别接口等,它们主要完成信息表示方法和数据传输速率的转换。内务操作接口内务操作接口 这是支撑以处理器为核心的基本系统正常运转、实施基本的控制功能、进行基本处理所必须的接口,包括总线驱动器、数据总线收发器、内存接口、时钟电路等。传感接口传感接口 感知外界被检测对象有关参数、状态及其变化的接口。这种接口能将被检测对象的物理参数模拟量转换成数字量送主机进行处理。控制接口控制接口 连接计算机和控制设备的接口,能将计算机输出的数字量控制信号进行功率放大或数/模转换,进而控制执行机构的动作。 4. I/O
8、端口编址 存储器映象存储器映象I/O编址编址 这种编址方式,把I/O端口同存储器的存储单元一样看待,统一编址。 在可寻址的存储空间中,划出一部分作为I/O端口空间地址,其余大部分用作内存单元,I/O端口和内存单元有不同的地址编号。 在该方式中CPU对存储单元的读写和对I/O端口的输入输出操作都用访问存储器指令,而不用输入输出指令,即控制信号IO/-M(对PC/XT机对而言)都为低电平,而由地址总线上的码值(地址码)区分访问对象是存储单元还是I/O端口,控制信号或指明是读(输入)还是写(输出)。这种方式CPU对存储器和I/O端口的访问如下图(左)所示。 这种编址方式可用丰富的存储器访问指令来直接
9、操作I/O端口数据,方便、高效而灵活,缺点是占去了相当部分的内存空间。单片机通常采用这种编址方法。 I/O端口独立编址端口独立编址 I/O端口和内存单元各自独立编址,CPU访问I/O端口须用专门的输入输出指令。PC系列机的输入和输出指令中,直接寻址I/O端口时用一个字节的地址码,故可寻址28=256个端口;寄存器间接寻址I/O端口用DX表示地址码,有16位,可寻址216=65536个端口。但PC/XT机一般用低10位地址线来表示I/O端口,因此该系统中可安排的I/O端口最多为1024个(210)。4. I/O端口编址(续) I/O端口独立编址(续)端口独立编址(续)在该编址方式中地址总线上出现
10、的地址码究竟表示存储单元地址还是I/O端口地址,以控制信号IO/-M来区分:低电平则表明地址码是存储单元地址,CPU对存储器进行读写;高电平则表明地址码是I/O端口地址,CPU执行输入输出操作。采用这种编址方式,CPU必须以专用的I/O指令访问I/O端口,即CPU以IN类指令输入(读)数据,以OUT类指令输出(写)数据。这种编址方式CPU对存储器和I/O端口的访问如下图(右)所示。I/O端口独立编址不占用内存地址空间,为x86微机所采用;但I/O指令种类少,对I/O端口中数据的处理往往要读入CPU内进行。 10.1.2 微机I/O端口地址配置 80386 CPU可寻址的I/O空间为64KB。两
11、个连续的8位端口可作为一个16位端口,四个连续的8位端口可作为一个32位端口,因此80386的I/O地址空间最多可容纳64K个8位端口,或32K个16位端口,或16K个32位端口,能支持8位、16位及32位I/O设备操作。标识32位端口的口地址应能被4整除,16位端口地址应与偶地址对齐,这样用单个总线周期就能传送32位/16位数据。 对I/O端口采用立即寻址,可寻址256/128/64个8/16/32位端口;采用DX寄存器间接寻址,可寻址65536/32768/16384个8/16/32位端口。 PC/AT机只使用了16位地址线中的10位(A9A0)对外设接口电路进行编址,可寻址1024个I/
12、O端口(000H3FFH)。当A9A800时对系统板上的接口芯片寻址,共256个端口(000H0FFH);当A9A800时对I/O通道上的插件电路寻址,共768个端口(100H3FFH)。 GW-386的I/O系统与IBM PC/AT的I/O系统兼容,也使用了低10位地址线(A9A0)对外设端口进行编址,并且大部分I/O接口电路均由系统板上的82C206 I/O控制器芯片提供。下表是GW-386的I/O地址分配表。10.1.3 I/O端口的寻址与操作 1. I/O端口寻址端口寻址 (1) 直接寻址直接寻址I/O端口端口 输入输出指令中,在操作码后面用一个字节的无符号数n来表示I/O端口地址。因
13、此直接寻址的I/O端口数为256个字节端口,或128个半字端口,或64个字端口,或32个双字端口。在PC系列机中,可用AL一次输入/输出一个字节,也可用AX一次输入/输出一个半字,还可用EAX一次输入/输出一个字。 IN AL,n ;AL(n)字节端口内容 IN AX,n ;AX(n)半字端口内容,n为偶数 IN EAX,n ;EAX(n)字端口内容,n为4的倍数 OUT n,AL ;(n)字节端口AL OUT n,AX ;(n)半字端口AX,n为偶数 OUT n,EAX ;(n)字端口EAX,n为4的倍数1. I/O端口寻址(续)端口寻址(续) (1) DX间接寻址间接寻址I/O端口端口 在
14、输入输出指令中,用DX的当前内容表示所寻找的I/O端口地址;DX有16位,DX间接寻址的I/O端口数大为增加(如前所述)。可分别用AL、AX或EAX一次输入/输出一个字节、一个半字或一个字。 IN AL,DX ;ALDx指向的字节端口内容 IN AX,DX ;AXDX指向的半字端口内容 IN EAX,DX ;EAXDX指向的字端口内容 OUT DX,AL ;DX指向的字节端口AL OUT DX,AX ;DX指向的半字端口AX OUT DX,EAX ;DX指向的字端口EAX2. I/O端口的操作 对I/O端口的操作就是输入和输出。可以输入/输出一个字节、一个半字或一个字;80286及其以后的计算
15、机还支持输入/输出字符串。与字符串操作指令一样 字符串输入指令输入的字节、半字、字或它们的串被送到由ES:EDI或ES:DI(286机)所指向的内存单元;字符串输入时,位于内存中的字符串地址必须事先由ES:EDI 或ES:DI指出, 字符串输出指令输出的是由DS:ESI或DS:SI(286机)所指向的内存区域中的字节、半字、字或它们的串;字符串输出时必须事先由DS:ESI或 DS:SI指出字符串在内存中的地址。 字符串输入/输出的I/O端口隐含地由DX寄存器指示,即I/O寻址为隐含的DX寄存器间接寻址方式。字符串输入/输出指令的格式如下: INSB ;输入字节或字节串 INSW ;输入半字或半
16、字串 INSD ;输入字或字串 INS des ;输入到des指向的内存单元,ES:EDI或ES:DI必须事先指向des单元, ;该单元的属性决定了输入的是字节、半字、字或相应串 OUTSB ;输出字节或字节串 OUTSW ;输出半字或半字串 OUTSD ;输出字或字串 OUTS src ;将src指向的内存单元内容输出,DS:ESI或DS:SI必须事先指向Src ;单元,该单元的属性决定了输出的是字节、半字、字或相应的串上述指令加重复前缀REP可重复执行,连续完成整个串的输入或输出,串的长度事先由ECX或CX指定,EDI(或DI)、ESI(或SI)寄存器的变化方式(增量还是减量变化)由标志寄
17、存器EFLAG的DI标志位规定。 10.2 I/O数据传输方式 10.2.1 无条件传输无条件传输 无条件传输方式又称同步传送方式。使用这种方式时外设总是处于准备好状态,CPU 无需查询其状态而只根据程序中的输入输出指令执行相应操作。 无条件传送的接口电路(输入/输出)如下所示。10.2.2 程序查询传输 查询传送即条件传送,CPU与接口之间有一个应答过程,所以又称异步传送。 大多数外设数据传送、处理的速度较慢,跟不上CPU的高速运转,为使传送可靠,程序需要了解外设的动态情况后才决定是否进行数据传送。 在数据传送之前,程序首先测试外设的状态,当状态符合规定的条件(比如输入设备的下一个输入数据准
18、备好了,或输出接口已经将前一个输出的数据送往输出设备)就进行输入或输出操作,否则就踏步等待或转入其它程序段。 因此,查询传送方式的接口电路中必须有表征外设工作状态的触发器或寄存器以供CPU查询。 查询方式输入接口电路如下图(左)所示。 当数据准备好时,输入设备发出选通信号脉冲,一方面送到锁存器时钟端(CP)将准备好的数据送入锁存器,另一方面送到Ready(准备好)触发器的时钟端(CP),将该触发器置为1(因为该D触发器的D端接高电平+5V),表示输入数据准备就绪。 CPU输入数据时首先查询输入状态端口:数据准备就绪否?程序流程图如下图(右)所示,程序如下: 10.2.2 程序查询传输(续) R
19、PLI: IN AL,PSTATUS ;读入状态 TEST AL,01H ;查状态 JZ RPLI ;未准备好,踏步检查 IN AL,PDATAI ;准备好输入数据 10.2.2 程序查询传输(续) 查询方式输出接口电路如下所示。 当输出设备完成当前数据的输出操作后就来取走CPU送至锁存器中的数据,同时发出一个响应信号,使状态触发器BUSY(忙触发器)异步置零(表示输出数据端口中数据已空)。CPU在输出数据前要先查询输出接口的状态,若输出端口数据已空则向该端口输出数据,否则(未空)表示输出设备还未将前一个输出的数据取走,CPU继续输入并测试状态位。 程序如下: RPLO: IN AL,PSTA
20、TUS TEST AL,80H JNZ RPLO MOV AL,SI OUT PTADAO,AL 10.2.3 中断传输 查询传送虽然简单可靠,但效率低下主机要花费大量时间查询外设状态,等待外设上一次的输入输出过程完成。即主机和外设在外设工作的绝大部分时间内只能串行工作,而外设I/O 操作速度比主机慢得多,使得CPU利用率和系统效率大大降低。主机在一个时间段内只能询问一台外设的状态, 与其交换数据;因此各个外设在I/O操作完成后也只能串行等待CPU来询问,进一步降低了系统的效率。 中断方式可以克服上述缺点在中断传送方式中各个外设和主机并行工作,进行各自的输入或输出操作。当某台外设完成了自身的输
21、入或输出操作(即完成了下一个数据传送的准备)时,便向CPU申请中断,CPU收到中断请求信号后,可暂停正在运行的程序,转去执行为该外设服务的中断服务子程序,完成主机与外设间的数据交换,数据传送完毕仍返回原来被中断的主程序继续执行。 外设的I/O操作速度较慢,中断传送方式恰恰在这段较慢的过程中让主机和各个外设并行工作;仅仅在外设I/O过程完成后要求与主机交换数据时才暂停CPU主程序运行,而CPU传送输入输出的数据到端口是很快的,因此中断方式基本实现了主机和外设的并行工作。 中断方式的接口电路及其工作过程见后述。 10.2.4 DMA(直接存储器存取)方式 中断传送方式要中断主程序,每次都要保护断点
22、、保护现场、进入中断服务子程序,中断服务完毕又要恢复现场、恢复断点、返回主程序,操作繁多步骤重复,对低速外设和数据量不大的I/O操作,这些缺点不明显,中断传送不失为一种行之有效的传送方式。但对成批高速数据传输效率就较低,这时常采用DMA(Direct Memory Access:直接存储器存取)方式。 DMA用硬件在外设和内存之间开辟直接的数据传输通道,这是一种不需要CPU介入的高速数据传输方法,对这一数据传输过程进行控制的硬件称为DMAC(DMA控制器)。一般情况下CPU控制、管理着系统的数据总线、地址总线和控制总线,运行程序;而当进入DMA方式(内存和外设直接交换数据)时,CPU让出上述三
23、类总线:CPU连接这些总线的三态门处于高阻状态,而由DMAC对总线进行控制和管理,直接沟通外设和内存交换数据。 随着VLSI的发展,适应实际的需要,许多DMAC可以在同类或异类两个端口(源和目的)之间传送数据,即还可以在存储器和存储器、I/O设备和I/O设备之间传送数据。这已突破了DMA原本含义。 10.2.5 通道控制方式 通道是具有特殊功能的处理器,有自己的指令和程序专门负责数据输入输出的传输控制。采用通道方式,CPU只负责数据处理,而将传输控制权交给通道,通道和CPU分时使用内存,实现了CPU内部运算同外设数据输入输出操作之间的近乎完全的并行操作,进一步减少了数据I/O对整个系统运行效率
24、的影响。 采用通道方式的输入输出系统,一般使用主机通道设备控制器I/O设备四级连接方式,一台主机可连接多个通道,每个通道可连接若干台不同种类、具有不同传输速率的设备控制器和外设,每个设备控制器可连接一台或几台外设。通道方式增加了CPU与通道操作的并行能力,同时允许用户灵活增加外设数量和种类。 通道是完成输入输出操作的主要部件,CPU启动通道后,通道自动从内存取出指令执行通道管理程序,实施对I/O系统的有效管理和控制,直到数据传输结束再向CPU通告(发中断请求)。 通道的应用实例请参阅8.6.2小节。10.3 可编程中断控制器 10.3.1 中断概述中断概述 1. 中断与异常中断与异常 通常所谓
25、中断,就是在程序运行过程中,由于某种紧急事件的出现而暂停当前程序的执行,将程序的流程转向紧急事件的中断服务程序,待中断处理结束后再返回原来的程序继续运行。处理器为中断程序的处理提供了两种机制:中断(Interrupts)和异常(Exceptions)。中断是由I/O设备触发引起的一个异步事件,异常是处理器正在执行一条指令时检测到一个或多个满足预先设置条件而产生的一个同步事件。处理器对中断和异常的响应本质上是一样的,即响应时处理器都暂停当前程序的执行,转向去执行(已经预先编写好的)用于处理中断或异常的一段程序的过程。 引起计算机程序中断的事件,称为中断源,意即中断请求的来源。中断源通常有以下几种
26、: 外部设备,如打印机、键盘等; 数据通道中断源,如磁盘、磁带等; 实时时钟; 故障源,如电源掉电、除法运算出错等; 软件调用,如系统功能调用、设置断点运行程序等。 1. 中断与异常(续)中断与异常(续) 异常按照通报异常的方式和是否支持引起异常指令的再启动分为故障(Fault)、陷阱(Trap)和失败(Aborts)。 故障故障 Fault是指出现异常条件的指令在执行前就被检测出来,并对它进行处理,然后返回再执行该条指令的异常。如在虚拟存储系统中当CPU访问的“页”不在物理内存中时就出现缺页“故障”,这时操作系统将从磁盘中读取这一“页”,再重新执行该指令。 陷阱陷阱 Trap又称自陷,指发生
27、异常的指令执行后被检测到,并马上进行处理(例如给出报警等),用户所定义的中断就是陷阱的例子。 失败失败 Aborts又称死机,不能确定产生异常的指令所在的具体位置。常常用来通报一些严重错误。 中断服务子程序执行完毕返回的是被中断的下一条指令,而异常故障处理程序的返回地址则指向引起该异常的指令。 2 中断系统功能 中断系统是计算机用中断方式实现所追求功能的软硬件总称。通常在处理器中配置中断机构、在外设接口电路中配置中断控制器,用软件设计各个中断源相应的服务程序。 中断系统能实现如下的功能: 分时操作分时操作 中断系统既可使CPU分时执行多个用户程序和多道作业 (但给每个用户的感觉却是自己正在独占
28、整个系统),还可使多个外 设和CPU并行工作,而每个外设在输入或输出操作完毕都能得到CPU 的及时服务,使之一直处于有效的工作状态,解决高速主机和低速 外设速度不匹配的矛盾,极大提高主机系统吞吐率。 实时处理实时处理 在实时控制系统中,控制对象的许多服务要求是随机发 生的,而且要求立即响应,即时完成,如生产过程中的温度、压力 等参数越界、飞行参数的修正、订票系统的应答等等。 故障处理故障处理 中断系统可及时对外设、CPU本身及其它部分的硬软件 故障进行处理而不致造成错误后果甚至严重损失。 基本功能调用基本功能调用 在PC机中,通过软件中断可实现DOS功能调用和基本 BIOS调用。 3. 中断处
29、理过程 中断处理过程从中断请求开始,接着CPU响应中断并识别中断源,然后执行相应的中断服务子程序,中断服务结束恢复主程序现场后返回主程序的断点处继续执行。中断请求中断请求外部中断源在一次I/O操作完成或者校验出错时,经中断请求输入引脚(INTR或NMI)向CPU提出中断请求。内部中断则是程序运行状态符合特定条件而在CPU内部产生,与外部的中断请求信号无关。在中断接口电路中,可以很方便地通过编程对外部中断源加以屏蔽,禁止某些中断源在一定时间内向CPU申请中断。某些内部中断也可通过对状态/控制标志位的设置来控制其发生。CPU对中断的响应对中断的响应对不同类型的中断请求,CPU响应的条件也是不同的。
30、对内部中断请求,CPU在当前指令执行到最后一个总线周期的最后一个T状态时予以响应,接着就转去执行中断服务子程序。NMI引脚的正跳沿将CPU内中断触发器置“1”,CPU也是在当前指令周期的最后一个T状态对之采样,若为1就进入中断响应总线周期。对经引脚INTR来的可屏蔽中断请求(高电平),CPU是否在当前指令结束时响应中断请求,还视CPU内部标志寄存器FL的中断允许标志位IF而定。当IF=1时则允许响应中断,当前指令结束后进入中断响应总线周期;若IF=0则对INTR引脚上的中断请求不予响应,当前指令执行完毕接着执行下一条指令。IF的状态可用指令来设置。当开始执行重要的程序段而不想被外界中断源中断时
31、,可用指令CLI使IF为0。4. 中断矢量、中断矢量表与中断描述符表 如何找到各个中断源相应的中断服务子程序呢?中断服务子程序的入口地址由段基址和偏移量组成,称为中断矢量。16位微机把各个中断源的中断矢量(由4个字节组成)集中在一起,连续存放在内存的03FFH的1024个存储单元内,形成中断矢量表。在中断矢量表中,每个服务程序入口地址(即中断矢量)有4个字节,占4个存储单元,前两个字节为中断服务子程序入口地址中的偏移量,后两个字节为入口地址中的段地址,都是低字节在前,高字节在后。1024个存储单元可存放256个中断矢量,每个中断矢量在表中位置的序号(0255)就是相应中断源的中断类型码,又叫中
32、断号、中断标识码。因此,中断源的中断类型码乘以4就是该中断源的中断服务子程序入口地址在中断矢量表中的存放位置,如左图所示。10.3.2 可编程中断控制器编程结构 中断控制器对外部多个中断源进行管理。80 x86中断控制逻辑以可编程中断控制器8259A为基础,包含单片或两片级连的8259A(或82C59,与8259A功能相同但速度更快)。现代微机的中断控制逻辑除8259外,还包括高级可编程中断控制器APIC和串行中断控制。 1. 8259A功能功能 8259A芯片是PC系列机普遍使用的基本可编程中断控制器。8259A接收外部中断请求并将中断请求送至CPU的INTR引脚;对申请中断的中断源优先级进
33、行判断,将优先级最高的中断源的中断类型码提供给CPU;当CPU响应中断进入中断服务子程序后,8259A仍负责对外部中断请求的管理:允许优先级高于当前正在处理的中断源的中断请求通过中断控制器送到CPU的INTR端申请中断,实现中断嵌套。其主要功能如下: 具有8级优先权控制,级联使用可扩展至更多级的主从式中断优先级 控制; 对每一级中断源都可以屏蔽禁止或开放允许其中断请求; 当中断被CPU响应时,8259A提供相应的中断类型码,从而能使程序 流程迅速准确地转至中断服务子程序; 有适应不同用途和场合的多种不同工作方式,可通过编程来选择。 2. 8259A结构框图 8259A有8条输入中断请求线IR0
34、IR7,接收和处理由IR0IR7引入的中断请求。处理部分处理部分 8259A的处理部分有中断请求寄存器IRR、中断优先权裁决器PR和当前中断服务寄存器ISR。控制部分控制部分 8259A的控制部分是七个可编程设置的8位寄存器。七个寄存器分为两组,第一组四个寄存器用来存放初始化命令字ICW,分别称为ICW1ICW4。初始化命令字通常是系统启动时由初始化程序设置的,用来设置芯片的工作方式和基本参数。第二组寄存器有三个,用来存放操作命令字OCW,分别称为OCW1OCW3。操作命令字由用户程序设定,用来对中断处理过程作动态控制;在系统运行过程中操作命令字可以被多次设置。ICW和OCW的含义和设置见后述
35、。10.4 可编程计数器/定时器 10.4.1 计数与定时控制计数与定时控制 在控制系统中常常要求某些定时信号,以实现定时、延时及计数控制。例如:定时中断、定时检测、定时扫描、动态存储器刷新、运行系统日历时钟等,以及对外部事件进行的计数和统计等等。 有的高速接口电路按CPU的读写节拍工作,多数接口还需要独自的工作时钟,如一个串行接口电路,在接到CPU送来的数据后,要按照一定的节拍把数据变成串行形式逐位送出。接口电路中所需的节拍由定时电路提供。 控制系统中也常需对外部事件进行计数,外部事件产生输入的计数脉冲,等计数到某定值后,要求CPU给予服务。或者由CPU随时读取输入的计数值,对计数过程进行监
36、控。 对具有准确周期的脉冲信号进行计数,可达到定时的目的。微机系统的定时分为两类内部定时:微机本身运行的定时。计算机的每一种操作都是在精确的 内部定时信号控制下按时间节拍进行的,内部定时由处理器外围的时 钟发生器/驱动器及分频控制电路完成,时序关系固定;外部定时:在计算机与外设或外设与外设之间的定时,外部定时因为 外设和被控对象的不同而导致定时信号的不同。 10.4.1 计数与定时控制(续)计数与定时控制(续) 实现计数和定时有软件和硬件两种方法。 编制相应的计数程序或延时程序交由CPU运行可实现软件计数或延时。这种方法节省硬件、灵活性好,但占用大量处理器时间,降低系统效率。 完全由硬件控制计
37、数/定时,如使用555芯片,它不占用CPU时间,但通用性和灵活性差,改变计数量和定时值必须更改电路硬件参数。 可编程计数器/定时器,现今数字系统广泛使用,其计数/定时功能可由程序灵活设置,作为独立部件和CPU并行工作。 本节重点讨论实现外部定时/计数的可编程定时器/计数器,它可实现如下功能: 多任务分时系统中作为中断信号实现程序的切换; 向I/O端口和外设输出精确的定时信号; 作为通用的波特率发生器; 对外部发生事件(产生的输入脉冲)计数; 实现独立的时间延迟。 10.4.2 可编程计数器/定时器结构 现代微机中,定时与计数控制一般采用8253(如IBM PC机)或8254(286及其后的微机
38、),8254是8253的改进型,它们的内部结构和工作原理相同。386以后的微机,与8254完全兼容的可编程计数器/定时器已经被集成到I/O控制逻辑芯片或总线转换逻辑芯片中。 1. 概述概述 8253/8254采用+5V单一电源,芯片内有三个独立的16位计数器,每个计数器有6种可编程设置的工作方式,对外有3个引脚:计数脉冲输入信号CLK、门控信号GATE和状态输出信号OUT,所有信号都与TTL电平兼容。 8253/8254采用24引脚DIP(双列直插式)封装,与8253不同,8254还另有一种28引脚PLCC封装,能够执行状态回读命令。 8253/8254计数频率为02MHz/010MHz。2.
39、 8253/8254内部结构 芯片由6个摸块组成,每个模块的功能如下数据总线缓冲器及数据总线数据总线缓冲器及数据总线D7 - D0数据总线缓冲器8位、三态、双向,是8253/8254内部总线与系统数据总线(低8位)之间的接口。数据总线缓冲器有三个基本功能:通过编程向8253/8254写入确定其工作方式的命令字;向计数寄存器装入计数初值;读出指定计数器的当前计数值。 10.5 可编程并行输入/输出接口 并行接口以字节/半字/字/双字为单位用若干条线同时传输数据,广泛用在速度快而距离短的场合。并行接口电路在复杂性上差异巨大,有的很简单(仅由三态缓冲器或数据锁存器构成),有的具有复杂的控制输入/输出
40、之功能。并行传输有单向(输入或输出)和双向、同步和异步之分,并行传输没有统一的标准、没有固定的格式要求。并行接口在控制外设数量上变化显著,以前的微型计算机提供给用户的并行口通常按Centronics标准定义插头插座,供打印机等外部设备使用,打印电缆的一端插入微机并口即微机系统的打印机接口电路(打印适配卡)的25针插口,另一端插入到打印机的Centronics型36针插座上。 并行接口经历了简单并行口、不可编程并口、可编程并口、高速可编程并口的发展。 10.5.1 可编程并行接口芯片结构与引脚 可编程并行接口允许处理器以灵活的方法与多种类型的外设连接,用简单的读写命令进行数据传输。常用的可编程接
41、口芯片有Z80-PIO、8255A-PPI、MC6821-PIA等,在PC机中使用的是8255A,286以后的x86微机则使用82C55A。82C55A的结构、引脚及功能与8255A相同,只是工作频率更高、传输速度更快。8255A-PPI(Programmable Peripheral Interface:可编程外设接口)芯片功能强、通用性好、与外设连接简单方便。 1. 结构框图结构框图 8255A结构如下图所示, 它由三部分组成:外设接口部分(通道A/B/C)、 内部逻辑(A组和B组控制电路)和CPU接口部分(数据总线缓冲器、读写控制逻辑)。 (1) 外设接口部分外设接口部分8255A有三个
42、8位数据通道A、B、C,这三个通道在功能上各有特点, 都可编程设置为输入或输出。通道通道A A 通道A具有1个8位数据输入锁存器和一个8位数据输出锁存器缓冲器,输入或输出时均对数据进行锁存。通道通道B B 通道B具有1个8位数据输入缓冲器和一个8位数据输出锁存器缓冲器。通道通道C C 通道C具有1个8位数据输入缓冲器和一个8位数据输出锁存器缓冲器,可分成两个4位端口,每个4位端口包含一个4位输入缓冲器和一个4位输出锁存器缓冲器,这两个4位端口可以和通道A、通道B一样作为输入或输出的数据通道。通道A和通道B常常作为独立的输入通道或输出通道进行数据传输,而通道C除了进行基本的数据输入或输出外,还可
43、配合通道A和通道B进行工作,当通道A和通道B处于非基本输入输出方式时,规定通道C的若干位提供通道A和通道B状态信号、外设选通/应答信号及中断请求信号。 (2) 内部逻辑内部逻辑有A、B两组控制逻辑。每组控制电路在读写逻辑控制下接收CPU送来的控制字并发出相应命令到各自的通道,控制各个通道的工作方式及I/O操作。还可以根据CPU 的命令字对通道C的每一位进行置位或复位。A组控制逻辑控制通道A和通道C的高4位(PC7PC4)。B组控制逻辑控制通道B和通道C的低4位(PC3PC0)。(3) (3) CPUCPU接口部分接口部分 这部分包括数据总线缓冲器和读写控制逻辑。数据总线缓冲器是8255A与系统
44、数据总线的接口,是8位双向三态缓冲器,由读写控制逻辑实施三态控制。所有I/O数据的输入和输出,以及CPU写入8255A的控制字、从8255A读出的通道状态信息,都通过这个缓冲器传送。读写控制逻辑接收系统控制信号RESET、-WR、-RD和地址总线的A1、A0(或A2、A1)、地址译码信号-CS,对A组和B组控制逻辑实施控制,管理内部和外部数据、状态或控制字的传送。 WRRDCS2. 引脚及其功能 右图是8255A芯片引脚图,40条引脚可分为两部分:与外设连接部分及与CPU连接部分。(1) 与外设连接的引脚与外设连接的引脚 PA7PA0:通道A数据线, PB7PB0:通道B数据线, PC7PC0
45、:通道C数据线。 24条引脚全部为双向三态,PB7PB0和PC7PC0V时输出1mA),因此通常选择通道B和通道C作为输出通道。CSCSRDWR(2) 与与CPU连接的引脚连接的引脚数据引脚(8根)和控制引脚(6根)。数据引脚:D7D0,双向三态,用于与系统数据总线相连接。控制引脚:6条,全部为输入。-CS(Chip Select):芯片选择,输入,低电平有效。只有当该引脚有效时芯片才被CPU选中,与之通讯。通常接译码器输出端。A1和A0:通道选择。一般对应接地址总线低2位(有的系统接A2和A1),这两位的四种组合状态分别选择芯片内部的通道A(00)、通道B(01)、通道C(10)和控制寄存器
46、(11)。 CSCS2. 引脚及其功能(续) -RD(Read):读信号,输入,低电平有效。当芯片被选中并且该引脚有效时控制8255A送出数据或状态信息到系统数据总线,供CPU读取。 -WR(Write):写信号,输入,低电平有效。当芯片被选中并且该引脚有效时控制把CPU输出的数据或命令写入到8255A。 RESET:复位信号,输入,高电平有效。该引脚有效时8255A复位。复位结果:8255A所有内部寄存器(包括控制寄存器)全部清除为0, 所有通道都被置为输入方式, 24条I/O引脚为高阻状态。 3. 端口选择及传输控制 一片8255A有4个端口地址:通道A、B、C和控制寄存器。A0、A1、-
47、CS、-RD和-WR等5个控制信号组合可实现对4个端口的寻址和各种不同的操作,这5个信号组合所实现的各种功能如下表所示。 8255A整个芯片只有一个控制寄存器,而不是每个通道都含有控制寄存器(如Z80-PIO、M6820-PIA那样)。 三个通道的工作方式控制字是一次写入共同的控制寄存器,同时决定各通道的工作方式。8255A芯片三个通道A、B、C是三个数据端口,各用一个地址表示,它们都是可读可写的;而控制寄存器(控制端口)只能写不能读,读控制寄存器是非法操作。 10.5.2 可编程并行接口芯片控制字 1. 8255A工作方式工作方式 8255A有三种工作方式: 方式方式0 0(Model 0)
48、 没有联络信号的基本输入输出方式 方式方式1 1(Model 1) 使用应答信号的选通输入输出方式 方式方式2 2(Model 2) 使用应答信号的双向数据传送方式 (1) 工作方式工作方式0 该方式又称基本输入输出方式。它不需要任何联络信号,可分别提供两个8位通道(A、B)和两个4位通道(C的高4位和低4位),每个通道都可以用方式控制字分别设置为输入或输出。 (2) 工作方式工作方式1 该方式又称选通输入输出方式。通道A和通道B可用方式控制字分别设置为方式1输入或方式1输出,同时分别用通道C的相应三个引脚作为联络线和中断请求线,以应答方式控制通道A、B的数据传送。这种情况下通道C剩余引脚只能
49、工作在方式0输入或输出(由方式字的相应位决定)。 (3) 工作方式工作方式2 该方式又称双向选通传输方式。只有A通道具有这种用一个通道既作输入又作输出的双向I/O数据传输方式。在这种方式下,输入和输出的数据都可以锁存,通道C的PC3PC7共5条引线作为双向传送的应答联络线。2. 方式选择控制字 8255A三个通道的工作方式和传输方向(输入还是输出)由CPU向8255A的控制寄存器写入方式选择控制字来决定,该字的格式如下图所示。D7=1是方式字的标志位,方式控制字可分别设置通道A和通道B的工作方式及传输方向,通道C高4位与低4位的输入或输出。复位后,A、B、C三通道都被置成输入方式,直至重新写入
50、方式控制字。 3. 通道C按位置位/复位控制字 当通道A或B工作于方式2或方式1时,输入或输出操作既可采用查询方式也可采用中断方式;若采用中断方式,就必须将通道A或通道B内的中断允许触发器置成“1”,在初始化编程时通道A和B内的中断允许触发器受通道C的相应位控制,需要用输出指令对通道C的对应位置位(允许中断),若不允许中断(例如工作在查询方式)则应将通道C的对应位复位。当通道A或B工作在方式0时,可将通道C的高(或低)4位中的某些位当作联络信号线使用,在程序中适时地对通道C的相应位置位或复位,以实现和外设之间的联络和信息传输。这些都需要对通道C按位实施置位或复位操作。可用输出指令对通道C的8位
51、中任何一位置位或复位(每次输出只影响指定位,别的位保持不变) 。 对通道C按位实施置位复位的控制字格式如下图所示,该控制字也写入8255A的控制寄存器端口。 10.6 DMA控制器 DMA控制器简称DMAC(DMA Controller),是实现DMA功能的控制电路。DMAC有不同的种类,微机中常用的是8237A,现代微机集成在南桥芯片组中DMAC逻辑与之兼容。 10.6.1 DMAC基本结构基本结构 1. 8237A主要功能主要功能 8237A用硬件控制逻辑实现内存和I/O端口(或其它源和目标)之间的快速数据直接传输,主要功能如下: n 单片8237A有4个独立的DMA通道。多片级联使用可增
52、加DMA通道数: 2片级联提供7个DMA通道,5片级联提供16个通道; n可编程设置多种DMA数据传输方式; n每个通道一次DMA传送的字节数可编程设置,最多达64K; n可编程设置DMA传送的内存地址; n 编程设置芯片内各个通道DMA请求的优先级方式:固定优先级或循环 优先级; 可编程允许或禁止每一个通道的DMA操作,编程允许或禁止芯片工作。 2. 8237A 基本结构 2. 8237A基本结构(续) (1) 控制逻辑控制逻辑 定时和控制逻辑 在空闲周期,8237A作为CPU的I/O芯片,接收系统送来的-CS、-IOW或-IOR控制信号,由CPU对8237A内部的寄存器进行写(初始化编程)
53、或读操作。 在DMA周期,根据初始化时写入的有关控制字内容,在输入时钟CLK的定时控制下,产生8237A内部的定时信号和外部的控制信号,控制DMA传输操作。 优先权控制逻辑 根据控制字优先级的设定,裁决各个DMA通道的优先权次序,解决多路DMA请求同时发生时出现的优先权竞争。 命令控制逻辑 在空闲周期接收经I/O2缓冲器送来的地址A3A0对片内的寄存器寻址,进行写(初始化编程)或读。 在DMA操作周期,对方式字和控制字等进行译码,产生相应控制信号控制DMA操作。2. 8237A基本结构(续) (2) 缓冲器缓冲器 I/O1缓冲器 双向数据缓冲器,是8237A与系统数据总线之间的接口。 在空闲周
54、期传输双向8位数据,CPU对8237A进行写(初始化编程)或读。 在DMA操作周期,高8位地址(A15A8)经此数据缓冲器输出到系统数据线D7D0,并由ADSTB选通脉冲打入外部的地址锁存器中。 I/O2缓冲器与输出缓冲器 在空闲周期I/O2缓冲器为输入状态,接收A3A0对片内寄存器寻址。 在DMA周期,低8位地址线A3A0和A7A4经I/O2缓冲器和输出缓冲器送出。 (3) 内部寄存器内部寄存器 8237A内部寄存器有12种共27个。4个通道中每个通道均有5个寄存器(1个6位,4个16位);各通道共用的寄存器有7个(2个16位,3个8位,2个4位),还有1个先/后触发器(一位)。3. 823
55、7A引脚 8237A采用DIP40引脚封装,其中5#引脚未用,如右图所示。 (1) 时序和控制逻辑引脚时序和控制逻辑引脚(11根)CLK 时钟输入时钟输入 用于芯片内部操作定时和数据传输速率控制。8237A为3MHz,8237A-5为5MHz。 -CS 片选信号片选信号 输入,低电平有效。空闲周期作为CPU的I/O器件,有效选中8237A。RESET 复位信号复位信号 输入,高电平有效。被复位时,屏蔽寄存器置位(禁止4个通道DMA请求),其余寄存器清零,芯片处于空闲周期,所有三态控制线处于高阻状态。复位后必须经初始化编程才能进入DMA操作。READY 准备就绪准备就绪 输入,高电平有效当作为传输源或目标的存储器、I/O器件速度较慢而不能在规定的时段内完成数据传输时,READY为低电平,自动在DMA总线周期内插入等待状态,直到数据准备就绪,READY恢复为高电平,完成数据传输。CSCSADSTB 地址选通地址选通 输出,高电平有效ADSTB有效,将DMA传输通道的当前地址寄存器的高8位经由I/O1缓冲器和数据总线D7D0锁存到外部地址锁存器中。AEN 地址允许地址允许 输出,高电平有效AEN有效,选通外部地址锁存器的内容到系统地址总线A15A8上,与芯片直接输出的低8位地址共同构成存储器的低16位地址。 3. 8237A引脚(续) 3.
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 吊装作业防倾覆处置方案
- 敬老院老人一氧化碳中毒应急演练脚本
- 医疗器械采购培训试题及答案
- 2026年专业继续教育试题及答案
- (完整版)PE排水管道专项施工方案
- CBD项目临时办公区搭建施工方案
- 项目管理师考试真题及答案
- 安全生产应急演练实施责任制管理规定
- 中外历史纲要(下) 选择性必修1 第15单元 第42讲 第2课时 近代以来中国的官员选拔与管理
- 公安脱岗检讨书
- 山西省律师服务收费指引(试行)
- 采购红黑榜制度
- 2025年湖南省怀化市检察官、法官入员额考试真题(附答案)
- 2026澳门华人银行股份有限公司招聘笔试备考题库及答案解析
- 研发部内部资料管理制度
- 2026年《中国卫生健康统计年鉴》数据分析与报告
- 药品包装岗位培训
- 野战救护技术
- 2026年中小学生安全知识竞赛题库及答案(共133题)
- 消防训练安全事故防范与应对
- 输液反应应急预案培训大纲
评论
0/150
提交评论