论文部分内容阅读
【摘 要】音频输出接口初始化,要得到两个声道串行数据前,需要先对音频输出接口的AUDCON0(音频接口控制寄存器0)和 AUDCON
1(音频接口控制寄存器1)中的相关部分进行正确的设置。
【关键词】嵌入式;多媒体;音频
随着音频解码技术、存储器技术、MP3高质量压缩技术等相关技术不断的发展以及人们对消费电子产品需求的增加。设计一款性价比优良的MP3 播放器具有实际的应用价值[1]。随着 C语言的发展和嵌入式系统技术的推广 ,MP3 播放器的设计成为典型的嵌入式系统应用。MP3具有最基本的播放、选曲、音量控制、音效控制功能。当连接到计算机的 USB接口时,MP3变成 U盘,可以向 U盘复制文件,文件包括 MP3歌曲文件和普通文件 [2,3]。
1.系统设计相关技术
MP3 文件是由帧(frame)构成的,帧是 MP3文件最小的组成单位。MP3的全称应为 MPEG1 Layer-3音频文件,MPEG(Moving Picture Experts Group)在中文译为活动图像专家组,指影音压缩标准,MPEG 音频文件是 MPEG1标准中的声音部分,也可以叫 MPEG音频层,这是根据压缩质量和编码复杂程度划分为三层,即 Layer-1、Layer2、Layer3,且分别对应MP1、MP2、MP3这三种声音文件,不同的用途使用不同层次的编码。MPEG音频编码的层次越高,编码器越复杂,压缩率也越高,MP1和 MP2的压缩率分别为4:1 和 6:1-8:1,而 MP3的压缩率可以达到10:1-12:1,即一分钟 CD音质的音乐,未经压缩需要 10MB的存储空间,而经过 MP3压缩编码后只有 1MB左右。
MP3音频文件分为三部分:TAG_V2(ID3V2),Frame, TAG_V1(ID3V1)。ID3是一个标记MPEG的标准,具体的来说,这些标记是用以指明歌曲的词曲作者、演唱者,年月、所属专辑等相关信息,这样,播放器在播出时可以读出并显示这些歌曲的相关信息。
2.硬件设计
2.1硬件方案选择此设计时选用 ATMEL公司的 AT89C51SND1C芯片作为 MP3播放器的主控制器。主控制器的选择其实也是取决于 MP3方案的选定。
通过分析结合本设计的实际情况,方案如下: AT89C51SND1C:CPU+解码器+USB控制器;CS4330A:D/A转换;任意双路运算放大芯片: 音频放大;K9F5608:32M Flash存储器;最后选定了集成 MP3解码器的 MP3播放器方案,选择了 AT89C51SND1C作为主控制器。
2.2AT89C51SND1C简介[5-6]
AT89C51SND1C是ATMEL公司推出的基于8位C51 MCU内核的MP3解码器芯片。它内置 MP3硬件解码器和 USB控制器,支持 48、44.1、32、24、22.05及 16KHZ采样频率。它可以适应市场上不同 DAC的可编程的音频输出接口,兼容 PCM格式和 I 2S格式。内置 2304BRAM和 64KB Flash程序空间。
3.软件设计
3.1功能定义
利用 Flash存储器技术、MP3音频解码技术、USB接口技术、定时/计数器中断等技术,实现下面的几大主要功能:
3.1.1读取 MP3音频文件。
3.1.2解码 MP3音频文件。
3.1.3播放解码之后的 MP3歌曲文件。
3.1.4实现人机交互接口。
3.1.5U盘的读写。
3.2AT89C51SND1C初始化
播放 MP3文件时,要首先对主控制器 AT89C51SND1C进行几方面的初始化设置。
3.2.1锁相环初始化,MP3解码器、USB控制器以及音频输出的接口使用的全部是内部锁相环提供的时钟。程序设计如下:
void PllInit(void) { if (FirstStart)
{AUXR1 = 0xf2; //这两个寄存器的值在用 Start Application和直接上电时不一样,前一种情况下 MP3解码器才工作,PLLCON = 0; 这里强制将其置为与用 Start Application按钮时一致,FirstStart = 0; }//PLLCON:锁相环控制寄存器;锁相环时钟及 MP3解码器时钟设置。CKCON |= X2; //0000 0001使能 X2模式,增加处理速度,每个机器周期变成 6个振荡周期即 3个时钟周期 PLLCON &= (~PLLRES); //使能 PLL PLLCON |= PLLEN;}
3.2.2MP3解码器的初始化,即对 MP3CON(MP3控制寄存器)和 MP3CLK(MP3时钟除法器寄存器)进行设置。程序设计如下: //MP3时钟频率的计算方法:MP3CLK=PLLCLK/(int)(MPCD+1)负反馈
MP3CLK|=MPCD;
MP3CON &= (~MSKREQ); //允许产生MP3中断。
MP3CON |= MPEN;//使能 MP3解码器。
3.2.3音频输出接口初始化,要得到两个声道串行数据前,需要提前对音频输出接口的AUDCON0(音频接口控制寄存器0)和AUDCON1(音频接口控制寄存器1)中的相关有效部分进行正确的设置。程序设计如下:
void AudioInit()
{ unsigned char i = 10;
AUDCON0 = 0x77; //0111 0110
AUDCON1&=(~0xB0); //SRC=0,MSREQ=0,MUDRN=0
AUDCON1 |= 0x01;
while (i)i--;
AUDCON1 |= 0x40;}
3.2.4播放器按键初始化,实现播放MP3 的人机交互功能。
void KeyBoardInit()
{ P1 = 0x0f; //将端口1 的低四位,即键盘对应的4 位置1
KBCON = 0x00; //设置键盘有效模式为低电平有效,并使能
IEN1 = IEN1 | EKB; } //使能键盘中断Enable KeyBoard Interrupt
4.总结
本设计的硬件系统是围绕着 AT89C51SND1C主控芯片来进行规范性设计和调试的。软件设计则要以硬件系统为前提下,以功能定义的要求进行设计现调试。嵌入式系统硬件的定制,程序的设计必须多次的调试与完善。设计必须排除各种错误,直到成功搭建开发环境;程序编译出现错误,必须利用调试功能找出错误并修改代码[3]。
【参考文献】
[1]求是科技编著.Visual C++ 音视频编解码技术及实践人民邮电出版社,2006.6.
[2]李军编著.便携式 MP3播放器的方案分析及其技术研究北京航空航天大学,2004.7.
[3]李国锋等编著.U盘 MP3播放器的设计与实现_硬件及流程南开大学,2005.
[4]汪勇、熊前兴等编著.MP3 文件格式解析武汉理工大学期,2004.
[5]欧阳文编著.ATMEL89系列单片机的原理与开发实践中国电力出版社,2007.6.
[6]余永权等编著.ATMEL 89系列(MCS-51兼容)Flash单片机原理及应用电子工业大学.
1(音频接口控制寄存器1)中的相关部分进行正确的设置。
【关键词】嵌入式;多媒体;音频
随着音频解码技术、存储器技术、MP3高质量压缩技术等相关技术不断的发展以及人们对消费电子产品需求的增加。设计一款性价比优良的MP3 播放器具有实际的应用价值[1]。随着 C语言的发展和嵌入式系统技术的推广 ,MP3 播放器的设计成为典型的嵌入式系统应用。MP3具有最基本的播放、选曲、音量控制、音效控制功能。当连接到计算机的 USB接口时,MP3变成 U盘,可以向 U盘复制文件,文件包括 MP3歌曲文件和普通文件 [2,3]。
1.系统设计相关技术
MP3 文件是由帧(frame)构成的,帧是 MP3文件最小的组成单位。MP3的全称应为 MPEG1 Layer-3音频文件,MPEG(Moving Picture Experts Group)在中文译为活动图像专家组,指影音压缩标准,MPEG 音频文件是 MPEG1标准中的声音部分,也可以叫 MPEG音频层,这是根据压缩质量和编码复杂程度划分为三层,即 Layer-1、Layer2、Layer3,且分别对应MP1、MP2、MP3这三种声音文件,不同的用途使用不同层次的编码。MPEG音频编码的层次越高,编码器越复杂,压缩率也越高,MP1和 MP2的压缩率分别为4:1 和 6:1-8:1,而 MP3的压缩率可以达到10:1-12:1,即一分钟 CD音质的音乐,未经压缩需要 10MB的存储空间,而经过 MP3压缩编码后只有 1MB左右。
MP3音频文件分为三部分:TAG_V2(ID3V2),Frame, TAG_V1(ID3V1)。ID3是一个标记MPEG的标准,具体的来说,这些标记是用以指明歌曲的词曲作者、演唱者,年月、所属专辑等相关信息,这样,播放器在播出时可以读出并显示这些歌曲的相关信息。
2.硬件设计
2.1硬件方案选择此设计时选用 ATMEL公司的 AT89C51SND1C芯片作为 MP3播放器的主控制器。主控制器的选择其实也是取决于 MP3方案的选定。
通过分析结合本设计的实际情况,方案如下: AT89C51SND1C:CPU+解码器+USB控制器;CS4330A:D/A转换;任意双路运算放大芯片: 音频放大;K9F5608:32M Flash存储器;最后选定了集成 MP3解码器的 MP3播放器方案,选择了 AT89C51SND1C作为主控制器。
2.2AT89C51SND1C简介[5-6]
AT89C51SND1C是ATMEL公司推出的基于8位C51 MCU内核的MP3解码器芯片。它内置 MP3硬件解码器和 USB控制器,支持 48、44.1、32、24、22.05及 16KHZ采样频率。它可以适应市场上不同 DAC的可编程的音频输出接口,兼容 PCM格式和 I 2S格式。内置 2304BRAM和 64KB Flash程序空间。
3.软件设计
3.1功能定义
利用 Flash存储器技术、MP3音频解码技术、USB接口技术、定时/计数器中断等技术,实现下面的几大主要功能:
3.1.1读取 MP3音频文件。
3.1.2解码 MP3音频文件。
3.1.3播放解码之后的 MP3歌曲文件。
3.1.4实现人机交互接口。
3.1.5U盘的读写。
3.2AT89C51SND1C初始化
播放 MP3文件时,要首先对主控制器 AT89C51SND1C进行几方面的初始化设置。
3.2.1锁相环初始化,MP3解码器、USB控制器以及音频输出的接口使用的全部是内部锁相环提供的时钟。程序设计如下:
void PllInit(void) { if (FirstStart)
{AUXR1 = 0xf2; //这两个寄存器的值在用 Start Application和直接上电时不一样,前一种情况下 MP3解码器才工作,PLLCON = 0; 这里强制将其置为与用 Start Application按钮时一致,FirstStart = 0; }//PLLCON:锁相环控制寄存器;锁相环时钟及 MP3解码器时钟设置。CKCON |= X2; //0000 0001使能 X2模式,增加处理速度,每个机器周期变成 6个振荡周期即 3个时钟周期 PLLCON &= (~PLLRES); //使能 PLL PLLCON |= PLLEN;}
3.2.2MP3解码器的初始化,即对 MP3CON(MP3控制寄存器)和 MP3CLK(MP3时钟除法器寄存器)进行设置。程序设计如下: //MP3时钟频率的计算方法:MP3CLK=PLLCLK/(int)(MPCD+1)负反馈
MP3CLK|=MPCD;
MP3CON &= (~MSKREQ); //允许产生MP3中断。
MP3CON |= MPEN;//使能 MP3解码器。
3.2.3音频输出接口初始化,要得到两个声道串行数据前,需要提前对音频输出接口的AUDCON0(音频接口控制寄存器0)和AUDCON1(音频接口控制寄存器1)中的相关有效部分进行正确的设置。程序设计如下:
void AudioInit()
{ unsigned char i = 10;
AUDCON0 = 0x77; //0111 0110
AUDCON1&=(~0xB0); //SRC=0,MSREQ=0,MUDRN=0
AUDCON1 |= 0x01;
while (i)i--;
AUDCON1 |= 0x40;}
3.2.4播放器按键初始化,实现播放MP3 的人机交互功能。
void KeyBoardInit()
{ P1 = 0x0f; //将端口1 的低四位,即键盘对应的4 位置1
KBCON = 0x00; //设置键盘有效模式为低电平有效,并使能
IEN1 = IEN1 | EKB; } //使能键盘中断Enable KeyBoard Interrupt
4.总结
本设计的硬件系统是围绕着 AT89C51SND1C主控芯片来进行规范性设计和调试的。软件设计则要以硬件系统为前提下,以功能定义的要求进行设计现调试。嵌入式系统硬件的定制,程序的设计必须多次的调试与完善。设计必须排除各种错误,直到成功搭建开发环境;程序编译出现错误,必须利用调试功能找出错误并修改代码[3]。
【参考文献】
[1]求是科技编著.Visual C++ 音视频编解码技术及实践人民邮电出版社,2006.6.
[2]李军编著.便携式 MP3播放器的方案分析及其技术研究北京航空航天大学,2004.7.
[3]李国锋等编著.U盘 MP3播放器的设计与实现_硬件及流程南开大学,2005.
[4]汪勇、熊前兴等编著.MP3 文件格式解析武汉理工大学期,2004.
[5]欧阳文编著.ATMEL89系列单片机的原理与开发实践中国电力出版社,2007.6.
[6]余永权等编著.ATMEL 89系列(MCS-51兼容)Flash单片机原理及应用电子工业大学.