微机原理与接口C0704课件_第1页
微机原理与接口C0704课件_第2页
微机原理与接口C0704课件_第3页
微机原理与接口C0704课件_第4页
微机原理与接口C0704课件_第5页
已阅读5页,还剩37页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

与接口技术DMA控制器Intel8237AIntel8237A内部结构A0~A3与片选信号、#IOR/W的组合操作DMA操作类型DMA读存储器外设DMA写外设存储器存储器到存储器如主存Cache校验操作不进行数据传送,而是对数据块内部的每个字节进行校验。#MEMR,#IOW#IOR,#MEMW8237A内部寄存器通道专用寄存器(5个)基地址寄存器当前地址寄存器基字节数寄存器当前字节数寄存器方式寄存器专用寄存器基地址寄存器(只写)存放内存起始地址DMA+0,+2,+4,+6初始化时由程序写入,先低字节,再高字节数据传输过程中,其值不变当前地址寄存器(可读写)存放当前内存地址DMA+0,+2,+4,+6初始值与基地址寄存器相同,由CPU一并写入每次DMA传送后,值自动+1或-1专用寄存器基字节数寄存器(只写)存放DMA传送的总字节数DMA+1,+3,+5,+7初始化时由程序写入,先低字节,再高字节数据传输过程中,其值不变当前字节数寄存器(可读写)存放未传完的字节数DMA+1,+3,+5,+7初始值与基字节数寄存器相同,由CPU一并写入每次DMA传送后,值自动-1。减为-1时,EOP信号有效。专用寄存器方式寄存器(DMA+0BH)用于设置DMA的操作类型、数据传送方式、地址改变方式、自动预置以及通道选择。数据传送方式00:请求方式01:单字节方式10:块方式11:级联方式地址增量1:地址减10:地址加1自动预置1:自动预置0:非自动预置操作类型00:校验01:DMA写10:DMA读11:无效通道选择00:通道001:通道110:通道211:通道3D7D6D5D4D3D2D1D08237A内部寄存器通道专用寄存器(5个)通道公用寄存器(5个)命令寄存器状态寄存器暂存寄存器请求寄存器屏蔽寄存器公用寄存器命令寄存器(只写)用于控制8237A的操作,只能写,不能读。0:DREQ高有效1:DREQ低有效0:DACK低有效1:DACK高有效D7D6D5D4D3D2D1D00:滞后写1:扩展写0:固定优先级1:循环优先级0:普通时序1:压缩时序0:启动8237A1:停止8237A0:通道0地

址不保持1:通道0地

址保持0:禁止M→M1:允许M→M公用寄存器状态寄存器1:通道2有DMA请求1:通道3有DMA请求D7D6D5D4D3D2D1D01:通道1有DMA请求1:通道0有DMA请求1:通道3计数结束1:通道2计数结束1:通道1计数结束1:通道0计数结束当前字节数达FFFFH时,产生终止计算的TC脉冲输出低4位表示哪些通道传输结束;高4位表示哪些通道有DMA请求。公用寄存器屏蔽寄存器格式一:单通道屏蔽(DMA+0AH)D7D6D5D4D3D2D1D0屏蔽位1:屏蔽0:开通通道选择00:通道001:通道110:通道211:通道3未使用D2=1,相应通道禁止接收DREQ信号屏蔽寄存器(8位)格式二:四通道屏蔽(DMA+0FH)D7D6D5D4D3D2D1D0通道2未使用通道0通道1通道3若低4位全为1,则屏蔽所有的DMA请求;若低4位全为0,则允许4个DMA请求。4个屏蔽位相互独立公用寄存器例:为了支持存储盘读写操作,DMA初始化时必须开放通道2,以响应存储的DMA请求。试采用单通道屏蔽和4通道屏蔽两种方式实现。(已知单通道屏蔽寄存器和4通道屏蔽寄存器对应的地址分别为0AH和0FH)解:使用单通道屏蔽方式MOVAL,00000010B;开放通道2OUT0AH,AL(2)使用4通道屏蔽方式 MOVAL,00001011B;开放通道2 OUT0FH,AL公用寄存器请求寄存器(DMA+9)D7D6D5D4D3D2D1D0请求位1:有请求0:无请求通道选择00:通道001:通道110:通道211:通道3未使用用于软件启动DMA请求。一般DMA请求由硬件通过DREQ引脚发出。但也可通过软件启动DMA请求。MM传送必须软件请求,传送方式必须是块传输方式,传送结束后EOP信号自动清除请求位。公用寄存器暂存寄存器(8位,DMA+0DH)在M→M的传输中,用于暂存从源地址单元读出的数据。复位时清除该寄存器的内容。M→M的传输需用到2个通道:通道0的地址寄存器存放源地址。通道1的地址寄存器存放目的地址。M→M传输,每传输一字节需8个时钟周期(2个DMA周期):前4个时钟周期,从通道0读出源数据送入暂存寄存器。后4个时钟周期,将暂存寄存器中的数据写入通道1指示的目标内存区域。8237A内部寄存器的地址分配8237A内部共有10种寄存器,对这些寄存器进行读、写操作共有16个端口,记为DMA+0~DMA+15,使用地址A3~A0进行寻址。每个通道有2个专用的地址,其余8个地址由各通道共用。端口通道I/O端口地址寄存器读(IOR)写(IOW)DMA+0000H当前地址寄存器基地址与当前地址寄存器DMA+1001H当前字节计数器基字节与当前字节寄存器DMA+2102H当前地址寄存器基地址与当前地址寄存器DMA+3103H当前字节计数器基字节与当前字节寄存器DMA+4204H当前地址寄存器基地址与当前地址寄存器DMA+5205H当前字节计数器基字节与当前字节寄存器DMA+6306H当前地址寄存器基地址与当前地址寄存器DMA+7307H当前字节计数器基字节与当前字节寄存器4个通道专用的8个地址各通道共用的8个地址端口通道I/O端口地址寄存器读(IOR)写(IOW)DMA+8公用08H状态寄存器命令寄存器DMA+909H——请求寄存器DMA+100AH——单通道屏蔽寄存器DMA+110BH——工作方式寄存器DMA+120CH——

清除先/后触发器命令*DMA+130DH暂存寄存器

总清命令*DMA+140EH——

清四通道屏蔽寄存器命令*DMA+150FH——四通道屏蔽寄存器注:*为软命令。软命令软命令:指只要对特定的地址进行一次写操作,命令就会生效,而与写入的具体内容无关。OUT5DH,AL软命令直接由地址和控制信号译码实现,无需数据线。一般需要#CS、#IOW和内部寄存器地址同时有效。DMA操作中有总清命令、清四通道屏蔽寄存器命令、清除先/后触发器命令3种软命令。端口I/O端口地址寄存器读(IOR)写(IOW)DMA+130DH暂存寄存器总清命令*总清命令与硬件Reset信号功能相同功能1:使DMA控制器内部的状态寄存器、命令寄存器、请求寄存器、暂存寄存器和先/后触发器清0。功能2:使屏蔽寄存器全置1,即禁止所有的DMA请求。命令形式:OUT0DH,AL;AL可以为任意值清四道屏蔽寄存器命令功能:使四个通道的屏蔽位均清0,即允许四个通道的DMA请求。命令形式:OUT0EH,AL清先/后触发器命令8237A内部有一个“先/后触发器”,其值为0时访问16位寄存器的低字节;为1时访问高字节。该触发器复位时清0,以后每访问一次(寄存器),触发器状态自动翻转,即可按先低字节、后高字节的顺序写入。 OUTDMA+0,AL

MOVAL,AH

OUTDMA+0,AL命令形式:OUT0CH,AL;AL可为任意值8237A的编程8237A初始化编程的步骤:发送总清命令(复位)写基本地址和当前地址寄存器写基本字节和当前字节寄存器写工作方式寄存器写屏蔽寄存器写命令寄存器写请求寄存器例:利用8237A的通道0将外设54KB的数据块传送至内存5678H开始的区域(增量传送),采用块传输方式,非自动预置。外设的DREQ和DACK均高电平有效。已知8237A的端口地址为50H~5FH,试给出初始化程序段。解:(1)端口地址分析已知端口地址为50H~5FH,则相关寄存器的端口地址为:总清命令:DMA+0DH=50H+0DH=5DH基地址和当前地址寄存器:50H基字节和当前字节寄存器:51H工作方式寄存器:5BH屏蔽寄存器(单通道):5AH命令寄存器:58H请求寄存器:59H发送总清命令(复位)写基本地址和当前地址寄存器写基本字节和当前字节寄存器写工作方式寄存器写屏蔽寄存器写命令寄存器写请求寄存器例:利用8237A的通道0将外设54KB的数据块传送至内存5678H开始的区域(增量传送),采用块传输方式,非自动预置。外设的DREQ和DACK均高电平有效。已知8237A的端口地址为50H~5FH,试给出初始化程序段。OUT5DH,AL ;总清命令发送总清命令(复位)写基本地址和当前地址寄存器写基本字节和当前字节寄存器写工作方式寄存器写屏蔽寄存器写命令寄存器写请求寄存器例:利用8237A的通道0将外设54KB的数据块传送至内存5678H开始的区域(增量传送),采用块传输方式,非自动预置。外设的DREQ和DACK均高电平有效。已知8237A的端口地址为50H~5FH,试给出初始化程序段。MOVAL,78H ;写基地址和当前地址寄存器(低字节)OUT50H,ALMOVAL,56H ;写基地址和当前地址寄存器(高字节)OUT50H,AL

发送总清命令(复位)写基本地址和当前地址寄存器写基本字节和当前字节寄存器写工作方式寄存器写屏蔽寄存器写命令寄存器写请求寄存器例:利用8237A的通道0将外设54KB的数据块传送至内存5678H开始的区域(增量传送),采用块传输方式,非自动预置。外设的DREQ和DACK均高电平有效。已知8237A的端口地址为50H~5FH,试给出初始化程序段。MOVAL,0 ;写基字节和当前字节寄存器(低字节)OUT51H,AL ;54K=D800HMOVAL,0D8H ;写基字节和当前字节寄存器(高字节)OUT51H,AL

发送总清命令(复位)写基本地址和当前地址寄存器写基本字节和当前字节寄存器写工作方式寄存器写屏蔽寄存器写命令寄存器写请求寄存器例:利用8237A的通道0将外设54KB的数据块传送至内存5678H开始的区域(增量传送),采用块传输方式,非自动预置。外设的DREQ和DACK均高电平有效。已知8237A的端口地址为50H~5FH,试给出初始化程序段。发送总清命令(复位)写基本地址和当前地址寄存器写基本字节和当前字节寄存器写工作方式寄存器写屏蔽寄存器写命令寄存器写请求寄存器MOVAL,1000

0100H;工作方式:块传输,地址增量OUT5BH,AL ;非预置,DMA写,通道0例:利用8237A的通道0将外设54KB的数据块传送至内存5678H开始的区域(增量传送),采用块传输方式,非自动预置。外设的DREQ和DACK均高电平有效。已知8237A的端口地址为50H~5FH,试给出初始化程序段。发送总清命令(复位)写基本地址和当前地址寄存器写基本字节和当前字节寄存器写工作方式寄存器写屏蔽寄存器写命令寄存器写请求寄存器MOVAL,00000000H;通道0不被屏蔽OUT5AH,AL ;使用单通道屏蔽寄存器例:利用8237A的通道0将外设54KB的数据块传送至内存5678H开始的区域(增量传送),采用块传输方式,非自动预置。外设的DREQ和DACK均高电平有效。已知8237A的端口地址为50H~5FH,试给出初始化程序段。发送总清命令(复位)写基本地址和当前地址寄存器写基本字节和当前字节寄存器写工作方式寄存器写屏蔽寄存器写命令寄存器写请求寄存器MOVAL,1010

0000H;命令寄存器:DACK和DREQ高OUT58H,AL;启动8237A,非M→M传输发送总清命令(复位)写基本地址和当前地址寄存器写基本字节和当前字节寄存器写工作方式寄存器写屏蔽寄存器写命令寄存器写请求寄存器例:利用8237A的通道0将外设54KB的数据块传送至内存5678H开始的区域(增量传送),采用块传输方式,非自动预置。外设的DREQ和DACK均高电平有效。已知8237A的端口地址为50H~5FH,试给出初始化程序段。MOVAL,00000100H;通道0有请求OUT59H,AL ;请求寄存器D7D6D5D4D3D2D1D0请求位1:有请求0:无请求通道选择00:通道001:通道110:通道211:通道3未使用8237A的工作时序8237A工作周期分为2类:空闲周期和有效周期。空闲周期Si复位后8237A处于空闲周期。此时,8237A处于被动状态,CPU可对其进行初始化;或虽已初始化,但尚未有DMA请求。有效周期8237A获得外设的DMA请求后,从空闲周期转入有效周期。此时,它作为主控芯片,控制DMA的传输过程。有效周期由S0~S4,共5个状态组成。8237A的工作时序S0:等待周期8237A收到外设的DREQ请求,并向CPU发送HRQ后,就从空闲周期Si转入等待周期S0,并重复执行S0,等待CPU让出总线控制权。处在S0状态,若收到CPU发来的HLDA响应,即CPU已让出总线控制权,则S0状态结束,准备进入DMA工作状态。8237A的工作时序S1:更新高8位地址8237A用DB7~DB0送出高8位地址A15~A8,同时使ADSTB和AEN有效,使得高8位地址首先送入锁存器,然后再从锁存器送入总线系统。由于传输一段连续的数据块时,存储器地址总是相邻的,其高8位地址往往不变,这样在传输下一个字节时就无需更新高8位地址,此时S1可省略。只有低8位向高8位进位时才会再次更新高8位地址,故每传送256个字节才出现一个S1周期。8237A的工作时序S2:发DACK寻址I/O设备,并输出16位RAM地址和读信号8237A向外设发DACK信号,启动外设工作,同时发出16位RAM地址线。如果为读内存操作,则向存储器发#MEMR信号。如果为读外设操作,则向外设发#IOR信号。8237A

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论