基于DSP的动态会议信号产生器的实现
李超,梁越
摘要:在通讯系统中,电话会议越来越显现其重要的功能.会议信号产生器是电话会议的核心部件.会议
信号对音频数据的实时处理要求很高,传统方式下使用的是专业会议芯片,但是价格昂贵.价格低廉的
DSP同样能很好的完成这种处理要求.文章结合具体系统详细描述了如何使用DSP芯片TMS320F206实现动
态会议信号产生器.实践表明,使用DSP芯片实现会议信号具有很强的灵活性和很高的性价比.
关键词:PCM编码;线性叠加;时隙
中图分类号:TN912.3文献标识码:A文章编号:1671-2250(2006)05-0058-03
收稿日期:2005-10-28
作者简介:李超,浙江万里学院基础学院讲师,工学硕士;梁越,浙江万里学院基础学院副教授.
在通讯系统中,电话会议有着很重要的功能.电话会议在工业生产指挥调度,应急指挥通讯中心,移动电话会议等方面都有着广泛应用.随着数字信号处理芯片的快速发展,其芯片的性能也快速提高,而价格却大幅度下降.所以完全可以使用DSP实现电话会议信号合成器.在具体的实现方案中,使用性价比优良的TI公司数字信号处理芯片TMS320F206实现了动态会议信号产生器.本文就如何使用DSP实现会议信号合成器作出了详细的实现方案.
1 TMS320F206简介
TMS320F206采用先进的改进型哈佛结构,其程序存储器和数据存储器具有各自的总线结构,包括PAB(程序地址总线)、DRAB(数据读地址总线)、DWAB(数据写地址总线)、PRDB(程序读总线)、DRDB(数据读总线)和DWEB(数据写总线).此总线结构结合四级流水线操作,使F206的处理能力达到最大.它主要具有如下特点:1)处理能力强.若时钟采用20MHz晶振,则指令周期为50ns,运算能力高达20MIPS;2)片内具有32K×16位的闪存存储器和4.5K×16位的RAM;3)地址映射分为4个可独立寻址的空间;4)资源丰富.具有1个同步串行口SSP、1个异步串行口ASP、1个软件可编程定时器(TIMER)以及大量中断资源和独特的JTAG接口.
2基本实现原理
音频流不象典型的视频流那样在空间/时间域占有唯一的位置,在同一时间和位置的信号元素叠加是没有任何意义的.人耳可以感知在同一空间/时间播放多个音频流.这就是会议信号合成的意义所在.通过会议信号的合成,将多路音频流的输入经过处理后,提供一个单输出信道输出合成音频.
[1]当多个音频源在一个空间播放时,人耳听到的声波是各个声源声波的线性叠加,这正是模拟音频信号合成的基础.该事实表明数字化后的语音进行合成也应当先将数字话的语音使用线性叠加的方式.假设有n路输入音频流进行混音,Xi(t)是t时刻的第i路输入语音的线性样本,则t时刻的混音值为:
m(t)=ΣXi(t),i=0,1,…,n-1.但在数字通讯系统中需要注意的是数字化的语音数据不是单纯的模拟信号的数字线性量化,由于带宽的需要,对于音频信号的非均匀量化采用压缩、扩张的方法,即在发送端对输入的信号进行压缩处理再均匀量化,在接收端再进行相应的扩张处理.目前国际上普遍采用A律13折线压扩特性和μ律15折线的压扩特性.我国规定采用A律13折线压扩特性.由于是非均匀量化,因此不能简第5期李超,梁越:基于DSP的动态会议信号产生器的实现
图1系统结构图
单地将数字音频信号叠加,而需要先将A律编码的数据转换成线性数字信号,经过线性叠加等方式处理完后的会议合成数字信号需要再转换成A律编码.这些算法都通过TMS320F206实现.TMS320F206通过同步口接收1条PCM 32路A律编码音频信号.将A律编码进行线性转换后通过线性叠加等算法将需要的时隙进行音频合成,之后将合成的会议音频转换成A律编码通过同步口发送.动态的会议产生包括新建或撤销会议组,去除或增加会议时隙.CPU通过串口发送这些动态命令到DSP,DSP接收后作出相应的处理.
3总体设计
在程序空间方面,TMS320F206利用FLASH存储器来存储程序,TMS320F206片内的32 KB FLASH存储器足以满足本设计系统的要求,不用再外接其他非易失性存储器,因此非常方便.使用TMS320F206作为会议信号处理芯片外部接口电路非常简单.芯片对外的接口仅有同步串口和异步串口.同步串口连接语音交互网络的PCM码流线,在实际应用中使用的交换网络芯片是MT8980.语音交换网络的输出PCM信号由TMS320F206的同步输入引脚接收,TMS320F206的同步输出引脚发送PCM信号到语音交换网络.
[2]异步串口与CPU的串口相连接接受动态会议处理协议帧.CPU通过串口发送命令指示DSP需要进行处理的会议时隙和处理总数.系统结构见图1.
4各功能模块的具体实现
4.1同步串口数据的接收和发送
TMS320F206有一个同步串口收发分别与交换网络MT8980相连,在本系统中使用的传
输速率是2Mbit/S.该串口具有4字深的FIFO收发存储器,以降低CPU的开销量.
同步串口有两种突发和连续两种工作模式,根据系统的具体情况,我们使用的是连续工作模式.对于同步串口数据的接收和发送,通过硬件中断实现.DSP有两个同步硬件中断:发送中断(XINT)和接收中断(RINT).本系统使用了接收中断,在进行接收一个时隙数据的同时发送一个时隙数据.通过设置SSPCR控制寄存器确定中断触发条件为:当FIFO缓冲器不空时产生中断.当中断产生时,跳转到中断服务程序完成以下内容:
(1)从同步串口读入一个A律字,其中包括了两个时隙的音频信号.
(2)分别将两个时隙的A律通过查表方式转换成线性值存入32字节深度的缓冲.
(3)将处理完成的A律会议信号同一时隙的数据从同步串口发送.
4.2异步串口数据的接收处理
通过DSP的串口接受CPU发送来的动态会议产生命令.为降低使用的复杂性,根据实际情况,系统使用的命令协议比较简单.一条命令固定使用三个字节.第一个字节固定使用0XAA表示命令的开始,第二个字节表示会议开始的时隙,第三个字节表示建立会议的总数.例如CPU发送一帧数据0XAA 0X0,0X5表示建立一组会议,将从第0号时隙开始的五条时隙音频数据进行会议合成.如果需要撤销该组会议发送0XAA,0X0,0X0即可.通过这种简单的协议方式,在接收CPU串口数据的同时就可以完成对协议
的分析.对分析完成的结果使用如下方式存储.使用32个字的RAM存储每个时隙开始的会议时隙总数.没有参加会议的时隙对应的存储器中存放0,参加的存放0XFF.如表1所示可以得知,系统召开了三组会60浙江万里学院学报2006年9月
图2会议信号合成流程图
议,其中第一组会议是从0号时隙到4号时隙,共5路.第二组会议是从7号时隙到9号时隙共3路.第三组会议从24号时隙到31号时隙共8路.
DSP使用异步串口的接收中断服务程序完成对CPU数据的接收和分析处理.本系统使用的是华邦78E52的串口以2400bps的波特率和DSP串口通讯.
表1时隙存储模式表
4.3动态会议的信号产生
根据音频信号的特点,在主程序中每25ms进行一次会议信号的处理.程序对表1中每一个时隙对应的会议总数存储器检查是否有时隙需要进行音频合成.如果检查到对应的数据不是0而且不是0Xff,则表示从该条时隙开始需要进行会议音频合成处理.循环检测其后的
会议总数条时隙对应的线性编码数据,找到其中线性数值最大的两条,将这两条时隙的线性叠加模拟会场中的发言用户.线性叠加后的数据经过A律转换之后存储到对应时隙的BUF中等待同步串口接收中断到来时发送.程序流程图如图2所示.
5结语
在程序设计过程中应当注意的一点是由于TMS320F206是16位的处理器,在发送和接受A律编码时,一次收到的是两个时隙的音频数据.需要进行适当的拆分和组合.笔者使用TMS320F206很好地实现了动态会议信号产生器.实现了会议最大双工数32方.或同时建立10组会议.实践证明使用DSP能够很好的实现会场模拟效果.
参考文献:
[1]周霖.DSP通信工程技术应用[M].北京:国防工业出版社,2004:301-315.
[2]杨行峻.语音数字信号处理[M].北京:电子工业出版社,1995:154-157.