基于16位单片机的音频信号分析仪的设计
1 硬件设计
“智能家居”(SmartHome)也称智能住宅。家居网络智能控制系统就是利用先进的计算机技术、通讯技术和嵌入式技术,将家中的各种设备通过家庭网络连接成系统。整个智能家居系统的构成如图1所示。在该系统中,对于某些家用电器设备的监测与控制需要进行音频信号的分析。
本设计选用Microchip公司的DSPIC30F6014A单片机为核心处理器,该芯片是MCU技术与DSP技术的结合,既包含了16位MCU的控制功能,又融合了DSP的高速运算技术,实际上就是数字微处理器、可方便地实现音频信号分析的各种功能。音频系统框图如图2所示,包括电源模块、预制电路、A/D转换模块、DSP模块、LCD显示模块等几个部分。各模块以及接口的具体设计和实现功能如下:
(1)电源模块:采用直流三端稳压电源设计,220 V交流电经降压、整流、滤波和稳压后,转换成系统需要的±5 V、±12 V电源电压。
(2)预制电路:为保证输入频宽在音频范围,前端直流偏置电路采用OP07放大器,第一级的加法器将输入信号与2.5 V电压值相加,第二级的反相器将信号转移到A/D转换能处理的0~5 V范围。因输入端50 Ω电阻的接地,故系统输入阻抗近似为50 Ω。
(3)A/D转换模块:因为音频信号的输入只有一路,所以在12位可配置的A/D模块的16个模拟输入引脚中只用到AN6,初始化时,将该引脚配置为模拟输入引脚,同时,因为处理后的音频信号电压为0~5 V,将A/D模块的参考电压设置为0 V,5 V。转换输出速率高达200 KSPS。
(4)DSP模块:该数字微处理器是改良的哈佛结构设计,可实时分析,具有很高的分辨率。通过Microchip公司的MPLAB C30 C编译器调用DSP模块,该编译器中提供49个DSP处理函数,可以完成全部的数字信号处理。
(5)LCD显示模块:用于直观显示频谱波形。
(6)ICD2调试接口:选用Microchip公司的ICD2在线调试器,为此预留了ICD2调试接口。
(7)RC振荡器:此单片机可工作在外部时钟输入、外部RC输入、内部快速RC振荡器、内部低功耗(RC)振荡器四种模式,以及在低功耗时使用的后分频器。本设计采用内部快速RC振荡器,它能提供7.37 MHz的时钟,由于要实现对音频信号实时处理,所以没有用到后分频器。
2 软件设计
音频系统主循环如图3所示。
(1)经过采样、A/D转换完成后,清除A/D使能标志,得到离散化的数字信号。
(2)调用周期判定函数,实现对信号周期性的分析。
(3)调用FFT变换函数,对离散信号的快速傅里叶变换,实现时域到频域的变换。
(4)显示输入信号的频谱。
(5)计算信号的功率谱及计算最大功率。
(6)显示信号的功率谱及最大功率。
2.1 A/D采样
理论分析:因12位的A/D模块,故量化单位为1/212,因频率分辨率△f=100 Hz、FFT的子样本点数N=512,故采样频率fs=51 200 Hz(fs≤N△f)、采样周期Ts=1/51 200 s(采样周期一采样时间+转换时间)。因振荡频率为7.37 MHz,故指令周期TCY=(1/7.37)×4=O.5μs。
实际控制:转换时间为14个TAD(为正确A/D转换,TAD=333.33 ns)。所以,配置A/D自动采样时间为6个TAD,A/D转换时钟为16TCY,则A/D转换总时间为0.092 ms,采样频率为10.87 kHz。
A/D模块工作在系统时钟源、自动转换模式,每完成一次转换进入一次中断。在程序中应该定义一个采样点数的结构体,用于存放A/D采集到的数据,每个结构体内包括一个实部和一个虚部。在中断服务子程序中,由A/D模块采集到的数字量存储到结构体的实部,共进行采样点数次转换,中断服务子程序的流程如图4所示。
2.2 周期判定
音频信号的频率分量不但多,而且不具周期性。测量周期可以在时域也可以在频域,但是由于频域测量周期性时要求某些频率点具有由规律的零点或接近零点出现,所以对于较为复杂的、频率分量较多且功率分布较均匀且低的信号就无法正确地分析其周期性。因此,对于信号的周期性判定,应该在对信号进行FFT变换之前,直接调用周期判断函数。周期性判定子程序流程图如图5所示。
2.3 FFT变换
由于直接
- Freescale 16位单片机的地址映射(11-28)
- Freescale 16位单片机命名参考规则(11-23)
- 凌阳16位单片机之用时基中断定时(11-20)
- 凌阳16位单片机之IRQ4中断(11-20)
- 凌阳16位单片机之定时器中断(11-20)
- 凌阳16位单片机之IRQ6中断(11-20)