基于高带宽的PXI Express平台 实现高速数据记录
摘要
现今的电子系统需要负荷越来越大量的数据,包含模拟及数字数据。因此对于研究者与系统开发商来说,其最大的挑战就是如何整合、测试与维护更高速且精准的测试系统来处理日益增加的数据量。对于某些应用类型,例如视频信号分析,其需求是如何连续不断采集高速模拟与数字信息以进行实时分析。因此在设计或选用这类型量测系统时,若能清楚理解数据流向以及可能的问题所在,就能减少开发成本,加速上市时间,也能避免昂贵的系统重新设计成本。
频谱监控、信号分析、光达信号采集、光纤测试、雷达及卫星信号收集等应用,属于典型高速及高精确度数据采集应用。这些应用对工程师们最大的挑战就是要如何满足高带宽的系统需求。本文将分享以PXI Express平台在建构高带宽系统时所需要考虑的细节,例如数字化仪或波型产生器的板载内存、PXI Express机箱内的PCIe信号架构、计算机操作系统、内存及储存装置的选择。
简介
传统桌面型仪器的数据传输接口为GPIB、RS-232或是LAN,这些接口的好处在于非常容易操作使用,但在传输大量数据时其效率并不理想。当要采集大量连续数据时,数据长度就会因为内部存储器大小而受限。目前市面上新款的高级仪器,例如示波器、波型发生器或逻辑分析仪,采用x86的架构,因此在高速、大量数据采集的长度上则基本上没有限制。但若要跨仪器同步达到多通道采集时,便是个困难且复杂的课题。
自从1998年第一版的PXI规格问世后,PXI平台与其模块已经被大量应用于军工、电子制造及科学研究应用中。第一版的PXI规格采用了PCI总线的高速传输特性,而后续的PXI规范更采用了PCI Express总线,继承了其低延迟(Low Latency)、高带宽及点对点传输的特性,另外再加上特有的触发与时序同步的接口,使得PXI平台与PXI模块特别适合应用于高速数据传输。
当以PXI平台设计适用于高速数据记录的系统,不管是将数据连续由模块化仪器传送至系统内存或存储装置,或者相反的数据流向,都能够利用PXI Express的高速总线、点对点传输的特性以及特有的触发与时序信号,轻松地完成实现。接下来的文章内容将进一步讨论,在设计、实现数据记录系统的过程中,需要考虑的几个要点与方向。
数据记录系统的架构及其考量因素
下图一简单的示意了一组PXI Express平台中数据的流向,组成的组件包含了PXI Express机箱、PXI Express控制器及模块化仪器,包含数字化仪及波形发生器。以高速数字化仪为例,模拟信号被ADC采集转换成数字量数据后,会搬移到板载内存上暂存,接下来再经由总线控制器及PCI Express接口,传送到PXI Express控制器的系统内存上,做后续的计算及处理。若数据的流向目的地是存储设备,则会在未经任何处理计算的情况下,被直接搬移到存储装置,以维持高速、连续不断的数据记录。在PXI Express背板上,采用了PCIe switch使得系统得以扩展出更多槽位。由于不同的PXI Express机箱有不同的槽位型态,因此每个PCIe switch的绕线方式都不同,进而影响到数据传输效率。如模块化仪器-波形发生器,其数据流则以相反方向运行。
图一、PXI Express平台与模块化仪器整体架构简化图,显示PXI Express系统的数据记录传输的方向
接下来我们会讨论数据记录系统的每个环节及对于数据带宽的影响。
l 模块化仪器的板载内存
大约十多年前,高速的PCI数字化仪都需要配备大量的板载内存以暂存来自高速ADC的数据,主要原因是当时的PCI总线仅能提供约132MB/s的数据带宽(多数系统仅能达到约80MB/s)。PCI总线的带宽,无法满足于8位1GS/s或14位200MS/s的数字化仪所需要的数据带宽。为了要增加记录或采集时间,512MB、1GB或甚至4GB的板载内存就会被应用于数字化仪之上。目前虽然高速PCIe总线接口可提供数倍于PCI总线的带宽,但数字化仪通常还是会配备有大量的板载内存深度(大于100MB),用于当作数据暂存,以避免CPU或DMA控制器过于忙碌而无法实时传输数据。举例来说,一个单通道8位500MS/s的数字化仪,在完全不将数据传回系统内存状况下,可以记录高达1秒的时间,若配备有2GB内存则可记录高达4秒。
在选择数字化仪时,另外一个需要注意的就是其板载内存控制器的数据处理带宽。作为ADC与系统内存之间的桥梁,内存控制器需要有两倍的数据传输量,以能同时应付来自ADC的数据流入,以及将数据通过PCIe总线传送至系统内存。若存储设备控制器的带宽小于两倍数据流量,则数据会被暂存在板载内存上,长久下来就会造成数据溢出,而使数据连续性受损。
图二、数字化仪内的数据流
l 模块化仪器的总线接口
PCI总线提供132MB/
- Windows CE 进程、线程和内存管理(11-09)
- RedHatLinux新手入门教程(5)(11-12)
- uClinux介绍(11-09)
- openwebmailV1.60安装教学(11-12)
- Linux嵌入式系统开发平台选型探讨(11-09)
- Windows CE 进程、线程和内存管理(二)(11-09)