基于AC_link协议的嵌入式音频解决方案分析与设计

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

25卷 第7期2008年7月
微电子学与计算机
M ICROEL ECTRON ICS &COMPU TER
Vol.25 No.7J uly 2008
收稿日期:2007-08-27
基金项目:天津市重点科技攻关项目(06YFGZGX03600)
基于AC 2link 协议的嵌入式音频解决方案分析与设计
梁 科,李国峰,郑 旭,王 锦,马志翘,秦世才
(南开大学信息技术科学学院,天津300071)
摘 要:提出了一种嵌入式音频解决方案,该方案基于AC 2link 协议,数字逻辑采用Verilog HDL 设计,支持多通道存储器直接存取(Direct Memory Access ,DMA )传送,驱动程序采用了双缓冲机制.对系统方案进行了分析,介绍了主要硬件模块的实现方法和驱动程序的设计思路,在此基础上以43万等效门实现了整个设计并通过验证.关键词:AC 2link ;DMA ;双缓冲机制
中图分类号:TP302 文献标识码:A 文章编号:1000-7180(2008)07-0123-04
Analysis and Design of an Embedded Audio Solution B ased on AC 2link Protocol
L IAN G Ke ,L I Guo 2feng ,ZHEN G Xu ,WAN G Jin ,MA Zhi 2qiao ,Q IN Shi 2cai
(College of Information Technical Science ,Nankai University ,Tianjin 300071,China )
Abstract :An embedded audio solution based on AC 2link protocol that supports multi 2channel (Direct Memory Access ,DMA )transfer and dual 2buffer mechanism is presented in this article.System solution is analyzed and the realization method of main hardware modules and software driver is introduced.The digital logic units of the audio system are de 2signed by Verilog HDL and the whole design is realized and verified by 430000equivalent gates.K ey w ords :AC 2link ;DMA ;dual 2buffer mechanism
1 引言
随着微电子和计算机技术的高速发展,许多嵌入式应用系统应运而生,各种语音处理系统不断被开发出来,在日常生活中得到广泛应用,如录音笔、复读机、语音报站器等,而对于智能手机、PDA 等多功能的手持设备,人们则追求越来越好的音乐效果.在嵌入式领域中提供优质廉价的音频解决方案已成为当前的一个发展趋势.
数字音频处理技术是宽带网络多媒体、移动多媒体通信的关键技术.Audio Codec ’97是其中一种用于声音录放的技术标准,简称AC97,意为“音频数字信号编/解码器”,它把一般音频设备中的数字部分和模拟部分分离开来,从而降低了电磁干扰,可以得到较好的音效品质.AC97标准采用AC 2link 数
字串行接口连接音频编解码器和控制器,可以方便地应用于嵌入式领域当中.
2 总体设计
2.1 方案分析
本课题的设计目标为实现一种高效的嵌入式音频解决方案.图1(a )为系统最初采用的方案,主设备与从设备采用共享总线(Shared Bus )进行互联,由总线仲裁器采用优先级算法决定优先获得总线控制权的主设备.CPU 的主设备接口与总线相连,通过存储器接口由外部程序存储器取回指令执行,程序运行时首先对AC97控制器和音频Codec 进行初始化.当执行放音操作时,CPU 从外部数据存储器中取出一帧音频数据并完成语音解码,解码后的音频数据送往AC97控制器的输出FIFO ,同时AC97
控制器按照AC 2link 数字串行接口协议与音频Codec 芯片进行数据传输.Codec 对音频数据进行混音处理,经DA 转换为模拟信号输出,驱动耳机或扬声器发声.当FIFO 中的数据发送完毕后,AC97控制器向CPU 发出中断信号,CPU 响应后向FIFO 中写入下一组音频数据
.
图1 基于AC 2link 协议的嵌入式音频解决方案
执行录音操作时,Codec 把模拟音频信号转换为数字信号,抽取滤波后传送至AC97控制器,由AC97控制器把不同时隙的数据送往相应的输入FIFO.当FIFO 充满后向CPU 发出中断信号,CPU 响应中断从FIFO 中取出数据后进行压缩编码存入存储器,完成录音过程.
AC97控制器为每个通道设计了独立的FIFO ,
当每个FIFO 为8×16bit ,Audio Codec 设置为双声道8ksample/s 16bit 量化时,中断请求频率为2kHz ,对于CPU 来说中断频率过快.若CPU 主频较低或需要运行语音压缩算法时,音频数据录放的实时性无法保证,为降低CPU 的负担,采用如图1(b )所示的方案二.
在方案二的系统中添加了DMA 控制器和DMA 缓冲器.DMA 是嵌入式系统中普遍采用的能够有效减轻处理器内核负担、提高系统性能的一项技术.在面向多媒体应用的智能化系统中需要传送的数据量越来越大,速度越来越快,若所有的数据存取都通过系统调用和中断的方式处理,则效能低下且严重加大了CPU 负担,DMA 的应用可以大大提高数据传输的效率[122].
在方案二中,DMA 控制器(DMA Controller ,DMAC )具有两个主设备接口和一个从设备接口,均
连接在系统总线上.从设备接口用于CPU 对DMAC 寄存器进行读写操作.两个主设备接口用于在DMA 缓冲器和AC97控制器之间进行数据传输.采用这种方案很好地解决了中断调用过于频繁,CPU 负担过重的问题.
此方案的设计中采用了交叉开关(Crossbar Switch )的总线连接方式,当DMAC 工作时CPU 也可同时通过总线对其他从设备进行操作而无需等待.若仍采用共享总线方式,DMAC 和CPU 轮流控制总线,由总线仲裁器根据优先级算法决定总线控制权,此时共享总线将成为系统性能的瓶颈,CPU 会有相当一部分时间用于等待以获得总线控制权,在很大程度上影响了CPU 的效率.采用Crossbar Switch 方式可有效提高系统的总线带宽,增加系统的弹性,然而Crossbar Switch 采用复杂的交换矩阵对多个主从设备进行交叉互联,占用资源远比采用共享总线方式多[3].表1显示了采用Altera 公司的CycloneII 系列器件实现一种具有8个主设备接口和16个从设备接口的总线模块时,两种总线方式所占用的资源对比.
表1 共享总线和交叉开关方式占用资源对比互联模式
寄存器
占用的L Es
Shared Bus 81082Crossbar Switch
1090
15086
为提高CPU 的效率,同时减小资源占用率以降低系统成本,采用图1(c )所示的方案三.在此方案中,仍采用共享总线设计.DMA 缓冲器具有两个从设备接口:其中Slave0与总线相连,CPU 通过此接口访问DMA 缓冲器;Slave1与DMAC 相连.DMAC 是DMA 缓冲器与AC97控制器间进行数据传输的桥梁,它具有两个主设备接口、一个从设备接口:其中Master0与DMA 缓冲器相连;Master1与AC97控制器相连;Slave 与共享总线相连.
此方案中DMAC 不再通过系统总线访问从设备,而是通过专用的DMA 通道与AC97控制器和DMA 缓冲器进行数据交换,数据传输速度不再受到总线带宽的限制.2.2 系统硬件总体设计
综合考虑系统的灵活性、可扩展性和实时性,音频系统硬件总体框图如图2所示,系统以Altera 公司的可编程逻辑器件EP2C35为核心,外围主要芯片包括Flash 、Sdram 、音频Codec 及配置器件,音频编解码器选用独立芯片UCB1400.RISC CPU 、
4
21微电子学与计算机2008年
Sdram 控制器、Flash 接口模块、AC97控制器、DMA
缓冲器、DMA 控制器均采用Verilog HDL 编写,由可编程逻辑实现.CPU 采用改进的32位哈佛结构处理器核OpenRISC ,它具有结构简单、可动态配置、通用性强的特点.AC97控制器、DMA 控制器为本课题与音频部分相关的关键模块,下面重点介绍.
3 模块设计
3.1 AC97控制器
AC 2link 是一种按照AC97标准规定的双向、固
定速率、串行PCM 数字音频信号接口协议,利用时分复用(TDM )策略处理多输入/输出通道的数据流及完成对寄存器的访问.采用AC 2link 协议进行传
输的每帧数据分为13个时隙(slot ),每时隙20bit 采
样分辨率(slot0除外),帧结构如图3所示
.
图2 
硬件系统总体框图
图3 AC 2link 数据帧结构
在AC97控制器的设计中,slot0为16bit 宽度,
第0位为“1”表示当前的数据帧至少有一个时隙含有有效数据,第1~12位分别代表相应的12个后续时隙中是否包含有效数据,slot0其余3位补0.通过对slot0数据的处理,可以实现在固定的48kHz 音频帧速率下传输可变采样速率的数据流[2].
slot1至slot12每时隙为20bit 宽度.其中slot1用于传输音频Codec 寄存器地址,slot2用于传输发往Codec 寄存器的命令或读取寄存器状态,余slot 用于发送数据.本设计支持6输出通道和3输入通道,根据AC 2link 协议,6输出通道占用12个slot 的第3、4、6、7、8、9时隙,3输入通道占用第3、4、6时隙.每个通道传输的数据均为16bit 采样分辨率,占用各时隙前16位,各时隙后4位补0.AC97控制器功能框图如图4所示
.
图4 AC97控制器框图
各模块的功能如下:
(1)总线接口:提供AC97控制器与总线的接口,以便与CPU 交换数据.
(2)串行输入/输出接口:由Codec 提供的时钟CL K -I 分频产生48kHz 同步信号SYN -O ,同时
产生对串行IO 寄存器和数据传输控制器模块的控制信号.
(3)串行输入/输出寄存器:实现串并数据的转换.放音时并行数据由输出FIFO 读出,录音时将并行数据写入输入FIFO.转换的串行数据流与SYN -O 信号同步.
(4)输入/输出FIFO :每个输入/输出通道均对应一个FIFO ,每个FIFO 为8输入深度,16位宽度,由数据传输控制器模块提供读写信号.
(5)数据传输控制器:控制数据在FIFO 与串行输入/输出寄存器之间传输,同时监视Codec 的请求,以支持可变采样率.
(6)编解码器寄存器接口:提供通过AC97控制器对Codec 芯片寄存器进行读写操作的接口,写入此接口的数据经AC 2link 数据帧的第1、2时隙与Codec 进行通信.
(7)寄存器堆:包括主控制寄存器和各通道对
应的控制和状态寄存器,提供利用软件配置控制器
工作方式和查询工作状态的途径.
5
21 第7期梁科,等:基于AC 2link 协议的嵌入式音频解决方案分析与设计
3.2 DMA 控制器
DMA 控制器实现了两个存储空间的数据传输
而无须CPU 的参与.在面向多媒体应用的嵌入式领域中,DMAC 能否以更快和更灵活的方式工作,直接关系到嵌入式系统的处理性能.本设计中DMAC 中提供了8个DMA 通道,以满足对并发的数据流进行实时处理的要求.可通过软件设置内存映射的寄存器组,完成对DMAC 的动态配置.同时它具有4优先级,支持硬件握手方式、环形缓冲区及描述符链表,其结构框图如图
5所示.
图5 DMA 控制器框图
主要模块的功能如下:
(1)总线接口:设计中实现了两个主设备接口,用于在两个存储单元或IO 设备间交换数据;一个从设备接口,提供CPU 访问寄存器堆的数据通路.
(2)寄存器堆:CPU 可通过写寄存器完成对DMAC 各通道源地址、目的地址、传输数据块大小、
工作模式以及优先级的设置.
(3)通道仲裁器:可根据各通道的优先级选择下一个进行数据传输的通道.本设计支持4优先级,0为最低优先级,3为最高优先级.当没有更高优先
级时,同一优先级的通道采用round 2robin 算法进行判决.
(4)DMA 引擎:DMA 引擎是DMAC 的核心模块,可根据各通道所配置的工作模式及预设优先级完成各种传输任务.本设计中DMA 引擎通过握手信号实现了DMAC 的硬件握手工作方式;利用地址掩码及动态调整软件指针实现了队列型(FIFO style )环形缓冲区;通过使用描述符链表实现对传输
数据块和缓冲区大小的动态调整[4].
4 驱动程序实现方法
为最大限度利用DMA 缓冲器的容量提高CPU 的效率,驱动程序设计采用了双缓冲机制,以实现CPU 和DMAC 对缓冲器的并行操作.缓冲器的输
入与输出缓冲区独立,各对应一个DMA 通道,每个
缓冲区又分为两个子缓冲区:缓冲区0和缓冲区1,
用标志位标识正在使用的缓冲区,
如图6所示.
图6 双缓冲器区结构
放音时,CPU 首先预写DMA 缓冲区,对
DMAC 、AC97控制器及音频Codec 进行初始化,清除标志位并使能中断,启动DMA 引擎.此后预写到缓冲区0的数据将在DMAC 控制下写入AC97控制器的输出FIFO.缓冲区0的全部数据读取完毕后DMAC 将产生中断,CPU 响应中断将音频数据从内
核缓冲区内取出进行并语音解码,解码后的数据写
入DMA 缓冲区0,写满后标志位取反并清除中断信号,CPU 可执行其他进程;与此同时缓冲区1中的数据在DMAC 的控制下自动写入AC97控制器的输出FIFO.以上过程周而复始,两个缓冲区交替循环进行读写操作,完成放音过程.录音过程与上述过程相反.采用双缓冲机制,能够使采样和编码过程、解码和播放过程并发执行,显著提高了系统的实时性,且较多缓冲机制更有效利用了缓冲区存储资源.设计DMA 缓冲区时综合考虑了对CPU 负担的影响和数据延时,缓冲区过大将导致延时增大,缓冲区过小将使中断过于频繁,导致CPU 效率降低.权衡以上因素,最终确定缓冲区容量为2kB ,一组PCM 数据512B.此时若音频Codec 设置为双声道8ksample/s 16bit 量化,则中断频率为64Hz ,即使CPU 工作于较低主频时,这个中断频率也是可以接
受的.
5 结束语
在设计一款面向多媒体应用的嵌入式系统时,实时性能和成本是两个需要考虑的重要因素.文中提出了一种基于AC 2link 协议的嵌入式音频解决方案,该方案在提高数据传输效率的同时减小了资源占用率,从而降低了系统成本.经过仿真和对系统样机的测试,确定系统占用43万等效门,在Linux 操作系统下运行G.711/G.729B 音频编解码算法程序时,系统工作在主频36MHz 即可满足语音系统的实时性要求.目前系统已在FP G A 平台上得到验证,
(下转第129页)6
21微电子学与计算机2008年
存器,如果校验错误就等待下一个数据的输入.
USB组装器与USB拆装器的功能刚好相反.它是要将USB发送FIFO中的数据加上包头、包标识以及相应的校验信息组成完整的USB包并最终将其发送给主机.
USB协议引擎根据USB协议处理所有的来自主机的数据并根据自身的状态回应主机信息(AC K,NAC K,N YET).
在协议引擎中一个传输事务处理的主要流程大致可以分为三大步.主机发送令牌包、设备接收处理、主机或是设备发送数据.
主机发送的令牌包有五种,它们是PIN G包、SOF包、IN包、OU T包和SETU P包,其中设备只对PIN G包和SOF包进行处理.下面以IN包为例对令牌包的数据流程进行简要的说明.
设备收到IN包后首先提取包中的端点号并判断该端点是否被锁定.如果锁定则通知包组装器返回STALL给主机,如果没被锁定则检查内部存储器是否将数据准备好,如果没准备好则通知包组装器返回NA K给主机,如果准备好就将准备的数据发给主机同时计时器计时并等待主机的握手包.如果接收到AC K握手包则此次数据传输成功,相应寄存器清零.如果没有收到AC K握手包则需重新发送数据.
DMA存储接口接到数据存储器上.它将包拆装器中解码的数据传送到USB存储器中或将存储器中的数据发送到包组装器中进行编码.
协议层的这四个模块在整个USB设备中起到了核心的作用,因此在IP核的设计中将这四个模块分别设置成四个块进行硬件电路的设计,然后在顶层设置协议块将这四部分进行参数连接实现整个协议层的功能[4].
3 结束语
文中分析了USB的特点和IP核开发的重要性,接着详细介绍了USB接口的IP核系统结构及各部分所要实现的功能.文中所设计的IP核基本实现了USB各部分结构的功能,可以满足嵌入式USB 通信的性能要求.由于其兼具USB的高速数据传输率和IP核的良好的可移植性,可以预见,其在通信领域中将具有很广阔的发展空间.
参考文献:
[1]杨登峰.基于FPG A的USB芯片设计[J].微电子与计
算机,2004,21(6):39-41.
[2]Compag,Hewlet2Packard,Intel,et al.Universal serial bus
specification revision2.0[EB/OL].[2002-12-10].
/developers/docs/usb20.zip.
[3]沈戈.基于IP核的SOC设计方法及其应用的研究[D].
西安:西北工业大学,2002.
[4]美国迈舍尔公司.USB系统体系[M].2版.孟文,译.北
京:中国电力出版社,2003.
作者简介:
付华杰 男,(1982-),硕士研究生.研究方向为嵌入式高速计算机控制.
刘丽君 女,(1983-),硕士研究生.研究方向为高速计算机控制.
张遂南 男,(1965-),博士,硕士生导师.研究方向为嵌入式高速计算机技术.
(上接第126页)
实现了录音采集、存储和音频播放功能,并已成功应用于Vo IP SoC硬件模块的调试中.
参考文献:
[1]Prokin M.DMA transfer method for wide2range speed and
frequency measurement[J].IEEE Transactions on Instru2 mentation and Measurement,1993,42(4):842-846. [2]陈双燕,王东辉,侯朝焕.基于SystemC的可配置多通道
DMA控制器的设计与实现[J].微电子学与计算机, 2007,24(5):48-51.
[3]Lahtinen V,Salminen E,Kuusilinna K,et parison
of synthesized bus and crossbar interconnection architec2 tures[C]//Proceedings of the2003International Sympo2 sium on Circuits and Systems.Finland:Tampeve Universi2 ty of Technol,2003(5):433-436.
[4]Varada S,Oduol V,Shelat A.Data flow and buffer man2
agement in multi-channel data link controller[C]//24th Conference on Local Computer A:Lowell, 1999:132-141.
作者简介:
梁 科 男,(1978-),博士研究生.研究方向为计算机体系结构、集成电路设计.
921
 第7期付华杰,等:高速USB IP核的设计与开发。

相关文档
最新文档