- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
二、DMA控制器8237 1. 8237的引线及功能 DMAC:Direct Memory Access (DMA) Controller A0~A3:双向地址线,具有三态输出。 A4~A7:三态输出线。 DB0~DB7:双向三态数据总线,DMA期间送出A8~A15。 :双向三态低电平有效的I/O写控制信号。 :双向三态低电平有效的I/O读控制信号。 :三态输出低电平有效的存贮器写控制信号。 :三态输出低电平有效的存贮器读控制信号。 ADSTB:地址选通输出,高电平锁存数据线上的A8~A15 。 AEN:地址允许信号,高电平有效输出信号。 :片选信号,低电平有效输入信号。 RESET:复位信号,高电平有效输入信号。 READY:准备好输入信号,当DMAC工作期间遇上慢速内存或I/O接口时,可由它们提供READY信号,使DMAC在传送过程中插入时钟周期SW,以便适应慢速内存或外设。此信号与CPU上的准备好信号类似。 HRQ:保持请求信号,高电平有效,输出给CPU的信号。 HLDA:保持响应信号,高电平有效,CPU输入的信号。 DREQ0~DREQ3:外设DMA请求(通道0~3)信号。 DACK0~DACK3:DMA给外设的响应信号,分别对应通道0~3。 CLK:时钟输入,用来控制8237的内部操作并决定 DMA的传输速率。 :过程结束,低电平有效的双向信号。 图5.32 DMAC8237引脚图 读、写控制信号 保持请求、响应及过程结束信号 复位、时钟、片选 双向数据线 DMA请求信号 地址线、地址选通、地址允许 DMA应答信号 2. 8237的工作时序 8237内部有三种状态,空闲状态SI、请求状态SO和传送状态S1~S4。随着8237在系统中主、从属性的改变,其内部状态的变换构成了8237的工作时序。 图5.33 8237工作时序 3. 8237的工作方式 1) 空闲周期 4个通道均无请求,可设置工作状态; 2) 工作周期 ①单字节传送方式:每次传送一个字节,传送完后DMAC放弃系统总线,CPU与DMAC轮流控制系统总线; ②数据块传送:最多可传输64KB数据块; ③请求传送:DREQ信号有效则一直传送; ④级联方式:扩展DMA通道。 图5.34 8237级联结构图 3) 传送类型 ①接口到存贮器的传送; ②存贮器到接口的传送; ③存贮器到存贮器。 4)优先级 ①固定优先级,通道0最高,依次降低; ②循环优先级,刚传送完的通道优先级最低,依次循环。 5)传输速率 ①正常时序:一次DMA需要4个时钟周期; ②压缩时序:一次DMA需要2个时钟周期; 4. 8237的内部寄存器 8237有4个独立的DMA通道,有许多内部寄存器。表5.2给出这些寄存器的名称、长度和数量。 表5.2 8237的内部寄存器 1)基地址寄存器: 传送的起始地址; 2)基字数寄存器: 传送的字节个数; 3)当前地址寄存器: 当前传送到的地址; 4)当前字数寄存器: 当前传送到的字节个数; 5)地址暂存寄存器和字数暂存寄存器: 内部使用; 图5.40 8237的状态寄存器 6)状态寄存器 图5.36 8237的命令字 7)命令寄存器 存储器到存储器传输固定使用通道0和通道1完成 通道0—通道1 图5.37 8237的请求字 8)请求寄存器 图5.38 8237的单通道屏蔽字 9)屏蔽寄存器:单通道屏蔽字 图5.39 8237的4通道屏蔽字 9)屏蔽寄存器:四通道屏蔽字 图5.35 8237的方式控制字 10)方式寄存器 11) 字节指针触发器: 用于对16位寄存器寻址,区分传送的是低字节还是高字节。 12) 暂存寄存器: 用于存储器到存储器之间传送过程中对数据的暂时存放; 5. 8237的寻址及连接 8237的4个通道寄存器及其他公用寄存器的寻址如表5.3和表5.4所示。 表5.3 8237各通道寄存器的寻址 表5.4 软件命令寄存器的寻址 图5.41 利用页寄存器产生存贮器地址 20位地址信号的形成: 页面地址寄存器专用芯片74LS670(4×4寄存器阵) 图5.42 PC机中8237连接简图 6. 8237的初始化 ①为了对DMAC8237初始化,首先进行总清; ②对DMAC(8237)的通道0基地址寄存器与当前地址寄存器、基字数寄存器及当前字数寄存器设置;
文档评论(0)