当前位置:首页 > 嵌入式 > 嵌入式软件
[导读]嵌入式GPS语音导航系统中 MP3的解码与播放


0 引言
    近年来,电子技术的迅猛发展,使得嵌入式系统在越来越广泛的领域得到应用。嵌入式系统平台的功能也越来越强大,复杂度也越来越高,同时对其开发的难度和要求也越来越高。在开发过程中需要将应用软件和系统软件作为一个整体考虑,而且软件和硬件的联系也更加密切。所以,嵌入式系统的开发是一个复杂的过程。随着嵌入式系统性能的大幅度提高,老式的GPS导航仪已开始向嵌入式方向发展。嵌入式GPs导航仪已越来越便携,功能越来越强大,语音导航和媒体功能已成为嵌入式GPS导航仪的一大突出的亮点。所以,MP3音频解码与播放技术现已成为嵌入式GPS导航系统中的一项基本技术。MP3的全称是MPEG Audio Layer 3,是目前流行的一种音频编码方案。它是1992年制定的MPEG-1标准的一部分,MPEG标准由系统、视频和伴音三部分组成。其中伴音标准共分三层,MP3作为其中的第三层,是运算复杂度最高而压缩效果最好的一层。比起传统的CD格式来,其音效已相差无几,但数据量却不及CD的十分之一。同时,MP3播放器的便携性和续航能力都比CD有大幅度的提高。MP3最初应用于数字音频广播以及数字电视伴音等;之后,随着其流行程度的提高,在其他场合,尤其是互联网音乐和便携式娱乐设备上也开始大量使用MP3格式;现在,几乎所有便携式语音导航设备都采用MP3作为其音频媒体格式。本文主要介绍了基于ARM核心的嵌入式GPS导航系统平台下MP3音频文件的解码技术。以便利用自行设计的方案在Windows CE.NET系统下运用三星公司S3C2410平台,从而实现MP3的解码播放功能。


1 MP3解码原理
1.1 MP3的文件格式
    MP3文件由数量不等且相互独立的帧(frame)组成,每个帧包含1152个采样信息,一个MP3每帧包含帧头、错误校验、音频数据和辅助数据四部分。图1所示是MP3的帧结构示意图。MP3文件的最后128字节通常包含有ID3v1标签,并附加有用户定制的文件附加内容,如歌曲名称、演唱者、风格说明等。

1.2 MP3解码流程
    原始PCM(脉冲编码调制)音频数据在经过压缩编码之后将得到MP3码流,MP3解码就是把MP3码流恢复成原始的PCM数据。MP3数据以帧为单位,解码应首先根据同步信息及错误校验CRC模块找出MP3帧在码流中的位置,并由此确定帧头、CRC校验、音频数据及辅助数据的所在位置。
    图2所示是MP3的解码流程,它主要包括哈夫曼解码、反量化、反重排序、立体声解码、混叠消除、IMDCT、频率反转补偿、子带合成滤波等。图2中的预处理的作用是读取头部数据并将需要的信息按结构存放起来,以便后续解码。[!--empirenews.page--]
    哈夫曼解码时,MP3的音频数据将分为两节(gxanule),这两节在过程编解码时相对独立,每一节中可以解码出576个PCM采样数据,两节可解出1152个采样数据。从二进制101……码流中得到我们所需要的信息的第一步就是解哈夫曼码。解哈夫曼码是一个查表过程,这576个值代表576个频率线上的值,其在不同的块中(如)有不同的含义,可根据不同的比例因子和频带查找相应的码表并解出576个值。
    反量化过程就是根据反量化公式和帧边信息来对于长块、短块和混合块采用不同的反量化公式,以恢复576条频率线的真实值。反重排序的作用是为了让MP3编码器使霍夫曼编码更加有效率,而对某些块进行重排序。立体声解码部分的功能是在两个音频通道非独立编码时,进行立体声解码。
    混叠消除是为了避免两个相邻子频带之间的混叠,而在解码过程中进行的混叠消除。IMDCT的作用首先是对长块进行18点到36点的IMDCT变换,并对短块进行3个G点到12点的IMDCT变换;其次是根据块类型的不同,分别使用不同的窗类型进行加窗。同时把这36个值的前半部分与上一帧的后半部分相叠加。而把当前块的后半部分存储起来用于和下一块叠加。频率反转补偿是在进入下一步之前对多项滤波器组进行的频率反转补偿,即对奇数子带的奇数时间样点取反。
    子带合成滤波是将32个等频带宽内的频域信号反变换成时域信号,然后再经过加窗运算,以得到32个PCM值。


2 硬件设计
2.1 系统硬件设计
    在处理器的选择上,本系统选用SAMSUNG公司的S3C2410。它是基于ARM920T内核的16/32位精简指令集微控制器,是为手持设备和通用设备提供的一款低成本、高效率的微控制器。整个系统硬件的设计过程中主要应用S3C2410 ARM芯片,存储设备外扩SD或MMC存储卡模块,并外接320x240象素的真彩TFT LCD屏进行显示,操控采用四线电阻触摸屏并辅以GPIO外扩的键盘。
2.2 音频硬件设计
    IIS(Inter-IC Sound)总线是Philips公司提出的串行数字音频总线协议。它是一种面向多媒体应用的音频总线,专用于音频设备之间的数据传输,即把PCM音频数据传至标准编解码器(CODEC)。IIS总线只处理声音数据,其他信号(如控制信号)必须单独传输。为了使电路的引出引脚尽可能少,IIS只使用了3条串行总线,即提供分时复用功能的数据线、左右声道选择线和时钟信号线。
    CODEC芯片主要负责模拟信号和数字信号的相互转换。对于本系统来说,更加关心的是将数字PCM信号换为模拟信号,主要是将要播放的文件的音频数字信号通过SC2410的IIS送给CODEC芯片,然后将其转换为模拟信号,进而通过音箱或者耳机等设备输出。
    根据采样定理,采样频率至少要是信号频率的2倍以上,再就是要支持IIS接口标准,因为本系统是通过IIS总线向CODEC芯片传输数据的。在本系统的CODEC选用Philips公司的U-DA1341,该芯片采用3.0 V电压供电,并对ADC和DAC分别供电,系统的时钟频率可选256fs、348fs和512fs,采样频率从16 kHz到48 kHz,由于是采用数字音质控制,因此具有重低音效果,并支持IIS总线,可确保高保真的立体声输出。图3所示是UDA1341的工作原理框图。

    整个音频系统的硬件设计主要是S3C2410的IIS总线接口和CODEC的连接与实现。其具体电路如图4所示。本系统采用Philips基于IIS音频总线的UDA1341型音频CODEC芯片。该CODEC支持ⅡS总线数据格式,并采用位元流转换技术进行信号处理,具有可编程增益放大器(PGA)和数字自动增益控制器(AGC)。

    S3C2410内置IIS总线接口,可直接外接8/16比特的立体声CODEC,还可以给FIFO通道提供DMA传输模式而非中断模式,从而使数据发送和接收同时进行。该IIS接口有3种工作方式,可以通过设置IIS的CON寄存器来选择。本文介绍的硬件框架主要基于传输和接收模式。在这种模式下,IIS数据线将通过双通道DMA同时接收和发送音频数据,其DMA服务请求可由FIFO只读寄存器自动完成。
    图4中,S3C2410的IIS总线信号与UDA1341的IIS信号直接相连,L3接口引脚L3MODE、L3CLOCK和L3DATA分别连接到S3-C2410的GP-B1、GPB2和GPB3三个通用数据输出引脚。U-DA1341对外可提供两组音频信号输入接口,每组包括左右2个声道。

[!--empirenews.page--]
3 软件设计
3.1 系统平台的选择
    目前主流的嵌入式平台主要有嵌入式Linux和Windows CE两大系列。
    Linux是一个类似于Unix的操作系统。它起源于芬兰一个名为Linus Torvalds的业余爱好者,但是现在已经是最为流行的一款开放源代码的免费操作系统。Linux从1991年问世到现在,已发展成为一个功能强大、设计完善的操作系统。伴随着网络技术进步而发展起来的Linux OS已成为Mi-crosoft公司Windows系统的强劲对手。Linux系统不仅能够运行于PC平台,还可在嵌入式系统方面大放光芒,很多嵌入式平台都用Linux作为其操作系统。
    Windows CE是微软开发的一个开放的、可升级的32位嵌入式实时操作系统。其中CE中的C代表袖珍(Compact)、消费(Consumer)、通信能力(Connectivity)和伴侣(Companion);E则代表电子产品(Electronics)。不同于面向桌面的Windows,微软重写了Windows CE的内核,这使得WindowsCE拥有优越的实时性能。Windows CE中的API是一个缩减的WIN32 API,它是桌面Windows系统的一个子集。这使得许多基于微软桌面Windows开发的应用程序可以经过少许的改动就能用于Windows CE中。同时,在Windows CE系统平台上,也可以使用桌面Windows上的编程工具语言(如VB、VC++等),并使用同样的函数和同样的界面风格.因此,其开发工作比较容易上手。考虑到大部分用户多年来使用Windows系列操作系统的习惯.Windows CE的界面风格比较容易让用户接受。
    综上所述.本文选择Windows CE作为系统的开发平台,开发工具选择VS系列的EVC。
3.2 软件流程
    图5所示是MP3解码的软件流程图。首先将MP3文件数据读人缓存,寻找文件中的ID3信息(ID3信息指MP3文件中可选的一种内嵌信息,用于表示MP3的音频类型、作者等,目前分ID3vl和I。D3v2两个版本),接着在文件中寻找帧同步头,找到后即进入帧解码子程序,其帧解码的具体流程如图6所示,解码完成后,再将解码出的PCM数据放入音频缓冲进行播放,如此循环直到最后一帧。

按键编码电路采用二极管组合逻辑开关阵列来实现对受控电路开关进行编址,其中指令编码电路采用编译码芯片组PT2262。PT2262的A口是地址码设置口,D口是数据码设置端,分别和二极管组合逻辑开关阵列的逻辑输出相连,数据从000~101有6种状态。发射模块电路中采用的射频芯片为MICRF1020当编码芯片PT2262的数据输出端无信号输出时,MICRF102不工作,发射电流为零,而当PT2262的控制端有效时,输出的串行脉冲信号对MICRF102进行调制发射,通过调制电阻R2可调整发射电流,从而调整发射距离,较小的R2取值可提高发射距离,而增加二极管开关阵列则可将系统扩展成为多路遥控发射模块。
3.2 接收控制电路
    接收控制系统主要由无线电接收电路、解码电路、单片机电路、开关电路组成。接收控制系统的电路原理图如图6所示。接收控制系统主要完成的功能是对接收进来的信号进行解调和解码,并将解码后的数据送单片机,由单片机根据此数据去控制相应的开关进行动作。

4 结束语
    本文提出了一种在嵌入式GPS语音导航系统中实现MP3音频播放的实现方案,给出了解码步骤,并利用S3C2410核心与Windows CE平台完成了这一方案。经过实际产品验证,该解码器播放效果良好。各项指标均可满足要求。

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

经过几十年发展,嵌入式技术已经用在了我们生活中的方方面面,但是嵌入式始终都带有小众,专业性强的属性,让很多非嵌入式领域的同学望而却步。近十几年的发展,物联网覆盖了越来越多领域,包括了家居,商业,工业,农业等领域,不仅吸引...

关键字: 嵌入式 物联网 技术

随着IT技术飞速发展,互联网已经进入了“物联网”时代。物联网中需要的大量设备不在依赖人与人之间的交互产生联系,更多通过协议、通信、程序设计等方式连接到一处。即 “物联网”的目的则是让所有的物品都具有计算机的智能但并不以通...

关键字: 嵌入式 物联网 计算机

最近看到APP上,给我推送了很多类似的回答,借此机会,也想着重新审视一下自己的学习历程,以及结合自身和大牛,分享一些学习经验,希望对大家有所启发和帮助。

关键字: APP 嵌入式 C语言

双频GPS是最近手机领域的热门话题,目前很多手机都配备了这项技术。但是,也有网友不知道双频gps是什么意思。为了让大家更好地了解双频gps及其使用的相关信息,本网站为您带来了双频GPS的使用介绍和具体型号的相关内容。

关键字: iPhone 14 双频 GPS

万物智联时代,嵌入式技术及其应用的形态将更加丰富和多元,同时也将日益呈现深度物理融合、混合架构共存、群体智能协同、网络安全攸关等诸多新的计算特性。显然,经典的嵌入式系统体系结构、软硬件技术和开发方法都已很难应对新趋势下的...

关键字: 嵌入式 物联网 计算机

物联网是新一代信息技术的重要组成部分,是互联网与嵌入式系统发展到高级阶段的融合。通用计算机经历了从智慧平台到互联网的独立发展道路;嵌入式系统则经历了智慧物联到局域智慧物联的独立发展道路。

关键字: 嵌入式 物联网 计算机

今天,小编将在这篇文章中为大家带来工控主板的有关报道,通过阅读这篇文章,大家可以对工控主板具备清晰的认识,主要内容如下。

关键字: 工控主板 嵌入式 主板

随着工业4.0、医疗电子、智能家居、物流管理和电力控制等快速的发展和推进,嵌入式系统利用自身的技术特点,逐渐成为众多行业的标配产品。嵌入式系统具有可控制、可编程、成本低等,它在未来的工业和生活中有着广阔的应用前景。在现在...

关键字: 嵌入式 物联网 人工智能

长久来看,嵌入式只会越来越火,随着人工智能时代的发展,嵌入式必定又将迎来一次浪潮和技术的巨大变革。人工智能越是想要表达智能水平,就越要依靠嵌入式技术,嵌入式技术将朝着自动化控制和人机交互发展。嵌入式因其体积小、可靠性高、...

关键字: 嵌入式 物联网 人工智能

嵌入式软件技术到目前为止己经在很多领域起到了中流砥柱的作用,例如在电子消费、移动通讯方面,这种技术为我国的很多行业提供了更多的可能性。未来,嵌入式软件技术会为人类做出更大的贡献。伴随着计算机技术与电子技术的成熟发展,电子...

关键字: 嵌入式 软件 人工智能

嵌入式软件

15715 篇文章

关注

发布文章

编辑精选

技术子站

关闭