收藏 分享(赏)

第6章 控制器接口(new).ppt

上传人:tkhy51908 文档编号:8010164 上传时间:2019-06-04 格式:PPT 页数:52 大小:564KB
下载 相关 举报
第6章 控制器接口(new).ppt_第1页
第1页 / 共52页
第6章 控制器接口(new).ppt_第2页
第2页 / 共52页
第6章 控制器接口(new).ppt_第3页
第3页 / 共52页
第6章 控制器接口(new).ppt_第4页
第4页 / 共52页
第6章 控制器接口(new).ppt_第5页
第5页 / 共52页
点击查看更多>>
资源描述

1、第6章 控制器接口,知识要点:Intel 80x86微机系统中的中断控制器8259A、DMA控制器8237A、定时/计数器8253的内部结构,工作原理和应用技术。,重点及难点:8259A的内部结构、中断管理方式及其编程设置;8237A的内部结构、工作方式、寄存器及编程应用;8253的内部结构、工作方式及编程应用。,6.1 中断控制器8259A,6.1.1 8259A的功能, 每片8259A可以有8级优先权控制,通过级联可扩展至64级; 每一级都可以由编程进行屏蔽或开放; 有多种中断优先权排队方式; 当中断响应时,可提供由用户设定的中断类型号; 可以通过编程来选择8259A的各种工作方式; 82

2、59A可以使用在不同的微处理器系统中。,6.1.2 8259A的内部结构和管脚,同CPU一侧的连接部件,1、8259A的内部结构,控制逻辑,读/写逻辑,数据总线缓冲器,中断请求寄存器,中断屏蔽寄存器IMR,优先权电路,当前服务寄存器ISR,(1)中断请求寄存器IRR保存从IR0IR7来的中断请求信号,某位=1表示对 应的IRi有中断请求,(4)优先权电路PR用于识别和管理IRR中各位的优先权级别。能进行优先级判别,把未被屏蔽的最高优先级的中断请求送到CPU。,(3)中断屏蔽寄存器IMRIMR是一个8位寄存器,存放中断屏蔽字,某位=1表示对应的IRi输入被屏蔽,为0开放该中断请求。可通过指令设置

3、。,(5)控制逻辑电路控制逻辑电路根据CPU对8259A编程设定的工作方式管理8259A,负责发出INTR和接收INTA,并使INTA转化为内部所需的各种控制信号。 (6)读/写电路读/写电路可接收CPU对8259A的初始化命令字ICW和操作命令字OCW,并将其存入相应的端口寄存器,来规定8259A的工作方式和控制模式;也可以向CPU提供各端口寄存器的内容。 (7)数据总线缓冲器连接系统总线和8259A的内部总线,用于传输8259A的控制字或状态字,以及中断类型号。 (8)级连缓冲/比较器控制多片8259A的级连,扩展中断级。多片8259A级连时,一片为主,其余为从。最多可9片级连,扩展64级

4、中断。,2. 8259A的管脚及其功能,A0:端口地址选择线。一片8259A有2个端口地址,一个为偶地址,另一个为奇地址。A0=0选择偶地址端口,A0=1选择奇地址端口。 注意:8259的A0和8086的A1相连。,CAS2CAS0:级联信号线,主片为输出,发送从设备标志;从片为输入,接收从设备标志。,6.1.3 8259A的中断管理方式,1.优先级设置方式,(1)一般/普通全嵌套方式一般全嵌套方式是8259A最常用的工作方式,初始化后的默认工作方式。此时中断优先权的级别是固定的,IR0IR7递减。CPU响应中断时,屏蔽掉与它同级或低级的中断请求。,在中断处理过程中允许被更高优先级的事件所中断

5、称为中断嵌套。8259A有两种中断嵌套方式:,8259A有多种工作方式,都可以通过编程来设定。,(2)特殊全嵌套方式和一般全嵌套方式基本相同,区别在于:在特殊全嵌套方式下,处理某一中断时,可实现对同级中断请求的响应。系统中只有单片8259A时,通常用全嵌套方式;而当8259A多片级连时,主片必须采用特殊全嵌套方式,从片可采用一般全嵌套方式。,注: 特殊全嵌套仅用于多个8259A级连时的主8259A,而不能用于从属8259A或单8259A系统。,(3)优先权自动循环方式 优先权自动循环方式一般用于系统中有多个相同优先权的中断源的场合。 某一中断源受到服务后,其优先级自动降为最低。优先权在IR0I

6、R7上循环左移,与之相邻的优先级就升为最高。初始时IR0最高,IR7最低。,(4)优先权特殊循环方式 优先权特殊循环方式与优先权自动循环方式的区别在于:初始时的最低优先权由编程指定。例如指定IR3最低,则IR4最高。,设在为IR4服务,最低级,IR4的服务结束以后,0,7,(1)普通屏蔽方式 通过编程将中断屏蔽字写入IMR而实现。某一位为1则屏蔽对应的中断请求;为0则开放对应的中断请求。,2.中断屏蔽方式,(2)特殊屏蔽方式 特殊屏蔽方式应用于在执行较高级别的中断服务时,开放较低级别的中断请求。 在响应较高级别的中断时,用屏蔽字对IMR中某一位置1,同时使ISR中的对应位清0。,可在中断服务程

7、序中用中断屏蔽命令来屏蔽当前正在服务的中断级别时,同时使ISR中对应当前中断级的位自动清“0”,从而屏蔽了当前正在处理的本级中断,还真正开放了其他较低级的中断请求。特殊屏蔽方式可通过操作命令字OCW3来设置或取消。 原理:假定当前正在处理IR6,先进入特殊屏蔽方式,然后设置IMR6=1,ISR6=0。这时,除IR6外的所有中断请求均能得到响应。 提供了允许较低优先级的中断能够得到响应的特殊手段,3.中断结束方式,当某一IRi中断被服务时,ISR中的相应位ISRi=1。当服务结束后,则必须清零该ISRi位,使中断结束。,(2)非自动中断结束方式EOI 在中断服务程序结束的末尾(IRET指令之前)

8、向8259A发出中断结束命令,清除ISR中的相应位,表示该级的中断服务程序已经结束。EOI命令有普通EOI命令和特殊EOI命令两种,分别对应一般全嵌套和特殊全嵌套方式。,在全嵌套方式下,ISR中的优先权最高对应位就是最后一次被响应的中断级,即当前正在处理的中断级,所以它的清“0”就是结束当前正在处理的中断,是一般的中断结束方式。而在特殊全嵌套方式下,要用特殊的中断结束EOI命令。可通过操作命令字OCW2来设定。,因不保留当前正在服务的中断的状态,所以不能用于中断嵌套方式。,4、与系统总线的连接方式,(1)缓冲方式多片级联时,8259A通过总线驱动器和数据总线相连,即缓冲方式。此时,8259A的

9、SP/EN端和总线驱动器的允许端相连,SP/EN端输出的低电平可作总线驱动器的启动信号。,(2)非缓冲方式在单片或少数几片级联系统中,将8259A直接连接到数据总线上。8259A的SP/EN端作输入端,接高或低电平。(单片的SP/EN接高电平,级联系统的主片SP/EN接高电平,从片SP/EN接低电平。),5.中断请求的引入方式,边沿触发 IRi出现上升沿表示有中断请求,设置查询方式的过程: 系统先关中断; 将“查询方式字”写入8259A(输出指令); 读取8259A的8位查询字(输入指令)偶地址端口; CPU进行判断。 查询字格式:D7 D6 D5 D4 D3 D2 D1 D0,I=1,表示有

10、中断请求。W2W1W0表示8259A请求服务的最高优先级编码。,8259A的控制命令分为 初始化命令字ICW ICW1ICW4 CPU向8259A写入ICW的过程称为初始化编程 操作命令字OCW OCW1OCW3 CPU向8259A写入OCW的过程称为工作方式编程,通过设定初始化命令字,使8259A处于就绪状态;通过操作命令字的设定可以规定它的工作方式。,6.1.4 8259A的编程设置,1、8259A的初始化命令字,初始化8259A必须从ICW1开始 写ICW1意味着重新初始化8259A 写入ICW1后,8259A的状态如下: 清除ISR和IMR(全0); 将中断优先级设成初始状态:IR0最

11、高,IR7最低; 设定为一般屏蔽方式; 采用非自动中断结束方式;,(1) ICW1芯片控制字,LTIM: 触发方式 =1 高电平触发 =0 上升沿触发 SNGL: 级连控制 =1 单片 =0 级连 ICW4: ICW4控制 =1 要写ICW4 =0 不写ICW4(默认ICW4为全0),A0 D7 D6 D5 D4 D3 D2 D1 D0,标志位,D2、D5-D7对于8086系统不起作用。,对于8086系统,ICW4=1,(2)ICW2中断向量码(中断类型命令字),T7T3: 中断向量码的高5位,由用户给出。 T2T0: 最低3位为中断源的序号IRn,中断响应时自动填入。 000111分别对应I

12、R0IR7 由8259A根据中断源的序号自动填入 例如:若ICW2命令字为48H,则IR0的中断向量码为48H,IR7的中断向量码为4FH,等等。,A0 D7 D6 D5 D4 D3 D2 D1 D0 1 T7 T6 T5 T4 T3 0 0 0,作用:设定中断类型号。,(3) ICW3级连控制字主/从片初始化字,主片的级联控制字 Si=1 对应IRi线上连接了从片,A0 D7 D6 D5 D4 D3 D2 D1 D0 1 S7 S6 S5 S4 S3 S2 S1 S0,从片的级联控制字 ID2ID0 标识码,说明本从片连接到主片的哪个IR引脚上。 000111分别对应IR0IR7。,A0 D

13、7 D6 D5 D4 D3 D2 D1 D0 1 0 0 0 0 0 ID2 ID1 ID0,作用:多片8259A系统中,定义主片、从片的级连。,ICW3级连控制字(续),ICW3必须与主从片的连接关系一致:,若系统中只有一片8259A,则不需要ICW3;若有多片8259A,则主片和各个从片都需要ICW3。,例如,主片的IR4与从片的INT线连接,则主片的ICW3=00010000B,从片的ICW3=00000100B。,(4)ICW4中断结束方式字,SFNM: 特殊全嵌套 1 特殊全嵌套方式 0 一般全嵌套方式AEOI: 自动EOI 1 自动EOI方式 0 非自动EOI方式,A0 D7 D6

14、 D5 D4 D3 D2 D1 D0 1 0 0 0 SFNM BUF M/S AEOI PM,作用:决定8259A的工作系统,中断服务程序是否需要输出EOI命令。,PM=1为80X86系统 PM=0为8080/8085系统,BUF: 缓冲方式M/S: 主/从缓冲选择(非缓冲方式不起作用) BUF M/S1 1 缓冲方式/主片1 0 缓冲方式/从片0 x 非缓冲方式/正常,非自动中断结束又分为普通(或称一般、正常)方式和特殊方式。,2. 8259A初始化设置流程,8259的初始化流程如图 注意次序不可颠倒,例:某PC系统是单片8259A,端口地址是20H和21H,采用普通全嵌套方式,边沿触发,

15、普通EOI结束中断。 IR0IR7的中断类型号分别为 08H 0FH。写出初始化程序段。,ICW1:00010011B;ICW2:08H;ICW4:00001001B,MOV AL,13H OUT 20H,AL ;ICW1(边沿触发,单片,写ICW4) MOV AL,08H OUT 21H,AL ;ICW2(中断类型号从08H开始) MOV AL,09H OUT 21H,AL ;ICW4(普通全嵌套,非自动EOI),3、8259A的操作命令字OCW,OCW用于设置8259A的工作状态 在初始化后写入 OCW的写入顺序可任意 写入地址要求: OCW1必须写入奇地址端口(A0=1) OCW2,OC

16、W3必须写入偶地址端口(A0=0),初始化命令字后,8259A即可接受中断请求信号,此时中断源优先权是IR0最高,IR7最低,并且清除了所有中断屏蔽。,(1)OCW1中断屏蔽字,Mi=1 中断请求线IRi被屏蔽(不允许中断) =0 允许该IRi中断 OCW1将写入IMR寄存器。 A0=1时读OCW1可读出设置的IMR内容。,A0 D7 D6 D5 D4 D3 D2 D1 D0 1 M7 M6 M5 M4 M3 M2 M1 M0,作用:设置或清除对中断源的屏蔽。,(2)OCW2中断方式命令字,R:中断排队是否循环的标志。R1是优先级循环方式,R=0是固定优先级方式。 SL: 选择L2、L1、L0

17、编码是否有效的标志。若SL=1,则L2、L1、L0选择有效,否则优先级仍为IR0最高,IR7最低。 EOI: 结束中断命令 ,EOI=1,使现行的ISR中最高优先级的响应位复位(一般EOI命令)或由L2、L1、L0制定的ISR位复位(特殊EOI命令)。 L2L0: 优先级编码,两个作用。一是在特殊EOI命令中,表示清除的是ISR的哪一位;二是在特殊循环方式中,表示系统中最低优先级的编码。,A0 D7 D6 D5 D4 D3 D2 D1 D0 0 R SL EOI 0 0 L2 L1 L0,作用:设置优先权是否循环,循环方式,中断结束方式。,(3)OCW3状态操作命令字,ESMM: 允许使能特殊

18、屏蔽方式 SMM: 特殊屏蔽方式 ESMM SMM1 1 允许特殊屏蔽方式1 0 撤销特殊屏蔽方式P(Polling): =1 采用中断查询方式=0 非查询方式,即向量中断方式,A0 D7 D6 D5 D4 D3 D2 D1 D0 0 0 ESMM SMM 0 1 P RR RIS,RR: 读寄存器 RIS: ISR/IRR选择RR RIS 1 1 读ISR 1 0 读IRR,作用:设置查询方式,是否特殊屏蔽,读取IRR、ISR。,OCW3(续),查询方式允许8259A不工作于中断方式,而是以查询方式工作。 CPU先写一个D2=1的OCW3,再对同一地址读入,即可得到如下状态字节:I x x

19、x x R2 R1 R0 I=1表示有中断请求,R2-R0为正在申请服务的最高优先级的二进制代码。此查询步骤可反复执行,以响应多个同时发生的中断。 读IRR/ISR:写入此命令后,随后再对同一地址读,即可得到IRR或ISR的内容。 查询方式不需要中断向量表,故节省内存。在存储器容量受到限制的情况下,是一种很好的替代方法。,练习: 若一个中断系统有一片主8259A和三片从8259A。从8259A分别接在主8259A的IR2、IR3、IR4上。若主片的IMR置成01010000,各从片的IMR所有位均清“0”,连接在IR3上的从片的最高优先级为IR5。试按优先级顺序排列各未被屏蔽的中断级(从高到低

20、排列)。 P103-6.4 、 6.5,6.2 DMA控制器8237A,8237A是一个40引脚双列直插式芯片。,6.2.1 8237A的基本特点,8237具有4个独立的DMA通道,可以采用级联方式扩充所需的通道数; 每个通道都有16位的地址寄存器和16位的字节计数器,可在内存和外设之间传送多达64KB的数据块; 8237必须与一片8位锁存器一起使用,才能完成DMA传输; 每个通道都有独立的允许/禁止DMA请求的控制能力,自动重复原始状态的参数的能力; 每个通道都有单字节、数据块、请求和级联传送4种工作方式,4个通道的优先权管理有固定和循环两种方式;8237具有终止DMA传送的信号输入/输出端

21、(/EOP)。,DMA传送的工作过程 1)I/O设备向DMAC发出DMA请求; 2)DMAC向CPU发出总线请求,使HOLD置为高电平; 3)CPU检测到HOLD的高电平,在完成当前总线操作后,使HLDA置为高电平,以响应总线请求; 4)8237A接收到HLDA的高电平后,开始控制系统总线; 5)DMAC向I/O设备发出DMA应答信号 6)8237A在完成数据传输后,将HOLD置为低电平,通知CPU 8237A要放弃总线控制权; 7)CPU检测到HOLD的低电平后,将HLDA置为低电平,CPU开始控制系统总线。,6.2.2 8237A的内部结构和管脚,1.8237A的内部结构,8237A内部有

22、4个独立的DMA通道、公共的控制寄存器、状态寄存器、读写逻辑、控制逻辑。 DMA通道包括模式寄存器、基地址寄存器、当前地址寄存器、基本字节计数器、当前字节计数器、请求触发器、屏蔽触发器。,(1)控制寄存器、状态寄存器、模式寄存器皆为8位寄存器。CPU向控制寄存器写入控制字,决定8237A的工作特性;CPU读取状态寄存器的状态字,查询8237A的工作状态;CPU向模式寄存器写入控制字,决定通道的工作模式;,CPU读取状态寄存器的状态字,查询8237A的工作状态,CPU向控制寄存器写入控制字,决定8237A的工作特性,CPU向模式寄存器写入控制字,决定通道的工作模式,(2)基地址寄存器、当前地址寄

23、存器皆为16位寄存器。基地址寄存器,用于存放本通道DMA传输时的内存地址初值,CPU对8237A初始化时写入,不能被读出;当前地址寄存器,在每次DMA传输时自动修改,其初值在8237的初始化时写入,CPU可以读取其值,(计数到0时可重新装入基地址寄存器中的数值);,(4)请求触发器、屏蔽触发器分别用于设置本通道的DMA请求标志和屏蔽标志,4个通道的4个触发器分别构成请求寄存器、屏蔽寄存器。,DMA屏蔽标志既可以屏蔽硬件DMA请求,也可以屏蔽软件DMA请求。为1时有效。,(5)暂存器,8位寄存器。 用于存放被传输的数据,只用在内存到内存的传输过程中。,2. 8237A的管脚及其功能,CPU访问8

24、237时作双向数据线;在DMA传送时,作8237输出的访问主存的地址线。,三态输出线。在DMA传送时,作8237输出的访问主存地址线的低字节的高4位。,双向三态地址线。CPU控制总线时,作为寻址8237内部寄存器的输入信号;在DMA传送时,作为8237输出的访主存地址线的低字节的低4位。,过程结束信号。当任何一个通道的计数值从0减为FFFFH时输出低电平,表示一个通道的DMA服务结束。若外部输入一个低电平,表示将结束8237所有启动的DMA通道的服务。,片选。CPU访问8237时,低电平表示选中8237;DMA传送期间,8237禁止/CS输入,以免选中自己。,地址选通输出。将从DB7DB0输出

25、的高8位地址锁存到外部地址锁存器.,地址允许输出。在DMA传送期间,AEN有效时禁止其他系统总线驱动器使用系统地址总线,同时允许地址锁存器中的高8位地址信号送到系统地址总线上。,存储器读,三态输出。在DMA操作期间,由8237发出,作为从选定的存储单元读出数据的控制信号。,存储器写,三态输出。在DMA操作期间,由8237发出,作为把数据写入选定的存储单元的控制信号。,双向三态。由CPU发来时,表示CPU读取8237内部寄存器;在DMA传送时,由8237发出,读取I/O设备的控制信号,双向三态。由CPU发来时,表示CPU将数据写入8237;在DMA传送时,由8237发出,作为I/O设备写入的控制

26、信号。,6.2.3 8237A的工作方式,1. 8237A的工作组态,从控模块CPU对8237A进行DMA传输的设置。它有自己的端口地址,CPU通过端口地址对其进行预置读/写操作,对它进行初始化或读取状态,包括写入内存传输区的首地址、传输字节数和控制字等,此时它也是系统总线的从控模块。,主控模块8237A在获得总线控制权之后,进入DMA周期,控制整个系统总线完成DMA传输。, 单字节传输方式8237A完成1B传输后,当前字节计数器减1,当前地址寄存器修改,随后8237A释放总线控制权,开始对DREQ检测,准备下一次DMA传输。,2. DMA传输方式, 请求传输方式与块传输相似。8237A每进行

27、1B的数据传输后,都要检测DREQ,若DREQ有效,则继续传输,否DREQ无效暂停传输,直到有效为止。, 级联传输方式由多片8237A构成主从式DMA控制系统,最多可扩展16个通道。 主从连线:主片的DREQ接从片的HRQ,主片的DACK接从片的HLDA,主片的HRQ、HLDA和系统总线相连。 模式设置:主片为级联传输方式。,3. DMA传输类型 DMA读:把数据由存储器传送到外设,由/MEMR有效从存储器读出数据,由/IOW有效把这一数据写入外设。 DMA写:把外设输入的数据写入存储器。由/IOR有效从外设输入数据,由/MEMW有效把这一数据写入存储器。 检验:是一种伪DMA传送,其目的是对

28、内部读/写功能进行校验。此方式产生地址信号,但存储器和I/O控制线保持无效,即禁止了存储器和I/O接口的读/写控制信号,不传送数据。,1.模式寄存器用于设置工作方式、决定地址增减、是否使用自动预置功能、指明传输类型、选择通道。,2.控制寄存器决定DACK和DREQ的有效状态、是否扩展写信号、通道的优先级方式、时序类型、启/停8237A工作、数据传输目标。,3.状态寄存器各位分别表示各通道是否有DMA请求及计数结束状态。,6.2.4 8237的寄存器及其编程应用,工作方式,00:请求传输模式 01:单字节传输 10:块传输模式 11:级联传输模式,=1:地址减1 =0:地址加1,=1:允许自动预

29、置功能 =0:禁止自动预置功能,设置数据传输类型,00:校验传输 01:写传输 10:读传输 11:未定义,选择通道号,00-11:分别表示通道0-3,模式寄存器,控制寄存器,=1:高电平有效 =0:低电平有效,=1:低电平有效 =0:高电平有效,=1:扩展写信号 =0:滞后写信号,=1:循环优先级 =0:固定优先级,=1:压缩时序 =0:普通时序,=1:停止8237工作 =0:启动8237工作,=1:源地址保持不变(内存到内存传输时设置),=1:进行内存到内存的传输,状态寄存器,分别表示通道3至0是否有DMA请求Di=1:通道i有请求Di=0:通道i无请求,分别表示通道3至0的计数状态是否结

30、束.Di=1:通道i计数结束Di=0:通道i为计数非结束状态,DMA请求寄存器,不用,设置屏蔽标志 D2=1:对相应通道设置DMA屏蔽; =0:清除DMA屏蔽,选择通道号 00-11分别表示通道0-3,设置请求标志 D2=1:使相应通道的DMA请求触发器置1,产生DMA请求; =0:无DMA请求,DMA屏蔽寄存器(单屏蔽位命令),不用,选择通道号 00-11分别表示通道0-3,DMA全屏蔽位命令,不用,设置对应通道的屏蔽与否。 =1:设置通道 i屏蔽; =0:清除通道i屏蔽。,5.复位命令综合清除命令功能和RESET信号相同。使控制寄存器、状态寄存器、DMA请求寄存器、暂存器及先/后触发器都清

31、0,使屏蔽寄存器置位。,6.清除先/后触发器命令用于控制16位寄存器的初值正确写入。8237只有8位数据线。CPU往地址寄存器和字节计数寄存器写入16位数据时,先写入低8位,先/后触发器自动置1;再写入高8位,先/后触发器自动复位为0。,7.暂存寄存器用于存储器到存储器传送时,暂时保存从源地址读出的8位数据。RESET信号可以清除暂存器内容。,3. 8237A各寄存器对应的端口地址,8237A共占有16个端口地址,由CS、A3A0决定。 地址的高12位译码生成CS片选信号; 地址的低4位A3A0译码生成端口选通信号;,举例:利用8237A通道0实现DMA数据块传送。某个外设将640H个字节数据

32、传送到内存起始地址为1200H的内存区域中,端口地址为80H8FH。写出初始化程序段。,OUT 8DH,AL ;复位 MOV AL,84H OUT 8BH,AL ;(模式)通道0,写传送,禁止自动预置,地址递增,数据块传送 MOV AL,00H ; (控制) OUT 88H,AL ;正常时序,固定优先,DREQ高电平有效,DACK低电平有效 MOV AX,1200H OUT 80H,AL MOV AL,AH OUT 80H,AL ;先低8位后高8位写入内存地址初值 MOV AX,640H OUT 81H,AL MOV AL,AH OUT 81H,AL ;先低字节后高字节写入字节数初值 MOV AL,0 OUT 8FH,AL ;清除通道屏蔽位,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 企业管理 > 管理学资料

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报