传统的电话网是以电路交换的方式传输语音信号的,它需要的基本带宽为64Kb/s。据统计,在正常的通话情况下,大约只有40%的时间为有声期,其余时间电路均为空占,网络带宽利用率不高。随着计算机技术的不断发展,尤其是互联网络的不断完善,基于分组交换的数据通信成为最重要的通信方式。而要在基于IP的分组网络上传输语音,就必须对模拟的语音信号进行特殊的处理,使处理后的信号可以适合在面向无连接的分组网络上传输,这就是分组语音技术。本文介绍的就是一种基于ARM7内核的IP电话设计。
G.728编码标准
语音编码技术是IP电话的核心技术之一,编码质量的好坏直接关系到IP电话的通信质量。
G.728标准的语音编码算法是16Kb/s的声码器编码标准,采用低时延码本激励线性预测(LD-CELP)技术。线性预测器使用的是反馈型后向自适应技术,预测器系数是根据上一帧的语音量化数据进行更新的,因此算法时延较短,为0.625ms,相当于5个采样点时间,这也是G.728的帧长时间。由于使用反馈型自适应技术,因此预测器系数无须传送,唯一需要传送的是激励信号量化值,也就是码本索引值。G.728标准的语音编码算法的码本总共有1024个矢量,索引需占10比特,因此其比特率为10/0.625=16Kb/s。
G.728标准的语音编码的主要特点有:算法时延短,仅为0.625ms;一路编码时延小于2ms;传输比特率为16Kb/s;MOS值为4.173,达到了长途通信质量。
由于G.728标准的语音编码算法的时延短,语音传输比特率可以满足IP电话的应用要求,所以选用G.728标准的语音编码算法作为IP电话的编码算法。
硬件系统设计
TMS470R1A256属于TI TMS470R1x通用16/32位精简指令微控制器系列。该系列采用高速的ARM7内核,从而保证了其高性能、高吞吐量和编码空间效率。
系统的主要作用是充分利用ARM7内核高速的数据处理能力,以减轻计算机CPU的负担;语音的录入和输出系统也单独分离出来,这样可以更好的和MCU进行数据传输,减少不必要的中间环节,减少时延。最后,通过高速的PCI总线,将数据传送给计算机。系统的总体结构框图如图1所示,各模块的具体功能如表1所示。
图1 系统总体结构框图
1 MCU与Flash的通信
由于TMS470R1A256的I/O接口电压为3.3V,而AM29F101B的接口电压为5V,所以在接口部分需要进行电压转换,并且AM29F101B的片选信号(CE)和输出使能信号(OE)需要地址译码。这些工作均由一片复杂的可编程逻辑器件(CPLD)来完成。
由于AM29F101B的接口速度较慢,所以TMS470R1A256和AM29F101B之间的接口必须插入软件等待状态,具体要插入的软件等待状态数目可以由数据手册计算得到或在调机时由试验得到。TMS470R1A256与AM29F101B之间的接口电路如图2所示。
图2 MCU与Flash的接口电路
2 MCU与ADC、DAC之间的通信
本系统所选用的G.728标准的语音编码算法需要8kHz的采样速率。所以对ADC和DAC要求最高采样率或转换时间不低于8kHz。
根据语音信号的特点,选用TI的TLC32044芯片,这是一片集成了ADC和DAC功能的芯片。它的最高转化速率为19.2kHz,转换位数为14位,输入电压带范围可调,有标准同步串口,还有输入滤波器和输出重构滤波器,这样可以省去模拟滤波器的设计。TMS470R1A256与TLC32044的接口电路如图3所示。
图3 MCU与ADC、DAC的接口电路
3 MCU与双端口RAM之间的通信
为了体现PCI总线速度快的优点,选用速度较快的双端口RAM芯片CY7C133-25,其最大传输速率为25ns。双端口RAM在MCU的数据空间的地址映射为8000H~87FFH。
需要强调的是双端口RAM的BUSY信号。本设计并不使用这个信号,因为分别对双端口RAM的不同部分进行操作,所以避免了可能发生的任何冲突,因此省去了BUSY信号,该信号悬空。
电路的电压转换和地址译码同样由CPLD来完成。MCU与双端口RAM的接口电路如图4所示。
图4 MCU与双端口RAM的接口电路
4 PCI9052与双端口RAM之间的通信
MCU的任务是完成语音的编码和解码,然后再通过PCI总线与计算机进行数据交换。MCU与PCI9052之间用一片双端口RAM(容量为2k×16bit)进行数据交换。
由于PCI9052具有5个局部地址空间和4个局部设备片选信号,所以连线变得相当的简单,只需要将双端口RAM映射到其中一个局部地址空间,然后使用其中的一个片选信号连接到双端口RAM的CE,最后将PCI9052的读写信号(R/W)和OE对应连接到双端口RAM的R/W和OE。这样就省去了地址译码等外围逻辑电路。
软件系统设计
IP电话系统要实现的算法就是语音编码算法,还要完成与计算机的数据交换。
软件部分的主要作用是用嵌入式操作系统中的TCP/IP协议对需要传送的语音编码信号进行打包,再通过计算机上的网卡将数据通过Internet传送到接收方,并把接收到的TCP/IP包还原为原来的语音编码信号,最后通过PCI总线传输给MCU进行语音解码。
结束语
本设计方案的主要优点是对计算机硬件的要求不高,处理速度快,语音的输入输出系统单独集成,且信噪比高。