《微机原理与接口》第11章DMA接口

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

《微机原理与接口技术》辅助教学电子课件易凡第十一章DMA接口第11章DMA控制接口教学重点8237A的工作方式8237A寄存器组的作用8237A寄存器组的编程11.1DMA控制器8237A每个8237A芯片有4个DMA通道,就是有4个DMA控制器每个DMA通道具有不同的优先权每个DMA通道可以分别允许和禁止每个DMA通道有4种工作方式一次传送的最大长度可达64KB多个8237A芯片可以级连,扩展通道数11.1.18237A的内部结构和引脚内部结构和外部引脚都相对比较复杂内部主要由两类寄存器组成通道寄存器控制和状态寄存器1.请求与响应信号DREQ0~DREQ3:DMA通道请求。当外设需要请求DMA服务时,将DREQ信号置成有效电平,并要保持到产生响应信号。HRQ:总线请求。8237A输出有效的HRQ高电平,向CPU申请使用系统总线。HLDA:总线响应。8237A接受来自CPU的响应信号HLDA,取得了总线的控制权。DACK0~DACK3:DMA通道响应。8237A使请求服务的通道产生相应的DMA响应信号。2.DMA传送控制信号A0~A7:地址线。输出低8位存储器地址DB0~DB7:数据线。输出高8位存储器地址;存贮器与存贮器的传送期间,用于数据传送。ADSTB:地址选通。DMA传送开始时,输出高有效,把在DB0~DB7上输出的高8位地址锁存在外部锁存器中。AEN:地址允许。输出高有效,将锁存的高8位地址送入系统总线,与芯片此时输出的低8位地址组成16位存储器地址。2.DMA传送控制信号(续)MEMR*:存储器读。有效将数据从存储器读出MEMW*:存储器写。有效将数据写入存储器IOR*:I/O读。有效将数据从外设读出IOW*:I/O。有效将数据写入外设READY:准备好。DMA传送的S3下降沿检测到为低时,插入等待状态Sw,直到READY为高才进入第4个时钟周期S4。EOP*:过程结束。DMA传送过程结束,输出一个低有效脉冲。外部输入低脉冲信号,则终结DMA传送。3.处理器接口信号DB0~DB7:数据线。用于8237A与微处理器进行数据交换。A0~A3:地址线。用以选择芯片内部寄存器。CS*:片选。低有效时,微处理器与8237A通过数据线通信,主要完成对8237A的编程。3.处理器接口信号(续)IOR*:I/O读。读取8237A内部寄存器。IOW*:I/O写。写入8237A内部寄存器。CLK:时钟。控制芯片内部操作和数据传输。RESET:复位。使8237A处于初始状态。4.8237A的两种工作状态8237A具有两种工作状态空闲周期:作为接口电路,受CPU控制的工作状态有效周期:作为DMAC控制DMA传送的工作状态于是,引脚分成两种作用8237A引脚的两种作用与CPU连接(空闲周期)的引脚与外设连接(有效周期)的引脚CLK、RESETA0~A3、CS*DB0~DB7IOR*、IOW*HRQ、HLDAAEN、ADSTB、READY、EOP*A0~A7、DB0~DB7IOR*、IOW*MEMR*、MEMW*DREQ0~DREQ3、DACK0~DACK311.1.28237A的工作时序·空闲周期8237A的任一通道都没有DMA请求时8237A由微处理器控制作为一个接口芯片CPU可对8237A编程,或从8237A读取状态8237A采样CS*选片信号,该信号有效,CPU就要对8237A进行读/写操作8237A同时还采样通道的请求输入信号DREQ,若该信号有效,就进入有效周期11.1.28237A的工作时序·有效周期8237A采样到外设有DMA请求,就脱离空闲周期进入有效周期8237A作为系统的主控芯片,控制DMA传送操作DMA传送借用系统总线完成,其控制信号以及工作时序类似CPU总线周期DMA传送时序DB0~DB7DACKADSTBHRQDREQCLKS1S0S0SiSiS3S2S4S3S2SiSiS4HLDAAENA0~A7MEMR(IOR)IOW(MEMW)S1状态——输出16位存储器地址AEN输出高电平,表示DMA传送S2状态——输出DMA响应信号和控制信号DMA读:MEMR*和IOW*有效DMA写:IOR*和MEMW*有效S3和Sw状态——检测数据传送是否能够完成,决定是否插入等待状态SwS4状态——完成数据传送11.1.38237A的工作方式DMA传送方式·单字节传送方式·数据块传送方式·请求传送方式·级连方式DMA传送类型·DMA读·DMA写·DMA检验存储器到存储器的传送1.DMA传送-单字节方式每次DMA传送时仅传送一个字节传送一个字节之后,字节数寄存器减1,地址寄存器加1或减1,HRQ变为无效8237A释放系统总线,将控制权还给CPU若传送后使字节数从0减到FFFFH,则终结DMA传送或重新初始化特点:一次传送一个字节,效率略低DMA传送之间CPU有机会重新获取总线控制权1.DMA传送-数据块方式由DREQ启动就连续地传送数据,直到字节数寄存器从0减到FFFFH终止计数,或由外部输入有效信号终结DMA传送DREQ只需维持有效到DACK有效特点:一次请求传送一个数据块,效率高整个DMA传送期间CPU长时间无法控制总线(无法响应其他DMA请求、无法处理中断等)1.DMA传送-请求方式DREQ信号有效就连续传送数据DREQ信号无效,DMA传送被暂时中止,8237A释放总线,CPU可继续操作DMA通道的地址和字节数的中间值仍被保持DREQ信号再次有效,DMA传送就继续进行如果字节数寄存器从0减到FFFFH,或者由外部送来一个有效的信号,将终止计数特点:DMA操作可由外设利用DREQ信号控制传送的过程1.DMA传送-级连方式用于通过多个8237A级连以扩展通道第二级的HRQ和HLDA信号连到第一级某个通道的DREQ和DACK上第二级芯片的优先权等级与所连通道的优先权相对应第一级只起优先权网络的作用,实际的操作由第二级芯片完成还可由第二级扩展到第三级等2.DMA传送类型DMA读:把数据由存储器传送到外设由MEMR*有效从存储器读出数据,由IOW*有效把这一数据写入外设DMA写:把外设输入的数据写入存储器由IOR*有效从外设输入数据,由MEMW*有效把这一数据写入存储器。DMA检验:空操作8237A不进行任何检验外设可以进行DMA校验存储器和I/O控制线保持无效,不进行传送3.存储器到存储器的传送固定使用通道0和通道1通道0的地址寄存器存源区地址通道1的地址寄存器存目的区地址,通道1的字节数寄存器存传送的字节数传送由设置通道0的软件请求启动每传送一字节需用8个时钟周期前4个时钟周期用通道0地址寄存器的地址从源区读数据送入8237A的临时寄存器后4个时钟周期用通道1地址寄存器的地址把临时寄存器中的数据写入目的区4.DMA通道的优先权方式固定优先权方式——优先权固定通道0优先权最高,通道1其次,通道2再次,通道3最低循环优先权方式——优先权循环变化最近一次服务的通道在下次循环中变成最低优先权,其他通道依次轮流相应的优先权DMA传送不存在嵌套5.自动初始化方式每当DMA过程结束信号EOP*产生时(不论是内部终止计数还是外部输入该信号),用基地址寄存器和基字节数寄存器的内容,使相应的现行寄存器恢复为初始值,包括恢复屏蔽位、允许DMA请求这样就作好了下一次DMA传送的准备11.1.48237A的寄存器8237A共有10种内部寄存器,对它们的操作有时需要配合3个软件命令8237A的“软件命令”不需要通过数据总线写入控制字直接由地址和控制信号译码实现全部都用地址A0~A3区分1.基地址寄存器与现行地址寄存器(16位)基地址寄存器(DMA+0,+2,+4,+6)•存放DMA传送的内存起始地址•传送过程其内容保持不变现行地址寄存器(DMA+0,+2,+4,+6)•保持DMA传送的当前地址值•每次传送后该寄存器的值自动加1或减1•这个寄存器的值可由CPU写入和读出2.基字节数寄存器和现行字节数寄存器(16位)基字节数寄存器(DMA+1,+3,+5,+7)•存放初始值•传送过程其内容保持不变现行字节数寄存器(DMA+1,+3,+5,+7)•保持DMA传送的剩余字节数•每次传送后,该寄存器的值减1•这个寄存器的值可由CPU写入和读出•该寄存器的值减至0,再减1(从0减到FFFFH)时,终止计数传送N个字节,初始值为N-13.对通道寄存器的读写操作CPU与8237A之间通过8位数据总线交换信息,8237A的通道寄存器均为16位需要两次读写操作才能实现CPU与8237A之间的一个完整数据的交换8237A内含一个高/低触发器,用来控制读写通道寄存器的高、低字节4.高/低触发器该触发器为0,控制读写低字节该触发器为1,控制读写高字节软、硬件复位后,触发器为0每次读写通道寄存器,自动改变触发器状态。如果对16位寄存器的操作用两次连续读写进行,就不必清除这个触发器清除高/低触发器软件命令(A3A2A1A0=1100)将使高/低触发器清零3个软件命令清除高/低触发器软件命令A3A2A1A0=1100,使高/低触发器清零主清除命令A3A2A1A0=1101,使高/低触发器清零还使命令、状态、请求、临时寄存器清零使屏蔽寄存器置为全1(禁止DMA请求)主清除命令与硬件的RESET信号具有相同的功能清屏蔽寄存器命令A3A2A1A0=1110,使4个屏蔽位都清零(允许DMA请求)5.模式寄存器(DMA+11)存放相应通道的方式控制字选择某个DMA通道的工作方式其中用最低2位选择哪个DMA通道方式字格式(DMA+11)D7D6D5D4D3D2D1D000请求模式01单字节模式10数据块模式11级联模式0地址增量(加1)1地址减量(减1)0禁止自动初始化1允许自动初始化00DMA校验01DMA写10DMA读11非法××若D7D6=1100通道001通道110通道211通道3示例PC系列软盘读写操作选择DMA通道2,单字节传送,地址增1,不用自动预置,其读/写操作的方式字如下读盘(DMA写)=01000110B=46H写盘(DMA读)=01001010B=4AH校验盘(DMA校验)=01000010B=42H6.命令寄存器(DMA+8)存放8237A的命令字设置8237A芯片的操作方式影响每个DMA通道复位时使命令寄存器清零设置D2=1才使8237A可以作为DMA控制器命令字格式(DMA+8)D7D6D5D4D3D2D1D00DACK低有效1DACK高有效0DREQ高有效1DREQ低有效0滞后写1扩展写×若D3=10固定优先权1循环优先权0正常时序1压缩时序×若D0=10允许DMAC工作1禁止DMAC工作0允许通道0地址改变1禁止通道0地址改变×若D0=00禁止存储器之间传送1允许存储器之间传送示例PC机系列中的8237A按如下要求工作:禁止存储器到存储器传送,按正常时序,滞后写,固定优先级,允许8237A工作,DREQ高电平有效,DACK低电平有效,写命令字。MOVAL,00HOUTDMA+8,AL7.请求寄存器(DMA+9)存放软件DMA请求状态除硬件DMA请求外,当工作在数据块传送方式时也可以通过软件发出DMA请求若是存贮器到存贮器传送,则必须由软件请求启动通道0请求字格式(DMA+9)D7D6D5D4D3D2D1D0任意0无请求1有请求00通道001通道110通道211通道38.屏蔽寄存器(DMA+10,+15)控制外设硬件DMA请求是否被响应(为0允许),各个通道互相独立。3种方法:单通道屏蔽字只对一个DMA通道屏蔽位进行设置主屏蔽字对4个DMA通道屏蔽位同时进行设置清屏蔽寄存器命令使4个屏蔽位都清零(允许)复位使4个通道全置于屏蔽状态当一个通道的DMA过程结束,如果不是工作在自动初始化方式,则这一通道的屏蔽位置位,必须再次编程为允许,才能进行下次DMA传送单通道屏蔽字格式(DMA+10)D7D6D5D4D3D2D1D0任意0清屏蔽位1置屏蔽位00通道001通道110通道211通道3主屏蔽字格式(DMA+15

1 / 76
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功