MP3汽车报站器的实现
时间:01-16
来源:互联网
点击:
随着城市的快速发展,公交线路不时地在进行调整,站名也随之进行变化,而且车载广告也越来越受到商家的重视,因此一款能够方便地更换语音信息、播放高质量语音信息的汽车报站器显得越来越重要。传统的汽车报站器都是采用专用语音合成芯片制成的。语音合成芯片受信息容量、语音音质的限制,且更换信息需专业设备及人士,因而使研制一种新型汽车报站器显得极为重要。本文设计的报站器可非常方便地更换播放内容,并可播放高品质的音乐。
1 报站器功能
该报站器具有如下功能:
◇可作为优盘与电脑连接。用户可自行下载报站器的播放内容,也可方便地更改播放内容。
◇可通过编辑播放列表文件更改所要播放的文件。
◇具有16个16×16的点阵汉字,语音播放时可同时用汉字提示播放内容。
◇播放高品质的音乐,无报站播放时可作为MP3播放器,提高公交车服务质量。
2 系统工作原理
本系统采用AT89C51SNDlC单片机(内部集成MP3解码器)作为主控CPU及解码MP3数据,实现对报站信息播放、点阵字符显示、文件存储以及用作优盘功能时USB与PC机联机的控制。系统利用FATl6在K9F1208上实现文件系统,形成一个Windows可识别访问的64MB寻址区域。结合USB控制器,系统可作为优盘在Windows下使用,从而实现在Windows下对文件的管理以及数据存储功能。系统利用FATl6文件系统在 K9F1208上设置了一个名为SCHEDULE.LST的列表文件。
该列表文件的不同行列取了根目录下不同的MP3文件名称,键盘的不同按键对应了列表文件不同行中的MP3文件名称;当有一按键按下时,程序找到列表文件中相应行对应的MP3文件进行播放。这样通过程序的设定,公交车可通过键盘实现MP3格式声音信号的报站以及各种信息的广播。列表文件在系统对闪存初始化时生成,系统在对闪存进行格式化的同时生成该名为 sCHEDULE.LST的列表文件。该列表文件可在Windows下利用记事本打开,编辑所需播放的MP3名称。播放报站信息的同时通过16个16× 16的LED点阵显示相应的播放内容。
系统框图如图1所示。
3 部分电路
AT89C51SNDlC是Atmel公司推出的一款集成MP3硬件解码器及USB revl.1控制器的单片机。它基于8位C51 MCU核(最高时钟频率为20 MHz),内置2304字节RAM及64KB Flash程序空间,具有4KB引导闪存,提供超过44个可用的通用I/O口及多种接口。其中非常方便的设计是4位可中断的键盘口和I2S格式音频接口。 4位可中断键盘口可组成4×4的键盘矩阵,而I2S接口简化了系统电路。
本设计的DAC采用的是UDAl330。UDAl330 是Philips公司推出的一款内部集成耳机运算放大器、带有I2S接口的DAC。采用UDAl330可进一步简化系统电路,并且提供L3模式及静态控制两种控制方式,最高可提供20位的高品质声音,是一种较为理想的选择。
系统原理图如图2所示。
3.1 语音处理部分
AT89C51SNDlC芯片内部的解码电路支持MEPG I/II声音格式第三层格式的硬解码,可处理48 kHz、44.1kHz、32 kHz、24 kHz、22.05kHz和16 kHz采样频率的MP3音频信号,支持31级的低、中、高均衡控制及左右声道独立音量控制,音质效果方面明显好于语音合成芯片。
MP3文件存储于闪存K9F1208中。当进行报站信息播放时,MCU按照系统当前的状态及所按的按键,按照程序的设定从列表文件SCHEDULE. IST中查找应播放的MP3文件名。在查找、打开该文件后,检测该文件MP3数据的各帧,并查看帧头所带的信息是否与该帧一致。如果发现整个错误在容差范围内,则认定文件可以播放。MCU对解码器的控制是通过9个与MP3解码器相关的特殊功能寄存器来实现的。只有输入缓冲区中已经有一完整的帧时,解码器才能开始播放。
解码器通过MP3解码状态寄存器MP3STA及MP33TAl中的MPREQ、MPFREQ、MPBREQ位来实现对MP3输入缓冲管理的握手信号。播放时,MCU从MP3文件中取出MP3数据帧送入MP3DAT寄存器。当解码器需要数据时,通过握手信号,并引发相应中断,通知MCU向MP3DAT中输入数据。解码器还支持CRC校验、帧同步错误校验等功能,这里不再赘述。
与UDAl330的连接上,AT89C51SND1C的I2S接口引脚分别接到UDAl330对应的引脚上。为提高音频信号音质,UDAl330采用L3模式,APPSEL 接地。该模式下,APPL0作为测试引脚,APPL1作为L3模式的时钟,APPL2作为L3模式控制,APPL3作为L3模式的数据输入,它们分别与 AT89C5lSNDlC的P4.7、P4.4、P4.5、P4.O相连。
报站器不需要录音功能,因此MIC电路无须接入MP3电路中。MIC电路的音频信号作为汽车功放的另一路输入接入,如图3所示。
1 报站器功能
该报站器具有如下功能:
◇可作为优盘与电脑连接。用户可自行下载报站器的播放内容,也可方便地更改播放内容。
◇可通过编辑播放列表文件更改所要播放的文件。
◇具有16个16×16的点阵汉字,语音播放时可同时用汉字提示播放内容。
◇播放高品质的音乐,无报站播放时可作为MP3播放器,提高公交车服务质量。
2 系统工作原理
本系统采用AT89C51SNDlC单片机(内部集成MP3解码器)作为主控CPU及解码MP3数据,实现对报站信息播放、点阵字符显示、文件存储以及用作优盘功能时USB与PC机联机的控制。系统利用FATl6在K9F1208上实现文件系统,形成一个Windows可识别访问的64MB寻址区域。结合USB控制器,系统可作为优盘在Windows下使用,从而实现在Windows下对文件的管理以及数据存储功能。系统利用FATl6文件系统在 K9F1208上设置了一个名为SCHEDULE.LST的列表文件。
该列表文件的不同行列取了根目录下不同的MP3文件名称,键盘的不同按键对应了列表文件不同行中的MP3文件名称;当有一按键按下时,程序找到列表文件中相应行对应的MP3文件进行播放。这样通过程序的设定,公交车可通过键盘实现MP3格式声音信号的报站以及各种信息的广播。列表文件在系统对闪存初始化时生成,系统在对闪存进行格式化的同时生成该名为 sCHEDULE.LST的列表文件。该列表文件可在Windows下利用记事本打开,编辑所需播放的MP3名称。播放报站信息的同时通过16个16× 16的LED点阵显示相应的播放内容。
系统框图如图1所示。
3 部分电路
AT89C51SNDlC是Atmel公司推出的一款集成MP3硬件解码器及USB revl.1控制器的单片机。它基于8位C51 MCU核(最高时钟频率为20 MHz),内置2304字节RAM及64KB Flash程序空间,具有4KB引导闪存,提供超过44个可用的通用I/O口及多种接口。其中非常方便的设计是4位可中断的键盘口和I2S格式音频接口。 4位可中断键盘口可组成4×4的键盘矩阵,而I2S接口简化了系统电路。
本设计的DAC采用的是UDAl330。UDAl330 是Philips公司推出的一款内部集成耳机运算放大器、带有I2S接口的DAC。采用UDAl330可进一步简化系统电路,并且提供L3模式及静态控制两种控制方式,最高可提供20位的高品质声音,是一种较为理想的选择。
系统原理图如图2所示。
3.1 语音处理部分
AT89C51SNDlC芯片内部的解码电路支持MEPG I/II声音格式第三层格式的硬解码,可处理48 kHz、44.1kHz、32 kHz、24 kHz、22.05kHz和16 kHz采样频率的MP3音频信号,支持31级的低、中、高均衡控制及左右声道独立音量控制,音质效果方面明显好于语音合成芯片。
MP3文件存储于闪存K9F1208中。当进行报站信息播放时,MCU按照系统当前的状态及所按的按键,按照程序的设定从列表文件SCHEDULE. IST中查找应播放的MP3文件名。在查找、打开该文件后,检测该文件MP3数据的各帧,并查看帧头所带的信息是否与该帧一致。如果发现整个错误在容差范围内,则认定文件可以播放。MCU对解码器的控制是通过9个与MP3解码器相关的特殊功能寄存器来实现的。只有输入缓冲区中已经有一完整的帧时,解码器才能开始播放。
解码器通过MP3解码状态寄存器MP3STA及MP33TAl中的MPREQ、MPFREQ、MPBREQ位来实现对MP3输入缓冲管理的握手信号。播放时,MCU从MP3文件中取出MP3数据帧送入MP3DAT寄存器。当解码器需要数据时,通过握手信号,并引发相应中断,通知MCU向MP3DAT中输入数据。解码器还支持CRC校验、帧同步错误校验等功能,这里不再赘述。
与UDAl330的连接上,AT89C51SND1C的I2S接口引脚分别接到UDAl330对应的引脚上。为提高音频信号音质,UDAl330采用L3模式,APPSEL 接地。该模式下,APPL0作为测试引脚,APPL1作为L3模式的时钟,APPL2作为L3模式控制,APPL3作为L3模式的数据输入,它们分别与 AT89C5lSNDlC的P4.7、P4.4、P4.5、P4.O相连。
报站器不需要录音功能,因此MIC电路无须接入MP3电路中。MIC电路的音频信号作为汽车功放的另一路输入接入,如图3所示。
MP3汽车报站器 相关文章:
- Windows CE 进程、线程和内存管理(11-09)
- RedHatLinux新手入门教程(5)(11-12)
- uClinux介绍(11-09)
- openwebmailV1.60安装教学(11-12)
- Linux嵌入式系统开发平台选型探讨(11-09)
- Windows CE 进程、线程和内存管理(二)(11-09)