收藏 分享(赏)

高性能可编程DMA.ppt

上传人:gnk289057 文档编号:9329212 上传时间:2019-08-02 格式:PPT 页数:41 大小:670KB
下载 相关 举报
高性能可编程DMA.ppt_第1页
第1页 / 共41页
高性能可编程DMA.ppt_第2页
第2页 / 共41页
高性能可编程DMA.ppt_第3页
第3页 / 共41页
高性能可编程DMA.ppt_第4页
第4页 / 共41页
高性能可编程DMA.ppt_第5页
第5页 / 共41页
点击查看更多>>
资源描述

1、第四章 高性能可编程DMA 控制接口82C37A-5,4.1 概述 对象实体:直接存储器访问(DMA)控制接口芯片82C37A-5 芯片的特点: 1、管脚引线与NMOS 8237A-5兼容。 2、允许/禁止单独DMA请求控制。 3、频率从05MHz区间全静态设计。 4、低电平操作。,5、4个各自独立的DMA通道并独立的进行初始化。 6、存储器到存储器之间传送。 7、存储器模块初始化处理。 8、地址的增量和减量。 9、传送速率可达1.6MB/s. 10、可直接扩展成任意数量的通道。 11 、终止传送的过程即输入结束。 12、软件请求。 13、独立信号DREQ和信号DACK的极性控制。,4.2 8

2、2C37A-5的体系结构,4.2.1 基本结构描述 1. 82C37A-5内部配备了规模为344位的内部存储器,它是以寄存器的形式出现的。 2. 配有3个基本的控制模块: (1)定时及控制模块; (2)优先级编码及循环优先级控制模块;(3)命令控制模块; 3. 12个不同类型的寄存器 。,图 4-1 82C37A-5结构图,EOP# A0A3 RESET CS# . A4A7 . . . IOW#DREQ0 DREQ3 HLDA HRQ DB0DB7 DACK0 DACK3,定时 及 控制,优先 级及 循环 优先,暂时字计数,暂时地址寄存,减量计数,增减计数,读缓冲器,读写缓冲,基地址,基字,

3、当前 地址,当前 字计数,写缓冲存,读缓冲存,命令8位,屏蔽4位,请求4位,读写,方式,状态8位,暂存8位,I/O缓冲,输出缓冲,命令控制,I/O缓冲,3.对模块电路及寄存器的功能介绍:,定时及控制模块:产生内部定时和外总线接口所需要的控制信号。如它接受READY、CS#、RESET等外部输入信号;产生ADSTB、AEN、MEMR#和MEMW#等输出信号。这些信号与输入到82C37A-5的时钟信号CLOCK一起进行同步操作。 优先级编码及循环优先级模块:82C37A-5有两种优先级方式,即固定优先级和循环优先级。如果当82C37A-5同时收到多个DMA服务请求时,82C37A-5将按优先级的高

4、低来受理这些DMA服务的请求。在程序控制之下,选择两种优先级方式中的一种。 固定优先级:是在数值上按由小到大顺序给各个通道指定优先级,即通道0最高 通道1 通道2 通道3。,循环优先级:在初始化时,按优先级循环的方式进行,如第一次的优先级为:DREQ1 DREQ2 DREQ3 DREQ0 第二次优先级循环为: DREQ2 DREQ3 DREQ0 DREQ1,82C37A-5的命令控制模块:对微处理机接口送来的寄存器命令进行译码,由此确定这次访问的是哪一个寄存器以及将要形成是哪种类型的操作,并进行译码。 82C37A-5的12个不同类型的内部寄存器:如表4-1所示。从表中可以看出,前4个16位的

5、寄存器和方式命令寄存器对应4个DMA通道,即每个通道1个。暂时地址、暂时字计数、状态、命令、暂时、屏蔽、请求等7个寄存器为各个通道公用的寄存器。,4.字计数和地址寄存器命令码(表4-2),说明:DMA的A3A0是4条地址线,有16个寄存器 可供CPU访问。DMA的通道表示为:DMA+0、DMA+1、DMA+2、DMA+3,通道,寄存器,操作,信号,IOR#,CS#,IOW#,A3,A2,A1,A0,内部 触发,数据总线 DB0DB7,DMA+0,基地址和 当前地址,写,0,1,0,0,0,0,0,0,0,A0A7,0,1,0,0,0,0,0,1,A8A15,当前地址,读,0,0,1,0,0,0

6、,0,0,A0A7,0,0,1,0,0,0,0,1,A8A15,基字和当 前字计数,写,0,1,0,0,0,0,1,0,W0W7,0,1,0,0,0,0,1,1,W8W15,读,0,0,当前字计数,1,0,0,1,0,0,W0W7,0,0,1,0,0,0,1,1,W8W15,4.2.2 82C37A-5寄存器,1.当前地址寄存器 16位;保存着DMA传送期间要用的地址;每传送一次地址值自动增值或减值;按序逐次每8位进行一次读/写操作;EOP#(End of Process)之后自动初始化并可还原。 2.基地址和基字计数寄存器 每个通道有一对16位寄存器,存放当前寄存器值。基地址寄存器存放DMA

7、操作的起始地址。当前地址寄存器存放着将要被访问的下一个存储单元的地址。这些寄存器必须在启动DMA周期之前装入适当的值。先写低字节,后写高字节,由先/后内部触发器标识。,例4-1 把地址1234H写入一个DMA控制器通道0的基址和当前地址寄存器,且,定位在基本I/O地址地址DMA(这里DMA=F0,并由CS#信号来决定) 程序段: MOV AL , 34H OUT DMA + 0 , AL MOV AL , 12H OUT DMA + 0 , AL,3. 当前字寄存器,16位当前字计数寄存器,这个寄存器来确定需要完成传送的次数。需要注意的是:实际传送的次数总比在当前字计数器中的多1次。如:程序控

8、制的计数为100,则实际执行次数为101次。在传送期间,字计数中间值被存放在当前字寄存器内,其值从0计到FFFFH时,就产生一个终止计数TC(terminal Count)信号。按序逐次每8位进行一次装入/读出操作。,例4-2 要把计数值0FFFH编程写入DMA控制器通道1的基地址和当前地址计数寄存器,其程序段为:,MOV AL , OFFHOUT DMA+1 , ALMOV AL , OFHOUT DMA+1 , AL,4.命令寄存器,图4-2是命令寄存器的格式,它受程序的控制。由复位或主控设备的清除指令清0。用该寄存器的各位控制DMA控制器所有通道的操作方式。,D7,D6,D5,D4,D3

9、,D2,D1,D0,0 禁止存储到存储传送 1 允许存储到存储传送,0 禁止通道0的地址保持 1 允许通道0的地址保持 X 如果位0为0,0 允许控制器操作 1 禁止控制器操作,0 正常定时 1 精简的定时 X 如果位0为1,0 固定优先 1 循环优先,0 滞后写选择 1 扩展写选择。 x 如果位3为1,0 1 D D R R E E Q Q 高 低 电 电 有 有 效 效,0 DACK 低电平有 效1DACK 高电平有 效,例4-3 如果把01H装入82C37A-5的命令寄存器,该命令寄存器将进行什么样的操作?,解:因为01H = 00000001B,对应命令寄存器中的各位是: 只有D0 =

10、 1,其它D7D6D5D4D3D2D1 = 0000000,1 允许存储到存储传送,P107图4-2所示,5.方式寄存器,为每个通道配备一个8 位方式寄存器。在程序状态下,由微处理机写入。其格式如图4-300 选择通道001 选择通道110 选择通道2 00 请求方式 00 检查传送 11 选择通道301 单次方式 01 写传送10 块方式 10 读传送 0 禁止自动初始化11 级联方式 11 非法 1 允许自动初始化0 选择地址增值1 选择地址减值,D7,D6,D5,D4,D3,D2,D1,D0,例4-4 先对DMA的通道2规定方式字节,再假设欲将数据从一个外围设备传送至起始,地址为A000

11、H、终止地址为AFFFH的存储器缓冲区,且不能在整个DMA传送操作期间锁定微处理机总线。在DMA操作之后再次初始化,其方式如何设置? 其操作过程: (1)通道2:D1D0 = 10 (2)从I/O设备到存储器为写周期:D3D2 =01 (3)选择自动初始化:D4 = 1 (4)加1操作:D5 = 0 (5)不锁定微处理机总线,只能选单一操作:D7D6 = 01 最后:,0,1,0,1,0,1,1,0,6.请求寄存器,请求寄存器是一个公用寄存器,其服务程序则由软件以及DREQ信号启动。每个通道都配有一个与请求寄存器相关的请求位。且服从于优先级编码的优先级处理。图4 4为请求寄存器的格式:无关 0

12、0 通道001 通道1 请求位复位 10 通道2置1请求位 11 通道3,D7,D6,D5,D4,D3,D2,D1,D0,7. 屏蔽寄存器,82C37A-5内部还提供了一个4位的屏蔽寄存器。每个通道都配备一个与屏蔽寄存器相关的屏蔽位,屏蔽位=1以禁止引入DREQ。屏蔽位=0为开屏蔽,其格式如图4-5锁示:,D7,D6,D5,D4,D3,D2,D1,D0,D7,D6,D5,D4,D3,D2,D1,D0,00通道0 01通道1 10通道2 11通道3,0开通屏蔽 1屏蔽,无关,通道0,通道1,通道2,通道3,无关,表4-3 寄存器编码定义,寄存器,操作,信号,命令,方式,请求,屏蔽,屏蔽,暂时,状

13、态,写,写,写,置/复,写,读,读,CS#,0,0,0,0,0,0,0,IOR#,1,1,1,1,1,0,0,IOW#,0,0,0,0,0,1,1,A3,A2,A1,A0,1,1,1,1,1,1,1,0,0,0,0,1,1,0,0,1,0,1,1,0,0,0,1,1,0,1,1,0,8.状态寄存器,状态寄存器是一个通用寄存器,反映的是设备在某一点的状态信息。如那个通道已达到终止计数的标准,而那个通道还有悬而未决的DMA请求等。状态寄存器的格式如图4-6所示。低4位D3D2D1D0对应4个通道,某个通道达到终止计数标准或遇到外部EOP#信号时,将对应的通道位置1。高4位D7D6D5D4D对应4个

14、通道的请求服务,若某通道有DMA请求服务时,将对应的通道位置1。从源地址读出到写入目标地址的过程:从源地址读出数据 保存在暂时寄存器 启动写周期 写入目的寄存器。,主控清除命令和清屏蔽命令:,主控清除命令:OUT DMA+34H , AL 注意:34 H为主控清除寄存器的地址,只要给于写入操作,即可形成所指定的复位操作。 清屏蔽命令: OUT DMA+38H , AL 同样:38H是清屏蔽寄存器的地址,只要给这个寄存器一个写操作即将屏蔽寄存器清0,9. 暂时寄存器,暂时寄存器的作用是在存储器向存储器的数据传送期间,用来暂时存放数据。传送完成之后,在程序控制之下,由微处理机将最后一个字从暂时寄存

15、器移出。因为在暂时寄存器中,总是保留有前一次存储器到存储器传送时遗留下来的最后一个字节。由微处理机清除。,10.软件命令,这是由三条软件命令组成的附加的专用命令,可以在程序控制之下运行,它不随数据总线上的任一特殊位属性而定。 (1)清首个/最后一个触发器命令 (2)主控清楚命令(前面已讲述) (3)清屏蔽寄存器命令(前面已讲述),表4-4 软件命令码,信号,操作,A3,A2,A1,A0,IOR#,IOW#,1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1,0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1,0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1

16、,0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1,0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1,1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0,读状态寄存器 写命令寄存器 非法 写请求寄存器 非法 写单个屏蔽寄存器 非法 写方式寄存器 非法 清字节指针触发器 读暂存寄存器 主控设备清0 非法 清屏蔽寄存器非发 非法 写全屏蔽寄存器,4.3 82C37A-5操作方式,82C37A-5主要在两种操作周期下进行,这两种周期分别为: (1)DMA空周期(Idle Cycle) (2)DMA现役周期(Active Cycle) 以上每个设备周期又是由若干

17、个状态组成。82C37A-5可以承担7个独立的状态,每个状态都由一个完整的时钟周期组成。字块 单字节非现役状态 请求应答状态 数据传送状态,SI,SI,S0,S0,S1,S2,S3,S4,Sw,Sw,非现役阶段和过渡状态:,状态SI:非现役状态(空闲周期)。在82C37A-5没有有效DMA请求的情况下,就进入这个状态。这时,它检测DREQ请求及对CS#采样是否初始化。 状态S0:是DMA服务程序的第一个状态,(过渡状态)82C37A-5已接收到请求DREQ,表示有外设请求DMA传送数据;DMA向CPU发出总线请求信号HRQ,当CPU向DMA发出应答信号HLDA且DMA收到HLDA时,将进入状态

18、S1、S2、S3、S4。这些状态均处于DMA服务程序的工作状态下,进行数据传送。,数据传送阶段(现役阶段):,1. 直接从I/O设备到存储器: (I/O MEMO)由IOR#和MEMW#信号控制。 2. 从存储器到I/O设备传送: (MEMO I/O)由MEMR#和IOW#信号控制。 3. 从存储器到存储器的传送操作:每执行一次传送操作,既需要读自存储器又需要写入存储器。所使用的几种状态与正常的工作状态类似,只是用二位数给予标识,进行一次传送操作需要8个状态。读出用4个,写入用4个。即:S11.S12.S13.S14和S21.S22.S23.S24。,4.3.1 空闲周期(Idle Cycle

19、),当没有通道请求服务时,82C37A-5进入空闲周期,即SI状态。在这个周期内,82C37A-5采集DREQ请求信号,并测定是否有通道请求DMA服务。 这时,82C37A-5也在采集CS#信号,用以捕捉微处理机对82C37A-5的内部寄存器进行读写操作的意图。当CS# = HLDA=0时,82C37A-5就进入程序状态。 在程序控制状态下,82C37A-5执行专用软件命令。其软件命令与CS#和IOW#一起被译码。,4.3.2 现役周期(Active Cycle),DMA的现役服务有4种:即单次传送方式;数据块传送方式;请求传送方式;联级传送方式。 1. 单次传送方式:设备在程序控制下,仅进行

20、一次传送(一个字节)。字计数值减1,而地址值则根据每次传送的情况减1或加1。当字计数值从0翻转到FFFFH时,终止计数,TC就会进行一次自动初始化。 2. 数据块传送方式:设备由DREQ信号激活,在服务未到终止之前一直进行数据传送操作。当计数值达到FFFFH或者当遇到一个外部进程结束信号EOP时才终止。,3.请求传送方式:在请求传送方式下,设备一直在程序控制之下进行数据传送操作。,除非出现终止计数、或外部结束EOP#或DREQ变成非现役的情况。 4.级联传送方式:这种传送方式是把多个82C37A-5级联在一起,形成一个简易的系统扩充。把来自附加的82C37A-5上的HRQ信号和HLDA信号连到

21、原始的82C37A-5通道的DREQ和DACK信号上。这样就准许附加设备上的DAM请求通过原始设备上的优先级网络电路传送。图4-7是级联的82C37A-5.,级联82C37A-5图示,微 处 理 机,HRQ DREQ HLDA DACK82C37ADREQDACK,82C37AHRQ HLDA,HRQ HLDA 82C37A,一级原始 设备,二级 附加 设备,附加 设备,图4-7,4.3.3 传送类型,在现役的三种传送方式中,每一种传送方式下,均可进行三种不同类型的传送,它们分别为:读、写和检验。 写传送:通过MEMW#和IOR#信号激活的办法把数据从I/O设备传送到存储器。即:读传送:与写传

22、送相反,通过MEMR#和IOW#信号激活的办法将数据从存储器传送到I/O设备。即:,I/O外设,存储器,存储器,I/O外设,检验传送:这是一种伪操作,82C37A-5在进行读或写操作时产生地址信号,并对进,程结束EOP给以响应。 1. 从存储器到存储器传送:用命令寄存器中的可编程位来选择通道0和通道1;通过软件使DREQ = 1来启动通道0进行传送。若HLDA = 1(真),设备就以数据块传送方式的前4种状态从存储器读出后再进行传送。通道0的当前地址为源地址,读出数据,并保存在暂时寄存器中;再由通道1执行一次从暂时寄存器到寄存器的后4状态操作。通道1的字计数到FFFFH时,由TC产生一个进程结

23、束EOP#。,2. 自动初始化处理操作:通过方式寄存器中的可编程位,可以把一个通道设置成,自动化通道。在EOP#之后,自动恢复和初始化原来的值。 3. 优先级:82C37A有两种优先级,第一种是固定优先级;第二种是循环优先级。 4. 压缩定时:为了使系统信息流量达到甚至超过所允许的量度,可将传送时间压缩成两个时钟。 5. 地址生成:为了减少管脚数量,82C37A-5对数据线上的8个高序地址位进行多路操作。在状态1时,用于向外部锁存输出高序地址位;在地址选通信号ADSTB下降沿边将数据线上的这些位装入到锁存器,地址允许信号AEN经三态允许将这几位放到地址总线上。,4.4 82C37A-5的外部特

24、性,4.4.1 82C37A-5的微处理机接口图4-8与图4-9所示: 微 A0A3 处 A4A7 理 DB0DB7 机 ADSTB 接 AEN 口 MEMR# 一MEMW# 边 IOR# HRQ IOW#READY HLDARESET EOP#CLKCS#,82C37A-5,DREQ03,DACK03,1 40 82C37A-520 21,图4-8 图4-9,82C37与微处理机接口图,A2A5A2A15 BE0#BE3#DMAEN#M/IO# D/C# W/R#ADS# D0D31 D0D7,CPU,A0A3 CS# IOR# IOW# 82C37A DMADB0DB7,I/O地址 锁存器

25、,I/O地址 译码器,总线 控制 逻辑,I/O 存储 体写 控制,I/O数据总线 收发/缓冲器,BE0#BE3#,READY#,图4-10,4.4.2 82C37A-5的DMA接口,地址总线数据总线控制总线通道0 通道3,A2A15BE0#BE3#ADS#M/IO#,D/C#W/R# 微处理机 D0D31READY#HOLDHLDA,I/O地址 锁存/译 码器 总线控 制逻辑 存储器 写控制 数据总 线收发 缓冲器,地址锁存/控制逻辑,存储器,I/O 部件0,I/O 部件3,HRQ 82C37A控制器 HLDA,图4-11,I/O电路的I/O接口说明,1. 4个通道:DREQ0DREQ3及DA

26、CK0DACK3三对信号,即请求与应答信号。 2. DMA控制器与微处理机之间的一对为:HRQ与HOLD连接;HLDA与微处理机的HLDA连接。 3. ADSTB为地址选通信号,用ADSTB锁存高8位进入外部地址锁存器的定时信号。 4. 从I/O到存储器的传送:是由IOR#输出通知I/O电路,把数据存放在总线信号线DBODB7上;同时再用MEMW#信号把总线上的有效数据写入存储器。 5. 从存储器到I/O的传送是由MEMR#和IOW#信号控制的。,4.4.3 82C37A-5的应用,1.82C37A-5的系统接口(图4-12所示) OE#,A0A15BUSENHLDAHOLD CPUCLOCK

27、RESETMEMR#MEMW#IOR#IOW# DB0DB7,82C37A-5,A8A15STB 8位锁 存器,系统数据总线,地址总线 A0A15,DREQ03 DACK03,控制 总线,图4-12,2. 82C37A-的初始化编程,(1)对82C37A-5进行检查的程序: 上电检查:采用对4个通道的16位寄存器进行全“1”和全“0”检查。先写入全“1”,读出比较;再写入全“0”,再次读出比较。若全对,可信赖,否则不可靠。其程序段于P123所示。 (2)对动态存储器刷新、初始化处理并启动DMA: 设置方式:通道0用于动态存储器刷新,设命令字00H、禁止存储到存储传送、允许正常时序、固定优先权、

28、滞后写、DREQ高有效、DACK低电平有效。 存储器有效地址0H 字节计数初值FFFFH(64KB) 通道0工作方式为读操作、自动予置、地址加1、单次传送。 通道1(用户留用)。校验传送、禁止自动初始化、地址加1单次、 通道2用于软盘、通道3用于硬盘、,由表4-2、表4-3、表4-4推出通道端口和寄存器端口地址,公用公用,通道,端口,I/O地址,寄存器标识,读(IOR#),写(IOW#),DMA+0,DMA+00 DMA+01,00H 01H,读通道0当前地址寄存 读通道0当前字节计数,写通道0基地址与当前地址 写通道0基字节与当前字节,DMA+1,DMA+02 DMA+03,02H 03H,

29、读通道1当前地址寄存 读通道1当前字节计数,写通道1基地址与当前地址 写通道1基字节与当前字节,DMA+2,DMA+04 DMA+05,04H 05H,读通道2当前地址寄存 读通道2当前字节计数,写通道2基地址与当前地址 写通道2基字节与当前字节,DMA+3,DMA+06 DMA+07,06H 07H,读通道3当前地址寄存 读通道3当前字节计数,写通道3基地址与当前地址 写通道3基字节与当前字节,公用,DMA+08,08H,读状态寄存器,写命令寄存,公用,DMA+09,09H,写请求寄存,公用,DMA+0A,0AH,写单个通道屏蔽,单独,DMA+0B,0BH,写方式寄存器,公用,DMA+0C,

30、0CH,清字节指针触发器,公用,DMA+0D,0DH,读暂时寄存器,写主控清除命令,公用,DMA+0E,0EH,清四个通道屏蔽,DMA+0F,0FH,写四个通道屏蔽,公用,第四章总结,1、对象实体:82C37A-5 DMA控制器。 2、三个基本控制模块,即定时及控制;优先级编码及循环优先级逻辑;命令控制。12个不同类型的内寄存器。四个独立的通道,其中5个寄存器每个通道均配一个,7个寄存器是公用的。 3、各寄存器的特性及功能。 4、寄存器编码定义P111表4-3 5、软件命令码P113表4-4 6、83C37A-5操作方式: (1)控周期。(2)现役周期。 7、现役周期的服务方式: (1)单次。(2)数据块。(3)请求方式。(4)级联方式。 8、传送类型: (1)从I/O到存储器称写,由MEMW#和IOR#激活。 (2)从存储器到I/O 称读,由MEMR#和IOW#激活。(3)检验传送称伪传送。(4)存储器到存储器传送。 9、与微处理机的接口框架 10、82C37A-5的应用P121122 第四章结束,

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

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

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


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

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

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