《微机接口芯片及应用课件》由会员分享,可在线阅读,更多相关《微机接口芯片及应用课件(53页珍藏版)》请在金锄头文库上搜索。
1、第3章 微机接口芯片及应用,本章概要 接口电路通常有专用芯片可选。本章介绍4款常用的PC机接口芯片: 8259:中断管理接口芯片 8253:定时器/计数器接口芯片 8237:DMA控制芯片 8255:并行I/O接口芯片 上述接口芯片最早用于PC/XT中,后来出现的286 P4,一直保持了这些芯片的功能,并且兼容了它们的I/O地址。 本章的介绍适用于所有PC机。,PC机接口芯片的连接图,3.1 中断系统,3.1.1 中断的基本概念 3.1.2 80 x86中断方式 3.1.3 硬件中断的优先权 3.1.4 中断向量表 3.1.5 中断控制器8259A 3.1.6 中断编程应用,中断过程,1)中断
2、申请 CPU在每条指令最后一个T内检测INTR;若为高电平, IF=1,且无DMA请求,当前指令执行完进入响应阶段. 2)中断响应 CPU连续发出2个INTA负脉冲; 取得类型号N; 保护断点; 查表将中断向量赋予IP、CS; 进入中断服务程序 3)中断服务执行中断服务程序. 4)中断返回执行到IRET恢复断点,返回,中断服务程序的结构 保护现场 STI ;若允许中断嵌套 服务程序主体 恢复现场 中断结束(EOI)命令 IRET,3.1.1 中断的基本概念,中断:是指CPU在正常运行程序时,由于内部/外部事件或由程序预先安排的事件,引起CPU中断正在运行的程序,转去为该事件服务。服务完毕,再返
3、回去继续运行被暂时中断的程序的过程。 中断源:发出中断请求的外部设备或引起中断的内部原因。 外设中断:键盘、打印机、显示器等 指令中断:INT 10H、INT 21H等 硬件故障中断:奇偶错、电源故障等 程序性中断:除法溢出、非法操作码等,8086系统的中断源,3.1.2 80 x86中断方式,80 x86中断方式: 实地址方式下的中断方式(重点) 保护虚地址方式下的中断方式 根据中断源的不同,中断源分为:内部中断(软中断) 、外部中断(硬中断),1内部中断 内部中断的中断源在处理器(CPU)的内部,主要是由INT指令、运算过程中的错误、设置的断点、单步执行而引起的中断。 (1) INT指令
4、当CPU执行INT N指令时会自动产生一个内部中断,并调用系统中的相应中断服务程序来完成中断功能,INT指令中的操作数N即为中断类型号。,例如: ROM-BIOS中断:INT 10H;INT 16H;INT 13H等 DOS中断:INT 21H;INT 20H等 未定义中断:INT 60H;INT 78H等,内部中断(续),(2) 处理器(CPU)的错误 处理器在执行程序时,若出现某些错误(如溢出),为及时处理这些错误,CPU就以中断方式终止程序执行,等待操作人员修改错误。 除法错中断 溢出中断 (3) 为调试程序设置的中断 为了检查程序执行的中间结果或寻找程序中存在的问题,往往在程序中适当的
5、位置设置断点或使程序单步运行,以便发现或查找程序中的问题。 单步中断 断点中断,2外部中断 80X86处理器(CPU)有两条外部中断请求线:NMI(非屏蔽中断)和INTR(可屏蔽中断)。 (1) 可屏蔽中断(INTR) 可屏蔽中断(INTR)又称硬件中断,它是由外部设备请求,通过中断控制器8259管理的一类中断。当在INTR线上出现中断请求(INTR=1)时,处理器(CPU)是否响应要取决于处理器的标志寄存器中的IF标志,若IF=1,则处理器(CPU)就响应(处理器处于开中断状态)该中断请求;若IF=0,处理器(CPU)就不响应(处理器处于关中断状态)该中断请求。 (2) 非屏蔽中断(NMI)
6、 非屏蔽中断(NMI)不受处理器(CPU)标志寄存器IF标志的影响,主要是为处理某些计算机故障而设计的,在IBM PC系列的计算机中,非屏蔽中断(NMI)仅在存储器奇偶校验出错、I/O通道数据奇偶校验出错和80X87协处理器(NPU)异常三种情况时发生。 中断的处理优先权顺序为:内部中断非屏蔽中断可屏蔽中断单步执行。,3.1.3 硬件中断(可屏蔽中断)的优先权,中断优先权是指有多个中断同时发生时,CPU(或8259A中断控制器)优先响应其中断的顺序。硬件中断也就是可屏蔽中断,主要用于实现计算机系统对外部设备的管理。 80286以上为中央处理器的计算机系统中,整个系统的硬件中断由两片8259A中
7、断控制器构成,可管理16级硬件中断(IRQ15IRQ0)。优先权顺序为(从高到低):IRQ0IRQ1IRQ2IRQ8 IRQ15IRQ3IRQ7。,3.1.4 中断向量表,中断向量:中断服务程序入口地址 ,4个字节(偏移地址、段首址) 8086共有256个中断类型号(00H0FFH) ,每一中断类型号对应一个中断向量。 中断向量表:将256个中断向量用一个线性表存放。一个中断向量占用表中的4个字节,分别存放CS和IP,类型号:8位,N=00FFH 中断向量指针:PA=4*N,已知中断类型号,就能算出对应的中断向量在表中的地址。 例:键盘中断IRQ1,其中断类型号=09H,故中断向量在表中的 存
8、放地址:94=36,即24H开始的4个字节。 PC机中常用的硬件中断类型号:,PC机中常用的硬件中断类型号(续):,中断向量的修改,修改方法与步骤:,1)用汇编语言指令修改:,2)用系统功能调用(INT)修改,a)保存原中断向量 INT 21H 的35H号功能,b)设置新中断向量 INT 21H 的25H号功能,c)恢复原中断向量 INT 21H 的25H号功能,假设中断类型号为N,服务程序入口为INT_SEV,中断向量修改程序段1,中断向量修改程序段2,中断向量修改程序段1,返回,用MOV指令装入,CLI CLD MOV AX,0 MOV ES,AX MOV DI,4*N MOV AX,OF
9、FSET INT_SEV STOSW MOV AX,SEG INT_SEV STOSW STI,用串操作指令装入,中断向量修改程序段2,相关的DOS系统功能调用,返回,相关的DOS系统功能调用,返回,获取中断向量(功能号AH=35H) 入口参数:AL=类型号 出口参数:ES:BX=中断向量,设置中断向量(功能号AH=25H) 入口参数:AL=类型号 入口参数DS:DX=中断向量,3.1.5 8259A中断控制器,8259A中断控制器用于管理PC机的硬件中断,在接口技术中的中断编程是指采用中断方式实现控制、数据采集等功能。 18259A功能 具有8级优先权控制,通过级连可扩展至64级优先权控制。
10、 每一级中断都可以独立被屏蔽或允许。 在中断响应周期,8259A可提供中断向量,从而快速地转入中断服务程序。 8259A有多种工作方式,均可通过程序来选择。,8259A协助CPU完成的工作,接收和扩充外设的中断请求 一片可管理8级中断;两级级联最多管理64级 优先级排队管理 固定优先级、循环优先级 控制中断请求的屏蔽与开放 提供中断类型号 向量中断,还可实现查询中断,8259A的外部特性和内部结构,1)引脚(28脚) Vcc、GND,2)内部结构,面向CPU的信号(14),面向外设的信号(8),IR07:外设的中断申请; 输入触发方式由编程设定,面向同类芯片的信号(4),8259A,8259中
11、断的处理过程,1)中断申请 CPU在每条指令最后一个T内检测INTR;若为高电平, IF=1,且无DMA请求,当前指令执行完进入响应阶段. 2)中断响应 CPU连续发出2个INTA负脉冲; 取得类型号N; 保护断点; 查表将中断向量赋予IP、CS; 进入中断服务程序 3)中断服务执行中断服务程序. 4)中断返回执行到IRET恢复断点,返回,中断服务程序的结构 保护现场 STI ;若允许中断嵌套 服务程序主体 恢复现场 中断结束(EOI)命令 IRET,面向CPU的信号(14),返回,A0:端口选择信号;输入,面向同类芯片的信号(4),返回,内部结构,返回,中断请求寄存器(IRR),中断服务寄存
12、器(ISR),中断屏蔽寄存器(IMR),中断优先权电路(PR),8259A内部结构图,级联缓冲器/比较器:,读写控制逻辑,级联时传送级联代码;缓冲方式控制传送方向,IRR、ISR、IMR说明,(Interrupt Request Resgister),(Interrupt Service Register),(Interrupt Mask Register),28259A引脚及结构 Intel8259A为28脚双列直插式芯片,主要引脚功能如下。,返回,IRR、ISR、IMR的说明,中断请求寄存器(IRR): 8位,可读,寄存有请求的中断级,IRi有请求,IRRi=1,正在服务寄存器(ISR):
13、 8位,可读,寄存正在服务的中断级,IRi被响应且未服务完,ISRi=1,ISR可能多位同时为1,中断屏蔽寄存器(IMR):IMRi=1,IRi被屏蔽,(Interrupt Request Resgister),返回,级联缓冲器/比较器 (1)缓冲方式 8259A的数据线需加缓冲器予以驱动, SP/EN引脚作为输出端,用以锁存或开启缓冲器。 (2)非缓冲方式 SP/EN引脚为输入端,在8259A级连时, 1为主片,0为从片。,返回,中断优先权电路PR,由IRR、IMR、ISR的状态确定INT引脚的输出; 优先级编码器+比较电路,返回,读写控制逻辑,0A1H,21H,读IMR,1,0,1,0,0
14、A0H,20H,读IRR,ISR,查询字,0,0,1,0,0A1H,21H,写ICW24,OCW1,1,1,0,0,0A0H,20H,写ICW1,OCW23,0,1,0,0,从片,主片,读写操作,A0,RD,WR,CS,返回,3. 8259A初始化字和命令字,8259A的初始化包含24个初始化命令字(ICW)和3个工作方式命令字(OCW),ICW必须依次连续写入,OCW在需要时写入。 初始化命令字ICW( Initialization Command Words) ICW1ICW4 向8259A写入ICW的过程称为初始化编程 工作方式命令字OCW(Operation Command Words
15、) OCW1OCW3 向8259A写入OCW的过程称为工作方式编程,8259A逻辑结构及连接,8259A的初始化顺序,说明: 在8259A开始工作前必须写入。 必须按照ICW1ICW4顺序写入。 ICW1和ICW2是必须送的。 ICW3和ICW4由工作方式决定。 写入地址要求: ICW1必须写入偶地址端口(A0=0) ICW2, ICW3, ICW4必须写入奇地址端口(A0=1),8259A的工作方式命令字OCW,OCW用于设置8259的工作状态 在初始化后写入 OCW的写入顺序可任意 写入地址要求: OCW1必须写入奇地址端口(A0=1) OCW2,OCW3必须写入偶地址端口(A0=0),8
16、259A内部寄存器的寻址方法,需要CS、A0、RD、WR和D4、D3的配合 内部寄存器的访问方法如下表:,由表可见,CPU用A0寻址82C59A的端口共有2个:1个为偶地址,1个为奇地址,8259A的命令字,2)3个操作命令字(Operation Command Words) (OCW13);,1)ICW1,2)ICW2,3)ICW3,4)ICW4,1)OCW1,2)OCW2,3)OCW3,1)4个初始化命令字(Initialization Command Words) (ICW14),说明:8259A工作期间,可以随时接受操作命令字OCW。 OCW共有3个:OCW1OCW3。 写入时没顺序要求,需要哪个OCW就写入那个OCW。,(1)ICW1(初始化字),表示可以任意 为1为0都可以(建议为0),1只能为1,作为标志,中断触发方式: LTIM1,电平触发方