基于ISD4000系列芯片智能录放系统设计
2008-07-17
作者:范寒柏,陈旭升,李雪梅
摘 要: 简要介绍了ISD4000系列语音芯片" title="语音芯片">语音芯片的特点及工作原理。根据其工作特点设计了基于AVR单片机控制、串口" title="串口">串口通信和MP3播放的智能语音录制系统。详细介绍了硬件电路设计、软件实现和MP3的设计以及部分源程序。
关键词: ISD4002 ATMEGA16L 串口通信" title="串口通信">串口通信 MP3播放
语音电路已经被广泛应用于报告运行状态、运行提示、提示系统操作过程以及故障报警等功能的实现中。除了具有输出接口的功能外,它还具有输入接口的功能,用于语音识别、语音记录等。但是,做为输出接口应用时,语音芯片中必须有已经录好的语音,这就要求有一套快捷、可靠的录音系统。基于这方面的考虑笔者设计了具有语音录放功能的智能系统。本系统应用串口通信很好地将录音电路与PC机连接,克服了手动按键录放的缺点,并且录音的地址和长度也有很高的精度,录音长度可精确到0.1秒。
本系统主要是针对当前应用较为广泛的由美国信息存储器件公司推出的ISD系列语音芯片中的ISD4000系列设计的,本文中以ISD4003系列为例,对于其他系列的产品稍加改动即可,其设计思路基本相同且管脚兼容。
1 ISD 4003语音芯片简介
ISD4003系列芯片的工作电压3V,单片录放时间4~8分钟,音质好,适用于移动电话及其他便携式电子产品中。芯片采用CMOS技术,内含振荡器、防混淆滤波器、平滑滤波器、音频放大器、自动静噪及高密度多电平闪烁存储阵列。芯片设计基于所有操作必须由微控制器控制,操作命令可通过串行通信接口(SPI)送入。芯片采用多电平直接模拟量存储技术,每个采样值直接存储在片内闪烁存储器中,因此能够真实自然地再现语音、音乐、音调和效果声,避免了一般固体录音电路因量化和压缩造成的量化噪声和“金属声”。采样频率可为4.0kHz,5.3kHz,6.4kHz,8.0kHz。频率越低,录放时间越长,音质则有所下降。片内信息存于闪烁存储器中,可在断电情况下保存100年(典型值),反复录音10万次。
2 智能录放系统的设计
系统的整体思路是将录制好的语音内容打包成可在MP3中播放的文件,存储在PC中,通过串口和耳机插孔将录放电路和PC机相连。笔者自行用VB设计了MP3软件用于播放语音文件,在此MP3中用户可以自行设置录放的起始地址和时间长度。所以本系统的关键是PC机和录放电路的通信以及录放电路的设计和各功能的软件实现。下面将从录放系统的硬件设计、软件设计" title="软件设计">软件设计两方面对本系统进行详细的阐述。
2.1 硬件设计
录放电路是以ATMEL公司的ATMEGA16L为控制核心的,通过串口接收由PC 机发送的控制命令,同时通过SPI接口来控制语音芯片的录放。其总体电路设计框图如图1所示。
由图1可以看出,核心控制单元通过串行接口从PC机接收用户的录放指令,然后再由单片机和语音芯片的SPI接口的输入来控制语音芯片的录放音。
串行通信接口电路部分选用的是MAXIM公司的MAX3232芯片,这款芯片可以用3V供电且功耗较低。前面提及ISD4003芯片供电电压是3V,而传统的MAX232芯片供电大部分为5V,给电路设计增加了不必要的麻烦(尤其在布线过程中)。且MAX232比较耐用,不宜烧毁,这使得电路的稳定性大大提高(注:在许多资料上MAX3232周边的四个电容可以是0.1?滋F的,但经笔者多次尝试,图2为最佳匹配,不会出现异常,若加0.1?滋F的电容会出现莫名的错误)。图2中的TXD,RXD分别与ATMEGA16的TXD,RXD连接(见图3)。
核心控制芯片ATMEGA16L电路如图3,用的是片内的晶振,所以7、8管脚悬空。其JTAG下载口线采用双排插针。由于此款单片机性能相当稳定,所以不需任何仿真模式,直接烧写程序即可,其内部带有16kB的Flash可反复擦写,笔者多次应用没出现过由于烧写程序而损坏片子的情况,这也是选择此款单片机的原因之一。由于其SPI被JTAG占用,所以用单片机PC口(图3)来控制语音芯片的SPI接口。其中的LED为录放指示和上电指示。
语音芯片接口电路部分基本为典型的电路连接如图4,但在PCB图中必须注意在语音芯片的电源和地之间加一个去偶电容,以保护芯片,并且电容要尽量靠近芯片(注:SPEAK为扬声器接口)。
2.2 软件设计
软件设计主要分为两大部分,一部分是录放控制和串口通信的单片机内部的程序设计" title="程序设计">程序设计,另一部分是VB语言的MP3设计。下面分别就这两部分作简要的介绍并给出部分程序代码。
单片机内部的软件编程是在串口中断服务程序中加入判断,以此来控制语音芯片的录放和录放地址、时间长度等参数的设置。在单片机中笔者使用的是C语言编程,这样可以提高设计的效率但对系统的运行不会带来任何影响。其主程序流程图如图5所示。
在图5的录放服务程序中,加入了定时器中断,串口中断的数据包中包括录放音时间的参数,一旦开始,录放音定时器计数(以100ms为溢出时间,这样系统的录放时间精度可以达到0.1s)。录放时间到,则置标志停止录音。以放音为例(注:录放服务程序基本相同,只是控制端口的命令不同),其流程图如图6所示。
系统中录音流程和放音流程基本相同,在此不作赘述。
PC机MP3的设计主要是关于串口和录音控件的VB程序设计,下面给出部分VB程序代码。其中包括了串口和录音控件的编程。
′初始化串行口
intPort=1
strSet=″9600,n,8,1″
′frmMain.ctrMSComm.InBufferSize=1024
′frmMain.ctrMSComm.OutBufferSize=512
If Not frmMain.ctrMSComm.PortOpen Then′尝试打开串行口
frmMain.ctrMSComm.CommPort=intPort
frmMain.ctrMSComm.Settings=strSet
frmMain.ctrMSComm.PortOpen=True′打开串行口
End If
frmMain.ctrMSComm.PortOpen=False ′关闭串行口
End Sub
录音控件部分
MediaPlayer1.URL=File1.Path+″″+File1.FileName
Caption=″正在播放:″& File1.Path′要播放的mp3路径′
笔者所设计的智能录放系统可应用于各种语音的录放,但最终应用者的目的还是以录音为主,如公交车的报站系统中的语音录制。笔者所设计的这套录放系统经多次实验,证明性能稳定、录放精确,并已经应用于某警卫系统的语音录制工作中。
参考文献
[1] ISD4000系列单片语音录放电路.www.atvoc.com.
[2] 鲁奇璞,魏丰.ISD4004-16M语音芯片的循环录放电路设计.电子技术应用,2006,(2).
[3] 梁子伊.ISD4000系列语音芯片的单片机控制技术.单片机与嵌入式系统应用,2002,(2).