新闻  |   论坛  |   博客  |   在线研讨会
ISD33000型语音芯片及其应用
yanqin | 2009-06-24 17:44:10    阅读:953   发布文章

 

引言

    语音记录芯片有很多种,但美国isd公司的isd系列芯片倍受广大用户的青睐,它采用直接模拟存储专利技术,把语音信号以原始的模拟形式直接存储在片内的eeprom存储器中,无需进行a/d转换和压缩处理,没有大多数固态数字化声音存储技术对声音质量的影响,从而减少了失真,大大提高了录放音质量,并具有抗断电、音质好、使用方便、可反复录放,无需专用的语音开发工具,能随意更改内容和耗电省等优点,很适合于现场录放音系统。

    isd系列语音记录芯片广泛应用于自动化通信系统、移动电话、智能仪器及其他需要语音提示的各种电子产品中。本文介绍了isd33180在一种可以进行心音记录的电子听诊器中的应用。

图1 isd33000系列封装图

isd33000的介绍

    isd33120/150/180/240系列是采用3伏电源供电的单片语音录/放设备,可存储2.0、2.5、3.0至4分钟的语音信息。四种型号的不同录放时间是靠不同的输入采样率来实现的,他们分别是8.0、6.4、5.3、4.0khz。该cmos工艺芯片包含一个内部时钟振荡器、抗混迭滤波器、平滑滤波器、自动选择器、音频放大器和高密度多层存储阵列。isd33000系列的eeprom的容量都为960k,可存储800行语音信息。

    isd33000系列具有tsop和dip/soic两种封装形式,如图1所示。

ss 片选信号(低电平允许芯片工作);
mosi 串行数据输入端;
miso 串行数据输出端;
sclk 串行时钟信号;
vcca、vccd模拟和数字电路电源端;
vssa、vssd模拟地和数字地;
aud out 音频信号输出端,可驱动5kω负载;
am cap 自动静噪控制端;
ana in-、ana in+ 模拟信号输入端,模拟信号可以采用单端输入和差分输入两种方式;
rac 行寻址时钟,当达到存储器每一行的末尾时该引脚保持137.5ms的高电平和12.5ms的低电平,可用于信息管理;
int 中断端(低电平有效);
xclk 外部时钟输入端。

    一组四线(sclk,mosi,miso,ss)spi接口提供了isd33000系列的控制和寻址功能。isd33000系列产品的构成就如在操作一个基于微控制器spi总线接口的外围设备。对于所有的内部记录器的读写允许操作都是通过spi接口实现的。数据转换方面的约定是,微控制器的spi转换锁存器在sclk的下降沿处锁定,对于isd33000设备,mosi引脚上的数据在sclk的上升沿处被锁定,内部数据在sclk的下降沿处被锁定输出到miso引脚上。中断信号(int)和内部的只读状态记录器是为了提供握手信号的目的。控制位和地址位的分布如下:〈5位控制位〉和〈11位地址位〉。需要说明的是isd33120/150/180/240设备只需要10位地址位,但为了录音时间更长产品的需要保留了第11位。对于每一个以eom和ovf结束的操作,包括信息检索周期,都将产生一个中断。这个中断将在下一个spi周期有效时被清除。


表1 控制位摘要应用举例

    所设计的电子听诊器对拾取心音的操作与普通的录音机相似,可以播放、记录,还可以在各段记录间搜索。这里采用89c51型单片机作为语音芯片的控制器,用户的意图通过按键来表达。

    各指令与控制位的关系如表1所示。isd33000设备启动要经过tpud时间后才可进行操作(对于采样频率位8khz的产品来说,约为25ms)。用户在发出操作命令之前要等待tpud的时间。以播放操作为例,从地址address开始的播放操作应按下述的步骤进行:

发出powerup命令;
等待tpud时间(启动延迟时间);
发出从地址address的setplay命令;
发出play命令。
当发现eom标记时产生一个中断,然后停止播放操作。

    该应用中单片机的p1端口设计为人机接口,p2端口为单片机与语音芯片的通讯口。p1口的按键依次为:k1键为播放记录选择键(p/r);k2键为开始键(start);k3键为停止键(stop);k4键为前倒键(pre);k5键为后倒键(next),其中k1键为拨动开关,其余各键均为不可自锁的按键,发出脉冲信号。p2口依次连接33180的sclk、mosi、miso、ss和rac引脚,在记录操作期间,存储的信息达到存储阵列的每一行末尾时,rac端会发出长度一定的高脉冲,单片机此时将地址变量加一,记录语音芯片的地址信息。在每段语音信息的末尾,语音芯片会发出一个中断,将该中断信号送入单片机外部中断0的输入端。

    在没有要求单片机工作之前,单片机处于循环查询状态,一旦p1端口的k2、k4、k5、k6键有信号发出,指针表会跳转至各自子程序执行相应的操作。以播放操作子程序为例,先后向语音芯片发出powerup命令,setplay命令和play命令,然后进入等待状态查询p1.2端口stop键是否有触发,如有触发则终止播放操作,进入循环查询部分。播放操作的正常结束是通过外部中断0的中断子程序。

播放子程序清单:

play: mov oisto1, #20h
lcall trans ;发出powerup命令
mov tmod , #01h
mov dptr ,#25536
mov th0, dph
mov tl0, dpl
setb tr0
jnb tf0,$ ;等待tpud40ms时间
mov oisto, pfrom
mov oisto1, pfrom1
;读取播放记录的首地址
anl oisto1, #07h
orl oisto1, #0e0h
lcall trans ;发出setplay命令
orl oisto1, #0f0h
lcall trans ;发出play命令
mov ie, #81h
here: jb p1.2, over ;如果要求中止则结束
sjmp here
over: mov oisto1, #10h
lcall trans;发出stoppwrdn命令
ljmp select
intx0: mov ie, #0
ljmp over ;播放结束返回
reti
注:
trans 为单片机与语音芯片的通讯子程
oisto和oisto1为存储控制位和地址的寄存器
select 为循环查询子程
intx0为中断子程

    其他记录子程序,前倒子程序和后倒子程序与播放的程序相似,在此不再赘述。

isd33000使用中应注意的几个问题

·isd器件的音频信号输出功率很小,并不能直接驱动扬声器,需要加音频功放,如lm386。同时isd送出的信号需通过电容耦合,隔离直流分量,以免其饱和。

·应注意rac端口,每完成一行的录音、放音及搜索操作,该端口输出一个正脉冲。单片机检测到此正脉冲,对应当前的行地址,可用于对录放信息的精确定位。

·当中断数据从isd33000设备的miso引脚移出时,控制位和地址位同时移入mosi引脚。所以应注意传送的数据是否符合当前系统的操作。

  


*博客内容为网友个人发布,仅代表博主个人观点,如有侵权请联系工作人员删除。

参与讨论
登录后参与讨论
推荐文章
最近访客