1 引言
ISD系列语音电路是美国ISD(InformationStorage Device)公司的专利新产品,该器件打破了传统的先A/D再D/A模式,而采用独特的直接存储模拟信号技术,从而大大提高了存储密度,并且可将模拟信号永久保存。ISD系列电路以其音质自然、使用方便、单片存储、反复录放、低功耗、抗断电等众多优点已在语音应用领域确立了其不可争辩的地位,目前,它已在通讯设备、智能仪表、治安报警、语音报站、报数报价、语音讲解、语音记录、语音复读、教学仪器、智能玩具、电子礼品等领域获得了广泛的应用。
本文用单片机89C2051和ISD2560设计了一款微电脑语音板,从而实现了语音的分段录取和组合回放。也可通过修改软件来实现整段录取和循环播放。本产品可作为语音服务系统的子系统,而不必使用专门的ISD语音开发设备。
2 ISD2560的语音录放电路构成
ISD2500系列语音芯片可通过SPI协议方便地与CPU接口。本文用ISD2560芯片构成的单片机通用开发板采用国内最常用的MCS-51语言单片机89C51,来与ISD2500系列语音芯片相结合,可供用户开发各种新型智能型数码语音产品。
该开发板上已装配好的器件包括:
◇AT89C2051单片机,该器件内含8031内核、4 KB可反复擦写的程序存储器,以及32条I/O口,并采用5 V电压工作;
◇ISD2560语音芯片,采用音质优异的模拟存储技术,可反复录放60秒;
◇LM386功率放大器,具有0.5 W驱动能力;
AT24C01(选配件)I2C总线串行存储器;
此外,板上还有驻极体话筒(MIC)、话筒放大器、音量电位器、发光管等部件。当板子工作时,该板的外接电源电压为12 V(稳压),外接喇叭为4~16 Ω/0.5 W,工作电流在录音时为25~30mA,在放音时为50~80 mA,静态电流为13 mA,同时随板提供有演示程序功能等配套软件。
3 ISD2560与单片机的接口电路
ISD2560的A0~A9为地址线,它共有1024种组合状态。最前面的600个状态通常作内部存储器的寻址用,最后256个状态用作操作模式。本系统采用对地址直接进行操作的方式进行设计。
在本系统与微处理器的接口中,P/R录放音控制端在高电平时,为放音状态,低电平时为录音状态;P3.5、P3.7端用于录放音时的启停控制,通常与P/R端配合使用;P3.4端为每段信息结束信号输出端,该信号为负向信号,时间为12.5ms,其上升沿标志信息结束。
系统中的MIC是话筒前置放大器输入端;MIC REF为话筒补偿端,AGC为自动增益控制端;ANA IN与ANA OUT是模拟信号的输入和输出端,它们之间连接的耦合电容通常取值为0.22~1μF。
本系统中基于ISD2560的语音录放电路如图1所示。一般情况下,可将单片机的P1口、P3.4和P3.5与ISD2560的地址线相连,用以设置语音段的起始地址。P3.0~P3.3用以控制录放音状态。P3.7为扩展录音键,可供录音时使用。
4 系统工作原理及程序设计
ISD2560虽然提供有地址输入线,但它的内部信息段的地址一般无法读出。因此,通常使用不需要知道地址的操作模式。但要读出ISD2560内部信息地址,就需要专用的ISD开发设备,而这些设备的价格比较昂贵。为此,本系统采用单片机来控制。该方法不需读出信息地址,而是直接设置信息段起始地址。该设想的实现方式有多种。第一种方式由于ISD2560的地址分辨率为100ms,所以,可用单片机内部定时器定时100 ms,然后再利用一计数器对单片机定时次数进行计数,这样,计数器的计数值就是语音段所占用的地址单元。该方式能充分利用ISD2560内部的EEPROM,故在字段较多时可利用该方法;而如果语音字段较少,则可用第二种方式:即根据每一字段的内容多少直接分配地址单元。一般按每1 s说3个字计算,60 s可以说180个字,然后再根据ISD2560的地址分辨率为100 ms,计算出语音段所需的地址单元数。本系统即采用该方式。
4.1 AT89C2051对ISD2560的录放音控制
录音时,先按下录音键,由单片机通过口线设置语音段的起始地址,再使PD端、P/R端和其它相关端口为低电平以启动录音;录音结束,单片机又让这些端口回到高电平,以完成一段语音的录制。然后以同样的方法,也可录取第二段、第三段、等等。值得注意的是,录音时间一般不能超过预先设定的每段语音的时间。
放音时,可根据需播放的语音内容,找到相应的语音段起始地址,并通过接口线送出。然后将P/R端设为高电平,PD端设为低电平,并让其产生一负脉冲以启动放音,这时单片机只需等待ISD2560的信息结束信号(即EOM的产生)。由于该信号为一负脉冲,且在负脉冲的上升沿,该段语音才播放结束,所以,单片机必须要检测到该上升沿,才能播放第二段,否则,播放的语音将不连续,而且会产生啪啪声,这一点在编制软件时一定要注意。图2所示是其录放音程序框图。
其具体的操作方法如下:
(1)录音
将跳线插在“REC”一侧,即为录音状态,按下“REC”键,指示灯亮,即可对着板上话筒讲话录音,松键时,录音停止并形成一段。再次按下,则录下一段。操作时,按“STOP”键为复位,再录音时,又将从第一段开始。
(2)放音
将跳线插在“PLAY”一侧,为放音状态,此后,按一下“PLAY”键即播放一段,一段结束后自动停止放音,再按“AN”,则播放下一段。操作过程中,按“STOP”键为复位,再放音时,又将从第一段开始。
4.2 程序设计
本程序是以AT89C2051为ISD2560的控制器,晶振频率为12 MHz来编写的。
下面给出录取语音信息的录音程序以及对这段语音进行播放的源程序。实际上,播放时也可根据实际情况组合回放。需要时,还可对该程序进行扩充。其ISD2560语音录放系统程序如下:
此后,在录音时,第一次按录音键即开始录音,第二次按录音键表示暂停(即保存,设置EOM)。暂停录音后,按放音键,可从地址指针为0处开始放音。录音时,可通过PD(引脚P3.1)端的高脉冲来停止录音。
1 引言
ISD系列语音电路是美国ISD(InformationStorage Device)公司的专利新产品,该器件打破了传统的先A/D再D/A模式,而采用独特的直接存储模拟信号技术,从而大大提高了存储密度,并且可将模拟信号永久保存。ISD系列电路以其音质自然、使用方便、单片存储、反复录放、低功耗、抗断电等众多优点已在语音应用领域确立了其不可争辩的地位,目前,它已在通讯设备、智能仪表、治安报警、语音报站、报数报价、语音讲解、语音记录、语音复读、教学仪器、智能玩具、电子礼品等领域获得了广泛的应用。
本文用单片机89C2051和ISD2560设计了一款微电脑语音板,从而实现了语音的分段录取和组合回放。也可通过修改软件来实现整段录取和循环播放。本产品可作为语音服务系统的子系统,而不必使用专门的ISD语音开发设备。
2 ISD2560的语音录放电路构成
ISD2500系列语音芯片可通过SPI协议方便地与CPU接口。本文用ISD2560芯片构成的单片机通用开发板采用国内最常用的MCS-51语言单片机89C51,来与ISD2500系列语音芯片相结合,可供用户开发各种新型智能型数码语音产品。
该开发板上已装配好的器件包括:
◇AT89C2051单片机,该器件内含8031内核、4 KB可反复擦写的程序存储器,以及32条I/O口,并采用5 V电压工作;
◇ISD2560语音芯片,采用音质优异的模拟存储技术,可反复录放60秒;
◇LM386功率放大器,具有0.5 W驱动能力;
AT24C01(选配件)I2C总线串行存储器;
此外,板上还有驻极体话筒(MIC)、话筒放大器、音量电位器、发光管等部件。当板子工作时,该板的外接电源电压为12 V(稳压),外接喇叭为4~16 Ω/0.5 W,工作电流在录音时为25~30mA,在放音时为50~80 mA,静态电流为13 mA,同时随板提供有演示程序功能等配套软件。
3 ISD2560与单片机的接口电路
ISD2560的A0~A9为地址线,它共有1024种组合状态。最前面的600个状态通常作内部存储器的寻址用,最后256个状态用作操作模式。本系统采用对地址直接进行操作的方式进行设计。
在本系统与微处理器的接口中,P/R录放音控制端在高电平时,为放音状态,低电平时为录音状态;P3.5、P3.7端用于录放音时的启停控制,通常与P/R端配合使用;P3.4端为每段信息结束信号输出端,该信号为负向信号,时间为12.5ms,其上升沿标志信息结束。
系统中的MIC是话筒前置放大器输入端;MIC REF为话筒补偿端,AGC为自动增益控制端;ANA IN与ANA OUT是模拟信号的输入和输出端,它们之间连接的耦合电容通常取值为0.22~1μF。
本系统中基于ISD2560的语音录放电路如图1所示。一般情况下,可将单片机的P1口、P3.4和P3.5与ISD2560的地址线相连,用以设置语音段的起始地址。P3.0~P3.3用以控制录放音状态。P3.7为扩展录音键,可供录音时使用。
4 系统工作原理及程序设计
ISD2560虽然提供有地址输入线,但它的内部信息段的地址一般无法读出。因此,通常使用不需要知道地址的操作模式。但要读出ISD2560内部信息地址,就需要专用的ISD开发设备,而这些设备的价格比较昂贵。为此,本系统采用单片机来控制。该方法不需读出信息地址,而是直接设置信息段起始地址。该设想的实现方式有多种。第一种方式由于ISD2560的地址分辨率为100ms,所以,可用单片机内部定时器定时100 ms,然后再利用一计数器对单片机定时次数进行计数,这样,计数器的计数值就是语音段所占用的地址单元。该方式能充分利用ISD2560内部的EEPROM,故在字段较多时可利用该方法;而如果语音字段较少,则可用第二种方式:即根据每一字段的内容多少直接分配地址单元。一般按每1 s说3个字计算,60 s可以说180个字,然后再根据ISD2560的地址分辨率为100 ms,计算出语音段所需的地址单元数。本系统即采用该方式。
4.1 AT89C2051对ISD2560的录放音控制
录音时,先按下录音键,由单片机通过口线设置语音段的起始地址,再使PD端、P/R端和其它相关端口为低电平以启动录音;录音结束,单片机又让这些端口回到高电平,以完成一段语音的录制。然后以同样的方法,也可录取第二段、第三段、等等。值得注意的是,录音时间一般不能超过预先设定的每段语音的时间。
放音时,可根据需播放的语音内容,找到相应的语音段起始地址,并通过接口线送出。然后将P/R端设为高电平,PD端设为低电平,并让其产生一负脉冲以启动放音,这时单片机只需等待ISD2560的信息结束信号(即EOM的产生)。由于该信号为一负脉冲,且在负脉冲的上升沿,该段语音才播放结束,所以,单片机必须要检测到该上升沿,才能播放第二段,否则,播放的语音将不连续,而且会产生啪啪声,这一点在编制软件时一定要注意。图2所示是其录放音程序框图。
其具体的操作方法如下:
(1)录音
将跳线插在“REC”一侧,即为录音状态,按下“REC”键,指示灯亮,即可对着板上话筒讲话录音,松键时,录音停止并形成一段。再次按下,则录下一段。操作时,按“STOP”键为复位,再录音时,又将从第一段开始。
(2)放音
将跳线插在“PLAY”一侧,为放音状态,此后,按一下“PLAY”键即播放一段,一段结束后自动停止放音,再按“AN”,则播放下一段。操作过程中,按“STOP”键为复位,再放音时,又将从第一段开始。
4.2 程序设计
本程序是以AT89C2051为ISD2560的控制器,晶振频率为12 MHz来编写的。
下面给出录取语音信息的录音程序以及对这段语音进行播放的源程序。实际上,播放时也可根据实际情况组合回放。需要时,还可对该程序进行扩充。其ISD2560语音录放系统程序如下:
此后,在录音时,第一次按录音键即开始录音,第二次按录音键表示暂停(即保存,设置EOM)。暂停录音后,按放音键,可从地址指针为0处开始放音。录音时,可通过PD(引脚P3.1)端的高脉冲来停止录音。
举报