摘要:介绍了VoIP语音卡在路由器中的应用,详细描述了一款应用于路由器的语音卡的硬件结构及其工作方式。
关键词:VoIP PCI FXS 路由器 语音压缩
1 VoIP在路由器中的应用
近年来,VoIP(Voice over Internet Protocol)给通信市场带来了强大的冲击。IP语音业务推出后,由于其在通话费用上比传统电话具有突出的优势,因而受到了广泛欢迎。VoIP技术在路由器中应用,可以大大节省有多个部门在不同地方办公的企业或机构的电话费用。为一个VoIP路由器在公安分局与派出所间应用的方案。
派出所网点的路由器DCR-2501V和DCR-2509V使用FR(帧中继)或DDN线路同分局的DCR-3660实现互连,各网点的计算机可通过路由器连接分局的局域网或Internet,实现数据通信;同时,DCR-2501V或DCR-2509V通过FXS语音端口连接普通电话机,分局路由器通过E&M接口和PBX连接,这样既可以实现内部各部门间的数据通信,同时还可进行零费用的语音通话。
VoIP在费用上呈现巨大优势的原因在于其利用了计算机通讯的分组化、数字化传输技术,先对语音数据按照一定的语音压缩标准进行压缩编码处理,然后把这些数据按IP相关协议打包,再将数据包通过IP网络传输到接收端,接收端将这些以不同顺序到达的数据包按其本身顺序串起来,并经过解码解压恢复出原来的语音信号。与传统的语音业务相比,VoIP在时间延迟、话音质量等方面存在缺陷。可以采用一些先进的协议如资源预留协议(RSVP)和不同类型服务(Diffserv)等方案来尽可能的优化语音数据包的传输,以减少传输延迟和拥塞。
目前,VoIP的标准主要有国际电信联盟技术部(ITU-T)建议的H.323系统和IETF建议的会话发起协议(Session Initiation Protocol,SIP)系统两种。前者主要在电信网络上实现多媒体业务制订,技术已趋成熟。后者基于动态的Internet模式建网,是基于软交换技术的面向网络会议和电话的简单信令协议。在我国,主要选用H.323技术标准来实现VoIP,在H.323系列标准中,音频压缩编码标准有G.711、G.722、G.723和G729等。
本文将介绍一种已经应用于路由器产品中的VoIP语音卡的硬件设计和工作原理。
2 VoIP语音卡硬件结构
该语音卡基于AudioCodes公司的VoPP(Voice Over Packet Processor,即语音包处理器)AC48302设计,采用PCI接口界面,可提供两个FXS(Foreign Exchange Station)语音/传真接口,可以方便灵活地应用于本公司开发的系列路由器中,实现VoIP功能。其硬件结构框图如所示,以下介绍各部分硬件的原理和作用。
2.1 PCI接口
路由器主板与语音卡之间通过PCI总线连接,便于通用。采用了PCI接口芯片PLX9030实现语音卡本地总线(HPI)与PCI总线之间的转换。由于语音卡上数据流量不大,不需要利用如DMA方式主动向路由器主板上的Memory空间传递数据。因此,语音卡工作于PCI的从模式方式,AC48302通过中断方式接收或发送语音数据,PCI总线的数据宽度和速度为32位/33MHz。
2.2 CPLD部分
AC48302采用8位并行的主处理器接口HPI与外部CPU(即路由器CPU)进行数据交换。在本设计中,HPI接口与PLX9030的本地总线接口时序稍有差别,经过CPLD进行调整。另外,路由器CPU还可通过CPLD控制CODEC和SLIC芯片。
2.3 AC48302芯片
AC48302是AudioCodes公司推出的一款低功耗、低价格的双通道语音包处理器,其内部集成了一个DSP内核。该芯片的主要特性如下:
·支持两个通道的语音压缩编码,语音压缩标准包括G.729A、G.723.1、G.727、G.726、G.711。
·兼容T.38或FRF.11传真中继(2.4~14.4kbps)。
·呼叫ID产生和检测,呼叫进程和用户定义语音的检测和产生。
·兼容G.168的25ms回声消除。
·高性能的有效语音检测(VAD)和舒适噪声产生(CNG)。
·DTMF检测和产生。
·A律/μ律可选的Codec接口,具有输入输出增益控制。
·PCM Highway接口。
·并行的主处理器接口(HPI)。
AC48302各部分硬件接口如所示。
AC48302 HPI存储器的映射关系
2.3.1 语音接口(Voice Interface)
语音接口提供未压缩的语音、传真数据的输入输出通道。语音接口对外提供四根信号线构成PCM总线,直接连接外部CODEC芯片的PCM Highway。这四根信号线为PCMIN、PCMOUT、PCMCLK、PCMFS。PCMIN输入从CODEC送来的PCM信号,AC48302内部的DSP按照相应标准(如G.729)压缩后从HPI口交给路由器CPU转发。PCMOUT则相反,AC48302将路由器CPU送来的语音数据按照合适的标准解压缩,然后从PCMOUT口送到外部CODEC,CODEC经过数/模转换后恢复成语音信号?熏通过用户接口送给用户端。PCMCLK提供2.048MHz的比特同步时钟,而PCMFS提供8kHz的帧同步时钟。
2.3.2 HPI接口
在本设计中,路由器CPU与AC48302通过HPI口进行通信。路由器CPU和DSP通过AC48302的片内共享的双口存储器实现数据交互。片内共享存储器的映射关系见。
HPI接口包括1根8位数据总线和几根控制总线。路由器CPU通过三个寄存器(HPIC、HPIA和HPID)控制AC48302及访问片内存储空间。HPIC为控制寄存器,用来选择AC48302的高低字节顺序、产生和接收中断。HPIA为地址寄存器,用来寻址片内的2K存储空间。HPID为数据寄存器,用来缓存每次读写的两个字节数据,外部CPU可以单个Word或块数据方式访问HPID,当以块数据方式访问时,HPIA寄存器自动累加,这样可以减少外部CPU写HPIA寄存器的开销。AC48302的内部寄存器和存储器为16位宽度,因此外部CPU每次访问AC48302必须以两个字节为基本单位,信号线HI/LO用来选择高低字节,信号HRS1、HRS0指示当前访问的是哪个寄存器。
除了以上两个重要的接口外,AC48302内部还包含一个PCM时钟发生器、一个用于测试的JTAG接口以及一个用于访问外部SRAM及处理信道辅助信令的Memory&I/O接口。
2.4 CODEC接口芯片
CODEC芯片负责对DSP解压缩后送来的PCM数据进行解码,并将滤波后的模拟语音信号送到用户线接口芯片SLIC,SLIC对其进行2-4线转换后送给用户端;同时,CODEC还负责将SLIC送来的模拟语音信号进行PCM编码,然后送到DSP芯片进行压缩处理。
本设计中,CODEC芯片采用IDT公司的4通道PCM编解码芯片IDT821034。该芯片具有可编程增益设置、主时钟可选(2.048MHz、4.096MHz和8.192MHz)、可支持128个可编程时隙、A律/μ律可选、内置数字滤波器、串行控制接口、低功耗等特点。本设计中选用主时钟为2.048MHz(E1帧模式),可划分为32个相等的时隙(Slot0~Slot31),4个通道的接收和发送时隙可通过向串行控制口写入控制字进行动态选择。各时隙的位置都以8kHz的帧同步时钟信号为参考,在IDT821034中,时隙0相对帧同步脉冲的位置有延迟模式和非延迟模式(即为非延迟模式)。
PCM主时钟(BCLK)、帧同步时钟(FS)、接收数据(DR)和发送数据(DX)一起构成PCM Highway信号,与AC48302进行连接。BCLK与FS分别对应AC48302的PCMCLK和PCMFS,这两个时钟信号都由AC48302 产生;DR和DX分别对应AC48302的PCMOUT和PCMIN。PCM Highway信号时序以及时隙与帧同步信号的关系分别如、所示。为了CODEC与DSP芯片间正确收发数据,一般选择CODEC芯片在BCLK的上升沿发送数据DX,下降沿采样数据DR,而在另一端的AC48302,则在时钟下降沿采样PCMIN,上升沿发送PCMOUT。
2.5 用户线接口(SLIC)芯片
设计中为了使语音卡能够提供FXS接口功能,采用了爱立信公司的新型SLIC芯片PBL83710连接用户接口。在该芯片内部能够产生高电压铃流信号及提供自动电池馈电切换,具有环流振铃和地键检测功能及2-4线转换功能。该芯片将许多传统的振铃继电器、铃流发生器等器件集成在一个片内,节省了印制板空间和成本。
3 VoIP语音卡硬件驱动流程
硬件驱动程序主要完成以下功能:
(1)初始化PLX9030芯片,配置相关寄存器,选择本地总线工作方式。
(2)初始化AC48302芯片,启动AC48302内部的DSP内核到正常工作状态。AC48302的启动步骤按顺序分为以下几步:核代码(Kernel);程序代码(Program);初始化模式;启动运行。
(3)驱动语音卡的正常操作。接收处理摘挂机中断,将SLIC置于正确状态;配置CODEC芯片的各通道收发数据时隙以及CODEC芯片的增益控制;接收处理AC48302数据包处理中断,AC48302每处理完一个语音数据包就通过中断方式通知路由器CPU读取当前Buffer中的数据或向Buffer写入下一个数据包。
本文采用的是FXS接口,只要对CODEC后面部分电路稍加改动即可实现FXO或E&M接口功能。目前,该语音卡方案在路由器产品中已获广泛采用。
免责声明: 凡注明来源本网的所有作品,均为本网合法拥有版权或有权使用的作品,欢迎转载,注明出处。非本网作品均来自互联网,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。