数字量输入输出-DMA控制系统.pptx

上传人:莉*** 文档编号:80054446 上传时间:2023-03-22 格式:PPTX 页数:60 大小:582.43KB
返回 下载 相关 举报
数字量输入输出-DMA控制系统.pptx_第1页
第1页 / 共60页
数字量输入输出-DMA控制系统.pptx_第2页
第2页 / 共60页
点击查看更多>>
资源描述

《数字量输入输出-DMA控制系统.pptx》由会员分享,可在线阅读,更多相关《数字量输入输出-DMA控制系统.pptx(60页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、CPUDMAC(i8237)内存外设总线响应总线请求第1页/共60页 DMA控制器的功能控制器的功能1、编程设定DMA的传输方式、访问的内存地址、字节数2、对DMA请求(DREQ)屏蔽或允许,确定优先级3、向CPU提出总线请求信号(HRQ)4、接收CPU总线响应信号(HLDA),接管总线5、向被响应的设备传达DMA允许信号(DACK)6、管理传送数据,修改储存器地址和计数字节7、传输完毕,发出EOP结束信号,CPU收回总线控制权第2页/共60页 I/O向DMAC DMAC向 CPU响应 DMAC向 发请求 CPU发请求 DMAC请求 I/O发响应DMADMA传传送结束送结束DMADMA传传送进

2、行送进行DMACDMAC发出发出控制信号控制信号DMACDMAC发出发出内存地址内存地址DMA工作过程第3页/共60页82378237内部结构内部结构8237A有4个独立的DMA通道内部寄存器 基址寄存器(4个)和当前地址寄存器(4个)基字节计数器(4个)和当前字节计数器(4个)临时地址寄存器 状态寄存器 命令寄存器 临时寄存器 模式寄存器(4个)屏蔽寄存器 请求寄存器 第4页/共60页第5页/共60页8237外部引脚第6页/共60页8237A主从两面性:作为DMAC,8237A是可控制总线的主模块。作为I/O芯片,8237A可被处理器读写。注意8237A主-从地址的变化。第7页/共60页82

3、37A引线说明:DB7-DB0:双向数据总线。8237A为从模块时被处理器编程或读状态,DB7-DB0作为数据线,传输数据或命令字。8237A为主模块时DB7-DB0输出地址A15-A8,在 存储器到存储器传送操作时经DB7-DB0,将存储器数据送8237A暂存器。A3-A0:地址线,从模块时为输入,处理器寻址 8237A;主模块时输出最低4位地址。第8页/共60页A7-A4:地址线,主模块时输出A7-A4。CS:片选,从模块时处理器用来寻址8237A。IOR,IOW:I/O读写控制,双向。8237A在从模块时 为输入,在主模块时为输出。AEN 输出,DMA地址允许信号,高电平有效ADSTB

4、输出:8位地址选通信号;在主模块时允许外部锁存器锁存8237A的高8位地址。MEMR,MEMW:输出,存储器读写控制,主模块时送存储器。READY:输入,准备就绪,主模块时控制总线周期的长度,与慢速设备同步。第9页/共60页RESET:输入,复位信号,复位时屏蔽寄存器置 1,其它寄存器置0。EOP:双向。输出时,表明内部通道传送结束;输入时,表明外部强迫DMA传送停止。DREQ0-DREQ3:I/O设备DMA请求输入信号。DACK0-DACK3:输出DMA请求的响应。HRQ:8237A向处理器发出的总线请求信号。HLDA:处理器发给8237A的总线请求响应信号。第10页/共60页第11页/共6

5、0页第12页/共60页DMA 时序图时序图(P347图图5.64)可作外设片选 交出总线(AB/DB/CB)第13页/共60页8237的工作模式1.单字节传输模式(single transfer mode)2.块传输模式(block transfer mode)3.请求传输模式(demand transfer mode)4.级联模式(cascade mode)第14页/共60页1.单字节传输模式(single transfer mode)在单字节传输方式下,DMA控制器每次请求总线只传送一个字节数据,传送完后即释放总线控制权。在此方式下,总线控制权处于CPU与DMA控制器交替控制之中,其间,总

6、线控制权经过多次交换。以从内存输出一个字节数据到外设的DMA传送过程为例,具体说明DMA的操作过程。第15页/共60页(6)内存把数据送数据总线(7)接口锁存数据内存接口DMA控制器I/O 设备8086 和总线控制逻辑HOLD HLDA(1)接口准备就绪,发DMA请求(2)发总线请求(3)总线允许(5)DMA请求得到确认(9)8086收回总线控制权(8)撤销总线请求(4)DMA控制器把地址送地址总线数据总线控制总线地址总线图 11.10 以DMA方式输出一个字节数据的工作过程第16页/共60页若从外设往内存输入一个数据块(输入过程),在单字节传输模式下,其主要工作过程为:(1)I/O接口向DM

7、A控制器发送DMA请求信号;(2)DMA控制器向CPU发总线请求信号,当得到CPU送来的总 线允许信号后,DMA控制器获得总线控制权;(3)DMA控制器将其地址寄存器的内容送到地址总线上;(4)DMA控制器往I/O接口发送DMA响应信号,并接着发出 读I/O接口信号IOR,令I/O接口把数据送到数据总线上;(5)DMA控制器发出存储器写信号MEMW,将数据传送到由地址总线上的地址所指向的内存单元;(6)DMA控制器放弃对总线的控制权;(7)地址寄存器加1;(8)字节计数寄存器减1;(9)如果字节计数寄存器的值不为零,则返回第一步,否则结 束。第17页/共60页8237仅在空闲状态SI(CPU控

8、制总线)时,采样DREQ信号并进行优先级比较,一旦进入DMA过程,8237只在S1S4之间循环,不能再对DREQ信号进行采样或优先级比较,即不会发生DMA嵌套。单字节传输模式的优点是系统总线不至于长时间陷入对某一个DMA通道的服务。PC系列中给用户提供的DMA通道只允许使用单字节传输模式。仍比查询、中断方式快很多第18页/共60页2.块传输模式(block transfer mode)块传输模式是指DMA控制器每次请求总线即连续传送一个数据块,待整个数据块全部传送完成后再释放总线控制权。这种模式传输效率较高。一次所传送数据块的最大长度可达64KBl由于在DMA数据传送期间,CPU须将总线控制权

9、交给DMAC,这相当于断绝了CPU与存储器等外部器件的往来,致使CPU无法获得执行所需的指令和数据,也无法获得外部的中断请求信号,这一方面会影响CPU的工作,同时也将影响整个系统的运转。因此,一次DMA传送的时间不宜过长,以免对整个系统造成不可挽回的影响。第19页/共60页3.请求传输模式(demand transfer mode)和块传输模式相比,仅多了一个功能,即可以通过撤销DREQ信号来打断传输过程。每传输完一个字节,DMA控制器都要检测由I/O接口发来的“DMA请求”信号(DREQ信号)是否仍然有效,如果该信号仍有效,则继续进行DMA传输;否则,就暂停传输,交还总线控制权给CPU,直至

10、“DMA请求”信号再次变为有效,数据块传输则从刚才暂停的那一点继续进行下去。请求传输模式允许DMA过程在单字节传输模式和块传输模式之间自动切换,增加了灵活性,降低了对I/O设备传输速度的要求:如果I/O设备速度足够快,则进行块传输;如果I/O设备速度较慢,则随时可以等一下。第20页/共60页4.级联模式(cascade mode)在级联方式下,将多个8237级联起来,以扩展DMA通道数。后一级的HRQ和HLDA信号连到前一级的DREQ和DACK上。l在级联方式下,当第二级8237的请求得到响应时,第一级8237仅输出HRQ信号而不能输出地址及控制信号,因为第二级的8237才是真正的主控制器,而

11、第一级的8237仅应起到传递DREQ请求信号及DACK应答信号的作用。第21页/共60页 8237的操作类型在前三种工作方式下,DMA传送有三种类型:DMA读传送、DMA写传送、DMA校验传送 DMA读:是指把数据由存储器传送至I/O接口,操作时先由 /MEMR有效从存储器读出数据放 在数据总线上,然 后再由/IOW有效把数据写入I/O接口。DMA写:是指把数据由I/O接口传送至存储器,操作时先由IOR 有效从I/O接口读出数据放在数据总线上,然后再由 /MEMW有效把数据写入存储器.DMA校验:也被称为假传送(pseudo transfers)。在校验传送时,8237虽然也像读传送或写传送一

12、样地产生地址以及EOP信号等,但存储器和I/O接口的读、写控制信号均处于无效状态,所以实际上并不进行数据传送。这种传送类型一般是用于对DMAC器件测试时使用。第22页/共60页8237的存储器到存储器的传送方式(1)要使用两个通道共同完成存储器到存储器的传送方式 通道0 作DMA读通道1 作DMA写 通道0的地址寄存器编程为源区地址;通道1的地址寄存器编程为目的区地址,通道1的字节计数寄存器编程为传送的字节数。由于此传送过程没有外部设备参与,因此没有外部引入的DREQ信号来启动DMA操作。于是,需要对通道0写入一个软件DREQ请求命令,产生HRQ信号启动DMA。第23页/共60页每传送一个字节

13、要用8个S状态,前4个状态为DMA读,后4个状态为DMA写。通道0以当前地址寄存器内容为源地址到源存储器读出数据送入8237内部的暂存寄存器,然后以通道1将自己的当前地址寄存器内容放到地址总线上,发出/MEMW有效信号,把数据从暂存寄存器中写入目的区。每传送一个字节,源地址和目的地址都要修改(增1或减1),字节数减1。直至通道1的字节计数结束,产生EOP有效信号,才停止DMA传送。也允许外部输入EOP有效信号来中止传输。8237的存储器到存储器的传送方式(2)第24页/共60页此时8237是作为CPU的I/O接口芯片:CS选中芯片地址信号A3A0选择内部寄存器IOW和IOR决定对寄存器是读还是

14、写8237初始化编程第25页/共60页寄存器名称寄存器名称位长位长数量数量基地址寄存器基地址寄存器16位位4基字节计数寄存器基字节计数寄存器16位位4当前地址寄存器当前地址寄存器16位位4当前字节计数寄存器当前字节计数寄存器16位位4临时地址寄存器临时地址寄存器16位位1临时字节计数寄存器临时字节计数寄存器16位位1命令寄存器命令寄存器8位位1状态寄存器状态寄存器8位位1暂存寄存器暂存寄存器8位位1模式寄存器模式寄存器6位位4屏蔽寄存器屏蔽寄存器4位位1请求寄存器请求寄存器4位位1第26页/共60页A3 A2 A1 A0通道号通道号读操作读操作(IOR)写操作(写操作(IOW)0 0 0 00

15、读当前地址寄存器读当前地址寄存器写基写基(当前当前)地址寄存器地址寄存器 0 0 0 0读当前字节数寄存器读当前字节数寄存器写基写基(当前当前)字节计数寄存器字节计数寄存器 0 0 1 01读当前地址寄存器读当前地址寄存器写基写基(当前当前)地址寄存器地址寄存器 0 0 1 1读当前字节数寄存器读当前字节数寄存器写基写基(当前当前)字节计数寄存器字节计数寄存器 0 1 0 02读当前地址寄存器读当前地址寄存器写基写基(当前当前)地址寄存器地址寄存器 0 1 0 1读当前字节数寄存器读当前字节数寄存器写基写基(当前当前)字节计数寄存器字节计数寄存器 0 1 1 03读当前地址寄存器读当前地址寄存

16、器写基写基(当前当前)地址寄存器地址寄存器 0 1 1 1读当前字节数寄存器读当前字节数寄存器写基写基(当前当前)字节计数寄存器字节计数寄存器 1 0 0 0四四个个通通道道公公用用读状态寄存器读状态寄存器写命令寄存器写命令寄存器 1 0 0 1写请求寄存器写请求寄存器 1 0 1 0写屏蔽寄存器某一位写屏蔽寄存器某一位 1 0 1 1写模式寄存器写模式寄存器 1 1 0 0清除高低位触发器命令清除高低位触发器命令 1 1 0 1读暂存寄存器读暂存寄存器主清除命令主清除命令 1 1 1 0清除屏蔽寄存器清除屏蔽寄存器 1 1 1 1写屏蔽寄存器所有位写屏蔽寄存器所有位8237寄存器的寻址第27

17、页/共60页 进行DMA传输前,对各寄存器写不同的内容,即进行初始化编程。初始化内容分为数值型和功能型第28页/共60页1.数值型每个通道将传输中要访问的存储器的初始地址写入基地址寄存器和当前地址寄存器(同时写入),把要求传输的字节数写入基字节数计数器和当前字节计数器(同时写入).从高/低触发器零状态起,先写入低字节,再写入高字节第29页/共60页高/低触发器D7 D0 IOW低字节低字节高字节高字节第30页/共60页每传送一个字节,当前寄存器内容加1或减1(由模式寄存器设定)修正,当前字节数计数器从初始值减到0,还要再传输一个字节,从0变成0FFFFH后,才发出EOP信号结束DMA过程.初始

18、化编程时把真正传输的字节数减1后再写到字节数计数器中.第31页/共60页如设置了自动重置功能,当EOP信号产生时,将自动把基地址寄存器和基字节数寄存器的内容再次置入当前地址寄存器和当前字节数寄存器,重复DMA传输.自动重置功能在写模式寄存器时由D5写入第32页/共60页2.功能型命令寄存器模式寄存器请求寄存器屏蔽寄存器状态寄存器第33页/共60页0 禁止存储器到存储器传送1 允许存储器到存储器传送D0D1D2D3D4D5D6D70 DACK低电平有效1 DACK高电平有效0 DREQ高电平有效1 DREQ低电平有效 0 正常写1 扩展写X 若D3=10 固定优先权1 循环优先权0 禁止通道0地

19、址保存1 允许通道0地址保存X 若D0=00 允许8237工作1 禁止工作0 普通时序1 压缩时序命令寄存器第34页/共60页 0 1 2 3最高最低4个通道优先级从高到低的次序为:通道 0,1,2,3固定优先权最高使刚服务过的通道i的优先级变为最低,使通道i+1的优先级变为最高.例如,设某次传输后优先级次序为通道:2 3 0 1最高最低若通道2服务,后优先级次序变为:3 0 1 2最高最低旋转优先权第35页/共60页D7D6规定DACK和DREQ有效极性D5D3选择工作时序D4规定优先权编码方式存储器到存储器传输时,若D1=1,允许将通道1指定的目的存储器一批单元的内容全传到通道0指定的源区

20、的某一单元内容 D2=1,禁止本片工作一片8237仅一个命令控制字,其内容对4个通道都有效。复位后,各位都清零。第36页/共60页00 校验传送01 写传送10 读传送11 非法XX 若D7D6=11D0D1D2D3D4D5D6D70 地址增一1 地址减一0 不重置1 自动重置00 选择通道001 选择通道110 选择通道211 选择通道300 请求传送方式01 单字节传送方式10 块传送方式11 级联方式模式寄存器第37页/共60页D0D1D2D3D4D5D6D700 选择通道001 选择通道110 选择通道211 选择通道30 清除请求1 设置请求无关请求寄存器每个通道都有一个请求位可用软

21、件命令对其进行置位/复位操作第38页/共60页对请求位的置位等效于外部产生一个有效的DREQ(I/O设备的DMA请求信号)信号,二者的优先级排队情况也一样。软件请求不受屏蔽寄存器控制,但只能用于块传送方式。存储器到存储器的传送只能用通道0的软件请求启动。一个通道的DMA结束时,其请求位被复位。整个芯片的复位操作清除全部请求寄存器。关于请求寄存器第39页/共60页D7D6D5D4D3D2D1D000 选择通道001 选择通道110 选择通道211 选择通道30 清除屏蔽位1 置位屏蔽位无关寄存器地址 A3A0=1010B屏蔽控制字格式1控制屏蔽某一通道屏蔽寄存器是公共公共的某位置1时,外部对应的

22、DREQ信号被屏蔽,不予响应第40页/共60页D7D6D5D4D3D2D1D0无关0 不屏蔽通道01 屏蔽通道00不屏蔽通道11屏蔽通道10不屏蔽通道31屏蔽通道30不屏蔽通道21屏蔽通道2寄存器地址A3A0=1111B 屏蔽控制字格式2控制屏蔽4个通道第41页/共60页 对 8237做一次写操作(虚拟写,没有电路接收数据总线上的数据),则将清除屏蔽寄存器所有位 (4个通道全开放)。此时数据总线上可为任意值一般情况下,通道在一次DMA传送结束后,自动设置屏蔽位,再次传输需要用软件清除屏蔽位。自动重置在每次DMA传送结束后不设置屏蔽。清除屏蔽寄存器 (地址A3A0=1110B)第42页/共60页

23、D7D6D5D4D3D2D1D01 通道3请求1 通道2请求1 通道1请求1 通道0请求1 通道0传输结束1 通道1传输结束1 通道2传输结束1 通道3传输结束状态寄存器第43页/共60页没有进入DMA前,CPU通过状态字查询。低4位反映传输完成情况,高4位反映请求情况。正常计数结束,或外部输入EOP,响应相应位复位。单字节传输模式下,CPU获得总线控制权,通过这种查询了解DMA进行情况。状态寄存器第44页/共60页关于软件命令:第45页/共60页A3 A2 A1 A0通道号通道号读操作读操作(IOR)写操作(写操作(IOW)0 0 0 00读当前地址寄存器读当前地址寄存器写基写基(当前当前)

24、地址寄存器地址寄存器 0 0 0 0读当前字节数寄存器读当前字节数寄存器写基写基(当前当前)字节计数寄存器字节计数寄存器 0 0 1 01读当前地址寄存器读当前地址寄存器写基写基(当前当前)地址寄存器地址寄存器 0 0 1 1读当前字节数寄存器读当前字节数寄存器写基写基(当前当前)字节计数寄存器字节计数寄存器 0 1 0 02读当前地址寄存器读当前地址寄存器写基写基(当前当前)地址寄存器地址寄存器 0 1 0 1读当前字节数寄存器读当前字节数寄存器写基写基(当前当前)字节计数寄存器字节计数寄存器 0 1 1 03读当前地址寄存器读当前地址寄存器写基写基(当前当前)地址寄存器地址寄存器 0 1

25、1 1读当前字节数寄存器读当前字节数寄存器写基写基(当前当前)字节计数寄存器字节计数寄存器 1 0 0 0四四个个通通道道公公用用读状态寄存器读状态寄存器写命令寄存器写命令寄存器 1 0 0 1写请求寄存器写请求寄存器 1 0 1 0写屏蔽寄存器某一位写屏蔽寄存器某一位 1 0 1 1写模式寄存器写模式寄存器 1 1 0 0清除高低位触发器命令清除高低位触发器命令 1 1 0 1读暂存寄存器读暂存寄存器主清除命令主清除命令 1 1 1 0清除屏蔽寄存器清除屏蔽寄存器 1 1 1 1写屏蔽寄存器所有位写屏蔽寄存器所有位8237寄存器的寻址第46页/共60页 关于阅读时序第47页/共60页第48页

26、/共60页第49页/共60页第50页/共60页第51页/共60页第52页/共60页第53页/共60页第54页/共60页应用举例(P354/P310)PC/XT机中8237连接简图 EE244WAWBRBRAREADWRITED0D7DACK2DACK3 AENXA9XA8XA7XA6XA5GG2AG2BCBA74LS138Y0CSCLKHLDAMEMWIORIOWMEMRRESETGOED0D7D0D7A3A0A4A7XA0XA7A0A7XA1XA0WRTDMAPGXD0XD7AEN373A16A19A8A15DREQ0DREQ3HRQ8237670ADSTBTo and from buffe

27、red control buses第55页/共60页应用举例利用页寄存器产生存贮器地址页寄存器页寄存器页寄存器选择 页寄存器A19A16A19A16A15A08237DMACDACK32DACKDMA存贮器地址DACK2 DACK3RB RA1 1 Channel 11 0 Channel 30 1 Channel 2通道0用于动态存储器刷新第56页/共60页应用举例写控制读控制第57页/共60页四种I/O的传送方式小结1.无条件传送方式:CPUI/O接口2.查询传送方式:CPU检查指定I/O端口是否准备好读写数据3.中断传送方式:I/O端口向CPU发出中断申请信号,CPU执行优点:I/O端口发出信号,响应时间短,执行速度快,效率高,接口电路不太复杂缺点:速度受限制优点:接口电路简单缺点:速度慢、效率低第58页/共60页4.4.DMADMA传送:外部设备直接与计算机存储器进行传送的I/O方式。优点:数据传送没有软件参与,发出请求信号和传 输数据全部由硬件完成,效率高 速度快缺点:接口电路复杂第59页/共60页感谢您的观看。第60页/共60页

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 应用文书 > PPT文档

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁