利用FPGA的数字语音系统的设计与实现

2010-09-07 07:31吴昊黄华灿
关键词:控制程序接收端解码

吴昊,黄华灿

(华侨大学信息科学与工程学院,福建泉州362021)

利用FPGA的数字语音系统的设计与实现

吴昊,黄华灿

(华侨大学信息科学与工程学院,福建泉州362021)

采用基于AMBE算法的专用语音压缩编/解码芯片,设计并实现一种基于FPGA的语音压缩编/解码系统.整个控制程序包括复位及时钟分频程序、发送端控制程序和接收端控制程序3个功能模块,控制程序的接收端和发送端都使用先进先出(FIFO)电路存储器.仿真结果表明,控制程序能够完成相应的功能,符合设计的目的和要求.

语音压缩;芯片;控制程序;现场可编程门阵列;先进先出存储电路

通过FPGA对语音专用压缩芯片进行控制,可使得设计的语音压缩系统[1]具有码率较低、编码速率可选择的特点.此外,可以通过修改FPGA中控制程序,进一步调整系统的码率等.在实际的语音通信中,为了语音质量满足实际的通话要求,本文设计与实现一种基于FPGA的数字语音系统.

1 系统组成及原理

系统选用美国Xilinx公司的FPGA产品[2]中Spartan-Ⅱ系列的XC2S100.其门数为10万门,有两组工作电压:内核工作电压为2.5 V,外部工作电压为3.3 V.整个系统包括M icro Phone,编译码器(CODEC,A/D和D/A转换器)、编/解码专用芯片、控制芯片FPGA[2]、集成运放、Earphone,以及晶振、电源等元器件.系统为全双工工作方式[3],其编解码过程是并行完成的.整个系统的原理如图1所示.

图1 系统组成框图Fig.1 Block diagram system

话音经M icro Phone后得到模拟信号,通过CODEC将模拟信号进行A/D变换得到脉冲编码调制(PCM)信号,并送入语音芯片进行编码.输出的语音编码信号是具有一定帧格式的连续帧的数字信号.然后,控制芯片FPGA接收语音编码信号进行控制处理,即去掉该帧纯语音数据前的系统帧头并加上信道帧头.最后,将处理后的语音编码信号送到信道加以传输.

控制芯片FPGA接收信道传来的编码信号,将其去掉信道帧头并在纯语音数据前加上系统帧头,然后,发送到语音芯片进行解码.解码后的PCM再由CODEC进行D/A变换得到语音模拟信号,并经过音频功放送到耳机.通过在FPGA中作相应的控制及修改PFGA中的控制程序,可以调整系统的码率,以降低传输码率.这种效果是直接传输难以达到的.

图2 时钟信号Fig.2 Clock signal

2 控制程序设计及仿真[4]

整个控制程序包括复位及时钟分频程序、发送端控制程序和接收端控制程序3个功能模块.控制程序的接收端和发送端都使用了先进先出(First In First Out,FIFO)电路存储器.来自主芯片的已编码帧是高速率(512 kbit·s-1)的,但它不是连续的数据流,而是周期性(每次20 m s)间断出现的,没有数据帧时全为零.为此,需要将到来的每帧数据(去帧头后)暂存于FIFO中,并且用4 k Hz的低速率时钟,将FIFO中的存储数据连续地发送出去.

由于512 kbit·s-1的高速已编码帧在去除帧头后,其1 s内速率平均值正好是4 kbit·s-1,因此用4 k Hz时钟发送数据,可实现FIFO输入、输出的动态平衡.即FIFO既不会溢出也不会读空.通过以上过程,可以将高速但不连续的帧数据变为低速但连续的数据流发送到信道,实现低码率的传输.

2.1 复位及时钟分频程序

系统上电后,按照顺序对CODEC和主芯片进行复位.先由FPGA产生一个负脉冲,送至CODEC,此后,CODEC的复位脚一直保持高电平.以同样方式对主芯片进行复位操作,主芯片复位完成后即向CODEC的SD I口发送控制字.设定采样频率及帧同步信号频率,使其按照主芯片的要求工作.

主芯片和CODEC的主时钟都是16.384 M Hz.系统工作时,还需要一些其他的时钟信号,而这些时钟信号都是在FPGA中采用计数器对主时钟分频后得到.各时钟信号如图2所示.

复位及时钟分频程序仿真波形,如图3所示.其中,MCL K1684是16.384 M Hz的主时钟,TX_ CL K和RX_CL K分别是512 k Hz的发送时钟和接收时钟,4 k Hz是在传输信道上传输信号的时钟.

图3 复位及时钟分频程序仿真波形Fig.3 Simulation wavefo rm of the reposition and clock division

2.2 发送端控制程序[5]

在发送端,每20 m s都有一帧来自主芯片的已编码的数据送到FPGA.在FPGA中,使用移位寄存器检测帧头中的Header(同步码,长度为16 bit,十六进制为13EC).若检测到该同步码,则输出一个有效高电平,使计数器A开始对TX_CL K计数.

由于每来一个TX_CL K,时钟升沿对应1 bit数据,故计数器的长度应为12个字,192位.计数完毕则表示帧头已经完毕,进入语音数据区.此时,将FIFO的写使能变为有效,开始把语音数据写入FIFO中.将计数器A清零,同时启动计数器B,对TX_CL K进行新的计数.以上是跳过帧头而只写入语音数据,即去除帧头.

由于编码速率选择的是4 kbit·s-1,此时每帧中的语音数据的长度为5个字,80位.因此,计数器B计数值到80时,表示语音数据已经全部写入FIFO中.此时,将计数器B清零,完成一帧的处理;隔20 m s后下一帧到来,再重复上述过程.

当FIFO半满时,WR_COUN T变为有效高电平.它将FIFO的读使能变为有效高电平,此时,开始将FIFO存储的数据用4 k Hz的时钟读出并发送.

发送端控制程序流程图及仿真波形,如图4,5所示.图5中:CO_FRAM E是已编码帧的波形,作为仿真时要输入的激励信号;HEADERWREN为存储已编码帧,作为本地帧头到FIFO的写使能信号; DA TARWR_EN为存储语音数据FIFO的写使能信号;RD_EN1是从该FIFO读出数据的读使能信号; LOWDA TAOU T则是最后发送的4 kbit·s-1的低码率数据.

仿真时,设置激励信号帧数据CO_FRAM ED的第13字至第17字(即5个字,80 bit的语音数据)十六进制表示为:EE00,FF00,FF00,FF00,F0DD,如图3所示.从图5可以看出,发送的数据输出LOWDA TAOU T与这5个字的语音数据完全相同,只是速率降低为4 kbit·s-1,程序无误.

图4 发送端控制程序流程图Fig.4 Flow chart of the control p rogramme in sender

图5 发送端控制程序仿真波形Fig.5 Simulation wavefo rm of the control p rogramme in sender

2.3 接收端控制程序[5]

FPGA接受来自信道的4 kbit·s-1的连续数据流,并将该语音数据流存储到FIFO中.为了重新组帧,在接收程序中,还要产生一个本地帧头,它可以另行产生.因为主芯片是全双工的,可以同时编码和解码,也可以把已编码帧中的帧头暂存后作为本地帧,程序中实际使用的就是此方法.

作相应控制,每20 m s(通过分频得到一个50 Hz的信号实现)一次,先用512 k Hz的时钟RX_CL K读出暂存的本地帧头,读完后,立刻(仍用RX_CL K)从FIFO中读出80 bit语音数据(同发送程序中一样,也是通过计数实现).这样就重新组合成一个格式与已编码帧相同,完整的待解码数据帧,将其送至主芯片进行解码.

需要注意的是,RX_STRB要与输入主芯片的待解码帧同步,即满足图5中所示的时序关系才能够正确解码.这是由于主芯片采用的是主动模式,RX_STRB是直接连接到tx_strb的,二者为同一个信号.为此,需要作相应处理,使得在RX_STRB的升沿时才开始组合一帧数据,以完成同步.以上过程每20 m s重复一次,即恢复各待解码帧,完成解码.

接收端控制程序流程图及仿真波形,如图6,7所示.图7中:LOWDA TA IN是接收到的4 kbit· s-1低码率语音数据流;RD_EN2是存储语音数据的FIFO的写使能信号,该信号为有效高电平时,从FIFO中读出语音数据(80 bit);DE_FRAM E为重组后得到的待解码帧.由于主芯片采用的是主动模式, RX_STRB直接连接到TX_STRB,二者是同一信号,该信号与重组得到的待解码帧DE_FRAM E同步时,才能正确解码(为了方便观察,一些显示状态的中间信号未在图中列出.).

比较发现,图7中的待解码帧DE_FRAM E与

图6 接收程序流程图Fig.6 Flow chart of the receiving p rogramme

图5 中的已编码帧CO_FRAM E波形完全相同.这表明,发送端产生的编码帧经过控制程序的去帧头、暂存、传输,以及在收端加帧头和重组后,能够无误地恢复出来;收端的主芯片解码,完成了语音压缩(低码率传输语音信息).

图7 接收端控制程序仿真波形Fig.7 Simulation waveform of the control p rogramme in receiver

3 结束语

整个系统为全双工,由独立硬件电路实现,在实际的语音通信中,语音质量可满足实际的通话要求.通过复位及时钟分频程序、发送程序和接收程序3个功能模块的仿真结果可以看出,整个控制程序能够完成相应的功能,符合设计的目的和要求.系统兼备处理速度快与设计实现灵活的优点,而且成本低,使用灵活,具有较广的应用范围.

[1] RICHARD V C,CANDANCE A K.Speech and language p rocessing for next-millennium communication services [J].Proc of IEEE,2000,88(8):1414-1337.

[2] 褚振勇,翁木云.FPGA设计与应用[M].西安:西安电子科技大学出版社,2002.

[3] 王秉钧,孙学军.现代通信系统原理[M].北京:国防工业出版社,2001.

[4] 林顺达,苏武浔.Möbius变换在模拟通信中的应用与仿真[J].华侨大学学报:自然科学版,2006,27(1):108-111.

[5] 侯伯亨,顾新.V HDL硬件描述语言与数字逻辑电路设计[M].西安:西安电子技术大学出版社,1999.

Design and Im plemen tation of a Speech Com pression System Based on PFGA

WU Hao,HUANG Hua-can
(College of Info rmation Science and Engineering,Huaqiao University,Quanzhou 362021,China)

Adop ting a special speech comp ression encoder/decoder chip based on AMBE algo rithm,this paper designs and imp lements a FPGA-based speech comp ression encoding/decoding system.The w hole control p rogram include three function modules,those are reset and clock frequency,the transmitter and receiver control p rogram.The receiver and transmitter of control p rocedures use the FIFO memo ry circuit.The simulation results show that,the control p rogram can comp lete the co rresponding function,and meet the purposes and requirements of design.

speech comp ression;chip;control p rogram;field-p rogrammable gate array;first in first outmemory circuit

TN 912.3

A

(责任编辑:陈志贤 英文审校:吴逢铁)

1000-5013(2010)06-0641-04

2009-04-17

黄华灿(1948-),男,教授,主要从事视频处理与传输及专用集成电路设计的研究.E-mail:hchuangqz@yahoo.com.cn.

福建省科技计划项目(2006T0006);福建省泉州市科技计划项目(2006G3)

猜你喜欢
控制程序接收端解码
《解码万吨站》
基于扰动观察法的光通信接收端优化策略
顶管接收端脱壳及混凝土浇筑关键技术
一种设置在密闭结构中的无线电能传输系统
基于多接收线圈的无线电能传输系统优化研究
基于PLC的变电站备用电源自动投入装置控制程序的研究
解码eUCP2.0
NAD C368解码/放大器一体机
Quad(国都)Vena解码/放大器一体机
基于PLC数值处理模块的PID控制程序研究