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发送一系列操控指令码来完成其功用的。
4 仿制功用的完成
为了可以保存和备份所录信息,应当考虑完成一种仿制功用,行将一片 K9F6408U0A 上的信息彻底仿制到另一片上。完成这一功用的硬件接口电路如图3所示。图中,两片 K9F6408U0A 除片选线分开外,其他信号线均复用。选用如下程序可完成仿制功用:
void Copy(void)
{FCEB2=1;
FCEB1=0; /*选中榜首片FLASH*/
For(RowAdd2=0;RowAdd264;RowAdd2+ +)
{for(RowAdd1=0;RowAdd1256;RowAdd1+ +)
{BlockErase ( );} /*调用块擦除子函数,将榜首片FLASH内容擦除*/
}
for(F1RowAdd2=0,F2RowAdd2=0;(F1RowAdd264)
(F2RowAdd264);F1RowAdd2+ +,
F2RowAdd2+ +)
For(F1RowAdd1=0,F2RowAdd1=0;
(F1RowAdd1256) (F2RowAdd2256);
F1RowAdd1+ +,F2RowAdd1+ +)
For(F1ColAdd=0,F2ColAdd=0;(F1ColAdd256) (F2ColAdd256);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之间的仿制。该体系可广泛应用于需求长期语音记载的场合。