位置:51电子网 » 技术资料 » 模拟技术

基于SoC的AC''97技术硬件设计

发布时间:2008/5/26 0:00:00 访问次数:464

        

    

    

    引言

    

    符合audio codec'97协议(简称ac'97,是由intel公司提出的数字音频处理协议)的音频控制器不但广泛应用于个人电脑声卡,并且为个人信息终端设备的soc(如intel的pxa250)提供音频解决方案。本文设计的音频控制器可为dsp内核提供数字音频接口。全文在介绍音频控制器结构的同时,着重强调其与内核之间数据的协调传输,并给出基于fpga实现soc内核仿真环境对音频控制器进行功能测试的方法。

    

    音频控制器的结构和原理

    

    ac'97系统由音频编***(codec)和音频控制器(controller)两个部分组成。其中音频编***实现a/d、d/a转换、音效处理等功能,而音频控制器则是soc内核与音频编***之间的数字接口,负责控制数据和音频数据的串/并、并/串转换以及传输。

    

    性能指标

    

    本设计的音频控制器符合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-p.htm" target="_blank" title="controller货源和pdf资料">controller)与内核或内存(dma模式下)之间pcm音频数据、控制和状态寄存器组(control&status regs)数据以及音频编***(ac'97 codec)内部寄存器数据各并行数据的传输,由主时钟clk同步。电源控制模块(power ctrl)可以启动省电模式,也由主时钟clk同步。

    

    

    

    图1 音频控制器的主结构

    

    4组fifo用于存放pcm音频数据,都是20位宽16层深,因此可以支持最高20位宽分辨率。当fifo满或者空时,可以发出中断或dma请求。音频编***内部寄存器读写缓存器(codec reg write/read buf,简称crbuf)是2个32位寄存器。写缓冲器可以缓存准备写入音频编***内部寄存器的控制字,其空时可以发出中断请求;读缓冲器可以缓存已经从音频编***内部寄存器中读出的状态字,其满时可以发出中断请求。控制和状态寄存器组包含8个32位寄存器,其中,通用控制寄存器的主要功能是系统冷启动、热启动;通用状态寄存器反映音频编***状态;其他寄存器的功能包括配置pcm输入输出声道、配置和产生中断或dma请求。辅模块(ac'97 ctrl slave)实现音频控制器与音频编***之间(ac-link)数据帧的串行发送和接收。输出数据(sdata_out)由辅时钟bit_clk上跳沿同步,输入数据(sdata_in)由bit_clk下跳沿同步。

    

    工作原理

    

    dsp内核通过读写音频控制器csrs分别来获得音频编***状态和设置音频编***工作模式;通过读写fifo来缓冲音频录制和播放过程中的pcm音频数据;通过读写crbuf来获得音频编***内部寄存器状态和设置音频编***内部寄存器参数。下面以音频播放中的主要步骤为例,介绍音频控制器的工作原理。

    

    (1)写满pcm左声道输出fifo;

    

    (2)写满pcm右声道输出fifo;

    

    (3)轮询音频编***准备好(codec ready)信号是否有效;

    

    (4)读音频编***的26h寄存器,判断d/a转换器是否准备好;

    

    (5)允许crbuf产生中断请求;

    

    (6)写0到音频编***的02h寄存器,使主音量衰减最小;

    

    (7)等待crbuf产生中断,响应中断并写0到音频编***的18h寄存器,使

        

    

    

    引言

    

    符合audio codec'97协议(简称ac'97,是由intel公司提出的数字音频处理协议)的音频控制器不但广泛应用于个人电脑声卡,并且为个人信息终端设备的soc(如intel的a250)提供音频解决方案。本文设计的音频控制器可为dsp内核提供数字音频接口。全文在介绍音频控制器结构的同时,着重强调其与内核之间数据的协调传输,并给出基于fpga实现soc内核仿真环境对音频控制器进行功能测试的方法。

    

    音频控制器的结构和原理

    

    ac'97系统由音频编***(codec)和音频控制器(controller)两个部分组成。其中音频编***实现a/d、d/a转换、音效处理等功能,而音频控制器则是soc内核与音频编***之间的数字接口,负责控制数据和音频数据的串/并、并/串转换以及传输。

    

    性能指标

    

    本设计的音频控制器符合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-p.htm" target="_blank" title="controller货源和pdf资料">controller)与内核或内存(dma模式下)之间pcm音频数据、控制和状态寄存器组(control&status regs)数据以及音频编***(ac'97 codec)内部寄存器数据各并行数据的传输,由主时钟clk同步。电源控制模块(power ctrl)可以启动省电模式,也由主时钟clk同步。

    

    

    

    图1 音频控制器的主结构

    

    4组fifo用于存放pcm音频数据,都是20位宽16层深,因此可以支持最高20位宽分辨率。当fifo满或者空时,可以发出中断或dma请求。音频编***内部寄存器读写缓存器(codec reg write/read buf,简称crbuf)是2个32位寄存器。写缓冲器可以缓存准备写入音频编***内部寄存器的控制字,其空时可以发出中断请求;读缓冲器可以缓存已经从音频编***内部寄存器中读出的状态字,其满时可以发出中断请求。控制和状态寄存器组包含8个32位寄存器,其中,通用控制寄存器的主要功能是系统冷启动、热启动;通用状态寄存器反映音频编***状态;其他寄存器的功能包括配置pcm输入输出声道、配置和产生中断或dma请求。辅模块(ac'97 ctrl slave)实现音频控制器与音频编***之间(ac-link)数据帧的串行发送和接收。输出数据(sdata_out)由辅时钟bit_clk上跳沿同步,输入数据(sdata_in)由bit_clk下跳沿同步。

    

    工作原理

    

    dsp内核通过读写音频控制器csrs分别来获得音频编***状态和设置音频编***工作模式;通过读写fifo来缓冲音频录制和播放过程中的pcm音频数据;通过读写crbuf来获得音频编***内部寄存器状态和设置音频编***内部寄存器参数。下面以音频播放中的主要步骤为例,介绍音频控制器的工作原理。

    

    (1)写满pcm左声道输出fifo;

    

    (2)写满pcm右声道输出fifo;

    

    (3)轮询音频编***准备好(codec ready)信号是否有效;

    

    (4)读音频编***的26h寄存器,判断d/a转换器是否准备好;

    

    (5)允许crbuf产生中断请求;

    

    (6)写0到音频编***的02h寄存器,使主音量衰减最小;

    

    (7)等待crbuf产生中断,响应中断并写0到音频编***的18h寄存器,使

相关IC型号

Warning: Undefined variable $stockkeys in G:\website_51dzw\www.51dzw.com\code\tech\view.php on line 152

热门点击

 

推荐技术资料

泰克新发布的DSA830
   泰克新发布的DSA8300在一台仪器中同时实现时域和频域分析,DS... [详细]
版权所有:51dzw.COM
深圳服务热线:13692101218  13751165337
粤ICP备09112631号-6(miitbeian.gov.cn)
公网安备44030402000607
深圳市碧威特网络技术有限公司
付款方式