一种实现数字信号处理器之间相互通信的装置和方法

文档序号:7590888阅读:103来源:国知局
专利名称:一种实现数字信号处理器之间相互通信的装置和方法
技术领域
本发明涉及数字信号处理技术,特别是涉及一种实现数字信号处理器之间相互通信的装置和方法。
背景技术
数字信号处理器(DSP)是一种适合于进行实时数字信号处理运算的微处理器,其主要应用是实时快速地实现各种数字信号处理算法。DSP的优势为数据处理能力强、高运算速度、能实时完成复杂计算、单周期多指令功能、脉宽调制(PWM,Pulse-Width Modulation)分辨率高、采样周期短等。因此,在当今数字化时代背景下,DSP已在很多科学和工程领域得到了广泛的应用,并成为通信、计算机、消费类电子产品等领域的基础器件。
为了提高系统的处理性能,有时需要在一块单板上使用多片DSP来满足大量的数据处理需求,因此,就出现了多个DSP之间相互通信的问题。
图1是现有技术中DSP之间相互通信时的连接示意图。如图1所示,为了实现DSP之间的相互通信,现有技术将一块单板上使用的所有DSP与一片中央处理器(CPU)相连,DSP之间的通信数据均通过CPU转发,各DSP与CPU在数据流方向上形成星状结构。
图2是现有技术中DSP与CPU之间的传输数据封装成消息包的封装格式示意图,图3是现有技术实现DSP之间相互通信的流程图。如图2和图3所示,现有技术实现DSP之间相互通信的具体过程包括以下步骤步骤301DSP接收到CPU发来的数据接收命令后,将其通信数据封装成消息包,消息包分为消息头和消息体两部分。其中,消息头包括消息头标志(Flag)、源CPU标识(Src CPUID)、目的CPU标识(Dest CPUID)、消息包长度(Length)和消息包类型(Type)。并且,Src CPUID表示发送消息包的源DSP编号,Dest CPUID表示消息包应发送到的目的DSP编号。消息体为DSP的通信数据。
步骤302DSP将封装后的消息包发送给CPU。
步骤303CPU根据该消息包的消息头中Dest CPUID确定该消息包的目的DSP,然后将该消息包发送给目的DSP。
步骤304目的DSP获得消息包后,根据消息头中的Src CPUID确定发送该消息包的源DSP。
可见,现有技术存在以下缺点1、各个DSP之间相互通信的数据必须通过CPU来转发,因此对CPU的处理能力提出了较高的要求。
2、当DSP数目较多,且DSP间通信数据的流量较大时,会占用大量的CPU资源。
3、CPU必须依靠执行软件指令完成接收和转发DSP之间通信数据的工作,因此,增加了数据发送的路径时延,大大降低了DSP之间的通信速率,影响了系统的性能。

发明内容
有鉴于此,本发明的目的在于提供一种实现数字信号处理器之间相互通信的方法,使其能较少地占用CPU的资源,并提高DSP之间的通信速率。
本发明的另一目的在于提供一种实现数字信号处理器之间相互通信的装置,使CPU从DSP之间的数据转发工作中释放出来,并提高DSP之间的通信速率。
为了达到上述目的,本发明的技术方案是这样实现的一种实现数字信号处理器之间相互通信的方法,应用于多于一个的数字信号处理器DSP之间进行通信的系统中,该方法包括设置交换网片模块,将每个时钟脉冲周期划分为若干个时隙,第一DSP在一个时隙向交换网片模块发送数据,交换网片模块在后续时隙将该数据发送给第二DSP。
将所述时钟脉冲周期划分为若干时隙单元,每个时隙单元中包括与DSP个数相等且分别与各DSP相对应的不同时隙;所述第一DSP在一个时隙单元中与第二DSP对应的时隙向交换网片模块发送数据;所述交换网片模块在后续时隙单元中与第一DSP对应的时隙将该数据发送给第二DSP。
该方法进一步包括在交换网片模块中设置存储各个DSP发来数据的存储区,并将每个存储区划分为与各个时隙对应的存储子区;所述交换网片模块在所述一个时隙单元中与第二DSP对应的时隙接收到第一DSP发来的数据后,直接将该数据保存在存储第一DSP发来数据的存储区中与第二DSP对应时隙所对应的存储子区内,并在所述后续时隙单元中与第一DSP对应的时隙时,将该存储子区内保存的数据发送给第二DSP。
该方法进一步包括所述交换网片模块包括至少一个交换网片,每个交换网片同时接收并转发每个DSP数据发送区不同地址中的数据。
所述交换网片模块包括两个交换网片,其中,第一交换网片接收并转发存储在各个DSP数据发送区奇地址中的数据,同时,第二交换网片接收并转发存储在各个DSP数据发送区偶地址中的数据。
一种实现数字信号处理器之间相互通信的装置,应用于多于一个DSP之间进行通信的系统中,其特征在于,该装置包括交换网片模块和至少包括两个DSP的DSP模块,其中,DSP模块中的第一DSP,在时钟脉冲周期的一个时隙发送数据至交换网片模块;交换网片模块在该时隙接收DSP模块中的第一DSP发来的数据,并在后续时隙将该数据发送给DSP模块中的第二DSP;DSP模块中的第二DSP,在所述后续时隙接收交换网片模块发来的数据。
所述时钟脉冲周期中包括若干时隙单元,每个时隙单元中包括与DSP个数相等且分别与各DSP相对应的不同时隙;所述DSP模块中的第一DSP在一个时隙单元中与第二DSP对应的时隙向交换网片模块发送数据;所述交换网片模块在后续时隙单元中与第一DSP对应的时隙将该数据发送给第二DSP。
所述交换网片模块中进一步设置有存储各个DSP发来数据的存储区,且每个存储区中包括与各个时隙对应的存储子区;所述交换网片模块在所述一个时隙单元中与第二DSP对应的时隙接收到第一DSP发来的数据后,直接将数据保存在存储第一DSP发来数据的存储区中,与第二DSP对应时隙所对应的存储子区内,并在所述后续时隙单元中与第一DSP对应的时隙时,将该存储子区内的数据发送给第二DSP。
所述交换网片模块包括至少一个交换网片,每个交换网片同时接收并转发每个DSP数据发送区不同地址中的数据。
所述交换网片模块中包括两个交换网片,其中,第一交换网片接收并转发存储在各个DSP数据发送区奇地址中的数据,第二个交换网片接收并转发存储在各个DSP数据发送区偶地址中的数据。
可见,本发明的装置和方法具有以下优点1、使用交换网片转发DSP之间的通信数据,使得CPU从DSP之间大量的数据转发工作中释放出来,从而减少了对CPU资源的占用;2、使用交换网片转发DSP之间的通信数据为硬件操作,即交换网片无需执行软件指令,只需根据各个时隙接收或转发数据,因此,大大地提高了处理效率,降低了数据传输时延,提高了DSP之间的通信速率;
3、本发明使用两个交换网片,增大了通信带宽,进一步提高了DSP之间的通信速率;4、用交换网片取代CPU来转发DSP之间的通信数据,由于交换网片与CPU相比价格低廉,因此降低了成本;5、本发明中交换网片分配各个DSP对应时隙的方式为半永久连接方式,即与各个DSP对应时隙的分配情况可通过编程修改,从而可根据实际业务情况灵活分配时隙资源,并可适应对DSP数量的调整,因而满足了DSP之间通信业务的变化需求。


图1是现有技术中DSP之间相互通信时的连接示意图。
图2是现有技术中DSP与CPU之间的传输数据封装成消息包的封装格式示意图。
图3是现有技术实现DSP之间相互通信的流程图。
图4是实现本发明的实施例的装置结构示意图。
图5是本发明中DSP通信端口管脚上的时序图。
图6是实现本发明的实施例中在传输一帧数据时间内的时隙单元示意图。
图7是本发明中DSP存储其发送数据的示意图。
图8是本发明中交换网片SD539保存DSP发来数据的示意图。
图9是实现本发明的实施例的流程图。
图10是本发明采用两个交换网片的装置结构示意图。
具体实施例方式
本发明的核心思想是将外部提供的时钟脉冲信号的每个周期划分为与DSP模块中每个DSP对应的时隙,在时钟脉冲周期中与第二DSP对应的时隙时,交换网片模块接收第一DSP发给第二DSP的数据,并且,交换网片模块在与第一DSP对应的时隙将该数据发送给第二DSP,第二DSP根据其接收到数据的时隙确定与其通信的为第一DSP。
为了使本发明的目的、技术方案和优点更加清楚,下面结合附图及具体实施例对本发明作进一步地详细描述。
在本实施例中,外部提供16MHz的时钟脉冲信号,并且,提供2KHz的DSP帧同步信号。各DSP的数据以帧为单位连续发送。
图4是实现本发明的实施例的装置结构示意图。如图4所示,本实施例的装置包括DSP模块401和交换网片模块402,DSP模块401中包括16个DSP,并依次标记为DSP0至DSP15,每个DSP使用全双工通信端口McBSP,分别与交换网片模块802中型号为SD539的交换网片相连。
图5是本发明中DSP通信端口管脚上的时序图,图6是实现本发明的实施例中在传输一帧数据时间内的时隙单元示意图。如图5和图6所示,一个2KHz的DSP帧同步信号表示DSP发送一帧数据的开始,而时钟脉冲周期为16MHz,因此,在传输一帧数据的时间内时钟脉冲的个数为16M/2K=8K个,又1个字节是8位,1K=1024,那么在一个时隙通道上,传输一帧数据的时间内可以传输8K=1024个字节的数据,按照4个字节一个时隙进行划分,则在传输一帧数据的时间内有1024/4=256个时隙,将256个时隙划分为16个时隙单元,依次标记为时隙单元0至时隙单元15,又256/16=16,即可将每个时隙单元划分为16个时隙,依次标记为时隙0至时隙15,又DSP的个数为16,所以将每个DSP分别与各个时隙单元中与其编号相同的时隙进行对应,即DSP0对应每个时隙单元中的时隙0,DSP1对应每个时隙单元中的时隙1,依此类推,至DSP15对应每个时隙单元中的时隙15。
图7是本发明中DSP存储其发送数据的示意图。如图7所示,以DSP0为例,将DSP0存储其发送数据的发送缓冲区划分为15个发送区,依次标记为发送1区至发送15区,并依次存储要发送给DSP1至DSP15的数据,同时,将每个发送区划分为16个Word区,标记为Word0区至Word15区,依次存储在时隙单元0至时隙单元15中发送的数据。
图8是本发明中交换网片SD539保存DSP发来数据的示意图,如图8所示,将SD539用于存储各个DSP发来的数据的缓冲区划分为16个存储区,依次标记为存储区0至存储区15,并依次存储DSP0至DSP15发来的数据,同时,将每个存储区划分为16个时隙区,依次标记为时隙0区至时隙15区,依次存储在每个时隙单元的时隙0至时隙15中SD539接收的数据,例如,在SD539存储区1的时隙0区中保存DSP1在每个时隙单元的时隙0发来的数据。
在本实施例中,若DSPi(i=0,1..15)需要向DSPj(j≠i,j=0,1..15)传输数据,则DSPi在与DSPj对应的时隙(j+N×16)(N=0,1..15)上将其数据发送给交换网片SD539,交换网片SD539则在与DSPi对应的时隙(i+N×16)(N=0,1..15)上将数据发送给DSPj,DSPj从接收时隙(i+N×16)上得知接收到的数据是DSPi发来的。这里,所述N是指在传输一帧数据的时间内包含的各个时隙单元的序号。
在本实施例中,各DSP在时隙单元0中的相应各个时隙向交换网片发送数据,并且各DSP在时隙单元1中的相应各个时隙接收交换网片发来的数据,从而实现16个DSP之间的相互通信。
图9是实现本发明的实施例的流程图。结合图4和图9,在本发明装置的基础上,本发明方法实现DSP之间相互通信的具体过程包括以下步骤步骤901在时隙单元0中的时隙0,DSP模块401中的DSP1至DSP15在其发送缓冲区中找到用于保存发送给DSP0数据的发送0区,接着在发送0区中找到保存在时隙单元0期间发送数据的Word0区,然后判断Word0区中是否有数据,如果有,则从Word0区中读取数据,并将读取的该有效数据发送给交换网片模块402中的交换网片SD539,如果没有,则将无效数据帧发送给交换网片SD539;交换网片SD539将接收到的数据分别保存在存储各个DSP数据的存储区中时隙0区内,例如SD539将DSP1发来的数据保存在存储区1的时隙0区中,将DSP2发来的数据保存在SD539存储区2的时隙0区中,依此类推,直到保存完各个DSP发来的数据。
这里,因为在时隙0,所以DSP0不发送数据,而其它DSP则将与DSP0的通信数据发送给交换网片SD539。
步骤902在时隙单元0的时隙1,DSP模块401中的DSP0和DSP2至DSP15在其发送缓冲区中找到用于保存发送给DSP1数据的发送1区,接着在发送1区中找到保存在时隙单元0期间发送数据的Word0区,然后判断Word0区中是否有数据,如果有,则从Word0区中读取数据,并将读取的该有效数据发送给交换网片模块402中的交换网片SD539,如果没有,则将无效数据帧发送给交换网片SD539;交换网片SD539将接收到的数据分别保存在存储各个DSP数据的存储区中时隙1区内,例如SD539将DSP2发来的数据保存在SD539存储区2的时隙1区中,依此类推,直到保存完各个DSP发来的数据。
这里,因为在时隙1,所以DSP1不发送数据,而其它DSP则将与DSP1的通信数据发送给交换网片SD539。
步骤903按照步骤901至步骤902所述过程的原理,交换网片SD539在时隙单元0的其它各个时隙接收并保存各DSP发来的数据。
步骤904在时隙单元1的时隙0,交换网片SD539将存储区0中时隙1区内的数据发送给DSP1,将时隙2区内的数据发送给DSP2,依此类推,直至将时隙15区中的数据发送给DSP15。
这里,因为DSP1在时隙0接收到的数据,所以DSP1可确定接收到的数据是DSP0发来的,即与其通信的是DSP0。同理,其它DSP根据接收到数据的时隙为时隙0,确定数据是DSP0发来的。
步骤905在时隙单元1的时隙1,交换网片SD539将存储区1中时隙0区内的数据发送给DSP0,将时隙2区内的数据发送给DSP2,依此类推,直至将时隙15区中的数据发送给DSP15。
这里,因为DSP0在时隙1接收到的数据,所以DSP0可确定接收到的数据是DSP1发来的,即与其通信的是DSP1。同理,其它DSP根据接收到数据的时隙为时隙1,确定数据是DSP1发来的。
步骤906按照步骤904至步骤905所述过程的原理,交换网片SD539在时隙单元1的其它各个时隙将数据发送给相应DSP。
为了扩大DSP之间的通信带宽,提高DSP之间的通信速率,一个较佳实施方案是使用两个交换网片并行完成DSP之间的数据转发工作。图10是本发明采用两个交换网片的装置结构示意图。参见图10,本发明装置的交换网片模块402中可包括两个型号为SD539的交换网片,并标记为SD539#0和SD539#1,SD539#0通过各个DSP上的全双工通信端口McBSP,标记为McBSP1分别与各个DSP相连,SD539#1通过各个DSP上的另一个全双工通信端口McBSP,标记为McBSP2分别与各个DSP相连。
相应地,在本发明装置的基础,本发明方法实现DSP之间相互通信的具体过程中,SD539#0和SD539#1并行工作,由SD539#0转发DSP的一部分数据,同时由SD539#1转发DSP的另一部分数据。比如将存储在DSP缓冲区偶地址中的数据发送给交换网片SD539#0,由SD539#0转发该偶地址内的数据,同时,将存储在该DSP缓冲区奇地址中的数据发送给交换网片SD539#1,由SD539#1转发该奇地址内的数据,而所述过程的其它内容与上述实施过程中的其它相应内容完全相同。
在本实施例中,交换网片在一个时隙单元保存其接收到的数据,并在下一时隙单元将其保存的数据发送给相应的DSP。在本实施例以外的其它实施例中,交换网片也可在连续的几个时隙单元接收并保存数据,而在后续的几个时隙单元发送数据至相应DSP,其具体实现过程的原理与本实施例相同。
总之,以上所述,仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
权利要求
1.一种实现数字信号处理器之间相互通信的方法,应用于多于一个的数字信号处理器DSP之间进行通信的系统中,其特征在于,该方法包括设置交换网片模块,将每个时钟脉冲周期划分为若干个时隙,第一DSP在一个时隙向交换网片模块发送数据,交换网片模块在后续时隙将该数据发送给第二DSP。
2.根据权利要求1所述的方法,其特征在于,将所述时钟脉冲周期划分为若干时隙单元,每个时隙单元中包括与DSP个数相等且分别与各DSP相对应的不同时隙;所述第一DSP在一个时隙单元中与第二DSP对应的时隙向交换网片模块发送数据;所述交换网片模块在后续时隙单元中与第一DSP对应的时隙将该数据发送给第二DSP。
3.根据权利要求2所述的方法,其特征在于,该方法进一步包括在交换网片模块中设置存储各个DSP发来数据的存储区,并将每个存储区划分为与各个时隙对应的存储子区;所述交换网片模块在所述一个时隙单元中与第二DSP对应的时隙接收到第一DSP发来的数据后,直接将该数据保存在存储第一DSP发来数据的存储区中与第二DSP对应时隙所对应的存储子区内,并在所述后续时隙单元中与第一DSP对应的时隙时,将该存储子区内保存的数据发送给第二DSP。
4.根据权利要求1、2或3所述的方法,其特征在于,该方法进一步包括所述交换网片模块包括至少一个交换网片,每个交换网片同时接收并转发每个DSP数据发送区不同地址中的数据。
5.根据权利要求4所述的方法,其特征在于,所述交换网片模块包括两个交换网片,其中,第一交换网片接收并转发存储在各个DSP数据发送区奇地址中的数据,同时,第二交换网片接收并转发存储在各个DSP数据发送区偶地址中的数据。
6.一种实现数字信号处理器之间相互通信的装置,应用于多于一个DSP之间进行通信的系统中,其特征在于,该装置包括交换网片模块和至少包括两个DSP的DSP模块,其中,DSP模块中的第一DSP,在时钟脉冲周期的一个时隙发送数据至交换网片模块;交换网片模块在该时隙接收DSP模块中的第一DSP发来的数据,并在后续时隙将该数据发送给DSP模块中的第二DSP;DSP模块中的第二DSP,在所述后续时隙接收交换网片模块发来的数据。
7.根据权利要求6所述的装置,其特征在于,所述时钟脉冲周期中包括若干时隙单元,每个时隙单元中包括与DSP个数相等且分别与各DSP相对应的不同时隙;所述DSP模块中的第一DSP在一个时隙单元中与第二DSP对应的时隙向交换网片模块发送数据;所述交换网片模块在后续时隙单元中与第一DSP对应的时隙将该数据发送给第二DSP。
8.根据权利要求7所述的装置,其特征在于,所述交换网片模块中进一步设置有存储各个DSP发来数据的存储区,且每个存储区中包括与各个时隙对应的存储子区;所述交换网片模块在所述一个时隙单元中与第二DSP对应的时隙接收到第一DSP发来的数据后,直接将数据保存在存储第一DSP发来数据的存储区中,与第二DSP对应时隙所对应的存储子区内,并在所述后续时隙单元中与第一DSP对应的时隙时,将该存储子区内的数据发送给第二DSP。
9.根据权利要求6所述的装置,其特征在于,所述交换网片模块包括至少一个交换网片,每个交换网片同时接收并转发每个DSP数据发送区不同地址中的数据。
10.根据权利要求6或9所述的装置,其特征在于,所述交换网片模块中包括两个交换网片,其中,第一交换网片接收并转发存储在各个DSP数据发送区奇地址中的数据,第二个交换网片接收并转发存储在各个DSP数据发送区偶地址中的数据。
全文摘要
本发明公开了一种实现数字信号处理器之间相互通信的装置,包括交换网片模块和数字信号处理器(DSP)模块,本发明同时公开了一种实现数字信号处理器之间相互通信的方法。本发明将外部提供的时钟脉冲周期划分为与DSP模块中每个DSP对应的时隙,在时钟脉冲周期中与第二DSP对应的时隙时,交换网片模块接收第一DSP发给第二DSP的数据,并且,交换网片模块在与第一DSP对应的时隙将该数据发送给第二DSP,第二DSP根据其接收到数据的时隙确定与其通信的为第一DSP。本发明的装置和方法减少了对CPU资源的占用,并大大提高了DSP之间的通信速率。
文档编号H04L12/54GK1677947SQ20041003070
公开日2005年10月5日 申请日期2004年3月31日 优先权日2004年3月31日
发明者张建梁 申请人:华为技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1