《最新微机原理第12章PPT课件.ppt》由会员分享,可在线阅读,更多相关《最新微机原理第12章PPT课件.ppt(36页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、微机原理第微机原理第1212章章典型的典型的DMAC的工作电路如右图所示。的工作电路如右图所示。4 4共用寄存器共用寄存器 除除了了每每个个通通道道中中的的寄寄存存器器之之外外,整整个个芯芯片片还还有有一一些些共共用用的的的的寄寄存存器器:包包括括1 1个个1616位位的的地地址址暂暂存存寄寄存存器器,1 1个个1616位位的的字字节节数数暂暂存存寄寄存存器器,1 1个个8 8位位的的状状态态寄寄存存器器,1 1个个8 8位位的的命命令令寄寄存存器器,1 1个个8 8位位的的暂暂存存寄寄存存器器,1 1个个4 4位位的的屏屏蔽蔽寄寄存存器器和和1 1个个4 4位的请求寄存器等。位的请求寄存器等
2、。82378237内内部部寄寄存存器器的的类类型型和和数数量量如如下下表表所所示示,其其中中,凡凡数数量量为为4 4个个的的寄寄存存器器,则则每每个个通通道道一一个个,凡凡数数量量只只有有一一个个的,则为各通道所公用。的,则为各通道所公用。5 582378237的的数数据据引引线线,地地址址引引线线都都有有三三态态缓缓冲冲器器,因因而而可可以接也可以释放总线。以接也可以释放总线。寄存器名寄存器名长度(长度(Bit)数量数量基地址寄存器基地址寄存器164基字节数寄存器基字节数寄存器164当前地址寄存器当前地址寄存器164当前字节数寄存器当前字节数寄存器164地址暂存寄存器地址暂存寄存器161字节
3、数暂存寄存器字节数暂存寄存器161状态寄存器状态寄存器81命令寄存器命令寄存器81暂存寄存器暂存寄存器81方式寄存器方式寄存器64屏蔽寄存器屏蔽寄存器41请求寄存器请求寄存器418237(40DIP)的引脚功能如下:)的引脚功能如下:1CLK:时时钟钟信信号号输输入入引引脚脚,对对于于标标准准的的8237,其其输输入入时时钟钟频频率率为为3MHz,对于,对于8237-2,其输入时钟频率可达,其输入时钟频率可达5MHz。2CS:芯片选择信号,输入引脚。芯片选择信号,输入引脚。3RESET:复复位位信信号号,输输入入引引脚脚,用用来来清清除除8237中中的的命命令令、状状态态请请求求和和临临时时寄
4、寄存存器器,且且使使字字节节指指针针触触发发器器复复位位并并置置位位屏屏蔽蔽触触发发器器的的所所有有位位(即即使使所所有有通通道道工工作作在在屏屏蔽蔽状状态态),在在复复位位之之后后,8237工工作于空闲状态。作于空闲状态。4READY:外外设设向向8237提提供供的的高高电电平平有有效效的的“准准备备好好”信信号号输输入入引引脚脚,若若8237在在S3状状态态以以后后的的时时钟钟下下降降沿沿检检测测到到READY为为低低电电平平,则则说说明明外外设设还还未未准准备备好好下下一一次次DMA操操作作,需需要要插插入入SW状状态态,直直到到READY引脚出现高电平为止。引脚出现高电平为止。5DRE
5、Q0DREQ3:外外设设的的DMA请请求求信信号号输输入入引引脚脚,对对应应于于四四个个独独立立的的通通道道,DREQ的的有有效效电电平平可可以以通通过过编编程程来来加加以以确确定定,优优先先级级可以固定,也可以循环。可以固定,也可以循环。6DACK0DACK3:对对相相应应通通道道DREQ请请求求输输入入信信号号,DMAC的的应答信号输出引脚。应答信号输出引脚。7HRQ:8237向向CPU提出提出DMA请求的输出信号引脚,高电平有效。请求的输出信号引脚,高电平有效。8HLDA:CPU对对HRQ请请求求信信号号的的应应答答信信号号输输入入引引脚脚,高高电电平平有有效。效。9DB0DB7:8条条
6、双双向向三三态态数数据据总总线线引引脚脚。在在CPU控控制制系系统统总总线线时时,可可以以通通过过DB0DB7对对8237编编程程或或读读出出8237的的内内部部状状态态寄寄存存器器的的内内容容;在在DMA操操作作期期间间,由由DB0DB7输输出出高高8位位地地址址信信号号A8A15,并并利利用用ADSTB信信号号锁锁存存该该地地址址信信号号。在在进进行行内内存存不不同同区区域域之之间间的的DMA传传送送时时,除除了了送送出出A8A15地地址址信信号号外外,还还分分时时输输入入从从存存储储器器源源区区域域读读出出的的数数据据,送送入入8237的的暂暂存存寄寄存存器器中中,等等到到存存储储器器写
7、写周周期期时时,再再将将这这些些数数据据通通过过这这8个个引引脚脚,由由8237的的暂暂存存寄寄存存器器送送到到系系统统数数据据总总线线上,然后写入到规定的存储单元中去。上,然后写入到规定的存储单元中去。10A3A0:4条条双双向向三三态态的的低低位位地地址址信信号号引引脚脚。在在空空闲闲周周期期,接接收收来来自自于于CPU的的四四位位地地址址信信号号,用用以以寻寻址址8237内内部部的的不不同同的的寄寄存存器器(组组);在在DMA传传送送时时,输输出出要要访访问问的的存存储储单单元元或或者者I/O端端口口地地址址的的低低4位。位。11A7A4:4条条三三态态地地址址信信号号输输出出引引脚脚。
8、在在DMA传传送送时时,输输出出要要访问的存储单元或者访问的存储单元或者I/O端口地址的中端口地址的中4位。位。12IOR:低低电电平平有有效效的的双双向向三三态态信信号号引引脚脚。在在非非DMA周周期期,它它是是一一条条输输入入控控制制信信号号,CPU利利用用这这个个信信号号读读取取8237内内部部状状态态寄寄存存器器的的内内容容;而而在在DMA传传送送时时,它它是是读读端端口口控控制制信信号号输输出出引引脚脚,与与相相配配合合,使数据由外设传送到内存。使数据由外设传送到内存。13IOW:低低电电平平有有效效的的双双向向三三态态信信号号引引脚脚,写写信信号号,其其功功能能与与 IOR 相对应
9、。相对应。14MEMR:低低电电平平有有效效的的双双向向三三态态信信号号引引脚脚,用用于于DMA传传送送,控制存储器的读操作。控制存储器的读操作。15MEMW:低低电电平平有有效效的的双双向向三三态态信信号号引引脚脚,用用于于DMA传传送送,控制存储器的写操作。控制存储器的写操作。16AEN:高高电电平平有有效效的的输输出出信信号号引引脚脚,由由它它把把锁锁存存在在外外部部锁锁存存器器中中的的高高8位位地地址址送送入入系系统统的的地地址址总总线线,同同时时禁禁止止其其它它系系统统驱驱动动器器使使用系统总线。用系统总线。17ADSTB:高高电电平平有有效效的的输输出出信信号号引引脚脚,此此信信号
10、号把把DB7DB0上上输输出的高出的高8位地址信号锁存到外部锁存器中。位地址信号锁存到外部锁存器中。18EOP:双双向向,当当字字节节数数计计数数器器减减为为0时时,在在上上输输出出一一个个有有效效的的低低电电平平脉脉冲冲,表表明明DMA传传送送已已经经结结束束;也也可可接接收收外外部部的的信信号号,强强行行结结束束8237的的DMA操操作作或或者者重重新新进进行行8237的的初初始始化化。当当不不使使用用端端时时,应通过数千应通过数千的电阻接到高电平上,以免由它输入干扰信号。的电阻接到高电平上,以免由它输入干扰信号。19+5V、GND及及N/C引脚引脚12.1.3 8237的的工作方式工作方
11、式82378237的各个通道在进行的各个通道在进行DMADMA传送时,有四种工作方式:传送时,有四种工作方式:1 1单字节传送方式单字节传送方式 每每次次DMADMA操操作作仅仅传传送送一一个个字字节节的的数数据据,完完成成一一个个字字节节的的数数据据传传送送后后,82378237将将当当前前地地址址寄寄存存器器的的内内容容加加1(1(或或减减1)1),并并将将当当前前字字节节数数寄寄存存器器的的内内容容减减1 1,每每传传送送完完这这一一个个字字节节,DMACDMAC就就将将总总线线控控制制权权交交回回CPUCPU。2 2数据块传送数据块传送 在在这这种种传传送送方方式式下下,DMACDMA
12、C一一旦旦获获得得总总线线控控制制权权,便便开开始始连连续续传传送送数数据据。每每传传送送一一个个字字节节,自自动动修修改改当当前前地地址址及及当当前前字字节节数数寄寄存存器器的的内内容容,直直到到将将所所有有规规定定的的字字节节全全部部传传送送完完,或或收收到到外外部部信信号号,DMACDMAC才才结结束束传传送送,将将总总线线控控制制权权交交给给CPUCPU,一一次次所所传传送送数数据据块块的的最最大长度可达大长度可达64KB64KB,数据块传送结束后可自动初始化。,数据块传送结束后可自动初始化。3 3请求传送请求传送 只只要要DREQDREQ有有效效,DMADMA传传送送就就一一直直进进
13、行行,直直到到连连续续传传送送到到字字节节计计数数器为器为0 0或外部输入使变低或或外部输入使变低或DREQDREQ变为无效时为止。变为无效时为止。4 4级联方式级联方式 利利用用这这种种方方式式可可以以把把多多个个82378237连连接接在在一一起起,以以便便扩扩充充系系统统的的DMADMA通通道道数数。下下一一级级的的HRQHRQ接接到到上上一一级级的的某某一一通通道道的的DREQDREQ上上,而而上上一一级的响应信号级的响应信号DACKDACK可接下一级的可接下一级的HLDAHLDA上。上。在在级级联联方方式式下下,当当第第二二级级82378237的的请请求求得得到到响响应应时时,第第一
14、一级级82378237仅仅应应输输出出HRQHRQ信信号号而而不不能能输输出出地地址址及及控控制制信信号号,因因为为,第第二二级级的的82378237才才是是真真正正的的主主控控制制器器,而而第第一一级级的的82378237仅仅应应起起到到传传递递DREQDREQ请请求求信信号号及及DACKDACK应答信号的作用。应答信号的作用。12.1.4 8237的的DMA传输类型传输类型 DMA所所支支持持的的DMA传传送送,可可以以在在I/O接接口口到到存存储储器器;存存储储器器到到I/O接接口口及及内内存存的的不不同同区区域域之之间间进进行行,它它们们具具有有不不同同的的特特点点,所所需需要的控制信
15、号也不相同。要的控制信号也不相同。1I/O接口到存储器的传送接口到存储器的传送 当当进进行行由由I/O接接口口到到存存储储器器的的数数据据传传送送时时,来来自自I/O接接口口的的数数据据利利用用DMAC送送出出的的控控制制信信号号,将将数数据据输输送送到到系系统统数数据据总总线线D0D7上上,同同时时,DMAC送送出出存存储储器器单单元元地地址址及及控控制制信信号号,将将存存在在于于D0D7上上的的数数据据写写入入所所选选中中的的存存储储单单元元中中。这这样样就就完完成成了了由由I/O接接口口到到存存储储器器一一个个字字节节的的传传送送。同同时时DMAC修修改改内内部部地地址址及及字字节节数数
16、寄寄存存器器的的内内容。容。2.存储器到存储器到I/O接口接口 与与前前一一种种情情况况类类似似,在在进进行行这这种种传传送送时时,DMAC送送出出存存储储器器地地址址及及控控制制信信号号,将将选选中中的的存存储储单单元元的的内内容容读读出出放放在在数数据据总总线线D0D7上上,接接着着,DMAC送送出出控控制制信信号号,将将数数据据写写到到规规定定的的(预预选选中中)端端口口中去,而后中去,而后MDAC自动修改内部的地址及字节数寄存器的内容。自动修改内部的地址及字节数寄存器的内容。3.存储器到存储器存储器到存储器 8237具具有有存存储储器器到到存存储储器器的的传传送送功功能能,利利用用82
17、37编编程程命命令令寄寄存存器器,可可以以选选择择通通道道0和和通通道道1两两个个通通道道实实现现由由存存储储器器到到存存储储器器的的传传送送。在在进进行行传传送送时时采采用用数数据据块块传传送送方方式式,由由通通道道0送送出出内内存存源源区区域域的的地地址址和和控控制制信信号号,将将选选中中内内存存单单元元的的的的数数据据读读到到8237的的暂暂存存寄寄存存器器中中,通通道道0修修改改地地址址及及字字节节数数寄寄存存器器的的值值;接接着着由由通通道道1输输出出内内存存目目的的区区域域的的地地址址及及控控制制信信号号,将将存存放放在在暂暂存存寄寄存存器器中中的的数数据据,通通过过系系统统数数据
18、据总总线线,写写入入到到内内存存的的目目的的区区域域中中去去,然然后后通通道道1修修改改地地址址和和字字节节数数寄寄存存器器的的内内容容,通通道道1的的字字节节计计数数器器减减到到零零或外部输入时可结束一次或外部输入时可结束一次DMA传输过程。传输过程。12.1.5 8237各个通道的优先级各个通道的优先级8237有两种优先级方案可供编程选择:有两种优先级方案可供编程选择:(1)固定优先级:优先级固定,通道)固定优先级:优先级固定,通道0最高,通道最高,通道3最低。最低。(2)循循环环优优先先级级:规规定定刚刚被被服服务务通通道道的的优优先先级级最最低低,依依次次循循环环。这这就就可可以以保保
19、证证4个个通通道道的的优优先先级级是是动动态态变变化化的的,若若3个个通通道道已已经经被被服务则剩下的通道一定是优先级最高的。服务则剩下的通道一定是优先级最高的。12.1.6 8237的内部寄存器组的内部寄存器组 8237有有4个个独独立立的的DMA通通道道,有有许许多多内内部部寄寄存存器器。前前面面表表已已简简单介绍过,下面详细介绍。单介绍过,下面详细介绍。1基地址寄存器基地址寄存器 用用以以存存放放16位位地地址址,只只可可写写入入而而不不能能读读出出。在在编编程程时时,它它与与当当前前地地址址寄寄存存器器被被同同时时写写入入某某一一起起始始地地址址,可可用用作作内内存存区区域域的的首首地
20、地址址或或末末地地址址。在在8237进进行行DMA数数据据传传送送的的工工作作过过程程中中,其其内内容容不不发发生生变变化化,只只是是在在自自动动预预置置时时,其其内内容容可可被被重重新新写写到到当当前前地地址址寄寄存存器器中中去。去。2基字节数寄存器基字节数寄存器 用用以以存存放放相相应应通通道道需需要要传传送送数数据据的的字字节节数数,只只可可写写入入而而不不能能读读出出。在在编编程程时时它它与与当当前前字字节节数数寄寄存存器器被被同同时时写写入入要要传传送送数数据据的的字字节节数数。在在8237进进行行DMA数数据据传传送送的的工工作作过过程程中中,其其内内容容保保持持不不变变,只只是在
21、自动预置时,其内容可以被重新写到当前字节数寄存器中去。是在自动预置时,其内容可以被重新写到当前字节数寄存器中去。3当前地址寄存器当前地址寄存器 存存放放DMA传传送送期期间间的的地地址址值值。每每次次传传送送后后自自动动加加l或或减减l。CPU可可以以对对其其进进行行读读写写操操作作。在在选选择择自自动动预预置置时时,每每当当字字节节计计数数值值减减为为0或或外外部部有有效效后后,就就会会自自动动将将基基地地址址寄寄存存器器的的内内容容写写入入当当前前地地址址寄寄存器中,恢复其初始值。存器中,恢复其初始值。4当前字节数寄存器当前字节数寄存器 存存放放当当前前的的字字节节数数。每每传传送送一一个
22、个字字节节,该该寄寄存存器器的的内内容容减减1。当当计计数数值值减减为为0或或接接收收到到来来自自外外部部的的信信号号时时,会会自自动动将将基基字字节节数数寄寄存器的内容写入该寄存器,恢复其初始计数值,即为自动预置。存器的内容写入该寄存器,恢复其初始计数值,即为自动预置。5地址暂存寄存器和字节数暂存寄存器地址暂存寄存器和字节数暂存寄存器 这这两两个个16位位的的寄寄存存器器和和CPU不不直直接接发发生生关关系系,我我们们也也不不必必要要对对其进行读其进行读/写操作,因而对如何使用写操作,因而对如何使用8237没有影响。没有影响。6方式寄存器方式寄存器 每每个个通通道道有有一一个个8位位的的方方
23、式式寄寄存存器器,但但是是它它们们占占用用同同一一个个端端口口地地址址,用用来来存存放放方方式式字字,依依靠靠方方式式控控制制字字本本身身的的特特征征位位来来区区分分写写入不同的通道,用来规定通道的工作方式,各位的作用如下:入不同的通道,用来规定通道的工作方式,各位的作用如下:自自动动预预置置就就是是当当某某一一通通道道按按要要求求将将数数据据传传送送完完后后,又又能能自自动动预预置初始地址和传送的字节数,而后重复进行前面已进行过的过程。置初始地址和传送的字节数,而后重复进行前面已进行过的过程。校校验验传传送送就就是是实实际际并并不不进进行行传传送送,只只产产生生地地址址并并响响应应信信号号,
24、不不产生读写控制信号,用以校验产生读写控制信号,用以校验8237的功能是否正常。的功能是否正常。7命令寄存器命令寄存器 8237的命令寄存器存放编程的命令字。的命令寄存器存放编程的命令字。8请求寄存器请求寄存器 用用于于在在软软件件控控制制下下产产生生一一个个DMA请请求求,就就如如同同外外部部DREQ请请求一样。这种软件请求只用于通道工作在数据块传送方式之下。求一样。这种软件请求只用于通道工作在数据块传送方式之下。9.屏蔽寄存器屏蔽寄存器 8237的屏蔽字有两种形式:的屏蔽字有两种形式:(1)单单个个通通道道屏屏蔽蔽字字。每每次次只只能能选选择择一一个个通通道道。其其中中D1D0的的编编码码
25、指指示示所所选选的的通通道道,D2l表表示示禁禁止止该该通通道道接接收收DREQ请请求求,当当D20时允许时允许DREQ请求。请求。(2 2)四通道屏蔽字。可以利用这个屏蔽字同时对)四通道屏蔽字。可以利用这个屏蔽字同时对8237的的4个通道的个通道的屏蔽字进行操作,故又称为主屏蔽字。该屏蔽字的格式如下图所示。屏蔽字进行操作,故又称为主屏蔽字。该屏蔽字的格式如下图所示。它与单通道屏蔽字占用不同的它与单通道屏蔽字占用不同的I/O接口地址,以此加以区分。接口地址,以此加以区分。10.状态寄存器状态寄存器 状态寄存器存放各通道的状态,状态寄存器存放各通道的状态,CPU读出其内容后,可得知读出其内容后,
26、可得知8237的工作状况。主要有:哪个通道计数已达到计数终点的工作状况。主要有:哪个通道计数已达到计数终点对应对应位为位为1;哪个通道的;哪个通道的DMA请求尚未处理请求尚未处理对应位为对应位为1。11暂存寄存器暂存寄存器 用于存储器到存储器传送过程中对数据的暂时存放。用于存储器到存储器传送过程中对数据的暂时存放。12字节指针触发器字节指针触发器 这这是是一一个个特特殊殊的的触触发发器器,用用于于对对前前述述各各16位位寄寄存存器器的的寻寻址址。由由于于前前述述各各16位位寄寄存存器器的的读读或或写写必必须须分分两两次次进进行行,先先低低字字节节后后高高字字节节。为为此此,要要利利用用字字节节
27、指指针针触触发发器器,当当此此触触发发器器状状态态为为0时时,进进行行低低字字节节操操作作。一一旦旦低低字字节节读读/写写操操作作完完成成后后,字字节节指指针针触触发发器器会会自自动动置置l,再再操操作作一一次次又又会会清清零零。利利用用这这种种机机制制,就就可可以以进进行行双双字字节节读读写写操操作作,这这样样16位位寄寄存存器器可可以以仅仅占占用用一一个个外外设设端端口口地地址址,高高、低低字字节节共共用。用。12.2 8237应用举例应用举例 12.2.1 PC机中机中8237的的典型连接典型连接12.2.2 8237的内部地址分配的内部地址分配 8237内部共占用内部共占用16个个I/
28、O端口地址,由地址线端口地址,由地址线A3-A0控制。见控制。见教材教材P305表表7.3、7.4。CSA3 A2 A1 A0 IOR IOW功功 能能01 0 0 0 0 1 读状态寄存器读状态寄存器01 0 0 0 1 0写状态寄存器写状态寄存器01 0 0 1 0 1非法非法01 0 0 1 1 0写请求寄存器写请求寄存器01 0 1 0 0 1非法非法01 0 1 0 1 0写单通道屏蔽寄存写单通道屏蔽寄存器器CSA3 A2 A1 A0 IOR IOW功功 能能01 0 1 1 0 1非法非法01 0 1 1 1 0写方式寄存器写方式寄存器01 1 0 0 0 1非法非法01 1 0
29、0 1 0字节指针触发器清字节指针触发器清001 1 0 1 0 1读暂存寄存器读暂存寄存器01 1 0 1 1 0总请总请01 1 1 0 0 1非法非法01 1 1 0 1 0请屏蔽寄存器请屏蔽寄存器01 1 1 1 0 1非法非法01 1 1 1 1 0写写4通道屏蔽寄存器通道屏蔽寄存器接上页表接上页表 12.2.3 8237的初始化编程举例的初始化编程举例 通道通道0初始化程序如下:初始化程序如下:OUT DMA+0DH,AL;总清;总清8237 MOV DS,BX MOV ES,BX ;初始化;初始化DS和和ES MOV AL,0FFH OUT DMA+1,AL OUT DMA+1,
30、AL ;通道通道0的传送字节数为的传送字节数为64K,先写低位,后写高位,先写低位,后写高位 MOV DL,0BH ;使;使DX=000BH(方式字地址方式字地址)MOV AL,58H OUT DX,AL ;写方式字,单字节传送方式,每次传送行地址写方式字,单字节传送方式,每次传送行地址 MOV AL,0 ;尔后地址自动加;尔后地址自动加1,允许自动预置,允许自动预置 OUT DMA+8,AL ;写入命令字;写入命令字 OUT DMA+10,AL ;写入屏蔽字;写入屏蔽字(单通道屏蔽字单通道屏蔽字 8237的的初初始始化化流流程程 DMA初始化程序如下:初始化程序如下:INITADM:OUT
31、DMA+13,AL ;总清;总清 MOV AL,40H OUT DMA+2,AL ;送地址低字节到通道;送地址低字节到通道1 MOV AL,74H OUT DMA+2,AL ;送地址高字节到通道送地址高字节到通道1,7440H为通道基地址为通道基地址 MOV AL,80H OUT PAG,AL;送页地址;送页地址1000B MOV AL,64H OUT DMA+3,AL ;送传送字节数低字节到通道;送传送字节数低字节到通道1 MOV AL,0 ;0064H表示表示100个字节个字节 OUT DMA+3,AL ;送传送字节数高字节到通道;送传送字节数高字节到通道1 MOV AL,59H;通道;通道1方式字:读操作,单字节传送方式字:读操作,单字节传送 OUT DMA+11,AL;地址递增,自动预置;地址递增,自动预置 MOV AL,0;命令字:允许工作,固定优先级;命令字:允许工作,固定优先级 OUT DMA+8,AL;DACK有效有效 OUT DMA+15,AL;写写入入四四通通道道屏屏蔽蔽寄寄存存器器,规规定定允允许许4个通道均可请求个通道均可请求DMA传送。传送。作业:作业:结束语结束语谢谢大家聆听!谢谢大家聆听!36