《第7章 典型可编程接口芯片及应用.pdf》由会员分享,可在线阅读,更多相关《第7章 典型可编程接口芯片及应用.pdf(178页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、7-1第七章第七章典型可编程接口芯片及应用典型可编程接口芯片及应用7.1 7.1 可编程中断控制器芯片可编程中断控制器芯片825982597.2 7.2 可编程定时器可编程定时器/计数器芯片计数器芯片825482547.3 7.3 可编程并行接口芯片可编程并行接口芯片825582557.4 7.4 可编程串行接口芯片可编程串行接口芯片INS 8250INS 82507.5 7.5 可编程可编程DMADMA控制器芯片控制器芯片8237 8237 7-27.1 7.1 可编程中断控制器芯片可编程中断控制器芯片825982597.1.1 7.1.1 基本功能基本功能7.1.2 7.1.2 内部结构与
2、外部引脚内部结构与外部引脚7.1.37.1.3 中断工作过程中断工作过程7.1.4 7.1.4 端口寻址与读端口寻址与读/写控制写控制7.1.5 7.1.5 命令字格式与编程命令字格式与编程7.1.6 82597.1.6 8259在在PCPC系列机中断系统中的应用系列机中断系统中的应用7-37.1.1 7.1.1 基本功能基本功能中断请求锁存中断请求锁存中断源优先级排队中断源优先级排队中断源识别中断源识别中断源屏蔽中断源屏蔽中断向量提供中断向量提供82598259是是IntelIntel公司专为控制优先级中断而设计的公司专为控制优先级中断而设计的NMOSNMOS芯片。内部集成了与中断控制有关的
3、几乎所有基芯片。内部集成了与中断控制有关的几乎所有基本功能,包括本功能,包括:而且各种功能都可通过编程设定或变更。而且各种功能都可通过编程设定或变更。7-47.1.1 7.1.1 基本功能基本功能芯片的外部接口特性芯片的外部接口特性内部工作原理内部工作原理应用编程的方法应用编程的方法对可编程芯片的掌握,关键要从如下几个方对可编程芯片的掌握,关键要从如下几个方面来掌握:面来掌握:7-5具体掌握如下内容:具体掌握如下内容:掌握芯片的外部引线及其功能掌握芯片的外部引线及其功能,以便将它连接到微机,以便将它连接到微机系统中。系统中。掌握芯片的工作方式及工作特点掌握芯片的工作方式及工作特点,以便选择适合
4、于用,以便选择适合于用户要求的工作方式。户要求的工作方式。熟悉芯片内部的控制字和状态字熟悉芯片内部的控制字和状态字,它将决定芯片的工,它将决定芯片的工作方式及工作特点。作方式及工作特点。掌握芯片的寻址和内部各端口寄存器的读写控制方法掌握芯片的寻址和内部各端口寄存器的读写控制方法。掌握芯片的初始化编程。掌握芯片的初始化编程。7.1.1 7.1.1 基本功能基本功能7-6D7D0RDWRA0CSCAS0CAS1CAS2SP/ENICW1ICW2ICW3ICW4初始化初始化命令寄命令寄存器组存器组内部总线内部总线INTAIR0IR1IR2IR7数据总线数据总线缓冲器缓冲器中断中断服务服务寄存寄存器器
5、(ISR)优先优先级分级分析器析器(PR)中断屏蔽寄存器中断屏蔽寄存器(IMR)操作命令操作命令寄存器组寄存器组OCW1OCW2OCW3中断中断请求请求寄存寄存器器(IRR)读读/写电路写电路级联缓冲器级联缓冲器/比较器比较器INT控控 制制 逻逻 辑辑7.1.2 7.1.2 内部结构与外部引脚内部结构与外部引脚IRRIRR用于寄存用于寄存所有要求服务的所有要求服务的中断请求中断请求PRPR用于确定中用于确定中断请求寄存器断请求寄存器IRRIRR中各位的优先等级中各位的优先等级ISRISR用于寄存用于寄存所有正在被服务所有正在被服务的中断级的中断级用于控制多片用于控制多片82598259的级联
6、的级联,以实现将优先中以实现将优先中断等级最多扩展到断等级最多扩展到6464级级。7-77.1.3 7.1.3 中断工作过程中断工作过程82598259在在80868086模式下,对外部中断请求的响应和处理过程模式下,对外部中断请求的响应和处理过程如下:如下:当中断请求输入线当中断请求输入线IR0IR0IR7IR7中有一条或多条变高中有一条或多条变高时,则中断请求寄存器时,则中断请求寄存器IRRIRR的相应位置的相应位置11。若中断请求线中至少有一条是中断允许的,则若中断请求线中至少有一条是中断允许的,则82598259由由INTINT引脚向引脚向CPUCPU发出中断请求信号。发出中断请求信号
7、。82598259在接收到在接收到CPUCPU的的INTAINTA信号后,使最高优先级的信号后,使最高优先级的ISRISR位置位置“1 1”,而相应的,而相应的IRRIRR位清位清“0 0”,但在该中断响应,但在该中断响应周期中,周期中,82598259并不向系统总线送任何内容。并不向系统总线送任何内容。如如CPUCPU是处于开中断状态,则在当前指令执行完后,是处于开中断状态,则在当前指令执行完后,用用INTAINTA信号作为响应。信号作为响应。7-87.1.4 7.1.4 端口寻址与读端口寻址与读/写控制写控制A0A0、RDRD、WRWR、CSCS对对82598259读写操作的控制作用读写操
8、作的控制作用禁止禁止1 1禁止禁止1 11 1IMRIMR数据总线数据总线1 10 00 01 1IRRIRR、ISRISR、中断级、中断级BCDBCD码码数据总线数据总线 1 10 00 00 0数据总线数据总线 ICW2ICW2、ICW3ICW3、ICW4ICW4、OCW1 OCW1 0 01 10 01 1数据总线数据总线ICW1ICW11 10 01 10 00 0数据总线数据总线OCW3OCW31 10 00 01 10 00 0数据总线数据总线OCW2OCW20 00 00 0 1 10 00 0D3D3CSCSA0A0RDRDWRWRD4D4读写操作读写操作 这些命令的输入顺序由
9、这些命令的输入顺序由82598259内部的时序逻辑通过适当的时序内部的时序逻辑通过适当的时序控制加以保证。控制加以保证。对对IRRIRR、ISRISR或中断级或中断级BCDBCD码的选择,决定于在读出操作之前,码的选择,决定于在读出操作之前,CPUCPU写入的操作命令字写入的操作命令字OCW3OCW3的内容。的内容。7-97.1.5 7.1.5 命令字格式与应用编程命令字格式与应用编程82598259的编程是指用户通过写操作送一些命的编程是指用户通过写操作送一些命令字(也叫控制字)到令字(也叫控制字)到82598259内部的控制寄存器内部的控制寄存器(命令字寄存器命令字寄存器),),用于设定或
10、动态改变它的工作用于设定或动态改变它的工作方式和控制模式。方式和控制模式。初始化命令字与初始化编程初始化命令字与初始化编程操作命令字与操作方式编程操作命令字与操作方式编程可编程设置的工作方式可编程设置的工作方式7-10对初始化编程要注意两点:对初始化编程要注意两点:写写ICWICW的流程必须按规定的流程必须按规定顺序写,不能颠倒。顺序写,不能颠倒。各各ICWICW的格式的格式/功能。功能。1.1.初始化命令字与初始化编程初始化命令字与初始化编程初始化编程是通过写初始初始化编程是通过写初始化命令字化命令字ICWICW1 1ICWICW4 4来实现的来实现的,写入流程如图所示。写入流程如图所示。写
11、写ICWICW1 1写写ICWICW2 2初始化完初始化完写写ICWICW3 3级联?级联?Y Y写写ICWICW4 4要要ICWICW4 4?N NY YN N7.1.5 7.1.5 命令字格式与编程命令字格式与编程7-11格式:格式:A0A0D7D7D6D6D7D7 D4D4D3D3D2D2D1D1D0D00 0A7A7A6A6A7A71 1LTIMLTIM A AS SIC4IC4设置中断请求触发方式。设置中断请求触发方式。清除中断屏蔽寄存器,设置中断优先级排清除中断屏蔽寄存器,设置中断优先级排队队,IRQ,IRQ0 0IRQIRQ7 7依次降低。依次降低。指明系统使用的指明系统使用的8
12、2598259是单片还是多片级联。是单片还是多片级联。0 0-不需不需ICWICW4 41 1-需要需要ICWICW4 40 0-多片多片825982591 1-单片单片82598259地址间距地址间距0 0-间距间距8 81 1-间距间距4 40 0-边沿触发边沿触发1 1-电位触发电位触发中断向量地址中断向量地址,仅在仅在8080/80878080/8087模式下用模式下用初始化初始化命令字命令字 ICWICW1 1 ICWICW2 2 ICWICW3 3 ICWICW4 4ICWICW1 1的功能:的功能:7.1.5 7.1.5 命令字格式与编程命令字格式与编程7-12ICWICW2 2
13、的格式:的格式:A0A0D7D7D6D6D7D7D4D4D3D3D2D2 D1D1 D0D01 1A17/A17/T7T7 A14/A14/T6T6 A13/A13/T7T7 A12/A12/T4T4 A11/A11/T3T3 A10A10 A9A9A8A88080/80878080/8087模式下模式下A17A17A8A8中断向量地址中断向量地址8086/80888086/8088模式下模式下T7T7T3T3中断向量号中断向量号在在8080/80878080/8087模式系统中,用于设定模式系统中,用于设定中断向量中断向量地址的高地址的高8 8位:位:A17A17A8A8;而在;而在8086
14、/80888086/8088模式系统模式系统中,则用于设定中,则用于设定中断向量号的高中断向量号的高7 7位:位:T7T7T3T3。初始化初始化命令字命令字 ICWICW1 1 ICWICW2 2 ICWICW3 3 ICWICW4 4ICWICW2 2的功能:的功能:7.1.5 7.1.5 命令字格式与编程命令字格式与编程7-13ICWICW3 3是级联命令字。用于定义是级联命令字。用于定义8259 88259 8根中断根中断请求线上有无级联请求线上有无级联82598259从片。从片。若系统只有一片若系统只有一片82598259,则不用,则不用ICWICW3 3,若有多,若有多片片82598
15、259级联级联,则每一片则每一片82598259都必须使用都必须使用ICWICW3 3,且,且主、从片的主、从片的ICWICW3 3格式不同。格式不同。主片主片ICWICW3 31 1IRQIRQi i线上有从片线上有从片0 0IRQIRQi i线上无从片线上无从片A A0 0D D7 7D D6 6D D7 7D D4 4D D3 3D D2 2D D1 1D D0 0S7S7 S6S6 S7S7 S4S4 S3S3 S2S2 S1S1 S0S01 1A0A0D7D7 D6D6 D7D7 D4D4 D3D3 D2D2 D1D1 D0D01 10 00 00 00 00 0 ID2ID2ID1
16、ID1ID0ID00 00 00 00 00 00 00 00 00 00 00 00 00 01 11 11 11 11 11 11 11 11 11 11 11 11 12 23 34 47 76 67 7IRQiIRQi从片从片ICWICW3 3初始化初始化命令字命令字 ICWICW1 1 ICWICW2 2 ICWICW3 3 ICWICW4 4ICW3的功能:的功能:7.1.5 7.1.5 命令字格式与编程命令字格式与编程7-14用于定义用于定义82598259的工作模式,以及中断服务的工作模式,以及中断服务程序是否要送出程序是否要送出EOIEOI命令,以清除中断服务寄存命令,以清除
17、中断服务寄存器器ISR,ISR,允许其他中断。允许其他中断。A0A0D7D7D6D6D7D7D4D4D3D3D2D2D1D1D0D01 10 00 00 0SFNMSFNMBUFBUF M/SM/SAEOIAEOI PMPMICWICW4 4格式:格式:初始化初始化命令字命令字 ICWICW1 1 ICWICW2 2 ICWICW3 3 ICWICW4 41 1-特殊全嵌套方式特殊全嵌套方式0 0-一般全嵌套方式一般全嵌套方式0 0 非缓冲方式非缓冲方式1 0 1 0 缓冲方式缓冲方式/从控制器从控制器1 1 1 1 缓冲方式缓冲方式/主控制器主控制器1 1-8086/80888086/808
18、8模式模式0 0-8080/80878080/8087模式模式1 1-自动自动EOIEOI0 0-正常正常EOIEOIICWICW4 4的功能:的功能:7.1.5 7.1.5 命令字格式与编程命令字格式与编程7-15再编写初始化程序段再编写初始化程序段ICW2ICW2A0A0D7D7D6D6D7D7D4D4D3D3D2D2 D1D1 D0D01 1A17/A17/T7T7 A14/A14/T6T6A13/A13/T7T7A12/A12/T4T4A11/A11/T3T3A10A10A9A9A8A88080/80878080/8087模式下模式下A17A17A8A8中断向量地址中断向量地址8086
19、/80888086/8088模式下模式下T7T7T3T3中断向量号中断向量号A0A0D7D7D6D6D7D7 D4D4D3D3D2D2D1D1D0D00 0A7A7A6A6A7A71 1LTIMLTIM A AS SIC4IC40 0-不需不需ICW4ICW41 1-需要需要ICW4ICW40 0-多片多片825982591 1-单片单片82598259地址间距地址间距0 0-间距间距8 81 1-间距间距4 40 0-边沿触发边沿触发1 1-电位触发电位触发中断向量地址中断向量地址,仅在仅在8080/80878080/8087模式下用模式下用例例7.17.1 某某80X8680X86微机的中
20、断系统有微机的中断系统有7 7个外部中断源,接个外部中断源,接在在82598259的的IRIR3 3IRIR7 7端,端,中断类型码分别为中断类型码分别为7BH7BH、7CH7CH、7DH7DH、7EH7EH和和7FH7FH,82598259的端口地址为的端口地址为B0HB0H、B1HB1H。允许它们以全。允许它们以全嵌套工作方式工作,中断请求采用电平触发方式。试编写嵌套工作方式工作,中断请求采用电平触发方式。试编写82598259的初始化程序。的初始化程序。解解:先确定初始化命令字先确定初始化命令字ICWICWICWICW1 1:0001101100011011ICWICW2 2:01011
21、00001011000ICWICW3 3:不写不写ICWICW4 4:0000000100000001MOV DXMOV DX,0B0H 0B0H ;指向端口;指向端口0 0MOV ALMOV AL,1BH 1BH ;ICWICW1 1OUT DXOUT DX,AL AL ;写;写ICWICW1 1INC DXINC DX;指向端口;指向端口1 1MOV ALMOV AL,78H 78H ;ICWICW2 2OUT DXOUT DX,AL AL ;写;写ICWICW2 2MOV ALMOV AL,01H 01H ;ICW4ICW4OUT DXOUT DX,AL AL ;写;写ICWICW4 4
22、7.1.5 7.1.5 命令字格式与编程命令字格式与编程1 1-8086/80888086/8088模式模式0 0-8080/8087 8080/8087 模式模式1 1-特殊全嵌套方式特殊全嵌套方式0 0-一般全嵌套方式一般全嵌套方式1 1-自动自动EOIEOI0 0-正常正常EOIEOI非缓冲方式非缓冲方式缓冲方式缓冲方式/从控制器从控制器缓冲方式缓冲方式/主控制器主控制器0 00 01 11 11 1A0A0D7D7D6D6D7D7D4D4D3D3D2D2D1D1D0D01 10 00 00 0SFNMSFNMBUFBUF M/SM/SAEOIAEOI PMPMICWICW4 47-16
23、例例7.2 7.2 某某80X8680X86系统的中断系统由二片系统的中断系统由二片82598259级联而成,主、级联而成,主、从从82598259的的IRIR7 7上各接有一个外部中断源,其中断向量号分上各接有一个外部中断源,其中断向量号分别为别为0DH0DH,87H87H。假设它们的中断入口地址均在同一段中,。假设它们的中断入口地址均在同一段中,段基址为段基址为4310H,4310H,偏移地址分别为偏移地址分别为1230H1230H、2340H;2340H;所有中断所有中断都采用边沿触发方式、全嵌套方式、正常都采用边沿触发方式、全嵌套方式、正常EOIEOI结束方式。结束方式。写出主、从写出
24、主、从82598259中断向量号范围;中断向量号范围;假定主、从片端口地址分别为假定主、从片端口地址分别为20H20H21H21H、26H26H27H27H,试画出电路连线图;,试画出电路连线图;试编写全部初始化程序。试编写全部初始化程序。7.1.5 7.1.5 命令字格式与编程命令字格式与编程7-17有选择地写操作命令字有选择地写操作命令字OCWOCW1 1OCWOCW3 3到操作命令到操作命令寄存器组。寄存器组。这项工作可在这项工作可在82598259已经初始化后的任何时候进行,已经初始化后的任何时候进行,目的是对中断处理过程实现动态控制。目的是对中断处理过程实现动态控制。如果不写操作命令
25、字,如果不写操作命令字,82598259就按初始化编程所设就按初始化编程所设置好的方式和模式工作置好的方式和模式工作,工作于工作于IRIR0 0优先级最高优先级最高,从从IRIR0 0IRIR7 7优先级依次降低的固定优先级的全嵌套工作方式。优先级依次降低的固定优先级的全嵌套工作方式。如需改变初始化时设置的中断控制方式如需改变初始化时设置的中断控制方式,或屏蔽某或屏蔽某些中断级,读出一些状态信息,就必须在些中断级,读出一些状态信息,就必须在82598259进入工进入工作之前或工作过程中酌情写入操作命令字作之前或工作过程中酌情写入操作命令字OCWOCW。2.2.操作命令字与操作方式编程操作命令字
26、与操作方式编程7.1.5 7.1.5 命令字格式与编程命令字格式与编程7-18用来设置用来设置/清除对中断源的屏蔽清除对中断源的屏蔽格式:格式:A0A0D7D7 D6D6 D7D7 D4D4 D3D3 D2D2 D1D1 D0D01 1M7M7 M6M6 M7M7M4M4 M3M3 M2M2M1M1 M0M00 0-中断请求被开放中断请求被开放1 1-中断请求被屏蔽中断请求被屏蔽操作命操作命令令字字 OCWOCW1 1 OCWOCW2 2 OCWOCW3 3OCWOCW1 1的功能:的功能:7.1.5 7.1.5 命令字格式与编程命令字格式与编程7-19用于设置中断优先级是否循环,循环的方式用
27、于设置中断优先级是否循环,循环的方式及中断结束的方式。及中断结束的方式。A0A0D7D7D6D6D7D7D4D4 D3D3D2D2D1D1D0D00 0R RSLSLEOIEOI0 00 0L2L2L1L1L0L0标志位标志位非特殊非特殊EOIEOI特殊特殊EOIEOI中断结束中断结束自动循环优先级清除自动循环优先级清除自动循环自动循环EOIEOI自动循环优先级设置自动循环优先级设置自动循环自动循环特殊循环特殊循环EOIEOI特殊循环优先级设置特殊循环优先级设置停止操作停止操作特殊循环特殊循环操作命操作命令令字字 OCWOCW1 1 OCWOCW2 2 OCWOCW3 3最低优先最低优先级编码
28、级编码0 0 0 01 0 0 12 0 1 03 0 1 14 1 0 07 1 0 16 1 1 07 1 1 10 0 10 1 11 0 11 0 00 0 01 1 11 1 00 1 0OCWOCW2 2的功能的功能:7.1.5 7.1.5 命令字格式与编程命令字格式与编程7-20用于设置查询方式、特殊屏蔽方式、以及用用于设置查询方式、特殊屏蔽方式、以及用来读来读82598259的的IRRIRR、ISRISR、IMRIMR的当前状态的当前状态格式:格式:A0A0D7D7 D6D6D7D7D4D4 D3D3 D2D2D1D1D0D00 00 00 0S1S1 S2S21 1P PPR
29、PR RISRIS标志位标志位操作命操作命令令字字 OCWOCW1 1 OCWOCW2 2 OCWOCW3 30 0 0 00 00 01 11 11 1 1 1无作用无作用特殊屏蔽方式清除特殊屏蔽方式清除特殊屏蔽方式设置特殊屏蔽方式设置0 0 0 00 00 01 11 11 1 1 1无作用无作用下一个下一个RDRD读读IRRIRR下一个下一个RDRD读读ISRISR1 1-查询命令查询命令0 0-不查询不查询OCWOCW3 3的功能:的功能:7.1.5 7.1.5 命令字格式与编程命令字格式与编程7-21把正在执行的高级中断屏蔽掉,而开放较低级把正在执行的高级中断屏蔽掉,而开放较低级中断
30、的屏蔽方式。中断的屏蔽方式。先利用先利用OCWOCW1 1命令将正在执行的高级中断屏蔽掉;命令将正在执行的高级中断屏蔽掉;然后用然后用OCWOCW3 3命令命令(D(D6 6D D7 7=11)=11)设置特殊屏蔽方式,这样设置特殊屏蔽方式,这样可使可使ISRISR相应位的功能中止相应位的功能中止,直到清除特殊屏蔽方式。直到清除特殊屏蔽方式。利用该功能,可使中断不受优先级限制利用该功能,可使中断不受优先级限制,而人而人为地为某一较低优先级中断服务为地为某一较低优先级中断服务,这就为用户提供这就为用户提供了很大的灵活性。了很大的灵活性。实现方法:实现方法:操作命操作命令令字字 OCWOCW1 1
31、 OCWOCW2 2 OCWOCW3 3 特殊屏蔽方式特殊屏蔽方式7.1.5 7.1.5 命令字格式与编程命令字格式与编程7-22例如系统正在为例如系统正在为IRQIRQ4 4中断服务中断服务,服务过程中为了服务过程中为了允许比它低的中断得到响应允许比它低的中断得到响应,可用特殊屏蔽命令字将可用特殊屏蔽命令字将IRQIRQ4 4中断暂时屏蔽中断暂时屏蔽,当为较低级中断服务完后当为较低级中断服务完后,再解再解除对除对IRQIRQ4 4中断的屏蔽中断的屏蔽,以最后完成对它的中断服务以最后完成对它的中断服务。.;为;为IRQIRQ4 4中断服务的程序中断服务的程序.;屏蔽除准备允许响应的低级中断屏蔽
32、除准备允许响应的低级中断.;外的所有其它低级中断。外的所有其它低级中断。CLI CLI ;为在为在IRQIRQ4 4服务程序中开放低级中服务程序中开放低级中;断设置特殊命令字而关中断。断设置特殊命令字而关中断。MOV AL,10H MOV AL,10H ;送屏蔽;送屏蔽IRQIRQ4 4的的OCWOCW1 1命令命令MOV DX,PORT1 MOV DX,PORT1;送;送OCWOCW1 1口地址口地址DXDXOUT DX,AL OUT DX,AL ;OCWOCW1 18259,A0=18259,A0=1MOV AL,68H MOV AL,68H ;送特殊屏蔽方式字:;送特殊屏蔽方式字:;OC
33、WOCW3 3ALAL,S S1 1S S2 2=11=11。操作命操作命令令字字 OCWOCW1 1 OCWOCW2 2 OCWOCW3 3特殊屏蔽特殊屏蔽举例:7.1.5 7.1.5 命令字格式与编程命令字格式与编程7-23MOV DX,PORT2 MOV DX,PORT2 ;送;送OCWOCW3 3口地址口地址DXDXOUT DX,AL OUT DX,AL ;OCWOCW3 38259,A8259,A0 0=0=0STI STI ;开中断;开中断.CLI CLI ;为复位特殊屏蔽方式而关中断;为复位特殊屏蔽方式而关中断MOV AL,48H MOV AL,48H ;OCWOCW3 3AL,
34、SAL,S1 1S S2 2=10=10MOV DX,PORT2 MOV DX,PORT2 ;送;送OCWOCW3 3口地址口地址DXDXOUT DX,AL OUT DX,AL ;OCWOCW3 38259,A8259,A0 0=0=0MOV AL,0 MOV AL,0 ;解除对;解除对IRQIRQ4 4的屏蔽的屏蔽MOV DX,PORT1 MOV DX,PORT1 ;OCWOCW1 1口地址口地址DXDXOUT DX,AL OUT DX,AL ;OCWOCW1 18259,A8259,A0 0=1=1STI STI ;开中断;开中断.;包含;包含EOIEOI的中断结束命令的中断结束命令IRE
35、TIRET;中断结束返回;中断结束返回操作命操作命令令字字 OCWOCW1 1 OCWOCW2 2 OCWOCW3 37.1.5 7.1.5 命令字格式与编程命令字格式与编程7-24CPUCPU根据需要随时查询中断源,当查询到有中根据需要随时查询中断源,当查询到有中断请求时,就转入为相应中断源服务的程序中去。断请求时,就转入为相应中断源服务的程序中去。系统关中断系统关中断,写入查询命令字写入查询命令字OCWOCW3 3至至0 0端口端口查询命令字为查询命令字为:0000110000001100实现方法:实现方法:读读0 0口,可读到下列查询字:口,可读到下列查询字:IX X X XW2W1W0
36、I=I=1 1 表示有中断请求表示有中断请求,W W2 2W W1 1W W0 0为中断请求源中为中断请求源中优先级最高者的编码优先级最高者的编码,程序执行转到程序执行转到W W2 2W W1 1W W0 0所所对应的中断源服务程序去对应的中断源服务程序去。I=0 I=0 表示无中断请求,表示无中断请求,CPUCPU继续执行原程序。继续执行原程序。操作命操作命令令字字 OCWOCW1 1 OCWOCW2 2 OCWOCW3 3 查询方式查询方式7.1.5 7.1.5 命令字格式与编程命令字格式与编程7-25读命令字格式为:读命令字格式为:0 0 0 0 1 0 R0 0 0 0 1 0 R1
37、1R R0 0R R1 1R R0 0=10=10,读出的是中断请求寄存器,读出的是中断请求寄存器IRRIRR;R R1 1R R0 0=11=11,读出的是中断服务寄存器,读出的是中断服务寄存器ISRISR。操作命操作命令令字字 OCWOCW1 1 OCWOCW2 2 OCWOCW3 3 读读IRRIRR、ISRISR的方法:的方法:先发读命令字先发读命令字OCWOCW3 3到到0 0端口,再读端口,再读0 0端口。端口。读读IMRIMR的方法:的方法:直接对直接对1 1端口进行读操作,即可读出端口进行读操作,即可读出IMRIMR的内容。的内容。读读82598259状态状态7.1.5 7.1
38、.5 命令字格式与编程命令字格式与编程7-263.3.可编程设置的工作方式可编程设置的工作方式82598259具有十分灵活的中断管理方式:具有十分灵活的中断管理方式:中断优先级管理中断优先级管理中断管理的核心中断管理的核心1)1)中断嵌套方式中断嵌套方式2)2)中断优先级循环方式中断优先级循环方式3)3)中断屏蔽方式中断屏蔽方式4)4)程序查询方式程序查询方式5)5)中断结束方式中断结束方式6)6)中断请求触发方式中断请求触发方式7)7)读状态方式读状态方式8)8)数据缓冲方式数据缓冲方式9)9)多片级联方式多片级联方式7.1.5 7.1.5 命令字格式与编程命令字格式与编程7-271)1)中
39、断嵌套方式中断嵌套方式82598259支持两种中断嵌套方式:支持两种中断嵌套方式:全嵌套方式和全嵌套方式和特殊全嵌套方式。特殊全嵌套方式。全嵌套方式全嵌套方式一种最普通的工作方式一种最普通的工作方式,芯片写完初始化芯片写完初始化命令字命令字ICWICW后后,如不再写入操作命令字如不再写入操作命令字OCWOCW,则则自动进入并保持此方式自动进入并保持此方式。此时中断优先级固定此时中断优先级固定为为IRQIRQ0 0最高最高,IRQIRQ7 7最低最低,且高级中断源可中断且高级中断源可中断低级中断源低级中断源。7.1.5 7.1.5 命令字格式与编程命令字格式与编程7-28全嵌套方式工作的条件:全
40、嵌套方式工作的条件:主程序必须开中断主程序必须开中断。每进入一个中断服务程序,系统都会自动关每进入一个中断服务程序,系统都会自动关中断,故中断,故必须在中断服务程序中再次开中断必须在中断服务程序中再次开中断,才有可能嵌套更高级的中断。才有可能嵌套更高级的中断。每次中断服务程序结束时,必须执行中断结每次中断服务程序结束时,必须执行中断结束命令束命令,清除清除ISRISR中对应的位中对应的位,才能返回断点才能返回断点并响应再次到来的中断请求。并响应再次到来的中断请求。7.1.5 7.1.5 命令字格式与编程命令字格式与编程7-29全嵌套中断方式流程全嵌套中断方式流程开中断开中断主程序主程序IRQI
41、RQ3 3中断服务程序中断服务程序IRQIRQ1 1中断请求中断请求开中断开中断中断结束中断结束(EOI)(EOI)关中断关中断返回返回IRQIRQ1 1中断服务程序中断服务程序IRQ3中断请求中断请求开中断开中断开中断开中断关中断关中断中断结束中断结束(EOI)(EOI)返回返回开中断开中断7.1.5 7.1.5 命令字格式与编程命令字格式与编程7-30特殊全嵌套方式特殊全嵌套方式适用于多片适用于多片82598259级联且响应的中断优先级保存在级联且响应的中断优先级保存在各从片中的大系统各从片中的大系统。与普通全嵌套方式相比与普通全嵌套方式相比,特殊全特殊全嵌套方式的特殊性表现在:嵌套方式的
42、特殊性表现在:当从片的中断请求被响应后当从片的中断请求被响应后,主片并不封锁从主片并不封锁从片的片的INTINT输入端输入端,以便从片中优先级更高的请求以便从片中优先级更高的请求可得到响应可得到响应。在从片中断服务程序快结束时要检查其在从片中断服务程序快结束时要检查其ISRISR内内容容,检测刚服务完的中断是否为该从片唯一的检测刚服务完的中断是否为该从片唯一的中断请求源中断请求源,如是如是,则连发两个非特殊则连发两个非特殊EOIEOI命命令令,使从片使从片、主片相继结束中断;否则主片相继结束中断;否则,只发一只发一个个EOIEOI命令命令,使主片仍不结束中断使主片仍不结束中断。7.1.5 7.
43、1.5 命令字格式与编程命令字格式与编程7-3182598259提供了两种中断优先级循环方式:提供了两种中断优先级循环方式:自动循环优先级方式自动循环优先级方式 适合于各中断源的优先适合于各中断源的优先级相同的应用场合,一个中断源被服务后,其优先级级相同的应用场合,一个中断源被服务后,其优先级自动排到最低。自动排到最低。此方式又分非自动结束方式下循环和自动结束方此方式又分非自动结束方式下循环和自动结束方式下循环两种,具体通过写式下循环两种,具体通过写OCWOCW2 2最高三位设置。最高三位设置。特殊循环优先级方式特殊循环优先级方式 适合于中断源的优先级适合于中断源的优先级需随意改变的应用场合需
44、随意改变的应用场合,由由OCWOCW2 2的最高三位再辅之以的最高三位再辅之以最低三位设定最低三位设定,通过设定最低三位编码指定最低优先通过设定最低三位编码指定最低优先级从而改变各中断源优先级级从而改变各中断源优先级。2)2)中断优先级循环方式中断优先级循环方式7.1.5 7.1.5 命令字格式与编程命令字格式与编程7-32具体屏蔽方式有两种:具体屏蔽方式有两种:普通屏蔽方式:普通屏蔽方式:用用OCWOCW1 1 设置设置IMRIMR中某一位或某几位中某一位或某几位为为1 1,即可将相应中断请求屏蔽掉。,即可将相应中断请求屏蔽掉。特殊屏蔽方式:特殊屏蔽方式:允许开放低级中断。允许开放低级中断。
45、用用OCWOCW3 3设置该方式设置该方式,OCWOCW1 1建立普通屏蔽信息建立普通屏蔽信息,当响当响应一个中断请求时应一个中断请求时,开放所有未被开放所有未被OCWOCW1 1屏蔽的其它优屏蔽的其它优先级中断先级中断。3)3)中断屏蔽方式中断屏蔽方式7.1.5 7.1.5 命令字格式与编程命令字格式与编程7-33这种方式下这种方式下CPUCPU可获得当前请求中断可获得当前请求中断服务的优先级服务的优先级。实现方法是将实现方法是将OCWOCW3 3的的D D2 2位设置为位设置为1 1,再紧跟一个读命令再紧跟一个读命令。4)4)程序查询方式程序查询方式7.1.5 7.1.5 命令字格式与编程
46、命令字格式与编程7-3482598259提供了两种中断结束方式:提供了两种中断结束方式:自动中断结束自动中断结束-只能用于不要求中断嵌套的场合只能用于不要求中断嵌套的场合非自动中断结束非自动中断结束-中断服务程序要借助于中断服务程序要借助于OCWOCW2 2发发出中断结束命令出中断结束命令EOIEOIEOIEOI命令又有两种形式:命令又有两种形式:工作在全嵌套方式下的非特殊工作在全嵌套方式下的非特殊EOIEOI命令命令-由由OCWOCW2 2最最高的三位为高的三位为001001规定;规定;工作在非嵌套方式下的特殊工作在非嵌套方式下的特殊EOIEOI命令命令-由由OCWOCW2 2最高最高的三位
47、为的三位为011011规定,同时必须由其最低三位指定需规定,同时必须由其最低三位指定需复位的复位的ISRISR中的中断级编码。中的中断级编码。5)5)中断结束方式中断结束方式7.1.5 7.1.5 命令字格式与编程命令字格式与编程7-35通过设置初始化命令字通过设置初始化命令字ICWICW1 1的的D D3 3位为位为0 0或为或为1 1,可可使使82598259工作于边沿工作于边沿(上升沿上升沿)触发方式或电平触发方式或电平(高电平高电平)触发方式触发方式。在电平触发方式下,在电平触发方式下,CPUCPU在发出在发出EOIEOI命令前或再次命令前或再次开放中断前,必须确保已响应的中断请求开放
48、中断前,必须确保已响应的中断请求IRiIRi为低电为低电平,以防出现第二次中断。平,以防出现第二次中断。说明:说明:6)6)中断请求触发方式中断请求触发方式 无论哪种触发方式无论哪种触发方式,必须确保在接收到第必须确保在接收到第1 1个个INTAINTA脉冲负跳变之前,脉冲负跳变之前,IRiIRi输入保持高电平输入保持高电平,若若IRiIRi输入提输入提前变低前变低,则则CPUCPU响应中断时就自动设定响应中断时就自动设定IRIR7 7。这样可防。这样可防止由止由IRiIRi输入端上严重的噪声干扰产生的中断。输入端上严重的噪声干扰产生的中断。7.1.5 7.1.5 命令字格式与编程命令字格式与
49、编程7-3682598259内部的内部的IRRIRR、ISRISR和和IMRIMR三个寄存器三个寄存器状态,可通过适当的输入命令读至状态,可通过适当的输入命令读至CPUCPU中。中。7)7)读状态方式读状态方式7.1.5 7.1.5 命令字格式与编程命令字格式与编程7-37-常用于多片级联的大系统中常用于多片级联的大系统中设置方式:设置方式:将将ICWICW4 4的的D D7 7位位(BUF(BUF位位)置置“1 1”。8)8)数据缓冲方式数据缓冲方式各片各片82598259的中断向量号均要在接收第二个的中断向量号均要在接收第二个INTAINTA脉脉冲之后向数据总线发送,故芯片需要通过总线缓冲
50、器冲之后向数据总线发送,故芯片需要通过总线缓冲器挂接在数据总线上。采用数据缓冲方式后挂接在数据总线上。采用数据缓冲方式后,将在将在SP/ENSP/EN端输出一个有效低电平,开启缓冲器工作。端输出一个有效低电平,开启缓冲器工作。7.1.5 7.1.5 命令字格式与编程命令字格式与编程7-38一个系统中一个系统中,可将多片可将多片82598259级联级联,级联后一片级联后一片82598259为主片为主片,若干片若干片82598259为从片为从片,最多可有最多可有8 8个从片个从片,将中断源扩展到将中断源扩展到6464个个。主片和每个从片都必须通过写入主片和每个从片都必须通过写入ICWICW3 3分