APP下载

导弹测试系统中的高速数据传输技术研究

2011-06-30王志,吴红芳

现代电子技术 2011年9期
关键词:数据采集

王志, 吴红芳

摘 要:导弹舵机测试要求具有高效率、大批量的连续数据传输能力,且总体测试的复杂性和参与测试部件不断增加,所以必须从硬件结构研究高速数据传输技术,同时缓解系统资源消耗压力。研究DMA、缓存、同步触发等高速数据传输技术,基于这些技术构建高速测试系统,并应用于某型导弹舵机频率特性测试及总体测试。理论研究及其应用表明,构建的高速测试系统具有数据流量大,传输效率高,系统资源消耗低,信号处理速度快等优点,可以满足导弹测试的数据传输要求,也可应用于其他有高速数据传输要求的系统。

关键词:舵机测试; 定时器; 数据采集; 缓存; DMA; 同步触发

中图分类号:TN914-34

文献标识码:A

文章编号:1004-373X(2011)09-0017-04

Technology of High-speed Data Transmission in Missile Test System

WANG Zhi1, WU Hong-fang2

(1. Computer Science and Engineering College, Xian Technological University, Xian 710032, China;

2. Luoyang Optoelectro Technology Development Center, Luoyang 471009, China)

Abstract:

Missile actuator test requires continuous data transmission capability with high efficiency and huge quantity, and its complexity and participating parts in general test increases gradually, so the high-speed data transmission technology must be studied from hardware while system resources consumption can be alleviated. The technologies of DMA, buffer and synchronous trigger in high-speed data acquisition system are researched. Based on them, the high-speed test principle is studied and applied to some missile actuator test The theory and application indicate that the constructed high-speed test system can meet the requirements of mass data flow, high transmission efficiency, low resources consumption and high-speed signal processing, and it can be used to other systems with high-speed data transmission.

Keywords: actuator test; timer; data acquisition; buffer; buffer; DMA; synchronous trigger

0 引 言

高速数据传输指高速的数据采集与激励,即要对测试对象的输出进行高速采集,同时还要把激励信号高速发送给测试对象。传统正弦扫频频域测试法,测试精度高但效率很低。基于调频脉冲扫频和FFT频谱分析的频率特性测试技术能够在保证测试精度的情况下提高测试效率,可以在数秒钟之内完成频率特性的测试和计算[1],但调频脉冲扫频要求高速数据传输,因此必须从硬件角度提高数据采集与激励的速度,即实现高速数据传输。Windows是多任务操作系统,开发平台提供的定时器精度低,完全不能满足高速数据传输的要求[2]。多媒体定时器可以实现1 ms精度的定时,适用于舵机时域特性测试,但用于频域特性测试精度还不够。

DMA是提高数据传输效率的高效I/O技术,是高速数据采集系统中常用的数据传送方法,在并行、大数据量处理方面具有较大优势,能有效缓解主机CPU的处理压力,加速执行效率[3],实现并行多路高速数据采集[4],可同时对模拟信号、串行信号和并行信号进行实时采集[5-6],从而极大地提高应用系统的性能[7-8]。

缓存技术是又一项实现高速数据传输的策略,常见的缓存技术有单缓存及双缓存技术。缓存技术已经成为提高数据传输效率,实现高速大批量数据传输的必要技术,已成功应用于连续无丢失数据采集[9-10]和连续大批量数据采集[11-12]系统,保证了数据分析与故障检测的效率和精度。

舵机是导弹飞行控制的重要部件,频率特性是导弹发射前测试的重要内容,由于传统频率特性测试方法效率低,无法满足发射前高效率高精度的测试要求。本文综合研究了缓存、DMA、同步触发等技术原理,并利用这些技术构建了高速测试系统。理论研究和实例应用表明,构建的高速测试系统具有数据流量大,传输效率高,系统资源消耗低,信号处理速度快等优点,能够解决导弹发射前舵机频率特性的测试难题,可以应用于各类导弹测试系统。

1 高速测试原理

Windows系统是多任务操作系统,定时精度低,无法实现多部件、多指标的复杂导弹自动化测试系统连续大数据量的高速实时数据传输与处理。DMA技术和缓存技术把数据传输的任务交由DMA控制器完成,大大减轻了测试计算机的CPU压力,同时降低了内存消耗。利用FFT技术对输入输出数据进行处理,可以高效地获得测试对象的频率特性,并由此计算出各频域指标。基于DMA技术、缓存技术和FFT技术构建的高速测试系统如图1所示,系统包括两个部分:数据传输和数据处理。

图1 高速测试系统原理

数据传输旨在从硬件上构建高速测试系统的物理基础,实时、快速、无丢失地把数据传输到测试系统。数据传输包括激励和采集两部分,即D/A和A/D部分。测试系统首先离散化激励信号,通过驱动程序接口把数据预先注入在激励缓存(AO RAM)中。测试开始时,测试系统对D/A和A/D进行同步触发,开始D/A转换和A/D转换。同时激励端DMA开始把RAM中的激励信号传送到板上FIFO中,由D/A进行转换;采集端DMA把A/D输出在FIFO的数据放入采集缓存(AI RAM)中,由测试系统获取。

数据处理部分从测试系统的Buffer里读取数据,使用FFT算法获取测试对象的频率特性,进而计算各种频域指标;由于采集的是时域数据,时域指标不需要进行复杂的算法处理即可获得。FFT是离散傅里叶变换的快速算法,是频谱分析的有效工具。

2 DMA控制

主机与外设间通信有三种基本方式:可编程I/O,中断I/O和DMA。前两种方式通常用于小数据量的低速传输,而DMA则适合于高速连续的大块数据量传输。DMA方式在外设和内存间建立直接的通道,CPU不再直接参加外设和内存间的数据传输[6]。

DMA传输时,CPU把地址、数据和控制线的管理权交给DMA控制器进行控制;完成一次DMA数据传输后,再将控制权交还给CPU。这些工作由硬件自动实现,不需要程序进行控制。这样就可以在大批量数据传输时,减少对CPU资源的占用,提升系统的性能。

对于信号发生和数据采集任务(如图2所示),DMA与CPU协同工作的过程如下:信号发生时,CPU把测试系统生成的激励信号(RAM中)存入缓存中,DMA取得控制权后,把缓存数据导入FIFO,随时准备D/A输出;数据采集时,DMA把A/D输出在FIFO中的信号传输到缓存中,CPU取得控制权后,把缓存的数据读取出来写入内存(RAM中)供测试系统使用。

图2 DMA工作原理

DMA作为直接内存访问技术,是外部设备与内存通信的一种机制,必须靠DMA控制器即DMAC来实现和完成。DMAC模块挂接在系统总线上,是实现DMA功能的核心部件。为了实现一次完整的测试任务,DMA和CPU需要来回交换多次总线控制权,以不断实现和完成各自的功能与任务。

3 缓存技术

常用的缓存技术有FIFO技术,单缓存技术和双缓存技术等。FIFO技术常见于队列数据结构、各种数据采集卡和信号发生器中,实现数据先入先出逻辑。对于高速数据传输技术而言,它已经固化在数据采集卡中,用户程序不可控。双缓存技术常见于各类图形显示与处理系统,用于提高图像显示的连续性,避免闪烁和停顿问题。单缓存技术是连续数据传输最常见的缓存技术,它一次性申请,一次性释放,写入和读取操作都比较简单;单缓存技术最重要的实现目标就是高效率的数据传输,数据处理在传输完成后进行。

3.1 单缓存技术

舵机测试系统中,高速数据传输包括激励信号发生和输出数据采集两部分,分别使用数据缓存AO RAM和AI RAM。根据采样频率fs和采样时长Tss,可以确定AI RAM的大小:

Size of AI RAM=

Tss•fs•Num of AD Chans•Bytesof sample

(1)

式中:Num of AD Chans表示采样中的A/D通道数;Bytes of Sample表示一个采样数据的字节大小。例如,对于4路16位精度的A/D通道,Num of AD Chans=4,Bytes of sample=2。

同理,根据激励频率fa和激励时长Tas,可以确定AO RAM的大小:

Size of AO RAM=

Tas•fa•Num of DA Chans•Bytes of Actuator

(2)

式中:Num of DA Chans表示激励中的D/A通道数;Bytes of Actuator表示一个激励数据的字节大小。例如,对于2路12位精度的D/A通道,Num of DA Chans=2,Bytes of Actuator=2(内存里没有1.5 B)。

数据传输总共需要的缓存为采样缓存和激励缓存的和,即:

Size of Total=Size of DA RAM+Size of AD RAM

(3)

通常,参与测试的输入输出通道数与测试部件相关。从式(1)~式(3)可知,采样频率越高,时间越长,参与测试的部件越多,需用的单缓存空间就越大。

3.2 双缓存技术

双缓存实际上就是一个逻辑循环缓存,它划分为两个容量相等的部分。双缓存的工作原理可以用图3所示的读写过程描述,DMA负责把数据写入双缓存,应用程序循环检测半满状态或者当双缓存半满时驱动程序发出半满事件,然后由应用程序把数据读出/写入传输缓存。

图3 双缓存工作原理

双缓存数据读取有两种方式:循环检测和事件触发。循环检测使用查询方式判断双缓存是否半满,这会占用大量的CPU时间,导致整个系统运行缓慢;事件触发类似中断方式,当半满时,通过半满事件调用事件处理例程,完成数据读取工作。从系统性能角度考虑,推荐使用事件触发的数据读取方式。

使用双缓存技术主要为了提高数据的传输效率,工作过程中不做双缓存的清理工作,而是在数据采集完成后,做一次缓存清理,释放双缓存空间。DMA把第一部分数据拷贝到传输缓存中,直接开始写第二部分,而不清理第一部分缓存;当第二部分写满时,DMA把数据拷贝到传输缓存中,直接覆盖第一部分,而不清理第二部分缓存。由于缓存的清理、释放和申请会占用大量的DMA时间,因此双缓存的这种工作机制极大地降低DMA工作压力和内存管理风险,从而保证双缓存工作的顺畅性。

3.3 两种缓存技术比较

单缓存与双缓存技术各有所长,常常互相补充,应该根据不同的情况选择不同的缓存类型。表1从五个方面分析和比较了单缓存和双缓存的工作特点,供选择缓存方式时参考。

表1 单缓存与双缓存比较

参数单缓存双缓存

内存空间占用与采集时长、采样频率、通道数有关循环使用固定长度的内存

最大采样频率允许充分利用硬件的高速采样能力受限于测试系统的处理能力

最大采样数受限于缓存容量和可用物理内存大小取决于采样时长和测试任务

内存管理一次申请,一次清理一次申请,一次清理

数据处理采集完成后处理采集过程中或完成后处理

单缓存操作中,以固定速率采集固定容量的样本,测试系统读取采集数据后进行数据处理。单缓存技术实现简单,能充分利用硬件设备的处理能力,但是最大采集数据量受限于预先设置的传输缓存大小和计算机内存的大小。而双缓存技术利用循环缓存技术重用同一块缓存区,从而利用有限的内存空间实现无限长数据的采集;但是双缓存技术可能引起数据复制至传输缓存之前被覆盖,而且可能在数据复制至传输缓存的过程中被覆盖,因此,双缓存技术要求测试系统读取和处理数据的速度要比DMA把数据写入循环缓存的速度快,因此在数据采集过程中不能进行过于复杂耗时的数据处理[7-8]。

对于Windows这类多任务非实时操作系统,需要大量高频数据采集时,使用双缓存技术不够安全,而且会消耗大量的CPU处理时间,影响系统中其他任务的正常执行。在这种情况下,建议使用单缓存技术。但是对于在数据采集过程中需要进行数据处理的情况,则必须使用双缓存技术,单缓存技术只能支持数据采集完毕时的数据处理。

4 同步触发

对于频率特性的测试,需要对测试对象的输入、输出进行严格的同步操作,否则会导致测试结果不准确,引入非同步误差。如图4所示,x(t-t1)为D/A输出,y(t-t2)为采样输出,G(jω)为对象频率特性描述。以下不考虑D/A,A/D环节的影响,分析同步触发的必要性与原理。

设x(t)的傅里叶变换为X(jω),则x(t-t1)的傅里叶变换为X(jω)e-jωt1。同理y(t)的傅里叶变换为Y(jω),有y(t-t2)的傅里叶变换为Y(jω)e-jωt2。根据信号的输入、输出关系,有:

G(jω)=FT(y(t-t2))FT(x(t-t1))=Y(jω)e-jωt2X(jω)e-jωt1

=Y(jω)X(jω)e-jω(t2-t1)

(4)

式中:FT表示傅里叶变换。由式(4)可见,当t1≠t2时,即D/A与A/D未进行同步时,输入起始时刻t1与采样输出起始时刻t2不一致,而在实际计算时则会按照t1=t2,即t2-t1=0的情况计算:

G′(jω)=Y(jω)X(jω)e-jω(t2-t1)=Y(jω)X(jω)

(5)

从而导致相位误差Δφ=-ω(t2-t1)。

图4 同步触发原理

同步控制就是要通过控制实现D/A信号发生与A/D输出采样的同步开始,即同步触发,从而保证始终有t1=t2成立,达到消除计算误差的目的。同步触发源有软件触发、模拟触发、数字触发等,触发模式有前触发、中触发、后触发和延迟触发等。考虑触发的自动化特性和操作的便捷性,通常选择软件触发的后触发模式实现D/A和A/D的同步触发控制,这也是许多先进总线模块支持的触发类型。

5 实例应用

导弹发射前的舵机测试是导弹测试的重要任务,是检测和保证导弹发挥作战效能的关键环节。传统发射前只测时域特性,而频域特性的测试在生产过程和定期维护中测试。正弦扫频法测频率特性效率非常低,一般耗时在30 s以上,无法满足发射前舵机测试的效率要求。采用调频脉冲扫频法大大提高了舵机的测试效率,但是要求硬件采样速率高,数据传输速度快,基于DMA、缓存技术和同步触发技术的高速测试系统能够极大地提高数据传输速度,成为舵机测试系统硬件设备选择的关键因素。

某型导弹舵机测试系统中选择ADLINK公司的DAQ-2006多功能数据采集卡用于舵机测试,其有4个16位精度、最大采样速率为250 Kb/s采样数据的A/D通道,2个12位精度、最快更新时间1 μs的D/A通道,以及24针可编程数字I/O口;A/D端FIFO容量可达512个采样数据,支持循环检测、集散DMA;D/A端FIFO容量可达2 KB激励数据,支持可编程I/O、集散DMA。此外,该卡还支持外部模拟和数字触发功能,支持软件触发源,以及后触发模式等。使用DAQ-2006完全可以实现本文研究的高速测试原理和满足该舵机的测试要求,系统结构如图5所示。

图5 基于DAQ-2006的舵机测试原理

在测试频率特性时,将数据采样频率和数据更新频率设置在10 kHz,使用DMA控制的单缓存数据传输;测试时域特性时,将数据采样频率和数据更新频率设置在1 kHz左右,使用DMA控制的双缓存数据传输。该型舵机测试过程显示:利用DMA单缓存和DMA双缓存技术实现的测试系统,CPU占用均稳定在2%~4%之间,资源消耗较低。需要指出,应用DMA双缓存技术时,应该使用事件而非查询的方式读取缓存数据,否则CPU资源耗费会相当大。

可见,本文研究的DMA和缓存技术能够有效缓解测试系统运行时CPU资源消耗压力,从而给多部件测试和总体测试预留足够的系统资源。

6 结 语

基于DMA、缓存技术和同步触发技术,构建了高速测试系统的硬件通信结构,支持了测试系统对高效率大数据量连续传输的要求。根据这些技术,选择了ADLINK公司的DAQ-2006多功能数据采集卡用于某型导弹舵机测试,理论和开发应用表明,本文研究的高速测试技术能够解决舵机测试过程中遇到的问题,满足舵机各种性能指标的测试要求,可以应用在导弹发射前舵机测试上。

通过该高速测试系统采集的大量数据,有力地支持了舵机各类性能指标的计算,为提高测试效率和测试精度提供了高效的硬件结构,同时也为基于测试的舵机故障诊断及缓解导弹总体测试对系统资源的消耗压力奠定了良好的基础。本文研究的高速数据传输技术与原理具有较好的通用性,可以应用于其他要求高速数据传输的系统中。

参考文献

[1]汪首坤,王军政.基于调频脉冲扫频的导弹舵机频率特性测试方法[J].北京理工大学学报,2006,26(8):697-702.

[2]胡洪飞,张元芳,黄海鲲,等.Windows环境下的高速数据采集与处理[J].高电压技术,2003,29(7):28-29.

[3]BASOGLU CHRIS, KIM YONGMIN, CHALANA VIKRAM. A real-time scan conversion algorithm on commercially available microprocessors [J]. Ultrasonic Imaging, 1996, 18(4): 241-260.

[4]杨建华,侯宏,王磊,等.采用DMA技术的真实并行多路高速数据采集系统[J].数据采集与处理,2002,17(1):77-80.

[5]王浩枫.用DMA方式实现三路信号的同时采集[J].计算机工程与设计, 2003,24(8):47-49.

[6]吴忠杰,林君,谢宣松.基于PCI总线的高速数据采集系统[J].吉林大学学报:信息科学版,2005,23(2):167-171.

[7]曹宗凯,胡晨,姚国良.DMA在内存间数据拷贝中的应用及其性能分析[J].电子器件,2007,30(1):311-313,317.

[8]马进,王伟,杨煜普.基于DMA的1394总线高速数据传输实现[J].计算机工程与设计,2010,31(20):4410-4413.

[9]PUJARA H D, SST-1 data acquisition team. Loss-less data acquisition system for SST-1 [J]. Fusion Engineering and Design, 2003: 935-939.

[10]王元祥.高速数据采集系统的设计实现及存储瓶颈问题的解决[D].武汉:华中科技大学,2007.

[11]SHI D, AXINTE D A, GINDY N N. Development of an online machining process monitoring system: a case study of the broaching process [J]. Int. Adv. Manuf. Technol., 2007, 34(1-2): 34-46.

[12]黄建科.高速大容量数据通道在数字成像系统中的应用研究[D].长沙:湖南大学,2003.

注:本文中所涉及到的图表、注解、公式等内容请以PDF格式阅读原文

猜你喜欢

数据采集
CAN总线通信技术在电梯监控系统中的应用
基于AVR单片机的SPI接口设计与实现
CS5463在植栽用电子镇流器老化监控系统中的应用
大数据时代高校数据管理的思考
基于广播模式的数据实时采集与处理系统
通用Web表单数据采集系统的设计与实现
基于开源系统的综合业务数据采集系统的开发研究
大数据时代的管理会计