硬件技术概要_第1页
硬件技术概要_第2页
硬件技术概要_第3页
硬件技术概要_第4页
硬件技术概要_第5页
已阅读5页,还剩39页未读 继续免费阅读

下载本文档

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

文档简介

硬件技术概要2一.可编程中断控制器(PIC---ProgrammableInterruptController)---8259A1.8259A的外部特性

8259A作为一种可编程中断控制器,是一种集成芯片。它用来管理输入到CPU的各种中断申请(主要外围设备),能提供中断向量、屏蔽各种中断输入等功能。每一个8259A芯片都能直接管理8级中断,最多可以用9片8259A芯片级连,由其构成级连机构可以管理64级中断。

当有中断请求时,总线控制器发出IOR或IOW信号,而信息的传递则是通过数据总线D7~D0来完成的。当CPU完成对8259A的初始化操作后,8259A即进入操作状态,通过INTCPU提出中断申请,8259A从数据总线D7~D0输出当前服务对象的中断类型号N,CPU截获该中断向量并响应该中断,完成一次中断操作。3

8259A引脚与信号4每个引脚的功能如下所述:(1)片选取信号(CS)(2)写信号(WR)(3)读信号(RD)(4)D0~D7:8条数据总线(5)GND:地信号(6)Vcc:+5V电源(7)INT:中断请求信号(8)INTA:中断响应信号(9)IR0~IR7:8个中断请求输入信号(10)A0:地址选择信号(11)SP/EN:从片编程/允许缓冲器信号(12)CAS0~CAS2:这三条信号是8259A级连时构成8259A的主从式级连结构5一个8259A与8086微处理器的连接

8259A与8086连接例6•8259A内部结构逻辑主要由三部分组成:(1)控制逻辑读写控制、控制电路(2)中断优先权判优及其屏蔽IRR:反映外部中断输入情况ISR:反映CPU对中断的处理情况IMR:反映用户对各中断之间关系的定义PR:反映用户对中断处理先后的安排(3)辅助电路数据总线缓冲器、级联缓冲/比较器等。2.8259A的内部特性•功能及工作特点1)可用9片8259A来构成64级的主从式中断系统。2)每一级中断都可以屏蔽或允许。3)8259A可提供相应的中断向量,从而能迅速地转至中断服务程序。4)通过编程使8259A工作在多种不同的方式。5)工作时只需要一组+5V电源。7

8259A芯片的内部逻辑结构图8•8259A的工作原理

第一个负脉冲到达时,8259A做到:1)使IRR的锁存功能失效。2)使当前中断服务寄存器ISR中的相应位置1。CPU正在执行相应服务程序。3)使IRR寄存器中的相应位清零。已响应该中断。第二个负脉冲到达时,8259A完成:1)将中断类型寄存器中的内容ICW2,送到数据总线的D7~D0,CPU将此作为中断类型码。2)第二个脉冲结束时,8259A会将第一个脉冲到来时设置的当前中断服务寄存器ISR的相应位清零(自动EOI)。该中断处理过程结束。•中断触发方式(1)边沿触发方式,低电平到高电平跳变有效(2)电平触发方式,高电平有效,保持到INTA的前沿9

中断响应总线周期时序10•中断响应过程1)当它的一条或多条中断请求线(IR7~IR0)变为高电平时,它就使中断请求锁存器IRR相应的位置1。2)8259A分析这些请求,它就向CPU发出高电平有效信号INT,请求中断服务。3)当前一条指令执行完毕,且IF=1时,CPU响应中断请求,进入中断响应总线周期。4)8259A接到来自CPU的第一个脉冲,把允许中断的最高优先级请求位,置入服务寄存器ISR,并把IRR中对应的位清零。

5)CPU在第二个总线周期,再次发出一个脉冲,8259A接到第二个脉冲,送出中断类型码,CPU读取该类型码。第二个中断响应周期,总线封锁撤销。113.1.一般完全嵌套方式初始化后自动进入该方式,中断请求具有固定的中断级别,IR0最高,IR7最低。

•堆栈容量较大

•进入中断服务程序后开中断

•根据需要采用EOI方式结束中断3.2优先级自动循环方式将当前已处理完成的中断(原来的最高级别)的级别改为最低级,次高级成为最高级,优先级循环而不固定。适用于中断级别差不多的情况。

•当前总是处理最高级别中断

•根据需要采用EOI方式结束中断3.8259A的中断响应次序确定123.3中断屏蔽方式利用CLI指令屏蔽所有可屏蔽中断(由INTR引起的中断);或设置IMR对应位为‘1’,以屏蔽对应的中断请求(普通屏蔽方式);或置控制寄存器的SMM位为‘1’,以屏蔽本级中断请求(特殊屏蔽方式)。4.中断服务结束处理方式4.1普通EOI方式中断服务完成后,传送EOI结束命令给8259A,收到命令后将ISR中级别最高的位清‘0’。(不允许在服务程序中修改中断级别)4.2特殊EOI方式在传送EOI命令的同时,将当前结束的中断级别也传送给8259A,使ISR能清除相应的位。(与当前处理的中断完全吻合)4.3自动EOI方式在第二个INTA结束时,自动使ISR相应位清‘0’。13PC/AT机两片8259级联硬件连接图5.8259A的级联14

IBMPC/AT机中断源和中断类型号15•从8259A的INT接到主8259A的IRi端。•二级连接最多可接64个中断源。•在第一个INTA有效时,主8259A将级联地址通知从8259A。•在第二个INTA有效时,被选中的从8259A将中断类型码送出。•从8259A结束中断时,应发出两个EOI命令。缓冲方式级联:8259A通过总线驱动器和数据总线相连,这就是缓冲方式。非缓冲方式级联:当系统中只有单片8259A时,一般将它直接与数据总线相连。168259A缓冲方式下级连结构178259A非缓冲方式下级连结构18•特殊完全嵌套方式允许同级的中断打断适用于级联方式主级为特殊完全嵌套方式,允许新的中断请求(在从级上可能有其它中断申请)从级为其他优先级方式必须以特殊EOI结束19二.8259A的编程

CSRDWRA0功能8259A端口PC/XT机端口0010读IRR,ISR偶地址20H0011读IMR奇地址21H0100写ICW1,OCW2,OCW3偶地址20H0101写ICW2,ICW3,ICW4,OCW1奇地址21H011×无操作

1×××无操作

1.8259A寄存器及I/O端口的识别20IRR---InterruptRequestRegisterISR---In-ServiceRegisterIMR---InterruptMaskRegisterICW---InitializationCommandWordsOCW---OperationCommandWords2.预置命令字---ICW21ICW1命令字ADI、A7、A6、A5视为无关项,用于联接808522ICW2命令字D2、D1、D0根据引起8259A的中断位于的输入脚确定23

主8259A的ICW3命令字仅用于ICW1的SNGL=0(级联)时,D0~D7表示主8259A哪个IR接从8259AD0、D1、D2作为从8259A命令字时,表示INT接到主8259A的哪个IR24ICW4命令字确定中断管理方式,D0位置‘1’25ICW1-ICW4编程的顺序26初始化例:P.239(端口地址80H~81H)

MOVAL,13H;ICW1定义,单片,沿触发,要ICW4OUT80H,ALMOVAL,18H;ICW2定义,中断类型3OUT81H,ALMOVAL,01H;ICW4定义,一般完全嵌套,非自动

OUT81H,ALEOI,非缓冲方式27TheOperationCommandWords(OCWs)areusedtodirecttheoperationofthe8259A.OCW1:OCW1isusedtoreadorsettheinterruptmaskregister.Ifabitisset,itwillturnoff(mask)thecorrespondinginterruptinput.3.操作命令字---OCW28OCW2:OnlyprogrammedwhentheAEOImodeinICW4is0.(NotAEIO)Allowsyoutocontrolprioritiesaftereachinterruptisprocessed.29OCW2:L0~L2areusedtosetpriorityordeterminetheexactposition.30OCW2:Non-specificEOI:Here,theISRsetsthisbittoindicateEOI.The8259Aautomaticallydetermineswhichinterruptwasactiveandre-enablesitandlowerpriorityinterrupts.SpecificEOI:ISRresetsaspecificinterruptrequestgivenbyL2-L0.Rotatecommandscauseprioritytoberotatedw.r.t.thecurrentonebeingprocessed.Setpriority:allowsthesettingofthelowestpriorityinterrupt(L2-L0).31OCW3:Ifpollingisset,thenextreadoperationwillreadthepollword.Iftheleftmostbitissetinthepollword,therightmost3bitsindicatetheactiveinterruptrequestwithhighestpriority.AllowsISRtoservicehighestpriorityinterrupt.32Therearethreestatusregisters,InterruptRequestRegister(IRR),In-ServiceRegister(ISR)andInterruptMaskRegister(IMR).IRR:Indicateswhichinterruptrequestlinesareactive.ISR:Leveloftheinterruptbeingserviced.IMR:Amaskthatindicateswhichinterruptsareon/off.4.8259A的编程结构总结33ISRupdateprocedurewithrotatingpriorityconfigured.348259A的编程结构总结35说明:•ICW1与OCW2的区别在于ICW1是初始化后的第一次写•ICW2是紧跟着ICW1的写,是否写ICW3,取决于SNGL=0,是否写ICW4,取决于IC4=1•OCW1是预置命令字完成后的写•OCW2和OCW3的区别在于D3和D4的设定•读IRR或ISR由OCW3的RIS(D0)位确定36

IBM-PC/XT机对8259A的初始化IBM-PC/AT机对8259A的初始化5.中断程序设计举例37IBM-PC/XT机对8259A的初始化要求:工作在8086/8088系统、单片8259A、边沿触发方式。中断向量初始值为08H~0FH(IR0~IR7)。中断服务结束时,用常规的中断结束命令,固定优先权级别。这个初始化程序在BIOS中,系统启动时,运行BIOS,给8259A初始化。38

在IBMPC/XT机中,8259A中所有的命令字寄存器的地址只有两个,一个是偶地址20H,一个是奇地址21H。初始化程序如下:MOVAL,00010011B;边沿触发(D3=0)、单片(D1=1)

;8259A、有ICW4(D0=1)OUT20H,AL;写ICW1MOVAL,00001000B;中断向量号为;~00001111(08H~0FH)OUT21H,AL;写ICW2MOVAL,00000001;8086系统(D0=1)、非缓冲(D3=0)、;非自动结束(D1=0)OUT21H,AL;写ICW4MOVAL,0FFH;屏蔽所有中断(D0~D7=1)OUT21H,AL;写OCW1(1)初始化编程39(2)中断屏蔽1)屏蔽/开放所有中断

MOVAL,00HOUT21H,ALMOVAL,0FFHOUT21H,AL2)屏蔽/开放某些中断允许IR0和IR1发中断,禁止其他中断。

MOVAL,11111100BOUT21H,ALSTI40允许IR0和IR1发中断,其他中断维持原状态。

INAL,21HANDAL,11

温馨提示

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

评论

0/150

提交评论