王 琦,王 壮,程 翥,苗可可
(1.国防科技大学 电子科学与工程学院,湖南 长沙410073;2.95972部队,甘肃 酒泉735000)
数据采集记录系统的本质是信号的变换和存储,一个好的、全面的、稳定的多通道高速数据采集记录系统[1,2]需要解决好高速模拟-数字转换、精准时钟同步、精确数据同步、高速数据传输、大数据存储、数据控制、硬件接口、通道扩展以及采集功能模式设计等问题。目前,大部分多通道高速数据采集记录系统均采用单板设计模式,即将实际需求的所有采集通道设计在一个电路板上,使用单个或多个FPGA 等控制运算单元进行数据控制,然后通过标准接口将数据发送至存储单元存储。这样的设计通用性较差、采集通道很难扩展、采集控制和人机交互设计比较复杂。
为解决这些问题,本文运用模块式思想设计了一种通道可扩展的多通道高速数据采集同步记录系统,并对其核心模块进行了逻辑设计。整体设计方面,系统由时钟模块、采集模块、存储模块和主板控制器组成,各模块接口均采用通用标准协议,数量可以任意扩展。
如图1所示,系统由主板控制器通过PCIE[3]接口分别控制时钟模块、采集模块、存储模块;时钟模块输出的精准同步时钟信号与触发信号控制采集模块,使得各采集通道同步采集,各路采集数据同步存储;采集模块通过ADC芯片、时钟芯片、SDRAM、FPGA 芯片等[4],将模拟信号模数转换、打包、缓存、发送,同时能够条件式输出判决信号,触发时钟模块,实现对周期脉冲等特定信号的采集,FPGA 内设计的各功能通过Wishbone总线[5]进行控制;存储模块采用raid阵列[6],通过控制多块固态硬盘,实现数据的高速存储。主板控制器集成有INFINIBAND (IB)高速数据互联接口,用于系统整体扩展时,系统间的数据共享。
系统工作时,外部模拟信号耦合输入采集模块,在时钟模块的同步时钟控制下,采集模块对数据进行采集,并对数据进行统计运算,与阈值比较后会产生判决信号触发时钟板输出同步触发信号。当触发条件满足时,时钟模块输出的同步触发信号触发采集模块对数据进行打包、缓存与上传,主板控制器将采集模块上传的数据写入存储模块,存储模块对写入的数据进行永久存储。
系统可以主板内各模块扩展,也可以主板间整体扩展,如图2所示,主板控制器0控制时钟模块0、其它主板控制器和人机交互以及触发信号的选择工作。在IB 交换机下,各主板通过高速IB 接口实现交叉互联,由主机统一控制,各模块产生的触发信号也由主机控制选择,选择的触发信号输出到时钟模块触发其输出触发信号。若每个采集模块能够实现8路AD 采集,时钟模块能输出4 路时钟信号和触发信号,那么时钟模块一级级联可以实现128路同步AD采集,所有采集通道均在时钟模块0的控制下高速同步采集,在同一触发信号的控制下高速同步存储。
整个系统中,采集模块是核心模块,其工作性能直接影响到整个系统的性能,因此下面重点介绍了采集模块的结构设计和FPGA 内的功能程序设计。
为了提高系统的扩展性能,采集模块采用通用接口,为了实现高数数据采集、运算,使用基于硬件电路处理的FPGA 作为运算与控制单元。
图1 系统整体结构
图2 系统采集通道扩展结构
如图3所示,采集模块使用FPGA 芯片作为控制和运算单元,外设包括高速AD 芯片、精确时钟芯片、大容量SDRAM、Flash芯片等。一块FPGA 芯片可以外设多路AD、多块SDRAM,同时采集板上集成有外部时钟输入、外部触发输入、判决信号输出、PCIE等接口。
图3 采集模块硬件结构
外部输入的同步时钟信号通过精确时钟芯片分配给各路AD 芯片,控制数据采集,保证同模块各路之间和不同模块之间的采集时钟同步;触发信号输入FPGA,控制数据传输转存,保证同模块各路之间和不同模块之间的数据同步存储;大容量SDRAM 组对数据进行缓存,缓存数据通过PCIE接口输出[7],上位机的控制命令也通过PCIE 接口[8]发送至FPGA;Flash存储硬件程序、初始化参数、校准数据等。
为了保证数据高效采集传输,关键在于采集模块的逻辑设计,需要重点解决两个问题:采集模块FPGA 各外设与逻辑功能的控制问题和FPGA 采集数据的传输问题[9]。采集模块外设的逻辑控制需要设计片上总线,FPGA 采集数据的传输需要设计板间数据高速互联接口。
由于采集模块FPGA 外设多,FPGA 内部逻辑功能繁杂,必须有一个可靠的、统一的、可扩展的控制总线进行控制管理,结构如图4片上总线协议虚线框中所示。片上总线架构有很多,目前使用较多的几种片上总线标准有ARM 的AMBA 总线、Silicore的Wishbone总线、IBM 公司的CoreConnect总线、Altera的Avalon总线和OCP-IP设计的OCP 总线,而Wishbone总线除了共享总线互联外,还能实现交叉总线、点对点总线的互联方式,因此在采集模块功能控制中采用Wishbone总线[5]。
图4 FPGA 逻辑结构
图4中FPGA 逻辑结构主要包括两大部分内容,数据上行模块和片上总线模块,此外还有外设的AD 芯片、时钟芯片、Flash芯片等的驱动模块以及PCIE数据互联模块。
数据上行要解决数据同步采集、同步数据传输、分路打包[10]、数据缓存等问题,图4数据上行虚线框中为数据上行逻辑结构。数据进入FPGA 后,数据预处理模块对每一路采集的信号进行预处理,包括增益校准、直流校准、前视缓存、触发统计判决量计算、数字下变频 (DDC)[11]、数据打包等,在触发信号有效情况下按照VITA-49格式对数据打包,包头信息内含点数、时间、通道编号、包编号和用户可键盘输入的参数等信息,通过路由控制进入SDRAM 缓存,数据从SDRAM 出来后,与温度报警信号、溢出报警信号等数据进行帧打包,通过PCIE接口上传。
图5所示为数据预处理模块的数据控制逻辑结构。主要包括AD 数据接收、前视FIFO 缓存、数据校准、DDC、数据位调整等模块。
采集数据进入FPGA 后,分两路分别进行处理:一路进行统计判决量计算,得到判决信号输出;另一路进入前视FIFO,从前视FIFO 出来之后经过校准、DDC、数据位调整后进行打包,数据打包要在同一触发信号下进行,其模块设计如图6所示。前视FIFO 前视大小、数据校准等都可通过寄存器控制。
图5 数据预处理模块逻辑结构
图6 数据打包模块逻辑结构
外部触发信号进入FPGA 使得触发有效或者寄存器设置触发有效后,触发信号产生模块会根据寄存器设置,产生宽度可设定的单稳触发信号,或者产生有效宽度可设定、间隔可设定、周期可设定的自恢复触发信号;这些触发信号经过选择器控制VITA-49包头信息产生、数据堆叠,产生的包头信息进入缓存,调整与缓存中堆叠的AD 数据进行对齐,再按照打包标准数据宽度并行输出。
按照前文设计,实现了一套由一个时钟模块、两个采集模块、两个存储模块和一个主板控制器构成的采集系统,实现了16通道、14bit、180 MHz连续采集,并对获得的数据进行了测试。
实现的系统中,时钟模块采用Xilinx FPGA 控制TICDCE72010时钟芯片输出4路同步时钟信号,同时输出4路同步触发信号,设计有外部时钟输入、触发输入接口和8line PCIE gen1 接口。存储模块使用raid阵列管理控制器搭载8块250 MB 固态硬盘进行高速存储,存储速度可达3.2GB/s。采集模块使用Xilinx V6FPGA 作为控制和运算单元,结构如图7所示。
图7中,实际设计的采集模块硬件结构使用PCIE gen2接口,FPGA 外设4个最高250M 采样频率、14bit采样位数、2 通道的 LTC2157-14 AD 采集芯片,1 个 TICDCE72010时钟芯片,4 个1GB SDRAM 芯片,1 个128 MB Flash芯片,设计有外部时钟输入、触发输入接口和8line PCIE gen2接口,输入采用交流耦合输入,输入峰-峰值为1.5V。
图7 实现的采集模块硬件结构
采集模块采用PCIE gen2X8接口,数据实际传输速度可以达到3GB/s,在主板控制器控制下,AD 采集数据永久记录速度平均为2.8GB/s,可实现8路14bit 180 MHz连续采集。前视大小最大为8192 个点,可以键盘触发、GPS触发、信号幅度触发、带宽能量触发,触发门限等参数可设置,采集样式有单稳采集、自恢复采集,采集点数、间隔、周期等参数可设置。图8为用200 MHz对峰-峰值1 V、频率10 MHz的正弦信号进行采集后计算的功率谱。如图8所示,相对峰峰值1V 的正弦信号,系统各频点噪声功率均在-100dB以下。
图8 10 MHz正弦信号功率谱
图9所示为不同采集模块上的两路AD 用200 MHz对峰-峰值1V、频率1 MHz的同一个正弦信号进行采集后计算的相位差随时间的抖动。如图9所示,由系统噪声、采样频率等引起的两路信号相位差在固定均值两边随机抖动,均值为-0.1030度,标准差1.58×10-4度,可以看出两路信号是在固定相位差周围小范围内抖动的,固定相位差可以通过调整时钟芯片与数据对齐进行补偿,相位差小范围的抖动需要根据实际需求进行相应评估。
图10 所示为采集模块某一AD 采集通道对1 K-100 MHz信号的带通特性。图10中,采集模块的3dB 带宽为50K-100 MHz,500K-100 MHz内带宽平坦度较好。
图9 不同板AD 采集同一信号的相位差与时间关系
图10 1K-100 MHz信号带通特性曲线
整个系统在系统结构、各模块结构、运算单元程序设计等方面均采用模块化设计,使得系统采集通道数、各个功能等都能够扩展,并且上位机容易控制,方便二次开发。
实现的系统采集模块采用PCIE 2.0X8 接口,数据采集记录速度达到2.8GB/s以上,能够14bit 180 MHz的连续采样,时钟模块一级级联能够实现128路同步采集记录。系统同步性能稳定,信号通带较平坦,系统噪声较小。
[1]ZHAO Ruiguo,MA Jie,HE Zhiyong,et al.Design and application of high-speed acquisition database for liquid rocket engine[J].Journal of Rocket Propulsion,2011,37 (3):60-64(in Chinese).[赵瑞国,马杰,何志勇,等.液体火箭发动机高速采集数据工程数据库设计与应用[J].火箭推进,2011,37 (3):60-64.]
[2]FENG Ni,ZHANG Huixin.Design and application of highspeed acquisition and storage system of telemetry digital video signal[J].Computer Measurement and Control,2013,21(1):279-281 (in Chinese).[冯妮,张会新.遥测数字视频信号高速采集存储系统的设计与应用 [J].计算机测量与控制,2013,21 (1):279-281.]
[3]Keron MJ,Gardner FM.Interpolation in PCIE fundamentals[J].IEEE Transaction on Communications,2010,41 (3):501-507.
[4]WANG Jialiang,ZHAO Shuguang.PCI-E Interface implementation and DMA engine design with FPGA [J].Computer Technology and Development,2011,21 (6):181-184 (in Chinese). [王嘉良,赵曙光.用FPGA 实现PCI-E 接口和DMA 控制器设计 [J].计算机技术与发展,2011,21 (6):181-184.]
[5]XIA Hong,HAO Chun’e,YAN Jiangyu.Design and verification of AHB-WISHBONE bidirectional bridge [J].Computer Engineering and Design,2011,32 (6):2201-2204 (in Chinese). [夏宏,郝春娥,闫江毓.双向AHB-WISHBONE 总线桥的设计与验证 [J].计算机工程与设计,2011,32 (6):2201-2204.]
[6]ZHANG Yuankai,CAI Huizhi,LIU Yao,et al.High speed storage system based on PCIe and RAID5 [J].Control and Automation Publication Group,2010,26 (12):3-4 (in Chinese).[张元凯,蔡惠智,刘垚,等.基于PCIe和RAID5的高速存储系统设计[J].微计算机信息,2010,26 (12):3-4.]
[7]SUN Xiaoye.High Speed SG DMA data transmission system based on PCIE [J].Computer Technology and Development,2013,23 (9):195-198 (in Chinese). [孙晓晔.基于PCIE的SG DMA 高速数据传输系统 [J].计算机技术与发展,2013,23 (9):195-198.]
[8]LI Muguo,HUANG Ying,LIU Yuzhi.Design of DMA transmission with PCIe bus interface based on FPGA [J].Computer Measurement and Control,2013,21 (1):233-235 (in Chinese).[李木国,黄影,刘于之.基于FPGA 的PCIe总线接口的DMA 传输设计 [J].计算机测量与控制,2013,21(1):233-235.]
[9]LI Lisi,CUI Zhihua,YIN Ye,et al.Design and verification of DMA controller of PCIe based on FPGA [J].Computer Measurement and Control,2014,22 (4):1166-1168 (in Chinese).[李丽斯,崔志华,殷晔,等.基于FPGA 的PCIe总线DMA 控制器的设计与验证 [J].计算机测量与控制,2014,22 (4):1166-1168.]
[10]SUN Tingting,HUANG Jie.Reassemble packets of 3Gcore network based on FPGA [J].Computer Engineering and Design,2010,31 (8):1641-1644 (in Chinese).[孙婷婷,黄杰.基于FPGA 的3G 核心网数据包重组方法 [J].计算机工程与设计,2010,31 (8):1641-1644.]
[11]TIAN Liyu,YUAN Yidan,LI Xiaoyang,et al.Design and implementation of the on-line configurable digital down converter(DDC)based on FPGA [J].Transactions of Beijing Institute of Technology,2013,33 (3):311-316 (in Chinese).[田黎育,袁一丹,李晓阳,等.基于FPGA 的在线可重配置数字下变频的设计与实现 [J].北京理工大学学报,2013,33 (3):311-316.]