




已阅读5页,还剩40页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第九章可编程DMA控制器8237A,一、DMA控制器8237,1.概述2.8237的引脚功能3.8237的编程结构4.8237对内存和I/O的寻址,概述,DMA=DirectMemoryAccess,直接存储器存取,CPU,内存,外设,数据通道,数据通道,非DMA方式(包括程序控制方式和中断方式),DMAC,内存,外设,数据通道,DMA方式,概述,DMAC具有独立的控制三大总线来访问存储器和I/O端口的能力,它能像CPU一样提供数据传送所需的地址信息和读写控制信息DMAC和CPU都挂在系统总线上,当进入DMA方式时,DMAC成为总线主控。在总线上,可以控制其他部件的部件称为总线主控或主控(busmaster),被控部件称为从控(slave)。任意时刻,总线上只有一个主控。,概述,DMA操作之前,应先对DMAC编程,把要传送的数据块长度、数据块在存储器中的起始地址,数据传送方向等信息发送给DMACDMA操作过程包括三个阶段:DMA请求DMA响应和数据传送传送结束,当外设要求以DMA方式为它服务时,发DMA请求信号DREQ到DMACDMAC检查该信号是否被屏蔽及其优先权,如确认该信号有效则向CPU发送总线请求信号HRQ(连到CPU的HOLD),DMA请求阶段,CPU,DMAC,HRQ,外设,DREQ,地址总线,数据总线,存储器,概述,每个总线周期结束时CPU检测HOLD,如为高电平,则响应HOLD请求进入保持态,使三态总线CPU侧呈高阻状态,并以总线保持响应信号HLDA通知DMACDMAC接管总线,并以DACK信号通知外设,使之成为DMA传送时被选中的设备,同时DMAC给出内存地址以及I/O读写和存储器读写控制信号,在外设和存储器之间完成数据传送,DMA响应和数据传送阶段,CPU,DMAC,HLDA,外设,DACK,存储器,地址总线,数据总线,IOR/IOW,MEMR/MEMW,概述,传送结束阶段,传送完成后,DMAC放弃总线,撤消总线请求(HRQ为低),CPU检测到HRQ(HOLD)为低后,撤消HLDA,CPU重新获得总线控制权,CPU,DMAC,HRQ,外设,EOP,地址总线,数据总线,存储器,概述,概述,PC系列微机使用可编程DMA控制器8237A(简称8237)实现DMA功能8237有四个通道,每个通道都有独立的与相应外设接口相联系的信号,四个通道共享与CPU相连的控制信号、地址信号、数据信号,8237的引脚功能,8237A芯片内部结构,8237的引脚功能,请求/应答信号外设接口电路向8237的请求信号:DREQ3DREQ08237对外设接口电路的应答信号:DACK3DACK08237向CPU申请总线的信号:HRQ(连至CPU的HOLD)CPU向8237传送的允许使用总线信号:HLDA,8237的引脚功能,地址信号:CPU初始化8237或读8237状态时所需的片选信号A7A0(输出):8237访问存储器的地址信号的低8位。A3A0(输入):CPU初始化8237或读8237状态时,用于寻址8237内部寄存器,8237的引脚功能,数据信号(双向):DB7DB0,CPU为主控时,可以通过I/O读命令查询8237的状态寄存器的内容,或通过I/O写命令对8237的内部寄存器进行编程,数据传送通过DB7DB08237为主控时,DB7DB0输出要访问的内存地址的高8位,并通过ADSTB锁存到外部地址锁存器中,和A7A0输出的低8位地址一起构成16位地址,8237的引脚功能,地址允许信号:AEN8237作为主控时(8237控制总线),输出AEN=1。8237作为从控时(CPU控制总线),输出AEN=0。DMA传输结束信号:(双向)当DMAC内部任一通道传输结束,8237发出若由外部给DMAC送入有效的,则强制DMAC内部所有通道结束传输。,8237的引脚功能,MEMR/MEMW:,8237发出的存储器读/写信号,IOR/IOW:,8237作为主控时,输出的I/O读/写信号。8237作为从控时,CPU发出的I/O读/写信号,用于读/写8237,8237的引脚功能,ADSTB:地址选通信号,用于启动地址锁存器,READY:存储器或I/O的就绪信号,8237的编程结构,8237的编程结构,控制寄存器8位,4个通道共用,用于设定8237的信号形式、工作时序、传输方向。端口地址08H信号形式:DREQ/DACK信号的有效形式。工作时序:普通时序(3个时钟周期完成一次传输)压缩时序(2个时钟周期完成一次传输)传输方向:内存I/O(常用)I/O内存(常用)内存内存(PC系列机未用),控制寄存器格式,例如,PC系列机的8237,按如下要求工作:禁止存储器到存储器传送,按正常时序,滞后写入,通道按固定优先权排序,允许8237进行DMA操作,DREQ高电平有效,DACK低电平有效。则命令字为00000000B=00HMOVAL,00H;命令字OUTDMA+8,AL;写入命令寄存器,状态寄存器,8位,4个通道共用,与控制寄存器共用一个端口地址端口地址08H记录每个通道是否有请求、传输是否结束,8位,端口地址0DH在内存内存传输时,暂存数据。注意:内存I/O传输时,数据不进入8237内部,只存在于数据总线上,暂存寄存器,8位,设定DMA的传输模式,4个通道的模式寄存器共用一个端口地址,端口地址0BH传输模式:单字节传输模式数据块传输模式请求传输模式级联传输模式,模式寄存器,单字节传输模式:每次DMA操作只传送一字节后,接着8237释放总线块传输模式:8237获得总线控制权后,连续传送多个字节,每传输一个字节,当前字节计数器减1,当前地址寄存器加1或减1,直到所要求的字节数传输完(当前字节计数器减至0),8237在EOP引脚上发出结束信号,然后释放总线。在块传输过程中,若向8237的EOP引脚上输入低电平,可强行结束传输。,模式寄存器,请求传输模式:在传输过程中,8237要检测DREQ信号(询问外设),当DREQ为低时,8237暂停传输(不释放总线),当DREQ再次有效后,继续进行传输。级联传输模式:多片8237级联时,可以构成主从式DMA系统。级联的方式是把从片的请求线HRQ连至主片的DREQ引脚,主片的DACK联至从片的HLDA引脚若主8237的某通道(DREQ)连接从8237的HRQ,主8237的该通道应设置为级联传输模式,但从8237不设置级联传输模式,而是设置其它三种模式之一,模式寄存器,模式寄存器,D4:自动预置功能,0=禁止,1=允许自动预置:在当前字节计数器到达0时,当前字节计数器和当前地址寄存器从基本字节计数器和基地址寄存器中自动获得新的初值,每个通道一个基地址寄存器,一个当前地址寄存器,16位,占用相同的端口地址基地址寄存器:DMA传输的内存地址初值,在初始化时由CPU分两次写入。当前地址寄存器:DMA传输过程中,内存地址的当前值。每传输一字节,该寄存器的值增1或减1。CPU可分两次读出其值。,基地址寄存器和当前地址寄存器,每个通道一个基本字节计数器,一个当前字节计数器,16位,占用相同的端口地址基字节计数器:DMA传输的字节数初值,在初始化时由CPU分两次写入。8237规定,初值比实际传输的字节数少1当前字节计数器:DMA传输过程中,当前的计数值。每传输一字节,该寄存器的值减1。当计数值减到FFFFH时,8237发出结束信号EOP。CPU可分两次读出其值。,基地址寄存器和当前地址寄存器,端口地址0CHCPU写入基地址寄存器、基本字节计数器时,均分两次写入,先/后触发器用于控制写入的值是低8位还是高8位写入过程:使先/后触发器=0。写入低8位,先/后触发器自动置1。写入高8位,先/后触发器自动置0。,先/后触发器,四个通道的请求触发器构成一个请求寄存器(8位)一般情况下,DMA请求由硬件信号DREQ发出,也可由软件设置请求触发器来发出DMA请求。,端口地址09H,请求寄存器,四个通道的屏蔽触发器构成一个屏蔽寄存器(8位)当屏蔽寄存器的屏蔽标志置1时,将禁止该通道的硬件DMA请求和软件DMA请求。,D2=1,设置屏蔽;D2=0,清除屏蔽;D1D0:选通道,端口地址0AH,屏蔽寄存器,8237可以一次完成四个通道的屏蔽设置,D3D0:分别对通道30设置屏蔽1,设置屏蔽;0,清除屏蔽;,端口地址0FH,综合屏蔽寄存器,对端口0EH写入0,可以一次清除四个通道的屏蔽触发器,端口地址0EH,MOVDX,DMA+0EHMOVAL,0OUTDX,AL,清除屏蔽寄存器,对端口0DH写入0,使8237复位,其功能等同于硬件复位,端口地址0DH,8237复位后的状态为:控制寄存器状态寄存器请求寄存器暂存器先/后触发器,清0,屏蔽寄存器置1,复位命令寄存器,8237的编程结构,一片8237占用连续16个端口地址,用DMA+00HDMA+0FH表示。其中,DMA表示该片8237的基地址。在AT以上的微机中,使用2片8237,其地址为:第一片8237,基地址DMA=0000H,使用0000H000FI/O地址。第二片8237,基地址DMA=00C0H,使用00C0H00CFI/O地址。,8237的编程结构,DMA控制器的工作时序,DMA空闲周期SI过渡状态S0DMA有效周期(S1、S2、S3、S4)82C37A内部状态变化流程,DMA传输(数据块传输)正常时序,在PC/AT系统中,需要24位地址,高8位地址A23A16由DMA页面寄存器电路74LS612提供。在DMA传输之前,用指令将高8位地址送入页面寄存器,在DMA传输过程中,由AEN信号使页面寄存器输出该8位地址。,存储器寻址,8237对内存和I/O的寻址,I/O寻址,8237对内存和I/O的寻址,8237的四个通道,每一个只接一个外设接口电路,不使用I/O地址来区分I/O设备,I/O设备的端口地址只用于CPU对I/O设备的寻址,I/O寻址,8237对内存和I/O的寻址,8237的应用,初始化编程,写入控制寄存器写入屏蔽寄存器屏蔽要初始化的通道写入模式寄存器先后触发器置0写入基地址和基本字节寄存器解除屏蔽写入请求寄存器,8237的应用,例:对通道2初始化编程的代码片段,DMAEQU0;DMA通道起始端口1)系统在启动时,对控制寄存器进行初始化MOVAL,0OUTDMA+8,AL2)清除先/后寄存器OUTDMA+12,AL3)设置模式寄存器MOVAL,46HOUTDMA+11,AL,4)送内存地址计算内存的物理地址,将20位地址的高4位送页面寄存器,低16位先送低8位,再送高8位.OUTDMA+4,AL;低8位OUTDMA+4,AL;高8位OUT81H,AL;20位地址的高4位5)送传送字节数.6)送屏蔽位MOVAL,2OUTDMA+10,AL,8237的应用,8237的应用,例:利用主板上的8237通道1,将内存起始地址为
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年中医药现代化国际市场拓展:奥地利市场前景报告
- 新能源汽车智能座舱2025年交互设计在车载智能充电系统中的应用报告
- 农发行上饶市万年县2025秋招数据分析师笔试题及答案
- 平移例3课件教学课件
- 2025年主题公园沉浸式体验设计在旅游目的地旅游产品升级中的应用报告
- 平煤集团安全礼仪培训课件
- 夜间飞行的秘密课件教学
- 2025年海洋能发电技术关键材料研发与应用研究报告
- 大专单招试卷真题及答案
- 注册消防真题及答案
- 工程贴息合同协议
- 光伏施工项目危险源辨识与风险评价清单(LEC法)
- 屠宰企业规章制度
- 山东教育出版社小学五年级上册美术教案
- 基于3D视觉引导的工业机器人轮胎装配线设计
- 宠物托养创新创业路演
- 机关健康知识讲座
- 独角抱杆立杆施工方案
- 利用AI技术提升初中语文写作教学效果的实践课题申报书
- 2025年教育督导责任督学培训心得体会与收获
- 《FABE销售法则》课件
评论
0/150
提交评论