摘要:为了对铁路信号进行分析,系统采用一种基于USB接口的虚拟信号分析仪实现方法。以FPGA为主控芯片,采用高速A/D转换器进行音频信号采集,USB接口传输,LabVIEW平台实现信号分析。具有开发成本低,便于重构的优点。测试结果表明,系统功能正常,性能稳定。
关键词:音频分析;虚拟仪器;FPGA;USB
0 引言
音频分析仪是一种利用频谱分析原理,以数字信号处理为分析手段,提取信号在时域、频域内一系列特性的过程,是对音频信号进行频率、频谱及波形分析的一种测量工具,应用于电声测量、音频制作、信号分析乃至振动测试等领域。
早期的音频测量一般是利用频率计、示波器及频谱仪等组合成一套测试系统。这种测试系统中间环节多,各环节之间接口匹配较为困难,使用起来比较麻烦,测量结果往往也不精确。目前虽然大部分的音频分析仪已向集成化方向发展,但仍以硬件电路实现传统意义上的音频分析,有着自身无法克服的缺点。为此,本文提出了一种利用虚拟仪器技术来实现音频分析的设计方案。
1 系统总体设计
本设计采用FPGA为系统的主控制芯片,完成音频信号采集,数模转换,数据传输等功能,并在虚拟仪器软件的基础上确定了一种方便可行的音频分析仪的设计方法。
系统总体设计框图如图1所示。音频信号经过前置放大器进行放大后进入A/D转换器,经过转换得到数字信号,存入FIFO缓存区,数据在FPGA主芯片中进行编排控制,经过USB接口传送给计算机,最后由LabVIEW来完成音频信号的处理并显示结果。
2 系统硬件设计
系统硬件电路的核心芯片选用Altera公司CycloneⅢ系列FPGA EP3C25,该器件密度为18万门,最高工作频率高达300 MHz,完全可满足高速数据采样速率时序要求。
2.1 前置放大电路设计
前置放大电路用于将信号放大到A/D转换器要求的电压范围。为保证放大电路的性能指标,采用AD公司的高频宽带运放AD811为核心进行设计,如图2所示。AD811 3 dB带宽高达140 MHz,并且具有2 500 V/μs的速度,差分增益误差小于0.01%,0.01°差分相位,电流噪声为1.9 nV。
前置放大电路的VIN为信号输入口,U3和U4设计为反相和同相放大电路,以构成单端输入至差分平衡输入转换电路,以满足A/D转换器对信号形式的要求。
2.2 高速A/D转换电路
A/D转换电路采用TI公司的双通道高速A/D转换器ADS2807。ADS2807集成了高带宽跟踪保持电路,即使在高达或超出奈斯奎特速率的情况下,同样具有优秀的噪声性能。该跟踪保持电路和ADC电路的差动特性不仅能够最大程度地减小偶阶谐波,而且可提供优秀的共模噪声抑制性能。ADS2807的信噪比为65 dB,无杂散信号动态范围为70 dB。高速A/D转换电路如图2所示。
2.3 USB接口
USB接口芯片选用CYPRESS公司的EZ-USBFX2芯片CY7C68013。CY7C68013有Slave FIFO和GPIF两种接口方式,本设计采用Slave FIFO模式,FPGA与USB硬件接口如图3所示。
图中D0~D7为数据总线,用于数据传输;INTI为中断标志,当传输完一组数据时产生一次中断。IFCLK为外部时钟输入;FIFOADR[1:0]选择四个FIFO中的一个,本设计中FIFOADR[1]直接接+3.3 V,FIFOADR[0]直接接地,选择用EP6传输数据,4倍缓存;FULL为FIFO满状态标志,低电平有效;SLWR为数据写入FIFO使能,低电平有效;FD[7:0]为8位数据线。
如上所述,系统选择了FIFO的异步模式进行数据传输的方式。在IFCLK的上升沿,如果SLWR有效(低电平有效),而数据有满足建立保持时间,数据就被写入FIFO,同时,若内部控制器发现FIFO己满,经过大约为10 ns的延时,FULL标志会被置成有效。
3 系统软件设计
3.1 USB固件设计
固件是在USB接口芯片加电后,由其他设备加载到CY7C68013中并在其中运行完成接口数据传输功能的一段程序,其作用是控制硬件来完成预期的设备功能。固件的主要功能包括:初始化工作、辅助硬件完成设备的重枚举过程、对主机的设备响应做出适当的响应、对中断的处理、数据的接收与发送、对外围电路的控制。
本系统固件程序采用Cypress公司提供的固件程序框架,在其初始化函数中添加了用户配置代码。该设计中异步自动从属FIFO数据传输的初始化代码如下:
3.2 USB驱动程序设计
USB驱动程序处于应用程序和设备端固件之间,使操作系统识别USB设备,并建立起主机端和设备端之间的通信。
VISA(Virtual Instrument SoftWare Architecture)是美国NI公司开发用来与各种仪器总线进行通信的高级应用程序编程接口(API)。它不受平台、总线和环境的限制,可用来对USB、GPIB、串口、VXI、PXI及以太网等进行配置、编程和调试。因此本系统利用LabVIEW的VISA来对USB的底层驱动经行开发,具体步骤如下:
(1)使用Driver Development Wizard创建INF文档。
(2)安装INF文档,并安装使用INF文档的USB设备。
(3)使用NI-VISA Interactive Control对设备进行测试。
USB底层配置正确以后,选择VISA类为USBRaw,计算机会自动刷新选择的USB设备,利用VISAOpen,VISA Close,VISA Write和VISA Read
四个节点即可实现和USB设备的双向通信。与USB设备的通信过程分为4个步骤:
(1)由VISAOpen函数打开VISA resource name端口指定的USB设备;
(2)通过VISA Write函数向USB设备发送控制命令启动设备工作,USB设备接收到控制命令后开始采集数据并将采集到的数据按要求发送到数据缓冲区;
(3)通过VISA Read函数将数据读出;
(4)通过VISA Close函数关闭设备。
3.3 LabVIEW程序设计
LabVIEW是美国NI公司开发的一种图形化编程软件,具有良好的图形显示功能,提供种类齐全的各种波形图和波形图表控件,能够以多样化的方式直观地显示各种信号波形。其次LabVIEW拥有数量众多、功能齐全的信号分析与处理子VI,供用户调用,从而组合实现出所需要的信号处理功能。同时LabVIEW具有良好的扩展性,无论是通过附加工具包扩展,还是通过其他平台(如Matlab/Simulink)的接口扩展,都能很方便地进一步扩展其信号处理功能。
本音频分析仪主要包括音频信号采集与存储模块,音频信号功率谱分析模块,音频信号频谱分析模块和波形显示模块。其中频谱分析采用快速傅里叶变换算法(FFT),经过FFT变换后,可以十分直观地观察信号所包含的频率信息。其中信号采集与存储模块,功率谱分析模块如图4,图5所示。
4 系统测试
联机进行实验测试,得出音频分析结果如图6所示。
从测试结果中可以直接观察到信号的频谱分析、谐波分析、信号功率谱以及功率谱密度等信息,实现了对音频信号的分析。
5 结语
以FPGA为主控芯片的采集系统可实现对音频信号的采集和预处理,而采用USB传输数据可以保证较高的带宽和高速稳定的传输速率,利用LabVIEW强大的信号处理能力,很好地实现了音频分析仪的功能。