采用多端口路由通信的声码器系统及其业务帧交换方法
技术领域
本发明涉及声码器系统,具体地讲,涉及采用多端口路由通信的声码器系统及其业务帧交换方法。
背景技术
声码器系统提供64KBPS(Bit Per Second)PCM码(Pulse CodeModulation)与基站语音信号的转换,即语音的编码和解码。语音的编码和解码主要由数字信号处理器(Digital Signal Processor)完成,同时需要一个主控CPU(Central Processing Unit)来进行声码器的管理和控制业务帧传输。在实际系统中,一个数字信号处理器可以通过时分复用实现多个声码器单元,也因此造成管理和业务帧传输的复杂化。在美国专利US5,724,610中提供了一种声码器系统和方法,其系统包括:一对第一处理器,通过在移动交换中心和CIS(CDMA interconnect system)之间选择通道,来控制业务帧同CIS的通信;双口存储器,由第一处理器控制保存业务帧,并可由直接内存访问(Direct Memory Access)控制器进行访问;第二处理器,用于控制DMA控制器;选择器/声码器模块,连接在E1接口和双口存储器之间,用于接收经过数字信号处理后的业务帧;以及同MSC的E1接口和时钟接收单元。系统所使用的方法为:第一处理器读出双口存储器的业务帧,发送到CIS;或者将接收到的CIS的业务帧写入双口存储器。第二处理器控制DMA控制器,在双口存储器和声码器的FIFO(First-In First-Out)存储器之间传输业务帧,通过发送和接收中断接收和向数字信号处理器发送业务帧,中断信号由中断控制器在精确的时间产生。
在该专利中,系统使用了第一处理器和第二处理器,采用两级转发的模式,系统协调工作比较困难,结构复杂;同时,业务帧转发的次数较多,增加了系统的传输延时;在数字信号处理器的业务帧传输采用FIFO结构,具有状态寄存器和控制FIFO寄存器,加大了与数字信号处理器通信的复杂度;另外,双口存储器双方访问易产生冲突,造成传输数据错误。
发明内容
为了解决现有技术的不足,本发明提供了两种技术解决方案,每一方案中的声码器系统均采用一个主控CPU,在主控CPU与数字信号处理器之间采用多端口路由通信单元,降低了系统的复杂度,减小业务帧传输延时;同时,采取措施避免在主控CPU与DSP之间进行业务帧交换时,同时访问业务帧交换装置的某一单元而产生的冲突。
本发明还针对每一声码器方案各提供了一种业务帧交换的方法。
为了完成发明任务,本发明所述的声码器系统包括:主控CPU,用于接收基站的业务帧,写入多端口路由通信单元,并把多端口路由通信单元的业务帧发送给基站,并接收来自时钟接收单元1的全球定位系统同步时钟;多端口路由通信单元,用于存储业务帧;n个数字信号处理器,根据多端口路由通信单元的中断信号接收和发送业务帧,并接收来自时钟接收单元1的全球定位系统同步时钟;与移动交换中心相连的E1接口;时钟接收单元1;以及提取E1接口时钟的时钟接收单元2。
所述的声码器系统中的多端口路由通信单元包括:n个主控CPU发送队列/DSP接收队列和n个主控CPU接收队列/DSP发送队列,队列的左侧的端口通过地址总线和数据总线连接到主控CPU,同时还与中断产生单元、状态寄存器相连,右侧端口通过地址总线和数据总线连接到DSP,并且与中断产生单元的右侧相连;中断产生单元,左侧输出一个中断信号连接到主控CPU的中断输入,右侧有n个中断信号输出,每一个中断信号输出连接对应的DSP的中断输入,同时所述的中断产生单元还与状态寄存器相连;状态寄存器,用于指示产生中断的DSP的位置。
本发明所述码分多址声码器系统主从处理器数据交换的方法的处理步骤如下:主控CPU通过与基站的接口接收业务帧,把业务帧写入多端口路由通信单元,访问中断发生单元,中断相应的数字信号处理器,数字信号处理器读取业务帧,交付给本数字信号处理器通过时分复用实现的声码器单元中所对应的一个,该声码器单元的业务帧由数字信号处理器写入多端口路由通信单元,访问中断发生单元,中断主控CPU,主控CPU接收业务帧,发送给基站。
本发明所述的声码器系统还可以这样实现,系统包括:主控CPU,接收基站的业务帧,写入多端口路由通信单元的发送单元,并把多端口路由通信单元接收单元的业务帧发送给基站,并接收来自时钟接收单元1的全球定位系统同步时钟;多端口路由通信单元,用于存储业务帧,并接收来自时钟接收单元1的全球定位系统同步时钟;n个数字信号处理器,根据多端口路由通信单元的中断信号接收和发送业务帧,并接收来自时钟接收单元1的全球定位系统同步时钟;与移动交换中心相连的E1接口;同步主控CPU、数字信号处理器和多端口路由通信单元的时钟接收单元1;以及提取E1接口时钟的时钟接收单元2。
所述的声码器系统中的多端口路由通信单元包括:n个主控CPU发送队列/DSP接收队列和n个主控CPU接收队列/DSP发送队列,队列的左侧端口通过地址总线和数据总线连接到主控CPU,右侧端口通过地址总线和数据总线连接到DSP,同时所述队列还连接到中断产生单元;中断产生单元,接收来自时钟接收单元1的定时信号,根据该信号产生定时中断,分别提供给主控CPU和各DSP。
本发明所述码分多址声码器系统主从处理器数据交换的方法的处理步骤如下:主控CPU通过与基站的接口接收业务帧,在特定定时中断到来时把业务帧写入多端口路由通信单元,数字信号处理器在特定定时中断到来时读取业务帧,交付给本数字信号处理器通过时分复用实现的声码器单元中所对应的一个,该声码器单元的业务帧由数字信号处理器在特定定时中断到来时写入多端口路由通信单元,主控CPU在特定定时中断到来时读取多端口通信单元,接收业务帧,发送给基站。
与现有技术相比,本发明所述的系统和方法,整个数据交换流程是串行的,可以避免存储器的访问冲突;另外,只使用了一级队列转发业务帧,提高了传输速度,减小了传输延时;降低了系统的软硬件复杂度,降低了成本;可以灵活增加数字信号处理器的个数和单个数字信号处理器通过时分复用实现声码器单元的个数,有利于不同数字信号处理器情况下系统架构的统一。
附图说明
图1是专利US5,724,610中描述的声码器系统;
图2.1是本发明提出的一种采用多端口路由通信单元的声码器系统示意图;
图2.2是本发明提出的另一种采用多端口路由通信单元的声码器系统示意图;
图3.1是图2.1中的多端口路由通信单元的具体结构示意图;
图3.2是图2.2中的多端口路由通信单元的具体结构示意图。
具体实施方式
下面结合附图对技术方案的实施作进一步的详细描述:
如图1所示,专利US5,724,610描述的声码器系统包括一对第一处理器102和第二处理器106,选择器/声码器105,直接内存访问控制器104,双口存储器103,与移动交换中心108的接口——E1接口107,及两个时钟接收单元101和109。可以看出,该系统使用了三个,增加了系统工作的复杂性,并且容易造成访问冲突。
为了解决现有技术的不足,本发明提出了两种声码器系统,分别如图2.1和图2.2所示。这两种声码器的硬件构成是相似的,都包括主控CPU、时钟接收单元1和2、多端口路由通信单元、n个数字信号处理器(DSP)以及E1接口。不同之处在于:第一种方案的声码器系统,时钟接收单元1(图2.1中的202)的全球定位系统同步时钟发送给主控CPU201和各个DSP204;而第二种方案中,时钟接收单元1(图2.2中的202)的全球定位系统同步时钟不仅发送给主控CPU201和各个DSP204,还发送给多端口路由通信单元203。这两个方案都能解决前面提到的主控CPU和DSP访问存储器同时访问的冲突问题,多端口路由通信单元作为主控CPU与数字信号处理器交换业务帧的媒介,承载声码器的业务帧,下面结合图3.1和图3.2来具体说明多端口路由通信单元是如何解决这一问题的。
在图3.1中,多端口路由通讯单元203主要包括:n个主控CPU发送队列/DSP接收队列和n个主控CPU接收队列/DSP发送队列301,中断产生单元302,状态寄存器303。在本发明中,队列可以是环行队列、线性队列或者先入先出队列。队列的左侧端口连接到主控CPU,主控CPU发送队列/DSP接收队列1和主控CPU接收队列/DSP发送队列1的右侧端口和中断信号1连接到数字信号处理器1,主控CPU发送队列/DSP接收队列2和主控CPU接收队列/DSP发送队列2的右端口和中断信号2连接到数字信号处理器2,依次类推。这样主控CPU可以访问所有的队列,而数字信号处理器只可以访问相对应的队列。
而在图3.2中,多端口路由通信单元203主要包括:n个主控CPU发送队列/DSP接收队列和n个主控CPU接收队列/DSP发送队列301和中断产生单元302。队列301与主控CPU、DSP的信号连接情况同第一种方案。两者不同之处是时钟接收单元1(202)送给多端口路由通信单元203的时钟是送给中断产生单元302。
在上述两种方案中,中断产生单元提供的串行工作机制,使主控CPU和数字信号处理器能够在不同的时间访问队列,避免产生冲突。在图3.1中,中断产生单元302采用的是握手机制,访问中断产生单元302产生中断脉冲信号(脉冲长度由处理器需要确定),左侧提供一个中断信号,右侧提供n个中断信号。状态寄存器303只可以通过左侧端口访问,右侧一个端口对应状态寄存器303的一位(bit),表示是否已访问了中断产生单元302,但左侧端口没有获知;读状态寄存器303清除单元则清除状态寄存器。在主控CPU201或者声码器单元向队列301写入业务帧后,访问相应的中断产生单元302产生中断信号中断对方,提醒对方读取队列中的业务帧。
在图3.2中,中断产生单元采用的是定时机制,产生m个固定间隔脉冲信号送给数字信号处理器204,时间间隔为每一帧时长的1/m(对于码分多址系统是20/m毫秒),也就是每一个数字信号处理器204上的每一个声码器单元有一个定时信号,则两个定时脉冲间的时间间隔相对应的声码器单元读或者写队列301。在主控CPU201的定时信号可以是m个,时间间隔为每一帧时长的1/m(对于码分多址系统是20/m毫秒),在则两个定时脉冲间的时间间隔内主控CPU201读或者写时间间隔对应的队列301,定时脉冲也可以是m*n个,时间间隔为每一帧时长的1/(m*n)(对于码分多址系统是20/(m*n)毫秒),每一个时间间隔读取相对应的队列301,也就是说每一个时间间隔可以读取一个声码器单元的业务帧。在时间间隔的分配上有一个原则,保证主控CPU201和数字信号处理器204串行工作,不同时访问同一个队列301的同一个单元,也就是说,某一个声码器单元或者主控CPU201把业务帧写入队列301并经过一个安全的时间后对方才能访问队列301。这个安全的时间间隔由双方访问队列的时间决定,选择的原则是避免产生访问冲突.
一个数字信号处理器可以通过时分复用实现多个声码器单元,因此对应的发送队列和接收队列应该可以满足每一个声码器单元至少缓存一帧业务帧,也就是至少需要缓存m帧业务帧。每一个业务帧的第一个字节为本业务帧的长度,同时为指示当前队列满是否的标志,长度为0表示队列为空。第二字节为路由地址(Route Address)RA,指示声码器单元的位置。路由地址RA同声码器单元编号对应,每一个数字信号处理器上的声码器单元路由地址RA,取值范围为0到m-1,代表数字信号处理器上声码器的编号。另外,本发明引入一个路由地址的概念:对数字信号处理器进行编号,称为数字信号处理器号(DSP No.)DN,则DN的取值范围为0到n-1。对同一个主控CPU控制下的所有声码器单元进行编号,称为声码器单元地址(Vocoder Address)VA,有n个数字信号处理器,每个数字信号处理器实现m个声码器单元,则VA=m*DN+RA,VA的取值范围为0到(m*n-1)。每一个业务帧对应一定的声码器单元,路由选择时,通过VA计算出DN和RA或者由DN和RA得到VA,决定要写入或读出业务帧的队列所属数字信号处理器和业务帧的路由地址。在主控CPU接收声码器的业务帧时,主控CPU读取数字信号处理器的发送队列得到业务帧,可以获取路由地址RA,由队列所属数字信号处理器的数字信号处理器号DN则可以计算出声码器地址VA,由建立呼叫时VA与基站的对应关系确定业务帧发送的目标地址;同样,对于主控CPU接收到业务帧要发送到声码器时,由VA计算数字信号处理器号DN和路由地址RA,把业务帧发送到数字信号处理器号为DN的数字信号处理器对应的队列,数字信号处理器再把业务帧发送给路由地址为RA的声码器单元。