8微机接口8259_第1页
8微机接口8259_第2页
8微机接口8259_第3页
8微机接口8259_第4页
8微机接口8259_第5页
已阅读5页,还剩53页未读 继续免费阅读

下载本文档

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

文档简介

中断控制接口,教学重点8259A的中断工作过程和工作方式中断服务程序的编写,8259A中断控制器,Intel8259A是可编程中断控制器可用于管理Intel8080/8085、8086/8088、80286/80386的可屏蔽中断8259A的基本功能一片8259A可以管理8级中断,可扩展至64级每一级中断都可单独被屏蔽或允许在中断响应周期,可提供相应的中断向量号8259A设计有多种工作方式,可通过编程选择,8259A的内部结构和引脚,1.中断控制,中断请求寄存器IRR保存8条外界中断请求信号IR0IR7的请求状态Di位为1表示IRi引脚有中断请求;为0表示无请求中断服务寄存器ISR保存正在被8259A服务着的中断状态Di位为1表示IRi中断正在服务中;为0表示没有被服务中断屏蔽寄存器IMR保存对中断请求信号IR的屏蔽状态Di位为1表示IRi中断被屏蔽(禁止);为0表示允许,2.与处理器接口,3.中断级连,一个系统中,8259A可以级连,有一个主8259A,若干个(最多8个)从8259A级连时,主8259A的三条级连线CAS0CAS2作为输出线,连至每个从8259A的CAS0CAS2每个从8259A的中断请求信号INT,连至主8259A的一个中断请求输入端IR主8259A的INT线连至CPU的中断请求输入端SP*/EN*在非缓冲方式下,规定该8259A是主片(SP*1)还是从片(SP*0),动画,示例,8259A的中断响应过程,动画,8259A的工作方式,1.设置优先权方式,普通全嵌套方式8259A的中断优先权顺序固定不变,从高到低依次为IR0、IR1、IR2、IR7中断请求后,8259A对当前请求中断中优先权最高的中断IRi予以响应,将其向量号送上数据总线,对应ISR的Di位置位,至到中断结束(ISR的Di位复位)在ISR的Di位置位期间,禁止再发生同级和低级优先权的中断,但允许高级优先权中断的嵌套特殊全嵌套方式优先权自动循环方式优先权特殊循环方式,2.结束中断处理方式,什么是8259A的中断结束?,8259A利用中断服务寄存器ISR判断:某位为1,表示正在进行中断服务;该位为0,就是该中断结束服务。这里说明如何使ISR某位为0,不反映CPU的工作状态。,2.结束中断处理方式,自动中断结束方式普通中断结束方式配合全嵌套优先权方式使用当CPU用输出指令往8259A发出普通中断结束EOI命令时,8259A就会把所有正在服务的中断中优先权最高的ISR位复位特殊中断结束方式配合循环优先权方式使用CPU在程序中向8259A发送一条特殊中断结束命令,这个命令中指出了要清除哪个ISR位,3.屏蔽中断源方式,普通屏蔽方式将IMR的Di位置1,则对应的中断IRi被屏蔽,该中断请求不能从8259A送到CPU如果IMR的Di位置0,则允许IRi中断产生特殊屏蔽方式将IMR的Di位置1,对应的中断IRi被屏蔽的同时,使ISR的Di位置0,4.中断触发方式,边沿触发方式8259A将中断请求输入端出现的上升沿作为中断请求信号电平触发方式中断请求端出现的高电平是有效的中断请求信号,5.数据线连接方式,缓冲方式8259A的数据线需加缓冲器予以驱动8259A把SP*/EN*引脚作为输出端,输出允许信号,用以锁存或开启缓冲器非缓冲方式SP*/EN*引脚为输入端若8259A级连,由其确定是主片或从片:SP*/EN*=1为主片,SP*/EN*=0为从片,8259A的编程,初始化编程8259A开始工作前,必须进行初始化编程给8259A写入初始化命令字ICW中断操作编程在8259A工作期间可以写入操作命令字OCW将选定的操作传送给8259A,使之按新的要求工作还可以读取8259A的信息,以便了解他的工作状态,1.初始化命令字ICW,初始化命令字ICW最多有4个8259A在开始工作前必须写入必须按照ICW1ICW4顺序写入ICW1和ICW2是必须送的ICW3和ICW4由工作方式决定,流程,ICW1(A0=0),表示可以任意为1为0都可以(建议为0),1只能为1,作为标志,中断触发方式:LTIM1,电平触发方式LTIM0,边沿触发方式,规定单片或级连方式:SNGL1,单片方式SNGL0,级连方式,是否写入ICW4IC41,要写入ICW4IC40,不写入ICW4,即ICW4规定的位全为0,ICW2(A0=1),设置中断向量号T7T3为中断向量号的高5位低3位由8259A自动确定:IR0为000、IR1为001、IR7为111,ICW3(A0=1),级连命令字主片8259A:Si1对应IRi接有从片;否则IRi没有连接从片从片8259A:ID0ID2编码说明从片INT引脚接到主片哪个IR引脚,ICW4(A0=1),嵌套方式:特殊全嵌套方式(SFNM1)普通全嵌套方式(SFNM0),数据线的缓冲方式:缓冲方式(BUF1)非缓冲方式(BUF0),主片/从片选择:主片(M/S=1)从片(M/S=0),中断结束方式:自动中断结束(AEOI1)非自动中断结束(AEOI0),微处理器类型:16位80 x86(PM1)8位8080/8085(PM0),举例:一个主片,一个从片构成中断系统,初始化主片8259Amoval,11h;ICW1:边沿触发,多片,要ICW4out20h,almoval,08h;ICW2:中断类型号08H0FHout21h,almoval,04h;ICW3:IR2上引入从片out21h,almoval,1h;ICW4:一般全嵌套,非缓冲,非自动结束,8086out21h,al,中断控制器的初始化程序段,初始化从片8259A,moval,11h;ICW1:边沿触发,多片,要ICW4out0a0h,almoval,70h;ICW2:中断类型号70H77Hout0a1h,almoval,02h;ICW3:IR2上引入从片out0a1h,almoval,01h;ICW4:全嵌套,非缓冲,非自动结束,8086out0a1h,al,中断控制器的初始化程序段,2.操作命令字OCW,8259A工作期间,可以随时接受操作命令字OCWOCW共有3个:OCW1OCW3写入时没有顺序要求,需要哪个OCW就写入那个OCW,OCW1(A0=1)中断屏蔽,屏蔽命令字内容写入中断屏蔽寄存器IMRDiMi对应IRi,为1禁止IRi中断;为0允许IRi中断。各位互相独立。,OCW2(A0=0)中断排队方式,R、SL和EOI配合使用产生中断结束EOI命令和改变优先权顺序,L2L0的3位编码指定IR引脚,OCW3(A0=0)特殊屏蔽查询中断读状态,ESMM、SMM设置中断屏蔽方式,P、RR和RIS规定随后读取的状态字含义,3.读取状态字,CPU可读出IRR、ISR、IMR和查询字A0为低,由OCW3中RR和RIS位设定读取IRR或ISR,由OCW3中P位设定读取查询字而A0引脚为高电平时读取的都是IMR,查询字:反映8259A是否有中断请求,中断位I位为1,有外设请求中断,W2W0的编码当前中断请求的最高优先级,4.命令字和状态字的区别方法,利用读写信号区别写入的控制寄存器和读出的状态寄存器利用地址信号区别不同I/O地址的寄存器由控制字中的标志位说明是哪个寄存器由芯片内顺序控制逻辑按一定顺序识别不同的寄存器由前面的控制字决定后续操作的寄存器,8259A的应用举例,例IBMPC机中,只有一片8259A,可接受外部8级中断。在I/O地址中,分配8259A的端口地址为20H和21H,初始化要求为:边沿触发、缓冲连接、中断结束采用一般EOI命令、中断优先级采用完全嵌套方式,8级中断源的中断类型分别为08H0FH,写出初始化程序为:,MOVDX,20HMOVAL,00010011BOUTDX,AL;写入ICW1MOVDX,21HMOVAL,08HOUTDX,AL;写入ICW2MOVAL,00001101BOUTDX,AL;写入ICW4XORAL,ALOUTDX,AL;写入OCW1。STI。,例进入和退出特殊屏蔽方式,假定初始化之后,8259A工作于完全嵌套方式,要求对于IR3的中断级,能够允许任何级别的中断中断其中断服务程序,即8259A按特殊屏蔽方式工作。因而在响应IR3而执行IR3的中断服务程序时,在A处,写入OCW1以屏蔽IR3,然后写入OCW3使ESMM=SMM=1,于是从A处开始,8259A进入特殊屏蔽方式,此后继续执行IR3的中断服务程序。在中断服务结束之前B处,再向8259A写入OCW3使ESMM=1,SMM=0,结束特殊屏蔽方式,返回到完全嵌套方式,接着写入OCW1,撤消对IR3的屏蔽,最后写入OCW2,向8259A发出EOI命令。此例说明在IR3的中断服务程序的A处至B处,允许任何级别的中断源中断IR3的服务程序。(除本身之外),。IR3中断服务程序入口STI;STI开中断MOVAL,00001000BOUT21H,AL;A处写入OCW1,使IM3=1,屏蔽IR3,MOVAL,01101000B;写入OCW3,使ESMM=SMM=1,置特殊屏蔽OUT20H,AL。;继续服务MOVAL,01001000B;B处写入OCW3,使ESMM=1,SMM=0,清除特殊屏蔽OUT20H,AL;MOVAL,00H;写入OCW1,使IM3=0,开放IR3OUT21H,AL;MOVAL,00100000B;写入OCW2,普通的EOI命令OUT20H,AL;IRET;中断返回,例读8259A相关寄存器的内容,设8259A的端口地址为20H、21H,请读入IRR、ISR、IMR寄存器的内容,并相继保存在数据段2000H开始的内存单元中;若该8259A为主片,请用查询方式,查询哪个从片有中断请求。,MOVAL,xxx01010B;发OCW3,欲读取IRR的内容(偶地址)OUT20H,ALINAL,20H;读入并保存IRR的内容MOV(2000H),ALMOVAL,xxx01011B;发OCW3,欲读取ISR的内容(偶地址)OUT20H,ALINAL,20H;读入并保存ISR的内容MOV(2001H),ALINAL,21H;读入并保存IMR的内容(奇地址)MOV(2002H),ALMOVAL,xxx011xxB;发OCW3,欲查询是否有中断请求OUT20H,ALINAL,20H;读入相应状态,并判断最高位是否为1TESTAL,80HJZDONEANDAL,07H;判断中断源的编码DONE:HLT,例完整的主程序和中断服务子程序,8259A的IRQ0(向量号为08H)中断请求来自定时器8253本程序的08H号中断服务程序,每次中断显示一串信息,显示10次,数据段,DatasegmentintmsgdbA8259AInterrupt!db0dh,0ah,0counterdb0DataendsCodesegmentassumecs:code,ds:dataStart:movax,datamovds,ax,设置中断屏蔽寄存器,inal,21h;读IMR(奇地址口)pushaxandal,0feh;允许IRQ0out21h,almovcounter,0;设置中断次数初值sti;开中断start1:cmpcounter,10jbstart1;中断10次退出sti;开中断movax,4c00h;返回dosint21h,new08hsti;开中断pushax;保护寄存器(现场)pushbxpushdsinccountermovsi,offsetintmsg;显示信息calldpstrimoval,20h;结束中断out20h,alpopds;恢复寄存器popbxpopaxiret;中断返回,进入中断服务程序,显示字符串,dpstriproc;显示字符串子程序pushaxpushbxdps1:lodsbcmpal,0jzdps2movbx,0movah,0ehint10hjmpdps1dps2:popbxpopaxretdpstriendp,例题:中断向量的装入直接写入法,MOVAX,00HMOVES,AX;0段MOVBX,08H*4;中断向量指针MOVAX,1234;中断服务程序偏移地址MOVES:BX,AX;装入偏移地址MOVAX,5678H;中断服务程序段地址MOVES:BX+2,AX;装入段地址,保存原中断向量,movax,3508hint21hpushbx;保存偏移地址pushes;保存段基地址,设置新中断向量,clipushdsmovdx,offsetnew08h;新偏移地址movax,segnew08hmovds,ax;新段基地址movax,2508hint21hpopds,补充习题与思考题:,1.中断向量表的功能是什么?已知中断类型码分别是84H和FAH,它们的中断向量应放在中断向量表的什么位置?2.如果8259A按如下配置则ICW1的值为多少?需要ICW4,单片以及边缘触发。如要求产生的中断类型码在70H77H之间,则ICW2的值是多少?3.如果8259A用在80386DX系统中,用一般的EOI,缓冲模式主片,特殊全嵌套方式,则ICW4的值是什么?4.如果OCW2等于67H,则允许何种优先级策略?,5.某系统有五个中断源,它们分别从中断控制器8259A的IR0IR4以脉冲方式引入,系统中断类型码分别为48H4CH,中断入口的偏移地址分别为2500H,4080H,4C05H,5540H和6FFFH,段地址均是2000H,允许它们以全嵌套方式工作,请编写相应的初始化程序,使CPU响应任一级中断时,都能进入各自的中断服务子程序。6.某系统中设置三片8259A级联使用,两片从片分别接至主片的IR2和IR6,同时,三片芯片的IR3上还分别连接了一个中断源,已知它们的中断入口均在同一段,段基址为4000H,偏移地址分别为1100H,40B0H,A000H,要求电平触发,普通EOI结束。画出它们的硬件连接图,编写全部的初始化程序。,8259A在IBMPC系列机上的应用,对比在IBMPC/XT机的应用,应用注意事项,利用上升沿做为中断请求IRQ的有效信号IRQ0IRQ8的中断向量号依次为08H0FH,IRQ8IRQ15依次为80H87H采用普通全嵌套优先权方式,中断优先权从高到低顺序为IRQ0IRQ2、IRQ8IR

温馨提示

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

评论

0/150

提交评论