版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
会计学1DMA控制器微型计算机技术8.1DMA控制器的一般结构和概要一、
DMA概述
为了提高数据传送的速率,人们提出了直接存储器存取(DMA)的数据传送控制方式,即在一定时间段内,由DMA控制器取代CPU,获得总线控制权,来实现内存与外设或者内存的不同区域之间大量数据的快速传送。第1页/共88页二、
DMA数据传送的工作过程①
外设向DMAC发出DMA传送请求。②
DMAC通过连接到CPU的HOLD信号向CPU提出DMA请求。③
CPU在完成当前总线操作后会立即对DMA请求做出响应。CPU的响应包括两个方面:一方面,CPU将控制总线、数据总线和地址总线浮空,即放弃对这些总线的控制权;另一方面,CPU将有效的HLDA信号加到DMAC上,用此来通知DMAC,CPU已经放弃了总线的控制权。第2页/共88页二、
DMA数据传送的工作过程(续)⑤待CPU将总线浮空,即放弃了总线控制权后,由DMAC接管系统总线的控制权,并向外设送出DMA的应答信号。⑥由DMAC送出地址信号和控制信号,实现外设与内存或内存不同区域之间大量数据的快速传送。⑦
DMAC将规定的数据字节传送完之后,通过向CPU发HOLD信号,撤消对CPU的DMA请求。CPU收到此信号,一方面使HLDA无效,另一方面又重新开始控制总线,实现正常取指令、分析指令、执行指令的操作。第3页/共88页需要注意的是,在内存与外设之间进行DMA传送期间,DMAC控制器只是输出地址及控制信号,而数据传送是直接在内存和外设端口之间进行的,并不经过DMAC;对于内存不同区域之间的DMA传送,则应先用一个DMA存储器读周期将数据从内存的源区域读出,存入到DMAC的内部数据暂存器中,再利用一个DMA存储器写周期将该数据写到内存的目的区域中去。二、
DMA数据传送的工作过程(续)第4页/共88页8.2DMA控制器8237A的原理控制寄存器状态寄存器模式寄存器当前地址寄存器当前字节寄存器基本地址寄存器基本字节寄存器通道0通道1通道2通道3请求触发器屏蔽触发器第5页/共88页一、DMA控制器8237A的编程结构含有4个相互独立的通道,每个通道有独立的地址寄存器和字节数寄存器,而控制寄存器、状态寄存器为四个通道所共用。
每个DMA通道具有不同的优先权每个DMA通道可以分别允许和禁止每个DMA通道有4种工作方式,分别为:单字节传送、数据块传送、请求传送、级连方式。通道中地址寄存器的长度为16位,一次传送的最大长度可达64KB多个8237A芯片可以级连,扩展通道数第6页/共88页二、8237A的内部组成和结构第7页/共88页1.四个独立的DMA通道
每个通道都有一个16位的基地址寄存器,一个16位的基字节数计数器,一个16位的当前地址寄存器和一个16位的当前字节数计数器及一个8位的方式寄存器,方式寄存器接收并保存来自于CPU的方式控制字,使本通道能够工作于不同的方式下;
第8页/共88页2.定时及控制逻辑电路
对在DMA请求服务之前,CPU编程对给定的命令字和方式控制字进行译码,以确定DMA的工作方式,并控制产生所需要的定时信号;
第9页/共88页3.优先级编码逻辑
对通道进行优先级编码,确定在同时接收到不同通道的DMA请求时,能够确定相应的先后次序。通道的优先级可以通过编程确定为是固定的或者是旋转的。第10页/共88页4.共用寄存器
除了每个通道中的寄存器之外,整个芯片还有一些共用的的寄存器:1个16位的地址暂存寄存器1个16位的字节数暂存寄存器1个8位的状态寄存器1个8位的命令寄存器1个8位的暂存寄存器,1个4位的屏蔽寄存器1个4位的请求寄存器第11页/共88页寄存器名长度(Bit)数量寄存器名长度(Bit)数量基地址寄存器基字节数寄存器当前地址寄存器当前字节数寄存器地址暂存寄存器字节数暂存寄存器161616161616444411状态寄存器命令寄存器暂存寄存器方式寄存器屏蔽寄存器请求寄存器8886441114118237的内部寄存器
第12页/共88页5.8237的三态缓冲器8237的数据引线,地址引线都有三态缓冲器,因而可以接也可以释放总线。
第13页/共88页三、8237的外部结构
8237是具有40个引脚的双列直插式集成电路芯片
首先分类展开外部引脚第14页/共88页1.请求与响应信号DREQ0~DREQ3:DMA通道请求。当外设需要请求DMA服务时,将DREQ信号置成有效电平,并要保持到产生响应信号。对应于四个独立的通道,DREQ的有效电平可以通过编程来加以确定,优先级可以固定,也可以旋转。HRQ:总线请求。8237A输出有效的HRQ高电平,向CPU申请使用系统总线。HLDA:总线响应。8237A接受来自CPU的响应信号HLDA,取得了总线的控制权。DACK0~DACK3:DMA通道响应。8237A使请求服务的通道产生相应的DMA响应信号。第15页/共88页2.DMA传送控制信号A0~A7:地址线。输出低8位存储器地址。DB0~DB7:数据线。输出高8位存储器地址;存贮器与存贮器的传送期间,用于数据传送。ADSTB:地址选通。DMA传送开始时,输出高有效,把在DB0~DB7上输出的高8位地址锁存在外部锁存器中。AEN:地址允许。输出高有效,将锁存的高8位地址送入系统总线,与芯片此时输出的低8位地址组成16位存储器地址。第16页/共88页2.DMA传送控制信号(续)MEMR:存储器读。有效将数据从存储器读出MEMW:存储器写。有效将数据写入存储器IOR:I/O读。有效将数据从外设读出IOW:I/O写。有效将数据写入外设READY:准备好。DMA传送的S3下降沿检测到为低时,插入等待状态Sw,直到READY为高才进入第4个时钟周期S4。EOP:过程结束。DMA传送过程结束,输出一个低有效脉冲。外部输入低脉冲信号,则终结DMA传送。
第17页/共88页3.处理器接口信号CS:片选。低有效时,微处理器与8237A通过数据线通信,主要完成对8237A的编程。IOR:I/O读。读取8237A内部寄存器低电平有效的双向三态信号引脚。在空闲周期,它是一条输入控制信号,CPU利用这个信号读取8237内部状态寄存器的内容;而在DMA传送时,它是读端口控制信号输出引脚,与相配合,使数据由外设传送到内存。IOW:I/O写。写入8237A内部寄存器。低电平有效的双向三态信号引脚,其功能与相对应。
第18页/共88页3.处理器接口信号(续1)DB0~DB7:8条双向数据线。用于8237A与微处理器进行数据交换。在CPU控制系统总线时,可以通过DB0~DB7对8237编程或读出8237的内部状态寄存器的内容;在DMA操作期间,由DB0~DB7输出高8位地址信号A8~A15,并利用ADSTB信号锁存该地址信号。在进行内存不同区域之间的DMA传送时,除了送出A8~A15地址信号外,还分时输入从存储器源区域读出的数据,送入8237的暂存寄存器中,等到存储器写周期时,再将这些数据通过这8个引脚,由8237的暂存寄存器送到系统数据总线上,然后写入到规定的存储单元中去。第19页/共88页3.处理器接口信号(续2)A3~A0:4条双向三态的低位地址信号引脚。在空闲周期,接收来自于CPU的四位地址信号,用以寻址8237内部的不同的寄存器(组);在DMA传送时,输出要访问的存储单元或者I/O端口地址的低4位。A7~A4
:4条三态地址信号输出引脚。在DMA传送时,输出要访问的存储单元或者I/O端口地址的中4位。
第20页/共88页3.处理器接口信号(续3)CLK:时钟信号输入引脚,对于标准的8237,其输入时钟频率为3MHz,对于8237-2,其输入时钟频率可达5MHz。
RESET:复位信号,输入引脚,用来清除8237中的命令、状态请求和临时寄存器,且使字节指针触发器复位并置位屏蔽触发器的所有位(即使所有通道工作在屏蔽状态),在复位之后,8237工作于空闲周期SI。第21页/共88页四、8237A的两种工作状态作为从模块工作时(空闲周期):当CPU把数据送到8237A的寄存器或者从8237A的寄存器取出时,8237如同接口一样作为总线的从模块工作,受CPU控制的工作状态。这时,8237A接收16位地址,用较高的12位地址产生片选信号,用底4位地址来选择内部寄存器。第22页/共88页四、8237A的两种工作状态(续)作为主模块工作时(有效周期):当8237A作为主模块工作时,它会往总线上提供要访问的内存地址,地址的低8位放在A7~A0,而地址的高8位放在D7~D0。
作为主模块工作时,8237A还必须输出必要的读写信号,IOR、IOW、MEMR、MEMW。第23页/共88页8237A引脚的两种作用与CPU连接(从模块)的引脚与外设连接(主模块)的引脚CLK、RESETA0~A3、CS*、DB0~DB7IOR*、IOW*HRQ、HLDAAEN、ADSTB、READY、EOP*A0~A7、DB0~DB7IOR*、IOW*、MEMR*、MEMW*DREQ0~DREQ3、DACK0~DACK3第24页/共88页五、
8237的工作周期
·空闲周期当8237的任一通道都无DMA请求时,则其处于空闲周期或称为SI状态,空闲周期由一系列的时钟周期组成,在空闲周期中的每一个时钟周期,8237只做两项工作:8237A采样CS片选信号,该信号有效,CPU就要对8237A进行读/写操作8237A还采样通道的请求输入信号DREQ,该信号有效,就进入有效周期进入有效周期第25页/共88页8237A采样到外设有DMA请求,就脱离空闲周期进入有效周期8237A作为系统的主控芯片,控制DMA传送操作DMA传送借用系统总线完成,其控制信号以及工作时序类似CPU总线周期进入DMA传送时序五、
8237的工作周期
·有效周期第26页/共88页DMA传送时序DB0~DB7DACKADSTBHRQDREQCLKS1S0S0SiSiS3S2S4S3S2SiSiS4HLDAAENA0~A7MEMR(IOR)IOW(MEMW)S1状态——输出16位存储器地址AEN输出高电平,表示DMA传送S2状态——输出DMA响应信号和控制信号DMA读:MEMR*和IOW*有效DMA写:IOR*和MEMW*有效S3和Sw状态——检测数据传送是否能够完成,决定是否插入等待状态SwS4状态——完成数据传送第27页/共88页六、8237A的工作方式DMA传送方式·
单字节传送方式 ·
数据块传送方式·
请求传送方式 ·
级连方式DMA传送类型·
DMA读 ·
DMA写 ·DMA检验存储器到存储器的传送第28页/共88页1.DMA传送-单字节方式每次DMA传送时仅传送一个字节传送一个字节之后,当前字节数寄存器减1,当前地址寄存器加1或减1,HRQ变为无效每传送完这一个字节,8237A释放系统总线,
DMAC就将总线控制权交回CPU。若传送后使字节数从0减到FFFFH,则终结DMA传送或重新初始化特点:一次传送一个字节,效率略低DMA传送之间CPU有机会重新获取总线控制权第29页/共88页1.DMA传送-数据块方式在这种传送方式下,DMAC一旦获得总线控制权,便开始连续传送数据。每传送一个字节,自动修改当前地址及当前字节数寄存器的内容,直到字节数寄存器从0减到FFFFH终止计数,或由外部输入EOP有效信号终结DMA传送,将总线控制权交给CPU。一次所传送数据块的最大长度可达64KB,数据块传送结束后可自动初始化。DREQ只需维持有效到DACK有效特点:一次请求传送一个数据块,效率高整个DMA传送期间CPU长时间无法控制总线(无法响应其他DMA请求、无法处理中断等)第30页/共88页1.DMA传送-请求方式DREQ信号有效就连续传送数据DREQ信号无效,DMA传送被暂时中止,8237A释放总线,CPU可继续操作DMA通道的地址和字节数的中间值仍被保持DREQ信号再次有效,DMA传送就继续进行如果字节数寄存器从0减到FFFFH,或者由外部送来一个EOP有效的信号,将终止计数特点:DMA操作可由外设利用DREQ信号控制传送的过程第31页/共88页1.DMA传送-级连方式用于通过多个8237A级连以扩展通道第二级的HRQ和HLDA信号连到第一级某个通道的DREQ和DACK上第二级芯片的优先权等级与所连通道的优先权相对应第一级只起优先权网络的作用,实际的操作由第二级芯片完成还可由第二级扩展到第三级等第32页/共88页1.DMA传送-级连方式第33页/共88页2.DMA传输类型DMA读——把数据由存储器传送到外设由MEMR有效从存储器读出数据,由IOW有效把这一数据写入外设DMA写——把外设输入的数据写入存储器由IOR有效从外设输入数据,由MEMW有效把这一数据写入存储器。DMA检验——空操作8237A不进行任何检验外设可以进行DMA校验存储器和I/O控制线保持无效,不进行传送第34页/共88页3.存储器到存储器的传送固定使用通道0和通道1通道0的地址寄存器存源区地址通道1的地址寄存器存目的区地址,通道1的字节数寄存器存传送的字节数传送由设置通道0的软件请求启动每传送一字节需用8个时钟周期前4个时钟周期用通道0地址寄存器的地址从源区读数据送入8237A的临时寄存器后4个时钟周期用通道1地址寄存器的地址把临时寄存器中的数据写入目的区第35页/共88页4.DMA通道的优先权方式固定优先权方式——优先权固定通道0优先权最高,通道1其次,通道2再次,通道3最低循环优先权方式——优先权循环变化最近一次服务的通道在下次循环中变成最低优先权,其他通道依次轮流相应的优先权DMA传送不存在嵌套第36页/共88页5.自动初始化方式每当DMA过程结束信号EOP产生时(不论是内部终止计数还是外部输入该信号)用基地址寄存器和基字节数寄存器的内容,使相应的现行寄存器恢复为初始值,包括恢复屏蔽位、允许DMA请求这样就作好了下一次DMA传送的准备第37页/共88页1.什么叫DMA传送方式?试说明DMA方式传送数据的主要步骤。2.试比较DMA传输、查询式传输及中断方式传输之间的优缺点和适用场合?3.DMA控制器芯片Intel8237有哪几种工作方式?各有什么特点?4.Intel8237支持哪几种DMA传输类型?习题与思考第38页/共88页8.58237A的寄存器8237A共有10种内部寄存器,对它们的操作有时需要配合3个软件命令8237A的“软件命令”不需要通过数据总线写入控制字直接由地址和控制信号译码实现全部都用地址A0~A3区分第39页/共88页1.基地址寄存器用以存放16位地址,只可写入而不能读出。在编程时,它与当前地址寄存器被同时写入某一起始地址,可用作内存区域的首地址或末地址。在8237进行DMA数据传送的工作过程中,其内容不发生变化,只是在自动预置时,其内容可被重新写到当前地址寄存器中去。第40页/共88页2.基字节数寄存器用以存放相应通道需要传送数据的字节数,只可写入而不能读出。在编程时它与当前字节数寄存器被同时写入要传送数据的字节数。在8237进行DMA数据传送的工作过程中,其内容保持不变,只是在自动预置时,其内容可以被重新写到当前字节数寄存器中去。第41页/共88页3.当前地址寄存器
保持DMA传送的当前地址值每次传送后该寄存器的值自动加1或减1CPU可以对其进行读写操作。在选择自动预置时,每当字节计数值减为0或外部有效后,就会自动将基地址寄存器的内容写入当前地址寄存器中,恢复其初始值。
基地址寄存器存放初始值第42页/共88页4.当前字节数寄存器
保持DMA传送的剩余字节数每次传送后,该寄存器的值减1这个寄存器的值可由CPU写入和读出该寄存器的值减至0,再减1(从0减到FFFFH)时,终止计数基字节数寄存器存放初始值传送N个字节,初始值为N-1第43页/共88页5.地址暂存寄存器和字节数暂存寄存器这两个16位的寄存器和CPU不直接发生关系,我们也不必要对其进行读/写操作,因而对如何使用8237没有影响。第44页/共88页6.模式寄存器每个通道有一个8位的模式寄存器,但是它们占用同一个端口地址,用来存放方式字,依靠方式控制字本身的特征位来区分写入不同的通道,用来规定通道的工作方式,各位的作用如下:请看方式字的格式第45页/共88页方式字格式D7D6D5D4D3D2D1D000请求模式01单字节模式10数据块模式11级联模式0地址增量(加1)1地址减量(减1)0禁止自动初始化1允许自动初始化00 DMA校验01 DMA写10 DMA读11 非法×× 若D7D6=1100通道001通道110通道211通道3第46页/共88页D7D6D5D4D1D3D2D000通道001通道110通道211通道300请求传输方式01单字节传输方式
10块传输方式11级联传输方式00校验传输01写传输10读传输11无意义通道选择方式选择传输类型选择自动预置功能选择:0—禁止;1—允许。地址增/减1选择:0—增1;1—减1。方式字格式自动预置就是当某一通道按要求将数据传送完后,又能自动预置初始地址和传送的字节数,而后重复进行前面已进行过的过程。校验传送就是实际并不进行传送,只产生地址并响应EOP信号,不产生读写控制信号,用以校验8237的功能是否正常。第47页/共88页7.控制寄存器
存放8237A的命令字设置8237A芯片的操作方式影响每个DMA通道复位时使命令寄存器清零设置D2=1才使8237A可以作为DMA控制器请看命令字的格式第48页/共88页命令字格式D7D6D5D4D3D2D1D00DACK低有效1DACK高有效0DREQ高有效1DREQ低有效0滞后写1扩展写×若D3=10固定优先权1循环优先权0正常时序1压缩时序×若D0=10允许DMAC工作1禁止DMAC工作0允许通道0地址改变1禁止通道0地址改变×若D0=00禁止存储器之间传送1允许存储器之间传送第49页/共88页D7D6D5D4D1D3D2D00DACK低电平有效1DACK高电平有效
0禁止存储器到存储器传输1允许存储器到存储器传输0DREQ高电平有效1DREQ低电平有效0禁止通道0地址保持1允许通道0地址保持。D0=0时无意义0不扩展写入1扩展写入0启动8237工作1停止8237的工作0固定优先权
1旋转优先权0正常时序1压缩时序命令字格式第50页/共88页命令字说明D0位用以规定是否允许采用存储器到存储器的传送方式。若允许这样做,则利用通道0和通道1来实现。D1位用以规定通道0的地址是否保持不变。如前所述,在存储器到存储器传送中,源地址由通道0提供,读出数据到暂存寄存器,而后,由通道l送出目的地址,将数据写入目的区域;若命令字中D1=0,则在整个数据块传送中(块长由通道1决定)保持内存源区域地址不变,因此,就会把同一个数据写入到整个目的存储器区域中。第51页/共88页命令字说明(续)D2位是允许或禁止8237芯片工作的控制位。D3位用于选择总线周期中写信号的定时。例如,PC机中动态存储器写是由写信号的上升沿启动的。若在DMA周期中写信号来得太早,可能造成错误,所以PC机选择D3=0。D5位用于选择是否扩展写信号。在D3=0(正常时序)时,如果外设速度较慢,有些外设是用8237A送出的和信号的下降沿来产生的READY信号的。为提高传送速度,能够使READY信号早些到来,须将和信号加宽,以使它们提前到来。因此,可以通过令D5=1使和信号扩展2个时钟周期提前到来。
第52页/共88页8.请求寄存器
用于在软件控制下产生一个DMA请求除硬件DMA请求外,当工作在数据块传送方式时也可以通过软件发出DMA请求若是存贮器到存贮器传送,则必须由软件请求启动通道0请看请求字的格式第53页/共88页请求字格式D7D6D5D4D3D2D1D0任意0复位1置位00通道001通道110通道211通道3第54页/共88页9.屏蔽寄存器控制外设硬件DMA请求是否被响应(为0允许),各个通道互相独立。3种方法:单通道屏蔽字只对一个DMA通道屏蔽位进行设置主屏蔽字对4个DMA通道屏蔽位同时进行设置清屏蔽寄存器命令使4个屏蔽位都清零(允许)复位使4个通道全置于屏蔽状态当一个通道的DMA过程结束,如果不是工作在自动初始化方式,则这一通道的屏蔽位置位,必须再次编程为允许,才能进行下次DMA传送请看屏蔽字的格式第55页/共88页单通道屏蔽字格式D7D6D5D4D3D2D1D0任意0清屏蔽位1置屏蔽位00通道001通道110通道211通道3第56页/共88页主屏蔽字格式D7D6D5D4D3D2D1D0任意Di=0清通道I屏蔽位Di=1置通道I屏蔽位第57页/共88页10.状态寄存器可由CPU读取低4位反映读命令这个瞬间每个通道是否产生TC(为1,表示该通道传送结束)高4位反映每个通道的DMA请求情况(为1,表示该通道有请求)状态位在复位或被读出后,均被清零第58页/共88页D7D6D5D4D1D3D2D0
D7=1通道3请求D0=1通道0已终止计数D1=1通道1已终止计数D2=1通道2已终止计数D4=1通道0请求D6=1通道2请求D5=1通道1请求D3=1通道3已终止计数8237的状态寄存器
第59页/共88页11.临时寄存器在存储器到存储器的传送方式下,临时寄存器保存从源存储单元读出的数据,该数据又被写入到目的存储单元传送完成,临时寄存器只会保留最后一个字节,可由CPU读出复位使临时寄存器内容为零第60页/共88页8.78237A的编程8327A芯片的初始化编程:只要写入命令寄存器可先输出主清除命令,进行软件复位然后写入命令字命令字影响所有4个通道的操作第61页/共88页8.78237A的编程(续1)DMA通道的DMA传送编程:将存储器起始地址写入地址寄存器(如果采用地址减量工作,则是结尾地址)将本次DMA传送的数据个数写入字节数寄存器(个数要减1)确定通道的工作方式,写入方式寄存器写入屏蔽寄存器复位通道屏蔽位,允许DMA请求请看实例第62页/共88页DMA通道0的刷新编程
out0dh,al ;DMAC主清除命令
moval,0
out08,al ;DMAC命令字
moval,0
out00,al ;通道0的地址寄存器低字节
out00,al ;通道0的地址寄存器高字节
moval,0ffh
out01,al ;通道0的字节数寄存器低字节
out01,al ;通道0的字节数寄存器高字节
moval,58h
out0bh,al ;通道0模式字
moval,0
out0ah,al ;通道0屏蔽字IBMPC/XT第63页/共88页8237A的编程(续2)两种方法反映DMA过程结束(即终止计数、发生TC):状态寄存器的低4位信号(需配合DACK响应信号确定通道)应用程序处理DMA传送过程结束:采用软件查询状态字采用硬件中断在中断服务程序处理第64页/共88页8237A的应用8237A在PC系列机的使用情况DMA写传送DMA设定子程序第65页/共88页8237A在IBMPC系列机上的应用IBMPC/XT机使用一片8237A通道0:动态存贮器DRAM刷新通道1:用户使用或SDLC卡通道2:内存与软盘的高速数据交换通道3:内存与硬盘的高速数据交换IBMPC/AT机采用两片8237ADMAC1包含通道0~3,支持8位数据传送DMAC2组成通道4~7,通道5~7支持16位数据传送,通道4用于级连第66页/共88页1.8237A的初始化8237A初始化写入命令字为0,确定了:DREQ高电平有效、DACK低电平有效,固定优先权(依次为通道0、1……7)不进行存储器到存储器的数据传输PC机用DMA控制电路进行刷新,所以DMA传送不能长时间占用总线(不应超过15s),一般只能使用单字节传送方式在PC系列机上,用户如果使用DMA通道,要注意遵从上述系统要求。除了要禁止8237A工作,用户通常不必操作命令寄存器第67页/共88页2.高位地址的形成DMA传送时的高位地址由“页面寄存器”提供页面寄存器由CPU的输出指令实现写入DMAC1的通道0~通道3:8237A提供系统A0~A15低16位地址,页面寄存器输出系统A16~A23高8位地址DMAC2的通道5~通道7:8237A提供系统A1~A16的16位地址,而系统A0被强迫为逻辑0,页面寄存器仅输出高7位地址A17~A23页面寄存器不会自动增减量高位地址在DMA传送过程中不改变第68页/共88页DMA写传送CLKDCLK
D0~D7Q
+5V外设数据外设DMA请求74LS37474LS74RESETDRQ1
DACK1IOROERS第69页/共88页通道1工作方式 moval,45h ;通道1方式字:
;单字节写传送,地址增量,非自动初始化
out0bh,al nop ;延时
nop
out0ch,al ;清高/低触发器命令DMA写传送第70页/共88页通道1起始地址 moval,0
out02h,al ;写入低8位地址到地址寄存器
moval,50h
out02h,al ;写入中8位地址到地址寄存器
moval,04h
out83h,al ;写入高8位地址到页面寄存器DMA写传送第71页/共88页通道1传送字节数 movax,2048-1 ;AX←传送字节数减1
out03h,al ;送字节数低8位到字节数寄存器
moval,ah
out03h,al ;送字节数高8位到字节数寄存器
moval,01
out0ah,al ;单通道屏蔽字:允许通道1的DMA请求
…… ;其他工作DMA写传送第72页/共88页通道1传送结束判断dmalp: inal,08h ;读状态寄存器
andal,02h ;判断通道1是否传送结束
jzdmalp ;没有结束,则循环等待
…… ;传送结束,处理转换数据DMA写传送DMA传送过程结束的判断:软件查询方式第73页/共88页DMA设定子程序系统ROM-BIOS的DMA设定子程序:DMA通道2传送编程软盘的读写利用DMA通道2传送数据被读软盘、写软盘和软盘检验等软盘I/O功能程序调用第74页/共88页通道2工作方式 pushcx ;保存CX cli ;关中断
out0ch,al ;清高/低触发器命令
pushax ;延时
popax out0bh,al ;将AL中的方式字写入通道2DMA设定子程序第75页/共88页形成物理地址
movax,es movcl,4 rolax,cl ;段地址左移4位
movch,al ;高位存入CH andal,0f0h addax,bx ;加段内偏移地址
jncj33 incch ;物理地址形成j33: pushax ;保存AXDMA设定子程序第76页/共88页通道2起始地址
out04h,al ;写入地址寄存器
moval,ah out04h,al moval,ch andal,0fh out81h,al ;写入页面寄存器DMA设定子程序第77页/共88页计算传送字节数
movah,dh ;取扇区数,计算传送的字节数
subal,al ;AX为扇区数乘256 shrax,1 ;AX为扇区数乘128 pushax ;暂存AX movbx,6 callGET-PARM ;调用参数子程序
movcl,ah ;出口参数:AH=0/1/2/3 popax ;恢复AX shlax,cl ;AX为DMA传送的字节数DMA设定子程序第78页/共88页通道2传送字节数 decax ;字节数减1 pushax ;保存
out05h,al ;写入字节数寄存器
moval,ah out05h,al sti ;开中断DMA设定子程序第79页/共88页设置出口参数
popcx ;弹出传送的字节数
popax ;弹出物理地址的低16位地址
addax,cx ;相加,根据结果建立标志CF popcx ;恢复CX moval,02h ;允许通道2进行DMA响应
out0ah,al ret ;返回DMA设定子程序DMA传送过程结束的判断:硬件中断方式第80页/共88页1.Intel8237占几个端口地址?这些端口在读/写时操作过程中的作用是什么?2.试说明由Intel8237控制,把内存中的一个数据块向接口传送的过程。3.某8086系统中使用8237完成从存储器到存储器的数据传送,已知源数据块首地址的偏移地址值为1000H,目标数据块首地址的偏移地址值为1050H,数据块长度为100字节。试编写初始化程序,并画出硬件连接图。4.某8086系统中使用8237完成从存储器到外设端口的数据传送任务,若已知通道0的地址寄存器、字节计数器、方式寄存器端口地址分别为EEE0H,EEE1H和EEE8H,要求通过通道0将存储器中偏移地址为1000H~10FFH的内容传送到显示器输出,试编写初始化程序。习题与思考:第81页/共88页第8章教学要求1.了解8237A引脚特点和工作时序2.
掌握8237A的各种工作方式3.
理解8237A内部寄存器的作用和编程4.
了解8237A在IBMPC系列机上的应用情况第82页/共88页跨越物理段示例40000H64KB物理段50000H60000H64KB物理段64KB40F00H50F00H此处跨越物理段第83页/共88页通道寄存器操作CSIORIOWA3A2A1A0字节指针触发器D0~D70基和当前地址写010
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 轻度前列腺增大日常养护指南
- 2026芜湖护理面试题及答案大全
- 2026咸阳幼教面试题目及答案
- 2026消防救援员面试题及答案
- 2026新乡银行面试题目及答案
- 医院门诊综合楼装修工程施工方案
- 水路(船舶)运输合同范文
- 营业员劳动合同书
- 2026年矿山设备故障AI诊断技术
- 2026年工业质检数字化升级:AI算法与传统检测技术的融合路径
- 跨部门协作会议纪要模板及行动计划
- 家庭触电事故案例分析
- 社区食堂规范运营制度范本
- 2025年教师招聘考试必考的351个教育综合基础知识 (超强)
- GB/T 39693.4-2025硫化橡胶或热塑性橡胶硬度的测定第4部分:用邵氏硬度计法(邵尔硬度)测定压入硬度
- 《电子信息产品名称编码规则编制说明》
- 电铲知识学习培训课件
- 江门市重点行业领域安全风险常见隐患识别及整改指引(行业领域)(压缩版)
- 发改价格〔2007〕670号建设工程监理与相关服务收费标准
- 金融产品路演
- 融入AI技术的2024版《荷塘月色》教学课件发布
评论
0/150
提交评论