基于K9F6408U0A和SPDS202A的数码录音系统

2012-03-07 10:25:51来源: 互联网

K9F6408U0A 是三星公司生产的与非型64兆位快闪存储器,它具有工作电压低、擦写速度快、体积小等优点。SPDS202A的台湾凌阳公司生产的语音芯片。文中介绍了以SPDS202A为核心的数码录音系统,同时介绍了实现两片 K9F6408U0A 之间拷贝功能的具体方法。最后给出了相关的硬件接口及软件程序。

  1 K9F6408U0A 的性能简介

   K9F6408U0A 的最大优点在于其命令、数据和地址均可通过8条I/O口线与主控制器进行通信。这样就大大简化了系统的连线,增强了系统的稳定性。除8条I/O口线外, K9F6408U0A 还包括以下几条控制线,从而可方便地实现系统主控制器对 K9F6408U0A 的控制。它们分别为:

  CLE:命令锁存使能端,高电平有效。在WE信号的上升沿,命令信号可通过I/O口锁入命令寄存器。

  ALE:地址锁存使能端,高电平有效。在WE信号的上升沿,地址信号可通过I/O口锁入地址寄存器。

  CE:片选线,低电平有效。在页编程或块擦除操作期间或器件处于忙状态时,CE高电平将被忽略。

  WE:写使能口,命令、地址和数据在WE信号的上升沿被锁定。

  RE:读使能口,在该口的下降沿将数据送到I/O口线上,并使内部列地址寄存器增1。

  WP:写保护口,低电平有效。当其为低时,编程和擦除操作禁止。

  R/B:操作状态指示信号。为低时,表示正在编程、擦除或读操作,操作结束后变高。

  2 SPDS202A简介

  SPDS202A是台湾SUNPLUS公司生产的性价比很高的语音芯片,它可以非常方便地与主机接口,主机通过发命令码来控制语音芯片的录音、放音等功能。它具有以下特点:

  ●为单片音频/语音编码/*芯片,采用SACM-S480或SACM-S3200压缩和解压算法。具有8kHz采样率,其数据低码率为4.8kbps或32kbps;

  ●具有数字音量控制功能;

  ●具有FLASH管理功能,可在内部自动管理FLASH数据,其标准FLASH接口最多可以连接4片FLASH,共64Mbit。

  ●利用UART接口可以方便地与PC机及其它 RS232 器件接口,并可容易地上传或下载数据;

  ●内嵌锁相环电路;

  ●内嵌高品质10位8kHz ADC和DAC;

  ●功耗低,采用2.8V~3.6V工作电压。

  由于SPDS202A具有以上特点,因此只需增加极少的外围电路就可构成大容量的语音录放系统。

  

数码录音系统的构成框图

 

  3 数码录音系统的构成

  以SPDS202A为核心,以华邦公司的 W78E58 为主控制器的数码录音系统结构图如图1所示, W78E58 与 MCS-51 系列单片机兼容,其内置的32kflash EEPROM可作为程序存储器,而内置的256字节SRAM很适合 K9F6408U0A 的磁编程操作。

  

 

  图2所示为 W78E58 和SPDS202A硬件接口电路。图中,TADCE为片选信号线,可在其上升沿锁存命令/数据。TADSEL1和TADSEL0是命令选择信号线,其功能如表1所列。

表1 命令选择信号线的功能

  

 

  TADD7~TADD0为8位数据线。它在工作时,主控制器的SPDS202A发送三个字节的数据,其中,第一个字节总是0FFh,第二个字节为命令码低字节,第三个字节命令码高字节;然后再由主控制器接收从SPDS202A返回的两个字节的数据。二者之间的通信程序如下(用C51编写):

  Void Mcu_202_Comm(void) /*MUC和SPDS202A通信程序*/

  {via=0xFF; /*第一字节送0FFh*/

  SendOneData( ); /*调用发送一字节数据子程序*/

  Via=CMDL; /*第二字节送命令码低字节*/

  SendOneData( );

  Via_CMDH; /*第三字节送命令码高字节*/

  SendOneData( );

  ECHOL=ReadOneData( ); /*读返回数据*/

  ECHOH=ReadOneData( );

  }

  下面以录音功能的实现程序为例,可以很清楚地说明系统是如何工作的。

  Void Record(void)

  {CMDL=0x00; /*发送录音命令码*/

  CMDH=0x10;

  Mcu_202_Comm( );

  If(Err=1) /*如果发生错误,则返回*/

  {Err=0;

  return;

  }

  }

  可以看出,系统是通过主控制器向SPDS202A发送一系列控制命令码来实现其功能的。

  

实现两块FLASH之间的复制功能硬件接口电路
4 复制功能的实现

  为了能够保存和备份所录信息,应当考虑实现一种拷贝功能,即将一片 K9F6408U0A 上的信息完全复制到另一片上。实现这一功能的硬件接口电路如图3所示。图中,两片 K9F6408U0A 除片选线分开外,其余信号线均复用。采用如下程序可实现复制功能:

  void Copy(void)

  {FCEB2=1;

  FCEB1=0; /*选中第一片FLASH*/

  For(RowAdd2=0;RowAdd2<64;RowAdd2+ +)

  {for(RowAdd1=0;RowAdd1<256;RowAdd1+ +)

  {BlockErase ( );} /*调用块擦除子函数,将第一片FLASH内容擦除*/

  }

  for(F1RowAdd2=0,F2RowAdd2=0;(F1RowAdd2<64)

  (F2RowAdd2<64);F1RowAdd2+ +,

  F2RowAdd2+ +)

  For(F1RowAdd1=0,F2RowAdd1=0;

  (F1RowAdd1<256) (F2RowAdd2<256);

  F1RowAdd1+ +,F2RowAdd1+ +)

  For(F1ColAdd=0,F2ColAdd=0;(F1ColAdd<256) (F2ColAdd<256);F1ColAdd=F1COAdd+128;F2ColAdd=F2ColAdd+128)

  {CE1=1;

  CE2=0;

  SetPointer=0x00;

  F1RdData( ); /*调用从第一片FLASH读数据子函数*/

  CE2=1;

  CE1=0;

  SendData( );/*调用向第二片FLASH页寄存器送数据子函数*/

  CE1=1;

  CE2=0;

  SetPointer=0x01; /*设置页寄存器指针指向页寄存器后半部分*/

  F1RdData( );

  CE1=1;

  CE2=0;

  SendData( );

  FwrData( ); /*执行页编程命令,将数据写入第二片FLASH*/

  }

  }

  }

  }

  5 结束语

  该数码录音系统可在一片64Mbit FLASH上记录长达3.7小时的语音信息。同时,为了能够保存所记录的信息,还可利用本文介绍的拷贝方法实现两片FLASH之间的拷贝。该系统可广泛应用于需要长时间语音记录的场合。

关键字:K9F6408U0A  SPDS202A  数码录音

编辑:神话 引用地址:http://www.eeworld.com.cn/mndz/2012/0307/article_14792.html
本网站转载的所有的文章、图片、音频视频文件等资料的版权归版权所有人所有,本站采用的非本站原创文章及图片等内容无法一一联系确认版权者。如果本网所选内容的文章作者及编辑认为其作品不宜公开自由传播,或不应无偿使用,请及时通过电子邮件或电话通知我们,以迅速采取适当措施,避免给双方造成不必要的经济损失。
论坛活动 E手掌握
微信扫一扫加关注
论坛活动 E手掌握
芯片资讯 锐利解读
微信扫一扫加关注
芯片资讯 锐利解读
推荐阅读
全部
K9F6408U0A
SPDS202A
数码录音

小广播

独家专题更多

富士通铁电随机存储器FRAM主题展馆
富士通铁电随机存储器FRAM主题展馆
馆内包含了 纵览FRAM、独立FRAM存储器专区、FRAM内置LSI专区三大部分内容。 
走,跟Molex一起去看《中国电子消费品趋势》!
走,跟Molex一起去看《中国电子消费品趋势》!
 
带你走进LED王国——Microchip LED应用专题
带你走进LED王国——Microchip LED应用专题
 
电子工程世界版权所有 京ICP证060456号 京ICP备10001474号 电信业务审批[2006]字第258号函 京公海网安备110108001534 Copyright © 2005-2016 EEWORLD.com.cn, Inc. All rights reserved