【doc】基于计算机声卡的多通道数据采集系统
基于计算机声卡的多通道数据采集系统 2002年12月
第32卷第6期
西北大学(自然科学版)
JournalofNorthwestUniversity(NaturalScienceEdition)
Dec.2002
Vo1.32No.6
基于计算机声卡的多通道数据
种兰祥,阎丽,张首军
(西北大学电子科学系,陕西西安710069)
采集系统
摘要:运用LabVIEW开发系统,在配置有4块声卡的计算机上,实现了同时进行4个通道的并行
数据采集,解决了在同一时间坐标中显示多个具有独立时钟的波形问
,从而构成了一个多通道数
据采集系统.实验结果表明:该系统能够正确采集声卡设计频率范围内的信号,可用于在该频段需
要数据采集与一般
的领域.
关键词:数据采集;采样精度;采样频率;采样通道;声卡;LabVIEw;DMA 中图分类号:TP334.7文献标识码:A文章编号:1000—274x(2002)06—0629—04 数据采集系统是将特定的物理信号真实地进行
记录,以供人们进一步分析研究的电子系统.通常运
用计算机进行数据采集时需要传感器(对非电量而
言),信号调理器,插入式数据采集板和相应的控制
软件.其中数据采集板是核心部件,其采样频率,采
样精度和通道数等直接影响着采集到的信号的质量
和数量.商用的数据采集板具有较大的通用性,一般
像12位采样精度,数据采集频率是200kHz,8路采 样通道能够满足多种应用需要,但其价格昂贵,与一 台普通计算机的价格相当甚至更高,在具体的应用 场合,有些功能可能并不使用.普通声卡,具有16位 的量化精度,数据采集频率是44kHz,特别是运用 多个声卡组成多通道的数据采集系统,可以满足特 定应用范围内数据采集的需要,个别性能指标还优 于商用数据采集板,而价格却为商用数据采集板的 十几分之一甚至几十分之一.
1多通道声卡数据采集系统的实现
目前声卡都使用专用芯片.在一块声卡上,有晶 振,AD/DA转换芯片和数字信号处理芯片及其他 辅助电路.因此,它可以作为数据采集卡使用,不过 被采信号的频率被限制在音频范围之内.PC98规 范的实施,使声卡从ISA总线向PCI总线转换口]. PCI数据总线是32位,时钟频率为33MHz的数据 总线,支持猝发通信,最高数据传输率达132MB/s, 是ISA总线的22倍【2],完全满足声卡在16位的最 高采样精度和数据采集频率44.1kHz下的705.6 kb的数据传输要求.每个PCI设备有一个独立的配 置空间,使用系统的中断,I/O和地址空间,而且主 板上的PCI总线并不是每根线都相连r3].这样,PCI 总线的使用,解决了声卡与系统交换数据的瓶颈问 题,同时也就能充分发挥DSP芯片的性能和功能. 其中,特别重要的是,声卡是用DMA方式进行数据 传送的,这样就极大地降低了对CPU的占用率.正 是利用这一点,在一台单CPU的普通计算机上配 置多块声卡,多块声卡并行工作,一块声卡提供一个 输入通道,从而构成一个多通道数据采集硬件系统.
利用声卡的DMA方式进行数据采集,软件控 制是关键.首先要设定每个通道的采样频率,采样位 数,缓冲区大小等,然后再使用声卡进行数据采集工 作.声卡将采集到的数据通过DMA传送到内存中 指定的缓冲区,当缓冲区满后,再通过查询或中断机 制通知CPU执行显示程序显示缓冲区数据的波 形,实际上是将缓冲区数据转移到显示缓存中,或者 再把数据存储到磁盘,供以后分析研究使用,可周而 复始.然而,多个声卡并行进行数据采集工作,每个 声卡具有自己的晶振,时钟不能同步,在一个程序 中,对它们进行控制管理,基于控制流的传统文本编 程语言难以完成.
收稿日期:2001—12—25
基金项目:西北大学科研基金资助项目(0()NW34) 作者简介:种兰祥(1960一),男,陕西合阳人,西北大学副教授,主要从事测量的网络
化与数据处理方面的研究.
一63O一西北大学(自然科学版)第32卷 LabVIEW是美国NI公司推出的一个面向仪 器控制的,具有数据计算与分析,波形显示与打印等 功能的虚拟仪器开发平台,采用数据流控制的G语 言编程,可生成高速度高效率的执行代码lL4j.这里, 尤其是基于数据流控制的G语言自然具备开发并 行执行程序的特点,使得LabVIEW成为一个多任 务,多线程的开发系统].本文在LabVIEW环境 下,将4个独立声卡的控制与管理集中在一个应用 程序中,借助硬件驱动程序对声卡的采样频率,采样 位数,缓冲区大小等分别进行控制,根据用户的需要 调整波形显示,设有错误处理功能,从而构成一个四
通道声卡数据采集软件系统.其中,每个声卡的控制 与管理,数据采集与处理程序完全独立且并行运行. 图1为四通道数据采集系统中的0通道的time waveforme0的部分原代码.作为实验,本文又对0 通道的数据输入增加了频率测量,最大值和最小值 测量,波形数据存储功能,1通道增加了波形再显示 功能,可以不同长的帧和任意长的延迟显示通过其 他通道存储的数据波形.为了实现快速写盘,并存储 尽量多的数据而占用尽量少的空间,程序采用了二 进制文件形式存储波形数据.
图1四声卡四通道数据采集系统中waveforme0的部分G代码
Fig.1ThepartialGcodeofwaveforme0infourchannelsdataacquisitionsystemwithfoursou
ndcards
2不同通道波形叠加显示问题及解决
使用双通道示波器,将被测电路的输入信号和 输出信号波形同时显示出来,则有利于比较研究.对 于这些相关信号,使用多路数据采集系统采集时,同 样需要把它们显示在一个时间轴上.这对于专用数 据采集板来说容易实现.因为一个数据采集板只有 一
个时钟,所有通道共享一个采样频率.所标称的最 高采样频率是指当用一个通道采集数据时可达到的 采样率.如果同时有4个通道进行数据采集,则每个 通道的采样率为最高采样率的1/4,4个通道循环使 用时钟,并保持同步.此时,要叠加显示4个通道的 波形,只要简单定义一个×4的矩阵,一个通道占 据一列,n为要在一帧上显示的来自一个通道的样 本数.将该矩阵转置后送入图形显示模块,图形显示 模块则在时间轴上每增加1就打出4个点,这样就
在一个时间坐标中显示出4根曲线,等到缓冲区满 后再显示下一帧.然而,多声卡多通道系统即使运用 同一采样频率(如44kHz).因每个声卡有自己的晶 振,时钟不能同步,甚至频率可能还有差异.所以,在 同一时间段内,不同通道采集到的样本数的多少可 能不同,如果要在同一时间轴上显示出4个波形,在 同一时间段内,把每一个通道采集到的数据放在一 个一维数组中,每一个数组再构成一个群.这4个群 作为4个元素再构成一个一维数组,这样可对少的 样本数进行平均插值,最后如同显示单个数据采集 板4个通道的数据波形一样以帧的形式显示出来. 这样处理就能允许每个通道采集到的样本数是可变 的,但这要占用CPU资源.作为实验,本文将wave— forme2和waveforme3放在一个时间轴上显示出 来,如图2所示.
3数据采集系统的实验测试与分析
声卡的设计目标是采集人耳能听见的音频信 号,隔掉了直流,也不接收22kHz以上频率部分.为 了得到有意义的实验结果,本文选用台湾固伟的 GFG8216A函数信号发生器作为标准信号源,泰克 公司的TDS22O实时数字存储示波器作为标准测试
第6期种兰祥等:基于计算机声卡的多通道数据采集系统一631一
量32
基
雯
图2多个非同步采集的信号波形的叠加显示 Fig.2Theoverlaiddisplayofmultiplesignalsasyn— chronoussampled
仪器进行对照测试.计算机配置为Pnl667MHz/ 128MB内存.图3是系统测试到的4个波形显示界 24O00
i000o
0
10000
TimeWaveform0
0000500丁5l00
t/ms
面,其纵坐标是16位量化精度所表示电压范围,它 是一个相对值.由于不同声卡的增益不同,使用时必 须先对其进行"定标".以0通道为例,首先输入中间 频率为2.000kHZ,电压为0.65V的正弦波,测得 相对幅值为l9ll8,得出定标系数k一650/19ll8— 0.0340mV/格,用该系数乘以相对值,便得被测信 号的实际幅值,以数字的形式显示出来.然后在保持 输入电压不变的条件下改变输入频率,用TDS220 和采集系统同时测量其频率和电压幅值,结果如表 1所示.其最大的频率相对误差为1.13.当输入 频率达到20kHZ时,频率和幅值仍能正确测到.在 输入频率为10kHZ时,波形已有明显的折线.输入 频率从35Hz开始向低延伸时,测得电压下降较快. 0
10
×
.
-
24
210000
雯.
>
一
lO000
"Z0000
f,s
TimeWaveform3
图3波形显示界面
Fig.3Waveformdisplayinterface
表1输入信号测得值对照
Tab.1Thecontrastofinputvalueandmeasuredvalue
由表1可见,测得的最大电压647.82mV处的输入频率在500Hz附近.测得的电压
为0.707×
一
632一西北大学(自然科学版)第32卷
647.82—458.009mV处的输入频率大约在27Hz. 因此,只要被测信号的频率成分集中在0.03,22 kHz范围之内,都可被正确采集.为得到更好的波 形,则被测信号的频率成分应主要集中在0.1,1O kHz范围之内.从图3可看到这一点:waveforme0 是5kHZ的正弦波波形,waveforme1是1kHZ的 三角波波形,waveforme3是500Hz的方波波形, waveforme3是用口琴演奏的"do"的波形.
4结论
基于计算机声卡的多通道数据采集系统具有以 下特点:
1)价格低廉.声卡价格高主要体现在数字处理 芯片的性能好.作为数据采集使用时,用的主要是模
数转换芯片.因此,较低价格的声卡可满足数据采集
使用.
参考文献:
2)灵活性强.用户不仅可以方便地进行各种控
制操作,还可将采集到数据存储到磁盘,供以后分析
研究之用.在CPU速度足够快的条件下,还可以实
时地对数据做其他操作,如求波形的方均根,动态显
示波形的功率谱和频谱等.
3)频率范围较窄,不能测直流电压.受声卡硬
件条件限制,为了得到较高的精度和较好的波形,输
入频率应在0.03,10kHZ范围之内,从而也就限制
了它的应用范围.
4)特殊情况下可能需要信号调理.由于声卡具
有较大的增益,对于一些强度较强的信号要适当进
行衰减.但是,对一些弱信号还要进行放大,去噪处
理.因此,在特殊需要时,须外加调理电路.
总之,运用廉价的声卡,在LabVIEW环境下,
构成一个多通道的,较高采样精度,中等采样频率,
且具有很大灵活性的数据采集系统,对于一些应用
领域是一种很好的选择.
[1]冯延晖.计算机适配卡完全手册[R].北京:中国电力出版社,2001.10—11. [23李贵山,戚德虎.PCI局部总线开发者指南[M].西安:西安电子科技大学出版社,1997.6-10.
[3]汤晓安.PCI系统配置
的研究与实现I-j].计算机自动测量与控制,2000,8(2:)46.48.
[4]杨乐手,李海涛,肖相生.LabVIEW程序设计与应用[M].北京:电子工业出版社,2001.2-6.
[5]NationalInstramentCorporation.UsingLabVIEWtoCrateMultithreadVisforMaximun
PerformanceandRelibility
EL].www.ni.com/day.2001—10—25.
(编辑曹大刚)
Computer-basedmultiplechannelssoundcards
dataacquisitionsystem
ZHONGLan—xiang,YANLi,ZHANGShou—jun
(DepartmentofElectronScience,NorthwestUniversity,Xian710069.China) Abstract:Afour—
channelparalleldataaguisitionsystem,whichisbasedonacomputerwithfoursound cardsconfigured,hasbeenrealizedinLabVIEWprogrammingenvironment,andtheproblemofdisplaying
multiplewaveformeswithoneSownclockinonetimecoordinatehasbeensolved.Experimentresults
provethatthesystemcanacquiresignalsinthefrequencyrangedesignedforsoundcardaccurately,andcan
appliedinthedomainofneedingdataacquisitionandgeneralanalysis. Keywords:dataacquisition;samplingaccuracy;samplingrate;samplingchannels;soundcard;Lab—
VIEW:DMA