基于单片机的电子导游MP3设计
发布时间:2008/5/27 0:00:00 访问次数:473
摘 要:本文介绍了一种基于ti单片机msp430f133的用于电子导游的专用mp3播放器的软硬件设计。该播放器的硬件电路主要由微功耗单片机、mp3解码芯片、存储器等构成;软件采用模块化结构进行设计。
关键词:单片机;电子导游;存储器;mp3;i2c
引言
mp3播放器近年来发展很快,目前已有大量产品面世。旅游这个新兴行业近年来得到了蓬勃发展,电子导游与人工导游相比,能避免由于导游个人因素带来的服务质量的不稳定性,为游客提供更加全面客观的服务。
电子导游系统是将专业导游对珍贵文物、旅游景点的介绍进行录音,并转换为mp3格式文件,以减小数据的存储量,按景点分割成不同的文件,通过usb接口下载到mp3中,然后通过红外自动或人工手动选择播放、收听各个文物、景点的介绍。
电子导游系统包括微机、电子导游、选曲控制器三个部分。微机用于对旅游景点的资料录入、存储、编辑和格式转换,为电子导游提供足够的原始素材。
选曲控制器安装在各个文物展台、旅游景点,定时发射景点编码信号。电子导游接收到景点编码信号后,进行解码并选择相应的内容进行播放。
电子导游由游客携带,但之前需要通过usb接口从微机中下载景点资料。本文主要介绍电子导游的软硬件设计。
电子导游硬件电路结构 电子导游的硬件结构框图如图1所示,主要包括用于主控的msp430单片机,mp3解码及d/a转换芯片,存储旅游景点介绍信息的flash存储器以及景点选择控制接口、人机交互接口、usb接口等。
msp430单片机及外围接口电路
ti公司的msp430f133单片机具有16位risc结构,内部有2个16位的定时器、1个12位高速a/d转换器和串行接口。内设jtag模块,具有在线调试和在线编程功能。具有低电压和多种低功耗工作模式,待机模式电流仅1.3 a,关闭ram时的待机电流低至0.15 a。数控振荡器使得从低功耗模式唤醒仅需6 s,非常适合于便携式应用场合。
msp430单片机的6个8位的io端口与外围芯片连接,其连接关系如表1所示。
按键电路采用行列扫描键盘结构,按键功能包括选曲控制、模式选择、音量控制等。液晶显示屏用于显示曲目的序号和播放状态,该接口包括数据、时钟等6根接口信号线。
红外管接收的信号经过放大整形后,送入到msp430单片机解码,并由单片机根据解码结果进行选曲播放。
本系统采用nand flash存储器,该类存储器有8根数据信号和6根控制信号。信号线的数目与存储器芯片的容量无关,便于存储器容量升级。
解码电路
mas3507d是micronas公司推出的单片mp3解码芯片,能够对8khz、11.025khz、12khz和24khz、44.1khz等多种采样速率的音频数据流解码,具有i2c控制接口、异步mpeg位流输入接口、i2s解码数据流输出接口。内建dc/dc升压模块,适用于单节电池供电。电路图连接如图2所示。
dac3550a是micronas公司推出的与mas3507d配套的音频d/a转换及放大芯片,如图3所示。msp430通过i2c总线能够对dac3550进行音量控制、均衡控制等。该芯片不仅能接收来自i2s总线的音频数据流,而且提供了多个模拟输入接口。
软件设计
软件结构
图4为电子导游的软件结构,包括初始化、flash存储器操作、usb接口驱动、人机交互模块和解码模块等,直接控制硬件的程序模块采用汇编语言编程。
初始化模块主要包括时钟频率设置、lcd显示器初始化、音效音量和播放模式的设置等。
人机交互模块主要是在下载或者播放过程中给用户信息提示。根据提示信息,用户可以对电子导游进行相应的控制。如音量的增减、播放、快进、快退、暂停、音效的设定、直选曲目、停止等。
解码模块的核心是比特流传输。在传输前,要对解码芯片进行相应的初始化操作。
nand flash存储器操作模块实现存储器的物理检查、存储器链表建立和映射、存储器读写访问等。
时钟系统初始化模块
msp430单片机是多时钟芯片,在降低系统功耗的同时,为了充分发挥其性能,需要对系统时钟进行编程。
系统将xt2外接8mhz晶振,获得8mhz的主系统时钟mclk。而子系统时钟smclk为dco振荡器产生的频率为800khz的信号。时钟调整程序为:
bis.w #oscoff,sr ;关闭lfxt1振荡器
bic.b #xt2off,&bcsctl1 ;启动xt2振荡器
setuposc:
bic.b #ofifg,&ifg1 ;清除振荡器失效中断
mov.w #0ffh,r15
setuposc1:
dec.w r15 ;计算等待时间至"0"
jnz setuposc1 ;等待循环
bit.b #ofifg,&ifg ;测试振荡器失效中断标志
jnz setuposc ;重复测试,直至标志始终复位
bic.b #ofifg,&ifg1 ;清除振荡器失效中断
bis.b #80h,&bcsctl2;选择smclk时钟源
模拟i2c总线模块
msp430f133没提供i2c的硬件电路,因此需要用io口线模拟。用于通过i2c来控制mas3507d和dac3550a。模拟i2c时序的程序包括启动模块、停止模块、发送一个字节模块、接收一个字节模块、主应答模块
摘 要:本文介绍了一种基于ti单片机msp430f133的用于电子导游的专用mp3播放器的软硬件设计。该播放器的硬件电路主要由微功耗单片机、mp3解码芯片、存储器等构成;软件采用模块化结构进行设计。
关键词:单片机;电子导游;存储器;mp3;i2c
引言
mp3播放器近年来发展很快,目前已有大量产品面世。旅游这个新兴行业近年来得到了蓬勃发展,电子导游与人工导游相比,能避免由于导游个人因素带来的服务质量的不稳定性,为游客提供更加全面客观的服务。
电子导游系统是将专业导游对珍贵文物、旅游景点的介绍进行录音,并转换为mp3格式文件,以减小数据的存储量,按景点分割成不同的文件,通过usb接口下载到mp3中,然后通过红外自动或人工手动选择播放、收听各个文物、景点的介绍。
电子导游系统包括微机、电子导游、选曲控制器三个部分。微机用于对旅游景点的资料录入、存储、编辑和格式转换,为电子导游提供足够的原始素材。
选曲控制器安装在各个文物展台、旅游景点,定时发射景点编码信号。电子导游接收到景点编码信号后,进行解码并选择相应的内容进行播放。
电子导游由游客携带,但之前需要通过usb接口从微机中下载景点资料。本文主要介绍电子导游的软硬件设计。
电子导游硬件电路结构 电子导游的硬件结构框图如图1所示,主要包括用于主控的msp430单片机,mp3解码及d/a转换芯片,存储旅游景点介绍信息的flash存储器以及景点选择控制接口、人机交互接口、usb接口等。
msp430单片机及外围接口电路
ti公司的msp430f133单片机具有16位risc结构,内部有2个16位的定时器、1个12位高速a/d转换器和串行接口。内设jtag模块,具有在线调试和在线编程功能。具有低电压和多种低功耗工作模式,待机模式电流仅1.3 a,关闭ram时的待机电流低至0.15 a。数控振荡器使得从低功耗模式唤醒仅需6 s,非常适合于便携式应用场合。
msp430单片机的6个8位的io端口与外围芯片连接,其连接关系如表1所示。
按键电路采用行列扫描键盘结构,按键功能包括选曲控制、模式选择、音量控制等。液晶显示屏用于显示曲目的序号和播放状态,该接口包括数据、时钟等6根接口信号线。
红外管接收的信号经过放大整形后,送入到msp430单片机解码,并由单片机根据解码结果进行选曲播放。
本系统采用nand flash存储器,该类存储器有8根数据信号和6根控制信号。信号线的数目与存储器芯片的容量无关,便于存储器容量升级。
解码电路
mas3507d是micronas公司推出的单片mp3解码芯片,能够对8khz、11.025khz、12khz和24khz、44.1khz等多种采样速率的音频数据流解码,具有i2c控制接口、异步mpeg位流输入接口、i2s解码数据流输出接口。内建dc/dc升压模块,适用于单节电池供电。电路图连接如图2所示。
dac3550a是micronas公司推出的与mas3507d配套的音频d/a转换及放大芯片,如图3所示。msp430通过i2c总线能够对dac3550进行音量控制、均衡控制等。该芯片不仅能接收来自i2s总线的音频数据流,而且提供了多个模拟输入接口。
软件设计
软件结构
图4为电子导游的软件结构,包括初始化、flash存储器操作、usb接口驱动、人机交互模块和解码模块等,直接控制硬件的程序模块采用汇编语言编程。
初始化模块主要包括时钟频率设置、lcd显示器初始化、音效音量和播放模式的设置等。
人机交互模块主要是在下载或者播放过程中给用户信息提示。根据提示信息,用户可以对电子导游进行相应的控制。如音量的增减、播放、快进、快退、暂停、音效的设定、直选曲目、停止等。
解码模块的核心是比特流传输。在传输前,要对解码芯片进行相应的初始化操作。
nand flash存储器操作模块实现存储器的物理检查、存储器链表建立和映射、存储器读写访问等。
时钟系统初始化模块
msp430单片机是多时钟芯片,在降低系统功耗的同时,为了充分发挥其性能,需要对系统时钟进行编程。
系统将xt2外接8mhz晶振,获得8mhz的主系统时钟mclk。而子系统时钟smclk为dco振荡器产生的频率为800khz的信号。时钟调整程序为:
bis.w #oscoff,sr ;关闭lfxt1振荡器
bic.b #xt2off,&bcsctl1 ;启动xt2振荡器
setuposc:
bic.b #ofifg,&ifg1 ;清除振荡器失效中断
mov.w #0ffh,r15
setuposc1:
dec.w r15 ;计算等待时间至"0"
jnz setuposc1 ;等待循环
bit.b #ofifg,&ifg ;测试振荡器失效中断标志
jnz setuposc ;重复测试,直至标志始终复位
bic.b #ofifg,&ifg1 ;清除振荡器失效中断
bis.b #80h,&bcsctl2;选择smclk时钟源
模拟i2c总线模块
msp430f133没提供i2c的硬件电路,因此需要用io口线模拟。用于通过i2c来控制mas3507d和dac3550a。模拟i2c时序的程序包括启动模块、停止模块、发送一个字节模块、接收一个字节模块、主应答模块