一种四通道大容量波形存储系统及其构建方法

文档序号:6297734阅读:293来源:国知局
一种四通道大容量波形存储系统及其构建方法
【专利摘要】一种四通道大容量波形存储系统,它包括:FPGA核心芯片、FPGA核心芯片最小外围电路、ADC采样芯片、Flash阵列、网口电路和电源芯片;电源芯片中的9A、9B、9C、9D将5V电源电压分别转换为3.3V、1.8V、1.0V、2.5V电压供给其它模块使用,正常上电后FPGA核心芯片控制4路ADC采样芯片从外部输入接口采集波形数据,并将数据传输至Flash阵列;存储结束后,FPGA核心芯片控制网口电路并将Flash阵列中的数据通过网口传输至上位机;所有控制指令均由上位机通过网络接口传输至FPGA核心芯片。一种四通道大容量波形存储系统的构建方法包括七个步骤。本发明可完整实现多路波形数据同时采集的功能,实现简单;逻辑功能均由VHDL硬件描述语言编写,易于修改;体积较小,便于应用于多种系统。
【专利说明】一种四通道大容量波形存储系统及其构建方法
【技术领域】
[0001]本发明涉及一种四通道大容量波形存储系统及其构建方法,它是基于Xilinx公司FPGA的硬件实现和软件调试,属于数字信号处理【技术领域】。
【背景技术】
[0002]Flash是存储芯片的一种,通过特定的程序可以修改里面的数据。Flash存储器又称闪存,它结合了 Rom和Ram的长处,不仅具备电子可擦除可编程(EEPROM)的性能,还可以快速读取数据(NVRAM的优势),使数据不会因为断电而丢失。
[0003]目前Flash主要有两种NORFlash和NANDFlash。NANDFlash没有采用内存的随机读取技术,它的读取是以一次读取一块的形式来进行的,通常是一次读取512个字节,采用这种技术不能直接运行NANDFlash上的代码,因此NANDFlash的开发板除了使用NANDFlash以外,还加上了一块小的NORFlash来运行启动的代码。
[0004]Flash阵列存储技术作为高速大容量存储领域的最新发展方向,是随着半导体存储器件在固态存储系统设计的成熟应用中发展起来的。相对于传统磁盘设备,它具有极好抗震性、可靠性和耐高温高压等特点,因此具有很强的环境适应能力。近些年来,随着航空航天及军事领域对存储设备要求的提高,基于NAND Flash搭建的Flash阵列系统已成为各类重要项目中的主要数据存储方式之一。
[0005]科研项目中,很多情况下需要对信号的波形进行存储复现来分析问题,一般情况下示波器能实现要求。但是当碰到不适合人手动操作的情况时,(如狭小空间、温度过高等),使用示波器就不太适合了。这时候需要一个可以自动存储大容量数据的器件,并且断电可以保存数据,在适当的时候可以把数据导出并把波形复现,从而分析解决相应问题。另外,分析波形很多时候需要同时与参考信号对比,类似于示波器中的多路显示,因此要求器件还要具备多路同步采集功能。
[0006]针对上面提到的情况以及现实中的需求,本发明人设计了一种四通道大容量波形存储系统硬件及其资源优化方案,可以实现对多通道数据同时采集并断电保存等功能。该系统以FPGA为核心处理器件,外围电路出了 FPGA工作所需的最小系统电路外,有4路采集信号用的AD和I路网口芯片及其电路,所有的控制逻辑还有数据处理都在FPGA中编程实现,这种设计可以大大减少电路的复杂度,从而使系统得以小型化。此外,系统中缓存多路AD数据需要使用较多的Ram资源,本发明中应用到的资源优化方案有助于保证数据无误码及减少波形毛刺,有很好的借鉴意义。

【发明内容】

[0007]1、目的:本发明的目的在于提供一种四通道大容量波形存储系统及其构建方法,它通过硬件编程语言来实现四通道大容量存储系统的硬件,同时应用Xilinx公司的开发套件ISE12.4进行软件流程设计,并应用其PlanAhead软件进行资源优化。
[0008]2、技术方案:本发明的目的通过以下技术方案来实现。[0009](I)本发明一种四通道大容量波形存储系统,包括:FPGA核心芯片、FPGA核心芯片最小外围电路、ADC(Analog Digital Coverter模数转换)采样芯片、Flash阵列、网口电路、电源芯片。它们之间的位置连接关系及信号走向是:电源芯片中的9A、9B、9C、9D将5V电源电压分别转换为3.3V、1.8V、1.0V、2.5V电压供给其它模块使用,其中FPGA核心芯片需要用到1.0V核电压和3.3V、1.8V、2.5V的管脚电压,程序加载Flash需要用3.3V电压与1.8V电压,Flash阵列需要3.3V、1.8V、2.5V电压,ADC采样芯片需要3.3V电压,网卡芯片需要1.0V、2.5V电压;正常上电后FPGA核心芯片控制4路ADC采样芯片从外部输入接口采集波形数据,并将数据传输至Flash阵列;存储结束后,FPGA核心芯片控制网口电路并将Flash阵列中的数据通过网口传输至上位机;所有控制指令均由上位机通过网络接口传输至FPGA核心芯片。它们之间的位置连接关系及信号走向如图13所示。
[0010]该FPGA核心芯片是:Virtex-5 XC5VLX330T,它为本发明的核心处理器,其功能是为整个系统实现数字逻辑功能。Xilinx公司的Virtex-5 XC5VLX330T芯片主要逻辑资源情况如下:207360个逻辑单元(Slice Flip Flops) ;324个存储单元(Block Rams);960个IO管脚;12个时钟管理单元(DCMs),可以满足较复杂数字逻辑电路设计要求。本发明中,Virtex-5 XC5VLX330T芯片为核心处理器,实现包括控制ADC芯片、Flash阵列、网口芯片等正常工作的功能。FPGA核心芯片由电源芯片提供1.0V核心电压和2.5V、3.3V、1.8V管脚电压。
[0011 ] 该FPGA核心芯片最小外围电路是:由FPGA核心芯片、时钟源和程序加载Flash组成,时钟源为FPGA核心芯片提供正常工作所需的时钟信号;由于FPGA核心芯片实在断电之后程序自动被清除的,所以必须将程序代码固化到一个程序加载Flash中,每次上电后,程序加载Flash中的程序自动加载到FPGA核心芯片中以使其正常工作。由于FPGA核心芯片每次上电都要重新加载一次程序,所以要将程序代码固化到程序加载Flash阵列中。FPGA核心芯片最小外围电路可以保证FPGA核心芯片正常工作并实现基本的数字逻辑功能。
[0012]该ADC采样芯片是:ADS5463,负责对外部信号进行低通采样,即把模拟信号转换为数字信号,ADC采样芯片将采样得到的数字信号直接传送给FPGA核心芯片,再由FPGA核心芯片经过乒乓、拼位等处理传输至Flash阵列。本发明中应用了 4片ADC采样芯片ADS5463,实现4路AD同时采集。每一片ADC采样芯片由电源芯片提供3.3V电压。
[0013]该Flash阵列是:单元为MT29F32G08AECBB芯片,一片的容量为4Gbytes,由8片MT29F32G08AECBB组成一个阵列,本发明中一共有4个Flash阵列,即32片MT29F32G08AECBB芯片,共4*32Gbytes=128Gbytes存储空间,其功能为存储从FPGA核心芯片传送过来的波形数据,并掉电保存。其中每一组Flash阵列对应一路AD,即每一路AD最大存储容量为32Gbytes,当存储空间满时根据需求覆盖或停止存储。Flash阵列每片芯片由电源芯片提供1.8V电压和2.5V电压。
[0014]该网口电路是:以88E1111网卡芯片为核心组成,88E1111是Marvell公司的一款千兆网芯片,可以实现网络数据包的转换。本发明中88E1111由FPGA通过GMII接口控制,由电源芯片提供1.0V电压和2.5V电压。其功能为实现FPGA核心芯片与上层PC端通过千兆网口连接,可以达到上传波形数据和下发命令等目的。
[0015]该电源芯片是LM1085和LM1117,它们提供整个系统工作所需的电压。外界给系统输入+ 5V的电压,通过电源芯片将+ 5V的电压转换成系统所需要的+ 3.3V、+ 1.8V、+1.5V,来分别提供给FPGA核心芯片(+ 3.3V、+ 1.5V)、程序加载Flash ( + 3.3V、+ 1.8V)、时钟提供源(+ 3.3V)、ADC采样芯片(+ 3.3V)、Flash阵列(+ 3.3V、+ 1.8V)、网口芯片(1.8V)。
[0016]本发明一种四通道大容量波形存储系统,工况概述如下:
[0017]正常上电,设备自动进行查找最新位置操作;查找最新位置过程自动跳过坏块地址;查找最新位置结束后,进入Idle状态,等待命令;输入端波形数据触发系统采集数据命令,开始连续采集波形;断电结束数据采集;重新上电,与PC端网络驱动通过千兆网六类线连接;通过PC端控制软件发送命令,系统接收到读取数据命令,开始读取数据;将数据从系统Flash阵列通过网络连接传输至PC端,并在PC端控制软件与界面显示波形图像;PC端发送结束命令,读取数据过程结束;断电结束。该系统包含四通道,每个通道都可按上述步骤正常工作,相互独立。在设计过程中,应用了 PlanAhead进行了资源优化,确保了波形无失真。系统结构如图1所示。
[0018](2)本发明一种四通道大容量波形存储系统的构建方法:该方法包括下述几个步骤:
[0019]步骤一:FPGA核心芯片对Flash阵列进行读取操作,记录Flash阵列坏块地址;
[0020]平均每一片Flash芯片会有1-2个坏块。Flash阵列坏块的特点是无法对这一地址进行读取或写入操作,无论用写入逻辑写进去什么数据,用读取逻辑都只能读到全“O”。坏块的存在会影响正常数据的读写,因此要提前将坏块的数目和地址找出来并记录。记录Flash阵列坏块原理图如图2所示。
[0021]查找坏块的方法是:上电后,用擦写逻辑将Flash阵列所有块地址都擦写一遍,擦除后的Flash数据应全为“ I ”,再用读取逻辑按地址顺序逐个读取。假如没有坏块,则全部读取到的数据均为“ I ” ;将读取到不为全“ I ”的地址记录下来保存到Flash阵列的其他地方,作为坏块地址。坏块地址作为一个集合,此后进行读写操作时均跳过该集合中的所有地址。
[0022]步骤二:FPGA核心芯片对Flash阵列进行读取/写入操作,查找/记录最新位置;
[0023]查找最新位置的作用是上电时检测上次掉电写到哪一个地址,然后数据输入时即从下一个地址开始写入数据。查找最新位置的方法是按块地址搜索。
[0024]每次上电后正常工作,进入写Flash阵列数据状态时,对Flash阵列块地址进行操作,写入数据是以块地址作为最小单位的,所使用的Flash阵列芯片为MT29F32G08AECBB,每个芯片的大小为4G字节,一共有4X2048=8192个块地址,每个块地址对应512k字节容量。在写入数据时,将每一块块头的前16位容量,不写入波形数据,而写入编号信息,称为“头信息”。如第一次上电后记录波形时,头信息记为十六进制“FFFE”;第二次上电时,头信息记为十六进制的“FFFD”,如此类推。
[0025]下一次上电时,首先按块地址递增的顺序读取头信息,若后一个地址的头信息比前一个地址的头信息小,如“FFFD”小于“FFFE”,即数据并非最新,继续读取头信息;若后一个地址的头信息比前一个地址的头信息大,如“FFFF”大于“FFFD”,则第一次出现“FFFF”的那个地址就是最新位置。原因是擦除后没写过数据的地址的数据均为“I”。利用这种方法,可以找出最新位置,并从最新位置开始写下一次数据。查找最新位置原理图如图3所示。
[0026]FPGA核心芯片控制Flash阵列实现查找最新位置的流程大致如下所示。[0027]a.上电启动系统硬件;
[0028]b.读取块地址头信息并判断;
[0029]c.判断后一地址的块头信息是否比前一地址的块头信息小;
[0030]d.若后一地址的块地址头信息比前一地址的块地址头信息小,则地址加“ I ”后继续读取下一地址的头信息;
[0031]e.若后一地址的块地址头信息比前一地址的块地址头信息大,则此地址为最新位置,从改位置开始进行写入操作。
[0032]上电工作前,Flash阵列中要提前存有坏块地址,往后的读写操作包括查找最新位置等当操作地址与坏块地址相等时要跳过,否则系统不能正常工作。上电工作,先查找最新位置,确定本次上电从哪一个地址开始记录数据。查找最新位置结束后,系统处于Idle状态,Idle状态时等待两种命令,分别对应于记录数据状态和读取数据状态。
[0033]步骤三:FPGA核心芯片控制4路AD,每一路ADC采样芯片以100M时钟对外部信号进行低通采样;
[0034]采集到的数据按16位高位在前低位在后的格式存储至Flash阵列。存储过程考虑到了数据的连续性应用了乒乓原理,即第I路AD后级连接的是RamA和RamB,一开始AD的数放进RamA,当RamA放满了以后切换到RamB,这时候FPGA核心芯片从RamA读取刚采集到的数并存储至Flash阵列,当RamB满了以后又切换为RamA,如此类推,保证了采集数据的连续性。第2、3、4路AD跟第I路AD —样也采取乒乓原理。Flash阵列保存的波形数据,即使掉电也能保存。FPGA核心芯片中编写读取波形逻辑,读取的波形数据可以通过网口传输至PC机进行下一步处理。系统采集数据流程如图4所示。
[0035]步骤四:FPGA核心芯片通过GMII接口控制88E1111网卡芯片,系统通过网口与PC机相连;
[0036]步骤五:FPGA核心芯片控制波形数据通过网口传输至PC端并使用软件复现波形;
[0037]PC端界面主要有两方面的功能,一是用于与FPGA硬件进行通信,发送命令以及从中获取状态信息和数据信息,二是用于将获取的数据用于波形复现,并实现检索波形功能。复现的波形如图5所示。
[0038]大容量存储器设备与PC端通过千兆网络接口连接,利用PC端控制软件将测试数据导出,并存储于测控计算机上,便于数据分析。PC端控制端口与界面可将波形数据复现,并可进行相关操作对波形数据进行分析。
[0039]步骤六:对FPGA核心芯片内部资源进行优化,包括区域约束与时序约束;
[0040]区域约束的主要思想是将寄存器等资源规划到某一个区域中。如图10所示。
[0041]如图9所示,当没有使用区域约束时,即为自动布局的时候,由于资源分布离散,导致从Ram读出来的数据有误,从波形上来看就是波形失真。这种问题导致的波形失真甚至不容易被发现。图11是未经过区域约束的波形,波形失真有毛刺;图12是经过区域约束的波形,波形平滑,接近AD采集的波形。两个工程的VHDL文件相同,只有UCF文件添加了约束语句。图11、图12对比可以看出区域约束的效果。
[0042]步骤七:当进行时序修改时,为保证不影响其它模块的功能,需要将各模块进行固定布局操作。[0043]利用planAhead进行固定布局操作。假设在调试过程中系统的网口模块已经调试完善,而Flash模块和AD模块仍需要修改。考虑到这两个模块修改后整体的布局布线影响到网口模块,需要对网口模块的布局固定,确保其每次综合布局布线结果都一样。
[0044]使用PlanAhead进行固定布局的具体操作,关键是对网口模块归类为一个pblock,然后再PlanAhead中对该pblock点击右键,选择Fix Instances,这样网口模块的布局信息就会以代码形式保存于.ucf中,下次再进行综合时则会优先考虑到该布局信息,优先将对应资源分配给网口模块。这样可保证每次修改其它模块时也不会影响网口模块的
布局; [0045] 是: [0046]3、优点及功效:本发明一种四通道大容量波形存储系统及其构建方法,其优点I)可完整实现多路波形数据同时采集的功能,实现简单;[0047]2) Flash的特点决定了其系统可断电保存数据,对特定场合有特殊意义;[0048]3)所有逻辑功能均由VHDL硬件描述语言编写,易于修改,且可移植性强;[0049]4)体积较小,便于应用于多种系统。【专利附图】

【附图说明】[0050]图1是本发明系统结构图。[0051]图2是记录坏块地址原理图。[0052]图3是查找最新位置原理图。[0053]图4是一路波形采集流程图。[0054]图5是采集正弦波复现波形图。[0055]图6是按块地址进行写入操作时序图。[0056]图7是按页地址进行读取操作时序图。[0057]图8是按块地址进行擦除操作时序图。[0058]图9是进行区域约束前布局图。[0059]图10是进行区域约束后布局图。[0060]图11是进行资源优化前采集波形复现图。[0061]图12是进行资源优化前采集波形复现图。[0062]图13是各模块位置连接关系及信号走向图。[0063]图中符号说明如下:[0064]1、FPGA核心芯片2A、2B、2C、2D、ADC采样芯片3、网口芯片[0065]4、FPGA核心芯片中程序加载Flash 5、Flash芯片阵列[0066]6、供电接口 7A、7B、7C、7D、输入接口 8、网络接口[0067]9A、9B、9C、9D、电压转换芯片具体实施方案[0068](一)见图1,本发明一种四通道大容量波形存储系统,它包括:FPGA核心芯片、FPGA
核心芯片最小外围电路、ADC (Analog Digital Coverter模数转换)采样芯片、Flash阵列、网口电路、电源芯片。见图13,它们之间的位置连接关系及信号走向是:电源芯片9A、9B、9C、9D将5V电源电压分别转换为3.3V、1.8V、1.0V、2.5V电压供给其它模块使用,其中FPGA核心芯片需要用到1.0V核电压和3.3V、1.8V、2.5V的管脚电压,程序加载Flash需要用3.3V电压与1.8V电压,Flash阵列需要3.3V、1.8V、2.5V电压,ADC采样芯片需要3.3V电压,网卡芯片需要1.0V、2.5V电压;正常上电后FPGA核心芯片控制4路ADC采样芯片从外部输入接口采集波形数据,并将数据传输至Flash阵列;存储结束后,FPGA核心芯片控制网口电路并将Flash阵列中的数据通过网口传输至上位机;所有控制指令均由上位机通过网络接口传输至FPGA核心芯片。
[0069]该FPGA核心芯片为本发明的核心处理器,负责处理所有数据的转换。FPGA核心芯片在接收到ADC采样芯片传送来的数据后,利用FPGA核心芯片内部的Ram资源进行乒乓处理,然后通过结合擦除、写入时序操作将数据存储至Flash阵列中。应用乒乓操作时为了保证数据的连续性。同时FPGA核心芯片还需要控制网卡芯片,实现数据包收发。数据包分为波形数据和指令两种。波形数据即存储在Flash阵列中的数据转化为数据包发送至PC断;指令主要是控制FPGA核心芯片进行状态切换的操作,如:停止从ADC采样芯片获取数据命令;启动从Flash阵列读取数据指令;复位指令等。
[0070]该FPGA核心芯片最小系统外围电路,包括时钟源和程序加载Flash,它们负责辅助FPGA核心芯片完成处理功能。时钟源为FPGA核心芯片提供正常工作所需的时钟信号;由于FPGA核心芯片是在断电之后程序自动被清除的,所以必须将程序固化到一个程序加载Flash中,每次上电后,程序加载Flash中的程序到FPGA核心芯片中以使其正常工作。由于FPGA核心芯片每次上电都要重新加载一次程序,所以要将程序代码固化到程序加载Flash中。时钟源提供FPGA核心芯片工作的系统时钟,晶体振荡器产生所需要的频率直接传送给FPGA核心芯片。该晶振振荡器是一个单独的元器件,它是作为FPGA核心芯片的时钟源。
[0071]该ADC采样芯片负责对外部信号进行采样,即把模拟信号转换为数字信号,ADC采样芯片将采样得到的数字信号直接传送给FPGA核心芯片。本发明一共使用了 4片ADC采样芯片,可对4路外部信号同时进行采样操作。
[0072]该Flash阵列负责存储波形。本发明一共使用了 32片NAND Flash芯片,分为4组Flash阵列,分别对应4路ADC通道。
[0073]对Flash的基本操作分为写入数据、读取数据、擦除数据。
[0074](I)写入数据操作
[0075]用FPGA核心芯片控制Flash阵列逻辑进行写入数据操作的最小地址单位为块地址,按块地址进行写入操作,首先在CE使能为低有效且CLE使能为高有效时,写入“A0”命令;然后在CE使能为低有效且ALE使能为高有效时,写入当前块地址,一共5个时钟;然后再CE使能为低有效且CLE使能为高有效时,写入“10”命令;最后在CE使能为低有效时连续写入数据。按块地址进行写入操作的时序图如图6所示。
[0076]按块地址进行写入操作步骤大致如下所示。
[0077]-正常上电后,工作在写入数据状态;
[0078]写入命令字“A0”,此时要求CE为“0”,CLE为“ I ”,ALE为“O” ;
[0079]写入5 X 8位块地址,此时要求CE为“0”,CLE为“0”,ALE为“V
[0080]写入命令字“ 10”,此时要求CE为“0”,CLE为“ I ”,ALE为“O” ;[0081]写入连续数据,此时要求CE为“0”,CLE为“0”,ALE为“O” ;[0082]f.当此块容量写满,块地址加1,重复b、C、d、e操作。
[0083](2)读取数据操作
[0084]用FPGA核心芯片控制Flash阵列逻辑进行读取数据操作的最小地址单位为页地址,按页地址进行读取操作时,首先在CE使能为低有效且CLE使能为高有效时,写入“00”命令;然后在CE使能为低有效且ALE使能为高有效时,写入当前页地址,一共5个时钟;然后再CE使能为低有效且CLE使能为高有效时,写入“30”命令;最后判断信号R/B电平由低变高,则该页数据连续从I/O读取。按页地址进行读取操作的时序图如图7所示。
[0085]按页地址进行读取操作步骤大致如下所示。
[0086]a.正常上电后,工作在读取数据状态;
[0087]b.写入命令字“00”,此时要求CE为“0”,CLE为“1”,ALE为“O”;
[0088]c.写入5X8位页地址,此时要求CE为“0”,CLE为“0”,ALE为“I”;
[0089]d.写入命令字“30”,此时要求CE为“0”,CLE为“1”,ALE为“O”;
[0090]e.判断R/B信号;
[0091]f.R/B信号由低变高,改页数据从I/O端口读出;
[0092]g.当此页数据读取完毕,页地址加1,重复b、c、d、e、f操作。
[0093](3)擦除数据操作
[0094]除了读写操作外,当需要清空Flash阵列中原有数据并准备写入新数据时,可以进行擦除操作,擦除操作完成后,Flash阵列的所有地址读出来的数据均为“I”。用FPGA核心芯片控制Flash阵列逻辑进行擦除数据操作的最小地址单位为块地址,按块地址进行擦除操作,首先在CE使能为低有效且CLE使能为高有效时,写入“60”命令;然后在CE使能为低有效且ALE使能为高有效时,写入当前块地址,一共5个时钟;然后再CE使能为低有效且CLE使能为高有效时,写入“D0”命令;最后判断R/B信号由低变高,则擦除改块操作结束,可让块地址加1,擦出下一块地址数据。按块地址进行擦除操作的时序图如图8所示。
[0095]按块地址进行擦除操作步骤大致如下所示。
[0096]a.正常上电后,工作在擦除数据状态(擦除命令从PC端控制软件发送);
[0097]b.写入命令字“60”,此时要求CE为“0”,CLE为“1”,ALE为“O”;
[0098]c.写入5X8位块地址,此时要求CE为“0”,CLE为“0”,ALE为“I”;
[0099]d.写入命令字“D0”,此时要求CE为“0”,CLE为“1”,ALE为“O”;
[0100]e.判断R/B信号;
[0101]f.R/B信号由低变高,则该块数据擦除成功;
[0102]g.块地址加I,擦除下一块地址数据。
[0103](4)擦读写操作所对应时间
[0104]用FPGA核心芯片直接控制Flash阵列芯片时,控制时序中给予命令后需要一定的响应时间,如进行写入操作时序图中的t (PROG)与进行擦除操作时序图中的t (BERS),主要响应时间的典型值与最大值如表I所示。
[0105]表I主要响应时间典型值与最大值
[0106]
【权利要求】
1.一种四通道大容量波形存储系统,其特征在于:它包括:FPGA核心芯片、FPGA核心芯片最小外围电路、ADC采样芯片、Flash阵列、网口电路和电源芯片;电源芯片中的9A、9B、9C、9D将5V电源电压分别转换为3.3V、1.8V、1.0V、2.5V电压供给其它模块使用,其中FPGA核心芯片需要用到1.0V核电压和3.3V、1.8V、2.5V的管脚电压,程序加载Flash需要用3.3V电压与1.8V电压,Flash阵列需要3.3V、1.8V、2.5V电压,ADC采样芯片需要3.3V电压,网卡芯片需要1.0V、2.5V电压;正常上电后FPGA核心芯片控制4路ADC采样芯片从外部输入接口采集波形数据,并将数据传输至Flash阵列;存储结束后,FPGA核心芯片控制网口电路并将Flash阵列中的数据通过网口传输至上位机;所有控制指令均由上位机通过网络接口传输至FPGA核心芯片; 该FPGA核心芯片是:Virtex-5XC5VLX330T,它为核心处理器,其功能是为整个系统实现数字逻辑功能;其逻辑资源情况如下:207360个逻辑单元;324个存储单元;960个IO管脚;12个时钟管理单元,满足较复杂数字逻辑电路设计要求;实现包括控制ADC芯片、Flash阵列、网口芯片正常工作的功能,该FPGA核心芯片由电源芯片提供1.0V核心电压和2.5V、3.3V、1.8V管脚电压;该FPGA核心芯片最小外围电路是:由FPGA核心芯片、时钟源和程序加载Flash组成,时钟源为FPGA核心芯片提供正常工作所需的时钟信号;由于FPGA核心芯片是在断电之后程序自动被清除的,所以必须将程序代码固化到一个程序加载Flash中,每次上电后,程序加载Flash中的程序自动加载到FPGA核心芯片中以使其正常工作;由于FPGA核心芯片每次上电都要重新加载一次程序,所以要将程序代码固化到程序加载Flash阵列中J_FPGA核心芯片最小外围电路保证FPGA核心芯片正常工作并实现基本的数字逻辑功能;该ADC采样芯片是:ADS5463,负责对外部信号进行低通采样,即把模拟信号转换为数字信号,ADC采样芯片将采样得到的数字信号直接传送给FPGA核心芯片,再由FPGA核心芯片经过乒乓、拼位处理传输至Flash阵列;4片ADC采样芯片ADS5463,实现4路AD同时采集,每一片ADC采样芯片由电源芯片提供3.3V电压;该Flash阵列是:单元为MT29F32G08AECBB芯片,一片的容量为4Gbytes,由8片MT29F32G08AECBB 组成一个阵列,一共有 4 个 Flash 阵列,即 32 片 MT29F32G08AECBB 芯片,共4*32Gbytes=128Gbytes存储空间,其功能为存储从FPGA核心芯片传送过来的波形数据,并掉电保存;其中每一组Flash阵列对应一路AD,即每一路AD最大存储容量为32Gbytes,当存储空间满时根据需求覆盖或停止存储,Flash阵列每片芯片由电源芯片提供1.8V电压和2.5V电压;该网口电路是:以88E1111网卡芯片为核心组成,它实现网络数据包的转换;88E1111由FPGA核心芯片通过GMII接口控制,由电源芯片提供1.0V电压和2.5V电压,其功能为实现FPGA核心芯片与上层PC端通过千兆网口连接,达到上传波形数据和下发命令目的;该电源芯片是LM1085和LMl 117,它们提供整个系统工作所需的电压;外界给系统输入+ 5V的电压,通过电源芯片将+ 5V的电压转换成系统所需要的+ 3.3V、+ 1.8V、+ 1.5V,来分别提供给FPGA核心芯片、程序加载Flash、时钟提供源、ADC采样芯片、Flash阵列和网口芯片。
2.一种四通道大容量波形存储系统的构建方法:该方法包括下述几个步骤:步骤一:FPGA核心芯片对Flash阵列进行读取操作,记录Flash阵列坏块地址;平均每一片Flash阵列芯片会有1-2个坏块,Flash阵列坏块的特点是无法对这一地址进行读取或写入操作,无论用写入逻辑写进去什么数据,用读取逻辑都只能读到全“O” ;坏块的存在会影响正常数据的读写,因此要提前将坏块的数目和地址找出来并记录;查找坏块的方法是:上电后,用擦写逻辑将Flash阵列所有块地址都擦写一遍,擦除后的Flash阵列数据应全为“1”,再用读取逻辑按地址顺序逐个读取;假如没有坏块,则全部读取到的数据均为“I”;将读取到不为全“I”的地址记录下来保存到Flash阵列的其他地方,作为坏块地址;坏块地址作为一个集合,此后进行读写操作时均跳过该集合中的所有地址;步骤二:FPGA核心芯片对Flash阵列进行读取/写入操作,查找/记录最新位置;查找最新位置的作用是上电时检测上次掉电写到哪一个地址,然后数据输入时即从下一个地址开始写入数据,查找最新位置的方法是按块地址搜索;每次上电后正常工作,进入写Flash阵列数据状态时,对Flash阵列块地址进行操作,写入数据是以块地址作为最小单位的,所使用的Flash阵列芯片MT29F32G08AECBB,每个芯片的大小为4G字节,一共有4 X 2048=8192个块地址,每个块地址对应512k字节容量;在写入数据时,将每一块块头的前16位容量,不写入波形数据,而写入编号信息,称为“头信息”;如第一次上电后记录波形时,头信息记为十六进制“FFFE”;第二次上电时,头信息记为十六进制的“ FFFD ”,如此类推;下一次上电时,首先按块地址递增的顺序读取头信息,若后一个地址的头信息比前一个地址的头信息小,如“FFFD”小于“FFFE”,即数据并非最新,继续读取头信息;若后一个地址的头信息比前一个地址的头信息大,如“FFFF”大于“FFFD”,则第一次出现“FFFF”的那个地址就是最新位置,原因是擦 除后没写过数据的地址的数据均为“I”;利用这种方法,找出最新位置,并从最新位置开始写下一次数据;FPGA核心芯片控制Flash阵列实现查找最新位置的流程如下所示:a.上电启动系统硬件;b.读取块地址头信息并判断;c.判断后一地址的块头信息是否比前一地址的块头信息小;d.若后一地址的块地址头信息比前一地址的块地址头信息小,则地址加“I ”后继续读取下一地址的头信息;e.若后一地址的块地址头信息比前一地址的块地址头信息大,则此地址为最新位置,从改位置开始进行写入操作;上电工作前,Flash阵列中要提前存有坏块地址,往后的读写操作包括查找最新位置等当操作地址与坏块地址相等时要跳过,否则系统不能正常工作;上电工作,先查找最新位置,确定本次上电从哪一个地址开始记录数据,查找最新位置结束后,系统处于Idle状态,Idle状态时等待两种命令,分别对应于记录数据状态和读取数据状态;步骤三:FPGA核心芯片控制4路AD,每一路ADC采样芯片以100M时钟对外部信号进行低通采样;采集到的数据按16位高位在前低位在后的格式存储至Flash阵列,存储过程考虑到了数据的连续性应用了乒乓原理,即第I路AD后级连接的是RamA和RamB,一开始AD的数放进RamA,当RamA放满了以后切换到RamB,这时候FPGA核心芯片从RamA读取刚采集到的数并存储至Flash阵列,当RamB满了以后又切换为RamA,如此类推,保证了采集数据的连续性;第2、3、4路AD跟第I路AD —样也采取乒乓原理,Flash阵列保存的波形数据,即使掉电也能保存,FPGA核心芯片中编写读取波形逻辑,读取的波形数据通过网口传输至PC机进行下一步处理;步骤四:FPGA核心芯片通过GMII接口控制88E1111网卡芯片,系统通过网口与PC机相连;步骤五:FPGA核心芯片控制波形数据通过网口传输至PC端并使用软件复现波形;PC端界面主要有两方面的功能,一是用于与FPGA硬件进行通信,发送命令以及从中获取状态信息和数据信息,二是用于将获取的数据用于波形复现,并实现检索波形功能;大容量存储器设备与PC端通过千兆网络接口连接,利用PC端控制软件将测试数据导出,并存储于测控计算机上,便于数据分析;PC端控制端口与界面将波形数据复现,并进行相关操作对波形数据进行分析;步骤六:对FPGA核心芯片内部资源进行优化,包括区域约束与时序约束;区域约束的主要思想是将寄存器等资源规划到某一个区域中;当没有使用区域约束时,即为自动布局的时候,由于资源分布离散,导致从Ram读出来的数据有误,从波形上来看就是波形失真;这种问题导致的波形失真甚至不容易被发现,两个工程的VHDL文件相同,只有UCF文件添加了约束语句;步骤七:当进行时序修改时,为保证不影响其它模块的功能,需要将各模块进行固定布局操作;利用PlanAhead进行固定布局操作,假设在调试过程中系统的网口模块已经调试完善,而Flash模块和AD模块仍需要修改,考虑到这两个模块修改后整体的布局布线影响到网口模块,需要对网口模块的布局固定,确保其每次综合布局布线结果都一样;使用PlanAhead进行固定布局的具体操作,关键是对网口模块归类为一个pblock,然后再PlanAhead中对该pblock点击右键,选择Fix Instances,这样网口模块的布局信息就会以代码形式保存于.ucf中,下次再进行综合时则会优先考虑到该布局信息,优先将对应资源分配给网口模块, 这样保证每次修改其它模块时也不会影响网口模块的布局。
【文档编号】G05B19/042GK103605309SQ201310601801
【公开日】2014年2月26日 申请日期:2013年11月25日 优先权日:2013年11月25日
【发明者】张玉玺, 麦超云, 杨彬, 樊文贵, 王俊 申请人:北京航空航天大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1