黑客应该学什么:VoIP语音网关中TDM控制模块的设计

来源:百度文库 编辑:中财网 时间:2024/04/30 03:53:23
VoIP语音网关中TDM控制模块的设计   Post By:2008-8-20 16:37:00

TDM控制模块是VoIP网关系统设计中的重要部分,是连接来自PSTN(Public Switched TelephoneNetwork)串行的TDM数据格式和并行的Wishbone数据格式的桥梁,实现两边数据跨时钟域无丢失的转换。为满足高速数据转换的要求,采用了Wishbone总线,将多个IP核集成为VoIP网关系统。   Wishbone最先是由Silicore公司提出,现在已被移交给OpenCores组织维护。Wishbone总线规范是一种片上系统IP核互连体系结构,定义了一种IP核之间共公的逻辑接口,可用于软核、固核和硬核,对开发工具和目标硬件没有特殊要求,并且几乎兼容已有所有的综合工具,可以用多种硬件描述语言来实现。   TDM控制模块的设计   ● TDM在VoIP语音网关系统中的作用   TDM控制模块同时接收来自ISDN(综合业务数字网)、E1专线或者语音编码器等不同信源的串行语音数据。如图1,VoIP语音网关的基本功能是完成以太网数据与外部语音设备数据的转换,TDM接口与以太网接口分别为外部语音设备的数据、以太网上数据与网关系统的通信桥梁。该网关SoC系统的处理器采用的是同济大学微电子中心自主沿发的高性能低功耗的32位嵌入式CPU BC320。





   

    图1 TDM控制模块的作用     ● 时分复用原理与TDM数据频率   时分复用是把对信道的使用时间划分为多个时间帧,进一步把时间帧划分为n个时间隙(时间间隔)。每一个时间隙分配给一个子信道,从而实现在一个信道上同时传输多路信号。时分复用循环使用时间帧,各路信号循环顺序插入时间帧中的时间隙传输。TDM控制模块的主要作用就是复用多路信号与解复用混合有多路信号的 TDM数据,如图2所示。

   

    图2 时分复用的时隙   本设计的串行语音数据针对E1专线标准,E1主要应用于欧洲,中国也采用该标准。E1标准的数据率为2.048Mb/s,每一个时间帧包括30个B子信道,一个D子信道和一个同步子信道,共32个子信道。以语音模拟信道为例,信道带宽限制为3.4kHz,根据奈圭斯特定律,子信道采样速率至少是信号最高频率的两倍,通常选择采样速率为8kHz。因此,整个TDM信道的比特速率可以达到:    8kb/s×8×32=2048kb/s=2.048 Mb/s,即E1标准规定的TDM数据率。   ● 模块设计   模块的主要功能是完成多路数据的复用和复用数据的分解,其关键部分就是复用和分解。本设计采用缓存器辅助完成复用和分解,实现两种协议数据跨时钟域的转换。本设计模块主要分三部分,见图3。

    [NextPage]

    图3 TDM接口控制模块的基本结构   串行数据接口主要负责串行数据与8位宽并行数据的转换,因为存放数据的FIFO是以8bit为一地址空间的。转换由设计的状态机来控制:接收 (receive)操作、发送(transmit)操作和等待,接收就是将串行数据转换成8bit位宽数据的过程,发送与之相反。由于语音数据要求双工机制,由时钟高低电平来作为发送和接收状态的切换信号,即当时钟为低时由发送状态转为接收状态,当时钟为高时,由接收状态切换为发送状态,这样可以看作接收与发送是同时进行的。   发送、接收缓存器不仅包括用于暂时存储数据的FIFO,而且还设计有状态机来控制接收、发送数据流。由于跨时钟域,由双口RAM组成的FIFO可能会带来地址比较冲突的问题,本设计采用乒乓机制来完成FIFO,当一个缓存器进行读操作时,另一个缓存器则进行写操作,两者的切换由硬件来完成。以下以接收缓存器为例(数据方向从TDM串行数据到Wishbone总线并行数据)来描述本设计。缓存器的大小设计为包含四帧TDM数据,因此每个FIFO的大小为 8bit×32×4=1024bit,如图4。选用乒乓FIFO以及FIFO大小设计的原因如下。

   

    图4 乒乓FIFO   串行数据的时钟相对于Wishbone总线的时钟要慢,当两时钟域上的数据相互转换时,Wishbone总线可以在很短时间内读写FIFO,而串行总线需要相对较长的时间读写相同数据量。尽管如此,在Wishbone总线时钟频率相对较慢时,Wishbone总线很可能在下一批串行数据写进FIFO前不能完全读空FIFO。以接收缓存器为例,如果不考虑处理器(BC320)中断响应时间和从RAM读数据的时间(待处理的数据都要先暂存在Wishbone 总线上挂的RAM中),从Wishbone总线读空一个FIFO中的四帧数据需要时间为:   1/25M x 32 x 4 = 5.12 x 10-6 s= 5.12us   25M是本设计在FPGA开发板进行测试时所采用的时钟频率,即测试系统时Wishbone总线上的时钟频率。   而在另一边串行数据,当四帧写满FIFO后,第五帧的第一个字节数据开始写入FIFO的准备时间为:    1/24M x 8 = 4 x 10-6?s = 4us   FIFO中的四帧数据被读空时间大于第五帧的第一个字节写入FIFO的准备时间,FIFO的写满与读空都是有硬件产生信号标识,此时FIFO读空信号标识未产生,不能对同一FIFO进行写操作,导致待写数据丢失。因此选用两个FIFO采用乒乓机制来切换读写操作,如图4所示。   在解复用时,数据的地址恢复很重要,一个TDM数据帧含有32个时隙,每一时隙中的数据均来自不同的信道源,本模块要将复用在一路的TDM数据恢复出32 路。TDM数据的每个时隙含8个bit,而Wishbone总线的数据位宽是32位,因此需要四帧的TDM数据才能拼接成一路完整32位宽数据。相邻时隙数据由于来自不同信道源,暂存在FIFO中的地址不能相邻,前一时隙中数据和后一时隙中数据在地址空间上相差4(如图4),这样从初始地址开始,每相邻四个地址对应的数据拼接成一路完整的信号,在Wish bone总线读取FIFO中数据时的地址是按顺序的。   本文着重讨论了接收缓存器的设计,发送缓存器与之类似,这里就不再赘述。   Wishbone接口连接TDM控制模块与Wishbone总线,它的主要功能是设计正确的状态机产生有效控制信号来同步数据交换。   验证与结论   用Verilog语言描述完成TDM控制模块的设计,并以VoIP语音网关系统为验证平台,利用Candence公司的NC-verilog仿真器进行代码仿真。仿真波形表明,处理器(BC320)对FIFO写满产生信号标识的反应时间大约为60个Wishbone总线时钟周期,这一时间加上 Wishbone总线读空第一个FIFO所用时间后,串行语音数据仍在写进另一个FIFO,Wishbone总线有足够的空闲等待这个FIFO写满标示信号的产生,不会有任何数据丢失。   VoIP语音网关系统在型号为Virtex-II Pro FF1152的FPGA开发板上进行了硬件验证,TDM控制模块外接型号为Le88221的SLIC(用户线接口电路)芯片作为语音信源,利用 Chipscope在线扫描TDM控制模块内部、Wishbone总线和处理器(BC320)寄存器的信号变化,并用示波器对SLIC芯片信号进行捕捉。从观察的信号来看,所设计的TDM控制模块能够与系统的其他IP模块,尤其是处理器(BC320)和以太网模块正确有效地协同工作,模块的功能达到设计要求。
  一种基于嵌入式技术的VoIP网关设计   Post By:2008-8-20 16:32:00

作为NGN(下一代网络)中的重要组成部分,VoIP是面向未来、可持续发展的语音解决方案,可以为商业和家庭用户提供质优价廉的IP语音服务。随着NGN网络技术的快速发展,VoIP的通信量也已得到快速增长,并以其低廉的价格优势迅速占有市场。

VoIP语音技术与传统电话的区别

VoIP(又称IP PHONE)是建立在IP技术上的分组化、数字化语音传输技术。其基本原理是:通过语音压缩算法对语音数据进行压缩编码处理,然后把这些语音数据按IP等相关协议进行打包,经过IP网络把数据包传输到接收地,再把这些语音数据包串起来,经过解码解压处理后,恢复成原来的语音信号,从而达到由IP网络传送语音的目的。VoIP系统把传统电话的模拟信号转换成计算机可联入因特网传送的IP数据包,同时也将收到的IP数据包转换成声音的模拟电信号。经过VoIP系统的转换及压缩处理,每个普通电话传输速率约占用8~11kbit/s带宽,因此在与普通电信网同样使用传输速率为64kbit/s的带宽时, VoIP线路数是原来的5~8倍。同时,IP技术允许多个用户共用同一带宽资源,改变了传统电话由单个用户独占一个信道的方式,节省了用户使用单独信道的费用。

VoIP的基本结构由网关(GW)和网守(GK)两部分构成。网关的主要功能是信令处理、H.323协议处理、语音编解码和路由协议处理等,对外分别提供与PSTN网连接的中继接口以及与IP网络连接的接口。网守的主要功能是用户认证、地址解析、带宽管理、路由管理、安全管理和区域管理。VoIP的核心与关键设备是VoIP网关。


以下内容只有回复后才可以浏览

 

基于嵌入式技术的VoIP功能实现框图

1、VoIP实现原理框图:(如图1)





2、嵌入式系统中VoIP的工作过程:

① 在单个独立的嵌入式系统内部进行语音通信时,该系统实现功能的过程如下:用户话音脉冲通过SLIC和CODEC电路产生PCM流,载入语音处理器AC4880XC-C中,通过片内DSP进行语音压缩、成帧(包括地址等用户信息及语音信息),AC4880XC-C再将数据包通过HPI口传送到主系统,完成交换功能后,认定目的地是本系统的另一个用户,将处理过的话音数据包传给AC4880XC-C,AC4880XC-C进行解压缩后, 以PCM流返回到CODEC部分,根据目的地址信息驱动目的用户。

② 在嵌入式系统之间进行语音通信时,过程如下:AC4880XC-C将话音数据包通过HPI口传给本系统后,本系统的交换功能认定目的地是另一个嵌入式系统的一个用户,本系统将数据包重组后,通过I/O端口传给目的系统,由目的系统自动完成解压缩,驱动目的用户的功能。

系统设计实现

硬件设计为以下六块组成

1、SLIC(用户线接口电路)部分

采用AMD公司生产的AM79R70PLCC芯片,通过该芯片产生输入、输出话音脉冲和铃音脉冲。

2、CODEC(编解码)部分

采用AMD公司生产的AM79Q021JC编解码芯片,通过该芯片产生的PCM流送到语音处理芯片处理。[NextPage]

3、语音处理部分

作为本系统中的核心部分,语音处理采用以色列AudioCodes公司生产的专用多通道语音处理芯片AC4880XC-C。它具有以下特点:

⊙ 支持ITU的G.711、G.723.1、G.726、G.729A等分组语音处理标准;

⊙ 支持回波抵制和抵消、静音检测和舒适噪音等提高分组语音处理性能的配套模块;

⊙ 高质量坏帧插补;

⊙ 支持2.4~14.4 kbps的T.38和FRF.11的功能传真业务;

⊙ 支持各种信令,如DTMF等;

⊙ 提供语音、传真、数据或信令等PCM高速接口;

⊙ 可选择 或o 律;

⊙ 输入输出增益控制;

⊙ 提供同步HPI、PCM、时钟、存储器以及I/O和仿真测试接口(如图2);

⊙ 144pin,TQFP封装,1.8V内核电压,3.3V芯片电压。



4、CPLD部分

AC4880XC-C采用8位并行的主处理器接口HPI接口与主系统进行数据交换。鉴于嵌入式系统中接口逻辑繁杂,选用CPLD实现接口适配功能。主CPU可通过CPLD控制实现CODEC 和SLIC部分的功能。

5、HPI接口部分

本设计中,嵌入式系统CPU与AC4880XC-C通过HPI接口进行数据通信,CPU通过AC4880XC-C片内共享的双口存储器与其片内DSP实现数据交互。HPI接口包括1根8位数据总线和11根控制总线。主系统CPU通过三个寄存器(HPIC、HPIA和HPID)控制AC4880XC-C及访问片内存储空间。HPIC为控制寄存器,用来选择AC4880XC-C的高低字节顺序。HPIA为地址寄存器,用来寻址片内的2K存储空间。HPID为数据寄存器,用来缓存每次读写的两个字节数据,外部CPU以单个Word或块数据访问HPID。以块数据方式访问时,HPIA寄存器自动累加,可减少外部CPU写HPIA寄存器的开销。AC4880XC-C的内部寄存器和存储器为16位,外部CPU每次访问AC4880XC-C必须以两个字节为基本单位,信号线HI/LO用来选择高低字节,信号HRS1、HRS0指示当前访问的是哪个寄存器。

6、语音接口部分

语音接口提供未压缩语音、传真数据的I/O通道。语音接口对外提供四根信号线PCMIN、PCMOUT、PCMCLK、PCMFS构成PCM总线,直接连接外部CODEC芯片的PCM Highway。PCMIN输入从CODEC送来的PCM信号,AC4880XC-C内部的DSP按照相应标准压缩后从HPI口交给主系统CPU 处理。PCMOUT则相反,AC4880XC-C将主系统CPU送来的语音数据按照合适的标准解压缩,然后从PCMOUT口送到外部CODEC,CODEC经过数/模转换后恢复成语音信号再通过用户接口送给用户端。PCMCLK提供2.048MHz的比特同步时钟,而PCMFS提供8kHz的帧同步时钟。PCM主时钟(BCLK)、帧同步时钟(FS)、接收数据(DR)和发送数据(DX)一起构成PCM Highway信号,与AC4880XC-C进行连接。BCLK与FS分别对应AC4880XC-C的PCMCLK和PCMFS,这两个时钟信号都由AC4880XC-C 产生;DR和DX分别对应AC4880XC-C的PCMOUT和PCMIN。PCM Highway信号时序以及时隙与帧同步信号的关系分别如图3、图4所示。为了CODEC与DSP芯片间正确收发数据,一般选择CODEC芯片在BCLK的上升沿发送数据DX,下降沿采样数据DR,而在另一端的AC4880XC-C,则在时钟下降沿采样PCMIN,上升沿发送PCMOUT。


[NextPage]

软件设计部分

该系统软件主要用于对AC4880XC-C进行控制,实现读写等操作。

1、编写芯片AC4880XC-C的读写函数

主要是基于嵌入式ARM处理器,通过HPI接口实现对AC4880XC-C及相关芯片的读写操作。流程图如图5所示:







2、配置AC4880XC-C内部设置

首先通过处理器对CODEC和CPLD进行配置,并调用AudioCodes 公司提供的初始化内核程序对AC4880XC-C进行复位初始化。复位成功后,写入内核程序,然后写入工作程序,最后再将这些程序通过AC4880XC-C的HPI接口写入到AC4880XC-C,芯片即开始工作。

结语

嵌入式系统作为一种功能强大的软硬件操作开发平台,很适合基于嵌入式ARM处理器的VoIP的开发。AC4880XC-C是一款功能强大语音处理芯片,本方案利用该芯片作为核心芯片,配以其他功能芯片实现了基于嵌入式技术的VoIP网关。该网关已应用于嵌入式综合实验平台,效果十分理想,在IP电话和多媒体通信领域的应用前景非常广泛。

  VoIP双模网关的研究与系统设计   Post By:2008-8-20 16:39:00

近年来随着宽带网络和IP技术的日益发展,VoIP(Volee over Internet Protoc01)技术的应用越来越广泛。网关是VoIP网络中的重要设备,按照应用领域可分为电信级网关和用户端网关。用户端网关设备主要应用于小区和企业,是连接终端电话和IP网络的桥梁,主要功能是进行语音编解码、信令处理、VoIP协议处理和路由协议处理等。用户端网关设备在VoIP网络中的位置如图1所示。可以看出,网关处于用户电话线路部分的末端、IP网络部分的起始端。


以下内容只有回复后才可以浏览




   

    “双模”是指VoIP和PSTN两种模式。双模网关是一种同时连接PSTN网络和VoIP网络并能在两者之间自动切换的用户端网关设备。双模网关可以使用 VoIP网络节省大量通话成本,还可以在VoIP网络不可用(断电或路由不可达)时使用PSTN网络保障电话线路永远畅通,而且使用双模网关不需要对 PBX交换机做任何改动,用户还可以自由选择或由网关自动选择使用VoIP网络还是PSTN网络,具有很好的实用性和灵活性。

 

  1 VoIP双模网关的工作原理

  网关在VoIP网络中主要起协议转换、控制及关守作用,如呼叫控制和呼叫管理等。双模网关在普通VoIP网关的基础上增加了VoIP与PSTN之间的切换。双模网关系统从功能上可分为双模切换模块、FXS接口电路模块、语音处理模块和软件控制模块,其系统框图如图2所示。

   

    外部交换站FXS(Fbreign eXchange Subscdber)接口和外部交换局FXO(Foreign eXchange Office)接口是VoIP网关中非常重要的两个接口。在传统的PSTN电话连接中,电话中心局端交换机提供馈电和铃流,电话本身完成Tip/Ring 电路来请求服务或者应答PSTN上的呼叫。在VoIP电话连接中,FXS电路仿真了电话中心局端交换机的功能,提供馈电和铃流并检测环路电流。而FXO电路相当于仿真了电话机的功能,提供环路闭合和检测铃流。

  FXS接口电路直接与模拟话机连接,提供拨号音、馈电、铃流电压,并能够检测话机的摘挂机和环路闭合,完成模拟信号与数字信号之间的相互转换。FXS接口电路包括编解码器CODEC和用户线接口电路SLIC(Subscriber Line Interface Circuit)。CODEC包括一个模数转换器(ADC)和一个数模转换器(DAC)。SLIC电路仿真了PSTN电压,它必须能够检测电话的摘挂机并能产生最高达120V的铃流电压。

  双模切换模块主要包括FXO接口电路,它由CODEC和数据处理阵列DAA(Data Access Arrangement)组成。其中CODEC与FXS电路中的相同;DAA仿真了一部话机,通过提供PSTN的环路闭合来去除高压直流分量,只让 PSTN线上的模拟交流信号通过。网关中使用FXO接口电路可实现以下功能:

  (1)断电时线路保持畅通:当网关断电不能连接VoIP网络时,将线路切换到PSTN线路上。

  (2)呼叫重定向:当VoIP网络由于拥塞或者其他原因而不可用时,能够将线路切换到PSTN上,而且能记住已拨号码并进行自动重拨。

  (3)远端VoIP呼叫:VoIP用户可以在其他地方通过PSTN拨入的方式进行VoIP呼叫,FXO接口先把PSTN上的电话拨号音(模拟信号)接收下来,然后转换成数字信号送出,相当于将拨号音从一个FXO扩展到多个本地FXS。

  网关的语音处理模块负责对PCM数字语音信号进行压缩与解压缩。压缩算法的标准包括G.711、G.723.1和G.729等,不同的算法压缩比不一样,占用的带宽也不同。压缩算法可以用硬件DSP实现,也可以用纯软件实现。

  软件控制模块实现网关的协议栈处理和路由处理等功能。协议栈负责将压缩后的数据流进行封装,加上IP协议包头,形成可在VoIP网络中传输的IP数据包。目前VoIP的协议栈主要基于H.323和SIP两种标准。协议栈将数据流打成IP数据包后,选择适当路由经过以太网接口发送到VoIF网络中。接收端网关接收到IP数据包后,将数据包解压缩并将解压缩后的PCM数字信号解码,恢复原始语音信号。

  2 VoIP双模网关系统设计

  本节提出了一种基于H.323的双模网关的系统设计方案,该方案支持4路话音,使用一种经济实用的“假FXO接口”方式实现双模切换,能够在VoIP通话时检测到PSTN线上进来的呼叫并可通过按话机的拍簧或者Flash闪断键切换接听。

  为了有效利用资源,系统使用三相转接头将电话线路与PSTN线路组合到一个RJ11接口上,每路话路使用一个三相转接头。三相转接头的连接方式如图3所示。



    三相转接头的使用可简化双模切换的实现,也减少了设备的物理端口数量。

  系统设计采用“硬件+ 嵌入式操作系统+应用层软件”的总体架构。


  2.1 硬件设计方案

  系统的硬件部分主要包括双模切换模块、FXS接口电路、语音处理模块电路、CPU模块和以太网模块,硬件设计原理图如图4所示。





    双模切换模块使用了一种“假FXO接口”的方式。电路中用继电器控制各话路本身的VoIP和PSTN通路之间的双模切换。继电器在网关没有上电时默认将网关置于把话机线与PSTN线对接的状态,上电工作后由1片FPGA可编程逻辑芯片来控制继电器的切换。FPGA芯片是网关实现智能切换的关键部件,其中实现的控制逻辑包括PSTN线路上的铃流检测、话机拍簧动作检测等逻辑,并据此控制继电器进行切换。FPGA与CPU的接口可实现在VoIP网络路由不可达时切换到PSTN网络的逻辑。双模切换模块实现了FXO接口的部分功能,但不是真正的FXO接口,所以称之为“假FXO接口”。

  FXS接口电路模块主要由SUC芯片和Codee芯片组成,分别选用Legerity公司的Le79R70芯片和Le58Q021芯片。Le58Q021 是4通道的Codec芯片,可以控制SLIC芯片(Le79R70)的工作状态,选择编码
方案(线性、a律、μ律),还支持软件可编程SLIC的输入阻抗、平衡阻抗和频率响应特性等。系统使用1片Le58Q021和4片Le79R70协同工作支持4路话音,向话机提供馈电,产生振铃信号、检测话机摘挂机等,并负责完成电话模拟信号与PCM数字信号的相互转换。

  语音处理DSP芯片选用AudioCodes公司的AC483,它能同时支持4通道语音编解码器,支持G.729A、G.723.1、G.727、G.726、G.711等压缩算法标准,可完成实时的语音压缩、DTMF信号的检测、产生和回音消除等工作。

  系统CPU芯片选用Samsung公司ARM7TDMI系列的S3C4510B,其工作频率为50NHz,片内集成了丰富的通用模块,含有支持 10M/100M自适应的以太网控制器,可以直接通过PHY芯片引出以太网接口。以太网PHY芯片选用Intel公司的LXT972A芯片,它具有 1OM/100M自适应收发功能,支持全双工操作。此外,系统还使用了2MB Flash、16MB SDRAM和512KB SRAM作为存储器。

  2.2 软件设计方案

  软件部分主要由嵌入式操作系统和应用层软件组成,完成协议栈处理、路由处理和其他控制功能,软件方案层次结构如图5所示。



    嵌入式操作系统采用μCLinux。μCLinux是一种针对无内存管理单元的处理器定制的嵌入式操作系统,具有丰富的网络功能、源代码公开、内棱可剪裁和易于移植等特点。根据硬件平台的特点,还需要开发适应硬件平台的驱动程序,包括Bootloader、串口驱动和以太网驱动。其中Boofloader 是移植uCLinux操作系统的关键,系统上电时,Bootloader负责进行硬件初始化、中断的处理和硬件时钟管理等工作,并加载操作系统映象到内存。为方便系统网络升级,Bootloader可实现TFTP网络功能。串口和以太网口驱动程序相对比较简单,实现数据的正确收发即可。

  应用层的软件主要由H.323协议栈处理模块、路由处理模块和DSP控制模块组成。H.323协议栈负责呼叫控制和信令、音频处理和媒体实时传输等功能。系统采用比较成熟的开放源代码的OpenH323协议栈作为参考,应用层上的功能模块都是基于该协议栈开发的。路由寻址模块主要负责路由寻址和路由管理,确定目的网关的IP地址,并选择最佳路由将IP数据包经过IP网络传送到目的网关。DSP控制模块主要是在应用程序中根据通话流程编写相应的控制程序控制 DSP芯片AC483的行为。网管模块提供了Web网管和CLI命令行界面,很容易对双模网关配置和维护。

  3 应用方案

  系统作为用户端网关设备,可广泛应用于小区和企业。对于用户数量比较少的小区,可以将话机直接与网关连接,如图6所示。对于用户量相对较多的企业,可以与PBX交换机连接,如图7所示。  



    该系统基于H.323协议栈设计。目前该系统基本功能已实现,能与其他网关设备互通,并能与运营商的Gatekeeper互通。在该设计的基础上,可以通过选用处理能力更强的芯片来支持更多话路,可以增加SIP协议栈以支持双协议栈架构,还可以实现真的FXO接口电路以支持远端VoIP呼叫,这些都是系统未来可以改进的地方。