传统的语音通讯是以公共沟通电话网(PSTN)为语音体系进行话音沟通,该体系以电路沟通为通讯根底,信道运用率低、通讯资费较高。而跟着通讯技能和网络的快速开展,越来越多的用户选用IP网络进行语音通讯与视频通话,该通讯体系选用分组沟通为根底,具有灵敏的事务扩展才能和低价的话费价格。从2013年开端到现在,工信部现已发放了两批虚拟运营商车牌,此举必然会进一步推进国内市场的网络语音开展。
本文选用嵌入式处理器、以太网操控芯片、音频处理芯片规划出一款语音通讯终端,该终端经过音频收集、播映语音、处理器进行数据处理,经过网卡进行数据传送与接纳,然后完结终端的语音通讯功用。
1 硬件电路规划
网络语音终端体系硬件由微处理器、以太网通讯模块、音频处理模块、电源等模块组成。该终端体系各个模块之间进行数据交互的示意图如图1所示。
网络语音终端发动音频模块后,从麦克风拾取语音进行A/D转化收集,把语音信号转化为数字信号,经I2S总线送给处理器处理,并经过以太网通讯模块把数据发送到IP网络上;从IP网络上把数据取出,经处理器处理后,由I2S总线送给音频模块进行D/A转化,然后把语音信号送给扬声器播映语音。
体系选用S3C2440微处理器完结数据处理,运用DM9000CEP以太网操控芯片来完结与IP网交互,而且选用UDA1341TS音频芯片进行语音收集及播映。其他接口电路比较常见,这儿不再赘述。
1.1 以太网通讯模块
主控芯片选用三星公司的S3C2440通用32位微处理器,该处理器选用ARM920内核,具有低功耗、处理核算才能强等特色。以太网操控芯片选用DAVICOM(联杰)公司的DM9000CEP芯片。该芯片支撑16位数据传输,集成10/100M自适应收发器,能够主动和谐功用将主动完结装备以最大极限地合适其线路带宽,且支撑IEEE802.3x全双工流量操控。
为完结DM9000CEP与S3C2440的衔接,对两者间的数据、地址、操控三大总线进行衔接和转化。因为S3C2440是32位微处理器,可寻址1G的地址空间,但其只要27根地址线,理论上只能寻址2的27次方(即128M)的地址规模。所以引出了8根BANK线(对应nGCS0~nGCS7),用这8根线来选通和封闭不同的存储器,完结1G地址空间的寻址。本文DM9000与S3C2440之间数据沟通,是经过NGCS4线挑选基址为0x2000 0000来完结的。图2给出了S3C2440与DM9000CEP的衔接办法。
1.2 音频处理模块
音频处理芯片选用Philips公司的UDA1341TS音频芯片,该芯片内部集成了立体声的ADC、DAC,能够完结模仿信号和数字信号的彼此转化,并可用可编程增益操控(PGA)和主动增益操控(AGC)来对模仿信号进行操控,该芯片还供给数字信号处理功用。微处理器经过L3总线接口对音频芯片进行操控。其与处理器衔接图如图3所示。
UDA1341TS音频芯片供给一组I2S总线接口和一组L3总线接口。其间,I2S总线接口包含音频体系时钟线(SYSCLK)、位时钟输入信号线(BCK)、字挑选输入线(WS)、数据输出信号线(DATAO)、数据输入信号线(DATAI)。而L3总线接口由时钟线、数据线以及形式挑选线组成。S3C 2440处理器经过这两组总线接口完结与UDA1341TS芯片之间的音频数据交互及操控。
2 软件完结
网络语音终端体系软件部分首要由体系初始化、语音收集播映模块、网络通讯模块等部分构成。
2.1 体系初始化
运用UDA1341TS芯片与I)M9000CEP芯片之前,需求对芯片内部的寄存器进行初始化。
DM9000CEP芯片的初始化设置工作办法:经过CMD与ADDR2引脚相连,高电平时为数据端口,低电平时为地址端口。CS与NGCS4引脚相连,挑选DM9000CEP的端口基址为0x2000 0000,偏移300个单位。发送给DM9000的地址信息固定放在0x2000 0300上,把寄存在该地址的数据放在0x2000 0304,选用此办法可对DM9000CEP内部的寄存器进行操作,如发动、复位、TX操控、RX操控以及MAC地址初始化等。其代码如下:
UDA1341TS芯片的初始化工作需求与L3的总线衔接,该L3总线是MCU经过GPB2、GPB3、GPB4三个引脚来模仿操控,用于处理器装备UDA1341内部的寄存器。UDA1341有两种形式:地址形式和数据传输形式。地址形式标明传输的是地址信息,它的高6位永远是000101,低两位用来标明形式是状况形式、数据0形式仍是数据1形式,其间状况形式首要用于装备UDA1341的各类初始状况:选用频率、ADC、DAC等;数据形式首要用于改进音频输入、输出的作用、音量巨细调理等。
此外,要初始化S3C2440芯片内部的特别寄存器,对I2S、DMA、中止相关的各个寄存器进行初始化设置,以及各个引脚功用的设置,如把GPF7引脚设置为EINT7外部中止功用引脚,当以太网网卡接纳到数据,此引脚电平就会因中止跳变以使程序进入网卡中止接纳处理函数。
2.2 语音收集播映模块
完结实时语音通话,UDA1341TS芯片在录音一起也有必要完结放音功用。数据传输运用两个DMA通道。其录音进程为:音频芯片从麦克风中拾取声响信号进行采样、量化、编码,把收集到的数据经过I2S总线传给DMA1通道,并经过内部总线传到内存缓冲区中,之后送给处理器处理。放音:内存从处理器中获取数据,经过内部总线传给DMA2通道,之后经过I2S总线把数据传给音频芯片送给扬声器播音。经过选用DMA通道数据传输办法,处理器不需求花很多时刻参加数据的传输,有足够的时刻来处理其他事情。
本规划需求完结全双工语音通讯功用,本终端选用双缓存的规划办法,缓存处理机制以录音为例,体系在运用缓存2来寄存音频设备量化好的数据时,CPU则处理缓存1的数据,当设备填充完缓存2,则转向缓存1进行填充,此刻CPU处理缓存2的数据,如此不断循环替换,其处理进程如图4所示。
其录音与播映进程都选用双缓存规划方案,以录音为例,程序流程图如图5所示。
2.3 网络通讯模块
处理器首要将从麦克风采样的数据信号封装陈规则格局(其封装进程如图6所示,封装到14字节以太网层),然后把封装好的数据交给DM 9000CEP驱动部分的发送函数dm_tran_packet(unsigned char*datas,intlength),经过设置TCR的发送恳求位将数据发送出去,数据发送进程便是对数据打包的进程。而数据的接纳是经过DM9000CEP的网络中止函数DM9000ISR()进行的,网卡每接到一个数据包将会发生一个中止,进入中止处理函数,按规则的格局从数据包中取出其语音数据,之后数据经处理器处理送到扬声器上播映外音。网络各层数据封装如图6所示。
语音数据进行封装之后,不管是发送数据帧仍是接纳数据帧,都需求底层网卡驱动函数供给服务,本文以发送数据帧为例,简述底层网卡驱动原理,在发送数据和接纳数据进程中,特别需求留意的是封闭网卡中止,以防打断数据处理进程。DM9000CEP内部有3 KB的SRAM用于发送数据缓存。在发送之前,数据是暂存在这个SRAM中的。当需求接连发送时,需求用DM9000CEP寄存器MWCMD赋予数据端口,这样就指定了SRAM中的某个地址,而且在传输完一个数据后,指针会指向SRAM中的下一个地址,然后抵达接连拜访数据的意图。假如在此进程中抵达发送数据缓冲区结尾,指针将折回缓冲区的最初。发送数据帧的流程图如图7所示。
3 终端语音测验成果
运用ADS软件将程序编译成可执行文件,下载到语音终端A和B上。在两个终端别离接上麦克风和耳麦进行话音通讯,经过试验验证了体系能够进行明晰的语音对话。别的,可将终端A的麦克风接口与函数信号发生器相接,终端B的扬声器接口与示波器相连。函数信号发生器将正弦信号送给终端A,其频率为1 kHz,起伏为100mVpp。在示波器上能够看到经扩大的正弦信号,其输出信号波形如图8所示。测验成果标明,该网络语音终端体系能够应用于长途网络语音通讯。
结语
本文作者运用嵌入式技能开发的网络语音终端具有可靠性高、操控界面强壮以及可扩展性好的特色,使该终端可不经过核算机、直接连上网络进行数据传输,能充分运用现有网络通道完结方便的语音通话。