版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、并行并行输入输出接口输入输出接口 82558255一、一、 并行输入并行输入/输出概念输出概念并行通信。把二进制数的n个数位用相同数量(n)的线路同时进行传输。8,16,32二、并行接口二、并行接口实现并行通信电路,通常采用并行I/O接口芯片。8255A专用并行接口芯片,可为专用并行接口芯片,可为X86系列系列CPU与外部设备之与外部设备之间提供并行输入间提供并行输入/输出的通道。输出的通道。可编程可以通过软件来设置芯片的工作方式。用可编程可以通过软件来设置芯片的工作方式。用8255A连连接外部设备时,通常不用再附加外部电路。接外部设备时,通常不用再附加外部电路。三、可编程输入三、可编程输入/
2、输出接口芯片输出接口芯片82558255A的方框图(一)(一) 8255A的引脚与结构的引脚与结构D7-01.数据端口数据端口A、B、C 端口端口A A对应对应1 1个个8 8位数据位数据输入锁存输入锁存/ /缓冲器缓冲器,8 8位位输出锁存输出锁存/ /缓冲器缓冲器 端口端口B B对应对应1 1个个8 8位数据位数据输入缓冲器输入缓冲器,1 1个个8 8位位输出锁存输出锁存/ /缓冲器缓冲器 端口端口C C对应对应1 1个个8 8位数据位数据输入缓冲器输入缓冲器,1 1个个8 8位位输出锁存输出锁存/ /缓冲器缓冲器。 2. A组控制和组控制和B组控制电路组控制电路具有控制寄存器具有控制寄存
3、器,控制,控制8255工作方式工作方式 A组控制电路控制端口A和端口C的高4位的工作方式和读写操作。 B组控制电路控制端口B和端口C的低4位的工作方式和读写操作。(一)(一) 8255A的结构的结构3.数据总线缓冲器三态双向数据总线缓冲器三态双向8位位功能:通过它与系统数据总线相连。 4.读写控制逻辑电路读写控制逻辑电路 功能:管理数据传输过程。5. 控制信号控制信号片选信号片选信号CS:由系统地址线译码产生,启动:由系统地址线译码产生,启动CPU与与8255A之之间的通信。间的通信。读读RD、写、写WR信号:控制信号:控制CPU与与8255A之间的数据流向。之间的数据流向。复位信号复位信号R
4、ESET :清控制寄存器,设置:清控制寄存器,设置A、B、C三个端口为三个端口为输入方式且锁存器清零。输入方式且锁存器清零。6. 端口寻址端口寻址三个输入三个输入/输出数据端口和一个控制字寄存器,共四个端口。输出数据端口和一个控制字寄存器,共四个端口。端口选择信号:端口选择信号:A0,A1经译码,四个地址分别对应于经译码,四个地址分别对应于A、B、C三个数据端口和一个控制端口。三个数据端口和一个控制端口。表表6-4表表6-4 8255A端口选择表端口选择表 (二二) 8255A的控制字及工作方式的控制字及工作方式8255在使用前,需要写入控制字,设定在使用前,需要写入控制字,设定ABC三个数据
5、端口三个数据端口的工作方式。的工作方式。三种基本工作方式三种基本工作方式方式0基本的输入或输出方式:无需联络信号,直接进行IO操作。方式1选通的输入或输出方式:需要联络信号的协调,才能传输数据。方式2双向传输方式,即可输入也可输出。端口A工作于方式0,1,2端口B工作于方式0,1端口C工作于方式0A口和B口工作于方式1,2时,C口某些数据线用来传递状态和控制信息。2. 工作方式控制字工作方式控制字8255工作方式由内部控制寄存器(A1A011)来确定。3. C口置位复位控制字通过向控制寄存器写位控制字,可以单独设置C口某1位的状态是1或0。例:设8255A控制端口的地址为0FBH 从PC7输出
6、一个正脉冲分析:1)写控制字使PC7复位 2)写控制字使PC7置位 3)延时 4)写控制字使PC7复位0EH0FH MOV AL,0EH OUT 0FBH,AL MOV AL,0FH OUT 0FBH,AL MOV CX,100HXUL: NOP LOOP XUL MOV AL,0EH OUT 0FBH,AL思考题:从思考题:从PC7输出一个连续的方波信号,输出一个连续的方波信号,如何编程?如何编程?三三 、方式方式0 基本输入输出方式,适用于无需应答信号的简单I/O设备,I/O设备处于准备好状态,CPU随时从端口写入或读取数据。 方式0可工作在查询方式,方式0的应答信号线由用户自行定义,只能
7、查询不能中断,通常取C口的某些位作为A、B口的控制和状态信息。8255A口B口输出设备输入设备PC1PC7PC6PC0选通准备好准备好清除输出:先输入输出:先输入PC7查询设备状态,若准备好,从查询设备状态,若准备好,从A口输出口输出数据,用数据,用PC1发选通信号,使输出设备接收数据。发选通信号,使输出设备接收数据。输入:先输入输入:先输入PC6查询设备状态,若准备好,从查询设备状态,若准备好,从B口输入口输入数据,用数据,用PC0发清除信号,以便输入后续数据。发清除信号,以便输入后续数据。四、四、 方式方式11. 与方式与方式0的比较的比较和方式和方式0相比,相比,A、B仍作为数据输入仍作
8、为数据输入/输出口,但规定端输出口,但规定端口口C的某些位作为状态和控制信息,不能由用户改变。的某些位作为状态和控制信息,不能由用户改变。2. 方式1输入A口工作方式1,借用PC5PC3做控制线;B口工作方式1,借用PC2PC0做控制线;PC4 PA7-0PB0-7PC2STB选通信号。由外部输入,低电平有效。STB有效时,将外部输入的数据锁存到所选端口的输入锁存器中。对A组来说,指定端口C的PC4用来接收向端口A输入的STB信号;对B组来说,指定端口C的PC2用来接收向端口B输入的STB信号。IBF输入缓冲存储器满信号。向外部输出,高电平有效。IBF有效时,表示由输入设备输入的数据已占用该端
9、口的输入锁存器,(1)它由它由STB信号前沿置信号前沿置1。待CPU执行IN指令时,RD有效,将输入数据读入CPU,RD后沿把后沿把IBF清清“0”,表示输入缓冲存储器已空,外部设备可继续输入后续数据。INTR中断请求信号,高电平有效。这是8255A的一个输出信号,可作为向CPU的中断请求信号。当当INTE(中断允许中断允许)1且且(1)IBF1时,时,(2)STB的后沿使的后沿使INTR被置为高,被置为高,可输入中断控制器8259A作为中断请求信号。CPU响应中断,在中断服务程序中读走数据时,(3)RD信号的信号的下降沿使下降沿使INTR清零。清零。(4) RD后沿把后沿把IBF清清0。方式
10、方式1输入时序输入时序INTEA: 端口A的中断允许信号,可由用户通过对PC4的按位置位/复位来控制。PC4=1,允许中断。PC4=0,禁止中断。INTEB: 端口B的中断允许信号,可由用户通过对PC2的按位置位/复位来控制。PC2=1,允许中断。PC2=0,禁止中断。3. 方式1输出OBF输出缓冲器满信号。向外部输出,低电平有效。OBF有效时,表示CPU已将数据写入该端口正等待输出。当CPU执行OUT指令,WR有效时,表示将数据锁存到数据输出缓冲器,由WR的上升沿将OBF置为0,通知外设将数据取走。由ACK的有效信号使其恢复为高。ACK 外部应答信号。由外部输入,低电平有效。ACK有效,表示
11、外部设备已收到由8255A输出的八位数据,它实际上是对OBF信号的回答信号。INTR中断请求信号。向CPU输出,高电平有效。当输出装置已经接收了CPU输出的数据后,它用来作为向CPU提出新的中断请求。要求CPU继续输出数据。当OBF1和INTE=1时,ACK后沿(变为高电平),使其INTR置1(产生中断请求)。若CPU响应中断,向该端口写数据,WR信号使 INTR复位0。方式方式1输出时序输出时序INTR(2)WR后沿使OBF0有效,表示数据写入,输出缓冲器满(3)ACK变0,表示外设读走数据,使OBF1(4)ACK后沿,使其INTR置1,产生中断请求(1)CPU响应中断,向端口写数据,WR后
12、沿使INTR复位0INTEA: 端口A的中断允许信号,可由用户通过对PC6的按位置位/复位来控制。PC6=1,允许中断。PC6=0,禁止中断。INTEB: 端口B的中断允许信号,可由用户通过对PC2的按位置位/复位来控制。PC2=1,允许中断。PC2=0,禁止中断。3、方式、方式2双向双向IO方式方式1)方式)方式2只能用于只能用于A口口2)一个)一个8位的双向总线端口,一个位的双向总线端口,一个5位的控制端口位的控制端口3)输入、输出是锁存的)输入、输出是锁存的4) 5位的控制端口(位的控制端口(C口)用做口)用做A口的控制和状态信息口的控制和状态信息各控制信号意义如下:INTR:中断请求信
13、号,PC3OBF:输出缓冲器满,PC7ACK:数据已输出回答信号,PC6STB:外设发给8255A的选通信号,PC4IBF:输入缓冲器满,PC5例题:计算机通过8255实现与打印机连接, 8255的A、B、C口地址为80H、81H、82H,用A口作为数据端口,B口作为状态端口,对应状态位是D11,表示BUSY。编程实现:采用查询式方式,将内存地址1000H开始的100个字节(字符),输出到打印机。其中8255的控制字为8AH,应首先将控制字输出到接口对应地址中。1 0 0 0 1 0 1 0MOV BX,1000HMOV CX,100MOV AL,8AHOUT 83H,ALLPT:IN AL,
14、81H ; 读入状态字读入状态字 TEST AL,02H ;测试状态位是否为;测试状态位是否为1,不为,不为1转转 JNZLPT ; MOV AL,BXINCBX OUT 80H , AL ;已准备好,输出一个字节数据;已准备好,输出一个字节数据LOOP LPTPC/XT机中的8255A8255A的端口地址:的端口地址:60H、61H、62H、63HA口、口、B口、口、C口均工作在方式口均工作在方式0上电自检:上电自检: A口输出当前检测部件的标志信号,以逐个检测有关部件是否正口输出当前检测部件的标志信号,以逐个检测有关部件是否正常工作。常工作。B口输出,口输出,C口输入。口输入。正常工作:正
15、常工作: A口输入,读键盘扫描码口输入,读键盘扫描码 B口输出系统内部的控制信号,控制系统板内部电路动作,如定时口输出系统内部的控制信号,控制系统板内部电路动作,如定时器、扬声器、键盘等(例如器、扬声器、键盘等(例如PB70,允许键盘工作;,允许键盘工作;PB21,允许扬,允许扬声器发声;声器发声;PB01,允许定时器,允许定时器8253的计数器的计数器2工作。)工作。) C口输入,读取系统内部的状态信号,如系统配置开关口输入,读取系统内部的状态信号,如系统配置开关DIP的状态的状态(分别表示主板上(分别表示主板上RAM的容量、显卡的类型、软盘驱动器的个数等)的容量、显卡的类型、软盘驱动器的个
16、数等)、扬声器状态等、扬声器状态等计算机中断系统计算机中断系统 中断是计算机中一个重要且实用的技术。 采用中断技术主要为解决两个问题: 1.在输入输出过程中,解决快速的CPU与慢速的外设之间速度不匹配的问题,实现CPU与外设备并行工作,提高CPU的利用率。 2.确保CPU在运行过程中具有实时响应和处理随机事件的能力。 第一节第一节 中断概念中断概念一一. 中断的基本概念中断的基本概念什么是中断什么是中断当当CPU在正常执行程序的过在正常执行程序的过程中,出现了异常情况和特程中,出现了异常情况和特殊请求时(硬件产生请求),殊请求时(硬件产生请求),CPU暂时中止当前暂时中止当前程序的执程序的执行
17、,转去对这些事件进行处行,转去对这些事件进行处理(执行另外一段程序,理(执行另外一段程序,中中断服务子程序断服务子程序),),该事件处该事件处理完后,理完后,再返回原程序继续再返回原程序继续执行。这种过程(机制)就执行。这种过程(机制)就称为中断。称为中断。CPU执行程序执行程序事件发生事件发生中中断断服服务务子子程程序序中断响应中断响应中断返回中断返回继继续续执执行行K:DK:处处理理事事件件中断的作用中断的作用同步操作同步操作有了中断功能,就可以使有了中断功能,就可以使CPU和外设同时并行工作。和外设同时并行工作。例:键盘、显示器、打印机可以同时工作。例:键盘、显示器、打印机可以同时工作。
18、2 实时控制实时控制当计算机用于实时控制时,现场的信息采集和设备控制等当计算机用于实时控制时,现场的信息采集和设备控制等任务,可在任何时间通过发出中断申请,要求任务,可在任何时间通过发出中断申请,要求CPU进行处进行处理。理。3 故障处理故障处理计算机在运行过程中,往往会出现一些故障;如电源掉计算机在运行过程中,往往会出现一些故障;如电源掉电,存储出错,运算溢出等。计算机就可以利用中断系电,存储出错,运算溢出等。计算机就可以利用中断系统及时处理。统及时处理。引起中断的事件或能发出中断请求的引起中断的事件或能发出中断请求的I/O设备,称设备,称为中断源。为中断源。中断源有以下几种。中断源有以下几
19、种。一般的输入、输出设备。如键盘、打印机等。一般的输入、输出设备。如键盘、打印机等。数据通道中断源。如磁盘、磁带等。数据通道中断源。如磁盘、磁带等。实时时钟。实时时钟。故障源。例如电源掉电,就要求把正在执行的故障源。例如电源掉电,就要求把正在执行的程序状态程序状态PC(或(或IP)、各个寄存器的内容和)、各个寄存器的内容和标志位的状态保留下来,以便重新供电后能从断标志位的状态保留下来,以便重新供电后能从断点处运行。点处运行。中断源中断源为调试程序而设置的中断源。在程序调试时,为调试程序而设置的中断源。在程序调试时,为了检查中间结果,或为了寻找错误,往往要求为了检查中间结果,或为了寻找错误,往往
20、要求在程序中设置断点,或进行单步操作(一次只执在程序中设置断点,或进行单步操作(一次只执行一条指令),这些都由中断系统来实现。行一条指令),这些都由中断系统来实现。中断过程由硬件和软件共同实现的。基本功能如下:中断过程由硬件和软件共同实现的。基本功能如下:1发出中断请求发出中断请求作为中断源,在什么时候何时或何种条件下,以何作为中断源,在什么时候何时或何种条件下,以何种方式向种方式向CPU发出中断请求(信号)。发出中断请求(信号)。2实现优先级的判别实现优先级的判别计算机中设置有多种中断源,计算机中设置有多种中断源,当多个中断源同时向当多个中断源同时向CPU提出中断请求时,提出中断请求时,CP
21、U应能按轻重缓急(优先应能按轻重缓急(优先级)予以响应。级)予以响应。中断系统能够识别中断源的优先次中断系统能够识别中断源的优先次序。序。(四四)中断系统的基本功能中断系统的基本功能3定位中断服务程序定位中断服务程序不同的中断源对应不同中断服务程序。当中断发不同的中断源对应不同中断服务程序。当中断发生时,能够转到对应的中断服务程序执行。采用生时,能够转到对应的中断服务程序执行。采用中断向量方法。中断向量方法。4主程序的暂停和返回主程序的暂停和返回在中断请求发出后,在中断请求发出后,CPU如何停止主程序的执行,如何停止主程序的执行,并转入中断服务程序。中断处理完后,并转入中断服务程序。中断处理完
22、后,再返回主再返回主程序执行,过程中要保证主程序的完整性和正确。程序执行,过程中要保证主程序的完整性和正确。主程序暂停,转去执行中断响应,下一条将要执主程序暂停,转去执行中断响应,下一条将要执行指令的地址,称为行指令的地址,称为断点断点(段基址和偏移地址)。(段基址和偏移地址)。断点的保护和返回断点的保护和返回: CS,IP被自动入栈保护,被自动入栈保护,FLAS入入栈保护,是由硬件自动完成的。栈保护,是由硬件自动完成的。中断服务程序的最后一条指令中断服务程序的最后一条指令IRET,自动将入栈保护,自动将入栈保护的的FLAS,CS,IP弹出到对应寄存器。实现断点返回。弹出到对应寄存器。实现断点
23、返回。断点地址断点地址 标志寄存器内容标志寄存器内容硬件自硬件自动进行动进行压入压入堆栈堆栈IPLIPHCSLCSHFLAGLFLAGHSP断点断点地址地址标志寄存标志寄存器内容器内容堆栈堆栈当前指令下一条指令入口IRET中断请求中断服务程序断点断点现场的保护和恢复:现场的保护和恢复:中断响应会随机地打断主程序的中断响应会随机地打断主程序的执行,执行,主程序中用到的寄存器主程序中用到的寄存器不能被中断服务程序破不能被中断服务程序破坏,因此需要将中断程序用到的寄存器按顺序入栈保坏,因此需要将中断程序用到的寄存器按顺序入栈保护,返回时按照先进后出原则返回。护,返回时按照先进后出原则返回。PUSH
24、AXPUSH BXPUSH CXIPLIPHCSLCSHFLAGLFLAGHSPAXBXCX断点断点地址地址标志寄存标志寄存器内容器内容现场现场信息信息6实现多重中断实现多重中断当正在执行中断处理的过程中,又出现新的当正在执行中断处理的过程中,又出现新的中断请求时如何处理,这就是中断嵌套问题。中断请求时如何处理,这就是中断嵌套问题。8086能够处理能够处理256种不同类型中断,用种不同类型中断,用中断中断类型号类型号n区分,区分,n0255。 CPU以中断类以中断类型码来识别不同的中断源。型码来识别不同的中断源。分为两大类分为两大类v外部中断硬件中断,由外部设备引起中外部中断硬件中断,由外部设
25、备引起中断。断。INTR和和NMI;v内部中断:内部中断: CPU执行软中断指令,或在程执行软中断指令,或在程序运行过程中出现错误等异常情况而产生的序运行过程中出现错误等异常情况而产生的中断。中断。中断系统的分类中断系统的分类( (一一) ) 外部中断外部中断 可屏蔽中断可屏蔽中断INTR(INTR(高电平触发高电平触发) )INTRINTR的高电平请求信号需要保持到当前指令结束。的高电平请求信号需要保持到当前指令结束。仅当仅当IF=1IF=1,打开中断时,打开中断时,CPUCPU才能响应中断。才能响应中断。STISTI打开中断,打开中断,CLICLI关闭中断关闭中断任一中断响应后,任一中断响
26、应后,CPUCPU会自动关闭中断会自动关闭中断IFIF0 0,需要在适当时,需要在适当时间打开中断。间打开中断。中断执行时间。中断执行时间。CPUCPU在当前指令周期的最后一个在当前指令周期的最后一个T T周期采样中周期采样中断请求线。若有中断,并中断开放,然后进入两个连续的中断请求线。若有中断,并中断开放,然后进入两个连续的中断响应周期。断响应周期。请求中断的外设,必须在第二个响应周期请求中断的外设,必须在第二个响应周期T3T3之前,将中断类之前,将中断类型号型号n n送到数据总线,送到数据总线,CPUCPU采集后,转到中断服务程序。采集后,转到中断服务程序。 非屏蔽中断非屏蔽中断NMI(N
27、MI(正跳变边沿触发正跳变边沿触发) )当出现当出现NMINMI中断请求时,中断请求时,CPUCPU内部将其锁存。内部将其锁存。采用特殊的响应方式,即当前指令执行结束后,采用特殊的响应方式,即当前指令执行结束后,CPUCPU立即进入中断类型号立即进入中断类型号2 2(n n2 2)的处理过程,)的处理过程,而不经过上述的中断响应周期。而不经过上述的中断响应周期。NMINMI的优先级高于的优先级高于INTRINTR。( (二二) ) 内部中断内部中断 内部中断又叫软件中断。内部中断又叫软件中断。 内部中断的类型内部中断的类型 除法出错中断:类型除法出错中断:类型n n0 0。除数是。除数是0 0
28、时产生。时产生。 INTOINTO溢出中断:类型溢出中断:类型n n4 4。运算结果溢出。运算结果溢出OF=1OF=1,又执,又执行指令行指令INTOINTO时,产生溢出中断时,产生溢出中断 单步中断:类型单步中断:类型n n1 1,TFTF1 1, IF IF1 1,处于单步执,处于单步执行方式。行方式。断点中断:断点中断:类型类型n3,执行指令,执行指令INT 3时产生。用于程时产生。用于程序调试时设置断点。序调试时设置断点。用户定义的软件中断:中断指令用户定义的软件中断:中断指令INT nINT n( (三三) ) 中断优先级中断优先级 优先级从高到低的顺序为:优先级从高到低的顺序为:l
29、 除法出错除法出错类型类型0lINT n类型类型nl溢出中断溢出中断类型类型4l NMI中断中断类型类型2l INTR中断中断外设给出外设给出l 单步中断单步中断类型类型1( (四四) ) 中断向量和中断向量表中断向量和中断向量表80868086系统把系统把256256种中断源按顺序进行编号,称种中断源按顺序进行编号,称为为中断类型号或中断向量号中断类型号或中断向量号。00H00HFFHFFH,0 0255255。中断向量中断向量的概念的概念 中断服务程序中断服务程序的的入口地址入口地址,包括,包括段段地址和偏移地址。地址和偏移地址。256种中断源种中断源对应对应256个中断向量个中断向量按中
30、断类型号从小到大顺序依次存放各类中断按中断类型号从小到大顺序依次存放各类中断(256种)的种)的中断向量中断向量(中断服务程序入口地址)。(中断服务程序入口地址)。 全部存放在内存的前全部存放在内存的前1K1K字节字节( (地址地址00000H00000H003FFH)003FFH),组成了一个中断向量表,总共包含,组成了一个中断向量表,总共包含256256个个中断向量。中断向量。 中断向量表中断向量表每个中断向量占用每个中断向量占用4 4个字节个字节(双字)。(双字)。低地址低地址2 2个字节个字节是中断服务程序的是中断服务程序的偏移地址偏移地址,高地址高地址2 2个字节个字节是中断服务程序
31、的是中断服务程序的段地址段地址。存放中断向量的内存的地址,称为存放中断向量的内存的地址,称为中断向量的中断向量的地址地址。中断类型码中断类型码与中断向量地址的关系与中断向量地址的关系:中断类型号中断类型号为为n n,则,则中断向量的地址中断向量的地址n n * * 4 4,根据中断向量的地址取出根据中断向量的地址取出4 4个字节,得到个字节,得到中断向中断向量量。N N * * 4 4 中断服务程序中断服务程序偏移地址,偏移地址,N N * * 4 + 2 4 + 2 中断服务程序中断服务程序段地址段地址8086的中断向量表的中断向量表向量号255的CS值003FCH向量号255的IP值向量号
32、2的CS值00008H向量号2的IP值向量号1的CS值00004H向量号1的IP值向量号0的CS值00000H向量号0的IP值除法错中断除法错中断(类型号(类型号0)单步中断(类型号1)非屏蔽中断非屏蔽中断(类型号(类型号2)用户中断(类型号255)00002H00006H4 n 中断向量地址中断向量地址 CPU获得中断类型码后,如何转去执行相应获得中断类型码后,如何转去执行相应 的的中断服务程序?中断服务程序?假设假设CPU响应中断类型码为响应中断类型码为 n 的中断的中断入口地址的入口地址的偏移地址偏移地址入口地址的入口地址的段基址段基址 IP CS 由于所有中断服务程序的入口地址都放在中
33、断向量表中,首由于所有中断服务程序的入口地址都放在中断向量表中,首先需将类型码转换为向量地址先需将类型码转换为向量地址即可转入相应中断服务程序执行。即可转入相应中断服务程序执行。 查表取得中断向量查表取得中断向量 字单元(地址字单元(地址4 n,4 n + 1) 字单元(地址字单元(地址4 n + 2,4 n + 3) 10H 20H 30H 40H 0027H0026H0025H0024H 1)中断向量的存放地址)中断向量的存放地址 由由 4 n = 4 9 = 36 = 24 H 知知 中断向量存放在中断向量存放在 存储器中存储器中 从从0000:0024H开始的开始的4个单元中,个单元中
34、, 即即0024H 0027H单元。单元。 2)由右图易知)由右图易知 键盘中断的中断处理程序的键盘中断的中断处理程序的入口地址为入口地址为 即可转入键盘中断服务程序执行。即可转入键盘中断服务程序执行。中断的处理流程中断的处理流程(1 1)获取中断类型号)获取中断类型号INT nINT n类型号由指令本身给出。类型号由指令本身给出。NMINMI:若采样到非屏蔽中断,由内部自动产生中断类:若采样到非屏蔽中断,由内部自动产生中断类型号型号2 2INTRINTR:CPUCPU在当前指令周期的最后一个在当前指令周期的最后一个T T 周期采样中周期采样中断请求线。若有中断,并中断开放,然后进入两个断请求
35、线。若有中断,并中断开放,然后进入两个连续的中断响应周期。连续的中断响应周期。请求中断的外设,必须在第二个响应周期请求中断的外设,必须在第二个响应周期T3T3之前,之前,将中断类型号将中断类型号n n送到数据总线,送到数据总线,CPUCPU采集后,准备转采集后,准备转到中断服务程序。到中断服务程序。(2 2)保护断点:)保护断点:FLAGSFLAGS,CSCS,IPIP入栈保护入栈保护(3 3)转入中断服务程序)转入中断服务程序 类型号类型号4 4,获取中断向量的地址,获取中断向量的地址中断向量(中断向量(中断服中断服务程序的入口地址)务程序的入口地址) 关中断关中断,IF=0,IF=0 将中
36、断服务程序的入口地址,分别送将中断服务程序的入口地址,分别送CSCS和和IPIP 按新的地址,执行中断服务程序按新的地址,执行中断服务程序(4 4)返回断点)返回断点中断程序的最后一条指令,中断程序的最后一条指令,IRETIRET,使堆栈栈顶的,使堆栈栈顶的6 6个个字节弹出到字节弹出到IPIP,CSCS,FLAGSFLAGS。返回主程序执行。返回主程序执行。NYNYNNNNNYY执行当前指令执行当前指令执行完执行完否否? ?IF=1?内部中内部中断断?NMI?INTR?TF=1?类型码类型码类型码类型码类型码类型码中断响中断响应,读类应,读类型码型码FLAG入栈入栈TEMPTFIF=TF=0
37、当前当前CS、IP入栈入栈根据类型码计算中断向量地址根据类型码计算中断向量地址高字高字CS 低字低字IP执行中断执行中断服务程序服务程序NMI?转入中断处理程序转入中断处理程序弹出弹出CS和和IP弹出弹出FLAGS返回被中断返回被中断的程序的程序YYYYNIRET指令的指令的操作操作STITF=1?中断响应过程中断响应过程IF清清0:暂时屏蔽其他可屏蔽:暂时屏蔽其他可屏蔽中断,以防止在没有完成此次中断,以防止在没有完成此次中断前又被另一个中断所打扰。中断前又被另一个中断所打扰。TF清清0:避免:避免CPU以单步方式执以单步方式执行中断服务程序。行中断服务程序。执行下一条指令执行下一条指令重新开
38、放外部可屏蔽中断。重新开放外部可屏蔽中断。(一)作用(一)作用 Intel 8259A是可编程中断控制器是可编程中断控制器 用于管理用于管理Intel 8080/8085、8086/8088、80286/80386的可屏的可屏蔽中断蔽中断 8259A的基本功能的基本功能 一片一片8259A可以管理可以管理8级中断,可扩展至级中断,可扩展至64级级 每一级中断都可单独被屏蔽或允许每一级中断都可单独被屏蔽或允许 在中断响应周期,可提供相应的中断向量号(类型号)在中断响应周期,可提供相应的中断向量号(类型号)8259A设计有多种工作方式,可通过编程选择设计有多种工作方式,可通过编程选择五五 可编程中
39、断控制器可编程中断控制器8259A8259AINTRINTA8086CPUINTINTA8259AIRQ0IRQ1IRQ2IRQ7 可屏蔽可屏蔽中断请求输中断请求输入端入端可屏蔽中断请求可屏蔽中断请求8086CPU只有一个可屏蔽中断请求输入引脚,中断系统采用只有一个可屏蔽中断请求输入引脚,中断系统采用中中断控制器断控制器(8259A)管理各种外设提出的中断请求管理各种外设提出的中断请求。(二)(二)8259A的内部结构的内部结构D7D0INTAINT中断请求寄存器中断请求寄存器中断屏蔽寄存器中断屏蔽寄存器数据数据总线总线缓冲器缓冲器IRQ0IRQ7读读/写写控制控制逻辑逻辑级联级联缓冲器缓冲器
40、比较器比较器RDWRA0CSCAS0CSA1CAS2SP/EN优先权判别电路优先权判别电路中断服务寄存器中断服务寄存器控制逻辑控制逻辑主片:SP1,CAS2CAS0输出3位编码选择从片。从片:SP0,CAS2CAS0接收主片3位编码。 中断请求寄存器中断请求寄存器IRR保存保存8条外界中断请求信号条外界中断请求信号IRQ0IRQ7请求状态请求状态Di位为位为1表示表示IRQi引脚有中断请求;为引脚有中断请求;为0表示无请求表示无请求 中断服务寄存器中断服务寄存器ISR保存正在被保存正在被8259A服务着的中断状态服务着的中断状态Di位为位为1表示表示IRQi中断正在服务中;为中断正在服务中;为
41、0表示没有被服务表示没有被服务 中断屏蔽寄存器中断屏蔽寄存器IMR保存对中断请求信号保存对中断请求信号IRQ的屏蔽状态的屏蔽状态Di位为位为1表示表示IRQi中断被屏蔽(禁止);中断被屏蔽(禁止);0表示允许表示允许8259A的内部寄存器的内部寄存器CAS02CAS02+5V主主8259A828880286 CPUINTRD0D7SP/ENINTD0D7日时钟日时钟键盘键盘串行口串行口2串行口串行口1并行口并行口2软盘软盘并行口并行口1A0INTR1CS IRQ0 IRQ1 IRQ2 IRQ3 IRQ4 IRQ5 IRQ6 IRQ7 A0 CS 实时钟实时钟改向改向0AH中断中断保留保留保留保
42、留保留保留协处理器协处理器硬盘硬盘保留保留A0INTR2CS IRQ8 IRQ9 IRQ10 IRQ11 IRQ12 IRQ13 IRQ14 IRQ15 A0 CS系统总线系统总线B25B24B23B22B21系统总线系统总线B4D3D4D5D6D7INTARDWRINTAIORIOWINTA(三)(三)8259A在在IBM PC系列机上的应用系列机上的应用CAS02 从从8259AD0D7INTSP/EN实时钟实时钟改向改向0AH中断中断保留保留保留保留保留保留协处理器协处理器硬盘硬盘保留保留A0INTR2CS IRQ8 IRQ9 IRQ10 IRQ11 IRQ12 IRQ13 IRQ14
43、IRQ15 A0 CS系统总线系统总线B4D3D4D5D6D7INTARDWR(四)中断请求处理过程(四)中断请求处理过程8259A对中断请求的处理过程:对中断请求的处理过程:当某当某IRQi有效时,有效时,IRR相应位置相应位置1若有效的若有效的IRQi未被屏蔽,则未被屏蔽,则向向CPU发出中断请求发出中断请求CPU响应中断请求,连续发来两个响应中断请求,连续发来两个INTA信号。信号。 检测到第检测到第1个个INTA信号后,信号后,置置ISRi=1,IRRi=0 检测到第检测到第2个个INTA信号后,信号后,把把ISRi=1中最高优先中最高优先级的中断类型码放到级的中断类型码放到数据总线数
44、据总线DB上上中断结束时,若工作在中断结束时,若工作在AEOI方式,在第方式,在第2个个INTA信号信号结束时,结束时,自动自动使使ISRi复位;否则由复位;否则由CPU发出发出EOI命令使命令使ISRi复位复位 8086/8088中断响应需要两个总线周期8086/8088中断响应总线周期三、8259A的工作方式 1、中断触发方式,电平触发方式或边沿触发方式(由低到高的正跳变),利用初始化命令字ICW1来设置。 2、中断结束方式,中断请求处理结束时,需将ISR中相应位清零。 自动中断结束方式(自动EOI方式),中断处理结束时自动将ISR中相应位清零,只需将初始化命令字ICW4中的AEOI置为1
45、即可实现这种方式。 普通中断结束方式( 普通EOI方式) ,用在8259A的全嵌套方式下,即在CPU处理完一个中断请求时需向8259A发送一个EOI命令,8259A收到EOI后,将ISR中最高优先级的置1位清零(即当前正在处理的中断)。用操作命令字OCW2中的EOI=1, SL=0, R=0的设置来实现。需要通过指令完成。 特殊中断结束方式,在非全嵌套方式下,通过向8259A发一条特殊中断结束命令来判断要清除ISR中置1位中的哪一位。用操作命令字OCW2中的EOI=1, SL=1, R=0的设置来实现,此时OCW2中的L2、L1、L0这3位指出了到底要清除ISR中的哪一位。 3、优先级管理方式
46、 全嵌套方式:全嵌套方式是8259A初始化后自动进入的基本工作方式。此时优先级从IR0到IR7依次降低。当某一中断处理时,可响应比它高的中断,但禁止比它低的或同级中断进入。当某一中断请求处理结束时,CPU向8259A发送中断结束命令EOI,以使ISR中相应位清零。 特殊全嵌套方式:与的普通全嵌套方式差不多, 区别是CPU处理某一中断时,允许比它高的和与它同级的中断请求进入,而只禁止比它低的中断请求。 自动循环方式(普通EOI循环方式) 在这种方式下,任何一级中断请求被处理完后, CPU向8259A发送中断结束命令EOI,以使ISR中优先级最高的置1位清零,并重新赋给它最低优先级,而将最高优先级
47、赋给比它低一级的中断请求,其它中断请求的优先级则以循环方式类推。 特殊EOI循环方式,用户根据要求用置优先级命令指定最低优先级,例如设置IRi为最低优先级,则最高优先级为IRi+1,其它各级按循环方式类推。6.中断级联方式(1)缓冲方式: 8259A通过总线驱动器和数据总线相连,这就是缓冲方式。(2)非缓冲方式: 当系统中只有单片8259A时,一般将它直接与数据总线相连。(五)(五)8259A的编程的编程通过通过OUT指令向指令向8259A内内部寄存器写入相应的部寄存器写入相应的命令字命令字,8259A按命令字指定按命令字指定的方式工作。的方式工作。命令字命令字命令字命令字ICW1OCW1IC
48、W2ICW3ICW4OCW2OCW38259A编程编程初始化编程初始化编程在初始化程序中向在初始化程序中向8259A写入写入初始化命令字初始化命令字ICW ,初始化初始化8259A。 初始化命令字初始化命令字 ICW1ICW4 ,一旦写入,一旦写入,在工作过程中不再改变。在工作过程中不再改变。操作方式编程操作方式编程在用户程序中向在用户程序中向8259A写入写入操作命令字操作命令字OCW ,动态改变动态改变8259A的操作控制方式。的操作控制方式。 操作命令字操作命令字 OCW1OCW3 ,可多次改写可多次改写。所有命令字通过端口写入所有命令字通过端口写入8259A内部对应寄存器中。内部对应寄
49、存器中。 MOV AL, Command_word OUT PORT, AL为了定位为了定位8259A内部寄存器,内部寄存器,要求要求CS有效。有效。(1) 利用利用A0选择选择奇地址端口、偶地址端口奇地址端口、偶地址端口ICW2、ICW3、ICW4 、 OCW1写入奇地址端口写入奇地址端口ICW1、OCW2 、 OCW3写入偶地址端口写入偶地址端口 (2)需要利用命令字的某些特定位作为访问某个寄需要利用命令字的某些特定位作为访问某个寄存器的标志(特征位)。存器的标志(特征位)。(3)必须按照特定顺序写入。必须按照特定顺序写入。 PC/XT机:机:8259端口端口地址地址20H、21HCSCS
50、A0A0RDRDWRWRD4D4D3D3操作操作0 00 01 10 00 00 0写写OCW2OCW20 00 01 10 00 01 1写写OCW3OCW30 00 01 10 01 1写写ICW1ICW10 01 11 10 0写写 ICW2, ICW3, ICW4, ICW2, ICW3, ICW4, OCW1OCW1(按顺序写按顺序写)0 00 00 01 1读读IRRIRR或或ISRISR或中断级别或中断级别编码编码( (先写先写OCW3OCW3,由内,由内容选择其中一个容选择其中一个) )0 01 10 01 1读读IMRIMR8259A8259A初始化编初始化编程顺序必须由程顺
51、序必须由写入写入ICW1ICW1开始。开始。地址信号地址信号A A0 0A00A01A01A01写入写入ICW1写入写入ICW2写入写入ICW3Y (SNGL0)N(SNGL1)写入写入ICW4Y (IC41 1)8259A准备就绪准备就绪N(IC40)是否级连?是否级连?需要需要ICW4?n8259A的初始化命令字的初始化命令字 ICW1 芯片控制初始化,设置8259A的基本工作方式(复位8259A) 。 ICW2 设置中断类型码(定义类型码高5位) ICW3 级联控制,初始化主片和从片 ICW4 8259A工作方式控制初始化,即设置中断结束方式、缓冲方式、特殊全嵌套方式等。 A0 D7 D
52、6 D5 D4 D3 D2 D1 D0 D D0 0:ICIC4 4位表示是否需要设置位表示是否需要设置ICWICW4 4。D D1 1:SNGLSNGL位,位,8259A8259A芯片是单片还是多片级连工作。芯片是单片还是多片级连工作。1 1单单片,片,0 0多片多片D D3 3:LTIMLTIM位,位,中断触发方式。 1 1 高电平触发;高电平触发; 0 0 上升上升沿触发沿触发 D D4 4:恒定为:恒定为1 1,为为ICWICW1 1的特征位的特征位。ICW1送入后,启动送入后,启动8259A的初始化,自动完成:的初始化,自动完成:1、IMR 清零清零2、优先权级别:、优先权级别:IR
53、R0最高,最高,IRR7最低最低3、自动进入正常全嵌套工作模式、自动进入正常全嵌套工作模式 对对PC/XT机,如果机,如果ICW100010011B =13H ICW1设置可用以下指令实现设置可用以下指令实现 MOV AL, 13H OUT 20H, AL A0 D7 D6 D5 D4 D3 D2 D1 D0 1 T7T6T5T4T3v80868086系统中,系统中,ICWICW2 2的的D D7 7D D3 3作为本作为本8259A8259A芯片所管理芯片所管理8 8级级中断类型码的高中断类型码的高5 5位位,主片主片/ /单片单片0000100001。vD D2 2D D0 0位为位为8
54、8级中断源所对应的编码级中断源所对应的编码( (其中:其中:000000IRQIRQ0 0,111111IRQIRQ7 7) )。 8086计算机中断系统中,8259A接收的IRQ0IRQ7中断的类型码:IRQ0 08H 00001000BIRQ1 09H 00001001BIRQ2 0AH 00001010BIRQ3 0BH 00001011BIRQ7 0FH 00001111B其高五位均为00001B低3位由接收中断请求的引脚IRQ0IRQ7决定 IRQ0IRQ7分别对应000111例例1、若、若ICW2通过下述指令写入通过下述指令写入MOV AL,00001000BOUT 21H,AL则
55、则IRQ0的中断类型码为的中断类型码为08H,IRQ7的中的中断类型码为断类型码为0FH。 A0 D7 D6 D5 D4 D3 D2 D1 D0 每一位对应于一片从每一位对应于一片从8259A8259A芯片,若相应引脚芯片,若相应引脚上有从上有从8259A8259A芯片,则相应位为芯片,则相应位为1 1;若相应引脚未接从若相应引脚未接从8259A8259A芯片,则相应位为芯片,则相应位为0 0。 A0 D7 D6 D5 D4 D3 D2 D1 D0 从从8259A8259A芯片中的芯片中的ICWICW3 3, ID2ID0 是从片标识码是从片标识码(与与CAS20比较比较),说明该从片连接到主
56、片的哪个,说明该从片连接到主片的哪个IRQ引脚引脚( 000111分别对应分别对应IRQ0IRQ7) ,高,高5 5位全为位全为0 0。 ICW3例如,从片接在主片的例如,从片接在主片的IR5引脚上,引脚上, 则主片的则主片的 ICW3=00100000B20H, 从片的从片的 ICW3=00000101B=05H。 主片主片从片从片INTIR0IR5IR7vD D0 0:PMPM位,取决于微处理器的类型。位,取决于微处理器的类型。=1,8086=1,8086vD D1 1:AEOIAEOI位,规定结束中断的方式。位,规定结束中断的方式。0 0普通普通EOIEOI,1 1自动自动EOIEOIv
57、D D2 2:M/SM/S位,位,缓冲方式下使用缓冲方式下使用(BUFBUF1 1),若),若D D2 2=1=1,则表示为主,则表示为主8259A8259A; 若若D D2 2=0=0,则表示为从,则表示为从8259A8259A。vD D3 3:BUFBUF位,若位,若8259A8259A工作于缓冲方式,则工作于缓冲方式,则D D3 3=1=1;否则,;否则,D D3 3=0=0。vD D4 4: S F N MS F N M 位 , 若位 , 若 D D4 4= 1= 1 , 则 规 定 特 殊 的 全 嵌 套 模 式 ;, 则 规 定 特 殊 的 全 嵌 套 模 式 ; 否则,若否则,若
58、D D4 4=0=0,则规定普通的全嵌套模式。,则规定普通的全嵌套模式。vD D5 5D D7 7:恒为:恒为000000。 A0 D7 D6 D5 D4 D3 D2 D1 D0 0AEOI: 中断结束方式1 自动自动EOI方式方式0 非自动非自动EOI方式(方式(PC机采用)机采用)SFNM: 嵌套方式1 特殊全嵌套方式特殊全嵌套方式(多片级联多片级联)0 正常全嵌套方式(正常全嵌套方式(PC/XT)对PC/XT写入ICW4为: MOV AL,00001101B(0DH) OUT 21H,AL例:例:8086接一片接一片8259A管理管理8个中断源,中断请求上升个中断源,中断请求上升沿有效,
59、工作在正常完全嵌套、普通沿有效,工作在正常完全嵌套、普通EOI,非缓冲,端,非缓冲,端口地址为口地址为60H、61H,IRQ0中断类型码为中断类型码为08H,写初始,写初始化程序化程序解:需送解:需送ICW1、ICW2、ICW4ICW1:偶:偶 0 0 0 1 0 0 1 1 ,13HICW2:奇:奇 0 0 00 1 0 0 0 ,08HICW4:奇:奇 0 0 0 0 0 0 0 1 ,01HMOV AL,13HOUT 60H,ALMOV AL,08HOUT 61H,ALMOV AL,01H OUT 61H,AL; 单片单片8259A,边沿触发,要,边沿触发,要ICW4 8259A中断类型
60、码高中断类型码高5位为位为00001B全嵌套全嵌套 A0 D7 D6 D5 D4 D3 D2 D1 D0 A0 D7 D6 D5 D4 D3 D2 D1 D0 发发EOI命令,将命令,将ISRi中正在服务的置中正在服务的置1位位清清0。标志位标志位 OCW2R,SL,EOI组合产生7种工作方式:R SL EOI 0 0 1 普通EOI 命令,系统工作于非循环的优先级方式(全嵌套方式) 0 1 1 特殊EOI 命令,按L2-L0编码复位ISR 1 0 1 一般EOI 命令,优先级自动循环 1 0 0 自动EOI,设置优先级自动循环 0 0 0 取消优先级自动循环(固定优先级) 1 1 1 特殊E
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年生物安全防范工作实施计划
- 2026年教育教学整合活动设计案例
- 2026年项目市场开发策略分析报告
- 2026年油库安全活动计划方案
- 2026年建党节幼儿主题活动方案策划
- 2026年工程造价专业职业决策方案
- 2026年营销创新策划案例分析
- 2026年审批流程问题分析报告
- 2026年小班科学教学总计划下学期
- 2026年川教版小学信息科技四年级上册教学设计全册
- 2026年电工操作证考试试题及答案
- (统编版2026)二年级语文下册全册教案
- 2026龙江银行县域支行招聘43人备考题库含答案详解
- 《2026版防范电信网络诈骗宣传手册》(全文)
- 清华大学2026年强基计划《化学》模拟试题
- 2026年湖北省宜昌市地理生物会考考试试题及答案
- 昆明市五华区2025-2026学年第二学期五年级语文期末考试卷(部编版含答案)
- 典当公司业务管理制度
- 国开电大本科《人文英语4》一平台机考总题库2026春期珍藏版
- 花样机安全操作培训课件
- 2025年概率论与数理统计期末考试卷及答案
评论
0/150
提交评论