单片机控制下的ISD芯片内容复制电路的解决方案
ISD2532的典型录放电路见图2,外围电路包括:麦克风、扬声器、开关和少数电阻、电容,以及常用5V电源。其基本控制过程极为简单。首先将PD调为低电平,使芯片上电准备工作,同时设置P/R电平(高电平为放音,低电平为录音);然后输入地址,制定录放操作的起始地址;最后使CE为低电平,即在其下降沿启动放音操作,在低电平状态启动录音操作。一般情况下,放音操作自动结束;当PD或CE变为高电平时,即刻停止录音操作。
ISD2532芯片可互斥工作于地址和模式两种方式,这取决于地址引脚最高两位的输入状态。当最高两位都为高电平时,其余地址引脚就作为操作模式选择端,芯片可按预设的多种模式进行录放,以便用最少的外围器件实现最多的功能。否则,所有地址引脚的输入均被解释为地址位,用作当前录放操作的起始地址。由此可见,ISD2532芯片中的9位地址最多只能提供384个地址。好在ISD器件中的E2PROM存储空间不是按字节编址的,而是以行为基本单位进行编址。ISD2532内部的256K E2PROM存储器被均匀地规划为320行,从0开始的每个地址指向其中的一行。ISD2532的录放时间是32s,因此它的地址分辨率为100ms。
ISD器件可以进行多段录放操作,每段称为一个信息段,占用一行或多行存储空间,其中存放音频数据和一个结束标志(EOM)。录音及放音功能均从设定的起始地址开始,录音结束时芯片内部自动在该段的结束位置插入一个EOM标志;而放音时遇到EOM标志即自动停止本段放音。
3 ISD2532芯片内容复制的实现
和数字存储器复制不同的是,ISD芯片中存储的是连续变化的声音模拟量,因而对于ISD芯片的内容复制标准可放宽到只要求根据存储信息回放的声音信息听起来相同即可。鉴于此,在控制源芯片放音的同时,让目的芯片录音可达到内容复制的目的,参见图3,在单片机控制下,向源芯片和目的芯片发出相同的起始地址,同时控制两个芯片的录放操作即可实现复制目标。
由于ISD芯片可以指定起始地址进行录放,所以,内容复制必须保证在相同的起始地址处,源芯片和新复制的芯片存储有听起来相同的声音信息。换句话说,复制过程必须保证两芯片中存储的信息段要实现地址对齐。因此,获取源芯片中所有信息段的起始地址对于完成内容复制任务是至关重要的。
3.1 源芯片地址信息获取
ISD芯片的地址引脚只能作为输入使用,因而在没有专业开发设备的情况下,其内部信息段的起始地址无法直接读出[2]。然而在一般情况下,为充分利用存储空间,芯片中第一个信息段的起始地址为0,并且上一段信息结束后的下一个地址就是当前段的起始地址。所以,对于ISD2532芯片,设第i信息段的起始地址为Add[i],并占Len[i]行存储空间,则有:
这样,要获得Add[i]就必须知道Len[i]。由于已知ISD2532的地址分辨率是100ms,所以第i信息段的时间长度应介于(Len[i]-1)x 100ms和Len[i] x 100ms。在源芯片播放时,通过捕捉其输出的EOM信号可以获知某个信息段的结束[2]。因此,通过对每个信息段的播放时间进行计时可确定该信息段占用的存储空间大小,从而可得每个信息段的起始地址。
评论