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

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

时间:11-09 来源:互联网 点击:
3 缓存数据重组织

按照上述数据缓存的方法,同一通道的数据不是连续地存储在SRAM中。SRAM中的数据存储顺序如图4所示。图中第一列表示SRAM地址,offset为数据存储的初始地址偏移;第一行表示数据位,选用的SRAM中一个地址对应2字节数据,有16个数据位;剩余每个方格表示一个数据存储单元,方格里的数字表示该单元用于存储第几通道的数据。



定位一个通道的一位数据需要知道其对应的SRAM地址和位号。假设通道m的第i位数据由[addr(m,i),bit(m,i)]定位。分析SRAM中的数据存储顺序可知:

addr(m,i)=offset+1+[(m-1)/16]+(i-1)×4;

bit(m,i)=(m-1)%16。

其中m=1,2,3,…,64;i=1,2,3,4,…。

FPGA系统向ARM系统发送数据时,将同一通路的数据抽取出来,以一个字节为单位连续发送,所以需要对存储的数据进行重组织。在FPGA系统中,使用6 bit变量dch[5:0]表示通道号,其中000000(b)表示通道1(m=1),000001(b)表示通道2(m=2),依此类推。数据位计数i使用N位变量bitcnt[N-1:0]来表示,其中N由存储的总数据量决定,与通道号类似,全零表示i=1情况,1(b)表示i=2情况,依此类推。因而有:

[(m-1)/16]=dch[5:4];

(i-1)×4={bitcnt[N-1:0],00(b)};

(m-1)%16=dch[3:0]。

数据由FPGA中的变量定位表示为:

addr=offset+1+{bitcnt[N-1:0],dch[5:4]};

bit=dch[3:0]。

FPGA系统根据以上公式将各个通道数据逐位地从SRAM中读出,并移入移位寄存器中,从而把同一通路的数据以字节为单位连续地组织起来。     

4 采集实验结果

为了进行测试,基于FPGA设计了专用信号发生器,产生62路数字信号用于测试。62路数字信号中包括4.07 kHz~520.8 kHz(50 MHz的96分频)的TTL信号及恒高、恒低电平信号。

由于数字信号通道数较多,这里以其中不包含恒高和恒低的9~12通道来说明采集精度,采集结果如表1。



依此可知,各通道采集结果与输入信号对应,说明个通道采集结果正确,本采集系统可靠。

以某型雷达做为被测对象,系统进行了实际工作测试。采集性能如表2所示。



本文介绍基于嵌入式技术的并行数字信号采集系统的设计,系统采用DMA技术实现了62路数字信号同步采集,用于某型雷达预留测试接口信号的采集,整体采集速率达310 Ms/s。利用本设计中提出的DMA方法,系统可以进一步扩展,从而实现128路数字信号同步采集,并使整体采集速率达1 520 Ms/s,此时SRAM的写入速度已成为主要的限制。

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

网站地图

Top