APP下载

新型多功能蓝牙音箱设计

2014-04-26巍,周

武汉轻工大学学报 2014年2期
关键词:音箱按键蓝牙

朱 巍,周 龙

(武汉轻工大学电气与电子工程学院,湖北武汉430023)

大多数传统音箱体积较大,不能随身携带,又需要电源支持,要用光盘作为载体播放歌曲,但是容量却不大,大部分产品能够播放的格式也仅限于MP3,随着电子技术的迅速发展,客户对音响提出了功能多样化、操作人性化的更高要求[1]。功能单一的音箱已经无法满足人们的日常需求。新型多功能蓝牙音箱的出现,彻底打破了人们对音箱的认识。

1 硬件设计

1.1 主控芯片选择

设计采用AU6210作为主控芯片,是多应用、高性能音频SOC芯片,片上系统基于高性能增强型51 MCU运行。AU6210具有增强型8051内核,支持USB2.0,有两组MMC/SD插口可以读取MP3格式及FAT16或者FAT32文件系统,通过I2C接口控制USB/SD控制器,将其中的MP3文件送至内置MP3解码器进行解码[2],支持多设备掉电记忆,IO口复用,集成FM Receiver等等强大功能。其功能示意图如图1所示。

将AU6210与另一种主控芯片AU7860对比,内部集成有FM模块是AU6210的一大优势;时钟晶体采用单32.768 kHz晶体,相对于AU7860的12 MHz而言有着EMI辐射低的优势;与此同时,AU6210支持软、硬关机,15μA超低功耗RTC,换电池不掉记忆,低功耗充电指示,耳机输出免电容,Line-In高压通道以及8路触摸按键等功能,而这些都是AU7860所无法做到的。

图1 AU6210功能模块示意图

需要使用者注意的是AU6210的OTP存储容量只有32 kB,比AU7860的64 kB小一倍,需要程序员在编写程序时更加注重结构的优化。

1.2 主控芯片外围连接模块设计

AU6210主控模块非常的人性化,可以根据客户的不同要求,设计出多种多样的音箱,大部分功能是可以根据需求自由组合任意增删的。当确定了需要的模块功能后,就可以进行硬件电路设计了。系统所有功能组合模块如图2所示。

图2 系统功能组合模块示意图

1.2.1 电源模块

本设计在电源方面的核心是如何最大限度的在不影响使用品质的前提下,降低功耗、提高电池的续航时间。

AU6210芯片内置LDO模块,只需要提供一组LDO输入电源(3.35—5.5 V)。在 LDO输入端输入电压为5 V时,LDO最大输出电流为150 mA,功耗相对很低。与此同时,AU6210内置低功耗RTC硬件模块,为系统提供实时时钟、闹钟以及休眠模式和Power Down模式下的唤醒功能,在不使用时,MCU将停止工作,进入Power Down模式,低功耗运行时钟闹钟,随时响应唤醒信号。进入蓝牙模式时MCU会启动蓝牙模块,退出蓝牙模式时蓝牙模块将进入待机状态。

1.2.2 按键模块

本设计按键是通过电压检测端口来实行按键的区分,其原理如图3所示。

图3 按键模块原理图

每个按键对应串联的电阻值各不相同,当按下按键时,就会将检测到的电压值传送给MCU,MCU就会通过该值判断按下的是哪个按键,从而执行与之相对应的操作。

AU6210在按键模块的优势在于可以同时拥有两组AD按键,用两个GPIO端口进行控制,每组十一个按键,一共二十二个按键可以满足各种复杂的功能需求。而AU7860只有一组AD按键。

1.2.3 插卡模块

此模块便是便携式多媒体音箱最早出现时的核心功能,在插入SD/MMC卡、U盘等存储有音乐文件的存储设备后,音箱便可以自动开始播放能够识别的音乐文件。其优点就是不受自身存储容量限制。

当然,现在的音箱插卡模块不仅仅只有读取的功能,当外接USB数据线之后,音箱可以扮演读卡器的角色,可以直接更新SD卡、U盘等插在音箱上存储设备的数据;音箱也可以像手机一样,插上USB之后直接开始为电池充电。其自带的声卡也让音质更优秀。

1.2.4 蓝牙模块

本设计蓝牙模块要将蓝牙芯片state引脚、电源引脚、多功能引脚以及按键控制引脚对应接入主控AU6210,以实现对其控制。其原理图如图4所示。

图4 蓝牙连接主控示意图

蓝牙模块的引入使得本文设计的音箱在实用性与多样性方面更上一层楼。其一是更加优化了客户体验音箱的快感:当音箱切换到蓝牙模式时,会自动回连上次连接的手机,当连接成功后,便可播放手机中的音乐并实现了小范围的遥控式双向操作。不仅可以直接在手机中控制媒体音乐的播放,同时也可以用音箱的按键来控制。其二是本文设计的音箱完全可以替代蓝牙耳机:该音箱实现了回拨电话、接听电话、拒接电话的强大功能,自带MIC可以即时通话。

1.2.5 收音机模块

本设计采用的是E8035收音机模块,这一类型的收音机模块在单一芯片上高度集成了所有关键射频组件,只需少量的配套原件便可完成功能,节约了PCB板空间,并且自身价格低廉,极大的降低了生产成本[3]。

1.2.6 LED 显示模块

AU6210的IO内部带有下拉电流源,可以免电阻直接驱动LED发光二极管,或者LED数码管。两个下拉电流源分别为1.7 mA和2.4mA。一共可以有 0 mA、1.7 mA、2.4 mA 和 4.1 mA 四种电流源强度可以调节。

AU6210最多可以驱动 6COM、8SEG的 LED屏,这代表着AU6210可以驱动四到六位的数字显示和十多个图标显示,功能强大。但是需要注意的是在外接模块较多时要注意IO口的配置,必要时可以连接扩展芯片,以免IO口不足,无法完成设计需求。

2 软件编写

一个完整的多功能蓝牙音箱设计只有硬件设计还不能工作,必须由烧入AU6210的程序控制系统的运作。本设计系统软件是采用C语言为主、汇编语言为辅,使用KeilμVision 4软件进行编译,主函数是一个while循环函数,其流程如图5所示。

图5 主函数循环图

2.1 初始化编写

系统初始化过程在编写程序过程中非常重要,不能忽略,主要包括系统时钟、GPIO口、计时器、中断、按键等外接模块的初始化。如果忘记初始化或者初始化不彻底,那么在音箱运行过程中可能会出现各种难以查找的错误。

系统初始化在开机读取断电记忆之后,主循环开始之前进行,只执行一次。以一个IO口的初始化设置为例,程序如下。

SetGpioRegBit(GPIO_A_IN,1< <0);

ClrGpioRegBit(GPIO_A_OUT,1< <0);

ClrGpioRegBit(GPIO_A_PU,1< <0);

ClrGpioRegBit(GPIO_A_PD,1< <0);

ClrGpioRegBit(GPIO_A_DS,1< <0);

2.2 GPIO口上/下拉配置编写

AU6210一共有5组IO口,除了普通的作用外,大部分IO口具有复用功能,但是在一个时间只能有一个功能,而不能重叠。需要注意的是,所有的GPIO口都是双向传输的,上电默认都是输入状态,内部的上、下拉电阻通过软件来控制,通过DS寄存器来配置强弱两档电阻值。部分GPIO内部集成了1.7 mA和2.4 mA两个下拉电流源驱动LED管或者LED屏,并且该驱动为免电阻直驱。

AU6210芯片中,GPIO_X_PU和GPIO_X_PD表示GPIO的上拉和下拉配置寄存器,GPIO上的电平≤1.40 V判断为逻辑0,≥1.60 V判断为逻辑1,设逻辑阀值约为1.5 V,针对于该值,弱上下拉折算阻值(约)为85 kΩ,强上拉/下拉折算阻值(约)为24 kΩ,强、弱两档通过GPIO_X_DS寄存器配置,相应位为1时为强档,X可以是任意一个GPIO口。将GPIO_B的第三口配置为带强上拉的输入端口示例如下:

SetGpioRegBit(GPIO_B_IE,1< <3);

ClrGpioRegBit(GPIO_B_OE,1< <3);

ClrGpioRegBit(GPIO_B_PU,1< <3);

ClrGpioRegBit(GPIO_B_PD,1< <3);

SetGpioRegBit(GPIO_B_DS,1< <3);

2.3 主循环编写

主循环是一个while函数,用while(1){}使系统一直运行直到得到跳出命令。在编写程序时需要注意在任何一个死循环或者较长的循环中,一定要喂狗,以免系统自动重启。部分主循环程序如下。

2.4 PWM呼吸灯应用编写

AU6210最多可以支持3路PWM通道同时输出,可应用于触摸屏时钟,蜂鸣器,LED呼吸效果等。其中GPIO_A[0]与GPIO_D[5]、GPIO_A[1]与GPIO_D[6]、GPIO_A[2]与 GPIO_D[7]不能同时使用。

呼吸灯主要是通过占空比调节灯光亮暗,打开PWM通道的函数为VOID PwmEnableChannel(PWM_OUT PUT_SEL PwmOutSel),对应的将Enable换成Disable则是禁止某个通道。配置PWM通道用到VOID PwmConfigChannel(PWM_OUTPUT_SEL Pwm OutSel,BYTE ClkSel,WORD Div,WORD Duty),其中ClkSel为时钟源选择,一般为0∶12×106Hz或者1∶46 875 Hz,Div为分频比,Duty为占空比。

所有代码都是从底层调用,配置完后需立即调用PwmEnableChannel()函数方能生效。

2.5 LED屏扫描程序编写

LED屏扫描程序是测试阶段用在主函数执行之前的一段代码,完成功能后注释。扫描程序功能是让数码管按COM和SEG的顺序逐一点亮,相对于硬件逐一导通的测试方式,能节约大量时间,并且提高准确度。6COM、8SEG的扫描程序如下:

2.6 蓝牙模块编写

主控通过配置IO口的高、低电平控制蓝牙的工作状态,利用中断检测蓝牙的工作状态。MCU通过MFB脚专门控制蓝牙模块开关,进入蓝牙模式时,MCU给MFB一个持续3 s的高电平再拉低,蓝牙就进入启动状态,再给一个持续3 s的高电平拉低则关闭蓝牙。控制按键则是给一个200 ms的低电平再拉高则表示有按键按下。

STATE1和STATE2输出信号是由高、低电平组成,有通话、配对中、配对成功、待机、播歌、播歌暂停几种状态,不同的状态信号不同,MCU将定期检测来做出相应操作。下面是一段蓝牙模块的初始化程序,配置各个IO口初始电平,切换音频通道并开机:

VER_FUNC_BIT_LOW();

WaitMs(3000);

VER_FUNC_BIT_HIGH();

VOL_PREV_BIT_HIGH();

VOL_NEXT_BIT_HIGH();

PLAY_PAUSE_BIT_HIGH();

SET_A6A7_FMIN();

InDacChannelSel(DAC_CH_FMIN_A6A7);

3 结束语

笔者所设计的音箱,不仅拥有收音机、MP3播放、AUX-IN、USB声卡播放等功能,全面实现了多功能音箱的多媒体读取、播放,自身还集成了蓝牙耳机的功能;音箱拥有LED屏幕实时显示音箱工作状态,使用简单,操作便捷,按键清晰、简洁,适合各类人群;PWM呼吸灯效果更是酷炫时尚,令人赏心悦目。本设计经过试用并且实际运用后证明完全可行,并且运行稳定,在此设计基础上微调的成品也有许多已经批量生产。

但是此设计受限于AU6210的OTP存储空间,需要尽可能的优化代码,减小代码空间,也因此不能同时连接所有模块来运行,这是此设计的不足之处。触摸控制是多功能蓝牙音箱将来发展的必经途径,蓝牙音箱的发展有着良好的前景。

[1]石鑫焱,刘权,曹成茂.数字车载音箱系统设计[J].微型机与应用,2011,30(19):19-21.

[2]陈永降,朱维杰.基于BU9435KV的车载音箱系统设计[J].电子技术,2008(11):18-20.

[3]肖宁,吕盼稂,王余涛,等.基于TEF6606车载收音机模块设计[J].微型机与应用,2010(8):32-35.

猜你喜欢

音箱按键蓝牙
蓝牙音箱的直线之美
KEF推出新一代LS50 Wireless Ⅱ音箱
Polk(普乐之声)推出高端Reserve系列音箱
基于有限状态机的按键检测程序设计
小音箱,大精彩 B&W 805 D3尊贵版书架音箱
多一对音箱,多一份惊喜Marantz AV8805
简单、易用,可玩性强Q AcousticsBT3蓝牙音箱
适合自己的才是最好的 德生(TECSUN) BT-50蓝牙耳机放大器
紧急:蓝牙指尖陀螺自燃!安全隐患频出
一种多方向导光按键结构设计