1 引言
激振源和数据采集模块是各种振动测试平台或系统的两个主要组成部分,在大多的振动测试系统中,针对系统的具体应用对象和功能,都提供了专用的激振源和数据采集模块。然而,随着计算机技术和多媒体声卡技术的发展与应用,在这些以计算机为核心的振动测试系统特别是振动教学实验系统中,配置专用的激振源和数据采集模块将是一种资源的浪费,计算机声卡在很多振动测试系统中完全可以同时作为两路激振源和两路数据采集模块。
针对在科研和教学广泛使用的振动教学实验系统,采用多媒体计算机声卡设计的两通道激振源和双通道数据采集,实现了声卡左右声道的独立工作,不仅很好地满足和保证了振动实验教学的教学要求和教学效果,而且充分利用了现有计算机系统资源以及大大降低了振动教学实验系统组建成本和系统投入。
2 系统总体方案
在基于声卡的振动教学实验系统中,计算机是核心,实现对声卡激励源、功率放大器、振动台、电荷放大器以及声卡采集等的管理和控制,它负责每个振动实验的过程控制、激励信号的产生与数据的采集和处理,其组成结构如图1所示。
系统中,声卡在计算机的控制下利用它的输出通道实现振动台激励信号的产生。计算机声卡作为音频输出设备的同时也是输入设备,它的硬件结构中有将模拟信号向数字信号转换的AD转换器以及滤波部分。
现在主流声卡AD的转换精度已经达到16位,最高采样频率44.1kHz,对于信号频率范围一般在10Hz~44kHz的振动实验,声卡的输出和输入性能完全可以满足激振和采集的要求。此外,现在声卡一般支持立体声,其左右声道可以独立控制,因此一块声卡就可以独立的两路激励源和数据采集通道,根据系统的需要,通过增加声卡可以实现更多路的激励源和数据采集通道。

图1 基于声卡的振动教学实验系统方框图
3 多媒体声卡技术
声卡技术是多媒体计算机中的关键技术之一,也基于声卡的振动教学实验系统的关键技术和部件之一。现在主流声卡都支持立体声,每通道有同为16位的数模转换器和模数转换器,标准采样频率有44.1kHz、22.05kHz、11.025kHz三种。[4]
3.1 声卡的工作原理
声卡的工作原理如图2所示,主要包括两个过程:声音信号的数字化过程和声音信号的重构过程。

图2 声卡的工作原理
主机通过总线控制模数转换器(A/D)将麦克风或CD的输入音频信号转换成数字信号,送到计算机进行各种处理,实现音频信号的数字化的过程。同时又将数字化的音频信号送到数模转换器(D/A),将数字信号变成模拟的音频信号,实现音频信号的模拟输出,即音频信号的重构过程。
3.2 声卡的软件结构
在Windows操作系统中,对声卡的操作都是利用标准API函数进行的,然后通过操作系统的MMSYSTEM标准驱动程序接口处理相关的音频设备,如图3所示。

图3 Windows环境下音频子系统驱动软件的结构框图
MMSYSTEM库是Windows音频子系统中与设备无关的翻译层,该库将应用程序与设备驱动程序隔离开,这使得应用程序通过简单调用MMSYSTEM库提供的统一设备控制接口(MCI—Media Control Interface)既可以实现对相关的各种标准多媒体设备的访问和控制。
4 关键技术分析
4.1多声卡的访问控制技术
应用声卡产生激振信号和采集数据的过程,就是调用相应的标准的API音频函数控制声卡,通过声卡的DA转换器实现数模转换实现输出相应的波形,通过AD转换器实现模数转换进行采集数据的过程。声卡的访问控制主要分为对声卡设备信息查询、声卡输出控制以及声卡输入控制三个部分,每个部分通过相应的API函数实现。在本系统中,由于涉及到声卡左右声道的独立工作与控制问题,因此,正确有效地调用相应的访问控制函数也是实现两通道独立并发工作的关键。
一个典型的声卡访问控制过程是:查询音频设备、获取音频设备的性能、打开音频设备、分配音频数据块、准备音频数据、关闭音频设备,整个过程由相应的输入、输出函数以及相关结构体的调用而实现。
在计算机配置多个声卡的系统中,音频设备信息查询是实现对多声卡访问控制的关键过程和步骤,与波形输入输出相关的API函数主要有WaveOutGetNumDevs和WaveInGetNumDevs,这两个函数实现查找计算机系统中有效的波形输出设备数量和波形输入(录制)设备的数量。通过查询设备过程返回的相关信息,实现对相应设备的访问和控制。
4.2 共享多线程技术
为提高系统并发响应和并发控制能力,要求计算机声卡的左右声道具备并行工作能力,即计算机声卡的每个声道能作为独立的硬件资源分配给指定的实验和测试进程,实现每个声道激振的振动台可以互不干扰进行相应的实验和测试。[5 6]
但在Windows系统条件下,声卡作为一种硬件设备资源应用时,一次仅可以被一个进程打开,其左右声道资源将被此进程完全占有,同时其他进程被禁止再次打开或使用此设备。比如,要在配有一个声卡的计算机上进行一个双声道的振动测试实验,并且要求两个声道进行独立的激励和采集,这就产生了一个声卡的两个声道如何独立并发工作的问题。
为了解决上述问题和提高系统的并发能力,系统在计算机的设备控制模块设计中,综合使用共享与多线程两项技术。共享指的就是将声卡使用句柄实现共享;在共享的基础上,再运用多线程技术实现对声卡的左右声道进行独立控制,从而使得计算机声卡具备并发响应和并发控制能力,进而增强系统对声卡的并发访问控制能力[7]。
5 结束语
计算机技术和多媒体声卡技术的发展与应用,基于声卡实现信号发生与数据采集变得更加直接、廉价和高性能。
振动教学实验系统的最大的优点就是充分地利用了计算机声卡资源,大大地降低系统组建的成本;而且系统结构简单,集成度高,整个系统只是一台多媒体计算机加上必备的振动台、传感器、功率放大器、信号调理设备,即可实现振动测试的相关测试和实验教学。
基于声卡的振动教学实验系统同时也具有很强的扩展能力,通过在计算机中增加多块多媒体声卡,即可实现多通道的信号发生与采集,进而实现多振动台、多激励源以及多点采集的振动测试系统。




