- 易迪拓培训,专注于微波、射频、天线设计工程师的培养
一种高速PCI数据采集处理系统的设计与实现
2.3.3 DSP与FLASH接口部分硬件设计
本系统的FLASH采用两片SST39VF160来存取数据处理的程序。容量为1Mx16bit,两片正 好是32bit。FLASH与EMIF的接口如图2.2所示。
2.4 PCI 总线接口模块设计
AMCCS5933是32位、33MHz的通用PCI总线控制器芯片,它符合PCI总线规范2.2版本, 即可作为PCI从设备,又可作为PCI主设备。可为设计者提供三种数据传输方式:PASS THRU、 FIFO和MAILBOX方式。它通过驱动程序对总线控制寄存器设置来控制总线操作和数据传 输,在本系统中起一个桥路作用。S5933提供了PCI总线,EEPROM和Add-On总线三个接口, 设计也主要是分为三块进行设计的。图2.3给出了S5933与PCI总线、EEPROM和ADD-ON总 线的接口。
2.4.1 S5933 与PCI 总线的接口设计
S5933 与PCI 总线的接口非常简单,只要将芯片的信号线与PCI 插槽的相应信号线相互 连接就可以了,见图2.3 所示。
2.4.2 S5933的ADD-ON总线接口
这部分是S5933与外部FIFO和复杂编程逻辑器件CPLD的连接。由于本系统中,PCI总线 的数据传输速度一般能够达到33.3Mb/s,而DSP在不同的应用场合下作不同的处理或运算时 所用的时间是不同的,所以S5933和DSP之间的数据传递采用异步通信方式。既相互间把数 据首先传递到外部的大FIFO中,然后等待对方准备好将其读走,再传送下次数据。CPLD芯 片是DSP和PCI之间能够进行正常数据传输的枢纽,其功能是控制二者之间的读写时序,以 保证不丢失数据和不采集到错误的数据。S5933与ADD-ON总线的接口见图2.3。
2.4.3 S5933NVRAM接口设计
这部分是与 EEPROM 的连线,由并联与串联两种方式。由于S5933 的许多信号都是复 用的,为了节约信号引脚,这里采用串行EEPROM 与S5933 连接。串行EEPROM 的数据可以提前烧好,也可以在线烧写。本设计中选用的EEPROM 为24C16 芯片,24C16 芯片是 一个8K 低电压串行电可擦除存储器,它使用的三根信号线分别为数据输入线SI、数据输出 线SO 和时钟信号线SCK。S5933 相应的串行引脚为串行地址/数据信号SDA、串行时钟信 号SCL 和串行非易失性设备信号SNV。S5933 与EEPROM 的接口如图2.3 所示.
2.5 CPLD 的设计
CPLD芯片是DSP 和PCI 之间能够正常进行数据传输的枢纽。本系统采用 EPM712S8QC100-10作为来完成整个系统的逻辑控制的核心芯片。EPM7128SQC100-10片内 有128个宏单元,2500个等效门,最大工作频率为l00MHz。它一共有100个引脚,其中包括 两个全局时钟、一个全局复位以及76个1/O接口,完全满足完成系统逻辑控制的需要。
CPLD 工作流程如下:接收数据时,C6701 的32 位的并行信号传送到FIFO 的输入端。 当FIFO 的半满信号有效时,CPLD 逻辑控制芯片检查PCI 总线控制器AMCCS5933 是否准 备好。如果准备好,则CPLD 控制逻辑向FIFO 发出准备好信号,同时使FIFO 的读写使能 信号REN 和WEN 有效。数据写入S5933 内部缓存的过程中,如果出现WRFULL 变高,即 内部FIFO 满时,则向C6701 发出中断请求,DSP 监测到中断信号后,转入等待状态,直到 应用程序将数据读走。发送数据时,S5933 读取PCI 总线传送来的32 位数据到内部FIFO 中。 C6701 判断AMCCS5933 内部FIFO 的状态,如果为空则等待,否则,向CPLD 发出准备好 信号。同时使FIFO 的读写使能信号REN 和WEN 有效,在外部时钟的控制下将数据读入到 SDRAM 中,并发送出去。
3 高速数据采集系统的软件设计
PCI数据采集处理系统的一个关键问题是驱动程序的开发。设备驱动程序的开发。设备 驱动程序提供连接到PCI 板卡的软件接口文件扩展名为.SYS 的动态链接库。在 WINDOWS2000中,设备驱动程序必须根据WINDOWS驱动程序模型(WDM)设计。
当应用程序请求从采集卡读数据时,内核I/O管理器将此请求打包成一个IRQ(I/O请求 包),并调用驱动程序的读例程。如果设备不忙,就启动DMA传输,否则将此IRQ加入IRQ 队列中。启动设备DMA读时,先用数据传输的存储地址和数据长度设置写地址寄存器 (MWAR)和写传送计数寄存器(MWTC),再设置中断控制状态寄存器(INTSR)使 DMA完成时能触发中断,最后设置控制/状态寄存器(MCSR)来启动DMA读。当DMA传 输完成时,采集卡产生中断,I/O管理器调用中断服务例程和DpcForIsr完成此IRQ,并从IRQ 队列中取出下一个IRQ,启动下一次DMA。下一次中断发生时做同样的处理。这样不断 进行DMA传输,直到IRQ队列空为止。
设备驱动程序的关键是如何完成硬件操作,其基本功能是完成设备的初始化、对端口读 写操作、中断设置和响应、中断调用以及对内存的直接读写。设计数据采集软件的时候要考 虑到数据的高速实时、稳定传输、要综合考虑主机主板及硬盘的性能,尽量减少数据接受时 使用的线程,从而使CPU可以全速用于数据的接收。
4 结束语
高速数据采集处理系统对采集数据的缓冲存储及其传输处理提出了较高的要求,计算机 的外设与主机之间的数据传输是主要的瓶颈问题。
本文运用DSP和PCI总线控制器设计的高速数据采集处理系统,采样频率达到400MSPS, 具有很高的可靠性和稳定性。所采用的芯片在设计时都留有足够的容量,可以充分利用PCI 总线的传输速率和CPLD作为系统的逻辑控制,通过软件编程来设置并实现更高的采样频率。 另外,本系统具有一定的缓冲容量,对于外部FIFO的扩展也很灵活,可满足不同用户的需求。本系统可以进行高速稳定的数据采集和处理,以用于图像采集处理平台进行检测,为后 续信号的分析和处理提供了精确有效的数据。
来源:维库开发网