1 I2C协议
I2C总线作为同步串行数据输出总线,由一条串行数据线(SDA)和一条串行时钟线(SCL)组成。它是一个真正的多主机总线,如果多个主机同时进行初始化数据传输,可以通过冲突检测和仲裁防止数据被破坏。每个连接到总线的器件都可以通过唯一的地址和一直存在的简单的主机/从机关系软件设定地址。主机可以作为主机发送器或主机接收器。
2 硬件电路
2.1 电路设计
根据车载音响系统的特点,设计选用STC12C5624AD系列单片机,它是宏晶公司推出的51增强型单片机,具有低功耗、计算速度快等特点。当关闭音响系统时,单片机进入低功耗休眠状态,单片机切断所有外围模块的供电;当系统需要工作时,通过外部中断唤醒单片机工作,这样最大限度地减少功耗。音响系统电路图如图1所示。
2.2 外围硬件模块
该系统以STC12C5624AD单片机为核心,通过I2C总线控制其他模块的工作。硬件模块框图如图2所示。
2.2.1 电源模块
电源模块采用美国国家半导体公司推出的电流输出降压开关型集成稳压电路LM2576和LM2575,它们内含固定频率振荡器(52 kHz)和基准稳压器(1.23 V),并具有完善的保护电路(电流限制及热关断电路)。集成稳压电路引入闭环控制,只需极少的外围器件便可构成高效为稳压电路,输出端电压稳定、纹波小[2]。
输入端电压范围为10 V~40 V。输入电压范围宽使系统能够适应12 V/24 V两种供电车系,同时也很好地解决了汽车工作在不同工况时,输出电压变化的问题。
2.2.2 MP3解码模块
MP3解码模块选用的是AU7842,集成了微控制器、MP3/WMA解码器、USB主机控制器、SD/MMC卡控制器、16 bit音频解码器和一个红外线解码器,如图3所示。
AU7842芯片是将以数字信号形式存储的音乐文件(MP3和WMA)解码成可以播放的模拟信号。开机后,单片机循环检测解码芯片周围电路的动作。当检测到芯片外围有存储设备接入,单片机控制芯片直接访问(DMA)存储器里的内容,读取数据并送入MP3/WMA解码器,解码得到的数字信号通过数模转换器(DAC)转换成模拟信号,经模拟音频放大和低通滤波,就可以得到听到的音乐[3]。[page]
2.2.3 收音机模块
收音芯片采用恩智浦半导体公司针对汽车收音机主机设计的一款包含PLL调谐系统的低中频调谐器TEF6606。除了基本特征外,TEF6606还提供良好的弱信号处理功能和一个动态频宽控制。TEF6606工作原理如图4所示,其本振信号由PLL调谐系统产生,通过I2C总线对可编程分频器的分频系数进行调谐,使压控振荡器(VCO)输出的本振频率发生变化,从而达到数字化调台的目的[4]。收音系统电路原理图如图4所示。
TEF6606芯片具有良好的微弱信号处理功能,提高了汽车在高速行驶和在大山之间行驶过程中收音机的收音性能。
2.2.4 音效处理模块
音效处理模块处理来自MP3解码芯片和收音芯片的声音。主控芯片通过I2C总线控制音效芯片相应寄存器,可以设置音量、音调(低音、高音)、平衡度(左、右)和响度(前、后);选择流行、摇滚、爵士、古典等音效;芯片在低音量时通过提升高频和低频声进行听觉补偿,可以得到低失真、低噪声和低直流电平漂移的听觉效果。
2.2.5 按键系统和显示系统电路
按键系统采用的是两个EC11编码器和4个按钮开关,便于汽车在行驶过程中驾驶员的操作。LCD采用根据汽车音响的功能而定制的笔段液晶,能够显示包括收音频率、音频播放时间、U盘状态、SD卡状态、RPT单曲重复播放、RDM随机播放、ST立体声状态、LOUD等响度、MUTE静音和左右声道的电平指示等状态。
3 系统软件设计
系统软件的总体流程框架如图5所示。在软件的辅助下,系统可以完成断电记忆功能,即在手动关机或自动掉电时,系统能记忆断电前系统的动作和各项设定值,并在下次开机时直接调用。收音头电路可实现以10 kHz的步长进行手动搜台和自动搜台,并且能够存储18个常听的频段。
断电记忆子程序如下:
void Save_Data(void) /*定义断电记忆函数*/
{Wirte_EEPROM(0x06db,vol_val);
/*记忆断电前音量设定值*/
Wirte_EEPROM(0x06dc,bass_val);
/*记忆断电前低音设定值*/
Wirte_EEPROM(0x06dd,tre_val);
/*记忆断电前高音设定值*/
Wirte_EEPROM(0x06de,loud_val);
/*记忆断电前响度设定值*/
Wirte_EEPROM(0x06e0,(uint8)(Temp_Freq
[Band_LW]&0x00ff)); /*记忆断电前LW频段值*/… …
Wirte_EEPROM(0x06e2,(uint8)(Temp_Freq[Band_MW]
&0x00ff));/*记忆断电前MW频段值*/
… …
Wirte_EEPROM(0x06e4,(uint8)(Temp_Freq[Band_SW]
&0x00ff));/*记忆断电前SW频段值*/
… …
Wirte_EEPROM(0x0700,Save_USB_Song1);
/*记忆断电前USB曲目顺序号*/
… …
Wirte_EEPROM(0x0703,Save_USB_Min1);
/*记忆断电前USB中正在播放曲目的播放时间*/
… …
Wirte_EEPROM(0x0707,Save_SD_Song1);
/* 记忆断电前SD中正在播放的曲目顺序号*/
… …
Wirte_EEPROM(0x070a,Save_SD_Min1);}
/*记忆断电前USB中正在播放曲目的播放时间*/
使用了断电记忆子程序,无论是人为关机还是系统掉电,系统都将会自动保存断电前使用者所设定的音效值如音量、平衡度、响度等值,以及断电前收音机的频段值或者是USB和SD中正在播放的曲目及播放的时间值,通过Wirte_EEPROM函数存入EEPROM。下一次系统开启时,使用者不必重新设定,系统可以直接从EEPROM值读取断电前的各个设定值。
收音头收音子程序如下:
void Ftun_Seek {static xdata uint32 step,max,min;
/*定义搜台时的步长,最高频率,最低频率*/
static xdata uint32 freq;
/*显示实时频率*/
static xdata uint16 stepnum;
/*搜台时搜索的步数*/
… …}
void RD_CI2cStart(void)
/*收音头工作起始条件*/
{byte j;
RD_DAT=1;
RD_CLK=1;
… …}
void RD_CI2cStop(void)
/*收音头工作停止条件*/
{ byte j;
RD_DAT=0;
RD_CLK=1;
… … }
主控芯片通过I2C总线控制收音头寄存器,通过改变RD_DAT的逻辑值来控制收音头的工作状况。通过键盘上按键操作就可以控制收音头以三种波段切换搜台。旋转搜台按钮,可以以10 kHz的步长进行手动搜台。通过控制自动搜台按钮,收音头可以完成10 kHz的步长进行自动搜台。
本文设计的数字车载音响系统兼容了收音机和MP3播放功能,在MP3音频文件存储设备方面有较大的突破,新型大容量存储设备(USB/SD)取代了传统卡带存储。系统操作简便,收音机和MP3播放性能良好。为保证系统稳定工作,实验模拟了汽车行驶状况[5],将系统分别置于-40℃和+60℃环境中以及四度空间振动试验台,结果表明,该系统能长时间运行,且各项功能稳定。该系统已经成功应用在某些品牌工程车。
上一篇:一种混合动力电池监测模块的设计实现
下一篇:非特定人车载多媒体语音控制系统
推荐阅读最新更新时间:2024-03-16 13:44