第5章输入输出及中断.ppt_第1页
第5章输入输出及中断.ppt_第2页
第5章输入输出及中断.ppt_第3页
第5章输入输出及中断.ppt_第4页
第5章输入输出及中断.ppt_第5页
已阅读5页,还剩97页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1,第5章数字量输入输出,5.1概述5.2系统总线及接口5.3中断控制系统5.4计数定时接口5.5并行输入输出接口,2,5.1概述,3,5.1.1I/O信号的形式,四种类型,开关量:状态量,脉冲量:两个稳态之间的变化,4,I/O接口:将外设连接到总线上的一组逻辑电路的总称。用以实现外设与主机之间的信息交换I/O接口功能:1)信号的形式变换2)电平转换和放大3)锁存及缓冲4)I/O定向(译码)5)并行及串行转换,5.1.2I/O接口,5,2.I/O的内容分类1)数据信息2)状态信息:表示外设当前所处的工作状态3)控制信息:由CPU发出的,用于控制I/O接口的工作方式以及外设的启动和停止等。,6,3.I/O接口的构成,7,I/O端口的访问1、输入指令格式:IN累加器,端口功能:把端口中数据读到AL、或AX中。例:INAL,21HMOVDX,201HINAX,DX2、输出指令格式:OUT端口,累加器功能:把寄存器AL、或AX中数据输出到端口。例:OUT32H,ALMOVDX,201HINDX,AX,8,5.1.3I/O编址1.存储器映像编址从存储器地址中分出一部分给I/O端口使用,可用访问存储器的方法来访问I/O端口。2.I/O单独编址CPU使用专门的I/O指令及控制信号进行I/O访问。,9,5.1.4I/O的控制方式,程序控制传递方式,特点:(1)以CPU为中心,控制来自CPU,通过预先编写好的I/O程序实现数据的传送。(2)速度较低,传送路径经过CPU内部寄存器同时数据I/O响应也比较慢。,10,1.直接传送方式(无条件传送方式、同步传送方式)特点:1.适用于外设动作时间固定且已知的情况,在CPU与外设进行数据传送时,外设保证已准备好,如开关,发光二极管等2.要求严格的时序配合。方法:CPU不查询外设工作状态,与外设速度的匹配通过在软件上延时完成,在程序中直接用I/O指令完成与外设的数据传送。优点:软件及接口硬件简单缺点:CPU效率低,只适用于简单外设,适应范围较窄,5.1.4I/O的控制方式,11,2.查询方式(异步传送方式)传送数据前先检查外设状态,在状态满足条件时才可传送数据,否则等待。优点:软件比较简单缺点:CPU花大量的时间进行状态查询,CPU效率较低,数据传送的实时性差,速度较慢,适用场合:外设并不总是准备好对传送速率和效率要求不高对外设及接口的要求:外设应提供设备状态信息接口应具备状态端口,12,输入数据,例如:某一外设,当其为CPU准备好数据后,I/O端口地址2的D0位为1;当数据未准备好时,该位为0。WAIT:INAL,2TESTAL,1JZWAIT;未准备好,CPU继续查询;若准备好,CPU可读入数据,13,3中断传送方式为提高系统的工作效率,充分发挥CPU的高速运算能力,引入了“中断”系统,利用中断来实现CPU与外设之间的数据传送,这就是中断传送方式。,特点:外设在需要时向CPU提出请求,CPU再去为它服务。服务结束后或在外设不需要时,CPU可执行自己的程序。中断使CPU和外设以及外设之间能并行工作。,优点:CPU效率高,实时性好,速度快缺点:程序编制较为复杂,14,以上三种I/O方式的共性,均需CPU作为中介:软件:外设与内存之间的数据传送是通过CPU执行程序来完成的(PIO方式)硬件:I/O接口和存储器的读写控制信号、地址信号都是由CPU发出的缺点:程序的执行速度限定了传送的最大速度(约为几十KB/s),15,4.DMA(直接存储器访问)方式外设和内存之间直接传送数据的方式,即DMA传送方式。在DMA传送方式中,对这一数据传送过程进行控制的硬件称为DMA控制器(DMAC)。特点:外设直接与存储器进行数据交换,不需要CPU干预也不需软件介入,数据传输速度快。总线由DMA控制器(DMAC)进行控制(CPU要放弃总线控制权),内存/外设的地址和读写控制信号均由DMAC提供。,16,5.其他方式例:I/O处理机8089,17,5.2系统总线及接口,5.2.1总线概述概念:多个电路传送信号的公共通道特点:1)多信号源2)被分时使用3)由主设备控制,18,2.总线的分级1)片内总线CPU内部总线2)系统级总线计算机机箱内部,插卡与插卡之间的连接总线3)设备级总线各种I/O设备和计算机之间,位于设备机箱外的总线,19,20,5.2.2系统总线标准规定接插件的几何尺寸、引脚排序、电路信号名称及其电气特性等PC机:使用IBMPC/XT总线、ISA总线及PCI总线工控机:STD总线及PC104总线,21,22,接口举例P290,1.简单输入接口查看8个开关的开关状态,74LS244单向,4个三态门为一组,共2组,MOVDX,218HINAL,DX,23,2.简单输出接口,控制发光二极管的明灭,MOVDX,219HOUTDX,AL,24,74LS74,74LS74双通道上升沿触发的D触发器,25,74LS74,26,最小模式下读时序,27,3.接口应用举例,计算机乙给计算机甲传送数据状态信息:BUSY选通信号:STROBE,28,计算机乙:先查询BUSY状态,若BUSY=1,继续查询,直到BUSY=0,表示不忙,输出字节DATA1DATA8;同时用STROBE使得373锁存DATA1DATA8,并将D触发器置1,使BUSY=1计算机甲:先通过D0读入BUSY的状态,若D0=1,表示计算机乙还没准备好数据,继续查询,直到D0=0,读数据,并清除BUSY,告诉计算机乙可以发送下一个数据。,29,计算机甲用查询方式输入数据的程序MOVDX,CS1INAL,DXMOVCX,DELAYTIMECHKS:MOVDX,CS0INAL,DXTESTAL,00000001BJZDATINLOOPCHKSDATIN:MOVDX,CS1INAL,DX,30,31,32,5.3中断控制系统5.3.1中断的基本概念中断外设随机地(指主程序运行到任何一条指令时)或程序预先安排产生中断请求信号,暂停CPU正在运行的程序,转入执行称为中断服务的子程序,中断服务完毕后,返回到主程序被中断处继续执行的过程。中断源引起中断的事件,33,一次典型的中断,34,中断分类,35,硬件中断由外部硬件产生的,也称外部中断。,软件中断CPU根据软件的某些指令或者软件对标志寄存器某个标志位的设置而产生的,由于它与外部中断电路完全无关,故称为内部中断。,36,8086/8088中断源类型:,37,如何获取软中断相应的中断类型码中断类型码是自动形成的。0型中断除法出错中断1型中断单步中断3型中断断点中断4型中断溢出中断INTn指令,其类型码为指令中给定的n。,38,外部中断硬中断非屏蔽中断NMI引脚产生的中断,不受IF控制,类型号为2。可屏蔽中断由CPU的INTR端接收可屏蔽中断。受IF控制,只有当IF=1,在一条指令执行结束后,CPU才能响应可屏蔽中断的请求。,39,可屏蔽中断的响应,40,41,中断矢量表存放中断地址的一段内存空间称中断矢量表。,存放各类中断的中断服务程序的入口地址表的地址位于内存的00000000000003FFH(即0段的000003FFH)大小为1KB,共256个入口每个入口占用4个单元,依次为IP:CS,低字为段内偏移,高字为段基址,42,IP,CS,中断类型码与中断向量所在位置(中断向量地址指针)之间的对应关系为:中断向量地址指针=4*中断类型码,43,取得了类型码后的处理过程:类型码*4向量表指针。标志寄存器FR入栈,保护各个标志。清除IF和TF标志,屏蔽新的INTR中断和单步中断。保存断点(断点处IP和CS压栈,先压CS后压IP)。从中断向量表中取出中断服务程序入口地址分别送入IP和CS中。按新的地址执行中断服务程序。,44,例:中断类型码为20H(32)的中断源所对应的中断服务程序首址存放在00000080H(4*20H=80H)开始的4个单元中。若在0080H至0083H这4个单元中存放的值分别为10H、20H、30H、40H,则该系统中20H号中断所对应的中断处理(服务)程序入口地址为40302010H,45,各类中断的优先权及中断响应8086/8088系统中,中断优先权次序从高到低为:除法出错、INTn、INTO、NMI、INTR、单步中断。除单步之外的内部优先权最高,其次是非屏蔽中断,再次是可屏蔽中断,而单步最低。,46,5.5并行输入输出接口,并行通信就是把一个字符的全部n个数据位用n条线同时进行传输。特点:速度快、距离短、成本高并行接口:实现并行通信的接口,47,典型的并行接口和外设连接的示意图:,寄存CPU对接口的控制命令,暂存I/O数据,提供各种状态位供CPU查询,外设把数据送给接口时,使其成为高电平,接口收到数据后将其置1发给外设,外设接到后,撤销数据和准备好信号,接口收到数据后,在状态寄存器中设置“输入准备好”信号,CPU收到数据后,接口清除“输入准备好”信号,使数据总线处于高阻,48,可编程并行接口的特点:1.每个芯片集成了多个独立的并行数据传输通道,每个通道都可单独编程设置工作方式2.每个通道上都提供状态查询功能,49,5.5.1可编程并行接口Intel8255A18255A的引脚及结构,可编程3端口并行接口芯片,50,51,注意:因为8086有16根数据线,和8位的接口部件相连时,一般把数据线的低8位和接口部件的数据线相连,所以接口部件必须是偶地址。在8086系统中,将8255A的A1、A0引脚分别接向系统总线A2、A1,并且CPU对8255A的端口进行访问时,应将其地址最低位A0设置为0。,52,2)与外设相连的引脚24个PA7PA0端口A数据线PB7PB0端口B数据线PC7PC0端口C数据线,53,3个8位数据端口A、B、C,54,通常使用方法:(1)端口A、B作为独立的输入或者输出端口(2)端口C配合端口A、B。通过方式控制命令分成2个4位端口,传送控制和状态信息。,端口A:输入输出均锁存,数据不易丢失端口B:输入不锁存,输出锁存端口C:输入不锁存,输出锁存,55,8255A的内部结构,56,两组控制,57,8255A方式选择注意:,(1)三种基本工作方式,(2)只有端口A能工作在方式2,(3)同一组的两端口可分别工作在输入和输出方式,2.8255A的工作方式及编程,58,(1)8255A的控制字根据D7位的状态来决定控制字分两类。,59,方式选择控制字,1,B组(D2D1D0),A组(D6D5D4D3),60,例:已知8255A芯片的四个端口地址是0E0H、0E2H、0E4H和0E6H,要求工作方式如下:端口A方式0,输出;端口B方式0,输入;端口C高四位输出;端口C低四位输入解:8255A的方式选择控制字,83H,以下指令完成工作方式的选择:MOVAL,83H;方式选择控制字送ALOUT0E6H,AL;方式选择控制字输出给8255A控制端口,61,(2)端口C置位/复位控制字(D7=0),0,此控制字必须写入8255A的控制口,62,例:把端口C的PC7位置“0”控制字为00001110B,十六进制的0EH端口C的第五位置“1”控制字应为00001011,即十六进制的0BH,设8255A控制口地址为0E6H,则可用下列程序实现:MOVAL,0EH;PC7清0,控制字送ALMOVDX,00E6H;控制口地址送DXOUTDX,AL;对PC7清0操作MOVAL,0BH;PC5置1控制字送ALOUTDX,AL;对PC5置1操作,63,64,(2)8255A的工作方式方式0基本输入/输出方式A口、B口、C上、C下均可作为输入或输出口,且各端口均是独立的。通常使用方法:(1)端口A、B作为独立的输入或者输出端口(2)端口C配合端口A、B。通过方式控制命令分成2个4位端口,传送控制和状态信息。,使用场合:1)同步传送(无条件传送方式)2)查询式传送,65,66,方式1选通的输入/输出方式必须利用端口C提供的选通信号和应答信号,67,方式1输出:,中断请求信号,输出缓冲器满信号,外设响应信号,中断允许信号PC6,68,方式2双向传输方式(只适用于端口A),输出中断允许信号,输入中断允许信号,INTE1通过PC6的置位/复位操作INTE2通过PC4的置位/复位操作,69,5.5.28255A应用举例某接口设计采用一片8255A实现。其端口A连接并行打印机,端口B连接纸带读入机。8255A工作于方式0,以查询方式传送数据。对8255A初始化并编写相关的程序。,外设与CPU的联络信号的意义为:DATASTROBE数据选通信号。打印机要有一个宽度为0.5s的脉冲,作为数据选通信号。BUSY当其有效时为高电平,此时表示打印机“忙”,不能接收新的输出数据。这是打印机的状态信号。DRIVERIGHT此信号驱动纸带前进一步,并读一个字符。它是8255A给外设的启动信号。DATAREADY纸带读入器的状态信号。其为高电平表示纸带读入器已将数据准备好。,70,数据选通信号,8255A给外设的启动信号,纸带读入器的状态信号,打印机的状态信号,71,设8255A的端口地址为:端口A:00E0H端口B:00E2H端口C:00E4H控制口:00E6H解:据题意:端口A:输出端口B:输入端口C上:输出端口C下:输入8255A方式控制字应该为:10000011B=83H,72,2)打印机驱动程序段LPST:INAL,0E4H;将端口C各位状态读入ALANDAL,04H;通过PC2测试BUSY状态JNZLPST;结果不为0,说明忙信号为“1”,应等待MOVAL,CLOUT0E0H,AL;如不忙,则把CL中字符通过端口A输出MOVAL,08HOUT0E6H,AL;使PC4=0,即为低INCALOUT0E6H,AL;再使PC4=1,形成一个负脉冲,73,3)纸带读入机驱动程序段RDST:MOVAL,0AH;使PC5=0,启动纸带读入机OUT0E6H,ALRDLP:INAL,0E4H;读入端口C的内容ANDAL,08HJZRDLP;未准备好,则等待INAL,0E2H;已准备好,则从端口B输入数据MOVCL,AL;将输入数据保存到CL中MOVAL,0BHOUT0E6H,AL;使PC5=1,断开纸带输入机,74,Intel8255A在IBMPC/XT中的应用,IBMPC/XT的系统板上装有一片8255A,工作于方式0,主要用于检测系统的配置及是否发生某些错误,还用来管理键盘工作。其地址分配及作用如下:A口:地址60H,开机自检时输出部件检测码,以逐个检测有关部件是否正常工作。自检完成后,又改设为输入状态,输入键盘扫描码B口:地址61H,输出,用来输出系统内部控制信号,完成对键盘控制并检测RAM及I/O通道,还可控制系统板上8253A的计数器CNT2计数及扬声器发声。C口:地址62H,输入,用于测试状态和系统配置情况控制寄存器:地址63H,75,76,1正常运行0自检运行,1接入80870未接入8087,系统板RAM10128KB01192KB11256KB,显示器方式10彩色40*2501彩色80*2511单色,软盘驱动器001个102个013个114个,DIP开关,77,BIOS中对8255A的编程:MOVAL,10001001BOUT63H,ALMOVAL,10100101BOUT61H,AL;PB3=0,欲读DIP开关低4位INAL,62H;读C口ANDAL,0FHMOVAH,ALMOVAL,10101101BOUT61H,AL;PB3=1,欲读DIP开关高4位,NOPINAL,62HMOVCL,4ROLAL,CLANDAL,0F0HORAL,AHMOVAL,10011001BOUT63H,AL,78,5.4计数器/定时器接口电路5.4.1概述脉冲量:两个稳态之间的变化脉冲量特点:何时跳变、跳变的次数、跳变的频率等计数/定时电路的特征:1)计数容量8位/16位2)计数频率8253最高工作频率为2.6MHz3)计数过程4)输出信号,79,5.4.2可编程计数定时器82531.Intel8253的工作原理(1)8253内部结构和引脚如图,80,1)数据总线缓冲器数据总线缓冲器是8位、双向、三态的缓冲2)读写逻辑电路CS#:片选信号,输入,低电平有效。A1、A0:输入信号,用来对3个计数器和控制寄存器进行寻址,与CPU的系统地址线相连。WR:写引脚,输入,低电平有效。RD#:读引脚,输入,低电平有效WR#:写引脚,输入,低电平有效,81,82,3)计数通道3个相互独立的计数器0、计数器1和计数器2。每个计数器包含(1)一个8位的控制寄存器(3个计数器的控制寄存器的地址是共同的)(2)一个16位的初值寄存器CR(3)一个16位计数执行单元CE(4)一个16位输出锁存器OL,83,CLK:计数时钟,输入。用于输入定时脉冲或计数脉冲信号。GATE:门控信号,输入,由外部信号通过GATE端控制计数器的启动计数和停止计数的操作。OUT:时间到或计数结束输出引脚。当计数器计数到0时,在OUT引脚有输出。,84,(2)计数启动软件启动:用输出指令向计数器赋予初值来启动。硬件启动:写入计数初值后,还不能启动计数,需要门控信号GATE变成高电平,才能开始计数。,85,2.Intel8253的编程(1)控制字,86,(2)写计数初值初值范围:二进制:1FFFFH+1(0)BCD码:19999+1(0),注意:,8253初始化的顺序(1)先将控制字写入控制寄存器中。(2)把定时或计数的初值写入相应计数器通道。注意:如果计数值为16位,则要CPU执行两次输出指令完成初值的设置,即先写低字节,再写高字节。,87,例设在8086系统中有一片8253,其端口地址分配是:通道0为120H,通道1为122H,通道2为124H,控制端口为126H。要求对其通道0进行初始化,使其工作于方式0、二进制计数、计数初始值为6688H。经分析可知应写入8253的控制字为30H。其初始化程序段为:MOVAL,30H;控制字送ALMOVDX,126H;控制口地址送DXOUTDX,AL;向控制口写入控制字MOVAL,88H;低8位计数值是88HMOVDX,120H;通道0端口地址送DXOUTDX,AL;向通道0写入计数初值的低8位MOVAL,66H;高8位计数值为66HOUTDX,AL;向通道0写入计数初值的高8位,88,3.8253的工作方式可编程计数定时器8253有两个基本功能,即定时和计数。还可以作为频率发生器、分频器、实时钟、单脉冲发生器等。这些功能是通过对8253编程,写入方式控制字来完成的。,89,1.方式0计数结束产生中断该方式下,门控信号决定计数的停止或继续,装入初值决定计数过程重新开始,计数过程波形图。,90,2.方式1可编程单稳态该方式是在门控信号的作用下才开始计数,计数完成后,GATE来一次正跳变,计数过程重复一次。若计数期间GATE发生正跳变,则计数过程又从初值开始计数。若写入新的计数值,则要等到下一个GATE信号启动,才按新的计数值计数。,91,3.方式2速率发生器该方式下即可软件启动,又可硬件启动。且可以重复工作,启动计数过程之后,需要GATE信号保持高电平,OUT持续输出占空比为(N-1)/N的脉冲。GATE=0则计数中止。在GATE再变高后,计数器重新置入计数初值,开始计数。,注意,92,4.方式3方波发生器工作过程同方式2,只是输出方波。,若计数初值为奇数,则占空比为(N+1)/2N,注意,93,5.方式4软件触发选通方式GATE门控信号只是用来允许或不允许定时操作,计数过程只执行一次。,从写入计数初值开始算起,输出波形占空比为(N+1)/(N+2),注意,94,6.方式5硬件触发选通方式完全由GATE上升沿硬件启动,不自动重复。,只要GATE端产生了上升沿,将给计数器置入初值,重新开始计数,,注意,95,96,8253在IBMPC/XT系统中的应用,97,OUT0每秒发出18.2次中断信号,产生日时钟;计数初值为1.19M/18.2=65385OUT1每15us产生一次负脉冲,对动态RAM刷新,初值为15*1.19=18OUT2输出方波,扬声器发声,初值为1331。,98,2.8253的编程1)初始化编程;对CNT0初始化MOVAL,00110110BOUT43H,ALMOVAX,65385OUT40H,ALMOVAL,AHOUT40H,AL;对CNT1初始化MOVAL,01010100BOUT43H,ALMOVAL,18OUT41H,AL,;对CNT2初始化MOVAL,10110110BOUT43H,ALMOVAX,1331OUT

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论