虚拟仪器(Virtual Intrument)技术是测控领域测量的一个重要方向,是计算机技术与仪器技术深层次结合产生的全新概念的仪器,是对传统仪器概念的重大突破。为了满足高校、科研机构等对一些实验设备的需求,在低成本条件下开发一些虚拟仪器成为一种趋势。组建虚拟示波器为例介绍如何开发虚拟实验仪器。
1 从数据采集的角度看声卡
从数据采集的角度来看,声卡是一种音频范围内的数据采集卡,是计算机与外部的模拟量环境联系的重要途径。
1.1 声卡的工作原理
声卡的工作原理其实很简单,其工作流程图如图1所示。我们知道,麦克风和喇叭所用的都是模拟信号,而电脑所能处理的都是数字信号,声卡的作用就是实现两者的转换。从结构上分,声卡可分为模数转换电路和数模转换电路两部分,模数转换电路负责将麦克风等声音输入设备采到的模拟声音信号转换为电脑能处理的数字信号;而数模转换电路负责将电脑使用的数字声音信号转换为喇叭等设备能使用的模拟信号。
2 声卡的主要技术参数
(1)采样的位数。
采样位数可以理解为声卡处理声音的解析度。这个数值越大,解析度就越高,录制和回放的声音也就越真实。声卡的位是指声卡在采集和播放声音文件时所使用的数字声音信号的二进制位数,它客观地反映了数字声音信号对输入声音信号描述的准确度。例如,8位代表28=256;16位则代表216=64000。比较一下一段相同的音乐信息,16位声卡能把它分为64000个精度单位进行处理,而8位声卡只能处理256个精度单位,最终采样效果自然是无法相提并论的。
(2)采样频率。
目前,声卡的最高采样频率是44.1kHz。少数达到48kHz。对于民用声卡,一般将采样频率设为4档,分别是44.1kHz、22.05kHz、11.025kHz和8kHz。22.05kHz只能达到FM广播的声音品质;44.1kHz是理论上的CD音质界限,48kHz则更好一些。对20kHz范围内的音频信号,最高的采样频率才48kHz,虽然理论上没问题,但似乎余量不大。使用声卡比较大的局限在于它不允许用户在最高采样频率之下随意设定采样频率,而只能分为4档设定。这样虽然可使制造成本降低,但却不便于使用。用户基本上不可能控制整周期采样,只能通过信号处理的方法来弥补非整周期采样带来的问题。
(3) 缓冲区。
与一般数据采集卡不同,声卡面临的D/A和A/D任务通常是连续状态的。为了在一个简洁的结构下较好地完成某个任务,声卡缓冲区的设计有其独到之处。为了节省CPU资源,计算机的CPU并不是每次声卡A/D或D/A结束后都要响应一次中断,而是采用了缓冲区的工作方式。在这种工作方式下,声卡的A/D、D/A都对某一缓冲区进行操作。以输入声音的A/D变换为例,每次转换完毕后,声卡控制芯片都将数据存放在缓冲区,待缓冲区满时,发出中断给CPU,CPU响应中断后一次性将缓冲区内的数据全部读走。计算机总线的数据传输速率非常高,读取缓冲区数据所用时间极短,不会影响A/D变换的连续性。缓冲区的工作方式大大降低了CPU响应中断的频度,节省了系统资源。声卡输出声音时的A/D变换也是类似的。
一般声卡使用的缓冲区长度的默认值是8KB(8192字节)。这是由于对X86系列处理器来说,在保护模式(Windows等系统使用的CPU工作方式下)下,内存以8KB为单位被分成很多页,对内存的任何访问都是按页进行的,CPU保证了读写8KB长度的内存缓冲区时,速度足够快,并且一般不会被其他外来事件打断。设置8192字节或其整数倍(例如32768字节)大小的缓冲区,可以较好地保证声卡与CPU的协调工作。
(4) 无基准电压。