一种基于FPGA的数据采集方法及数据采集系统与流程

文档序号:11519222阅读:471来源:国知局
一种基于FPGA的数据采集方法及数据采集系统与流程
本发明属于通信与计算机领域,具体涉及一种基于fpga的数据采集方法及数据采集系统。
背景技术
:综合控制器是运载火箭控制系统箭上重要单机,主要负责箭上模拟量以及开关量的采集和输出。现在技术中,综合控制器在进行多路模拟量ad数据采集的时候,一般通过多路选择器串行采集,这就难以发挥ad采集芯片的最大效能。图1为现有技术中一种常用的综合控制器中ad数据采集模块系统功能图。如图1所示,现有的常用综合控制器模拟量采集模块,存在如下问题:第一,采样速率低。数据采集模块采用12路a/d串行采集方法,同过38译码器选通,a/d模块与单片机采用端口模拟spi方式通信,单路采集耗时1ms,12通道循环周期为12ms。第二,数据访问仲裁速度慢。如,当采用方案cpu11模块和单片机共享单端sram,由cpld来做多路选择器时,导致每一次单片机访问sram至少需要14个指令周期,用于锁定和释放总线。同时由于模块使用中断方式通知cpu11总线占用,存在潜在的风险使得cpu11长时间处于中断状态,影响综合控制器响应速度。技术实现要素:本发明要解决的技术问题是设计一种简单高效、易于实现的高速ad数据采集时序,以充分发挥ad采集芯片的最大效能。基于此,本发明提出了一种基于fpga的ad数据采集方法及数据采集系统,通过设计合理的采集转换控制时序,同时使用fpga内部的剩余资源实现双口ram,使得数据采集模块和处理模块可以异步运行,最大限度的保证了综合控制器使用的响应的实时性。根据本发明的一个方面,提供了一种基于fpga的数据采集方法,所述方法包括如下步骤:由fpga发出ad数据采集转换控制时序,对ad芯片由fpga上升沿控制开始a/d转换,对fpga内部由fpga下降沿控制开始数据采集;利用fpga内部剩余资源实现双口ram,异步进行ad数据接收和数据处理。上述方案中,所述ad芯片为ad7893芯片,所述ad数据采集转换控制时序的周期为12us。上述方案中,所述系统包括,基于fpga的数据采集处理板,ad数据转换板,数字信号处理dsp板;其中,所述基于fpga的数据采集处理板,用于发出ad数据采集转换控制时序,用于由fpga下降沿控制开始数据采集,由fpga上升沿控制ad数据转换板开始a/d转换;还用于将所采集的数据存入fpga内部,实现的双口ram;所述ad数据转换板与所述基于fpga的数据采集处理板相连,用于在所述基于fpga的数据采集处理板发现的转换控制指令,对所采集的数据进行转换;所述数字信号处理dsp板与所述基于fpga的数据采集处理板相连,用于通过所述双口ram异步读取所采集的数据,并用于对数据进行滤波,同时将滤波后的数据放回fpga;上述方案中,所述系统还包括:同步动态随机存储器sdram板,所述同步动态随机存储器sdram板与所述数字信号处理dsp板相连,用于动态存储dsp板相关数据。上述方案中,所述基于fpga的数据采集处理板具有与外部cpu的通信接口,所述通信接口用于cpu读取所述数据采集处理板中的滤波后的数据。上述方案中,所述ad数据转换板为至少两块6路pcb板;所述数据采集处理板为一块pcb板,板上的fpga用于产生12路ad数据采集时序,上述方案中,所述ad数据转换板为ad7893芯片,所述ad数据采集转换控制时序的周期为12us。上述方案中,所述基于fpga的数据采集处理板分为四个区,包括:ad数据采集转换时序控制区、vbus总线接口通信区、dspemif总线接口通信区和双口ram区。由以上本发明实施例的技术方案可以看出,基于fpga的数据采集方法及系统,通过优化采集时序,由fpga发出ad数据采集转换控制时序,对ad芯片由fpga上升沿控制开始a/d转换,对fpga内部由fpga下降沿控制开始数据采集;利用fpga内部剩余资源实现双口ram,异步进行ad数据接收和数据处理,无需互斥操作,最大限度的保证数据采集转换的实时性,同时减少系统其他的硬件开销。附图说明图1为现有技术中常用的综合控制器采集模块系统功能图;图2为本发明第一实施例的基于fpga的ad数据采集系统功能框图;图3为本发明第一实施例的fpga内部功能框图;图4为采用本发明第一实施例的基于fpga的ad数据采集系统进行数据采集时的ad数据采集时序图;图5为采用本发明第一实施例的基于fpga的ad数据采集系统进行数据采集时的状态转移图;图6为采用本发明第一实施例的基于fpga的ad数据采集系统进行数据采集时的双口ram数据交互时序图。具体实施方式通过参考示范性实施例,本发明技术问题、技术方案和优点将得以阐明。然而,本发明并不受限于以下所公开的示范性实施例;可以通过不同形式来对其加以实现。说明书的实质仅仅是帮助相关领域技术人员综合理解本发明的具体细节。下面结合具体的实施例及附图对本发明做进一步阐述。第一实施例综合控制器的命令执行所依赖的可编程存储器中,现场可编程门阵列(field-programmablegatearray,fpga),是在pal、gal、cpld等可编程器件的基础上进一步发展的产物,解决了定制电路的不足,又克服了原有可编程器件门电路数有限的缺点。本实施例的基于fpga的ad数据采集系统,以由两块各6路的ad数据转换板和一块数据采集处理板(mcu板)为例进行说明,但是在实践中,并不限于此,本发明还可以根据需要对所述ad数据采集系统进行适应性扩充。图2为本发明第一实施例的基于fpga的ad数据采集系统功能框图。如图2所示,本实施例的基于fpga的ad数据采集系统,由3块pcb板组成,其中包括一块数据采集处理板(mcu板),另外两块为各6路的ad数据转换板,数字信号处理dsp板,同步动态随机存储器sdram板。其中,mcu板主要完成数据采集,板上的fpga负责产生12路ad数据采集转换控制时序,并用于由fpga下降沿控制开始数据采集,由fpga上升沿控制ad数据转换板开始a/d转换;还用于将所采集的数据存入fpga内部,实现的双口ram。进一步的,图3为本实施例fpga内部功能框图。如图3所示,所述基于fpga的数据采集处理板分为四个区,包括:ad数据采集转换时序控制区、vbus总线接口通信区、dspemif总线接口通信区和双口ram区。mcu板上的fpga作为整个系统的控制核心,担负着数据采集、通信等任务。特别的,所述vbus总线接口通信区,为所述基于fpga的数据采集处理板具有的与外部cpu的通信接口,所述通信接口用于cpu读取所述数据采集处理板中的滤波后的数据,完成外部cpu与内部mcu板的通信。所述ad数据转换板与所述基于fpga的数据采集处理板相连,用于在所述基于fpga的数据采集处理板发现的转换控制指令,对所采集的数据进行转换。所述数字信号处理dsp板与所述基于fpga的数据采集处理板相连,用于通过所述双口ram异步读取所采集的数据,并用于对数据进行滤波,同时将滤波后的数据放回fpga。所述同步动态随机存储器sdram板与所述数字信号处理dsp板相连,用于动态存储dsp板相关数据。特别的,所述ad数据转换板采用ad7893芯片,所述ad数据采集转换控制时序的周期为12us。由于所使用的ad7893芯片每次ad转换需要约6us的时间,另外由于其自身spi数据传输速率的限制,以及额外的数据存储时间,所以设计了周期为12us的采集转换控制时序。当本实施例的实施例的基于fpga的ad数据采集系统进行数据采集时,mcu板主要完成数据采集、滤波,并且用于和综合控制器的cpu模块进行通信。板上的fpga负责产生12路ad数据采集时序,同时将采集的数据存入fpga内部实现的双口ram,供数字信号处理模块dsp异步读取,用于数据滤波,滤波后的数据放回fpga供综合控制器的cpu模块读取最终结果。另外两块ad数据转换板主要由仪放、ad7893芯片等外围供电电路组成,用于外部电压转换。图4为采用本实施例基于fpga的ad数据采集系统进行数据采集时的ad数据采集时序图。如图4所示,本实施例基于fpga的ad数据采集系统采用ad7893芯片,为了最大化提高采集速率,并且简化采集时序流程,设计了该采集时序。该芯片用convst引脚控制采集,上升沿开始ad转换,6us后通过sclk,sdata引脚串行读入ad转换数据。表1fpga状态机说明现状态名说明st_idle空闲状态st_convertingad数据转换中st_data_read读取ad数据st_save将数据存入dramad数据采集使用mealy型状态机实现,整个采集周期为12us,状态如表1所示,状态转移如图5所示。当convst信号为低时,状态机停留在st_idle状态,当convst信号为高时,进入st_converting状态,表明数据正在转换,6us后convst信号再次变低,表明转换结束,同时进入st_data_read状态串行读取12路ad数据,之后顺序进入st_save状态,将数据存入内部双端口ram,然后回到st_idle状态,等待下次转换开始。图6为采用本实施例基于fpga的ad数据采集系统进行数据采集时的双口ram数据交互时序图。如图6所示,采用altera提供的ip核truedualram实现,可以实现cpu模块与dsp,fpga与dsp之间的无互斥数据交互。由以上可以看出,基于fpga的ad数据采集系统,通过优化采集时序,由fpga发出ad数据采集转换控制时序,对ad芯片由fpga上升沿控制开始a/d转换,对fpga内部由fpga下降沿控制开始数据采集,采用fpga来做a/d数据采集,实现并行采集,可以做到12路ad同时控制采集,最大限度的发挥ad芯片采集速率。利用fpga内部剩余资源实现双口ram,cpu模块与dsp,fpga与dsp之间的数据交互通过双口ram实现,由于交互数据量不大,故而采用在fpga内部实现双口ram的方案,异步进行ad数据接收和数据处理,这样的双端操作,无需互斥操作,最大限度的保证数据采集转换的灵活性,同时减少系统其他的硬件开销。第二实施例本实施例提供了一种基于fpga的数据采集方法,所述方法包括如下步骤:由fpga发出ad数据采集转换控制时序,对ad芯片由fpga上升沿控制开始a/d转换,对fpga内部由fpga下降沿控制开始数据采集;利用fpga内部剩余资源实现双口ram,异步进行ad数据接收和数据处理。特别的,所述ad芯片为ad7893芯片,所述ad数据采集转换控制时序的周期为12us。本实施例的基于fpga的ad数据采集方法,通过优化采集时序,由fpga发出ad数据采集转换控制时序,对ad芯片由fpga上升沿控制开始a/d转换,对fpga内部由fpga下降沿控制开始数据采集,采用fpga来做a/d数据采集,实现并行采集,最大限度的发挥ad芯片采集速率。利用fpga内部剩余资源实现双口ram,cpu模块与dsp,fpga与dsp之间的数据交互通过双口ram实现,由于交互数据量不大,故而采用在fpga内部实现双口ram的方案,异步进行ad数据接收和数据处理,这样的双端操作,无需互斥操作,最大限度的保证数据采集转换的实时性,同时减少系统其他的硬件开销。以上所述是本发明的优选实施方式,应当指出,对于本
技术领域
的普通技术人员来说,在不脱离本发明所述原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1