《DMA技术》PPT课件.ppt

上传人:san****019 文档编号:7344488 上传时间:2020-03-20 格式:PPT 页数:39 大小:390.60KB
返回 下载 相关 举报
《DMA技术》PPT课件.ppt_第1页
第1页 / 共39页
《DMA技术》PPT课件.ppt_第2页
第2页 / 共39页
《DMA技术》PPT课件.ppt_第3页
第3页 / 共39页
点击查看更多>>
资源描述
1 第4章DMA技术 主要内容 1 DMA传送的特点2 DMA传送的过程3 DMA传送的方式4 DMA控制器5 DMA系统6 DMA传送的应用重点内容 DMA方式的有关概念及应用 2 第4章DMA技术 一 DMA方式 directmemoryaccess 直接存储器存取DMA是指计算机的外设与存储器之间或存储器与存储器间直接进行数据交换的一种方式 在这种方式下 DMA控制器拥有总线控制权 操纵数据在存储器与外设间直接传送 不需要CPU执行指令 DMA传送 DMA读传送 DMA写传送 存储单元传送 I O RAM RAM I O RAM RAM 3 第4章DMA技术 2 DMA传送过程 1 I O端口向DMA发出DMA请求DREQ 2 DMAC向CPU发出总线请求HRQ 请求CPU让出总线控制权 3 CPU在每个总线周期结束时检测HRQ 响应DMAC的HRQ请求 CPU与总线间成高阻态 向DMAC发回总线响应信号HLDA 4 DMAC接管总线控制权 DMAC向I O设备发出DMA响应信号 5 DMAC把要进行DMA传送涉及RAM地址送地址线 则DMAC向端口或RAM发R W命令来完成数据传送 6 当传送结束 DMAC将总线请求信号变得无效 4 第4章DMA技术 3 DMA传送方式与中断传送方式的区别 1 传送速度 DMA一个总线周期传送一个字节 中断程序 2 响应速度 DAM总线周期结束 指令结束 3 请求方式 外部和内部中断 DMA软件和硬件发出 4 DMA占用总线方式 1 周期挪用 挪用CPU不访问存储器的机器周期进行DMA操作 DMA操作不影响CPU的工作 电路复杂 2 周期扩展 采用专门的时钟发生电路加宽CPU的时钟周期 利用CPU每个时钟周期的剩余时间进行DAM操作 降低CPU速度 3 CPU停机 在DMA操作期间 CPU交出总线的控制权 由DMA控制器接管总完成数据传送 CPU不能使用总线 只能进行内部操作 5 第4章DMA技术 二 8237A的引脚功能和内部结构 1 8237A的基本功能 3 8237具有4种传送方式 单字节传送方式 数据块传送方式 请求传送方式和级连传送方式 1 每片8237内部有4个独立的通道 每个通道可分别进行数据传送 一次传送的最大字节数为64KB 能实现存储器与外设或存储器与存储器两个区域的数据传送 2 每个通道的DMA请求可以分别被允许或禁止 具有不同的优先级 并且每个通道的优先级可以时固定的 也可以是循环的 6 第4章DMA技术 2 8237A的引脚及功能 READY 准备好信号表示存储器或外设已经准备好 用于DMA操作时与慢速存储器或外部设备同步 HLDA 总线响应信号是CPU对HRQ信号的响应 通知8237接管总线的控制权 ADSTB 地址选通输出信号在DMA传送期间 此信号用于将D7 D0输出的当前地址寄存器中高8位地址送到外部地址锁存器 与8237芯片直接输出的低8位地址A7 A0构成内存单元地址的偏移量 AEN 地址允许输出信号允许8237将高8位地址输出至地址总线 同时使与CPU相连的地址锁存器无效 禁止CPU使用地址总线 AEN为低电平时 8237被禁止 CPU占用总线 HRQ 总线请求输出信号当8237的任一个未屏蔽通道接收到DREQ请求时 8237向CPU输出HRQ信号 请求CPU出让总线的控制权 CLK 时钟脉冲输入信号用以控制8237内部操作及数据传输率 DREQ0 DREQ3 DMA请求信号通道3 0分别对应DREQ3 DREQ0 当外设请求DMA服务时 由I O接口向8237发出DREQ请求信号 直到收到DMA响应信号DACK后 信号才撤消 在优先级固定方式下 DREQ0最高 RESET 复位输入信号复位后8237处于空闲状态 清零内部各寄存器 并置位屏蔽触发器 DACK0 DACK3 DMA响应信号是8237对DREQ信号的响应 当8237接收到DMA响应信号后 开始DMA传送 D0 D7 8位数据总线CPU读取状态寄存器 现行地址寄存器 字节数计数器的内容并可向8237写入控制命令进行初化编程 在DMA传送期间输出当前地址寄存器中的地址与A7 A0组成16位地址 A0 A3 地址线为输入信号时 用于8237内部寄存器寻址使用 为输出信号时 与A7 A4构成内存地址单元的低8位地址 7 第4章DMA技术 3 8237A的内部结构 基地址寄存器 用来保存DMA传送时本通道所用到的数据段地址初值 由CPU对8237进行初始化编程时写入的 当前地址寄存器 用来保存DMA传送过程中现行地址值 初值时该寄存器的值是与基地址寄存器相同 每次DMA传送后其内容自动增1或减1 基字节寄存器 用来保存整个DMA操作过程中要传送数据的字节数 这个初值由CPU在编程时写入的 当前字节寄存器 保存当前要传送的字节数 每次DMA传送后内容减1 在自动预置状态下 EOP有效可自动恢复起始状态 方式寄存器 用在CPU对8237初始化编程时设定8237的工作模式 地址增减 是否自动预置 传输类型及通道选择 暂存器 在DMA进行RAM传送方式时 它暂存中间数据 8 第4章DMA技术 4 8237A的内部逻辑框图 9 第4章DMA技术 三 8237A的初始化编程 8237工作前由CPU对其进行初始化编程 设定内部寄存器的值 一是设定通道计数初始值 基地址与当前地址寄存器 基字节数与当前字节计数寄存器 二是设置通道功能 设置工作模式寄存器 设置屏蔽寄存器 设置命令寄存器 8237A的工作模式 1 单字节传送模式 每次只传送1个字节 8237每传送一个字节的数据后 当前字节计数器减1 当前地址寄存器也要修改 增1或减1 HRQ无效 释放系统总线 由CPU接管总线 若当前字节计数器为0 则结束DMA传送 否则8237会对DREQ信号进行检测 当DREQ有效 立即向CPU发出总线总线请求信号 获总线控制权后 再传送下一个字节 10 第4章DMA技术 2 块传送模式 8237获得总线控制权后 可以完成一个数据块的传输 直到当前字节计数器减为0 或由外部接口输入有效的EOP信号 8237才释放总线 将总线控制权交还CPU 3 请求传送模式 可连续传输多个字节的数据 当出现当前字节计数器减为0 外部EOP有效 外界的DREQ变为无效时 8237结束传送释放总线 由CPU接管总线 若此时当前字节计数器不为0 8237相应通道将保存当前地址和字节寄存器的中间值 当8237检测到DREQ后 传送可继续进行 4 级连传送模式 通过级连方式扩展数据传输通道 构成主从式DMA系统 主片的DREQ和DACK分别接从片的HRQ和HLDA 主片的HRQ和HLDA连接系统总线 5片8237构成的二级主从式DMA系统中 DMA数据通道可扩展到16个 11 第4章DMA技术 1 模式 方式 寄存器 0BH 8237A的工作模式 12 第4章DMA技术 例 PC机软盘读 写操作选择DMA通道2 单字节传送 地址加1 不用自动预置 分别写出读盘和写盘和校验操作的模式命令字 写操作 01000110B 46H 读盘 DMA写 读操作 01001010B 4AH 写盘 DMA读 校验操作 01000010B 42H 校验盘 DMA校验 因此 若采用上述方式从软盘上读出的数据存放在内存区 则方式字为46H 若从内存取出数据写到软盘上 则方式字为4AH 13 第4章DMA技术 2 控制寄存器 08H 14 第4章DMA技术 例 PC机8237按如下要求工作 禁止存储器到存储器传送 正常时序 滞后写入 固定优先级 允许8237工作 DREQ和DACK均为高电平 写出8237的控制字 命令字为 00000000B 00H将命令字写入命令口的程序段为 MOVAL 00HOUT08H AL 15 第4章DMA技术 3 状态寄存器 08H 16 第4章DMA技术 4 请求寄存器 09H DMA请求可由I O设备发出也可由软件发出 例 某PC机使用通道 进行RAM到RAM间的数据传送 写出CPU向请求寄存器写入的代码 17 第4章DMA技术 5 单通道屏蔽寄存器 09H 18 第4章DMA技术 6 多通道屏蔽寄存器 0FH 19 第4章DMA技术 7 地址寄存器00H 基地址和当前地址寄存器 初始时写入 8 字节寄存器01H 基本字节和当前字节寄存器 初始时写入 9 清屏蔽寄存器0EH无论是RESET复位还是软复位 屏蔽寄存器均被置1 DMA请求被禁止 当DMA传送结束 EOP 有效 会自动置1屏蔽寄存器 因此初始化时必须清除屏蔽触发器 方法 对端口DMA 0EH进行一次写操作 可清除4个通道的屏蔽触发器 MOVDX DMA 0EHMOVAL 0OUTDX AL 20 第4章DMA技术 11 暂存寄存器 0DH 4个通道共用的8位寄存器在DMA控制器实现存储器到存储器的传送方式时 它暂存中间数据 CPU可以读取暂存器中的内容 其值为最后一次传送的数据 10 先 后触发器 0CH 为设置基址寄存器的初始值顺序而设置的 8237A只有8条数据线 而基地址寄存器和基字节寄存器都是16位 预置初值时需分两次进行 使用先 后触发器时 先将其清零 写入低字节操作后 触发器变1 再写高字节 21 第4章DMA技术 3 8237A的软命令 只需对特定端口 寄存器 进行一次写操作就可以完成指定操作与写入的数据无关 1 清先 后触发器 0CH 2 总清除命令 0DH 软件复位命令与硬件reset信号相同 可使控制寄存器 状态寄存器 DMA请求寄存器 暂存器及先 后触发器清0 使屏蔽寄存器置1 3 清屏蔽寄存器命令 0EH 22 第4章DMA技术 4 5DMA系统 一 DMA系统组成 DMA系统由DMA控制器8237A和DMA页面地址寄存器及总线裁决逻辑构成 23 第4章DMA技术 24 第4章DMA技术 二 DMA系统有效地址的生成 当DMAC作为主设备 如何为存储器提供足够的地址信号线 如何对I O设备寻址 1 存储器地址的形成 DMA页面地址寄存器 25 第4章DMA技术 26 第4章DMA技术 WRTDMAPGREG 0 80H 9FH DMAAEN 0 80H 9FH DACK低电平有效 27 第4章DMA技术 2 I O设备寻址 DMA方式传送的I O设备 在进行读写数据时 只要DACK信号和RD或WR信号同时有效 就能完成对I O设备端口的读或写操作 与I O设备的端口地址无关 三 PC机的DMA系统 1 单片DMAC的DMA系统 28 第4章DMA技术 2 双片DMAC的DMA系统 29 第4章DMA技术 通道号 端口名称 8237A 0 8237A 1 0 基 当前地址寄存器基 当前字节计数器 00H01H C0HC2H 1 基 当前地址寄存器基 当前字节计数器 02H03H C4HC6H 2 基 当前地址寄存器基 当前字节计数器 04H05H C8HCAH 3 基 当前地址寄存器基 当前字节计数器 06H07H CCHCEH 读状态寄存器 写控制寄存器写请求寄存器写单个通道屏蔽寄存器写方式字寄存器写清除先 后触发器读暂存寄存器 写总清除写清除屏蔽寄存器写4个通道屏蔽寄存器 08H09H0AH0BH0CH0DH0EH0FH D0HD2HD4HD6HD8HDAHDCHCEH 30 第4章DMA技术 3 方式字写入模式寄存器 0BH 为通道规定传送类型及工作方式 四 初始化编程的步骤 1 命令字写入控制器 08H 初始化时通过设置控制寄存器 来确定其工作时序 优先级方式 DREQ和DACK的有效电平及是否允许工作等 2 屏蔽字写入屏蔽寄存器 0AH 0FH 当某通道正在进行初始化编程时 必须先屏蔽要初始化的通道 在初始化结束后再解除该通道的屏蔽 31 第4章DMA技术 4 置0先 后触发器0CH 对口地址DMA 0CH执行一条输出指令 从而产生一个写命令 即可置0先 后触发器 为初始化基地址和基字节寄存器作准备 5 写入基地址和基字节寄存器 00H 01H 把DMA操作所涉及到的存储区首地址或末地址写入基本地址寄存器 要传送的字节数减1 写入基本字节寄存器 6 解除屏蔽 0EH 初始化后向通道的屏蔽寄存器写命令字 置0相应通道的屏蔽触发器 准备响应DMA请求 7 写入请求寄存器 09H 在完成通道初始化后 向请求寄存器写入命令字 可用相应的通道进行DMA传送 32 第4章DMA技术 PC AT机DMAC1通道初始化编程步骤 1 05H 0AH端口 使通道1的屏蔽触发器置1 2 方式命令字 0BH端口 设置通道1的读 写方式 3 0 0CH端口 使端口1的先 后触发器置0 为基地址和基字节寄存器写入初始值规定先写低8位后写高8位的写入顺序 4 计算存储单元的20位物理地址 5 将物理地址的高4位 83H端口 存入通道1的页面寄存器 低8位 通道1的基本地址寄存器 中8位 通道1基本地址寄存器 6 计数初值的低8位 通道1的基字节寄存器 高8位 通道1的基字节寄存器 7 01H 0AH端口 解除通道1的屏蔽 准备响应DMA请求 若采用软件DMA请求 完成上述初始化后 在程序的适当位置 8 将05H 09H端口 使通道1的请求触发器置1 通道1可产生软件DMA请求 33 第4章DMA技术 写出8237A操作命令与各信号间的对应关系 读状态寄存器 写命令寄存器 写请求寄存器 写屏蔽寄存器某一位 写模式寄存器 清除置0 1触发器 读暂存寄存器 主清除 软件复位 清除屏蔽寄存器 写屏蔽寄存器所有位 34 第4章DMA技术 练习 下面是用0通道从磁盘输入32KB的数据块 传送到内存08000H开始的区域 增量传送 采用块传送方式 传送不自动预置 外设的DREQ和DACK均为高电平有效 8237A端口地址00H 0FH 初始化程序如下 请写出每次写入到端口寄存器数据的含义 35 第4章DMA技术 MOVAL 04HOUT0AH ALMOVAL 84HOUT0BH ALMOVAL 00HOUT0CH ALMOVAL 00HOUT00H ALMOVAL 80HOUT00H ALMOVAL 00HOUT01H ALMOVAL 80HOUT01H ALMOVAL 00OUT0AH ALMOVAL 80HOUT08H AL 写模式控制字 块传送 地址增量 不 传送 不自动预置 通道0屏蔽触发器置1 通道0的先 后触发器置0 写入0通道基地址和当前地址寄存器低8位 写入0通道基地址和当前地址寄存器高8位 写入0通道基字节和当前字节寄存器低8位 写入0通道基字节和当前字节寄存器高8位 写屏蔽寄存器 清除通道0的屏蔽 写入命令寄存器 DREQ DACK为高电平 固定优先级 36 第4章DMA技术 例 DMA读 写传送利用DMA请求方式 将用户程序数据段的3行测试电文写入到指定的存储器中 然后再将存储器中的电文传送到用户程序的数据段缓冲区 最后把缓冲区中的电文显示中屏幕上 验证DMA读写传送的结果 电文如下 THEQUICKBROWNFOXJUMPSOVERLAZYDOG 37 第4章DMA技术 38 第4章DMA技术 datasegmentmesgdb strikeanykeytoreturndos 0dh 0ah dataendscodesegmentassumecs code ds databeg movax datamovds axcalli8255amovah 9movdx offsetmesgint21hscan movah 1int16hjnzreturnmovdx 260hinal dxcmpal 0ffhjnzhd1 39 第4章DMA技术 l1 movdx 261hldl movdx 262hinal dxmoval 01horal 00houtdx aljzldljmpscanhd2 movdx 263hreturn movah 4chmoval 00000101Bint21houtdx ali8255aprocmoval 00hmovdx 263houtdx almoval 00010010Bjmpscanoutdx alhd1 movdx 263hmovdx 262moval 00000011Bmoval 00houtdx aloutdx almoval 00hretoutdx ali8255aendpjmpscancodeendsendbeg
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 图纸专区 > 课件教案


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!