基于Proteus与CCS仿真的音乐点阵频谱设计

2019-09-03 11:33李胜铭颜科宇吴振宇
实验室研究与探索 2019年8期
关键词:低电平音频单片机

李胜铭, 颜科宇, 吴振宇

(大连理工大学 创新创业学院, 辽宁 大连 116024)

0 引 言

随着电子设计自动化(Electronic Design Automation,EDA)技术的发展,计算机仿真软件不断改进,为电子系统设计提供极大便利[1-4]。使用仿真软件,可使电路修改简便,降低硬件设计周期与成本[5-6]。Proteus是电子电路与单片机协同仿真的流行软件。音乐点阵频谱具有趣味性强,观赏性好等特点。其融合模拟电路、数字电路、单片机控制、信号处理等技术,常见于大学生创新实践活动中。本文采用Proteus与代码调试平台(Code Composer Studio,CCS)进行LED点阵的电路设计与单片机程序调试。通过使用MSP430单片机,实现点阵屏驱动、快速傅里叶(FFT)算法以及动态音乐频谱显示[7]。

1 总体设计方案

如图1所示,系统以MSP430单片机为控制核心,利用数字芯片对点阵屏进行逻辑驱动控制,通过行与列配合实现对点阵上任意LED亮灭。考虑到单片机管脚资源,采用将驱动芯片级联的方式节约单片机端口。因为音频信号为交流信号,不能直接进行单片机采样,因此设计加法器电路,将音频信号变换到单片机模拟采集量程内。单片机将音频采样,通过FFT算法实现音频信号从时域到频域变换,然后驱动点阵屏显示。因视觉暂留效应,快速扫描点阵屏时,人眼看到多个LED同时点亮,实现音乐频谱。

图1 系统设计框图

2 系统硬件设计

2.1 主控制器

主控制器选用MSP430F235单片机,内部具有16位CPU、48个I/O管脚、16KB闪存、2KB内存、两个16位定时器等资源。单片机内置模数转换器(A/D)模块,满足信号采样的需求,无需额外增加模数转换芯片。此外充足的存储空间也足以容纳音频采样数据和计算变量。

2.2 显示及驱动电路

2.2.1 行驱动74HC138芯片

74HC138芯片也称3-8译码器,即能将3种输入状态翻译成8种输出状态,见表1。其中,E1~E3为使能条件,A0~A2为3位2进制码输入数据。当E1、E2

表1 74HC138真值表

为低电平,E3为高电平时,8个输出端Y0~Y7将输入数据译出7个高电平与1个低电平。否则,74HC138将保持所有输出为高电平。

为节约单片机管脚,采用分时复用方式,通过单片机的4个I/O口控制2片74HC138芯片,实现对点阵屏的16行的控制。如图2所示。

图2 74HC138行驱动电路图

图2中,2片74HC138芯片的A0~A2端口并联,U2的E3和U3的E1连接至D端口。D为高电平时U3可输出低电平,为低电平时U2可输出低电平。U2、U3输出端接点阵屏LED管负端,由于二极管单向导通特性,只有74HC138输出低电平时对应行的LED才点亮。因此对A、B、C、D进行不同逻辑组合,两芯片只有一个对应输出端口为低电平,也就是每次输出都只扫描点阵屏特定一行。程序设计上,对 A、B、C、D赋值使74HC138的输出端轮流为低电平,实现对点阵每一行的显示控制。

2.2.2 列驱动74HC595芯片

图3 74HC595列驱动电路图

如图3所示,为控制点阵屏的32列,采用4片74HC595芯片级联的方式,数据只需从第一个芯片的DS管脚输入。74HC595芯片OE接地端,使芯片输出一直有效,MR接电源正端防止数据清零,输出端接点阵屏LED正端。各芯片SH_CP与ST_CP并联,接到SCK端和 STR端,SCK在DS送完一位数据后,产生上升沿,使数据移位,以便后一位数据输入。当对应32列的4个字节数据发送完毕,STR产生上升沿将数据一同输出,实现对点阵屏每一列的显示控制。

2.3 音频采样电路

如图4所示,为能完整采集音频信号,音频信号处理电路使用741运算放大器设计反向加法器,将音频信号与正偏置电压相加后进行放大。此时,音频信号将偏置到MSP430单片机A/D采样量程范围内。考虑实际信号的大小与调整方便,放大信号通过电位器分压之后再接入单片机采样管脚[8-9]。

图4 音频采样电路图

3 算法及程序设计

在电参量测量分析中,任意周期信号可以分解为直流分量和一组不同幅值、频率、相位的正弦波。系统对音频信号进行周期性采样,通过FFT,变换成一组正弦函数的组合[10-11]。正弦函数的幅值和频率用来描述在信号所占成分的多少。

3.1 FFT算法实现

音频信号一般是无周期性且随时间连续变化的信号x(t),理想情况下,将x(t)做傅里叶变换可得频域表达式:

(1)

而MSP430单片机只能采集到连续信号x(t)的一系列离散信号值x(nt)。所以需借助离散信号x(nt)分析信号的频域特点[12-13]。对于有限长离散信号有:

(2)

由WN的周期性以及对称性,可知x(n)能分解成一个偶数序列x1(n)和一个奇数序列x2(n),且x1(n)和x2(n)的长度都是N/2。因此可得:

(3)

故x(k)可表示为:

k=0,1,…,N-1

(4)

由于:

(5)

则有:

(6)

又X1(k)和X2(k)均以N/2为周期,且

(7)

所以X(k)又可表示为:

(8)

(9)

式(8)和(9)称为蝶形运算;WN为旋转因子。经过时域抽取存入倒序数组中,如果两个输入相距b个点,用数组中的位置进行计算,蝶形运算可表示为

(10)

(11)

根据欧拉公式:

(14)

可再进一步转化:

(15)

为了表达简便,令:

(16)

得:

(17)

(18)

考虑到单片机不适合进行浮点运算,为保证计算速率,编程时提前将需用到的正、余弦函数值存入数组。采用查表法免去正、余弦计算,同时进行适当取舍取为整数,避免进行浮点运算。

此外,由蝶形运算的形式可知,若无倒序数组的整理,结果将会乱序。因此使用雷德算法解决此问题。雷德算法可给出自然顺序排列的二进制数,其下面一个数总比上面的数大1,而倒序二进制数的下面一个数是上面一个数在最高位加1并由高位向低位进位而得到[14]。其规律实则为镜像颠倒,即将序号的十进制转化为二进制数,然后把二进制最低位当作最高位,最高位当作最低位再转化为十进制。因此系统程序中,按时间抽取法采64个点,按此规律列编写一个包含64个元素的采样存储序列表的数组,从而保证数据为所需顺序。

3.2 程序设计

MSP430单片机编程使用CCS集成开发平台。系统程序主要分为采样、FFT算法、点阵屏显示3大部分。单片机A/D采样设置为单通道连续采样模式,每次采样64个点之后结束,进入FFT运算。根据前文对FFT算法分析,单片机在计算时采用基数2时间抽取算法[15-16]。其工作流程如图5所示。

点阵屏扫描显示时,FFT计算结果存入LED[32]数组中。数组各元素表示不同频率,元素值表示各频率的相对高低。行扫描不断循环,每扫一行就判断LED[i]元素与所扫行的大小,如果元素值大则点亮点阵中LED,反之不亮。完成一次扫描后,元素值减小,形成音频柱降落效果。

4 系统仿真联调

本设计采用Proteus软件和CCS软件对点阵屏系统电路以及FFT算法进行设计、调试、验证、仿真。首先在Proteus软件中设计系统各功能电路,然后通过CCS软件编写测试代码,修改生成单片机.hex执行文件。Proteus软件装载执行文件,运行观察效果。为满足视觉暂留效应,在Proteus软件中提前设置好仿真速度,将帧数减少并增加时间步长。信号采用音频激励源,格式为.WAV,如图6所示。

图5 基数2时间抽取算法流程图

激励源设置好振幅和通道模式。系统运行,开始仿真。如图7所示,点阵屏上音频柱随音乐不断起伏。

图6 音频导入

图7 系统仿真效果图

在Proteus与CCS的联合仿真下,直接验证了电路硬件与软件算法方案的正确性。在仿真基础上,制作的实物如图8所示。

图8 基于MSP430的音乐点阵频谱实物

5 结 语

本文设计了基于Proteus仿真软件与CCS集成开发平台下的音乐点阵频谱设计。通过实践验证,可实现点阵屏的电路硬件设计、MSP430单片机的点阵屏驱动、音乐信号采集、音乐频谱显示等功能。此外系统还具有较大的扩展性:在此设计思路基础上,可进行更多点阵显示屏的设计与应用,同时也为Proteus与CCS的联合仿真提供参考。

猜你喜欢
低电平音频单片机
基于单片机的SPWM控制逆变器的设计与实现
一种实用的电脑接口判断方法
基于单片机的层次渐变暖灯的研究
基于单片机的多功能智能插排
基于单片机的便捷式LCF测量仪
必须了解的音频基础知识 家庭影院入门攻略:音频认证与推荐标准篇
2017款凯迪拉克2.8L/3.0L/3.2L/3.6L车型低电平参考电压总线电路图
基于Daubechies(dbN)的飞行器音频特征提取
数字电子技术的应用
音频分析仪中低失真音频信号的发生方法