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