居水荣+刘锡锋
摘 要:跟传统的音频芯片采用专用电路的设计思想不同,文章介绍了基于微控制器(MCU)的音频芯片中的三种信号处理模式,分别为数模转换模式、脉冲宽度调制模式和可编程声音产生模式。具体描述了这三种模式的原理、具体电路结构以及软件设置等。这种芯片能够充分体现微控制器编程灵活、开发速度快、费用低等特点,快速地开发出满足市场需求且费用较低的音频产品。
关键词:嵌入式MCU;音频芯片;数模转换;脉冲宽度调制
1 引言
国内音频芯片技术发展有相当长的时间了,但目前的语音芯片以专用芯片为主,通常把语音内容放在一个大容量的存储器中,再加上一些外围控制电路,结构上大同小异。这方面的研究主要集中在开发不同应用领域的音频芯片,另外这类芯片属于消费类领域,因此大部分研究者把重点放在了降低芯片成本方面。这种构架的语音芯片存在一些缺点。首先使用不方便,声音编曲不灵活;因为成为专用芯片后,要更改编曲风格等必须要重新进行芯片的结构设计;其次开发时间会延长,因为芯片设计、加工等都有一个周期;第三会增加开发费用,除了芯片的设计费用,还有芯片的加工等。
为了克服以上缺点,基于微控制器的音频芯片成为一种新的趋势,这得益于近年来微控制器技术的不断发展。微控制器结构设计灵活,芯片的功能等都可以采用软件来进行重新设计;而近年来出现的存储器更新换代技术为音频芯片的结构重新设计提供了可能,从掩膜存储器(MASK ROM)到电除存储器(EEPROM),再到闪烁存储器(FLASH),可以大大缩短开发时间,并大幅度降低开发成本。
基于嵌入式微控制器的音频芯片对音频信号的处理模式是多种多样的,有数模转换模式和脉冲宽度调制模式,这两种模式主要针对要求较高的语音领域;而针对噪声、警报声等要求不是很高的应用领域,可以采用一种称之为可编程声音产生的模式来处理这一类音频信号。本文对这几种音频处理模式的原理、实现方法以及具体电路模块等方面作详细介绍,并且跟传统专用芯片处理模式的作比较,为从事这方面产品开发的工程师提供一些参考设计。
2 采用DAC模式处理语音信号
采用DAC模式的音频芯片通常提供以电流型DA作为语音和单音曲调输出模式,可以直接驱动晶体管;除此之外,还提供了音调输出,可以直接驱动蜂鸣器,这两种模式共用一个AUD输出端。在电流型DAC模式中,为了减小关断电流型DAC的噪声,应该平缓地关掉电流型DAC输出至输出电流,直至为零,为了节省功耗,在电流型DAC不用时应该关断它。音调输出是一个全幅(VDD和VSS)信号,它的频率源是定时器进位的频率除以2,这一部分的框图如图1所示。
图1 电流型DAC模块框图及系统寄存器设置
系统寄存器$1E用来控制电流型DAC输出的大小,这是微控制器电路最大的优点,即通过数据总线,将预先设置在只读存储器(ROM)中的数据写入系统寄存器,然后在控制信号作用下读出,用来控制其它逻辑,用户非常方便修改ROM中的内容。在微控制器中,系统寄存器就起到这样的作用,为了直观地了解系统寄存器$1E的值与输出电流的大小,在图1下方示意了这种关系,其中左边一部分表示当处于语音/单音曲调模式时,$1E的值对输出AUD的影响,而右边一部分则表示当处于音调模式时,$1E的值对输出AUD的影响。
为了更清楚地说明这部分电路的功能,给出了这部分电路图,如图2所示。
图2 电流型DAC电路图
图2就是一个电流标度的DA转换电路,共有三种工作方式:音调(TONE)模式、语音(Speech)模式、单音曲调(Melody)模式,下面将对这三种方式依次进行分析:
(1) TONE方式:在这种方式下,首先d<6>=0并被锁存,电路处于TOG状态,下面一路被选通,在周期性脉冲信号h47的作用下,AUD输出高、低电平分别为3V、0V的方波。
(2) Speech方式:首先寄存器$1E被选中,d<6>=1被锁存,电路处于DAC状态,这时最后一级倒向器的P管和N管都被关闭,AUD由D/A转换电路提供比例电流。D<6:1>的值越大,从AUD端输出的电流也越大,并且对于d<6:1>的某一个值,输出电流是恒定的。
(3) Melody:与Speech大致相同。不同之处在于,用于产生比例电流的只有d<5:1>,并且对于d<5:1>的某一个值,在AUD输出的电流是方波,其频率与h47的频率相同。假定某一个值在 Speech方式下的输出电流为I0 ,那么在Melody状态下,输出电流的振幅为(I0,Imax-I0)。I0的最大值为Imax。
通过以上分析可以看到,采用基于微控制器的DAC模式后,控制方式比较多样,同时又非常灵活,完全取决于客户的要求;另外输出电流大小也可以自由调节,表现在声音方面可以做到非常柔和,变化细微,这是跟其它驱动模式相比性能优越的地方。
3 采用PWM模式处理语音信号
所谓调制技术是为了传输和存储数字信号而将信息进行转换的方法。对数字音频信号进行编码调制的技术很多,其中应用最广泛的是脉冲调制技术。所谓脉冲调制技术是指在传送过程中用不同的方法来表示所传送的取样信息,脉冲调制技术包括脉冲编码调制(PCM)、脉冲宽度调制(PWM)、脉冲位置调制(PPM)、脉冲幅度调制(PAM)等,虽然各种各样的技术从本质上来说都是用数字信号来表示模拟音频信号,但是不同的技术在实践中的性能和效率各不相同,这里介绍的脉冲宽度调制是指用脉冲的宽度来表示信号幅度。图3表示的是一个4秒语音电路的PWM处理方式功能框图。
图3 语音的PWM处理模式功能框图
在图3中,语音合成与脉冲宽度调制PWM主要有四部分组成:扩张器、计数器和比较器以及PWM驱动器。原理描述如下:
语音代码D<1:5>从ROM读出后,首先经过扩张器处理,得到一组表征AUDIO低电平脉宽的量化值h<10:6>,然后h<10:6>与计数器的输出t<4:0>进行比较,就能在输出端得到相应脉宽的信号。AUDIO输出口选择信号h<11>从PWM控制寄存器输出:h<11>=0,AUDIO从AUDP输出;h<11>=1,AUDIO从AUDN输出。由于量化单位为Tosc, 最大量化值为30Tosc,因此需要一个五级分频的计数器,产生范围为00H~1FH的t<4:0>。在一个Tosc内,AUDIO输出是高电平还是低电平由h<10:6>与计数器输出t<4:0>比较得到。endprint
比较器的原理如下:若3个输入中有2个或2个以上的“1”,则输出为“1”;否则输出为“0”。例如,h<10:6>=12,则AUDN的占空比就为12/32,并且这12个Tosc低电平是连续的。对于每一个语音代码D<1:5>,都对应有唯一的量化值h<10:6>,并且在32Tosc内通过h<10:6>与t<4:0>的比较又能得到一个一定占空比的AUDIO脉冲,从而实现了脉冲宽度调制PWM。表1给出了语音代码D<1:5>、量化值H<11:6>、计数器输出值t<4:0>以及输出端低电平的周期数,其中每一格代表一个单位脉宽,“*”表示此时AUDP为“0”。AUDN保持为“1”。
表1 PWM方式处理语音信号的相关参数值
4采用软件编程模式处理语音信号
采用软件编程模式实现声音的产生也是一种有效的音频信号处理模式,一般称之为可编程声音产生PSG(Programmable Sound Generator)。图4是一个嵌入在4位微控制器中的PSG模块。
图4 一种典型的PSG模块组成
针对图4PSG模块中的几个比较重要的子模块分析如下:
1)计数器
在图4所示的模块中有两个计数器,这两个模块原理相同,即用一组若干bit的移位寄存器(即伪随机计数器)来实现对输入时钟的分频。以计数器1为例作分析。
计数器1由一个7-bit预置右移寄存器为主体构成。当执行右移操作时,bit0?茌bit1后移入bit6,bit6~1则依次右移位,右移过程如下所示。
电路的工作过程如下:首先,使通道1使能信号为1,为计数器1提供时钟,由于此时bit6~0都为“0”,使得置数信号为“1”,移位寄存器处于置数状态,不断扫描寄存器$18~$17;一旦对$18~$17写入数据C1.6~1.0(对应于bit0~6),并且C1.5~1.0不全为“0”,则在时钟信号Q92的上升沿,C1.6~1.0被置入移位寄存器中,在时钟信号Q92的下降沿对bit6~bit0进行检测:如果bit6~bit1全为“0”,则Q64为“1”,在下一个Q92的上升沿再次置数;否则Q64为“0”,bit6~bit0执行一次右移操作。这样Q64就是一个频率为fQ92/N的周期信号(N=右移次数+1),即实现了对输入时钟的N分频。对应寄存器C1.6~C1.0或者寄存器C2.14~C2.8,计数器1的分频N值如表2所示。
计数器2也是由一个7-bit移位寄存器构成,bit0~bit6对应于C2.14~C2.8。工作过程是:通道2使能信号为1;向$1C~$1B写入C2.14~C2.8。C2.14~C2.8与N的对应关系见表2。
2)包络产生器
该模块为Alarm模式提供包络信号(载频由通道1提供),电路基本结构为一个六级分频器及一个四合一与非门输出通道。工作原理:将64Hz的时钟信号K6进行64分频,从中取出32Hz、8Hz、4Hz、1Hz的信号,通过一个由C2.3~C2.1控制的四合一输出通道,得到包络信号Q21。
3)混合器
该模块将通道1和通道2混合,然后加上音量控制和时间跟随,输出声音信号。
表2 PSG模式中不同寄存器的分频N值
以上分析的PSG模块可作多种用途,如声音产生器、噪声产生器、警报声产生器以及遥控模块等,音乐可从PSG端口输出。
可编程的声音是PSG的多种工作模式中的一种。这种语音信号处理模式跟传统的硬件电路处理语音信号相比有以下几个优点:
1)可以通过软件选择16种时钟源作为PSG的时钟,这样对于各种声音的产生在选择时钟源的时候提供了非常大的灵活性,因为对于语音信号的处理时钟源是非常重要的;
2)通道1和通道2的独立频率由寄存器C1.6~C1.0或者C2.14~2.8的值控制,也就是说两个通道可以独立控制;并且每个寄存器有7位来控制频率,语音芯片频率的多样性对于最终的效果有决定性作用;
3)音量控制寄存器可选择音量大小,这跟传统的语音芯片相比通过数字来调节音量,大大提高了音量控制的精细度,可以在编程过程中轻松修改音量控制寄存器的值来实现适合的音量;
4)压缩比选择可改变音乐的音调,这点也是非常重要的,往往不同的客户、不同的应用需要不同的音乐音调,通过改变压缩比来简单的实现,再次体现了基于微控制器的语音芯片跟专用芯片相比的优越性。
PSG模块产生声音举例:通道1和通道2使能信号为1,表示{通道1,通道2打开},主振荡频率为OSCX=1.8M, PSG的时钟频率为该频率的16分频,为112KHz;开关时钟频率=28KHz,音量控制时钟频率为112KHz,则波形图为:
图5 PSG模块产生声音举例
5结束语
本文介绍了几款量产的基于嵌入式MCU的音频芯片。在这些语音芯片中尝试了多种音频信号处理模式,本文介绍了其中的三种,这三种模式各有特点,但非常肯定的是,这几种模式都充分利用了MCU灵活多变的特点,使得实现起来非常方便,并且也很容易修改,从而降低了开发成本,在激烈的市场竞争中保持一定的优势,因此基于MCU的音频处理芯片不失为今后的一种发展方向。
参考文献
[1]Ken C. Pohomann著. 苏菲译. 数字音频原理与应用[M]. 北京. 电子工业出版社, 2002年. P25~75.
[2]居水荣等. 一种基于PWM的语音合成电路[J]. 半导体技术. 2002年;27(1):P9~15.
[3]居水荣. 一种采用RISC构架的4位微控制器[J]. 微电子技术. 2003;32(2):P14~20.
[4]窦振中. PIC系列单片机原理和程序设计[M]. 北京. 北京航空航天大学出版社,2000年. P68~90.
[5]居水荣 王效. 单片微控制器的功能集成方向(三)[J]. 微电子技术. 2002;30(3):P6~12.
[6]希格码微电子语音系列芯片产品说明书.
作者简介:居水荣(1968-),男,汉族,江苏苏州人,研究员级高级工程师,微电子硕士,主要研究方向为模拟集成电路以及大规模数模混合集成电路的设计。endprint
比较器的原理如下:若3个输入中有2个或2个以上的“1”,则输出为“1”;否则输出为“0”。例如,h<10:6>=12,则AUDN的占空比就为12/32,并且这12个Tosc低电平是连续的。对于每一个语音代码D<1:5>,都对应有唯一的量化值h<10:6>,并且在32Tosc内通过h<10:6>与t<4:0>的比较又能得到一个一定占空比的AUDIO脉冲,从而实现了脉冲宽度调制PWM。表1给出了语音代码D<1:5>、量化值H<11:6>、计数器输出值t<4:0>以及输出端低电平的周期数,其中每一格代表一个单位脉宽,“*”表示此时AUDP为“0”。AUDN保持为“1”。
表1 PWM方式处理语音信号的相关参数值
4采用软件编程模式处理语音信号
采用软件编程模式实现声音的产生也是一种有效的音频信号处理模式,一般称之为可编程声音产生PSG(Programmable Sound Generator)。图4是一个嵌入在4位微控制器中的PSG模块。
图4 一种典型的PSG模块组成
针对图4PSG模块中的几个比较重要的子模块分析如下:
1)计数器
在图4所示的模块中有两个计数器,这两个模块原理相同,即用一组若干bit的移位寄存器(即伪随机计数器)来实现对输入时钟的分频。以计数器1为例作分析。
计数器1由一个7-bit预置右移寄存器为主体构成。当执行右移操作时,bit0?茌bit1后移入bit6,bit6~1则依次右移位,右移过程如下所示。
电路的工作过程如下:首先,使通道1使能信号为1,为计数器1提供时钟,由于此时bit6~0都为“0”,使得置数信号为“1”,移位寄存器处于置数状态,不断扫描寄存器$18~$17;一旦对$18~$17写入数据C1.6~1.0(对应于bit0~6),并且C1.5~1.0不全为“0”,则在时钟信号Q92的上升沿,C1.6~1.0被置入移位寄存器中,在时钟信号Q92的下降沿对bit6~bit0进行检测:如果bit6~bit1全为“0”,则Q64为“1”,在下一个Q92的上升沿再次置数;否则Q64为“0”,bit6~bit0执行一次右移操作。这样Q64就是一个频率为fQ92/N的周期信号(N=右移次数+1),即实现了对输入时钟的N分频。对应寄存器C1.6~C1.0或者寄存器C2.14~C2.8,计数器1的分频N值如表2所示。
计数器2也是由一个7-bit移位寄存器构成,bit0~bit6对应于C2.14~C2.8。工作过程是:通道2使能信号为1;向$1C~$1B写入C2.14~C2.8。C2.14~C2.8与N的对应关系见表2。
2)包络产生器
该模块为Alarm模式提供包络信号(载频由通道1提供),电路基本结构为一个六级分频器及一个四合一与非门输出通道。工作原理:将64Hz的时钟信号K6进行64分频,从中取出32Hz、8Hz、4Hz、1Hz的信号,通过一个由C2.3~C2.1控制的四合一输出通道,得到包络信号Q21。
3)混合器
该模块将通道1和通道2混合,然后加上音量控制和时间跟随,输出声音信号。
表2 PSG模式中不同寄存器的分频N值
以上分析的PSG模块可作多种用途,如声音产生器、噪声产生器、警报声产生器以及遥控模块等,音乐可从PSG端口输出。
可编程的声音是PSG的多种工作模式中的一种。这种语音信号处理模式跟传统的硬件电路处理语音信号相比有以下几个优点:
1)可以通过软件选择16种时钟源作为PSG的时钟,这样对于各种声音的产生在选择时钟源的时候提供了非常大的灵活性,因为对于语音信号的处理时钟源是非常重要的;
2)通道1和通道2的独立频率由寄存器C1.6~C1.0或者C2.14~2.8的值控制,也就是说两个通道可以独立控制;并且每个寄存器有7位来控制频率,语音芯片频率的多样性对于最终的效果有决定性作用;
3)音量控制寄存器可选择音量大小,这跟传统的语音芯片相比通过数字来调节音量,大大提高了音量控制的精细度,可以在编程过程中轻松修改音量控制寄存器的值来实现适合的音量;
4)压缩比选择可改变音乐的音调,这点也是非常重要的,往往不同的客户、不同的应用需要不同的音乐音调,通过改变压缩比来简单的实现,再次体现了基于微控制器的语音芯片跟专用芯片相比的优越性。
PSG模块产生声音举例:通道1和通道2使能信号为1,表示{通道1,通道2打开},主振荡频率为OSCX=1.8M, PSG的时钟频率为该频率的16分频,为112KHz;开关时钟频率=28KHz,音量控制时钟频率为112KHz,则波形图为:
图5 PSG模块产生声音举例
5结束语
本文介绍了几款量产的基于嵌入式MCU的音频芯片。在这些语音芯片中尝试了多种音频信号处理模式,本文介绍了其中的三种,这三种模式各有特点,但非常肯定的是,这几种模式都充分利用了MCU灵活多变的特点,使得实现起来非常方便,并且也很容易修改,从而降低了开发成本,在激烈的市场竞争中保持一定的优势,因此基于MCU的音频处理芯片不失为今后的一种发展方向。
参考文献
[1]Ken C. Pohomann著. 苏菲译. 数字音频原理与应用[M]. 北京. 电子工业出版社, 2002年. P25~75.
[2]居水荣等. 一种基于PWM的语音合成电路[J]. 半导体技术. 2002年;27(1):P9~15.
[3]居水荣. 一种采用RISC构架的4位微控制器[J]. 微电子技术. 2003;32(2):P14~20.
[4]窦振中. PIC系列单片机原理和程序设计[M]. 北京. 北京航空航天大学出版社,2000年. P68~90.
[5]居水荣 王效. 单片微控制器的功能集成方向(三)[J]. 微电子技术. 2002;30(3):P6~12.
[6]希格码微电子语音系列芯片产品说明书.
作者简介:居水荣(1968-),男,汉族,江苏苏州人,研究员级高级工程师,微电子硕士,主要研究方向为模拟集成电路以及大规模数模混合集成电路的设计。endprint
比较器的原理如下:若3个输入中有2个或2个以上的“1”,则输出为“1”;否则输出为“0”。例如,h<10:6>=12,则AUDN的占空比就为12/32,并且这12个Tosc低电平是连续的。对于每一个语音代码D<1:5>,都对应有唯一的量化值h<10:6>,并且在32Tosc内通过h<10:6>与t<4:0>的比较又能得到一个一定占空比的AUDIO脉冲,从而实现了脉冲宽度调制PWM。表1给出了语音代码D<1:5>、量化值H<11:6>、计数器输出值t<4:0>以及输出端低电平的周期数,其中每一格代表一个单位脉宽,“*”表示此时AUDP为“0”。AUDN保持为“1”。
表1 PWM方式处理语音信号的相关参数值
4采用软件编程模式处理语音信号
采用软件编程模式实现声音的产生也是一种有效的音频信号处理模式,一般称之为可编程声音产生PSG(Programmable Sound Generator)。图4是一个嵌入在4位微控制器中的PSG模块。
图4 一种典型的PSG模块组成
针对图4PSG模块中的几个比较重要的子模块分析如下:
1)计数器
在图4所示的模块中有两个计数器,这两个模块原理相同,即用一组若干bit的移位寄存器(即伪随机计数器)来实现对输入时钟的分频。以计数器1为例作分析。
计数器1由一个7-bit预置右移寄存器为主体构成。当执行右移操作时,bit0?茌bit1后移入bit6,bit6~1则依次右移位,右移过程如下所示。
电路的工作过程如下:首先,使通道1使能信号为1,为计数器1提供时钟,由于此时bit6~0都为“0”,使得置数信号为“1”,移位寄存器处于置数状态,不断扫描寄存器$18~$17;一旦对$18~$17写入数据C1.6~1.0(对应于bit0~6),并且C1.5~1.0不全为“0”,则在时钟信号Q92的上升沿,C1.6~1.0被置入移位寄存器中,在时钟信号Q92的下降沿对bit6~bit0进行检测:如果bit6~bit1全为“0”,则Q64为“1”,在下一个Q92的上升沿再次置数;否则Q64为“0”,bit6~bit0执行一次右移操作。这样Q64就是一个频率为fQ92/N的周期信号(N=右移次数+1),即实现了对输入时钟的N分频。对应寄存器C1.6~C1.0或者寄存器C2.14~C2.8,计数器1的分频N值如表2所示。
计数器2也是由一个7-bit移位寄存器构成,bit0~bit6对应于C2.14~C2.8。工作过程是:通道2使能信号为1;向$1C~$1B写入C2.14~C2.8。C2.14~C2.8与N的对应关系见表2。
2)包络产生器
该模块为Alarm模式提供包络信号(载频由通道1提供),电路基本结构为一个六级分频器及一个四合一与非门输出通道。工作原理:将64Hz的时钟信号K6进行64分频,从中取出32Hz、8Hz、4Hz、1Hz的信号,通过一个由C2.3~C2.1控制的四合一输出通道,得到包络信号Q21。
3)混合器
该模块将通道1和通道2混合,然后加上音量控制和时间跟随,输出声音信号。
表2 PSG模式中不同寄存器的分频N值
以上分析的PSG模块可作多种用途,如声音产生器、噪声产生器、警报声产生器以及遥控模块等,音乐可从PSG端口输出。
可编程的声音是PSG的多种工作模式中的一种。这种语音信号处理模式跟传统的硬件电路处理语音信号相比有以下几个优点:
1)可以通过软件选择16种时钟源作为PSG的时钟,这样对于各种声音的产生在选择时钟源的时候提供了非常大的灵活性,因为对于语音信号的处理时钟源是非常重要的;
2)通道1和通道2的独立频率由寄存器C1.6~C1.0或者C2.14~2.8的值控制,也就是说两个通道可以独立控制;并且每个寄存器有7位来控制频率,语音芯片频率的多样性对于最终的效果有决定性作用;
3)音量控制寄存器可选择音量大小,这跟传统的语音芯片相比通过数字来调节音量,大大提高了音量控制的精细度,可以在编程过程中轻松修改音量控制寄存器的值来实现适合的音量;
4)压缩比选择可改变音乐的音调,这点也是非常重要的,往往不同的客户、不同的应用需要不同的音乐音调,通过改变压缩比来简单的实现,再次体现了基于微控制器的语音芯片跟专用芯片相比的优越性。
PSG模块产生声音举例:通道1和通道2使能信号为1,表示{通道1,通道2打开},主振荡频率为OSCX=1.8M, PSG的时钟频率为该频率的16分频,为112KHz;开关时钟频率=28KHz,音量控制时钟频率为112KHz,则波形图为:
图5 PSG模块产生声音举例
5结束语
本文介绍了几款量产的基于嵌入式MCU的音频芯片。在这些语音芯片中尝试了多种音频信号处理模式,本文介绍了其中的三种,这三种模式各有特点,但非常肯定的是,这几种模式都充分利用了MCU灵活多变的特点,使得实现起来非常方便,并且也很容易修改,从而降低了开发成本,在激烈的市场竞争中保持一定的优势,因此基于MCU的音频处理芯片不失为今后的一种发展方向。
参考文献
[1]Ken C. Pohomann著. 苏菲译. 数字音频原理与应用[M]. 北京. 电子工业出版社, 2002年. P25~75.
[2]居水荣等. 一种基于PWM的语音合成电路[J]. 半导体技术. 2002年;27(1):P9~15.
[3]居水荣. 一种采用RISC构架的4位微控制器[J]. 微电子技术. 2003;32(2):P14~20.
[4]窦振中. PIC系列单片机原理和程序设计[M]. 北京. 北京航空航天大学出版社,2000年. P68~90.
[5]居水荣 王效. 单片微控制器的功能集成方向(三)[J]. 微电子技术. 2002;30(3):P6~12.
[6]希格码微电子语音系列芯片产品说明书.
作者简介:居水荣(1968-),男,汉族,江苏苏州人,研究员级高级工程师,微电子硕士,主要研究方向为模拟集成电路以及大规模数模混合集成电路的设计。endprint