石家庄铁道大学四方学院毕业设计
部下拉为低电平,P3口将输出电流(ILL)这是由于上拉的缘故。
P3口也可作为STC89C52的一些特殊功能口,如表3-1所示:
表3-1 P3口的第二功能
接口 P3.0 P3.1 P3.2 P3.3 P3.4 P3.5 P3.6 P3.7
第二功能
RXD(串行输入口) TXD(串行输出口) INT0(外部中断0) INT1(外部中断1)
T0(记时器0外部输入) T1(记时器1外部输入)
WR(外部数据存储器写选通) RD(外部数据存储器读选通)
P3口同时为闪烁编程和编程校验接收一些控制信号。
RST:复位输入。当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。
ALE/PROG:当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。在FLASH编程期间,此引脚用于输入编程脉冲。在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。因此它可用作对外部输出的脉冲或用于定时目的。然而要注意的是:每当用作外部数据存储器时,将跳过一个ALE脉冲。如想禁止ALE的输出可在SFR8EH地址上置0。此时, ALE只有在执行MOVX,MOVC指令是ALE才起作用。另外,该引脚被略微拉高。如果微处理器在外部执行状态ALE禁止,置位无效。
PSEN:外部程序存储器的选通信号。在由外部程序存储器取指期间,每个机器周期两次PSEN有效。但在访问外部数据存储器时,这两次有效的PSEN信号将不出现。
EA/VPP:当EA保持低电平时,则在此期间外部程序存储器(0000H-FFFFH),不管是否有内部程序存储器。注意加密方式1时,EA将内部锁定为RESET;当EA端保持高电平时,此间内部程序存储器。在FLASH编程期间,此引脚也用于施加12V编程电源(VPP)。
XTAL1:反相振荡放大器的输入及内部时钟工作电路的输入。 XTAL2:来自反相振荡器的输出。
XTAL1和XTAL2分别为反相放大器的输入和输出。该反相放大器可以配置为片内振荡器。石晶振荡和陶瓷振荡均可采用。如采用外部时钟源驱动器件,XTAL2应不接。有余输入至内部时钟信号要通过一个二分频触发器,因此对外部时钟信号的脉宽无任何要求,但必须保证脉冲的高低电平要求的宽度。
8
石家庄铁道大学四方学院毕业设计
3.2.2 主控模块电路原理图
单片机主控模块由STC89C52芯片和晶振复位组成。复位和晶振电路通过接口与单片机个引脚相连,复位电路接到RST口,晶振接到XTAL1口和XTAL2口上。如图3-2,3-3所示:
图3-2 STC89C52芯片
图3-3 晶振复位
3.3 语音芯片模块
3.3.1 ISD4004芯片简介
ISD4004语音系列芯片是美国ISD公司推出的产品,与普通的录音/重放芯片相比,ISD4004具有如下特点:首先是记录声音没有段长度限制,并且声音记录不需要A/D转换和压缩。其次,快速闪存作为存储介质,无需电源可保存数据长达100年,重复记录10000次以上。此外,ISD4004具有记录时间长(可达16分钟,本文采用的为8分钟的ISD4004语音芯片)的优点。最后,ISD4004开发应用具有所需外围电
9
石家庄铁道大学四方学院毕业设计
路简单的优点,这一点从本文介绍的其在实际应用中可以体会到[10]。ISD4004芯片如图3-4所示:
图3-4 ISD4004芯片
1、引脚介绍:
电源(VCCA, VCCD):为使噪声最小,芯片的模拟和数字电路使用不同的电源总线,并A分别引到外封装的不同管脚上模拟和数字电源端最好分别走线尽可能在靠近供电端处相连,而去藕电容应尽量靠近器件。
地线(VSSA, VSSD):芯片内部的模拟和数字电路也使用不同的地线。 同相模拟输入(ANA IN+):这是录音信号的同相输入端。输入放大器可用单端或差分驱动。单端输入时,信号由藕合电容输入,最大幅度为峰峰值32mV,藕合电容和本端的3KΩ电阻输入阻抗决定了芯片频带的低端截止频率。差分驱动时,信号最大幅度为峰峰值16mV,为ISD33000系列相同。
反相模拟输入(ANA IN-):差分驱动时,这是录音信号的反相输入端。信号通过藕合电容输入,最大幅度为峰峰值16mV
音频输出(AUD OUT):提供音频输出,可驱动5KΩ的负载。
片选(SS):此端为低,即向该ISD4004芯片发送指令,两条指令之问为高电平。 串行输入(MOSI):此端为串行输入端,主控制器应在串行时钟上升沿之前半个周期将数据放到本端,供ISD输入。
串行输出(MISO):ISD的串行输出端。ISD未选中时,本端呈高阻态。 串行时钟(SCLK):ISD的时钟输入端,由主控制器产生,用于同步MOSI和MISO的数据传输。数据在SCLK上升沿锁存到ISD在下降沿移出ISD。
中断(INT):本端为漏极开路输出。ISD在任何操作(包括快进)中检测到EOM或OVF时,本端变低并保持。中断状态在下一个SPI周期开始时清除。中断状态也可用RINT指令读取。OVF标志一指示ISD的录、放操作已到达存储器的未尾。EOM标志一只在放音中检测到内部的EOM标志时此状态位才置1。
10
石家庄铁道大学四方学院毕业设计
行地址时钟(RAC): 漏极开路输出。每个RAC周期表示ISD存储器的操作进行了一行(ISD4004系列中的存贮器共2400行)。该信号175ms保持高电平,低电平为25ms。快进模式下,RAC的218.75 μs是高电平,31.25μs为低电平。该端可用于存储管理技术。
外部时钟(XCLK):本端内部有下拉元件。芯片内部的采样时钟在出厂前已调校,误差在+1%内。商业级芯片在整个温度和电压范围内,频率变化在+2.25%内。工业级芯片在整个温度和电压范围内,频率变化在-6/+4%内,此时建议使用稳压电源。若要求更高精度,可从本端输入外部时钟(如前表所列)。由于内部的防混淆及平滑滤波器已设定,故上述推荐的时钟频率不应改变。输入时钟的占空比无关紧要,因内部首先进行了分频。在不外接地时钟时此端必须接地。
自动静噪(AMCAP):当录音信号电平下降到内部设定的某一阑值以下时,自动静噪功能使信号衰弱,这样有助于养活无信号(静音)时的噪声。通常本端对地接1mF的电容,构成内部信号电平峰值检测电路的一部分。检出的峰值电平与内部设定的阑值作比较,决定自动静噪功能的翻转点。大信号时,自动静噪电路不衰减,静音时衰减6dB。1mF的电容也影响自动静噪电路对信号幅度的响应速度。本端接VCCA则禁止自动静噪。
2、操作规则
(1)串行外设接口 ISD4000系列语音芯片工作于SPI串行接口。SPI协议是一个同步串行数据传输协议,设定微控制器的SPI移位寄存器在SCLK的下降沿将数据送至MISO引脚。以ISD4004为例,协议的具体内容如下[5]:
所有串行数据传输开始于SS下降沿。
SS在传输期间必须保持低电平,在两条指令之间则保持高电平。 数据在时钟上升沿移入,在下降沿移出。
SS变低,输入指令和地址后,ISD4004才能开始录/放操作。 指令格式是(八位控制码)加(十六位地址码)。
ISD4004的任何操作如果遇到EOM或OVF,则产生一个中断,该中断状态在下一个SPI周期开始时被清除。
使用“读”指令使中断状态位移出ISD4004的MISO引脚时,控制及地址数据也应同步从MOSI端移入。因此,要注意移入的数据是否与器件当前进行的操作兼容。当然,也允许在一个SPI周期里,同时执行读状态和开始新的操作(即新移入的数据与器件当前的操作可以不兼容)。
所有操作在运行位(RUN)置1时开始,置0时结束。 所有指令都在SS端上升沿开始执行。
11
[4]石家庄铁道大学四方学院毕业设计
(2)信息快进 用户不必知道信息的确切地址就能快进跳过一条信息。信息快进只用于放音模式,放音速度是正常的1600倍,遇到EOM后停止,然后内部地址计数器1,指向下一条信息的开始处。
(3)上电顺序 器件延时TPUD(8KHz采样时,约为25ms)后才能开始操作。因此,用户发完上电指令后,必须等待TPUD,才能发出下一条操作指令。
例如,从00处放音,应遵循如下时序: 发POWER UP命令; 等待TPUD(上电延时);
发地址值为00的SET PLAY命令; 发PLAY命令。
器件会从00地址开始放音,当出现EOM时,立即中断,停止放音。 如果从00处录音,则按以下时序: 发POWER UP指令; 等待TPUD(上电延时); 发POWER UP命令; 等待2倍TPUD;
发地址值为00的 SET REC命令; 发REC命令。
器件便从00地址开始录音,一直到出现OVF(存储器末尾)时,录音停止。
(4)指令码 如表3-2所示:
表3-2 ISD4004的指令码
指令 POWERUP SETPLAY PLAY SETREC REC SETMC MC STOP STOPWRDN
RINT
控制码 00100xxx 11100xxx
11110xxx 10100xxx
10110xxx
11101xxx
11111xxx 0x110xxx 0x01xxxx
0x110xxx
操作
上电:等待TPUD后可以工作
从指定地址开始放音 从当前地址开始放音 从指定地址开始录音 从当前地址开始录音 从当前地址开始快进 执行快进,直到EOM
停止当前操作 停止当前操作并掉电 读状态OVF和EOM
12