《微机原理与接口》第11章DMA接口.ppt

《微机原理与接口》第11章DMA接口.ppt

  1. 1、本文档共77页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
11.2.1 8237A在IBM PC系列机上的应用 IBM PC/XT机使用一片8237A 通道0:动态存贮器DRAM刷新 通道1:用户使用或SDLC卡 通道2:内存与软盘的高速数据交换 通道3:内存与硬盘的高速数据交换 IBM PC/AT机采用两片8237A DMAC1包含通道0~3,支持8位数据传送 DMAC2组成通道4~7,通道5~7支持16位数据传送,通道4用于级连 1. 8237A的初始化 8237A初始化写入命令字为0,确定了: DREQ高电平有效、DACK低电平有效,固定优先权(依次为通道0、1……7) 不进行存储器到存储器的数据传输 PC机用DMA控制电路进行刷新,所以DMA传送不能长时间占用总线(不应超过15?s),一般只能使用单字节传送方式 在PC系列机上,用户如果使用DMA通道,要注意遵从上述系统要求。除了要禁止8237A工作,用户通常不必操作命令寄存器 2. 高位地址的形成 DMA传送时的高位地址由“页面寄存器”提供 页面寄存器由CPU的输出指令实现写入 DMAC1的通道0~通道3:8237A提供系统A0~A15低16位地址,页面寄存器输出系统A16~A23高8位地址 DMAC2的通道5~通道7:8237A提供系统A1~A16的16位地址,而系统A0被强迫为逻辑0,页面寄存器仅输出高7位地址A17~A23 页面寄存器不会自动增减量 高位地址在DMA传送过程中不改变 11.2.2 DMA写传送 CLK D CLK D0~D7 Q +5V 外设数据 外设DMA请求 74LS374 74LS74 RESET DRQ1 DACK1 IOR OE R S 通道1工作方式设定 mov al,45h ;通道1方式字: ;单字节写传送,地址增量,非自动初始化 out 0bh,al nop ;延时 nop out 0ch,al ;清高/低触发器命令 例11.2 DMA写传送程序段 设通道1起始地址 mov al,0 out 02h,al ;写入低8位地址到地址寄存器 mov al,50h out 02h,al ;写入中8位地址到地址寄存器 mov al,04h out 83h,al ;写入高8位地址到页面寄存器 通道1传送字节数 mov ax,2048-1 ;AX←传送字节数减1 out 03h,al ;送字节数低8位到字节数寄存器 mov al,ah out 03h,al ;送字节数高8位到字节数寄存器 mov al,01 out 0ah,al ;单通道屏蔽字:允许通道1的DMA请求 …… ;其他工作 通道1传送结束判断 dmalp: in al,08h ;读状态寄存器 and al,02h ;判断通道1是否传送结束 jz dmalp ;没有结束,则循环等待 …… ;传送结束,处理转换数据 DMA传送过程结束的判断: 软件查询方式 11.2.3 DMA设定子程序 系统ROM-BIOS的DMA设定子程序:DMA通道2传送编程 软盘的读写利用DMA通道2传送数据 被读软盘、写软盘和软盘检验等软盘I/O功能程序调用 设定通道2工作方式 push cx ;保存CX cli ;关中断 out 0ch,al ;清高/低触发器命令 push ax ;延时 pop ax out 0bh,al ;将AL中的方式字写入通道2 例11.4 DMA设定子程序 DMA设定子程序 形成物理地址 mov ax,es mov cl,4 rol ax,cl ;段地址左移4位 mov ch,al ;高位存入CH and al,0f0h add ax,bx ;加段内偏移地址 jnc j33 inc ch ;物理地址形成 j33: push ax ;保存AX DMA设定子程序 设定通道2起始地址 out 04h,al ;写入地址寄存器 mov al,ah out 04h,al mov al,ch and al,0fh out 83h,al ;写入页面寄存器 DMA设定子程序 计算传送字节数 mov ah,dh ;取扇区数,计算传送的字节数 sub al,al ;AX为扇区数乘256 shr ax,1 ;AX为扇区数乘128 push ax ;暂存AX mov bx,6 call GET-PARM ;调用参数子程序 mov cl,ah ;出口参数:AH=0/1/2/3 pop ax ;恢复AX shl ax,cl ;AX为DMA传送的字节数 DMA设定子程序 通道2传送字节数 dec ax ;字节数减1 push ax ;保存 out 05h,al ;写入字节数寄存器 mov al,ah out 0

文档评论(0)

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

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

1亿VIP精品文档

相关文档