S5935如何实现DMA传输的设计与研究.doc

上传人:白大夫 文档编号:3272846 上传时间:2019-08-07 格式:DOC 页数:3 大小:16KB
返回 下载 相关 举报
S5935如何实现DMA传输的设计与研究.doc_第1页
第1页 / 共3页
亲,该文档总共3页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《S5935如何实现DMA传输的设计与研究.doc》由会员分享,可在线阅读,更多相关《S5935如何实现DMA传输的设计与研究.doc(3页珍藏版)》请在三一文库上搜索。

1、S5935如何实现DMA传输的设计与研究摘要:文中介绍了具有PCI总线主控功能的专用接口芯片S5935的基本结构,阐述了它如何实现DMA控制器的功能,并给出了用于实现DMA传输的WDM驱动程序。1前言计算机与外设之间有三种传输方式:程序方式、中断方式、DMA(DirectMemoryAccess)方式。其中,前两种方式都是CPU通过执行指令来实现主机与外设间的数据传输,传输速度较低;后一种方式是由DMA控制器直接实现外设和存储器之间的数据传输,它不通过CPU,传输速度较高。因此在高速数据传输系统中,常常利用DMA方式来实现计算机与外设间的数据传输。由于个人计算机中的PCI总线具有总线主设备支持

2、的特点(总线主设备支持的特点就是全面支持PCI总线主设备,允许同级PCI总线访问和通过PCIPCI与扩展总线桥访问主存储器和扩展总线设备,并且,PCI主设备能够访问驻留于总线级别较低的另一个PCI总线上的目标)。所以,可以有两种途径来实现DMA传输,其一是利用计算机内部的DMA控制器;其二是利用具有总线主控功能的PCI接口芯片。由于后一种途径不占用计算机系统的DMA通道,节省了计算机的资源,因此,使用较多。具有总线主控功能的PCI接口芯片主要有两种类型:一是可嵌入IP核的可编程逻辑器件,如Xilinx公司的Sparten系列等;二是专用的PCI桥接芯片,如PLX公司的PCI9054、AMCC公

3、司的S5935等产品。前者设计较为灵活,但是要求开发者对PCI规范有较深入的理解,开发周期较长;后者设计较为简单,开发者只要正确配置接口芯片的配置空间,注意引脚的电气连接规范,就可以正确使用,开发周期较短。本文以专用PCI接口芯片S5935为例,介绍其作为PCI总线主设备时如何实现DMA传输。2AMCCS5935芯片S5935是AMCC公司S59XX系列接口芯片中的一种,该芯片功能强大,可用于高速数据采集卡、视频加速卡、多媒体通信等。它既可作PCI总线主设备,也可作PCI总线从设备,应用较为广泛。它有三种工作方式:MAILBOX(邮箱)工作方式、PASS-THRU(直通)工作方式、FIFO(先

4、进先出)工作方式。其中前两种工作方式只能是S5935作为PCI总线从设备时的工作方式,FIFO工作方式可以是S5935作为PCI总线主设备时的工作方式,也可以是S5935作为PCI总线从设备时的工作方式。S5935的结构如图1所示,它有三个接口:PCI总线接口、本地端接口和非易失性存储图1S5935结构框图器接口。PCI接口用来实现计算机与S5935间的数据、地址、命令等的传输。本地端接口用来实现S5935与外部存储器间的数据传输以及与外部控制逻辑电路间的地址、命令等的传输。非易失性存储器接口有两种类型,它既可以与串行nvRAM相连,也可以与字节nvRAM相连,实现S5935头部空间的配置。S

5、5935的配置空间有256字节,分为头部配置空间和操作寄存器空间。头部占用64字节,它又可以分为两部份,前16个字节的定义在各种类型的设备中都是一样的,如厂商代码VID、设备代码DID,其余48个字节可以根据设备支持的基本功能情况进行不同的设置,如中断引脚的设置、PASS-THRU映射在存储器或I/O空间的大小设置以及PCI操作寄存器的基地址设置等。操作寄存器分为16双字的PCI操作寄存器和18双字的本地操作寄存器,前者只能通过PCI总线对其进行访问,后者则只能通过本地总线对其进行访问。它们的结构非常相似,其主要区别是本地操作寄存器比PCI操作寄存器多两个用于直通工作方式的直通地址寄存器(AP

6、TA)和直通数据寄存器(APTD),而少一个主控寄存器(MCSR)。3S5935的DMA控制器特性S5935的FIFO工作方式可以工作在总线主控模式下,此时S5935相当于一个带有数据缓冲区的DMA控制器,可以在不占用计算机系统的DMA通道的情况下,进行DMA传输。其内部结构如图2所示,它有两个单向FIFO:一个FIFO的数据传输方向是从PCI总线到本地总线,另一个用于本地总线到PCI总线的数据传输,每个FIFO的大小为832bit;还有两个地址寄存器和两个数据寄存器,分别用于存储DMA传输的首地址和传输所需的字节数。S5935的DMA传输可以设置为由本地总线发起,也可以由PCI总线发起的,它

7、是在初始化时,通过设置nvRAM的45h单元的bit7实现的。下面以由PCI总线发起的DMA传输为例,介绍S5935的DMA控制器特性:当需要进行DMA传输时,驱动程序通过设置MCSR寄存器的bit14或bit10,向S5935发出DMA请求信号(前者用于计算机内部存储器读,后者用于内部存储器写),S5935根据FIFO管理方案,如满足条件,使能REQ#信号,申请总线控制权。当总线仲裁器收到总线控制请求信号后,如果允许,则使能GNT#信号,从而将总线的控制权传递给S5935。S5935得到总线控制权以后,将存储在MWAR(或MRAR)内的地址信号发送到PCI地址总线上,并且每传送一个字节,MWAR(或MRAR)内的地址就会自动更新,以指向下一个要传送的字节。S5935通过C/BE3:0#发送读/写控制信号,例如:发送的是0110,则为内部存储器读,发送的是0111,就为内部存储器写。为了决定所传送的字节数,并且判断DMA传送是否结束,S5935利用MWTC(或MRTC)存储需要传输的字节数,每传送1个字节,字节计数器的值便自动减1,减为0时,则DMA过程结束。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 其他


经营许可证编号:宁ICP备18001539号-1