微机原理第十二章_第1页
微机原理第十二章_第2页
微机原理第十二章_第3页
微机原理第十二章_第4页
微机原理第十二章_第5页
已阅读5页,还剩17页未读 继续免费阅读

下载本文档

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

文档简介

微机原理第十二章第一页,共二十二页,2022年,8月28日·字节计数器:存放DMA传输的字节数;

·控制寄存器:存放由CPU设定的DMA传输方式,控制命令等;

·状态寄存器:存放DMAC当前的状态,包括有无DMA请求,是否结束等。

图12-1DMAC的内部结构与外部连接示意图第二页,共二十二页,2022年,8月28日12.2

Intel8237A概述

8237A的特点

本节略,内容详见课本。

8237A的引脚

8237A采用40引脚双列直插封装(见下页图12-2)。8237A的引脚主要围绕其二种工作状态而设置,有一些引脚在两种状态下都有用,而有些则是专用的。

1.与DMA周期有关的引脚:

CLK:时钟输入信号。

DREQ0~DREQ3,DACK0~DACK3:DMA请求及响应信号。

HRQ,HLDA:保持请求和响应信号。

A7~A0:低8位地址。其中A3~A04位是双向地址,因为当CPU对8237A编程时,这4个地址引脚又要作为对片内寄存器寻址的输入地址用。

DB7~DB0:数据总线。在DMA周期中,作为高8位地址信号

(A15~A8)与数据信号(D7~D0)的分时复用线。第三页,共二十二页,2022年,8月28日

ADSTB:地址选通信号。。

AEN:地址使能信号。

MEMR、MEMW:存储器读、写控制,低电平有效,输出。

IQP、IOW:外设读、写控制。

READY:就绪输入信号。

EOP:过程结束信号。

图12-28237A的引脚图第四页,共二十二页,2022年,8月28日2.与CPU读写有关的引脚

CS:片选信号。

A3~A0:地址线。用来选择8237A内部有关寄存器的地址。

DB7~DB0:数据线。

IOR、IOW:外设读、写。

RESET:清除信号。

由上可见,引脚中A3~A0,DB7~DB0以及IOR、IOW是两种状态下都用到的信号,所以它们都是双向信号。

8237A的内部结构

8237A内部结构如图12-3所示(见下页)。

8237A的寄存器

1.地址和字数寄存器

8237A的地址和字数寄存器包括基地址寄存器、基本字节数寄存器、现行地址寄存器和现剩字节数寄存器,每个通道都必须有这4个寄存器,所以总数达16个。其中二种基本寄存器只能写入,而二种现行寄存器只能读。它们总是占用8个I/O端口地址,具体地址如表12.1所示(见课本)。第五页,共二十二页,2022年,8月28日图12-38237A内部结构图

基地址寄存器是由CPU用程序控制写入的,表示数据块在内存中的起始地址,这个值一旦写入,在整个传输进行过程中第六页,共二十二页,2022年,8月28日

保持不变。

基本字节数寄存器中写入的是本次传输的数据块字节数,这个数也不会随DMA传输的进行而变化。若欲传输N个字节,写入到基本字节数寄存器的值应为N-1,即比实际要传输的字节数少1。

二个基本寄存器写入内容时,相应的现行地址寄存器也写入同样的内容。在DMA传送过程中,每传送一个字节,这二个现行寄存器的内容就变化一次。现行地址寄存器的变化方向由编程时的设置决定,而现剩字节数寄存器则恒作减量计数。当现剩字数寄存器由0减至FFFFH时,产生计数结束信号EOP输出。

2.工作方式寄存器

图12-4(见下页)是一个字节长的工作方式寄存器各位含义。4个方式寄存器只占用一个I/O端口地址,不管哪个通道的方式字都用0BH地址写入,利用方式字的最低两位D1D0位的编码来指定该方式字属于哪个通道。第七页,共二十二页,2022年,8月28日

图12-4工作方式寄存器

工作方式寄存器各位含义如下所述:

D7D6:DMA操作方式设定。共有4种方式,即:

·单字节方式

·成组传送方式第八页,共二十二页,2022年,8月28日·请求方式

·级联方式:图12-5是级联的基本方法,如下:

D5:控制地址变化方向。如置“1”,每传送一个字节的数据,

现行地址寄存器的内容减1。反之,D5=0,地址按增量第九页,共二十二页,2022年,8月28日方式变化。

D4:自动预置。如置“1”,将该通道设置成自动预置方式,

即每当一次DMA传输结束后,2个基本寄存器中的预置

值将自动地再次写入2个现行寄存器中。

D3D2:数据传送方向。写传输,是指数据从I/O设备写入到

内存中去,读传输正好相反。校验传输时8237A像

DMA读或DMA写传输一样产生时序,产生地址信号,

外设可以利用这样的时序进行校验。

D1D0:通道选择。

3.控制寄存器

寄存器中各位的定义如图12-6所示(见下页)。

控制寄存器各位含义如下:

D6、D7:分别控制DREQ和DACK有效的极性。D6控制

DREQ,D7控制DACK,为“0”时设定有效电平为

高电平,为“1”时低电平才是有效的。一旦设定后4

个通道的规定是一样的。第十页,共二十二页,2022年,8月28日

图12-6控制寄存器

D4:选择不同的优先权。在固定优先权时,通道0优先级最高

通道3优先级最低。另一种优先权是循环式,刚被服务过

的通道其优先权自动降为最低,而其余各通道优先权依

次顺高一级,从而使各通道DMA被响应的可能性相同。第十一页,共二十二页,2022年,8月28日D3和D5两位都与8237A的定时有关,将在时序部分讨论。

D2:8237A是否工作的控制位。如为“0”,8237A可工作,否则

不工作。

D1:从存储器到存储器传输时,固定用通道0的地址寄存器存

放源地址,这时可用D1位控制源地址变化与否。如果为

“1”,源地址在整个数据块传送中都有保持不变。这种方

式将使一个单元的内容送到规定长度的某一内存区域中去;

如果为“0”,则通道0的地址变化。该位仅在D0位为“1”时

才有意义,如果D0位为“0”,即不作存储器之间的数据传

输时,D1位就没有意义了。

D0:控制是否从存储器到存储器传输。若为1,是从存储器到

存储器传输;否则不是。

存储器间传送的操作只能用软件启动,对请求寄存器(地址为09H)写入04H,就可以用软件方法启动通道0。

4.DMA请求寄存器

请求寄存器格式如图12-8所示(见下页)。第十二页,共二十二页,2022年,8月28日

图12-8DMA请求寄存器

DMA请求寄存器各位含义如下:

D1D0:选择通道。

D2:请求标志,“D2=1”表示有请求,“D2=0”表示无请求。

5.屏蔽寄存器

8237A的每个通道都配备了一个屏蔽触发器,作为屏蔽标志位。DMA的屏蔽标志位是通过往屏蔽寄存器写入屏蔽字节来设置的,如图12-9所示(见下页)。第十三页,共二十二页,2022年,8月28日图12-9屏蔽寄存器

屏蔽触发器各位含义如下:

D1D0:选择通道。

D2:屏蔽位设置,“=1”设置屏蔽位,“=0”清除屏蔽位。

此外,8237A还允许使用综合屏蔽命令来设置通道的屏蔽触发器,如图12-10所示(见下页)。

D3~D0中的某位为1,就使对应的通道设置屏蔽位。

若直接访问屏蔽寄存器(使用图12-9格式),则地址为0AH。若使用综合屏蔽命令字来访问屏蔽寄存器(使用图12-10格式),则地址为0FH,且一次就可以完成4个通道的屏第十四页,共二十二页,2022年,8月28日蔽。8237A中还可使用清屏蔽寄存器命令来清除全部4个通道的屏蔽位,见后面的“清屏蔽寄存器命令”。

图12-10综合屏蔽命令字

6.状态寄存器

8237A中有一个可供CPU读取的状态寄存器,其格式如图12-11所示(见下页)。第十五页,共二十二页,2022年,8月28日

图12-11状态寄存器

7.暂存寄存器

在存储器到存储器传送方式时,暂存寄存器保存从源单元读出的数据,再由它写入目的单元。

12.3

8237A的软件命令

8237A还设计了专用的软件命令,以实现对8237A的编程控制。软件命令有三条:主清除命令,清除先/后触发器命令和清除屏蔽寄存器命令。

1.主清除命令

主清除命令与硬件的RESET信号具有相同作用。执行这条命令后,命令、状态、请求、暂存寄存器以及先/后触发器都第十六页,共二十二页,2022年,8月28日被复位,屏蔽寄存器被置位。然后,8237A处于空闲周期。

主清除命令的地址是0DH。只须对该端口执行写操作即可发出主清除命令,至于写入的数据,8237A并不关心,可随意设置。

2.清除先/后触发器命令

当先/后触发器为0时,读写低位字节,为1时则读写高位字节。触发器在每次读写这组寄存器后都翻转一次。

要实现先/后触发器复位可以使用清除先/后触发器命令,该命令是对0CH地址进行一次写操作即可,而对于写入内容,同主清除命令一样,没有任何要求。

另外,硬件RESET信号和软件主清除命令也会使先/后触发器复位。

3.清屏蔽寄存器命令

清屏蔽寄存器命令的地址为0EH。执行这个命令将清除全部4个通道的屏蔽寄存器,使它们允许接收DMA请求。

12.4

8237A的工作时序第十七页,共二十二页,2022年,8月28日8237A有二大类操作周期,即空闲周期和有效(DMA)周期。每个周期总是由若干个状态周期组成。每个状态周期都占一个时钟周期的时间,但由于每个状态周期中它们完成的任务不相同,所以又把它们分别叫做SI、S0、S1、S2、S3、S4和SW七种不同的周期。

正常DMA读写操作

图12-12是8237A在DMA传送时的时序(见下页)。

S0是个等待周期,这期间8237A等待CPU让出总线,得到HLDA的响应。

S1状态中,8237A输出地址允许信号AEN,同时把高8位地址A15~A8送到DB7~DB0引脚上,并发出ADSTB地址选通信号。

S2状态中,首先向外设送出DACK信号。接着,根据操作要求,发出读信号,对DMA读操作,就送出MEMR给存储器;对DMA写操作就送IOR给外设。

S3状态中,8237A发出写命令。第十八页,共二十二页,2022年,8月28日

S3状态的后沿,8237A检测READY信号端状态。

S4状态中结束本次一个字节数据传送。

图12-128237A时序图

第十九页,共二十二页,2022年,8月28日扩展写与压缩时序

所谓扩展写是当8237A输出写信号时,使其有效的时间提前。正常在S3才送出的有效写控制信号,提前到S2就变得有效。这可以使得写入的设备有更多的写入时间。当命令寄存器的D5=1时,就选择了扩展写方法。

压缩定时是当命令寄存器D3=1时采用的定时方式。在S1~S44个周期中,S1是为了锁存高8位地址用的,而S3则是一个延长周期,给读写以充足的时间,在追求更高传输速度,且器件的读写速度又可跟得上的情况下,就可以把S1和S3两个周期省去,形成了时间压缩一半的时序。压缩时序方式只能用于连续数据块传送,即高8位地址不变的数据块。

12.5

8237A的初始化及其在PC机中的应用

8237A的初始化

在进行DMA操作之前,必须对8237A进行初始化编程。初始化编程有以下内容:

(1)关闭8237A,以保证对8237A初始化编程结束后才响应

DMA操作请求。第二十页,共二十二页,2022年,8月28日(2)发送主清除命令,即用软件方法进行复位。

(3)输出16位地址值给相应通道的地址寄存器。

(4)设置传送的字节数给基字节计数器和当前字节计数器。

(5)输出工作方式控制字,以确定8237A的工作方式和传输

类型。

(6)将屏蔽控制字写入屏蔽寄存器,去除屏蔽。

(7)启动8237A,并将操作方式控制字写入控制寄存器,控

温馨提示

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

评论

0/150

提交评论