一种语音芯片起始地址的获取方法及批量编程拷贝方法与流程

文档序号:12062680阅读:490来源:国知局
一种语音芯片起始地址的获取方法及批量编程拷贝方法与流程

本发明涉及语音芯片编程拷贝领域,具体地说,涉及一种语音芯片起始地址的获取方法及语音芯片批量编程拷贝的方法。



背景技术:

目前,语音芯片采用多电平直接模拟存储技术,该芯片的语音模拟信号不需要A/D转换和压缩,而是直接存储在片内的闪烁存储器中,因而可消除A/D转换的误差,因此能够真实、自然地再现语音、音乐和效果声,避免传统录音电路量化和压缩造成的量化噪音和“金属声”。此类芯片一般采用CMOS技术,内含振荡器、防混淆滤波器、平滑滤波器、音频放大器、自动静噪及高密度多电平闪烁存贮阵列。芯片内语音信息最长可在断电情况下保存100年(典型值),反复录音最高达10万次。

语音芯片被广泛应用于各种领域的语音报警及提示系统,如:列车监控运行记录装置、列车监控运行记录装置、机车车载安全防护系统和机车语音箱等。在这些机车产品的生产过程中,目前采用的RAC行地址时钟计数方式获取的语音母片芯片起始地址容易受到硬件电路本身或外部的干扰而产生错乱现象,导致因语音芯片之间语音起始地址不一致而带来的语音缺失问题。

此外,现有语音编程拷贝装置一次只能编程拷贝一片语音芯片。而一片的编程拷贝过程需要十分钟以上,导致拷贝的效率很低。尤其在大批量的语音芯片编程时,效率低的问题显得更为突出。

因此,亟需一种可解决语音缺失问题的获取语音芯片起始地址的方法及高效且同时保证语音程序一致的语音芯片批量编程拷贝的方法。



技术实现要素:

本发明所要解决的技术问题是克服现有技术的出现语音缺失问题及编程拷贝时效率低的缺陷。

为了解决上述技术问题,本申请的实施例首先提供了一种获取语音芯片起始地址的方法,包括:

编程控制模块产生语音芯片使能信号,在使能信号有效的情况下发送获取指令;

语音芯片响应于所述获取指令串行输出语音信息的起始地址的每一位数值;

编程控制模块依次读取语音芯片串行输出的每一位数值,并记录已读取的位数,存储语音芯片串行输出的每一位数值;

编程控制模块确定已读取的位数达到语音信息的起始地址的总位数,获得语音信息的起始地址。

在一个优选的实施例中,在编程控制模块依次读取语音芯片串行输出的每一位数值的步骤中还包括:

在使能信号有效的情况下,编程控制模块产生串行时钟信号;

当串行时钟信号由高电平变化为低电平时,编程控制模块读取语音芯片串行输出的一位数值;

当编程控制模块读取完语音芯片串行输出的一位数值之后,串行时钟信号由低电平变化为高电平。

本申请的实施例还提供一种语音芯片批量编程拷贝的方法,包括:

在母片使能信号有效的情况下,编程控制模块依次读取并存储语音芯片串行输出的每一位数值,记录已读取的位数;

编程控制模块确定已读取的位数达到语音信息的起始地址的总位数,获取语音母片中待拷贝的语音信息段的起始地址;

在母片使能信号和子片使能信号有效的情况下,编程控制模块基于所述起始地址生成放音控制指令和录音控制指令,通过编程接口模块分别转发至所述语音母片和所述语音子片;

在母片使能信号和子片使能信号失效的情况下,信号转发模块将所述语音母片输出的语音信息转发至所述语音子片。

在一个优选的实施例中,在编程控制模块依次读取语音芯片串行输出的每一位数值的步骤中还包括,

在使能信号有效的情况下,编程控制模块产生串行时钟信号;

当串行时钟信号由高电平变化为低电平时,编程控制模块读取语音芯片串行 输出的一位数值;

当编程控制模块读取完语音芯片串行输出的一位数值之后,串行时钟信号由低电平变化为高电平。

在一个优选的实施例中,还包括在编程控制模块获得语音信息的起始地址之后,将语音芯片使能信号改变为失效。

在一个优选的实施例中,还包括在母片使能信号和子片使能信号失效的情况下,所述语音母片基于所述放音控制指令从起始地址开始输出的语音信息,所述语音子片基于所述录音控制指令起始地址开始写入语音信息。

在一个优选的实施例中,还包括在母片使能信号和子片使能信号失效的情况下,

当语音母片读取到当前语音信息段的结束标志时产生有效母片中断信号;

编程控制模块通过所述编程接口模块接收有效母片中断信号,向各个语音子片发送录音停止指令;

各个语音子片基于所述录音停止指令写入当前语音信息的结束标志。

在一个优选的实施例中,还包括在母片使能信号和子片使能信号失效的情况下,

在编程控制模块通过所述编程接口模块向各个语音子片发送录音停止指令后,还获取语音母片中下一条待拷贝的语音信息段的起始地址。

在一个优选的实施例中,还包括在母片使能信号和子片使能信号失效的情况下,

当语音母片读取到当前语音信息段的结束标志时,

判断是否到达母片存储空间的末端,若是,则在编程控制模块通过所述编程接口模块向语音母片和各个语音子片发送终止指令。

现有技术采用RAC行地址时钟计数方式获取语音起始地址。通过这种方式获取的语音起始地址容易受到硬件电路本身或外部的干扰而产生错乱现象,造成语音母片、子片间语音起始地址不一致和语音缺失等问题。同时这种方式在编程拷贝的运用中实时性也比较差,必须先对语音母片进行单独放音建立地址索引表,再根据地址索引表确定的语音起始地址进行编程拷贝,等于是编程拷贝一遍,需要对母片全部放音操作两次,效率很低,质量也不可靠。

本发明采用的获取语音芯片的语音起始地址的方法首先由编程控制模块产 生语音芯片使能信号,在使能信号有效的情况下发送获取指令。其次,语音芯片响应于获取指令串行输出语音信息的起始地址的每一位数值。再次,编程控制模块依次读取语音芯片串行输出的每一位数值,并记录已读取的位数,存储语音芯片串行输出的每一位数值。最后,编程控制模块确定已读取的位数达到语音信息的起始地址的总位数,能保证有效、正确地获取语音母片的语音起始地址,可杜绝母片、子片间语音起始地址不一致和语音缺失的问题,极大程度地提高编程拷贝的质量可控性。

此外,本发明采用的语音芯片批量编程拷贝的方法建立在获取语音芯片的语音起始地址的基础上,可使得语音母片基于传送的放音控制指令进行放音操作时,使得语音子片同时基于传送的录音控制指令进行录音操作,可实现同时编程拷贝多片语音子片,从而提高编程拷贝的效率,同时保证语音母片和语音子片的语音程序一致。

本发明的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点可通过在说明书、权利要求书以及附图中所特别指出的结构来实现和获得。

附图说明

附图用来提供对本发明的进一步理解,并且构成说明书的一部分,与本发明的实施例共同用于解释本发明,并不构成对本发明的限制。在附图中:

图1是本发明实施例一的语音芯片批量编程拷贝的装置结构示意图;

图2是本发明实施例一的外部时钟信号发生模块的电路原理图;

图3是本发明实施例一的语音芯片批量编程拷贝的方法流程图;

图4是本发明实施例一和二的语音芯片批量编程拷贝的时序控制图;

图5是本发明实施例三的语音芯片批量编程拷贝的装置结构示意图;

图6是本发明实施例三的缓冲模块结构示意图;

图7是本发明实施例三的数字-模拟双电源的电路原理图;

图8是本发明实施例三的继电模块的电路原理图;

图9是本发明实施例三的编程控制模块控制缓冲模块与继电模块自动上电、断电的时序控制图;

图10a是本发明实施例一、二和三的语音母片的结构示意图;

图10b是本发明实施例一、二和三的语音子片的结构示意图;

图10c是本发明实施例三的信号调理模块的电路连接图;

图11是本发明实施例四的获取语音芯片的语音起始地址的方法流程图;

图12是本发明实施例四的获取语音芯片的语音起始地址的示例性时序图;

图13是本发明实施例五的语音芯片批量编程拷贝的方法流程图。

具体实施方式

为使本发明的目的、技术方案和优点更加清楚,以下结合附图对本发明作进一步地详细说明。

现有技术一方面由于采用RAC行地址时钟计数方式获取语音起始地址,可能导致语音芯片之间语音起始地址不同步,从而导致语音缺失的问题。

另一方面,由于必须保持编程拷贝后的语音芯片的语音程序一致,因此,必须先对一片语音芯片进行单独放音建立地址索引表,再根据地址索引表确定的语音起始地址进行编程拷贝,也会导致语音编程拷贝的效率很低。

此外,语音芯片在编程拷贝时,一方面由于一次只能编程拷贝一片语音芯片,导致语音编程拷贝的效率很低。因此,在工业化生产过程中,会因为编程拷贝的效率低而严重影响语音芯片的产能。

本发明的实施例提供的一种获取语音芯片起始地址的方法及语音芯片批量编程拷贝的方法可解决以上问题。以下将详细阐述。

实施例一

图1是本实施例的语音芯片批量编程拷贝的装置结构示意图。如图1所示,该装置100包括至少一片语音子片110、语音母片120、编程接口模块130、编程控制模块140、信号转发模块150和外部时钟信号发生模块160。为方便阐述,本实施例以两片语音子片110为例进行说明。

语音母片120存储多个待拷贝的语音信息段。

编程接口模块130与语音母片和语音子片分别连接。

具体而言,编程接口模块130包括母片接口单元131、子片接口单元132和指令转发单元133。母片接口单元131分别与所述编程控制单元和语音母片连接。子片接口单元132分别与所述编程控制单元和语音子片连接。指令转发单元133 分别与母片接口单元131、子片接口单元132、语音母片120和语音子片110连接,用于转发前述放音开始指令和录音开始指令。

编程控制模块140与编程接口模块130连接,用于获取语音母片120中待拷贝的语音信息段的起始地址,在母片使能信号和子片使能信号有效的情况下,基于起始地址生成放音开始指令和录音开始指令,通过编程接口模块130分别转发至语音母片120和语音子片110。其中,放音开始指令包括放音起始地址设定指令和播放指令。录音开始指令包括录音起始地址设定指令和播放指令。

具体来说,前述起始地址通过编程控制模块140产生的母片串行输出信号传输至编程控制模块140,下文将详细阐述获取起始地址的方法,此处不展开说明。

母片使能信号优选母片片选信号,子片使能信号优选子片片选信号。编程控制模块140产生的母片串行输入信号作用于语音母片120,在母片串行时钟输入信号的多个升降沿周期内,可完成前述放音开始指令的转发。编程控制模块140产生的子片串行输入信号作用于语音子片110,在子片串行时钟输入信号的多个升降沿周期内,可完成前述录音开始指令的转发。

在前述阐述中,母片使能信号和子片使能信号时刻保持同步,可使得语音母片120基于放音开始指令进行放音时,语音子片110基于录音开始指令同时进行录音。

如图1所示,信号转发模块150与语音母片120和语音子片110分别连接,在母片使能信号和子片使能信号失效的情况下,将语音母片120输出的语音信息转发至语音子片110。如此以来,语音子片110可根据获得的语音母片120的语音数据进行语音程序的编程拷贝。

此外,在母片使能信号和子片使能信号失效的情况下,语音母片120会产生母片音频输出信号。该母片音频输出信号控制语音母片120基于放音开始指令从起始地址开始输出语音信息。

同时,语音子片110会产生子片音频输出信号。该子片音频输出信号控制语音子片110基于录音开始指令起始地址开始写入语音信息,从而控制语音母片120和语音子片110同步编程,能实现从起始地址同步完成语音信息段的编程。

在语音母片120输出语音信息的过程中,当语音母片120读取到当前语音信息段的结束标志时产生有效母片中断信号。编程控制模块140通过编程接口模块130接收有效母片中断信号,向各个语音子片110发送录音停止指令。各个语音 子片110基于录音停止指令写入当前语音信息的结束标志。

在编程控制模块140通过编程接口模块130向各个语音子片发送录音停止指令后,还获取语音母片120中下一条待拷贝的语音信息段的起始地址。接下来,编程控制模块140判断语音母片中下一条待拷贝的语音信息段的起始地址是否到达母片存储空间的末端。若是,则在编程控制模块140通过编程接口模块130向语音母片120和各个语音子片110发送终止指令。若否,则从下一条待拷贝的语音信息段的起始地址开始进行该条语音信息段的拷贝,直至所有语音信息段拷贝完成。

如此以来,编程控制模块140通过控制母片使能信号和子片使能信号有效和失效,可保证语音母片120和语音子片110同步进行放音和录音的操作,完成所有语音信息段的编程拷贝。此外,编程控制模块140可控制实现多片语音子片的同步编程拷贝,提高语音芯片的编程拷贝效率。

在本发明的一个实施例中,本装置100还包括用于为语音母片120和语音子片110提供多种同源时钟信号的外部时钟信号发生模块160,保证语音母片120放音和语音子片110录音同时进行,可解决因外部输入时钟精度误差大而造成的语音失真问题。外部时钟信号发生模块160可通过选择开关输出1024KHz、512KHz等多种高精度时钟信号源,以满足不同语音芯片的外部时钟信号输入要求,解决市场上一些系列语音芯片的兼容问题。

图2是本实施例的外部时钟信号发生模块的电路原理图。如图2所示,有源晶振210输出的2048KHz时钟频率信号经过R20、C20的低通滤波后输入给施密特反相器220进行整形。整形后近似于方波的2048KHz时钟频率信号再输入给双D触发器230进行第一次分频。第一次分频输出的1024KHz时钟频率信号再次输入到双D触发器240进行第二次分频。第二次分频将输出512KHz时钟频率信号。第一次分频的1024KHz时钟频率信号和第二次分频的512KHz时钟频率信号均连接至时钟选择开关250。

当装置针对同一系列中不同型号的语音芯片编程拷贝时,可通过时钟选择开关250进行时钟参数选择。为确保语音芯片外部时钟信号的精确度,时钟频率信号输出之前必须再次经过施密特反相器260进行整形。

实施例二

图3是本实施例的语音芯片批量编程拷贝的方法流程图。下面根据图1和图3详细阐述该方法的具体内容。

首先,获取语音母片120中待拷贝的语音信息段的起始地址(步骤S310)。编程控制模块140获取前述起始地址后,可根据该起始地址控制语音母片120和语音子片110从相同的地址进行编程拷贝,保证编程拷贝的语音信息段的同步,避免语音子片110拷贝时遗漏语音母片的语音信息段。

其次,在母片使能信号和子片使能信号有效的情况下,编程控制模块140基于起始地址生成放音控制指令和录音控制指令,通过编程接口模块130分别转发至语音母片120和语音子片110(步骤S320)。在母片使能信号和子片使能信号失效的情况下,语音母片120基于放音控制指令从起始地址开始输出语音信息时,语音子片110基于录音控制指令同时从起始地址开始写入语音信息。如此以来,语音母片120和语音子片110可同步从起始地址进行编程拷贝。

最后,在母片使能信号和子片使能信号失效的情况下,信号转发模块将语音母片120输出的语音信息转发至语音子片110(步骤S330)。语音子片110基于前述语音信息和录音控制指令可以完成编程拷贝。

前述语音芯片批量编程拷贝的方法,还包括以下内容。首先,在母片使能信号和子片使能信号失效的情况下,当语音母片120读取到当前语音信息段的结束标志时产生有效母片中断信号。其次,编程控制模块140通过编程接口模块130接收有效母片中断信号,向各个语音子片110发送录音停止指令。最后,各个语音子片110基于录音停止指令写入当前语音信息的结束标志。此时,表明语音母片120和语音子片110已经完成一条语音信息段的拷贝。编程控制模块140接收到当前语音信息段拷贝完成的信号后,控制语音子片110停止当前拷贝。

在编程控制模块140通过编程接口模块130向各个语音子片110发送录音停止指令后,编程控制模块140还获取语音母片120中下一条待拷贝的语音信息段的起始地址。接下来,判断语音母片120中下一条待拷贝的语音信息段的起始地址是否到达母片存储空间的末端,从而判断是否已经完成语音芯片的编程拷贝程序。

若是,则编程控制模块140通过编程接口模块130向语音母片120和各个语音子片110发送终止指令。此时,整个语音母片120的语音信息段都已完成拷贝,编程控制模块140控制语音母片120和语音子片110停止拷贝。

若否,则编程控制模块140基于前述下一条待拷贝的语音信息段的起始地址生成新的放音开始指令和新的录音开始指令,通过编程接口模块130分别转发至语音母片120和各个语音子片110。此时,编程控制模块140控制语音母片120和语音子片110继续拷贝语音母片120中的下一条待拷贝的语音信息段。

如此以来,整个编程拷贝的过程在语音母片120中下一条待拷贝的语音信息段的起始地址到达母片存储空间的末端时结束。

图4是本发明实施例一和二的语音芯片批量编程拷贝的时序控制图。以下根据该图详细阐述语音芯片编程拷贝的过程。

如图4所示,XCLK是语音母片和语音子片的外部时钟输入信号,该信号根据语音芯片的型号不同而相应变化。SCLK是语音母片和语音子片的串行时钟输入信号。M-MOSI和S-/SS分别是语音母片和语音子片的串行输入信号。

母片使能信号优选采用语音母片的片选信号M-/SS,子片使能信号优选采用语音子片的片选信号S-/SS。在语音母片的片选信号为低电平的时候,母片使能信号有效;反之,母片使能信号无效。在语音子片的片选信号为低电平的时候,子片使能信号有效;反之,子片使能信号无效。

M-/INT是母片中断信号。M-AO是语音母片的音频输出信号。S-AI是语音子片的音频输入信号。

编程拷贝时,外部时钟输入信号XCLK可同时给语音母片和语音子片提供高精度的时钟信号,以保证语音母片放音操作和语音子片录音操作的同步进行。

由编程控制单元产生的串行时钟输入信号SCLK、母片片选信号M-/SS和母片串行输入信号M-MOSI可通过编程接口模块传输至语音母片。同样,由编程控制单元产生的串行时钟输入信号SCLK、子片片选信号S-/SS和子片串行输入信号S-MOSI可通过编程接口模块传输至语音子片。

在传输控制指令的数据时,针对语音母片的各控制指令SET PLAY、PLAY等均是通过母片串行输入端口M-MOSI输入,并遵循所有指令数据的传输开始于母片使能信号有效,即母片片选信号M-/SS的下降沿。针对语音子片的各控制指令SET REC、REC等均是通过子片串行输入端口S-MOSI输入,并遵循所有指令数据的传输开始于子片使能信号有效,即子片片选信号M-/SS的下降沿。所有指令数据在串行时钟输入信号SCLK的上升沿锁存输入,在下降沿移出。

在t1时段内,母片片选信号M-/SS处在低电平,母片使能信号有效。母片串 行输入信号M-MOSI依次传输语音起始地址、设置和放音的控制指令。在串行时钟输入信号SCLK出现三个上升沿依次锁存,三个下降沿时分别移出。语音起始地址、设置和录音的控制指令的传输过程与前述阐述一致,不再赘述。

在t2时段内,母片片选信号M-/SS仍处在低电平,母片使能信号有效。母片串行输入信号M-MOSI传输放音的控制指令。在串行时钟输入信号SCLK出现上升沿时锁存,出现下降沿时移出。录音的控制指令数据的传输过程与t2阶段中的放音的控制指令的传输过程一致,此处也不再赘述。

至此,语音母片接收完控制指令的数据,可从放音起始地址对一条语音信息段进行放音操作。同时,语音子片接收完控制指令的数据,可从录音起始地址对该条语音信息段进行录音操作。

在t3时段内,母片片选信号M-/SS处在高电平,母片使能信号无效。语音母片的M-AO信号控制一条语音信息段输出音频信号,音频信号输出的同时母片中断信号M-/INT也将跳转至高电平。与此同时,子片片选信号S-/SS处在高电平,子片使能信号无效。语音子片的S-AI信号将控制该条语音信息段输入音频信号。至此,一条语音信息段放音完毕,完成了一条语音信息段的拷贝。

由前述可知,为确保编程拷贝的语音起始地址、音频品质完全一致,编程控制模块控制母片使能信号无效,以使音频信号输出和编程控制模块控制子片使能信号无效,以使音频信号输入是同步进行的。

当一条语音放音完毕后,母片中断信号M-/INT随之翻转至低电平。此时,语音母片产生有效母片中断信号,进而触发语音母片相应中断放音程序。直至下一周期开始,即母片片选信号M-/SS跳转至低电平时,母片中断信号M-/INT将跳转至高电平,从而清除放音程序的中断。

在放音过程中,语音母片会读取当前语音信息段信息,当读取当前语音信息段的结束标志时产生有效母片中断信号,此时说明语音母片的一条语音信息段放音完毕。编程控制模块接收到该有效母片中断信号后,将会给语音子片发送停止指令。各个语音子片基于前述停止指令写入当前语音信息的结束标志EOM。至此,语音子片也将无法录音。

需要注意的是,在本发明的实施例中,语音芯片可以进行多行的录放操作,每一行称为一个语音信息段,一个语音信息段由起始地址、记录的数据和信息结束标志三部分组成,其中信息结束标志就是EOM标志,表示一个语音信息段的 结束。

接下来是对语音母片中的下一条语音进行放音和录音的工作。

在此之前,首先需要获取下一条语音的起始地址。接下来,判断该条语音的起始地址是否已到OVF末位。在该条语音的起始地址已到OVF末位的情况下,说明上一条语音是语音母片中的最后一条语音,此时语音编程完毕。在该条语音的起始地址未到OVF末位的情况下,说明上一条语音不是语音母片中的最后一条语音,此时语音编程未结束,需要对下一条语音进行编程拷贝。该条语音的编程拷贝过程与前述周期完全相同,此处不再赘述。

需要说明的是,假设语音母片内共有2400个闪存行,即有2400个语音信息段,每个语音信息段能存储200ms的语音信息,一共能存贮8分钟的语音信息,那么第2400个语音信息段的信息结束标志也就称为OVF标志,表示芯片内语音信息段的最末尾。

实施例三

图5是本实施例的语音芯片批量编程拷贝的装置结构示意图。本实施例与实施例一的区别在于,该装置100还包括缓冲模块510、电源模块520、继电模块530、至少一片信号调理模块540、外放扬声模块550、显示模块560、报警模块570和操作模块580。以下仅针对不同于实施例一中的各单元进行阐述。

缓冲模块510分别与编程接口模块130、语音母片120和语音子片110连接,用于控制前述放音开始指令和录音开始指令的传输。编程接口模块130具体包括母片接口单元、子片接口单元和指令转发单元。在工作状态下,母片接口单元接收并传输编程控制模块140产生的放音开始指令至语音母片130,子片接口单元接收并传输编程控制模块140产生的录音开始指令至语音子片140。

缓冲模块510可用于增强编程控制模块140的信号驱动能力。当编程控制模块140产生的信号(如母片使能信号和子片使能信号等)传输至语音母片120或语音子片110时,缓冲模块510可保持前述信号的高频不被拉低,从而提高编程接口模块130的信号驱动能力,避免编程接口模块130传输放音开始指令和录音开始指令的数据时丢失,保证语音芯片编程拷贝的质量。

缓冲模块510还可用于对编程控制模块140所需电平(如5V)转化为语音芯片所需电平(如3.3V),为语音芯片提供稳定的电压,确保编程拷贝的语音芯 片的质量。

图6是本实施例的缓冲模块结构示意图。如图6所示,针脚31和针脚42处引出3.3V电源以及针脚7和针脚18处引出5V电源,可实现3.3V和5V电源的转换。

编程控制模块140产生的母片片选信号由缓冲模块510的针脚2接收后通过针脚47输出。编程控制模块140产生的母片串行输入信号经缓冲模块510的针脚3接收后通过针脚46输出。编程控制模块140产生的子片片选信号由缓冲模块510的针脚5接收后通过针脚44输出。编程控制模块140产生的子片串行输入信号经缓冲模块510的针脚6接收后通过针脚43输出。编程控制模块140产生的串行时钟输入信号经缓冲模块510的针脚8接收后通过针脚41输出。

母片串行输入信号和子片串行输入信号分别有针脚36和针脚32传输至缓冲模块510,再由缓冲模块510的针脚13和针脚17传送至编程接口模块130。

回到图5,电源模块520用于为前述装置提供电源。具体而言,电源模块520为语音母片120和语音子片110提供电源。

在一个优选的实施例中,电源模块520设置为数字-模拟双电源,避免音频信号的电磁干扰降低语音子片音质。具体来说,模拟电源为语音母片120、语音子片110、信号调理模块530和外放扬声模块540的模拟信号部分提供电源;数字电源为语音母片120和语音子片110的数字信号部分提供电源。数字-模拟双电源通过将电源系统充分数模分离,可有效降低音频信号噪音。

在一个具体的实施例中,数字-模拟双电源提供20W左右的负载能力,可保证一片语音母片连接最多十片语音子片进行同步语音编程拷贝时所需负载。

图7是本实施例的数字-模拟双电源的电路原理图。如图7所示,线性稳压器710输出数字电源VCC(3.3VD),线性稳压器720输出模拟电源VCC(3.3VA)。两路电源输出给了装置不同的模拟与数字单元。同时,为有效的抑制电磁干扰,模拟与数字电源的地通过3.3uH的电感L1进行隔离输出,AGND模拟单元专用地,可消除语音子片音质差的问题。

再次回到图5,继电模块530分别与电源模块520、编程接口模块130、语音母片120和语音子片110连接,用于根据编程控制模块140的控制指令控制电源对语音母片120和语音子片110的供电。

在编程拷贝程序开始前,编程控制模块140的控制指令控制缓冲模块510使 能端有效,同时控制继电模块530吸合。在编程拷贝程序完成后,编程控制模块140的控制指令控制缓冲模块510使能端无效,同时控制继电模块530断开。缓冲模块510和继电模块530共同作用,可提供无拔插芯片时的自动断电、上电功能,用于解决目前只能带电拔插芯片,给编程拷贝后的语音芯片带来严重质量隐患的问题。

具体而言,在操作模块580输入编程命令后,编程控制模块140控制继电模块530吸合,此时电源模块520的电源输出到语音母片120和语音子片110上。同时,编程控制模块140控制缓冲模块510的输出使能端有效,编程接口模块130才能有效的与各语音芯片进行通信连接。

在操作模块580输入停止编程命令后,编程控制模块140控制继电模块530释放,此时将断开电源模块520的电源输出。与此同时,编程控制模块140控制缓冲模块510的输出使能端失效,此时将断开编程接口模块130所有信号的输出,达到编程拷贝开始前与停止后,各语音芯片的各个管脚上均无任何信号的目的,以方便编程拷贝时的芯片拔插。

图8是本实施例的继电模块的电路原理图。如图8所示,当编程拷贝开始后,控制信号P-Con为高电平,三极管Q2的集电极c到发射极e处于导通状态,继电器RL1线圈通电。继电器RL1线圈通电后使得+3.3的数字电压和+3.3模拟电压接通,从而分别给语音母片120、语音子片110提供数字和模拟电源。

图9是本实施例的编程控制模块控制缓冲模块与继电模块自动上电、断电的时序控制图。以下阐述编程控制模块控制缓冲模块与继电模块自动上电、断电的工作原理。

如图9所示,在t1时段内,操作模块580输入编程命令后,编程控制模块140控制继电模块530的使能(Power Control)端信号P-Con变高,编程接口模块130的母片接口单元131与子片接口单元132才能有效的与各语音芯片进行通信连接。此时,语音母片和语音子片都可以接收到母片数据和子片数据。与此同时,缓冲模块使能(OE Control)端信号O-Con变低,此时数字-模拟双电源的模拟+3.3V、数字+3.3V才能输出到各语音芯片上。

在t2时段内,操作模块580输入停止编程命令后,编程控制模块140控制继电模块使能(Power Control)端信号P-Con变低,继电器将释放;缓冲模块530的使能(OE Control)端信号O-Con变高,使能失效。此时,数字-模拟双电源的 模拟+3.3V、数字+3.3V输出将因断开而无法输出。缓冲模块530的所有信号输出(包括母片接口单元131、子片接口单元132与语音芯片之间的通信连接)被封锁,达到编程拷贝开始前与停止后,各语音芯片的各个管脚上均无任何信号的目的,以方便编程拷贝时的芯片拔插。

又回到图5,信号调理模块530与语音母片120和语音子片110分别连接,在母片使能信号和子片使能信号失效的情况下,调整语音母片120输出的语音信息并提供给最多两个所述语音子片110。

具体而言,信号调理模块530将编程拷贝时语音母片120输出的音频信号经过调理和降噪处理后,输出恒定的音频信号给语音子片110,以满足语音子片110的录音信号输入要求。

图10a是语音母片的结构示意图,图10b是语音子片的结构示意图。图10a和图10b适用于其他实施例。图10c是信号调理模块的电路连接图。

图10a的语音母片120和图10b的语音子片110的M-/SS、M-MOSI、M-MISO、SCLK、XCLK、M-/INT、M-RAC、S-/SS、S-MOSI、S-MISO将与图6的缓冲模块610连接,R26、R27、R28和R29为上拉电阻,可防止装置误中断。

在编程拷贝时,语音母片120的语音输出端(AUD Out)输出的200mV幅值音频信号经过R30电阻一级衰变后,变成60mV幅值音频信号,再经过R31电阻上拉与R32电阻下拉的二级衰变之后,其信号幅值降低至30mV左右。

如图10c所示,音频信号经过电阻两级衰变后,其输入阻抗增加,可满足多路信号调理模块530的输入要求。同时,音频信号经过1:1输出模式的信号调理模块530调理后,输出的30mV幅值的音频信号刚好满足语音子片110的信号输入要求。其中,一个音频信号通过单端方式输入给语音子片110的输入端(ANAIN+),另外一个音频信号可同时输入给其它的语音子片110。

在本发明的优选实施例中,本装置100中连接5个信号调理模块530。此时,最多可同时接入10片语音子片110进行批量编程拷贝。

信号调理模块530将音频信号进行调理和降噪处理后,还输入至外放扬声模块540,可有效地鉴别整个编程拷贝过程中语音母片120输出的音频信号的品质。

显示模块550连接编程控制单元140,可实时显示语音编程进度和当前编程拷贝的语音起始地址。下文将具体阐述语音起始地址的获得方法。

报警模块560连接编程控制单元140,用于在编程拷贝结束时报警,提醒操 作者停止编程,以提高编程拷贝的自动化程度。“停止编程”的功能由操作模块570提供。操作模块570还提供“编程”和“复位”操作,方便操作命令的输入。

显示模块550、报警模块560和操作模块570组成了较为直观的人机交互系统,为编程拷贝的效率提高带来了益处。

实施例四

图11是本实施例的获取语音芯片的语音起始地址的方法流程图。该方法具体包括以下内容。

首先,编程控制模块140产生语音芯片使能信号,在使能信号有效的情况下发送获取指令(步骤S1110)。此时,编程控制模块140控制选取一个语音芯片,以使得该语音芯片可传输语音起始地址信息至编程控制模块140。

其次,语音芯片响应于前述获取指令串行输出语音信息的起始地址的每一位数值(步骤S1120)。

再次,编程控制模块140依次读取语音芯片串行输出的每一位数值,并记录已读取的位数,存储语音芯片串行输出的每一位数值(步骤S1130)。

其中,前述读取语音芯片串行输出的每一位数值的步骤具体包括以下内容。首先,在使能信号有效的情况下,编程控制模块140产生串行时钟输入信号。接下来,当串行时钟输入信号由高电平变化为低电平时,编程控制模块140读取语音芯片串行输出的一位数值。最后,当编程控制模块140读取完语音芯片串行输出的一位数值之后,串行时钟输入信号由低电平变化为高电平。

在一个优选的实施例中,步骤S1130后包括以下步骤。首先,判断已读取的位数是否达到语音信息的起始地址的总位数。

最后,编程控制模块140确定已读取的位数达到语音信息的起始地址的总位数,获得语音信息的起始地址(步骤S1140)。在已读取的位数未达到语音信息的起始地址的总位数的情况下,确定语音起始地址信息未获取完毕。接下来,回到步骤S1110,直至已读取的位数达到语音信息的起始地址的总位数。

需要说明的是,在本发明的实施例中语音信息的起始地址的总位数为16位。

在一个优选的实施例中,在步骤S1140后,使能信号由有效变为无效,使得前述获取指令无法传输至语音芯片,断开语音芯片语音起始地址信息向编程控制模块140的传输进程。

图12是本实施例的获取语音芯片的语音起始地址的示例性时序图。此示例仅以获取0x8ff的语音起始地址为例进行阐述。

如图12所示,由于编程控制模块产生语音芯片使能信号,在母片片选信号M-/SS为低电平时,使能信号有效。此时,编程控制模块将发送获取指令。语音母片基于前述获取指令输出语音信息的起始地址的每一位数值。

在图12中,在使能信号有效的时间段t内,母片串行输出信号M-MISO将依次输出高电平、高电平、高电平、高电平、高电平、高电平、低电平、低电平、低电平、高电平、低电平、低电平、低电平和低电平共16位语音信息的起始地址的数值。在语音信息的起始地址每一位数值传输过程中,由于从语音母片向编程控制模块遵循“所有指令数据在串行时钟输入信号SCLK的下降沿锁存输入,在上升沿移出”的原则,因此每输出一位语音信息的起始地址数值时,需要串行时钟输入信号SCLK中的一个下降沿和一个上升沿才能完成。依此推知,完成语音信息的起始地址16位数值的传输需要16个下降沿和16个上升沿才能完成,如图12中串行时钟输入信号SCLK所示。

基于以上分析,根据图12中的时序控制后获得的0x8ff的语音起始地址为1111111100010000。

需要明确的是,在本发明实施例中,语音芯片的地址不是通常意义上的字节地址单元,而是内部存储器的行地址,行是语音信息段的基本组成单位。

在现有技术中,语音芯片的RAC行地址时钟在放音时,每播放一行语音信息段,产生一个RAC周期信号,该信号保持175ms的高电平,25ms低电平。而一条完整的语音一般由多个语音信息段组成,也就有多个RAC周期信号,确定RAC周期信号的数量,也就基本能确定一条完整的语音由多少个语音信息段组成,那么一条完整语音的起始语音信息段所对应的行地址单元也就是一条完整语音的语音起始地址。

这种方式获取的语音起始地址容易受到硬件电路本身或外部的干扰而产生错乱现象,造成语音母片、子片间语音起始地址不一致和语音缺失等问题。同时这种方式在编程拷贝的运用中实时性也比较差,必须先对语音母片进行单独放音建立地址索引表,再根据地址索引表确定的语音起始地址进行编程拷贝,等于是编程拷贝一遍,需要对母片全部放音操作两次,效率很低,质量也不可靠。

本发明采用的获取语音芯片的语音起始地址的方法能有效、正确地获取语音 母片的语音起始地址,可杜绝母片、子片间语音起始地址不一致和语音缺失的问题,极大程度地提高编程拷贝的质量可控性。

实施例五

图13是本实施例的语音芯片批量编程拷贝的方法流程图。以下结合附图1和附图13详细阐述该方法的内容。

首先,执行步骤S1310,在母片使能信号有效的情况下,编程控制模块依次读取并存储语音芯片串行输出的每一位数值,记录已读取的位数。

接下来,执行步骤S1320,编程控制模块确定已读取的位数达到语音信息的起始地址的总位数,获取语音母片中待拷贝的语音信息段的起始地址。

需要说明的是,步骤S1310和步骤S1320可参考实施例四的方法,此处不再赘述。

随后,执行步骤S1330,在母片使能信号和子片使能信号有效的情况下,编程控制模块140基于起始地址生成放音控制指令和录音控制指令,通过编程接口模块130分别转发至语音母片和语音子片。

最后,执行步骤S1340,在母片使能信号和子片使能信号失效的情况下,信号转发模块150将语音母片输出的语音信息转发至语音子片。

为使本发明阐述内容简洁,步骤S1330和步骤S1340中涉及的具体内容可参考实施例二的编程拷贝的方法,此处也不再赘述。

虽然本发明所公开的实施方式如上,但所述的内容只是为了便于理解本发明而采用的实施方式,并非用以限定本发明。任何本发明所属技术领域内的技术人员,在不脱离本发明所公开的精神和范围的前提下,可以在实施的形式上及细节上作任何的修改与变化,但本发明的专利保护范围,仍须以所附的权利要求书所界定的范围为准。

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