




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第第1111章章 DMADMA技术与技术与DMADMA控制器控制器 n11.1 DMA11.1 DMA技术概述技术概述 n11.2 11.2 可编程可编程DMADMA控制器控制器8237A 8237A n11.3 DMA11.3 DMA技术在微机系统中的应用技术在微机系统中的应用 无条件传送:传送之前不查询外设状态无条件传送:传送之前不查询外设状态 程序控制方式程序控制方式 查询传送:传送之前查询外设状态查询传送:传送之前查询外设状态 中断方式:外设准备好后向中断方式:外设准备好后向CPU申请中断,申请中断, CPU响应中断完成数据传送。响应中断完成数据传送。 DMA(直接存储器存取)方式:由
2、专用硬件(直接存储器存取)方式:由专用硬件“DMA控制器控制器” 控制内存和外设之间直接传送数据。控制内存和外设之间直接传送数据。 (不需要(不需要CPU干预)干预)11.1 DMA11.1 DMA技术概述技术概述n1、DMA传送方式的实现方法:n由专用接口芯片DMA控制器(称DMAC)控制传送过程;n当外设需传送数据时,通过DMAC向CPU发出总线请求;nCPU发出总线响应信号,释放总线;nDMAC接管总线,控制外设、内存之间直接数据传送。2、DMA传送方式的特点外设和内存之间,直接进行数据传送,不通过CPU, 传送效率高。适用于在内存与高速外设、或两个高速外设之间进行大批量数据传送。电路结
3、构复杂,硬件开销较大。DMA DMA 传送过程示意图传送过程示意图CPUDMAC内存内存外设外设总线总线响应响应总线总线请求请求DREQDACK11.1.1 DMAC11.1.1 DMAC的基本功能的基本功能接收接口往接收接口往DMADMA控制器发出控制器发出DMADMA请求信号后,请求信号后,DMADMA控控制器能向制器能向CPUCPU发出总线请求信号发出总线请求信号HOLD(HOLD(高电平高电平) )。当当CPUCPU向向DMADMA发出响应信号发出响应信号HLDA(HLDA(高电平高电平) )以后,以后,DMADMA能接管对总线的控制,能接管对总线的控制,进入进入DMADMA方式。方式
4、。能向地址总线发出内存地址信息,对其进行寻址能向地址总线发出内存地址信息,对其进行寻址及修改地址指针。及修改地址指针。能向存储器或能向存储器或I/OI/O接口发相应的读写控制信号。接口发相应的读写控制信号。能决定传送字节数,并判断能决定传送字节数,并判断DMADMA传送是否结束。传送是否结束。DMADMA过程结束,能向过程结束,能向CPUCPU发出发出DMADMA结束信号,结束信号,HOLDHOLD变变低低, ,将总线控制权还给将总线控制权还给CPUCPU,CPUCPU恢复正常工作。恢复正常工作。11.1.2 DMAC11.1.2 DMAC的一般结构的一般结构 地址总线地址总线地址地址译码器译
5、码器DMADMA控制器控制器计数结束信号计数结束信号 ( (可作为中断请求信号可作为中断请求信号) )字节计数寄存器字节计数寄存器地址寄存器地址寄存器状态寄存器状态寄存器控制寄存器控制寄存器总线回答总线回答总线请求总线请求控制总线控制总线数据总线数据总线外设外设DMADMA请求请求DMADMA响应响应中断请求中断请求数据输出寄存器数据输出寄存器数据输入寄存器数据输入寄存器状态寄存器状态寄存器控制寄存器控制寄存器I/OI/O接口接口控制总线控制总线数据总线数据总线地址总线地址总线图图11.1 11.1 单通道单通道DMACDMAC的一般结构及其与的一般结构及其与I/OI/O接口的连接接口的连接1
6、1.1.3 DMAC11.1.3 DMAC的工作方式的工作方式1 1、单字节传输方式、单字节传输方式:在单字节传输方式下,在单字节传输方式下,DMADMA控制器每次请求总线只传送一个字节数据,控制器每次请求总线只传送一个字节数据,传送完后即释放总线控制权。传送完后即释放总线控制权。2 2、块传输方式、块传输方式( (也称组传输方也称组传输方式式) ):块传输方块传输方式是指式是指DMADMA控制器每次请求总线连续传送一个控制器每次请求总线连续传送一个数据块,待整个数据块全部传送完成后再释放数据块,待整个数据块全部传送完成后再释放总线控制权。总线控制权。n3 3、请求传输方式:、请求传输方式:此
7、方式与块传输方式基本类此方式与块传输方式基本类似,不同的是每传输完一个字节,似,不同的是每传输完一个字节,DMADMA控制器都控制器都要检测由要检测由I/OI/O接口发来的接口发来的DMADMA请求信号是否仍然请求信号是否仍然有效,如果该信号仍有效,则继续进行有效,如果该信号仍有效,则继续进行DMADMA传输;传输;否则,就暂停传输,交还总线控制权给否则,就暂停传输,交还总线控制权给CPUCPU,直,直至至DMADMA请求信号再次变为有效,数据块传输则从请求信号再次变为有效,数据块传输则从刚才暂停的那一点继续进行下去。刚才暂停的那一点继续进行下去。11.1.4 DMA11.1.4 DMA操作过
8、程操作过程 n若从外设往内存输入一个数据块(输入过程),在单字节传输方式下,主要工作过程为:从I/O接口向DMA控制器发送DMA请求信号。DMA控制器向CPU发总线请求信号,当得到CPU送来的总线允许信号后,DMA控制器获得总线控制权。DMA控制器将其地址寄存器的内容送到地址总线上。DMA控制器往I/O接口发送DMA响应信号,并接着发出I/O接口的读信号,使I/O接口把数据送到数据总线上。DMA控制器发出存储器写信号,使数据传送到由地址总线的地址所指向的内存单元。地址寄存器加1。字节计数器减1。如果字节计数寄存器的值不为零,则返回第步,否则进入第步。DMA控制器释放总线。内 存 把 数 据 送
9、 数 据 总 线内 存8086和总 线 控制 逻 辑HOLDHLDA发 送 总 线 请 求控制总线总 线 允 许地址总线数据总线接 口 DMA控 制 器接 口 准 备 就 绪,发 送 DMA请 求接 口 锁 存 数 据I/O设 备DMA请 求得 到 确 认325176489DMA控 制 器 把 地 址 送 地 址 总 线撤 消 总 线 请 求8086收 回 总 线 控 制 权图图11.2 11.2 以以DMADMA方式输出一个字节数据的工作过程方式输出一个字节数据的工作过程DMADMA控制器控制器数据数据端口端口状态状态/ /控制控制端口端口地址寄存器地址寄存器计数器计数器控制控制/ /状态状
10、态寄存器寄存器C CP PU U存存储储器器HOLDHOLDHLDAHLDA数据缓数据缓冲寄存器冲寄存器DMADMA请求请求触发器触发器输入设备输入设备DMADMA请求请求DMADMA响应响应ReadyReadyDMADMA控制器工作原理图控制器工作原理图1 111.2 11.2 可编程可编程DMADMA控制器控制器8237A 8237A n11.2.1 8237A的主要特性 n1具有四个独立的DMA通道,每个通道都具有64K的存贮器寻址能力,即一次传送的最大长度为64K字节。n2可实现内存与外设之间的高速大批量数据传送,也可实现内存两个不同区域之间的高速数据传送。n3每个通道的DMA请求均可
11、分别允许或禁止,且四个通道的DMA请求的优先权可由软件设置为固定的或旋转的。 n4具有单字节传送、数据块传送、请求传送和级联传送四种工作方式。n5可用级联方式扩展DMA通道数目。n6DMA传送结束信号可由内部计数产生,也可由外部输入提供。n7单一的+5V电源,40个引脚双列直插式封装。n8采用5MHz时钟,传送速率可达1.6M字节/秒。n98237可以级连,任意扩展通道数。11.2.2 8237A11.2.2 8237A的工作原理的工作原理 n18237A的编程结构 n编程结构见下页图n内部有大量寄存器,内部寄存器的功能、端口地址等信息 参见表11.1.IO/M地 址译 码 器A15A8A7A
12、0接 数 据总 线A3A0A7A4CSDB7DB0ADSTB锁 存 器STBENAEN使 CPU的 地 址 锁 存 器 无 效时 钟HLDAHOLDCLKHLDAHRQ地电 源控 制 寄 存 器状 态 寄 存 器请 求 触 发 器屏 蔽 触 发 器模 式 寄 存 器当 前 地 址 寄 存 器基 地 址 寄 存 器当 前 字 节 计 数 器基 本 字 节 寄 存 器暂 存 器通 道 0通 道 1通 道 2通 道 3IORMEMRIOWMEMWREADYRESETDREQ0DACK0DREQ1DACK1DREQ2DACK2DREQ3DACK3EOP+5V图图11.3 8237A11.3 8237A
13、的编程结构的编程结构 寄存器名称 功能 位数 数量 所属 CPU 访 问方式 端口地址低 4 位 控制寄存器 存放命令字 8 1 四通道共用 只写 1000 状态寄存器 存放状态字 8 1 四通道共用 只读 1000 工作模式寄存器 存放模式字 8 4 每通道一个 只写 1011 基地址寄存器 存放存贮器起始地址 16 4 每通道一个 只写 00000111 中的偶地址 当前地址寄存器 存放存贮器当前地址 16 4 每通道一个 可读/写 00000111 中的偶地址 基字节数计数器 存放传送字节总数 16 4 每通道一个 只写 00000111 中的奇地址 当前字节计数器 存放尚未传送的字节总
14、数 16 4 每通道一个 可读/写 00000111 中的偶地址 请求触发器 设置 DMA 请求标志 1 4 每通道一个 只写 1001 屏蔽触发器 设置通道屏蔽标志 1 4 每通道一个 只写 1010 或 1111 暂存寄存器 用于两存贮区之间的传送 8 1 四通道共用 只读 1101 几点说明:几点说明:n请求触发器每通道一位,四个通道的请求触发器占用同一个端口地址,实际上构成一个4位的寄存器,屏蔽触发器也是一样。n控制寄存器和状态寄存器共用一个端口地址,一个为只读,一个为只写。 n写屏蔽字时有两种方式:某一通道的屏蔽字,应写到1010端口; 四个通道屏蔽字,则写入1111端口。n各通道的
15、基地址寄存器和当前地址寄存器的端口地址低四位是:0000 0通道0010 1通道0100 2通道0110 3通道n各通道的基字节数寄存器和当前字节计数器的端口地址低四位是:0001 0通道0011 1通道0101 2通道0111 3通道 n8237A8237A内有一个内有一个先先/ /后触发器后触发器,占,占1 1位,当其为位,当其为0 0时时对对1616位寄存器的低位寄存器的低8 8位进行读位进行读/ /写操作,当其为写操作,当其为1 1时,时,则对高则对高8 8位进行读位进行读/ /写操作,且每读或写一次,先写操作,且每读或写一次,先/ /后触发器的状态就自动翻转一次。后触发器的状态就自动
16、翻转一次。 8237A 8237A复位后,复位后,先先/ /后触发器为后触发器为0 0。n8237A8237A除可用除可用RESET=1RESET=1信号进行硬件控制的复位外,信号进行硬件控制的复位外,还可以用主清除命令进行软件控制的复位。软件还可以用主清除命令进行软件控制的复位。软件复位是通过对复位是通过对11011101端口端口进行写操作实现的。进行写操作实现的。 n28237A的总线模式 主模式(主动态):在DMA操作其间,8237A就处于主模式,这时它管理系统总线,发出地址和有关控制信号使数据在内存和外设端口之间或内存两个不同区域之间传递。从模式(被动态):所谓从模式是指在没有进行DM
17、A操作时,8237A象其他接口芯片一样,可被CPU访问。即向其有关内部寄存器写入工作方式控制字,传送地址及字节数等,也可读取其状态信息。3 38237A8237A的外部引脚的外部引脚n8237A8237A的工作时序的工作时序8237A8237A使用独立的时钟信号,工作过程可以分使用独立的时钟信号,工作过程可以分为为SISI,S0S0,S1S1,S2S2,S3S3,SWSW,S4S4几个状态,每个状几个状态,每个状态占用态占用1 1个时钟周期,因此状态也可以称为周期。个时钟周期,因此状态也可以称为周期。 1) 1) 空闲状态空闲状态SI SI 2) 2) 有效周期有效周期 3) 3) 扩展写与压
18、缩时序扩展写与压缩时序 DMA DMA空闲周期空闲周期SISI 过渡状态过渡状态S0 DMAS0 DMA请求应答状态请求应答状态 有效周期(有效周期(S1S1、S2S2、S3S3、S4S4) n空闲周期空闲周期当当82378237的任一通道都无请求时就进入空闲周期的任一通道都无请求时就进入空闲周期(Idle Cycle)(Idle Cycle)。在空闲周期,。在空闲周期,82378237始终执行始终执行SISI状态,状态,在每一个时钟周期都采样通道的请求输入线在每一个时钟周期都采样通道的请求输入线DREQDREQ。只要无请求就始终停留在只要无请求就始终停留在SISI状态。状态。在在SISI状态
19、,可由状态,可由CPUCPU对对82378237编程或从编程或从82378237读取读取状态。状态。82378237在在SISI状态也始终采样选片信号状态也始终采样选片信号CS#CS#,只要,只要CS#CS#信号变为有效,则信号变为有效,则CPUCPU要对要对82378237进行读进行读/ /写操作。写操作。当当82378237采样到采样到CS#CS#为低为低( (有效有效) )而而HRQHRQ也为低也为低( (无无效效) ),则进入程序状态,则进入程序状态,CPUCPU就可以对就可以对82378237的内部寄存的内部寄存器进行写入操作,以实现对器进行写入操作,以实现对82378237的编程或
20、者改变的编程或者改变82378237的工作状态。在这种情况下,由控制信号的工作状态。在这种情况下,由控制信号IOR#IOR#和和IOW#IOW#、地址信号地址信号A3A3A0A0来选择来选择82378237内部不同的寄存器。内部不同的寄存器。由于由于82378237内部的地址寄存器和字节数计数器都内部的地址寄存器和字节数计数器都是是1616位的,而数据线却是位的,而数据线却是8 8位的,所以,在位的,所以,在82378237的内的内部有一个触发器称为高部有一个触发器称为高/ /低触发器,由它来控制写入低触发器,由它来控制写入1616位寄存器的高位寄存器的高8 8位还是低位还是低 8 8位。位。
21、82378237还具有一些软还具有一些软件命令,这些命令是通过对地址线件命令,这些命令是通过对地址线A3A3A0A0和和IOW#IOW#、CS#CS#信号的译码来决定的,不使用数据总线。信号的译码来决定的,不使用数据总线。n有效周期有效周期(Active Cycles)(Active Cycles)当当82378237在在SISI状态采样到外设有请求,就脱离状态采样到外设有请求,就脱离SISI而而进入进入S0S0状态,状态,S0S0状态是状态是DMADMA服务的第一个状态,在这个服务的第一个状态,在这个状态状态82378237已经接收了外设的请求,向已经接收了外设的请求,向CPUCPU发出了发
22、出了DMADMA请请求信号求信号HRQHRQ,但尚未收到,但尚未收到CPUCPU的的 DMA DMA响应信号响应信号HLDAHLDA。当。当接收到接收到HLDAHLDA就使就使82378237进入工作状态,开始进入工作状态,开始DMADMA传送。传送。工作状态是由工作状态是由S1S1、S2S2、S3S3、S4S4组成以完成数据传组成以完成数据传送,若外设的数据传送速度较慢,不能在送,若外设的数据传送速度较慢,不能在S4S4之前完成,之前完成,则可由则可由ReadyReady信号线在信号线在S2S2或或S3S3与与S4S4之间插入之间插入S SW W状态。状态。在存储器与存储器之间的传送,需要完
23、成从存储在存储器与存储器之间的传送,需要完成从存储器读和存储器写的操作,所以每一次传送需要器读和存储器写的操作,所以每一次传送需要8 8个时钟个时钟周期,在前周期,在前4 4个周期个周期S11S11、S12S12、S13S13、S14S14完成从存储器完成从存储器读的操作,后读的操作,后4 4个周期个周期S21S21、S22S22、S23S23、S24S24完成存储器完成存储器写操作。写操作。11.2.3 8237A11.2.3 8237A的编程的编程 n1命令字与状态字 n模式寄存器 每个通道有一个8位的模式寄存器,用以规定通道的工作模式。但编程写入的模式控制字仍是8位,其最低两位用来指定写
24、入的通道号。 模式字的格式如图11.5所示。 D7D6D5D4D3D1D0D200请求传送方式01单字节传送方式10块传送方式11联级方式0地址增11地址减10禁止自动初始化1允许自动初始化00选择通道001选择通道110选择通道211选择通道300校验传送01写传送(I/O内存)10读传送(内存I/O)11非法图图11.5 8237A11.5 8237A的模式字格式的模式字格式 n命令寄存器 命令寄存器是四个通道公用的一个8位寄存器,用以控制整个8237A的操作。即一片8237A只有一个命令寄存器,其内容对四个通道都有效。 命令字的格式如图11.6所示。D7D6D5D4D3D1D0D20 D
25、ACK低电平有效1 DACK高电平有效0 DREQ高电平有效1 DREQ低电平有效0 正常写1 扩展写0 固定优先级1 循环优先级0 禁止存储器到存储器传送1 允许存储器到存储器传送0 禁止通道0地址保持1 允许通道0地址保持 若D0=00 控制器允许1 控制器禁止0 普通时序1 压缩时序 若D0=1若D3=1图图11.6 8237A11.6 8237A的命令字格式的命令字格式 n请求寄存器 n8237A的每个通道除了可以响应硬件的DMA请求信号DREQ外,当其工作在块传送方式时也可以响应由软件发出的DMA请求。n软件的DMA请求是通过使相应通道的“请求位”置位来实现的,它等效于外部产生一个有
26、效的DREQ信号。n8237A每一个通道有一位“请求位”,四个通道的请求位构成一个4位的请求寄存器。 请求寄存器的命令字(请求命令字)格式如图11.8所示。 D7D6D5D4D3D1D0D200选择通道001选择通道110选择通道211选择通道30清除请求1设置请求无关图图11.8 8237A11.8 8237A的请求寄存器的命令字格式的请求寄存器的命令字格式 n屏蔽寄存器 n8237A每个通道有一位“屏蔽位”,当其通道的“屏蔽位”置1时,则外部对应的DREQ信号被屏蔽,不予响应,从而禁止了该通道的DMA操作。n四个通道的“屏蔽位”构成一个4位的屏蔽寄存器。n有两种屏蔽命令字格式,n单独对某一
27、个通道的屏蔽位进行置位或复位,如图11.9(a)所示;n另一种是可以同时设定四个通道的屏蔽位,也称综合屏蔽命令字,如图11.9(b)所示。D7D6D5D4D3D1D0D200选择通道001选择通道110选择通道211选择通道30清除屏蔽位1置位屏蔽位无关D7D6D5D4D3D1D0D2无关(a)0清除通道0屏蔽位1置位通道0屏蔽位0清除通道1屏蔽位1置位通道1屏蔽位0清除通道2屏蔽位1置位通道2屏蔽位0清除通道3屏蔽位1置位通道3屏蔽位(b)(a a)单通道屏蔽字格式)单通道屏蔽字格式(b b)四通道屏蔽字格式)四通道屏蔽字格式图图11.9 8237A11.9 8237A屏蔽字的两种格式屏蔽字
28、的两种格式n状态寄存器状态寄存器 8237A有一个可由CPU读取的状态寄存器,如图11.10所示。 D7D6D5D4D3D1D0D21 通 道 3 有 请 求1 通 道 2 有 请 求1 通 道 1 有 请 求1 通 道 0 有 请 求1 通 道 0 传 输 结 束1 通 道 1 传 输 结 束1 通 道 2 传 输 结 束1 通 道 3 传 输 结 束图图11.10 8237A11.10 8237A的状态寄存器格式的状态寄存器格式 n现行地址寄存器现行地址寄存器每一个通道有一个每一个通道有一个1616位的现行地址寄存器。在位的现行地址寄存器。在这个寄存器中保持用于这个寄存器中保持用于DMAD
29、MA传送的地址值,在每次传送的地址值,在每次传送后这个寄存器的值自动增量或减量。在传送过传送后这个寄存器的值自动增量或减量。在传送过程中地址的中间值就保存在这个寄存器中。程中地址的中间值就保存在这个寄存器中。这个寄存器的值可由这个寄存器的值可由CPUCPU写入或读出写入或读出( (分两次连分两次连续操作续操作) )。若编程为自动初始化,则在每次。若编程为自动初始化,则在每次EOP#EOP#后,后,初始化为它的初始值初始化为它的初始值( (即保存在基地址寄存器中的即保存在基地址寄存器中的值值) )。n现行字节数寄存器现行字节数寄存器每个通道有一个每个通道有一个1616位的现行字节数寄存器,位的现
30、行字节数寄存器,它保持着要传送的字节数,在每次传送后此寄存它保持着要传送的字节数,在每次传送后此寄存器减量。在传送过程中字节数的中间值保存在这器减量。在传送过程中字节数的中间值保存在这个寄存器中。当这个寄存器的值减为零,个寄存器中。当这个寄存器的值减为零,TCTC将产将产生。这个寄存器的值在程序状态可由生。这个寄存器的值在程序状态可由CPUCPU读出和写读出和写入。在自动初始化情况下,当入。在自动初始化情况下,当EOP#EOP#产生时,它的产生时,它的值可初始化到起始状态。值可初始化到起始状态。n基地址和基字节数寄存器基地址和基字节数寄存器每一个通道有一对每一个通道有一对1616位的基地址和基
31、字节数寄位的基地址和基字节数寄存器,它们存放着与现行寄存器相联系的初始值。存器,它们存放着与现行寄存器相联系的初始值。在自动初始化情况下,这两个寄存器中的值用来恢在自动初始化情况下,这两个寄存器中的值用来恢复相应的现行寄存器中的初始值。在程序状态,基复相应的现行寄存器中的初始值。在程序状态,基寄存器与它们相应的现行寄存器是同时由寄存器与它们相应的现行寄存器是同时由CPUCPU写入的。写入的。这些寄存器的内容不能读出。这些寄存器的内容不能读出。n临时寄存器临时寄存器在存储器到存储器的传送方式下,临时寄存器在存储器到存储器的传送方式下,临时寄存器保存从源单元读出的数据,又由它写入目的单元。保存从源
32、单元读出的数据,又由它写入目的单元。在传送完成时,它保留传送的最后一个字节,此字在传送完成时,它保留传送的最后一个字节,此字节可由节可由CPUCPU读出。读出。READYREADY信号使其复位。信号使其复位。n软件命令软件命令82378237在编程状态还有两种软件命令,软件命令在编程状态还有两种软件命令,软件命令不需要通过数据总线写入控制字,而由不需要通过数据总线写入控制字,而由82378237直接对直接对地址和控制信号进行译码。有两种软件命令:地址和控制信号进行译码。有两种软件命令:(1)(1)清除高清除高/ /低触发器低触发器82378237内部的高内部的高/ /低触发器用以控制写入或读出
33、低触发器用以控制写入或读出1616位寄存器的高字节还是低字节。如后表中所示,位寄存器的高字节还是低字节。如后表中所示,若触发器为零,则操作的为低字节;为若触发器为零,则操作的为低字节;为“1”“1”,则操,则操作的为高字节。在复位以后,此触发器被清零,每作的为高字节。在复位以后,此触发器被清零,每当对当对1616位寄存器进行一次操作,则此触发器改变状位寄存器进行一次操作,则此触发器改变状态。用此命令使它清零,以改变下面要进行的读态。用此命令使它清零,以改变下面要进行的读/ /写写操作的顺序。操作的顺序。(2)(2)主清除命令主清除命令这个命令与硬件的这个命令与硬件的RESETRESET信号有相
34、同的功能,信号有相同的功能,即它使命令、状态、请求、临时寄存器以及内部的即它使命令、状态、请求、临时寄存器以及内部的高高/ /低触发器清零;使屏蔽寄存器各位全置为低触发器清零;使屏蔽寄存器各位全置为“1”(“1”(即屏蔽状态即屏蔽状态) );使;使82378237进入空闲周期,以便进进入空闲周期,以便进行编程。行编程。A A3 3 A A2 2 A A1 1 A A0 0通道号通道号IOR#IOR#IOW#IOW#0 0 0 00 0 0 00 0 0 10 0 0 10读当前地址寄存器读当前字节计数器写基本写基本( (当前当前) )地址寄存器地址寄存器写基本写基本( (当前当前) )字节计数
35、器字节计数器0 0 1 00 0 1 00 0 1 1 0 0 1 1 1读当前地址寄存器读当前字节计数器写基本写基本( (当前当前) )地址寄存器地址寄存器写基本写基本( (当前当前) )字节计数器字节计数器0 1 0 00 1 0 00 1 0 10 1 0 12读当前地址寄存器读当前字节计数器写基本写基本( (当前当前) )地址寄存器地址寄存器写基本写基本( (当前当前) )字节计数器字节计数器0 1 1 00 1 1 00 1 1 10 1 1 13读当前地址寄存器读当前字节计数器写基本写基本( (当前当前) )地址寄存器地址寄存器写基本写基本( (当前当前) )字节计数器字节计数器1
36、 0 0 01 0 0 01 0 0 11 0 0 11 0 1 01 0 1 01 0 1 11 0 1 11 1 0 01 1 0 01 1 0 11 1 0 11 1 1 01 1 1 01 1 1 11 1 1 1公共读状态寄存器读暂存寄存器写控制寄存器写控制寄存器写请求寄存器写请求寄存器写屏蔽寄存器某一位写屏蔽寄存器某一位写方式寄存器写方式寄存器清除高清除高/ /低触发器低触发器主清除主清除( (软件复位软件复位) )清除屏蔽寄存器清除屏蔽寄存器写屏蔽寄存器所有位写屏蔽寄存器所有位2 28237A8237A编程步骤:编程步骤:n8237A的编程通常可按如下步骤进行。n输出主清除命令,
37、使8237A进入初始状态;n将DMA传送的存贮器起始地址写入基地址和当前地址寄存器;n将要传送的字节数写入基字节寄存器和当前字节计数器;n写模式寄存器,规定8237A的工作方式等;n写命令寄存器,规定各通道优先级及DREQ、DACK的有效电平等;n写屏蔽寄存器,规定开放和屏蔽的通道;n写请求寄存器,发DMA请求命令。 n38237A的编程举例 n例:设某8088系统使用一片8237A,现欲将内存地址为8000H开始的100个字节数据以DMA方式输出到某外设,已知8237A的端口地址为20H2FH,并规定8237A通道1工作在方式2,硬件启动。试编写初始化程序段。 n解:根据以上已知条件和要求,
38、初始化程序段为:OUT 2DH,AL ;发主清除命令MOV AL,89H ;选通道1,读传送,禁止自 1000 1001 动预置,方式2,地址递增OUT 2BH,ALMOV AL,80H ;写命令字:普通时序,存储器 1000 0000 到外设传送,固定优先级OUT 28H,AL ;正常写,DREQ、DACK高电平有效MOV AL,00H ;写基地址和当前地址寄存器OUT 22HOUT 22H,ALALMOV ALMOV AL,80H80HOUT 22HOUT 22H,ALALMOV AMOV AX X,10001000 ;写基字节寄存器和当前字节计数器;写基字节寄存器和当前字节计数器OUT
39、23HOUT 23H,ALALMOV ALMOV AL,AHAHOUT 23HOUT 23H,ALALMOV ALMOV AL,00H 00H ;清除所有通道屏蔽;清除所有通道屏蔽OUT 2FHOUT 2FH,ALAL11.2.4 8237A11.2.4 8237A的工作方式的工作方式 nDMA传送方式单字节传送方式 数据块传送方式请求传送方式 级连方式nDMA传送类型DMA读DMA写 DMA检验n存储器到存储器的传送 方式方式0 0 请求传送方式请求传送方式nDREQ信号有效就连续传送数据。nDREQ信号无效,DMA传送被暂时中止,8237A释放总线,CPU可继续操作。nDMA通道的地址和字
40、节数的中间值仍被保持。nDREQ信号再次有效,DMA传送就继续进行。n如果字节数寄存器减到0,或者由外部送来一个有效的信号,将终止计数。n特点:nDMA操作可由外设利用DREQ信号控制传送的过程。方式方式11单字节传送方式单字节传送方式n每次DMA传送时仅传送一个字节。n传送一个字节之后,字节数寄存器减1,地址寄存器加1或减1,HRQ变为无效。n8237A释放系统总线,将控制权还给CPU。n特点:n一次传送一个字节,效率略低。nDMA传送之间CPU有机会重新获取总线控制权。方式方式2 2 块传送方式块传送方式 n由DREQ启动就连续地传送数据,直到字节数寄存器减到0终止计数,或由外部输入有效信
41、号终结DMA传送。nDREQ只需维持有效到DACK有效。n特点:n一次请求传送一个数据块,效率高。n整个DMA传送期间CPU长时间无法控制总线(无法响应其他DMA请求、无法处理中断等)。方式方式3 3 级联方式级联方式n用于通过多个用于通过多个8237A8237A级连以扩展通道。级连以扩展通道。n第二级的第二级的HRQHRQ和和HLDAHLDA信号连到第一级某个通道的信号连到第一级某个通道的DREQDREQ和和DACKDACK上。上。n第二级芯片的优先权等级与所连通道的优先权相第二级芯片的优先权等级与所连通道的优先权相对应。对应。n第一级只起优先权网络的作用,实际的操作由第第一级只起优先权网络
42、的作用,实际的操作由第二级芯片完成。二级芯片完成。n还可由第二级扩展到第三级等。还可由第二级扩展到第三级等。图图11.11 8237A11.11 8237A的级联的级联 .8237HLDAHRQHLDAHRQ8237第二级第一级DACK 3DREQ 3DACK 0DREQ 0HLDAHRQHLDAHOLD微处理器DMADMA传送类型传送类型nDMA读把数据由存储器传送到外设n由 有效从存储器读出数据,由 有效把这一数据写入外设。nDMA写把外设输入的数据写入存储器n由 有效从外设输入数据,由 有效把这一数据写入存储器。nDMA检验空操作n8237A不进行任何传送,只产生地址并响应 信号,不产生
43、读写控制信号,用以校验8237的功能是否正常。MEMRIOWIORMEMWEOP存储器到存储器的传送存储器到存储器的传送n固定使用通道0和通道1。n通道0的地址寄存器存源区地址。n通道1的地址寄存器存目的区地址,通道1的字节数寄存器存放传送的字节数。n传送由设置通道0的软件请求位启动n每传送一字节需用8个时钟周期。n前4个时钟周期用通道0地址寄存器的地址从源区读数据送入8237A的临时寄存器。n后4个时钟周期用通道1地址寄存器的地址把临时寄存器中的数据写入目的区。【例】编写用【例】编写用8237A8237A实现存储器至存储器传送数据的程实现存储器至存储器传送数据的程序,把从物理地址序,把从物理
44、地址12000H12000H开始的开始的10001000字节传送到从字节传送到从物理地址物理地址34000H34000H开始的数据区。开始的数据区。解:数据块从存储区到存储区的传送使用解:数据块从存储区到存储区的传送使用DMACDMAC通通道道0 0和通道和通道1 1共同完成,假设共同完成,假设2020位物理地址的高四位位物理地址的高四位已经分别送到页面寄存器的对应处,对已经分别送到页面寄存器的对应处,对8237A8237A只需设只需设定低定低1616位地址位地址2000H2000H(通道(通道0 0)和)和4000H4000H(通道(通道1 1)就)就可以了。对可以了。对8237A8237A发送主清除命令后,能够清除发送主清除命令后,能够清除8237A8237A中全部寄存器的内容,包括对高低触发器的清中全部寄存器的内容,包括对高低触发器的清除。除。 程序如下:程序如下:ST37ST37:MOV DXMOV DX,DMA+0DH DMA+0DH ; ;发主清除命令,同时清高发主清除命令,同时清高/ /低触发器低触发器 OUT DX OUT DX,ALALMOV DXM
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 智能牧场管理系统行业跨境出海战略研究报告
- 方便食品批发企业ESG实践与创新战略研究报告
- 机场贵宾商务服务企业制定与实施新质生产力战略研究报告
- 电锯批发企业ESG实践与创新战略研究报告
- 草浆瓦楞原纸企业数字化转型与智慧升级战略研究报告
- 白葡萄酒企业数字化转型与智慧升级战略研究报告
- 碘酸企业数字化转型与智慧升级战略研究报告
- 单位保洁主管工作总结
- 二零二五年度代理记账与财务咨询及培训服务协议
- 2025年度网络安全公司聘用兼职安全工程师合同书
- 机电控制与可编程序控制器课程设计报告
- 简版个人征信报告模板
- 森林防火主题教育班会PPT
- 船舶安检缺陷处理建议表籍国内航行海船
- 辐照交联电线电缆型号说明
- 公路工程决算编制办法(交公路发2004-507号)附表
- 矿山机械无人驾驶项目可行性研究报告模板
- 预充气竞技步枪 标准A4靶纸
- 避免同业竞争承诺函
- 产品批量质量事故追责管理规范
- VSC中压真空接触器无法分闸的原因分析及其对策
评论
0/150
提交评论