文档详情

第8章常用的接口技术-3

飞***
实名认证
店铺
PPT
1.29MB
约57页
文档ID:9030018
第8章常用的接口技术-3_第1页
1/57

第8章 常用的接口技术,,8.3 DMA传输,,DMA传送特点,在存储器和外设或外设和外设之间建立直接传输通路,无需CPU的累加器中转适合高速大批量数据传送的地方硬件复杂、成本较高,DMA传送过程(1),DMA传送过程分为四个阶段申请阶段 DMA控制器收到DMA传送请求后,向CPU发出总线请求信号,申请占用总线响应阶段 CPU在每一个总线周期结束后检测是否有总线请求信号,如果有且总线锁定信号LOCK无效时,将三总线“浮空”,并回送总线应答信号,表示已让出总线,DMA传送过程(2),数据传送阶段 DMA控制器收到总线应答信号后,回发DMA请求应答信号DMA控制器占用总线,分别向存储器和外设发出读/写控制信号,完成数据传送操作传送结束阶段 在规定字节传送完后,DMA控制器通知外设,外设收到此信号后,使DMA请求信号变为无效,进而导致总线请求信号变为无效,DMA控制器释放总线,CPU重新占用总线DMA传送结束,DMA数据传送方式,单字节方式连续方式(块传送方式)请求方式,单字节方式,每传完一个字节,DMAC的总线请求信号HRQ变为无效,交出总线控制权,等待下一次DMA传送请求。

由于每次只占用一个总线周期,也称为总线周期窃取方式HRQ变为无效,,HRQ变为无效,单字节传送流程,,N,Y,N,,允许DMA,,DMAC请求总线,,CPU响应, DMAC获总线控制权,,DMA传送一个字节,块结束?,,释放总线至少一个总线周期,,,地址增量,计数器减量,,,,,DMAC释放总线,,,Y,测试I/O的DREQ DMA请求?,,连续传送方式,一但DMA传送开始,一直要把整个数据块传送完毕才释放总线传送过程中,屏蔽别的DMA操作连续传送流程,,Y,N,,允许DMA,DMA请求?,,DMAC请求总线,,CPU响应, DMAC获总线控制权,,DMA传送一个字节,块结束?,,,,,,地址增量,计数器减量,,,,,DMAC释放总线,,Y,,N,请求传送方式,收到DMA请求后,DMA控制器发出HRQ信号,申请总线传送一个字节,然后检测DREQ信号是否有效;若有效,继续传送;若无效,停止传送,释放总线(此时可让更高优先级的DMA通道进行传输);当字节计数为0或EOP信号变为有效时,DMA传送过程结束该方式与连续传送方式类似请求传送流程,,,,,,N,Y,,CPU响应, DMAC获总线控制权,,DMA传送一个字节,块结束?,,测试I/O的DREQ 有效?,,,,,地址增量,计数器减量,,释放总线,请求中断,,,无效,释放总线,,允许DMA,DMA请求?,,DMAC请求总线,,,,,Y,N,Y,N,DMA传输方式示意图,,,,,,,,,,,,,一个总线周期,,t,,,,,,,,,,DMAC控制总线,共传送n个数据,DMA1,DMA2,DMAn,,CPU重新控制总线,,CPU对总线控制,,连续传送,,,,,,,t,,,,,,,DMA共传送n个数据,DMA1,DMA2,DMAn,,单次传送,,,,,,DMA3,,,,,,,,,,,,t,,,,,,按需传送,,,,,,,,,,DMA传送k个数据,,,,DMA传送n-k个数据,FIFO可用,,FIFO满,,FIFO可用,,FIFO满,,,图例:,,,,,,,,,,8.3.2 DMA控制器,,8237A DMA控制器特点(1),具有4个独立DMA通道,每个通道均有64KB寻址与计数能力具有级联功能具有存储器到存储器的传送功能每个DMA通道有3种数据传送方式每个DMA通道具有不同的优先权DMA请求可由硬件或软件产生能完成3种类型操作DMA读操作 存储器→I/O外设,,8237A DMA控制器特点(2),DMA写操作 存储器←I/O外设DMA校验操作 响应DMA请求,发出DACK信号、地址信号等,不发出读/写信号两种工作状态主动态 占用三总线,成为系统的主控设备。

对存储器或I/O设备进行读写控制被动态 作为挂在总线上的I/O设备,由CPU对其进行控制上电或复位时,DMAC自动处于被动态8237A的外部控制信号(1),DREQ 0~3(In) 接收外设所提出的DMA请求信号有效电平的高低由编程确定DREQ 0的优先级最高DACK 0~3(Out) 向外设发DMA应答信号有效电平的高低由编程确定HRQ(Out) 向CPU发出的总线请求信号高有效HLDA(In) 接收CPU发出的总线应答信号高有效,8237A的外部控制信号(2),IOR/IOW(In/Out) 主态时,作输出,对I/O外设进行读写 从态时,作输入,CPU对8237写命令、参数和读状态MEMR/MEMW(Out) 主态时,对存储器进行读写CS(In) 片选信号,,,,,,8237A的外部控制信号(3),A 0~3(In/Out) 主态时,作访存的低4位 从态时,占用16个I/O端口地址A 4~7(Out) 主态时,作访存低8位中的高4位DB 0~7(In/Out) 主态时,地址、数据分时共用 从态时,只作数据线ADSTB(Out) 地址选通信号。

锁存高8位地址到地址锁存器),8237A的外部控制信号(4),AEN(Out) 地址允许作高8位地址锁存器的输出允许同时禁止其他设备使用系统总线READY(In) 准备就绪信号由外设或存储器发出无效时,DMAC将在DMA周期中插入等待周期EOP(In/Out) 字节数计数器减至FFFFH后,输出负脉冲,表示传送结束 外部送入负脉冲,强迫DMAC中止传送过程,,8237A内部结构,,8237A的内部寄存器(1),,8237A的内部寄存器(2),前8个I/O端口地址 每个DMA通道占用2个数据端口,4个DMA通道共占用8个I/O端口后8个端口为公用的控制端口命令寄存器工作方式寄存器请求寄存器单通道屏蔽寄存器,,,,基地址,,基字节数,数据块,8237A的内部寄存器(3),全屏蔽寄存器状态寄存器暂存寄存器软命令,8237A DMA控制器端口地址,主,从,命令寄存器,D0,,,,,,,1: MM允许0: MM禁止,,,,,1: 通道0地址保持允许0: 通道0地址保持禁止 D0=0时无效,,,,1: DMAC禁止0: DMAC允许,,,1: 压缩时序0: 正常时序,,1: 循环优先级0: 固定优先级,,DREQ极性 0:高有效1:低有效,,1: 扩展写0: 滞后写,,D1,D2,D4,D3,D5,D6,D7,,,,DACK极性 0:低有效1:高有效,D0=1时无效,D3=1时无效,(08H、只写),存储器到存储器传送说明(1),通道0、通道1需协同工作。

通道0用于源数据块,通道1用于目的数据块用软件请求或DREQ作用于通道0,启动DMA传送每传送一字节需用8个时钟周期前4个时钟周期用通道0地址寄存器的地址从源数据块读数据送入8237A的暂存寄存器后4个时钟周期用通道1地址寄存器的地址把暂存寄存器中的数据写入目的数据块通道1的当前字节计数器减至FFFFH时,EOP有效源地址也可保持不变,完成对目的数据块置特定值的功能,,存储器到存储器传送说明(2),,软DMA请求,DMA通道的优先级,固定优先级通道0的优先级最高,通道3的优先级最低循环优先级最近得到服务的通道在下次循环中变成最低优先级,其他通道依次轮换相应的优先级,方式选择寄存器,D0,,,,,选择通道0~3,,,,,00: DMA校验01: DMA写10: DMA读11: 无效,1: 自动初始化0: 不自动初始化,,,1: 地址减量0: 地址增量,,D1,D2,D4,D3,D5,D6,D7,,,(0BH、只写),,,,,00: 请求传送01: 单次传送10: 数据块传送11: 级联方式,,自动初始化方式,每当DMA过程结束信号EOP产生时(内部终止计数或外部输入该信号)将基地址寄存器和基字节计数寄存器的值分别赋给当前地址寄存器和当前字节计数器为下一次DMA传送作好准备,,请求传送,DREQ信号有效就连续传送数据DREQ信号无效,DMA传送被暂时中止,DAMC释放总线,CPU可继续操作此时DMA通道的地址和字节数的中间值仍被保持当DREQ信号再次有效,DMA传送就继续进行如果字节计数寄存器从0减到FFFFH,或者由外部送来一个有效的信号,将终止DMA传送,DMA传送可由外设利用DREQ信号控制传送的过程。

并且,此时可让更高优先级的DMA通道进行传输,单次传送,每次DMA传送时仅传送一个字节传送一个字节之后,字节数寄存器减1,地址寄存器加1或减1,HRQ变为无效DMAC释放系统总线,将控制权还给处理器若此时字节数从0减到FFFFH,则结束DMA传送或重新初始化,一次只传一个字节,DMA传送之间处理器有机会重新获取总线控制权,数据块传送,由DREQ启动就连续地传送数据,直到字节计数寄存器从0减到FFFFH,或由外部输入有效信号终止DMA传送DREQ只需维持有效到DACK有效,一次请求传送一个数据块但在整个DMA传送期间CPU无法控制总线、无法响应其他DMA请求、无法处理中断等,级联方式,请求寄存器,D0,,,,选择通道0~3,,,1: 有请求0: 无请求,,D1,D2,D4,D3,D5,D6,D7,(09H、只写),,用软件产生DMA请求,是不可屏蔽的,单通道屏蔽寄存器,D0,,,,选择通道0~3,,,1: 置屏蔽0: 清屏蔽,,D1,D2,D4,D3,D5,D6,D7,(0AH、只写),,全屏蔽寄存器,D0,,,,1: 置屏蔽0: 清屏蔽,D1,D2,D4,D3,D5,D6,D7,(0FH、只写),,状态寄存器,D0,,,,1: 通道0~3计数终止,D1,D2,D4,D3,D5,D6,D7,(08H、只读),,,,,,1: 通道0~3有请求,软命令,清F/L触发器 写0CH口,使F/L=0,读/写16位中的低8位(此后F/L=1)置F/L触发器 读0CH口,使F/L=1,读/写16位中的高8位总清命令(复位命令) 写0DH口,即RESET清屏蔽寄存器 写0EH口,4个屏蔽位全为“0”清方式寄存器 读0EH口,8237工作时序(1),DMA控制器有两种工作状态及一个过渡状态:空闲状态Si(从态) 无DMA请求时,处于SI状态,此时DMAC不断检测DRQ和CS端有无有效信号。

若CS有效,则接收CPU的命令S0状态 若检测到DRQ有效信 号,进入S0状态8237工作时序(2),主态 包括S1、S2、S3、S4状态,如果存储器或外设的速度跟不上,将在S3和S4之间插入等待状态SwS1状态 更新高8位地址每256次传送中只有一个DMA周期中有S1状态S2状态 输出16位地址;发出DACK信号S3状态 读周期发出MEMR或IOR信号,,,,8237工作时序(3),S4状态 写周期发出IOW 或MEMW信号,,,,DB0~DB7,DACK,ADSTB,HRQ,DREQ,CLK,,,,,,,,,,,,,S1,S0,S0,Si,Si,,,,,,,,,,,,,,,,,,,,,S3,S2,S4,S3,S2,,,,,,,,,,,,,,,,,,,,,Si,Si,S4,,,,,,,,,,,,,,,,HLDA,,,,,,AEN,,,,,,,,,,,,,A0~A7,,,,,,,,,,,DMA传送时序,滞后写、扩展写及压缩时序,滞后写、扩展写压缩时序 去掉S3状态读、写命令均为1个时钟周期S4可加快传输速度。

下载提示
相似文档
正为您匹配相似的精品文档