第七章 DMA控制器和计数定时器.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
7.1 DMA控制器8237A Intel8237A是一种功能很强的可编程DMA控制器。采用5MHZ时钟时,其传输速率可达 1.6MB/s;一片8237A内部有四个独立的DMA通道,每个通道一次DMA传送的最大长度可达64KB;每个通道的DMA请求都可以分别允许和禁止;不同通道的DMA请求有不同的优先级,优先级可以是固定的,也可以是循环的(可编程确定);四个通道可以分时地为四个外部设备实现 DMA传送,也可以同时使用其中的通道0和通道1实现存储器到存储器的直接传送,还可以用多片8237A进行级联,从而构成更多的DMA通道。 一、8237A的编程结构和对外引脚信号 8237工作时各信号的配合: 1 当作为从模块工作时 8237A就像I/O接口一样作为总线的从模块工 作,此时CS、HRQ和AEN一定为低电平。 8237接收16位地址,用高12位地址产生片选信 号,用低4位来选择内部寄存器;用IOR和IOW作为读 /写控制端;在CPU对8237A进行读/写时。 8237工作时各信号的配合: 2 当作为主模块工作时 当8237A 作为主模块工作时,它会往总线上提 供要访问的内存地址,此时CS、AEN信号为高电平。 作为主模块工作时,8237A还必须输出IOR、IOW MEMR、MEMW读/写信号。 另外最高4位地址在传输前,用指令送到一I/O 端口中,所以DMA传输时,每次传输字节限制在216 以下。 二、8237A的工作模式 8237A有四种工作模式,每个通道可以用四种模式之一工作。 1 单字节传输模式: 此方式下,8237A一次请求总线只传送一个字节,就释放总线控制权。8237A和CPU交替管理。 、 2 块传输模式: 在此方式下,由DREQ启动后就连续的传送数据,直至完成预定字节数的传送或由外部I/O接口输入有效的EOP信号,8237A才释放总线控制权而结束传输。 3 请求传输模式: 此模式与块传输模式类似,所不同的是在每传输 1B后,8237A都对DREQ端进行测试,若仍有效则继续传送,若无效则立即停止传送,待DREQ再次有效后继续传送。 4 级联传输模式: 此模式下,将几个8237A进行级联,构成主从式DMA系统,以扩展DMA通道数。最多可以由 5个8237A构成二级DMA系统,得到16个DMA通道。 1. 8237A模式寄存器的格式 2. 8237A的控制寄存器的格式 3. 状态寄存器的格式 4. 请求寄存器的格式 5. 8237A的屏蔽寄存器的格式 6. 8237A的综合屏蔽寄存器的格式 7. 暂存寄存器 为8位,用于内存到内存传输时,暂时保存从 源单元读出的数据,并经它再写入到目的单元。 此字节可由CPU读出。Reset信号使该寄存器复 位。 8. 8237A的特殊软件命令 CPU向8237A输出的软件命令可分为两种不同的类型: 一类是普通软件命令,这类命令不仅与写入的端口地址有关,也与写入软件命令时数据总线上的位模式有关; 另一类软件命令即特殊的软件命令,这类命令只与写入的端口地址有关,而写入软件命令时数据总线上的位模式无关。 8. 8237A的特殊软件命令 (1)复位命令 也叫主清除命令Master Clear)或综合清除命 令;该命令与硬件的Reset信号相同,即它使控制、 状态、DMA请求、暂存器以及内部的先/后触发器都 清0,而使屏蔽寄存器置为全“1”。执行主清除命令 后,使8237进入空闲周期,以便对其编程。 8. 8237A的特殊软件命令 (2)清除先/后触发器命令 是用来控制DMA通道中地址寄存器和字节计数器的初值而设置的。 若该触发器为“0”,则读/写低8位;若为“1”,则读/写高8位。每当对16位寄存器进行一次读/写操作,则触发器改变一次状态。 为了保证对16位寄存器的读/写是从低字节开始,应事先用此软件命令使先/后触发器强制清零。 四、8237A内部寄存器的寻址 一片8237A占用16个连续的I/O端口地址。 在片选信号CS有效的前提下,由地址信号 A3— A0,IOR及IOW实现对8237A内部寄存器 (I/O端口)的寻址。 A3 — A0给出了各寄存器对应的端口地址的低 4位。 8237A内部寄存器的寻址情况如表所示: 五、8237A的编程和使用 1. 8237A的编程步骤 1 输出主清除命令(即复位命令) 2 送地址(即写基和当前地址寄存器) 3 送字节数(即写基和当前字节计数器) 4 写模式字 5 写控制字 6 写屏蔽字 7 写请求字(可根据具体方式决定送与不送) 2. 编程举例: 试利用8237A 通道1,将内存8000H开始的16K字节数据传送至磁盘(地址增量传送)。要求采用块传

文档评论(0)

xx88606 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档