- 1、本文档共65页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
概述CPU与外设数据传送的方式可编程计数器定时
8237的编程结构 请求寄存器 四个通道的请求触发器构成一个请求寄存器(8位) 一般情况下,DMA请求由硬件信号DREQ发出,也可由软件设置请求触发器来发出DMA请求。 D2=1设置DMA请求 D1~D0:指定软件DMA请求的通道 端口地址09H 8237的编程结构 屏蔽寄存器 四个通道的屏蔽触发器构成一个屏蔽寄存器(8位) 当屏蔽寄存器的屏蔽标志置1时,将禁止该通道的硬件DMA请求和软件DMA请求。 D2=1,设置屏蔽; D2 =0,清除屏蔽; D1~D0:选通道 端口地址0AH 8237的编程结构 综合屏蔽寄存器 8237可以一次完成四个通道的屏蔽设置 D3~D0:分别对通道3~0设置屏蔽 1,设置屏蔽; 0,清除屏蔽; 端口地址0FH 清除屏蔽寄存器 对端口0EH写入0,可以一次清除四个通道的屏蔽触发器 端口地址0EH MOV DX, DMA+0EH MOV AL, 0 OUT DX, AL 8237的编程结构 8237的编程结构 复位命令寄存器 对端口0DH写入0,使8237复位,其功能等同于硬件复位 端口地址0DH 8237复位后的状态为: 控制寄存器 状态寄存器 请求寄存器 暂存器 先/后触发器 清0 屏蔽寄存器 置1 8237的编程结构 一片8237占用连续16个端口地址,用DMA+00H~DMA+0FH表示。其中,DMA表示该片8237的基地址。 在AT以上的微机中,使用2片8237,其地址为: 第一片8237,基地址DMA=0000H,使用0000H~000F I/O地址。 第二片8237,基地址DMA=00C0H,使用00C0H~00CF I/O地址。 8237的编程结构 8237对内存和I/O的寻址 存储器寻址 在主控模式下,8237可以产生16位存储器地址信号,地址引脚A7~A0输出地址低8位,高8位地址由数据引脚DB7~DB0输 出,经地址锁存器后形成存储器地址的A15~A8。用ADSTB启动地址锁存器。 当系统的存储器地址多于16位时,多余位地址由一个称为DMA页面寄存器的接口电路提供 8237对内存和I/O的寻址 存储器寻址 在PC/AT系统中,需要24位地址,高8位地址A23~A16由DMA页面寄存器电路74LS612提供。在DMA传输之前,用指令将高8位地址送入页面寄存器,在DMA传输过程中,由AEN信号使页面寄存器输出该8位地址。 存储器寻址 8237对内存和I/O的寻址 在Pentium微机中,DMAC和相关页面寄存器的功能由多功能芯片组实现 I/O寻址 8237对内存和I/O的寻址 8237的四个通道,每一个只接一个外设接口电路,不使用I/O地址来区分I/O设备 I/O设备的端口地址只用于CPU对I/O设备的寻址 I/O寻址 8237对内存和I/O的寻址 8237的应用 初始化编程 写入控制寄存器 写入屏蔽寄存器——屏蔽要初始化的通道 写入模式寄存器 先后触发器置0 写入基地址和基本字节寄存器 解除屏蔽 写入请求寄存器 8237的应用 例:ROM-BIOS对通道2初始化编程的代码片段 DMA EQU 0 ;DMA通道起始端口 1) 系统在启动时,对控制寄存器进行初始化 MOV AL, 0 OUT DMA+8, AL 2) 清除先/后寄存器 OUT DMA+12, AL 3) 设置模式寄存器 MOV AL, 46H …… OUT DMA+11, AL 4) 送内存地址 计算内存的物理地址,将20位地址的高4位送页面寄存器,低16位先送低8位,再送高8位 …... OUT DMA+4, AL ;低8位 …… OUT DMA+4, AL ;高8位 …… OUT 81H, AL ;20位地址的高4位 5) 送传送字节数 …... 6) 送屏蔽位 MOV AL, 2 OUT DMA+10, AL 8237的应用 8237的应用 例:利用主板上的8237通道1,将内存起始地址为80000H的300H字节直接输出给外设 MOV AL, 0 ;清除先/后触发器 OUT 0DH, AL ;写地址 OUT 02, AL OUT 02, AL MOV AL, 8 OUT 83H, AL ;传送的字节数 MOV AX, 300H DEC AX MOV 03, AL MOV AL, AH OUT 03, AL ;写模式寄存器 MOV AL, 49H OUT 0BH, AL ;清除通道1屏蔽 MOV AL, 1 OUT 0AH, AL ;读通道1状态 WAIT: IN 08 AND AL, 02 JZ WAIT ;完成后屏蔽通道1 MOV AL, 5 OUT 0AH, AL *
文档评论(0)