- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
多路高速信号并行采样及实时存储解决的方案
多路高速信号并行采样及实时存储解决的方案
摘要:本文提出了一种基于FPGA的并行采样及实时存储的信号采集方案,主要用于解决高端测量系统中存在的多通道、高速率、大数据量问题。本方案同时具有易于扩展的优点,并可以灵活地嵌入数据处理模块。
关键词:信号采集;测量;实时性
前言
在高端测量系统当中,通常需要同时采集许多路模拟信号,且这些信号的带宽、采样精度、有效时间等都各不相同。此时,如果采用基于MCU的方案,则由于必须同时面对多个不同的ADC而耗费掉MCU的大量资源。再者,当存在高速信号时,数据量将急剧增大,几乎无法实现。
高端测量系统的主要难题是,繁多的控制对象和庞大的数据量,究其根本就是实时性问题。解决这个问题的方法通常是选用高性能的MCU甚至DSP,或采用DMA技术。如基于混合信号MCU的DTC(Direct Transfer Control)解决方案。本文改变了基于MCU的分时控制和延时存储这一思路。提出一种采用FPGA的解决方案,通过FPGA+ADC实现多路并行采样,通过FPGA+SRAM实现高速实时存储,从而在根本上解决了上述问题,同时衍生出便于调整、易于扩展的优点。
总体方案
本方案的总体设计思路是:尽可能地减少MCU的负担,让采样和存储全部自主完成。为行文方便,我们称这个基于FPGA的采样和存储模块为信号采集控制器(signal Collecting Controller),缩写为SCC,把信号采样和存储合称为信号采集。下文将以一个实际例子说明SCC的设计方案。该例子的原型应用于粒子测量系统中,共有5个信号通道,其中3个通道的采样率为1MSPS,数据宽度为12位;一个通道为10MSPS,数据宽度为12位;一个通道采样率为20MSPS,数据宽度为10位。总体方案如图1所示。需要说明的是,本文旨在阐述一种思路和方案,并非提供可照搬的详细设计。故对原型进行了抽象和删改,也未给出器件的具体型号。
图1中虚线框内是FPGA实现部分,即SCC,虚线框外是与SCC连接的片外元器件。ADC0~4为5个ADC,分别对应5个信号通道,下文简写为ADCx;ZBT-SRAM为零总线延时SRAM。AD_CTRL0~4分别为5个ADC的控制器,简写为AD CTRLx;SRAM_CTRL为ZBT―SRAM的控制器;MCU_IF为SRAM与MCU接口的转换器。clk、dq为控制ADC的接口,dq是转换数据,可以是串行的,也可以是并行的,根据实际的ADC型号而定;mclk、w/r、addr、dio是SCC与ZBT-SRAM的接口;bus是SCC与MCU连接的控制、地址和数据总线。wr0-4分别为AD_CTRL0-4输出的数据有效信号,简写为wrx;d0~4为AD_CTRL0-4输出的并行数据,简写为dx;set、index、din、dout用以完成MCU对SRAM_CTRL模块的参数设置和查询,称为控制口;irq、den、data用以读取SRAM中的数据,称为数据口。
下面简略地描述一下SCC的工作过程,更具体的内容在SRAM―CTRL模块中介绍。AD_CTRLx从ADCx中获得数据,锁存在dx上,同时输出wrx信号。SRAM CTRL扫描AD_CTRLx,当发现wrx有效时,读入数据dx。各路dx在SRAM CTRL内部被按照ZBT―SRAM的数据宽度进行调整,SRAM_CTRL根据各路数据的地址空间分配产生寻址信号addr,同时输出控制信号W_r,输出相应数据dio,在mclk的驱动下,数据被写到SRAM中。MCU可从MCU_IF读取SRAM中的数据,首先通过控制口设置欲读取的数据通道号,然后发送开始读命令(注:需事先制定控制协议),SRAM CTRL即把对应通道的数据陆续送到数据口,并输出数据有效信号den,MCU_IF根据den把data存进FIFO中。其中irq为中断申请信号,用以通知MCU存储器空或满,可根据实际情况选用,本例未使用。
如此,整个信号采集的过程已经彻底脱离了MCU的控制,可以完全自主地进行,即MCU对于信号采集是不可见的。反过来,还要求信号采集对MCU读数据不产生任何干预,让MCU就像读取一块独占的存储器一样,即信号采集对于MCU是透明的。这些都需通过SRAM控制器来实现。
SRAM控制器
SRAM CTRL模块是SCC设计的核心,它需解决的关键问题是:如何糅合不同速率的5路数据,并确保在不与MCU读操作产生冲突的情况下写入SRAM。
首先简要介绍一下ZBTSRAM。它具有同步接口,数据、地址和控制信号严格按照时钟同步操作。ZBT是零总线延时的含义,它与一般的总线接口不同,写操作的数据要在地址和控
原创力文档


文档评论(0)