使用STA013实作MP3播放机之技术简介

本文作者:admin       点击: 2005-03-11 00:00
前言:
最近,受到iPod市场大卖的激励,国内许
多业者也想开发MP3播放机(MP3 player)。可是苦于目前可用且便宜的MP3系统级单芯片(SoC)实在不多,且又在成本不断要求降价的压力之下,业者想要以便宜的技术方案来获得高额的利润,实属不易。本文以技术的观点来介绍STA013芯片,它是一颗标准的MP3音讯译码器(audio decoder)。若不考虑体积大小、耗电量、额外的复杂功能、生产成本,它是能以单一的技术整合方案,来实现一台可用的(workable)MP3播放机。

技术规格和假设需求
STA013的官方技术文件(datasheet)很简捷扼要,对一般工程师而言,不见得容易了解。其部分原因是,STA013具有高可设定性(configurable)的功能,不同的设定组合可以满足不同的应用需求。因此,对不熟悉此特性的人而言,要想灵活应用它诚属不易。本文仅探讨STA013的一般性应用,所以,只会使用到它的基本要素和一种设定组态,好让一般工程师在入门时,尽可能以轻松自在的心情来理解它。
以下是此MP3系统的一些基本规格和假设需求(这些都是STA013能支持的):
●多媒体模式(multimedia mode):在此模式下,STA013能自动侦测得知此MP3数据的位传输率(bitrate),并发出请求供应更多数据的信号。只要请求供应更多数据的信号一直都存在着,供应数据到STA013的速度就必须尽量快,最好能达到20 Mbit/sec。MP3的取样速度(32、44.1、48 kHz)也会被自动侦测得知,然后,正确的时脉和数据波形会被产生,并供应给后端的数字模拟转换器(DAC),如附图1所示。在数据播放期间,是可以询问STA013,此时它侦测到什么,不过,这种设计比较复杂,所以不列入此MP3播放机的规格中。此外,MP3另有一个广播模式(broadcast mode),它要求供应数据的速度必须正确。但是,广播模式比较难使用,而且对大多数的MP3播放机设计而言,此模式并没有很大的益处。因此,本设计只针对多媒体模式来讨论。
●外部时脉(OCLK)输出:STA013能产生所有驱动DAC所必需的信号。STA013也能接受一个外部的DAC时脉,但对大多数的应用而言,这是没有必要和有些困难的。因此,本设计假设外部时脉也是由STA013产生。这将比要额外添加一个外部时脉电路简单多了。
●CS4334 DAC和14.7456 MHz石英晶体:我们不可能将STA013设定成可以和许多不同的DAC和石英晶体正常互动,因此,本设计使用一个14.7456 MHz石英晶体,因为它的价格便宜,而且能输出标准的频率。此外,本设计也使用CS4334 DAC,它能输出“录音线等级”(line-level)的高品质音频信号。它包含了一个具有4倍内插(interpolation)和连续时间模拟输出的滤波器,有了它,就可以省略掉额外的外部放大器,以及复杂的输出滤波电路。CS4334能使还原高品质声音的工作,变得简单和容易。
●只提供基本的命令或查询:STA013可以支持许多种选项和参数,但是本设计只采用其中属于基本必需的项目,以使此设计较容易被理解。详细冗长的选项说明,可以在它的技术文件中找到。不过,对大多数的MP3播放机之基本功能设计而言,只需要使用这些基本项目即可。
上述的限制性假设,能让工程师清楚如何使用STA013设计一台具有一般功能的MP3播放机。更先进的应用可能还包含:实时的低延迟收音机接收、将音讯数据传送至另一颗处理器中……,都需要使用到STA013的其它功能,或使用其它更复杂的技术解决方案才能达到。

传送MP3数据
要将MP3数据传送到STA013是一件容易的事,只要当STA013需要数据时,立刻传送给它即可。工程师并不需要清楚知道MP3数据的传输率是多少,STA013会自动决定数据输入与输出的传输率大小。当STA013的缓冲存储器饱和时,它会终止数据请求。以可变的位传输率(variable bit rate;VBR)传送的档案,会自动地被处理。STA013也会自动从MP3数据中,侦测得知必需的取样速率(44.1 kHz、48 kHz…等),并自动调整DAC的时脉。使用STA013的工程师,可以不用知道MP3档案的内容如何,他们只要在STA013提出数据请求时,供应更多的数据给它即可。
当位传输率愈高时,STA013的数据请求频率就愈多。如果数据供应的反应时间太长和数据传送的速度太慢,这可能会使最大的位传输率(播放速度)降低。好在大多数的VBR编码,仅在很短的时间内,使用最大的位传输率(256和320 kbps)。因此,在大多数的情况下,STA013容许无法固定提供256 kbps速率(contant bit rate;CBR)的数据输入电路也可以播放属于VBR速率的MP3档案。这种档案包含有突发的(burst)高速资料。
STA013会忽略掉不属于MP3格式的数据—它们不会产生声音。所以,工程师不需要另外设计程序,以求事先将MP3档案的ID3标签(tag)去除掉。可以直接将一个完整的MP3档案,传送给STA013处理。万一将毁损的MP3数据串流(例如:由于下载中断,造成档案被截断)输入给STA013,它会忽略掉大部分已经毁损的数据;只有一部分毁损的数据,会产生一个短暂的吱喳声(通常这视紧接在毁损部位后面的数据而定),但是STA013会自动立即与毁损部位后面的正常数据同步。
不过,必须注意的是,STA013其实并不知道共有多少个MP3档案、档案之间的关系,以及如何操控这些档案。因此如果有必要,工程师可以使用I2C命令来操控每一个档案。然而,由于STA013本身就具有I2C的接脚,所以不需要再外接一颗I2C芯片。一个简单的MP3播放机可能只是不断地传送许多个档案给STA013,而STA013会根据它侦测到的资料,自动地调整它的工作设定值,这包含:位传输率、取样频率、单声(mono)或立体声(stereo)模式……。