【php精品源码栏目提醒】:以下是网学会员为您推荐的php精品源码-【精品】-基于嵌入式Linux的数字音频延时系统设计 - 综合课件,希望本篇文章对您学习有所帮助。
冯义王击基于嵌入式Linux的数字音频延时系统设计2010311533930引言数字音频延时器是对声音信号进行延时处理的音频设备使用意义在于避免广播电台直播中突发事件的发生修正高清视频信号和音频信号的音画同步问题修正多个扬声器多频带发声时的差别。
随着我国广播电视事业快速发展音频延时器的应用越加广泛其数字化、功能集成化、网络化的发展趋势越加明显。
就现阶段而言多数音频延时类产品采用了MCU结合音频编解码芯片的方式或者DSP和MCU的主从式结构结合音频编解码芯片的方式实现对音频信号的采集、延时、播放。
这种实现方案软件开发周期长系统可移植性差难以实现系统功能的扩展和提供网络支持。
近年来ARMSoC平台和开源的Linux内核发展迅速基于ARM-Linux结构的嵌入式系统设计方案优势日趋明显。
目前国内对该领域的研究与应用相对缺乏本文提出了一种基于ARM处理器和嵌入式Linux操作系统的数字音频延时系统实现方案。
1系统硬件结构系统硬件实现采用模块化设计分为5个主要模块处理器模块数据存储模块音频信号预处理模块人机交互模块和开发调试模块。
系统结构框图如图1所示。
处理器模块选用CirrusLogic半导体公司的一款高性能的片上系统设计EP9302。
EP9302的ARM920T处理器具有支持Linux操作系统的内存管理单元具有16KB数据缓存和16KB指令缓存。
内置MaverickCrunch协处理器当对数字音频和视频格式进行编码以及其它运算密集型计算功能时该协处理器可使EP9302具有高速精确计算能力。
外设接口方面EP9302提供1/10/100Mbps以太网MAC、I2C接口具有DMA支持的多通道IIS总线控制器以及16位SDRAM接口和16/8位SRAM/Flash接口1。
系统的数据存储模块包括NandFlash和SDRAM两个部分。
NandFlash存储介质用于存储RedbootBootloader、Linux系统内核镜像、JFFS2根文件系统以及相关数据文件。
SDRAM为操作系统和应用程序提供内存空间。
SDRAM和Flash容量选取既要满足系统需要又要尽量降低实现成本。
为了保证音频数据读写的实时性延时期间音频数据需要保存在SDRAM中以实现数据高速读写。
数字音频延时器需要保存120s的音频数据。
对于频率为48KHz的24位双声道音频数据而言120s需要大约44M的内存空间。
再加上Linux内核和应用程序运行需要一定数量的内存空间本系统SDRAM容量定为64M。
NandFlash容量为16M其中256K用于存储Redboot和其配置信息2M用于存储Linux内核镜收稿日期2009-09-08修订日期2009-11-09。
作者简介冯义1985男新疆石河子人硕士研究生研究方向为嵌入式系统应用王击1968男湖南长沙人副教授研究方向为电气、自动化。
E-mailyeelivegmail.com基于嵌入式Linux的数字音频延时系统设计冯义王击中南大学信息科学与工程学院湖南长沙410083摘要针对传统音频延时系统实现方案的不足提出了基于EP9302ARM920T处理器和嵌入式Linux操作系统的数字音频延时系统的实现方案。
分析了系统硬件结构着重介绍了数据存储模块和基于IIS音频总线标准的音频信号预处理模块的具体实现。
介绍了以Linux操作系统为核心的多层软件构架详细分析了音频设备驱动程序的实现机制。
测试结果表明该设计方案具有较高的延时精度系统在稳定性、可扩展性和可移植性方面表现出色。
关键词ARM处理器嵌入式LinuxIIS总线音频设备ALSA音频驱动中图法分类号TP302.1文献标识码A文章编号1000-7024201015-3393-03DesignofdigitalaudiodelaybasedonembeddedLinuxFENGYiWANGJiSchoolofInformationScienceandEngineeringCentralSouthUniversityChangsha410083ChinaAbstractToimprovethedefectsofthecurrentmethodsadigitalaudiodelaysystembasedonEP9302ARM920TandembeddedLinuxisproposed.ThedesignofthehardwareisintroducedincludingthememorycontrolmoduleandtheaudiodatapretreatmentmodulewhichisbasedonIISserialbusinterfacestandard.ThesoftwarearchitecturebasedonembeddedLinuxoperatingsystemisil-lustratedandthemechanismofaudiodevicedriverisfullydiscussed.Testresultsshowthatthisdesignwithhighdelayprecisionalsohavegoodperformancesinsystemstabilityscalabilityandportability.KeywordsARMembeddedLinuxIISbusaudiodeviceALSAaudiodriver嵌入式系统工程计算机工程与设计ComputerEngineeringandDesign339420103115计算机工程与设计ComputerEngineeringandDesign像剩下的13M左右的空间用于构建JFFS2文件系统。
需要断电保存的音频数据和系统参数可以以文件的方式添加至文件系统中。
音频数据的读写过程基于IIS总线标准因此音频信号预处理模块的作用包括两个方面①当系统输入、输出信号均为模拟信号XLR时预处理模块实现对模拟音频信号的整形、滤波、放大之后将模拟信号转化为符合IIS标准的数字音频信号。
处理器通过IIS控制器对数字音频信号进行采集。
处理器对音频数据的延时处理后预处理模块将IIS控制器输出的IIS数字音频信号转化为模拟音频信号供音响设备播放。
②当系统输入和输出均为AES3数字音频信号时预处理模块实现对AES3数字音频信号的编码将其转化为符合IIS标准的数字音频信号处理器采集和延时处理之后预处理模块将IIS控制器输出的数字音频信号解码转化为AES3数字音频信号供音响设备播放。
A/D和D/A转化、数字音频数据编码和解码由CirrusLogic半导体公司专用音频芯片硬件实现有成熟的解决方案。
人机交互模块由LCD和键盘组成LCD和键盘设备由EP9302处理器的GPIO口控制。
调试模块由串口调试模块和以太网调试模块组成。
串口调试模块用于实现与PC机串口终端交互。
以太网调试模块用于通过NFS文件系统共享机制建立交叉编译环境同时为系统网络功能扩展提供硬件支持。
2系统软件实现2.1系统软件结构图2描述了系统软件结构的4个层面以及各个层面之间的信息交互情况。
主要包括3个方面内容①采用Redboot-2.0.1作为操作系统引导解决方案。
实现Linux操作系统启动前的人机交互建立操作系统内核启动环境并引导操作系统启动。
Linux内核启动后Redboot生命周期结束让出处理器资源。
②操作系统启动过程中内核加载设备驱动模块将硬件设备与Linux文件系统中/dev目录下的设备文件建立对应关系。
③操作系统启动完成后运行应用程序进程。
应用程序在用户空间执行不能够直接访问硬件设备。
必须先通过系统调用与内核通信内核通过设备驱动程序与硬件设备进行交互操作。
从而实现应用程序与硬件设备之间的数据交互。
2.2Linux内核版本的选择和内核移植Linux操作系统内核版本为Kernel2.6.8。
经过测试相对于Kernel2.4和早期的内核版本Kernel2.6.8在实时性和稳定性方面有了显著提高并在音频设备驱动程序性能方面有了很大程度的改善。
CirrusLogic公司提供了Ep9302的Kernel2.6.8移植补丁简化了操作系统移植的难度。
操作系统的移植主要包括3个方面的工作①针对平台的硬件特性和所需要的软件功能来确定内核需要哪些设备驱动、函数功能的支持通过裁剪去除内核不需要的代码对内核以及系统库进行精雕细凿2。
需要保留ALSA音频设备驱动、I2C总线驱动、网络设备驱动的支持。
②使用makezImage指令进行内核编译并生成内核镜像文件。
③通过Redboot将内核镜像文件下载至NandFlash。
2.3设备驱动程序设计设备驱动程序是内核与硬件设备之间的桥梁它屏蔽了底层硬件操作细节同时为
上一篇:
【精品文档】C语言编译器MINGW的使用说明(整理)
下一篇:
成长路上,依然坎坷