PCM信号采集方法及装置与流程

文档序号:14418994阅读:771来源:国知局
PCM信号采集方法及装置与流程

本发明属于数字化音频采集技术领域,尤其涉及一种pcm信号采集方法及装置。



背景技术:

在电信设备中,拨号、指令和语音压缩所用的信号都是脉冲编码调制(pulsecodemodulation,pcm)的形式,pcm码流中各时隙信号的抓取分析是电信设备调试必不可少的步骤。

现有的pcm数据采集方式主要有两种,一种是直接使用示波器测试,另一种是采用微控制单元(microcontrollerunit,mcu)方案的采集卡抓取信号后在计算机上分析。发明人在实现本发明的过程中发现,上述两种pcm数据采集方式均有一定的缺陷:采用示波器测试pcm信号时,由于受限于探头的数量,不能同时采集多路pcm数据;采用mcu方案的采集卡来采集pcm数据时,系统的实时性受限于目标信号的速率和位宽,并且当需要同时采集多路pcm数据时,需要使用多颗mcu或者性能较高的处理器芯片,增加了硬件成本。



技术实现要素:

有鉴于此,本发明实施例提供了一种pcm信号采集装置及方法,以解决现有技术中采用mcu方案的采集卡采集多路pcm数据时需要多颗mcu所造成的成本太高的问题。

本发明实施例的第一方面提供了一种pcm信号采集装置,包括接收模块、采集模块、存储模块、多路复用模块和发送模块;

所述接收模块,用于接收计算机发送的pcm信号采集指令,并将接收到的采集指令进行转化;

所述采集模块,用于接收所述接收模块转化后的pcm信号采集指令,并根据接收的指令采集pcm数据,所述采集模块包括至少一个数据采集通道;

所述存储模块,用于存储所述采集模块采集到的pcm数据;

所述多路复用模块,用于将所述存储模块存储的数据复用到一个输出通道上;

所述发送模块,用于将所述存储模块中的pcm数据发送到计算机;

所述接收模块、采集模块、存储模块、多路复用模块和发送模块设置在可编程逻辑器件上。

本发明实施例的第二方面提供了一种pcm信号采集方法,包括:

接收模块接收计算机发送的pcm信号采集指令;

所述接收模块将接收的pcm信号采集指令经过转化后发送给采集模块;所述采集模块包括至少一个采集通道;

所述采集模块根据接收的指令采集pcm数据,并将采集到的pcm数据保存到存储模块中;

发送模块将所述存储模块中的pcm数据发送到计算机。

可选的,所述接收模块接收计算机发送的pcm信号采集指令,具体包括:

接收模块检测计算机是否下达采集指令;

当计算机下达采集指令时,所述接收模块接收计算机发送的pcm信号采集指令。

可选的,所述接收模块检测计算机是否下达采集指令,具体包括:所述接收模块检测uartin管脚的电平,当uartin管脚采集的数据由高电平变为低电平时,计算机发出采集指令。

可选的,所述接收模块将接收的pcm信号采集指令经过转化后发送给采集模块,具体为:

所述接收模块将接收的pcm信号采集指令经过转化后得到目标pcm通道信息和目标时隙信息,并将所述目标pcm通道信息和目标时隙信息发送给所述采集模块。

可选的,所述采集模块根据接收的指令采集pcm数据,并将采集到的pcm数据保存到存储模块中,具体包括:

当检测到pcm总线的内核时钟信号上升沿到来且帧同步信号为高电平时,根据所述目标pcm通道信息和目标时隙信息对pcm信号进行采集;

根据所述目标pcm通道信息控制所述采集模块的目标采集通道采集pcm数据;

设置用于对目标采集通道内的时隙进行计数的第一计数器和用于对目标时隙内的数据位进行计数的第二计数器,当所述第一计数器和所述第二计数器均达到预设值时,将采集的pcm数据输出给所述存储模块,并置位采集标志位。

可选的,所述当检测到pcm总线的内核时钟信号上升沿到来之前,所述采集模块根据接收的指令采集pcm数据,并将采集到的pcm数据保存到存储模块中,还包括:

对所述目标时隙信息、第一计数器、第二计数器和采集标志位进行初始化。

可选的,所述发送模块将所述存储模块中的pcm数据发送到计算机,具体包括:

当发送模块接收到latch标志信号的上升沿到来且发送时钟信号的上升沿到来时,将所述存储模块中存储的数据发送给计算机;

设置用于对采集的pcm数据的时钟宽度进行计数的第三计数器,当所述第三计数器达到预设值时,采集的pcm数据发送完毕。

可选的,所述将所述存储模块中存储的数据发送给计算机之前,还包括:所述发送模块发送起始位给计算机;

所述将所述存储模块中存储的数据发送给计算机之后,还包括:所述发送模块发送停止位给计算机。

可选的,所述发送模块发送一个停止位1给计算机之后,还包括:所述发送模块发送多个空闲位给计算机。

本发明实施例与现有技术相比存在的有益效果是:本发明实施例,接收模块接收到计算机发出的pcm信号采集指令,并对其进行转换,将转换后的pcm信号采集指令传输给采集模块,采集模块再根据接收到的指令采集pcm数据,并通过发送模块将采集的数据传输给计算机,通过将上述模块设置在可编程逻辑器件上,利用可编程逻辑器件的并行运行的特点,使得接收模块、采集模块和发送模块能够独立运行,增强pcm信号采集的实时性,同时利用可编程逻辑器件的并行运行的特点也使得采集模块能够同时采集多路pcm数据,从而实现采用单颗芯片就能完成多路pcm数据的采集,节约了硬件成本。

附图说明

为了更清楚地说明本发明实施例中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。

图1是本发明实施例提供的pcm信号采集装置的系统结构示意图;

图2是本发明实施例提供的pcm信号采集方法的实现流程示意图;

图3是本发明实施例提供的接收模块接收pcm信号采集指令的方法流程示意图;

图4是本发明实施例提供的采集模块采集pcm数据的方法流程示例图;

图5是本发明实施例提供的发送模块发送所采集的pcm数据的方法流程示意图。

具体实施方式

以下描述中,为了说明而不是为了限定,提出了诸如特定系统结构、技术之类的具体细节,以便透彻理解本发明实施例。然而,本领域的技术人员应当清楚,在没有这些具体细节的其它实施例中也可以实现本发明。在其它情况中,省略对众所周知的系统、装置、电路以及方法的详细说明,以免不必要的细节妨碍本发明的描述。

为了说明本发明所述的技术方案,下面通过具体实施例来进行说明。

实施例一

参见图1,示出了pcm信号采集装置的系统结构示意图,包括接收模块101、采集模块102、存储模块103、多路复用模块104和发送模块105。

接收模块101,用于接收计算机106发送的pcm信号采集指令,并将接收到的采集指令进行转化;采集模块102,用于接收接收模块101转化后的pcm信号采集指令,并根据接收的指令采集pcm数据,采集模块102包括至少一个数据采集通道,例如图中所示的采集通道1、采集通道2、采集通道3等等;存储模块103,用于存储采集模块102采集到的pcm数据;多路复用模块104,用于将存储模块存储的数据复用到一个输出通道上;发送模块105,用于将存储模块103中的pcm数据发送到计算机106;上述接收模块101、采集模块102、存储模块103、多路复用模块104和发送模块105设置在可编程逻辑器件(programmablelogicdevice,pld)上。

示例性的,这里pld可以采用lcmx0640c-3tn144c型号的ic芯片,但并不仅限于该芯片,该芯片的任意通用输入输出(generalpurposeinputoutput,gpio)端口可以根据用户的需求来定义其功能。pld的芯片具有高速、并行运行的特性,因此,在gpio端口资源充足的条件下,可以任意扩展多路的pcm采集通道接口,从而实现多路数据采集。

上述pcm信号采集装置通过接收模块来接收计算机发送的pcm信号采集指令,通过采集模块采集pcm数据,通过存储模块存储采集模块所采集的数据,通过多路复用模块将存储模块存储的数据复用到一个输出通道上,通过发送模块将存储模块中的pcm数据发送至计算机,通过将上述各个模块集成到pld上,从而利用pld的并行性的特点,使得各个模块能够并行运行,增强pcm信号采集的实时性,并采用一个芯片就能同时采集多路pcm数据的效果,节省了硬件成本。

实施例二

对应于上述pcm信号采集装置,本实施例提供了一种pcm信号采集方法,参见图2,详述如下:

步骤s101,接收模块接收计算机发送的pcm信号采集指令。

脉冲编码信号采集装置在接收到上位计算机下达的指令时,才开始工作。具体的,上位计算机发送pcm信号采集指令给脉冲编码信号采集装置的接收模块。

可选的,接收模块接收计算机发送的pcm信号采集指令的过程具体包括:接收模块检测计算机是否下达采集指令。此处,在检测计算机否下达指令时通过的是管脚电平的变化,其中检测计算机是否下达指令的管脚uartin设置在接收模块上,当管脚采集的数据由高电平变为低电平时,表示计算机下达了采集指令。此时,接收模块开始接收计算机发送的数据。

当计算机下达采集指令时,所述接收模块接收计算机发送的pcm信号采集指令。

容易理解的,为了避免采集的数据出现抖动的现象,从计算机发送的每比特数据的中间位置进行采样,这里设置一个计数器,当接收时钟信号为上升沿时,使计数器加1,当计数器的个数为4时,通过管脚uartin对计算机发送的数据进行采样,当计数器的个数为63时,当下一个接收时钟信号到来时就表示一个8比特的数据采集完成。同时,设置有一个接收标志位,通过将接收标志位置位,来通知多路复用模块数据采集完毕。

具体的,参见图3,示出了接收模块接收pcm信号采集指令的方法流程示意图,详述如下:

步骤s201,初始化计数器rstate。

步骤s202,判断rclk的上升沿是否到来,当rclk的上升沿到来时执行步骤s203和步骤s205,否则执行步骤s202。

步骤s203,判断uartin是否由高电平变为低电平,当uartin由高电平变为低电平时执行步骤s204,否则执行步骤s202。

步骤s204,使能计数器rstate,并使其初值加1,清零接收标志位。

步骤s205,计数器rstate加1计数。

步骤s206,判断计数器rstate是否等于4,当计数器rstate等于4时,执行步骤s207,否则执行步骤s205。

步骤s207,将uartin放入输出缓冲区的最低位。

步骤s208,判断计数器rstate是否等于63,当计数器rstate等于63时,执行步骤s209,否则执行步骤s205。

步骤s209,将采集的8位数据输出,并置位接收标志位。

容易理解的,上述过程中计数器的值对应的是采集8比特数据时计数器所需达到的值,但此处并不限于采集8比特的数据。

步骤s102,所述接收模块将接收的pcm信号采集指令经过转化后发送给采集模块;所述采集模块包括至少一个采集通道。

可选的,接收模块将接收的pcm信号采集指令经过转化后得到目标pcm通道信息和目标时隙信息,并将所述目标pcm通道信息和目标时隙信息发送给所述采集模块。

采集模块在采集pcm数据时需要获得数据所在的目标pcm通道信息和目标时隙信息,根据这两个信息来准确定位所要采集的数据。其中目标pcm通道信息和目标时隙信息是由接收模块将接收的pcm信号采集指令转化后得到的。接收模块将获得的目标pcm通道信息和目标时隙信息发送给多路复用模块,多路复用模块再将接收的信息传输给采集模块,使得采集模块采集计算机所需的数据。

步骤s103,所述采集模块根据接收的指令采集pcm数据,并将采集到的pcm数据保存到存储模块中。

可选的,采集模块根据接收的指令采集pcm数据时的过程包括以下步骤。

当检测到pcm总线的内核时钟信号上升沿到来且帧同步信号为高电平时,根据所述目标pcm通道信息和目标时隙信息对pcm信号进行采集。采集模块在采集pcm数据之前需要在pcm总线的内核时钟信号处于上升沿的时刻。同时,帧同步信号需要处于高电平时,才能采集pcm总线的数据。

当时钟信号和帧同步信号均处于预定状态时,根据所述目标pcm通道信息控制所述采集模块的目标采集通道采集pcm数据。其中,采集模块包括至少一个数据采集通道,这里可以根据采集pcm数据的需求来设定不同数量的数据采集通道。根据采集模块所获得的目标pcm通道信息来启动具体的采集通道去采集pcm总线的数据。

设置用于对目标采集通道内的时隙进行计数的第一计数器和用于对目标时隙内的数据位进行计数的第二计数器,当所述第一计数器和所述第二计数器均达到预设值时,将采集的pcm数据输出给所述存储模块,并置位采集标志位。

当具体的采集通道对pcm总线采集数据时,需要先找到目标pcm通道中的目标时隙,具体的,通过设置第一计数器,对目标pcm通道中的时隙进行计数,直到第一计数器所计的数值等于目标时隙值,再通过设置第二计数器对目标时隙内的数据位进行计数,当第二计数器的所计的数值等于预设值时,获得的数据就是计算机所要采集的数据。在获得采集的pcm数据后,需要将采集的数据输出至存储模块,同时置位采集标志位,表示pcm数据采集完成。

可选的,当检测到pcm总线的内核时钟信号上升沿到来之前,采集模块根据接收的指令采集pcm数据,并将采集到的pcm数据保存到存储模块中,还包括:对目标时隙信息、第一计数器、第二计数器和采集标志位进行初始化。

容易理解的,在进行pcm数据采集的之前,需要将计数器、采集标志位以及获得的目标时隙信息进行初始化,以确保所采集的数据与计算机下达的指令一致。

具体的,参见图4,示出了采集模块采集pcm数据的方法流程示意图,详述如下:

步骤s301,初始化计数器、时隙ts和采集标志位,此处的计数器包括第一计数器cnt1和第二计数器cnt2。

步骤s302,判断fclk的上升沿是否到来,当fclk的上升沿到来时,执行步骤s303和步骤s305,否则执行步骤s302。其中,fclk表示的是pcm总线的内核时钟信号。

步骤s303,判断fs是否处于高电平状态,当fs处于高电平状态时,执行步骤s304,否则,执行步骤s302。其中,fs表示的是帧同步信号。

步骤s304,使能计数器cnt1和cnt2。

步骤s305,计数器cnt2计数加1。

步骤s306,判断计数器cnt2是否等于7,当计数器cnt2等于7时,执行步骤s307,否则执行步骤s305。其中,计数器cnt2技术范围为0到7,表示一个比特数据长度。

步骤s307,计数器cnt2计数清零,计数器cnt1计数加1。

步骤s308,判断cnt1计数是否等于ts且cnt2等于0,当cnt1技术等于ts且cnt2等于0时,执行步骤s309,否则执行步骤s305。

步骤s309,输出pcm数据,并置位采集标志位。

通过上述方法即可采集到所需要的目标采集通道内的目标时隙信息的数据,同时将采集的数据保存至存储模块。

步骤s104,发送模块将所述存储模块中的pcm数据发送到计算机。

可选的,发送模块将存储模块中的pcm数据发送到计算机,具体包括:

当发送模块接收到latch标志信号的上升沿到来且发送时钟信号的上升沿到来时,将所述存储模块中存储的数据发送给计算机。

设置用于对采集的pcm数据的时钟宽度进行计数的第三计数器,当所述第三计数器达到预设值时,采集的pcm数据发送完毕。

容易理解的,在发送模块发送存储模快中的pcm数据时需要先接收到一个标志信号,表示允许发送模块发送存储模块中的数据。同时,发送模块本身还需要在发送时钟信号处于上升沿时,执行发送采集的pcm数据。

可选的,将存储模块中存储的数据发送给计算机之前,还包括:发送模块发送起始位给计算机;将所述存储模块中存储的数据发送给计算机之后,还包括:发送模块发送停止位给计算机。

在发送数据时,通常在发送数据之前先发送一个起始位0,在发送完一帧的信号之后需要发送一个停止位1,通过发送起始位和停止位来告知接收端数据传输即将开始或数据传输完毕。在发送存储模块存储的数据的时候通过设置一个第三计数器,对发送的数据位进行计数,以得到所需的数据位数。

可选的,发送模块发送停止位给计算机之后,还包括:发送模块发送多个空闲位给计算机。

与上述过程类似在发送停止位以后,需要发送多个空闲位,表示线路上没有数据传输。

具体的,参见图5,示出了发送模块发送所采集的pcm数据的方法流程示意图,详述如下:

步骤s401,判断发送允许信号latch的上升沿是否到来,当发送允许信号latch上升沿到来时,执行步骤s402,否则,执行步骤s401。

步骤s402,判断sendclk上升沿是否到来,当sendclk上升沿到来时,执行步骤s403和步骤s404,否则执行步骤s402。

步骤s403,计数器cnt3计数加1,发送一个时钟宽度的0。

步骤s404,计数器cnt3计数加1。

步骤s405,判断计数器cnt3是否等于8,当计数器cnt3等于8时,执行步骤s407,否则执行步骤s406。这里cnt3预设值为8是因为,在发送采集的数据前,还发送了一个起始位0。

步骤s406,从最低位开始发送存储模块中的数据。

步骤s407,发送一个时钟宽度的1。此处,时钟宽度1表示发送数据的停止位。

步骤s408,发送空闲位。发送空闲位是为了表明当前数据传输完毕。

容易理解的,上述发送模块发送所采集的pcm数据的方法仅仅为一种具体的实施例,在发送数据时还可以发送其他形式的数据。

上述脉冲编码信号采集方法,通过接收模块接收计算机发送的pcm信号采集指令,并将接收的采集指令进行转化,发送给采集模块,此处采集模块包括至少一个采集通道,以同时采集多路pcm数据,采集模块根据接收的转化后的采集指令采集pcm数据,并将采集的数据保存至存储模块中,再使用发送模块将存储模块中存储的采集到的pcm数据发送到计算机。通过将上述各个模块设置在pld上,利用pld并行性的特点实现各个模块的并行运行,使得pcm信号采集的实时性强,从而使得采集模块能够同时采集多路pcm数据,节省了硬件成本。

应理解,上述实施例中各步骤的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本发明实施例的实施过程构成任何限定。

在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述或记载的部分,可以参见其它实施例的相关描述。

本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。

在本发明所提供的实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置/终端设备实施例仅仅是示意性的,例如,所述模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通讯连接可以是通过一些接口,装置或单元的间接耦合或通讯连接,可以是电性,机械或其它的形式。

所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。

另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。

所述集成的模块/单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明实现上述实施例方法中的全部或部分流程,也可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。其中,所述计算机程序包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、u盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(read-onlymemory,rom)、随机存取存储器(randomaccessmemory,ram)、电载波信号、电信信号以及软件分发介质等。需要说明的是,所述计算机可读介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减,例如在某些司法管辖区,根据立法和专利实践,计算机可读介质不包括电载波信号和电信信号。

以上所述实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围,均应包含在本发明的保护范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1