- 1、本文档共31页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
[理学]第9章DMA微型计算机原理与接口技术.ppt
8 DMA控制器8237A 8.1 DMA控制器一般结构 4、8237A功能 例如,DMA的地址为80H,将地址8040H写通道1的基地址寄存器和现行地址寄存器: MOV AL, 40H OUT 82H,AL MOV AL,80H OUT 82H,AL 读通道1的现行地址寄存器到AX: IN AL,82H MOV BL,AL IN AL,82H MOV AH, AL MOV AL, BL * * DMA方式是让存储器直接和高速外设直接交换数据,在传输的过程中不需要CPU的介入,传输操作都由硬件完成,因此减轻了CPU的负担,同时也大大提高了传输的速度。 8.2 DMA控制器8237A的原理 1、8237A的编程结构 模式寄存器 基地址寄存器 当前地址寄存器 基字节寄存器 当前字节寄存器 通道0 控制寄存器 状态寄存器 请求寄存器 屏蔽寄存器 暂存器 通道1 通道2 通道3 DREQ0 DACK0 DREQ1 DACK1 DREQ2 DACK2 DREQ3 DACK3 AEN ADSTB A4—A7 AD0—AD7 MEMR MEMW IOR IOW HRQ HLAD EOP READY RESET CLK GND VCC A0—A3 2、8237的寄存器组 1)现行地址寄存器 每一个通道有一个16位的现行地址寄存器。在这个寄存器中保存着用于DMA传送的地址值,在每次传送后,这个寄存器的值自动增量或减量。这个寄存器的值可由CPU写入或读出(分两次连续操作)。 2)现行字节数寄存器 每个通道有一个16位的现行字节数寄存器,它保持着要传送的字节数,在每次传送后此寄存器减量。当这个寄存器的值减为零时,TC将产生。这个寄存器的值在编程状态可由CPU读出和写入。 以上2个寄存器在自动预置方式时,当EOP信号有效时,自动置初值(由基地址和基字节数寄存器决定)。 3)基地址和基字节数寄存器 每一个通道有一对16位的基地址和基字节数寄存器,它们存放着与现行寄存器相联系的初始值。 4)控制寄存器、状态寄存器、暂存器(在M??M期间临时保存数据)等 3、DMA引脚功能 主要引脚的功能: 1)READY:I/O或存储器准备就绪信号,高电平有效; 2)ADSTB:高8位地址锁存信号,在DMA的地址输出周期,锁存从AD0—AD7输出的高8位地址; 3)AEN:地址允许信号,在DMA期间,禁止地址信号产生I/O译码; 4)EOP:低电平,外部输入EOP信号到DMA时,强迫DMA结束;当DMA内部计数器计数结束时,输出低电平,通知I/O,DMA结束; 5)A0—A3:低4位地址,在DMA期间产生低位地址,在DMA编程初始化时,对DMA内部寄存器寻址; 6)MEMR、MEMW、IOR、IOW: 7)HRQ、HLAD:总线请求和总线回应信号; 8)AD0—AD7:8位数据线,在DMA输出地址周期,产生高8位地址; 9)DREQ、DACK:DMA请求和应答信号; 10)A4—A7:DMA地址信号。 8237A DMA控制器的主要功能: 1)8237 有4个独立的 DMA 通道; 2)每个通道的DMA请求都可以分别允许和禁止; 3)每个通道的DMA请求有不同的优先权,优先权可以是固定的,也可以是旋转的(由编程来决定)。 4)每个通道一次传送数据的最大长度为 64KB,可以是存储器与 I/O之间传送数据,也可以是存储器之间传送数据; 5)8237有4种传送方式: (1)单字节传送方式; (2)数据块传送方式; (3)请求传送方式; (4)级连方式。 6)有一个结束处理的输入信号 EOP,CPU 可以通过EOP结束DMA操作或对DMA重新初始化; 7)8237可以级连,任意扩展通道数。 5、8237内部寄存器 W 1 4 请求寄存器 W 1 4 屏蔽寄存器 W 4 6 模式寄存器 R 1
文档评论(0)