微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > FPGA和CPLD > 基于DMA的并行数字信号高速采集系统

基于DMA的并行数字信号高速采集系统

时间:11-09 来源:互联网 点击:
本系统采用基于FPGA的DMA技术高速缓存多路并行数据,通过数据重组将数据有序发送给处理系统,用于数据的显示与分析。系统采用了嵌入式技术,达到了便携效果,从而更好地适应设备的工作环境。并行数字信号采集实验结果表明,系统能以5 MHz、2.5 MHz、500 kHz、50 Hz 4档采样频率进行62路并行数字信号采集,各路采集结果正确,并保存了各路之间的同步信息。

随着数字电子技术的发展,大型电子设备中数字电路的比例越来越大。为便于故障诊断,一些电子设备(如雷达系统)预留了大量的数字信号检测口。采用示波器采集此类测试接口的信号时,由于示波器采集通道数的限制,无法保留同步信息;采用逻辑分析仪或ATE设备不但价格昂贵,而且不便于携带,不适宜广泛使用。因此,设计一款便携式并行数字信号高速同步采集系统,为大型电子设备的维护提供支持是十分必要的。

此类检测口信号采集中多通路、高采样率的特性要求瞬时大量数据的高速缓存实现方法。文献以硬盘为存储介质,采用DMA技术实现了接近6 MB/s的存储速率。文献,文献,基于SoPC技术采用SDRAM作为存储介质,相对硬盘存储速度有了很大的提高。但是当通道数超过SDRAM数据位数时,SoPC的处理速度就会影响数据的存储速度,适用于多通路同步采集。本文采用读写速度最高的SRAM作为存储介质,并利用虚拟多个DMA通道的技术极大地提高了数据存储速度,实现多路并行数字信号的高速同步采集。

1 系统整体设计

采集系统采用了嵌入式技术达到便携性的目的,由FPGA子系统和ARM子系统两部分组成,如图1所示。



FPGA子系统接收ARM子系统的指令,完成数据的采集、缓存和发送功能。数字信号缓冲电路用于数字信号的电平转换和驱动。输入数字信号可能是TTL或CMOS电平,采用缓冲电路一方面减小对原电路的影响,另一方面将电平转换为FPGA输入所需的CMOS电平。FPGA子系统以Altera公司的EP1C12Q240C6芯片为核心,EP1C12Q240C6拥有12 060个逻辑单元以及173个用户可使用IO,能充分满足开发及调试中的要求。FPGA搭配SRAM采用DMA的方式实现数据的高速缓存,选用SRAM容量为1 MB,访问时间为10 ns,利用SRAM访问速度快的特点,可达到200 MB/s的数据访问速率。同时,FPGA还实现了与ARM的通信接口,完成缓存数据的打包发送功能。

ARM子系统实现数据的存储和人机交互界面。采集到的数据可以通过ARM子系统以类似于逻辑分析仪的方式图形化地呈现给用户,方便用户管理数据采集过程。

2 DMA高速数据缓存

由于ARM系统通信速度的限制,要想避免数据的溢出,采集的数据需要先缓存到FPGA子系统的SRAM中。对于62路并行数据信号进行同步采集,采集频率为5 MHz时,数据量达310 Mb/s,因而选用了DMA的方式来高速地缓存采集数据。基于FPGA系统,数字信号首先在采样时刻被存放到FPGA的寄存器中,并在2个连续采样时刻之间的采样间隔内将FPGA寄存器中的数据通过多个虚拟的DMA通道存储到SRAM中。DMA高速数据缓存结构如图2所示。



采集系统选用了1片16 bit的SRAM,62路数字信号需要分为4组缓存入SRAM中,因而构建了4个DMA通道分时与SRAM连接。由于SRAM的访问时钟是FPGA系统中的最高时钟,所以SRAM的访问时钟选用了系统时钟。SRAM的访问时间为10 ns,系统时钟必须低于100 MHz,才能保证每次能将数据完整正确地写入SRAM中。本FPGA系统选用了50 MHz的系统时钟,这样采样时钟频率最高为5 MHz,一个采样周期内的数据有10个系统时钟周期的时间来处理。在FPGA系统的控制下,一个采样周期内的10个系统时钟有1个用于等待数据写入FPGA寄存器,4个用于向SRAM写入数据。数字信号并行采集的数据缓存时序如图3所示。



图3中‘0’时刻为采样时钟上升沿,此时刻FPGA系统将并行的62路数字信号缓存入62 bit寄存器中。由于传输延时时间受系统布线和FPGA内部布局的影响,系统时钟和采样时钟上升沿不一定是同步的,图中‘0’时刻到‘2’时刻之间可能有1~2个系统时钟周期,这段时间内,系统不动作等待采集信号可靠地写入寄存器,这样可以避免‘0’和‘1’时间间隔过小,采集的数据未完全写入寄存器的情况。在之后的‘2’时刻至下一周期‘0’时刻,系统完成写入SRAM的工作。其中‘2’时刻至‘3’时刻为第一写入周期,系统将寄存器中的0 bit~15 bit写入SRAM中;‘3’时刻至‘4’时刻为第二写入周期,系统将寄存器中的16 bit~31 bit写入SRAM中;‘4’时刻至‘5’时刻为第三写入周期,系统将寄存器中的32 bit~47 bit写入SRAM中;‘5’时刻至下一周期‘0’时刻为第四写入周期,系统将寄存器中的48 bit~61 bit写入SRAM中。这样,同一采样时刻的62通路的数字信号被分时地写入SRAM中,信号保持真实的同步信息。此时,系统的数据缓存速率达310 Mb/s。

上述方法中,‘5’时刻至下一周期‘0’时刻只进行了一次写入,实际上这段时间可以容纳6个写入周期,时间并没有被充分地利用。对其进一步扩展,将系统时钟周期充分地利用,可以同时采集更多通路的信号,将第六到第十个系统时钟周期也用于信号缓存,则可以同时缓存16×9=144路数字信号。这种情况下,系统的数据缓存速率可达720 Mb/s。

考虑采用SRAM的极限访问速率的情况,可以选用100 MHz的系统时钟,这时系统的数据缓存速率可达1 520 Mb/s。

选用的SRAM的数据写入极限速率为1 600 Mb/s,此种方法的数据缓存速率达SRAM数据缓存极限的95%,实现了高速的数据缓存。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top