《基于FPGA+PCI数据采集存储硬件设计方案详解.docx》由会员分享,可在线阅读,更多相关《基于FPGA+PCI数据采集存储硬件设计方案详解.docx(10页珍藏版)》请在第一文库网上搜索。
1、基于FPGA+PCI数据采集存储硬件设计方案详解针对双天线干涉SAR基线测量系统数据量大、实时性要求高和体积小的特点,设计并实现了一种基于皿+PCI的实时数据采集存储系统。系统基于PCI总线技术,采用FPGA和大容量技RAM对采集数据进行控制和缓存,利用多个硬盘组成的磁盘阵列进行实时存储,实现了CCD相机和激光测距仪与PC1总线间的高速数据实时传输。对系统进行了功能和性能测试,测试结果表明,系统数据吞吐量大,实时性强,性能稳定,能够有效地满足基线测量系统的需求。双天线干涉合成孔径雷达系统可以获取地面目标的高程信息,具有全天候、全天时工作、测绘范围广、分辨率高等优点。干涉测量一般采用单轨双天线或
2、重复轨道单天线系统,对于单轨双天线系统,其交轨干涉基线越长、越精确,获取的高程精度越高。一般干涉基线长度大于4m时,基线呈柔性结构而不能保持稳定基线,由于柔性基线结构出现的变形和抖动,会造成2个天线的相对位置和姿态动态变化,并最终严重影响高程精度。采用CCD相机和激光测距仪的组合基线测量系统能够实现对2个天线的位置和姿态变化进行精密动态测量,CCD相机对布设在天线上皿标志点进行高速跟踪拍摄,激光测距仪同步测量平台与合作目标之间的距离。这使得柔性基线测量系统具有输出数据量大、处理篁法复杂、计算量大、处理实时性要求高等特点,本文针对柔性基线测量系统的需求,提出一种基于FPGA+PCT的数据实时采集
3、与高速存储的解决方案,进行了硬件关键功能设计与实现。系统采用FPGA进行核心逻辑控制,对CCD相机和激光测距仪的数据进行同步采集控制,整理、利用外部大容量的SDRAM组进行缓存,采用专用的PC1接口芯片P1X9656,实现了2个传感暹数据与PC1总线数据的高速传输,利用多个皿硬盘构成的大容量的磁盘阵列进行实时存储。并对该数据采集存储系统进行了功能和性能测试,实测数据表明本文设计的系统能够有效解决柔性基线测量系统数据高速采集,大容量数据传输的难题。1系统组成及工作原理1.1主要功能和技术指标在柔性基线测量系统中,为了精确实时测量柔性基线的抖动和2个天线相对姿态的变化,需要选择高帧频、大面阵的CC
4、D相机和皿度的激光测距仪进行组合测量,这样会产生大量高速的图像数据和激光测距仪输出的距离数据。因此本文设计的高速采集存储系统主要功能是控制各测量传感器之间的时间同步,完成各传感器数据的实时采集,并对采集的数据进行分流。一路数据进行高速存储;另一路数据输出至另外的实时处理系统中。根据柔性基线测量系统的要求,本文系统应该能够实时采集和存储2个传感器测量数据,需要达到的技术指标主要包括持续采集速度、持续存储速度和最小存储容量等。系统中CCD相机采用SVS-VISTEK公司生产的一款高分辨率、高帧频的面阵数字相机,图像的分辨率为1608列X1208行,相机帧频最高为30Hz.该相机数据AD采样为10位
5、,数据采集只取高8位,则CCD相机每秒产生的数据量约为55.57MB.激光测距仪采用的是德国公司生产的比氏-0040-2激光测距仪,测量速率最高可达50Hz,数据接口采用的是以422接口,产生的数据量为9.6KB/s.2个传感器每秒的数据量约为56MB/s,则采集系统的持续采集速度必须大于56MB/s,才能对2个传感器数据进行实时采集。只有当持续存储速率大于采集速度时,才能够把数据实时准确的存储数据。所以持续存储速度要大于56MB/s,SATA硬盘理论读写速度最大可达150MB/s,利用多个SATA硬盘组成RAID阵列,可以提供比单个硬盘更高的存储性能。根据柔性基线测量系统的需求,该采集存储系
6、统的持续工作时间最长约为2h,则需要的最小的存储容量约为390.76GB.根据上述数据采集系统的需求分析,并考虑到系统的可扩展性以及数据实际传输、终端处理的需要,要求数据采集记录速度要达到70MB/s,持续写盘阵速度要达到120MB/s,存储容量要求达到2TB.对于32bit/33MHz的PC1总线,实际使用中一般能达到80MB/s,数据进出系统内存都要经过PC1总线,会导致总线的效率降低一半。而系统的采集速度必须大于56MB/s,所以选择64bit/66MHZ的PC1总线,数据传输的峰值速度可以达到528MB/s,现有系统表明64bit/66MHZ的PC1总线实际传输的速度能达到200MB/
7、S以上,所以该PC1总线的传输速度完全能满足系统需求。1. 2系统组成和整体方案整个系统主要由CCD相机、激光测距仪,PCI数据采集卡,SATA磁盘阵列和计算机组成。其中PC1图像采集卡主要由传感器数据接口、FPGA逻辑控制芯片、高速缓存、PCI接口芯片组成。本文提出一种基于FPGA+PCI的数据采集存储系统的解决方案,该方案的原理如下:首先由主机端发送命令对CCD相机和激光测距仪进行配置,配置完成后启动采集,CCD相机输出的高速图像数据、同步控制信号一起送到FPGA中,在FPGA中进行缓存,激光测距仪的数据通过串口也送入到FPGA的双口RAM中进行缓存,FIFO半满后在FPGA的控制下把CC
8、D相机和激光测距仪数据进行分流,其中一路送到外部的SDRAM组中进行缓存,SDRAM存储到设定图像帧数后给PC1发送中断,主机响应中断,从SDRAM中把数据读到内存中进行处理,并同时向硬盘中写数据完成实时存储;号一路送到相关的实时处理系统中进行处理。整个设计方案的框图如图1所JO图1数据实时采集与存储系统设计方案框图应用于柔性基线测量系统的数据实时,采集存储系统的设计包括以下几个方面的关键技术:Camera1ink接口技术、多传感器同步技术、多传感器数据的实时采集与高速缓存和多传感器数据的实时存储。2数据实时采集存储系统关键设计与实现下面对本系统中的几个关键技术具体实现的设计方案进行详细阐述。
9、2. 1数据采集接口设计实验相机采用Camera1ink标准接口,基本配置采用标准的MDR26连接器输出。本系统采用FPGA作为采集卡的主控芯片,FPGA支持的I/O标准为1VCMOS/1VTT1信号。因此本系统对于Camera1ink接口的设计方案为:通过DS90CR288A接收器将4路相机数据1VDS信号和1路相机时钟1VDS信号转换成28位TT1数据,输出24位图像信号、图像同步信号和像素时钟信号Strobe.DS90CR288A的主要功能是完成1VDS到H1电平信号的转换和串行信号转成并行信号。为了对相机进行参数设置和触发控制,需要将FPGA输出的相机控制信号(CC1-CC4)和信号S
10、erTC(seria1-to-camera)通过电平转换芯片DS901V047转换成1VDS信号送入接收器中。为了接收相机向采集卡发送的应答信号SerTFG(seria1-to-frame-grabber),采用DS901V048把该1VDS信号转换成TT1信号后送入FPGA中,并送入主机端进行显示。2.2PCI接口设计由1.1节指标论证结果可知,本系统采用64bit/66MHz的Pe1总线来实现数据的高速传输。PCI接口是PC1总线与外部总线的通信接U,以实现二者的通信。目前常用的PC1接口的方案是采用专用的PC1总线接口芯片,无需掌握复杂的PC1总线协议,设计简单,能够减少开发周期和成本。
11、本系统中采用P1X9656来进行高速PC1卡的设计,以实现设置相机参数、设置激光测距参数、设置采样参数、读取图像数据等功能。P1X9656是目前性能最高的PCI接口控制器,具有PC1端66MHz64bits,1OCA1端66MHz、32bits的性能,符合PC1V2.2规范。本系统中PC1接口设计的重点是P1X9656本地总线工作方式和数据传输模式的设置与实现。P1X9656的本地总线可以设置成3种模式:M模式、C模式和J模式。根据本系统的特点,选择C模式,可以通过把MODEI和MoDEO引脚拉低来实现C模式的工作方式。在C模式下,数据传输方式分为主模式操作、从模式操作和如操作。采用DMA工作
12、方式,能在不需要干预的条件下,实现高数外设和存储器间的快速传输,因此比较适合CCD相机数据和激光测距仪数据的传输,DMA传输方式的实现可以通过对P1X9656的内部寄存器的DMAMODEO/1,PCKR置位来实现。2.3FPGA核心逻辑控制基于FPGA的时序逻辑控制模块是本系统的核心设计,能够实现对相机和激光测距仪的模式设置、相机和激光测距仪的数据同步控制、多个传感器数据的缓存与整理,对外部高速缓存的控制以及与P1X9656的通信。系统采用A1tera公司的StraIiXH系列EP2S60F1020器件,配置芯片选用EPCI6.1)传感器触发设置本设计中,2个传感器的工作模式通过主机端进行设置
13、,通过PC1总线将模式设置字符串传到FPGA中,通过串口场避实现与相机和激光测距仪的通信,从而完成对相机和激光测距仪的配置。且相机和激光测距仪收到配置命令后也通过串口控制器把应答信息传到FPGA中,再通过PC1总线传到主机上。为了实现与激光测距仪的同步控制,相机选择软件外触发模式,此模式下需要在FPGA内产生一个频率为20Hz的EXSYNC触发信号送给CCD相机进行曝光读取数据,EXSYNC的低电平宽度为10s,相机的曝光时间由主机端进行参数设置。2)数据同步控制把EXSYNC触发信号同时送给激光测距仪和相机,来实现2个传感器的输出同步。因为2个传感器的测量速度不同,相机的输出帧频为20帧/s
14、,激光测距仪的输出频率为50Hz,所以数据同步的设计关键在于如何记录同时刻的单帧图像数据和激光测距仪数据,2个传感器同步采集的时序关系图如图2(a)所示,C1K100Hz是取2个频率的最小公倍数,可以根据FPGA的内部资源使用情况来设定,Data_1rf_se1为选择的激光数据,其中I表示该时刻的数据无效,V表示该时刻的数据有效。数据同步方案为相机数据进入FPGA后,在2个双口RAM中进行整理缓存,激光测距仪经过串口接收器把数据传入FPGA内,本设计的串口接收器带有F1FO缓存,数据经过缓存后接送入双口RAM中进行进一步缓存;按照图2(a)所示的时序关系图生成双口RAM的写使能WEN信号,WE
15、N信号有效时把此时刻的激光数据写入双口RAM中;当读使能信号有效时,首先从双口RAM中的激光测距仪数据到FIFO中,接着读取相应帧的图像数据到FIFO中;FIFO半满后,激光测距仪数据和相机数据一起送到外部的SDRAM中进行进一步缓存,仿真时序图如图2(b)所示。由图2的仿真结果可知,本文同步设计方案能够有效地减少2个传感器之间的延时,采集2个传感器的相对同步数据。虽然不是严格意义上的同步,但已能满足柔性基线测量系统的需求。图2CCD相机和激光测距仪同步采集设计及仿真时序图3)数据缓存与整理本系统中采用的缓存方案为首先把图像数据、控制信号进行3级锁存,因为实验相机输出的图像数据为2个TAP的数
16、据,分别把2个TAP的数据送入FPGA内部的2个双口RAM中进行缓存,左边TAP的数据按照顺序地址存储,右边TAP的数据按照逆序地址存储,从而将2个TAP的数据拼接成完整的图像。当使能信号有效时,把2个双口RAM的数据送入到FIFO中进一步缓存,当FIFo数据半满后,把F1FO的数据通过SDRAM接口控制器送入到外部的SDRAM存储器中去。4)PCI逻辑接口本系统通过PC1本地逻辑接口来完成FPGA与P1X9656的通信。系统加电启动后,P1X9后6的内部寄存器由PC1总线的RST#信号复位;同时P1X9656输出局部复位信号1RESET,并检查EEP驷是否存在。如果采用本地端DMA方式控制,则整个握手过程如下:首先当SDRAM缓存中的数据达到设定值后,1INTI#信号有效,P1X9656向主机端发送中断请求信号;若CPU响应中断,则在中断相应程序内发出DMA读命令、要读的字节数和地址信息等。P1X9656申请本地总线,使1HO1D信号有效。FPGA