DIY编程器网

 找回密码
 注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 106|回复: 0
打印 上一主题 下一主题

基于DSP的IP电话设计

[复制链接]
跳转到指定楼层
楼主
发表于 2012-1-17 23:23:19 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
引言
    传统的电话网是以电路交换的方式传输语音信号的,它需要的基本带宽为64kbit/s。据统计,在正常通话情况下,大约只有40%的时间为有声期,其余时间电路均为空占,网络带宽利用率不高。随着计算机技术的不断发展,尤其是国际互联网(Internet)的不断完善,基于分组交换的数据通信成为最重要的通信方式。而要在基于IP的分组网络上传输语音,就必须对模拟的语音信号进行特殊处理,使处理后的信号可以适合在面向无连接的分组网络上传输,这就是分组语音技术。本文介绍的就是一种基于TMS320VC5409的IP电话设计。
    G..728编码标准
    语音编码技术是IP电话的核心技术之一,编码质量的好坏直接关系到IP电话的通话质量。   
    G .728标准的语音编码算法是16kbit/s的声码器编码标准,采用低时延码本激励线性预测(LD-CELP)技术。线性预测器使用的是反馈型后向
自适应技术,预测器系数是根据上一帧的语音量化数据进行更新的,因此算法时延较短,为0. 625ms,相当于5个采样点时间,这也是G .728的帧长时间。由于使用反馈型自适应技术,因此预测器系数不需传送,唯一需要传送的是激励信号量化值,也就是码本索引值。G .728标准的语音编码算法的码本总共有1024个矢量,索引需占10个比特,因此其比特率为10/0.625=16kbit/s。
G .728标准的语音编码的主要特点有:
*算法时延短,仅为0. 625ms;
*一路编码时延小于2ms;
*传输比特率为16kbit/s;
*MOS值为4. 173,达到了长途通信质量。
    由于G .728标准的语音编码算法的时延短,语音传输比特率可以满足IP电话的应用要求,所以我们选用G . 728标准的语音编码算法作为IP电话的编码算法。
    硬件系统设计
    系统的主要作用是充分利用DSP高速数据处理能力,减轻计算机CPU的负担;语音的录入和输出系统也单独分离出来,这样可以更好地和DSP进行数据传输,减少不必要的中间环节,减少时延。最后,通过高速的PCI总线,将数据传送给计算机。系统的总体框图如图1所示,各模块的具体功能见表1所示。



图1 系统框图
    DSP与FLASH的通信
    由于TMS320VC5409的I/0接口电压为3. 3V,而AM29F101B的接口电压为5V,所以在接口部分需要进行电压转换,并且AM29F101B的片选信号()和输出使能信号()需要地址译码。这些工作均由一片复杂的可编程逻辑器件(CPLD)来完成。
    由于AM29F101B的接口速度较慢,所以TMS320VC5409和AM29F101B之间的接口必须插入软件等待状态,具体要插入的软件等待状态数目可以由数据手册计算得到或者是调机时由试验得到。TMS320VC5409与AM29F101B之间的接口电路如图2所示。



图2 DSP和FLASH的接口电路
                          
                       
                          
                                DSP与ADC、DAC之间的通信
    本系统所选用的G.728标准的语音编码算法需要8kHz的采样速率,所以这里我们对ADC和DAC要求就是最高采样率或转换时间不低于8kHz。
    根据语音信号的特点,我们选用TI公司的TLC32044芯片,这是一片集成了ADC和DAC功能的芯片。它的最高转化速率为19.2kHz,转换位数为14位,输入电压带范围可调,有标准同步串口,还有输入滤波器和输出重构滤波器,这样可以省去模拟滤波器的设计。TMS320VC5409与TLC32044的接口电路如图3所示。



图3 DSP与DAC、ADC的接口电路



图4 DSP与双端口RAM的接口电路



图5 PC19025双端口RAM接口电路
  DSP与双端口RAM之间的通信
    为了体现PCI总线速度快的优点,我们选用速度较快的双端口RAM CY7C133-25,最大传输速率为25ns。双端口RAM在DSP的数据空间的地址映射为8000H-87FFH。
    这里需要强调的是双端口RAM的BUSY信号。我们并不使用这个信号,因为我们分别对双端口RAM的不同部分进行操作,所以避免了可能发生的任何冲突,因此省去了BUSY信号,BUSY信号悬空。电路的电压转换和地址译码同样由CPLD来完成。

    PCI9052与双端口RAM之间的通信
    DSP的任务是完成语音的编码和解码,然后再通过PCI总线与计算机进行数据交换。这里我们使用了PCI接口芯片PCI9052。所以,问题就变成了DSP与PCI9052之间的通信。DSP与PCI9052之间用一片双端口RAM(容量为2k×16bit)进行数据交换。
    由于PCI9052具有5个局部地址空间和4个局部设备片选信号,所以连线变得相当简单,我们只需要将双端口RAM映射到其中一个局部地址空间,然后使用其中的一个片选信号连接到双端口RAM的,最后将PCI9052的读写信号(R/W)和对应连接到双端口RAM的R/W和。这样就省去了地址译码等外围逻辑电路。
    软件系统设计
    IP电话系统要实
现的算法就是语音编码算法,还要完成与计算机的数据交换。软件部分的主要作用是用嵌入式操作系统中的TCP/IP协议对需要传送的语音编码信号进行打包,再通过计算机上的网卡将数据通过Internet传送到接收方,并把接收到的TCP/IP包还原为原来的语音编码信号,最后通过PCI总线传输给DSP进行语音解码。
    结语
    实践证明,本系统设计方案的主要优点是对计算机硬件的要求不高,处理速度快,语音的输入输出系统单独集成,信噪比(SNR)高,具有相当的适用和推广价值。
                          
                       
                          
                               
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友 微信微信
收藏收藏 分享分享 支持支持 反对反对
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|文字版|手机版|DIY编程器网 ( 桂ICP备14005565号-1 )

GMT+8, 2024-11-16 21:27 , 耗时 0.084026 秒, 19 个查询请求 , Gzip 开启.

各位嘉宾言论仅代表个人观点,非属DIY编程器网立场。

桂公网安备 45031202000115号

DIY编程器群(超员):41210778 DIY编程器

DIY编程器群1(满员):3044634 DIY编程器1

diy编程器群2:551025008 diy编程器群2

QQ:28000622;Email:libyoufer@sina.com

本站由桂林市临桂区技兴电子商务经营部独家赞助。旨在技术交流,请自觉遵守国家法律法规,一旦发现将做封号删号处理。

快速回复 返回顶部 返回列表