资源描述:
《微机原理与接口-08:DMA控制器课件.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、微机原理与接口技术之DMA控制器DMA控制器概要可以像CPU那样得到总线控制权得到之后干什么?怎么DMA存储器寻址处理联络信号(包括读写控制)一个DMAC通常可以连接一个或多个I/O接口通道DMA控制器内部包含控制寄存器状态寄存器地址寄存器:当前地址寄存器(可读出),基址寄存器字节计数器:当前字节计数器(可读),基本字节计数器(编程写入)DMA的过程(DREQ,HRQ,HLDA,DMA送地址同时发I/O读和内存写,接口接到DMA响应信号后送数据撤销请求信号,内存收到数据,会送给DMA准备好信号,DMA地址和字
2、节计数修改)DMA控制器8237A的编程结构对外连接信号CLKCS#RESETREADYADSTB(地址选通输出信号)AEN(地址允许信号)MEMR#MEMW#IOR#(从主模块不同)IOW#EOP#(DMA传输结束两种方向)DREQ(极性编程确定)DACKHRQHLDAA3~A0(双向)A7~A4DB7~DB0(从模块时对内部寄存器读出写入,主模块时输出当前寄存器高8位地址)信号的配合作为从模块时初始化、编程AEN无效作为主模块时输出地址时AEN有效地址信号输出16位(偏移地址)8086系统中的20位地址
3、怎么形成工作模式单字节传输模式释放总线后仍测试DREQ块传输模式EOP#的作用(1.字节计数器为0;2.I/O送低电平)请求传输模式DREQ无效,暂停;测试DREQ仍进行,一旦有效继续传输.级联传输模式从片HRQ连至主片DREQ从片HLDA连至主片DACK模式寄存器自动预置:8237自动初始化,计数值为0时,当前地址寄存器和当前字节计数器会从基地址寄存器和基本字节计数器从新取得初值,进入下一个传输过程.时序时序压缩时序不修改高八位地址,不用S3状态.提高传输吞吐量(普通时序,用S3状态)扩展写适应稍慢的存储器或
4、外设普通时序不能完成传输,就要在硬件上通过READY信号使8237插入等待状态.有些设备是用IOW#或MEMW#的下降沿产生READY信号的,为使READY信号早一些到来,把IOW#或MEMW#从下降沿加宽.控制寄存器控制寄存器8237A的控制寄存器控制寄存器的设置使用8237A的启动和停止实现内存到内存的传输建立扩展写信号功能解决优先级问题DREQ信号和DACK信号的极性选择状态寄存器请求寄存器单屏蔽寄存器全屏蔽寄存器字节指针控制DMA通道中地址寄存器和字节计数器的初值设置一位的触发器先/后触发器0:低8位读
5、写,操作后自动变为11:高8位读写,操作后自动清零端口地址各通道的寄存器8237A的编程和使用结合IBMPC/XT系统通道0:动态RAM刷新通道2:软盘驱动器通道3:硬盘驱动器通道1:用户端口地址:0000H关于页面寄存器用于形成20位地址初始化MOVAL,04MOVDX,DMA+8;控制寄存器OUTDX,ALMOVAL,00MOVDX,DMA+0DH;复位OUTDX,ALMOVDX,DMA;4个MOVCX,0004;通道WRITE:MOVAL,0FFHOUTDX,ALOUTDX,ALINCDXINCDXLOO
6、PWRITE初始化MOVDX,DMA+0BH;模式MOVAL,58HOUTDX,ALMOVAL,41HOUTDX,ALMOVAL,42HOUTDX,ALMOVAL,43HOUTDX,ALMOVDX,DMA+8;控制MOVAL,0OUTDX,AL初始化MOVDX,DMA+0AH;单屏蔽OUTDX,ALMOVAL,01OUTDX,ALMOVAL,02OUTDX,ALMOVAL,03OUTDX,AL测试:对0-3通道的地址寄存器值进行设置MOVDX,DMA+2MOVCX,0003READ:INAL,DXMOVAH,A
7、LINAL,DXCMPAX,0FFFFHJNZHHHINCDXINCDXLOOPREADHHH:HLT本章结束谢谢