摘要:针对图像处理中数据采集与处理的现状,介绍了基于DSP和PCI控制器的高速数据的实时采集、存储和处理的方法,并分别对电路原理图的硬件设计和PCI接口的软件设计做了阐述。该系统主要采用了DSP芯片来实现各种数字信号处理的算法程序,PCI总线控制器来实现PCI总线接口,以及CPLD作为控制DSP与PCI之间能够正常进行数据传输的枢纽,从而实现了数据的高速、高处理,为图像采集与处理提供了新的方法。
1 引言
随着计算机技术的发展与成熟,数字图像处理成为一个迅速发展的学科。由于图像处理 的数据庞大,必须保证在规定时间内有足够的传输速率和存储容量,高速数据的传输与存储 往往会形成现代数据处理系统中的技术瓶颈。数字信号处理器能高速的处理数据并且具有强 大的数字吞吐能力,因此在数字采集处理领域有着广泛的应用。而PCI总线也因为极高的数 据传输速率、独立于存储器以及能支持多个外设逐渐成为数据采集领域中的主流微机总线。 由于PCI总线协议的复杂性,其接口电路实现起来并不容易。但采用通用PCI接口芯片却能 达到事半功倍的效果。本文介绍了基于DSP芯片和PCI总线控制芯片搭建的高速数据采集与 处理系统的硬件设计和软件设计。
2 高速数据采集系统硬件设计
2. 1 数据采集处理系统的主要指标
1)该系统能够完成超高速数据采集、实时数据处理和板上大容量数据存储;
2)系统采样频率达到400MSPS;
3)板上DSP负责数据预处理,如FFT,FIR等
4)为了实现数据的实时存储,板上需要大容量的SDRAM;
2.2 总体设计
由设计指标可知,数据采集与处理系统应由DSP芯片、PCI总线控制器、CPLD芯片、外 部存储芯片和外部FIFO芯片等组成。图2.1给出了系统的结构框图。
图2.1 高速数据采集处理系统的结构示意图
该系统分为三大模块,数据采集与处理模块、PCI总线接口模块和CPLD控制模块。下面分别进行介绍。
2.3 数据采集处理模块
数据采集模块包括 DSP 芯片、同步动态随机存取存储器(SDRAM)、Flash 程序存储器 和外部FIFO。DSP 芯片是一款32 位的浮点芯片TMS320C6701,其功能是进行数据采集, 包括从串口进来的同步串行数据和从PCI 总线传来的32 位并行数据;另外它还可以对采集 到的数据进行简单的处理。DSP 芯片主要涉及到三种主要类型的存储器外部FIFO、SDRAM 与FLASH 接口问题,这些都是通过DSP 的外围存储器接口EMIF 来实现的。其中FIFO 用 于与PCI 接口控制器S5933 缓冲采集到的图像数据;外部存储器SDRAM 存储图像数据, 并在图像处理过程中存储必要的数据;系统设计中选择闪存FLASH,用来装载引导程序和 图象处理主程序。图2.2 给出了DSP 芯片的EMIF(External Memory Interface)分别与FIFO、 SDRAM 和FLASH 的接口框图。
2.3.1 DSP 与FIFO 接口部分硬件设计
图 2.2 给出了DSP 芯片的EMIF(External Memory Interface)与两片触发式FIFO 的接 口框图。图中的触发式FIFO 宽度为16bit,通过两片FIFO 扩展使得数据总线为32bit。系统 采用TI 公司的触发式FIFO SN74ALVC7804,DSP 将32 位并行信号传送到FIFO 的输入端, 当SN74ALVC7804 半满时,其半满信号/AF 用于通知TMS320C6701 FIFO 的数据已经装满 一半,产生中断INT6,S5933 可以开始读取数据,这一中断由CPLD 来实现。
2.3.2 DSP芯片的数据存储器的接口部分硬件设计
系统采取SDRAM来实现图像实时图像数据存储,由于本系统目前的图像数据为16bit RGB格式。所以系统采取总线宽度为16bit的SDRAM,但是由于DSP芯片TMS320C6701的数 据总线宽度为32位,所以要采用两片SDRAM扩展。根据以上所述,系统SDRAM选用了两 片容量为4Mb的HY57V641620。其存储格式为4BANKSx1Mx16bit,足够系统使用。EMIF与 HY57V641620的扩展接口框图见图2.2所示:
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的扩展也很灵活,可满足不同用户的需求。本系统可以进行高速稳定的数据采集和处理,以用于图像采集处理平台进行检测,为后 续信号的分析和处理提供了有效的数据。
免责声明: 凡注明来源本网的所有作品,均为本网合法拥有版权或有权使用的作品,欢迎转载,注明出处。非本网作品均来自互联网,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。