版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
微机原理及应用所有复杂操作,我们做;图书附赠,永久免费,只为老师用书更方便课件教案微课扫码题库建课互评考试平台
学习工具目录微型计算机基础01微处理器02指令系统(上)03指令系统(下)04汇编语言程序设计05存储器06输入输出与中断07可编程接口芯片08数模转换与模数转换09综合实践——交通灯控制系统10第七章输入输出与中断本章导读在微型计算机系统的工作过程中,大量数据要在CPU、存储器和输入输出设备(外设)接口之间进行传送。为保证数据在CPU与外设之间正确、有效地传送,不同场合下需要采用不同的数据传送方式本章将主要介绍微型计算机与外设间数据传送的基本方式,并在此基础上介绍中断控制器8259A和DMA控制器8237A这两个专用芯片的使用方法。学习目标掌握CPU与外设之间数据传送的基本方式及其工作原理。掌握中断控制器8259A的引脚、内部结构、工作过程和编程方式。掌握DMA控制器8237A的引脚、内部结构和工作方式。提升将抽象概念与实际硬件设备相结合的能力,以及分析和解决复杂问题的能力。任务导航任务一输入输出的控制方式任务三DMA控制器8237A任务二中断控制器8259A输入输出的控制方式01程序控制数据传送方式中断数据传送方式直接存储器存取方式在微型计算机系统中,输入输出的控制方式(CPU与外设之间的数据传送方式)主要有3种:7.1.1程序控制数据传送方式定义:指CPU在进行数据传送之前,无须查询外设端口的状态,直接通过输入输出指令(IN或OUT)与外设进行数据传送。在无条件数据传送方式下,外设必须总是处于准备好的状态,即随时准备接收CPU送来的数据,或者随时准备向CPU提供数据。1.无条件数据传送无条件数据传送是最简单的数据传送方式,作用:与慢速、简单外设间的数据传送。假设你正在玩一款游戏,游戏里有一个任务,要求你把一些道具从一个地方搬到另一个地方。但是,你发现每次你去拿道具或者放道具的时候,都需要先检查一下道具箱是不是开着,或者对方是不是准备好接收道具了。你觉得这样的过程麻烦吗?如果有一种方式,道具箱永远都是开着的,而且对方也永远都准备好接收道具,你会觉得这种方式怎么样?你觉得这种方式在现实中可能实现吗?为什么?7.1.1程序控制数据传送方式1.无条件数据传送无条件数据传送的工作原理工作原理:当数据由输入设备向CPU传送时,指定的端口地址经地址总线送至端口译码器,和为低电平,和译码器输出值相与后,输入缓冲器被选通,要输入的数据经过数据总线D7~D0到达CPU。7.1.1程序控制数据传送方式1.无条件数据传送无条件数据传送的工作原理工作原理:当数据由CPU向输出设备传送时,指定的端口地址经地址总线送至端口译码器,和为低电平,和译码器输出值相与后,输出锁存器被选通,CPU将要输出的数据通过数据总线D7~D0送入输出锁存器,再输出至输出设备。无条件数据传送所需要的软件和硬件少,且接口电路和程序简单,适用于CPU与外设的各种动作时间固定且已知的情况。7.1.1程序控制数据传送方式定义:指CPU在进行数据传送之前,必须先查询一下外设的状态,确认外设是否准备好。2.查询式数据传送工作原理:当CPU要求传送数据时,CPU向外设发出命令,并读入外设的状态信息,确认外设准备好后再执行输入输出指令。查询式数据传送方式的程序流程图外设没有准备好,则继续查询直到外设准备好后,才进行数据传送外设没有准备好或外设处于忙状态,则继续读入状态信息Ready=0数据已经准备就绪,CPU开始执行输入输出指令Ready=17.1.1程序控制数据传送方式当输入设备准备好要输入的数据时,首先将数据送入锁存器中,并同时对D
触发器触发,使READY为1,通过数据缓冲器后接到CPU的数据总线上。2.查询式数据传送查询式数据传送方式的输入接口电路7.1.1程序控制数据传送方式2.查询式数据传送当输出设备将数据输出后,会发出一个信号,使BUSY为0,表示可以执行输出指令。查询式数据传送方式的输出接口电路在查询式数据传送方式下,CPU在传送数据过程中,要不断查询外设,并花费很多时间来等待外设准备就绪,大大降低了CPU的工作效率。7.1.1程序控制数据传送方式2.查询式数据传送例7-1假设接口的数据输入端口地址为40H,数据输出端口地址为42H,状态端口地址为44H。(1)假设状态寄存器中第1位为输入状态标志为1时表示输入缓冲器中已经有1个字节准备好,可以进行输入为0时表示输入缓冲器处于忙状态(2)假设状态寄存器中第0位为输出状态标志,为0时表示输出缓冲器为空,CPU可以向外设输出数据。编写程序,要求:实现从输入设备输入一串数据到内存缓冲区,再将内存缓冲区中的数据送到输出端口输出,串长度为100。7.1.1程序控制数据传送方式2.查询式数据传送例7-1具体程序如下。ESEGSEGMENTBUFFERDB100DUP(?) ;定义内存缓冲区ESEGENDSCSEGSEGMENTASSUMEES:ESEG,CS:CSEGSTART:MOVAX,ESEGMOVDS,AXMOVES,AXMOVDI,OFFSETBUFFER7.1.1程序控制数据传送方式2.查询式数据传送例7-1MOVCX,100 ;设置循环次数
CLDDATA_IN:INAL,44H ;读入状态信息
TESTAL,02H ;检测标志位寄存器第1位是否为1JZDATA_IN ;标志位为0,则数据未准备好,继续读入状态信息
INAL,40H ;数据准备好,可以从数据输入端口读入数据
ANDAL,7FH ;将数据存入缓冲区,数据位宽为7位
STOSBLOOPDATA_INMOVCX,1007.1.1程序控制数据传送方式2.查询式数据传送例7-1DATA_OUT:INAL,44H ;读入状态信息
TESTAL,01H ;检测标志位寄存器第0位是否为1JNZDATA_OUT ;标志位为1,则设备忙,继续读入状态信息
LODSB ;设备空闲,从数据输出端口输出数据
OUT42H,ALLOOPDATA_OUT…CSEGENDSENDSTART7.1.2中断数据传送方式中断数据传送流程图定义:指在CPU执行程序的过程中,当外设要求与CPU进行数据传送时,通过I/O端口向CPU发出中断请求,使得CPU暂停当前正在执行的程序,及时响应接口的中断请求,转去执行中断服务程序。待输入输出操作执行完毕后,CPU再返回继续执行原来被中断的程序。7.1.2中断数据传送方式在中断数据传送方式下,CPU在没有收到外设请求时,可以去处理其他事情,避免了CPU把时间耗费在等待、查询上,CPU与外设实现了并行工作,这样就大大提高了CPU的效率。中断数据传送方式假设你正在设计一个嵌入式系统,需要在CPU和一个外部设备之间进行数据传送。如果使用中断数据传送方式,你认为需要考虑哪些关键因素?请从硬件设计和软件编程两个角度分别讨论,并举例说明。每次执行中断时,都需要花费时间保护现场。在这种方式下,CPU可以同时管理多个外设,使CPU进行多任务处理。7.1.2中断数据传送方式定义:CPU在执行程序的过程中,由于某种事件的发生,使得CPU暂时中断正在运行的程序,转去执行中断服务程序(或中断处理程序),事件处理完再继续执行被中断的程序。1.中断相关概念中断执行过程7.1.2中断数据传送方式中断源:引起中断的事件1.中断相关概念中断内部中断外部中断按照中断源的不同内部中断或软件中断:由CPU运行程序错误或执行内部程序调用产生的中断。例如算术运算发生溢出、执行软件中断指令等情况都属于内部中断。外部中断或硬件中断:由外部设备通过硬件请求的方式产生的中断。例如外设请求输入输出数据、硬件时钟定时到、设备出现故障等情况都属于外部中断。7.1.2中断数据传送方式此时,CPU可以响应,也可以不响应,能否响应此中断请求信号取决于中断允许标志位IF的状态。1.中断相关概念外部中断非屏蔽中断可屏蔽中断由CPU的
NMI引脚输入由CPU的
INTR引脚输入NMI为边沿触发,信号一旦产生,CPU将立即响应非屏蔽中断请求当INTR为高电平时,产生可屏蔽中断请求信号IF的值可以通过指令STI和CLI进行设置IF为1时,CPU能响应可屏蔽中断请求,称为开中断否则,CPU不能响应此中断请求,称为关中断7.1.2中断数据传送方式中断类型号(或中断向量号):8086CPU最多可以处理256个中断源,对这些中断源引起的中断统一编号为0~255。中断向量:每一个中断服务程序在内存中都有一个确定的入口地址。中断向量表:所有的中断向量按中断类型号从小到大的顺序排列组成一个列表。1.中断相关概念在8086系统中,中断向量表存放在内存中以最低地址开始的1KB地址范围内。7.1.2中断数据传送方式2.中断处理过程中断请求中断判优中断响应中断处理中断返回一个完整的中断处理过程7.1.2中断数据传送方式2.中断处理过程当外设要求与CPU进行数据传送时,首先要向CPU发出一个中断请求信号。发出中断请求的外设就是中断源,8086CPU的INTR和NMI引脚负责接收外部中断请求信号。每个中断源都设置了一个中断请求触发器:当有中断请求时,该触发器被置位直到CPU对其进行响应后,该触发器被清除(1)中断请求定义:当若干个中断源同时发出中断请求信号,CPU每次只能处理一个中断请求,系统会自动按照中断优先级对各中断源进行排队,优先响应优先级最高的中断请求,处理完后再响应优先级较低的中断请求。(2)中断判优7.1.2中断数据传送方式2.中断处理过程在8086系统中,对中断优先级的管理是通过中断控制器完成的。一般情况下,系统的内部中断优先于外部中断,非屏蔽中断优先于可屏蔽中断。(2)中断判优评判中断优先级的方法软件判优硬件判优顺序查询多个中断请求标志位的状态,查询的顺序决定了优先级别的高低,即先查询的中断请求优先级别最高采用硬件电路来实现的,可节省CPU时间,但成本较高7.1.2中断数据传送方式2.中断处理过程CPU在当前指令执行的最后一个时钟周期采样中断请求信号,执行完当前指令后,判断是否允许CPU进行响应。若允许响应,CPU就中断当前正在运行的程序,转向相应的中断处理程序。(3)中断响应CPU必须做出响应,并自动获得中断服务程序的入口地址,转去执行相应子程序如果是内部中断或非屏蔽中断CPU向中断源发出一个中断应答信号,进入中断响应周期如果是可屏蔽中断且IF=1为保证中断结束后CPU能返回被中断的程序继续执行,硬件会自动进行断点保护,即将标志寄存器、CS(被中断程序下一条指令的段地址)和IP(偏移地址)的内容压入堆栈,将标志寄存器IF和TF复位(关中断)。7.1.2中断数据传送方式2.中断处理过程可屏蔽中断的中断类型号由外部中断控制逻辑提供,非可屏蔽中断的中断类型号是2,内部中断的中断类型号由指令给出。(3)中断响应不同的中断源对应着不同的中断服务程序,CPU可以根据中断类型号自动计算出中断向量的偏移地址(中断类型号×4),以便从中断向量表中取出相应的中断向量,转去执行相应的中断服务程序。每个中断向量占据4个连续的内存单元前两个单元存放中断服务程序的偏移地址后两个单元存放中断服务程序的段地址确定中断服务程序在内存中的入口地址7.1.2中断数据传送方式2.中断处理过程在中断处理完毕后,要恢复现场,即将前面保护起来的寄存器的内容从堆栈中弹出。最后执行中断返回指令IRET,将原来程序中被保护的断点地址和标志寄存器的内容,从堆栈中弹出至CS、IP和标志寄存器中。这样,CPU又回到被中断程序继续执行。(4)中断处理(5)中断返回CPU对中断请求做出响应后,开始执行中断服务程序。为使中断服务程序不破坏主程序中寄存器的内容:应进行现场保护,即将中断服务程序中要使用到的寄存器的内容压入堆栈再调用中断服务程序7.1.3直接存储器存取(DMA)方式程序控制数据传送方式和中断数据传送方式都是通过CPU执行程序来实现数据传送的,中间过程中取指令、执行指令、断点保护、断点恢复等都要花费CPU的时间。7.1.3直接存储器存取(DMA)方式DMA方式的工作原理直接存储器存取(DMA)方式DMA方式如何提高数据传输效率?与CPU直接传输相比,它有哪些优势?DMA(directmemoryaccess,直接存储器存取)方式是指在内存和外设之间传送数据时,不需要CPU干预,而是通过DMA控制器对系统总线进行控制,实现数据在内存与外设之间的传送,从而大大提高了数据传送速度。DMA方式常用于传送速度快、数据量大的系统中。7.1.3直接存储器存取(DMA)方式DMA方式的工作流程:①外设向DMA控制器发出DMA传送请求信号DRQ②DMA控制器接收到请求信号后,向CPU发出总线请求信号HOLD③CPU在完成当前总线周期后,向DMA控制器发出总线响应信号HLDA,将总线使用权交给DMA控制器④DMA控制器向外设发出DMA响应信号DACKDMA方式的工作原理7.1.3直接存储器存取(DMA)方式DMA方式的工作流程:⑤DMA控制器开始控制总线向地址总线发送将要传送数据的存储器地址信号,并向系统发出读写控制信号在数据传送过程中,它会修改地址寄存器中的内容,记录传送字节数,为下一字节的传送做准备⑥下一字节传送时,重复上一步操作,直到传送字节数为0,数据传送完毕,DMA控制器撤销HOLD信号和HLDA信号,CPU重新获得总线使用权,继续执行指令DMA方式的工作原理拓展阅读中断机制体现了什么的思想,让CPU能够快速响应外设的紧急需求?课堂检测无条件数据传送和查询式数据传送的主要区别是什么?在中断处理流程中,CPU响应可屏蔽中断(INTR)时会自动执行哪些操作?课堂小结输入输出的控制方式程序控制数据传送方式中断数据传送方式直接存储器存取(DMA)方式中断控制器8259A02当前最常用于中断优先级管理的是中断控制器。8259A是一种功能强大、使用方便灵活的可编程中断控制器(programmableinterruptcontroller),常用于中断优先级的控制。它具有强大的中断管理功能,主要体现在以下几个方面:可实现对8个中断源的优先级控制通过级联可扩展至对64个中断源实现优先级控制每一级中断都可以被屏蔽或被允许可根据中断源向系统提供不同的中断类型号可通过编程设置不同的工作方式7.2.18259A的引脚及功能8259A的引脚及功能8259A的哪些引脚决定了中断优先级?它们是如何实现中断控制的?片选信号,低电平有效。该信号为低电平时,表示该芯片被选中,允许CPU对该芯片进行访问。写信号,低电平有效。该信号为低电平时,允许CPU将数据写入芯片。7.2.18259A的引脚及功能读信号,低电平有效。该信号有效时,允许数据从芯片读至CPU。级联控制信号,用来构成主从式级联控制结构,用作主片时为输出,用作从片时为输入。双向数据线,与CPU的数据总线相连,是与CPU之间传送数据的通道。7.2.18259A的引脚及功能中断请求输出信号,用于向CPU发出中断请求,高电平有效。此引脚直接与CPU的INTR引脚连接。低电平有效。是输出信号,用于控制缓冲器接收和发送信息当芯片工作在缓冲方式时
是输入信号,用于设置为主片或从片,接高电平为主片,接低电平为从片当芯片工作在非缓冲方式时7.2.18259A的引脚及功能中断响应信号,用于接收CPU发来的中断响应信号,低电平有效。此引脚直接与CPU的引脚连接。中断请求输入端,用于接收从外设发来的中断请求信号,高电平或上升沿有效。内部寄存器选择信号,用于对芯片内部的两组可编程寄存器进行选择。7.2.28259A的内部结构8259A内部结构图(interruptrequestregister,IRR):8位寄存器,用来保存从外设发来的中断请求信号IR0~IR7(priorityresolver,PR):用来识别各中断请求信号的优先级别。当多个中断请求信号同时出现时,由PR判断哪一个信号的优先级别最高,CPU将首先响应优先级别最高的中断请求如果某一个中断请求信号为高电平,则IRR的相应位置为1如果新出现的中断请求比当前正在处理的中断具有更高的优先级,则进入多重中断处理。7.2.28259A的内部结构8259A内部结构图(interruptserviceregister,ISR):8位寄存器,用来记录正在处理中的中断请求。当某个中断请求尚未服务完而中途被更高优先级的中断请求中断时,会有多个ISR位为1,形成多重中断。在收到第一个中断响应信号时,根据优先级分析器的判断结果,将具有最高优先级的中断请求信号的ISR的相应位置为1,表示该请求正在被服务。当它被服务完毕,将ISR的相应位清0。7.2.28259A的内部结构8259A内部结构图(interruptmaskregister,IMR):8位寄存器,用来保存中断请求的屏蔽信号。每个中断请求都设置了一个屏蔽位,它们之间是相互独立的。如果IMR的某位被置为1,则与之对应的中断请求被屏蔽,该请求不能进入下一级的优先级分析器,但不会影响其他没有被屏蔽的中断请求。8位双向三态缓冲器,与CPU数据总线相连,用来接收CPU发来的控制命令字,或者向CPU发送中断向量号和状态信息。7.2.28259A的内部结构8259A内部结构图用来向CPU发送中断请求信号INT和接收CPU发送来的中断响应信号。用来实现多片8259A的级联。级联时,一片8259A作为主控制器,IR7~IR0
的每一个中断输入端都可以连接一片8259A作为从控制器,所以系统总共可以连接9片8259A,最多能处理64个中断请求输入信号。4个初始化控制寄存器ICW1~ICW4包括3个操作控制寄存器OCW1~OCW3用来接收来自CPU的读/写命令,其操作过程由、、和A0共同控制完成。7.2.38259A的中断响应过程8259A的中断响应过程如下:①当某中断请求IRi有效时,中断请求寄存器IRR的相应位置1。②如果此时没有正在处理的中断请求,这次中断请求使得8259A的INT端输出高电平,向CPU发出中断请求否则,由PR对新的中断请求和正在处理的中断进行比较,从而决定哪一个优先级更高。若中断屏蔽寄存器IMR中的相应位为0,则该中断请求信号送入优先级分析器PR否则被屏蔽掉7.2.38259A的中断响应过程③CPU进入中断响应周期,发出两个中断响应信号。8259A接收到第一个后,使IRR的锁存功能失效,将中断服务寄存器ISR中相应位置1,将IRR中的对应位清0。④8259A接收到第二个后,将相应的中断类型号送到数据总线上,恢复IRR的锁存功能。⑤中断响应周期结束后,发出中断结束命令,使相应的ISR复位。7.2.48259A的初始化编程8259A内部有两组可编程寄存器3个操作控制寄存器,用于存放CPU写入的操作命令字OCW1~OCW34个初始化控制寄存器,用于存放CPU写入的初始化命令字ICW1~ICW40102系统在正式工作前,需要先由初始化程序写入初始命令字ICW1~ICW4,然后再对它的工作方式进行设置。假设你有一个智能机器人,它需要完成不同的任务,比如打扫房间、做饭或者照顾宠物。为了让机器人知道它需要做什么,你会怎么做呢?是直接给它一个任务指令,还是先告诉它一些基本的规则(比如它的工作范围、工作方式和优先级)?如果你需要先设置一些基本规则,那么这些规则和具体任务指令有什么区别呢?7.2.48259A的初始化编程1.初始化命令字由于8259A仅使用两个端口地址,其中,ICW1使用A0=0的端口,ICW2~ICW4使用A0=1的端口。8259A的初始化流程图在进行初始化编程时,先写入ICW1,其他初始化命令字必须按照一定的顺序写入,写入流程。初始化命令字一旦写入,在系统工作过程中就不再改变。7.2.48259A的初始化编程1.初始化命令字(1)ICW1在8086/8088系统中,此3位无意义,通常设置为0。ICW1的特征标志位,总是设置为1。设置中断请求输入端IRi的触发方式。中断请求为电平触发方式如果LTIM=1中断请求为边沿触发方式如果LTIM=0用于启动8259A的初始化过程7.2.48259A的初始化编程1.初始化命令字(1)ICW1电平触发方式中断请求输入端IRi出现高电平时信号有效,表示发出了中断请求上升沿触发方式中断请求输入端IRi由低电平跳变到高电平时信号有效,表示发出了中断请求同学们,如果一个信号一直保持高电平和从低变高,哪种更能明确表示“请求”呢?7.2.48259A的初始化编程1.初始化命令字(1)ICW1在8080/8085系统中,用于设置调用地址间隔。指示8259A在系统中使用的是单片还是多片级联。指示是否需要初始化ICW4。调用地址间隔为4如果ADI=1调用地址间隔为8如果ADI=0在8086/8088系统中,该位无效。系统中为单片8259ASNGL=1系统中为多片8259A级联SNGL=0需要初始化ICW4IC4=1不需要初始化ICW4IC4=07.2.48259A的初始化编程1.初始化命令字(2)ICW2中断类型号的高5位。中断类型号的低3位,自动填入根据中断源IRi
下标生成的3位二进制编码。用于设置中断类型号8259A为8个中断源分配了8位的中断类型号,其中,中断类型号的高5位是相同的。7.2.48259A的初始化编程1.初始化命令字(3)ICW3ICW3
用于多片8259A的级联,只有在ICW1中的SNGL=0时才进行设置。在级联系统中,主片和从片都必须设置ICW3。主片ICW3的格式分别与IR7~IR0对应。对应的IRi端连有从片8259A如果Di=1对应的IRi端不接从片如果Di=07.2.48259A的初始化编程1.初始化命令字(3)ICW3从片ICW3的格式未用,通常设置为0。指示从片接到主片的哪个IR,对应着IRi的下标号的3位二进制编码。7.2.48259A的初始化编程1.初始化命令字(4)ICW4ICW4的格式未用,通常设置为0。设置嵌套方式。用于设定8259A的工作方式设置为特殊全嵌套方式SFNM=1设置为一般全嵌套方式SFNM=07.2.48259A的初始化编程1.初始化命令字(4)ICW4特殊全嵌套方式在执行中断处理程序时,允许同级或更高优先级的中断源中断当前的中断处理程序。一般全嵌套方式在执行中断处理程序时,只允许更高优先级的中断源中断当前的中断处理程序。如果同时有两个紧急任务,一个是正在进行的,另一个优先级更高,你会如何安排呢?一般适用于8259A级联系统的主片7.2.48259A的初始化编程1.初始化命令字(4)ICW4ICW4的格式设置缓冲方式。设置在缓冲方式下本片是主片还是从片,只在BUF=1时有效。BUF=1为缓冲方式BUF=0为非缓冲方式M/S=1时,本片为主片M/S=0时,本片为从片缓冲方式适用于多片8259A级联的大系统。在缓冲方式下,每片8259A通过总线驱动缓冲器与数据总线相连。主片的端输出低电平信号,作为缓冲器的允许信号从片的端接地7.2.48259A的初始化编程1.初始化命令字(4)ICW4ICW4的格式设置中断结束方式如果AEOI=1,则设置为自动中断结束方式如果AEOI=0,则设置为非自动中断结束方式设置CPU模式µPM=1为8086/8088模式µPM=0为8080/8085模式7.2.48259A的初始化编程1.初始化命令字(4)ICW48259A提供了以下3种中断结束方式:自动中断结束方式某一中断请求被处理后,自动使ISR中的对应位清0。一般中断结束方式通过在中断服务子程序中编程写入操作命令字OCW2,向8259A传送一个一般中断结束命令,使ISR中当前优先级最高位复位。特殊中断结束方式通过在中断服务子程序中编程写入操作命令字OCW2,向8259A传送一个一般中断结束命令,使ISR的指定位复位。非自动中断结束方式7.2.48259A的初始化编程2.操作命令字在对8259A进行初始化后,可通过写入操作命令字来设置对8259A的操作。操作命令字没有严格的写入顺序。OCW1必须写入A0=1的端口OCW2和OCW3写入A0=0的端口(1)OCW1OCW1的各位与中断屏蔽寄存器IMR的各位相对应,用于设置对8259A的中断屏蔽操作。OCW1的格式如果Mi=1,则对应的中断源IRi被屏蔽,即不允许中断如果Mi=0,则允许该IRi中断分别与IR7~IR0对应7.2.48259A的初始化编程2.操作命令字(2)OCW2用于设置中断优先级方式和中断结束方式OCW2的格式循环优先级方式是指中断源轮流处于最高优先级,即某个中断请求被处理后,其优先级降为最低,原来比它低一级的中断请求的优先级上升为最高。固定优先级方式是指所有中断请求的中断优先级固定不变。设置中断优先级方式如果R=1,则设置为循环优先级方式如果R=0,则设置为固定优先级方式7.2.48259A的初始化编程2.操作命令字(2)OCW2OCW2的格式控制L2~L0是否有效设置中断结束方式,只有在ICW4中的AEOI=0时使用如果SL=1,则L2~L0定义有效如果SL=0,则L2~L0定义无效如果EOI=1,则在中断服务子程序结束时向8259A发出中断结束命令EOI,将当前中断服务寄存器中最高优先权位复位如果EOI=0,则不发出中断结束命令EOI7.2.48259A的初始化编程2.操作命令字(2)OCW2D7(R)~D5(EOI)组合的命令编码RSLEOI功
能工作方式001一般EOI方式,全嵌套方式中断结束011特殊EOI方式,全嵌套方式101一般EOI方式,优先级自动循环自动循环100在自动EOI方式下,设置循环优先级000在自动EOI方式下,清除循环优先级,变为固定优先级111特殊EOI方式,优先级自动循环,使L2~L0指定的ISR复位并设为最低优先级特殊循环110设置优先级,使L2~L0指定的ISR优先级最低010无意义7.2.48259A的初始化编程2.操作命令字(2)OCW2OCW2的格式OCW2的标志位,这两位总是设置为0中断源编码,在特殊循环优先级方式下指明IRi的最低优先级7.2.48259A的初始化编程2.操作命令字(3)OCW3OCW3的格式用于设置查询方式和特殊屏蔽方式,以及读取寄存器的状态特殊屏蔽方式是指在执行较高级的中断时,允许未被屏蔽的较低优先级的中断源中断当前的中断处理程序。未定义,通常设置为0设置特殊屏蔽方式当ESMM=1,SMM=1时,允许特殊屏蔽方式当ESMM=1,SMM=0时,不允许特殊屏蔽方式当ESMM=0时,无效当RR=1,RIS=0时,读取IRR命令当RR=1,RIS=1时,读取ISR命令当RR=0时,无效OCW3的格式7.2.48259A的初始化编程2.操作命令字(3)OCW3在查询中断方式下,8259A不发出INT信号,当CPU查询到中断请求后才执行相应的中断过程。OCW3的标志位,总是设置为0和1设置查询方式如果P=1,则设置为查询方式如果P=0,则设置为非查询方式设置读IRR或ISR命令7.2.48259A的初始化编程2.操作命令字(3)OCW3例7-2某微型计算机系统使用单片8259A管理中断,接口地址为20H和21H,中断为上升沿触发,与IR0~IR3对应的中断类型号为08H~0BH,IR4~IR7不使用。根据要求编写8259A的初始化程序。MOVDX,20HMOVAL,12H ;上升沿触发,单片不写ICW4,ICW1=00010010=12HOUTDX,AL ;A0=0,写ICW1MOVDX,21HMOVAL,08H ;设置中断类型号08HOUTDX,AL ;A0=1,写ICW2MOVAL,0F0H ;屏蔽IR4~IR7,OCW1=11110000=0F0HOUTDX,AL ;写OCW17.2.58259A的连接8259A的电路连接图7.2.58259A的连接8259A的级联连接图在一个系统中,最多可以有9个8259A与CPU相连,其中有一个为主片,其余的为从片。主片上的CAS0、CAS1、CAS2作为输出线,分别与每一个从片的CAS0、CAS1、CAS2相连主片的INT端连至CPU的中断请求输入端,每一个从片的INT端连至主片的一个中断请求输入端7.2.58259A的连接8259A的访问控制A0D4D3操
作0
010读出ISR、IRR的内容1
010读出IMR的内容000100写入OCW2001100写入OCW301
100写入ICW11
100写入ICW2、ICW3、ICW4、OCW1通过有效信号选中8259A,再利用、、A0和命令字中的D3、D4标志位,可对其内部寄存器进行访问控制。7.2.6实战演练——8259A的应用设系统分配给8259A的端口地址是20H和21H,中断类型号为40H,中断请求信号以跳变方式由IR2引入。当CPU响应IR2请求时,输出字符串“A8259AINTERRUPT!”。中断10次后程序退出。DSEGSEGMENTMESSDB'A8259AINTERRUPT!',0AH,0DH,'$'COUNTDB10 ;计数值为10DSEGENDSSSEGSEGMENTSTACKSTADB100HDUP(?)TOPEQULENGTHSTASSEGENDSCSEGSEGMENTASSUMECS:CSEG,DS:DSEG,SS:SSEG7.2.6实战演练——8259A的应用START:CLIMOVAX,DSEGMOVDS,AXMOVAX,SSEGMOVSS,AXMOVSP,TOP;8259A初始化MOVAL,13H ;13H=00010011BOUT20H,AL ;写ICW1,单片,边沿触发MOVAL,40HOUT21H,AL ;写ICW2,中断类型基值为40HMOVAL,01HOUT21H,AL ;写ICW4,非自动结束7.2.6实战演练——8259A的应用MOVAX,SEGINTP ;设置中断向量MOVDS,AX ;中断服务子程序入口段基址送DSMOVDX,OFFSETINTP ;中断服务子程序入口偏移地址送DXMOVAL,42H ;将IR2的中断类型号42H送入ALMOVAH,25H ;25H功能调用,置中断向量INT21HINAL,21H ;读IMRANDAL,0FBH ;允许IR2请求中断,0FBH=11111011BOUT21H,AL ;写中断屏蔽字OCW1WAIT1:STI ;开中断CMPCOUNT,0 ;判断10次中断是否结束JNZWAIT1 ;未结束,等待MOVAH,4CH ;结束,返回DOS7.2.6实战演练——8259A的应用INT21HINTPPROC ;中断服务子程序PUSHDS ;现场保护PUSHAXPUSHDXSTI ;开中断MOVDS,AXMOVDX,OFFSETMESSMOVAH,09HINT21HDECCOUNT ;控制10次循环JNZNEXTINAL,21H ;读IMR7.2.6实战演练——8259A的应用ORAL,04H ;屏蔽IR2请求OUT21H,ALNEXT:CLI ;关中断MOVAL,20H ;20H=00100000BOUT20H,AL ;写OCW2,送中断结束命令EOIPOPDX ;恢复现场POPAXPOPDSIRET ;中断返回INTPENDPCSEGENDSENDSTART课堂检测8259A的引脚共有多少条?在初始化8259A时,ICW2的主要功能是什么?课堂小结中断控制器8259A8259A的引脚及功能8259A的内部结构8259A的中断响应过程8259A的初始化编程8259A的连接实战演练——8259A的应用DMA控制器8237A038237A是具有40条引脚的双列直插式芯片7.3.18237A的引脚及功能DMA控制器8237A是一种高性能的可编程芯片,其内部有4个独立的DMA通道,每个通道都有64KB的寻址能力,具有不同的优先级,都可以分别被允许和被禁止。多片8237A可以用级联的方法扩展DMA通道数。双向三态I/O读控制信号信号为输入控制信号,CPU利用它读取8237A内部寄存器的状态在DMA空闲时信号为输出控制信号,控制数据由外设输入至存储器在DMA传送数据时7.3.18237A的引脚及功能双向三态I/O写控制信号信号为输入控制信号,CPU利用它实现对8237A的写入在DMA空闲时信号为输出控制信号,控制数据由存储器输出至外设在DMA传送数据时三态输出的存储器读控制信号在DMA传送数据时,与信号配合,控制存储器的读操作7.3.18237A的引脚及功能三态输出的存储器写控制信号在DMA传送数据时,与信号配合,控制存储器的写操作准备就绪信号输入端,高电平有效,与CPU上的READY信号类似信号为低电平时,将在DMA传送过程中插入时钟周期SW,直到此信号为高电平才进入下一个时钟周期复位信号输入端,高电平有效信号有效时,将清除命令、状态寄存器,并使屏蔽寄存器复位。复位后,8237A处于空闲周期7.3.18237A的引脚及功能时钟输入信号,用来控制8237A的内部操作和DMA的数据传输速率地址允许信号,输出信号,高电平有效在DMA传送数据时,将DMA传送的地址送到系统的地址总线上,并屏蔽其他系统总线驱动器地址选通信号,输出信号,高电平有效在DMA传送数据时,此信号用来锁存DB0~DB7上输出的高8位地址7.3.18237A的引脚及功能片选信号,输入信号,用于对8237A的寻址,低电平有效DMA请求信号,对应4个DMA通道的输入信号过程结束信号,双向,低电平有效该信号有效时,当前的DMA传送终止,使请求复位,并根据编程做出相应的操作当引脚不用时,应与数千欧姆的电阻相连后接到高电平上,防止输入干扰而引起误操作在固定优先级情况下,DREQ0优先级最高,DREQ3优先级最低。DREQ信号在产生有效的响应信号DACK之前必须保持有效。当某个通道要求DMA传送时,就使相应的DREQ信号变为有效。DREQ信号的优先级可编程指定。7.3.18237A的引脚及功能DMA响应信号,对应4个DMA通道的输出信号8237A接收到DMA请求信号,通过DACK信号通知外设该请求已被批准总线请求信号,用于向CPU输出控制总线的DMA请求信号,高电平有效总线响应信号,是CPU对HRQ信号做出响应时产生的信号,高电平有效8237A接收到该信号表示芯片获得系统总线的控制权,开始DMA传送7.3.18237A的引脚及功能在CPU控制总线时这些引脚可用于读取8237A内部寄存器的数据,也可以对此芯片编程在DMA传送数据时这些引脚用于输出高8位地址,并利用ADSTB信号锁存该地址信号在进行存储器到存储器传送时存储器中要传送的数据通过这些引脚先送入8237A内部暂存器中,然后才送至要写入的存储器中双向三态数据总线,与系统的数据总线相连7.3.18237A的引脚及功能双向三态地址线这些引脚作为输入线,用于选择8237A内部各寄存器在空闲周期时三态地址输出线,在DMA传送数据时,用于输出要访问的存储单元地址低8位中的高4位这些引脚用于输出要访问的存储单元的低4位地址在DMA传送数据时7.3.28237A内部功能结构8237A有4个独立的DMA通道,分别称为通道0、通道1、通道2和通道3,它们可分别进行编程控制以响应外部DMA请求,完成DMA传送。每个通道的结构是相同的,由两个地址寄存器、两个字节数寄存器、一个方式寄存器、一个请求寄存器和一个DMA屏蔽寄存器组成。4个通道有3个公用的寄存器,分别是一个控制寄存器、一个状态寄存器和一个暂存寄存器8237A内部结构框图7.3.28237A内部功能结构(1)控制寄存器8位控制寄存器,用来存放8237A的编程命令字,用于控制芯片的工作控制寄存器7.3.28237A内部功能结构(2)状态寄存器8位状态寄存器,用来存放各通道的状态,可供CPU读取。状态寄存器低4位反映在读命令瞬间每个通道的字节数是否已减为0(即停止计数)高4位反映每个通道是否有DMA请求同学们,我们来做一个有趣的思考题:假设我们有一个数据传输系统,它有多个通道,每个通道都在不断地传输数据。现在,我们想知道每个通道在某个瞬间是否已经完成了数据传输(即字节数是否为0),同时还要知道哪些通道正在请求更多的数据传输(即有DMA请求)。如果我们要设计一个系统来监控这些状态,你会用什么方式来实现呢?是用多个独立的信号线,还是用一个更紧凑的方式来表示这些状态呢?7.3.28237A内部功能结构(3)暂存寄存器8位暂存寄存器,在存储器到存储器数据传送方式下,用于暂时存放要传送的数据。传送完成时保留传送的最后一个字节,它可由CPU读取,接收到RESET信号后使之复位。7.3.28237A内部功能结构16位基地址寄存器,用于存放相应通道地址寄存器的初始值。初始化时,其内容由CPU写入,同时此值也写入地址寄存器中。(5)地址寄存器16位地址寄存器,用于存放DMA传送期间的当前地址,每次传送完其值自动加1或减1。其内容可由CPU读出和写入。在自动初始化方式下,其内容被自动写入地址寄存器在自动初始化方式下,地址寄存器自动恢复到初始值(4)基地址寄存器7.3.28237A内部功能结构(6)基字节数寄存器16位基字节数寄存器,用于存放相应通道字节数寄存器的初始值。初始化时,其内容由CPU写入,同时此值也写入字节数寄存器中。(7)字节数寄存器16位字节数寄存器,用于存放当前字节数。每次传送完其值自动减1,当减至0时,产生结束信号,字节数寄存器恢复到初始值。其内容可由CPU读出和写入。在自动初始化方式下,其内容被自动写入字节数寄存器7.3.28237A内部功能结构(8)方式寄存器8位方式寄存器,用于指定相应通道的工作方式方式寄存器7.3.28237A内部功能结构(9)请求寄存器请求寄存器4位请求寄存器,其中每一位对应一个通道的请求位若DREQ端有请求信号,则使其相应位置1;也可以向请求寄存器中写入请求信号若端为有效低电平,则请求寄存器各位清07.3.28237A内部功能结构(10)屏蔽寄存器4位屏蔽寄存器,其中每一位对应一个通道的DMA请求屏蔽位。若某位为
1,则对应通道的请求被禁止。屏蔽寄存器屏蔽寄存器可以使用低2位来选择通道,也可以使用低4位对应设置4个通道。若某通道为非自动初始化方式,端为有效低电平,则相应的屏蔽位置1。RESET信号之后,屏蔽寄存器各位均置1。7.3.28237A内部功能结构8237A内部共占用16个I/O端口地址,由地址线A3~A0对各寄存器进行寻址。8237A内部寄存器地址A3A2A1A0寄存器0000写通道0基地址寄存器和地址寄存器读通道0地址寄存器0001写通道0基字节数寄存器和字节数寄存器读通道0字节数寄存器0010写通道1基地址寄存器和地址寄存器读通道1地址寄存器0011写通道1基字节数寄存器和字节数寄存器读通道1字节数寄存器0100写通道2基地址寄存器和地址寄存器读通道2地址寄存器7.3.28237A内部功能结构(续表)A3A2A1A0寄存器0101写通道2基字节数寄存器和字节数寄存器读通道2字节数寄存器0110写通道3基地址寄存器和地址寄存器读通道3地址寄存器0111写通道3基字节数寄存器和字节数寄存器读通道3字节数寄存器1000写控制寄存器,读状态寄存器1001写DMA请求标志寄存器1010写DMA屏蔽标志寄存器1011写方式寄存器1100清除高/低触发器1101读暂存寄存器,发复位命令1110清除屏蔽寄存器1111写屏蔽寄存器基地址寄存器和地址寄存器共用一个端口地址基字节数寄存器和字节数寄存器共用另一个端口地址7.3.38237A的工作方式单字节传送方式在这种工作方式下,8237A每次只传送一个字节。每个字节传送完后,DREQ变为无效,HRQ变为无效,8237A释放系统总线,CPU获得总线控制权。当产生下一个DREQ信号时,重新申请系统总线。块传送方式在这种工作方式下,8237A获得总线控制权后,可以进行连续的DMA传送。直到字节数寄存器减为0,或者接收到外部输入的
信号时,8237A才释放系统总线,DMA传送终止。块传送结束后可自动初始化。8237A的工作方式你听说过8237A吗?你知道它的工作方式吗?7.3.38237A的工作方式请求传送方式在这种工作方式下,8237A申请一次总线可以连续地传送数据。当字节数寄存器减为0,或者接收到外部输入的
信号,或者DREQ信号变为低电平时,数据传送终止;直到DREQ变为有效电平,才继续传送下去。级联传送方式若干个8237A可以进行级联,构成主从式DMA系统。一片8237A用作主片,最多可以连接4个从片。级联时,从片接收到外设发来的DMA请求信号后,向主片发出DREQ请求,主片作出DACK响应,再向CPU申请总线。此时,主片的方式寄存器设置为级联传送方式,从片设置成其他3种方式之一。7.3.4实战演练——8237A在PC/XT系统中的应用在IBMPC/XT系统中,8237A的4个独立的DMA通道分别指定给一个专门的外部设备。通道0用于动态RAM刷新通道2用于实现软盘驱动器和内存之间的数据传输通道3用于实现硬盘驱动器和内存之间的数据传输通道1为用户保留,用于提供其他传输功能,如网络通信功能系统中采用固定优先级,其中,动态RAM刷新操作的优先级最高,硬盘与内存之间的数据传送操作的优先级最低。写入工作方式包括数据的读出校验故这个通道被设置成字节传送、读写方式、不能自动初始化7.3.4实战演练——8237A在PC/XT系统中的应用电路中的4个DMA请求输入信号DREQ0~DREQ3
分别对应通道0~3只有DREQ0是和系统板相连的,其他几个请求信号DREQ1~DREQ3都接到总线扩展槽的引脚上,由对应的网络接口板、软盘接口板和硬盘接口板提供因此,DMA的应答信号DACK0送往系统板,DACK1~DACK3送往扩展槽。8237A在PC/XT系统中的应用7.3.4实战演练——8237A在PC/XT系统中的应用8237A的工作原理:当某个外设请求DMA操作时,相应的DREQ变为有效电平,HRQ信号变为高电平并将其传送给CPU的HOLD输入端,请求CPU让出总线控制权CPU输出信号HLDA变为高电平,作为对HOLD的应答,使8237A获得总线控制权8237A的输出信号DACK变为高电平,通知外设其准备就绪可以进行数据传输7.3.4实战演练——8237A在PC/XT系统中的应用由于8237A的地址线为16位,为了能访问20位地址,在PC/XT系统中设有DMA页面寄存器74LS670,用于存放4个DMA通道的高4位地址A16~A19。A0~A7由8237A的A0~A7引脚发出,经地址驱动器后提供A8~A=由8237A的DB0~DB7引脚发出,经地址锁存器锁存后提供A16~A19由页面地址寄存器提供在DMA传送数据时,页面寄存器的内容放到系统的地址总线上,和8237A送出的16位地址一起形成20位地址,因此,可在1MB的空间进行DMA传送。7.3.4实战演练——8237A在PC/XT系统
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年建筑用料采购谈判合同
- 2026年医疗综合服务合同
- 2025年农产品溯源技术研发项目可行性研究报告
- 2025年电动汽车废弃电池回收技术可行性研究报告
- 2025年农业智能装备研发与应用项目可行性研究报告
- 2025年新的电池技术研发项目可行性研究报告
- 消防共建位协议书
- 测量安全协议合同
- 肉牛收购合同范本
- 乌鸡散养协议书
- 2025年中共宜春市袁州区委社会工作部公开招聘编外人员备考题库附答案详解
- DB33∕T 2320-2021 工业集聚区社区化管理和服务规范
- 学堂在线 雨课堂 学堂云 人工智能原理 章节测试答案
- 地铁资料城市轨道交通设备系统控制中心
- 企业数字化转型发言稿
- GB/T 3089-2020不锈钢极薄壁无缝钢管
- GB/T 2878.2-2011液压传动连接带米制螺纹和O形圈密封的油口和螺柱端第2部分:重型螺柱端(S系列)
- GB/T 23331-2020能源管理体系要求及使用指南
- GB/T 21238-2016玻璃纤维增强塑料夹砂管
- 斯坦福手术室应急手册中文版
- 质量检测计量器具配备一览表
评论
0/150
提交评论