admin 管理员组文章数量: 1184232
2024年1月14日发(作者:第三方框架漏洞)
强0孤 0nli鞠 数据通信2013.6 基于嵌入式ARM—Linux平台的多通道MP3 音乐播放系统 严军简献忠(上海理工大学光电信息与计算机工程学院,上海200093) 摘要:针对在不同的背景音乐下需要播放不同的音乐,本文以主控制- ̄AT91SAM9260和VS1003音频 解码器为硬件平台,提出了一种多通道的MP3音乐播放系统。给出了基于Linux SPI子系统的VS1003- ̄动设计 和应用程序方案。经过测试,系统的两个通道能够同时流畅播放32Okbit/s的MP3音乐文件。 关键词:VS1003;ARM;Linux 中图分类号:TM531.4文献标识码:A 1引言 便获取而广为使用。目前市场上的MP3播放器只能 单通道播放,不能同时输出多路不同的音源。而大型 乐进行解码操作,从而可以降低软件程序的开发难 加速系统开发速度。 在多媒体音频领域,由于MP3文件体积小,最方 度,软件系统将以Linux操作系统为平台。Linux作为 一个成熟的操作系统,已经广泛应用于电脑和各种 nux操作系统为平台进行 商场等时常要求播放器能够输出不同的背景音乐, 手持设备中。本软件使用Linux系统支持USB和SD卡驱动, 在这种情况下,大多数的MP3播放器不能满足该要 开发的依据如下:1)Li可以降低软件开发难度。2)Linux 求。因此,本文将提出基于嵌入式Linux和ARM9平台 无需另行开发驱动,的多通道MP3音乐播放系统。该系统能够识别u盘和 系统支持FAT32文件系统。目前u盘和SD卡均采用 ndows平台中将歌曲拷贝 SD卡,读取储存在上面的MP3歌曲文件来生成MP3歌 FAT32文件系统,用户在Wi曲列表并播放MP3音乐。同时,系统具有多通道输出 至u盘和SD卡中,之后再插入本系统本台,系统可自 动识 ̄JIJFAT32文件系统,并访问音乐文件。因此,无需 能力,可以同时输出多个音源。 开发对FAT32文件系统支持的软件,可以降低软件开 2系统设计 本系统以ATMEL公司的AT91SAM9260处理器为 发难度 核心。AT91SAM9260采用ARM926EJ—S核,其最大工 3硬件设计 系统组成框图如图1所示。 作频率为180MHZ,片内分别有8KB的数据Cache和指 令Cache。有7个外部中断源,3个通用定时器,2个 UART,以太网控制器,SPI控制器,I2C控制器等。其性 能完全满足本系统设计需求。音频解码芯片采用芬 兰VLSI公司提供的VS1003,它是一款单核心的音频 解码芯片,内置高性能、低功耗的DSP处理器核 VS—DSP,具有一个高质量的可变采样频率的ADC,一 个DAC以及耳机放大器接口,同时支持SPI总线传输 方式。该解码芯片可以播放最为常见的MP3和WMA 格式的音乐文件,因此不需要编写软件对这两种音 图1系统硬件结构图 44 l收稿日 ̄J:2013-09-08
论坛 2013.6数据通信 FOrum 系统使用AT91SAM9260作为主控制器,NAND存 放Uboot、Linux系统和文件系统;SD卡和u盘用可供 用户存放音乐文件;按键和显示屏用于和用户进行 }, ); 从中可以看出,两个VS1003设备都SPI主控制 人机交互;本平台使用两枚VS1003音频解码芯片,实 器1进行通信,SPI传送速为2M。其中platform_data用 003所使用的信号线。 现2个通道同时输出音源,主控制使用SPI总线和 于保存CPU连接VS1VS1003进行通信。 VS1 003初始化 在SPI总线的probe方法中将调用vsl003一hw—init() 4软件设计 计主要完成VS1003的功能实现,驱动将基于Linux操 作系统进行开发。AT91SAM9260使用SPI总线和 函数,该函数对VS1003进行硬件初始化,硬件初始化 软件设计分为驱动设计和应用程序设计。驱动设 流程图如下:VS1003进行通信,因此可以使用Linux系统中的SPI子 系统完成VS1003驱动的开发。Linux中的SPI子系统将 SPI驱动分为两类。一类是Controller drivers(控制器 驱动),它实现SOC处理器上SPI控制器的相关功能, 另一类是Protocol drivers(协议驱动),它提供数据并 调用控制器驱动将数据发送给一个SPI从设备。Linux 内核中提供了AT91SAM9260的SPI控制器驱动,因 此,只需开发针对VS1003的协议驱动即可。 图2 VS1003彳刀始化流程图 设置时钟、采样频率 和音量等寄存器 软件复位通过写0x0804到MODE寄存器来实 现。接着将对SCI和SDI功能进行测试。由于SCI和SDI 试。 4.1协议(protocoI)驱动设计 驱动提供write方法用于传输MP3数据。 SPI设备的注册 协议驱动基于内核提供的SPI子系统进行开发, 是访问VS1003的通信机制,因此必须进行必要的测 SCI功能测试方法如下:利用SCI写入某个音量 JVOL寄存器,然后再通过SCI读取VOL寄存器,判 根据SPI子系统的原理,VS1003作为SPI从设备, 值 ̄I需要注册 ̄lJLinux内核的SPI子系统之中。注册通过调 断写入和读取的音量值是否是同一个数值,如果一 功能正常。 用spi_register_board—info0 ̄数完成,VS1003的SPI设 致,则表明SCISDI功能测试方法如下:使用SCI设置MODE寄存 备表示如下: struct spiboardinfo ek spidevices[]:{ ___器的TEST位进入测试模式,然后使用SDI写入8个字 节数据(0x4d,0xea,Ox6d,0x54,0x00,0x00,0x00 和0x00),再使用SCI渎取寄存器HDAT0,如果读取到 [0]={ .modalias=”vslO03”. busnum=1. _.的值等于0x807f,则表明SDI功能正常。 最后,设置VS1003的时钟为3倍频,采样频率为 1000 1000. .chipselect:1, —.max_speedhz:2 __48000Hz,音量为0x2020。 音乐数据的传输 .platformdata=&vsdata, }, MP3音乐数据的传输功能将通过字符设备提供 的write方法来完成。write方法的流程图如3所示。 modalias=”vslO03”. busnum=1. _[1]1={ .驱动程序首先从用户空间获取512字节的MP3文 .件数据,然后判断DREQ是否为高电平,如果是则发 1000 1000, .chipselect=2, _.max speedhz=2 —送32字节的数据,直到512字节的数据全部发送完 毕。其中,用于发送数据的vsdev_syne—write函数最终 会调用vsdev_sync函数,该函数如下: .platform_data:&vsdata1. 45
奴 FoRJm 数据通信2013.6 static ssizej vsdev_—别负责一个通道的音乐播放。另一个线程处理按键 输入和显示屏的显示。这里给出音乐播放的软件流 程图,如图4所示。 ONSTACK(done); sync(struct spimessage message) { DECLAREC0MPLETION——程序首先检测u盘或者SD卡是否已插入系统,一 旦检测到两者中任何一个已经插入系统,通过读取 某个固定文件路径下的所有MP3文件名来获取MP3 歌曲列表。歌曲列表生成以后,将按顺序开始播放 MP3文件。每次从MP3文件读取5 1 2字节数据并交由 驱动程序发送给VS 1 003。 int status; message->complete=vsdevcomplete; _message一>context=&done; if rvsdev->spi==NULL) status=-ESHUTDOWN; else status=spiasync(vsdev一>spi,message); —spinunlock— —.irq(&vsdev->spi_lock); if(status::0){ waitforcompletion(&done); __status=message一>status; if(status=:0) status=message->actuallength; _) return status; l 其中调用了函数spi—asyn,该函数是由sPI子系统 提供的API,它最后会调用SPI主控制器驱动的trans— fer方法进行数据传输。 从用户空间复制5t2字节的 音乐数据 图4音乐播放流程图 5测试结果 渊用vsdc2v—sync—wri te函数 发送:32字节数据 ̄JVSlOO3 系统平台搭建完成后,使用128Kbit/s至320Kbit/s 的MP3歌曲对系统进行了测试,测试结果表明,音频 输出流畅,无任何停顿现象出现。当两路通道同时播 放320Kbit/s的高品质MP3时依旧没有停顿现象出现。 因此,本文设计的多通道MP3播放系统是可靠的。 6结束语 图3 MP3数据传输流程图 本文提出了一种多通道的多通道MP3音乐播放 系统。给出了系统的硬件设计方案,并详细讨论了系 4.2应用程序设计 应用程序基于Linux系统开发,使用c语言。该程 统的软件设计方案。经过测试,系统可以同时在两路 序将使用线程技术,使用3个线程。其中,2个线程分 通道流畅地播放高品质的MP3音乐。
堡 参考文献 [4]高美珍.基于嵌入式系统的MP3播放器设计【J].湖北师 范学院学报:自然科学版,2010,30(004):92—94. 『5]丁建良,吴强,吴东兴.基于NIOSII和VS1003的嵌入 …1怯肇乾,陈永超.ARM—Linux下SPI设备的添加与驱 动实现【JJ.单片机与嵌入式系统应用,2012,12(4):80—81 [21李媛,吕广申,李笛.基于SPI协议的音频解码芯片 式MP3播放器[J].科技信息,2010(021):81—82 【6】肖启洋,方元.基于LPC932A1的SD卡MP3播放器 设计[J].微型机与应用,2012,31(5):92—94 VS1003的读写机制及实现方法『J】_洛阳理工学院学报 (自然科学版),201I,2:56—59 [3】李妹,吴景东.基于嵌入式系统的电子节拍器设计【J1.贵 作者简介:严军,上海人,硕士在读。专业:电力电子与电力传 州大学学报:自然科学版,2010,27(002):101—104 动。研究方向:嵌入式系统开发。■ 简讯 真才基:4G靠市场推动等百姓认可 12月4日.工信部正式向国内三大运营商颁发4G牌照,均为TD—LTE制式。大唐电信董事长真才基在接 受人民网记者专访时表示,中国的信息通信产业发展和4G的发展。也是由市场来决定和推动的,通过市场来 带动产业更好的完善.通过产业的完善带动核心竞争力 真才基向记者阐述了对全会《公报》和《决定》的看法和对改革的憧憬,体现在以下几个方面: 第一,改革。《公报》和《决定》全文通篇提到最多的就是在各个领域的改革。 第二,市场。中央决定由市场发挥基础性作用转变为发挥决定性作用。中国的信息通信产业发展和4G的 发展,也是由市场来决定和推动的,通过市场来带动产业更好的完善,通过产业的完善带动核心竞争力。由 政府作为决定作用的发展模式逐渐转换为市场作为资源配置的决定性因素.得到了广泛的认可。 第三,安全。中央决定成立了国家安全委员会,统筹国家在军队等各方面的安全。其中,一个非常重要的 方面就是推动网络信息安全,给消费者提供更加可靠、清晰度更加稳定、交易平台更加诚信的信息服务。同 时纳入国家信息安全整体的体系中,中国经济是伴随着经济的发展,国家安全和国家信息安全成为一体化。 目前,信息安全成为现在国家安全中最重要的组成部分 第四,资本。经济要发展,离不开资本。中央再次重申国有经济基本地位、促进民营经济发展的两个不动 摇。同时,在国有企业和民营之间形成混合经营,更好发挥国有经济的杠杆作用和主导作用,吸引更多的其 他所有制资本进入国有经营里面.通过特许经营方式放大国有经济在经济中的作用.也通过其他所有资本 的进入增强国有资本的活力 真才基最后表示,十八届三中全会是一篇宏大的改革,是继q-国1978年改革开放之后,党带领q-国朝向 新一轮经济发展、改革开放、促进经济发展模式转型、推动创新驱动.保持国家的安全体系和人民社会得更 加公平正义新的发展方向伟大的、重要会议,也必将影响到今后十年、二十年乃至更加深远的中国经济的改 革发展。 (来源:人民网) 47
版权声明:本文标题:基于嵌入式ARM—Linux平台的多通道MP3音乐播放系统 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.roclinux.cn/p/1705193589a476388.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论