微机原理与接口技术-

上传人:仙*** 文档编号:244062939 上传时间:2024-10-02 格式:PPT 页数:50 大小:549.50KB
返回 下载 相关 举报
微机原理与接口技术-_第1页
第1页 / 共50页
微机原理与接口技术-_第2页
第2页 / 共50页
微机原理与接口技术-_第3页
第3页 / 共50页
点击查看更多>>
资源描述
单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,可 编 程,DMA,控 制 器,DMA(Direct Memory Access),传送是微型计算机中一种十分重要的工作方式,它主要用于需要大批量、高速度的数据传送系统中,如软硬盘、光盘的存取,高速数据采集系统,图象处理以及高速通信系统等。,而采用,DMA,传送方式时,存储器与外设直接传送数据,不需要,CPU,的干预。减少了中间环节,并且修改地址指针和控制数据块传送长度等工作,均由硬件完成,因此大大提高了传送速度。,在,DMA,传送方式时,,,CPU,将系统的控制权交给,DMA,控制器,(DMAC),由,DMAC,负责完成数据传送的全过程。,8237,工作过程,DMA,方式传送的一般过程,:,分四个阶段:,1).,请求,:,I/O,DMAC CPU,2).,响应,:,CPU DMAC I/O,HRQ,DREQ,HLDA,DACK,(CPU,交出,AB,、,DB,、,CB),3).,传送,:,4).,结束,:,DMAC,存储器,I/O,(发AB、MEMW、MEMR),(发IOR、IOW),DMAC,I/O,CPU,DMAC,发,EOP,并撤,DACK,撤HRQ,撤HLDA,DB,并收回,AB,、,DB,、,CB,DMAC,在系统中具有两种工作状态:,主动态,和,被动态,。也就是在系统中处于,主控器,和,被控器,两种不同地位。,在主动态时,,,DMAC,控制系统总线,(AB,、,DB,、,CB),向存储器和外设发送地址信息和读写信息,控制数据传送。,DMA,写操作时,它发出,IOR,和,MEMW,信号,数据由外设传到存储器;,DMA,读操作时,它发出,MEMR,和,IOW,信号,数据从存储器传到外设。,在被动态时,,,DMAC,与系统中其他部件一样,接受,CPU,的访问和初始化编程。,可编程,DMA,控制器,8237A-5,1.,8237A,5 DMA,控制器的特点,:,(1),有四个独立的通道,可控制四个,I/O,设备进行,DMA,传送;,(2),每个通道均有,64KB,寻址与计数能力,(,即地址线,16,根,计数器为,16,位,),;,(3),可以用级联方式扩充更多的通道;,(4),能进行,I/O,设备与系统存储器以及系统存储器与存储器之间直接传送数据;,(5),数据传送率可达,1,6MB/s(,时钟频率为,5MHZ,时,),;,(6),具有三种传送模式:单一;成组和查询,,四种传送类型:,DMA,读;,DMA,写;存储器传存储器;校验,(7),40,脚双列直插式,,+5V,供电。,8237A,5,的外部特性,8237,引,脚,8237A,内部寄存器及编程命令,表,10-5 PC,XT,的,8237A,寄存器口地址,1.,工作方式寄存器,(,DMA,11,),D7,D6,D5,D4,D3,D2,D1,D0,模式选择,00=,询问,01=,单一,10=,成组,11=,级联,地址,1=-1,0=+1,自动予,置,1=,自动,0=,非自动,类型选择,00=,校验,01=DMA,写,10=DMA,读,11=,无效,通道选择,00=0,通道,01=1,通道,10=2,通道,11=3,通道,l,),D7 D6,决定,DMA,操作模式。在主动,态,即,DMA,有效周期时,DMA,控制器共有四种操作模式:, 单一传送模式,:,在这种模式下,通道,启动一次只传送一个数据,,传送之后就释放系统总线并交还给,CPU,。,这种方式又称为,总线周期窃取方式,,每次总是窃取一个总线周期完成一个字节的传送之后立即归还总线。, 成组传送模式,:在这种方式下,,通道启动一次可把整个数据块传送完,。当外设准备好时,向,DMAC,发,DREQ,,,DMAC,则向,CPU,发出,HRQ,请求占用总线,,CPU,同意,HRQ,请求,则向,DMAC,发回,HLDA,信号,这时,,DMAC,向外设发,DACK,,,开始传送数据,直到整个数据块传送完为止。,这种模式下,进行传送期间,,CPU,失去总线控制权,因而别的,DMA,请求也就被禁止,。,注意!,DMA,无嵌套, 询问传送模式,:,这种方式与成组传送模式类似,其不同点在于每传送一个字节之后要检测(询问),DREQ,引脚是否有效,,若无效,则立即“挂起”,但并不释放总线,若变成有效,则继续传送。,级联模式,:这种方式不是数据传送模式,而是表示,8237A,用于多片连接方式,第一级为主片,第二级为从片。,2,),D3 D2,位决定,DMA,传送类型。在上述三种数据传送模式中,如何表示数据的传送方向呢?,8237A,对每种模式提供了四种类型,表示数据传送的方向。,DMA,读,:,数据从内存读出,写到,I,O,设备,DMA,写,:,数据从,I,0,设备读入,写到内存, 校验,:是一种,伪传送,仅对芯片内部,读写功能进行校验,而对存储器,与,I,O,接口的控制信号均被禁止,即处于无效。但是在每,一,DMA,周期后,地址增,1,或减,1,,字节计数器减,1,直至产生,EOP,,,作为进行某种校验过程,。,M I/O,M I/O, 存储器一存储器,:,为数据块传送而设置,(,PC,系列未用)。这种传送占用通道,0,与通道,1,。,通道,0,作为源,通道,1,作为目的,。从以通道,0,的当前地址寄存器的内容指定的内存单元中读出数据,先存入,8237A,的暂存寄存器中,然后,从暂存寄存器取出数据,写到以通道,1,的当前地址寄存器的内容指定的内存单元中去。每传送一个字节,双方内存地址加,1,或减,1,,通道,1,的当前字节计数器减,1,,直到为,0,时,产生,EOP,信号而终止传送。这种方式是采用软件请求的方法来启动,DMA,服务的。,3,),D4,位决定所谓,“,自动预置,”,,是当出现,EOP,负脉冲时,把基值(地址、字节计数)寄存器的内容装入当前(地址、字节计数)寄存器中去,又从头开始同一操作。,4,),D5,位决定每传送一个字节后存储器地址是,+1,还是,l,。,D5=0,,,地址,+1,,,D5=1,地址,-1,。,5) D1 D0,通道选择,:,选择对哪个通道写入,DMA+11,示例,PC,系列软盘读写操作选择,DMA,通道,2,单字节传送,地址增,1,不用自动预置,其读写操作的方式字如下,:,读盘(,DMA,写),= 01000110B = 46H,写盘,(,DMA,读),= 01001010B = 4AH,校验盘,(DMA,校验,)= 01000010B = 42H,因此,若采用上述方式从软盘上读一个扇区的数据存放到内存区,则方式字为:,(,01000110,),B = 46H,。,如果采用同样的方式从内存写一个扇区的数据到软盘上,则方式字为(,01001010,),B = 4AH,。,2.,基值地址寄存器(,DMA,0,,,2,,,4,,,6,),它们是,16,位地址寄存器,,存放,DMA,传送的内存首址,,在初始化时,,由,CPU,以先低字节后高字节顺序写入。传送过程中基值地址寄存器的内容不变。只能写,不能读。,3.,当前地址寄存器(,DMA,0,,,2,,,4,,,6,),它们是,16,位地址寄存器,存放,DMA,传送过程中的内存地址,在每次传送后地址自动增,1,(或减,1,),它的初值与基值地址寄存器的内容相同,并且是两者,由,CPU,同时写入的。在自动预置条件下,,,EOP,信号使其内容重新置为入基地址值。可读可写。,4.,基值字节计数器(,DMA,1,3,5,7,),它们是,16,位寄存器,,存放,DMA,传送的总字节数,,在初始化时,由,CPU,以先低字节后高字节顺序写入。传送过程中基值字节计数器内容不变。只能写不能读。,5.,当前字节计数器(,DMA,l,3,5,7,),它是,16,位寄存器,,存放,DMA,传送过程中没有传送完的字节数,在每次传送之后,字节计数器减,1,,当它的值减为零时,便产生,EOP,,,表示字节数传送完毕。它的初值与基值字节计数器的内容相同,并且两者,由,CPU,同时写入的。可读可写。,6.,屏蔽寄存器,(,DMA,10,,,15,),用来禁止或允许通道的,DMA,请求。当屏蔽位置位时,禁止本通道的,DREQ,进入。若通道编程为不自动预置,则当该通道遇到,EOP,信号时,它所对应的屏蔽位置位。屏蔽字有两种格式。即写一个屏蔽位的屏蔽字和写四个屏蔽位的屏蔽字。,1,)单一屏蔽寄存器,(DMA,10),单一屏蔽寄存器,,每次只能屏蔽一个通道,通道号由,D1 D0,位决定。通道号选定后,若,D2,置,1,,则禁止该通道请求,DREQ,。若,D2,置,0,,则允许请求,DREQ,。,该寄存器只能写,不能读,其格式,单一屏蔽寄存器,(DMA,10),D7,D6,D5,D4,D3,D2,D1,D0,未用,屏蔽位,1=,屏蔽,0=,不屏蔽,通道选择,00=0,通道,01=1,通道,10=2,通道,11=3,通道,2),四位屏蔽位寄存器,(,DMA,15,),D7,D6,D5,D4,D3,D2,D1,D0,未用,3,通道,2,通道,1,通道,0,通道,1=,屏蔽,; 0=,不屏蔽,示例 为了在每次软盘读写操作时,进行,DMA,初始化,都必须开放通道,2,,以便响应软盘的,DMA,请求,可采用下述两种方法之一来实现。, 使用单一屏蔽寄存器,(,DMA,10,),MOV AL,,,00000010B,;,最低,3,位,=010,,开放通道,2,OUT DMA,10,,,AL,;,写单一屏蔽寄存器, 使用四位屏蔽寄存器(,DMA,15,),MOV AL,,,00001011B,;,最低,4,位,=1011,仅开放通道,2,OUT DMA,15,,,AL,;,写四位屏蔽寄存器,另外,,8237A,还设有一个开放四个通道的命令,其端口地址是,DMA,14,属于软命令,在后面介绍。,7.,请求寄存器(,DMA,9,),D7,D6,D5,D4,D3,D2,D1,D0,未用,请求位,1=,有请求,0=,无请求,通道选择,00=0,通道,01=1,通道,10=2,通道,11=3,通道,8.,命令寄存器,(,DMA,8,),D7,D6,D5,D4,D3,D2,D1,D0,DACK,极性,DREQ,极性,写入选择,优先级编码,时序选择,工作允许,通道口寻址,存储器间传送,D0=0,禁止存储器间传送,D4=0,固定优先权,1,允许存储器间传送,1,循环优先权,D1=0,通道,0,地址不保持,D5=0,滞后写(写周期滞后读),1,通道,0,地址保持不变,1,扩展写(与读同时),D2=0,允许,8237A,工作,D6=0,DREQ,高电平有效,1,禁止,8237A,工作,1,DREQ,低电平有效,D3=0,正常(标准)时序,D7=0,DACK,低电平有效,1,压缩时序,1,DACK,高电平有效,D0,位控制存储器到存储器传送,。,D0=0,时,禁止,存储器到存储器传送,。,D0=1,时,首先由通道,0,发软件,DMA,清求,并从以,通道,0,的当前地址寄存器的内容指定的源地址存储单元读入数据,读入的数据字节存放在,暂存寄存器,中。再把暂存寄存器的数据写到以,通道,1,的当前地址寄存器的内容指定的目标地址存储单元,然后两通道地址各自加,1,或减,1,。直到通道,1,的字节计数器为零时,产生,EOP,信号而结束,DMA,传送。,D1,位控制通道,0,地址在存储器到存储器整个传送过程中保持不变,,这样可把同一个源地址存储单元的数据写到一组目标存储单元中去,。,D1=1,,,保持通道,0,地址不变,;,D1=0,不保持通道,0,地址不变,。若,D0=0,,则,D1,位无意义。,D2,位,DMA,控制器工作允许。,D2=0,,,允许,8237A,工作;,D2=1,,,禁止,8237A,工作,。,D3,位选择工作时序,。,D3=0,,,采用标准,(正常)时序(保持,S3,状态);,D3=1,,,为压缩时序,(去掉,S3,状态)。,D4,位控制通道的优先权,。,D4,0,,,采用固定优先权,即,DREQ0,优先权最高,DREQ3,优先权最低。,D4=l,,,为循环优先权,即通道的优先权随着,DMA,服务的结束而发生变化,,请注意,任何一个通道开始,DMA,服务后,其他通道不能打断该服务的进行,这一点和中断嵌套处理是不相同的。,D5,位控制写入的时刻,。,D5=0,,,采用滞后写,(写入周期滞后读);,D5=1,,,为扩展写,(与读同时)。,D6,和,D7,位决定,DREQ,和,DACK,信号的有效电平,。,D6=0,,,DREQ,高电平有效,,D6=1,,,DREQ,低电平有效。,D7=0,,,DACK,低电平有效,,D7=1,,,DACK,高电平有效。,例:,PC,系列中的,8237A,,,按如下要求工作:禁止存储器到存储器传送,按正常时序,滞后写入,固定优先级,允许,8237A,工作,DREQ,信号高电平有效,,DACK,信号低电平有效。则命令字为,00000000B=00H,。,MOV AL,,,00H,;,命令字,OUT DMA,8,,,AL ;,写入命令寄存器,9.,状态寄存器,(,DMA,8,),D7,D6,D5,D4,D3,D2,D1,D0,通道,3,通道,2,通道,1,通道,0,通道,3,通道,2,通道,1,通道,0,请求服务,有尚未处理的请求,写,1,过程结束,己收到终止信号,写,1,10.,暂存寄存器(,DMA,13,),用于存储器对存储器传送时,暂时保存从源地址读出的数据,。,RESET,信号清除暂存寄存器的内容。,11.,软命令,8237A,有三条特殊的“软命令”。,所谓软命令就是只要对特定的地址进行一次写操作,(即,CS,和内部寄存器地址与,IOW,同时有效),,命令就生效,而与写入的具体数据无关,。三条特殊软命令是:,l,),清先后触发器,(,DMA,12,),命令,前面已提到,在,向,16,位地址和字节计数器进行写操作时,要分两次写入,,,先后触发器就是用来控制写入次序的,。当先后触发器为,0,态时,写入低,8,位后它自动置为,1,,再写入高,8,位后它又自动清为,0,。在程序中,只需向端口,(,DMA,12,),写入任意数即可使先后触发器清为,0,态。其命令程序段为:,MOV AL, 0AAH,;,AL,为任意值,OUT DMA,12,AL,;,清先后触发器端口,(,2,)总清除,(,DM A,13,),命令,它与硬件,RESET,信号作用相同,,即执行本软命令的结果会使“命令”、“状态”、“请求”、“暂存” 寄存器以及“先后触发器”清除,系统进入空闲状态,而屏蔽寄存器置位,屏蔽所有外部,DMA,请求。其命令程序段为:,MOV AL,,,0BBH,;,AL,为任意值,OUT DMA,13,AL,;,总清命令端口,(3),清屏蔽寄存器,(DMA,14),命令,该命令使四个屏蔽位均清为,0,。这样,四个通道均允许接受,DMA,请求。其命令程序段为;,MOV AL,,,0CCH,;,AL,为任意值,OUT DMA,14,AL ;,清屏蔽寄存器命令端口,四,. DMA,控制器的工作时序,(1) DMA,空闲周期,SI,(2),过渡状态,S0,(3) DMA,有效周期,1,),S1,:,更新高,8,位地址。,2,),S2,:在,S2,状态周期中,要完成两件事,一是输出,16,位地址,列,RAM,其中高,8,位地址由数据线,DB0,DB7,输出,用,ADSTB,下降沿锁存,低,8,位地址由地址线,A0,A7,输出。二,是,S2,状态周期还向申请,DMA,传送的外设发出请求回答信号,DACK,(,代替对,I,O,设备的寻址,因地址线已被访问,RAM,占用),数据传送即将开始。随后发读命令。,3,),S3,:,读周期,4,),S4,:,写周期,PC,机的,DMA,电路简介,从,主,表,10-6 DMA,控制器,的,I,0,地址,3. 8237A,的初始化编程,(1),初始化编程应注意的事项,CPU,对,8237A,的编程方法与一般,的,I,O,接口芯片基本相同,但有几点要注意:,l,),为确保软件编程时不受外界硬件信号的影响,,在编程开始时要通过命令寄存器发送命令禁止,8237A,工作或向屏蔽寄存器发送屏蔽命令,,将要编程的通道加以屏蔽。在编程完成后再允许芯片工作或清除屏蔽位。,2,),所有通道的方式字寄存器都要加载,。当系统上电时,用硬件复位信号,RES,或软件复位(总清)命令,使所有内部寄存器,除屏蔽寄存器各通道屏蔽位置位外,其余均被清除。为使各通道在所有可能的情况下都正确操作,应保证各通道的方式字寄存器用有效值加载,即使某些目前不使用的通道也要这样做。,一般,对不使用的通道可用,40H,41H,42H,和,43H,写入通道,0,3,的方式字寄存器,表示按单字节方式进行,DMA,校验操作。,3),8237A,芯片的检测,。通常,在系统上电期间,要对,DMA,芯片进行检测,只有在芯片检测通过后,方可继续,DMA,初始化,实现,DMA,传送。检测内容是对所有通道的,16,位寄存器进行读写测试,当写入和读出结果相等,则判断芯片正确可用。否则,视为致命性错误,芯片不可用,令系统停机。,(2),初始化编程,下面的程序段就是对,PC,系列的,DMA,控制器,8237A,5,进行检测用的。程序中的变量,DMA,地址是,00H,。,测试程序对,4,个通道的,8,个,16,位寄存器先后写入全“,l”,,,全“,0”,,再读出比较,看是否一致。若不一致,则出错,停机。,;,检测前,禁止,DMA,控制器工作,MOV AL,,,04,;,命令字:禁止,8237A,工作,OUT DMA,08 AL,;,命令字送命令寄存器,OUT DMA,ODH, AL,;,总清命令,使,8237A,;,;,进入空闲 周期,包括清先后触发器,;作全“,1”,检测,MOV AL,,,0FFH,;,0FF AL,,,C16: MOV BL, AL,;,保存,AX,到,BX,,,以便比较,MOV BH,,,AL,;,MOV CX,,,8,;,循环测试,8,个寄存器,MOV DX,,,DMA,;,FF,写入,0,3,号通道的地,;址或字节数寄存器,CI7,:,OUT DX,,,AL,;,写入低,8,位,OUT DX,,,AL,;,再写入高,8,位,MOV AL,,,01H,;,读前,破坏原内容,IN AL,,,DX,;,读出刚才写入的低,8,位,MOV AH,,,AL,;,保存到,AH,IN AL,,,DX,;,再读出写入的高,8,位,CMP BX,,,AX,;,读出的与写入的比较,JE C18,;,相等,则,转,C18,,,转入下一寄存器,HLT,;,不等,则出错,系统停止,C18,:,INC DX,;,寄存器口地址,十,l,,,指向下一个,寄存器,进行检查,LOOP C17,;,未完,继续,;作全“,0”,检测,INC AL,;,已完,使,AL=0(,全“,l”,l=0,),JE C16,;,返回再作写全“,0”,检测,;全“,1”,和全“,0”,检测通过,开始设置命令字,SUB AL,,,AL,;,命令字,=00H,;,DACK,为低电平, DREQ,为高电平,OUT DMA,8,,,AL,;,写滞后读,,;固定优先级,芯片工作允许,,;禁止,0,通道寻址保持,禁止,M M,传送。,;各通道方式寄存器加载,MOV AL,,,40H,;,通道,0,方式字,单字节传送,方式,,DMA,校验,OUT DMA,0BH,,,AL,;,MOV AL,,,41H,;,通道,1,方式字,OUT DMA,0BH,,,AL,MOV AL,,,42H,;,通道,2,方式字,OUT DMA,0BH,,,AL,MOV AL,,,43H,;,通道,3,方式字,OUT DMA,0BH,,,AL,DMA,级联,DREQ,主,DACK,主,HRQ,从,HLDA,从,主片,从片,注意:在,DMA,传送时,由从片控制三大总线!,返回,
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 管理文书 > 施工组织


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


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