l 引 言
VoIP技术是一种基于IP数据网的语音传输技术,它将标准的语音信号转换成压缩的数据报后在数据网络而非传统的电话网上进行传输,是一种实时语音通信技术。在利用VoIP技术进行通信时,一般先使用语音压缩算法对语音信号进行压缩编码处理,再按IP标准进行打包,经Internet发送到接收地;接收端把这些语音数据报串起来,经解码解压缩处理后恢复成原来的语音信号,从而达到由IP网络传送语音的目的。其关键技术包括:信令、媒体编码、媒体实时传输、业务质量保障和网络传输等。
当然,VoIP不是非电话网上传送语音业务的惟一方式,实际上,存在另外两种快速、高效、价格合理的能达到长途话音传输的方法,即帧中继语音网络技术(Voice over Frame Relay,VoFR)和ATM语音网络技术(Voice over Asynchronous Transfer Mode,VoATM基于异步传输模式的语音网络技术),但目前这两种技术的发展速度较缓,技术不够成熟。
2 硬件系统设计
一个完整的VoIP系统应包含IP电话终端、网关、网守、网管系统、计费系统等几部分。本文重点研究可直接挂接在计算机网络上的IP电话终端。
2.1 硬件系统方案
通过对国内外VoIP技术的研究,要面向社会推广价格低廉的IP电话业务,普通用户的电话终端成本,运营商的设备、管理成本都是必须考虑的因素。因此,设计出了一个VoIP系统方案,如图1所示。
该设计方案具有一个功能可扩展的基于软核CPU技术的IP电话终端;具备基于会话初始化协议的SIP服务器,该协议是专为网络会话而生的;并利用语音接口卡实现SIP与PSTN的互联。具有技术先进、针对性强和通用性好等特点,是可行有效的。
2.2 IP电话终端硬件设计
根据1P电话终端的硬件需求,为该终端配置了音频接入口、音频编解码芯片WM8731;网络接口芯片DM9000A;存储器IC42S16400;主控制器EP2C35;直流电源9 V,如图2所示。
IP电话终端采用直流9 V供电,通过稳压芯片(输出+5 V)为电路板供电.终端的A/D、D/A转换器选用了Wolfson公司的24 b音频编解码芯片WM8731,以太网传输部分选用了Davicom公司的网络接口芯片DM9000A,并为输入拨号配备了键盘(号码拨盘),为实现语音数据存储,还在电路上给终端配置了存储器(SDRAM,SRAM,FLASH),用户可以根据自己的情况选择包含所有或其中任一种存储器的电话机。本设计选用了其中的SDRAM作语音数据存储器。
2.2.1 拨号电路
为实现IP电话与普通电话的通用性,该终端加入键盘模块,按键开关KEY0~KEY9,KEY_X,KEY_Y,KEY_ON,KEY_OFF(其中,除KEY_ON和KEY_OFF是锁闭式按键外,其余均为非锁闭式按键)采用行列扫描式接法,加入了74HC245总线收发器作为缓冲器,电路如图3所示(由于按键过多,图中仅给出KEY0~KEY3电路)。
每个这种开关用来控制史密特触发电路,史密特触发装置的14个出口直接与CycloneⅡFPGA相连。每个开关当不按下时提供一个高电平(3.3 V)。在按下时提供一个低电平(0 V)。非锁闭式按键开关是反弹的,它们相当于电路的时钟或复位输入;锁闭式按键是不可反弹的,按下时相当于一个逻辑低电平(0 V),弹出时提供一个逻辑高电平(3.3 V)。2.2.2 音频输入及编解码
音频输入及编解码电路是通过Wolfson公司的WM8731编解码器(编码器和解码器)实现的。它可以提供高质量的24 b/s音频,由一系列的I2C总线接口控制,这些接口连接到Cyclone II FPGA的引脚上。硬件电路如图4所示。
3 软核CPU的构建
Altera推出的Nios/NiosⅡ系列嵌入式处理器扩展了目前世界上最流行的嵌入式软核处理器的性能,是Altera公司为其FPGA产品配套开发的软核CPU。在逻辑功能上,它们是32 b的精简指令集CPU,用户可以获得超过200 DMIPS(Dhrystone Millions of Instructions Per Sec—ond,百万条指令/秒)的性能,并从三种处理器(e型、s型、f型)以及超过60个的IP核中选择所需要的。NiosⅡ系统为用户提供了最基本的多功能性,设计师可以据此创建一个最适合他们需求的嵌入式系统。Nios及NiosⅡ处理器通过FPGA编程的方式实现用户所需,这是与传统的CPU的一个根本的差别。
SOPC系统的平台包括:Altera的Nios处理器、Aval—on总线,片内外存储器以及外设模块等。利用SOPCBuilder,用户可以很方便地将处理器、存储器和其他外设模块连接起来,形成一个完整的系统。其中,SOPC Build—er中已包含了Nios处理器和其他一些常用的外设IP模块。用户也可以设计自己的外设IP。
可见,利用SOPC的软核CPU技术在以下方面具有很大的技术优势:提高系统性能;更低的系统成本;应对产品的生命周期;功能强大、易用的开发工具等。
SOPC Builder是QuartusⅡ附带的一个用来开发基于处理器、外围以及存储器的片上可编程系统的开发工具。SOPC Builder可以根据用户的编辑实时地生成.ptf文件;系统PTF文件类似于一个数据库文件,它存储了系统模块列表,模块信息等。
在SOPC Builder环境里,用户可以直接调用软件提供的用于构建CPU的基本模块,也可以自定义模块。本课题需要的模块中,网络接口与语音处理接口需要自定义,在构建前必须有二者的源文件,设计采用了Verilog HDL书写源程序,事先写好了DM9000A.v和Open_I2C.v两个底层程序。
前述SDRAM接口、键盘输入接口、网络接口芯片接口、音频处理接口和I2C接口均连接到Avalon总线,相当于总线的外挂设备。构建完成,选择自动生成地址,其结果如图5所示。
构建完成后生成(Generate).bsf格式文件system.bsf,转到QuartusⅡ环境下可以直接调用,相当于一个自定义的控制器芯片。
4 接口电路的软件设计
4.1 软件设计
作为IP网络的一个端点,IP电话必须像其他IP终端一样,为其分配IP地址、子网掩码、缺省路由器、DNS(Do—main Name System,域名系统)等。同时它存在自动和人-工两种配置方式,自动方式的IP电话必须使能DHCP(Dynamic Host Configuration Protocol,动态主机分配协议),手动方式由用户对IP电话配置必要的信息。整个IP终端的软件设计包括了主控制器、网络接口、音频输入/输出口和可选择的存储器等部分的设计,其软件系统结构如图6所示。
首先使用SOPC Builder系统工具构建了一个NiosCPU作为整个系统的处理器核,它的Avalon总线对其他接口及控制器进行指令和数据传输,包括:由内部定时器控制的Avalon总线;为Nios CPU配置了JATG通用异步收发器UART;为可选择的片外存储器配备了专用存储器接口;控制语音输入输出的音频数据接口,实现语音编解码的控制和流处理;以太网接口负责CPU与DM9000A的数据收发和协议转换;工作过程如下:
当拨号确认后,主控制器对编解码器发送控制指令,开始语音A/D转换,并进行编码,送到片外存储器内进行缓存;Nios CPU对拨号信息的解析确定。目的地址,通过Avalon总线对以太网接口发送数据传输指令;将符合以太网标准的数据从片外存储器内读出,送入Internet中,返回确认信息。系统处理流程图如图7所示。
4.2 I2C语音模块
由于语音编解码器的处理延时是影响VoIP话音质量的因素之一,为了保证语音编解码的实时性,软件系统在控制WM8731编解码器的编解码同时,加入了I2C语音模块,以实现语音数据的实时处理。它采用自顶向下设计方法利用QuartusⅡ进行设计。
I2C是一种双向制串行总线协议,只有总线处于“非忙”状态时,数据传输才能被初始化。数据传输期间,只要时钟线为高电平,数据线都必须保持稳定,否则数据线上的任何变化都被当作“启动”或“停止”信号。它实现数据的实时传输。
首先在QuartusⅡ环境内创建一个名为I2C的原理图文件,然后建立包括各个模块的顶层图(使用Altera提供的LPM功能模块或者建立自己的功能模块),在顶层图中将各个功能模块进行连接,如图8所示。
调试通过以后必须对其引脚进行手动设置,以便程序的下载,如图9所示。
将Wolfson WM8731音频编解码器被配置为控制模式,可以自动产生AD/DA的连续比特时钟和左/右声道时钟(CLOCK_500.v)。编解码系统采样频率设定为48 kHz。
I2C.v程序流程见图10。
在QuartusⅡ中对本模块进行测试,输入频率50 MHz,波形结果如图11所示。
AUD_ADCDAT与AUD_DACDAT分别为I2C总线的输入输出,由图11中可见其延迟为9.033 ns,实现了语音数据的实时处理。
5 结 语
本文研究并设计了一个基于SIP的IP电话终端,其结构比较完整。同时对系统进行了分块测试和环境测试,实现了语音数据的A/D、D/A实时转换,进行了数据报的收发。同时,本文提出的SIP与PSTN的互联模型,使用户(尤其是长途电话用户)不必担心SIP IP终端与PSTN用户的连接,可以在运营商的支持下自由地同其他用户进行通信,而不用担心产生高昂的通话费用。
Altera公司的软件开发工具QuflrtusⅡ和NiosⅡ因其功能强大、可移植性强、可扩展性高,作为CPU开发,给大系统的升级与扩展提供了简便的操作界面与操作方法。
从长远来看,在VoIP技术发展过程中仅实现语音传输功能是远远不够的。但利用Altera公司的软核CPU技术,若在本文研究的基础上添加短信平台、VGA接口等,则IP电话终端就不仅能实现语音通信,还能实现短消息传输、视频通讯等,或者与一些数据平台服务商联合,为用户提供数字点播等服务,以成为一个功能强大的多媒体通信终端。