摘要:针对ISD语音芯片的特点,设计一种由单片机控制,能够循环录放的语音电路,可作为录音机,复读机、音频记录仪使用,既节省存储空间,又降低成本,具有较高的实用价值。
关键词:ISD4004 语音 循环录放
目前,市场上的固体录音机及各种录音笔,大多采用的是顺序录音,不具备循环录音功能,一旦存储器录满,必须重新 *** 作才行。本文设计一种能够循环录放的语音电路,即可解决上述问题。
1 器件功能介绍
ISD系列语音芯片是美国ISD公司推出的产品。该系列语音芯片采用多电平直接接模拟存储(Chip Corder)专利技术,声音不需要A/D转换和压缩,每个采样值直接存储在片内的闪烁存储器中,没有A/D转换误差,因此能够真实、自然地再现语音、音乐及效果声。避免了一般固体录音电路量化和压缩造成的量化噪声和金属声。
图1
ISD4004语音芯片采用CMOS技术,内含晶体振荡器、防混叠滤波器、平滑滤波器、自动静噪、音频功率放大器及高密度多电平闪烁存储阵列等(见图1),因此只需很少的外围器件就可构成一个完整的声音录放系统。芯片设计是基于所有 *** 作由微控制器控制, *** 作命令通过串行通信接口(SPI或Microwire)送入。采样频率可为4.0Hz、5.3Hz、6.4Hz、8.0kHz,频率越低,录放时间越长,而音质则有所下降。片内信息存于内烁存储器中,可在断电情况下保存100年(典型值)反复录音10万次。器件工作电压3V,工作电流25~30mA,维持电流1μA?单片录放语音时间8~16min,音质好,适用于移动电话机及其它便携式电子产品中。
1.1 引脚描述
ISD4004系列芯片引脚图如图2所示。
图2
同相模拟输入(ANA IN+)-这是录音信号的同相输入端,输入放大器可用单端或差分驱动。单端输入时,信号由耦合电容输入,最大幅度为峰峰值32mV,耦合电容和本端的3kΩ输入阻抗决定了芯片频率的低端截止频率。在差分驱动时,信号最大幅度为峰峰值16mV。
反相模拟输入(ANA IN-)-差分驱动时,这是录音信号的反相输入端。信号通过耦合电容输入,最大幅度为峰峰值16mV,本端的标称输入阻抗为56kΩ,单端驱动时,本端通过电容接地。两种方式下,ANA IN+和ANA IN-端的耦合电容值应用相同。
音频输出(AUD OUT)-提供音频输出,可驱动5kΩ的负载。
片选(SS)-此端为低,即选中ISD4004系列。
串行输入(MOSI)-此为单行输入端,主控制器应在串行时钟上升沿之前半个周期将数据放到本端,供ISD输入。
图3
串行输出(MISO)ISD-串行输出端,ISD未选中时,本端呈高阻态。
串行时钟(SCLK)-ISD的时钟输入端,由于控制器产生,用于同步MOSI和MISO的数据传输。数据在SCLK上升沿锁存到ISD,在下降沿移出ISD。
中断(INT)-本端为漏极开路输出,ISD在任何 *** 作(包括快进)中检测到EOM或OVF时,本端变低并保持,中断状态在下一个SPI周期开始清除,中断状态也可用RITN指令读取。
行地址时钟(RAC)-漏极开始输出。生个RAC周期表示ISD存储器的 *** 作进行了一行(ISD4004系列中的存储器有2400行)。8kHz采样频率的器件,RAC周期为200ms,其中175ms保持高电平,低电平为25ms。快进模式下,RAC为218.75μs高电平,31.25μs为低电平,该端可用于存储管理技术。
外部时钟(XCLK)-本端有内部下拉元件,芯片内部的采样时钟在出厂前已调校,误差在+1%内,在不外接时钟时,此端必须接地。
自动静噪(AM CAP)-1μF电容构成内部峰值检测电路的一部分,检测出的峰值电平与内部设定的阈值作比较,决定自动静噪电路的工作与否。大信号时自动静噪电路不衰减,静音时衰减6dB。同时,1μF电容也影响自动静噪电路时信号幅度的响应速度,本端接VCCA则禁止自动静噪。
1.2 串行外部接口(SPI)
ISD4004工作于SPI串行接口。SPI协议是一个同步串行数据传输协议,协议假定微控制器的SPI移位寄存器在SCLK的下降沿动作。因此,对ISD4004而言,在时钟上升沿锁存MOSI引脚数据,在下降沿将数据送至MISO引脚。协议具体内容如下。
①所有串行数据传输开始于SS下降沿。
②SS在传输期间必须保持为低电平,在两条指令之间保持为高电平。
③数据在时钟上升沿移入,在下降沿移出。
④SS变低,输入指令和地址后,ISD行才开始录放保持。
⑤指令格式是8位控制码加16位地址码。
图5
⑥ISD的任何 *** 作(含快进)如果遇到EOM或OVF,则产生一个中断,该中断状态在下一个SPI周期开始时被清除。
⑦使用“读”指令会使中断状态位移出ISD的MISO引脚时,控制及地址数据也同步从MOSI端移入。
⑧所有 *** 作在运行位(RUN)置1时开始,置0时结束。
⑨所有指令都在SS端上升沿开始执行。
OVF标志指示ISD录放 *** 作已到达存储器的末尾。EOM标志只有放音过程中检测到内部的EOM标志时,此状态位置1,如图3所示。
以下列举了几种对ISD器件进行 *** 作进的批令次序。
图6
*信息快进。用户不必知道确切的地址,就能快地跳过一条信息。信息快进只用于放音模式。放音速度是正常的1600倍,遇到EOM后停止,内部地址计数器加1,并接下条信息开始处。
*上电顺序。器件延时TPUD(8kHz)采样时,约25ms后才能开始 *** 作。因此,用户发完上电指令后,必须等待TPUD,才能发出一条 *** 作指令。例如从00处放音,应遵循如下时序:发power up命令;等待TPUD(上电延时);发地址值为00的SETPLAY命令;发PLAY命令。器件会从00地址开始放音,当出现EOM时,立即中断,停止放音。如果从00处录音,则按以下时序:发power up命令;等待TPUD(上电延时);发power up命令;等待2倍TPUD;发地址值为00的SETREC命令;发REC命令。器件便从00地址开始录音,一直到出现OVF(存储器末尾),录音停止。
1.3 时序
8位及24位命令格式如图4和图5所示。
录音、放音、停止时序如图6所示。
图7
2 循环录放电路的设计
该电路采用AT89C51单片机,通过 *** 作5个微型按扭开关和一个微动开关实现功能转换, *** 作命令由串行通信接口(SPI)送入。电路即可工作在顺序模式,又可工作在循环模式。当工作在循环模式。当工作在循环模式的录音状态时,ISD芯片将始 终记录最后16min的语音信息,直至按下停止键。
2.1 硬件电路设计
电路原理图如图7所示,整个电路由单片机控制显示电路、ISD4004语音录放电路、话筒输入电路、音频功率放大电路几部分构成。ISD4004的片选信号SS由控制器P2.0提供。单片机AT89C51的串行口工作于同步移位寄存器方式,同步移位脉冲由TXD(P3.1)输出至ISD4004的串行时钟输入端SCLK,数据由RXD(P3.0)输入输出。因AT89C51单片机不具备(SPI)接口,故这里通过三态门将RXD(P3.0)数据线复用。对单片机而言,发射时作为输出,接至ISD4004的串行输入端(MOSI);接收时作为输入,接至ISD4004的串行输出端(MISO)。电路中拔动开关Ks用于选择启用或取消循环录音功能。
2.2 软件设计
整个程序包括主程序和中断子程序两部分。AT89C51单片机提供了用户键盘、显示和ISD4004所需接口。它接收击键功作,并将相应指令传给ISD4004,同时监控ISD4004的中断输出。当开关KS闭合(KS=1)时,读取ISD4004的状态寄存器,从而根据OVF和EOM的状态进行相应的处理。当OVF=1,即存储器溢出时,则不管当前为何种状态均将ISD4004的地址置零,并继续运行原指令;当EOM=1时,当前状态只可能为放音或快进,若为快进则置为放音态,并继续运行。如此设计便实现了循环录放的功能,同时在快进时,自动停止在下一个语音段开始处,并继续放音。
中断程序流程图如图8所示。
3 总体性能与功能扩展
该电路正常工作时功耗为200mW,音量增大时功耗有所增加。整个电路工作稳定、可靠,输出的声音清晰,音色优美,主观上听不到循环模式下将ISD地址置零所产生的间断音。系统最大录放时间为16min,如需增加录放时间,只需增加ISD4004芯片数量,通过片选即可实现。例如,采用4片ISD4004,就能达到近一个小时的录音长度。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)