音频信号发生器是测量声音信号及处理设备性能指标必不可少的仪器。目前常用的音频信号发生器普遍由单片机及外围电路组成,频率稳定。下面小编为大家介绍音频信号发生器的设计步骤与过程。
音频信号发生器设计实例分享:
针对传统音频信号发生器的缺点,本文采用一款性价比高、功耗低的ARM Cortex-M4控制芯片,制作了一台智能音频信号发生器。该发生器的频率、幅度连续可调,按步进1 Hz、1 mV线性变化,兼具频率、幅度稳定的优点;通过PC端控制面板,直接输入幅度、频率值,就能快速地得到所需要的音频信号,精度高;一改信号发生器必须近距离调试的缺点,可通过以太网直接远距离操控。
1、总体设计
该音频信号发生器采用模块化设计,通过调用各个功能模块,实现主控计算机可远距离快速控制音频信号发生器输出信号的幅度、频率值。该系统以ARM Cortex-M4为核心。
2、硬件设计
该音频信号发生器通过主控计算机的控制面板输入控制幅度、频率值的指令,通过以太网快速远距离传输到信号发生器,控制数字合成音频信号的幅度、频率值,终通过音频输出端口输出所需音频信号。
2.1控制芯片
控制系统的核心STM32F429是以ARM Cortex-M4为内核的新型微控制器芯片,它的停止模式电流降至100μA(典型值),降低了停止模式的电流消耗,可延长便携应用电池的寿命,频率高达180 MHz,拥有市场的性能和图形处理功能。该芯片包含3个12 bit A/D转换器,多达24个通道,转换速率为2.4 MSPS,在扫描模式下,自动转换在选定的一组模拟输入中进行;还包括2个12 bit D/A转换器,可独立或同时转换。同时集成了大部分存储器控制器,可外接一个高速SDRAM作为内存扩充,有很高的性价比。
2.2远距离控制电路
以太网远距离控制是整个控制系统中的一个重要部分。该发生器通过以太网与PC连接,操控PC控制面板,按照要求输入所需的幅度、频率值,通过以太网把控制命令远距离地传输给音频信号发生器,达到远程控制的目的。
该以太网接口芯片DP83848CVV是一个全功能自适应网络连接速度10/100 Mb/s的单端口物理器件,允许设备使用所需操作电源的小值,提供低功耗性能。该芯片包括一个25 MHz的时钟输出,使应用程序含有少的外部器件,进而降低成本;同时支持10BASE-T和100BASE-TX的以太网协议,以确保与其他基于以太网标准解决方案的兼容性和互操作性。
2.3 SDRAM
同步动态随机存储器SDRAM与系统总线同步,无等待周期,而且是双存储体结构,读取效率得到成倍提高。SDRAM体积小、速度快、容量大、价格低,是比较理想的内存扩展器件。
该系统采用的SDRAM为MT48LC32M16A2P-7E,它的内存高达256 MB,在时钟频率66 MHz、100 MHz、133 MHz之间兼容,所有信号寄存在系统时钟的上升沿,自动预载,时钟使能CKE中的停用时钟提供预充电掉电和自刷新操作,在断电和自刷新模式下,包括CLK的输入缓冲区被禁用,提供低待机功耗。对每一行自动刷新的循环周期为64 ms,刷新命令一次对一行有效,发送间隔为7.812 5μs,从而提供无缝、高速、随机访问操作。A0~A11作为SDRAM的行地址线,同时A0~A7又复用为列地址线,BA0和BA1作为bank选择线,应用读、写或预充电命令。
信号采样频率为48 kHz,每个样点采用16 bit量化,如果小频率分辨率为1 Hz,所需查表的大小为48 k×16 bit,共需48 k×16 bit的RAM空间。显然SDRAM的存储空间足够使用,也便于以后该发生器对方波、三角波等波形的扩展。
3、软件设计
整个系统采用模块化设计,除主程序外,各功能子程序分别执行PC端输入控制命令、以太网传输、SDRAM内存扩展、正弦查询表映射、数模转换等相应功能。
3.1 PC端控制
信号发生器可产生正弦波、方波、三角波等规则波形信号,本信号发生器仅以正弦波为例。
音频信号发生器的PC控制端采用Java技术,因为它可跨平台操作,具有卓越的通用性、高效性,所以设计的PC控制端具有界面友好、操作简单、成本低、容易实现等优点。
JPanel jp0,jp1;
JPanel jp2,jp3;
JLabel j0,j1,j2;
JTextField txt1,txt2;
JButton Bopen,Bclose;
public TianComm(){
jp0=new JPanel();
jp1=new JPanel();
jp2=new JPanel();
jp3=new JPanel();
j1=new JLabel("频率(Hz):");
//输入频率值,单位为Hz
j2=new JLabel("幅度(mV):");
//输入幅度值,单位为mV
txt1=new JTextField(10);
txt2=new JTextField(10);
Bopen=new JButton("打开");//打开控制面板
Bclose=new JButton("关闭");//关闭控制面板
…}
对控制界面进行操作时应注意以下事项:
(1)“打开”和“关闭”按钮分别代表打开和关闭控制端;
(2)频率以Hz为单位,分辨率为1 Hz,假如频率为2 000 Hz,就在频率栏填写2 000;幅度以mV为单位,分辨率为1 mV,假如需要1 V,则在幅度行输入1 000,然后按回车键即可。
3.2数字合成音频信号
直接采用数字技术合成正弦音频信号,不仅在转换速度上要优于一般电路,在合成精度上也要优于一般振荡电路,而且具有与标准频率源相同的频率准确度和稳定度。输出信号频率通常可按十进制数字选择,能达11位数字的极高分辨力。
信号发生部分由主机产生数字音频流,通过STM32F429自带的数模转换功能获得所需的模拟信号。在数字音频处理中,声音和数据的转换有多种方式,本设计采用脉冲编码调制(PCM),不进行压缩数据便可完成此功能,数据以常见的波形(WAVE)格式保存。关于频率设置的部分程序如下:
int FreSwitch(uint16_t fre)
{
switch(fre){
case 20:
FreIndex=0;
VS1003_SineTest(2,SIN_SAMPLE_RATE_25600,1);
//20 Hz break;
case 21:
FreIndex=1;
VS1003_SineTest(2,SIN_SAMPLE_RATE_16000,2);
//21 Hz
break;
case 22:
FreIndex=2;
VS1003_SineTest(2,SIN_SAMPLE_RATE_40320,1);
//22 Hz
break;
…}
4、实物调试
整个研究过程通过了模拟试验及系统软硬件设计,终实现预期目标。
该信号发生器的截止频率设定为20 kHz,大于20 kHz的信号都是干扰信号,通过较大幅度的衰减进行滤除,从而保证较小的信号谐波失真。
接通电源后,通过计算机控制信号发生器的信号频率、幅值等参数,通过以太网把控制命令字传输给发生器,发生器对控制字进行周期性扫描,频率、幅度控制字需要转换成二进制,传送到单片机STM32F429,接到命令后通过正弦查询表映射成数字量信号,通过单片机本身的数模转换功能即可得到所需的音频信号。由于输出后的正弦信号会出现失真现象,需通过滤波器进行滤波,从而得到正确的正弦信号。
通过示波器对设计的音频信号发生器发出的音频信号进行采集。
通过测试,本设计实现的音频信号发生器的基本功能达到了预期效果,其频率响应为±0.4 dB,失真度控制在0.5%,而传统音频信号发生器的失真度在20 Hz~100 Hz时≤0.8%,在100 Hz~20 kHz时≤0.5%。
5、结论
本文设计的音频信号发生器具有操作简单、信号稳定、精度高、体积小、便于携带等特点,可应用于电声器件的听音测试、扬声器的老化试验等各种音频电子测量和控制场合。通过PC控制端直接输入所需音频信号的幅度、频率值,借助以太网远距离控制,而不必每次亲临现场,也不必每次通过粗调、细调即可达到要求。通过集线器可同时输出多路相同音频信号,对多台相同仪器进行测量。利用数字合成技术合成音频信号,简化电路,具有与标准频率源相同的频率准确度和稳定度;也可合成方波、三角波等规则波形,只需在PC控制面板上添加信号类型选择项即可实现硬件的单一化、软件的多元化,节约成本。