![]() |
|
||||||||||||||
| . 网站首页 . 产品新知 . 业界资讯 . 技术文库 . 下载中心 . 服务导航 . 邮购需知 . 技术论坛 . | ||
|
||
|
||||||
| 基于SoC的AC'97技术硬件设计 | ||||||
作者:张归雁 文章来源:今日电子 点击数: 更新时间:2008-2-4 ![]() |
||||||
|
来源:今日电子 | 作者:SanDisk公司Flash存储器产品工程部 张归雁 引言 本设计的音频控制器符合AC'97规范V2.3,其主要指标如下:支持双声道录放音;支持定采样率(48kHz)和变采样率录放音;20位宽16层深PCM音频数据FIFO;支持省电模式;支持中断、DMA和轮询3种方式实现与内核或内存的数据交换。 组成结构音频控制器的主结构如图1所示。内核/内存和音频控制器接口(CORE/MEMORY,CTRL INTERFACE)连接音频控制器与内核或内存。CS是片选信号,WR和RD分别是读写使能,ADDR(16位宽)是音频控制器的端口地址,DIN和DOUT(都是32位宽)分别是总线上的输入输出数据,IRQ和DMA REQ分别是中断和DMA请求。主模块(AC'97 CTRL MASTER)负责音频控制器(AC'97 CONTROLLER)与内核或内存(DMA模式下)之间PCM音频数据、控制和状态寄存器组(CONTROL&STATUS REGS)数据以及音频编解码器(AC'97 CODEC)内部寄存器数据各并行数据的传输,由主时钟CLK同步。电源控制模块(POWER CTRL)可以启动省电模式,也由主时钟CLK同步。
图1 音频控制器的主结构 (7)等待CRBUF产生中断,响应中断并写0到音频编解码器的18H寄存器,使PCM输出音量衰减最小; (8)等待CRBUF产生中断,响应中断并写1到音频编解码器的2AH寄存器,即以变采样率播放音频; (9)等待CRBUF产生中断,响应中断并写5622(十六进制)到音频编解码器的2CH寄存器,即以22.05kHz采样率播放音频; (10)允许PCM左右声道FIFO产生满中断; (11)设置PCM左右声道定速率或者变速率传输,并开始播放音频; (12)等待FIFO中的PCM码传送掉16层并发出中断请求; (13)判断是否是PCM左声道FIFO发出中断请求,如果是,则写16层PCM左声道数据; (14)判断是否是PCM右声道FIFO发出中断请求,如果是,则写16层PCM右声道FIFO数据; (15)如果内存中PCM数据被读完,则放音结束,否则返回第12步继续放音。 SOC仿真环境的构成和原理 由音频控制器的工作原理可见,其每一个步骤都是在DSP内核控制下进行的。因此在对音频控制器进行功能验证时,不但要保证其本身的逻辑正确,更要保证其与内核的数据传输正确,这样才有利于音频控制器和内核的整合。由此提出通过构件SoC内核仿真环境来逼近真实内核,并在这个仿真环境中测试所设计的音频控制器。 仿真环境的构成 SoC内核仿真环境的硬件以Xilinx公司的MicroBlaze多媒体开发电路板为基础,其核心是Vertex II FPGA。电路板上还集成了National Semiconductor公司的AC'97 CODEC LM4549芯片,并且提供了LINE IN/OUT、耳机以及麦克风插口。可以通过这些插口来测试音频录放效果,也可通过电路板上的测试点调试部分关键信号。SoC内核仿真环境的构成如图2所示。
图2 SoC内核仿真环境的构成 时钟发生模块(CLOCK GENERATOR)可发出27MHz、54MHz以及108MHz三种时钟,并且产生音频控制器异步复位信号RST。MicroBlaze开发电路板上的晶振发出27MHz和50MHz的占空比1:1的方波信号作为时钟发生模块的输入,调用数字锁相环硬核模块(CLOCKGEN.v和CLOCKGEN.ucf)可输出各倍频时钟(本设计用108MHz)以及异步复位信号RST。AC'97 CTRL是以RTL形式下载到Vertex II FPGA中的音频控制器逻辑。AC'97 CODEC是National Semiconductor公司的LM4549 AC'97 CODEC芯片。 内核模拟模块的实现原理 RTL代码模拟的都是流水线中的指令执行级,是音频控制器和内核直接交互数据的级别。根据DSP内核在指令执行级的行为和接口特性,可以灵活地改变内核模拟模块的接口和内部信号(通过改变RTL代码),形成不同的仿真环境。测试在新的仿真环境中音频控制器与内核的工作是否协调稳定,如果结果不理想,就应更改音频控制器的设计。这样就能使音频控制器的特性也能和内核达到最好的协调。 基于SoC内核仿真环境的放音实例 下面给出基于SoC内核仿真环境播放音频的实例。音频来源于Windows2000操作系统初始安装后winnt/media目录下的Utopia Windows Start.wav(153KB,16位单声道的wave文件),提取出文件中的PCM音频码后下载到Vertex II的块内存中。音频控制器在SoC内核仿真环境中控制音频编解码器工作,连接耳机到MicroBlaze开发电路板的耳机插口,可以听到维持将近3秒钟的音频信号,和原音频文件的声音基本一致。使用音频分析软件Audicity来分析音频播放效果,原始音源与开发板播放的音频略有不同,其原因有以下3点。(1)电脑声卡录音起点和原音频的放音起点不同; (2)由于块内存的最大容量为126KB,所以所录波形文件只截取了原文件(153KB)的前2/3部分。(3)经过SoC内核仿真环境放音,并由电脑声卡录音得到的音频与原音频的幅度必然不同。第1、2两个因素引起两个波形在时间轴方向上的偏差,因素3引起幅度轴方向上的偏差。尽管存在这些差异,但完全可以说明在SoC内核仿真环境中,所设计的音频控制器逻辑功能正确,与内核能够协调工作。 总结 本文根据所设计的音频控制器的结构详细介绍了构建SOC内核仿真环境来测试音频控制器的思想和实现方法。基于这个仿真环境,不但可以测试音频控制器实际录放音的效果和性能,更重要的是可以及时反映其与内核的协调程度。这样就可避免孤立设计音频控制器而不考虑其与SoC系统协调的弊端,明显提高后期整合SoC系统的效率。 参考文献 1 Audio Codec '97, Revision 2.3 Revision 1.0, Intel,April 2002 2 MicroBlaze and Multimedia Development Board User Guide UG020 (v1.0),Xilinx, August 2002 3 Core Gennerator Guide - ISE 5, Xilinx 4 LM4549A AC '97 Rev 2.1 Codec with Sample Rate Conversion and National 3D Sound, National Semiconductor, November 2002 |
||||||
| 文章录入:admin 责任编辑:admin | ||||||
| 【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口】 | ||||||
| 最新热点 | 最新推荐 | 相关文章 | ||
| 没有相关文章 |
| 网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!) |
| | 设为首页 | 加入收藏 | 联系站长 | 友情链接 | 版权申明 | 网站公告 | 管理登录 | | |||
|