用S5935实现DMA传输的设计与研究
0 2022-11-30

  摘要:文中介绍了具有PCI总线主控功能的专用接口芯片——S5935的基本结构,阐述了它如何实现DMA控制器的功能,并给出了用于实现DMA传输的WDM驱动程序。

  1前言

  计算机与外设之间有三种传输方式:程序方式、中断方式、DMA(DirectMemoryAccess)方式。其中,前两种方式都是CPU通过执行指令来实现主机与外设间的数据传输,传输速度较低;后一种方式是由DMA控制器直接实现外设和存储器之间的数据传输,它不通过CPU,传输速度较高。因此在高速数据传输系统中,常常利用DMA方式来实现计算机与外设间的数据传输。

  由于个人计算机中的PCI总线具有总线主设备支持的特点(总线主设备支持的特点就是全面支持PCI总线主设备,允许同级PCI总线访问和通过PCI—PCI与扩展总线桥访问主存储器和扩展总线设备,并且,PCI主设备能够访问驻留于总线级别较低的另一个PCI总线上的目标)。所以,可以有两种途径来实现DMA传输,其一是利用计算机内部的DMA控制器;其二是利用具有总线主控功能的PCI接口芯片。由于后一种途径不占用计算机系统的DMA通道,节省了计算机的资源,因此,使用较多。

  具有总线主控功能的PCI接口芯片主要有两种类型:一是可嵌入IP核的可编程逻辑器件,如Xilinx公司的Sparten系列等;二是专用的PCI桥接芯片,如PLX公司的PCI9054、AMCC公司的S5935等产品。前者设计较为灵活,但是要求开发者对PCI规范有较深入的理解,开发周期较长;后者设计较为简单,开发者只要正确配置接口芯片的配置空间,注意引脚的电气连接规范,就可以正确使用,开发周期较短。本文以专用PCI接口芯片——S5935为例,介绍其作为PCI总线主设备时如何实现DMA传输。

  2AMCCS5935芯片

  S5935是AMCC公司S59XX系列接口芯片中的一种,该芯片功能强大,可用于高速数据采集卡、视频加速卡、多媒体通信等。它既可作PCI总线主设备,也可作PCI总线从设备,应用较为广泛。它有三种工作方式:MAILBOX(邮箱)工作方式、PASS-THRU(直通)工作方式、FIFO(先进先出)工作方式。其中前两种工作方式只能是S5935作为PCI总线从设备时的工作方式,FIFO工作方式可以是S5935作为PCI总线主设备时的工作方式,也可以是S5935作为PCI总线从设备时的工作方式。

  S5935的结构如图1所示,它有三个接口:PCI总线接口、本地端接口和非易失性存储

  图1S5935结构框图

  器接口。PCI接口用来实现计算机与S5935间的数据、地址、命令等的传输。本地端接口用来实现S5935与外部存储器间的数据传输以及与外部控制逻辑电路间的地址、命令等的传输。非易失性存储器接口有两种类型,它既可以与串行nvRAM相连,也可以与字节nvRAM相连,实现S5935头部空间的配置。

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

  3S5935的DMA控制器特性

  S5935的FIFO工作方式可以工作在总线主控模式下,此时S5935相当于一个带有数据缓冲区的DMA控制器,可以在不占用计算机系统的DMA通道的情况下,进行DMA传输。其内部结构如图2所示,它有两个单向FIFO:一个FIFO的数据传输方向是从PCI总线到本地总线,另一个用于本地总线到PCI总线的数据传输,每个FIFO的大小为8&mes;32bit;还有两个地址寄存器和两个数据寄存器,分别用于存储DMA传输的首地址和传输所需的字节数。S5935的DMA传输可以设置为由本地总线发起,也可以由PCI总线发起的,它是在初始化时,通过设置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/BE[3:0]#发送读/写控制信号,例如:发送的是0110,则为内部存储器读,发送的是0111,就为内部存储器写。

  为了决定所传送的字节数,并且判断DMA传送是否结束,S5935利用MWTC(或MRTC)存储需要传输的字节数,每传送1个字节,字节计数器的值便自动减1,减为0时,则DMA过程结束。

声明: 本文转载自其它媒体或授权刊载,目的在于信息传递,并不代表本站赞同其观点和对其真实性负责,如有新闻稿件和图片作品的内容、版权以及其它问题的,请联系我们及时删除。(联系我们,邮箱:evan.li@aspencore.com )
0
评论
  • 相关技术文库
  • 硬件
  • 原理图
  • 信号完整性
  • EMI
  • 继电器驱动保护电路设计

    在开始选择继电器驱动的时候,习惯性选择现有的集成芯片,比如NUD3126和NUD3124,没有仔细想过为什么要选用它们,是否可以选择分立的三极管或者达林顿管。这

    5小时前
  • LED白光照明模组驱动电路设计方案

    由于当前温室效应和能源危机的影响,使得人们对节能技术越来越关注。LED照明具有节能、寿命长等优点,LED照明技术作为新型绿色照明技术,目前的应用日趋广泛。LED

    5小时前
  • 德州仪器SATA转接驱动器SN75LVCP601

    日前,德州仪器(TI)宣布推出一款在目前可用6Gbps转接驱动器/均衡器中具有最低工作功耗与最低自动低功耗(ALP)模式的双通道单信道SATA转接驱动器及信号调

    5小时前
  • USB 3.0界面保护电路设计方案

    针对USB-IF对USB3.0的重大更新规格中,USB3.0界面升级,除了多数业者都相当关心的传输效能增进方面,其实USB3.0因应相关设备的充电与驱动需求,所

    5小时前
  • 数字示波器的信号保真度探析

    前言 现代电子设计面临越来越多的挑战。在数字领域,电路的集成规模越来越大,IO数量越来越多,单板互连密度不断加大;同时芯片内和芯片外时钟速率越来越高,信号边沿越来越快;新技术不断出现,如:PCI Express,Serial ATA,1394B,Fibre Channel,Rapid IO,XAUI,5G~6.25G高速背板等,这样系统和板级的高速问题,信号完整性问题,电磁兼容问题更加突出。在射频...

    5小时前
  • S参数应用技巧-正确分配端口号

    元器件通过互连线组建成电路,常见的互连线包括电缆、PCB走线、接插件、芯片封装等等。当信号频率比较低时,这些互连线对信号是透明的。当互连线的物理尺寸大于1 / 4信号波长时,它对信号的反射和相位时延已不能忽略,需要将其视为传输线(Transmission Line)。S参数是描述传输线电气特性的理想模型,已成为射频领域、信号完整性领域的事实标准。S参数可以由仿真软件产生,也可以由仪器对实物测量得到...

    5小时前
  • 推挽电路为什么不选上P下N型

    在做信号控制以及驱动时,为了加快控制速度,经常要使用推挽电路。推挽电路可以由两种结构组成:分别是上P下N,以

    12小时前
  • USB2.O接口电路与红外传输技术结合实现测试仪与PC机之间的数据传输

    1引言随着测试技术和无线通信技术的发展和应用,测试仪器向微型化、低功耗发展,红外数据传输成本低廉,简单易用,在很多小型设备中得到广泛应用。为避免接口插拔造成仪器

    昨天
  • 实用性光纤LED驱动电路的设计及原理

    我们在研制一个阵列信号处理系统中,由于阵列天线必须放置于四周开阔地带,而阵列信号处理单元位于圆形陈列天线中央位置,这就需要在阵列信号处理单元与位于1~2km以外

    昨天
  • 使用CMOS集成电路应注意的5个问题

    集成电路按晶体管的性质分为TTL和CMOS两大类,TTL以速度见长,CMOS以功耗低而著称,其中CMOS电路以其优良的特性成为目前应用最广泛的集成电路。有初学者

    昨天
  • 触控 MCU 和 触控 IC的各自优点

    推介触控MCU给客户时,经常会有这样的反馈:我们曾使用触控IC,简单易用。那么,触控MCU和触控IC究竟哪个是正确的选择呢?单纯从它们的自身功能特点而言,无法断

    前天
  • 智能联网设备需要复杂的时钟树

    GrahamMostynMicrochip时序和通信部应用工程经理几乎每个电子器件都需要一个时钟源。例如,单片机(MCU)使用振荡器来前进到下一条指令,无线电需

    前天
下载排行榜
更多
广告