isd4004操作说明
- 格式:doc
- 大小:117.50 KB
- 文档页数:8
语言学习机电路主要由显示单元、键盘阵列、录放电路、音
频控制、音频放大等电路单元组成,这里主要介绍音频控制
部分和微控制器的接口电路,如图1所示,电路主要由单片
机AT89C52和ISD4004组成,其中89C52的P0、P2口分别
用作键盘显示和其它控制口。
ISD4004芯片的工作电压是3V,而89C52是的供电电压是
5V,图中用7805提供5V电源,经LM317降压提供3V电
压;两者之间的信号连接要考虑电平匹配,其中ISD4004的
3V电平输入引脚可直接连接到89C52的5V的I/O引脚,如
MOSI、/SS、SCLK;而其输出引脚(除MISO引脚外)都是
漏极开路信号,连接到89C52时都必须加上5V上拉电阻,
如/INT、RAC引脚;其中MISO(串行输出端)要求较特殊,
需增加电平转换电路,图中简单地用三极管Q1实现的3V-5V
的电平转换,这里要注意的是5V信号从Q1的集电极引出,
引起信号反相,89C52读入信号后应进行反相处理以恢复信
号MISO,代表从ISD4004读出的状态和地址数据。P1.4接
ISD4004的片选引脚/SS,以便与89C52进行SPI通信时控制
选通ISD4004芯片。P1.1(SOUT)接ISD4004的SPI串行
输入引脚MOSI,从该引脚给出放音和录音的起始地址。由
89C52的P1.2提供SPI接口的时钟脉冲到ISD4004的SCLK
引脚。ISD4004的中断信号/INT接P3.1(OVF),作放音结束
的触发信号。ISD4004的行地址时钟RAC输出到P1.5,因
ISD4004芯片不提供控制放音结束的预置地址,用RAC可控
制放音的长度以及定位,从而实现语言学习机的句子或段落
的重复功能。
录音输入信号从AN IN+、AN IN-引入;音频输出信号由
ADUOUT引出,一路信号可经功放电路LM386输出到扬声
器或耳机,另一路经电阻分压后送到比较器LM339的同相
端,检测到音频信号中的静音区时输出低电平到P3.5(T1)引
脚,给自动断句功能提供触发判断信号,标准语言教学的语音
信号句子之间一般可提供1.0至1.5秒的静音区。
89C52的串行口引脚TXD、RXD用于接收主机的集中控
制命令并回送状态数据给主机。
二、 软件设计
2.1 软件的主框图
语言学习机主要有录音、标准放音、SP放音、SSP放音、暂
停、书签等操作方式,其中SP、SSP放音是自动断句放音,
学习机自动识别一个语句的开始位置,遇到静音区后暂停,
暂停时间为句子放音时间长度的1.5倍,然后自动继续下一
语句或自动重复该语句两遍后学习机继续下一语句;书签功
能是可记忆5个位置,按相应的书签按键可从该位置开始放
音;所有的操作都在89C52芯片内的软件控制下完成。
主程序软件框图如图2所示,上电后进入系统主程序,初始
化各种参数,学习机等待键盘操作或主控机的命令;收到命
令后进入相应的工作模式,完成任务再返回到命令等待模
式。
2.2软件编程思想
ISD4004芯片的放音、录音、停止都有对应的操作指令,
容易实现,而语言学习机的SP放音、SSP放音及暂停操作
都需要ISD4004完成暂停功能,而芯片本身没有暂停指令,
下面的重点介绍录放的暂停和SP放音操作的软件编程方法,
SSP、书签操作功能可参照SP和暂停操作进行,不再重复,
源程序略。
2.2.1录音暂停功能
ISD4004语音芯片的录音操作必须接收到STOP命令,该命
令会将一个EOM信息位写进芯片内来标志停止位置,下次
放音时,到该位置时就会自动停止放音。学习机录音暂停功能
则要求停止录音而不写入EOM停止标志,那么在放音时到
该位置就不会停止。可采取如下措施实现:
(1) 首先给芯片发出RECORD命令,启动录音操作
(2) 按下PAUSE按键或收到需要暂停的其它触发信号后,
允许ISD4004继续录音单位计数长度的时间(一行),这个
一行的结束可由RAC的高电平来识别。这确保接到STOP
命令时,EOM停止标志位写入按下PAUSE键后的那一行(无
效行)。
(3) 发出STOP命令,停止芯片录音,ISD4004自动记录EOM
信息位。
(4) 发出一条无效指令,使指令的RUN位为0,从MISO读
出当前的地址数据(行位置),因为该数据反相,从引脚P1.0
读出的数据应按位取反, 该行中包含有EOM位,将读出的
地址减一后保存。
(5) 再按暂停键时,以前面保存的地址为录音起始地址,发
出RECORD命令,这样就将前面的EOM信息位擦除,并继
续录音。
(6) 当放音时,按暂停键的位置就不会有EOM标志,放音
继续。
2.2.2放音暂停功能
(1)发出PLAY命令启动放音操作
(2)按下PAUSE按键或收到需要暂停的其它触发信号后,
发出STOP命令
(3)发出一条无效指令,使指令的RUN位为0,读出当前
的地址数据,将读出的地址按位取反减一后保存。
(4)再按暂停键时,以前面保存的地址为放音起始地址,
发出SET PLAY命令。
(5)发出PLAY命令从当前位置开始放音,从而实现放音
暂停。
2.2.3 SP操作功能
SP放音关键在于寻找语音信号中的静音区长度是否达到
1.0-1.5s(取1.2s作判断条件), 找到就认为是断句, 然后控制
芯片暂停放音。为此设89C52定时器0每10ms产生一次中
断, 设定静音时间计数单元初值为0。
(1)发出PLAY放音命令,启动判断P3.5(T1)引脚是否高电
平
(2)P3.5高则发出一条无效指令,使指令的RUN位为0,
读出当前的地址数据,将读出的地址按位取反减一后保存,
作为语句的起始地址,并启动定时器0开始计时。
(3)在定时器0的中断服务程序中,检测P3.5是否高或低
电平,若高表明有语音输出,清零静音时间计数单元并退出
中断服务程序,等待下一次中断;若为低电平,表明为静音,
静音时间计数单元加1,然后判断是否静音时间计数单元内
容是否120(即是否找到1.2s的语句间静音区)。若找到,
设置找到标志位,退出中断服务程序;否则清除找到标志位,
退出中断服务程序,等待下一次中断。
(4)若遇到语音停止标志EOM或放音操作已到存储器末尾
(OVF),/INT发出低电平,引起中断,应发出STOP命令,
停止操作。
(5)判断找到标志位是否有效,无效则重复第(4)步
(6)找到标志位有效,则发出STOP命令,然后再发出一条
无效指令,使指令的RUN位为0,读出当前的地址数据,将
读出的地址按位取反后保存为语句结束地址
(7)通过起始地址和结束地址可计算语句放音的时间长度,
乘以1.5作为暂停时间的长度
(8)暂停时间到后重复(1)至(8)的过程.
三、 结束语
ISD4004语音芯片单芯片集语音信号的采集、播放、
存储于一体,大大简化了电路的设计,本文语言学习机电路
结构简捷, 经实际运行测试证明,文中的编程方法实现了学
习机所要求的各种功能,运行可靠, 满足外语教学中语言学
习的操作要求。
参考文献:
1 ISD/WINBOND.ISD4004 SERIES Products Datasheets,
2000.8
2 孙育才.MCS-51系列单片微行计算机及其 应用
[M].第二版.东南大学出版社.1990.
3沈德金 陈粤初等.MCS-51系列单片接口电路与应用程序
设计实例[M].北京航空航天大学出版社.1990.4
4 GB/T14185-93.语言学习系统通用技术条件.1993