资源描述:
《实验二、DMA特性及8237应用实验》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、标准文案实验二、DMA特性及8237应用实验一、实验目的1.掌握8237DMA控制器的工作原理。2.了解DMA特性及8237的几种数据传输方式。3.掌握8237的应用编程。二、实验设备PC机一台,TD—PITE实验装置或TD-PITC实验装置一套。三、实验原理及内容直接存储器访问(DirectMemoryAccess,简称DMA),是指外部设备不经过CPU的干涉,直接实现对存储器的访问。DMA传送方式可用来实现存储器到存储器、存储器到I/O接口、I/O接口到存储器之间的高速数据传送。1.8237芯片介绍8237是一种高性能可编程DMA控制器,芯片有4个独立的DMA通道
2、,可用来实现存储器到存储器、存储器到I/o接口、I/O接口到存储器之间的高速数据传送。8237的各通道均具有相应的地址、字数、方式、命令、请求、屏蔽、状态和暂存寄存器,通过对它们的编程,可实现8237初始化,以确定DMA控制的工作类型、传输类型、优先级控制、传输定时控制及工作状态等。8237的外部引脚如图4。17所示。8237的内部寄存器分为两类:大全标准文案4个通道共用的寄存器。包括命令、方式、状态、请求、屏蔽和暂存寄存器。4个通道专用的寄存器。包括地址寄存器(基地址及当前地址寄存器)和字节计数器(基本字节计数器和当前字节计数器)。8237的内部结构图如图4.18所
3、示。寄存器格式如图4.19~图4.23所示。大全标准文案大全标准文案表4.2列出了8237内部寄存器和软命令及其操作信息。2.DMA实验单元电路图3.实验内容将存储器1000H单元开始的连续10个字节的数据复制到地址0000H开始的10个单元中,实现8237的存储器到存储器传输。实验参考线路图如图4.25所示。大全标准文案实验系统中提供了MYO和MYl两个存储器译码信号,译码空间分别为800000H~9FFFFH和AOOOOH~AFFFFH。在做DMA实验时,CPU会让出总线控制权,而8237的寻址空间仅为0000H~FFFFH,8237无法寻址到MYO的译码空间,故
4、系统中将高位地址线A19~A17连接到固定电平上,在CPU让出总线控制权时,MYO会变为低电平,即DMA访问期间,MYO有效。具体如下图所示。实验程序清单(A8237.ASM)STACKSEGMENTSTACK大全标准文案DW64DUP(?)STACKENDSCODESEGMENTASSUMECS:CODESTART:MOVAL,OOHMOVDX,061AHOUTDX,AL;总清命令AAl:MOVAL,OOHMOVDX,0600H;通道O(Source),存放需要复制的地址,由于接线中A0对;应于XA1,因此地址向前移一位,相当于乘2。故实际地址;为2000H。可修改
5、为2000H,则对应4000H的地址,想查看;复制结果,在相应地址中修改即可。OUTDX,ALMOVAL,1OHOUTDX,ALMOVAL,OOHMOVDX,0604H;通道l(Dest),存放需要复制到的目的地址,也可以根据需;要修改相应地址OUTDX,AL大全标准文案MOVAL,OOHOUTDX,ALMOVAL,OAHMOVDX,0602H;传输字节个数为0AH=10D,共可以复制修改11个数,可以;根据需要修改可传输字节个数OUTDX,ALMOVAL,OOHOUTDX,ALMOVAL,OAHMOVDX,0606H;传输字节个数OUTDX,ALMOVAL,OOHO
6、UTDX,ALMOVAL,88HMOVDx,0616H;通道O方式字OUTDX,ALMOVAL,85H;通道l方式字OUTDX,ALMOVAL,81HMOVDX,0610H;命令字OUTDX,AL大全标准文案MOVAL,04HMOVDx,0612H;请求字OUTDX,ALMOVAL,OOHMOVDx,061EH;屏蔽字OUTDX,ALMOVAX,4COOHINT21H;程序终止CODEENDSENDSTART四、实验步骤1.实验接线图如图4.25所示,按图连接实验线路。2.根据实验要求,参考流程图4.26编写实验程序。3.编译、链接程序无误后,将目标代码装入系统。4.
7、初始化首地址中的数据,通过E8000:2000命令来改变。(注:思考为何通道中送入的首地址值为1000H,而CPU初始化时的首地址为2000H。)答:由于接线中A0对应于XA1,因此地址向前移一位,相当于乘2。若更改为3000H,则实际地址是6000H。5.运行程序,待程序运行停止。6.通过DS000:0000命令查看DMA传输结果,是否与首地址中写入的数据相同,可反复验证。7.自己思考DMA的其它的传输方式,设计实验进行验证。大全标准文案五、实验截图1.通道0地址为1000H时,将传输字节个数改为0BH(即12个)用E命令修改8000:2000H中