输入输出传送方式与_第1页
输入输出传送方式与_第2页
输入输出传送方式与_第3页
输入输出传送方式与_第4页
输入输出传送方式与_第5页
已阅读5页,还剩89页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

输入输出传送方式与1第1页,共104页,2023年,2月20日,星期二第六章输入输出方式和DMA6.1I/O接口概述6.2无条件传送方式6.3查询传送方式6.4中断传送方式6.5DMA的传送方式6.6可编程DMA控制器8237A2第2页,共104页,2023年,2月20日,星期二I/O端口的编址方式输入输出的传送方式:

无条件、查询、中断、DMADMA的基本概念DMA工作过程DMA的三种传输方式 8237DMA控制器主要内容3第3页,共104页,2023年,2月20日,星期二重点内容掌握I/O接口的基本概念掌握I/O接口的地址译码掌握几种传送方式的特点了解DMA控制器的工作原理4第4页,共104页,2023年,2月20日,星期二6.1I/O接口概述一、I/O接口与I/O设备5第5页,共104页,2023年,2月20日,星期二

二、定义I/O接口是位于系统与外设之间、用来协助完成数据传送和控制任务的逻辑电路。PC机系统板的可编程接口芯片、I/O总线槽的电路板(适配器)都是接口电路

不同I/O设备对应I/O接口不同。I/O接口受CPU控制,I/O设备受I/O接口控制。为增加通用性,I/O接口电路通常均具有可编程功能。微机系统的应用与外设接口的设计、选用和连接。6第6页,共104页,2023年,2月20日,星期二三、I/O接口的主要功能速度匹配(Buffer)信号电平和驱动能力(电平转换器、驱动器)

信号形式匹配(A/D、D/A)

信息格式(字节流、块、数据包、帧)

时序匹配(定时关系)总线隔离(三态门)7第7页,共104页,2023年,2月20日,星期二6.1.1接口电路的内部结构1、接口硬件数据线控制线状态线DBCBAB数据输入寄存器(or三态门)数据输出寄存器(锁存器)状态寄存器(or三态门)命令寄存器译码电路控制逻辑接外设接主机8第8页,共104页,2023年,2月20日,星期二

接口功能CPU与外设主要有数据、状态和控制信息需要相互交换,于是从应用角度看内部:⑴数据寄存器(端口地址)保存外设给CPU和CPU发往外设的数据⑵状态寄存器(端口地址)保存外设或接口电路的状态⑶控制寄存器(端口地址)保存CPU给外设或接口电路的命令

(4)接口电路可含有多个端口地址9第9页,共104页,2023年,2月20日,星期二CPU侧引脚信号:地址信号:选择I/O接口中的不同寄存器;数据信号:命令或数据写入到相应寄存器,或者从相关寄存器读取数据或状态;控制信号:控制命令的执行、时序、信号同步和片选;状态信号:接口的部分工作状态信号。外设侧引脚信号:数据信号:接口缓冲寄存器与外设间的数据交换;10第10页,共104页,2023年,2月20日,星期二状态信号:外设工作状态送给接口的状态寄存器;控制信号:接口的内部控制逻辑控制外设工作的控制信号和同步信号。内部控制逻辑:根据控制寄存器、状态寄存器、总线控制信号及外设状态信号控制I/O接口的工作。11第11页,共104页,2023年,2月20日,星期二常见接口插槽PS2鼠标PS2键盘千兆网10/100M网卡USB并行口MIDI/游戏接口显示器接口13941394a麦克风/音箱/线入接口串行口12第12页,共104页,2023年,2月20日,星期二2、接口软件(设备驱动程序)

初始化程序:设置接口工作方式及初始条件。

传送方式处理程序:CPU针对不同的I/O设备采用不同的处理方式。如设置中断向量等。

主控程序:完成接口任务的程序。

程序终止与退出程序:对接口电路硬件保护及操作系统中数据恢复。

辅助程序:提供人-机对话手段。13第13页,共104页,2023年,2月20日,星期二3、接口电路芯片的分类

接口电路通常采用中大规模、超大规模集成电路接口芯片:通用接口芯片支持通用的数据输入输出和控制的接口芯片如:并行接口芯片、串行接口芯片等。面向外设的专用接口芯片针对某种外设设计接口如:显示接口电路、磁盘驱动接口电路等。

面向微机系统的专用接口芯片与CPU和系统配套使用,以增强其总体功能如:8259A、8237、8253、8251、8255等。14第14页,共104页,2023年,2月20日,星期二4、可编程接口许多接口电路具有多种功能和工作方式,可以通过编程的方式设定。接口电路需要与系统物理连接,及编写接口软件。接口软件:1、初始化程序段:设定芯片工作方式等2、数据交换程序段:管理、控制、驱动外设,负责外设和系统间信息交换。15第15页,共104页,2023年,2月20日,星期二6.1.3I/O端口的编址接口电路占用的I/O端口的编址可分为两种方式I/O端口单独编址I/O地址空间独立于存储地址空间如INTER系列80X86I/O端口与存储器统一编址它们共享一个地址空间如MCS-51系列单片机16第16页,共104页,2023年,2月20日,星期二一、I/O端口单独编址优点:I/O端口的地址空间独立控制和地址译码电路相对简单专门的I/O指令使程序清晰易读缺点:I/O指令没有存储器指令丰富内存空间I/O空间FFFFF0FFFF注:80x86采用I/O端口独立编址::::17第17页,共104页,2023年,2月20日,星期二二、I/O端口与存储器统一编址优点:不需要设计专门的I/O指令I/O数据存取与存储器数据存取同样缺点:I/O端口占用存储器地址空间程序易读性差(不易分清访内存、访问外设)内存部分I/O部分存储器空间00000FFFFF18第18页,共104页,2023年,2月20日,星期二6.1.48088/8086的I/O端口I/O指令(直接寻址、寻址范围:00H~FFH)INAL,PORT;端口(Port),即I/O端口地址OUTPORT,ALINAX,PORT;

;OUTPORT,AXI/O指令(间接寻址、寻址范围:0000H~FFFFH)INAL,DXOUTDX,AL;INAX,DX,DX寄存器的值就是

端口号(64K个端口);OUTDX,AX;功能演示功能演示19第19页,共104页,2023年,2月20日,星期二INAL,PORT;OUTPORTALMOVDX,PORT;MOVEDX,PORTINAX,DX;OUTDXAX输出一个字:〔(DX)、(DX)+1〕←(AX)或〔(PORT)、(PORT)+1〕←(AX)输入一个字:〔(DX)+1、(DX)〕→(AX)或〔(PORT)、(PORT)+1〕→(AX)数据交换方式20第20页,共104页,2023年,2月20日,星期二6.1.5I/O地址的译码I/O地址的译码方法与存储器地址的译码方法一样,但有它的特点:部分译码时,通常是中间地址线不连接部分译码也有最低地址线不连接的情况每个接口电路通常只占用几个I/O地址,这时可以利用基本逻辑门电路进行地址译码除采用译码器、门电路进行译码外,I/O地址译码还经常采用可编程逻辑器件PLD为了给系统一定的选择余地,有些接口电路利用比较器、开关或跨接器等进行多组I/O地址的译码给几个译码实例21第21页,共104页,2023年,2月20日,星期二IBMPC/AT主机板的I/O译码电路接口芯片内部译码A0~A4:DMA控制器1中断控制器1定时计数器并行接口电路DMA页面寄存器中断控制器2DMA控制器2协处理器A5A6A7A8A9ALS138译码器HLDAMASTERABCE1E2E3Y0Y1Y2Y3Y4Y5Y6Y722第22页,共104页,2023年,2月20日,星期二IBMPC/XT主机板的I/O译码电路Y0Y1Y2Y3Y4Y5Y6Y7A5A6A7A8A9AENIOWAB

CG2BG2AG174LS138DMACS(8237)INTRCS(8259)T/CCS(8253)PPICS(8255)WRTDMAPG(写DMA页面寄存器)WRTNMIREG(写NMI屏蔽寄存器)23第23页,共104页,2023年,2月20日,星期二逻辑门电路进行I/O地址译码A9A8A7A6A5A2A4A3AENA1A074LS033E7H24第24页,共104页,2023年,2月20日,星期二6.1.6数据传送方式程序控制下的数据传送——通过CPU执行程序中的I/O指令来完成传送,又分为:无条件传送、查询传送、中断传送直接存储器存取(DMA)——传送请求由外设向DMA控制器(DMAC)提出,后者向CPU申请总线,最后DMAC利用系统总线来完成外设和存储器间的数据传送I/O处理机——CPU委托专门的I/O处理机来管理外设,完成传送和相应的数据处理25第25页,共104页,2023年,2月20日,星期二

I/O的传送方式

主机与外设之间数据传送的控制方式有以下四种:无条件传送查询式传送中断方式传送直接存储器存取(DMA,DirectMemoryAccess)26第26页,共104页,2023年,2月20日,星期二6.2无条件传送方式适用于总是处于准备好状态的外设以下外设可采用无条件传送方式:开关发光器件(如发光二极管、7段数码管、灯泡等)继电器步进电机优点:软件及接口硬件简单缺点:只适用于简单外设,适应范围较窄传送流程接口实例27第27页,共104页,2023年,2月20日,星期二无条件传送示意图28第28页,共104页,2023年,2月20日,星期二例:无条件输入MOV DX,288HIN AL,DX0288H29第29页,共104页,2023年,2月20日,星期二例:无条件输入MOV DX,288HIN AL,DX74LS244+5V10Kx8G1G2CSRD:::D7D0K0K730第30页,共104页,2023年,2月20日,星期二例:无条件输出MOVDX,288HMOVAL,[BX]OUTDX,AL0288H31第31页,共104页,2023年,2月20日,星期二例:无条件输出MOVDX,288HMOVAL,[BX]OUTDX,AL+5V74LS373300x8LEOECSWR:::D7D032第32页,共104页,2023年,2月20日,星期二简单的输入接口举例接口电路图如下:83FCH~83FFH译码器33第33页,共104页,2023年,2月20日,星期二锁存器:由D触发器构成通常一个器件包含8个D触发器常用芯片:(教材图6.5、图6.6)74LS27374LS374(具有三态输出的锁存器,内部结构见图6.8)应用例子:发光二极管接口简单的输出接口举例译码器=1=1.........+5VRD0|D7CPQ0Q7...D0~D7A0~A15IOW#74LS273R34第34页,共104页,2023年,2月20日,星期二I/O接口综合应用例子根据开关状态在7段数码管上显示数字或符号共阳极7段数码管结构见教材图6.10用74LS273作为输出接口,把数据送到7段数码管74LS273的地址假设为F0H用74LS244作为输入口,读入开关K0~K3的状态74LS244的地址假设为F1H当开关的状态分别为0000~1111时,在7段数码管上对应显示’0’~’F’(7段码表见下页)35第35页,共104页,2023年,2月20日,星期二

7段码.gfedcba形状符号7段码.gfedcba形状符号01110001’F’00000111’7’01111001’E’01111101’6’01011110’D’01101101’5’00111001’C’01100110’4’01111100’B’01001111’3’01110111’A’01011011’2’01100111’9’00000110’1’01111111’8’00111111’0’36第36页,共104页,2023年,2月20日,星期二O1I1O2I2O3I3O4I4#E1K0~K3+5VGG2AG2BCBA≥174LS244D0Q0|Q1D7Q2Q3Q4CPQ5Q6Q7

abcdefgDP74068个反相器74LS273Rx8≥174LS138D0~D7IOW#IOR#Y0Y1F0H=0000000011110000F1H=0000000011110001&≥1A7~A4A15~A8A3A2A1A0D0D1D2D3译码电路37第37页,共104页,2023年,2月20日,星期二相应程序段如下:

……Seg7 DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H DB 7FH,67H,77H,7CH,39H,5EH,79H,71H …… LEA BX,Seg7 ;取7段码表基地址

MOVAH,0 : MOV DX,0F1H ;开关接口的地址为F1H K: IN AL,DX ;读入开关状态

AND AL,0FH ;保留低4位

MOV SI,AX ;作为7段码表的表内位移量

MOV AL,[BX+SI] ;取7段码

MOV DX,0F0H ;7段数码管接口的地址为F0H OUT DX,AL JMP K38第38页,共104页,2023年,2月20日,星期二6.3查询传送方式适用于外设并不总是准备好,而且对传送速率、传送效率要求不高的场合。CPU在与外设交换数据前必须询问外设状态——“你准备好没有?”对外设的要求:应提供设备状态信息对接口的要求:需要提供状态端口优点:软件比较简单缺点:CPU效率低,数据传送的实时性差,速度较慢流程图39第39页,共104页,2023年,2月20日,星期二查询方式的流程图超时?READY?与外设进行数据交换超时错读入并测试外设状态YNYN传送完?防止死循环复位计时器NY注:多个外设时,查询流程见教材图6.15P K40第40页,共104页,2023年,2月20日,星期二例:用查询方式进行输出外设状态端口地址为3FBH,第5位(bit5)为状态标志(=1忙,=0准备好)外设数据端口地址为3F8H,写入数据会使状态标志置1;外设把数据读走后又把它置0。1、画出硬件电路2、编程41第41页,共104页,2023年,2月20日,星期二D5D7-D0A9|A3≥1&A15|A10≥1IOWD7-D03F8H外设D7D6D5D4D3D2D1D0BUSYCPQ7Q6Q5Q4Q3Q2Q1Q0状态端口GG2AG2BCBAA2A1A074LS138Y0≥1IORY3OE74LS374CPQQDSSTROBE3FBH1、硬件电路

42第42页,共104页,2023年,2月20日,星期二2、编程

MOVDX,3F8HTAB:INAL,DXTESTAL20HJNZTABMOVDX,3FBHLEABX,BUFFERMOVAL,OFFSETPTR[BX]OUTAL,DX43第43页,共104页,2023年,2月20日,星期二6.4中断传送方式CPU无需查询外设状态,外设在需要进行数据传送时才中断CPU正在进行的工作,让CPU来为其服务。即CPU与外设并行工作,有请求时才去传输数据,从而大大提高了CPU的利用率。优点:CPU效率高,实时性好,速度快。缺点:程序编制较为复杂。须保护断点、保护现场等。44第44页,共104页,2023年,2月20日,星期二中断传送方式断点CPU:主程序中断服务程序中断请求处理外设事件继续执行返回断点

CPU在执行程序中,被内部或外部的事件所打断,转去执行一段预先安排好的中断服务程序;服务结束后,又返回原来的断点,继续执行原来的程序传送流程45第45页,共104页,2023年,2月20日,星期二中断传送流程46第46页,共104页,2023年,2月20日,星期二

中断系统其他功能:支持多中断源和多种中断源。支持中断屏蔽处理。支持中断嵌套处理。支持中断优先级修改。支持中断结束方式选择。中断处理的隐操作:程序状态及程序断点地址的进栈及出栈。47第47页,共104页,2023年,2月20日,星期二6.4.1中断传送与接口中断传送是一种效率更高的程序传送方式进行传送的中断服务程序是预先设计好的中断请求是外设随机向CPU提出的CPU对请求的检测是有规律的:一般是在每条指令的最后一个时钟周期采样中断请求输入引脚本书主要论述中断在输入和输出方面的应用中断还有着非常广泛的应用48第48页,共104页,2023年,2月20日,星期二6.4.2中断传送与接口D0~D7+5V8D锁存器8位三态缓冲器三态缓冲器RQ

译码

288H中断向量号D0~D7INTRD输入设备中断允许触发器A0~A15中断请求触发器IORINTASTB49第49页,共104页,2023年,2月20日,星期二6.5DMA传送方式无条件传送、查询传送、中断传送这几种方式都是通过CPU执行程序实现的,占用了CPU资源,传送速度慢(实际上是软件传送方式,最大速度约为几十KB/秒)。为了实现高速外设与内存之间的数据交换,可采用直接存储器存取方式(DMA)。

DMA传送方式通常用来高速传送大批量的数据块。如:硬盘和软盘I/O;多处理机和多程序数据块传送;在图像处理中,对CRT屏幕送数据;快速数据采集;DRAM的刷新操作。快速通信通道I/O;50第50页,共104页,2023年,2月20日,星期二

DMA传送: 外设内存外设直接与存储器进行数据交换,CPU不再担当数据传送的任务,而由DMA控制器控制总线(DMAC)进行数据传送。(CPU要放弃总线控制权),内存/外设的地址和读写控制信号均由DMAC提供。优点:数据传输由DMA硬件来控制,数据直接在内存和外设之间交换,可以达到很高的传输速率(可达几MB/秒)51第51页,共104页,2023年,2月20日,星期二几个基本概念总线控制权、mater、slaveDMAC编程周期:slave DMAC控制总线进行数据传输周期:masterDMA的数据传输形式:

基本的:MEM——I/O

扩充的:MEM——MEM I/O——I/O52第52页,共104页,2023年,2月20日,星期二6.5.1DMAC控制数据传送①外设发出DMA请求②DMAC向CPU申请总线③CPU完成当前总线周期后响应,并释放总线控制权④DMAC得到总线控制权,并发出DMA响应信号⑤由DMAC发出各种控制信号,控制外设与存储器之间的数据传送⑥数据传送完后,DMAC撤销HOLD信号⑦CPU释放HLDA信号,并重新控制总线①系统总线CPUDMAC存储器外设接口AENIOWMEMWMEMRIORMEMWMEMRIOWIORAENHOLDHLDADRQDACK②③④⑤AENIOWIORMEMWMEMR⑥⑦53第53页,共104页,2023年,2月20日,星期二DMAC的工作过程1)当外设准备好,可以进行DMA传送时,外设向DMA控制器发出“DMA传送请求”信号(DRQ);2)DMA控制器收到请求后,向CPU发出“总线请求”信号HOLD,表示希望占用总线;3)CPU在完成当前总线周期后会立即对HOLD信号进行响应。响应包括两个动作:一是CPU将数据总线、地址总线和相应的控制信号线均置为高阻态,由此放弃对总线的控制权。另一方面,CPU向DMA控制器发出“总线响应”信号(HLDA)。4)DMA控制器收到HLDA信号后,就开始控制总线,并向外设发出DMA响应信号DACK;54第54页,共104页,2023年,2月20日,星期二5)DMA控制器送出地址信号和相应的控制信号,实现外设与内存或内存与内存之间的直接数据传送;例如,向I/O接口发出读信号,同时往地址总线上发出存储器的地址和存储器写信号和AEN信号,即可从外设向内存传送一个字节。6)DMA控制器自动修改地址和字节计数器,并判断是否需要重复传送操作。当规定的数据传送完后,DMA控制器就撤销发往CPU的HOLD信号。CPU检测到HOLD失效后,紧接着撤销HLDA信号,并在下一时钟周期重新开始控制总线。

DMA通道工作过程55第55页,共104页,2023年,2月20日,星期二

DMA的三种传送方式:连续传送(块传送)DMAC申请到总线后,将一块数据传送完后才释放总线,而不管中间DREQ是否有效。单次传送(每次传送一个字节)每个DMA周期只传送一个字节就立即释放总线。按需传送(猝发传送)只要I/O接口的数据缓冲可用,就进行传送。

(注:I/O接口需要有一定大小的FIFO缓冲)56第56页,共104页,2023年,2月20日,星期二数据块传送YN允许DMADMA请求?DMAC请求总线CPU响应,DMAC获总线控制权DMA传送一个字节块结束?地址增量,计数器减量DMAC释放总线YN57第57页,共104页,2023年,2月20日,星期二每次传送一个字节NYN允许DMADMAC请求总线CPU响应,DMAC获总线控制权DMA传送一个数据块结束?释放总线至少一个总线周期地址增量,计数器减量DMAC释放总线Y测试I/O的DREQDMA请求?58第58页,共104页,2023年,2月20日,星期二按需传送NYCPU响应,DMAC获总线控制权DMA传送一个字节块结束?测试I/O的DREQ有效?地址增量,计数器减量释放总线,请求中断无效,释放总线允许DMADMA请求?DMAC请求总线YNYN59第59页,共104页,2023年,2月20日,星期二一个总线周期TDMAC控制总线,共传送n个数据DMA1DMA2DMAnCPU重新控制总线CPU对总线控制连续传送TDMA共传送n个数据DMA1DMA2DMAn单次传送DMA3T按需传送DMA传送k个数据DMA传送n-k个数据FIFO可用FIFO满FIFO可用FIFO满图例:DM方式传送示意图:60第60页,共104页,2023年,2月20日,星期二6.6可编程DMA控制器8237A8237A是Intel86系列微处理器的配套芯片,可用来接管CPU对总线的控制权,在存储器与高速外设之间建立直接进行数据块传送的高速通路。8237A必须与一个8位锁存器(8212或其他代用芯片)配套使用,才可形成完整的4通道DMA控制器。各通道可分别完成3种不同的操作:(1)DMA读——读存储器送外设。(2)DMA写——读外设写存储器。61第61页,共104页,2023年,2月20日,星期二

(3)DMA校验:通道不传送数据,仅完成校验。任一通道进入DMA校验方式时,不产生对存储器和I/O设备的读/写控制信号,但是仍保持对系统总线的控制权,并且每一个DMA周期都将响应外部设备的DMA请求,发出DACKi信号,外设可使用这一响应信号对所得到的数据进行某种校验操作,因此,DMA校验操作并不是由8237A本身完成的。

8237A可处于两种不同的工作状态,在8237A未取得总线控制权以前,CPU处于主控状态,而8237A处于从属状态,一旦8237A取得总线控制权后,8237A便上升为主控状态,完全在8237A控制下完成存储器和外设之间的数据传送功能,CPU不再参与数据传送的操作。62第62页,共104页,2023年,2月20日,星期二6.6.18237A芯片内部结构

8237A可编程DMA控制器由数据总线缓冲存储器、读写逻辑部件、工作方式寄存器、状态寄存器、优先选择逻辑及四个DMA通道组成,内部结构如图6.25所示。8237A芯片有40条引脚,采用双列直插式封装,其引脚信号功能如图6.26所示。63第63页,共104页,2023年,2月20日,星期二图6.2564第64页,共104页,2023年,2月20日,星期二图6.2665第65页,共104页,2023年,2月20日,星期二1.DMA通道0~通道3

作为8237A芯片的主体是4个结构完全相同的DMA通道。每个通道内包含两个16位寄存器,它们是地址寄存器和终点计数寄存器,前者用来存放进行DMA操作的存储器区域的首地址的偏移地址值;后者的低14位(D13~D0)用来存放要求传送的字节数n-1,n为本次DMA操作所需要执行的DMA周期数,因此,一个数据块的最大容量为214=16KB。在任何DMA操作周期内,这2位不允许修改,但是可在各个数据块传送之间进行修改。这就是说,一旦被定义,任何一个通道的DMA写、DMA读或DMA校验操作就一直进行到整个数据块操作完成为止。66第66页,共104页,2023年,2月20日,星期二每个通道各有一条DMA请求线和一条DMA认可线。DMA请求线DRQ0~DRQ3,由请求传送数据的外部设备输入,高电平有效;DMA认可线DACK0~DACK3,由8237A取得总线控制权后向发出请求的外部设备输出,低电平有效,它实际上是DRQi的回答信号。2.数据总线缓冲存储器这是一个双向三态8位缓冲存储器,是与系统数据总线的接口,当8237A处于从属状态时,CPU通过这个缓冲存储器对8237A进行读/写操作。当8237A处于主控状态时,在DMA周期内,8237A将所选通道的地址寄存器的高8位地址码(A15~A8)经过这个缓冲存储器锁存到8212锁存器中,然后该缓冲存储器将处于浮空状态。67第67页,共104页,2023年,2月20日,星期二3.读/写逻辑部件

当8237A处于从属状态时,用来接收由CPU输入的读/写控制信号和端口地址等信息;当8237A处于主控状态时,通过它发出读/写控制信号和地址信息。

(1)I/OR——读信号,双向三态,低电平有效。当8237A处于从属状态时,I/OR为输入线,是CPU向8237A发出的读命令,可读取8237A中某个通道内某个寄存器的内容。当8237A处于主控状态时,I/OR为输出线,是8237A向外部设备发出的读命令,可从外部设备中读取数据。(2)I/OW——输入/输出写控制信号,双向、三态,低电平有效。68第68页,共104页,2023年,2月20日,星期二当8237A处于从属状态时,I/OW为输入线,是CPU向8237A发出的写命令,可向8237A写入控制字或通道数据。当8237A处于主控状态时,I/OW为输出线,是8237A向外部设备发出的写命令,可向外部设备写入数据。(3)A3~A0——输入/输出地址线。当8237A处于从属状态时,这是由CPU向8237A输入的低4位地址码,用来寻址8237A中的某个端口。当8237A处于主控状态时,这是8237A向存储器输出的低4位地址码。69第69页,共104页,2023年,2月20日,星期二(4)CS:选片信号,输入,低电平有效。当8237A处于从属状态时,由高位地址码(A15~A2)译码得到对8237A的片选信号。当8237A处于主控状态时,CS被自动禁止,以免8237A正在执行DMA传送期间重新被选。(5)CLK:时钟输入,用来确定8237A的工作速率。(6)RESET:复位信号,由外部输入,高电平有效。RESET有效时,清除所有寄存器的内容,控制线浮空,禁止DMA操作,复位之后,必须重新初始化,8237A才能工作。70第70页,共104页,2023年,2月20日,星期二4.控制逻辑部件控制逻辑部件主要用来向CPU发出总线请求,得到CPU认可进入主控状态后,由它发出各种控制信号。(1)HRQ(holdrequest)——保持请求信号,向CPU输出,高电平有效。当任一通道收到外部设备的DMA请求时,8237A立即向CPU发出HRQ,表示要求使用总线。(2)HLDA(holdacknowledge)——保持响应信号,由CPU输入,高电平有效。

CPU收到HRQ信号,待当前总线周期执行完,向8237A回送HLDA信号,表示将总线控制权交给8237A,此后,8237A进入主控状态,可开始DMA操作。71第71页,共104页,2023年,2月20日,星期二(3)READY:准备就绪信号,输入,高电平有效。

8237A在主控状态下进行DMA的操作过程中,若存储器或外部设备来不及完全读/写操作,要求延长读/写操作周期时,可使READY线无效,8237A将在DMA周期中增设等待周期,直到READY有效为止。(4)MEMR和MEMW:读/写存储器控制信号,三态输出,低电平有效。这是8237A处于主控状态时,向存储器输出的读/写控制信号。当MEMR有效时,必然I/OW有效,完成从存储器向外部设备的数据传送。反之,MEMW有效时,必然I/OR有效,完成读外部设备写存储器的数据传送。72第72页,共104页,2023年,2月20日,星期二(5)A7~A4——地址输出线。

8237A处于主控状态时,在DMA周期中通过这4条线输出的是16条存储器地址的A7~A4位。(6)TC(terminalcount)——终点计数信号,输出,高电平有效。当所选通道的终点计数寄存器中的计数值为0时,TC输出有效,表示当前正在传送的是最后一个数据字节,可用来通知外设结束数据传送操作,使DRQi信号无效。(7)MARK(modulo128MARK)——模128标记,输出,高电平有效。

MARK有效可用来通知被选的外部设备,当前是上一次输出MARK有效后的第128个DMA周期。73第73页,共104页,2023年,2月20日,星期二

MARK总是在距数据块结束每隔128周期产生。至于第一个MARK距数据块开始是多少周期,取决于数据块的长度。如果数据块总字节数能被128整除,那么MARK可用来供外部设备记录已传送的字节数。(8)ADSTB——地址选通信号,输出,高电平有效。

ADSTB有效,表示8237A输出的存储器地址的高8位(A15~A8)从双向数据总线(D7~D0)锁存到8212锁存器,用作8212STB的选通信号。(9)AEN——地址允许信号,输出,高电平有效。

AEN有效,表示在上述传送地址过程中,它用作8212的选择信号DS2,同时可用它去封锁CPU使用低8位数据总线和控制总线。74第74页,共104页,2023年,2月20日,星期二5.工作方式寄存器及状态寄存器工作方式寄存器是一个8位只可写寄存器,由CPU对8237A初始化时写入,用来定义8237A中各通道的工作方式。状态寄存器是一个8位只可读寄存器,用来描述当前各通道所处的状态。(1)工作方式寄存器:其各位的定义如图6.27所示。75第75页,共104页,2023年,2月20日,星期二图6.2776第76页,共104页,2023年,2月20日,星期二低4位中任一位置“1”,表示相应通道被启动投入操作。

RP(rotatingpriority)位是优先权旋转位。若RP=0,表示各通道的请求具有固定的优先权级别,通道0具有最高优先级(6级),通道3具有最低优先级(3级),其他通道的优先级类推。若RP=1,表示采用旋转优先权策略,总是使刚刚结束操作的通道具有最低优先级,把最高优先级赋给原来比它低一级的中断。显然,采用旋转优先权方式,可防止优先级别高的通道长时间独占DMA传送数据,而使连接在各个通道上的外设对于DMA资源具有基本上相同的使用概率。77第77页,共104页,2023年,2月20日,星期二

EW(extenedwrite)位是写扩展位。EW=1,表示将写存储器信号MEMW和写I/O设备信号I/OW提前有效,收到该写信号的存储器或外设应提前使READY信号有效,以免8237A在DMA周期内插入不必要的SW等待状态。

TCS(TCstop)位是终点计数停止位。TCS=1,即终点计数TC有效时,该通道便结束DMA操作,如果要求该通道继续传送别的数据块,必须重新启动。TCS=0,即TC有效时,并不复位相应通道,表示该通道传送的数据还未结束,可继续传送下一数据块,而不需要重新启动该通道,或者是由外部设备停止发出DMA请求来结束DMA操作。78第78页,共104页,2023年,2月20日,星期二

AL(autoload)位是自动装入位。当AL=1时,允许通道2连续传送多个重复数据块或者传送相互链接的多个不同数据块。这种情况下,需要使用两个通道。系统规定使用通道2和通道3来完成。如果是传送相互链接的数据块,初始化时应将第1个数据块的参数(存储器起始地址、终点计数值和DMA传送方式)置入通道2的有关寄存器中,而将第2个数据块的参数置入通道3中,并使通道2的TCS位置“0”,待通道2传送完第1个数据块时,并不结束通道2的操作,而是在修改周期内,将通道3中存放的参数传送给通道2,于是通道2可继续传送第2个数据块。如果还有第3个数据块需要继续传送,则应将第3个数据块的参数置入通道3暂存。这样,通道2可连续传送多个不同的数据块。79第79页,共104页,2023年,2月20日,星期二如果需要通道2传送的是多个重复的数据块,则只要AL=1,将数据块参数同时对通道2和通道3进行初始化即可。于是通过通道2传送的将是多个相同的数据块。在上述操作过程中,通道3实际上是作为通道2的缓冲存储器使用,而并不需要启动通道3投入操作。(2)状态寄存器:其各位定义如图6.28所示。80第80页,共104页,2023年,2月20日,星期二图6.2881第81页,共104页,2023年,2月20日,星期二

TC3~TC0是各通道的终点计数位,用来标志相应通道当前是否达到终点计数状态。当某个通道进入数据块的最后一个DMA周期,即终点计数器的计数值为0时,相应的TCi状态位被置“1”,并且一直保持到该通道被复位或CPU读完状态寄存器为止。显然,TC3~TC0中任何一位置“1”时,终止计数端TC将输出有效,待这最后一个DMA周期结束。是否要将相应通道复位,则取决于工作方式寄存器中终点计数停止位(TCS)是否置“1”。

UP是修改标志位,它是专为通道2连续传送多个数据块而设置的。UP=1,表示当前处于修改周期,即数据块的最后一个DMA周期,当自动装入位AL=1时,表示在修改周期内将通道3中暂存的参数82第82页,共104页,2023年,2月20日,星期二置入通道2中,于是通道2可以继续传送下一个数据块。在通道2传送下一数据块的第一个DMA周期内,又可将新的参数置入通道3中。修改标志只在修改周期内有效。83第83页,共104页,2023年,2月20日,星期二6.6.28237A芯片的通道操作过程8237ADMA操作周期时序图如图6.29所示。图6.2984第84页,共104页,2023年,2月20日,星期二8237A处于从属状态时保持为空闲状态S1。当任一通道检测到一个DMA请求时,8237A将在下一个S1状态时向CPU发出总线请求信号HRQ,于是8237A进入准备状态S0。CPU在当前总线周期结束时,向8237A回送总线认可信号HLDA,将总线控制权交给8237A,8237A开始进入主控状态。DMA周期从S1状态开始,至少包含4个状态S1~S4,必要时可在S3和S4之间插入SW。在S1状态期间,通过数据总线D7~D0将高8位地址线锁存到8212锁存器中,低8位地址直接从A7~A0输出,形成访问存储器的16位地址码,到S3状态期间发出读存储器(MEMR)或读外设(I/OR)命令可将需要传送的数据读出,在随后产生的写外设(I/OW)或写存储器(MEMW)命令控制下可完成传送一85第85页,共104页,2023年,2月20日,星期二个数据字节的功能,需要传送多少个字节,就需要执行多少个这样的DMA周期。待整个数据块传送结束,在最后一个DMA周期的S4状态上升沿,8237A的总线请求HRQ将无效,CPU将HLDA置成无效,收回总线控制权,8237A重新回到空闲状态S1。

8237A在每一个DMA周期的S4状态查询DRQi如果同时有多个DRQi有效,8237A将为优先级最高的通道服务,而且允许高级的请求打断低级的请求而被优先服务。只要较低优先级的通道能保持它的请求有效,待较高优先级的通道传送结束,控制将自动转到较低优先级的通道去服务。8237A的整个操作流程可用图6.30来描述。86第86页,共104页,2023年,2月20日,星期二图6.3087第87页,共104页,2023年,2月20日,星期二6.6.38237A控制器的编程及应用8237A共包含4个通道,每个通道占用2个端口地址,再加上工作方式寄存器和状态寄存器合用一个端口,因此整个8237A芯片共包含9个端口地址,可用最低4位地址码(A3~A0)来对它们寻址。高位地址码(A15~A4)经译码后,可用来形成8237A的片选信号,使CS有效,与I/OW,I/OR和地址码A3配合可完成对有关寄存器的读写操作。某8086微机系统中,利用8237ADMA控制器的0通道为某台外设与存储器之间构成直接数据传送通道的系统配置结构如图6.31所示。88第88页,共104页,2023年,2月20日,星期二图6.3189第89页,共104页,2023年,2月20日,星期二如果要求从外设输入1000H字节的数据到存储器当前数据段中,从0300H单元开始的一片连续地址存放,其初始化程序段如下所示。ST57:MOVDX,方式寄存器端口MOVAL,41HOUTDX,ALMOVDX,通道0地址寄存器端口MOVAX,0300HOUTDX,ALMOVAL,AHOUTDX,ALMOVDX,通道0终点计数器端口MOVAX,1000HOUTDX,ALMOVAL,AHOUTDX,AL90第90页,共104页,2023年,2月20日,星期二待外设发出DMA请求,DRQ0=1,系统将在8237A控制下完成数据传送功能。在此期间,CPU处于保持状态,可进行不使用总线的内部操作。如果利用8237A的终点计数信号TC向CPU发中断请求,那么CPU响应中断后,可对这批数据进行处理或使用。8237ADMA控制器具有很高的数据传送速率,如果CLK采用5MHz主时钟,每4个时钟周期可传送一个字节,那么8237A的数据传送速率可达到1.25M字节/秒。91第91页,共104页,2023年,2月20日,星期二8237的CH1实现DMA数据传送

PC/XT机主系统板内的8237DMA的通道l,实现DMA方式传送数据。将存储在存储器缓冲区的数据,传送到I/O设备中。I/O设备是74LS374锁存器,锁存器的输入接到系统板I/O通道的数据线上,触发脉冲CLK是由DACK1和IOW通过或门74LS32综合产生的。当74LS374的CLK负跳变时,将数据总线D7~D0上的数据锁存入74LS374。74LS374的输出通过反相器74LS04驱动后,接到LED显示器上。当DREQ1为高电平时,请求DMA服务。8237进入DMA服务时,发出DACK1低电平信号。在DMA读周期,8237发出16位地址信息,页面寄存器送出高4位地址,选通存储器单元。8237又发出MEMR低电平信号。将被访问的存储器单元的内容,送上数据总线并锁存入74LS374。当为低电平时,将锁存在74LS374的数据送到LED显示器上显示。应用的例子如图6.32所示。92第92页,共104页,2023年,2月20日,星期二图6.32:应用例子图示

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论