版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、1第7章 DMA控制器7.1 DMA基本概念7.2 DMA占用总线方式 7.3 DMA控制器8237A 7.4 8237A在PC上的应用 7.5 DMA读传送实例 27.1 DMA基本概念 DMA的意思是“直接存储器存取”,意指不通过CPU,直接对存储器进行访问,它由专门的硬件装置DMA控制器(DMAC)来完成。事先要用指令设置DMAC外,传送是应外设请求,在硬件控制下完成的。所以,它具有极高的传送速率。DMA存储器3nDMAC对存储器的访问与CPU类似,利用系统总线来进行。n以读存储器为例:MEMRIOW存储器DMACn数据在硬件信号的控制下通过总线由源直接送达目的地。为了支持数据块的传送,
2、DMAC还具有修改地址指针修改地址指针、统统计传送次数计传送次数、判断传送是否结束判断传送是否结束等多项自动功能。地址地址数据DMA方法:外设存储器、 存储器外设;变通后: 存储器存储器、 外设外设47.2 DMA占用总线方式n1CPU暂时放弃总线控制权方式n2暂停CPU时钟脉冲方式n3窃取CPU空闲时间方式n4周期扩展方式51CPU暂时放弃总线控制权方式n此类DMA操作,CPU必须暂停任何总线操作,并让出对总线的控制权、直至DMA传送结束或完成一个总线操作周期之后,CPU才能继续控制总线。n实现实现这种方式的方法方法是DMAC向CPU发出总线请求信号,CPU在完成当前的总线周期操作之后,释放
3、对总线的控制(有关的引脚信号处于高阻状态)并发出总线响应信号。6DMAC控制总线的时间为一个总线周期控制总线的时间为一个总线周期每次每次DMA操作仅传送一个字节(或字)操作仅传送一个字节(或字)然后然后DMAC释放对总线的控制释放对总线的控制周期挪用周期挪用数据块传送数据块传送DMAC控制总线的时间超过一个总线周期控制总线的时间超过一个总线周期用来完成一组数据(即数据块)的传送用来完成一组数据(即数据块)的传送在该组数据传送期间,在该组数据传送期间,DMAC一直控制着总线一直控制着总线假定8086CPU工作于最小模式,且是将存储器中的数据传送给外部设备。图7-1说明了这种DMA操作方式的工作过
4、程。CPU暂时放弃总线控制权暂时放弃总线控制权:周期挪用和数据块传送周期挪用和数据块传送7DREQHRQDACKMEMRIOW8(1)外设已作好接收数据准备,向DMAC发出请求信号DRQ。(2)DMAC向CPU发出DMA操作请求HRQ,该请求信号送到CPU的HOLD信号引脚。(3)CPU在完成当前的总线周期操作之后(若总线处于空闲状态,则立即做出响应),使数据总线、地址总线及部分控制信号处于三态,并向DMAC发出响应信号HLDA,指示DMAC可以使用总线。(4)DMAC将地址(A19A0)放入地址总线,该地址用来寻址内存储单元。9(5)DMAC向I/O接口发出响应信号DACK,该信号可作为接口
5、接受数据的控制条件,有效时,表示允许接口接受数据;(6)DMAC向存储器发出读控制信号,在该信号的控制下,由A19A0指定的单元的内容送入数据总线。(7)DMAC向接口发出写控制信号,在该信号及DACK信号的共同作用下,将数据总线上的内容储存到接口中的数据寄存器,并通过接口将数据传送给外设,至此完成了数据传送。(8)DMAC撤销对CPU的请求信号。(9)CPU撤销保持响应信号并恢复对总线的控制。如果数据未传送完,则又从第二步开始重复所述过程。102暂停CPU时钟脉冲方式n这种方式也就是强迫CPU立即停止工作的方式。原理如图7-2所示.fSystemPASfSystemPASfCPUfCPU&图
6、7-2 暂停CPU时钟脉冲方式示意图 113窃取CPU空闲时间方式n上述两种DMA占用总线方式的特点是,进行DMA操作时均使CPU的正常工作暂时停止。 优点:简单、可传送任意长度的数据块, 缺点:会浪费CPU资源。n解决方法:可以采用当CPU不使用总线时进行DMA操作的方法。n适用时间:CPU进行指令译码、内部进行算术/逻辑运算时。124周期扩展方式n周期扩展方式是采用专门的时钟发生电路加宽CPU的时钟周期,利用CPU每个时钟周期的加宽时间进行DMA操作,这种占用总线的方式为周期扩展。n缺点缺点:延长了CPU的时钟周期必将导致CPU运行速度的降低。nPC/XT微型机就是采用了这种方式,巧妙地在
7、CPU总线中插入若干等待周期Tw,进行DMA操作。n总结总结:上述4种方式中,CPU暂时放弃总线控制权而DMA占用总线的方式最简单。137.3 DMA控制器8237A 8237A是Intel系列高性能可编程DMA控制器,具有如下功能:(1)每片)每片8237A内部有内部有4个独立的个独立的DMA通通道,每个通道可分别进行数据传送,一次传送道,每个通道可分别进行数据传送,一次传送最大达最大达64KB,能够实现存储器与外部设备间或,能够实现存储器与外部设备间或存储器两个区域间的数据传送。存储器两个区域间的数据传送。(2)每个通道的DMA请求可以分别允许和禁止,具有不同的优先级,并且每个通道的优先级
8、可以是固定的,也可以是循环的。(3)8237A具有具有4种传送方式:种传送方式:单字节传送单字节传送方式方式,数据块传送方式数据块传送方式,请求传送方式请求传送方式和和级联级联方式方式。 147.3.1 8237A的内部构成框图 3个基本控制逻辑单元3个缓冲器151. 3个基本控制逻辑单元(1)定时和控制逻辑单元。)定时和控制逻辑单元。产生8237A内部的定时信号和外部的控制信号。 (2)命令控制单元。)命令控制单元。在CPU控制总线时,将CPU在编程初始化时送来的命令字进行译码;而在8237A进入DMA服务时,对设定DMA操作类型的工作方式字进行译码。(3)优先权控制逻辑。)优先权控制逻辑。
9、用来裁决各通道的优先权次序,解决多个通道同时请求DMA服务时可能出现的优先权竞争问题。 16(1)I/O缓冲器缓冲器1 。8位、双向三态的缓冲器位、双向三态的缓冲器2. 3个缓冲器当当8237A控制总线时:控制总线时:在DMA周期一开始,8237A请求DMA服务优先权最高通道的暂时地址寄存器的高8位地址,由这个缓冲器输出到地址锁存器锁存。然后,若DMA的操作类型是DMA写、读或校验时,进入高阻状态,即数据传送不经过此缓冲器;若操作类型是(MM)传送时,首先将源存储单元的内容经数据总线由此缓冲器送到8237A的暂存器中。在下一个周期,暂存器的内容由此缓冲器送上数据总线,然后写入目的存储单元。当当
10、CPU控制总线时控制总线时:从CPU送给8237A的编程控制字、CPU读取8237A的状态字、当前地址和字节计数器的内容都经过这个缓冲器。17(2)I/O缓冲器缓冲器2。4位、双向、三态缓冲器。位、双向、三态缓冲器。n在CPU控制总线时:输入缓冲器导通(输出则处于高阻状态),将地址总线的低4位A3A0送入8237A进行译码后,选通内部的寄存器。n在DMA控制总线时:输出缓冲器导通(输入则处于高阻状态),送出8237A产生的16位存储器地址的低4位A3A0。 (3)输出缓冲器。)输出缓冲器。4位、输出、三态缓冲器。位、输出、三态缓冲器。n在CPU控制总线时:它为高阻状态;n在DMA控制总线时:它
11、导通,由8237A提供的16位存储器地址的第8位到第5位地址A7A4通过它送出。 183内部寄存器8237A的内部寄存器如表7-1所列。它与用户编程直接发生关系。 表7-1 8237A的内部寄存器名名 称称位位 数数数数 量量CPU访问方式访问方式基地址寄存器基地址寄存器164只只 写写基字节计数寄存器基字节计数寄存器164只只 写写当前地址寄存器当前地址寄存器164可读可写可读可写当前字节计数寄存器当前字节计数寄存器164可读可写可读可写地址暂存器地址暂存器161不能访问不能访问命令寄存器命令寄存器81只只 写写工作方式寄存器工作方式寄存器64只只 写写屏蔽寄存器屏蔽寄存器41只只 写写请求
12、寄存器请求寄存器41只只 写写状态寄存器状态寄存器81只只 读读暂存寄存器暂存寄存器81只只 读读197.3.2 8237A的引脚READY-准备好输入信号DREQ3DREQ0-DMA请求输入信号DACK3DACK0-DMA响应输出信号DB7DB0-8位双向三态数据总线A7A4-DMA传送时,存储单元地址低8位中的高4位A3A0-4位双向三态地址线AEN-地址允许输出信号ADSTB-地址选通输出信号EOP-DMA过程结束信号HRQ-总线请求输出信号HLDA总线响应信号IORMEMWIOWMEMR数据从外设传到存储器数据从外设传到存储器数据从存储器传送到外设接口中数据从存储器传送到外设接口中20
13、7.3.3 8237A的内部寄存器及编程控制字8237A内部的4个独立通道一个一个16位基地址寄存器位基地址寄存器一个一个16位基字节数寄存器位基字节数寄存器一个一个16位当前地址寄存器位当前地址寄存器一个一个16位当前字节数计数器位当前字节数计数器一个一个8位工作模式寄存器位工作模式寄存器每每个个通通道道211.当前地址寄存器当前地址寄存器:保持DMA传送过程中当前地址值,每次DMA传送后其内容自动增1或减1。n值可由CPU写入或读出。若8237A编程为自动初始化,则在每次DMA操作结束发出信号后,该寄存器自动恢复为它的初始值。2.当前字节数寄存器当前字节数寄存器:它保持着当前要传送的字节数
14、,每次DMA传送后内容减1。n当它的值由零减为FFFFH时,将发出信号EOP,表明DMA操作结束。n它的值可由CPU读出。在自动初始化方式时,有效时自动装入初始值(即基字节数寄存器的值)。223.基地址寄存器基地址寄存器:它存放着与当前地址寄存器相联系的初始值。CPU同时写入基地址寄存器和当前地址寄存器。基地址寄存器的值不会修改,且不能读出。4.基字节数寄存器基字节数寄存器:它存放着与当前字节数寄存器相联系的初始值。CPU同时写入基字节数寄存器和当前字节数寄存器。基字节数寄存器的值不会修改,且不能读出。5.模式寄存器模式寄存器:用于存放8237A相应通道的工作模式、地址增减、是否自动预置、传输
15、类型及通道选择。在CPU对8237A初始化编程时设定。 238237A的4种工作模式单字节传送模式单字节传送模式数据块传输模式数据块传输模式请求传输模式请求传输模式级联传输模式级联传输模式工工作作模模式式8237A的这4种工作模式可以通过置工作模式寄存器来设定。工作模式寄存器各位的定义如图7-5所示。 24n每次只传送1个字节。n传送一个字节后,字节数寄存器减1,地址寄存器加1或减1,HRQ无效。n8237释放系统总线,将总线控制权交还CPU。n若当前字节数由0减到FFFFH,将发出信号EOP,结束DMA传送或重新初始化。n否则8237A会立即对DREQ信号进行检测,一旦DREQ有效,8237
16、A将立即向CPU发出总线请求信号,获得总线控制权后,再进行下一个字节的传送。 (1)单字节传送模式:)单字节传送模式:单字节传送模式的特点:缺点缺点:一次传送一个字节,效率较低;优点优点:保证在两次DMA传送之间CPU有机会重新获取总线控制权,执行一个CPU总线周期。25n这种传输模式可以连续传输多个字节。n8237A获得总线控制权之后,可以完成一个数据块的传输,直到当前字节数寄存器由0减为FFFFH,或由外部接口输入有效的EOP信号时,8237A才释放总线,将总线控制权交还CPU。(2)数据块传输模式:)数据块传输模式:数据块传送的特点:优点优点:一次请求传送一个数据块,效率高;缺点缺点:整
17、个DMA传送期间CPU长时间无法控制总线。 26n利用DREQ有效,DMA传送一直进行。这种传输模式也可以连续传送多个字节的数据。n8237A进行DMA传输时,若出现 当前字节寄存器由0减为FFFFH、 外部接口输入有效信号EOP 外界的DREQ信号变为无效n这3种情况之一时,8237A结束传送,释放总线,由CPU接管总线。n当外界的DREQ信号变为无效时,8237A释放总线,CPU可继续操作。8237A相应通道将保存当前地址和字节数寄存器的中间值。8237A释放总线后继续检测DREQ,一旦变为有效信号,传送就可以继续进行。 (3)请求传输模式:)请求传输模式:27(4)级联传输模式:)级联传
18、输模式:n通过级联扩展传输通道。这样由5片8237构成的二级主从式DMA系统中,DMA数据通道可扩展到16个。注意:主片需要在模式寄存器中设置为级联方式,而从片不设置为级联方式DREQDREQDACKDACKHRQDREQDREQDACKDACKHLDAHRQDREQDREQDACKDACKHLDAHRQHLDA微微处处理理器器HOLDHLDA288237A的四种工作模式可以通过置工作模式寄存器设定。296屏蔽寄存器屏蔽寄存器u8237A内部的屏蔽寄存器对应于每个通道的屏蔽触发器,当其设置为1时禁止该通道DMA请求。u在复位后,4个通道全置于屏蔽状态。在编程时根据需要清除某些屏蔽位,允许产生D
19、MA请求。u如果某个通道编程规定为不自动初始化的情况下,则当该通道产生信号时,它所对应的屏蔽位置位,必须再次编程为允许,才能进行下一次DMA传送。屏蔽寄存器的两种格式见图7-6所示。 30(a)单通道屏蔽字 (b)主屏蔽字 图7-6 屏蔽字格式 317状态寄存器状态寄存器u8237A内部有一个可由CPU读出的8位状态寄存器,用来存放8237A的状态信息。u它的低4位反映读命令这个瞬间每个通道是否产生TC,高4位反映每个通道的请求情况(为1表示有请求)。u这些状态位在复位或被读出后,均被清除。 328请求寄存器请求寄存器n8237A的每个通道对应一条硬件DREQ请求线。n当工作在数据块传送模式时
20、也可以由软件发出DREQ请求,所以有一个请求寄存器。nCPU通过请求字写入请求寄存器,图7-8为请求字格式。n注意:只有在数据块传送模式才能使用软件请求。若是存储器到存储器传送,则必须由软件请求启动通道0。 339命令寄存器命令寄存器n这是DMAC 4个通道公用的一个8位的寄存器,用于设定8237A的工作方式,由CPU编程写入,并用复位信号和软件命令清除。复位时使其清零。n命令字格式如图7-9所示。34当D0=1时将选择存储器到存储器的传送方式。此时,通道0的现行地址寄存器存放源地址。若D1也置位,则在整个存储器到存储器的传送过程中始终保持同一个源地址,以便实现将一个目的存储区域设置为同一个值
21、。8237A中有两种优先权编码:固定优先权编码固定优先权编码和循环优先权编码循环优先权编码。在固定优先权编码,4个通道的优先权固定(0-3)在循环优先权编码,本次循环中最近一次服务的通道在下次循环中变成最低优先权,其他通道依次轮流相应的优先权。不论用哪种优先权编码,某个通道经判别优先权获得服务后,不论用哪种优先权编码,某个通道经判别优先权获得服务后,其他通道无论其优先权高低,均被禁止,直到已服务的通道其他通道无论其优先权高低,均被禁止,直到已服务的通道结束传送为止。结束传送为止。3510暂存寄存器暂存寄存器n它是一个8位的寄存器,在存储器至存储器传送期间,用来暂存从源地址单元读出的数据。n当数
22、据传送完成时,所传送的最后一个字节数据可以由CPU读出。用复位信号可清除此寄存器。n下表给出8237各通道寄存器的寻址:36软件命令寄存器的寻址 CS A3A2A1A0 IOR IOW功能 0 1 0 0 0 0 1读状态寄存器 0 1 0 0 0 1 0写命令寄存器 0 1 0 0 1 0 1非法 0 1 0 0 1 1 0写请求寄存器 0 1 0 1 0 0 1非法 0 1 0 1 0 1 0写单通道屏蔽寄存器 0 1 0 1 1 0 1非法 0 1 0 1 1 1 0写方式寄存器 0 1 1 0 0 0 1非法 0 1 1 0 0 1 0字节指针触发器清零 0 1 1 0 1 0 1读暂
23、存寄存器 0 1 1 0 1 1 0总清 0 1 1 1 0 0 1非法 0 1 1 1 0 1 0非法 0 1 1 1 1 0 1非法 0 1 1 1 1 1 0写四通道屏蔽寄存器3711复位命令及清除高低触发器命令(软件复位命令及清除高低触发器命令(软件命令)命令)n8237A有3种软件命令,不需要通过数据总线写入控制字,直接对地址和控制信号进行译码得到。 总清除命令、总清除命令、 清除先清除先/后触发器命令后触发器命令、 清屏蔽寄存器命令清屏蔽寄存器命令38(1)总清除命令(软件复位命令)总清除命令(软件复位命令):n其功能与硬件RESET信号相同,执行软件复位命令使8237A的控制寄存
24、器、状态寄存器、DMA请求寄存器、暂存器及先/后触发器清0,使屏蔽寄存器置1。n写入此命令时要求地址信号A3A2A1A0=1101。39(2)清除先清除先/后触发器命令:后触发器命令:n8237A的先/后触发器用以控制写入或读出内部16位寄存器的高字节还是低字节。 0-读写低字节; 1-读写高字节。n复位后,该触发器被清0,进行一次读写低字节的操作后,触发器变为1,再对高位进行操作。n使用此命令可以改变将要进行的16位数据读/写的顺序。n此时要求地址信号A3A2A1A0=1100。40(3)清屏蔽寄存器命令清屏蔽寄存器命令:n这个命令使屏蔽寄存器的4位都清为0,使4个通道都被允许DMA通道请求
25、。41通道通道寄存器寄存器操作操作CS IOR IOW A3 A2 A1 A0 字节指针字节指针触发器触发器D0D70基和当前地址写 0 1 0 0 0 0 001A0A7A8A15当前地址读 0 0 1 0 0 0 001A0A7A8A15基和当前字数写0 1 0 0 0 0 101W0W7W8W15当前字数读0 0 1 0 0 0 101W0W7W8W151基和当前地址写0 1 0 0 0 1 001A0A7A8A15当前地址读0 0 1 0 0 1 001A0A7A8A15基和当前字数写 0 1 0 0 0 1 101W0W7W8W15当前字数读 0 0 1 0 0 1 101W0W7W
26、8W158237各通道寄存器的寻址42通道通道寄存器寄存器操作操作CS IOR IOW A3 A2 A1 A0 字节指针字节指针触发器触发器D0D72基和当前地址写 0 1 0 0 1 0 001A0A7A8A15当前地址读 0 0 1 0 1 0 001A0A7A8A15基和当前字数写0 1 0 0 1 0 101W0W7W8W15当前字数读0 0 1 0 1 0 101W0W7W8W153基和当前地址写0 1 0 0 1 1 001A0A7A8A15当前地址读0 0 1 0 1 1 001A0A7A8A15基和当前字数写 0 1 0 0 1 1 101W0W7W8W15当前字数读 0 0
27、1 0 1 1 101W0W7W8W15438237A编程过程n将数据和控制字分别写入地址寄存器、字节数寄存器、模式寄存器、屏蔽寄存器、命令寄存器。n若不是软件请求,则在完成编程后,由通道的引脚输入有效DREQ信号启动DMA传送过程。n若用软件请求,则再写入指定通道的请求字,就可以开始DMA传送。447.3.4 8237A的传送时序n可分为SI、S0、S1、S2、S3、S4和SW。A15A8A7A0A7A0SIS0S1S2S3S4S2S3S4SIDB7DB0CLKDREQHRQHLDAAENADSTBA7 A0DACKMEMR/IORMEMW/IOWEOP正常读扩展写扩展写正常读正常写正常写压
28、缩读压缩读传输结束图7-10 8237A工作时序 45nSI:闲状态。没有DMA请求时,8237A处于SI状态。n在SI期间,CPU可以对8237A进行编程,设置控制命令或读取状态信息,同时,在此期间8237A对各通道的DERQ端进行测试,判断是否有DMA请求。n当某通道的DERQ电平有效,则表示此通道有DMA请求。于是8237A在SI的上升沿使HRQ变为有效电平,向CPU提出DMA请求从而进入S0状态。nS0:总线请求状态。在此期间8237A等待CPU的响应信号,直到CPU发出响应信号HLDA后,进入S1状态。 46nS1:在S1期间,8237A送出地址允许信号AEN,使8237A占有地址总
29、线A15A0,同时ADSTB的下降沿锁存地址A15A8。n在传输一个256字节数据块时,需要改变A15A8,此时用到S1状态。而一般情况下这几个地址不变,因此S1可以省去,直接进入S2状态。nS2:修改存储单元低16位地址。8237A从DB7DB0输出地址A15A8,从A7A0输出低8位地址,但只有等到S3状态A15A8才会出现在地址总线上。 47nS3:读数据状态。在S3状态A15A8出现在地址总线上,8237A工作于普通时序时,需要用S3状态;若8237A工作于压缩时序,不用S3状态,直接进人S4状态,此时只更新低8位地址A7A0,高8位地址A15A8不变。同时,普通时序时S3状态产生读信
30、号或,被传送的字节读出到数据线DB上;压缩时序时,或信号在S4状态产生。nSW:等待状态。若外部设备速度慢,在S3状态之后插入SW状态。 48nS4:写数据状态。S4期间,或有效,完成数据写入。同时测试传输模式,若是块传输立即回到S2状态传输下一个字节。n综上所述,普通时序进行一次DMA传输,一般用3个时钟周期:S2、S3、S4;压缩时序多数情况用2个时钟周期:S2、S4状态。497.4 8237A在PC上的应用 7.4.1 8237A在IBM PC/XT上的应用8237A每个通道的最大传送每个通道的最大传送长度为长度为64K,它提供,它提供16位地位地址。但址。但PC/XT机使用机使用20位
31、位地址总线,如何形成地址总线,如何形成20位地位地址?址?50Key :nDMA控制电路还要提供高4位A19A16地址,称为页面地址。nXT机设计有DMA页面寄存器,它采用4个4位的寄存器堆电路74LS670,存放4个DMA通道所需的高4位地址A19A16。51图7-11 PC/XT微型机的DMAC电路示意图 1、电路简介528237A四个通道在PC/XT上的应用:n通道0:动态存储器DRAM刷新使用;n通道2和3:分别用于内存与软盘和硬盘的高速数据交换;n通道1:可提供给用户使用,当使用串行同步适配器时,通道1用于同步通信,在内存和SDLC卡之间传输数据。由于通道0用于刷新操作,因此PC/X
32、T机的8237A不能进行存储器与存储器之间的数据传输,不能采用数据块传输模式,且必须为固定优先权方式和正常时序及滞后写入。否则,DMA操作将会长时间占用系统总线,影响刷新定时进行。532、页面寄存器及20位地址形成4位数据输入端接系统数据总线的低4位D3D0,4位数据输出端接系统地址总线高4位A19A16。n当WRITE=0,数据从数据输入端写入由WB和WA编码所指定的某组寄存器中;n当READ=0,数据从由RB和RA编码指定的寄存器组中读出送至数据输出端.74LS6705455写入页面寄存器内容由CPU的I/O写操作实现。页面寄存器的WRITE端受信号WRTDMAPG控制,当对端口地址80H
33、9FH 执行写操作时,它为低电平有效。寄存器组写入选择端,WA接地址线A0,WB接A1,这样通常仅用80H83H这4个端口地址,如表7-4所示。 56由DMA控制电路看到,页面寄存器读出的控制条件是 为低电平,即DMA操作期间,读出选择端RB接通道2的响应信号 DACK2,RA接通道3的DACK3。DMAAENQuestion:0组寄存器为什么并未使用?组寄存器为什么并未使用?通道0用于动态存储器的刷新,不需要页面寄存器的内容。57n进入进入DMA服务的服务的S1状态时,状态时,8237A通过DB7DB0输出地址A15A8,并发出地址锁存信号ADSTB,把它选通至地址锁存器中。同时,8237A
34、输出低8位地址A7A0,并在整个DMA有效周期保持有效。n在在DMA服务期间,服务期间,DMAAEM信号为低电平,它将选通地址驱动器的低8位地址A7A0、地址锁存器地址A15A8以及事先写入页面寄存器的高4位地址A19A16,送至系统地址总线,形成20位DMA传输所需的内存地址。n需注意的是,页面寄存器不具有自动增减量功能,所以高4位在整个DMA传送过程中是不会改变的。583ROM-BIOS对8237A的初始化n1)输入主清除命令n2)写入基与当前地址寄存器n3)写入基与当前字节数寄存器n4)写入模式寄存器n5)写入屏蔽寄存器n6)写入命令寄存器n7)写入请求寄存器。n若有软件请求,就写入指定
35、通道,可以开始DMA传送的过程。若无软件请求,则在完成了(1)(6)的编程后,由通道的DREQ启动DMA传送过程。59在系统ROM-BIOS中有一段上电自测试程序,它对系统各部件进行测试,以确定系统部件是否无故障,然后对通道0通道3进行初始化。下面是ROM-BIOS对8237A进行测试和初始化的部分程序。60 OUT 0DH, AL ; DMA主清除命令主清除命令 MOV AL, 0FFH ; 通道寄存器的初始值通道寄存器的初始值C16:MOV BL,AL ; 保存在保存在BX MOV BH,AL MOV CX,08 ; 循环测试循环测试8次,因次,因4组通道组通道8个寄存器个寄存器 MOV
36、DX,00 ; 形成形成DMA通道通道0地址地址C17:OUT DX,AL ; 写入通道寄存器低字节写入通道寄存器低字节 PUSH AX ;(本句在(本句在ROM-BIOS中用于其他目的)中用于其他目的) OUT DX,AL ; 写入通道寄存器高字节写入通道寄存器高字节 MOV AL,01 IN AL,DX ; 读出通道寄存器低字节读出通道寄存器低字节 MOV AH,AL IN AL,DX ; 读出通道寄存器高字节读出通道寄存器高字节 CMP BX,AX ; 写入值等于读出值吗?写入值等于读出值吗? JE C18 ; 相等,则正确,转下一组寄存器相等,则正确,转下一组寄存器 HLT ; 不等,
37、则有故障,停机不等,则有故障,停机 C18:INC DX ; DX指向下一个通道寄存器地址指向下一个通道寄存器地址 LOOP C17 ; 循环测试循环测试 INC AL ; 再次测试,此时初始值设为再次测试,此时初始值设为0 JZ C16 ; 转测试转测试 对8237的四个通道的基与当前地址寄存器、基与 当前字数寄存器先写入FFFFH再读出比较看读写操作是否正确。若正确,再写入0000H同样读出校验,若仍正确则认为DMAC工作正常,就开始初始化。61MOV DS,BXMOV ES,BX ;初始化;初始化DS和和ESMOV AL,0FFH OUT 01,AL ; 写入通道写入通道0的字节数寄存器
38、低字节的字节数寄存器低字节PUSH AX ; (与前同)(与前同)OUT 01,AL ; 写入通道写入通道0的字节数寄存器高字节,传送字节数为的字节数寄存器高字节,传送字节数为64kMOV AL,58H ; 通道通道0模式字:单字节传送方式,模式字:单字节传送方式,DMA读,地址增量,读,地址增量, 自动初始化自动初始化OUT 0BH,AL MOV AL,0 MOV CH,ALOUT 08,AL ;DMA命令字:禁止存储器到存储器传输方式,固定优先权,命令字:禁止存储器到存储器传输方式,固定优先权, 正常时序,滞后写,正常时序,滞后写,DREQ高有效(高有效(PC总线用总线用DRQ表示),表示), DACK低有效(低有效(PC总线用总线用DACK表示),表示),DMA
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 商末尾有0的除法(课件)-三年级下册数学人教版()
- 年中考化学一轮专题复习(贵州)第讲空气氧气课件
- 安能物流月结合同范本
- 小型机械租赁合同范本
- 中交高速项目预制梁场建设专项施工方案
- 学校医生聘用合同范本
- 房屋租赁合同免租协议
- 家电出售合同范本模板
- 超重和失重课件-高一上学期物理人教版-
- 寄宿考研合同解约协议
- 2025年安宁市市直机关遴选考试笔试试题(含答案)
- 2025年天水村文书考试题及答案
- 中考英语初一至初三全程知识点总结及练习
- 亚马逊运营年度述职报告
- 课程顾问的年终工作总结
- 木门工程售后方案(3篇)
- 电工技能实训试题及答案
- 船厂装配工基础知识培训课件
- 2025-2026学年苏教版(2024)小学数学二年级上册(全册)教学设计(附目录P226)
- 2025-2030电子特气行业纯度标准升级对晶圆制造良率影响深度分析报告
- 除夕年夜饭作文600字9篇范文
评论
0/150
提交评论