Home > 电话会议新闻动态 > 技术文档 > 基于DSP与ARM的网络IP电话的研制

基于DSP与ARM的网络IP电话的研制

2014/06/12 Tang

1 问题的提出

IP电话是指利用IP协议通过分组交换网进行语音通信的通信方式。目前IP电话作为因特网的一个应用得到了迅速发展,特别是语音IP技术与其他互联网应用技术的结合,可方便地实现许多智能业务,如基于web的呼叫中心。这些先进的业务应用正刺激着传统的电话通信向真正的基于IP网络的电话通信转移。

日前IP电话的接入方式是使用普通电话拨入1TSP(Intemet Telephony Service Provide)提供的IP电话网关,然后经过一系列认证.再进行呼叫、接通和通话。造成这种情况的原因是因为13前的网络环境尚不完善。如带宽不足、网络接口尚不能直达用户等。但随着因特网的不断扩展和新技术的出现。这种IP电话的接人方式正被逐渐淘汰,用户将直接通过IP电话机拨打电话称为一种趋势。本系统的设计目的便是设计一款实用的IP网络电话机。

2 总体方案

IP网络电话机主要完成通过Intemet实现语音的传输,需要实现对语音信号的采集、语音信号的压缩,这些任务需要大量的数据运算,为满足语音通话的质量以及实时性,需要DSP进行数据的压缩处理。系统键盘、显示器的扩展,SIP、TCP/IP等协议的实现主要由ARM子系统来完成,各种逻辑关系通过ALTERA公司的CPLD EPM7032实现,其结构框图如图1所示。

3 DSP子系统的设计
DSP子系统主要完成语音信号的采集和压缩工作,TMS320C5416是1rI公司推出的16位定点DSP单指令周期为6.25,每秒执行的指令数为160 x1O ,指令系统丰富并具有很多多功能指令,使用了6级指令流水线结构,这些都很适合实现G.729数据压缩算法。另外其还具有3个MSBSP通道,可以很方便地实现CODEC语音芯片的扩展。

3.1 语音信号的采集

本系统选用MC10,其采样速率可达到22 ks/s,采用片外FIR滤波器时,其采样速率最高可达88 ks/s,本系统中MC10采样速率为8 kHz,DSP在接受到8o个字的语音信号后将进行压缩处理,然后将处理数据送往ARM。TMS320C5416与AIC10通过MCBSP0连接。MC10工作在主模式下,这样可以通过选择合适构晶振,使采样速率为整数,便于以后数据的压缩,本系统晶振为8.192 MHz。设置M/S引脚为高电平,将AIC10设置为主模式,采样频率信号由MC10提供。与DSP的通信数据采用“15+1”BIT模式,在DSP上电后,首先请求次通信(Do位为0)来完成对MC10内部寄存器的初始化。16位数据的格式为:D15~D13:器件地址;D12:读、写;D11~D9:寄存器地址;D8:无效位;D7~DO:数据位。

3.2 G.729A压缩算法的实现

G.729A编码器是以码本激励线性预测模型(CS—ACELP)为基础的 J。编码器处理的信号是以8 kHz采样的带限信号,其输入为16位线性PCM码。CS—ACELP算法将语音信号每10 ms分成一帧进行处理,由于另需要5 ms的信号进行前向线性预测编码(LPC),因此算法延迟总共为15 ms。编码器原理如图2所示。从图中可以看到,其基本原理与CELP算法是一致的。当然,为了提高合成语音质量,需要采取一些措施,具体的算法要复杂一些。它的编码过程如下:

(1)预处理:编码之前要对输人的16 bit PCM信号进行预处理,包括信号幅度压缩和带通滤波两个过程。信号幅度压缩就是把输人信号除以因子2,以降低定点实现时发生溢出的可能性。带通滤波则用来滤除不需要的低频成分,用一个截止频率为140 Hz的二阶零极点滤波器来实现,其传递函数可表示为式(1)

(2)线性预测分析及量化:短时分析和合成滤波器是基于一个10阶的线性预测(LP)滤波器.LP合成滤波器定义为

LPC模型阶数P选为1O阶,可以对绝大多数语音信号的声道模型取得足够近似的逼近,如果JP值选的过大虽然可以微略改善逼近效果,但是也带来一些副作用。一方面是加大了计算量,另一方面有可能会增加一些不必要的细节,例如在用声道模型谱进行共振峰分析时反而使效果变坏。

解码器是编码器的逆过程。首先要从接收到的码流中提取LSP系数和两个分数基音延时、两个固定码本矢量以及两套自适应码本和固定码本增益等参数。然后,对LSP参数进行插值,并转换到线性预测滤波器系数的形式。接下来,将自适应码本和固定码本矢量分别乘以各自的增益再相加,得到激励信号。激励信号通过LPC综合滤波器后,形成了合成语音信号。最后还要对合成语音信号进行后处理,以提高合成语音的还原质量。

4 AIRM子系统的设计

除完成键盘、显示外,ARM系统的主要任务是完成TCP/IP协议及SIP协议。S3C44B0X是SA.MSUNG(三星)公司一款基于ARM7TDMI 内核的SOC芯片。ARM7TDMI是ARM公司为普通目的而设计的一款32位微处理器,其特点是高性能、低价位、低功耗。I/O电压3.3 V,内核电压2.5 V,所以在整个系统中功耗非常低 ]。同时片内资源非常丰富很适合嵌入式产品的开发。

4.1 SIP协议的实现

SIP本身是一个应用层的交互协议,逻辑上被化分为多个层,第1层也就是最低层是对语法和编码的定义,第2层定义了一个UAC如何发送会话请求和接收响应以及一个UAS如何接收会话请求和发送响应,第3层称为事务层,事务是对所有发出的会话请求和对应请求的所有响应集合的定义“第4层称为事务用户(rIU),端口以及用来发送请求的传输机制等信息”将SIP协议分层主要是为了表述的方便,其本质就是在不同的状态下如何发送响应或请求的过程,也就是状态机的实现“通过分析发现可以使用统一的方法实现SIP协议” 。其中用到的数据结构:
ty~ ef struct transition{
int iState;
int iEvent;
int(}methord)(void P);
struct transition pNext:
}transit ion_t;
在结构体中iState存放状态编号,iEvent存放此状态下要响应的消息编号,函数指针method存放iState状态下收iEvent消息的处理函数地址“通过对SIP协议标准的分析,状态和消息的组合有多种况也就是会有多个transition_t类型的结构体,使用哈希表理可以提高查找某个结构体的速度“pNext用于Hash冲时将冲突的结构体构成链表” 。其实现流程如下:

(1)根据SIP协议标准划分状态,确定每个状态下响应的消息,定义由状态和响应消息所决定的处理方法,对应每种情况将得到一个transition_t类型的结构体,对应所有情况假设会得到 个结构体,将 个结构体存放于结构体数组aTransitionArray中;

(2)根据Hash算法将数组中的每一个结构体的指针存放于结构体指针数组中;

(3)业务启动,初始状态下全局状态编号gState为0;

(4)接收消息,根据收到的消息,和当前的状态号gState的值,利用第二步同样的Hash算法,得到对应transition_t类型结构体指针在aTransition.PointerArray中的位置,也就得到了transition—t类型的结构体指针,执行对应结构体中的函数meth一0d..在method中定义了是否改变状态编号gState,也就是状态迁移,以及内部如何处理,如何发出响应消息等;
(5)继续执行状态4,直到状态机退出,会话结束。

4.2 TCP/IP协议的实现

网卡电路通过REL8019AS实现,8019AS工作在16位模式(通过ISA引脚接高电平实现),8019工作在93e46模式;MAC地址、8019初始化信息通过93C46进行设置。ARM主要实现ARP、IP、ICMP、TCP、UDP协议。

(1)ARP协议实现:ARP是Address ResolutionProtocol的缩写。中文译为“地址解析协议”,其本质是完成网络地址到物理地址的映射。整个ARP处理过程,主要用5个函数实现。ARP初始化(ARP—init)、ARP请求(ARP—request)、ARP应答(ARP_answer)、ARP回应处理(ARP_process)、IP包接收预处理(IP_in);

(2)IP协议实现:IP协议为不同网络的主机之间发送数据报的操作序列提供无连接服务。通过在数据报前添加IP协议头,使每个数据报具有寻址能力。其主要由两个函数完成,发送IP数据(ip_send)、接受IP数据(ip_reve);

(3)ICMP协议实现:ICMP传递差错报文以及其他需要注意的信息,其主要由3个函数完成,发送ICMP请求给目的主机并等待返回ICMP应答(ping_send)、目的主机无法达到处理函数(dest—unreach— send)、接收ICMP回显数据函数(icmp—rcve);

(4)UDP协议实现:UDP是一个简单的面向数据报的传输层协议,提供和IP一样得不可靠的无连接数据报传输服务。它不使用确认信息对报文的到达进行确认,不对收到的报文进行排序,也不提供反馈信息来控制机器之间传输的信息流量,其由两个函数实现,发送UDP数据报(udp—send)、接收UDP数据报(udp_rcve);

(5)TCP协议实现:TCP是一个面向连接的、可靠的运输层协议,它使用滑动窗协议完成流控制,使用确认分组、超时、和重传来完成差错控制,其主要由5个函数实现,TCP协议初始化(init_ tcp)、发送TCP数据(tcp—send)、重发TCP数据(Tcp_retransmit)、停止TCP(Tcp—inactivity)、接收TCP数据(tcp_rcve)。

5 ARM与DSP的通信

TMS320C5416具有16位并行高速接口HPI,通过此借口S3C44B0可以高速访问DSP的内部存储空间,包括片内外映像存储器 。其硬件连接如图3。

HDO—HD15是一个数据/地址复用的双向总线,传送的数据包括控制寄存器的设置值、初始化的访问地址及真正的数据;HCNTLO/1控制当前访问的是HPI的哪一个寄存器。这2个信号对应的4个状态除了区分对HPIC/HPIA/HPID寄存器的访问,还提供了一个对HPID进行地址自增的访问方式.HHWIL信号作用是区分第1个/第2个半字节的传输。数据选通(HDS1和HDS2)、读/写选择(HR/W)和地址选通(HAS)这几个信号在功能上相似,通过控制其不同时序可以方便的完成HPI控制。HRDY信号的使能是由HCS信号控制。HAS用于锁存其他地址控制信号。HPID用于存放ARM从存储空间读取的数据,或是ARM要向DSP存储空间写入的数据。HPIA用于存放当前ARM访问DSP存储空间的地址。系统在上电后,对DSP的HPI接口初始化后就不需要再操作,通过HPI接口ARM与DSP传递中断请求来完成数据的传递。

6 结束语

讲述了IP网络电话的系统框图,介绍了G.729算法的实现方法,介绍了SIP协议、TCP/IP协议在ARM上的实现方法,介绍了DSP与ARM通信方法。实践证明此种方案实现IP网络电话切实可行。

IP电话

如没特殊注明,文章均为好会通科技原创,转载请注明来自 http://www.meeteasy.com.cn/archives/3267.htm.


copyright 2004-2013     粤ICP备12061155号-1

Sitemap|XML|RSS|隐私政策|EN|