多媒体网关系统中模拟电话语音卡的设计
扫描二维码
随时随地手机看文章
电话语音卡是构筑各种CTI应用系统的基础,它是一种用于电脑并能够实现语音处理的电脑插件。电话语音卡(简称语音卡)的主要功能是:通过计算机与电信网相连,提供拨号、振铃检测与控制摘挂机、信令检测、转接内线、监控录音、传真、数据传输、主叫号侦测等服务功能。作为实现语音处理的功能部件,语音卡一般都有与电话网的接口。与电话网不同的接口类型,可分为模拟语音卡和数字语音卡。
以下将介绍一个基于TMS320VC5402处理器(简称DSP5402)、AM79R79(SLIC)用户线路接口芯片和AM79Q02(SLAC)用户音频处理芯片及PCI9052 PCI桥接芯片所构成的模拟电话语音卡设计。
1 系统总体方案
在设计中,电话语音卡实现了16路话音的接续控制和成帧功能。系统通过PCI总线与DSP5402交互,对单板进行维护和管理;语音业务通过TDM(时分多路复用)总线连接;单板内部则由DSP5402完成对语音的接续控制和成帧功能。总体设计框图如图1所示。
2 硬件电路的设计
2.1 DSP5402简介
DSP5402是TI公司的54X系列16bit定点DSP,具有低功耗、高性价比的特点。具体特点如下:扩展地址模式最大可寻址到1M×16bit外部程序空间,4K×16bit片上ROM,16K×16bit片上双口RAM;指令集支持单指令循环和块循环,存储块移动指令提供高效的程序和数据存储器管理;片上硬件资源包括软件可编程等待状态发生器和可编程存储单元转换,连接内部振荡器或外部时钟源的锁相环(PLL)时钟发生器,两个多通道缓冲串口(McBPs),增强型8bit并行主机接口(HPI8),两个16bit定时器,6通道直接存储器访问(DMA)控制器;工作电源有3.3V和1.8V(内核);在3.3V供电(1.8V核心电压)下单周期定点指令的执行周期可达10ns(100MIPS)。
设计中DSP5402一方面通过PCI总线完成与主机的通信、数据交换,另一方面完成对语音的接续与成帧功能的控制,以及语音信号和信令处理功能。
因此DSP5402外围设计分两部分:
(1)DSP5402与PCI9052的硬件接口
完成DSP5402的HPI总线与PCI9052 LOCAL本地总线连接,主机从而可以通过PCI总线与DSP5402进行通信。首先通过HPI对DSP5402进行程序加载并启动,然后完成对语音板的监控操作。
当DSP5402与主机(HOST)交换信息时,HPI是主机的一个外围设备。它有如下特点:可访问所有片内RAM空间、HOST访问总是与DSP5402时钟同步、HOST和DSP5402均可访问片内RAM。
PLX公司的PCI总线控制芯片PCI9052完成PCI总线高速信号与LOCAL 侧本地设备资源的信息交互。它提供了本地总线与PCI总线的接口,避免用户直接面对复杂的PCI总线协议,提供高性能的从目标PCI接口板卡与PCI总线的连接;支持宽速率范围的本地总线,最高可达132 Mbps的传输速率;对PCI9052编程可实现复用/非复用的8位、16位、32位的本地总线接口。
设计中PCI9052本地总线采用非复用8位模式与HPI8总线匹配,CPLD完成PCI本地总线与DSP5402的HPI总线互连,如图2所示。其中具体信号定义如下:PCI本地侧地址信号(LA27、LA0、LA[1:2]),配合PCI本地侧读写信号LW/R#、地址使能信号ADS#及BLAST传输模式使能信号编码生成HPI控制信号(如片选信号HCS#、数据字高低字节选择信号HBIL、功能寄存器选择信号HCNTL[0:1]及读写信号HRD#、HWR#);HPI准备就绪信号HRDY产生PCI本地侧就绪信号READY#,可根据需要插入等待周期,达到实际时序要求;HPI中断信号HINT#触发PCI本地中断信号LINT#;HPI数据总线HD[0:7]通过CPLD电平匹配与PCI本地侧数据总线LD[0:7]连接。
(2)DSP5402与AM79Q02(SLAC)的硬件接口
选用AMD公司SLIC用户线路接口芯片AM79R79(简称SLIC)实现电话的接续各状态的转换,监视电话线的负载变化,实现摘机检测、馈电供给及振铃传送;与其实现无缝接口的SLAC用户音频处理芯片AM79Q02(简称SLAC)实现话音的A/D转换,并成帧到PCM码流中。SLAC提供的SPI MCU总线接口简化了与MCU的硬线连接,并且SLAC(提供完全的SLIC的控制总线)与SLIC可实现无缝连接,因此对SLIC的控制可完全简化为直接控制SLAC来间接完成,简化了硬件电路的设计,节省了用户的开发成本。
SPI接口包括时钟DCLK、片选及数据线DI/O,而没有读写方向控制线,对读写方向的控制则通过写单字节的读写命令字的bit0完成;读写命令字的bit7-bit1包含控制寄存器的地址信息,这样就可以完成对SLAC的寄存器操作。
另外,设计SLAC的SPI接口时序需特别注意:每次读写操作低使能有效至少维持8个DCLK周期,即完成一个字节的读写操作;当低使能有效少于8个DCLK周期时,则该读写忽略;当低使能有效在8~15个DCLK周期,则取倒数的8个DCLK周期为有效读写周期;当低使能有效大于15个DCLK周期,则会引起硬件复位。
图3是SLAC的MCU接口SPI总线时序图。
DSP5402有两个多通道缓冲串口(McBPs),McBPs有多种配置模式,可根据需要配置成高速主从SPI接口,考虑到以后功能扩展需要,设计中保留了McBPs;采取由软件读写通用I/O,模拟SPI时序并配合CPLD实现SPI接口,从而完成DSP5402与SLAC的硬件接口,并实现DSP5402对SLAC/SLIC单元的状态监视与控制。
2.2 PCI9052
PCI9052是PLX公司推出的一种PCI总线从设备接口芯片。它提供了方便的本地总线与PCI总线的接口,避免用户直接面对复杂的PCI总线协议。
2.3 AM79Q02与AM79R79
选用AMD公司SLIC/SLAC用户线路接口与音频处理、成帧电路。SLIC实现电话的接续各状态的转换,监视电话线的负载变化,实现摘机检测、馈电供给及振铃传送的功能;而SLAC实现话音的A/D转换,并成帧到8Mbps的PCM码流中。它还有如下特点:软配置SLIC输入阻抗、收发增益、回路损耗等线路参数; A/μ率编码或线性编码可选;PCM码流时隙再分配;单双8Mbps的PCM通道可选;支持四路SLIC控制与语音处理,缩小了电路板的尺寸、降低了成本;其中内部环回、音频发生电路,方便了电路的故障诊断与测试。
SLAC用户线路音频处理电路,如图4所示。
另外SLAC与MCU通信提供SPI接口,简化了与MCU的硬件连接;而且SLAC提供与SLIC无缝连接的SLIC控制与音频接口,因此直接控制SLAC以间接完成对SLIC的控制,简化了硬件电路和软件编程。
3 软件设计
软件设计分为如下两部分:目标板内驱动程序设计与主机程序设计(其中包括PCI驱动程序及主机应用程序开发)。
3.1 目标板内驱动程序设计
目标板内驱动程序可根据功能模块划分:系统自检、测试模块; SLAC/SLIC的控制模块,实现包括线路激活、振铃、待机和断线状态,摘挂机检测及检测门限可编程;与主机通信模块,实现主机对目标板的实时监控。
3.2 主机程序设计
这里将主机程序设计分为PCI驱动程序开发和主机应用程序开发两部分。
PCI驱动程序使用Jungo公司的驱动程序生成软件KernelDriver,使用十分方便。利用KernelDriver中的驱动程式生成向导,根据需要生成驱动程序代码;在MS-VC++编译环境编译刚刚生成的驱动CPP代码,调试没问题了,PCI驱动程序开发也就完成了。
主机应用程序则是在PCI驱动程序之上,调用相关的API函数对PCI设备进行操作,完成主机对目标板的程序加载及对其状态进行实时监控操作。
本方案设计中,CPU选用了性价比很高的TMS320VC5402,其CCS开发环境配合JTAG调试,开发方便;选择可无缝连接使用的用户线路接口芯片AM79R79、用户音频处理芯片AM79Q02以及灵活配置的PCI桥接芯片PCI9052,大大降低了软硬件开发难度,加快了开发进度,达到了降低开发成本的最终目的。