AC-Link数字音频VHDL编/解码的FPGA设计

发布者:PeacefulWarrior最新更新时间:2013-07-15 来源: eefocus关键字:AC-Link  数字音频  VHDL  编解码 手机看文章 扫描二维码
随时随地手机看文章

引言

数字音频处理是指为真实再现声音的逼真效果而对音频进行的编解码处理技术,它是宽带网络多媒体、移动多媒体通信的关键技术.Audio Codec′97(音频数字信号编/解码器)是其中一种用于声音录放的技术标准,简称AC′97. AC′97采用双集成结构,即Digital Controller(数字信号控制器)和Audio Codec(音频编解码),使模/数转换器ADC和数?模转换器DAC转换模块独立,尽可能降低EMI(电磁干扰)的影响。

利用FPGA,可以实现复杂的逻辑控制,对大量音频数据做并行处理.FPGA提供可编程时钟发生器,满足音视频处理要求的时钟范围宽、相位抖动(Phase Jitter)小的要求,并为系统提供可控延时。
  
1 AC-Link音频编/解码原理

AC-Link是连接Digital Controller和Audio Codec的5线串行时分多路I/O接口,固定时钟频率48kHz由串行位时钟12.288MHz经256分频而来,支持一个控制器和最多4个编码器. AC-Link只能传输48kHz固定取样率的PCM(脉冲编码调制)信号,字长从16Bit到20Bit,其它取样率的PCM信号须经过SRC(取样率转换)转换成48kHz。

AC-Link接口时序如图1所示,输入输出音频数据和控制寄存器的读写命令组织在一帧里,一个输入或输出分割成12个时隙,每个时隙为20位采样分辨率.控制器把12.288MHz时钟256分频,产生一个SYNC信号,此信号用于标志一个输入(输出)帧的开始。

图1 双向AC-Link数据帧及时隙分配
由图1可知,每个输入(输出)帧除了有12个20位的数据/命令(数据/状态)复用时隙外,还有一个特殊的16位的帧首时隙,此时隙主要用来标志此帧是否可用,如果此帧可用,那么此帧中对应时隙中为有效数据。

如图2所示,PCM通过抽样、量化、编码三个步骤将连续变化的模拟信号转换为数字编码,PCM编码是最高保真水平编码,音质好但体积大.AC-Link能够传输48KHz固定取样率的PCM信号,字长可以从16Bit到20Bit,其它取样率的PCM信号必须先经过SRC(Sample Rate Conversion,取样率转换)转换成48KHz。

图2 AC-Link音频编解码过程 

如果PCM信号的字长低于DAC的,那么Controller会自动将PCM信号进行移位,使其MSB( Most Significant Bit,最高有效位)对齐,低位补0.如果PCM信号的字长高于DAC的,那么必须先通过Dither(抖动)降低字长后或者直接就经过AC-Link接口传输到Codec,如果DAC字长不够AC-Link接口的高,那么它会自动将AC-Link接口超过字字长的LSBs(Least Significant Bit,最低有效位)去掉.DAC输出的是阶梯状或者是脉冲状信号,还必须经过LPF(Low Pass Filter,低通滤波器)滤波整形恢复为原来的音频信号。
  
2 FPGA音频编/解码系统结构

FPGA音频编/解码系统以ACEX1K和AD1881芯片为核心,如图3所示。

图3 FPGA音频编/解码系统图 [page]

ACEX1K-FPAG有147个用户可用I/O,系统门数最多257000,逻辑门100000.内部有4992个逻辑单元(LE),有12个嵌入式存储块(EAB),即49125位双口RAM.使用EAB构成的RAM、ROM、双口RAM和FIFO等结构可大大提高基于查找表(LUT)的算术运算、数字信号处理性能.在AC-Link音频编解码系统中,FPGA控制模块根据后向控制流,为音频编码模块提供多路帧同步信号。

AD1881是A/D、D/A接口芯片,支持AC′97标准接口,实现全双工16位立体声的音频编?解码,采样率7K~48KHz.系统复位完成FPGA 程序加载后,由FPGA的I2C总线模块对AD1881初始化,初始化结束后等待采集命令.初始化成功后,AD1881实时处理模拟音频信号。

用FPGA实现AC-Link声卡的D/A变换功能所需要的资源并不多,用一片ACEX1K100芯片做D/A转换,只消耗了30%左右的资源,在具体应用中,有时并不需要校验位及出错信号,则占用系统资源更少。
  
3 AC-Link音频编/解码的VHDL设计

FPGA中的AC音频编/解码设计是通过VHDL编程实现的.VHDL是一种应用非常广泛的硬件描述语言,它的语言覆盖面广,描述能力强;可以描述最抽象的系统级,也可以描述最精确的逻辑级、门级. AC-Link系统采用结构化VHDL进行设计的整个系统是一个VHDL语言文件,包括几个BLOCK语言.下面分别介绍各模块实现的功能。
  
(1)sreg1.vhd,调用一个并行输入、串行输出的模块,模块的核心程序如下:
  
if(clk’event and clk=‘1’)then —时钟下降沿
   if(s1=‘0’)then —S1并行输入允许
    tmpreg<=datain;
   else
    for i in sreg_width-1 down to 1 loop —串行移位输出
     tmpreg(i)<-tmpreg(i-1);
    and loop;
    tmpreg(0)<=se;
  
程序中,S1用来为sreg模块作为并行输入允许端.该信号在每个时隙的第一个数据位时出现,在此时,该时隙的数据被置入sreg模块,然后该模块开始串行移位输出,以后的各个时隙也按此过程工作。
  
(2)调用并行输入、串行输出模块,设计AC-Link.vhd.AC-Link的D/A转换控制器向编码器写数据,然后这些数据D/A转换成模拟信号,最后经功放输出
   
程序中对时隙的分配是采用IF_THEN_ELSEIF_THEN_ELSE_ENDIF语句实现,当计数器小于16时是第0时隙,以后每隔20个计数为一个时隙.使用CASE语句在不同时隙,输出赋以相应的数据。
  
对于AC-Link输入帧,如果控制器想从编码器读取数据或状态,就在bit_clk的上升沿把SYNC置高,编码器在bit_clk下降沿采样到 SYNC变化,然后在上升沿开始发送数据.控制器在每个bit_clk的下降沿采样数据,同时SYNC保持16个bit_clk周期的高电平。
  
对于AC-Link输出帧,如果控制器要向编码器输出数据或命令时,则在bit_clk的上升沿先把SYNC置高,然后在每一个bit_clk的上升沿发送一位数据,SYNC与bit_clk的上升沿同步.编码器在bit_clk的下降沿采样到SYNC的变化,由此编码器知道控制器要与它通信,在下一个 bit_clk的下降沿编码器开始采样数据,此后每一个bit_clk的下降沿采样一位数据.控制器发送数据是在bit_clk的上升沿,而编码器采样数据是在bit_clk的下降沿.同时SYNC也要保持16个bit_clk周期的高电平。
  
下列程序用于产生16个的bit_clk周期的高电平的SYNC信号,SYNC是bit_clk的256分频,有16个周期是高电平,其余时间是低电平。

  if(conv_integer(counter)<16)then
   sync<=‘1’;
   counter:=counter+1;
  else
   sync<=‘0’;
   counter:=counter+1;
  endif;
   
进行VHDL设计时,最好各模块单独进行并及时仿真验证,以便尽早发现问题.系统中其它模块在此不再叙述.

图4 AC-Link输出仿真图 

AC-Link接口的仿真图如图4所示,实现了其D/A转换功能,仿真通过以后,可将程序下载到FPGA中实现,同时直接与通令机连接起来进行调试,并利用计算机进行调试获得成功,计算机的通信软件可用VB或Delpi等可视化软件来编制。
  
4 结论

AC-Link音频编/解码系统的是在FPGA平台上用VHDL设计的.AC-Link设计采用自顶向下的设计方法,通过建立VHDL行为模型和进行 VHDL行为仿真,可及早发现设计中潜在的问题,缩短设计周期,提高设计的可靠性和效率.实践证明,仿真结果和FPGA实现符合AC-Link控制和编码要求.

关键字:AC-Link  数字音频  VHDL  编解码 引用地址:AC-Link数字音频VHDL编/解码的FPGA设计

上一篇:基于FPGA的视频图像分割技术设计与应用
下一篇:数字电视传输系统的建模与仿真

推荐阅读最新更新时间:2024-05-02 22:43

用CPLD器件及VHDL语言实现电梯控制系统
   1 引言   随着社会的发展。使用电梯越来越普遍,已从原来只在商业大厦、宾馆过渡到在办公室、居民楼等多种建筑中,并且对电梯功能的要求也不断提高,其相应控制方式也在不断发生变化。电梯的微机化控制主要有:PLC控制、单板机控制、单片机控制、单微机控制、多微机控制和人工智能控制等。随着EDA技术的快速发展,PLD器件已广泛应用于电子设计与控制的各个方面。这里使用CPLD器件,采用VHDL语言设计一个16 楼层单个载客箱的电梯控制系统,此控制系统具有使用安全可靠,功能全面的特点,方便人们生活。    2 系统总体设计   该系统采用单片CPLD器件实现一个多楼层单个载客箱的电梯控制器,该控制器可控制电梯完成 16个楼层的载客服
[嵌入式]
用CPLD器件及<font color='red'>VHDL</font>语言实现电梯控制系统
不带使能端的3线8线译码器VHDL程序
1。用CASE语句 LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; ENTITY LS138 IS PORT ( S:in STD_LOGIC_vector(2 downto 0); Y: out STD_LOGIC_vector(7 downto 0)); end LS138; ARCHITECTURE mux_behave OF LS138 IS begin PROCESS(S) IS BEGIN CASE S IS when 000 = Y =(0= '0',OTHERS= '1&
[单片机]
Nios SoC系统中的BCH编解码IP核的设计
   0 引 言   循环码是最重要的一类线性分组纠错码,而BCH码又是目前发现的性能很好且应用广泛的循环码,它具有严格的代数理论,对它的理论研究也非常透彻。BCH码的实现途径有软件和硬件两种。软件实现方法灵活性强且较易实现,但硬件实现方法的工作速度快,在高数据速率和长帧应用场合时具有优势。FPGA(现场可编程门阵列)为DSP算法的硬件实现提供了很好的平台,但如果单独使用一片FPGA实现BCH编解码,对成本、功耗和交互速度都不利。最新的SoC(片上系统)设计方法可以很好地解决这个问题。   本文基于Altera公司的Nios软核+可编程资源的SoC平台设计了BCH编解码IP核,这样,在Nios系统中可以将BCH码作为一种片内资源
[家用电子]
基于DSP的G.729语音编解码算法的优化和实现
随着多媒体信息技术和网络技术的飞速发展,信息量快速增长,使信道资源显得越来越宝贵。为了在有限的信道资源下传输尽可能多的信息,语音压缩成为必要手段。ITU组织(国际电信联盟)在l996年制定了G.729协议,即共轭结构码激励线性预测编码算法(CS-ACELP)。其编码速率为8kb/s,可以满足网络通信的要求,具有良好的语音质量,对不同的应用环境有较强的适应性,是一种性能较好的语音压缩国际标准,被广泛应用在个人移动通信、卫星通信等各个领域。    1 G.729编解码算法的原理   语音信号的波形编码力图使重建语音波形保持原始语音信号的波形形状。这类编码器通常将语音信号作为一般的波形信号来处理,它具有适应能力强、语音质量好等
[嵌入式]
恩智浦正式加入中国数字音频广播技术与产业推进工作组
中国上海,2017年6月20日讯——恩智浦半导体(纳斯达克代码:NXPI,以下简称“恩智浦”)今日宣布正式加入中国数字音频广播技术与产业推进工作组(以下简称“CDR工作组”或“工作组”),成为工作组首批外资企业成员。恩智浦将向工作组提供数字音频广播领域相关技术研发、标准制定、应用推广与国际合作等全方位支持。国家新闻出版广电总局广播科学研究院院长邹峰、恩智浦大中华区汽车事业部技术总监吕浩共同出席了在北京举行的签约仪式。 上图: 恩智浦大中华区汽车事业部技术总监吕浩(左一)出席CDR工作组新成员签约仪式 CDR工作组由国家新闻出版广电总局广播科学研究院发起,于2016年3月成立,宗旨为充分整合数字广播产业链内各方面资源,协
[嵌入式]
恩智浦正式加入中国<font color='red'>数字音频</font>广播技术与产业推进工作组
基于VHDL的微型打印机控制器设计
1 引言 VHDL是一种面向设计、多层次的数字系统设计的标准化硬件描述语言,VHDL不需依赖冯·诺伊曼结构,可实现时序和真正并行设计,从而开辟一种全新的数字系统的设计途径。使用VHDL语言更便于建立层次结构和元件结构设计。VHDL编写的电路模块代码可重复利用,故简化设计,缩短设计时间,提高工作效率。 2 TP UP-SF微型打印机简介 TP UP-SF系列的高速微型打印机,采用针式撞击点阵打印,是一类体积小、打印速度快的打印输出设备。该系列打印机配有串行和并行接口,实现汉字的高速打印,可装外径70 mm大打印纸卷。此系列打印机比较小巧,携带方便,适用于小型收款机、小型计费器、信用卡终端等各种应用场合。 TP UP-S
[工业控制]
基于<font color='red'>VHDL</font>的微型打印机控制器设计
基于51单片机的无线信号编解码技术研究
随着微电子、计算机信息技术的迅速发展,由单片机和无线传输模块组成的无线数据通信系统在石油、电力、水文、冶金、安防等行业的无线控制、数据采集、故障报警等诸多领域中得到越来越广泛的应用。而数据的编解码对于无线传输可靠性的影响举足轻重。目前编解码方式主要有硬件编解码和软件编解码两种。本文在对已有硬件及软件编解码技术研究的基础上,设计并通过STC89C516RD+单片机实现了一种以软件方式对传输数据编解码的方法。 1 现有的编解码技术 1.1 硬件编解码技术  目前有多种用于编码和解码的专用芯片,PT2262/PT2272是比较常用的一种。在通常的使用中,一般采用8位地址码和4位数据码,这时编码芯片PT2262和解码芯片PT2272的第
[工业控制]
基于51单片机的无线信号<font color='red'>编解码</font>技术研究
基于VHDL的多功能可变模计数器设计方案
   0 引 言   随着电子技术、计算机技术和EDA技术的不断发展,利用FPGA/CPLD进行数字系统的开发已被广泛应用于通信、航天、 医疗电子 、 工业控制 等领域。与传统电路设计方法相比,FPGA/CPLD具有功能强大,开发周期短,投资少,便于追踪市场变化及时修改产品设计,以及开发工具智能化等特点。近年来,FPGA/CPLD发展迅速,随着集成电路制造工艺的不断进步,高性价比的FPGA/CPLD器件推陈出新,使FPGA/CPLD成为当今硬件设计的重要途径。在FPGA/CPLD的应用设计开发中,VHDL语言作为一种主流的硬件描述语言,具有很强的电路描述和建模能力,能从多个层次对数字系统进行建模和描述,从而大大简化了硬件设计任务
[嵌入式]
基于<font color='red'>VHDL</font>的多功能可变模计数器设计方案
小广播
最新嵌入式文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved