




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、博学 审问 慎思 明辨 笃行第第8章章 DMA控制器控制器第第8章章 DMA控制器控制器 8.1 DMA控制器概要控制器概要 8.2 DMA控制器控制器8237A的编程结构的编程结构和外部信号和外部信号 8.3 8237A的工作模式和模式寄存器的工作模式和模式寄存器 8.4 8237A的工作时序的工作时序 8.5 8237A的控制寄存器和状态寄存器的控制寄存器和状态寄存器 8.6 8237A各寄存器对应的端口地址各寄存器对应的端口地址 8.7 8237A的编程和使用的编程和使用 教学重点为: 8237A的编程结构;的编程结构; 8237A的工作模式与模式寄存器;的工作模式与模式寄存器; 823
2、7A的控制与状态寄存器;的控制与状态寄存器; 8237A的实例;的实例; 8.1 DMA控制器概要控制器概要直接存储器存取方式,即直接存储器存取方式,即DMA方式方式(Direct Memory Access)希望克服程序控制传送的不足:希望克服程序控制传送的不足:外设外设CPU存储器存储器外设外设CPU存储器存储器直接存储器存取直接存储器存取DMA:外设外设存储器存储器外设外设存储器存储器CPU释放总线,由释放总线,由DMA控制器控制器得到总线控制权得到总线控制权第第8章章 DMA控制器控制器 存储器与存储器与I/O设备之间的数据传送在设备之间的数据传送在DMA控制器(又称控制器(又称DMA
3、C)的)的管理下直接进行,而不经过管理下直接进行,而不经过CPU。这种方式大大提高了传送数据的速。这种方式大大提高了传送数据的速率,但控制电路复杂,适于大批量高速度数据传送的场合。率,但控制电路复杂,适于大批量高速度数据传送的场合。第第8章章 DMA控制器控制器v 一个一个DMA控制器可以由几个通道组成。控制器可以由几个通道组成。v DMA控制器内部包含控制器内部包含 控制寄存器(可公用)控制寄存器(可公用) 状态寄存器(可公用)状态寄存器(可公用) 地址寄存器地址寄存器 字节计数器字节计数器v DMA控制器初始化过程:控制器初始化过程: 将数据传输缓冲区的起始地址或结束地址送到地址寄存器中。
4、将数据传输缓冲区的起始地址或结束地址送到地址寄存器中。 将传输的字节数、字数或双字数送到计数器中。将传输的字节数、字数或双字数送到计数器中。第第8章章 DMA控制器控制器DMA传送的工作过程:传送的工作过程:(1)外设准备好数据后向)外设准备好数据后向DMA控制器(控制器(DMAC)发出发出DMA请求请求;(2)DMAC经过内部的判优和屏蔽处理后,向控制总线发出总线请求信号经过内部的判优和屏蔽处理后,向控制总线发出总线请求信号HRQ,请求占用总线请求占用总线。即。即DMAC将此请求传递到将此请求传递到CPU的总线保持端的总线保持端HOLD,向,向CPU提出提出DMA请求;请求;(3)CPU在完
5、成当前总线周期后检测在完成当前总线周期后检测HOLD,在非总线封锁条件下,对,在非总线封锁条件下,对DMA请求请求作出响应;一是作出响应;一是CPU将地址总线、数据总线、控制总线置高阻,放弃对总线的控制权将地址总线、数据总线、控制总线置高阻,放弃对总线的控制权;二是;二是CPU送出有效的送出有效的总线响应信号总线响应信号HLDA加载至加载至DMAC,告之可以使用总线;,告之可以使用总线;(4)DMAC接到有效的总线响应信号后,接到有效的总线响应信号后,向外设送出向外设送出DMA应答信号应答信号DACK,通知,通知外设做好数据传送准备,同时占用总线,开始对总线实施控制;外设做好数据传送准备,同时
6、占用总线,开始对总线实施控制;(5)DMAC送出内存地址和对内存与外设的控制信号,控制外设与内存或内存与内送出内存地址和对内存与外设的控制信号,控制外设与内存或内存与内存之间的数据传送;存之间的数据传送;(6)DMAC通过计数控制将预定的数据传送完后,一方面,向外设发出传送结束信通过计数控制将预定的数据传送完后,一方面,向外设发出传送结束信号,另一方面,向号,另一方面,向CPU发出无效的发出无效的HOLD信号,撤消信号,撤消CPU的的DMA请求;请求;(7)CPU收到此信号后,送出无效的收到此信号后,送出无效的HLDA,并重新开始控制总线,实现正常的总,并重新开始控制总线,实现正常的总线控制操
7、作。线控制操作。在在DMA传送期间,传送期间,HRQ信号和信号和HLDA信号一直有效,直至信号一直有效,直至DMA传送结传送结束。束。8.2 DMA控制器控制器8237A的编程结构和外部信号的编程结构和外部信号 Intel8237A是是Intel系列中高性能的可编程系列中高性能的可编程DMA控制器,它使用单一控制器,它使用单一的的+5V电源,单相时钟,电源,单相时钟,40引脚双列直插式封装。它有引脚双列直插式封装。它有4个独立的通道,个独立的通道,每通道均有每通道均有64K的寻址能力,并且还可以用级联方式扩展更多的通道。的寻址能力,并且还可以用级联方式扩展更多的通道。允许在外设与存储器以及存储
8、器与存储器之间交换数据,数据传输率允许在外设与存储器以及存储器与存储器之间交换数据,数据传输率可达可达1.6Mb/S,提供多种控制方式和操作模式。,提供多种控制方式和操作模式。 DMA控制器在系统中有两种工作状态:控制器在系统中有两种工作状态:主动态与被动态主动态与被动态;并处在两;并处在两种不同的地位:主控模块与受控模块(从模块)。种不同的地位:主控模块与受控模块(从模块)。 在主动态时,在主动态时,DMAC取代处理器取代处理器CPU,获得了对系统总线(,获得了对系统总线(AB、DB、CB)的控制权,成为系统总线的主控者,向存储器和外设发出各)的控制权,成为系统总线的主控者,向存储器和外设发
9、出各种信号,以控制在两个存储实体间的信息传送。种信号,以控制在两个存储实体间的信息传送。 在被动态时,它接受在被动态时,它接受CPU对它的控制和指挥。例如在对对它的控制和指挥。例如在对DMAC进进行初始化编程以及从行初始化编程以及从DMAC读取状态时,它就如同一般读取状态时,它就如同一般I/O芯片一样,芯片一样,受受CPU的控制,成为系统的控制,成为系统CPU的受控者。一般当的受控者。一般当DMAC加电或复位时,加电或复位时,DMAC自动处于被动自动处于被动DMA状态。也就是说在进行状态。也就是说在进行DMA传送之前,必须传送之前,必须由由CPU处理器对处理器对DMAC编程,以确定通道的选择、
10、数据传送模式和类型、编程,以确定通道的选择、数据传送模式和类型、内存首地址、地址递增还是递减以及所需要传送的字节数等参数。在内存首地址、地址递增还是递减以及所需要传送的字节数等参数。在DMA传送完毕后,需要读取传送完毕后,需要读取DMAC的状态。这些时候的状态。这些时候DMA控制器是控制器是CPU的从设备。的从设备。8237A主从两面性:主从两面性:作为作为DMAC,8237A是可控制总线的主模块。是可控制总线的主模块。作为作为I/O芯片,芯片,8237A可被处理器读写。可被处理器读写。第第8章章 DMA控制器控制器与用户编程直接发生联系与用户编程直接发生联系 第第8章章 DMA控制器控制器v
11、 8237A组成说明:组成说明: 基地址寄存器:存放本通道基地址寄存器:存放本通道DMA传送的传送的RAM地址初值。地址初值。 这个初值是在编程时写入的,同时也被写入这个初值是在编程时写入的,同时也被写入 当前地址寄存器,不能读出。当前地址寄存器,不能读出。 当前地址寄存器:当前地址寄存器: DMA传送时内容变化,每次传送时内容变化,每次DMA传输后传输后 自动加自动加1或减或减1。可读:可用输入指令分两。可读:可用输入指令分两 次读出当前地址寄存器中的值,每次读次读出当前地址寄存器中的值,每次读8位。位。 基字节数寄存器:基字节数寄存器: DMA传送的总字节数(初值),在编程时传送的总字节数
12、(初值),在编程时 写入,比实际传输的字节少写入,比实际传输的字节少1。 当前字节数寄存器:当前字节数寄存器: 先写入初值,在先写入初值,在DMA传送时内容变化传送时内容变化, 每传送一个字节,自动减每传送一个字节,自动减1,当由,当由0减到减到 FFFFH时,产生计数结束信号时,产生计数结束信号EOP。 可读。可读。第第8章章 DMA控制器控制器第第8章章 DMA控制器控制器8. 3 8237A工作模式和模式寄存器工作模式和模式寄存器8.3.1 8237A 的工作模式的工作模式v 单字节传输模式:单字节传输模式:8237A每完成每完成1个字节传输,字节计数器减个字节传输,字节计数器减1,地址
13、寄存,地址寄存器加器加1或减或减1。随后,。随后,8237A释放系统总线,同时对释放系统总线,同时对DREQ进行测试,只到进行测试,只到DREQ回到有效电平,回到有效电平,8237A又会发出总线请求。又会发出总线请求。v 块传输模式:块传输模式:可进行多个字节的传输,只有当字节计数器减为可进行多个字节的传输,只有当字节计数器减为0,从而在,从而在EOP端输出一个负脉冲或外部接口往端输出一个负脉冲或外部接口往DMA控制器的控制器的EOP端送一个低电平信端送一个低电平信号时,号时,8237A才释放总线而结束传输。才释放总线而结束传输。v 请求传输模式:请求传输模式:每传输每传输1个字节,都要对个字
14、节,都要对DREQ进行测试,若为无效电平,进行测试,若为无效电平,马上暂停传输,但测试仍继续,直到回到有效电平,在原有基础上继续传马上暂停传输,但测试仍继续,直到回到有效电平,在原有基础上继续传输。输。v 级联传输模式级联传输模式:将从片的:将从片的HRQ端和主片的端和主片的DERQ端相连,从片的端相连,从片的HLDA端端和主片的和主片的DACK端相连,主片的端相连,主片的HRQ和和HLDA连接系统总线。连接系统总线。第第8章章 DMA控制器控制器 第第8章章 DMA控制器控制器8.3.2 8237A模式寄存器模式寄存器 自动化初始:自动化初始:当选择自动预置时,在接收到信号当选择自动预置时,
15、在接收到信号后,该通道自动将基地址寄存器内容装入当前地后,该通道自动将基地址寄存器内容装入当前地址寄存器,将基字节计数器内容装入当前字节计址寄存器,将基字节计数器内容装入当前字节计数器,而不必通过数器,而不必通过CPU对对8237A进行初始化,就进行初始化,就能执行另一次能执行另一次DMA服务。服务。 IORMEMW写传送。写传送。由由I/O设备至存储器设备至存储器。将数据从。将数据从I/O设备读出再写入存设备读出再写入存储器。储器。8237要发出要发出和校验。校验。这种操作实际不进行数据传这种操作实际不进行数据传送。送。8237A仍将保持着它对系统总线的控制权。设定校验方式时,要设定命令寄存
16、器为禁止存储器至存储器的DMA操作方式。MEMRIOW读传送。读传送。由存储器至由存储器至I/O设备。将设备。将数据从存储器读出,再写入数据从存储器读出,再写入I/O设备。设备。因此,因此,8237A要发出要发出和第第8章章 DMA控制器控制器8. 5 8237A控制寄存器和状态寄存器控制寄存器和状态寄存器1. 8237A的控制寄存器的控制寄存器 8237A的控制寄存器存放编程命令字,由它来控制的控制寄存器存放编程命令字,由它来控制8237A的操的操作。编程时,由作。编程时,由CPU对它写入命令字,而由复位信号(对它写入命令字,而由复位信号(RESET)和软件清除命令清除它。和软件清除命令清除
17、它。 第第8章章 DMA控制器控制器2. 8237A的状态寄存器的状态寄存器 第第8章章 DMA控制器控制器3. 8237A的请求寄存器和屏蔽寄存器的请求寄存器和屏蔽寄存器 第第8章章 DMA控制器控制器 第第8章章 DMA控制器控制器 8237A的全屏蔽寄存器的全屏蔽寄存器第第8章章 DMA控制器控制器全部都用地址全部都用地址A A0 0A A3 3区分区分8.6 8237A寄存器对应的端口地址寄存器对应的端口地址 8237A共有共有10种内部寄存器:种内部寄存器: 通过对内部寄存器的写操作执行对通过对内部寄存器的写操作执行对8237A的编程命令;的编程命令; 通过读操作来读取通过读操作来读
18、取8237A的状态寄存器的状态字和暂存器中暂存的内容。的状态寄存器的状态字和暂存器中暂存的内容。 A0 A3双向三态地址线:双向三态地址线: 输入地址时用来寻找输入地址时用来寻找 DMA 内部寄存器,内部寄存器,CPU 对所选寄存器进行操作;对所选寄存器进行操作; 输出地址时作为低输出地址时作为低 4 位的地址输出线。位的地址输出线。A7A4 高高 4 位地址线位地址线:工作在输出状态,输出高:工作在输出状态,输出高4 位地址信息。位地址信息。第第8章章 DMA控制器控制器8237A内部各寄存器均有相应的端口地址,其编程顺序无严格要求。内部各寄存器均有相应的端口地址,其编程顺序无严格要求。 1
19、. 8237A的各通道寄存器地址的各通道寄存器地址通道通道寄存器名称寄存器名称A3A2A1A00地址寄存器地址寄存器00000字节寄存器字节寄存器000101地址寄存器地址寄存器00100字节寄存器字节寄存器001102地址寄存器地址寄存器01000字节寄存器字节寄存器010103地址寄存器地址寄存器01100字节寄存器字节寄存器01110CS第第8章章 DMA控制器控制器基地址寄存器基地址寄存器当前地址寄存器当前地址寄存器共用同一端口共用同一端口, 存放存放初始值初始值v 保持保持DMA传送的当前地址值传送的当前地址值v 每次传送后该寄存器的值自动加每次传送后该寄存器的值自动加1或减或减1v
20、 这个寄存器的值可由这个寄存器的值可由CPU写入和读出写入和读出第第8章章 DMA控制器控制器基本字节计数器基本字节计数器当前字节计数器当前字节计数器共用同一端口共用同一端口, 存放传输字节数的存放传输字节数的初始值初始值传送传送N个个字节,初始值为字节,初始值为N1v保持保持DMA传送的剩余字节数传送的剩余字节数v每次传送后,该寄存器的值减每次传送后,该寄存器的值减1v这个寄存器的值可由这个寄存器的值可由CPU写入和读出写入和读出v该寄存器的值减至该寄存器的值减至0,再减,再减1(从(从0减到减到FFFFH)时,终止计数)时,终止计数第第8章章 DMA控制器控制器读写通道寄存器读写通道寄存器
21、DB7DB0 双向数据线双向数据线:连接到系统总线上:连接到系统总线上 CPU 通过读命令,读取通过读命令,读取 8237A 内部的寄存器的内容;内部的寄存器的内容; 通过写命令,对通过写命令,对 8237A 内部寄存器进行编程。内部寄存器进行编程。 8237A的通道寄存器均为的通道寄存器均为16位位, 而而CPU与与8237A之间通之间通过过8位数据总线交换信息,需要位数据总线交换信息,需要两次读写操作两次读写操作才能实现才能实现CPU与与8237A之间的一个完整数据的交换。之间的一个完整数据的交换。第第8章章 DMA控制器控制器寄存器及操作寄存器及操作A3A2A1A0读状态寄存器读状态寄存
22、器1000100写控制寄存器写控制寄存器1000010写请求寄存器写请求寄存器1001010写单通道屏蔽寄存器写单通道屏蔽寄存器1010010写模式寄存器写模式寄存器1011010清除字节指针清除字节指针1100010读暂存寄存器读暂存寄存器1101100发复位命令发复位命令1101010清屏蔽寄存器清屏蔽寄存器1110010写全屏蔽寄存器写全屏蔽寄存器1111010IOWIORCS2. 8237A的其它寄存器地址的其它寄存器地址v对它们的操作有时需要配合对它们的操作有时需要配合3个软件命令个软件命令, 8237A的的“软件命令软件命令”:不需要通过数据总线写入控制字不需要通过数据总线写入控制
23、字直接由地址和控制信号译码实现直接由地址和控制信号译码实现第第8章章 DMA控制器控制器由于由于8237A编程顺序无严格要求。一般可按如下顺序编制初始化程序:编程顺序无严格要求。一般可按如下顺序编制初始化程序: 8237A初始化编程初始化编程:8.7 8237A的编程和使用的编程和使用(1)发复位命令(总清除命令)发复位命令(总清除命令) A3A2A1A01101,使字节指针清零,使字节指针清零 还使控制、状态、请求、暂存器清零还使控制、状态、请求、暂存器清零 使屏蔽寄存器置为全使屏蔽寄存器置为全1(禁止(禁止DMA请求)请求) 与硬件的与硬件的RESET信号具有相同的功能信号具有相同的功能(
24、2)写基地址(当前地址)寄存器)写基地址(当前地址)寄存器: 写入数据块的首地址。写入数据块的首地址。(3)写基字节计数(当前字节计数)寄存器)写基字节计数(当前字节计数)寄存器:写入数据块的数据数目。写入数据块的数据数目。(4)写模式寄存器)写模式寄存器: 写入工作方式字,以确定指定通道的操作类型、写入工作方式字,以确定指定通道的操作类型、 传送方式、是否自动预置和传送一字节数据后地传送方式、是否自动预置和传送一字节数据后地 址的修改方向。址的修改方向。(5)写屏蔽寄存器)写屏蔽寄存器: 屏蔽方式可用单个通道屏蔽字,从地址屏蔽方式可用单个通道屏蔽字,从地址1010B写写 入,也可用四通道屏蔽
25、字,从地址入,也可用四通道屏蔽字,从地址1111B写入。写入。(6)写命令控制寄存器)写命令控制寄存器(7)写请求寄存器)写请求寄存器第第8章章 DMA控制器控制器8237A在在PC系列机的使用情况系列机的使用情况vIBM PC/XT机使用一片机使用一片8237A通道通道0:动态存贮器:动态存贮器DRAM刷新刷新通道通道1:用户使用、网络通信等:用户使用、网络通信等通道通道2:内存与软盘的高速数据交换:内存与软盘的高速数据交换通道通道3:内存与硬盘的高速数据交换:内存与硬盘的高速数据交换vIBM PC/AT机采用两片机采用两片8237ADMAC1包含通道包含通道03,支持,支持8位数据传送位数
26、据传送DMAC2组成通道组成通道47,通道,通道57支持支持16位数据传送,通道位数据传送,通道4用于级联。用于级联。v8237A初始化写入命令字为初始化写入命令字为0,确定了:,确定了:DREQ高电平有效、高电平有效、DACK低电平有效,固定优先权(依次为通道低电平有效,固定优先权(依次为通道0、17)不进行存储器到存储器的数据传输不进行存储器到存储器的数据传输PC机用机用DMA控制电路进行刷新,所以控制电路进行刷新,所以DMA传送不能长时间占用总线(不应超过传送不能长时间占用总线(不应超过15 s),一般只能使用单字节传送方式),一般只能使用单字节传送方式v在在PC系列机上,用户如果使用系
27、列机上,用户如果使用DMA通道,要注意遵从上述系统要求。除了要禁止通道,要注意遵从上述系统要求。除了要禁止8237A工作,用户通常不必操作命令寄存器工作,用户通常不必操作命令寄存器第第8章章 DMA控制器控制器v8237A对应的端口地址为对应的端口地址为0000000FH。 用标号用标号DMA表示首地址表示首地址0000H,vDMA传送时的高位地址由传送时的高位地址由“页面寄存器页面寄存器”提供。提供。v页面寄存器页面寄存器74LS670由由CPU的输出指令实现写入,端口的输出指令实现写入,端口0083H。页面寄存器不会自动增减量页面寄存器不会自动增减量高位地址在高位地址在DMADMA传送过程中不改变传送过程中不改变 某微机系统,采用一片某微机系统,采用一片DMA传送数据,通过通道传送数据,通过通道0将磁盘输入的将磁盘输入的1K数数据
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 江苏省苏州2024-2025学年九年级(上)物理第一次月考试卷(含答案)
- 抗菌药物的分级管理
- 抗生素使用常见问题课件
- 2025-2026统编版八年级上册第二单元测试题(含答案)
- 最难的育儿题目及答案
- 江西小学教资题库及答案
- 高中几何经典题目及答案
- 扑火安全教育培训报道课件
- 2025年海底捞文员考试题及答案
- 河南二建考试试题及答案
- 第三、四章-证据的分级、来源与检索课件
- 《计算机系统结构(第二版)》配套教学课件
- 胰十二指肠切除术课件
- 风险分级管控责任清单(市政道路工程)
- 职业技术学院学生退费申请表
- (临床治疗)继发性甲旁亢课件
- UNIT 1 LESSON 1 LIFESTYLES课件第一课时
- 投标文件标书采购类
- 传媒公司解约合同模板
- 陆上石油天然气长输管道建设项目初步设计安全专篇
- 工作人员轮岗交流动员会上的讲话
评论
0/150
提交评论