新闻  |   论坛  |   博客  |   在线研讨会
带SD/MMC存储卡接口的MP3****芯片ft1780
yanqin | 2009-06-24 17:57:18    阅读:1355   发布文章

 

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

     方泰电子的ft1780可以帮手机设计工程师很好的解决这个难题。它不仅可以提供专业的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=0.1uf,增gain=r1/r3=1,高频截止频率为fh=1/(2*π*r1*c1)=14.6khz,低频截止频率为fl=1/(2*π*r3*c3)=48.2hz。从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函数,完成停止播放,暂停/恢复等功能。

  


*博客内容为网友个人发布,仅代表博主个人观点,如有侵权请联系工作人员删除。

参与讨论
登录后参与讨论
推荐文章
最近访客