基于Linux操作系统的嵌入式音频系统设计.pdf
-
资源ID:74651039
资源大小:217.12KB
全文页数:4页
- 资源格式: PDF
下载积分:15金币
快捷下载
会员登录下载
微信登录下载
三方登录下载:
微信扫一扫登录
友情提示
2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
|
基于Linux操作系统的嵌入式音频系统设计.pdf
2 0 0 7 年第1 0 期计算机与现代化J I S U A N J IY 1 JX I A N D A I H U A总第1 4 6 期文章编号:1 0 0 6 之4 7 5(2 0 0 7)l O _ 0 1 4 0 _ 0 3基于L i n u x 操作系统的嵌入式音频系统设计孙彬,马琪(杭州电子科技大学微电子C A D 研究所,浙江杭州3 1 0 0 1 8)摘要:利用飞思卡尔半导体公司提供的M P c 5 2 0 0 芯片和w o 璩o n 公司的w M 9 7 0 3c O D E c 芯片构建嵌入式音频系统采用了D M A 的音频数据传输万式一引入L l n u x2 6 内耘和设计具多元素缓冲区的音频驱动程序,提高了系统的实时性。关键词r 嵌入式:买时性:音频驱动中图分类号:T P 3 1 6文献标识码:AD e s i 印o fE m b e d d e dA u d i oS y s t 伽B a s e do nL i 呱S u HB i n,M AQ i(M i c r o e l e c 仃o I l i cc A Dc e n 钯ro f H 蛐鼬啡D i a 商u n i v 啊崎,H a。唔z h D l l3 1 0 0 培,c h i 触)A b s I 隅c t:1 1 I i 8p a p 盯b 础d s 妞a u d i oB y 8 t e m 埘t h c 且】曲M P c 5 2 0 0 明dW 幽蛆W M 町0 3C O D E c,瑚e sD M At o 佃I 曲a u d i od a 诅L i n u x2 6k e m e l 帅dd e s j 驴o fa u d i od a t ab u 爵w i t hm 出e l e T n e n tg r 衄岫e r l I l 删t h er e“m ep e d b 咖咖e K e yw o r d s:e l b e d d e d;r e a l d m e;a u d i od r i v e r0引言嵌入式音频系统多是基于D s P 芯片和c O D E C芯片设计的,采用专门的D s P 芯片来处理音频数据但对于L i n u x 操作系统应用于P o w e r P C 架构的嵌人式音频系统的方案目前还很少。飞思卡尔半导体基于P o w e r P C 架构的高性能3 2 位高性能嵌入式处理器M P G 5 2 0 0 足以代替D s P 芯片处理数字音频信号,同时M P c 5 2 0 0 通过周边串口控制器(P e d p h e r a lS 嘶a lc o n t r D e r,P S c)提供了多种音频C O D E c 的连接。包括与普通c 0 D E c、也sc O D E c 及A C 9 7C O D E c 的连接,在嵌入式音频系统上有广阔的应用前景。作为一个功能复杂的嵌人式系统,需要有嵌入式操作系统支撑。“n l】)【是开放源代码且免费的操作系统,具有内核的可裁减性,并且提供了对P o w e r P C 架构处理器的良好支持,已广泛地应用在各种嵌入式产品中。同时L i n u x 五6 内核在实时性方面较L 血u x2,4 内核有很大的提高。1系统硬件架构设计音频系统一般采用专门的D s P 芯片来处理音频数据。飞思卡尔半导体公司的M P C 5 2 0 0 高性能3 2位嵌入式处理器足以代替D s P 芯片处理数字音频信号,所以硬件的实现主要就是C O D E C 芯片的连接与控制。由于w M 9 7 0 3 是一款符合A C 9 7 R e v 2,l 标准的c O D E c 芯片,所以必须设置M P c 5 2 0 0 的P S C 工作于A c 9 7 模式。A c 9 7 是I I l t e l 公司在1 9 9 7 年推出的专门针对音频设备的行业标准与设计规范。它把一般音频设备中的数字部分和模拟部分分离开来,可降低电磁干扰,获得较好的音效品质。A c 9 7 标准规定数字信号处理由c P u 来负责,或者采用专门的D S P 芯片;而模拟部分,即A D、D A 转换与M i x 混音操作,则由c O D E c 芯片完成。1 1M p C 5 2 的P S C 介绍M P c 5 2 0 0 与音频c O D E C 芯片的连接是通过其万能的P s C 来实现的,连接大致可分为两种模式:c O D E c 模式和A e 9 7 模式”1。c O D E c 模式用作与普通c O D E C 的连接和E SC O D E C 的连接,1 2 s 模式提供了一个1 2 s 音频接口;A C 9 7 模式专用于与A C 9 7c O D E C 的连接。通过设置P S C 的s I C R 寄存器可以使P s c 工作于不同的模式。M P C 5 2 0 0 有6 个独立收稿日期:2 0 0 6 0 9 1 8作者简介:孙彬(1 9 7 9 一),男,河南新县人,杭州电子科技大学微电子c A D 研究所硕士研究生,研究方向:u n u x 操作系统,嵌入式系统;马琪(1 9 6 8 一),男,浙江杭州人,教授,硕士生导师,研究方向:集成电路c A D,嵌入式系统。万方数据2 0 0 7 年第1 0 期孙彬等:基于L-n u x 操作系统的嵌入式音额系统设计1 4 1的P S c,P s c 通过串口与音频c O D E c 连接。只有喝c 1 和P s c 2 支持A c 9 7 模式的连接,即P S C l 或P s c 2 充当A c 9 7 控制器,通过音频控制连接实现与C O D E C 芯片的连接。1 2C o D E C 连接的实现该系统采用的c 0 D E c 芯片是w o I n 公司生产的w M 9 7 0 3 芯片。w M 9 7 0 3 是一款符合A c 9 7R e v 2 1 标准的高性能立体声C O D E cj 占片,它提供全双工1 8 b j t s 的c O D E c 功能,支持从8 k H z 到4 8 k 的采样率且具有高信噪比的良好音效品质。另外还具有模拟3 D 立体声加强和线性输出等特性。1:5 2。0 中,P S c I 或P S 旺充当A c 孵控制器,当设置寄存器S I c R 的s I M 位为0 x 3 的时候,P S c l 或P s Q就工作于A c 9 7 模式。P S c l 或P s c 2 通过音频控制连接霉;现与c O D E c 芯片的连接。如图l 所示。A c 9 i 控制器P S C l P S C 2W M 97 U3C o d e c 芯片F R M EF R M ES Y N CB 1 t C L KB i t C L KS D T O U TS D A T 一O U TS D T A I NS D T AI NC P I OR E S E T罔1A c 9 7 控制器与w M 9 7 0 3 芯片的连接音频控制连接由4 根串行总线和一个R E s E T 信号线组成。串行总线分别是:位时钟信号线(B i t c I K),帧同步信号线(F R A M Es Y N c),数据输出(s D A T A O u T)和数据输入(s D A T A _ I N)信号线。它按照A c 9 7R e v 2 1 标准规定的音频控制连接数字串行接口协议进行数据的传输。音频控制连接在B I T-c L K 的上手 沿发送数据,在下降沿接受数据,实现全双工的数据传输。M P c 5 2 0 0 的一个G P l 0 接口被用来重启c O D E C 芯片。A c 9 7 标准中,c O D E c 芯片使用4 8 k H z 的采样率,音频数据和控制数据被封装成同样的格式发往c O D E c,每个样本包含1 3 个槽,其中第一个槽的长度是1 6 b 如,其余1 2 个稽长2 0 b j t 8。j,c 5 2 0 0 的A C 9 7 控制器中,每个槽都使用一个字(w o r d 长3 2 b i t s)来传输。音频数据通过P s c 的F I F O 数据寄存器在控制器和c O D E C 之闻进行传输。1 3D M A 音频数据传输方式音频数据的传输有两种方式:一种通过M P c 5 2 0 0 集成的6 0 3 e 核来传输音频数据;另一种通过B e 8 t c o m mD M A 方式传输数据。在6 0 3 e 核传输音频数据的方式下,可以通过6 0 3 e 核把音频数据从s D R A M 传送给P S C 的兀F O 数据寄存器。c P u 中断子程序必须从内存的音频缓冲区中读取数据,并把它写入到P s c 的F I F O 数据寄存器中,在每一次数据传输时,都会产生两个内部存储器处理事件。一个是从S D R A M 读出来,另一个是写入到P s c 的F I F o。该系统采用B e 8 t C o m mD M A 方式传输音频数据。M P c 5 2 0 0 处理器集成的B e s t c o m mD M A 控制器可用于控制各种外围设备,可降低主M P c 6 0 3 e 核心传送L,O 密集数据的负荷。用B e s t c o n u nD M A 控制器把数据送到P S cF I F 0 寄存器以及把数据从P s C 兀F 0寄存器取出来。D M A 引擎有一个独立的总线c o m m B u s 可直接连接到所有的外部F I F O 寄存器,数据可以直接在存储器和P s c 的H F o 寄存器之间进行传输,不需要c P U 的干预。通过D M A 传输数据,不仅意味着总线的处理事件更少,丽且只需要比较少的c P u 周期数就可以完成数据传输,送到内核的中断信号也更少,性能大幅度提升。如图2 所示。图2 音频数据传输方式B e s t c m n mD M A 通道可以很方便地为外围设备提供数据传输。当警报信号被激活时,B e 8 t c o m m 将发送F I F O 中的数据发送到s D R A M 或是向接收玎F o中填充数据。2 系统软件架构设计系统的软件架孛旬设计主要包括嵌入式操作系统的选用和音频驱动程序的设计。音频系统对实时性的要求非常高,“n u x2 6 内核比L m l l】【2 4 内核在实时性方面有了很大的提高,正好适应系统的需求。2 1L i n u x 2 6 内核的应用实时性是嵌入式音频系统的一个重要要求。尽管“n u x2 6 不是一个真正的实时操作系统,但其在实时性方面有了很大的改进,能够满足嵌入式音频系统的需求。L i n u x2 6 在提高实时性方面做了3 个显著的改进:采用可抢占内核、更有效的调度算法以及同步性的提高”。内核在一定程度上使用了可抢占模式,使得在一些对时效性要求比较高的事件中,相对于2 4 内核有更好的响应能力,停顿的感觉要少得多。高效的调度算法提高了算法的效率。另外,为了 万方数据4 2计算机与现代化2 0 0 7 年第1 0 期提高调度器的实时性,本系统还采用r 细化时钟粒度的方法。通过直接修改内核定时参数H z 的初值来细化时钟粒度,将标准L i n u x 中内核定时参数由1 0 0 H z 改为1()()o H z,从而使时钟粒度达到1 0 0 s。多进程应用程序需要共享内存和外设资源,为避免竞争采用了互斥的方法,资源在同一时刻只被一个任务访问。L i n u x 通过一个包含在内核中的系统调用来完成互斥的实现,并由该系统调用来决定一个线程是等待还是继续执行。但当决定继续执行时,这个耗时的系统调用就不需要了。L i n u x2,6 内核支持所谓的快速用户空间互斥功能,这个新功能会检查用户的空间,查看是否会有等待的情况出现,并且只有在线程需要等待时才进行系统调用。2 2L i n H 下音频驱动设计音频驱动程序的功能是对硬件控制实现音频流的传输,以及为士层应用程序提供标准的音频接口。L i n u x 设备驱动程序把设备当作文件的形式进行处理L i n u x 下为音频芯片编写驱动程序主要包括两方面的内容:(1)数字化音频处理。即D S P,负责音频数据的传输、播放及录音等操作。对应的设备文件是d e v d s p。(2)混频器。即m i 【e r,负责混音处理,如音量调节等。对应的设备文件是d e v m i x e r。音频驱动程序是基于m2 6 内核的,采用模块化的设计方式。I j n u 内核通过启动时加载该模块来完成对c o D E c 芯片的驱动。驱动程序的设计包括:设备的初始化、设备操作定义、内存缓冲区的管理。(1)设备的初始化:对与音频相关的寄存器进行初始化,并向“n u x 系统注册d s p 设备和m i x e r 设备。(2)设备操作定义:设备操作通过结构体s t n l c tm e _ 0 p e m t i o n s 来定义”1,它提供了以访问文件的形式访问设备的方法,是用户访问设备的接口。主要包括对设备的打开、读写及对设备的控制等操作,分别对应于6 l e 一叩e r“o n 中的o p e n、r e 8 d、w r i【e、i o c d 等方法。其中o p e n 方法提供给驱动程序以初始化设备,为以后的操作做准备。r e a d 和w i t e 方法负责拷贝音频数据到应用程序空间,用于录音;或反过来从应用程序空间拷贝音频数据,用于播放音频。i o c d 方式负责音频的控制,如音频的播放、暂停、继续等操作。(3)内存缓冲区的管理:缓冲区的设计是音频传输的重点内容,声卡驱动程序必须能处理所有可能情况下蜂拥而至的数据。如果缓冲区太小将会造成缓冲区的溢出,所以要采用大的缓冲区。而c P u 一次对大缓冲区的大量数据处理需要较长的时间,容易造成延迟,从而影响音频传输的实时性。这里采用具有多个元素的缓冲区,每个元素具有一个数据块的大小。当一个中断发生时,发送一个信号表明新的数据块已被读人,中断处理程序把指针移动到循环缓冲区的下一个元素,以便将来的数据会存放在一个空元素中。相反,只要驱动程序把数据成功地拷贝到用户地址空间,就释放循环缓冲区中的元素,以便用它来保存从硬件设备传来的新数据。每个数据元素的接收和发送都是通过D M A 的方式进行。3 结束语本文介绍了基于“n u x 操作系统的嵌入式音频系统的设计,从硬件、软件两方面讲述了音频系统的基本实现。“n l l】【2 6 内核的采用、D M A 音频数据传输以及多元索的循环缓冲区的设计,大大提高了音频系统实时性的要求。按照该方案设计的音频系统能很好地实现音频的录音和回放功能。参考文献:1 I n t e lc o r p 衄劬o nA u d i oc o d e c 9 7R e“s j o n21 z I n k Ic 0。p o m d o n,1 9 9 8:9 3 2 2 F T 傥s c a l es 锄I c o n d u c t o rM P c 5 2 0 0u s e r sG u i d eR e v3 z F 砷凹c a ks e I I l i c o 甜u c 时,h c 2 0 0 5:5 0 1 5 0 3 3 B n 山nw“m D【土6:AR 捌曲叫曲h 妇d d e d 印咖鹏 E B o L M I p:h 璜d e v i 锵m 删d“册l 姗毋,h 州2 0-0 9 埘 4 J o 岫d 1 蚰c o r b e t,A l e 8 8 蛐d mR u b i l l i u n 暇D e v i c eD n v e 硌(3 n d)M s e b a 毗p o l:O f【e i y A s s o c i a t 曲,2 0 0 5:1 3 7,勘误表;本f U2 0 0 7 年第8 期第5 0 页的作者简介中,第一作者王玉亭的性别为男i 的性别为女。特此纠正。万方数据基于Linux操作系统的嵌入式音频系统设计基于Linux操作系统的嵌入式音频系统设计作者:孙彬,马琪,SUN Bin,MA Qi作者单位:杭州电子科技大学微电子CAD研究所,浙江,杭州,310018刊名:计算机与现代化英文刊名:COMPUTER AND MODERNIZATION年,卷(期):2007(10)参考文献(4条)参考文献(4条)1.Freescale Semiconductor MPC5200 Users Guide Rev.3 20052.Intel Corporation Audio Codec97 Revision 2.1 19983.Jonathan Corbet;Alessandro Rubini Linux Device Drivers 20054.Brandon White Linux 2.6:A Breakthough for Embedded Systems 2003 本文链接:http:/