多通道语音处理芯片的控制方法

文档序号:7674610阅读:360来源:国知局
专利名称:多通道语音处理芯片的控制方法
技术领域
本发明涉及一种计算机网络通信技术,更确切地说是涉及一种在高密度网关中,MODEM池和IP层间进行多通道控制的方法,以保证语音数据流的通畅传送。
参见

图1,图中示出IP中继媒体网关在网络中的位置与作用。
利用IP技术传输语音的系统结构,包括IP网络和与IP网络连接的IP中继媒体网关、与IP中继媒体网关连接的电路交换网络(SCN)、与电路交换网络(SCN)及MGC/软交换连接的信令网关,和与IP中继媒体网关连接的媒体网关控制器(MGC/软交换)。
在IP电话中继媒体网关中,网关起到IP网络和电路交换网络(SCN)之间媒体映射和编解码转化的作用。在电路交换网络(SCN)去往IP网络的方向,完成终结交换网络设备(中继线路、环路等)的PSTN(公众电话交换网)信息流及信令等的功能,和将媒体流分组化并分配到分组网上进行传输;在IP网络去往电路交换网络(SCN)的方向,IP中继网关则完成与之相反的功能。
在传统电路交换线路中,传输的一般是经过A-律(Law)或U-律(Law)压缩的脉冲编码调制(PCM)码流,其传输速率为64kbits/s。如果不经编码,直接将其转化为IP分组格式再传输,则需占用相当大的带宽,是很不经济的。为此,IP中继媒体网关在电路交换网络(SCN)和IP网络的分组之间设置了语音编解码模块,先将PCM语音数据压缩成占用带宽很小的压缩编码数据再进行传输。IP中继媒体网关一般应支持G.729,G.723.1等语音压缩(解压缩)算法,由于其处理过程很复杂,因此通常采用具有很强数字信号处理能力的数字信号处理器(DSPDigital Signal Processor)来完成。由于IP中继媒体网关处在整个网络的上层,担负着大量的SCN和IP网络之间的语音编解码转换工作,因此在IP中继媒体网关中就存在着大量的DSP器件,并由主控CPU与这些DSP器件组成分布式处理系统,主控CPU完成控制功能,DSP器件完成编解码功能。通常将由多块DSP器件组成的DSP器件组称作MODEM池(MODEM POOL)。
参见图2,是利用数字信号处理器处理多通话线路编解码时的结构示意框图,即MODEN池与DSP器件间的对应关系。为了提高可接入的IP电话密度,通常让每个DSP器件处理多条通话线路的编解码,每条通话线路称为一个通道(channel)。图中SPI是服务器接口,接口一侧共有(m×n)个通道(channel),该(m×n)个通道通过服务器接口(SPI)汇聚为统一编号的通道资源,每一块DSP(DSP1,DSP2,...,DSPn)处理m条通话线路的编解码,其中第一块DSP1处理第1至第m条通话线路的编解码,第二块DSP2处理第(m+1)至2m条通话线路的编解码,...,第n块DSPn处理第[m×(n-1)+1]至(m×n)条通话线路的编解码,每一块DSP均处理自SPI至时分复用(TDM)方向(down)的编码及时分复用(TDM)至SPI方向(up)的解码,供给媒体网关统一调度。
下面说明MODEM池(DSP1或DSP2或...或DSPn)的接口功能。
由于每块DSP支持多个(m)通道,而每个DSP和主控CPU之间通过并行接口总线连接,每块DSP每完成一个通道的编解码后,都会触发主控CPU的接收中断,指示主控CPU接收数据。
主控CPU基本采用两种方式向DSP传送数据,一种是中断方式,另一种是查询方式。中断工作方式是当主控CPU有数据要发送给DSP时,马上触发一个发送中断,然后将数据写入到DSP的并行总线上;而采用查询工作方式时,主控CPU定时查询各通道是否有数据要发送到DSP,如果有数据发送,则将数据写入到DSP的并行总线上。
具体实施时可以采用完全中断方式和中断与查询相结合方式的数据收发流程。
结合参见图3,是收发全部采用中断方式的中断服务程序。
进入中断服务程序;查询是否有接收中断,有接收中断时则进行芯片数据接收,无接收中断时则进一步查询是否有发送中断,有发送中断时则进行芯片数据发送,无发送中断时则退出中断服务程序。
上述流程表明,在执行程序之前需给每一块DSP编号和给每一块DSP的多个通道编号,发送或接收操作通过判断中断标志位进行,即当中断标志位为发送中断时,从主控CPU的发送缓冲区中取出数据发送到DSP芯片的相应通道,当中断标志位为接收中断时,从DSP芯片相应通道中取出数据放到主控CPU的接收缓冲区中。
完全中断方式的优点是数据发送快,只要网络侧有数据来就立即发送到DSP,不会造成延时,其缺点是每来一个数据包都要触发一次中断,这种方式在高密度应用时会造成中断过于频繁,影响程序的稳定性,严重时甚至导致死机。
结合参见图4、图5,分别是中断接收方式及查询发送方式的数据收发流程。
参见图4,数据中断接收,进入中断服务程序;查询是否有接收中断,有接收中断时则进行芯片数据接收,无接收中断时则退出中断服务程序。
图4流程表明,在执行程序之前需给每一块DSP编号和给每一块DSP的多个通道编号,接收数据操作通过判断中断标志位进行,即当中断标志位为接收中断时,从DSP芯片相应通道中取出数据放到主控CPU的接收缓冲区中。
参见图5,是一般采用的查询发送数据流程,进入数据发送程序;查询当前通道是否可以发送数据,若不可以发送数据,则等待一定时间后继续查询该通道是否可以发送数据,直至查询结果为可以发送数据时,进行当前通道数据发送;对下一个(当前通道号加1)通道,继续执行上述过程,直至对所有通道都执行完数据发送后,结束数据发送流程。
图5流程表明,该方式是按通道轮询进行的。在执行程序之前需给每一块DSP的每一个通道进行统一编号,发送数据通过判断DSP芯片的数据允许接收端进行,即当DSP芯片的数据允许接收端有效时,从主控CPU的接收缓冲区中取出数据发送到DSP芯片的相应通道,如果DSP芯片的数据允许接收端无效,则一直等待,直到DSP芯片允许接收主控CPU数据时,再从主控CPU的发送缓冲区中取出数据发送到DSP芯片的相应通道。
因查询方式是定时进行的,因此定时查询方式的优点是使数据发送过程完全可控,不会造成中断过度频繁,从而保持系统稳定工作;其缺点是由于CPU主控板,需定时地将IP网络侧的数据包发送到DSP,从而对数据发送造成一定的时延(但只要将定时查询的时间间隔控制到小于各数据包到达的时间间隔,在控制得当的情况下,这种延时还是可以忽略的)。
以上两种数据收发方式都存在一个共同的缺点,那就是忽略了DSP芯片的特性。DSP在多通道应用时,每个DSP都支持多个通道,DSP内通道数据传送一般都采用直接存储器存取(DMA)方式,从数据发送至DSP接口再到DSP处理完当前数据并允许下一次传送之间需要一定时间,为此,发送完一个通道数据到再发送下一个通道数据之间,需要插入一定的等待周期,否则会导致后面通道数据没有发送机会的情况发生,即造成数据发送阻塞。然而,这种插入等待周期却白白占用了CPU资源,大大影响了CPU的处理能力,特别是在数据量大时,这种影响就不可忽视了。
实现本发明目的的技术方案是这样的一种多通道语音处理芯片的控制方法,包括在中断标志位为接收中断时,从n个各含有一条以上通道的语音处理芯片中读出数据放在主控CPU数据缓冲区中的中断接收过程,和在n个各含有一条以上通道的语音处理芯片允许接收主控CPU数据时,从主控CPU的发送缓冲区中取出数据发送到所述语音处理芯片相应通道中的数据查询发送过程,其特征在于所述的数据查询发送过程是以依次查询n个语音处理芯片中的各一个通道为一个查询周期,在m个查询周期中分别依次查询一个语音处理芯片中的一条通道,直至对n个语音处理芯片的全部通道轮询一遍后结束,查询周期m为语音处理芯片所含的最大通道数。
所述的依次查询包括从最小编号至最大编号的n个语音处理芯片的轮询,和各语音处理芯片内、通道编号从最小编号至最大编号的m条通道的轮询。
所述的m个查询周期中,每一查询周期查询的是n个语音处理芯片中具有相同编号的通道,对无相同编号的通道进行轮空操作。
所述的m个查询周期间无插入等待时间,是连续执行的。
当n=1且m=2时,在两个查询周期之间插入等待时间。
本发明的方法,是将传统技术方案中按通道轮询的数据发送方式改为按语音处理芯片(DSP)轮询的数据发送方式,每块DSP的数据发送与其上一次数据发送之间总相差n=1数据发送时间,因此本发明的方法与现有技术相比,可以做到多芯片、多通道应用时的数据无阻塞高效率地发送。
结合参见图6,为本发明所采用的发送流程。图中用chipn表示DSP的芯片编号,用celln表示芯片内的逻辑通道编号,用m表示每个DSP芯片内的最大通道数。
步骤1,进入数据发送程序;步骤2,轮询从编号为1的DSP芯片开始(chipn=1);步骤3,轮询从编号为1的DSP芯片(chipn=1)且编号为1的逻辑通道开始(celln=1);步骤4、5,查询当前DSP芯片是否可以接收数据,若不能接收数据,则等待一定时间后重新查询当前DSP芯片是否可以接收数据,直至可以接收数据时;步骤6,将当前主控CPU缓冲区编号为chipn×m+celln的逻辑通道数据发送到当前DSP芯片的对应通道中;步骤7,对当前操作芯片编号加1(chipn=chipn+1),即进入对下一个DSP芯片的操作;
步骤8,判断是否所有芯片的通道(celln)发送完毕,未完毕则返回步骤4执行,完毕则继续步骤9的操作;步骤9,将操作的芯片当前通道编号加1(celln=celln+1),进入与一查询周期,对下一编号通道的操作;步骤10,判断是否处理完芯片内的所有通道,若未处理完则返回步骤4,处理完毕则执行步骤11,结束发送程序。
上述操作中,若各芯片内的逻辑通道数不相等,则在查询周期中,对无相应编号逻辑通道的芯片,进行的是数据发送的空操作。
上述数据发送写成伪代码方式时为<pre listing-type="program-listing">datasend( )  {   for(celln=1;celln<=m;celln++)//celln为每个DSP中通道号   {     for(chipn=1;chipn<=n;chipn++)//chipn是DSP芯片编号   {  if(芯片允许接收主机的数据)   {  从发送缓冲区中取数据发送到相应通道;   }   else(等待到芯片允许接收主机的数据)   {  从发送缓冲区中取数据发送到相应通道;   }   }  }&lt;!-- SIPO &lt;DP n="7"&gt; --&gt;&lt;dp n="d7"/&gt;   }</pre>从上述流程可以看出,本处理流程主要将按通道轮询的数据发送方式改为按芯片轮询的数据发送方式。主机先查询第一块DSP是否允许数据发送,因为是定时处理,上一次发送的数据肯定已经被取走,因此第一次查询总是允许发送,主机将数据发送到第一块DSP;接下来查询第二块DSP,情况也是如此,直到第n块DSP,数据都可以无阻塞、无延时传送。接下来开始第二轮查询,发送每个DSP中的第二个通道的数据,由于操作每块DSP与上次数据发送之间相差n-1次数据发送,因此数据已经被取走,所以也不用插入等待周期,直到所有DSP、所有通道被查询完,数据发送都可以做到无阻塞。
在特殊情况下,即当查询周期只在同一个芯片的两个相邻通道间进行时,由于轮询完一块芯片一条通道的时间很短,在查询第二个通道时,上一通道的数据有可能还未取走,因此在查询周期间必须插入等待时间,但在出现这种情况时,主控CPU的负荷也很轻,因此插入一些等待时间不会影响CPU处理。
本发明的按芯片轮询的处理方法,特别适用于多芯片、多通道应用与处理,使多通道数据可以无阻塞、无延时地传送。
本发明经过仿真与模拟,实践结果表明确实可靠可行。
权利要求
1.一种多通道语音处理芯片的控制方法,包括在中断标志位为接收中断时,从n个各含有一条以上通道的语音处理芯片中读出数据放在主控CPU数据缓冲区中的中断接收过程,和在n个各含有一条以上通道的语音处理芯片允许接收主控CPU数据时,从主控CPU的发送缓冲区中取出数据发送到所述语音处理芯片相应通道中的数据查询发送过程,其特征在于所述的数据查询发送过程是以依次查询n个语音处理芯片中的各一个通道为一个查询周期,在m个查询周期中分别依次查询一个语音处理芯片中的一条通道,直至对n个语音处理芯片的全部通道轮询一遍后结束,查询周期m为语音处理芯片所含的最大通道数。
2.根据权利要求1所述的一种多通道语音处理芯片的控制方法,其特征在于所述的依次查询包括从最小编号至最大编号的n个语音处理芯片的轮询,和各语音处理芯片内、通道编号从最小编号至最大编号的m条通道的轮询。
3.根据权利要求1所述的一种多通道语音处理芯片的控制方法,其特征在于所述的m个查询周期中,每一查询周期查询的是n个语音处理芯片中具有相同编号的通道,对无相同编号的通道进行轮空操作。
4.根据权利要求1所述的一种多通道语音处理芯片的控制方法,其特征在于所述的m个查询周期间无插入等待时间,是连续执行的。
5.根据权利要求1所述的一种多通道语音处理芯片的控制方法,其特征在于在n=1且m=2时,在两个查询周期之间插入等待时间。
全文摘要
本发明涉及一种多通道语音处理芯片的控制方法,包括在中断标志位为接收中断时,从n个各含有一条以上通道的语音处理芯片中读出数据放在主控CPU数据缓冲区中的中断接收过程,和在n个各含有一条以上通道的语音处理芯片允许接收主控CPU数据时,从主控CPU的发送缓冲区中取出数据发送到所述语音处理芯片相应通道中的数据查询发送过程。本发明的数据查询发送过程进一步包括以依次查询n个语音处理芯片中的各一个通道为一个查询周期,在m个查询周期中分别依次查询一个语音处理芯片中的一条通道,直至对n个语音处理芯片的全部通道轮询一遍后结束,查询周期m为语音处理芯片所含的最大通道数。在多芯片、多通道应用时,可无阻塞、无延时传送数据。
文档编号H04M3/00GK1414752SQ0210044
公开日2003年4月30日 申请日期2002年1月30日 优先权日2002年1月30日
发明者张军 申请人:华为技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1