光立方集创赛论文.docx
- 文档编号:17551357
- 上传时间:2023-07-26
- 格式:DOCX
- 页数:43
- 大小:2.18MB
光立方集创赛论文.docx
《光立方集创赛论文.docx》由会员分享,可在线阅读,更多相关《光立方集创赛论文.docx(43页珍藏版)》请在冰点文库上搜索。
光立方集创赛论文
第四届
全国大学生集成电路创新创业大赛
CICIEC
基于单片机的8*8*8三色LED光立方音响
参赛题目:
创新实践杯
队伍编号:
AHB137663
团队名称:
光立方音箱
一、绪论
1.1作品介绍
团队设计并制作了一种基于单片机的LED光立方音响,通过单片机接收外部音频信号转换为数字信号,利用加Hanning窗的快速傅里叶算法实时分析转换数据;通过单片机的定时器计数和中断服务程序将分析后的数据有序发送到行列扫描电路中;通过亮度调整电路对数据进一步调整,最终使得音频信号的频域信息得以完整的显示在外部灯柱上。
团队以STC12C5A60S2单片机最小系统作为控制中心,采用模块化设计思想,利用USB转TTL电路实现电源模块与下载器模块,利用74HC595芯片作为数据转换模块,三极管阵列作为亮度调整模块,RGB-LED灯作为显示模块;同时拥有蓝牙传输模块和红外遥控模块,可实现多种音频播放方式的切换以及对单片机工作过程的控制。
在核心算法的频谱分析上,针对频谱分析中的泄露问题设计了加Hanning窗改进的快速傅里叶算法。
本作品还拥有以下功能:
可通过蓝牙APP或红外遥控器实现对单片机音频播放的切换、音量加减、单片机待机以及灯柱亮度的调整。
可通过蓝牙传输模块实现任意音频的接入动画显示。
具有心形、闪烁以及呼吸灯等多种动画模式,可用于单片机开机以及关机特效。
1.2研究意义与主要创新点
传统的点阵LED显示器几乎占据了生活的各个角落,但是由于体型大、LED
数量多,在某些领域并不适用。
正是由于LED显示器发展趋于成熟,人们开始对LED器件外形的多样化和体积的小型化提出更高的要求,光立方音响也因此而生。
本产品在当前研究的基础上,对普通光立方音响进行了优化、创新,主要内容包括:
1.现有研究中,实现光立方的单片机有传统51单片机与其它新型单片机,我们采用了STC12C5A60S2单片机,这种单片机,具有指令系统完全兼容8051,但速度比其快8~12倍,并且具有低功耗、高速、超强抗干扰等特点,非常适合在室外工作。
2.在产品的实现中创新使用了加Hanning窗的FFT算法,解决了因为频谱泄露而造成的一部分灯光显示不对的问题。
3.在产品的操作模式上,具有红外遥控,蓝牙通信等等远程控制方式。
1.3研究背景
近年来,市场上出现了大量的便携式音乐播放系统,或者智能音箱,以满足大众对音乐艺术,文化生活的需求。
但这类装置,有的仅能进行音乐的播放,即使有简单的灯光色彩的显示,但播放的音乐和灯光色彩没有关联,音乐和色彩没有融为一体,没有体现实时性,人们享受不到变化中的音乐所带来的视觉冲击。
具有音乐与色彩完美结合的色彩音乐装置并未出现。
深圳皓祥光电有限公司研制的产品LED音乐控制器,可以通过音频来实现控制LED灯具颜色亮度以及快慢的变化效果。
但此产品仅能发出赤、橙、黄、绿、蓝、紫几种固定的颜色。
北京华明电光源工业有限责任公司生产了一种随音乐变化的LED灯,此产品,也仅将对LED的色彩,按照存储好的音频颜色转化算法,进行控制。
Fabienne(2010)介绍了通过无线遥控音乐LED景观设备,音乐播放可以配以LED灯闪烁,但LED灯仅能发出固定的色彩,且这类装置一般仅具有音乐播放功能,有的虽然具有灯光色彩显示,不过色彩跟音乐没有关联,音乐与灯光之间没有融为一体,没有体现实时性。
二、关键技术原理分析
2.1工作原理
图1系统设计框图
2.2硬件模块分析
2.2.1单片机选型
采用增强型芯片STC12C5A6052单片机作为主控芯片,其主要优点有:
1.无法解密,采用第六代加密技术;2.超强抗干扰;3.内部集成高可靠复位电路,外部复位可用可不用;4.速度快,比8051快8-12倍。
因此采用此方案。
2.2.2驱动模块选型
74HC595是硅结构的CMOS器件,兼容低电压TTL电路。
74HC595是具有8位移位寄存器和一个存储器,能够实现8位串行输入到8位并行输出的转化,在LED灯的显示过程中具有良好的使用效果。
2.2软件模块分析
采用快速傅里叶算法进行频谱分析,其优点有计算量小,软件框架搭建简单;同时采用加Hanning窗的快速傅里叶算法改进原算法减小频谱泄露现象。
三、具体架构和设计
3.1硬件具体架构和设计参数
本系统由STC12C5A60S2单片机模块作为主处理器,外接74HC595电路连接RGB-LED灯柱实现灯光频谱显示,并含亮度调整模块;外接蓝牙通信模块实现APP端控制;红外遥控模块实现遥控播放;并由USB转TTL电路模块实现与PC之间的数据通路搭建。
3.1.1STC12C5A60S2单片机控制模块
1)STC12C5A60S2芯片资料
如图2所示,该芯片正常工作电压为5V,内部最高时钟频率为17MHZ,Flash程序存储器为16KB,RAM数据存储器为1KB,内置看门狗电路,支持ISP/IAP。
本单片机具有以下优点:
1.超低功耗
(1)掉电模式:
外部中断唤醒功耗<0.1uA。
(2)空闲模式:
典型功耗<1mA。
(3)正常工作模式:
4mA-6mA。
(4)掉电模式可由外部中断唤醒,适用于电池供电系统。
2.超强抗干扰
(1)高抗静电(ESD保护)整机轻松过2万伏静电测试。
(2)轻松过4kV快速脉冲干扰(EFT测试)。
(3)宽电压,不怕电源抖动。
(4)宽温度范围,-400C至+85C。
图2STC12C5A60S2单片机引脚图
单片机控制部分是整个系统协调工作和智能化管理的核心部分,采用STC12C5A60S2单片机实现控制功能是其关键,采用单片机不但方便监控,并且大大减少硬件设计。
2)STC12C5A60S2单片机控制模块原理图
图3STC12C5A60S2单片机最小系统图
3.1.274HC595行列扫描电路模块
1)74HC595芯片功能说明
如图4所示,74HC595是硅结构的CMOS器件,兼容低电压TTL电路。
74HC595是具有8位移位寄存器和一个存储器,能够实现8位串行输入到8位并行输出的转化,在LED灯的显示过程中具有良好的使用效果。
图474HC595芯片引脚图
74HC595各引脚的功能为:
表174HC595引脚说明
SI
串行数据输入端。
OE
输出使能端,为低电平有效。
RCK
存储寄存器时钟。
SCK
移位寄存器时钟。
SCLR
移位寄存器数据复位端。
SQH
串行数据输出端,一般用于级联
2)74HC595使用方法说明
a)三个行74HC595芯片实现对8层的颜色控制,每个行74HC595的8个输出端对应8层,实现对8层颜色的控制,8位并行输出实现对每一层的亮灭控制。
三个行74HC595之间为并行工作。
b)八个列74HC595芯片实现对64个RGB-LED灯的阴极引脚控制,8个列74HC595之间为串行工作。
3)74HC595行列扫描电路模块原理图
1.行扫描电路原理图:
图574HC595行扫描电路
2.列扫描电路原理图:
图674HC595列扫描电路
3.1.3RGB-LED灯柱电路模块
1)RGB-LED灯功能分析
相比于市面上其他的LED灯珠,RGB-LED一个灯珠阳极引脚可以实现3种单色。
通过混光,三原色原理可以实现七种颜色。
颜色的多变使光立方更加炫酷,同时颜色的差异可以和音乐整体的不同风格,情感相互对应,将音乐和灯光模型更加细致化分析。
2)RGB-LED灯使用方法说明
用64个RGB-LED,通过细小的焊接铁丝进行串联,每一行用三根焊接铁丝分别将每个灯珠控制颜色的阳极引脚进行串联;每一列通过一根焊接铁丝将公共阴极进行串联,组成一片灯网。
每片8x8的灯网,每行控制相同颜色的阳极引脚被串联;每列每个灯珠的阴极引脚被串联。
整体的光立方,用八片灯网组成一个立方体,同时每一片灯网同一层的颜色控制引脚需要串联起来,便于驱动电路对颜色的控制。
3)RGB-LED灯柱电路模块原理图
行74HC595芯片对应的LED灯焊盘为:
图7行74HC595芯片对应的LED灯焊盘
列74HC595芯片对应的LED灯焊盘为:
图8列74HC595芯片对应的LED灯焊盘
3.1.4亮度调整电路模块
1)74HC4953芯片功能说明
如图9所示,74HC4953芯片,其内部是两个CMOS管,拥有电源端、接地端、控制端以及输出端。
多用于LED点阵显示屏驱动,当每一显示行需要的电流是比较大时,要使用行驱动管,每片4953内部有两个行驱动管,可以驱动2个显示行。
图974HC4953芯片管脚图
74HC4953各引脚说明为:
表274HC4953引脚功能图
S1、S2:
电源端,使用时应该接电源Vcc。
G1:
控制端,控制管脚7、8输出/开路
G2:
控制端,控制管脚5、6输出。
开路
D1、D2:
芯片的输出端
2)74HC4953芯片使用方法说明
如图10所示,亮度控制电路包括74HC4953芯片和二极管IN4007,构成亮度调整电路的主要部分。
图10亮度控制电路的主要部分
具体到每一层的亮度调整,输入为74HC595芯片输出端,输出为三极管的集电极,如下图所示:
图11每一层的颜色亮度管理电路
最终的电路设计为:
图12亮度控制电路
3)亮度控制模块原理图
图13亮度调整电路原理图
3.1.5蓝牙音乐传输电路模块
1)蓝牙芯片BL3231资料
BL3231模块采用BEKEN高度集成的单芯片蓝牙,它集成了高性能收发器,功能强大的基带处理器,支持蓝牙HID配置文件。
内置FLASH程序存储器使得它适合对于定制的应用程序,更好的保护应用程序安全。
a)射频特性
●1Mbps模式拥有-86dBm接收灵敏度和2dBm发射功率
●极化调制发射器结构,兼顾低功耗和高发射性能
●集成频率合成器,免除外部环路滤波器元件
●射频通过多种极限环境测试,满足多种使用场景
b)模组特性
●完全符合蓝牙3.0核心规范
●支持蓝牙微微网和散射网
●支持高达1Mbps的高速UART接口
●支持Sniff模式,Hold模式和Park模式
●工作电压2.0V至3.6V
●拥有10位电池电压采样ADC
●拥有硬件12C,SPI,UART接口
2)蓝牙传输模块原理图
图14蓝牙传输模块
3.1.6红外遥控电路模块
1)红外控制芯片BC7210A说明
红外控制芯片BC7210A是一款低成本的通用红外遥控解码芯片,可以完成目前应用最广泛的多种红外遥控编码的解码,BC7210A的输出兼容SPI和UART两种接口,可以直接和各种微处理器相连。
采用该芯片,可以缩短开发时间,节约CPU资源。
特点:
●支持两种编码格式
●S08封装,体积小巧
●无须外围元件
●2.7V-3.6V供电,方便与新型单片机连接
●兼容SPI及UART(波特率9600)的串行输出
●采用数字滤波技术,高抗干扰,无误码
●接收有效指示输出
●工业级温度范围
其引脚图如下所示:
图15BC7210A引脚图
各引脚的功能说明为:
表3BC7210A引脚功能说明
接收有效输出,存在有效遥控信号时,变为低电平,同时输出解码数据。
VCC
电源输入,电压2.7-3.6V。
SPI接口的SlaveSelect端,接SPI从芯片的片选,低电平有效。
GND
接地端。
CLK
SPI时钟输出。
DAT
SPI/UART数据输出,UART的波特率为9600。
IR
红外数据输入,接红外接收头的数据输出。
MOD
工作模式选择,高电平时,工作于NEC模式,低电平时为RC5模式。
2)红外接收头连接示意图
图16红外接收头与STC12CA560S2连接
图中IR管脚为红外数据发送到单片机的数据线管脚。
3.1.7USB转TTL电路
PC机上的通信接口有USB接口,相应电平逻辑遵照USB原则;还有DB9接口(九针口),相应电平逻辑遵照RS-232原则。
而单片机上的串行通信通过单片机的RXD、TXD、VCC、GND四个引脚,相应电平逻辑遵照TTL原则。
USB转串口芯片CH340是一个USB总线的转接芯片,实现USB转串口,提供电脑和硬件电路的通信作用,同时为单片机的烧写提供下载电路,电源供电。
电路原理图为:
图17USB转TTL电路
3.2软件设计实现与原理分析
软件部分主要由实时反应音乐信息的FFT程序,红外遥控单片机音乐程序,蓝牙通信程序组成。
3.2.1FFT算法设计
因STC15C5A60S2除了外部扩展RAM之外内部可供用户使用的RAM仅256字节,为了最大限度地利用RAM容量,并考虑其速度的限制,故在STC12C5A60S2中实现64个复数点的FFT算法。
要在单片机里实现FFT算法,需要其它部件的配合,因此要充分利用单片机内部的设备,我们建立如下的实现过程:
图1864点的快速傅里叶变换整体实现过程
各部分的具体概况将在下文进行描述。
1)快速傅里叶变换算法用于64点的计算
快速傅里叶变换(FFT),是快速计算序列的离散傅里叶变换(DFT)或其逆变换的方法。
它能够将计算DFT的复杂度大大降低。
FFT快速傅里叶变换可以将音频信号从时域转换到频域进行表示,由于数字计算机只能对数字信号进行处理,所以必须通过AD转换将音频的模拟信号按采样率转换为数字信号,再对离散的数字信号进行FFT频谱分析,从而得到信号的频谱。
接下来将介绍FFT并给出基于单片机的64点FFT算法设计及其改进。
a)快速傅里叶变换算法原理
根据定义,对一个具有
个数值的序列
其DFT的公式为:
(1)
其中
(2)
在式
(1)中,当
为2的整数次方时,可以利用蝶形算法计算一个序列的快速傅里叶变换,在此之前需要对序列进行码位倒置,所谓码位倒置是指按二进制表示的数字首尾位置颠倒,重新按十进制读数。
对于一个长度
=8的序列来说,经倒位序后蝶形算法计算快速傅里叶变换的流程如下图所示:
图19把N=8的DFT运算逐级分解为两个
点,四个
点的DFT运算
b)FFT频谱分析算法具体实现过程
在单片机中我们采用的是64点FFT计算,需要经过6级运算才能得到最终结果,每一级运算完成都会得到64个结果,进而用于下一级的运算,对于每一级得到的序列
,都可以分解为式(2.3):
(3)
其中
,
表示序列中元素的实部,
表示序列中元素的虚部。
同时,序列
中的每两个元素
和
之间进行蝶形运算都会如下图所示:
图27任意两个序列之间的蝶形算法
其中,
按照式(2.2)可以分解为如下形式:
(3)
按照复数乘法法则可以得到经过一次蝶形运算得到的下一级序列的表达式为:
(4)
(5)
(6)
(7)
(4),(5),(6),(7)式中,k为经过码位倒置后的序列序号,bb是每两个计算序列之间的间隔,与计算的蝶形算法级数有关。
C)加Hanning窗改进FFT算法实现
汉宁(Hanning)窗可以看成是升余弦窗的一个特例,是3个矩形时间窗的频谱之和,其定义为:
(8)
加窗的具体操作为在时域进行乘积操作,安排在信号的量化处理之后。
由此,我们建立了单片机内部代码编写的64点的快速傅里叶变换计算部分。
其软件对应的程序框图为:
图20FFT设计思路
2)AD转换软件设计部分
STC12C5A60S2系列单片机有8路10位高速AD转换器,速度可达到250KHz(25万次/秒)。
8路电压输入型A/D,可做温度检测、电池电压检测、按键扫描、频谱检测等。
可以通过软件设置将8路中的任何一路设置为AD转换,不需作为A/D使用的接口可继续作为I/O口使用。
STC12C5A60S2单片机AD转换器的结构如下图所示:
图21单片机AD转换器结构
a)STC12C5A60S2内部AD相关设置
ADC_CONTR为AD转换结果寄存器,通过置位寄存器中的值可以得到不同的AD转换效果,具体格式如下所示:
表4AD转换控制寄存器
符号
位地址及符号
ADC_CONTR
ADC_POWER
SPEED1
SPEED0
ADC_FLAG
ADC_START
CHS2
CHS1
CHS0
表中各变量具体解释如下:
ADC_POWER:
AD转换电源控制位置位。
SPEEND0/SPEEND1:
模数转换速度控制位置位,两位组合二进制可产生四种模式。
ADC_FLAG:
模数转换结束标志位,该位一次AD转换结束后自动置“1”,手动置“0”。
ADC_START:
模数转换启动控制位,设置为“1”时开始转换,一次AD转换结束置0。
CHS2-CHS0:
模拟信号通道选择位,三位二进制组合可产生8种输入通道选择。
另外,AUXR1寄存器的ADRJ位是A/D转换结果寄存器(ADC-RES,ADC-RESL)的数据格式调整控制位。
置“1”和置“0”会有不同的数据格式,ADC_RES和ADC_RESL为AD转换结果寄存器。
如果用户需取完整10位结果,按式计算:
(9)
如果用户只需取8位结果,按式计算:
(10)
b)AD转换初始化软件设计
据此设置有关AD转换的代码步骤为:
Step1:
将AD转换结果的高位寄存器和低位寄存器初始化,即清零。
Step2:
打开AD转换电源,设置AD转换启动控制位为1,设置AD转换结束标志位为0。
Step3:
设置AD转换速度为一次需要540个时钟周期。
Step4:
设置四个空操作保证CPU完全读到ADC_CONTR的有效信息。
Step5:
CPU空等待直到模数转换结束标志位置0,说明一次模数转换结束。
Step6:
将AD转换结果寄存器的低8位值作为AD输出的结果。
设计AD转换流程图如下图所示:
图22AD转换软件流程设置
c)AD中断运行的软件程序设计
当一次AD转换完成就会执行一次AD中断,启动AD中断时的程序执行可以由软件设置。
因此,为了建立与频谱分析与光立方的联系并实现光立方灯柱的变化效果,需要在执行AD中断时加入频谱分析变量成分:
yinpin:
AD转换次数标记变量,达到一定次数后执行AD中断内部程序后清零。
yp:
频段显示方式切换变量。
amenu:
频段显示方程控制变量。
据此设置有关AD中断的代码步骤为:
Step1:
每次AD转换完成启动AD中断,执行内部函数,同时AD转换次数标记变量+1。
Step2:
当AD转换次数标记变量增加到20000时,为1s左右时间,改变1次频段显示切换变量,改变1次频段显示控制变量。
Step3:
判断AD转换是否完成,同时延时一定时间,为CPU执行下一个AD指令做准备。
设计AD中断流程图如下图所示:
图23AD中断软件流程设置
3)定时器软件设计部分
STC12C5A60S2单片机有4个定时器,其中定时器0和定时器1是两个16位定时器,与传统8051的定时器完全兼容,STC12C5A60S2单片机内部设置的两个16位定时器/计数器T0和T1都具有计数方式和定时方式两种工作方式。
a)STC12C5A60S2内部定时器相关设置
对每个定时器/计数器(T0和T1),在特殊功能寄存器TMOD中都有一控制位
来选择TO或T1为定时器还是计数器。
定时器/计数器的核心部件是一个加法的计数器,其本质是对脉冲进行计数。
只是计数脉冲来源不同:
如果计数脉冲来自系统时钟,则为定时方式,此时定时器/计数器每12个时钟或者每1个时钟得到一个计数脉冲,计数值加1;如果计数脉冲来自单片机外部引脚,则为计数方式,每来一个脉冲加1。
TMOD为定时器工作方式寄存器,通过置位寄存器中的值可以得到不同的定时器工作方式,具体格式如下所示:
表5定时器工作方式寄存器
符号
位地址及符号
TMOD
GATE
C/T’
M1
M0
GATE
C/T’
M1
M0
表中各变量解释具体如下,其中前四位与后四位分别控制定时器1和定时器0:
GATE:
定时器1/0开关控制位,置1时打开定时器。
C/T’:
控制定时器1/0用于定时器或计数器,置1为计数器,置0为定时器。
M1/M0:
定时器1/0模式选择控制位。
TCON为定时器/计数器T0/T1的控制寄存器,同时也锁存T0,T1流出中断源和外部请求中断源等,TCON具体格式如下:
表6定时器控制寄存器
符号
位地址及符号
TCON
TF1
TR1
TF0
TR0
IE1
IT1
IE0
IT0
表中各变量具体解释如下:
TF1:
定时器/计数器T1溢出标志位。
当最高位产生溢出时由硬件置“1”,向CPU请求中断,一直保持到CPU响应中断时,才由硬件清“0”(TF1也可由程序查询清“0”)。
TR1:
定时器T1的运行控制位。
当GATE=0,TR1置“1”允许T1计数,TR1置“0”禁止T1计数。
TF0:
定时器/计数器T0溢出标志位。
当最高位产生溢出时由硬件置“1”,向CPU请求中断,一直保持CPU响应该中断时,才由硬件清“0”(TFO也可由程序查询清“0”)。
TR0:
定时器T0的运行控制位。
当GATE=0,TRO置“1”允许T0计数,TRO置“0”禁止T0计数。
IE1:
外部中断1请求标志位。
IT1:
外部中断1触发方式控制位。
IE0:
外部中断0请求标志位。
IT0:
外部中断0触发方式控制位。
b)定时器初始化软件设计
据此设置定时器控制有关代码步骤为:
Step1:
定时器1为16位定时器,定时器0为8位自动重装载定时器,两者均为定时器,由内部时钟控制。
Step2:
允许CPU接收定时器1/0发送中断请求。
Step3:
设置外部中断优先级最高。
Step4:
设置定时器1/0计数速度与单片机晶振频率关系。
设置定时器控制流程图如下图所示:
图24定时器设置软件流程图
C)定时器中断软件程序设计
当定时器计数溢出时便会产生定时器中断,启动定时器中断时的程序执行可以由软件设置,因此,为了与AD转换部分形成响应,并反映FFT频谱分析结果,在执行定时器中断时引入频谱分析变量成分:
num:
频谱位置控制变量。
yp:
频段显示方式切换变量。
amenu:
频段显示方程控制变量。
据此设置有关定时器中断的代码步骤为:
Step1:
进入定时中断时关闭定时器。
Step2:
设置定时器1/0的计数初值。
Step3:
判断num和amenu关系确定当前频谱位置。
Step4:
读取AD中断结果yp决定频谱显示方式。
Step5:
用74HC595将数据发送到LED灯。
设置定时器中断流程图如下图所示:
图25定时器中断设置软件流程图
3.2.2红外遥控设计
1)红外遥控原理分析
红外遥控系统的主要部分为调制,发射和接收。
红外遥控的发射电路是采用红外发光二极管来发出经过调制的红外光波;红外接收电路由红外接收二极管、三极管或硅光电池组成,它们将红外发射器发射的红外光转换为相应的电信号,再送后置放大器。
2)红外遥控编码
红外遥控发射器组成了键扫描、编码、发射电路。
当按下遥控器上任一按键,就会产生
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 立方 集创赛 论文