微机接口第五章 第六章_第1页
微机接口第五章 第六章_第2页
微机接口第五章 第六章_第3页
微机接口第五章 第六章_第4页
微机接口第五章 第六章_第5页
已阅读5页,还剩156页未读 继续免费阅读

下载本文档

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

文档简介

接口技术

第五章中断技术5.1中断的基本概念5.2中断处理过程5.3可编程中断控制器82595.48259在微机系统中的应用5.1中断的基本概念一、中断的概念中断:指CPU正常运行程序,由于内外部事件引起CPU暂时终止正在运行的程序,转去执行请求中断的服务程序,服务完毕,返回原程序的过程。用途使CPU和外设同步工作提高CPU的效率二、中断源与中断识别1、中断源:发出中断请求的外部设备或引起中断的内部原因称为中断源

2、中断源的种类:①外设中断:系统外部设备要求与CPU交换信息而产生的中断。②指令中断:为了方便用户使用系统资源或调试软件而设置的中断指令,如调用I/O设备的BIOS及DOS系统功能的中断指令和设置断点中断等。③程序性中断:程序员的疏忽或算法上的差错,使程序在运行过程中出现多种错误而产生的中断。④硬件故障中断:机器在运行过程中,硬件出现偶然性或固定性的错误而引起的中断,如奇偶校验错中断、电源故障等。

3、中断识别:(1)什么是中断识别:CPU响应中断后,设法寻找中断源,即找到是哪一个中断源发出的中断请求,这就是所谓的中断识别。(2)中断识别的目的:是将该中断源的中断服务程序的人口地址置入CS:IP寄存器,从而实现程序的转移。CPU识别中断或获取中断服务程序人口地址的方法有两种:向量中断和查询中断。①向量中断;是由中断向量来指示中断服务程序的入口地址。

②查询中断:是采用软件或硬件(串行顺序链电路)查询技术来确定发出中断请求的中断源。

三、中断向量、中断向量号与中断向量表1、什么是中断向量:中断向量是中断服务程序的人口地址。它包括中断服务程序的段基址CS和偏移地址IP(共占4个字节地址)。

2、什么是中断向量号:是系统分给每个中断源的代号。系统中的外部中断和内部中断,硬中断和软中断一律统一编号,共有256个号,其中有一部分中断号已经分配给了中断源,尚有部分中断号空着,待分配。

3、中断向量表:每一个中断服务程序都有一个确定的人口地址,把系统中所有的中断向量集中放到存储器的某一区域内,这个存放中断向量的存储区就叫中断向量表或中断服务程序入口地址表。PC系列微机的存储器的0000—03FFH共1024个地址作为中断向量存储区,每个中断向量需占用4个字节的地址空间,所以,可容纳256个中断向量,即可处理256个中断服务程序。

专用中断5个(0~4),DOS使用59个,其余的原则上可由用户使用

类型0类型1类型2类型3类型4类型5类型63IPCS除数为零单步(TF=1)非屏蔽中断断点中断溢出(OF=1)类型28000H004H008H00CH010H014H070H0FCHCPU使用(5)DOS使用(59)1/18.2S定时类型64类型65类型66类型67类型255100H104H108H10CH3FCH用户使用(192)中断向量表中断向量表地址=4×中断类型码4、中断向量号与中断向量表的关系:中断向量=中断类型号×4开始的连续4个内存单元(也就是中断服务程序入口地址)。关系见下图:

中断向量

00700FC9中断向量指针

004FH004EH004DH004CH寄存器CSHCSLIPHIPL中断类型号为13HCS=0070HIP=0FC9H

例:某中断的中断类型码为68H,其操作过程如下类型67H中断向量0:19CH0:1A0H50200:1A2H00A00:1A4H

类型69H

中断向量2050

IP

A000

CS中断服务入口

A000:2050STIRETI43INT68HMOVAX,05向量地址=68*4=1A0H12四、中断向量的装入(填写)与修改

中断向量并非常驻内存,而是开机上电时,由程序装人内存指定的中断向量表中。系统配置和使用的中断所对应的中断向量由系统软件负责装入,用户使用的中断其中断向量由用户自己装入。

例1:用指令设置。例如,假设中断类型号为60H,中断服务程序的段基址是SEG_INTR,偏移地址是OFFSET_INTR(006DH),则填写中断向量表的程序段为:CLI ;关中断

CLD ;内存地址加1操作

MOVAX,0 MOVES,AX ;ES赋值为0 MOVDI,4*60H ;中断向量指针入DI MOVAX,OFFSET_INTR;中断服务程序偏移值入AX STOSW MOVAX,SEG_INTR;中断服务程序的段基址入AX STOSW STI;开中断例2:将中断服务程序的人口地址直接写入中断向量表;

MOVAX,00H MOVES,AX MOVBX,60H*4;中断号*4入BXMOVAX,006DH;中断服务程序偏移地址入AX MOVES:[BX],AX;装入偏移地址

PUSHCS POPAX ;获取中断服务程序段基址

MOVES:[BX+2],AX;装入段基址例3:利用DOS功能调用INT21的35号和25号功能对中断向量进行修改。步骤入下①用35H号功能,获取原中断向量,并保存在字变量中。②用25H号功能,设置新中断向量,取代原中断向量,以便当中断发生后,转移到新中断服务程序中去。③新中断服务程序完毕后,利用25H号功能恢复原中断向量。

设置中断首地址按AL中预置的中断类型码,DS:DX中预置的中断首地址设置至中断向量表中25HAH功能说明取用中断首地址按AL中预置的中断类型码,取用中断向量表中的首地址送至ES:BX中35H

假设原中断程序的中断号为n,新中断程序的入口地址的段基址为SEG_INTR,偏移地址为OFFSET_INTR。中断向量修改的程序段为:

MOVAH,35H;取原中断向量

MOVAL,n INT21HMOVDX,ES MOVOLD_SEG,DX;保存原中断向量

MOVOLD_OFF,BXMOVAH,25H;设置新中断向量

MOVAL,n ;中断号入AL MOVDX,SEG_INTRMOVDS,DX;DS指向新中断程序段址MOVDX,OFFSET_INTR;DX指向新中断程序偏移INT21H ;地址

MOVAH,25H;恢复原中断向量

MOVAL,nMOVDX,OLD_SEGMOVDS,DXMOVDX,OLD_OFFINT21H五、中断优先级排队方式

排队的方式有:a.按优先级排队。根据任务的轻重缓急,给每个中断源指定CPU向应的优先级,任务紧急的先响应,可以暂缓的后响应。b、循环轮流排队。不分级别,CPU轮流响应各个中断源。

中断优先级的确定

在微机系统中通常用三种方法来确定中断源的优先级别,即软件查询法、硬件排队电路法和专用中断控制芯片法。

中断状态位DBCPUINT译码AB查询次序为优先级次序1)软件查询法

对于图7.13所示电路,设中断寄存器端口号为n,则软件查询的程序段如下:

IN AL,nTEST AL,80H ;1号外设有请求?JNZ II1 ;有,转1号中断服务程序

TESTAL,40H ;2号外设有请求?JNZ II2 ;有,转2号中断服务程序…

可以看出,采用软件查询方式,各中断源的优先级是由查询顺序决定的,最先查询的设备,其优先级最高,最后查询的设备,其优先级最低。采用软件查询方式的优点是节省硬件。但是,由于CPU每次响应中断时都要对各中断源进行逐一查询,所以其响应速度较慢。对于优先级较低的中断源来说,该缺点更为明显。

2)硬件排队电路

采用硬件排队电路法,各个外设的优先级与其接口在排队电路中的位置有关。常用的硬件优先权排队电路有链式优先权排队电路、硬件优先级编码加比较器的排队电路等。

链式中断优先级电路

上述两种方法虽然可以解决中断优先级控制问题,但实现起来在硬件和软件上都要做大量的工作,十分麻烦。目前,最方便的办法就是利用厂家提供的可编程中断控制器,这样的器件在各种微机中得到普遍应用。本章后面将介绍广泛应用于80x86微机系统中的专用可编程中断控制芯片8259A。六、中断嵌套当CPU正在响应较低级的中断服务过程中,如果有更高级的中断申请,CPU将停止当前的中断服务程序,而转去响应高级中断,当高级中断结束后,再返回到低级中断继续服务,服务结束后再返回到断点处继续执行。多重中断和单级中断的区别:加入屏蔽本级或较低级中断请求环节在中断服务之前要开中在中断服务结束后,为使现场不受干扰,必须关中现场恢复,重新开放中断5.2IBM-PC机中断系统

非屏蔽中断请求中断逻辑INTN指令INTO指令除法指令单步TF=18259A可屏蔽中断NMI

一、中断的分类外部中断由外部引脚输入信号引起中断非屏蔽中断:不受IF标志影响可屏蔽中断:受IF标志影响内部中断由于CPU本身启动的中断或执行中断指令引起

可屏蔽中断采用电平触发,高电平有效受CPU内部中断请求标志IF影响由中断管理芯片8259驱动中断类型码获得是在接受到CPU中断响应信号后,由8259A送出(扩展一片8259A,可外接8个中断源)

非屏蔽中断非屏蔽中断用于处理掉电,存储器读、写错误等灾难性事件不受CPU内部IF标志影响,优先级高于可屏蔽中断边沿触发中断类型码为2,不需要中断响应周期

内部中断由中断指令INT引起(ROM-BIOS,DOS)

INTN;N为中断类型号由CPU的某些运行错误引起中断*除法出错中断:执行DIV,IDIV指令,除数为0,商超过范围,产生0型中断*溢出中断;算术运算过程中,结果溢出(OF=1),且执行INTO指令,产生4型中断由调试程序DEBUG设置中断*单步中断:当TF=1,8086处单步方式,每执行一条指令,产生1型中断*断点中断:断点中断是单字节,中断类型码是3

内部中断的特点:中断类型码或由指令规定,或是预定不执行INTA总线周期除单步中断外,内部中断无法用软件禁止除单步中断外,内部中断比外部中断具有更高优先级对CPU来说,如果这三种中断同时发生内部中断(除单步中断)(高)

不可屏蔽中断可屏蔽中断单步中断(低)二、硬中断与软中断的比较1、硬中断的特点外部事件引起中断响应周期,CPU发INTA中断回答信号中断号由中断控制器提供INTR是可屏蔽2、软中断的特点执行中断指令产生,中断号是事先规定中断响应周期,CPU不发INTA中断回答信号是不可屏蔽(单步除外)三、中断处理过程中断处理过程组成:中断请求中断响应保护现场中断服务恢复现场中断返回

中断响应流程:

执行指令指令结束?有中断请求?响应中断关中断保护断点寻找中断源转中断服务程序保护现场中断服务恢复现场开中断返回

YNY取下一条指令(1)接口逻辑电路使系统总线上的中断请求线出现有效信号,即有中断请求。(2)中断控制器(如8259)接收这一请求信号,并与其他可能同时到来或正挂起等待处理的中断请求一起进行优先级比较。(3)如果只有这一个请求信号,或者该信号是在刚处理的最高级的中断请求服务结束时挂起的次高级的请求信号,那么这个中断请求就能被送往CPU。(4)接着CPU发出两个/INTA中断响应脉冲到中断控制器:第一个脉冲时,CPU输出/LOCK信号使总线封锁,防止DMA和其他微处理器占用总线;同时8259保留优先级,并把这个优先级别送到服务锁存器第二个/INTA脉冲时,总线封锁解除;同时要求中断控制器送出一个8位的指针值(中断向量)。(5)CPU接收到这个8位中断向量值。根据该值可找到低地址存储区表,这个表包含有对应中断服务子程序的段地址和偏移值。(6)CPU把当前的偏移地址、代码段地址和标志推入系统堆栈,叫保护现场。然后从中断向量表中取出新的偏移和代码段值分别送给IP和CS。这时,中断服务程序尚可执行。(7)中断执行完毕,恢复现场(即把入栈的内容出栈)返回断点处。整个过程结束。5.3可编程中断控制器82598259的功能8259的外部特性和内部结构8259的工作方式一、8259的功能优先级排队管理接受和扩充外部设备的中断请求提供中断类型号进行中断请求的屏蔽和开放

RDWRA0CS读/写逻辑数据总线缓冲器级联缓冲/比较器D0~D7CAS0CAS1CAS2SP/EN正在服务寄存器ISR优先权分析器PR中断请求寄存器IRR中断屏蔽寄存器IMR

控制逻辑内部总线IR0IR7INTAINT二、8259的外部特性和内部结构

和CPU连接D0~D7A0CSWRRDINTINTA和级联有关CAS0~CAS2SP/EN和外设请求信号有关IR0~IR78259A芯片内部结构主要由8部分组成,它们分别是:(1)数据总线缓冲器数据总线缓冲器用来传输从8259A内部读出到CPU的数据(状态信息)或者CPU向8259A内部写入的数据(控制字)。(2)中断请求寄存器IRR

它是一个8位寄存器,每一位对应一个I/O设备,用来记录发生中断请求的外设。当某一外设(I/O设备)发生中断请求信号IRQ时,对应位被置1。(3)中断服务寄存器ISR它是一个8位寄存器,每一位同样对应一个I/O设备,用来记录正被CPU服务的那个I/O设备。(4)中断屏蔽寄存器IMR它是一个8位寄存器,每一位对应一个I/O设备,当某一位被置为1时,对应的I/O设备发来的中断请求信号就被屏蔽掉(视为无效);当某一位置为0时,对应I/O设备发来的中断请求信号有效(允许引起中断)。IMR中各位的值由软件进行设置,这点与IRR和ISR不同。(5)选优电路选优电路的作用:从中断请求寄存器IRR中选出优先权最高的那一位,并将其送到ISR中的对应位中。在中断请求寄存器IRR中,如果有多个I/O设备发出中断请求信号使多个位被置为1,则在中断响应期间,8259A接收到第一个中断响应信号INTA时,优选电路负责将中断请求寄存器IRR中优先权最高的那一位1送入中断服务寄存器ISR中对应位。(6)读写逻辑电路

它负责把CPU发来的各种命令字写入到8259A内部寄存器中,或者把8259A内部寄存器值,也称状态信息读出给CPU。CSWRRDA0

读写操作PIC(主)PIC(从)0010写ICW1,OCW2,OCW320H0A0H0011写ICW2~ICW4,OCW121H0A1H0100读IRR,ISR,查询字20H0A0H0101读IMR21H0A1H(7)控制电路它产生向CPU发出的中断信号INT,并接收CPU发来的中断响应信号/INTA。(8)级联缓冲器/比较器用于多片级联和数据缓冲。三、8259A的工作方式1、引入中断请求(中断触发)的方式:①边沿触发方式。以正跳沿向8259A请求中断。②电平触发方式。以高电平申请中断,但在响应中断后必须及时清除高电平,以免引起第二次误中断。③中断查询方式。外设通过8259A申请中断,但8259A却不使用INT信号向CPU申请中断,CPU用软件查询确定中断源,并为其服务。2、连接系统总线的方式在多片级联的大系统中,要求数据总线有总线缓冲器。8259A与这种带总线缓冲器的系统总线连接的方式称缓冲器方式。

若在小系统中,则8259A不需要总线缓冲器而是将其直接接至数据总线。8259A与这种不需总线缓冲器而直接连到系统总线的方式称非缓冲器方式。3、屏蔽中断源的方式①通常屏蔽方式。利用操作命令字OCWl,使屏蔽寄存器IMR中的一位或几位置1来屏蔽一个或几个中断源的中断请求。若要开放某二个中断源的中断请求,则将IMR中相应的位置0。②特殊屏蔽方式。在某些场合,在执行某一个中断服务程序时,要求允许另一个优先级比它低的中断请求被响应,此时可采用特殊屏蔽方式。它可通过OCW3的D6D5:11来设定。4、优先级排队的方式①全嵌套方式。在此种方式下中断优先级按0-7顺序进行排队,并且只允许中断级别高的中断源去中断中断级别低的中断服务程序,而不能相反。这是8259A最常用的方式。②特殊全嵌套方式。它和全嵌套方式的不同之处在于,当执行某一级中断服务程序时,可响应同级的中断请求,从而实现对同级中断请求的特殊嵌套。用于多片级联。③优先级自动轮换方式。在这种方式下,优先级顺序不是固定不变的,一个设备受到中断服务后,其优先级自动降为最低。④优先级指定轮换方式。是由程序指定IR0-IR7中任意一个为最低优先级,然后再按顺序自动轮换,决定优先级。5、结束中断的处理方式

①自动中断结束方式。这种方式用在多个中断不会嵌套的系统中。②非自动中断结束方式。在中断返回之前,必须发中断结束命令才能将ISR中的当前服务位清除。有两种形式:a、不指定中断结束命令;b、指定中断结束命令。四、8259A的初始化1、如何对8259进行初始化?对8259的初始化是通过CPU对8259A送控制命令字实现的。对于只占两个I/O地址的8259A,CPU对8259A各寄存器的读写是I/O地址和数据配合完成的。8259的命令字分为初始化命令字和操作方式命令字两种,分别有:(1)4个初始化命令字ICW1、ICW2、ICW3和ICW4(2)3个操作方式命令字OCW1、OCW2和OCW32、PC机对主片8259A各寄存器的选定:(PC机上的8259A的I/O地址为20H和21H)(1)对于4个初始化命令字的选定:

ICW1:0020HA0=0,D4=1 ICW2:0021HA0=1 ICW3:0021HA0=1,ICW1中SNGL(D1)位=0 ICW4:0021HA0=1,ICW1中IC4(D0)位=1

按照ICW1--ICW4的顺序写入(2)对于操作方式命令字的选定

OCW1:0021HA0=1 OCW2:0020HA0=0,D3D4=00 OCW3:0020HA0=0,D3D4=10

3、初始化命令字初始化命令字ICW1写入后,8259A内部完成初始化过程:A、使8259A对中断请求信号边沿检测电路复位,以使它在中断请求信号由低变高时,才能产生中断。B、清除中断屏蔽寄存器,设置中断优先级排队。ICW1IC4SNGL00*1LTIM**A0D7D6D5D4D3D2D1D001不写ICW4写ICW401级联,写ICW3单片,不写ICW38088/8086不用标志位0=边沿触发方式1=电平触发方式ICW2D7D6D5D4D3D2D1D0T31A00T7T6T5T400D7D6D5D4D3D2D1D0IR7T7T6T5T4T3111IR6T7T6T5T4T3110IR5T7T6T5T4T3101IR4T7T6T5T4T3100IR3T7T6T5T4T3011IR2T7T6T5T4T3010IR1T7T6T5T4T3001IR0T7T6T5T4T30008259A输送的中断类型号无特征位,跟在ICW1后

S7S6S5S4S3S2S1S0

1ICW3A0D7D6D5D4D3D2D1D0ICW3中断级联方式的设置主片

Si表示IRi有中断请求XXXXXID2ID1ID0

1ICW3A0D7D6D5D4D3D2D1D0从片

从片标志码ICW3在ICW1中D1=1时有效,紧跟在ICW2后

IR7IR0SP/ENCSA0INTAINTCS0~CS2IR7IR0SP/ENCSA0INTAINTCS0~CS2IR7IR0SP/ENCSA0INTAINTCS0~CS2数据总线控制总线地址总线8259主从级联GNDGNDVCC

主片MOVAL,48HOUT21H,AL从片AMOVAL,03H地址A1HOUT0A1H,AL从片BMOVAL,06H地址F1HOUT0F1H,ALICW4PMAEOIM/S10SFNMBUF00A0D7D6D5D4D3D2D1D001选用8085选用808601非自动方式自动中断结束方式0=全嵌套方式1=特殊全嵌套方式=非缓冲方式,此时若用级联,由SP/EN确定主从设备。=缓冲方式,本片为从片=缓冲方式,本片为主片01011全嵌套方式:高级中断可打断正在处理的中断,优先处理更高级的中断。特殊全嵌套方式:对于级联方式,主8259A把从同一从8259A来的不同级别的中断请求认为是同级的。在8259A级联时,若主片处于特殊全嵌套方式就允许对相同级别的中断请求开放。

4、操作命令OCW1~OCW3M7M6M5M4M3M2M1M0

1OCW1A0D7D6D5D4D3D2D1D01=屏蔽;0=开放OCW1操作命令设置中断屏蔽字,可读可写

要使中断源IR3开放,其余均被屏蔽,其OCWl:llll0111BMOVAL,0F7HOUT21H,AL

RSLEOI

0

0L2L1L0

0

OCW2A0D7D6D5D4D3D2D1D0优先级轮换指定中断优先级中断结束

特征位

中断等级编码OCW2用来设置中断结束方式,中断排队方式OCW2的功能总结为下表:RSLEOIL2L1L0功能001000不指定EOI命令011L2L1L0指定EOI命令101000在不指定EOI方式中轮换命令100000在自动EOI方式中轮换置位命令000000在自动EOI方式中轮换复位命令111L2L1L0

在指定EOI方式中轮换命令110L2L1L0

直接置优先级轮换命令作用:A、非自动中断结束方式的操作。①不指定的EOI方式:当8259A接收到一个不指定的EOI命令时,它直接将最高优先级(在被置位的ISR中最高)的ISR位复位。(适用于全嵌套方式)ISR7ISR6ISR5ISR4ISR3ISR2ISR1ISR000100100ISR7ISR6ISR5ISR4ISR3ISR2ISR1ISR000100000MOVAL,20HOUT20H,AL②指定的EOI方式:指定出一个确切的被复位的ISR位,可以指定8259A的8个IR等级中的任何一个。(适用于非全嵌套方式)ISR7ISR6ISR5ISR4ISR3ISR2ISR1ISR000100100ISR7ISR6ISR5ISR4ISR3ISR2ISR1ISR000000100MOVAL,65HOUT20H,ALB、中断排队方式的操作(0CW2)

8259有两种优先权排队方式:固定、优先权轮换由OCW2的R控制。当R=0,优先权固定(如前)当R=1,优先权轮换①不指定的EOI轮换方式ISR7IDR6ISR5ISR4ISR3ISR2ISR1ISR00010010076543210ISR7ISR6ISR5ISR4ISR3ISR2ISR1ISR00010000043210765MOVAL,0A0HOUT20H,AL②指定的EOI轮换方式ISR7IDR6ISR5ISR4ISR3ISR2ISR1ISR00010010076543210ISR7ISR6ISR5ISR4ISR3ISR2ISR1ISR00000010010765432MOVAL,0E5HOUT20H,AL

OCW3:查询中断、读状态、特殊屏蔽方式XESMMSMM01PRRRIS

0

OCW3A0D7D6D5D4D3D2D1D0特殊屏蔽允许特殊屏蔽设置特征位查询方式读寄存器允许读ISR

XESMMSMM01PRRRIS

0

OCW3A00X:无效10:读IRR11:读ISR1:查询8259状态字0:不查询0X:无效10:特殊屏蔽方式复位11:特殊屏蔽方式置位A、查询方式:可使CPU处于查询方式,此时8259A不向CPU发INT信号,CPU可根据需要随时查询中断源。I----W2W1W0D7D6D5D4D3D2D1D0申请服务的最高优先权等级编码I=1:有中断请求I=0:无中断请求例:对8259编程,以查询的方式判断是否有中断请求(地址为3A0H,3A1H)

X:MOVAL,00001100BMOVDX,3A0HOUTDX,AL;发查询命令

INAL,DXTESTAL,80HJZXB、设置和撤消特殊屏蔽方式在执行高级中断服务程序中,希望开放低级中断。方法:先用屏蔽命令(ICW1)将正在服务的中断屏蔽,然后置位特定屏蔽方式命令ESMM=1、SMM=1(即OCW3的D6D5=11)。中断服务完了,在撤销屏蔽方式ESMM=1、SMM=0(OCW3的D6D5=10)C、设置对8259A内部寄存器的读出命令8259A内部的3个寄存器IRR、ISR、IMR可供CPU读取。IRR和ISR的读取由OCW3确定。D0:RIS用于选择被读寄存器ISR或IRR。若要读ISR,则RIS置1;若要读IRR,则RIS置0。D1:读寄存器允许,RIS的状态仅在RR位为1时有效

例:对8259编程,读取ISR的状态(地址为3A0H,3A1H)

MOVAL,00001011BMOVDX,3A0HOUTDX,AL;发查询命令

INAL,DX;读ISR5.48259在微机系统中的应用一、8259编程命令的使用1、两类编程命令:送初始化命令字ICW和操作命令字OCW2、PC机中的操作:初始化由系统软件来做,上电即完成,不允许用户做初始化编程。用户在PC机上开发中断程序,不需要设置ICW,只需使用OCW1和OCW2开放/屏蔽中断和发中断结束命令。OCW3很少使用。二、8259A的初始化编程ICW1~ICW4:上电后,进行初始化,必须严格按顺序。OCW1~OCW3:可在任何时候写入,且根据要求单独写某一个OCW区分ICW1,OCW1,OCW2,OCW3PC机上8259的用法①共8级向量中断,因为是采用单片方式,故CAS2~CASo不用,SP/EN接+5V。②端口地址在020H-03F范围内,实际使用020H和021H两个端口。③8个中断请求输入信号IR0~IR7均为边沿触发。④采用完全嵌套方式,0级为最高优先级,7级为最低优先级。⑤设定0级请求对应中断号为8,1级请求对应中断号为9,依次类推,直到7级请求中断号为0FH

IR0IR1IR2IR3IR4IR5IR6IR7T/C0计时中断键盘控制器中断保留串行口2串行口1硬盘软盘并行口1INTAINT主片口地址:20H21H单片INTRINTARDWRSP/EN+5V初始化编程INTA00EQU020H;8259A端口0INTA01EQU021H;8259A端口1MOVAL,13H;ICW1:边沿触发、单片、 ;要ICW4OUTINTA00,ALMOVAL,8;ICW2:中断号的高5位OUTINTA01,

ALMOVAL,1;ICW4:全嵌套/16位机/非自动结束OUTINTA01,

AL286以上PC机中8259的使用①共15级向量中断,采用两片级连,故CAS2~CAS0作互连线,从片的INT直接连到主片的IR2上。②端口地址,主片在020H~03F范围内,实际使用020H和021H。从片在0A0~0BFH范围,实际使用0A0H,0A1H两个端口。③主、从片的中断请求信号均采用边沿触发。④采用完全嵌套方式,优先级的排列次序为0级最高,依次为1级,8-15级,然后是3-7级。⑤采用非缓冲方式,主片的SP/EN端接+5V,从片SP/EN端接地。⑥设定0级-7级对应主片的中断号为8H-OFH,8级-15级对应从片的中断号为70H-77H。

T/C0计时中断键盘控制器中断级联中断串行口2串行口1并行口2软盘控制器并行口108090A0B0C0D0E0F

IR0IR1IR2IR3IR4IR5IR6IR77071727374757677INTAINTAINTAINTINTINTR主片从片口地址:20H21H口地址:A0HA1H双片IR0IR1IR2IR3IR4IR5IR6IR7IR0IR1IR2IR3IR4IR5IR6IR7SP/ENSP/EN+5VGND初始化编程系统上电期间,分别对8259A的主片和从片进行初始化的程序段如下:;初始化8259A主片

MOVAL,11H;ICW1:边沿触发,多片,要ICW4 OUT20H,AL JMPSHORT$+2 MOVAL,8;ICW2:中断类型号高5位

OUT21H,AL JMPSHORT$+2MOVAL,04H;主片的IR2接从片(S=1) OUT21H,AL JMPSHORT$+2

MOVAL,01H;ICW4:非缓冲,全嵌套 ;

16位的CPU,非自动结束

OUT21H,AL;初始化8259A从片

MOVAL,11H;ICW1:边沿触发,多片,要ICW4OUT0a0H,ALJMPSHORT$+2MOVAL,70H;ICW2:中断号的高5位

OUT0a1H,ALJMPSHORT$+2MOVAL,02H;ICW3:从片接主片的IR2OUT0a1H,ALJMPSHORT$+2MOVAL,01H;ICW4:非缓冲,全嵌套,16 ;位的CPU,非自动结束

OUT0a1H,AL

作业1假如某中断类型号为20,中断服务程序为INT_PROC,完成中断服务入口的装填。作业2描述8259级联方式下中断响应过程。作业3描述由中断类型号得到中断服务程序入口的过程。作业4:给定SP=0100H、SS=0500H、PSW=0240H,在存储单元中已有内容为(00024H)=0060H,(00026H)=1000H,在段地址为0800H及偏移地址为00A0H的单元中,有一条中断指令INT9。试问执行INT9指令后,SS、SP、IP、PSW的内容是什么?栈顶的三个字是什么?在PC系统中编写一个在PC上运行的中断处理程序,对输入到IRQ7引脚的中断请求次数进行统计并在屏幕上显示,计满8次后返回DOS操作系统。

MOVAH,25HMOVAL,0FHMOVDX,SEGCNT MOVDS,DXMOVDX,OFFSETCNT INT21HINAL,21HANDAL,01111111BOUT21H,AMOVDL,31HAGAIN:STIHLTINCDLCMPDL,39HJNZAGAINMOVAX,4C00HINT21H

CNTPROCPUSHAXMOVAH,02HINT21HMOVAL,67HOUT20H,ALPOPAX

STIRETICNTENDP第六章存储器接口6.1半导体存储器6.2存储器接口技术6.3主存储器接口

一、存储器分类按用途分类存储器6.1半导体存储器内存储器(主存):用来存放当前运行的程序数据外存储器(辅存):存放暂时不运行的程序数据主存:速度快,容量小,价格高辅存:速度慢,容量大,价格低

按存储介质分类存储器光存储器光盘磁表面存储器半导体存储器软磁盘硬磁盘盒式录音带ROMRAM可编程PROM掩膜ROMPROMEPROMEAROM双极型MOS型动态RAM静态RAM

ROM只读存储器只能读,不能写,断电后信息不会丢失,属非易性存储器1、掩膜ROM:由生产厂商用掩膜技术将程序写入其中,适用于大批量生产2、可编程ROM(PROM或OTP):由用户自行写入程序,一旦写入,不能修改,适用于小批量生产3、可擦除可编程ROM(EPROM):可由用户自行写入写入后,可用紫外线光照擦除重新写新的程序,适用于科研4、电可擦除ROM(EEPROM):可用电信号擦除和重新写入的存储器,适用于断电保护5、闪存(FlashMemory)电可擦除,反复使用,速度块,灵活性好,集RAM和EEPROM优点

RAM随机存取存储器既能读,又能写,断电后信息会丢失,属易失性存储器RAM用于存放各种现场的输入输出程序,数据,中间结果1、静态RAM(SRAM):利用半导体触发器两个稳定的状态表示0或1

双极型的SRAM:用晶体管触发器作为记忆单元

MOS管的SRAM:由6个MOS管作为记忆单元双极型速度快,MOS管速度慢,不需要刷新2、动态RAM(DRAM):利用MOS管的栅极电容保存信息,即电荷的多少表示0和1。动态RAM需要进行刷新操作3、几种新型的存储器FIFO存储器、闪速存储器、双端口RAM(1)FIFO存储器的特点A、FIFO存储器(FistInFirstOutMemory)是一个有两个端口(输入口和输出口),并按先进先出的顺序来暂时存放数据的存储器。B、输入口和输出口的工作彼此是独立的。也就是说,只要当前存放在FIFO中的数据字数少于FIFO的容量,那么就可以继续向FIFO中写入数据存满数据的时候,它会阻止继续写入数据。同样,只要FIFO内部还存有数据,那么就可以继续从FIFO中读出数据,当FIFO中所有的数据被读完时,它就会禁止继续读出数据。(2)闪速存储器的特点:A、闪速存储器(FlashMemory),一种新型的半导体存储器,它具有可靠的非易失性、电擦除性以及低成本特性。B、可直接执行,对于需要实施代码或数据更新的嵌入性应用是一种理想的存储器。C、它在固有性能和成本方面有较明显的优势。D、与EPROM只能通过紫光线照射实施擦除的特点不同,闪速存储器可实现大规模电擦除,闪速存储器的擦除功能可迅速清除整个器件中所有内容。E、从功能上讲,由于其随机存取的特点闪速存储器也可看作是一种非易失的RAM。兼E2PROM与RAM的特点于一身,同时又优于E2PROM和RAM。F、经济的高密度,Intel的1M位闪速存储器的成本按每位计要比静态RAM低一半以上(不包括静态RAM电池的额外花费和占用空间)。(3)双端口RAM

在数据采集、实时控制等微机应用系统中,常常采用多个CPU并行工作的方式,即两个(或多个)CPU同时工作,处理不同的任务,这样,利用CMOS/BiCMOS技术,许多厂家生产了多端口RAM产品,如双端口、四端口的单片RAM器件等。特点:A、双端口RAM的两个端口被分别独立地控制,即它们的控制信号、地址I/O引线都是彼此独立的,通过这两个完全独立的端口,可以分别对任何一个存储单元进行读写操作。B、可进行数据总线宽度扩展,可完全异步操作C、广泛应用在多数据总线或多处理器系统中,实现数据共享。D、控制逻辑简单,每个处理器都可以完全独立地把双端口RAM看作是本地RAM一样进行访问,不仅方便了软件设计,还大大地提高了系统的工作效率。

二、存储器的主要性能指标1、存储容量:一个基本存储器能汇集的最大信息量存储器的容量=地址寄存器的编址数*存储字的位数2、存储速度存取时间TA:从存储器接到读或写命令到从存储器读出或写入的时间称为存储时间存储周期TM:两个独立存储操作之间的最小时间间隔3、价格:存储器的价格正比于容量,反比于存储时间4、存储器的可靠性MTBF越大,可靠性越高三、存储芯片组成1.存储体:大量记忆二进制信息的存储单元有规则的结合。排列方式可分为字结构方式和位结构方式。(1)字结构方式:是指将芯片上所有存储元排列成不同的存储单元,每个单元一个字,每个字的各位在同一个芯片内。例如1KX8位的芯片。(2)位结构方式:是指将芯片上所有存储元排列成不同的存储单元,每个单元一位,即将所有存储元列成不同字的同一位,例如8KXl位的芯片。

大量芯片采用两种方式相结合,例如2KX4

2.地址译码器:接受地址信息经译码选中相应单元地址译码3.读写控制电路:接受CPU控制信息,决定存储器操作控制4.数据缓冲器:寄存来自CPU的写入数据或存储体内读出数据

片选信号:表示存储器是否工作读信号:表示存储器的操作为读操作写操作:表示存储器的操作为写操作一唯译码:每一字选线选中存储单元二唯译码:X,Y译码,X,Y相交处选中一单元6.2存储器接口技术存储器接口中应考虑的几个问题存储器与CPU的时序问题CPU总线负载能力存储器芯片的选择一、存储器接口中应考虑的问题1、存储器与CPU的时序配合几个问题:(1)什么是总线周期?(2)什么是时钟周期?(3)如何实现二者之间的时序配合?(4)设计产生等待信号电路应注意那些问题2、CPU总线负载能力3、存储器芯片的选用二、存储器地址译码方法1、什么是寻址?存储器与CPU地址总线连接时,要根据内存地址分配连接,以实现CPU在某一时刻只能唯一选中某一个内存地址单元,称为寻址。2、如何完成寻址功能?要完成寻址功能必须具备两种选择:(1)片选:即首先要从众多存储器中,选中要进行数据传输的某一存储器芯片,称为片选。一般由接口电路中的端口译码产生。(2)字选:然后从该芯片内选择出某一存储单元,称为字选。由存储器内部的译码电路完成。3、片选控制的译码方法常用方法有:线选法、全译码法、部分译码法、混合译码法等。

(1)线选法:用高位地址直接作为存储芯片的片选信号,每一根选通一块芯片,这种方法称线选法。例:假定某微机系统的存储容量为4KB,CPU寻址空间为64KB(即地址总线为16位),芯片容量为1KB(即片内地址为10位)。

1KBCS11KBCS11KBCS11KBCS1A10A11A12A13A0~A9

第一块芯片A10为1时选中第二块芯片A11为1时选中第三块芯片A12为1时选中第四块芯片A13为1时选中适用:存储器容量不大,所使用的存储芯片数量不多,而CPU寻址空间远远大于存储器容量时的场合。线选法特点:优点是连线简单,片选控制无需专门的译码电路。两个缺点,一是导至地址重叠,二是整个存储器地址分布不连续,使可寻址范围减小。给编程带来麻烦。

用A13或A14作片选A0~A12A0~A12A0~A12A0~A12CS6264CS6264(A14)A13M/IOD0~D7D0~D7D0~D7D0~D7

用A13作片选,其地址分布1#2#1#2#00000H~01FFFH02000H~03FFFH04000H~05FFFH06000H~07FFFH

用A14作片选,其地址分布1#1#2#2#00000H~01FFFH02000H~03FFFH04000H~05FFFH06000H~07FFFH

(2)全地址译码:除了将低位地址总线直接与各芯片的地址线相连接之外,其余高位地址总线全部经译码后作为各芯片的片选信号。例:CPU地址总线为16位,存储芯片容量为8KB,采用全地址译码设计64KB存储器

8KBCS8KBCS8KBCSY0Y1Y73:8译码器A13~A15A0~A12(1)(2)(8)

特点:全译码法可以提供对全部存储空间的寻址能力,存储器的地址是连续且唯一确定的,即无地址间断和地址重叠现象。电路较复杂,特别是地址范围较大时

(3)部分地址译码:是将高位地址线中的一部分进行译码,产生片选信号。例:CPU地址总线为16位,存储器由4片容量为8KB的芯片构成,采用部分译码法进行地址译码

8KBCS8KBCS8KBCSY0Y1Y32:4译码器A13~A14A0~A12(1)(2)(4)A15空闲

虽然仍有地址重叠现象,但不会出现两块芯片地址同时选中。在大地址空间设计小容量存储器,常采用这种方式,电路简单。

(4)混合地址译码:一部分采用部分译码,一部分采用线选译码例:当CPU地址总线为16位,存储器由10片容量为2KB的芯片构成,使用混合译码法实现地址译码

2KBCS(1)2KBCS(2)2KBCS(8)2KBCS(9)2KBCS(10)Y0Y1Y73-8译码器A11~A13A14A15A0~A10

特点:该方法将用于片选控制的高位地址分为两组,其中一组的地址(通常为较低位)采用部分译码法,经译码后的每一个输出作为一块芯片的片选信号;另一组地址(通常为较高位)则采用线选法,每一位地址线作为一块芯片均片选信号。4、地址译码电路的设计存储器地址译码电路的设计一般遵循如下步骤:①根据系统中实际存储器容量,确定存储器在整个寻址空间中的位置;②根据所选用存储芯片的容量,画出地址分配图或列出地址分配表;③根据地址分配图或分配表确定译码方法并画出相应的地址位图;④选用合适器件,画出译码电路图。

某系统地址总线为16位,实际存储器容量为16KB,ROM区和RAM区各占8KB,其中ROM区采用容量为2KB的EPROM芯片,RAM区采用容量为1KB的静态芯片,设计存储器的地址译码电路.

选片确定芯片数目EPROM2KB4片,RAM1KB8片确定各芯片的地址芯片号类型容量地址范围1ROM2KB0000~07FFH2ROM2KB0800~0FFFH3ROM2KB1000~17FFH4ROM2KB1800~1FFFH

芯片号类型和容量地址范围1RAM1KB2000~23FFH2RAM1KB2400~27FFH3RAM1KB2800~2BFFH4RAM1KB2C00~2FFFH5RAM1KB3000~33FFH6RAM1KB3400~37FFH7RAM1KB3800~3BFFH8RAM1KB3C00~3FFFH

≥1≥1≥1≥1≥1≥1≥1≥11ABCG2AG2BG1A14A15+5VA11A12A13A10(1)(2)(3)(4)(5)(6)(7)(8)(9)(10)(11)(12)去4片EPROM去8片RAMY0Y774LS138

存储器与控制总线、数据总线的连接存储器与控制总线的连接用CPU的读、写信号控制存储器的读、写存储器与数据线连接根据CPU的数据线的宽度和选用的存储器的宽度决定几个存储器同时工作6.3主存储器接口主存储器的类型不同,则接口不同。以EPROM、SRAM、DRAM为例分别介绍。一、EPROM与CPU的接口EPROM的实例276427162K*8地址线A0~A1213根27324K*8数据线D0~D78根27648K*8片选CS2712816K*8读允许OE2725632K*8编程脉冲PGM2751264K*8编程电压VPP

电源电压VCC

2764的工作模式信号VCCVPPCEOEPGMD7~D0读方式+5V+5V低低低输出编程方式+5V+25V高高正脉冲输入校验方式+5V+25V低低低输出备用方式+5V+5V无关无关高高阻未选中+5V+5

温馨提示

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

评论

0/150

提交评论