登录站点

用户名

密码

西门子工业自动化与驱动技术 - 单片机

  • 分享

    利用ft1780芯片解决音乐手机的音质和音量的优质化

    孙严军 2010-03-31 08:16
                  随着音乐手机的兴起,用户不仅对手机音乐的音量、音质要求越来越高,而且对手机的存储容量的要求也越来越大,总希望能多存些歌,可以省去频繁换歌的烦恼。但目前一般手机自带的内存远远不能满足这些要求,而且很多手机平台也无法支持外接存储卡,为了解决这一问题,就需要有配套的存储管理芯片。

    手机设计工程师很好的解决这个难题。它不仅可以提供专业的MP3音乐,而且集成了SD/MMC存储卡接口,由于内置文件管理系统,可以方便地升级原有的手机产品,使之具有可更换外接SD/MMC存储卡的功能。本文介绍了ft1780音频处理芯片的功能特点,并详细叙述了其在手机上的应用实例。

    ft1780芯片内部结构和特点

    图1是ft1780芯片的内部框图,从中可以看出,ft1780主要由7部分组成。

    图1:ft1780芯片内部框图。

    1. 主机接口:与Baseband相连,Baseband通过它向ft1780发命令和读取状态;

    2. 音频/系统引擎:芯片的核心部分,完成64和弦MIDI合成,MP3解码,七段数字均衡器,文件系统管理,系统控制等功能;

    3. SD/MMC卡控制器:完成SD/MMC卡接口功能;

    4. 输入/输出控制器:完成I2S接口,四路LED控制,马达和背光控制等功能;

    5. 电源管理系统:可以关掉不用的功能模块,节省系统功耗;

    6. 立体声耳机功放:可以直接驱动16ohm的耳机,输出功率可达到20mW以上;

    7. 喇叭功放:可以直接驱动8ohm喇叭,输出功率可达到500mW以上;

    ft1780芯片采用6mmx7mm 48Pin的BGA封装,与其它普通MP3解码芯片相比,它有以下几个主要特色:

    1. 工作电流小,具有高效的省电设计电路,芯片内各模块可以单独控制开和关,可满足手机上不同的工作模式要求;

    2. 支持全系列采样率和编码率的MP3数据,包括MPEG Version1 Layer3,MPEG Version2 Layer3和MPEG Version2.5 Layer3标准,采样率范围是8~48kHz,编码率是8~320kbps,解码品质高,声音音质好;

    3. 支持64和弦的铃声,支持自有的人声音效格式(FTF格式),同时支持自然音和背景音的播放;

    4. 内置SD/MMC卡的文件管理系统程序,不需要手机的基带来解析SD/MMC卡上的文件系统,基带只要发简单的命令就可以控制ft1780的播放功能,SD/MMC卡的数据可以不经过基带,由ft1780芯片自己读取和播放,这样可以大大减轻基带的负担,也因此拓宽了ft1780的应用面。

    5. 内置高品质立体声耳机功率放大电路,输出功率大,并具有无耦合电容设计的耳机输出电路。普通的耳机输出需要两个较大的隔直电容,若电容容量太小,会使低频响应变差,声音低频失真。而无耦合电容设计可以节省成本,节省手机电路板宝贵的空间,增加耳机输出的保真度。

    6. 内置喇叭功率放大电路,在8ohm喇叭上可以输出500mW以上的功率。

    图2:典型应用示意图。

    ft1780芯片的曲型应用

    ft1780的应用电路比较简单,所需的外围器件很少,只需要十几个电阻和电容,典型应用线路如2所示。通过调整R1和R3的比值可以调节ft1780内部输出到喇叭的增益,通过调整C1和C3可以调节喇叭输出声音的高频和低频特性,对于图中所列参数,R1=33k欧姆,C1=330pF,R3=33k欧姆,C3=,增Gain=R1/R3=1,高频截止频率为FH=1/(2*π*R1*C1)=,低频截止频率为FL=1/(2*π*R3*C3)=。从Audio In进来的音频信号可以通过控制从喇叭或耳机出来,并且可以根据需要通过R2和C2调节它的低频响应曲线。图中,耳机的输出已用了无耦合电容设计,所以图上没有输出耦合电容,但要注意的是,耳机的公共端不是通常的“地”,需是芯片上的虚拟地脚“HPR”。另外芯片的VDDA脚可以直接与电池的正级相接,在不需芯片工作时,可以用软件来控制芯片进入"Power Down"状态,这时芯片的耗电只有几微安。

    相关软件和播放流程

    ft1780芯片的工作需要相应的驱动程序支持。驱动程序采用模块化结构,各功能都有相应的程序,在Design In过程中,只要修改硬件相关的地址参数,加入中断服务程序(也可以使用定时器相关的查询模式),然后调用相应的API就可以正常工作(发出声音)了。图3是软件模块示意图,下面简单介绍一下各模块的功能:

    图3:软件模块示意图。

    1. 硬件平台相关模块:需要根据手机平台的情况修改相应的参数,主要有芯片寄存器的操作地址,输入时钟的频率等;

    2. MIDI模块:MIDI数据解析和处理,MIDI播放控制和回调控制;

    3. ADPCM模块:ADPCM数据解析和处理,ADPCM播放控制和回调控制;

    4. FTF模块:FTF数据解析和处理,FTF播放控制和回调控制;

    5. SD/MMC模块:SD/MMC命令解析和处理,SD/MMC播放控制和回调控制;

    6. MP3模块:MP3数据解析和处理,MP3播放控制和回调控制;

    7. 中断服务模块:对芯片的各个中断事件作相应的处理,主要补充数据,播放结束控制和出错信息处理等;

    8. 驱动程序API模块:提供用户所需的所用功能的调用,用户不必关心具体底层模块的细节,只需与上层API打交道;

    9. 用户参考模块:如何使用API控制播放的一个例子,也可以作为API的进一步包装,供用户直接使用。

    下面我们介绍一下ft1780软件的使用方法。

    播放Baseband上文件的流程

    图4是播放Baseband上文件的流程图。当用户想播放Baseband上的音频数据时,首先是要对ft1780芯片做初始化,然后对要播放的数据做预处理,驱动程序会分析数据格式,并根据格式自动调用底层处理函数,再下一步是启动中断或定时器、消息等机制,这一步的目的是启动后台处理任务,当进入播放状态时,需由后台任务完成后续的处理工作,最后就是发播放开始命令,开始播放声音,进入播放状态。

    图4:播放Baseband上文件的流程图。

    在播放状态下,ft1780芯片会根据内部运作情况发出中断请求,Baseband必需在一定时间内处理相应事件,否则会出现声音停顿,不连续等现象。在ft1780芯片内部有很大的FIFO(先进先出存储器)来保存播放的数据,可以适应低端Baseband中断反应延时比较大的问题,保证声音播放的顺畅。

    在播放过程中,Baseband随时可以调用相应的API来停止当前的播放,或读取播放信息,暂停/恢复等操作。

    播放SD/MMC卡上文件的流程

    图5是播放SD/MMC卡上文件的流程图。当用户想播放SD/MMC卡上的声音文件时,首先是要对ft1780芯片做初始化,然后读出卡上的声音文件,选择要播放的文件,调用简单的API播放命令后,进入播放状态,芯片会自动读取卡上的数据,播放出声音,再下一步是启动中断或定时器、消息等机制,这一步的目的是启动后台处理任务,处理中断事务。

    图5:播放SD/MMC卡上文件的流程图。

    虽然看上去与播放Baseband上文件的流程差不多,但主要有以下不同:当播放Baseband上文件时,Baseband必须不断地送数据到ft1780芯片内部,中断会比较频繁(与所播放的文件的码流率有关),而当播放SD/MMC卡上的文件时,ft1780芯片自己从SD/MMC卡里读取所需数据,不需要Baseband的干预,在播放过程中基本上没有中断任务,只有在播放结束时会发出中断告知Baseband,由Baseband决定下一步的工作,如重复播放、或播放下一个文件,所以对Baseband的要求更低,适应性更广。

    在播放过程中,Baseband随时调用相应的API函数,完成停止播放,暂停/恢复等功能。

你还不是该群组正式成员,不能参与讨论。 现在就加入