前言
实用以太网电话机的设计目的,是希望用拨打传统电话的方法在以太网上进行电话交换,而网络上不增添任何的网关、服务器、多点控制单元等设备。 这样,只要把以太网电话机通过RJ45插口接入以太网,就可以拨号呼叫在同一网络上的另一台以太网电话机并进行双向通话。由于电话语音数据不经过网络专用设备的处理直接发给对方,还可缩短语音的网络传输延迟时间。以太网电话机成本低廉,使用方便,通话免费,适合已建有局域网的中小型企事业单位应用。
目前的许多商品化VoIP系统,其技术建立在ITU(国际电信联盟)的H.323系列标准或IETF(互联网工程任务组)制订的SIP协议基础上。这些VoIP系统功能强大、互联性能好,适用于电信服务或大中型企业使用,但面面俱到的标准体系和昂贵的专用设备价格使这些系统在普通的局域网中难以得到普遍应用。而流行的PC机语音聊天或语音会议技术,则必须要有PC机来起到网络语音终端的作用,显然不如使用电话机方便和经济。
以太网电话机的话音传输和交换技术直接基于TCP/IP协议的底层协议,使得语音信号能够以UDP数据包的形式在网络上畅通传输;而上层应用协
硬件方案
为了降低成本和缩小印刷电路板的尺寸,以太网电话机采用基于SOPC(System on Programmable Chip)技术的硬件方案,把32位嵌入式Nios II处理器和数字语音处理电路及有关的控制逻辑电路用一片FPGA芯片来实现。这样,只要在FPGA片外再配上存储器、网络芯片、语音编解码(CODEC)芯片、语音收发放大器及一些接口电路就可以构成功能齐全的以太网电话机。整机框图见图1,其中粗线框里的电路功能全部由Altera公司的Cyclone系列FPGA 芯片EP1C6Q240来实现。
图1 以太网电话机框图
处理器及存储器
处理器采用Altera公司在SOPC Builder软件中提供的Nios II 软核处理器。
处理器外接8MByte的Flash RAM作为程序存储器,16MByte的SDRAM作为数据存储器。存储器均留有很大的余量,便于以后产品升级。
选定处理器后,在SOPC Builder 软件中,可以添加存储器接口、网络接口、定时器、I/O接口、UART接口等,分配地址,设置中断等级。
网络接口
网络接口芯片采用SMSC公司的LAN91C111芯片,可自适应工作于10M/100M两种速率的以太网。采用该芯片的主要原因是Nios II软件的IDE(集成开发环境)对其提供了较完善的支持,可缩短开发时间。也可选用其它网络接口芯片以进一步降低成本。
语音编解码器和语音放大器
语音编解码器选用NS公司的四路PCM CODEC芯片TP3094,可同时进行四路全双工话音的G.711编解码。四路语音是为以后的特殊应用留余地,如果只需一路话音,可选用该公司的TP3057芯片。语音放大器分为发送放大器和接收放大器。发送语音放大器选用Maxim公司的话筒放大器专用芯片MAX4060,能够适应平衡和差分两种话筒信号输入方式,抗噪能力强,功耗低。接收放大器采用普通的LM386芯片,成本低廉,性能可靠。
值得指出的是,以太网电话机与传统的二线制电话机不同,由于收发信
数字语音处理电路
图1中,FPGA芯片内的资源除构建Nios II软核处理器外,主要用于数字语音处理,这是本设计的重要特色。由硬件电路并行处理收发语音,可以大幅度地分担处理器的工作,又避免了在使用普通的嵌入式处理器时再外加一片FPGA。由于强实时性的语音处理工作由硬件承担,Nios II处理器及相应软件可专注于系统管理和网络协议解析,增进了软件效率。这一点是保证以太网电话机声音质量的关键。
数字语音处理电路主要完成以下工作:
* PCM时序控制
* 信号音编码输出
* 发送语音缓存
* 发送语音静音控制
* 接收语音缓存
*
其它接口电路
除上述电路以外, FPGA芯片内还构建了以下一些必要的接口电路
* 叉簧开关接口
* 拨号键盘接口
* LED接口
* RS232接口
* 配置电路和AS接口
* JTAG接口
软件方案
由于采用了FPGA芯片,大量的信号处理工作已由硬件完成,因此以太网电话机的软件相对较为简单。整机软件由嵌入式操作系统、网络通信协议和电话应用软件三部分组成。
嵌入式操作系统
出于成本考虑,以太网电话机选择使用“开源”嵌入式操作系统μC/OS II。由于语音信号的数字处理过程基本已由FPGA硬件完成,操作系统主要起控制和管理作用,所以使用μC/OS II完全能够胜任。μC/OS II无内嵌网络通信协议,在应用时要另行移植TCP/IP网络通信协议到μC/OS II操作系统中。
LwIP网络通信协议
以太网电话机必须采纳通用的以太网网络通信协议,即TCP/IP协议。这是以太网电话机能通过网络实现电话通信的关键软件。经研究,选择了LwIP来实现TCP/IP通信。LwIP具有很好的兼容性,稍微修改后即可移植到μC/OS II操作系统中并置于μC/OS II的管理和控制之下。
在本项目进行时,LwIP协议栈还没有被加入到Altera公司的官方软件中。但目前Altera公司已经把它集成到其IDE里,最常用和最重要的TCP、IP、UDP、ARP、DHCP等协议均已得到支持,使用更为方便。
电话应用软件
传统的电话机自身无需任何软件即可工作,其信令传输、信号音和话音的接续、交换依赖于程控交换机端的软件来检测和控制。以太网电话机因为不要求网络端提供额外设备,所以这些功能都要由电话机来实现。从一定意义上来讲,是把程控交换机的功能分散到各个电话机来实现。所以,以太网电话机的应用软件十分类似于小程控交换机的软件,主要有检测摘挂机状态、启闭各种信号音、检测拨号信息、向被叫送振铃信息、和被叫交换语音数据等。
以太网电话机的工作过程
本以太网电话机制作并调试完成后,实现了网络电话交换的功能,音质优良,感觉不出噪声和延时,而且没有回声。
电话机上电后,FPGA首先自动从EPCS4芯片处取得配置数据,完成对FPGA芯片的逻辑编程,构建成片内Nios II处理器、硬件外设接口电路和数字语音处理等逻辑电路。接着,以太网电话机启动初始化程序,完成对硬件的初始化检测、硬件外围设备工作状态的设定,自动把放置在Flash RAM中的应用程序加载到SDRAM中。然后,以太网电话机转入电话应用程序,监测本机的摘挂机状态和来自网络的其它电话机呼叫信号。
当检测到本机摘机后,以太网电话机给本机送拨号音,随即监测来自拨号键盘的信息。收到正确的拨号信息后,电话机查找存储的“号码—IP地址”对照表,向被叫用户发送呼叫信息。如果拨号有误,电话机发忙音,提示用户挂机。
被叫收到来自网络上主叫电话机的呼叫后,如果原处于摘机或振铃状态,则向主叫返回“忙”信息,主叫收到后结束呼叫,向本机送忙音。如果被叫处于挂机又不振铃状态,则向主叫返回“闲”信息。主叫收到被叫的“闲”信息后,向本机送回铃音,
结语
以太网的应用现已十分普及,有了以太网电话机,只要把电话机往网络上一接,就能给网络增加内线电话的功能。而由于以太网接入广域网的技术十分成熟,只要再开发相应的软件,通过以太网电话机实现网间电话通信也是可能的。
本文虽然只以最普通的双方通话说明了以太网电话机的功能,但只要网络带宽条件允许,通过软件开发,其它的许多电话功能以至语音调度功能