网站大量收购独家精品文档,联系QQ:2885784924

接口技术 第9章 DMA控制接口.ppt

  1. 1、本文档共73页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
* 8237A寄存器和软件命令的寻址(表9-1勘误) * 基地址寄存器(地址初值寄存器)和 现行地址寄存器(地址计数器) 基地址寄存器存放DMA传送的地址初始值,现行地址寄存器保持DMA传送的当前地址值 CPU同时写入基地址寄存器和现行地址寄存器 基地址寄存器只写不读,其内容不会自动修改;现行地址寄存器可读可写,其内容随DMA传送的进行每次自动加1或减1 * 基字节数寄存器(字节数初值寄存器) 和现行字节数寄存器(字节数计数器) 基字节数寄存器存放DMA操作需要传送的字节数,现行字节数寄存器保持DMA传送的剩余字节数 CPU同时写入基字节数寄存器和现行字节数寄存器 基字节数寄存器只写不读,其内容不会自动修改;现行字节数寄存器可读可写,其内容随DMA传送的进行每次自动减1 终止计数TC(Terminal Count):指现行字节数寄存器的值减至0之后,再减1至FFFFH。因此,传送N个字节,初始值为N-1。 * 高/低触发器(或先/后触发器) CPU与8237A之间通过8位数据总线交换信息,8237A的通道寄存器均为16位,需要两次读写操作才能实现CPU与8237A之间的一个完整数据的交换 8237A内含一个高/低触发器,用来控制读写通道寄存器的高、低字节 该触发器为0,控制读写低字节 该触发器为1,控制读写高字节 软、硬件复位后,触发器为0 每次读写通道寄存器,自动改变触发器状态。如果对16位寄存器的操作用两次连续读写进行,就不必清除这个触发器 清除高/低触发器软件命令(A3A2A1A0=1100)将使高/低触发器清零 * 3个软件命令 清除高/低触发器软件命令 A3A2A1A0=1100,使高/低触发器清零 如:outp(0x0c,0) 主清除命令 A3A2A1A0=1101,使高/低触发器清零 使命令、状态、请求、临时寄存器清零 使屏蔽寄存器置为全1(禁止DMA请求) 主清除命令与硬件的RESET信号具有相同的功能(软件复位命令) 如:outp(0x0d,0) 清屏蔽寄存器命令 A3A2A1A0=1110,使4个屏蔽位都清零(允许DMA请求) 如:outp(0x0e,0) * 模式寄存器(A3A2A1A0=1011) 存放相应通道的方式控制字,选择某个DMA通道的工作方式 方式字格式见下页 * 方式字格式 D7 D6 D5 D4 D3 D2 D1 D0 00 请求模式 01 单字节模式 10 数据块模式 11 级联模式 0 地址增量(加1) 1 地址减量(减1) 0 禁止自动初始化 1 允许自动初始化 00 DMA校验 01 DMA写 10 DMA读 11 非法 ×× 若D7D6=11 00 通道0 01 通道1 10 通道2 11 通道3 * 命令寄存器(A3A2A1A0=1000) 存放8237A的命令字 设置8237A芯片的操作方式 影响每个DMA通道 复位时使命令寄存器清零 设置D2=0才使8237A可以作为DMA控制器 请看命令字的格式 * 命令字格式 D7 D6 D5 D4 D3 D2 D1 D0 0 DACK低有效 1 DACK高有效 0 DREQ高有效 1 DREQ低有效 0 滞后写 1 扩展写 × 若D3=1 0 固定优先权 1 循环优先权 0 正常时序 1 压缩时序 × 若D0=1 0 允许DMAC工作 1 禁止DMAC工作 0 允许通道0地址改变 1 禁止通道0地址改变 × 若D0=0 0 禁止存储器之间传送 1 允许存储器之间传送 * 压缩时序:去掉S3,读与写同为1个时钟 扩展写(提前写):写提前到与读同时开始(S3),与读一样扩展到2个时钟周期。 * 请求寄存器(A3A2A1A0=1001) 存放软件DMA请求状态 除硬件DMA请求外,当工作在数据块传送方式时也可以通过软件发出DMA请求 若是存贮器到存贮器传送,则必须由软件请求启动通道0 请看请求字的格式 * 请求字格式 D7 D6 D5 D4 D3 D2 D1 D0 任意 0 复位 1 置位(有DMA请求) 00 通道0 01 通道1 10 通道2 11 通道3 * 屏蔽寄存器 控制外设硬件DMA请求是否被响应(为0允许)(与IMR类似),各个通道互相独立。3种方法: 单通道屏蔽字(A3A2A1A0=1010)只对一个DMA通道屏蔽位进行设置 主屏蔽字(A3A2A1A0=1111)对4个DMA通道屏蔽位同时进行设置 清屏蔽寄存器命令(A3A2A1A0=1110)使4个屏蔽位都清零(允许) 复位使4个通道全置于屏蔽状态 当一个通道的DMA过程结束,如果不是工作在自动初始化方式,则这一通道的屏蔽位置位,必须再次编程为允许,才能进行下次DMA传送 请看屏蔽字的格式 * 单通道屏蔽字(A3A2A1A0=1010)格式

您可能关注的文档

文档评论(0)

文档精品 + 关注
实名认证
内容提供者

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

版权声明书
用户编号:6203200221000001

1亿VIP精品文档

相关文档