ISD4004语音芯片在语音报站器中的应用

摘要:isd4004语音系列芯片是美国isd公司推出的产品,具有可多次重复录放、存储时间长、使用时不需扩充存储器、所需外围电路简单等特点。介绍了isd4004芯片在语音报站器中的一个实际应用,并说明了其功能和使用方法,从而使读者对isd4004系列语音芯片的使用有个初步的了解。
isd4004语音芯片是由美国isd公司推出的新产品。关于该语音芯片的引脚说明以及内部电路等,很容易在isd公司提供的芯片资料中查到,笔者就不进行过多的描述,只简单地对其特点做一介绍。
与普通的录音/重放芯片相比,isd4004具有如下特点:首先,记录声音没有段长度限制,并且声音记录不需要a/d转换和压缩;其次,将快速闪存作为存储介质,无需电源即可保存数据长达100年,重复记录10000次以上;此外,isd4004具有记录时间长(可达16分钟,本文采用的为8分钟的isd4004语音芯片)的优点;最后,isd4004的开发应用具有所需外围电路简单的优点,这一点从本文介绍的其在语音报站器中的实际应用可以体会到。
1 语音报站器硬件电路设计
目前市场上流通的语音报站器,大多采用的不是isd4004系列的芯片,这与其刚推出不久以及价格偏高有关。但随着isd4004应用的增多以及价格的回落,再加上isd4004系列芯片本身的优点,可以相信,在语音报站器中采用isd4004系列语音芯片是完全可行的。笔者设计了该装置的硬件电路,并进行了上车调试,取得了较为满意的效果。
图1 报站器硬件电路连接图
本文讨论的语音报站器主要是指装在车上的放音电路,不包含录音电路。而在实际应用中,录音电路则完成报站内容的录音工作,并收录内容存储到语音芯片中。本文主要结合isd4004在放音电路中的使用介绍isd4004的典型应用。
本文讨论的报站器主电路主要由单片机89c52和isd4004构成。该系统的硬件电路连接图如图1所示。
本系统主要分为三部分:单片机控制部分、放音部分和显示部分。显示电路采用的是通过p3.0、p3.1控制的两个7段数码管的静态显示器,在此不作详细介绍;控制部分主要由单片机89c52构成,包含必要的按键电路、复位电路和看门狗电路等外围电路;放音部分主要由isd4004构成,包含配套的变压电路、功放电路等。
从图1中可以看出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的工作电压为3v,而单片机所需供电电压为5v,因此需要采用变压电路得到3v电压供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 ?时钟下降
rrc a
mov mosi?c ?输出1位
nop
nop
setb p3.2 ?时钟上升沿到
nop
nop
nop
djnz r1?outbit1
ret
放音程序中,要严格按照isd4004的要求编程。首先要送上电指令,然后等待25μs的延迟,再送16位放音起始地址,最后送8位的开始放音指令。
在放音电路的调试过程中,首先测量isd4004的工作电压是否是3v,如果是则进入下级调试。再看是否可以送入放音地址,对此可以测量audout引脚的电压,若为1.2v则说明可以读入放音地址。再后测量是否能够放音,可以测量audout引脚电压,若为1.2v则说明isd4004芯片工作正常,可以放音。如果没有听到放音则调试后级放音电路,看是否是后级电路有问题。
本文介绍的报站器电路已经经过上车实验调试,能够稳定可靠工作。

为什么物联网吞噬嵌入式RTOS
一种可穿戴的、能够识别并捕获癌细胞德微流体机器
Technodinamika公司已为俄罗斯卡-226T直升机研制出了抗坠毁燃油系统
浅谈一下无卤焊锡膏是否可以取代无铅焊膏?
新一代MacBook Pro被曝光:内置32GB内存与Kaby Lake平台
ISD4004语音芯片在语音报站器中的应用
使用PXI平台与网络分析仪实现病人大脑中风类型检测区分设计
不超19.9亿元!歌尔拟在越南设立全资子公司
超大规模玩家推动存储设备创新
大华发布一站式人工智能开发平台 加速人工智能规模产业化落地
来了!vivoX9sPlus曝光:骁龙660加后置双摄
高压差分探头与低压探头的区别有哪些?
智能座舱HMI自动化测试之车机性能测试
安德鲁公司天线智能波束调整及网络容量提升的革新方案
如果美国就此放过华为,一切还能回到从前吗?
基于NFC技术的无线抄表检测系统电路设计—电路精选(30)
金色iPhoneXSMax高清图赏 与各大旗舰机对比
浅谈18位数/模转换芯片DAC9881的原理与应用
初创公司训练控制像木偶一般的机器人
教你一种实现异构设备资源共享的方法