输入输出和中断技术_第1页
输入输出和中断技术_第2页
输入输出和中断技术_第3页
输入输出和中断技术_第4页
输入输出和中断技术_第5页
已阅读5页,还剩138页未读 继续免费阅读

下载本文档

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

文档简介

第六章输入输出和中断技术,教学内容:在整体上对输入输出系统、I/O接口、基本输入输出方式及中断控制技术有一定的了解,并能够利用简单的接口芯片实现外设与系统的连接和信息传送。,教学目标:了解I/O系统、I/O接口和I/O端口的一般概念了解I/O端口的编址方式深入理解基本输入输出方法及中断控制技术掌握简单接口芯片的应用,6.1输入输出系统概述6.2简单接口电路6.3基本输入输出方法6.4中断技术6.5可编程中断控制器8259A,6.1输入输出系统概述,微型计算机中I/O接口的作用,I/O设备,I/O接口,I/O软件,6.1I/O系统的特点,I/O接口的定义把外设连接到总线上的一组逻辑电路的总称。实现外设与主机之间的信息交换。特点:复杂性异步性实时性与设备无关性,6.1I/O接口的基本功能,I/O接口要解决的问题速度匹配(Buffer)信号电平和驱动能力(电平转换器、驱动器)信号形式匹配(A/D、D/A)信息格式(字节流、块、数据包、帧)时序匹配(定时关系)总线隔离(三态门),I/O接口的功能,I/O地址译码与设备选择信息的输入输出命令、数据和状态的缓冲与锁存信息转换中断或DMA管理功能可编程功能,6.1.3I/O端口的编址方式,端口与内存的统一编址,特点:也称为存储器映射编制方式,指令及控制信号统一内存地址资源减少从指令上不易区分当前操作,内存地址960KB,I/O地址64KB,00000H,EFFFFH,FFFFFH,F0000H,端口的独立编址,特点:内存地址资源充分利用能够应用于端口的指令较少,8088总线,A19-A0,A15-A0,MEMR、MEMW,IOR、IOW,存储器,输入/输出,8088/8086的I/O端口编址,采用I/O独立编址方式(但地址线与存储器共用)地址线上的地址信号用IO/M来区分I/O操作只使用20根地址线中的16根:A15A0可寻址的I/O端口数为64K(65536)个I/O地址范围为0FFFFH,6.1.4I/O端口地址的译码,目的:确定端口的地址将总线上的地址信号转换为某个端口的“使能”信号,这个操作就成为端口地址的译码。参加译码的信号:IOR,IOW,A15A0OUT指令将使总线的IOW信号有效IN指令将使总线的IOR信号有效,当接口只有一个端口时,16位地址线一般应全部参与译码,译码输出直接选择该端口;当接口具有多个端口时,则16位地址线的高位参与译码(决定接口的基地址),而低位则用于确定要访问哪一个端口。当CPU工作在最大模式时,对存储器的读写要求控制信号MEMR或MEMW有效,如果是对I/O端口读写,则要求控制信号IOR或IOW有效。IO/M,某外设接口有4个端口,地址为2F0H2F3H,则其基地址为2F0H,由A15A2译码得到,而A1、A0用来确定4个端口中的某一个连接,6.2简单接口电路,掌握:接口电路的分类及特点两类简单接口芯片的应用,6.2.1接口的基本构成,CPU,I/O接口,外设,数据,端口地址,控制,数据,状态,控制,接口的基本构成,数据线,控制线,DB,CB,AB,数据输入寄存器(or三态门),数据输出寄存器(锁存器),状态寄存器(or三态门),命令寄存器,译码电路,控制逻辑,接外设,接主机,状态线,接口的基本构成,数据输入/输出寄存器暂存输入/输出的数据命令寄存器存放控制命令,用来设定接口功能、工作参数和工作方式状态寄存器保存外设当前状态,以供CPU读取,输入接口输出接口,接口,要求对数据具有控制能力(常用三态门实现),要求对数据具有锁存能力(常用锁存器实现),6.2.2三态门接口,高电平、低电平、高阻态,74LS244,含8个三态门的集成电路芯片在外设具有数据保持能力时用来输入接口,三态门接口应用例,【例】编写程序判断下图中的开关状态。如果所有的开关都闭合,则程序转向NEXT1的程序段执行,否则转向NEXT2的程序段执行。,MOVDX,83FCHINAL,DXANDAL,0FFHJZNEXT1JMPNEXT2,占用地址为:83FCH83FFH,6.2.3锁存器接口,通常由D触发器构成74LS273:不具备数据的控制能力74LS374:具有对数据的控制能力74LS373:具有对数据的控制能力,25,74LS273引线图和真值表,S为复位端CP为脉冲输入端,26,下图所示是应用74LS273作为输出接口的例子。8个Q端与8个发光二极管相连接,要使接到Q0端和Q6端的发光二极管发光,其对应的Q0、Q6端须为“1”状态,而其它Q端则为“0”状态。假定该输出接口的地址为0FFFFH,则程序段如下:MOVDX,0FFFFHMOVAL,01000001BOUTDX,AL,27,1,10,OE,GND,Q2,D2,D3,Q3,Q1,D1,D0,Q0,Vcc,CP,Q5,D5,D4,Q4,Q6,D6,D7,Q7,74LS374引线图和真值表,74LS374内部结构,锁存器芯片74LS374,D0D7,Q0,Q7,.,OE,CP,译码器,Q0Q7,D0,D7,.,OE,CP,译码器,做输出口:,做输入口:,外设,自外设,74LS374作为输入和输出接口,6.2.4I/O接口综合应用例,LED七段数码显示管接口,根据开关状态在7段数码管上显示数字或符号设输出接口的地址为F0H设输入接口地址为F1H当开关K处于闭合状态时,在7段数码管上对应显示0;当开关K处于断开状态时,在7段数码管上对应显示1,+5V,GG2AG2BCBA,1,D0Q0|Q1D7Q2Q3Q4CPQ5Q6Q7,abcdefgDP,7406,反相器,74LS273,Rx8,1,74LS138,D0D7,IOW#,Y0,Y1,F1H=0000000011110001(状态端口)F0H=0000000011110000(数据端口),从片:SP/EN接地。,初始化编程:指系统在上电或复位后对可编程器件进行控制字设定的一段程序8259A的命令控制字包括两个部分:初始化命令字ICW和操作命令字OCW初始化命令字一般在系统复位后的初始化编程中设置,用于确定8259A的基本工作方式,设置以后一般保持不变操作命令是在初始化以后的正常工作中写入的,它实现对8259A的状态,中断方式和过程的动态控制,在工作中可随时写入操作命令字以修改某些控制方式,6.5.48259A的初始化编程,8259A的初始化编程,8259A内部有7个寄存器,分为两组:初始化命令寄存器组和操作命令寄存器组初始化命令寄存器组包括4个寄存器:ICW1ICW4对应的寄存器操作命令寄存器组包括3个寄存器:OCW1OCW3对应的寄存器。,由于8259A只有一条地址线A0,所以它只能有两个端口地址,而8259A有7个命令字,每个命令字要写入相应的寄存器。为此,采取以下几点措施:第一,以端口地址区分RDWR第二,把命令字中的某些位作为特征码来区分D3D4第三,以命令字的写入顺序来区分在PC/XT中,8259A的两个端口地址分别为20H和21H,1.8259A内部寄存器的寻址方法,需要CS、A0、RD、WR和D4、D3的配合内部寄存器的访问方法如下表:,由表可见,CPU用A0寻址82C59A的端口共有2个:1个为偶地址,1个为奇地址,8259A的初始化顺序,8259A初始化命令字有4个:ICW1、ICW2、ICW3、ICW48259A在进入正常工作之前,必须将系统中的每一个8259A进行初始化设置,以此建立8259A的基本工作条件写入的初始化命令字一般为24个(在某些条件下,4个初始化命令字并非必须全部写入),最多为4个,然而,ICW1使用偶地址,而ICW2、ICW3、ICW4都使用奇地址,为了相互区别,初始化命令字的写入必须有一个固定的顺序系统上电或复位以后,对8259A第一件要做的工作就是按顺序写入初始化命令字,初始化8259A必须从ICW1开始写ICW1意味着重新初始化8259A写入ICW1后,8259A的状态如下:清除ISR和IMR(全0);将中断优先级设成初始状态:IR0最高,IR7最低;设定为一般屏蔽方式;采用非自动中断结束方式;状态读出逻辑预置为读IRR。,8259A初始化命令字ICW1,ICW1的主要功能:确定级连方式,触发方式写入ICW1后,8259A内部自动复位,其复位功能为:(1)初始化命令字顺序逻辑重新置位,准备接收ICW2、ICW3、ICW4(2)清除IMR和ISR(3)IRR状态可读(4)优先级排队,IR0最高,IR7最低(5)特殊屏蔽方式复位(6)设定中断请求信号由低变高的边沿触发有效(7)自动EOI循环方式复位,例:某8086微机系统中,使用单片82C59A,中断请求信号为上升沿触发,需要设置ICW4,端口地址为20H和21H,则其初始化命令字ICW1应为:0001001113H,设置ICW1的指令为:MOVAL,13HOUT20H,AL,8259A初始化命令字ICW2,ICW2的主要功能:确定中断向量,中断类型码,IRi的中断类型号=ICW2的高5位+i,例:如果ICW2为08H,则IR3的中断类型号(中断向量)为08H+03H=0BH。,例:若ICW2命令字为48H,则IR0的中断向量码为48H,IR7的中断向量码为4FH,等等。,例:8259A采用前沿触发,单片使用,需要ICW4,假设IR0的类型码为08H,试确定ICW1,ICW2.8259A端口地址:20H,21HICW1=00010011B;前沿触发,单片,需ICW4ICW2=00001000BMOVAL,00010011BOUT20H,ALMOVAL,00001000BOUT21H,AL,8259A初始化命令字ICW3,ICW3的主要功能:确定主片从片的级连状态,即确定主片的连接位和从片的编码,ICW3必须与主从片的连接关系一致:例如,主片的IR4与从片的INT线连接,则主片的ICW3=10H,从片的ICW3=04H。中断响应时,主片通过级连线CAS2-CAS0送出被允许中断的从片标识码,各从片用自己的ICW3与CAS2-CAS0比较,二者一致的从片才可发送中断向量码。,例:假设主片8259A的IR3和IR6接了2个从片.主片端口地址:20H,21H;1#从片端口地:A0H,A1H试设置ICW3.主片:ICW3=01001000B=48H从片1#:ICW3=00000011=03H从片2#:ICW3=00000110=06H主片ICW3的初始化程序段:MOVAL,48HOUT21H,AL1#从片ICW3的初始化:MOVAL,03HOUT0A1H,AL,8259A初始化命令字ICW4,ICW4的主要功能:选择CPU系统,确定中断结束方式,规定是主片还是从片,选择是否采用缓冲方式,初始化编程举例,例:某8086微机系统中有一片82C59A,中断请求信号为电平触发,中断类型码为40H47H,中断优先级管理采用普通全嵌套方式,中断结束方式采用自动结束方式,系统中未使用数据缓冲器,系统分配给82C59A的端口地址为20H和21H,试对该82C59A进行初始化编程。,分析:由于系统中使用单片82C59A,所以初始化时不需要ICW3,本例中82C59A要求工作在非缓冲方式,故在硬件上将SP*/EN*接+5V,ICW4中的MS*位无意义,可设置为0对82C59A的初始化程序如下:MOVAL,00011011B;设置ICW1初始化命令字OUT20H,AL;将ICW1输出到偶地址端口MOVAL,01000000B;ICW2中断类型号基值OUT21H,AL;将ICW2送入奇地址端口MOVAL,00000011B;ICW4OUT21H,AL;将ICW4送入奇地址瑞口,写完ICW后,8259A建立了基本的工作环境,初始化命令字一定要在系统复位后首先写入8259A,写入时要严格按照写入顺序,不允许颠倒写完初始化命令字后,8259A已经建立了基本的工作环境,可以接受中断请求,也可以写入操作命令字OCW来改变某些中断管理方式操作命令字可以随时写入、修改,但初始化命令字一经写入一般不再改动如果在写入初始化命令字后不写入操作命令字,则8259A便处于全嵌套工作方式,即中断优先级为IR0最高,IR7最低,禁止同级及低级中断,高级中断可嵌套处理,2.8259A操作命令字,在初始化命令字写入8259A之后,8259A就准备接收中断请求输入信号了在8259A工作期间,CPU可以随时通过操作命令字使8259A完成各种不同的工作方式8259A有三种操作命令字:OCW1、OCW2和OCW3在写入时,它们与初始化命令字不同,它们不是按一定的顺序写入,而是按设计者的要求写入OCW1必须写入奇地址端口(A0=1)OCW2,OCW3必须写入偶地址端口(A0=0),8259A操作命令字OCW1,OCW1的主要功能:保存中断屏蔽字,Mi=1中断请求线IRi被屏蔽(不允许中断)=0允许该IRi中断OCW1将写入IMR寄存器。A0=1时读OCW1可读出设置的IMR内容。,8259A操作命令字OCW2,OCW2的主要功能:控制8259A的中断循环优先级方式及发送命令中断结束方式R:优先级循环控制位。R0固定优先级,R1循环优先级SL:特殊循环控制,SL=1使L2-L0对应的IR为最低优先级,SL=0使L2-L0无效EOI:中断结束命令,EOI1中断结束命令有效L2-L0:指明对应的IR位,8259A操作命令字OCW3,OCW3的主要功能:设定查询方式和特殊屏蔽方式,I=0,无中断请求;I=1,有中断请求。W2W0,正在申请中断的若干中断源中优先级最高的中断源的编码。,查询字格式:,举例:初始化程序如下:INIT8259A:MOVDX,20H;A0=0,写ICW1MOVAL,12H;上升沿触发,单片,不写ICW4OUTDX,ALMOVDX,21H;A0=1,写ICW2,OCW1MOVAL,08H;ICW2OUTDX,ALMOVAL,0F0H;OCW1:屏蔽IR4-IR7OUTDX,AL,现代微机中82801BA中8259A级联,注意:,主、从区分;IRQ优先级;请求与响应。,INTM00EQU020H;8259A端口0INTM01EQU021H;8259A端口1MOVAL,00010011B;ICW1:边沿触发,要ICW4;;单片方式,不要ICW3。OUTINTM00,ALDELAY;I/O端口延时MOVAL,00001000B;ICW2:设置中断向量,起始的;中断向量为08H。OUTINTM01,ALDELAYMOVAL,00000001B;ICW4:非缓冲,全嵌套,非自;动中断结束(EOI)。OUTINTM01,ALDELAY,现代微机中断请求线连接,中断编程注意点,1.使用正确的中断号,2.中断服务程序入口的正确设置,3.避免中断程序中DOS重入,4.中断程序执行时间的正确估计,5.中断的打开与关闭,6.中断结束处理及返回,例8259A单片应用在某8088系统中扩展一片中断控制器8259A,其端口地址由74LS138译码器译码选择,假设为8CH和8DH。中断源的中断请求线连到IR7输入线上,边沿触发方式,IR7的中断类型码为77H,其它条件保持8259A的复位设置状态。要求:写出8259A的初始化程序写出中断类型码为77H的中断向量设置程序,18259A的初始化程序初始化程序包括写入ICW1、ICW2和ICW4(由于单片使用,不需写入ICW3),并且必须按规定的顺序写入。(l)ICW1命令字。单片,边沿触发,需要ICW4,故为000100l1B=13H,写入偶地址。(2)ICW2命令字。IR7的中断类型码为77H,即可作为ICW2命令字写入,写入奇地址。(3)ICW4命令字。8088CPU,一般全嵌套方式,正常EOI结束,非缓冲方式,故命令字的组合为00000001B=01H,写入奇地址。(4)OCW1命令字。系统只使用了IR7,为防止干扰,产生误动作,应将IR0IR6屏蔽掉,屏蔽字为01111111B=7FH,写入奇地址。,(5)初始化程序段为:CLIMOVAL,13H;ICW1OUT8CH,ALMOVAL,77H;ICW20UT8DH,ALMOVAL,01H;ICW4OUT8DH,ALMOVAL,7FH;OCW1OUT8DH,ALSTI,2中断类型码77H的中断向量设置程序假设相应中断服务程序名为INTP,该符号地址包含段值属性和段内偏移量属性,将这二者分别存入中断向量地址,中断类型码77H的中断向量地址为77H4=1DCH,即占用1DCH1DFH4个单元;其中1DEH1DFH存放INTP的段地址,1DCH1DDH存放INTP的段内偏移量我们用串指令完成中断向量的设置,程序如下:,CLIMOVAX,0MOVES,AX;中断向量表段地址MOVDI,1DCH;中断向量表偏移地址MOVAX,OFFSETINTP;中断服务程序偏移地址CLDSTOSWMOVAX,SEGINTP;中断服务程序段地址STOSWSTI,例28259A级连应用某系统有两片8259A:对主片,IR2和IR5接有外部中断源请求,中断类型号分别为62H和65H,IR4级连,接从片8259A的INT信号,主片的中断服务程序在同一段,段地址为4000H,两个中断服务程序的入口地址偏移值是2500H和2800H对从片,IR0和IR3上接有外部中断源请求,中断类型号分别为40H和43H,输出的INT接主片8259A的IR4,从片的中断服务程序在同一段,段地址为3000H,偏移地址分别为1230H和4560H要求分别写出主8259A和从8259A的初始化程序和中断向量设置程序,1对主片8259A的初始化和中断向量设置(1)初始化要求(已有条件)主片8259A的IR4接一个从片,S4=1中断请求信号边沿触发,LTIM=0中断类型号为60H67H,ICW2=60H一般EOI中断结束方式,AEOI=0非缓冲方式,SP/EN=1,BUF=0采用特殊全嵌套方式,SFNM=1。除IR2、IR4、IR5以外,屏蔽所有中断,

温馨提示

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

评论

0/150

提交评论