首页 > 范文大全 > 正文

一种基于嵌入式系统的语音通信研究

开篇:润墨网以专业的文秘视角,为您筛选了一篇一种基于嵌入式系统的语音通信研究范文,如需获取更多写作素材,在线客服老师一对一协助。欢迎您的阅读与分享!

【摘 要】利用Linux操作系统的总线的通用性,根据新一代嵌入式通信设备的需求设计了数字PCM编译码接口电路和驱动,实现模拟话音与PCM编码转换,并增加了测试环节,验证了信源转换的可行性。

【关键词】TP3094;FPGA;驱动;测试

0 引言

在目前的通信网中,需要将模拟信号转换为高速率的数字信号,这样可以充分扩大信息资源的有效利用以及延伸信息传递距离。采用数字信号码变换,便于通信网中数据的交换、转接、存储和处理。同时,Linux操作系统是一个开源、稳定的系统,有着良好的开放性和总线极佳的通用性,本文利用该操作系统的优点,根据PCM编解码芯片的时序以及设备话音组包、拆包读写的要求,设计了数字PCM编译码接口电路和驱动,通过Core3517LI嵌入式核心板的总线,经FPGA来控制TP3094芯片,完成嵌入式通信设备的4路语音通信功能。

本文主要对PCM和模拟信号之间的转换进行了研究,分别介绍了软、硬件设计和测试流程,结果表明该语音通信功能的设计是可行的。

1 硬件设计

PCM是脉冲编码调制,它是将声音从模拟转换成数字信号的一种技术,更高性能的点对点通信、保密性强,传输质量高、时延小,充分保证了通信的可靠性[1]。

本设计选用Core3517LI核心板和芯片TP3094。Core3517LI是一款以Cortex-A8芯片作为主处理器的嵌入式核心板,其内部集成了强大的多媒体处理单元,支持26位地址和16位数据总线扩展。National Semiconductor公司的TP3094[2],是一种专用集成电路来完成PCM编解码的芯片。该芯片单-5V供电,集成了四路PCM编解码电路,压扩方式为A/μ律可选,片内自带电压基准、低通接收滤波器和带通发送滤波器,通过外接电阻可以调节输入信号的增益。

1.1 电路设计

TP3094外接帧信号和2.048MHz的时钟即可工作,它的工作方式有8bit和 32bit两种,而要使用4路,就要用32bit的方式工作,即将第一个路FSX0(发时隙)、FSR0(收时隙)信号脚外接到所提供的短帧同步信号上,FSX1-3、FSR1-3信号脚接到模拟地上,就可自动完成对其后连续的另三路PCM语音编码同步。

/TSX为TP3094提供的输入输出四路PCM数字编码的时隙起始、结束信号,在帧同步信号下降沿跳变为低,最后一个bit结束后跳变为高。DX为TP3094将模拟信号编码后输出的四路PCM信号,第一路先输出,高位在前。DR为输入给TP3094的PCM信号,时序同DX,TP3094收到PCM信号进行解码输出模拟信号。时序和电路设计分别见图1、图2。

VXI0-3信号脚是每路模拟语音输入端,它连接电话的送话器,电阻R68-71是用来调节每路语音的输入增益。VRO0-3信号脚是每路模拟语音输入端,是连接到电话的受话器的。

图1 PCM 32bit工作模式下的时序图

图2 TP3094电路设计图

1.2 FPGA设计

图3 存储后产生收中断

只以一路PCM语音通道的设计示意,pcmshift将输入的PCM数字信号进行串并转换,如图3,移位产生的地址进行存储,寄存器存满后产生中断通知主处理单元取数。

主处理单元写入PCM数据后通知FPGA取数,FPGA通过计数、移位产生的地址从lpm_ram_dp寄存器将数据读出,如图4、5,经过Lpm_shiftreg2进行并串转换由三态门控制输出至PCM编解码器,数据取出完毕后产生中断通知主处理单元继续写入PCM数据。

在实际通信系统中需要注意的是,读写中断不能在寄存器存满或取完数据之前产生,最好使用下降沿判断中断,保障数据连续不掉包。

2 软件设计

在安装有交叉编译器的主机上运行Linux 操作系统,进行交叉开发。实现在Core3517LI核心板上对PCM编码芯片的驱动和数字语音收发功能的驱动程序设计步骤如下:

在使用Linux 2.6的内核中,先注册驱动misc_register(),然后初始化:

pcm_init( ) {

gpio_request( );//通过FPGA的总线控制,要配置I/O脚

pcm = kmalloc( );//申请空间

sema_init( ); //信号量初始化

}

打开驱动,要申请和设置读写中断:

pcm_open( ) {

set_irq_type( );

request_irq( );

}

收/发操作和中断处理:

pcm_read( ); //中断与用户空间收发数据的处理

pcm_write();

pcm_rdirq_handler( );//缓存收到规定字节的数据后,唤醒一次收的信号量

pcm_wrirq_handler( );

当不使用该驱动时,要释放申请了的对应资源。

3 收/发的测试

编写测试程序,通过播放静音、忙音,来测试PCM芯片的数据接口、供电回路、FPGA的数据总线等方面是否存在问题,以确定受话质量,其测试流程如图6。

图6 PCM接收检测流程图

通过录音后的播放来测试送话质量,流程如图7。

图7 PCM发送检测流程图

4 结语

综上所述,本文对PCM和模拟信号之间的转换进行了研究,详细阐述了软、硬件设计的全过程,通过实际通信组网测试显示延时在ms级以内,语音数据连续不掉包,人耳的听觉根本察觉不出。同时本设计中采用的TCP3094芯片还可以进行级联工作,可扩展为八路PCM数字信号转换电路。

【参考文献】

[1]钱亚生,诸庆麟,译.语音与图象的波形编码原理及应用[M].北京:人民邮电出版社,1990.

[2]TP3094 Quad PCM Codec/Filter,National Semiconductor[Z].February. 2000.

[3]时玉芳.语音数字化降噪技术在港口通信工程的应用[J].硅谷,2010

[4]Core3517用户手册 UM2013022001 V1.00 Date[Z]. 2013-02-20.

[5]Quartus II 简介[Z].Altera Corporation, 2003.