ISD4004语音芯片
[日期:来源:电子技术应用 作者:张建华 高守玮 [字体:大 中
2004-12-11] 杨建国 小]
ISD4004语音系列芯片是美国ISD公司推出的产品,具有
可多次重复录放、存储时间长、使用时不需扩充存储器、所需外围电路简单等特
点。介绍了ISD4004芯片在语音报站器中的一个实际应用,并说明了其功
能和使用方法,从而使读者对ISD4004系列语音芯片的使用有个初步的了
解。
单片机 语音报站器
ISD4004语音芯片是由美国ISD公司推出的新产品。关于该语音芯
片的引脚说明以及内部电路等,很容易在ISD公司提供的芯片资料中查到,笔
者就不进行过多的描述,只简单地对其特点做一介绍。
与普通的录音/重放芯片相比,ISD4004具有如下特点:首先,
记录
混凝土 养护记录下载土方回填监理旁站记录免费下载集备记录下载集备记录下载集备记录下载
声音没有段长度限制,并且声音记录不需要A/D转换和压缩;其次,将快速闪
存作为存储介质,无需电源即可保存数据长达100年,重复记录10000次
以上;此外,ISD4004具有记录时间长(可达16分钟,本文采用的为8
分钟的ISD4004语音芯片)的优点;最后,ISD4004的开发应用具
有所需外围电路简单的优点,这一点从本文介绍的其在语音报站器中的实际应用
可以体会到。
目前市场上流通的语音报站器,大多采用的不是ISD4004系列的芯
片,这与其刚推出不久以及价格偏高有关。但随着ISD4004应用的增多以
及价格的回落,再加上ISD4004系列芯片本身的优点,可以相信,在语音
报站器中采用ISD4004系列语音芯片是完全可行的。笔者设计了该装置的
硬件电路,并进行了上车调试,取得了较为满意的效果。
本文讨论的语音报站器主要是指装在车上的放音电路,不包含录音电路。而
在实际应用中,录音电路则完成报站内容的录音工作,并收录内容存储到语音芯
片中。本文主要结合ISD4004在放音电路中的使用介绍ISD4004的
典型应用。
本文讨论的报站器主电路主要由单片机89C52和ISD4004构成。
该系统的硬件电路连接图如图1所示。
本系统主要分为三部分:单片机控制部分、放音部分和显示部分。显示电路
采用的是通过P3.0、P3.1控制的两个7段数码管的静态显示器,在此不
作详细介绍;控制部分主要由单片机89C52构成,包含必要的按键电路、复
位电路和看门狗电路等外围电路;放音部分
主要由ISD4004构成,包含配套的变
压电路、功放电路等。
从图1中可以看出89C52和ISD
4004之间的连接较少。单片机的P
1.0~P1.3引脚接按键,控制报站器
工作过程中是否放音和放音内容;P1.6
接ISD4004的片选引脚/SS,控制
ISD4004是否选通;P1.7接IS
D4004的串行输入引脚MOSI,从该
引脚读入放音的地址;P3.0和P3.1
控制外围显示电路,在报站器工作过程中显
示当前的站号;P3.2和P3.3分别接
ISD4004的串行时钟引脚SCLK
和中断引脚/INT。ISD4004芯片所需要的连接还有音频信号输出引脚AUDOUT,该引脚通过一个滤波电容与
扬声器连接;AMCAP为自动静音端,使用时通过一电容接地。此外,由于I
SD4004的工作电压为3V,而单片机所需供电电压为5V,因此需要采用
变压电路得到3V电压供ISD4004使用。
程序流程图如图2所示。
电路上电后,首先完成程序的初始化,随后查询按键状态,进入系统待机状
态。如果有按键按下,则转去执行该按键指向的工作程序。按键包括放音键、停
止键、加一键、减一键以及特殊语键。在待机状态下,如果放音键首次被按下,
程序将首先判断是去还是回(公交车路径一般是既去又回的),并点亮相应的指
示灯,自动读出第一站的放音内容,站号显示1。如果不是首次按下,则首先判
断当前站号,并以该站号为依据获得存放该站放音内容的首地址;然后调用放音
子程序,读入前面获得的本站放音内容首地址,开始放音。每一句放音完毕后,
ISD4004的中断引脚(25脚)会自动送一低电平信号。在硬件设计中,
该引脚与单片机的P3.3连接,因此会引起一次中断,在中断子程序中有一个
计数器记录中断次数,从而判断何时当前一站结束,站号加一并刷新显示。加一
键按下后,程序放音内容转向下一站;减一键按下后,则使程序放音内容转向上
一站,相应的站号显示也将随之刷新;特殊语键按下后,程序转向执行特殊语放
音(譬如“拐弯请注意”等语句);停止键按下,将中止当前的放音状态。
为了便于读者对ISD4004应用的理解,本文给出了部分程序。
该部分程序主要完成放音操作,把获得的放音内容的地址送到ISD400
4中,完成放音。
PLAY
ACALL POWERUP 上电子程序
ACALL DELAY25 延迟子程序,至少延
迟25ms
CLR P1.6 选中ISD4004
MOV PLAY2#11100000B 存放SETPLAY命令
MOV APLAY0 送放音地址低8位
ACALL SEND 调用送地址子程序
MOV APLAY1 送放音地址高8位
ACALL SEND
MOV APLAY2 送SETPLAY命令
ACALL SEND
SETB P1.6
CLR P1.6
MOV PLAYING#11110000B 送入放音指令
MOV APLAYING
ACALL SEND
SETB P1.6
RET
POWERUP送上电指令子程序
MOV POWING#00100000B 送入语音芯片上电信号
MOV APOWUPING CLR P1.6
ACALL SEND
SETB P1.6
RET
SEND: 向ISD4004送指令、
地址等的子程序
CLR MOSI
CLR P3.2
MOV R1#8
OUTBIT1
CLR P3.2 时钟下降 RRC A
MOV MOSIC 输出1位 NOP
NOP
SETB P3.2 时钟上升沿到 NOP
NOP
NOP
DJNZ R1OUTBIT1 RET
放音程序中,要严格按照ISD4004的要求编程。首先要送上电指令,
然后等待25μs的延迟,再送16位放音起始地址,最后送8位的开始放音指
令。
在放音电路的调试过程中,首先测量ISD4004的工作电压是否是3
V,如果是则进入下级调试。再看是否可以送入放音地址,对此可以测量AUD
OUT引脚的电压,若为1.2V则说明可以读入放音地址。再后测量是否能够
放音,可以测量AUDOUT引脚电压,若为1.2V则说明ISD4004芯
片工作正常,可以放音。如果没有听到放音则调试后级放音电路,看是否是后级
电路有问题。
本文介绍的报站器电路已经经过上车实验调试,能够稳定可靠工作。
美国ISD公司生产的语音录放电路系列品种齐全,
不仅有单片6~20秒的、32~120秒和60~240秒的,还有非单片时间长达1小时(外接存储器)的语音电路。ISD4000系列中的4002、4003和4004单片录放时间分别为2~4分钟、4~8分钟和8~16分钟,这是现阶段音质最好的单片
录放时间最长的语音电路。
ISD4004和该公司其他品种一样,仍然采用"直接模拟量存储"(DAST)专利技术,信号无需经过D/A、A/D转换,数字压缩和语音合成等复杂的数字信号处
理过程,减少失真,所以音质好;由于4004内含大容量的闪速存储器(2840K)一片(单片)电路就能实现长达16分钟的录单或放音;外围电路简单,体积小;
3V单电波供电;耗电省,维持电流仅1μA;可以和微控制器或微总线接口;根
据取样频率8.0、6.4、5.3、4.0kHz不同,相应的录放时间有8、10、12、16分钟,供客户选择;封装形式多种多样,除常见的PDIP、SOIC、TSOP外,还有和芯片尺寸大小差不多的微型封装(CSP);既可适于民用,又有工业级(-40~+85?)产品。
ISD4004 PDIP/SOIC双列直插式和小型封装各引脚功能如下:VCCA(18引脚)、VCCD(27引脚)分别为模拟信号和数字信号3V电源正端;
VSSA(11、12、23)、VSSD(4)分别为上述两种信号电流接地引脚; ANA IN+、-(16、17)分别为模拟信号非反相和反相信号输入引脚; AUD OUT(13);音频信号输出端(负载阻抗5kΩ),可经交流模耦合到下一
级放大器;
SS(1):当该引脚出现低电平时,此片4004被选中; MOSI(2)、MISO(3):4004和微控制器或微总线接口端; SCLK(28);4004和微控制器同步同钟连接引脚; INT(25):中断信号;
RAC(24);行地址时钟;
XCLK(26);外部时钟输入引脚;
AM CAP(14);自动静音引脚;
4004和微控制器SPI接口框图示于图1。
4004和微总线接口框图示于图2。
4004和PIC 16C 62A接口为图3所示。
本系统是以单片机,语音处理芯片及报警传感器为基础,利用公共电话网络
建立起来的智能家居服务系统。它具有以下主要功能:
(1)家电控制功能:打电话在通过密码校验后,在语音的提示下,进行远
程控制家电、查询其工作状态及家电定时操作。
(2)电话录音功能:可来电留主及用户自己录音。
(3)自动语音报警功能:在无的情况下,监控系统检测到非法闯入,能自
动拔打报警电话。在叫通后,能接报警信息以语音的形式发送出去。
由上可以看到,在整个家居服务系统中,要多次实现语音提示,应答,查询
等功能。这些功能的实现是靠单片机89C51与ISD4004之间的通讯来完成的。89C51与ISD4004的连接如图3所示。
图中,ISD4004的13管脚是模拟语音信号的输出端,输出的语音信号通过
LM386功率放大器放大,然后经过变压器耦合到电话线上。
MIC是麦克风,即语音信号的输入端,输出的模拟语音信号通过三极管组成
放大器加到ISD4004语音芯片的输入端。
该系统的录音子程序如下:
LUYIN: ;用户录音子程序 MOV R0,# # # # # # # # # #
ACALL FAST ;语音提示如何修改 JB P3.5,$
MOV A,#20H ;语音芯片上电 ACALL ISDX
SETB P1.0
ACALL YS50 ;上电延时 ACALL YS50
MOV A,# # # # #
;“# # # # # #”
表
关于同志近三年现实表现材料材料类招标技术评分表图表与交易pdf视力表打印pdf用图表说话 pdf
示是录音具体地址
ACALL ISDX ;置录音地址 MOV A,#0A0H
ACALL ISDX
SETB P1.0
LUY1:MOV R1,#20H ;录音开始 LUY2:ACALL YS50
DJNZ R1,LUY2
MOV A,#0B0H ;录音
ACALL ISDX
SETB 1.0
JNB P3.3,$
LUY9:MOV A,#30H
ACALL ISDX
SETB P1.0
LUY3:MOV R5,#10H
LUY5:JNB P1.4,LUY4 ;检查录音是否超时
JNB P3.5,LUY3
DJNZ R5,LUY5
MOV A,#30H ;录音停止
ACALL ISDX
SETB P1.0
LUY6:MOV R4,#0FFH LUY7:MOV R5,#0FFH LUY8:MOV R6,#0FFH LUYA:JNB P3.5,LUY9 DJNZ R6,LUYA
DJNZ R5,LUY8
DJNZ E4,LUY7
SJMP GUANJI
LUY4:MOV R0,# # # # # #;“录音超过,请重录制”
ACALL FSAT
SJMP LUYIN
放音子程序:
FANGYI:MOV R0,# # # # # #;“提示放音程序开始工作”
ACALL FAST
FANGY2:MOV R1,#0FFH FANGY3:MOV R2,#0FFH FANGY4:MOV A,#0FFH MOV P0,A
SETB P0.7
SETB P0.4
CLR P0.5
SETB P0.6
MOV A,P0 ;读8880状态寄存器
JB ACC.2,FANGY6
FANGY6:DJNZ R2,FANGY4 DJNZ R1,FANGY3
SJMP GUANJI
CLR P0.4
MOV A,P0 ;读8880接收数据寄存器
ANL A,#0FH ;屏蔽高四位
CJNE A,#02H,FANGYI;查询是否“2”键按下,是则放音
FANGY5:MOV A,#0FFH
MOV P0,A
SETB P0.7
SETB P0.4
CLR P0.5
SETB P0.6
MOV A,P0
JNB ACC.2,FANGY5
MOV R0,# # # # #
ACALL FAST
INC R0
SJMP FANGY2
在目前市场上流通的语音报站器,大多采用的不是ISD4004系列的芯片。这固然由于ISD4004推出不久以及其价格偏高有关。但随着ISD4004应用的增多以及价格的回落,再加上ISD4004系列芯片本身又具有的多次重复录放、自带存储
器、使用简单等优点。可以相信,在语音报站器中采用ISD4004系列语音芯片也是完全可行的。笔者设计了该装置的硬件电路并进行了上车调试,取得了较为满
意的效果。
本文讨论的语音报站器主要是指装在车上的放音电路,不包含录音电路,在
实际应用中由录音电路完成报站内容的录音工作,并存储到语音芯片中。本文主
要结合ISD4004在放音电路中的使用来介绍ISD4004的典型应用。
本文讨论的报站器主电路主要由单片机89C52和ISD4004构成。该系统的硬件电路连接如图1所示:
图1
本系统可以主要分为三部分。单片机控制部分、放音部分和显示部分。本文
的显示电路采用的是通过P3.0,P3.1控制的两个7段数码管的静态显示,在此不作详细介绍。控制部分则主要由单片机89C52构成,包含必要的按键电路、复位电路和看门狗电路等外围电路。放音部分主要由ISD4004构成,包含配套的变压电路,功放电路等。
从图中可以看出89C52和ISD4004之间的连接较少,单片机的P1.0-P1.3引脚接按键,控制报站器工作过程中的放音与否和放音内容。P1.6接ISD4004的片选引脚/SS,控制ISD4004的选通与否。P1.7接ISD4004的串行输入引脚MOSI,从该引脚读入放音的地址。P3.0,P3.1控制外围显示电路,在报站器工
作过程中显示出当前的站号。P3.2和P3.3分别接ISD4004的串行时钟引脚SCLK和中断引脚/INT。对于ISD4004芯片所需要的连接还有音频信号输出引脚
AUDOUT,该引脚通过一个滤波电容与扬声器连接,AMCAP为自动静音端,使用时
通过一个电容接地。此外由于ISD4004的工作电压为3伏,而单片机所需供电电
压为5伏,因此需要采用变压电路得到3伏电压供ISD4004使用。
如图2所示:
图2
电路上电后,程序首先完成程序的初始化,随后查询按键状态,进入系统待
机状态。如果有按键按下,则转去执行该按键指向的工作程序。按键包括放音键,
停止键,加一,减一键以及特殊语键。在待机状态下,如果放音键首次被按下,
程序将首先判断是去还是回(公交车路径一般是既去又回的),并点亮相应的指
示灯。自动读出第一站的放音内容,站号显示1。如果不是首次按下,程序则首先判断当前站号,并以该站号为依据获得存放该站放音内容的首地址。调用放音
子程序,读入前面获得的本站放音内容首地址,开始放音。每一句放音完毕后,
ISD4004的中断引脚(25脚)会自动送一低电平信号。在硬件设计中,该引脚与
单片机的P3.3连接。因此,会引起一次中断,在中断子程序中会有一个计数器
记录中断次数,从而判断何时一站结束,站号加一并刷新显示。加一键按下后则
使程序放音内容转向下一站,减一键则使程序放音内容转向上一站,相应的站号
显示也将随之刷新。特殊语键按下后,程序转向执行特殊语放音(譬如拐弯请注
意等语句)。停止键被按下将中止当前的放音状态。
为了便于读者对ISD4004应用的理解,本文给出了部分操作程序。 该部分程序主要完成放音操作,把获得的放音内容的地址送到ISD4004中,完成放音。下面给出的就是放音部分程序。放音子程序: PLAY:
ACALL POWERUP ;上电子程序
ACALL DELAY25 ;延迟子程序,至少延迟25ms
CLR P1.6 ;选中ISD4004
MOV PLAY2,#11100000B ;存放SETPLAY命令
MOV A,PLAY0 ;送放音地址低8位
ACALL SEND ;调用送地址子程序
MOV A,PLAY1 ;送放音地址高8位
ACALL SEND
MOV A,PLAY2 ;送SETPLAY命令
ACALL SEND
SETB P1.6
CLR P1.6
MOV PLAYING,#11110000B ;送入放音指令
MOV A,PLAYING
ACALL SEND
SETB P1.6
RET
POWERUP: ;送上电指令子程序
MOV POWING,#00100000B ;送入语音芯片上电信号
MOV A,POWUPING
CLR P1.6
ACALL SEND
SETB P1.6
RET
SEND: ;向ISD4004送指令,地址等的子程序
CLR MOSI
CLR P3.2
MOV R1,#8
OUTBIT1:
CLR P3.2 &nb
sp; ;时钟下降
RRC A
MOV MOSI,C ;输出1位
NOP
NOP
NOP
SETB P3.2 ;时钟上升沿到
NOP
NOP
NOP
DJNZ R1,OUTBIT1
RET
在放音程序中,要严格按照ISD4004的要求编程。首先要送上电指令,然后
等待25毫秒的延迟,再送16位放音起始地址,最后送8位的开始放音指令。
在放音电路的调试过程中,首先测量ISD4004的工作电压是否3伏,如果是则进入下级调试。再看是否可以送入放音地址,对此可以测量AUDOUT引脚的电压,若为1.2伏则说明可以读入放音地址。随后测量是否能够放音,可以测量
AUDOUT引脚电压,若为1.2伏,则说明ISD4004芯片工作正常,应该可以放音。
如果还没有听到放音,则可以调试后级放音电路,看是否后级电路的问题。
本文通过对ISD4004语音芯片在语音报站器中的一个实际应用的简单介绍,
使读者熟悉了1SD4004的基本应用。同时本文介绍的报站器电路已经经过上车实
验调试,能够可靠稳定工作。
1 李华 《MCS-51系列单片机实用接口技术》 北京航空航天大学出版社 1993年
2 薛钧义 张彦斌 《MCS-51/96系列单片微型计算机及其应用》 西安交通大学出版社 1997年第2版
3 王振红 李洋 郝承祥 《ISD4004语音芯片的工作原理及其在智能控制系统中
的应用》 电子器件 2002年3月第25卷第1期